From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CF601A0350; Mon, 28 Feb 2022 13:40:10 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 97B094068C; Mon, 28 Feb 2022 13:40:10 +0100 (CET) Received: from m13108.mail.163.com (m13108.mail.163.com [220.181.13.108]) by mails.dpdk.org (Postfix) with ESMTP id EFBA040140 for ; Mon, 28 Feb 2022 13:40:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=UDqRC P+3dwag0xuu1kC6qPNPVjVQztSc5AVnCQy3T08=; b=nBNCuQ0PeyZcAH9vib95V Qk4LeXrPROZfiCf7epmdEWvboe0sqTWSQSi7HbiX1EoIUIh6vxbxj1vhhlvD7PWG h012gfpiMiBR6xvjZU9z/DnoK+x/ZCAXPfsuX1CrNREWvuTpfEPAMWm1L5Rcr9Tf aEpwog9K+vd104Qq8Yhxkw= Received: from chcchc88$163.com ( [36.111.88.33] ) by ajax-webmail-wmsvr108 (Coremail) ; Mon, 28 Feb 2022 20:39:23 +0800 (CST) X-Originating-IP: [36.111.88.33] Date: Mon, 28 Feb 2022 20:39:23 +0800 (CST) From: "Huichao Cai" To: "Ananyev, Konstantin" Cc: "dev@dpdk.org" Subject: Re:RE: [PATCH v3] ip_frag: add IPv4 options fragment and test data X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20210622(1d4788a8) Copyright (c) 2002-2022 www.mailtech.cn 163com In-Reply-To: References: <1644915055-38172-1-git-send-email-chcchc88@163.com> <1645413440-3431-1-git-send-email-chcchc88@163.com> X-CM-CTRLDATA: k6q9LWZvb3Rlcl9odG09OTc0OTo1Ng== Content-Type: multipart/alternative; boundary="----=_Part_71874_1784747247.1646051963990" MIME-Version: 1.0 Message-ID: <20c4978.4cc1.17f4057b457.Coremail.chcchc88@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: bMGowABHkwZ8whxikqkAAA--.8684W X-CM-SenderInfo: pfkfuxrfyyqiywtou0bp/xtbBOAO1F1-PL-GyaAAAsN X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org ------=_Part_71874_1784747247.1646051963990 Content-Type: text/plain; charset=GBK Content-Transfer-Encoding: base64 SGkgS29uc3RhbnRpbiwKPiBUaGVzZSBtYWNyb3MgYXJlIGR1cHMgZm9yIHdoYXQgd2UgaGF2ZSBp biBydGVfaXB2NF9mcmFnbWVudGF0aW9uLmMKPiBXb3VsZCBwcm9iYWJseSBtYWtlIHNlbnNlIHRv IG5hbWUgdGhlbSBSVEVfSVBWNF9JUE9QVF8uLi4gYW5kIHB1dCB0aGVtIAo+IGluIHNvbWUgcHVi bGljIC5oIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgpJIG5hbWVkIHRoZW0gUlRFX0lQVjRfSVBPUFRf eHh4IGFuZCBwdXQgdGhlbSBpbiAicnRlX2lwX2ZyYWcuaCIuCgoKPiBDb3VsZCB5b3UgY2xhcmlm eSB3aGF0IHRoaXMgbWFjcm8gZG9lcz8KPiBCVFcsIEkgYXNzdW1lIGl0IGlzIGEgbG9jYWwgb25l Pwo+IElmIHNvLCBubyBuZWVkIGZvciBSVEVfIHByZWZpeC4KWWVzLGl0IGlzIGEgbG9jYWwgbWFj cm8uSSB3aWxsIGNhbmNlbCB0aGUgUlRFXyBwcmVmaXguSXQgaXMgYSB0b2dnbGUgc3dpdGNoIHVz ZWQgYXMgYSBkaWZmZXJlbnQgd2F5IHRvIGFzc2VtYmxlIGZyYWcgdGVzdCBkYXRhLkl0IGlzIGNv bnZlbmllbnQgZm9yIHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgd2F5cyB0byBhc3NlbWJsZSB0ZXN0 IGRhdGEuCj4gSW5zdGVhZCBvZiByZXR1cm5pbmcgdm9pZCBhbmQgaGF2aW5nIG91dCBwYXJhbWV0 ZXIgKGlwb3B0X2xlbiksCj4gd2h5IGp1c3Qgbm90IG1ha2UgaXQgYSByZXR1cm4gdmFsdWU/Cj4g c3RhdGljIGlubGluZSB1aW50MTZfdAo+IF9fY3JlYXRlX2lwb3B0X2ZyYWdfaGRyKGNvbnN0IHVp bnQ4X3QgKmlwaCwgdWludDhfdCAqIGlwb3B0X2ZyYWdfaGRyLCB1aW50MTZfdCBsZW4pCj4gewo+ IAkuLi4uCj4gCXJldHVybiBpcG9wdF9sZW47Cj4gfQo+IFdlIHByb2JhYmx5IGNhbiB1cGRhdGUg aWhsIG9uY2UgYXQgdGhlIHZlcnkgZW5kIG9mIHRoaXMgZnVuY3Rpb24uCk9rLEkgd2lsbCBtb2Rp ZnkgaXQgdGhpcyB3YXksVGhhbmsgeW91IGZvciB5b3VyIGFkdmljZS4KPiBDYW4gd2UgcHJvYmFi bHkgZG8gdGhhdCBiZWZvcmUgdGhlIGxvb3AgKGFzIHdlIGhhdmUgdG8gZG8gaXQgb25seSBvbmNl IGFueXdheT8KPiBTb21ldGhpbmcgbGlrZToKCj4gLi4uLgo+IGlwb3B0X2xlbiA9IGhlYWRlcl9s ZW4gLSBzaXplb2Yoc3RydWN0IHJ0ZV9pcHY0X2hkcik7Cj4gaWYgKGlwb3B0X2xlbiA+IFJURV9J UE9QVF9NQVhfTEVOKQo+IAlyZXR1cm4gLUVJTlZBTDsKPiBpZiAoaXBvcHRfbGVuICE9IDApCj4g CWlwb3B0X2xlbiA9IF9fY3JlYXRlX2lwb3B0X2ZyYWdfaGRyKChpbl9oZHIsIGlwb3B0X2ZyYWdf aGRyLCBpcG9wdF9sZW4pOwo+IC4uLi4KCj4gQW5kIHRoZW46Cj4gd2hpbGUgKGxpa2VseShtb3Jl X2luX3NlZ3MpKSB7Cj4gCS4uLgo+IAlpZiAoaXBvcHRfbGVuICEgPSAwKQo+IAkJaW5faGRyID0g KHN0cnVjdCBydGVfaXB2NF9oZHIgKilpcG9wdF9mcmFnX2hkcjsJCj4gfQpUaGUgbW9kaWZpZWQg Y29kZSBpcyBhcyBmb2xsb3dzo7oKaXBvcHRfbGVuID0gaGVhZGVyX2xlbiAtIHNpemVvZihzdHJ1 Y3QgcnRlX2lwdjRfaGRyKTsgaWYgKHVubGlrZWx5KGlwb3B0X2xlbiA+IFJURV9JUFY0X0lQT1BU X01BWF9MRU4pKSByZXR1cm4gLUVJTlZBTDsgZWxzZSBpZiAoaXBvcHRfbGVuID09IDApIC8qIFVz ZWQgdG8gbWFyayB3aXRob3V0IHByb2Nlc3NpbmcgZnJhZy4gKi8gaXBvcHRfbGVuID0gUlRFX0lQ VjRfSVBPUFRfTUFYX0xFTiArIDE7IC8qIFRoZSBmaXJzdCBmcmFnLiAqLyBlbHNlIGlmICgoZmxh Z19vZmZzZXQgJiBSVEVfSVBWNF9IRFJfT0ZGU0VUX01BU0spID09IDApIC8qIENyZWF0ZSBhIHNl cGFyYXRlIElQIGhlYWRlciB0byBoYW5kbGUgZnJhZyBvcHRpb25zLiAqLyBpcG9wdF9sZW4gPSBf X2NyZWF0ZV9pcG9wdF9mcmFnX2hkcigodWludDhfdCAqKWluX2hkciwgaXBvcHRfbGVuLCBpcG9w dF9mcmFnX2hkcik7Cgp3aGlsZSAobGlrZWx5KG1vcmVfaW5fc2VncykpIHsKICAgICAgICAgICAg ICAgIC4uLgoJCWlmICh1bmxpa2VseSgoZnJhZ21lbnRfb2Zmc2V0ID09IDApICYmCgkJCSAgICAo aXBvcHRfbGVuIDw9IFJURV9JUFY0X0lQT1BUX01BWF9MRU4pICYmCgkJCSAgICAoKGZsYWdfb2Zm c2V0ICYgUlRFX0lQVjRfSERSX09GRlNFVF9NQVNLKSA9PSAwKSkpIHsKCQkJZnJhZ21lbnRfb2Zm c2V0ID0gKHVpbnQxNl90KShmcmFnbWVudF9vZmZzZXQgKwoJCQkJb3V0X3BrdC0+cGt0X2xlbiAt IGhlYWRlcl9sZW4pOwoJCQlvdXRfcGt0LT5sM19sZW4gPSBoZWFkZXJfbGVuOwoKCQkJaGVhZGVy X2xlbiA9IHNpemVvZihzdHJ1Y3QgcnRlX2lwdjRfaGRyKSArIGlwb3B0X2xlbjsKCQkJaW5faGRy ID0gKHN0cnVjdCBydGVfaXB2NF9oZHIgKilpcG9wdF9mcmFnX2hkcjsKCQl9IGVsc2UgewoJCQlm cmFnbWVudF9vZmZzZXQgPSAodWludDE2X3QpKGZyYWdtZW50X29mZnNldCArCgkJCQlvdXRfcGt0 LT5wa3RfbGVuIC0gaGVhZGVyX2xlbik7CgkJCW91dF9wa3QtPmwzX2xlbiA9IGhlYWRlcl9sZW47 CgkJfQoKCgp9ClRoZXNlIHR3byBwaWVjZXMgb2YgY29kZSB3ZXJlIHByZXZpb3VzbHkgbWVyZ2Vk IHRvZ2V0aGVyLkl0IGRvZXNuJ3QgbG9vayBhcyBicmllZiBhcyBiZWZvcmUuSSB3b3VsZCBsaWtl IHRvIGhlYXIgZnJvbSB5b3UuClNvbWUgbWlub3IgaXNzdWVzo7oKMS4gVGhlcmUgYXJlIHNvbWUg UlRFXyBwcmVmaXhlcyBpbiB0aGUgcnRlX2lwdjRfZnJhZ21lbnRhdGlvbi5jLkRvIEkgbmVlZCB0 byBtb3ZlIHRvIGEgcHVibGljIGhlYWRlciBmaWxlPwogICAgLyogRnJhZ21lbnQgT2Zmc2V0ICov CiNkZWZpbmUgUlRFX0lQVjRfSERSX0RGX1NISUZUIDE0ICNkZWZpbmUgUlRFX0lQVjRfSERSX01G X1NISUZUIDEzICNkZWZpbmUgUlRFX0lQVjRfSERSX0ZPX1NISUZUIDMKMi4gU29tZSBjb21tZW50 cyBhcmUgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXSjui8qKjwgeHh4ICovLFdoYXQgZG9lcyB0aGlz IHN5bWJvbCgqKjwpIG1lYW4/CgoKSHVpY2hhbyxDYWk= ------=_Part_71874_1784747247.1646051963990 Content-Type: text/html; charset=GBK Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MS43O2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOjE0cHg7 Zm9udC1mYW1pbHk6QXJpYWwiPjxkaXYgc3R5bGU9Im1hcmdpbjogMDsiPkhpJm5ic3A7PHNwYW4g c3R5bGU9IndoaXRlLXNwYWNlOiBwcmUtd3JhcDsgZm9udC1mYW1pbHk6IGFyaWFsOyB3b3JkLWJy ZWFrOiBicmVhay13b3JkICFpbXBvcnRhbnQ7Ij5Lb25zdGFudGluLDwvc3Bhbj48L2Rpdj48ZGl2 IHN0eWxlPSJtYXJnaW46IDA7Ij48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyBm b250LWZhbWlseTogYXJpYWw7IHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDsiPjxw cmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBvdmVyZmxv dzogYXV0bzsgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAmcXVvdDtDb3Vy aWVyIE5ldyZxdW90OywgbW9ub3NwYWNlOyBmb250LXNpemU6IDEzcHg7IHBhZGRpbmc6IDkuNXB4 OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGxpbmUtaGVpZ2h0OiAxNC4z cHg7IGNvbG9yOiByZ2IoNTEsIDUxLCA1MSk7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgYm9yZGVy OiAwcHg7IGJvcmRlci1yYWRpdXM6IDBweDsiPiZndDsgVGhlc2UgbWFjcm9zIGFyZSBkdXBzIGZv ciB3aGF0IHdlIGhhdmUgaW4gcnRlX2lwdjRfZnJhZ21lbnRhdGlvbi5jCiZndDsgV291bGQgcHJv YmFibHkgbWFrZSBzZW5zZSB0byBuYW1lIHRoZW0gUlRFX0lQVjRfSVBPUFRfLi4uIGFuZCBwdXQg dGhlbSAKJmd0OyBpbiBzb21lIHB1YmxpYyAuaCB0byBhdm9pZCBkdXBsaWNhdGlvbi48L3ByZT48 L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwOyI+PHNwYW4gc3R5bGU9IndoaXRlLXNw YWNlOiBwcmUtd3JhcDsgZm9udC1mYW1pbHk6IGFyaWFsOyB3b3JkLWJyZWFrOiBicmVhay13b3Jk ICFpbXBvcnRhbnQ7IiBjbGFzcz0iIj5JIG5hbWVkIHRoZW0gUlRFX0lQVjRfSVBPUFRfeHh4IGFu ZCBwdXQgdGhlbSBpbiAicnRlX2lwX2ZyYWcuaCIuPC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9Im1h cmdpbjogMDsiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogYXJpYWw7IHdoaXRlLXNwYWNlOiBw cmUtd3JhcDsiPjxicj48L3NwYW4+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAwOyI+PHByZSBj bGFzcz0iY29udGVudCIgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IG92ZXJmbG93OiBh dXRvOyBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICZxdW90O0NvdXJpZXIg TmV3JnF1b3Q7LCBtb25vc3BhY2U7IGZvbnQtc2l6ZTogMTNweDsgcGFkZGluZzogOS41cHg7IG1h cmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNweDsg Y29sb3I6IHJnYig1MSwgNTEsIDUxKTsgd29yZC1icmVhazogYnJlYWstYWxsOyBib3JkZXI6IDBw eDsgYm9yZGVyLXJhZGl1czogMHB4OyI+Jmd0OyBDb3VsZCB5b3UgY2xhcmlmeSB3aGF0IHRoaXMg bWFjcm8gZG9lcz8KJmd0OyBCVFcsIEkgYXNzdW1lIGl0IGlzIGEgbG9jYWwgb25lPwomZ3Q7IElm IHNvLCBubyBuZWVkIGZvciBSVEVfIHByZWZpeC48L3ByZT48cHJlIGNsYXNzPSJjb250ZW50IiBz dHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgb3ZlcmZsb3c6IGF1dG87IGZvbnQtZmFtaWx5 OiBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJnF1b3Q7Q291cmllciBOZXcmcXVvdDssIG1vbm9z cGFjZTsgZm9udC1zaXplOiAxM3B4OyBwYWRkaW5nOiA5LjVweDsgbWFyZ2luLXRvcDogMHB4OyBt YXJnaW4tYm90dG9tOiAxMHB4OyBsaW5lLWhlaWdodDogMTQuM3B4OyBjb2xvcjogcmdiKDUxLCA1 MSwgNTEpOyB3b3JkLWJyZWFrOiBicmVhay1hbGw7IGJvcmRlcjogMHB4OyBib3JkZXItcmFkaXVz OiAwcHg7Ij48c3BhbiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyBmb250LWZhbWlseTog YXJpYWw7IHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDsiIGNsYXNzPSIiPlllcyxp dCBpcyBhIGxvY2FsIG1hY3JvLkkgd2lsbCBjYW5jZWwgdGhlIFJURV8gcHJlZml4Lkl0IGlzIGEg dG9nZ2xlIHN3aXRjaCB1c2VkIGFzIGEgZGlmZmVyZW50IHdheSB0byBhc3NlbWJsZSBmcmFnIHRl c3QgZGF0YS5JdCBpcyBjb252ZW5pZW50IGZvciB1c2VycyB0byB1c2UgZGlmZmVyZW50IHdheXMg dG8gYXNzZW1ibGUgdGVzdCBkYXRhLjwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPSJjb250ZW50IiBz dHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDku NXB4OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGxpbmUtaGVpZ2h0OiAx NC4zcHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgYm9yZGVyOiAwcHg7IGJvcmRlci1yYWRpdXM6 IDBweDsiPjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJjb2xvcjogcmdiKDUxLCA1MSwgNTEp OyBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICZxdW90O0NvdXJpZXIgTmV3 JnF1b3Q7LCBtb25vc3BhY2U7IGZvbnQtc2l6ZTogMTNweDsgYm94LXNpemluZzogYm9yZGVyLWJv eDsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDkuNXB4OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdp bi1ib3R0b206IDEwcHg7IGxpbmUtaGVpZ2h0OiAxNC4zcHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFs bDsgYm9yZGVyOiAwcHg7IGJvcmRlci1yYWRpdXM6IDBweDsiPiZndDsgSW5zdGVhZCBvZiByZXR1 cm5pbmcgdm9pZCBhbmQgaGF2aW5nIG91dCBwYXJhbWV0ZXIgKGlwb3B0X2xlbiksCiZndDsgd2h5 IGp1c3Qgbm90IG1ha2UgaXQgYSByZXR1cm4gdmFsdWU/CiZndDsgc3RhdGljIGlubGluZSB1aW50 MTZfdAomZ3Q7IF9fY3JlYXRlX2lwb3B0X2ZyYWdfaGRyKGNvbnN0IHVpbnQ4X3QgKmlwaCwgdWlu dDhfdCAqIGlwb3B0X2ZyYWdfaGRyLCB1aW50MTZfdCBsZW4pCiZndDsgewomZ3Q7IAkuLi4uCiZn dDsgCXJldHVybiBpcG9wdF9sZW47CiZndDsgfTwvcHJlPjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0 eWxlPSJjb2xvcjogcmdiKDUxLCA1MSwgNTEpOyBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywg Q29uc29sYXMsICZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LCBtb25vc3BhY2U7IGZvbnQtc2l6ZTog MTNweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDku NXB4OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGxpbmUtaGVpZ2h0OiAx NC4zcHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgYm9yZGVyOiAwcHg7IGJvcmRlci1yYWRpdXM6 IDBweDsiPiZndDsgV2UgcHJvYmFibHkgY2FuIHVwZGF0ZSBpaGwgb25jZSBhdCB0aGUgdmVyeSBl bmQgb2YgdGhpcyBmdW5jdGlvbi48L3ByZT48cHJlIGNsYXNzPSJjb250ZW50IiBzdHlsZT0iY29s b3I6IHJnYig1MSwgNTEsIDUxKTsgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIENvbnNvbGFz LCAmcXVvdDtDb3VyaWVyIE5ldyZxdW90OywgbW9ub3NwYWNlOyBmb250LXNpemU6IDEzcHg7IGJv eC1zaXppbmc6IGJvcmRlci1ib3g7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiA5LjVweDsgbWFy Z2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBsaW5lLWhlaWdodDogMTQuM3B4OyB3 b3JkLWJyZWFrOiBicmVhay1hbGw7IGJvcmRlcjogMHB4OyBib3JkZXItcmFkaXVzOiAwcHg7Ij5P ayxJIHdpbGwgbW9kaWZ5IGl0IHRoaXMgd2F5LFRoYW5rIHlvdSBmb3IgeW91ciBhZHZpY2UuPC9w cmU+PHByZSBjbGFzcz0iY29udGVudCIgc3R5bGU9ImNvbG9yOiByZ2IoNTEsIDUxLCA1MSk7IGZv bnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJnF1b3Q7Q291cmllciBOZXcmcXVv dDssIG1vbm9zcGFjZTsgZm9udC1zaXplOiAxM3B4OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBv dmVyZmxvdzogYXV0bzsgcGFkZGluZzogOS41cHg7IG1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJv dHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNweDsgd29yZC1icmVhazogYnJlYWstYWxsOyBi b3JkZXI6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4OyI+Jmd0OyBDYW4gd2UgcHJvYmFibHkgZG8g dGhhdCBiZWZvcmUgdGhlIGxvb3AgKGFzIHdlIGhhdmUgdG8gZG8gaXQgb25seSBvbmNlIGFueXdh eT8KJmd0OyBTb21ldGhpbmcgbGlrZToKCiZndDsgLi4uLgomZ3Q7IGlwb3B0X2xlbiA9IGhlYWRl cl9sZW4gLSBzaXplb2Yoc3RydWN0IHJ0ZV9pcHY0X2hkcik7CiZndDsgaWYgKGlwb3B0X2xlbiAm Z3Q7IFJURV9JUE9QVF9NQVhfTEVOKQomZ3Q7IAlyZXR1cm4gLUVJTlZBTDsKJmd0OyBpZiAoaXBv cHRfbGVuICE9IDApCiZndDsgCWlwb3B0X2xlbiA9IF9fY3JlYXRlX2lwb3B0X2ZyYWdfaGRyKChp bl9oZHIsIGlwb3B0X2ZyYWdfaGRyLCBpcG9wdF9sZW4pOwomZ3Q7IC4uLi4KCiZndDsgQW5kIHRo ZW46CiZndDsgd2hpbGUgKGxpa2VseShtb3JlX2luX3NlZ3MpKSB7CiZndDsgCS4uLgomZ3Q7IAlp ZiAoaXBvcHRfbGVuICEgPSAwKQomZ3Q7IAkJaW5faGRyID0gKHN0cnVjdCBydGVfaXB2NF9oZHIg KilpcG9wdF9mcmFnX2hkcjsJCiZndDsgfTwvcHJlPjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxl PSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBvdmVyZmxvdzogYXV0bzsgcGFkZGluZzogOS41cHg7 IG1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNw eDsgd29yZC1icmVhazogYnJlYWstYWxsOyBib3JkZXI6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4 OyI+PGZvbnQgY29sb3I9IiMzMzMzMzMiIGZhY2U9Ik1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBD b3VyaWVyIE5ldywgbW9ub3NwYWNlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyI+VGhl IG1vZGlmaWVkIGNvZGUgaXMgYXMgZm9sbG93c6O6PC9zcGFuPjwvZm9udD48L3ByZT48Zm9udCBj b2xvcj0iIzMzMzMzMyIgZmFjZT0iTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIENvdXJpZXIgTmV3 LCBtb25vc3BhY2UiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEzcHg7Ij4JaXBvcHRfbGVuID0g aGVhZGVyX2xlbiAtIHNpemVvZihzdHJ1Y3QgcnRlX2lwdjRfaGRyKTsKCWlmICh1bmxpa2VseShp cG9wdF9sZW4gJmd0OyBSVEVfSVBWNF9JUE9QVF9NQVhfTEVOKSkKCQlyZXR1cm4gLUVJTlZBTDsK CWVsc2UgaWYgKGlwb3B0X2xlbiA9PSAwKQoJCS8qIFVzZWQgdG8gbWFyayB3aXRob3V0IHByb2Nl c3NpbmcgZnJhZy4gKi8KCQlpcG9wdF9sZW4gPSBSVEVfSVBWNF9JUE9QVF9NQVhfTEVOICsgMTsK CS8qIFRoZSBmaXJzdCBmcmFnLiAqLwoJZWxzZSBpZiAoKGZsYWdfb2Zmc2V0ICZhbXA7IFJURV9J UFY0X0hEUl9PRkZTRVRfTUFTSykgPT0gMCkKCQkvKiBDcmVhdGUgYSBzZXBhcmF0ZSBJUCBoZWFk ZXIgdG8gaGFuZGxlIGZyYWcgb3B0aW9ucy4gKi8KCQlpcG9wdF9sZW4gPSBfX2NyZWF0ZV9pcG9w dF9mcmFnX2hkcigodWludDhfdCAqKWluX2hkciwKCQkJaXBvcHRfbGVuLCBpcG9wdF9mcmFnX2hk cik7Cgo8L3NwYW4+PC9mb250PjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJib3gtc2l6aW5n OiBib3JkZXItYm94OyBvdmVyZmxvdzogYXV0bzsgcGFkZGluZzogOS41cHg7IG1hcmdpbi10b3A6 IDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNweDsgd29yZC1icmVh azogYnJlYWstYWxsOyBib3JkZXI6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4OyI+PGZvbnQgY29s b3I9IiMzMzMzMzMiIGZhY2U9Ik1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBDb3VyaWVyIE5ldywg bW9ub3NwYWNlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyI+PGJyPndoaWxlIChsaWtl bHkobW9yZV9pbl9zZWdzKSkgezwvc3Bhbj48L2ZvbnQ+PC9wcmU+PHByZSBjbGFzcz0iY29udGVu dCIgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5n OiA5LjVweDsgbWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBsaW5lLWhlaWdo dDogMTQuM3B4OyB3b3JkLWJyZWFrOiBicmVhay1hbGw7IGJvcmRlcjogMHB4OyBib3JkZXItcmFk aXVzOiAwcHg7Ij48Zm9udCBjb2xvcj0iIzMzMzMzMyIgZmFjZT0iTWVubG8sIE1vbmFjbywgQ29u c29sYXMsIENvdXJpZXIgTmV3LCBtb25vc3BhY2UiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEz cHg7Ij4gICAgICAgICAgICAgICAgLi4uPC9zcGFuPjwvZm9udD48L3ByZT48cHJlIGNsYXNzPSJj b250ZW50IiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsgb3ZlcmZsb3c6IGF1dG87IHBh ZGRpbmc6IDkuNXB4OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGxpbmUt aGVpZ2h0OiAxNC4zcHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgYm9yZGVyOiAwcHg7IGJvcmRl ci1yYWRpdXM6IDBweDsiPjxmb250IGNvbG9yPSIjMzMzMzMzIiBmYWNlPSJNZW5sbywgTW9uYWNv LCBDb25zb2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZTogMTNweDsiPgkJaWYgKHVubGlrZWx5KChmcmFnbWVudF9vZmZzZXQgPT0gMCkgJmFtcDsmYW1w OwoJCQkgICAgKGlwb3B0X2xlbiAmbHQ7PSBSVEVfSVBWNF9JUE9QVF9NQVhfTEVOKSAmYW1wOyZh bXA7CgkJCSAgICAoKGZsYWdfb2Zmc2V0ICZhbXA7IFJURV9JUFY0X0hEUl9PRkZTRVRfTUFTSykg PT0gMCkpKSB7CgkJCWZyYWdtZW50X29mZnNldCA9ICh1aW50MTZfdCkoZnJhZ21lbnRfb2Zmc2V0 ICsKCQkJCW91dF9wa3QtJmd0O3BrdF9sZW4gLSBoZWFkZXJfbGVuKTsKCQkJb3V0X3BrdC0mZ3Q7 bDNfbGVuID0gaGVhZGVyX2xlbjsKCgkJCWhlYWRlcl9sZW4gPSBzaXplb2Yoc3RydWN0IHJ0ZV9p cHY0X2hkcikgKyBpcG9wdF9sZW47CgkJCWluX2hkciA9IChzdHJ1Y3QgcnRlX2lwdjRfaGRyICop aXBvcHRfZnJhZ19oZHI7CgkJfSBlbHNlIHsKCQkJZnJhZ21lbnRfb2Zmc2V0ID0gKHVpbnQxNl90 KShmcmFnbWVudF9vZmZzZXQgKwoJCQkJb3V0X3BrdC0mZ3Q7cGt0X2xlbiAtIGhlYWRlcl9sZW4p OwoJCQlvdXRfcGt0LSZndDtsM19sZW4gPSBoZWFkZXJfbGVuOwoJCX0KPC9zcGFuPjwvZm9udD48 L3ByZT48ZGl2Pjxmb250IGNvbG9yPSIjMzMzMzMzIiBmYWNlPSJNZW5sbywgTW9uYWNvLCBDb25z b2xhcywgQ291cmllciBOZXcsIG1vbm9zcGFjZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTNw eDsiPjxicj48L3NwYW4+PC9mb250PjwvZGl2PjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJi b3gtc2l6aW5nOiBib3JkZXItYm94OyBvdmVyZmxvdzogYXV0bzsgcGFkZGluZzogOS41cHg7IG1h cmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNweDsg d29yZC1icmVhazogYnJlYWstYWxsOyBib3JkZXI6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4OyI+ PGZvbnQgY29sb3I9IiMzMzMzMzMiIGZhY2U9Ik1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBDb3Vy aWVyIE5ldywgbW9ub3NwYWNlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyI+fTwvc3Bh bj48L2ZvbnQ+PC9wcmU+PHByZSBjbGFzcz0iY29udGVudCIgc3R5bGU9ImJveC1zaXppbmc6IGJv cmRlci1ib3g7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiA5LjVweDsgbWFyZ2luLXRvcDogMHB4 OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBsaW5lLWhlaWdodDogMTQuM3B4OyB3b3JkLWJyZWFrOiBi cmVhay1hbGw7IGJvcmRlcjogMHB4OyBib3JkZXItcmFkaXVzOiAwcHg7Ij48c3BhbiBzdHlsZT0i Zm9udC1zaXplOiAxNHB4OyI+VGhlc2UgdHdvIHBpZWNlcyBvZiBjb2RlIHdlcmUgcHJldmlvdXNs eSBtZXJnZWQgdG9nZXRoZXIuSXQgZG9lc24ndCBsb29rIGFzIGJyaWVmIGFzIGJlZm9yZS5JIHdv dWxkIGxpa2UgdG8gaGVhciBmcm9tIHlvdS48L3NwYW4+PC9wcmU+PHByZSBjbGFzcz0iY29udGVu dCIgc3R5bGU9ImJveC1zaXppbmc6IGJvcmRlci1ib3g7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5n OiA5LjVweDsgbWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBsaW5lLWhlaWdo dDogMTQuM3B4OyB3b3JkLWJyZWFrOiBicmVhay1hbGw7IGJvcmRlcjogMHB4OyBib3JkZXItcmFk aXVzOiAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyI+U29tZSBtaW5vciBpc3N1 ZXOjujwvc3Bhbj48L3ByZT48cHJlIGNsYXNzPSJjb250ZW50IiBzdHlsZT0iYm94LXNpemluZzog Ym9yZGVyLWJveDsgb3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDkuNXB4OyBtYXJnaW4tdG9wOiAw cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IGxpbmUtaGVpZ2h0OiAxNC4zcHg7IHdvcmQtYnJlYWs6 IGJyZWFrLWFsbDsgYm9yZGVyOiAwcHg7IGJvcmRlci1yYWRpdXM6IDBweDsiPjxzcGFuIHN0eWxl PSJmb250LXNpemU6IDE0cHg7Ij4xLiBUaGVyZSBhcmUgc29tZSBSVEVfIHByZWZpeGVzIGluIHRo ZSBydGVfaXB2NF9mcmFnbWVudGF0aW9uLmMuRG8gSSBuZWVkIHRvIG1vdmUgdG8gYSBwdWJsaWMg aGVhZGVyIGZpbGU/PC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJib3gt c2l6aW5nOiBib3JkZXItYm94OyBvdmVyZmxvdzogYXV0bzsgcGFkZGluZzogOS41cHg7IG1hcmdp bi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNweDsgd29y ZC1icmVhazogYnJlYWstYWxsOyBib3JkZXI6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4OyI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsiPiAgICAvKiBGcmFnbWVudCBPZmZzZXQgKi88L3Nw YW4+PC9wcmU+I2RlZmluZQlSVEVfSVBWNF9IRFJfREZfU0hJRlQJCQkxNAojZGVmaW5lCVJURV9J UFY0X0hEUl9NRl9TSElGVAkJCTEzCiNkZWZpbmUJUlRFX0lQVjRfSERSX0ZPX1NISUZUCQkJMwo8 L3ByZT48cHJlIGNsYXNzPSJjb250ZW50IiBzdHlsZT0iYm94LXNpemluZzogYm9yZGVyLWJveDsg b3ZlcmZsb3c6IGF1dG87IHBhZGRpbmc6IDkuNXB4OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1i b3R0b206IDEwcHg7IGxpbmUtaGVpZ2h0OiAxNC4zcHg7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsg Ym9yZGVyOiAwcHg7IGJvcmRlci1yYWRpdXM6IDBweDsiPjIuIFNvbWUgY29tbWVudHMgYXJlIGlu IHRoZSBmb2xsb3dpbmcgZm9ybWF0o7ovKiombHQ7IHh4eCAqLyxXaGF0IGRvZXMgdGhpcyBzeW1i b2woKiombHQ7KSBtZWFuPzwvcHJlPjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJib3gtc2l6 aW5nOiBib3JkZXItYm94OyBvdmVyZmxvdzogYXV0bzsgcGFkZGluZzogOS41cHg7IG1hcmdpbi10 b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNweDsgd29yZC1i cmVhazogYnJlYWstYWxsOyBib3JkZXI6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4OyI+PGJyPjwv cHJlPjxwcmUgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJib3gtc2l6aW5nOiBib3JkZXItYm94OyBv dmVyZmxvdzogYXV0bzsgcGFkZGluZzogOS41cHg7IG1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJv dHRvbTogMTBweDsgbGluZS1oZWlnaHQ6IDE0LjNweDsgd29yZC1icmVhazogYnJlYWstYWxsOyBi b3JkZXI6IDBweDsgYm9yZGVyLXJhZGl1czogMHB4OyI+SHVpY2hhbyxDYWk8L3ByZT48L2Rpdj48 L2Rpdj48YnI+PGJyPjxzcGFuIHRpdGxlPSJuZXRlYXNlZm9vdGVyIj48cD4mbmJzcDs8L3A+PC9z cGFuPg== ------=_Part_71874_1784747247.1646051963990--