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 DB8B4501EF for ; Wed, 9 Jul 2025 09:19:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 728C668C30D; Wed, 9 Jul 2025 12:19:08 +0300 (EEST) Received: from mail-vk1-f180.google.com (mail-vk1-f180.google.com [209.85.221.180]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 2772368B808 for ; Wed, 9 Jul 2025 12:19:01 +0300 (EEST) Received: by mail-vk1-f180.google.com with SMTP id 71dfb90a1353d-5347686c12cso1606880e0c.0 for ; Wed, 09 Jul 2025 02:19:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752052739; x=1752657539; darn=ffmpeg.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=OR1Dw129YGxaMorzkk+Asqtoa4eEvQcvW4UEZKkYqFU=; b=b8OzHm5l6T8x6EX2BhOTaXFW2rRJ71p8PtD/UNuXLrbNU9xIClfLGMcGqNoENV7vZ7 qxkbqIy5MFUq+aEYvE8yMIQRgbIwX1GqG+4D3yqsNQFQBfTzTXHuV79LEwBKeQmm8Emj vJkQr2UoqBLaeofmgTkjREL5ZDeh+4i/N3fWmcz32JZQtc7BJ3cFoebDgPXtWGomzPod iV4Hps0rkgrmrHDHgCH51ayMHwCPoARnVUiNVgRDpafKATYvJVq6Goj9tmXgkWq9bwkI zYYUbq0mJDi9OUGI0a0eHwI+J8WDrQWw8S9kYczxmeAevboCi94rFp012AO9LqK2KTRA 6/tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752052739; x=1752657539; h=content-transfer-encoding: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=OR1Dw129YGxaMorzkk+Asqtoa4eEvQcvW4UEZKkYqFU=; b=hrs23ZuwLvKd7apU9vf2/bVl/UOSq45BR6awTrpFcRD9J9ktzWdxwUDBqW0OrRoscP idWWWq6PfKmd1Bo/KVqbf+e+q7Ns7wZLm6J38lFsUOAhu7cGSHraeaoFdkIxcA3ACN62 JVucDoQCUdvLcr2U1ooSWrpFG5LmxS0OLan3cT7AxXc89A4RKFhisHJ4TCt9XoVAvmzC si8gdAOHlP8b+DlK9Qq1o/Qe7vUojGbc2HEmaFOXYdZ4Jtkt4pWmj0HSaknbdpDH3a5Y Pgcq2TdRyMjf6rbQfHUo90tays1f7577Zx76Fxr1Qq5fEXYRcuqFoDP5Z3F/FqF8caE4 9OuQ== X-Gm-Message-State: AOJu0Yz7b7UVa7qRTBYIXtVqWC3DwvAuXNgHSMs19JPcMy5eTLj4tUMf 2wjmURKZGE6Syv+pv0GlYqJXIyjgbXEJYvZ1G6nziTnmRVYZ7MqcZG8a0NJc8ATb8UA+mbxwSyJ nYlPOYkJHP7Imw+0CXdENU3PhHZasVK7euOXD X-Gm-Gg: ASbGnct2x5ZYi/tgRGqwiABwTqyTggB8qr5TMSYyxutl6ge+GgTdAAdaz6z20MWfJaK CiTzu8RDAsEZjDcV+mhKLwH4TKtUYqmxr5NS0a7Gh57KtqRBGCZAlbRA+qj5Gw7hPyJOwcZAbSs Lzu4FxbEbCOnYW04eWLmEih5SOF5VgX1eJoIsuXG/zmvFQpzLwCz29 X-Google-Smtp-Source: AGHT+IF3Pbgeu/1u7kFM2LMZe12jE01mcqQhltb6boTm3UhT7/UigXTofBV1iXST1y/05zud8XeFsVeeA1TZVvBaDsc= X-Received: by 2002:a05:6122:6141:b0:52f:2a3:4bd6 with SMTP id 71dfb90a1353d-535d72dff3emr768304e0c.3.1752052739166; Wed, 09 Jul 2025 02:18:59 -0700 (PDT) MIME-Version: 1.0 References: <20250708191412.68722-1-epirat07@gmail.com> In-Reply-To: <20250708191412.68722-1-epirat07@gmail.com> From: Steven Liu Date: Wed, 9 Jul 2025 17:18:47 +0800 X-Gm-Features: Ac12FXzxsufYOZgUD4vAJJj1V_ZjjPjfZ2LOT-aWcfvsddvgXuDuXnLCEmTqhmI Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [RFC PATCH] avformat: remove HLS protocol 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: TWFydmluIFNjaG9seiA8ZXBpcmF0MDctYXQtZ21haWwuY29tQGZmbXBlZy5vcmc+IOS6jjIwMjXl ubQ35pyIOeaXpeWRqOS4iSAwMzoxNOWGmemBk++8mgpIaSBNYXJ2aW4sCgo+Cj4gVGhlIHVzZSBv ZiB0aGlzIHByb3RvY29sIHdhcyBhbHJlYWR5IGRpc2NvdXJhZ2VkIGFuZCB3YXJuZWQgYWJvdXQK PiBmb3IgeWVhcnMgd2l0aCB0aGUgcmVjb21tZW5kYXRpb24gdG8gdXNlIHRoZSBITFMgZGVtdXhl ciBpbnN0ZWFkLgpXaGF0IGFib3V0IG1ha2UgZGVwcmVjYXRlZCB3YXJuaW5nIHRvIHVzZXJzIGFu ZCByZW1vdmUgaXQgbmV4dCBtYWpvciB2ZXJzaW9uPwo+IC0tLQo+ICBkb2MvcHJvdG9jb2xzLnRl eGkgICAgICB8ICAyMCAtLS0KPiAgbGliYXZmb3JtYXQvTWFrZWZpbGUgICAgfCAgIDIgLQo+ICBs aWJhdmZvcm1hdC9obHNwcm90by5jICB8IDMxOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gIGxpYmF2Zm9ybWF0L3Byb3RvY29scy5jIHwgICAxIC0KPiAgNCBmaWxl cyBjaGFuZ2VkLCAzNDEgZGVsZXRpb25zKC0pCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWJhdmZv cm1hdC9obHNwcm90by5jCj4KPiBkaWZmIC0tZ2l0IGEvZG9jL3Byb3RvY29scy50ZXhpIGIvZG9j L3Byb3RvY29scy50ZXhpCj4gaW5kZXggOTY5ZjRiZjAyMi4uOTlhYWYyZTI1MiAxMDA2NDQKPiAt LS0gYS9kb2MvcHJvdG9jb2xzLnRleGkKPiArKysgYi9kb2MvcHJvdG9jb2xzLnRleGkKPiBAQCAt NDA2LDI2ICs0MDYsNiBAQCBHb3BoZXJzIHByb3RvY29sLgo+Cj4gIFRoZSBHb3BoZXIgcHJvdG9j b2wgd2l0aCBUTFMgZW5jYXBzdWxhdGlvbi4KPgo+IC1Ac2VjdGlvbiBobHMKPiAtCj4gLVJlYWQg QXBwbGUgSFRUUCBMaXZlIFN0cmVhbWluZyBjb21wbGlhbnQgc2VnbWVudGVkIHN0cmVhbSBhcwo+ IC1hIHVuaWZvcm0gb25lLiBUaGUgTTNVOCBwbGF5bGlzdHMgZGVzY3JpYmluZyB0aGUgc2VnbWVu dHMgY2FuIGJlCj4gLXJlbW90ZSBIVFRQIHJlc291cmNlcyBvciBsb2NhbCBmaWxlcywgYWNjZXNz ZWQgdXNpbmcgdGhlIHN0YW5kYXJkCj4gLWZpbGUgcHJvdG9jb2wuCj4gLVRoZSBuZXN0ZWQgcHJv dG9jb2wgaXMgZGVjbGFyZWQgYnkgc3BlY2lmeWluZwo+IC0iK0B2YXJ7cHJvdG99IiBhZnRlciB0 aGUgaGxzIFVSSSBzY2hlbWUgbmFtZSwgd2hlcmUgQHZhcntwcm90b30KPiAtaXMgZWl0aGVyICJm aWxlIiBvciAiaHR0cCIuCj4gLQo+IC1AZXhhbXBsZQo+IC1obHMraHR0cDovL2hvc3QvcGF0aC90 by9yZW1vdGUvcmVzb3VyY2UubTN1OAo+IC1obHMrZmlsZTovL3BhdGgvdG8vbG9jYWwvcmVzb3Vy Y2UubTN1OAo+IC1AZW5kIGV4YW1wbGUKPiAtCj4gLVVzaW5nIHRoaXMgcHJvdG9jb2wgaXMgZGlz Y291cmFnZWQgLSB0aGUgaGxzIGRlbXV4ZXIgc2hvdWxkIHdvcmsKPiAtanVzdCBhcyB3ZWxsIChp ZiBub3QsIHBsZWFzZSByZXBvcnQgdGhlIGlzc3VlcykgYW5kIGlzIG1vcmUgY29tcGxldGUuCj4g LVRvIHVzZSB0aGUgaGxzIGRlbXV4ZXIgaW5zdGVhZCwgc2ltcGx5IHVzZSB0aGUgZGlyZWN0IFVS THMgdG8gdGhlCj4gLW0zdTggZmlsZXMuCj4gLQo+ICBAc2VjdGlvbiBodHRwCj4KPiAgSFRUUCAo SHlwZXIgVGV4dCBUcmFuc2ZlciBQcm90b2NvbCkuCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0 L01ha2VmaWxlIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKPiBpbmRleCA4MTZlYjliZTRhLi4yZWY2 MzExNjMyIDEwMDY0NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4gKysrIGIvbGliYXZm b3JtYXQvTWFrZWZpbGUKPiBAQCAtNjcyLDcgKzY3Miw2IEBAIE9CSlMtJChDT05GSUdfVkFQT1VS U1lOVEhfREVNVVhFUikgICAgICAgKz0gdmFwb3Vyc3ludGgubwo+ICAjIHByb3RvY29scyBJL08K PiAgT0JKUy0kKENPTkZJR19BTkRST0lEX0NPTlRFTlRfUFJPVE9DT0wpICArPSBmaWxlLm8KPiAg T0JKUy0kKENPTkZJR19BU1lOQ19QUk9UT0NPTCkgICAgICAgICAgICArPSBhc3luYy5vCj4gLU9C SlMtJChDT05GSUdfQVBQTEVIVFRQX1BST1RPQ09MKSAgICAgICAgKz0gaGxzcHJvdG8ubwo+ICBP QkpTLSQoQ09ORklHX0JMVVJBWV9QUk9UT0NPTCkgICAgICAgICAgICs9IGJsdXJheS5vCj4gIE9C SlMtJChDT05GSUdfQ0FDSEVfUFJPVE9DT0wpICAgICAgICAgICAgKz0gY2FjaGUubwo+ICBPQkpT LSQoQ09ORklHX0NPTkNBVF9QUk9UT0NPTCkgICAgICAgICAgICs9IGNvbmNhdC5vCj4gQEAgLTY4 Niw3ICs2ODUsNiBAQCBPQkpTLSQoQ09ORklHX0ZEX1BST1RPQ09MKSAgICAgICAgICAgICAgICs9 IGZpbGUubwo+ICBPQkpTLSQoQ09ORklHX0ZUUF9QUk9UT0NPTCkgICAgICAgICAgICAgICs9IGZ0 cC5vIHVybGRlY29kZS5vCj4gIE9CSlMtJChDT05GSUdfR09QSEVSX1BST1RPQ09MKSAgICAgICAg ICAgKz0gZ29waGVyLm8KPiAgT0JKUy0kKENPTkZJR19HT1BIRVJTX1BST1RPQ09MKSAgICAgICAg ICArPSBnb3BoZXIubwo+IC1PQkpTLSQoQ09ORklHX0hMU19QUk9UT0NPTCkgICAgICAgICAgICAg ICs9IGhsc3Byb3RvLm8KPiAgT0JKUy0kKENPTkZJR19IVFRQX1BST1RPQ09MKSAgICAgICAgICAg ICArPSBodHRwLm8gaHR0cGF1dGgubyB1cmxkZWNvZGUubwo+ICBPQkpTLSQoQ09ORklHX0hUVFBQ Uk9YWV9QUk9UT0NPTCkgICAgICAgICs9IGh0dHAubyBodHRwYXV0aC5vIHVybGRlY29kZS5vCj4g IE9CSlMtJChDT05GSUdfSFRUUFNfUFJPVE9DT0wpICAgICAgICAgICAgKz0gaHR0cC5vIGh0dHBh dXRoLm8gdXJsZGVjb2RlLm8KPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvaGxzcHJvdG8uYyBi L2xpYmF2Zm9ybWF0L2hsc3Byb3RvLmMKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMmY2OTVjMWRiLi4wMDAwMDAwMDAwCj4gLS0tIGEvbGliYXZmb3JtYXQvaGxzcHJvdG8uYwo+ ICsrKyAvZGV2L251bGwKPiBAQCAtMSwzMTggKzAsMCBAQAo+IC0vKgo+IC0gKiBBcHBsZSBIVFRQ IExpdmUgU3RyZWFtaW5nIFByb3RvY29sIEhhbmRsZXIKPiAtICogQ29weXJpZ2h0IChjKSAyMDEw IE1hcnRpbiBTdG9yc2pvCj4gLSAqCj4gLSAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4K PiAtICoKPiAtICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgo+IC0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCj4gLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+IC0gKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiAtICoKPiAtICog RkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Cj4gLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCj4gLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gLSAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gLSAqCj4gLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiAtICogTGljZW5z ZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQo+ IC0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC b3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4gLSAqLwo+IC0KPiAtLyoqCj4gLSAqIEBmaWxlCj4g LSAqIEFwcGxlIEhUVFAgTGl2ZSBTdHJlYW1pbmcgUHJvdG9jb2wgSGFuZGxlcgo+IC0gKiBodHRw czovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjODIxNi50eHQKPiAtICovCj4gLQo+IC0jaW5j bHVkZSAibGliYXZ1dGlsL2F2c3RyaW5nLmgiCj4gLSNpbmNsdWRlICJsaWJhdnV0aWwvbWVtLmgi Cj4gLSNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgo+IC0jaW5jbHVkZSAiYXZpb19pbnRlcm5h bC5oIgo+IC0jaW5jbHVkZSAiaW50ZXJuYWwuaCIKPiAtI2luY2x1ZGUgInVybC5oIgo+IC0KPiAt LyoKPiAtICogQW4gYXBwbGUgaHR0cCBzdHJlYW0gY29uc2lzdHMgb2YgYSBwbGF5bGlzdCB3aXRo IG1lZGlhIHNlZ21lbnQgZmlsZXMsCj4gLSAqIHBsYXllZCBzZXF1ZW50aWFsbHkuIFRoZXJlIG1h eSBiZSBzZXZlcmFsIHBsYXlsaXN0cyB3aXRoIHRoZSBzYW1lCj4gLSAqIHZpZGVvIGNvbnRlbnQs IGluIGRpZmZlcmVudCBiYW5kd2lkdGggdmFyaWFudHMsIHRoYXQgYXJlIHBsYXllZCBpbgo+IC0g KiBwYXJhbGxlbCAocHJlZmVyYWJseSBvbmx5IG9uZSBiYW5kd2lkdGggdmFyaWFudCBhdCBhIHRp bWUpLiBJbiB0aGlzIGNhc2UsCj4gLSAqIHRoZSB1c2VyIHN1cHBsaWVkIHRoZSB1cmwgdG8gYSBt YWluIHBsYXlsaXN0IHRoYXQgb25seSBsaXN0cyB0aGUgdmFyaWFudAo+IC0gKiBwbGF5bGlzdHMu Cj4gLSAqCj4gLSAqIElmIHRoZSBtYWluIHBsYXlsaXN0IGRvZXNuJ3QgcG9pbnQgYXQgYW55IHZh cmlhbnRzLCB3ZSBzdGlsbCBjcmVhdGUKPiAtICogb25lIGFub255bW91cyB0b3BsZXZlbCB2YXJp YW50IGZvciB0aGlzLCB0byBtYWludGFpbiB0aGUgc3RydWN0dXJlLgo+IC0gKi8KPiAtCj4gLXN0 cnVjdCBzZWdtZW50IHsKPiAtICAgIGludDY0X3QgZHVyYXRpb247Cj4gLSAgICBjaGFyIHVybFtN QVhfVVJMX1NJWkVdOwo+IC19Owo+IC0KPiAtc3RydWN0IHZhcmlhbnQgewo+IC0gICAgaW50IGJh bmR3aWR0aDsKPiAtICAgIGNoYXIgdXJsW01BWF9VUkxfU0laRV07Cj4gLX07Cj4gLQo+IC10eXBl ZGVmIHN0cnVjdCBITFNDb250ZXh0IHsKPiAtICAgIGNoYXIgcGxheWxpc3R1cmxbTUFYX1VSTF9T SVpFXTsKPiAtICAgIGludDY0X3QgdGFyZ2V0X2R1cmF0aW9uOwo+IC0gICAgaW50IHN0YXJ0X3Nl cV9ubzsKPiAtICAgIGludCBmaW5pc2hlZDsKPiAtICAgIGludCBuX3NlZ21lbnRzOwo+IC0gICAg c3RydWN0IHNlZ21lbnQgKipzZWdtZW50czsKPiAtICAgIGludCBuX3ZhcmlhbnRzOwo+IC0gICAg c3RydWN0IHZhcmlhbnQgKip2YXJpYW50czsKPiAtICAgIGludCBjdXJfc2VxX25vOwo+IC0gICAg VVJMQ29udGV4dCAqc2VnX2hkOwo+IC0gICAgaW50NjRfdCBsYXN0X2xvYWRfdGltZTsKPiAtfSBI TFNDb250ZXh0Owo+IC0KPiAtc3RhdGljIHZvaWQgZnJlZV9zZWdtZW50X2xpc3QoSExTQ29udGV4 dCAqcykKPiAtewo+IC0gICAgaW50IGk7Cj4gLSAgICBmb3IgKGkgPSAwOyBpIDwgcy0+bl9zZWdt ZW50czsgaSsrKQo+IC0gICAgICAgIGF2X2ZyZWVwKCZzLT5zZWdtZW50c1tpXSk7Cj4gLSAgICBh dl9mcmVlcCgmcy0+c2VnbWVudHMpOwo+IC0gICAgcy0+bl9zZWdtZW50cyA9IDA7Cj4gLX0KPiAt Cj4gLXN0YXRpYyB2b2lkIGZyZWVfdmFyaWFudF9saXN0KEhMU0NvbnRleHQgKnMpCj4gLXsKPiAt ICAgIGludCBpOwo+IC0gICAgZm9yIChpID0gMDsgaSA8IHMtPm5fdmFyaWFudHM7IGkrKykKPiAt ICAgICAgICBhdl9mcmVlcCgmcy0+dmFyaWFudHNbaV0pOwo+IC0gICAgYXZfZnJlZXAoJnMtPnZh cmlhbnRzKTsKPiAtICAgIHMtPm5fdmFyaWFudHMgPSAwOwo+IC19Cj4gLQo+IC1zdHJ1Y3QgdmFy aWFudF9pbmZvIHsKPiAtICAgIGNoYXIgYmFuZHdpZHRoWzIwXTsKPiAtfTsKPiAtCj4gLXN0YXRp YyB2b2lkIGhhbmRsZV92YXJpYW50X2FyZ3Moc3RydWN0IHZhcmlhbnRfaW5mbyAqaW5mbywgY29u c3QgY2hhciAqa2V5LAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXlf bGVuLCBjaGFyICoqZGVzdCwgaW50ICpkZXN0X2xlbikKPiAtewo+IC0gICAgaWYgKCFzdHJuY21w KGtleSwgIkJBTkRXSURUSD0iLCBrZXlfbGVuKSkgewo+IC0gICAgICAgICpkZXN0ICAgICA9ICAg ICAgICBpbmZvLT5iYW5kd2lkdGg7Cj4gLSAgICAgICAgKmRlc3RfbGVuID0gc2l6ZW9mKGluZm8t PmJhbmR3aWR0aCk7Cj4gLSAgICB9Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgcGFyc2VfcGxheWxp c3QoVVJMQ29udGV4dCAqaCwgY29uc3QgY2hhciAqdXJsKQo+IC17Cj4gLSAgICBITFNDb250ZXh0 ICpzID0gaC0+cHJpdl9kYXRhOwo+IC0gICAgQVZJT0NvbnRleHQgKmluOwo+IC0gICAgaW50IHJl dCA9IDAsIGlzX3NlZ21lbnQgPSAwLCBpc192YXJpYW50ID0gMCwgYmFuZHdpZHRoID0gMDsKPiAt ICAgIGludDY0X3QgZHVyYXRpb24gPSAwOwo+IC0gICAgY2hhciBsaW5lWzEwMjRdOwo+IC0gICAg Y29uc3QgY2hhciAqcHRyOwo+IC0KPiAtICAgIGlmICgocmV0ID0gZmZpb19vcGVuX3doaXRlbGlz dCgmaW4sIHVybCwgQVZJT19GTEFHX1JFQUQsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmgtPmludGVycnVwdF9jYWxsYmFjaywgTlVMTCwKPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBoLT5wcm90b2NvbF93aGl0ZWxpc3QsIGgtPnByb3RvY29sX2Js YWNrbGlzdCkpIDwgMCkKPiAtICAgICAgICByZXR1cm4gcmV0Owo+IC0KPiAtICAgIGZmX2dldF9j aG9tcF9saW5lKGluLCBsaW5lLCBzaXplb2YobGluZSkpOwo+IC0gICAgaWYgKHN0cmNtcChsaW5l LCAiI0VYVE0zVSIpKSB7Cj4gLSAgICAgICAgcmV0ID0gQVZFUlJPUl9JTlZBTElEREFUQTsKPiAt ICAgICAgICBnb3RvIGZhaWw7Cj4gLSAgICB9Cj4gLQo+IC0gICAgZnJlZV9zZWdtZW50X2xpc3Qo cyk7Cj4gLSAgICBzLT5maW5pc2hlZCA9IDA7Cj4gLSAgICB3aGlsZSAoIWF2aW9fZmVvZihpbikp IHsKPiAtICAgICAgICBmZl9nZXRfY2hvbXBfbGluZShpbiwgbGluZSwgc2l6ZW9mKGxpbmUpKTsK PiAtICAgICAgICBpZiAoYXZfc3Ryc3RhcnQobGluZSwgIiNFWFQtWC1TVFJFQU0tSU5GOiIsICZw dHIpKSB7Cj4gLSAgICAgICAgICAgIHN0cnVjdCB2YXJpYW50X2luZm8gaW5mbyA9IHt7MH19Owo+ IC0gICAgICAgICAgICBpc192YXJpYW50ID0gMTsKPiAtICAgICAgICAgICAgZmZfcGFyc2Vfa2V5 X3ZhbHVlKHB0ciwgKGZmX3BhcnNlX2tleV92YWxfY2IpIGhhbmRsZV92YXJpYW50X2FyZ3MsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5mbyk7Cj4gLSAgICAgICAgICAgIGJh bmR3aWR0aCA9IGF0b2koaW5mby5iYW5kd2lkdGgpOwo+IC0gICAgICAgIH0gZWxzZSBpZiAoYXZf c3Ryc3RhcnQobGluZSwgIiNFWFQtWC1UQVJHRVREVVJBVElPTjoiLCAmcHRyKSkgewo+IC0gICAg ICAgICAgICBzLT50YXJnZXRfZHVyYXRpb24gPSBhdG9pKHB0cikgKiBBVl9USU1FX0JBU0U7Cj4g LSAgICAgICAgfSBlbHNlIGlmIChhdl9zdHJzdGFydChsaW5lLCAiI0VYVC1YLU1FRElBLVNFUVVF TkNFOiIsICZwdHIpKSB7Cj4gLSAgICAgICAgICAgIHMtPnN0YXJ0X3NlcV9ubyA9IGF0b2kocHRy KTsKPiAtICAgICAgICB9IGVsc2UgaWYgKGF2X3N0cnN0YXJ0KGxpbmUsICIjRVhULVgtRU5ETElT VCIsICZwdHIpKSB7Cj4gLSAgICAgICAgICAgIHMtPmZpbmlzaGVkID0gMTsKPiAtICAgICAgICB9 IGVsc2UgaWYgKGF2X3N0cnN0YXJ0KGxpbmUsICIjRVhUSU5GOiIsICZwdHIpKSB7Cj4gLSAgICAg ICAgICAgIGlzX3NlZ21lbnQgPSAxOwo+IC0gICAgICAgICAgICBkdXJhdGlvbiA9IGF0b2YocHRy KSAqIEFWX1RJTUVfQkFTRTsKPiAtICAgICAgICB9IGVsc2UgaWYgKGF2X3N0cnN0YXJ0KGxpbmUs ICIjIiwgTlVMTCkpIHsKPiAtICAgICAgICAgICAgY29udGludWU7Cj4gLSAgICAgICAgfSBlbHNl IGlmIChsaW5lWzBdKSB7Cj4gLSAgICAgICAgICAgIGlmIChpc19zZWdtZW50KSB7Cj4gLSAgICAg ICAgICAgICAgICBzdHJ1Y3Qgc2VnbWVudCAqc2VnID0gYXZfbWFsbG9jKHNpemVvZihzdHJ1Y3Qg c2VnbWVudCkpOwo+IC0gICAgICAgICAgICAgICAgaWYgKCFzZWcpIHsKPiAtICAgICAgICAgICAg ICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7Cj4gLSAgICAgICAgICAgICAgICAgICAgZ290 byBmYWlsOwo+IC0gICAgICAgICAgICAgICAgfQo+IC0gICAgICAgICAgICAgICAgc2VnLT5kdXJh dGlvbiA9IGR1cmF0aW9uOwo+IC0gICAgICAgICAgICAgICAgZmZfbWFrZV9hYnNvbHV0ZV91cmwo c2VnLT51cmwsIHNpemVvZihzZWctPnVybCksIHVybCwgbGluZSk7Cj4gLSAgICAgICAgICAgICAg ICBkeW5hcnJheV9hZGQoJnMtPnNlZ21lbnRzLCAmcy0+bl9zZWdtZW50cywgc2VnKTsKPiAtICAg ICAgICAgICAgICAgIGlzX3NlZ21lbnQgPSAwOwo+IC0gICAgICAgICAgICB9IGVsc2UgaWYgKGlz X3ZhcmlhbnQpIHsKPiAtICAgICAgICAgICAgICAgIHN0cnVjdCB2YXJpYW50ICp2YXIgPSBhdl9t YWxsb2Moc2l6ZW9mKHN0cnVjdCB2YXJpYW50KSk7Cj4gLSAgICAgICAgICAgICAgICBpZiAoIXZh cikgewo+IC0gICAgICAgICAgICAgICAgICAgIHJldCA9IEFWRVJST1IoRU5PTUVNKTsKPiAtICAg ICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gLSAgICAgICAgICAgICAgICB9Cj4gLSAgICAg ICAgICAgICAgICB2YXItPmJhbmR3aWR0aCA9IGJhbmR3aWR0aDsKPiAtICAgICAgICAgICAgICAg IGZmX21ha2VfYWJzb2x1dGVfdXJsKHZhci0+dXJsLCBzaXplb2YodmFyLT51cmwpLCB1cmwsIGxp bmUpOwo+IC0gICAgICAgICAgICAgICAgZHluYXJyYXlfYWRkKCZzLT52YXJpYW50cywgJnMtPm5f dmFyaWFudHMsIHZhcik7Cj4gLSAgICAgICAgICAgICAgICBpc192YXJpYW50ID0gMDsKPiAtICAg ICAgICAgICAgfQo+IC0gICAgICAgIH0KPiAtICAgIH0KPiAtICAgIHMtPmxhc3RfbG9hZF90aW1l ID0gYXZfZ2V0dGltZV9yZWxhdGl2ZSgpOwo+IC0KPiAtZmFpbDoKPiAtICAgIGF2aW9fY2xvc2Uo aW4pOwo+IC0gICAgcmV0dXJuIHJldDsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBobHNfY2xvc2Uo VVJMQ29udGV4dCAqaCkKPiAtewo+IC0gICAgSExTQ29udGV4dCAqcyA9IGgtPnByaXZfZGF0YTsK PiAtCj4gLSAgICBmcmVlX3NlZ21lbnRfbGlzdChzKTsKPiAtICAgIGZyZWVfdmFyaWFudF9saXN0 KHMpOwo+IC0gICAgZmZ1cmxfY2xvc2VwKCZzLT5zZWdfaGQpOwo+IC0gICAgcmV0dXJuIDA7Cj4g LX0KPiAtCj4gLXN0YXRpYyBpbnQgaGxzX29wZW4oVVJMQ29udGV4dCAqaCwgY29uc3QgY2hhciAq dXJpLCBpbnQgZmxhZ3MpCj4gLXsKPiAtICAgIEhMU0NvbnRleHQgKnMgPSBoLT5wcml2X2RhdGE7 Cj4gLSAgICBpbnQgcmV0LCBpOwo+IC0gICAgY29uc3QgY2hhciAqbmVzdGVkX3VybDsKPiAtCj4g LSAgICBpZiAoZmxhZ3MgJiBBVklPX0ZMQUdfV1JJVEUpCj4gLSAgICAgICAgcmV0dXJuIEFWRVJS T1IoRU5PU1lTKTsKPiAtCj4gLSAgICBoLT5pc19zdHJlYW1lZCA9IDE7Cj4gLQo+IC0gICAgaWYg KGF2X3N0cnN0YXJ0KHVyaSwgImhscysiLCAmbmVzdGVkX3VybCkpIHsKPiAtICAgICAgICBhdl9z dHJsY3B5KHMtPnBsYXlsaXN0dXJsLCBuZXN0ZWRfdXJsLCBzaXplb2Yocy0+cGxheWxpc3R1cmwp KTsKPiAtICAgIH0gZWxzZSBpZiAoYXZfc3Ryc3RhcnQodXJpLCAiaGxzOi8vIiwgJm5lc3RlZF91 cmwpKSB7Cj4gLSAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19FUlJPUiwKPiAtICAgICAgICAgICAg ICAgIk5vIG5lc3RlZCBwcm90b2NvbCBzcGVjaWZpZWQuIFNwZWNpZnkgZS5nLiBobHMraHR0cDov LyVzXG4iLAo+IC0gICAgICAgICAgICAgICBuZXN0ZWRfdXJsKTsKPiAtICAgICAgICByZXQgPSBB VkVSUk9SKEVJTlZBTCk7Cj4gLSAgICAgICAgZ290byBmYWlsOwo+IC0gICAgfSBlbHNlIHsKPiAt ICAgICAgICBhdl9sb2coaCwgQVZfTE9HX0VSUk9SLCAiVW5zdXBwb3J0ZWQgdXJsICVzXG4iLCB1 cmkpOwo+IC0gICAgICAgIHJldCA9IEFWRVJST1IoRUlOVkFMKTsKPiAtICAgICAgICBnb3RvIGZh aWw7Cj4gLSAgICB9Cj4gLSAgICBhdl9sb2coaCwgQVZfTE9HX1dBUk5JTkcsCj4gLSAgICAgICAg ICAgIlVzaW5nIHRoZSBobHMgcHJvdG9jb2wgaXMgZGlzY291cmFnZWQsIHBsZWFzZSB0cnkgdXNp bmcgdGhlICIKPiAtICAgICAgICAgICAiaGxzIGRlbXV4ZXIgaW5zdGVhZC4gVGhlIGhscyBkZW11 eGVyIHNob3VsZCBiZSBtb3JlIGNvbXBsZXRlICIKPiAtICAgICAgICAgICAiYW5kIHdvcmsgYXMg d2VsbCBhcyB0aGUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIChJZiBub3QsICIKPiAtICAgICAg ICAgICAicGxlYXNlIHJlcG9ydCBpdC4pIFRvIHVzZSB0aGUgZGVtdXhlciwgc2ltcGx5IHVzZSAl cyBhcyB1cmwuXG4iLAo+IC0gICAgICAgICAgIHMtPnBsYXlsaXN0dXJsKTsKPiAtCj4gLSAgICBp ZiAoKHJldCA9IHBhcnNlX3BsYXlsaXN0KGgsIHMtPnBsYXlsaXN0dXJsKSkgPCAwKQo+IC0gICAg ICAgIGdvdG8gZmFpbDsKPiAtCj4gLSAgICBpZiAocy0+bl9zZWdtZW50cyA9PSAwICYmIHMtPm5f dmFyaWFudHMgPiAwKSB7Cj4gLSAgICAgICAgaW50IG1heF9iYW5kd2lkdGggPSAwLCBtYXh2YXIg PSAtMTsKPiAtICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcy0+bl92YXJpYW50czsgaSsrKSB7Cj4g LSAgICAgICAgICAgIGlmIChzLT52YXJpYW50c1tpXS0+YmFuZHdpZHRoID4gbWF4X2JhbmR3aWR0 aCB8fCBpID09IDApIHsKPiAtICAgICAgICAgICAgICAgIG1heF9iYW5kd2lkdGggPSBzLT52YXJp YW50c1tpXS0+YmFuZHdpZHRoOwo+IC0gICAgICAgICAgICAgICAgbWF4dmFyID0gaTsKPiAtICAg ICAgICAgICAgfQo+IC0gICAgICAgIH0KPiAtICAgICAgICBhdl9zdHJsY3B5KHMtPnBsYXlsaXN0 dXJsLCBzLT52YXJpYW50c1ttYXh2YXJdLT51cmwsCj4gLSAgICAgICAgICAgICAgICAgICBzaXpl b2Yocy0+cGxheWxpc3R1cmwpKTsKPiAtICAgICAgICBpZiAoKHJldCA9IHBhcnNlX3BsYXlsaXN0 KGgsIHMtPnBsYXlsaXN0dXJsKSkgPCAwKQo+IC0gICAgICAgICAgICBnb3RvIGZhaWw7Cj4gLSAg ICB9Cj4gLQo+IC0gICAgaWYgKHMtPm5fc2VnbWVudHMgPT0gMCkgewo+IC0gICAgICAgIGF2X2xv ZyhoLCBBVl9MT0dfV0FSTklORywgIkVtcHR5IHBsYXlsaXN0XG4iKTsKPiAtICAgICAgICByZXQg PSBBVkVSUk9SKEVJTyk7Cj4gLSAgICAgICAgZ290byBmYWlsOwo+IC0gICAgfQo+IC0gICAgcy0+ Y3VyX3NlcV9ubyA9IHMtPnN0YXJ0X3NlcV9ubzsKPiAtICAgIGlmICghcy0+ZmluaXNoZWQgJiYg cy0+bl9zZWdtZW50cyA+PSAzKQo+IC0gICAgICAgIHMtPmN1cl9zZXFfbm8gPSBzLT5zdGFydF9z ZXFfbm8gKyBzLT5uX3NlZ21lbnRzIC0gMzsKPiAtCj4gLSAgICByZXR1cm4gMDsKPiAtCj4gLWZh aWw6Cj4gLSAgICBobHNfY2xvc2UoaCk7Cj4gLSAgICByZXR1cm4gcmV0Owo+IC19Cj4gLQo+IC1z dGF0aWMgaW50IGhsc19yZWFkKFVSTENvbnRleHQgKmgsIHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUp Cj4gLXsKPiAtICAgIEhMU0NvbnRleHQgKnMgPSBoLT5wcml2X2RhdGE7Cj4gLSAgICBjb25zdCBj aGFyICp1cmw7Cj4gLSAgICBpbnQgcmV0Owo+IC0gICAgaW50NjRfdCByZWxvYWRfaW50ZXJ2YWw7 Cj4gLQo+IC1zdGFydDoKPiAtICAgIGlmIChzLT5zZWdfaGQpIHsKPiAtICAgICAgICByZXQgPSBm ZnVybF9yZWFkKHMtPnNlZ19oZCwgYnVmLCBzaXplKTsKPiAtICAgICAgICBpZiAocmV0ID4gMCkK PiAtICAgICAgICAgICAgcmV0dXJuIHJldDsKPiAtICAgIH0KPiAtICAgIGlmIChzLT5zZWdfaGQp IHsKPiAtICAgICAgICBmZnVybF9jbG9zZXAoJnMtPnNlZ19oZCk7Cj4gLSAgICAgICAgcy0+Y3Vy X3NlcV9ubysrOwo+IC0gICAgfQo+IC0gICAgcmVsb2FkX2ludGVydmFsID0gcy0+bl9zZWdtZW50 cyA+IDAgPwo+IC0gICAgICAgICAgICAgICAgICAgICAgcy0+c2VnbWVudHNbcy0+bl9zZWdtZW50 cyAtIDFdLT5kdXJhdGlvbiA6Cj4gLSAgICAgICAgICAgICAgICAgICAgICBzLT50YXJnZXRfZHVy YXRpb247Cj4gLXJldHJ5Ogo+IC0gICAgaWYgKCFzLT5maW5pc2hlZCkgewo+IC0gICAgICAgIGlu dDY0X3Qgbm93ID0gYXZfZ2V0dGltZV9yZWxhdGl2ZSgpOwo+IC0gICAgICAgIGlmIChub3cgLSBz LT5sYXN0X2xvYWRfdGltZSA+PSByZWxvYWRfaW50ZXJ2YWwpIHsKPiAtICAgICAgICAgICAgaWYg KChyZXQgPSBwYXJzZV9wbGF5bGlzdChoLCBzLT5wbGF5bGlzdHVybCkpIDwgMCkKPiAtICAgICAg ICAgICAgICAgIHJldHVybiByZXQ7Cj4gLSAgICAgICAgICAgIC8qIElmIHdlIG5lZWQgdG8gcmVs b2FkIHRoZSBwbGF5bGlzdCBhZ2FpbiBiZWxvdyAoaWYKPiAtICAgICAgICAgICAgICogdGhlcmUn cyBzdGlsbCBubyBtb3JlIHNlZ21lbnRzKSwgc3dpdGNoIHRvIGEgcmVsb2FkCj4gLSAgICAgICAg ICAgICAqIGludGVydmFsIG9mIGhhbGYgdGhlIHRhcmdldCBkdXJhdGlvbi4gKi8KPiAtICAgICAg ICAgICAgcmVsb2FkX2ludGVydmFsID0gcy0+dGFyZ2V0X2R1cmF0aW9uIC8gMjsKPiAtICAgICAg ICB9Cj4gLSAgICB9Cj4gLSAgICBpZiAocy0+Y3VyX3NlcV9ubyA8IHMtPnN0YXJ0X3NlcV9ubykg ewo+IC0gICAgICAgIGF2X2xvZyhoLCBBVl9MT0dfV0FSTklORywKPiAtICAgICAgICAgICAgICAg InNraXBwaW5nICVkIHNlZ21lbnRzIGFoZWFkLCBleHBpcmVkIGZyb20gcGxheWxpc3RcbiIsCj4g LSAgICAgICAgICAgICAgIHMtPnN0YXJ0X3NlcV9ubyAtIHMtPmN1cl9zZXFfbm8pOwo+IC0gICAg ICAgIHMtPmN1cl9zZXFfbm8gPSBzLT5zdGFydF9zZXFfbm87Cj4gLSAgICB9Cj4gLSAgICBpZiAo cy0+Y3VyX3NlcV9ubyAtIHMtPnN0YXJ0X3NlcV9ubyA+PSBzLT5uX3NlZ21lbnRzKSB7Cj4gLSAg ICAgICAgaWYgKHMtPmZpbmlzaGVkKQo+IC0gICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7 Cj4gLSAgICAgICAgd2hpbGUgKGF2X2dldHRpbWVfcmVsYXRpdmUoKSAtIHMtPmxhc3RfbG9hZF90 aW1lIDwgcmVsb2FkX2ludGVydmFsKSB7Cj4gLSAgICAgICAgICAgIGlmIChmZl9jaGVja19pbnRl cnJ1cHQoJmgtPmludGVycnVwdF9jYWxsYmFjaykpCj4gLSAgICAgICAgICAgICAgICByZXR1cm4g QVZFUlJPUl9FWElUOwo+IC0gICAgICAgICAgICBhdl91c2xlZXAoMTAwKjEwMDApOwo+IC0gICAg ICAgIH0KPiAtICAgICAgICBnb3RvIHJldHJ5Owo+IC0gICAgfQo+IC0gICAgdXJsID0gcy0+c2Vn bWVudHNbcy0+Y3VyX3NlcV9ubyAtIHMtPnN0YXJ0X3NlcV9ub10tPnVybDsKPiAtICAgIGF2X2xv ZyhoLCBBVl9MT0dfREVCVUcsICJvcGVuaW5nICVzXG4iLCB1cmwpOwo+IC0gICAgcmV0ID0gZmZ1 cmxfb3Blbl93aGl0ZWxpc3QoJnMtPnNlZ19oZCwgdXJsLCBBVklPX0ZMQUdfUkVBRCwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoLT5pbnRlcnJ1cHRfY2FsbGJhY2ssIE5VTEws Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLT5wcm90b2NvbF93aGl0ZWxpc3Qs IGgtPnByb3RvY29sX2JsYWNrbGlzdCwgaCk7Cj4gLSAgICBpZiAocmV0IDwgMCkgewo+IC0gICAg ICAgIGlmIChmZl9jaGVja19pbnRlcnJ1cHQoJmgtPmludGVycnVwdF9jYWxsYmFjaykpCj4gLSAg ICAgICAgICAgIHJldHVybiBBVkVSUk9SX0VYSVQ7Cj4gLSAgICAgICAgYXZfbG9nKGgsIEFWX0xP R19XQVJOSU5HLCAiVW5hYmxlIHRvIG9wZW4gJXNcbiIsIHVybCk7Cj4gLSAgICAgICAgcy0+Y3Vy X3NlcV9ubysrOwo+IC0gICAgICAgIGdvdG8gcmV0cnk7Cj4gLSAgICB9Cj4gLSAgICBnb3RvIHN0 YXJ0Owo+IC19Cj4gLQo+IC1jb25zdCBVUkxQcm90b2NvbCBmZl9obHNfcHJvdG9jb2wgPSB7Cj4g LSAgICAubmFtZSAgICAgICAgICAgPSAiaGxzIiwKPiAtICAgIC51cmxfb3BlbiAgICAgICA9IGhs c19vcGVuLAo+IC0gICAgLnVybF9yZWFkICAgICAgID0gaGxzX3JlYWQsCj4gLSAgICAudXJsX2Ns b3NlICAgICAgPSBobHNfY2xvc2UsCj4gLSAgICAuZmxhZ3MgICAgICAgICAgPSBVUkxfUFJPVE9D T0xfRkxBR19ORVNURURfU0NIRU1FLAo+IC0gICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKEhM U0NvbnRleHQpLAo+IC19Owo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9wcm90b2NvbHMuYyBi L2xpYmF2Zm9ybWF0L3Byb3RvY29scy5jCj4gaW5kZXggZDM5NDQ1NGQ0MS4uMjA3YjZiZjhkOSAx MDA2NDQKPiAtLS0gYS9saWJhdmZvcm1hdC9wcm90b2NvbHMuYwo+ICsrKyBiL2xpYmF2Zm9ybWF0 L3Byb3RvY29scy5jCj4gQEAgLTM5LDcgKzM5LDYgQEAgZXh0ZXJuIGNvbnN0IFVSTFByb3RvY29s IGZmX2ZpbGVfcHJvdG9jb2w7Cj4gIGV4dGVybiBjb25zdCBVUkxQcm90b2NvbCBmZl9mdHBfcHJv dG9jb2w7Cj4gIGV4dGVybiBjb25zdCBVUkxQcm90b2NvbCBmZl9nb3BoZXJfcHJvdG9jb2w7Cj4g IGV4dGVybiBjb25zdCBVUkxQcm90b2NvbCBmZl9nb3BoZXJzX3Byb3RvY29sOwo+IC1leHRlcm4g Y29uc3QgVVJMUHJvdG9jb2wgZmZfaGxzX3Byb3RvY29sOwo+ICBleHRlcm4gY29uc3QgVVJMUHJv dG9jb2wgZmZfaHR0cF9wcm90b2NvbDsKPiAgZXh0ZXJuIGNvbnN0IFVSTFByb3RvY29sIGZmX2h0 dHBwcm94eV9wcm90b2NvbDsKPiAgZXh0ZXJuIGNvbnN0IFVSTFByb3RvY29sIGZmX2h0dHBzX3By b3RvY29sOwo+IC0tCj4gMi4zOS41IChBcHBsZSBHaXQtMTU0KQo+Cj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBs aXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPgo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFi b3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJq ZWN0ICJ1bnN1YnNjcmliZSIuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5v cmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1 bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVl c3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K