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 BCAFD46228 for ; Wed, 10 May 2023 11:08:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8E5B868C1C8; Wed, 10 May 2023 14:08:52 +0300 (EEST) Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4EEE368C1BC for ; Wed, 10 May 2023 14:08:46 +0300 (EEST) Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-64115eef620so49271863b3a.1 for ; Wed, 10 May 2023 04:08:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683716924; x=1686308924; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=a6e0YH5lhGSSMIeQJlkjXwWM8BNOfuEcQILh0TcwGkQ=; b=mfhNM2g54xK7uhpQIZm6rk1+iq3gEtNhg0fxUo30O3qB8Wk1PTbAouJtKqBHbzZBZm HyZ4beKAJ2ovOHgGMewO4lAq7wLwkKVlU4vnmkpcMNsK7WZqyUyoyIW+zozlTWFkFN1x /39ygeB8bMyCBLM5gy817okOOwQ1vWWb3yHSZN4Vr+tQZqO3XlonxfBt9cCXOU6sZW8p /N7QPHDZHCKr1rqasU72oTgi/Jv9dvXSiJcDIFrstjFHyIgwoTNhU557Va8KrPjiBLT1 0EboskwPfnGkoBrvk/Esh1Ed8AVePgBiWSzV7joA3SL/JHKRHi/J2mYfPEmGhOFa1Hpu LqSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683716924; x=1686308924; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=a6e0YH5lhGSSMIeQJlkjXwWM8BNOfuEcQILh0TcwGkQ=; b=Z5NBqGQkZXr3ySDvh0qgP5Fy/STaBffyAubro3vE9zVpQlqYsgPN3vREpMzg1KI6fH j3SRjYCPvlUTRFsKSeEUIZgxfvXqhxWXr50spyU15UnlHGEMtmsUwXnhLMcQ075rCJOi 1w+2of6vF9j7aLFAnA3Qq4F3iGYxKKxkPUubLHDMF3ryh/sGJHroaQw5lvwlCYC2zIkU tdAvO2l4sFl8AZl74gUTn9yTjahEQUYLjOslmshN9F0nDyhl7lsK053L2Zn22x83ZQyn KxC0YefzroS3/tln3SPgdI5W9fOLy/i0QaCQjZcY057vGnDrcG+VbYdpU/6vme9xM8NI +Fjw== X-Gm-Message-State: AC+VfDzvzZKVC0OstEx8iSd2e3XhXEFdk5Ta1Y7w5sQyYETJwXLLeUup YtqH25gv+CnNyQZGjjsc0WV7usQ8yy9I/DaAJSnLohL7 X-Google-Smtp-Source: ACHHUZ7yBLO8dWCnl0oWzfZn7G9G30DnSTjL5RvngmSD3t2syyiD/KxnRl/Lt1zVXSy60jlcbPR7uFJKKZIqu7AmrWA= X-Received: by 2002:a17:902:d50c:b0:1ab:f74:a118 with SMTP id b12-20020a170902d50c00b001ab0f74a118mr21612260plg.19.1683716923954; Wed, 10 May 2023 04:08:43 -0700 (PDT) MIME-Version: 1.0 References: <1683313747-3775-1-git-send-email-dheitmueller@ltnglobal.com> <1683313747-3775-2-git-send-email-dheitmueller@ltnglobal.com> In-Reply-To: From: Lance Wang Date: Wed, 10 May 2023 19:08:32 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v6 1/6] ccfifo: Properly handle CEA-708 captions through framerate conversion 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: T24gU3VuLCBNYXkgNywgMjAyMyBhdCAzOjAz4oCvUE0gTGFuY2UgV2FuZyA8bGFuY2UubG13YW5n QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IExHVE0gZm9yIHRoZSBwYXRjaHNldC4KPgo+Ckkgd2lsbCBo ZWxwIHRvIGFwcGx5IHRoZSBwYXRjaHNldCB0b21vcnJvdyBpZiBubyBmdXJ0aGVyIGNvbW1lbnRz LiB0aHguCgoKCj4gT24gU2F0LCBNYXkgNiwgMjAyMyBhdCAyOjEz4oCvQU0gRGV2aW4gSGVpdG11 ZWxsZXIgPAo+IGRldmluLmhlaXRtdWVsbGVyQGx0bmdsb2JhbC5jb20+IHdyb3RlOgo+Cj4+IFdo ZW4gdHJhbnNjb2RpbmcgdmlkZW8gdGhhdCBjb250YWlucyA3MDggY2xvc2VkIGNhcHRpb25zLCB0 aGUKPj4gY2FwdGlvbiBkYXRhIGlzIHRpZWQgdG8gdGhlIGZyYW1lcyBhcyBzaWRlIGRhdGEuICBT aW1wbHkgZHJvcHBpbmcKPj4gb3IgYWRkaW5nIGZyYW1lcyB0byBjaGFuZ2UgdGhlIGZyYW1lcmF0 ZSB3aWxsIHJlc3VsdCBpbiBsb3NzIG9mCj4+IGRhdGEsIHNvIHRoZSBjYXB0aW9uIGRhdGEgbmVl ZHMgdG8gYmUgcHJlc2VydmVkIGFuZCByZWZvcm1hdHRlZC4KPj4KPj4gRm9yIGV4YW1wbGUsIHdp dGhvdXQgdGhpcyBwYXRjaCBjb252ZXJ0aW5nIDcyMHA1OSB0byAxMDgwaTU5Cj4+IHdvdWxkIHJl c3VsdCBpbiBsb3NzIG9mIDUwJSBvZiB0aGUgY2FwdGlvbiBieXRlcywgcmVzdWx0aW5nIGluCj4+ IGdhcmJsZWQgNjA4IGNhcHRpb25zIGFuZCA3MDggcHJvYmFibHkgd291bGRuJ3QgcmVuZGVyIGF0 IGFsbC4KPj4gRnVydGhlciwgdGhlIGZyYW1lcyB0aGF0IGFyZSB0aGVyZSB3aWxsIGhhdmUgYW4g aWxsZWdhbAo+PiBjY19jb3VudCBmb3IgdGhlIHRhcmdldCBmcmFtZXJhdGUsIHNvIHNvbWUgZGVj b2RlcnMgbWF5IGlnbm9yZQo+PiB0aGUgcGFja2V0cyBlbnRpcmVseS4KPj4KPj4gRXh0cmFjdCB0 aGUgNjA4IGFuZCA3MDggdHVwbGVzIGFuZCBpbnNlcnQgdGhlbSBvbnRvIHF1ZXVlcy4gIFRoZW4K Pj4gYWZ0ZXIgZHJvcHBpbmcvYWRkaW5nIGZyYW1lcywgcmUtd3JpdGUgdGhlIHR1cGxlcyBiYWNr IGludG8gdGhlCj4+IHJlc3VsdGluZyBmcmFtZXMgYXQgdGhlIGFwcHJvcHJpYXRlIHJhdGUgZ2l2 ZW4gdGhlIHRhcmdldAo+PiBmcmFtZXJhdGUuICBUaGlzIGluY2x1ZGVzIGJvdGggaGF2aW5nIHRo ZSBjb3JyZWN0IGNjX2NvdW50IGFzCj4+IHdlbGwgYXMgY2xvY2tpbmcgb3V0IHRoZSA2MDggcGFp cnMgYXQgdGhlIGFwcHJvcHJpYXRlIHJhdGUuCj4+Cj4+IFRoYW5rcyB0byBMYW5jZSBXYW5nIDxs YW5jZS5sbXdhbmdAZ21haWwuY29tPiwgQW50b24KPj4gS2hpcm5vdiA8YW50b25Aa2hpcm5vdi5u ZXQ+LCBhbmQgTWljaGFlbCBOaWVkZXJtYXllciA8Cj4+IG1pY2hhZWxAbmllZGVybWF5ZXIuY2M+ Cj4+IGZvciBwcm92aWRpbmcgcmV2aWV3L2ZlZWRiYWNrLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBE ZXZpbiBIZWl0bXVlbGxlciA8ZGhlaXRtdWVsbGVyQGx0bmdsb2JhbC5jb20+Cj4+IC0tLQo+PiAg bGliYXZmaWx0ZXIvTWFrZWZpbGUgfCAgIDEgKwo+PiAgbGliYXZmaWx0ZXIvY2NmaWZvLmMgfCAy MjQKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4+ICBsaWJhdmZpbHRlci9jY2ZpZm8uaCB8IDExMCArKysrKysrKysrKysrKysrKysrKysrKysr Cj4+ICAzIGZpbGVzIGNoYW5nZWQsIDMzNSBpbnNlcnRpb25zKCspCj4+ICBjcmVhdGUgbW9kZSAx MDA2NDQgbGliYXZmaWx0ZXIvY2NmaWZvLmMKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZp bHRlci9jY2ZpZm8uaAo+Pgo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUgYi9s aWJhdmZpbHRlci9NYWtlZmlsZQo+PiBpbmRleCA0ODJhZWFmLi42OGM4ZjE0IDEwMDY0NAo+PiAt LS0gYS9saWJhdmZpbHRlci9NYWtlZmlsZQo+PiArKysgYi9saWJhdmZpbHRlci9NYWtlZmlsZQo+ PiBAQCAtMTQsNiArMTQsNyBAQCBPQkpTID0gYWxsZmlsdGVycy5vCj4+ICAgICAgICAgICAgICAg ICAgXAo+PiAgICAgICAgIGJ1ZmZlcnNpbmsubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiAgICAgICAgIGJ1ZmZlcnNyYy5vICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiAgICAgICAg IGNvbG9yc3BhY2UubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAo+PiArICAgICAgIGNjZmlmby5vICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiAgICAgICAgIGRyYXd1dGlscy5vICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiAg ICAgICAgIGZpZm8ubyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+PiAgICAgICAgIGZvcm1hdHMubyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiBkaWZmIC0tZ2l0IGEvbGli YXZmaWx0ZXIvY2NmaWZvLmMgYi9saWJhdmZpbHRlci9jY2ZpZm8uYwo+PiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi41ZmI2OGNlCj4+IC0tLSAvZGV2L251bGwKPj4gKysr IGIvbGliYXZmaWx0ZXIvY2NmaWZvLmMKPj4gQEAgLTAsMCArMSwyMjQgQEAKPj4gKy8qCj4+ICsg KiBDRUEtNzA4IENsb3NlZCBDYXB0aW9uaW5nIEZJRk8KPj4gKyAqIENvcHlyaWdodCAoYykgMjAy MyBMVE4gR2xvYmFsIENvbW11bmljYXRpb25zCj4+ICsgKgo+PiArICogQXV0aG9yOiBEZXZpbiBI ZWl0bXVlbGxlciA8ZGhlaXRtdWVsbGVyQGx0bmdsb2JhbC5jb20+Cj4+ICsgKgo+PiArICogVGhp cyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+PiArICoKPj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPj4gKyAqIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4gKyAqIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgo+PiArICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCj4+ICsgKgo+PiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+ICsgKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+PiArICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKPj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCj4+ICsgKgo+PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+PiArICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBl ZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+PiArICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo+PiAwMjEx MC0xMzAxIFVTQQo+PiArICovCj4+ICsKPj4gKyNpbmNsdWRlICJjY2ZpZm8uaCIKPj4gKwo+PiAr c3RydWN0IEFWQ0NGaWZvIHsKPj4gKyAgICBBVkZpZm8gKmNjXzYwOF9maWZvOwo+PiArICAgIEFW RmlmbyAqY2NfNzA4X2ZpZm87Cj4+ICsgICAgQVZSYXRpb25hbCBmcmFtZXJhdGU7Cj4+ICsgICAg aW50IGV4cGVjdGVkX2NjX2NvdW50Owo+PiArICAgIGludCBleHBlY3RlZF82MDg7Cj4+ICsgICAg aW50IGNjX2RldGVjdGVkOwo+PiArICAgIGludCBwYXNzdGhyb3VnaDsKPj4gKyAgICBpbnQgcGFz c3Rocm91Z2hfd2FybmluZzsKPj4gKyAgICB2b2lkICpsb2dfY3R4Owo+PiArfTsKPj4gKwo+PiAr I2RlZmluZSBNQVhfQ0NfRUxFTUVOVFMgMTI4Cj4+ICsjZGVmaW5lIENDX0JZVEVTX1BFUl9FTlRS WSAzCj4+ICsKPj4gK3N0cnVjdCBjY19sb29rdXAgewo+PiArICAgIGludCBudW07Cj4+ICsgICAg aW50IGRlbjsKPj4gKyAgICBpbnQgY2NfY291bnQ7Cj4+ICsgICAgaW50IG51bV82MDg7Cj4+ICt9 Owo+PiArCj4+ICtjb25zdCBzdGF0aWMgc3RydWN0IGNjX2xvb2t1cCBjY19sb29rdXBfdmFsc1td ID0gewo+PiArICAgIHsgMTUsIDEsIDQwLCA0IH0sCj4+ICsgICAgeyAyNCwgMSwgMjUsIDMgfSwK Pj4gKyAgICB7IDI0MDAwLCAxMDAxLCAyNSwgMyB9LAo+PiArICAgIHsgMzAsIDEsIDIwLCAyIH0s Cj4+ICsgICAgeyAzMDAwMCwgMTAwMSwgMjAsIDJ9LAo+PiArICAgIHsgNjAsIDEsIDEwLCAxIH0s Cj4+ICsgICAgeyA2MDAwMCwgMTAwMSwgMTAsIDF9LAo+PiArfTsKPj4gKwo+PiArdm9pZCBmZl9j Y2ZpZm9fZnJlZXAoQVZDQ0ZpZm8gKipjY2YpCj4+ICt7Cj4+ICsgICAgQVZDQ0ZpZm8gKnRtcCA9 ICpjY2Y7Cj4+ICsgICAgaWYgKHRtcCkgewo+PiArICAgICAgICBhdl9maWZvX2ZyZWVwMigmdG1w LT5jY182MDhfZmlmbyk7Cj4+ICsgICAgICAgIGF2X2ZpZm9fZnJlZXAyKCZ0bXAtPmNjXzcwOF9m aWZvKTsKPj4gKyAgICB9Cj4+ICsgICAgYXZfZnJlZXAoY2NmKTsKPj4gK30KPj4gKwo+PiArQVZD Q0ZpZm8gKmZmX2NjZmlmb19hbGxvYyhBVlJhdGlvbmFsIGZyYW1lcmF0ZSwgdm9pZCAqbG9nX2N0 eCkKPj4gK3sKPj4gKyAgICBBVkNDRmlmbyAqY2NmOwo+PiArICAgIGludCBpOwo+PiArCj4+ICsg ICAgY2NmID0gYXZfbWFsbG9jeihzaXplb2YoKmNjZikpOwo+PiArICAgIGlmICghY2NmKQo+PiAr ICAgICAgICByZXR1cm4gTlVMTDsKPj4gKwo+PiArICAgIGNjZi0+bG9nX2N0eCA9IGxvZ19jdHg7 Cj4+ICsgICAgY2NmLT5mcmFtZXJhdGUgPSBmcmFtZXJhdGU7Cj4+ICsKPj4gKyAgICBpZiAoIShj Y2YtPmNjXzcwOF9maWZvID0gYXZfZmlmb19hbGxvYzIoTUFYX0NDX0VMRU1FTlRTLAo+PiBDQ19C WVRFU19QRVJfRU5UUlksIDApKSkKPj4gKyAgICAgICAgZ290byBlcnJvcjsKPj4gKwo+PiArICAg IGlmICghKGNjZi0+Y2NfNjA4X2ZpZm8gPSBhdl9maWZvX2FsbG9jMihNQVhfQ0NfRUxFTUVOVFMs Cj4+IENDX0JZVEVTX1BFUl9FTlRSWSwgMCkpKQo+PiArICAgICAgICBnb3RvIGVycm9yOwo+PiAr Cj4+ICsgICAgLyogQmFzZWQgb24gdGhlIHRhcmdldCBGUFMsIGZpZ3VyZSBvdXQgdGhlIGV4cGVj dGVkIGNjX2NvdW50IGFuZAo+PiBudW1iZXIgb2YKPj4gKyAgICAgICA2MDggdHVwbGVzIHBlciBw YWNrZXQuICBTZWUgQU5TSS9DVEEtNzA4LUUgU2VjIDQuMy42LjEuICovCj4+ICsgICAgZm9yIChp ID0gMDsgaSA8IEZGX0FSUkFZX0VMRU1TKGNjX2xvb2t1cF92YWxzKTsgaSsrKSB7Cj4+ICsgICAg ICAgIGlmIChmcmFtZXJhdGUubnVtID09IGNjX2xvb2t1cF92YWxzW2ldLm51bSAmJgo+PiArICAg ICAgICAgICAgZnJhbWVyYXRlLmRlbiA9PSBjY19sb29rdXBfdmFsc1tpXS5kZW4pIHsKPj4gKyAg ICAgICAgICAgIGNjZi0+ZXhwZWN0ZWRfY2NfY291bnQgPSBjY19sb29rdXBfdmFsc1tpXS5jY19j b3VudDsKPj4gKyAgICAgICAgICAgIGNjZi0+ZXhwZWN0ZWRfNjA4ID0gY2NfbG9va3VwX3ZhbHNb aV0ubnVtXzYwODsKPj4gKyAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICB9Cj4+ICsgICAg fQo+PiArCj4+ICsgICAgaWYgKGNjZi0+ZXhwZWN0ZWRfNjA4ID09IDApIHsKPj4gKyAgICAgICAg LyogV2UgZGlkbid0IGZpbmQgYW4gb3V0cHV0IGZyYW1lIHdlIHN1cHBvcnQuICBXZSdsbCBsZXQg dGhlCj4+IGNhbGwgc3VjY2VlZAo+PiArICAgICAgICAgICBhbmQgdGhlIEZJRk8gdG8gYmUgYWxs b2NhdGVkLCBidXQgdGhlIGV4dHJhY3QvaW5qZWN0Cj4+IGZ1bmN0aW9ucyB3aWxsIHNpbXBseQo+ PiArICAgICAgICAgICBsZWF2ZSBldmVyeXRoaW5nIHRoZSB3YXkgaXQgaXMgKi8KPj4gKyAgICAg ICAgY2NmLT5wYXNzdGhyb3VnaCA9IDE7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuIGNj ZjsKPj4gKwo+PiArZXJyb3I6Cj4+ICsgICAgZmZfY2NmaWZvX2ZyZWVwKCZjY2YpOwo+PiArICAg IHJldHVybiBOVUxMOwo+PiArfQo+PiArCj4+ICtpbnQgZmZfY2NmaWZvX2dldG91dHB1dHNpemUo QVZDQ0ZpZm8gKmNjZikKPj4gK3sKPj4gKyAgICByZXR1cm4gY2NmLT5leHBlY3RlZF9jY19jb3Vu dCAqIENDX0JZVEVTX1BFUl9FTlRSWTsKPj4gK30KPj4gKwo+PiAraW50IGZmX2NjZmlmb19jY2Rl dGVjdGVkKEFWQ0NGaWZvICpjY2YpCj4+ICt7Cj4+ICsgICAgcmV0dXJuIGNjZi0+Y2NfZGV0ZWN0 ZWQ7Cj4+ICt9Cj4+ICsKPj4gK2ludCBmZl9jY2ZpZm9faW5qZWN0Ynl0ZXMoQVZDQ0ZpZm8gKmNj ZiwgdWludDhfdCAqY2NfZGF0YSwgc2l6ZV90IGxlbikKPj4gK3sKPj4gKyAgICBpbnQgY2NfNjA4 X3R1cGxlcyA9IDA7Cj4+ICsgICAgaW50IGNjXzcwOF90dXBsZXMgPSAwOwo+PiArICAgIGludCBj Y19maWxsZWQgPSAwOwo+PiArCj4+ICsgICAgaWYgKGNjZi0+cGFzc3Rocm91Z2gpIHsKPj4gKyAg ICAgICAgcmV0dXJuIDA7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgaWYgKGxlbiA8IGZmX2NjZmlm b19nZXRvdXRwdXRzaXplKGNjZikpIHsKPj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFM KTsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICAvKiBJbnNlcnQgYW55IGF2YWlsYWJsZSBkYXRhIGZy b20gdGhlIDYwOCBGSUZPICovCj4+ICsgICAgaWYgKGNjZi0+ZXhwZWN0ZWRfNjA4IDw9IGF2X2Zp Zm9fY2FuX3JlYWQoY2NmLT5jY182MDhfZmlmbykpCj4+ICsgICAgICAgIGNjXzYwOF90dXBsZXMg PSBjY2YtPmV4cGVjdGVkXzYwODsKPj4gKyAgICBlbHNlCj4+ICsgICAgICAgIGNjXzYwOF90dXBs ZXMgPSBhdl9maWZvX2Nhbl9yZWFkKGNjZi0+Y2NfNjA4X2ZpZm8pOwo+PiArICAgIGF2X2ZpZm9f cmVhZChjY2YtPmNjXzYwOF9maWZvLCBjY19kYXRhLCBjY182MDhfdHVwbGVzKTsKPj4gKyAgICBj Y19maWxsZWQgKz0gY2NfNjA4X3R1cGxlczsKPj4gKwo+PiArICAgIC8qIEluc2VydCBhbnkgYXZh aWxhYmxlIGRhdGEgZnJvbSB0aGUgNzA4IEZJRk8gKi8KPj4gKyAgICBpZiAoKGNjZi0+ZXhwZWN0 ZWRfY2NfY291bnQgLSBjY19maWxsZWQpIDw9Cj4+IGF2X2ZpZm9fY2FuX3JlYWQoY2NmLT5jY183 MDhfZmlmbykpCj4+ICsgICAgICAgIGNjXzcwOF90dXBsZXMgPSBjY2YtPmV4cGVjdGVkX2NjX2Nv dW50IC0gY2NfZmlsbGVkOwo+PiArICAgIGVsc2UKPj4gKyAgICAgICAgY2NfNzA4X3R1cGxlcyA9 IGF2X2ZpZm9fY2FuX3JlYWQoY2NmLT5jY183MDhfZmlmbyk7Cj4+ICsgICAgYXZfZmlmb19yZWFk KGNjZi0+Y2NfNzA4X2ZpZm8sICZjY19kYXRhW2NjX2ZpbGxlZCAqCj4+IENDX0JZVEVTX1BFUl9F TlRSWV0sIGNjXzcwOF90dXBsZXMpOwo+PiArICAgIGNjX2ZpbGxlZCArPSBjY183MDhfdHVwbGVz Owo+PiArCj4+ICsgICAgLyogSW5zZXJ0IDcwOCBwYWRkaW5nIGludG8gYW55IHJlbWFpbmluZyBm aWVsZHMgKi8KPj4gKyAgICB3aGlsZSAoY2NfZmlsbGVkIDwgY2NmLT5leHBlY3RlZF9jY19jb3Vu dCkgewo+PiArICAgICAgICBjY19kYXRhW2NjX2ZpbGxlZCAqIENDX0JZVEVTX1BFUl9FTlRSWV0g ICAgID0gMHhmYTsKPj4gKyAgICAgICAgY2NfZGF0YVtjY19maWxsZWQgKiBDQ19CWVRFU19QRVJf RU5UUlkgKyAxXSA9IDB4MDA7Cj4+ICsgICAgICAgIGNjX2RhdGFbY2NfZmlsbGVkICogQ0NfQllU RVNfUEVSX0VOVFJZICsgMl0gPSAweDAwOwo+PiArICAgICAgICBjY19maWxsZWQrKzsKPj4gKyAg ICB9Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAraW50IGZmX2NjZmlmb19p bmplY3QoQVZDQ0ZpZm8gKmNjZiwgQVZGcmFtZSAqZnJhbWUpCj4+ICt7Cj4+ICsgICAgQVZGcmFt ZVNpZGVEYXRhICpzZDsKPj4gKyAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgaWYgKGNjZi0+cGFz c3Rocm91Z2ggPT0gMSB8fCBjY2YtPmNjX2RldGVjdGVkID09IDApCj4+ICsgICAgICAgIHJldHVy biAwOwo+PiArCj4+ICsgICAgc2QgPSBhdl9mcmFtZV9uZXdfc2lkZV9kYXRhKGZyYW1lLCBBVl9G UkFNRV9EQVRBX0E1M19DQywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmZf Y2NmaWZvX2dldG91dHB1dHNpemUoY2NmKSk7Cj4+ICsgICAgaWYgKHNkKSB7Cj4+ICsgICAgICAg IHJldCA9IGZmX2NjZmlmb19pbmplY3RieXRlcyhjY2YsIHNkLT5kYXRhLCBzZC0+c2l6ZSk7Cj4+ ICsgICAgICAgIGlmIChyZXQgPCAwKSB7Cj4+ICsgICAgICAgICAgICBhdl9mcmFtZV9yZW1vdmVf c2lkZV9kYXRhKGZyYW1lLCBBVl9GUkFNRV9EQVRBX0E1M19DQyk7Cj4+ICsgICAgICAgICAgICBy ZXR1cm4gcmV0Owo+PiArICAgICAgICB9Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuIDA7 Cj4+ICt9Cj4+ICsKPj4gK2ludCBmZl9jY2ZpZm9fZXh0cmFjdGJ5dGVzKEFWQ0NGaWZvICpjY2Ys IHVpbnQ4X3QgKmNjX2J5dGVzLCBzaXplX3QgbGVuKQo+PiArewo+PiArICAgIGludCBjY19jb3Vu dCA9IGxlbiAvIENDX0JZVEVTX1BFUl9FTlRSWTsKPj4gKwo+PiArICAgIGlmIChjY2YtPnBhc3N0 aHJvdWdoID09IDEpIHsKPj4gKyAgICAgICAgYXZfbG9nX29uY2UoY2NmLT5sb2dfY3R4LCBBVl9M T0dfV0FSTklORywgQVZfTE9HX0RFQlVHLAo+PiAmY2NmLT5wYXNzdGhyb3VnaF93YXJuaW5nLAo+ PiArICAgICAgICAgICAgICAgICAgICAiY2NfZmlmbyBjYW5ub3QgdHJhbnNjb2RlIGNhcHRpb25z IGZwcz0lZC8lZFxuIiwKPj4gKyAgICAgICAgICAgICAgICAgICAgY2NmLT5mcmFtZXJhdGUubnVt LCBjY2YtPmZyYW1lcmF0ZS5kZW4pOwo+PiArICAgICAgICByZXR1cm4gMDsKPj4gKyAgICB9Cj4+ ICsKPj4gKyAgICBjY2YtPmNjX2RldGVjdGVkID0gMTsKPj4gKwo+PiArICAgIGZvciAoaW50IGkg PSAwOyBpIDwgY2NfY291bnQ7IGkrKykgewo+PiArICAgICAgICAvKiBTZWUgQU5TSS9DVEEtNzA4 LUUgU2VjIDQuMywgVGFibGUgMyAqLwo+PiArICAgICAgICB1aW50OF90IGNjX3ZhbGlkID0gKGNj X2J5dGVzW0NDX0JZVEVTX1BFUl9FTlRSWSppXSAmIDB4MDQpID4+IDI7Cj4+ICsgICAgICAgIHVp bnQ4X3QgY2NfdHlwZSA9IGNjX2J5dGVzW0NDX0JZVEVTX1BFUl9FTlRSWSppXSAmIDB4MDM7Cj4+ ICsgICAgICAgIGlmIChjY190eXBlID09IDB4MDAgfHwgY2NfdHlwZSA9PSAweDAxKSB7Cj4+ICsg ICAgICAgICAgICBhdl9maWZvX3dyaXRlKGNjZi0+Y2NfNjA4X2ZpZm8sCj4+ICZjY19ieXRlc1tD Q19CWVRFU19QRVJfRU5UUlkqaV0sIDEpOwo+PiArICAgICAgICB9IGVsc2UgaWYgKGNjX3ZhbGlk ICYmIChjY190eXBlID09IDB4MDIgfHwgY2NfdHlwZSA9PSAweDAzKSkgewo+PiArICAgICAgICAg ICAgYXZfZmlmb193cml0ZShjY2YtPmNjXzcwOF9maWZvLAo+PiAmY2NfYnl0ZXNbQ0NfQllURVNf UEVSX0VOVFJZKmldLCAxKTsKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKyAgICByZXR1cm4g MDsKPj4gK30KPj4gKwo+PiArLyogUmVhZCB0aGUgQTUzIHNpZGUgZGF0YSwgZGlzY2FyZCBwYWRk aW5nLCBhbmQgcHV0IDYwOC83MDggaW50bwo+PiArICAgcXVldWVzIHNvIHdlIGNhbiBlbnN1cmUg dGhleSBnZXQgaW50byB0aGUgb3V0cHV0IGZyYW1lcyBhdAo+PiArICAgdGhlIGNvcnJlY3QgcmF0 ZS4uLiAqLwo+PiAraW50IGZmX2NjZmlmb19leHRyYWN0KEFWQ0NGaWZvICpjY2YsIEFWRnJhbWUg KmZyYW1lKQo+PiArewo+PiArICAgIEFWRnJhbWVTaWRlRGF0YSAqc2lkZV9kYXRhID0gYXZfZnJh bWVfZ2V0X3NpZGVfZGF0YShmcmFtZSwKPj4gQVZfRlJBTUVfREFUQV9BNTNfQ0MpOwo+PiArICAg IGlmIChzaWRlX2RhdGEpIHsKPj4gKyAgICAgICAgZmZfY2NmaWZvX2V4dHJhY3RieXRlcyhjY2Ys IHNpZGVfZGF0YS0+ZGF0YSwgc2lkZV9kYXRhLT5zaXplKTsKPj4gKwo+PiArICAgICAgICAvKiBS ZW1vdmUgdGhlIHNpZGUgZGF0YSwgYXMgd2Ugd2lsbCByZS1jcmVhdGUgaXQgb24gdGhlCj4+ICsg ICAgICAgICAgIG91dHB1dCBhcyBuZWVkZWQgKi8KPj4gKyAgICAgICAgaWYgKCFjY2YtPnBhc3N0 aHJvdWdoKQo+PiArICAgICAgICAgICAgYXZfZnJhbWVfcmVtb3ZlX3NpZGVfZGF0YShmcmFtZSwg QVZfRlJBTUVfREFUQV9BNTNfQ0MpOwo+PiArICAgIH0KPj4gKyAgICByZXR1cm4gMDsKPj4gK30K Pj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2NjZmlmby5oIGIvbGliYXZmaWx0ZXIvY2NmaWZv LmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uNDRjOTI0NQo+PiAt LS0gL2Rldi9udWxsCj4+ICsrKyBiL2xpYmF2ZmlsdGVyL2NjZmlmby5oCj4+IEBAIC0wLDAgKzEs MTEwIEBACj4+ICsvKgo+PiArICogQ0VBLTcwOCBDbG9zZWQgQ2FwdGlvbmluZyBGSUZPCj4+ICsg KiBDb3B5cmlnaHQgKGMpIDIwMjMgTFROIEdsb2JhbCBDb21tdW5pY2F0aW9ucwo+PiArICoKPj4g KyAqIEF1dGhvcjogRGV2aW4gSGVpdG11ZWxsZXIgPGRoZWl0bXVlbGxlckBsdG5nbG9iYWwuY29t Pgo+PiArICoKPj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPj4gKyAqCj4+ICsg KiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y Cj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCj4+ICsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIKPj4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICoKPj4gKyAqIEZGbXBl ZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+PiAr ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKPj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICoKPj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4gKyAqIExpY2Vu c2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK Pj4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is IEJvc3RvbiwgTUEKPj4gMDIxMTAtMTMwMSBVU0EKPj4gKyAqLwo+PiArCj4+ICsvKioKPj4gKyAq IEBmaWxlCj4+ICsgKiBDQyBGSUZPIEJ1ZmZlcgo+PiArICovCj4+ICsKPj4gKyNpZm5kZWYgQVZG SUxURVJfQ0NGSUZPX0gKPj4gKyNkZWZpbmUgQVZGSUxURVJfQ0NGSUZPX0gKPj4gKwo+PiArI2lu Y2x1ZGUgImxpYmF2dXRpbC9hdnV0aWwuaCIKPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvZnJhbWUu aCIKPj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvZmlmby5oIgo+PiArCj4+ICt0eXBlZGVmIHN0cnVj dCBBVkNDRmlmbyBBVkNDRmlmbzsKPj4gKwo+PiArLyoqCj4+ICsgKiBBbGxvY2F0ZSBhbiBBVkND Rmlmby4KPj4gKyAqCj4+ICsgKiBAcGFyYW0gZnJhbWVyYXRlICAgb3V0cHV0IGZyYW1lcmF0ZQo+ PiArICogQHBhcmFtIGxvZ19jdHggICAgIHVzZWQgZm9yIGFueSBhdl9sb2coKSBjYWxscwo+PiAr ICogQHJldHVybiAgICAgICAgICAgIG5ld2x5IGFsbG9jYXRlZCBBVkNDRmlmbywgb3IgTlVMTCBv biBlcnJvcgo+PiArICovCj4+ICtBVkNDRmlmbyAqZmZfY2NmaWZvX2FsbG9jKEFWUmF0aW9uYWwg ZnJhbWVyYXRlLCB2b2lkICpsb2dfY3R4KTsKPj4gKwo+PiArLyoqCj4+ICsgKiBGcmVlIGFuIEFW Q0NGaWZvCj4+ICsgKgo+PiArICogQHBhcmFtIGNjZiBQb2ludGVyIHRvIHRoZSBwb2ludGVyIHRv IHRoZSBBVkNDRmlmbyB3aGljaCBzaG91bGQgYmUKPj4gZnJlZWQKPj4gKyAqIEBub3RlIGAqcHRy ID0gTlVMTGAgaXMgc2FmZSBhbmQgbGVhZHMgdG8gbm8gYWN0aW9uLgo+PiArICovCj4+ICt2b2lk IGZmX2NjZmlmb19mcmVlcChBVkNDRmlmbyAqKmNjZik7Cj4+ICsKPj4gKwo+PiArLyoqCj4+ICsg KiBFeHRyYWN0IENDIGRhdGEgZnJvbSBhbiBBVkZyYW1lCj4+ICsgKgo+PiArICogRXh0cmFjdCBD QyBieXRlcyBmcm9tIHRoZSBBVkZyYW1lLCBpbnNlcnQgdGhlbSBpbnRvIG91ciBxdWV1ZSwgYW5k Cj4+ICsgKiByZW1vdmUgdGhlIHNpZGUgZGF0YSBmcm9tIHRoZSBBVkZyYW1lLiAgVGhlIHNpZGUg ZGF0YSBpcyByZW1vdmVkCj4+ICsgKiBhcyBpdCB3aWxsIGJlIHJlLWluc2VydGVkIGF0IHRoZSBh cHByb3ByaWF0ZSByYXRlIGxhdGVyIGluIHRoZQo+PiArICogZmlsdGVyLgo+PiArICoKPj4gKyAq IEBwYXJhbSBhZiAgICAgICAgICBBVkNDRmlmbyB0byB3cml0ZSB0bwo+PiArICogQHBhcmFtIGZy YW1lICAgICAgIEFWRnJhbWUgd2l0aCB0aGUgdmlkZW8gZnJhbWUgdG8gb3BlcmF0ZSBvbgo+PiAr ICogQHJldHVybiAgICAgICAgICAgIFplcm8gb24gc3VjY2Vzcywgb3IgbmVnYXRpdmUgQVZFUlJP Ugo+PiArICogICAgICAgICAgICAgICAgICAgIGNvZGUgb24gZmFpbHVyZS4KPj4gKyAqLwo+PiAr aW50IGZmX2NjZmlmb19leHRyYWN0KEFWQ0NGaWZvICpjY2YsIEFWRnJhbWUgKmZyYW1lKTsKPj4g Kwo+PiArLyoqCj4+ICsgKkp1c3QgbGlrZSBmZl9jY2ZpZm9fZXh0cmFjdCgpLCBidXQgdGFrZXMg dGhlIHJhdyBieXRlcyBpbnN0ZWFkIG9mIGFuCj4+IEFWRnJhbWUKPj4gKyAqLwo+PiAraW50IGZm X2NjZmlmb19leHRyYWN0Ynl0ZXMoQVZDQ0ZpZm8gKmNjZiwgdWludDhfdCAqZGF0YSwgc2l6ZV90 IGxlbik7Cj4+ICsKPj4gKy8qKgo+PiArICogUHJvdmlkZSB0aGUgc2l6ZSBpbiBieXRlcyBvZiBh biBvdXRwdXQgYnVmZmVyIHRvIGFsbG9jYXRlCj4+ICsgKgo+PiArICogQXNrIGZvciBob3cgbWFu eSBieXRlcyB0aGUgb3V0cHV0IHdpbGwgY29udGFpbiwgc28gdGhlIGNhbGxlciBjYW4KPj4gYWxs b2NhdGUKPj4gKyAqIGFuIGFwcHJvcHJpYXRlbHkgc2l6ZWQgYnVmZmVyIGFuZCBwYXNzIGl0IHRv IGZmX2NjZmlmb19pbmplY3RieXRlcygpCj4+ICsgKgo+PiArICovCj4+ICtpbnQgZmZfY2NmaWZv X2dldG91dHB1dHNpemUoQVZDQ0ZpZm8gKmNjZik7Cj4+ICsKPj4gKy8qKgo+PiArICogSW5zZXJ0 IENDIGRhdGEgZnJvbSB0aGUgRklGTyBpbnRvIGFuIEFWRnJhbWUgKGFzIHNpZGUgZGF0YSkKPj4g KyAqCj4+ICsgKiBEZXF1ZXVlIHRoZSBhcHByb3ByaWF0ZSBudW1iZXIgb2YgQ0MgdHVwbGVzIGJh c2VkIG9uIHRoZQo+PiArICogZnJhbWUgcmF0ZSwgYW5kIGluc2VydCB0aGVtIGludG8gdGhlIEFW RnJhbWUKPj4gKyAqCj4+ICsgKiBAcGFyYW0gYWYgICAgICAgICAgQVZDQ0ZpZm8gdG8gcmVhZCBm cm9tCj4+ICsgKiBAcGFyYW0gZnJhbWUgICAgICAgQVZGcmFtZSB3aXRoIHRoZSB2aWRlbyBmcmFt ZSB0byBvcGVyYXRlIG9uCj4+ICsgKiBAcmV0dXJuICAgICAgICAgICAgWmVybyBvbiBzdWNjZXNz LCBvciBuZWdhdGl2ZSBBVkVSUk9SCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgY29kZSBvbiBm YWlsdXJlLgo+PiArICovCj4+ICtpbnQgZmZfY2NmaWZvX2luamVjdChBVkNDRmlmbyAqY2NmLCBB VkZyYW1lICpmcmFtZSk7Cj4+ICsKPj4gKy8qKgo+PiArICogSnVzdCBsaWtlIGZmX2NjZmlmb19p bmplY3QoKSwgYnV0IHRha2VzIHRoZSByYXcgYnl0ZXMgdG8gaW5zZXJ0IHRoZQo+PiBDQyBkYXRh Cj4+ICsgKiBpbnQgcmF0aGVyIHRoYW4gYW4gQVZGcmFtZQo+PiArICovCj4+ICtpbnQgZmZfY2Nm aWZvX2luamVjdGJ5dGVzKEFWQ0NGaWZvICpjY2YsIHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4p Owo+PiArCj4+ICsvKioKPj4gKyAqIFJldHVybnMgMSBpZiBjYXB0aW9ucyBoYXZlIGJlZW4gZm91 bmQgYXMgYSBwcmlvciBjYWxsCj4+ICsgKiB0byBmZl9jY2ZpZm9fZXh0cmFjdCgpIG9yIGZmX2Nj Zmlmb19leHRyYWN0Ynl0ZXMoKQo+PiArICovCj4+ICtpbnQgZmZfY2NmaWZvX2NjZGV0ZWN0ZWQo QVZDQ0ZpZm8gKmNjZik7Cj4+ICsKPj4gKyNlbmRpZiAvKiBBVkZJTFRFUl9DQ0ZJRk9fSCAqLwo+ PiAtLQo+PiAxLjguMy4xCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKPj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVn LWRldmVsCj4+Cj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+ PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3Jp YmUiLgo+Pgo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6 Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmli ZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVn Lm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K