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 EE5CA46293 for ; Tue, 13 Jun 2023 18:32:48 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F2EF568C411; Tue, 13 Jun 2023 21:32:45 +0300 (EEST) Received: from mail-vk1-f173.google.com (mail-vk1-f173.google.com [209.85.221.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7C29268AC36 for ; Tue, 13 Jun 2023 21:32:40 +0300 (EEST) Received: by mail-vk1-f173.google.com with SMTP id 71dfb90a1353d-46e28685090so373702e0c.0 for ; Tue, 13 Jun 2023 11:32:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686681159; x=1689273159; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FHm4Qw2T4RqN+2keGxo8kK7W4fqDGYpUYaMAnx4b108=; b=Q8dBIXr25nock6HWOkhsI30d2zTmYlMnh6ePcgBOmrCYXMadsGXui3Lsi7b3VEdpMd 4FhLKf7qbr99mfY944agyQm8/EADuPXvUxLeWYk7M8cADo6aOxswPWaOcZ2c4lwk/lxl JbXBbfQXNqC+2pZ08K06UHm8NjFuzaIi7ojwKCrAPM/lgpMUuP0+JCecoWh7ZylzrFym 8QTaIAnmO3z029zALm84CRBozS5aNs6LRraFjckCB6VHI+14VOdkr3Amxm/quIKhEUOS Gojpk4Y3jXgU7YOd7w+g6DaeWdhtL3lKG/ls2IqVWNNyhIsx+q3/PfherPWmG9HOSyQL 66VQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686681159; x=1689273159; h=cc: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=FHm4Qw2T4RqN+2keGxo8kK7W4fqDGYpUYaMAnx4b108=; b=NOLRApI753BfSScfjQG9FRcr0K+3M8PV9eDjq6Ox/CnuskVVxCC7TdFtVRZy+mXeX0 ISN/2FJwUNqS4U5zt4afcQqzfcGQemXAv50B2cMJsKJacvHCqASBoa+uyknc9rz9619/ 2xD6cRfJ6xl06pzN/2sqtds9fvm5nvhP7f6Twf3B1TZiL0yQ7sGg88od6ptGCX5Vmbp4 sOPW7KbM8wih4hHgf2V9X+0y2flmlYEpKffB8fItTv0Uh0eH/o2K1JeMhDb5TTFAkV7v WQ5KiugveXyFbAYJ/pCzxPpxzqS/umSbPzz8rxbzWyPQpYguUqYvcAdudxAXszdopmYx 3qQw== X-Gm-Message-State: AC+VfDx/3YohAntqw8qGKomEw8pF7zXs+KMo65MUJfqPa88sRT4pJbSU VylWAa5zOjZZyrsQchiAjw6aABQO+9winmFiJbsKADB7 X-Google-Smtp-Source: ACHHUZ5v468tfj8aZcL8EpBDuYPNctLLqfwNtFZauqYJ8zFxOTDaFmDJB5M97LFdYsb7Y8g2Wlgs7f0WcNUrOVpk3iY= X-Received: by 2002:a1f:3dcf:0:b0:463:57aa:96b9 with SMTP id k198-20020a1f3dcf000000b0046357aa96b9mr6196388vka.8.1686681158808; Tue, 13 Jun 2023 11:32:38 -0700 (PDT) MIME-Version: 1.0 References: <61fca341-57cc-abe5-225e-561f5e2a9b4b@funderburk.us> <20230415145640.GF275832@pb2> <20230416195546.GG275832@pb2> <080aed51-b15f-763b-6448-3f0ad2a52a4f@funderburk.us> In-Reply-To: <080aed51-b15f-763b-6448-3f0ad2a52a4f@funderburk.us> From: Paul B Mahol Date: Tue, 13 Jun 2023 20:32:18 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v3 2/2] avformat/avcodec: Add DTS-UHD demuxer and parser, movenc support. 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 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: T24gTW9uLCBBcHIgMTcsIDIwMjMgYXQgNjoxNOKAr0FNIFJveSBGdW5kZXJidXJrIDxyb3lmZm1w ZWdAZnVuZGVyYnVyay51cz4Kd3JvdGU6Cgo+IERlbXV4aW5nIG9mIERUUy1VSEQgaW5wdXQgZmls ZXMgcGVyIEVUU0kgVFMgMTAyIDExNCBpcyBhZGRlZCBhcwo+IGRlbXV4ZXIgImR0c3VoZCIuICBt b3ZlbmMgc3VwcG9ydHMgRFRTLVVIRCBhdWRpbyB0cmFjay4KPgo+IFNpZ25lZC1vZmYtYnk6IFJv eSBGdW5kZXJidXJrIDxSb3kuRnVuZGVyYnVya0B4cGVyaS5jb20+Cj4gLS0tCj4gIENoYW5nZWxv ZyAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICBjb25maWd1cmUgICAgICAgICAgICAgICAgIHwg ICAxICsKPiAgZG9jL2dlbmVyYWxfY29udGVudHMudGV4aSB8ICAgMSArCj4gIGxpYmF2Zm9ybWF0 L01ha2VmaWxlICAgICAgfCAgIDEgKwo+ICBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgIHwgICAx ICsKPiAgbGliYXZmb3JtYXQvZHRzaGRkZWMuYyAgICB8ICAgMiArLQo+ICBsaWJhdmZvcm1hdC9k dHN1aGRkZWMuYyAgIHwgMjE2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gIGxpYmF2Zm9ybWF0L21vdmVuYy5jICAgICAgfCAgMzIgKysrKysrCj4gIGxpYmF2Zm9ybWF0 L3ZlcnNpb24uaCAgICAgfCAgIDIgKy0KPiAgOSBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Zm9ybWF0L2R0 c3VoZGRlYy5jCj4KPiBkaWZmIC0tZ2l0IGEvQ2hhbmdlbG9nIGIvQ2hhbmdlbG9nCj4gaW5kZXgg YTQwZjMyYzIzZi4uZjY4M2I0OWJiMiAxMDA2NDQKPiAtLS0gYS9DaGFuZ2Vsb2cKPiArKysgYi9D aGFuZ2Vsb2cKPiBAQCAtMyw2ICszLDcgQEAgcmVsZWFzZXMgYXJlIHNvcnRlZCBmcm9tIHlvdW5n ZXN0IHRvIG9sZGVzdC4KPgo+ICB2ZXJzaW9uIDxuZXh0PjoKPiAgLSBsaWJhcmliY2FwdGlvbiBk ZWNvZGVyCj4gKy0gRFRTLVVIRCBkZW11eGVyCj4KPiAgdmVyc2lvbiA2LjA6Cj4gIC0gUmFkaWFu Y2UgSERSIGltYWdlIHN1cHBvcnQKPiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJl Cj4gaW5kZXggMDMzZGI3NDQyZC4uNTU3ODIxY2VlZiAxMDA3NTUKPiAtLS0gYS9jb25maWd1cmUK PiArKysgYi9jb25maWd1cmUKPiBAQCAtMzQyNSw2ICszNDI1LDcgQEAgZGFzaF9kZW11eGVyX2Rl cHM9ImxpYnhtbDIiCj4gIGRpcmFjX2RlbXV4ZXJfc2VsZWN0PSJkaXJhY19wYXJzZXIiCj4gIGR0 c19kZW11eGVyX3NlbGVjdD0iZGNhX3BhcnNlciIKPiAgZHRzaGRfZGVtdXhlcl9zZWxlY3Q9ImRj YV9wYXJzZXIiCj4gK2R0c3VoZF9kZW11eGVyX3NlbGVjdD0iZHRzdWhkX3BhcnNlciIKPiAgZHZf ZGVtdXhlcl9zZWxlY3Q9ImR2cHJvZmlsZSIKPiAgZHZfbXV4ZXJfc2VsZWN0PSJkdnByb2ZpbGUi Cj4gIGR4YV9kZW11eGVyX3NlbGVjdD0icmlmZmRlYyIKPiBkaWZmIC0tZ2l0IGEvZG9jL2dlbmVy YWxfY29udGVudHMudGV4aSBiL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkKPiBpbmRleCAyZWVl YmQ4NDdkLi5lMWJhOWM0NTk3IDEwMDY0NAo+IC0tLSBhL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRl eGkKPiArKysgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCj4gQEAgLTU5Nyw2ICs1OTcsNyBA QCBsaWJyYXJ5Ogo+ICBAaXRlbSByYXcgRE54SEQgICAgICAgICAgICAgICAgIEB0YWIgWCBAdGFi IFgKPiAgQGl0ZW0gcmF3IERUUyAgICAgICAgICAgICAgICAgICBAdGFiIFggQHRhYiBYCj4gIEBp dGVtIHJhdyBEVFMtSEQgICAgICAgICAgICAgICAgQHRhYiAgIEB0YWIgWAo+ICtAaXRlbSByYXcg RFRTLVVIRCAgICAgICAgICAgICAgIEB0YWIgICBAdGFiCj4gIEBpdGVtIHJhdyBFLUFDLTMgICAg ICAgICAgICAgICAgQHRhYiBYIEB0YWIgWAo+ICBAaXRlbSByYXcgRkxBQyAgICAgICAgICAgICAg ICAgIEB0YWIgWCBAdGFiIFgKPiAgQGl0ZW0gcmF3IEdTTSAgICAgICAgICAgICAgICAgICBAdGFi ICAgQHRhYiBYCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlIGIvbGliYXZmb3Jt YXQvTWFrZWZpbGUKPiBpbmRleCAwNDg2NDk2ODliLi40MmNmMTkzNDhmIDEwMDY0NAo+IC0tLSBh L2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4gKysrIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKPiBAQCAt MTg2LDYgKzE4Niw3IEBAIE9CSlMtJChDT05GSUdfRFNJQ0lOX0RFTVVYRVIpICAgICAgICAgICAg Kz0gZHNpY2luLm8KPiAgT0JKUy0kKENPTkZJR19EU1NfREVNVVhFUikgICAgICAgICAgICAgICAr PSBkc3Mubwo+ICBPQkpTLSQoQ09ORklHX0RUU0hEX0RFTVVYRVIpICAgICAgICAgICAgICs9IGR0 c2hkZGVjLm8KPiAgT0JKUy0kKENPTkZJR19EVFNfREVNVVhFUikgICAgICAgICAgICAgICArPSBk dHNkZWMubyByYXdkZWMubwo+ICtPQkpTLSQoQ09ORklHX0RUU1VIRF9ERU1VWEVSKSAgICAgICAg ICAgICs9IGR0c3VoZGRlYy5vCj4gIE9CSlMtJChDT05GSUdfRFRTX01VWEVSKSAgICAgICAgICAg ICAgICAgKz0gcmF3ZW5jLm8KPiAgT0JKUy0kKENPTkZJR19EVl9NVVhFUikgICAgICAgICAgICAg ICAgICArPSBkdmVuYy5vCj4gIE9CSlMtJChDT05GSUdfRFZCU1VCX0RFTVVYRVIpICAgICAgICAg ICAgKz0gZHZic3ViLm8gcmF3ZGVjLm8KPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYWxsZm9y bWF0cy5jIGIvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCj4gaW5kZXggY2I1YjY5ZTljZC4uMWI0 OGNlNjA3MyAxMDA2NDQKPiAtLS0gYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPiArKysgYi9s aWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPiBAQCAtMTQ0LDYgKzE0NCw3IEBAIGV4dGVybiBjb25z dCBBVklucHV0Rm9ybWF0ICBmZl9kc3NfZGVtdXhlcjsKPiAgZXh0ZXJuIGNvbnN0IEFWSW5wdXRG b3JtYXQgIGZmX2R0c19kZW11eGVyOwo+ICBleHRlcm4gY29uc3QgRkZPdXRwdXRGb3JtYXQgZmZf ZHRzX211eGVyOwo+ICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfZHRzaGRfZGVtdXhl cjsKPiArZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2R0c3VoZF9kZW11eGVyOwo+ICBl eHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfZHZfZGVtdXhlcjsKPiAgZXh0ZXJuIGNvbnN0 IEZGT3V0cHV0Rm9ybWF0IGZmX2R2X211eGVyOwo+ICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1h dCAgZmZfZHZic3ViX2RlbXV4ZXI7Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2R0c2hkZGVj LmMgYi9saWJhdmZvcm1hdC9kdHNoZGRlYy5jCj4gaW5kZXggYTNkZWEwNjY4Zi4uNmU5ZTc4YTMz NSAxMDA2NDQKPiAtLS0gYS9saWJhdmZvcm1hdC9kdHNoZGRlYy5jCj4gKysrIGIvbGliYXZmb3Jt YXQvZHRzaGRkZWMuYwo+IEBAIC00Niw3ICs0Niw3IEBAIHR5cGVkZWYgc3RydWN0IERUU0hERGVt dXhDb250ZXh0IHsKPiAgc3RhdGljIGludCBkdHNoZF9wcm9iZShjb25zdCBBVlByb2JlRGF0YSAq cCkKPiAgewo+ICAgICAgaWYgKEFWX1JCNjQocC0+YnVmKSA9PSBEVFNIREhEUikKPiAtICAgICAg ICByZXR1cm4gQVZQUk9CRV9TQ09SRV9NQVg7Cj4gKyAgICAgICAgcmV0dXJuIEFWUFJPQkVfU0NP UkVfTUFYIC0gNDsgLy8gRFRTVUhEICguZHRzeCkgZmlsZXMgYWxzbyBoYXZlCj4gdGhpcyBzaWdu YXR1cmUuCj4gICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0 L2R0c3VoZGRlYy5jIGIvbGliYXZmb3JtYXQvZHRzdWhkZGVjLmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAwMDAuLmQ4NDBjMGEwMzMKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvbGliYXZmb3JtYXQvZHRzdWhkZGVjLmMKPiBAQCAtMCwwICsxLDIxNiBAQAo+ICsvKgo+ICsg KiBEVFMtVUhEIGF1ZGlvIGRlbXV4ZXIKPiArICogQ29weXJpZ2h0IChjKSAyMDIzIFhwZXJpIENv cnBvcmF0aW9uIC8gRFRTLCBJbmMuCj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZG bXBlZy4KPiArICoKPiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgo+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoK PiArICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqCj4gKyAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiArICog TGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQo+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs b29yLCBCb3N0b24sIE1BCj4gMDIxMTAtMTMwMSBVU0EKPiArICovCj4gKwo+ICsvKioKPiArICog QGZpbGUKPiArICogUmVwb3J0IERUUy1VSEQgYXVkaW8gc3RyZWFtIGNvbmZpZ3VyYXRpb24gYW5k IGV4dHJhY3QgcmF3IHBhY2tldCBkYXRhLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJpbnRlcm5h bC5oIgo+ICsjaW5jbHVkZSAibGliYXZjb2RlYy9kdHN1aGRfY29tbW9uLmgiCj4gKyNpbmNsdWRl ICJsaWJhdmNvZGVjL3B1dF9iaXRzLmgiCj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdy aXRlLmgiCj4gKwo+ICsjZGVmaW5lIERUU1VIRF9CVUZGRVJfU0laRSAoMTAyNCAqIDEwMjQpCj4g Kwo+ICt0eXBlZGVmIHN0cnVjdCBEVFNVSEREZW11eENvbnRleHQgewo+ICsgICAgc2l6ZV90IGRh dGFfZW5kOwo+ICsgICAgc3RydWN0IERUU1VIRCAqZHRzdWhkOwo+ICsgICAgdWludDhfdCAqYnVm Owo+ICt9IERUU1VIRERlbXV4Q29udGV4dDsKPiArCj4gK3N0YXRpYyBpbnQgcHJvYmUoY29uc3Qg QVZQcm9iZURhdGEgKnApCj4gK3sKPiArICAgIGludCBvZmZzZXQgPSBhdl9kdHN1aGRfc3RybWRh dGFfcGF5bG9hZChwLT5idWYsIHAtPmJ1Zl9zaXplLCBOVUxMKTsKPiArICAgIGludCBzY29yZSA9 IDA7Cj4gKyAgICBzdHJ1Y3QgRFRTVUhEICpoID0gYXZfZHRzdWhkX2NyZWF0ZSgpOwo+ICsKPiAr ICAgIGlmIChoICYmIG9mZnNldCA+PSAwKSB7Cj4gKyAgICAgICAgZm9yICg7IG9mZnNldCArIDQg PCBwLT5idWZfc2l6ZTsgb2Zmc2V0KyspIHsKPiArICAgICAgICAgICAgaWYgKGR0c3VoZF9pc19z eW5jd29yZChBVl9SQjMyKHAtPmJ1ZiArIG9mZnNldCkpKSB7Cj4gKyAgICAgICAgICAgICAgICBp ZiAoRFRTVUhEX09LID09IGF2X2R0c3VoZF9mcmFtZShoLCBwLT5idWYgKyBvZmZzZXQsCj4gcC0+ YnVmX3NpemUgLSBvZmZzZXQsIE5VTEwsIE5VTEwpKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg c2NvcmUgPSBBVlBST0JFX1NDT1JFX01BWCAtIDM7Cj4gKyAgICAgICAgICAgICAgICAgICAgYnJl YWs7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICB9Cj4g KyAgICB9Cj4gKwo+ICsgICAgYXZfZHRzdWhkX2Rlc3Ryb3koaCk7Cj4KCkRvaW5nIGFsbG9jYXRp b24gaW4gcHJvYmU/CkhvdyBtdWNoIHRoaXMgaXMgY29zdGx5PwpQcm9iaW5nIHNob3VsZCBiZSB2 ZXJ5IGZhc3QuCgoKPiArICAgIHJldHVybiBzY29yZTsKPiArfQo+ICsKPiArc3RhdGljIGF2X2Nv bGQgaW50IHJlYWRfY2xvc2UoQVZGb3JtYXRDb250ZXh0ICpzKQo+ICt7Cj4gKyAgICBEVFNVSERE ZW11eENvbnRleHQgKmR0c3hzID0gcy0+cHJpdl9kYXRhOwo+ICsKPiArICAgIGF2X2ZyZWVwKCZk dHN4cy0+YnVmKTsKPiArICAgIGF2X2R0c3VoZF9kZXN0cm95KGR0c3hzLT5kdHN1aGQpOwo+ICsg ICAgZHRzeHMtPmR0c3VoZCA9IE5VTEw7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgZmluZF9maXJzdF9zeW5jd29yZChEVFNVSEREZW11eENvbnRleHQgKmR0c3Vo ZCwgaW50IGRhdGFfc3RhcnQpCj4gK3sKPiArICAgIHdoaWxlIChkYXRhX3N0YXJ0ICsgNCA8IERU U1VIRF9CVUZGRVJfU0laRSAmJgo+ICsgICAgICAgICFkdHN1aGRfaXNfc3luY3dvcmQoQVZfUkIz MihkdHN1aGQtPmJ1ZiArIGRhdGFfc3RhcnQpKSkgewo+ICsgICAgICAgIGRhdGFfc3RhcnQrKzsK PiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gZGF0YV9zdGFydDsKPiArfQo+ICsKPiArc3RhdGlj IGludCB3cml0ZV9leHRyYWRhdGEoQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwgRFRTVUhERGVzY3Jp cHRvckluZm8KPiAqZGkpCj4gK3sKPiArICAgIFB1dEJpdENvbnRleHQgcGJjOwo+ICsgICAgaW50 IHJldDsKPiArICAgIGludCBzaXplOwo+ICsgICAgdWludDhfdCB1ZHRzWzMyXTsKPiArCj4gKyAg ICBpbml0X3B1dF9iaXRzKCZwYmMsIHVkdHMsIHNpemVvZih1ZHRzKSk7Cj4gKyAgICBwdXRfYml0 czMyKCZwYmMsIDApOyAvLyB1ZHRzIGJveCBzaXplCj4gKyAgICBwdXRfYml0czMyKCZwYmMsIEFW X1JCMzIoInVkdHMiKSk7IC8vIHVkdHMgYm94IHNpZ25hdHVyZQo+ICsgICAgcHV0X2JpdHMoJnBi YywgNiwgZGktPmRlY29kZXJfcHJvZmlsZV9jb2RlKTsKPiArICAgIHB1dF9iaXRzKCZwYmMsIDIs IGRpLT5mcmFtZV9kdXJhdGlvbl9jb2RlKTsKPiArICAgIHB1dF9iaXRzKCZwYmMsIDMsIGRpLT5t YXhfcGF5bG9hZF9jb2RlKTsKPiArICAgIHB1dF9iaXRzKCZwYmMsIDUsIGRpLT5udW1fcHJlc19j b2RlKTsKPiArICAgIHB1dF9iaXRzMzIoJnBiYywgIGRpLT5jaGFubmVsX21hc2spOwo+ICsgICAg cHV0X2JpdHMoJnBiYywgMSwgZGktPmJhc2Vfc2FtcGxlX2ZyZXFfY29kZSk7Cj4gKyAgICBwdXRf Yml0cygmcGJjLCAyLCBkaS0+c2FtcGxlX3JhdGVfbW9kKTsKPiArICAgIHB1dF9iaXRzKCZwYmMs IDMsIGRpLT5yZXBfdHlwZSk7Cj4gKyAgICBwdXRfYml0cygmcGJjLCAzLCAwKTsKPiArICAgIHB1 dF9iaXRzKCZwYmMsIDEsIDApOwo+ICsgICAgcHV0X2JpdHM2NCgmcGJjLCBkaS0+bnVtX3ByZXNf Y29kZSArIDEsIDApOyAvLyBJRCBUYWcgcHJlc2VudCBmb3IKPiBlYWNoIHByZXNlbnRhdGlvbi4K PiArICAgIGZsdXNoX3B1dF9iaXRzKCZwYmMpOyAvLyBieXRlIGFsaWduCj4gKyAgICBzaXplID0g cHV0X2J5dGVzX291dHB1dCgmcGJjKTsKPiArICAgIEFWX1dCMzIodWR0cywgc2l6ZSk7Cj4gKwo+ ICsgICAgcmV0ID0gZmZfYWxsb2NfZXh0cmFkYXRhKHBhciwgc2l6ZSk7Cj4gKyAgICBpZiAocmV0 IDwgMCkKPiArICAgICAgICByZXR1cm4gcmV0Owo+ICsKPiArICAgIG1lbWNweShwYXItPmV4dHJh ZGF0YSwgdWR0cywgc2l6ZSk7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRp YyBpbnQgcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQo+ICt7Cj4gKyAgICBBVklPQ29u dGV4dCAqcGIgPSBzLT5wYjsKPiArICAgIEFWU3RyZWFtICpzdCA9IGF2Zm9ybWF0X25ld19zdHJl YW0ocywgTlVMTCk7Cj4gKyAgICBEVFNVSEREZW11eENvbnRleHQgKmR0c3VoZCA9IHMtPnByaXZf ZGF0YTsKPiArICAgIERUU1VIRERlc2NyaXB0b3JJbmZvIGRpOwo+ICsgICAgRFRTVUhERnJhbWVJ bmZvIGZpOwo+ICsgICAgaW50IGJ1Zl9ieXRlczsKPiArICAgIGludCByZXQgPSBEVFNVSERfSU5W QUxJRF9GUkFNRTsKPiArICAgIGludCBkYXRhX3N0YXJ0Owo+ICsKPiArICAgIGlmICghKHBiLT5z ZWVrYWJsZSAmIEFWSU9fU0VFS0FCTEVfTk9STUFMKSkKPiArICAgICAgICByZXR1cm4gQVZFUlJP UihFSU8pOwo+ICsKPiArICAgIGR0c3VoZC0+YnVmID0gYXZfbWFsbG9jKERUU1VIRF9CVUZGRVJf U0laRSk7Cj4gKyAgICBkdHN1aGQtPmR0c3VoZCA9IGF2X2R0c3VoZF9jcmVhdGUoKTsKPiArICAg IGlmICghZHRzdWhkLT5idWYgfHwgIWR0c3VoZC0+ZHRzdWhkIHx8ICFzdCkKPiArICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsKPiArICAgIGJ1Zl9ieXRlcyA9IGF2aW9fcmVhZChw YiwgZHRzdWhkLT5idWYsIERUU1VIRF9CVUZGRVJfU0laRSk7Cj4gKyAgICBpZiAoYnVmX2J5dGVz IDwgMCkKPiArICAgICAgICByZXR1cm4gYnVmX2J5dGVzOwo+ICsKPiArICAgIGRhdGFfc3RhcnQg PSBhdl9kdHN1aGRfc3RybWRhdGFfcGF5bG9hZChkdHN1aGQtPmJ1ZiwgYnVmX2J5dGVzLAo+ICZk dHN1aGQtPmRhdGFfZW5kKTsKPiArICAgIGlmIChkYXRhX3N0YXJ0IDwgMCkKPiArICAgICAgICBy ZXR1cm4gZGF0YV9zdGFydDsKPiArCj4gKyAgICBkdHN1aGQtPmRhdGFfZW5kICs9IGRhdGFfc3Rh cnQ7Cj4gKyAgICBpZiAoZGF0YV9zdGFydCA9PSAwKQo+ICsgICAgICAgIGR0c3VoZC0+ZGF0YV9l bmQgPSBhdmlvX3NpemUocGIpOyAvLyBOb3QgYSBEVFNIREhEUiBjaHVuayBmaWxlLAo+IGRlY29k ZSBmcmFtZXMgdG8gZW5kIG9mIGZpbGUuCj4gKwo+ICsgICAgZGF0YV9zdGFydCA9IGZpbmRfZmly c3Rfc3luY3dvcmQoZHRzdWhkLCBkYXRhX3N0YXJ0KTsKPiArICAgIGlmIChhdmlvX3NlZWsocGIs IGRhdGFfc3RhcnQsIFNFRUtfU0VUKSA8IDApCj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlO VkFMKTsKPiArCj4gKyAgICByZXQgPSBhdl9kdHN1aGRfZnJhbWUoZHRzdWhkLT5kdHN1aGQsIGR0 c3VoZC0+YnVmICsgZGF0YV9zdGFydCwKPiArICAgICAgICBidWZfYnl0ZXMgLSBkYXRhX3N0YXJ0 LCAmZmksICZkaSk7Cj4gKyAgICBpZiAocmV0ICE9IERUU1VIRF9PSyB8fCAhZGkudmFsaWQpIHsK PiArICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAiVW5hYmxlIHRvIHByb2Nlc3MgRFRT LVVIRCBmaWxlLiBGaWxlIG1heQo+IGJlIGludmFsaWQuXG4iKTsKPiArICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsKPiArICAgIH0KPiArCj4gKyAgICBmZnN0cmVhbShzdCktPm5l ZWRfcGFyc2luZyAgICAgICAgICA9IEFWU1RSRUFNX1BBUlNFX0ZVTExfUkFXOwo+ICsgICAgc3Qt PmNvZGVjcGFyLT5jb2RlY190eXBlICAgICAgICAgICAgPSBBVk1FRElBX1RZUEVfQVVESU87Cj4g KyAgICBzdC0+Y29kZWNwYXItPmNvZGVjX2lkICAgICAgICAgICAgICA9IHMtPmlmb3JtYXQtPnJh d19jb2RlY19pZDsKPiArICAgIHN0LT5jb2RlY3Bhci0+Y2hfbGF5b3V0Lm9yZGVyICAgICAgID0g QVZfQ0hBTk5FTF9PUkRFUl9OQVRJVkU7Cj4gKyAgICBzdC0+Y29kZWNwYXItPmNoX2xheW91dC5u Yl9jaGFubmVscyA9IGRpLmNoYW5uZWxfY291bnQ7Cj4gKyAgICBzdC0+Y29kZWNwYXItPmNoX2xh eW91dC51Lm1hc2sgICAgICA9IGRpLmZmbXBlZ19jaGFubmVsX21hc2s7Cj4gKyAgICBzdC0+Y29k ZWNwYXItPmNvZGVjX3RhZyAgICAgICAgICAgICA9IEFWX1JMMzIoZGkuY29kaW5nX25hbWUpOwo+ ICsgICAgc3QtPmNvZGVjcGFyLT5mcmFtZV9zaXplICAgICAgICAgICAgPSA1MTIgPDwgZGkuZnJh bWVfZHVyYXRpb25fY29kZTsKPiArICAgIHN0LT5jb2RlY3Bhci0+c2FtcGxlX3JhdGUgICAgICAg ICAgID0gZGkuc2FtcGxlX3JhdGU7Cj4gKwo+ICsjaWYgRkZfQVBJX09MRF9DSEFOTkVMX0xBWU9V VAo+ICtGRl9ESVNBQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4gKyAgICBzdC0+Y29kZWNwYXIt PmNoYW5uZWxzICAgICAgID0gZGkuY2hhbm5lbF9jb3VudDsKPiArICAgIHN0LT5jb2RlY3Bhci0+ Y2hhbm5lbF9sYXlvdXQgPSBkaS5mZm1wZWdfY2hhbm5lbF9tYXNrOwo+ICtGRl9FTkFCTEVfREVQ UkVDQVRJT05fV0FSTklOR1MKPiArI2VuZGlmCj4gKwo+ICsgICAgcmV0ID0gd3JpdGVfZXh0cmFk YXRhKHN0LT5jb2RlY3BhciwgJmRpKTsKPiArICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgIHJl dHVybiByZXQ7Cj4gKwo+ICsgICAgaWYgKHN0LT5jb2RlY3Bhci0+c2FtcGxlX3JhdGUpCj4gKyAg ICAgICAgYXZwcml2X3NldF9wdHNfaW5mbyhzdCwgNjQsIDEsIHN0LT5jb2RlY3Bhci0+c2FtcGxl X3JhdGUpOwo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHJlYWRf cGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKPiArewo+ICsgICAgRFRT VUhERGVtdXhDb250ZXh0ICpkdHN1aGQgPSBzLT5wcml2X2RhdGE7Cj4gKyAgICBpbnQ2NF90IHNp emUsIGxlZnQ7Cj4gKyAgICBpbnQgcmV0Owo+ICsKPiArICAgIGxlZnQgPSBkdHN1aGQtPmRhdGFf ZW5kIC0gYXZpb190ZWxsKHMtPnBiKTsKPiArICAgIHNpemUgPSBGRk1JTihsZWZ0LCBEVFNVSERf TUFYX0ZSQU1FX1NJWkUpOwo+ICsgICAgaWYgKHNpemUgPD0gMCkKPiArICAgICAgICByZXR1cm4g QVZFUlJPUl9FT0Y7Cj4gKwo+ICsgICAgcmV0ID0gYXZfZ2V0X3BhY2tldChzLT5wYiwgcGt0LCBz aXplKTsKPiArICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ICsg ICAgcGt0LT5zdHJlYW1faW5kZXggPSAwOwo+ICsKPiArICAgIHJldHVybiByZXQ7Cj4gK30KPiAr Cj4gK0FWSW5wdXRGb3JtYXQgZmZfZHRzdWhkX2RlbXV4ZXIgPSB7Cj4gKyAgICAubmFtZSAgICAg ICAgICAgPSAiZHRzdWhkIiwKPiArICAgIC5sb25nX25hbWUgICAgICA9IE5VTExfSUZfQ09ORklH X1NNQUxMKCJEVFMtVUhEIiksCj4gKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoRFRTVUhE RGVtdXhDb250ZXh0KSwKPiArICAgIC5yZWFkX3Byb2JlICAgICA9IHByb2JlLAo+ICsgICAgLnJl YWRfaGVhZGVyICAgID0gcmVhZF9oZWFkZXIsCj4gKyAgICAucmVhZF9wYWNrZXQgICAgPSByZWFk X3BhY2tldCwKPiArICAgIC5yZWFkX2Nsb3NlICAgICA9IHJlYWRfY2xvc2UsCj4gKyAgICAuZmxh Z3MgICAgICAgICAgPSBBVkZNVF9HRU5FUklDX0lOREVYLAo+ICsgICAgLmV4dGVuc2lvbnMgICAg ID0gImR0c3giLAo+ICsgICAgLnJhd19jb2RlY19pZCAgID0gQVZfQ09ERUNfSURfRFRTVUhELAo+ ICt9Owo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9tb3ZlbmMuYyBiL2xpYmF2Zm9ybWF0L21v dmVuYy5jCj4gaW5kZXggYzM3MDkyMmM3ZC4uZTcyNzQwNzY5NCAxMDA2NDQKPiAtLS0gYS9saWJh dmZvcm1hdC9tb3ZlbmMuYwo+ICsrKyBiL2xpYmF2Zm9ybWF0L21vdmVuYy5jCj4gQEAgLTc2Miw2 ICs3NjIsMjQgQEAgc3RhdGljIGludCBtb3Zfd3JpdGVfZXNkc190YWcoQVZJT0NvbnRleHQgKnBi LAo+IE1PVlRyYWNrICp0cmFjaykgLy8gQmFzaWMKPiAgICAgIHJldHVybiB1cGRhdGVfc2l6ZShw YiwgcG9zKTsKPiAgfQo+Cj4gK3N0YXRpYyBpbnQgbW92X3dyaXRlX3VkdHNfdGFnKEFWSU9Db250 ZXh0ICpwYiwgTU9WVHJhY2sgKnRyYWNrKQo+ICt7Cj4gKyAgICBpZiAodHJhY2stPnZvc19sZW4g PCAxMikgewo+ICsgICAgICAgIGF2X2xvZyhwYiwgQVZfTE9HX0VSUk9SLAo+ICsgICAgICAgICAg ICAgICAiQ2Fubm90IHdyaXRlIG1vb3YgYXRvbSBiZWZvcmUgRFRTLVVIRCBwYWNrZXRzLiIKPiAr ICAgICAgICAgICAgICAgIiBTZXQgdGhlIGRlbGF5X21vb3YgZmxhZyB0byBmaXggdGhpcy5cbiIp Owo+ICsgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gKyAgICB9Cj4gKwo+ICsgICAg LyogV3JpdGUgdm9zX2RhdGEgaXMgdWR0cyBib3guICovCj4gKyAgICBpZiAobWVtY21wKHRyYWNr LT52b3NfZGF0YSArIDQsICJ1ZHRzIiwgNCkgPT0gMCkgewo+ICsgICAgICAgIGF2aW9fd3JpdGUo cGIsIHRyYWNrLT52b3NfZGF0YSwgdHJhY2stPnZvc19sZW4pOwo+ICsgICAgICAgIHJldHVybiB0 cmFjay0+dm9zX2xlbjsKPiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiAg c3RhdGljIGludCBtb3ZfcGNtX2xlX2d0MTYoZW51bSBBVkNvZGVjSUQgY29kZWNfaWQpCj4gIHsK PiAgICAgIHJldHVybiBjb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9QQ01fUzI0TEUgfHwKPiBAQCAt MTM2Nyw2ICsxMzg1LDggQEAgc3RhdGljIGludCBtb3Zfd3JpdGVfYXVkaW9fdGFnKEFWRm9ybWF0 Q29udGV4dCAqcywKPiBBVklPQ29udGV4dCAqcGIsIE1PVk11eENvbnRleAo+ICAgICAgICAgIHJl dCA9IG1vdl93cml0ZV9kb3BzX3RhZyhzLCBwYiwgdHJhY2spOwo+ICAgICAgZWxzZSBpZiAodHJh Y2stPnBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVFJVRUhEKQo+ICAgICAgICAgIHJldCA9 IG1vdl93cml0ZV9kbWxwX3RhZyhzLCBwYiwgdHJhY2spOwo+ICsgICAgZWxzZSBpZiAodHJhY2st PnBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfRFRTVUhEKQo+ICsgICAgICAgIHJldCA9IG1v dl93cml0ZV91ZHRzX3RhZyhwYiwgdHJhY2spOwo+ICAgICAgZWxzZSBpZiAodGFnID09IE1PVl9N UDRfSVBDTV9UQUcgfHwgdGFnID09IE1PVl9NUDRfRlBDTV9UQUcpIHsKPiAgICAgICAgICBpZiAo dHJhY2stPnBhci0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzID4gMSkKPiAgICAgICAgICAgICAgcmV0 ID0gbW92X3dyaXRlX2NobmxfdGFnKHMsIHBiLCB0cmFjayk7Cj4gQEAgLTI3ODEsNiArMjgwMSw3 IEBAIHN0YXRpYyBpbnQgbW92X3dyaXRlX3N0YmxfdGFnKEFWRm9ybWF0Q29udGV4dCAqcywKPiBB VklPQ29udGV4dCAqcGIsIE1PVk11eENvbnRleHQKPiAgICAgIGlmICgodHJhY2stPnBhci0+Y29k ZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfVklERU8gfHwKPiAgICAgICAgICAgdHJhY2stPnBhci0+ Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVFJVRUhEIHx8Cj4gICAgICAgICAgIHRyYWNrLT5wYXIt PmNvZGVjX2lkID09IEFWX0NPREVDX0lEX01QRUdIXzNEX0FVRElPIHx8Cj4gKyAgICAgICAgIHRy YWNrLT5wYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0RUU1VIRCB8fAo+ICAgICAgICAgICB0 cmFjay0+cGFyLT5jb2RlY190YWcgPT0gTUtUQUcoJ3InLCd0JywncCcsJyAnKSkgJiYKPiAgICAg ICAgICB0cmFjay0+aGFzX2tleWZyYW1lcyAmJiB0cmFjay0+aGFzX2tleWZyYW1lcyA8IHRyYWNr LT5lbnRyeSkKPiAgICAgICAgICBtb3Zfd3JpdGVfc3Rzc190YWcocGIsIHRyYWNrLCBNT1ZfU1lO Q19TQU1QTEUpOwo+IEBAIC01NjczLDYgKzU2OTQsMTQgQEAgc3RhdGljIHZvaWQgbW92X3BhcnNl X3ZjMV9mcmFtZShBVlBhY2tldCAqcGt0LAo+IE1PVlRyYWNrICp0cmspCj4gICAgICB9Cj4gIH0K Pgo+ICtzdGF0aWMgdm9pZCBtb3ZfcGFyc2VfZHRzdWhkX2ZyYW1lKEFWUGFja2V0ICpwa3QsIE1P VlRyYWNrICp0cmspCj4gK3sKPiArICAgIGlmIChwa3QtPnNpemUgPiA0ICYmIEFWX1JCMzIocGt0 LT5kYXRhKSA9PSAweDQwNDExQkYyKSB7Cj4gKyAgICAgICAgdHJrLT5jbHVzdGVyW3Ryay0+ZW50 cnldLmZsYWdzIHw9IE1PVl9TWU5DX1NBTVBMRTsKPiArICAgICAgICB0cmstPmhhc19rZXlmcmFt ZXMrKzsKPiArICAgIH0KPiArIH0KPiArCj4gIHN0YXRpYyB2b2lkIG1vdl9wYXJzZV90cnVlaGRf ZnJhbWUoQVZQYWNrZXQgKnBrdCwgTU9WVHJhY2sgKnRyaykKPiAgewo+ICAgICAgaW50IGxlbmd0 aDsKPiBAQCAtNjM0Myw2ICs2MzcyLDggQEAgaW50IGZmX21vdl93cml0ZV9wYWNrZXQoQVZGb3Jt YXRDb250ZXh0ICpzLCBBVlBhY2tldAo+ICpwa3QpCj4gICAgICAgICAgbW92X3BhcnNlX3ZjMV9m cmFtZShwa3QsIHRyayk7Cj4gICAgICB9IGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09E RUNfSURfVFJVRUhEKSB7Cj4gICAgICAgICAgbW92X3BhcnNlX3RydWVoZF9mcmFtZShwa3QsIHRy ayk7Cj4gKyAgICB9IGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfRFRTVUhE KSB7Cj4gKyAgICAgICAgbW92X3BhcnNlX2R0c3VoZF9mcmFtZShwa3QsIHRyayk7Cj4gICAgICB9 IGVsc2UgaWYgKHBrdC0+ZmxhZ3MgJiBBVl9QS1RfRkxBR19LRVkpIHsKPiAgICAgICAgICBpZiAo bW92LT5tb2RlID09IE1PREVfTU9WICYmIHBhci0+Y29kZWNfaWQgPT0KPiBBVl9DT0RFQ19JRF9N UEVHMlZJREVPICYmCj4gICAgICAgICAgICAgIHRyay0+ZW50cnkgPiAwKSB7IC8vIGZvcmNlIHN5 bmMgc2FtcGxlIGZvciB0aGUgZmlyc3Qga2V5IGZyYW1lCj4gQEAgLTc4MDAsNiArNzgzMSw3IEBA IHN0YXRpYyBjb25zdCBBVkNvZGVjVGFnIGNvZGVjX21wNF90YWdzW10gPSB7Cj4gICAgICB7IEFW X0NPREVDX0lEX0FDMywgICAgICAgICAgICAgTUtUQUcoJ2EnLCAnYycsICctJywgJzMnKSB9LAo+ ICAgICAgeyBBVl9DT0RFQ19JRF9FQUMzLCAgICAgICAgICAgIE1LVEFHKCdlJywgJ2MnLCAnLScs ICczJykgfSwKPiAgICAgIHsgQVZfQ09ERUNfSURfRFRTLCAgICAgICAgICAgICBNS1RBRygnbScs ICdwJywgJzQnLCAnYScpIH0sCj4gKyAgICB7IEFWX0NPREVDX0lEX0RUU1VIRCwgICAgICAgICAg TUtUQUcoJ2QnLCAndCcsICdzJywgJ3gnKSB9LAo+ICAgICAgeyBBVl9DT0RFQ19JRF9UUlVFSEQs ICAgICAgICAgIE1LVEFHKCdtJywgJ2wnLCAncCcsICdhJykgfSwKPiAgICAgIHsgQVZfQ09ERUNf SURfRkxBQywgICAgICAgICAgICBNS1RBRygnZicsICdMJywgJ2EnLCAnQycpIH0sCj4gICAgICB7 IEFWX0NPREVDX0lEX09QVVMsICAgICAgICAgICAgTUtUQUcoJ08nLCAncCcsICd1JywgJ3MnKSB9 LAo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC92ZXJzaW9uLmggYi9saWJhdmZvcm1hdC92ZXJz aW9uLmgKPiBpbmRleCBjYzU2YjdjZjVjLi4zODRjYmQ0OWNjIDEwMDY0NAo+IC0tLSBhL2xpYmF2 Zm9ybWF0L3ZlcnNpb24uaAo+ICsrKyBiL2xpYmF2Zm9ybWF0L3ZlcnNpb24uaAo+IEBAIC0zMSw3 ICszMSw3IEBACj4KPiAgI2luY2x1ZGUgInZlcnNpb25fbWFqb3IuaCIKPgo+IC0jZGVmaW5lIExJ QkFWRk9STUFUX1ZFUlNJT05fTUlOT1IgICA0Cj4gKyNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lP Tl9NSU5PUiAgIDUKPiAgI2RlZmluZSBMSUJBVkZPUk1BVF9WRVJTSU9OX01JQ1JPIDEwMQo+Cj4g ICNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9JTlQgQVZfVkVSU0lPTl9JTlQoTElCQVZGT1JN QVRfVkVSU0lPTl9NQUpPUiwKPiBcCj4gLS0KPiAyLjE3LjEKPgo+Cj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBs aXN0Cj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPgo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFi b3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJq ZWN0ICJ1bnN1YnNjcmliZSIuCj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=