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 EF83E43295 for ; Sun, 26 Jun 2022 16:35:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 82CB368B7B5; Sun, 26 Jun 2022 19:35:32 +0300 (EEST) Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 14AFC68B74A for ; Sun, 26 Jun 2022 19:35:26 +0300 (EEST) Received: by mail-pl1-f180.google.com with SMTP id o18so6217039plg.2 for ; Sun, 26 Jun 2022 09:35:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:in-reply-to:references:from:date:subject:fcc :content-transfer-encoding:mime-version:to:cc; bh=nXR4eVV35GXjosFdtDLRDnz5YsPrHGPo7m/u1CdC4WA=; b=LgZ8neFEsyrSofjyMLCNsMa+rZvXUrJMf5XhumrJ+6Av/Bj+7NCG68XisDDDyvTgpW yX3TwuosV5DyblBTTV9J+2Oit9lEzEGIKRDkeKyCEpsyBtjGl4lAVKKVRkRTha8vIyo5 QUE0IGeUmd2XMgAd1wVch8Eadg0b/f40mgyj9ZdBEXwIy/dUP+Cn1/kFl0yOBhkGm8Nj j+URKBTsnP1FnpEoR3NNYwjxvykc7bJgAaPb46QowoUz6GLt2kBDXTs/1+GwIM9rt6S8 fE/mvdyWjQbyGqRe5rouvxRMF+bHldYQD9kp/bWE0EM916fYWKTImnAW6cgMSYuvU+n7 ZBJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:in-reply-to:references:from:date :subject:fcc:content-transfer-encoding:mime-version:to:cc; bh=nXR4eVV35GXjosFdtDLRDnz5YsPrHGPo7m/u1CdC4WA=; b=f4dZmgEUvo79N5oBndTqNF77Hq+gEPFo7yozKZgIEnWVIaO6StLNe1Om+/V5ixq4sx ckeWaZrKg0/btMIcpGMDQzlSay55Ro9+PIoQ+5K12BcK0iVm92S7Py5FbgY6FUvahwIJ JZ+RsIS79AVPf7LQKUW9TdioRDo1wnfUrX9b98OxYKD8ZW8rTk8/TuyuRhqcOEckVDs/ 8V2FQAHeJnbrRybAP+QaC7NdxAh+M7pIE6crB2ypHZ2n6bmKmBIGLPx9EIeRWEwGV8Zc MMfscx80DWxAt57Ylye4cADQQcumwfF+SUwZcDAhDPWfdRgM1QGSf17JgnpWQB5KoG87 TVkg== X-Gm-Message-State: AJIora/b15/OTN6sISNyJguSX9hGQ2K5SARY4jAmfEGOA++Z5VcTL8+0 xXeSiJ3b0VIkNDX3Ntha8IqKC4dilGJiUg== X-Google-Smtp-Source: AGRyM1teNOvmxJkG7KcCAkI0X5r4WuQ7U+vro7c0ehMBQeSgweVeXT1tNwOy65vdFGtnuIPnDDoOKQ== X-Received: by 2002:a17:902:ab87:b0:16a:82a9:feb7 with SMTP id f7-20020a170902ab8700b0016a82a9feb7mr4721868plr.37.1656261324074; Sun, 26 Jun 2022 09:35:24 -0700 (PDT) Received: from [127.0.0.1] (master.gitmailbox.com. [34.83.118.50]) by smtp.gmail.com with ESMTPSA id g2-20020a170902d5c200b0015e8d4eb29csm5380019plh.230.2022.06.26.09.35.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jun 2022 09:35:23 -0700 (PDT) Message-Id: In-Reply-To: References: From: ffmpegagent Date: Sun, 26 Jun 2022 16:34:57 +0000 Fcc: Sent MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH v6 00/25] Subtitle Filtering 2022 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 Cc: Michael Niedermayer , softworkz , Andriy Gelman , Andreas Rheinhardt 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: ClN1YnRpdGxlIEZpbHRlcmluZyAyMDIyCj09PT09PT09PT09PT09PT09PT09PT09CgpUaGlzIGlz IGEgc3Vic3RhbnRpYWwgdXBkYXRlIHRvIHRoZSBlYXJsaWVyIHN1YnRpdGxlIGZpbHRlcmluZyBw YXRjaCBzZXJpZXMuCkEgcHJpbWFyeSBnb2FsIGhhcyBiZWVuIHRvIGFkZHJlc3Mgb3RoZXJzJyBj b25jZXJucyBhcyBtdWNoIGFzIHBvc3NpYmxlIG9uCm9uZSBzaWRlIGFuZCB0byBwcm92aWRlIG1v cmUgY2xhcml0eSBhbmQgY29udHJvbCBvdmVyIHRoZSB3YXkgdGhpbmdzIGFyZQp3b3JraW5nLiBD bGFyaXR5IGlzIGlzIHNwZWNpZmljYWxseSBpbXBvcnRhbnQgdG8gYWxsb3cgZm9yIGEgYmV0dGVy CnVuZGVyc3RhbmRpbmcgb2YgdGhlIG5lZWQgZm9yIGEgc3VidGl0bGUgc3RhcnQgcHRzIHZhbHVl IHRoYXQgY2FuIGJlCmRpZmZlcmVudCBmcm9tIHRoZSBmcmFtZSdzIHB0cyB2YWx1ZS4gVGhpcyBp cyBkb25lIGJ5IHJlZmFjdG9yaW5nIHRoZQpzdWJ0aXRsZSB0aW1pbmcgZmllbGRzIGluIEFWRnJh bWUsIGFkZGluZyBhIGZyYW1lIGZpZWxkIHRvIGluZGljYXRlIHJlcGVhdGVkCnN1YnRpdGxlIGZy YW1lcywgYW5kIGZpbmFsbHkgdGhlIGZ1bGwgcmVtb3ZhbCBvZiB0aGUgaGVhcnRiZWF0CmZ1bmN0 aW9uYWxpdHksIHJlcGxhY2VkIGJ5IGEgbmV3ICdzdWJmZWVkJyBmaWx0ZXIgdGhhdCBwcm92aWRl cyBkaWZmZXJlbnQKbW9kZXMgZm9yIGFyYml0cmF0aW5nIHN1YnRpdGxlIGZyYW1lcyBpbiBhIGZp bHRlciBncmFwaC4gRmluYWxseSwgZWFjaApzdWJ0aXRsZSBmaWx0ZXIncyBkb2N1bWVudGF0aW9u IGhhcyBiZWVuIGFtZW5kZWQgYnkgYSBzZWN0aW9uIGRlc2NyaWJpbmcgdGhlCmZpbHRlcidzIHRp bWVsaW5lIGJlaGF2aW9yIChpbiB2MyB1cGRhdGUpLgoKClN1YnRpdGxlIEZpbHRlcmluZyBEZW1v cwo9PT09PT09PT09PT09PT09PT09PT09PT0KCkkgcHVibGlzaGVkIGEgZGVtb25zdHJhdGlvbiBv ZiBzdWJ0aXRsZSBmaWx0ZXJpbmcgY2FwYWJpbGl0aWVzIHdpdGggT0NSLAp0ZXh0IGFuZCBiaXRt YXAgc3VidGl0bGUgbWFuaXB1bGF0aW9uIGludm9sdmVkOiBEZW1vIDE6IFRleHQtTWFuaXB1bGF0 aW9uCndpdGggQml0bWFwIFN1YnRpdGxlcwpbaHR0cHM6Ly9naXRodWIuY29tL3NvZnR3b3Jrei9T dWJ0aXRsZUZpbHRlcmluZ0RlbW9zL3RyZWUvbWFzdGVyL0RlbW8xXQoKCnY2IC0gRml4IGFzc2Vy dGlvbiBlcnJvcnMKPT09PT09PT09PT09PT09PT09PT09PT09PQoKICogdGV4dDJncmFwaGljc3Vi OiBmaXggbnVsbCBwb2ludCBvbiB1bmluaXQgYWZ0ZXIgZXJyb3IKICogc3RyaW06IHByb3BhZ2F0 ZSB3aWR0aCBhbmQgaGVpZ2h0CiAqIGF2ZmlsdGVyOiBhZGQgZGVmYXVsdCBwcm9wYWdhdGlvbiB0 aW1lX2Jhc2UgZnJvbSBpbmxpbmsgdG8gb3V0bGluawoKCnY1IC0gQ29udmVyc2lvbiB0byBHcmFw aGljIFN1YnRpdGxlcywgYW5kIG90aGVyIGVuaGFuY2VtZW50cwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAqIEknbSBnbGFkIHRv IGFubm91bmNlIHRoYXQgVHJhaWFuIChAdGNvemEpIGhhcyBqb2luZWQgdGhlIHByb2plY3QgYW5k CiAgIGNvbnRyaWJ1dGVkIGEgbmV3ICd0ZXh0MmdyYXBoaWNzdWInIGZpbHRlciB0byBjb252ZXJ0 IHRleHQgc3VidGl0bGVzIHRvCiAgIGdyYXBoaWMgc3VidGl0bGVzLCB3aGljaCBjYW4gaW4gdHVy biBiZSBlbmNvZGVkIGFzIGR2ZCwgZHZiIG9yIHgtc3VicwogICAoYW5kIGFueSBvdGhlciBlbmNv ZGVyIGZvciBncmFwaGljIHN1YnMgdGhhdCBtaWdodCBiZSBhZGRlZCBpbiB0aGUKICAgZnV0dXJl KS4gVGhpcyBmaWx0ZXIgY2xvc2VzIHRoZSBsYXN0IG9wZW4gImdhcCIgaW4gc3VidGl0bGUgcHJv Y2Vzc2luZy4KICogc3RyaXBzdHlsZXMgZmlsdGVyOiBub3cgYWxsb3dzIHZlcnkgZmluZS1ncmFp bmVkIGNvbnRyb2wgb3ZlciB3aGljaCBBU1MKICAgc3R5bGUgY29kZXMgc2hvdWxkIGJlIHByZXNl cnZlZCBvciBzdHJpcHBlZAogKiBzdHJpcHN0eWxlczogZG8gbm90IGRyb3AgZGlhbG9nIG1hcmdp biB2YWx1ZXMKICogc3ViZmVlZCBmaWx0ZXI6IGVsaW1pbmF0ZXMgZHVwbGljYXRlIGZyYW1lcyB3 aXRoIGR1cGxpY2F0ZSBzdGFydCB0aW1lcwogICB3aGVuICdmaXhfb3ZlcmxhcCcgaXMgc3BlY2lm aWVkCiAqIHRleHRtb2Q6IGRvIG5vdCBkcm9wIGVmZmVjdCB2YWx1ZXMKICogZ3JhcGhpY3N1YjJ0 ZXh0OiByZWR1Y2UgZm9udCBzaXplIGppdHRlcgogKiBhc3Nfc3BsaXQ6IGFkZCBmdW5jdGlvbiB0 byBzZWxlY3RpdmVseSBwcmVzZXJ2ZSBlbGVtZW50cyB3aGVuIHNwbGl0dGluZwogKiBhZGQgc3Ry aW0sIHNudWxsIGFuZCBzc2luayBhbmQgZnVydGhlciB1bmlmeSBzdWJ0aXRsZSBmcmFtZSBoYW5k bGluZyB3aXRoCiAgIGF1ZGlvIGFuZCB2aWRlbwogKiBmZm1wZWdfZmlsdGVyOiBnZXQgc2ltcGxl IGZpbHRlciBub3RhdGlvbiB3b3JraW5nIGZvciBzdWJ0aXRsZXMKCgp2NCAtIFF1YWxpdHkgSW1w cm92ZW1lbnRzCj09PT09PT09PT09PT09PT09PT09PT09PT0KCiAqIGZpbmFsbHkgYW4gdXBkYXRl ZCB2ZXJzaW9uCiAqIGluY2x1ZGVzIG1hbnkgaW1wcm92ZW1lbnRzIGZyb20gaW50ZXJuYWwgdGVz dGluZwogKiBhbGwgRkFURSB0ZXN0cyBwYXNzZWQKICogYWxsIGV4YW1wbGUgY29tbWFuZHMgZnJv bSB0aGUgZG9jcyB2ZXJpZmllZCB0byB3b3JrCiAqIGNhbid0IGxpc3QgYWxsIHRoZSBkZXRhaWwg Y2hhbmdlcy4uCiAqIEkgaGF2ZSBsZWZ0IG91dCB0aGUgZXh0cmEgY29tbWl0cyB3aGljaCBjYW4g YmUgaGFuZGxlZCBzZXBhcmF0ZWx5LCBqdXN0CiAgIGluIGNhc2Ugc29tZWJvZHkgd29uZGVycyB3 aHkgdGhlc2UgYXJlIG1pc3Npbmc6CiAgICogYXZjb2RlYy93ZWJ2dHRlbmM6IERvbid0IGVuY29k ZSBkcmF3aW5nIGNvZGVzIGFuZCBlbXB0eSBsaW5lcwogICAqIGF2Y29kZWMvd2VidnR0ZW5jOiBj b252ZXJ0IGhhcmQtc3BhY2UgdGFncyB0byDCoAogICAqIGF2dXRpbC9hc3Nfc3BsaXQ6IEFkZCBw YXJzaW5nIG9mIGhhcmQtc3BhY2UgdGFncyAoXGgpCiAgICogYXZ1dGlsL2Fzc19zcGxpdDogVHJl YXQgYWxsIGNvbnRlbnQgaW4gY3VybHkgYnJhY2VzIGFzIGhpZGRlbgogICAqIGF2dXRpbC9hc3Nf c3BsaXQ6IEZpeCBhc3MgcGFyc2luZyBvZiBzdHlsZSBjb2RlcyB3aXRoIGNvbW1lbnRzCgoKdjMg LSBSZWJhc2UKPT09PT09PT09PT0KCmR1ZSB0byBtZXJnZSBjb25mbGljdHMgLSBhcG9sb2dpZXMu CgoKQ2hhbmdlcyBpbiB2Mgo9PT09PT09PT09PT09CgogKiBhZGRlZCAuZ2l0YXR0cmlidXRlcyBm aWxlIHRvIGVuZm9yY2UgYmluYXJ5IGRpZmZzIGZvciB0aGUgdGVzdCByZWZzIHRoYXQKICAgY2Fu bm90IGJlIGFwcGxpZWQgd2hlbiBiZWluZyBzZW50IHZpYSBlLW1haWwKICogcGVyZm9ybSBmaWx0 ZXIgZ3JhcGggcmUtaW5pdCBkdWUgdG8gc3VidGl0bGUgImZyYW1lIHNpemUiIGNoYW5nZSBvbmx5 CiAgIHdoZW4gdGhlIHNpemUgd2FzIHVua25vd24gYmVmb3JlIGFuZCBub3Qgc2V0IHZpYSAtY2Fu dmFzX3NpemUKICogb3ZlcmxheXRleHRzdWJzOiBNYWtlIHN1cmUgdG8gcmVxdWVzdCBmcmFtZXMg b24gdGhlIHN1YnRpdGxlIGlucHV0CiAqIGF2ZmlsdGVyL3NwbGl0Y2M6IFN0YXJ0IHBhcnNpbmcg Y2MgZGF0YSBvbiBrZXkgZnJhbWVzIG9ubHkKICogYXZjb2RlYy93ZWJ2dHRlbmM6IERvbid0IGVu Y29kZSBhc3MgZHJhd2luZyBjb2RlcyBhbmQgZW1wdHkgbGluZXMKICogc3RyaXBzdHlsZXM6IGZp eCBtZW0gbGVhawogKiBnczJ0OiBpbXByb3ZlIGNvbG9yIGRldGVjdGlvbgogKiBnczJ0OiBlbXB0 eSBmcmFtZXMgbXVzdCBub3QgYmUgc2tpcHBlZAogKiBzdWJmZWVkOiBmaXggbmFtZQogKiB0ZXh0 bW9kOiBwcmVzZXJ2ZSBtYXJnaW5zCiAqIGFkZGVkIC5naXRhdHRyaWJ1dGVzIGZpbGUgdG8gZW5m b3JjZSBiaW5hcnkgZGlmZnMgZm9yIHRoZSB0ZXN0IHJlZnMgdGhhdAogICBjYW5ub3QgYmUgYXBw bGllZCB3aGVuIGJlaW5nIHNlbnQgdmlhIGUtbWFpbAogKiBwZXJmb3JtIGZpbHRlciBncmFwaCBy ZS1pbml0IGR1ZSB0byBzdWJ0aXRsZSAiZnJhbWUgc2l6ZSIgY2hhbmdlIG9ubHkKICAgd2hlbiB0 aGUgc2l6ZSB3YXMgdW5rbm93biBiZWZvcmUgYW5kIG5vdCBzZXQgdmlhIC1jYW52YXNfc2l6ZQog KiBhdmNvZGVjL2R2YnN1YmRlYzogRml4IGNvbmRpdGlvbnMgZm9yIGZhbGxiYWNrIHRvIGRlZmF1 bHQgcmVzb2x1dGlvbgogKiBNYWRlIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IEFuZHJlYXMKICogRml4 ZWQgZmFpbGluZyBjb21tYW5kIGxpbmUgcmVwb3J0ZWQgYnkgTWljaGFlbAoKQ2hhbmdlcyBmcm9t IHByZXZpb3VzIHZlcnNpb24gdjI0OgoKCkFWRnJhbWUKPT09PT09PQoKICogUmVtb3ZlZCBzdWJf c3RhcnRfdGltZSBUaGUgc3RhcnQgdGltZSBpcyBub3cgYWRkZWQgdG8gdGhlIHN1YnRpdGxlCiAg IHN0YXJ0X3B0cyBkdXJpbmcgZGVjb2RpbmcgVGhlIHN1Yl9lbmRfdGltZSBmaWVsZCBpcyBhZGp1 c3RlZCBhY2NvcmRpbmdseQogKiBSZW5hbWVkIHN1Yl9lbmRfdGltZSB0byBkdXJhdGlvbiB3aGlj aCBpdCBpcyBlZmZlY3RpdmVseSBhZnRlciByZW1vdmluZwogICB0aGUgc3RhcnRfdGltZQogKiBB ZGRlZCBhIHN1Yi1zdHJ1Y3QgJ3N1YnRpdGxlX3RpbWluZycgdG8gYXYgZnJhbWUgQ29udGFpbnMg c3VidGl0bGVfcHRzCiAgIHJlbmFtZWQgdG8gJ3N1YnRpdGxlX3RpbWluZy5zdGFydF9wdHMnIGFu ZCAnc3VidGl0bGVfdGltaW5nLmR1cmF0aW9uJwogKiBDaGFuZ2UgYm90aCBmaWVsZHMgdG8gKGZp eGVkKSB0aW1lX2Jhc2UgQVZfVElNRUJBU0UKICogYWRkIHJlcGVhdF9zdWIgZmllbGQgcHJvdmlk ZXMgYSBjbGVhciBpbmRpY2F0aW9uIHdoZXRoZXIgYSBzdWJ0aXRsZSBmcmFtZQogICBpcyBhbiBh Y3R1YWwgc3VidGl0bGUgZXZlbnQgb3IgYSByZXBlYXRlZCBzdWJ0aXRsZSBmcmFtZSBpbiBhIGZp bHRlcgogICBncmFwaAoKCkhlYXJ0YmVhdCBSZW1vdmFsCj09PT09PT09PT09PT09PT09CgogKiBj b21wbGV0ZWx5IHJlbW92ZWQgdGhlIGVhcmxpZXIgaGVhcnRiZWF0IGltcGxlbWVudGF0aW9uCiAq IGZpbHRlcmluZyBhcmJpdHJhdGlvbiBpcyBub3cgaW1wbGVtZW50ZWQgaW4gYSBuZXcgZmlsdGVy OiAnc3ViZmVlZCcKICogc3ViZmVlZCB3aWxsIGJlIGF1dG8taW5zZXJ0ZWQgZm9yIGNvbXBhdGli bGl0eSB3aXRoIHN1YjJ2aWRlbyBjb21tYW5kCiAgIGxpbmVzCiAqIHRoZSBuZXcgYmVoYXZpb3Ig aXMgbm90IGV4YWN0bHkgaWRlbnRpY2FsIHRvIHRoZSBlYXJsaWVyIGJlaGF2aW9yLCBidXQgaXQK ICAgYmFzaWNhbGx5IGFsbG93cyB0byBhY2hpZXZlIHRoZSBzYW1lIHJlc3VsdHMKICogdGhlcmUn cyBhIHNtYWxsIHJlbWFpbmRlciwgbm93IG5hbWVkIHN1YnRpdGxlIGtpY2tvZmYgd2hpY2ggc2Vy dmVzIHRvIGdldAogICB0aGluZ3MgKGluIHRoZSBmaWx0ZXIgZ3JhcGgpIGdvaW5nIHJpZ2h0IGZy b20gdGhlIHN0YXJ0CgoKTmV3ICdzdWJmZWVkJyBGaWx0ZXIKPT09PT09PT09PT09PT09PT09PT0K CiAqIGEgdmVyc2F0aWxlIGZpbHRlciBmb3Igc29sdmluZyBhbGwga2luZHMgb2YgcHJvYmxlbXMg d2l0aCBzdWJ0aWxlIGZyYW1lCiAgIGZsb3cgaW4gZmlsdGVyIGdyYXBocwogKiBDYW4gYmUgaW5z ZXJ0ZWQgYXQgYW55IHBvc2l0aW9uIGluIGEgZ3JhcGgKICogQXV0by1pbnNlcnRlZCBmb3Igc3Vi MnZpZGVvIGNvbW1hbmQgbGluZXMgKGluIHJlcGVhdC1tb2RlKQogKiBBbGxvd3MgZHVyYXRpb24g Zml4dXAgZGVsYXkgaW5wdXQgZnJhbWVzIHdpdGggdW5rbm93biBkdXJhdGlvbiBhbmQgaW5mZXIK ICAgZHVyYXRpb24gZnJvbSBzdGFydCBvZiBzdWJzZXF1ZW50IGZyYW1lCiAqIFByb3ZpZGVzIG11 bHRpcGxlIG1vZGVzIG9mIG9wZXJhdGlvbjoKICAgKiByZXBlYXQgbW9kZSAoZGVmYXVsdCkgUXVl dWVzIGlucHV0IGZyYW1lcyBPdXRwdXRzIGZyYW1lcyBhdCBhIGZpeGVkCiAgICAgKGNvbmZpZ3Vy YWJsZSkgcmF0ZSBFaXRoZXIgc2VuZHMgYSBtYXRjaGluZyBpbnB1dCBmcmFtZSAocmVwZWF0ZWRs eSkgb3IKICAgICBlbXB0eSBmcmFtZXMgb3RoZXJ3aXNlCiAgICogc2NhdHRlciBtb2RlIHNpbWls YXIgdG8gcmVwZWF0IG1vZGUsIGJ1dCBzcGxpdHMgaW5wdXQgZnJhbWVzIGJ5CiAgICAgZHVyYXRp b24gaW50byBzbWFsbCBzZWdtZW50cyB3aXRoIHNhbWUgY29udGVudAogICAqIGZvcndhcmQgbW9k ZSBObyBmaXhlZCBvdXRwdXQgcmF0ZSBVc2VmdWwgaW4gY29tYmluYXRpb24gd2l0aCBkdXJhdGlv bgogICAgIGZpeHVwIG9yIG92ZXJsYXAgZml4dXAKCgpmZm1wZWcgVG9vbCBDaGFuZ2VzCj09PT09 PT09PT09PT09PT09PT0KCiAqIGRlbGF5IHN1YnRpdGxlIG91dHB1dCBzdHJlYW0gaW5pdGlhbGl6 YXRpb24gKGxpa2UgZm9yIGF1ZGlvIGFuZCB2aWRlbykKICAgVGhpcyBpcyBuZWVkZWQgZm9yIGV4 YW1wbGUgd2hlbiBhIGZvcm1hdCBoZWFkZXIgZGVwZW5kcyBvbiBoYXZpbmcKICAgcmVjZWl2ZWQg YW4gaW5pdGlhbCBmcmFtZSB0byBkZXJpdmUgY2VydGFpbiBoZWFkZXIgdmFsdWVzIGZyb20KICog ZGVjb2Rpbmc6IHNldCBzdWJ0aXRsZSBmcmFtZSBzaXplIGZyb20gZGVjb2RpbmcgY29udGV4dAog KiByZS1pbml0IGdyYXBoIHdoZW4gc3VidGl0bGUgc2l6ZSBjaGFuZ2VzCiAqIGFsd2F5cyBpbnNl cnQgc3Vic2NhbGUgZmlsdGVyIGZvciBzdWIydmlkZW8gY29tbWFuZCBsaW5lcyAodG8gZW5zdXJl CiAgIGNvcnJlY3Qgc2NhbGluZykKCgpTdWJ0aXRsZSBFbmNvZGluZwo9PT09PT09PT09PT09PT09 PQoKICogaWdub3JlIHJlcGVhdGVkIGZyYW1lcyBmb3IgZW5jb2RpbmcgYmFzZWQgb24gcmVwZWF0 X3N1YiBmaWVsZCBpbiBBVkZyYW1lCiAqIHN1cHBvcnQgbXVsdGktYXJlYSBlbmNvZGluZyBmb3Ig dGV4dCBzdWJ0aXRsZXMgU3VidGl0bGUgT0NSIGNhbiBjcmVhdGUKICAgbXVsdGlwbGUgYXJlYXMg YXQgZGlmZmVyZW50IHBvc2l0aW9ucy4gUHJldmlvdXNseSwgdGhlIHRleHRzIHdlcmUgYWx3YXlz CiAgIHNxdWFzaGVkIGludG8gYSBzaW5nbGUgYXJlYSAoJ3N1YnRpdGxlIHJlY3QnKSwgd2hpY2gg d2FzIG5vdCBpZGVhbC4KICAgTXVsdGlwbGUgdGV4dCBhcmVhcyBhcmUgbm93IGdlbmVyYWxseSBz dXBwb3J0ZWQ6CiAgICogQVNTIEVuY29kZXIgQ2hhbmdlZCB0byB1c2UgdGhlICdyZWNlaXZlX3Bh Y2tldCcgZW5jb2RpbmcgQVBJIEEgc2luZ2xlCiAgICAgZnJhbWUgd2l0aCBtdWx0aXBsZSB0ZXh0 IGFyZWFzIHdpbGwgY3JlYXRlIG11bHRpcGxlIHBhY2tldHMgbm93CiAgICogQWxsIG90aGVyIHRl eHQgc3VidGl0bGUgZW5jb2RlcnMgQSBuZXdsaW5lIGlzIGluc2VydGVkIGJldHdlZW4gdGhlIHRl eHQKICAgICBmcm9tIG11bHRpcGxlIGFyZWFzCgoKZ3JhcGhpY3N1YjJ0ZXh0IChPQ1IpCj09PT09 PT09PT09PT09PT09PT09PQoKICogZW5oYW5jZWQgcHJlcHJvY2Vzc2luZwogICAqIHVzaW5nIGVs YmcgYWxnb3JpdGhtIGZvciBjb2xvciBxdWFudGl6YXRpb24KICAgKiBkZXRlY3Rpb24gYW5kIHJl bW92YWwgb2YgdGV4dCBvdXRsaW5lcwogICAqIG1hcC1iYXNlZCBpZGVudGlmaWNhdGlvbiBvZiBj b2xvcnMgcGVyIHdvcmQgKHRleHQsIG91dGxpbmUsIGJhY2tncm91bmQpCiAqIGFkZCBvcHRpb24g Zm9yIGR1cmF0aW9uIGZpeHVwCiAqIGFkZCBvcHRpb24gdG8gZHVtcCBwcmVwcm9jZXNzaW5nIGJp dG1hcHMKICogUmVjb2duaXplIGZvcm1hdHRpbmcgYW5kIGFwcGx5IGFzIEFTUyBpbmxpbmUgc3R5 bGVzCiAgICogcGVyIHdvcmQoISkKICAgKiBwYXJhZ3JhcGggYWxpZ25tZW50CiAgICogcG9zaXRp b25pbmcKICAgKiBmb250IG5hbWVzCiAgICogZm9udCBzaXplCiAgICogZm9udCBzdHlsZSAoaXRh bGljLCB1bmRlcmxpbmUsIGJvbGQpCiAgICogdGV4dCBjb2xvciwgb3V0bGluZSBjb2xvcgoKCk90 aGVyIEZpbHRlciBDaGFuZ2VzCj09PT09PT09PT09PT09PT09PT09CgogKiBhbGw6IE1ha2Ugc3Vy ZSB0byBmb3J3YXJkIGFsbCBsaW5rIHByb3BlcnRpZXMgKHRpbWUgYmFzZSwgZnJhbWUgcmF0ZSwg dywKICAgaCkgd2hlcmUgYXBwcm9wcmlhdGUKICogb3ZlcmxheXRleHRzdWJzOiByZXF1ZXN0IGZy YW1lcyBvbiB0aGUgc3VidGl0bGUgaW5wdXQKICogb3ZlcmxheXRleHRzdWJzOiBkaXNhYmxlIHJl YWQtb3JkZXIgY2hlY2tpbmcKICogb3ZlcmxheXRleHRzdWJzOiBpbXByb3ZlIGltcGxlbWVudGF0 aW9uIG9mIHJlbmRlcl9sYXRlc3Rfb25seQogKiBvdmVybGF5dGV4dHN1YnM6IGVuc3VyZSBlcXVh bCBpbi9vdXQgdmlkZW8gZm9ybWF0cwogKiBzcGxpdGNjOiBkZXJpdmUgZnJhbWVyYXRlIGZyb20g cmVhbHRpbWVfbGF0ZW5jeQogKiBncmFwaGljc3ViMnZpZGVvOiBpbXBsZW1lbnQgY2FjaGluZyBv ZiBjb252ZXJ0ZWQgZnJhbWVzCiAqIGdyYXBoaWNzdWIydmlkZW86IHVzZSAxeDEgb3V0cHV0IGZy YW1lIHNpemUgYXMgbG9uZyBhcyBzdWJ0aXRsZSBzaXplIGlzCiAgIHVua25vd24gKDB4MCkKClBs dXMgYSBkb3plbiBvZiB0aGluZ3MgSSBmb3Jnb3QuLgoKc29mdHdvcmt6ICgyNSk6CiAgYXZjb2Rl YyxhdnV0aWw6IE1vdmUgZW51bSBBVlN1YnRpdGxlVHlwZSB0byBhdnV0aWwsIGFkZCBuZXcgYW5k CiAgICBkZXByZWNhdGUgb2xkIHZhbHVlcwogIGF2dXRpbC9mcmFtZTogUHJlcGFyZSBBVkZyYW1l IGZvciBzdWJ0aXRsZSBoYW5kbGluZwogIGF2Y29kZWMvc3VidGl0bGVzOiBJbnRyb2R1Y2UgbmV3 IGZyYW1lLWJhc2VkIHN1YnRpdGxlIGRlY29kaW5nIEFQSQogIGF2Y29kZWMvbGlienZiaTogc2V0 IHN1YnRpdGxlIHR5cGUKICBhdmZpbHRlci9zdWJ0aXRsZXM6IFVwZGF0ZSB2Zl9zdWJ0aXRsZXMg dG8gdXNlIG5ldyBkZWNvZGluZyBhcGkKICBhdmNvZGVjLGF2dXRpbDogTW92ZSBhc3MgaGVscGVy IGZ1bmN0aW9ucyB0byBhdnV0aWwgYXMgYXZwcml2XyBhbmQKICAgIGV4dGVuZCBhc3MgZGlhbG9n IHBhcnNpbmcKICBhdmNvZGVjL3N1YnRpdGxlczogUmVwbGFjZSBkZXByZWNhdGVkIGVudW0gdmFs dWVzCiAgZmZ0b29scy9wbGF5LHByb2JlOiBBZGp1c3QgZm9yIHN1YnRpdGxlIGNoYW5nZXMKICBh dmZpbHRlci9zdWJ0aXRsZXM6IEFkZCBzdWJ0aXRsZXMuYyBmb3Igc3VidGl0bGUgZnJhbWUgYWxs b2NhdGlvbgogIGF2ZmlsdGVyL2F2ZmlsdGVyOiBIYW5kbGUgc3VidGl0bGUgZnJhbWVzCiAgYXZm aWx0ZXIvYXZmaWx0ZXI6IEZpeCBoYXJkY29kZWQgaW5wdXQgaW5kZXgKICBhdmZpbHRlci9zYnVm ZmVyOiBBZGQgc2J1ZmZlcnNyYyBhbmQgc2J1ZmZlcnNpbmsgZmlsdGVycwogIGF2ZmlsdGVyL292 ZXJsYXlncmFwaGljc3ViczogQWRkIG92ZXJsYXlncmFwaGljc3VicyBhbmQKICAgIGdyYXBoaWNz dWIydmlkZW8gZmlsdGVycwogIGF2ZmlsdGVyL292ZXJsYXl0ZXh0c3ViczogQWRkIG92ZXJsYXl0 ZXh0c3VicyBhbmQgdGV4dHN1YnMydmlkZW8KICAgIGZpbHRlcnMKICBhdmZpbHRlci90ZXh0bW9k OiBBZGQgdGV4dG1vZCwgY2Vuc29yIGFuZCBzaG93X3NwZWFrZXIgZmlsdGVycwogIGF2ZmlsdGVy L3N0cmlwc3R5bGVzOiBBZGQgc3RyaXBzdHlsZXMgZmlsdGVyCiAgYXZmaWx0ZXIvc3BsaXRjYzog QWRkIHNwbGl0Y2MgZmlsdGVyIGZvciBjbG9zZWQgY2FwdGlvbiBoYW5kbGluZwogIGF2ZmlsdGVy L2dyYXBoaWNzdWIydGV4dDogQWRkIG5ldyBncmFwaGljc3ViMnRleHQgZmlsdGVyIChPQ1IpCiAg YXZmaWx0ZXIvc3Vic2NhbGU6IEFkZCBmaWx0ZXIgZm9yIHNjYWxpbmcgYW5kL29yIHJlLWFycmFu Z2luZwogICAgZ3JhcGhpY2FsIHN1YnRpdGxlcwogIGF2ZmlsdGVyL3N1YmZlZWQ6IGFkZCBzdWJ0 aXRsZSBmZWVkIGZpbHRlcgogIGF2ZmlsdGVyL3RleHQyZ3JhcGhpY3N1YjogQWRkZWQgdGV4dDJn cmFwaGljc3ViIHN1YnRpdGxlIGZpbHRlcgogIGF2ZmlsdGVyL3NudWxsLHN0cmltOiBBZGQgc251 bGwgYW5kIHN0cmltIGZpbHRlcnMKICBhdmNvZGVjL3N1YnRpdGxlczogTWlncmF0ZSBzdWJ0aXRs ZSBlbmNvZGVycyB0byBmcmFtZS1iYXNlZCBBUEkKICBmZnRvb2xzL2ZmbXBlZzogSW50cm9kdWNl IHN1YnRpdGxlIGZpbHRlcmluZyBhbmQgbmV3IGZyYW1lLWJhc2VkCiAgICBzdWJ0aXRsZSBlbmNv ZGluZwogIGF2Y29kZWMvZHZic3ViZGVjOiBGaXggY29uZGl0aW9ucyBmb3IgZmFsbGJhY2sgdG8g ZGVmYXVsdCByZXNvbHV0aW9uCgogY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEwICstCiBkb2MvZmlsdGVycy50ZXhpICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA4MDcgKysrKysrKysrKysrKysKIGZmdG9vbHMvZmZtcGVnLmMgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDYxMyArKysrKy0tLS0tCiBmZnRvb2xzL2ZmbXBlZy5oICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMTcgKy0KIGZmdG9vbHMvZmZtcGVnX2ZpbHRlci5jICAgICAgICAg ICAgICAgICAgIHwgIDI3MCArKystLQogZmZ0b29scy9mZm1wZWdfaHcuYyAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAyICstCiBmZnRvb2xzL2ZmbXBlZ19vcHQuYyAgICAgICAgICAgICAgICAg ICAgICB8ICAgMjggKy0KIGZmdG9vbHMvZmZwbGF5LmMgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEwMiArLQogZmZ0b29scy9mZnByb2JlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDQ3ICstCiBsaWJhdmNvZGVjL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTYg Ky0KIGxpYmF2Y29kZWMvYXNzLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE1MSArLS0K IGxpYmF2Y29kZWMvYXNzX3NwbGl0LmggICAgICAgICAgICAgICAgICAgIHwgIDE5MSAtLS0tCiBs aWJhdmNvZGVjL2Fzc2RlYy5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIGxpYmF2 Y29kZWMvYXNzZW5jLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDE5MSArKystCiBsaWJhdmNv ZGVjL2F2Y29kZWMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKwogbGliYXZjb2RlYy9h dmNvZGVjLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICstCiBsaWJhdmNvZGVjL2NjYXB0 aW9uX2RlYy5jICAgICAgICAgICAgICAgICB8ICAgMjAgKy0KIGxpYmF2Y29kZWMvY29kZWNfaW50 ZXJuYWwuaCAgICAgICAgICAgICAgIHwgICAxMiAtCiBsaWJhdmNvZGVjL2RlY29kZS5jICAgICAg ICAgICAgICAgICAgICAgICB8ICAgNjAgKy0KIGxpYmF2Y29kZWMvZHZic3ViZGVjLmMgICAgICAg ICAgICAgICAgICAgIHwgICA1MyArLQogbGliYXZjb2RlYy9kdmJzdWJlbmMuYyAgICAgICAgICAg ICAgICAgICAgfCAgIDk2ICstCiBsaWJhdmNvZGVjL2R2ZHN1YmRlYy5jICAgICAgICAgICAgICAg ICAgICB8ICAgIDIgKy0KIGxpYmF2Y29kZWMvZHZkc3ViZW5jLmMgICAgICAgICAgICAgICAgICAg IHwgIDEwMiArLQogbGliYXZjb2RlYy9lbmNvZGUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAg IDYxICstCiBsaWJhdmNvZGVjL2ludGVybmFsLmggICAgICAgICAgICAgICAgICAgICB8ICAgMTYg KwogbGliYXZjb2RlYy9qYWNvc3ViZGVjLmMgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBs aWJhdmNvZGVjL2xpYmFyaWJiMjQuYyAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIGxpYmF2 Y29kZWMvbGlienZiaS10ZWxldGV4dGRlYy5jICAgICAgICAgIHwgICAxNyArLQogbGliYXZjb2Rl Yy9taWNyb2R2ZGRlYy5jICAgICAgICAgICAgICAgICAgfCAgICA3ICstCiBsaWJhdmNvZGVjL21v dnRleHRkZWMuYyAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIGxpYmF2Y29kZWMvbW92dGV4 dGVuYy5jICAgICAgICAgICAgICAgICAgIHwgIDEyNiArKy0KIGxpYmF2Y29kZWMvbXBsMmRlYy5j ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogbGliYXZjb2RlYy9wZ3NzdWJkZWMuYyAg ICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBsaWJhdmNvZGVjL3JlYWx0ZXh0ZGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDIgKy0KIGxpYmF2Y29kZWMvc2FtaWRlYy5jICAgICAgICAgICAg ICAgICAgICAgIHwgICAgMiArLQogbGliYXZjb2RlYy9zcnRkZWMuYyAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAyICstCiBsaWJhdmNvZGVjL3NydGVuYy5jICAgICAgICAgICAgICAgICAgICAg ICB8ICAxMTYgKy0KIGxpYmF2Y29kZWMvc3Vidmlld2VyZGVjLmMgICAgICAgICAgICAgICAgIHwg ICAgMiArLQogbGliYXZjb2RlYy90ZXN0cy9hdmNvZGVjLmMgICAgICAgICAgICAgICAgfCAgICA1 ICstCiBsaWJhdmNvZGVjL3RleHRkZWMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0K IGxpYmF2Y29kZWMvdHRtbGVuYy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDExNCArLQogbGli YXZjb2RlYy91dGlscy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTg1ICsrLQogbGliYXZj b2RlYy93ZWJ2dHRkZWMuYyAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBsaWJhdmNvZGVj L3dlYnZ0dGVuYy5jICAgICAgICAgICAgICAgICAgICB8ICAgOTQgKy0KIGxpYmF2Y29kZWMveHN1 YmRlYy5jICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogbGliYXZjb2RlYy94c3ViZW5j LmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDg4ICstCiBsaWJhdmZpbHRlci9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICAgICB8ICAgMTggKwogbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jICAg ICAgICAgICAgICAgICAgfCAgIDE5ICsKIGxpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMgICAgICAgICAg ICAgICAgICAgIHwgICA0MiArLQogbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaCAgICAgICAgICAgICAg ICAgICAgfCAgIDExICsKIGxpYmF2ZmlsdGVyL2F2ZmlsdGVyZ3JhcGguYyAgICAgICAgICAgICAg IHwgICAgNSArCiBsaWJhdmZpbHRlci9idWZmZXJzaW5rLmMgICAgICAgICAgICAgICAgICB8ICAg NTQgKwogbGliYXZmaWx0ZXIvYnVmZmVyc2luay5oICAgICAgICAgICAgICAgICAgfCAgICA3ICsK IGxpYmF2ZmlsdGVyL2J1ZmZlcnNyYy5jICAgICAgICAgICAgICAgICAgIHwgICA3MiArKwogbGli YXZmaWx0ZXIvYnVmZmVyc3JjLmggICAgICAgICAgICAgICAgICAgfCAgICAxICsKIGxpYmF2Zmls dGVyL2Zvcm1hdHMuYyAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArCiBsaWJhdmZpbHRlci9m b3JtYXRzLmggICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogbGliYXZmaWx0ZXIvaW50ZXJu YWwuaCAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICstCiBsaWJhdmZpbHRlci9zZl9ncmFwaGlj c3ViMnRleHQuYyAgICAgICAgICB8IDExMzcgKysrKysrKysrKysrKysrKysrKwogbGliYXZmaWx0 ZXIvc2Zfc251bGwuYyAgICAgICAgICAgICAgICAgICAgfCAgIDUwICsKIGxpYmF2ZmlsdGVyL3Nm X3NwbGl0Y2MuYyAgICAgICAgICAgICAgICAgIHwgIDM5NSArKysrKysrCiBsaWJhdmZpbHRlci9z Zl9zdHJpcHN0eWxlcy5jICAgICAgICAgICAgICB8ICAyMzcgKysrKwogbGliYXZmaWx0ZXIvc2Zf c3ViZmVlZC5jICAgICAgICAgICAgICAgICAgfCAgNDEyICsrKysrKysKIGxpYmF2ZmlsdGVyL3Nm X3N1YnNjYWxlLmMgICAgICAgICAgICAgICAgIHwgIDg4NCArKysrKysrKysrKysrKysKIGxpYmF2 ZmlsdGVyL3NmX3RleHQyZ3JhcGhpY3N1Yi5jICAgICAgICAgIHwgIDYzNCArKysrKysrKysrKwog bGliYXZmaWx0ZXIvc2ZfdGV4dG1vZC5jICAgICAgICAgICAgICAgICAgfCAgNzEwICsrKysrKysr KysrKwogbGliYXZmaWx0ZXIvc3VidGl0bGVzLmMgICAgICAgICAgICAgICAgICAgfCAgIDYzICsr CiBsaWJhdmZpbHRlci9zdWJ0aXRsZXMuaCAgICAgICAgICAgICAgICAgICB8ICAgNDQgKwogbGli YXZmaWx0ZXIvdHJpbS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYwICstCiBsaWJhdmZp bHRlci92Zl9vdmVybGF5Z3JhcGhpY3N1YnMuYyAgICAgICB8ICA3NjUgKysrKysrKysrKysrKwog bGliYXZmaWx0ZXIvdmZfb3ZlcmxheXRleHRzdWJzLmMgICAgICAgICAgfCAgNjgwICsrKysrKysr KysrCiBsaWJhdmZpbHRlci92Zl9zdWJ0aXRsZXMuYyAgICAgICAgICAgICAgICB8ICAgNjcgKy0K IGxpYmF2dXRpbC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiB7bGli YXZjb2RlYyA9PiBsaWJhdnV0aWx9L2Fzcy5jICAgICAgICAgICB8ICAxMTUgKy0KIGxpYmF2dXRp bC9hc3NfaW50ZXJuYWwuaCAgICAgICAgICAgICAgICAgIHwgIDEzNSArKysKIHtsaWJhdmNvZGVj ID0+IGxpYmF2dXRpbH0vYXNzX3NwbGl0LmMgICAgIHwgIDE3OSArKy0KIGxpYmF2dXRpbC9hc3Nf c3BsaXRfaW50ZXJuYWwuaCAgICAgICAgICAgIHwgIDI1NCArKysrKwogbGliYXZ1dGlsL2ZyYW1l LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjA2ICsrKy0KIGxpYmF2dXRpbC9mcmFtZS5o ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4NSArLQogbGliYXZ1dGlsL3N1YmZtdC5jICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDQ1ICsKIGxpYmF2dXRpbC9zdWJmbXQuaCAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDExNSArKwogbGliYXZ1dGlsL3ZlcnNpb24uaCAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAxICsKIHRlc3RzL3JlZi9mYXRlL2ZpbHRlci1vdmVybGF5LWR2ZHN1 Yi0yMzk3IHwgIDE4MiArLS0KIHRlc3RzL3JlZi9mYXRlL3N1Yi1kdmIgICAgICAgICAgICAgICAg ICAgIHwgIDE2MiArLS0KIHRlc3RzL3JlZi9mYXRlL3N1Yi1zY2MgICAgICAgICAgICAgICAgICAg IHwgICAgMSAtCiB0ZXN0cy9yZWYvZmF0ZS9zdWIydmlkZW8gICAgICAgICAgICAgICAgICB8IDEw OTEgKysrKysrKysrKysrKysrKystCiB0ZXN0cy9yZWYvZmF0ZS9zdWIydmlkZW9fYmFzaWMgICAg ICAgICAgICB8IDEyMzggKysrKysrKysrKysrKysrKysrKy0tCiB0ZXN0cy9yZWYvZmF0ZS9zdWIy dmlkZW9fdGltZV9saW1pdGVkICAgICB8ICAgNzggKy0KIDg4IGZpbGVzIGNoYW5nZWQsIDEyNDI0 IGluc2VydGlvbnMoKyksIDE2MDQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgbGli YXZjb2RlYy9hc3Nfc3BsaXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL3NmX2dy YXBoaWNzdWIydGV4dC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmaWx0ZXIvc2Zfc251bGwu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL3NmX3NwbGl0Y2MuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmF2ZmlsdGVyL3NmX3N0cmlwc3R5bGVzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBsaWJhdmZpbHRlci9zZl9zdWJmZWVkLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZpbHRl ci9zZl9zdWJzY2FsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmaWx0ZXIvc2ZfdGV4dDJn cmFwaGljc3ViLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZpbHRlci9zZl90ZXh0bW9kLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZpbHRlci9zdWJ0aXRsZXMuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGxpYmF2ZmlsdGVyL3N1YnRpdGxlcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZm aWx0ZXIvdmZfb3ZlcmxheWdyYXBoaWNzdWJzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZp bHRlci92Zl9vdmVybGF5dGV4dHN1YnMuYwogcmVuYW1lIHtsaWJhdmNvZGVjID0+IGxpYmF2dXRp bH0vYXNzLmMgKDU5JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdnV0aWwvYXNzX2ludGVybmFs LmgKIHJlbmFtZSB7bGliYXZjb2RlYyA9PiBsaWJhdnV0aWx9L2Fzc19zcGxpdC5jICg3MSUpCiBj cmVhdGUgbW9kZSAxMDA2NDQgbGliYXZ1dGlsL2Fzc19zcGxpdF9pbnRlcm5hbC5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgbGliYXZ1dGlsL3N1YmZtdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZ1 dGlsL3N1YmZtdC5oCgoKYmFzZS1jb21taXQ6IDZhODI0MTJiZjMzMTA4MTExZWIzZjYzMDc2ZmQ1 YTUxMzQ5YWUxMTQKUHVibGlzaGVkLUFzOiBodHRwczovL2dpdGh1Yi5jb20vZmZzdGFnaW5nL0ZG bXBlZy9yZWxlYXNlcy90YWcvcHItZmZzdGFnaW5nLTE4JTJGc29mdHdvcmt6JTJGc3VibWl0X3N1 YmZpbHRlcmluZy12NgpGZXRjaC1JdC1WaWE6IGdpdCBmZXRjaCBodHRwczovL2dpdGh1Yi5jb20v ZmZzdGFnaW5nL0ZGbXBlZyBwci1mZnN0YWdpbmctMTgvc29mdHdvcmt6L3N1Ym1pdF9zdWJmaWx0 ZXJpbmctdjYKUHVsbC1SZXF1ZXN0OiBodHRwczovL2dpdGh1Yi5jb20vZmZzdGFnaW5nL0ZGbXBl Zy9wdWxsLzE4CgpSYW5nZS1kaWZmIHZzIHY1OgoKICAxOiAgYWEzMmI5MDQ4ZiA9ICAxOiAgYWEz MmI5MDQ4ZiBhdmNvZGVjLGF2dXRpbDogTW92ZSBlbnVtIEFWU3VidGl0bGVUeXBlIHRvIGF2dXRp bCwgYWRkIG5ldyBhbmQgZGVwcmVjYXRlIG9sZCB2YWx1ZXMKICAyOiAgZDVhYjlkMTkxOSA9ICAy OiAgZDVhYjlkMTkxOSBhdnV0aWwvZnJhbWU6IFByZXBhcmUgQVZGcmFtZSBmb3Igc3VidGl0bGUg aGFuZGxpbmcKICAzOiAgMGE2ODVhNmIxOSA9ICAzOiAgMGE2ODVhNmIxOSBhdmNvZGVjL3N1YnRp dGxlczogSW50cm9kdWNlIG5ldyBmcmFtZS1iYXNlZCBzdWJ0aXRsZSBkZWNvZGluZyBBUEkKICA0 OiAgMGI2OWIxY2UxOSA9ICA0OiAgMGI2OWIxY2UxOSBhdmNvZGVjL2xpYnp2Ymk6IHNldCBzdWJ0 aXRsZSB0eXBlCiAgNTogIDBjMjA5MWU1N2MgPSAgNTogIDBjMjA5MWU1N2MgYXZmaWx0ZXIvc3Vi dGl0bGVzOiBVcGRhdGUgdmZfc3VidGl0bGVzIHRvIHVzZSBuZXcgZGVjb2RpbmcgYXBpCiAgNjog IDQ5MDNjZGQxY2QgPSAgNjogIDQ5MDNjZGQxY2QgYXZjb2RlYyxhdnV0aWw6IE1vdmUgYXNzIGhl bHBlciBmdW5jdGlvbnMgdG8gYXZ1dGlsIGFzIGF2cHJpdl8gYW5kIGV4dGVuZCBhc3MgZGlhbG9n IHBhcnNpbmcKICA3OiAgOThmMTJhZDdlOSA9ICA3OiAgOThmMTJhZDdlOSBhdmNvZGVjL3N1YnRp dGxlczogUmVwbGFjZSBkZXByZWNhdGVkIGVudW0gdmFsdWVzCiAgODogIDEyYzhhMzA4ZDMgPSAg ODogIDEyYzhhMzA4ZDMgZmZ0b29scy9wbGF5LHByb2JlOiBBZGp1c3QgZm9yIHN1YnRpdGxlIGNo YW5nZXMKICA5OiAgMmU1NWRiZTE4MCA9ICA5OiAgMmU1NWRiZTE4MCBhdmZpbHRlci9zdWJ0aXRs ZXM6IEFkZCBzdWJ0aXRsZXMuYyBmb3Igc3VidGl0bGUgZnJhbWUgYWxsb2NhdGlvbgogMTA6ICBj OTMxMDQxMTAzICEgMTA6ICAwZDk1M2RlZGNiIGF2ZmlsdGVyL2F2ZmlsdGVyOiBIYW5kbGUgc3Vi dGl0bGUgZnJhbWVzCiAgICAgQEAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYzogc3RhdGljIHZvaWQg dGxvZ19yZWYodm9pZCAqY3R4LCBBVkZyYW1lICpyZWYsIGludCBlbmQpCiAgICAgICAgICAgfQog ICAgICAgCiAgICAgICAgICAgZmZfdGxvZyhjdHgsICJdJXMiLCBlbmQgPyAiXG4iIDogIiIpOwog ICAgICtAQCBsaWJhdmZpbHRlci9hdmZpbHRlci5jOiBpbnQgYXZmaWx0ZXJfY29uZmlnX2xpbmtz KEFWRmlsdGVyQ29udGV4dCAqZmlsdGVyKQogICAgICsgCiAgICAgKyAgICAgICAgICAgICAgICAg aWYgKCFsaW5rLT50aW1lX2Jhc2UubnVtICYmICFsaW5rLT50aW1lX2Jhc2UuZGVuKQogICAgICsg ICAgICAgICAgICAgICAgICAgICBsaW5rLT50aW1lX2Jhc2UgPSAoQVZSYXRpb25hbCkgezEsIGxp bmstPnNhbXBsZV9yYXRlfTsKICAgICArKwogICAgICsrICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICsrCiAgICAgKysgICAgICAgICAgICBjYXNlIEFWTUVESUFfVFlQRV9TVUJUSVRMRToKICAg ICArKyAgICAgICAgICAgICAgICBpZiAoIWxpbmstPnRpbWVfYmFzZS5udW0gJiYgIWxpbmstPnRp bWVfYmFzZS5kZW4pCiAgICAgKysgICAgICAgICAgICAgICAgICAgIGxpbmstPnRpbWVfYmFzZSA9 IGlubGluayA/IGlubGluay0+dGltZV9iYXNlIDogQVZfVElNRV9CQVNFX1E7CiAgICAgKysKICAg ICArKyAgICAgICAgICAgICAgICBicmVhazsKICAgICArICAgICAgICAgICAgIH0KICAgICArIAog ICAgICsgICAgICAgICAgICAgaWYgKGxpbmstPnNyYy0+bmJfaW5wdXRzICYmIGxpbmstPnNyYy0+ aW5wdXRzWzBdLT5od19mcmFtZXNfY3R4ICYmCiAgICAgIEBAIGxpYmF2ZmlsdGVyL2F2ZmlsdGVy LmM6IGludCBmZl9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFt ZSkKICAgICAgICAgICAgICAgICAgIGF2X2Fzc2VydDEoZnJhbWUtPndpZHRoICAgICAgICAgICAg ICAgPT0gbGluay0+dyk7CiAgICAgICAgICAgICAgICAgICBhdl9hc3NlcnQxKGZyYW1lLT5oZWln aHQgICAgICAgICAgICAgICA9PSBsaW5rLT5oKTsKIDExOiAgMzZjYWI1NWZmMiA9IDExOiAgYjQ2 MmZhMmMyZiBhdmZpbHRlci9hdmZpbHRlcjogRml4IGhhcmRjb2RlZCBpbnB1dCBpbmRleAogMTI6 ICBmNDEwNzA0NzljID0gMTI6ICBmY2FiYjUzNzUwIGF2ZmlsdGVyL3NidWZmZXI6IEFkZCBzYnVm ZmVyc3JjIGFuZCBzYnVmZmVyc2luayBmaWx0ZXJzCiAxMzogIDliZmFiYTRhY2UgPSAxMzogIDll MTZkYmNlY2QgYXZmaWx0ZXIvb3ZlcmxheWdyYXBoaWNzdWJzOiBBZGQgb3ZlcmxheWdyYXBoaWNz dWJzIGFuZCBncmFwaGljc3ViMnZpZGVvIGZpbHRlcnMKIDE0OiAgOTE4ZmQ5YWFmNSA9IDE0OiAg YTE3MDQ4Y2ZmZiBhdmZpbHRlci9vdmVybGF5dGV4dHN1YnM6IEFkZCBvdmVybGF5dGV4dHN1YnMg YW5kIHRleHRzdWJzMnZpZGVvIGZpbHRlcnMKIDE1OiAgYTM2MWFkMzVjNSA9IDE1OiAgNjMzMGEz MzdiMiBhdmZpbHRlci90ZXh0bW9kOiBBZGQgdGV4dG1vZCwgY2Vuc29yIGFuZCBzaG93X3NwZWFr ZXIgZmlsdGVycwogMTY6ICBiY2E5MGViYzNlID0gMTY6ICA3MzJlMmZiZjdkIGF2ZmlsdGVyL3N0 cmlwc3R5bGVzOiBBZGQgc3RyaXBzdHlsZXMgZmlsdGVyCiAxNzogIDZlNDg4ZTQ5NWYgPSAxNzog IDRkZjBkMTIxMzAgYXZmaWx0ZXIvc3BsaXRjYzogQWRkIHNwbGl0Y2MgZmlsdGVyIGZvciBjbG9z ZWQgY2FwdGlvbiBoYW5kbGluZwogMTg6ICAxMDU3ZGZmN2RhID0gMTg6ICAyN2JmNTA1MDc4IGF2 ZmlsdGVyL2dyYXBoaWNzdWIydGV4dDogQWRkIG5ldyBncmFwaGljc3ViMnRleHQgZmlsdGVyIChP Q1IpCiAxOTogIDRlODVmYjVkMmYgPSAxOTogIDhiOThhMzI4OTUgYXZmaWx0ZXIvc3Vic2NhbGU6 IEFkZCBmaWx0ZXIgZm9yIHNjYWxpbmcgYW5kL29yIHJlLWFycmFuZ2luZyBncmFwaGljYWwgc3Vi dGl0bGVzCiAyMDogIDg4ZThhZGI4ODkgPSAyMDogIGRlMWQxZGI0MWMgYXZmaWx0ZXIvc3ViZmVl ZDogYWRkIHN1YnRpdGxlIGZlZWQgZmlsdGVyCiAyMTogIGE5NmJiNWM3ODggISAyMTogIGYzM2Rm NjRlYjQgYXZmaWx0ZXIvdGV4dDJncmFwaGljc3ViOiBBZGRlZCB0ZXh0MmdyYXBoaWNzdWIgc3Vi dGl0bGUgZmlsdGVyCiAgICAgQEAKICAgICAgICMjIE1ldGFkYXRhICMjCiAgICAgLUF1dGhvcjog dGNvemEgPHRyYWlhbi5jb3phQGdtYWlsLmNvbT4KICAgICArQXV0aG9yOiBzb2Z0d29ya3ogPHNv ZnR3b3JrekBob3RtYWlsLmNvbT4KICAgICAgCiAgICAgICAjIyBDb21taXQgbWVzc2FnZSAjIwog ICAgICAgICAgYXZmaWx0ZXIvdGV4dDJncmFwaGljc3ViOiBBZGRlZCB0ZXh0MmdyYXBoaWNzdWIg c3VidGl0bGUgZmlsdGVyCiAgICAgQEAgbGliYXZmaWx0ZXIvc2ZfdGV4dDJncmFwaGljc3ViLmMg KG5ldykKICAgICAgK3N0YXRpYyB2b2lkIGZyZWVfcGFsZXR0aXplY29udGV4dChQYWxldHRpemVD b250ZXh0ICoqcGFsZXR0aXplY29udGV4dCkKICAgICAgK3sKICAgICAgKyAgICBQYWxldHRpemVD b250ZXh0ICpjb250ZXh0ID0gKnBhbGV0dGl6ZWNvbnRleHQ7CiAgICAgLSsgICAgYXZfZnJlZXAo JmNvbnRleHQtPmNvZGVib29rKTsKICAgICAtKyAgICBhdl9mcmVlcCgmY29udGV4dC0+Y29kZXdv cmQpOwogICAgIC0rICAgIGF2X2ZyZWVwKCZjb250ZXh0LT5jb2Rld29yZF9jbG9zZXN0X2NvZGVi b29rX2lkeHMpOwogICAgIC0rICAgIGF2cHJpdl9lbGJnX2ZyZWUoJmNvbnRleHQtPmVsYmcpOwog ICAgIC0rICAgIGF2X2ZyZWUoY29udGV4dCk7CiAgICAgLSsgICAgKnBhbGV0dGl6ZWNvbnRleHQg PSBOVUxMOwogICAgICsrICAgIGlmIChjb250ZXh0KSB7CiAgICAgKysgICAgICAgIGF2X2ZyZWVw KCZjb250ZXh0LT5jb2RlYm9vayk7CiAgICAgKysgICAgICAgIGF2X2ZyZWVwKCZjb250ZXh0LT5j b2Rld29yZCk7CiAgICAgKysgICAgICAgIGF2X2ZyZWVwKCZjb250ZXh0LT5jb2Rld29yZF9jbG9z ZXN0X2NvZGVib29rX2lkeHMpOwogICAgICsrICAgICAgICBhdnByaXZfZWxiZ19mcmVlKCZjb250 ZXh0LT5lbGJnKTsKICAgICArKyAgICAgICAgYXZfZnJlZShjb250ZXh0KTsKICAgICArKyAgICAg ICAgKnBhbGV0dGl6ZWNvbnRleHQgPSBOVUxMOwogICAgICsrICAgIH0KICAgICAgK30KICAgICAg KwogICAgICArLyogbGliYXNzIHN1cHBvcnRzIGEgbG9nIGxldmVsIHJhbmdpbmcgZnJvbSAwIHRv IDcgKi8KICAgICBAQCBsaWJhdmZpbHRlci9zZl90ZXh0MmdyYXBoaWNzdWIuYyAobmV3KQogICAg ICArICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gb3V0bGluay0+c3JjOwogICAgICArICAgIFRl eHQyR3JhcGhpY1N1YkNvbnRleHQgKmNvbnRleHQgPSBjdHgtPnByaXY7CiAgICAgICsKICAgICAr KyAgICBvdXRsaW5rLT50aW1lX2Jhc2UgPSBBVl9USU1FX0JBU0VfUTsKICAgICArKyAgICBvdXRs aW5rLT5mb3JtYXQgPSBBVl9TVUJUSVRMRV9GTVRfQklUTUFQOwogICAgICArICAgIG91dGxpbmst PncgPSBjb250ZXh0LT5zaXplLndpZHRoOwogICAgICArICAgIG91dGxpbmstPmggPSBjb250ZXh0 LT5zaXplLmhlaWdodDsKICAgICAgKwogMjI6ICBjNDkyMmY4NDY2ICEgMjI6ICAyMmQ4MTc0N2Qx IGF2ZmlsdGVyL3NudWxsLHN0cmltOiBBZGQgc251bGwgYW5kIHN0cmltIGZpbHRlcnMKICAgICBA QCBsaWJhdmZpbHRlci90cmltLmM6IGNvbnN0IEFWRmlsdGVyIGZmX2FmX2F0cmltID0gewogICAg ICArCiAgICAgICsjaWYgQ09ORklHX1NUUklNX0ZJTFRFUgogICAgICArCiAgICAgKytzdGF0aWMg aW50IHNjb25maWdfb3V0cHV0KEFWRmlsdGVyTGluayAqb3V0bGluaykKICAgICArK3sKICAgICAr KyAgICBBVkZpbHRlckNvbnRleHQgKmN0eCA9IG91dGxpbmstPnNyYzsKICAgICArKyAgICBBVkZp bHRlckxpbmsgKmlubGluayA9IGN0eC0+aW5wdXRzWzBdOwogICAgICsrCiAgICAgKysgICAgb3V0 bGluay0+Zm9ybWF0ID0gaW5saW5rLT5mb3JtYXQ7CiAgICAgKysgICAgb3V0bGluay0+dyA9IGlu bGluay0+dzsKICAgICArKyAgICBvdXRsaW5rLT5oID0gaW5saW5rLT5oOwogICAgICsrCiAgICAg KysgICAgcmV0dXJuIDA7CiAgICAgKyt9CiAgICAgKysKICAgICArKwogICAgICArI2RlZmluZSBG TEFHUyAoQVZfT1BUX0ZMQUdfU1VCVElUTEVfUEFSQU0gfCBBVl9PUFRfRkxBR19GSUxURVJJTkdf UEFSQU0pCiAgICAgICtzdGF0aWMgY29uc3QgQVZPcHRpb24gc3RyaW1fb3B0aW9uc1tdID0gewog ICAgICArICAgIENPTU1PTl9PUFRTCiAgICAgQEAgbGliYXZmaWx0ZXIvdHJpbS5jOiBjb25zdCBB VkZpbHRlciBmZl9hZl9hdHJpbSA9IHsKICAgICAgKyAgICB7CiAgICAgICsgICAgICAgIC5uYW1l ICAgICAgICAgPSAiZGVmYXVsdCIsCiAgICAgICsgICAgICAgIC50eXBlICAgICAgICAgPSBBVk1F RElBX1RZUEVfU1VCVElUTEUsCiAgICAgKysgICAgICAgIC5jb25maWdfcHJvcHMgPSBzY29uZmln X291dHB1dCwKICAgICAgKyAgICB9LAogICAgICArfTsKICAgICAgKwogMjM6ICA4NDhmODRkNWRj ID0gMjM6ICA2ZDg1MzJkNzNkIGF2Y29kZWMvc3VidGl0bGVzOiBNaWdyYXRlIHN1YnRpdGxlIGVu Y29kZXJzIHRvIGZyYW1lLWJhc2VkIEFQSQogMjQ6ICAyNjQ1YTFhODQyID0gMjQ6ICAxZTJmYzBk MDlmIGZmdG9vbHMvZmZtcGVnOiBJbnRyb2R1Y2Ugc3VidGl0bGUgZmlsdGVyaW5nIGFuZCBuZXcg ZnJhbWUtYmFzZWQgc3VidGl0bGUgZW5jb2RpbmcKIDI1OiAgYTkwYTZlMTA4NiA9IDI1OiAgNjFm Nzc1ZTM1ZiBhdmNvZGVjL2R2YnN1YmRlYzogRml4IGNvbmRpdGlvbnMgZm9yIGZhbGxiYWNrIHRv IGRlZmF1bHQgcmVzb2x1dGlvbgoKLS0gCmZmbXBlZy1jb2RlYm90Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QK ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGlu Zm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1h aWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2Ny aWJlIi4K