From Petr.Wozniak@seznam.cz Mon Nov 10 18:03:02 2014 From: Petr Wozniak To: sr-users@lists.kamailio.org Subject: Re: [SR-Users] beginner's problem with sipping Date: Mon, 10 Nov 2014 18:02:51 +0100 Message-ID: In-Reply-To: <546075B6.1080703@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0459131919==" --===============0459131919== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Thank you very much Daniel. =C2=A0 I have adjusted the parameter for nat_uac_test() to 128 without success.=20 =C2=A0 Then I=C2=A0disable=C2=A0NATDETECT route=C2=A0and only load modules nathelper= and rtpproxy=20 and set their parameters to modparam("nathelper", "natping_interval", 10) modparam("nathelper", "ping_nated_only", 0) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_method", "OPTIONS") modparam("nathelper", "sipping_from", "sip:pinger(a)192.168.1.44") =C2=A0 modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") =C2=A0 and =C2=A0 route[REGISTRAR] { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (is_method("REGISTER")) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 setbflag(FLB_NATSIPPING); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 if (!save("location")) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 sl_reply_error(); =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 exit; } } =C2=A0 =C2=A0 =C2=A0 cflag after registration is 128 so in my opinion FLB_NATSIPPIG flag is set=20 but OPTIONS pings on client's side. =C2=A0 kamailio.cfg please you find attached =C2=A0 Thank you =C2=A0 Regards =C2=A0 Petr ---------- P=C5=AFvodn=C3=AD zpr=C3=A1va ---------- Od: Daniel-Constantin Mierla Komu: Kamailio (SER) - Users Mailing List Datum: 10. 11. 2014 9:22:38 P=C5=99edm=C4=9Bt: Re: [SR-Users] beginner's problem with sipping " Hello, if you are in a private network, you need to adjust the parameter for nat_ uac_test() function to ignore private addresses in check tests -- see the=20 readme of nathelper module. Cheers, Daniel On 09/11/14 19:33, Petr Wozniak wrote: "=20 Dear sr-users, =C2=A0 =20 I am beginner and apologize for bothering you with=C2=A0such a=C2=A0trivial p= roblem. I would like to test sip UDP and TCP keepalive pinging. Kamailio and client= =C2=A0 are on the same network (192.168.1.44 and 192.168.1.20) that implies not=20 behind NAT. So in kamailio.cfg=C2=A0I have=C2=A0set =20 =C2=A0 =20 modparam("nathelper", "ping_nated_only", 0) =C2=A0 =20 My simple kamailio.cfg please you find enclosed. >From logfiles on client's side implies that neither UDP nor OPTIONS pings=20 are sending from kamailio. If somebody would be so kind to help me I will be very glad. =C2=A0 =20 Thank you in advance =C2=A0 =20 Regards =C2=A0 =20 Petr _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users(a)lists.sip-route= r.org htt= p://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users "=20 --=20 Daniel-Constantin Mierla http://twitter.com/#!/miconda -= http://www.linkedin.com/in/mi= conda Kamailio Advanced Training, Nov 24-27, Berlin - http://www.asipto.com _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users(a)lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" --===============0459131919== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGh0bWw+PGJvZHk+PHA+VGhhbmsgeW91IHZlcnkgbXVjaCBEYW5pZWwuPC9wPjxwPiZuYnNwOzwv cD48cD5JIGhhdmUgYWRqdXN0ZWQgdGhlIHBhcmFtZXRlciBmb3IgbmF0X3VhY190ZXN0KCkgdG8g MTI4IHdpdGhvdXQgc3VjY2Vzcy4gPC9wPjxwPiZuYnNwOzwvcD48cD5UaGVuIEkmbmJzcDtkaXNh YmxlJm5ic3A7TkFUREVURUNUIHJvdXRlJm5ic3A7YW5kIG9ubHkgbG9hZCBtb2R1bGVzIG5hdGhl bHBlciBhbmQgcnRwcHJveHkgYW5kIHNldCB0aGVpciBwYXJhbWV0ZXJzIHRvPC9wPjxzcGFuIGxh bmc9IkNTIj48cD5tb2RwYXJhbSgibmF0aGVscGVyIiwgIm5hdHBpbmdfaW50ZXJ2YWwiLCAxMCk8 L3A+PHA+Cgptb2RwYXJhbSgibmF0aGVscGVyIiwgInBpbmdfbmF0ZWRfb25seSIsIDApPC9wPjxw Pgptb2RwYXJhbSgibmF0aGVscGVyIiwgInNpcHBpbmdfYmZsYWciLCBGTEJfTkFUU0lQUElORyk8 L3A+PHA+Cm1vZHBhcmFtKCJuYXRoZWxwZXIiLCAic2lwcGluZ19tZXRob2QiLCAiT1BUSU9OUyIp PC9wPjxwPgptb2RwYXJhbSgibmF0aGVscGVyIiwgInNpcHBpbmdfZnJvbSIsICJzaXA6cGluZ2Vy QDE5Mi4xNjguMS40NCIpPC9wPjxwPgoKJm5ic3A7PC9wPjxwPm1vZHBhcmFtKCJuYXRoZWxwZXJ8 cmVnaXN0cmFyIiwgInJlY2VpdmVkX2F2cCIsICIkYXZwKFJFQ0VJVkVEKSIpPC9wPjxwPiZuYnNw OzwvcD48cD5hbmQ8L3A+PHA+Jm5ic3A7PC9wPjxzcGFuIGxhbmc9IkNTIj48cD5yb3V0ZVtSRUdJ U1RSQVJdIHs8L3A+PHA+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoaXNfbWV0 aG9kKCJSRUdJU1RFUiIpKSB7PC9wPjxwPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc2V0 YmZsYWcoRkxCX05BVFNJUFBJTkcpOzwvcD48cD4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IGlmICghc2F2ZSgibG9jYXRpb24iKSk8L3A+PHA+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyBzbF9yZXBseV9lcnJvcigpOzwvcD48cD4KCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBl eGl0OzwvcD48cD4KfTwvcD48L3NwYW4+PHA+fTwvcD48L3NwYW4+PHNwYW4gbGFuZz0iQ1MiPjxw PiZuYnNwOzwvcD48cD4mbmJzcDs8L3A+PC9zcGFuPjxwPiZuYnNwOzwvcD48cD5jZmxhZyBhZnRl ciByZWdpc3RyYXRpb24gaXMgMTI4IHNvIGluIG15IG9waW5pb24gRkxCX05BVFNJUFBJRyBmbGFn IGlzIHNldCBidXQgT1BUSU9OUyBwaW5ncyBvbiBjbGllbnQncyBzaWRlLjwvcD48cD4mbmJzcDs8 L3A+PHA+a2FtYWlsaW8uY2ZnIHBsZWFzZSB5b3UgZmluZCBhdHRhY2hlZDwvcD48cD4mbmJzcDs8 L3A+PHA+VGhhbmsgeW91PC9wPjxwPiZuYnNwOzwvcD48cD5SZWdhcmRzPC9wPjxwPiZuYnNwOzwv cD48cD5QZXRyPGJyPjwvcD48cD4tLS0tLS0tLS0tIFDFr3ZvZG7DrSB6cHLDoXZhIC0tLS0tLS0t LS08YnI+T2Q6IERhbmllbC1Db25zdGFudGluIE1pZXJsYSAmbHQ7bWljb25kYUBnbWFpbC5jb20m Z3Q7PGJyPktvbXU6IEthbWFpbGlvIChTRVIpIC0gVXNlcnMgTWFpbGluZyBMaXN0ICZsdDtzci11 c2Vyc0BsaXN0cy5zaXAtcm91dGVyLm9yZyZndDs8YnI+RGF0dW06IDEwLiAxMS4gMjAxNCA5OjIy OjM4PGJyPlDFmWVkbcSbdDogUmU6IFtTUi1Vc2Vyc10gYmVnaW5uZXIncyBwcm9ibGVtIHdpdGgg c2lwcGluZzwvcD48YnI+PGJsb2NrcXVvdGU+PGRpdiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAw KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyI+CkhlbGxvLDxicj4KPGJy PgppZiB5b3UgYXJlIGluIGEgcHJpdmF0ZSBuZXR3b3JrLCB5b3UgbmVlZCB0byBhZGp1c3QgdGhl IHBhcmFtZXRlcgpmb3IgbmF0X3VhY190ZXN0KCkgZnVuY3Rpb24gdG8gaWdub3JlIHByaXZhdGUg YWRkcmVzc2VzIGluIGNoZWNrCnRlc3RzIC0tIHNlZSB0aGUgcmVhZG1lIG9mIG5hdGhlbHBlciBt b2R1bGUuPGJyPgo8YnI+CkNoZWVycyw8YnI+CkRhbmllbDxicj4KPGJyPgo8ZGl2Pk9uIDA5LzEx LzE0IDE5OjMzLCBQZXRyIFdvem5pYWsgd3JvdGU6PGJyPgo8L2Rpdj4KPGJsb2NrcXVvdGU+Cjxw PkRlYXIgc3ItdXNlcnMsPC9wPgo8cD4mbmJzcDs8L3A+CjxwPkkgYW0gYmVnaW5uZXIgYW5kIGFw b2xvZ2l6ZSBmb3IgYm90aGVyaW5nIHlvdSB3aXRoJm5ic3A7c3VjaAphJm5ic3A7dHJpdmlhbCBw cm9ibGVtLjwvcD4KPHA+SSB3b3VsZCBsaWtlIHRvIHRlc3Qgc2lwIFVEUCBhbmQgVENQIGtlZXBh bGl2ZSBwaW5naW5nLgpLYW1haWxpbyBhbmQgY2xpZW50Jm5ic3A7IGFyZSBvbiB0aGUgc2FtZSBu ZXR3b3JrICgxOTIuMTY4LjEuNDQgYW5kCjE5Mi4xNjguMS4yMCkgdGhhdCBpbXBsaWVzIG5vdCBi ZWhpbmQgTkFULiBTbyBpbiBrYW1haWxpby5jZmcmbmJzcDtJCmhhdmUmbmJzcDtzZXQ8L3A+Cjxw PiZuYnNwOzwvcD4KPHNwYW4gbGFuZz0iQ1MiPgo8cD5tb2RwYXJhbSgibmF0aGVscGVyIiwgInBp bmdfbmF0ZWRfb25seSIsIDApPC9wPgo8L3NwYW4+CjxwPiZuYnNwOzwvcD4KPHA+TXkgc2ltcGxl IGthbWFpbGlvLmNmZyBwbGVhc2UgeW91IGZpbmQgZW5jbG9zZWQuPC9wPgo8cD5Gcm9tIGxvZ2Zp bGVzIG9uIGNsaWVudCdzIHNpZGUgaW1wbGllcyB0aGF0IG5laXRoZXIgVURQIG5vcgpPUFRJT05T IHBpbmdzIGFyZSBzZW5kaW5nIGZyb20ga2FtYWlsaW8uPGJyPgpJZiBzb21lYm9keSB3b3VsZCBi ZSBzbyBraW5kIHRvIGhlbHAgbWUgSSB3aWxsIGJlIHZlcnkgZ2xhZC48L3A+CjxwPiZuYnNwOzwv cD4KPHA+VGhhbmsgeW91IGluIGFkdmFuY2U8L3A+CjxwPiZuYnNwOzwvcD4KPHA+UmVnYXJkczwv cD4KPHA+Jm5ic3A7PC9wPgo8cD5QZXRyPC9wPgo8YnI+CiAKPGJyPgo8cHJlPl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClNJUCBFeHByZXNzIFJvdXRlciAo U0VSKSBhbmQgS2FtYWlsaW8gKE9wZW5TRVIpIC0gc3ItdXNlcnMgbWFpbGluZyBsaXN0CjxhIGhy ZWY9Im1haWx0bzpzci11c2Vyc0BsaXN0cy5zaXAtcm91dGVyLm9yZyI+c3ItdXNlcnNAbGlzdHMu c2lwLXJvdXRlci5vcmc8L2E+CjxhIGhyZWY9Imh0dHA6Ly9saXN0cy5zaXAtcm91dGVyLm9yZy9j Z2ktYmluL21haWxtYW4vbGlzdGluZm8vc3ItdXNlcnMiPmh0dHA6Ly9saXN0cy5zaXAtcm91dGVy Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vc3ItdXNlcnM8L2E+CjwvcHJlPgo8L2Jsb2Nr cXVvdGU+Cjxicj4KPHByZT4tLSAKRGFuaWVsLUNvbnN0YW50aW4gTWllcmxhCjxhIGhyZWY9Imh0 dHA6Ly90d2l0dGVyLmNvbS8jIS9taWNvbmRhIj5odHRwOi8vdHdpdHRlci5jb20vIyEvbWljb25k YTwvYT4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9taWNvbmRhIj5odHRw Oi8vd3d3LmxpbmtlZGluLmNvbS9pbi9taWNvbmRhPC9hPgpLYW1haWxpbyBBZHZhbmNlZCBUcmFp bmluZywgTm92IDI0LTI3LCBCZXJsaW4gLSA8YSBocmVmPSJodHRwOi8vd3d3LmFzaXB0by5jb20i Pmh0dHA6Ly93d3cuYXNpcHRvLmNvbTwvYT48L3ByZT4KPC9kaXY+X19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+U0lQIEV4cHJlc3MgUm91dGVyIChTRVIp IGFuZCBLYW1haWxpbyAoT3BlblNFUikgLSBzci11c2VycyBtYWlsaW5nIGxpc3Q8YnI+c3ItdXNl cnNAbGlzdHMuc2lwLXJvdXRlci5vcmc8YnI+aHR0cDovL2xpc3RzLnNpcC1yb3V0ZXIub3JnL2Nn aS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11c2VyczwvYmxvY2txdW90ZT48L2JvZHk+PC9odG1s Pg== --===============0459131919== Content-Type: text/plain Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kamailio.cfg" MIME-Version: 1.0 IyFLQU1BSUxJTwojCiMhZGVmaW5lIFdJVEhfTVlTUUwKIyFkZWZpbmUgV0lUSF9BVVRICiMhZGVm aW5lIFdJVEhfVVNSTE9DREIKCgojIyMjIyMjIERlZmluZWQgVmFsdWVzICMjIyMjIyMjIwoKIyAq KiogVmFsdWUgZGVmaW5lcyAtIElEcyB1c2VkIGxhdGVyIGluIGNvbmZpZwojIWlmZGVmIFdJVEhf TVlTUUwKIyAtIGRhdGFiYXNlIFVSTCAtIHVzZWQgdG8gY29ubmVjdCB0byBkYXRhYmFzZSBzZXJ2 ZXIgYnkgbW9kdWxlcyBzdWNoCiMgICAgICAgYXM6IGF1dGhfZGIsIGFjYywgdXNybG9jLCBhLnMu by4KIyFpZm5kZWYgREJVUkwKIyFkZWZpbmUgREJVUkwgIm15c3FsOi8va2FtYWlsaW86a2FtYWls aW9yd0Bsb2NhbGhvc3Qva2FtYWlsaW8iCiMhZW5kaWYKIyFlbmRpZgojIWRlZmluZSBNVUxUSURP TUFJTiAwCgojIC0gZmxhZ3MKIyAgIEZMVF8gLSBwZXIgdHJhbnNhY3Rpb24gKG1lc3NhZ2UpIGZs YWdzCiMJRkxCXyAtIHBlciBicmFuY2ggZmxhZ3MKIyFkZWZpbmUgRkxUX0FDQyAxCiMhZGVmaW5l IEZMVF9BQ0NNSVNTRUQgMgojIWRlZmluZSBGTFRfQUNDRkFJTEVEIDMKIyFkZWZpbmUgRkxUX05B VFMgNQoKIyFkZWZpbmUgRkxCX05BVEIgNgojIWRlZmluZSBGTEJfTkFUU0lQUElORyA3CgojIyMj IyMjIEdsb2JhbCBQYXJhbWV0ZXJzICMjIyMjIyMjIwoKIyMjIExPRyBMZXZlbHM6IDM9REJHLCAy PUlORk8sIDE9Tk9USUNFLCAwPVdBUk4sIC0xPUVSUgojIWlmZGVmIFdJVEhfREVCVUcKZGVidWc9 NApsb2dfc3RkZXJyb3I9eWVzCiMhZWxzZQpkZWJ1Zz0yCmxvZ19zdGRlcnJvcj1ubwojIWVuZGlm CgptZW1kYmc9NQptZW1sb2c9NQoKbG9nX2ZhY2lsaXR5PUxPR19MT0NBTDAKCmZvcms9eWVzCmNo aWxkcmVuPTQKCmFsaWFzPSIxOTIuMTY4LjEuNDQiCgpsaXN0ZW49dGNwOjE5Mi4xNjguMS40NDo1 MDYwCmxpc3Rlbj10Y3A6MTI3LjAuMC4xOjUwNjAKCiMhaWZkZWYgV0lUSF9UTFMKZW5hYmxlX3Rs cz15ZXMKIyFlbmRpZgoKdGNwX2Nvbm5lY3Rpb25fbGlmZXRpbWU9MzYwNQoKIyMjIyMjIyBNb2R1 bGVzIFNlY3Rpb24gIyMjIyMjIyMKCgptcGF0aD0iL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS9r YW1haWxpby9tb2R1bGVzLyIKCiMhaWZkZWYgV0lUSF9NWVNRTApsb2FkbW9kdWxlICJkYl9teXNx bC5zbyIKIyFlbmRpZgoKbG9hZG1vZHVsZSAibWlfZmlmby5zbyIKbG9hZG1vZHVsZSAia2V4LnNv Igpsb2FkbW9kdWxlICJjb3JleC5zbyIKbG9hZG1vZHVsZSAidG0uc28iCmxvYWRtb2R1bGUgInRt eC5zbyIKbG9hZG1vZHVsZSAic2wuc28iCmxvYWRtb2R1bGUgInJyLnNvIgpsb2FkbW9kdWxlICJw di5zbyIKbG9hZG1vZHVsZSAibWF4ZndkLnNvIgpsb2FkbW9kdWxlICJ1c3Jsb2Muc28iCmxvYWRt b2R1bGUgInJlZ2lzdHJhci5zbyIKbG9hZG1vZHVsZSAidGV4dG9wcy5zbyIKbG9hZG1vZHVsZSAi c2lwdXRpbHMuc28iCmxvYWRtb2R1bGUgInhsb2cuc28iCmxvYWRtb2R1bGUgInNhbml0eS5zbyIK bG9hZG1vZHVsZSAiY3RsLnNvIgpsb2FkbW9kdWxlICJjZmdfcnBjLnNvIgpsb2FkbW9kdWxlICJt aV9ycGMuc28iCmxvYWRtb2R1bGUgImFjYy5zbyIKCiMhaWZkZWYgV0lUSF9BVVRICmxvYWRtb2R1 bGUgImF1dGguc28iCmxvYWRtb2R1bGUgImF1dGhfZGIuc28iCiMhZW5kaWYKCgpsb2FkbW9kdWxl ICJuYXRoZWxwZXIuc28iCmxvYWRtb2R1bGUgInJ0cHByb3h5LnNvIgoKCiMhaWZkZWYgV0lUSF9U TFMKbG9hZG1vZHVsZSAidGxzLnNvIgojIWVuZGlmCgojIWlmZGVmIFdJVEhfREVCVUcKbG9hZG1v ZHVsZSAiZGVidWdnZXIuc28iCiMhZW5kaWYKCiMgLS0tLS0tLS0tLS0tLS0tLS0gc2V0dGluZyBt b2R1bGUtc3BlY2lmaWMgcGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0KCiMgLS0tLS0gbWlfZmlm byBwYXJhbXMgLS0tLS0KbW9kcGFyYW0oIm1pX2ZpZm8iLCAiZmlmb19uYW1lIiwgIi90bXAva2Ft YWlsaW9fZmlmbyIpCgojIC0tLS0tIHRtIHBhcmFtcyAtLS0tLQojIGF1dG8tZGlzY2FyZCBicmFu Y2hlcyBmcm9tIHByZXZpb3VzIHNlcmlhbCBmb3JraW5nIGxlZwptb2RwYXJhbSgidG0iLCAiZmFp bHVyZV9yZXBseV9tb2RlIiwgMykKIyBkZWZhdWx0IHJldHJhbnNtaXNzaW9uIHRpbWVvdXQ6IDMw c2VjCm1vZHBhcmFtKCJ0bSIsICJmcl90aW1lciIsIDMwMDAwKQojIGRlZmF1bHQgaW52aXRlIHJl dHJhbnNtaXNzaW9uIHRpbWVvdXQgYWZ0ZXIgMXh4OiAxMjBzZWMKbW9kcGFyYW0oInRtIiwgImZy X2ludl90aW1lciIsIDEyMDAwMCkKCiMgLS0tLS0gcnIgcGFyYW1zIC0tLS0tCiMgYWRkIHZhbHVl IHRvIDtsciBwYXJhbSB0byBjb3BlIHdpdGggbW9zdCBvZiB0aGUgVUFzCm1vZHBhcmFtKCJyciIs ICJlbmFibGVfZnVsbF9sciIsIDEpCiMgZG8gbm90IGFwcGVuZCBmcm9tIHRhZyB0byB0aGUgUlIg KG5vIG5lZWQgZm9yIHRoaXMgc2NyaXB0KQptb2RwYXJhbSgicnIiLCAiYXBwZW5kX2Zyb210YWci LCAwKQoKIyAtLS0tLSByZWdpc3RyYXIgcGFyYW1zIC0tLS0tCm1vZHBhcmFtKCJyZWdpc3RyYXIi LCAibWV0aG9kX2ZpbHRlcmluZyIsIDEpCi8qIHVuY29tbWVudCB0aGUgbmV4dCBsaW5lIHRvIGRp c2FibGUgcGFyYWxsZWwgZm9ya2luZyB2aWEgbG9jYXRpb24gKi8KIyBtb2RwYXJhbSgicmVnaXN0 cmFyIiwgImFwcGVuZF9icmFuY2hlcyIsIDApCi8qIHVuY29tbWVudCB0aGUgbmV4dCBsaW5lIG5v dCB0byBhbGxvdyBtb3JlIHRoYW4gMTAgY29udGFjdHMgcGVyIEFPUiAqLwojbW9kcGFyYW0oInJl Z2lzdHJhciIsICJtYXhfY29udGFjdHMiLCAxMCkKIyBtYXggdmFsdWUgZm9yIGV4cGlyZXMgb2Yg cmVnaXN0cmF0aW9ucwptb2RwYXJhbSgicmVnaXN0cmFyIiwgIm1heF9leHBpcmVzIiwgNjApCiMg c2V0IGl0IHRvIDEgdG8gZW5hYmxlIEdSVVUKbW9kcGFyYW0oInJlZ2lzdHJhciIsICJncnV1X2Vu YWJsZWQiLCAwKQoKIyAtLS0tLSB1c3Jsb2MgcGFyYW1zIC0tLS0tCi8qIGVuYWJsZSBEQiBwZXJz aXN0ZW5jeSBmb3IgbG9jYXRpb24gZW50cmllcyAqLwojIWlmZGVmIFdJVEhfVVNSTE9DREIKbW9k cGFyYW0oInVzcmxvYyIsICJkYl91cmwiLCBEQlVSTCkKbW9kcGFyYW0oInVzcmxvYyIsICJkYl9t b2RlIiwgMikKbW9kcGFyYW0oInVzcmxvYyIsICJ1c2VfZG9tYWluIiwgTVVMVElET01BSU4pCiMh ZW5kaWYKCiMgLS0tLS0gYXV0aF9kYiBwYXJhbXMgLS0tLS0KIyFpZmRlZiBXSVRIX0FVVEgKbW9k cGFyYW0oImF1dGhfZGIiLCAiZGJfdXJsIiwgREJVUkwpCm1vZHBhcmFtKCJhdXRoX2RiIiwgImNh bGN1bGF0ZV9oYTEiLCB5ZXMpCm1vZHBhcmFtKCJhdXRoX2RiIiwgInBhc3N3b3JkX2NvbHVtbiIs ICJwYXNzd29yZCIpCm1vZHBhcmFtKCJhdXRoX2RiIiwgImxvYWRfY3JlZGVudGlhbHMiLCAiIikK bW9kcGFyYW0oImF1dGhfZGIiLCAidXNlX2RvbWFpbiIsIE1VTFRJRE9NQUlOKQoKI2lmZGVmIFdJ VEhfTkFUCiMgLS0tLS0gcnRwcHJveHkgcGFyYW1zIC0tLS0tCm1vZHBhcmFtKCJydHBwcm94eSIs ICJydHBwcm94eV9zb2NrIiwgInVkcDoxMjcuMC4wLjE6NzcyMiIpCgojIC0tLS0tIG5hdGhlbHBl ciBwYXJhbXMgLS0tLS0KbW9kcGFyYW0oIm5hdGhlbHBlciIsICJuYXRwaW5nX2ludGVydmFsIiwg MTApCgptb2RwYXJhbSgibmF0aGVscGVyIiwgInBpbmdfbmF0ZWRfb25seSIsIDApCm1vZHBhcmFt KCJuYXRoZWxwZXIiLCAic2lwcGluZ19iZmxhZyIsIEZMQl9OQVRTSVBQSU5HKQptb2RwYXJhbSgi bmF0aGVscGVyIiwgInNpcHBpbmdfbWV0aG9kIiwgIk9QVElPTlMiKQptb2RwYXJhbSgibmF0aGVs cGVyIiwgInNpcHBpbmdfZnJvbSIsICJzaXA6cGluZ2VyQDE5Mi4xNjguMS40NCIpCgojIHBhcmFt cyBuZWVkZWQgZm9yIE5BVCB0cmF2ZXJzYWwgaW4gb3RoZXIgbW9kdWxlcwptb2RwYXJhbSgibmF0 aGVscGVyfHJlZ2lzdHJhciIsICJyZWNlaXZlZF9hdnAiLCAiJGF2cChSRUNFSVZFRCkiKQptb2Rw YXJhbSgidXNybG9jIiwgIm5hdF9iZmxhZyIsIEZMQl9OQVRCKQojZW5kaWYKCgojIWlmZGVmIFdJ VEhfVExTCiMgLS0tLS0gdGxzIHBhcmFtcyAtLS0tLQptb2RwYXJhbSgidGxzIiwgImNvbmZpZyIs ICIvdXNyL2xvY2FsL2V0Yy9rYW1haWxpby90bHMuY2ZnIikKIyFlbmRpZgoKIyFpZmRlZiBXSVRI X0RFQlVHCiMgLS0tLS0gZGVidWdnZXIgcGFyYW1zIC0tLS0tCm1vZHBhcmFtKCJkZWJ1Z2dlciIs ICJjZmd0cmFjZSIsIDEpCiMhZW5kaWYKCiMjIyMjIyMgUm91dGluZyBMb2dpYyAjIyMjIyMjIwoK CiMgTWFpbiBTSVAgcmVxdWVzdCByb3V0aW5nIGxvZ2ljCiMgLSBwcm9jZXNzaW5nIG9mIGFueSBp bmNvbWluZyBTSVAgcmVxdWVzdCBzdGFydHMgd2l0aCB0aGlzIHJvdXRlCiMgLSBub3RlOiB0aGlz IGlzIHRoZSBzYW1lIGFzIHJvdXRlIHsgLi4uIH0KcmVxdWVzdF9yb3V0ZSB7CgoJIyBwZXIgcmVx dWVzdCBpbml0aWFsIGNoZWNrcwoJcm91dGUoUkVRSU5JVCk7CgoJIyBOQVQgZGV0ZWN0aW9uCiMJ cm91dGUoTkFUREVURUNUKTsKCgkjIENBTkNFTCBwcm9jZXNzaW5nCglpZiAoaXNfbWV0aG9kKCJD QU5DRUwiKSkgewoJCWlmICh0X2NoZWNrX3RyYW5zKCkpIHsKCQkJcm91dGUoUkVMQVkpOwoJCX0K CQlleGl0OwoJfQoKCSMgaGFuZGxlIHJlcXVlc3RzIHdpdGhpbiBTSVAgZGlhbG9ncwoJcm91dGUo V0lUSElORExHKTsKCgkjIyMgb25seSBpbml0aWFsIHJlcXVlc3RzIChubyBUbyB0YWcpCgoJdF9j aGVja190cmFucygpOwoKCSMgYXV0aGVudGljYXRpb24KCXJvdXRlKEFVVEgpOwoKCSMgcmVjb3Jk IHJvdXRpbmcgZm9yIGRpYWxvZyBmb3JtaW5nIHJlcXVlc3RzIChpbiBjYXNlIHRoZXkgYXJlIHJv dXRlZCkKCSMgLSByZW1vdmUgcHJlbG9hZGVkIHJvdXRlIGhlYWRlcnMKCXJlbW92ZV9oZigiUm91 dGUiKTsKCWlmIChpc19tZXRob2QoIklOVklURXxTVUJTQ1JJQkUiKSkKCQlyZWNvcmRfcm91dGUo KTsKCgkjIGFjY291bnQgb25seSBJTlZJVEVzCglpZiAoaXNfbWV0aG9kKCJJTlZJVEUiKSkgewoJ CXNldGZsYWcoRkxUX0FDQyk7ICMgZG8gYWNjb3VudGluZwoJfQoKCSMjIyByZXF1ZXN0cyBmb3Ig bXkgbG9jYWwgZG9tYWlucwoKCSMgaGFuZGxlIHJlZ2lzdHJhdGlvbnMKCXJvdXRlKFJFR0lTVFJB Uik7CgoJaWYgKCRyVT09JG51bGwpIHsKCQkjIHJlcXVlc3Qgd2l0aCBubyBVc2VybmFtZSBpbiBS VVJJCgkJc2xfc2VuZF9yZXBseSgiNDg0IiwiQWRkcmVzcyBJbmNvbXBsZXRlIik7CgkJZXhpdDsK CX0KCgkjIHVzZXIgbG9jYXRpb24gc2VydmljZQoJcm91dGUoTE9DQVRJT04pOwp9CgoKcm91dGVb UkVMQVldIHsKCSMgZW5hYmxlIGFkZGl0aW9uYWwgZXZlbnQgcm91dGVzIGZvciBmb3J3YXJkZWQg cmVxdWVzdHMKCSMgLSBzZXJpYWwgZm9ya2luZywgUlRQIHJlbGF5aW5nIGhhbmRsaW5nLCBhLnMu by4KCWlmIChpc19tZXRob2QoIklOVklURXxCWUV8U1VCU0NSSUJFfFVQREFURSIpKSB7CgkJaWYo IXRfaXNfc2V0KCJicmFuY2hfcm91dGUiKSkgdF9vbl9icmFuY2goIk1BTkFHRV9CUkFOQ0giKTsK CX0KCWlmIChpc19tZXRob2QoIklOVklURXxTVUJTQ1JJQkV8VVBEQVRFIikpIHsKCQlpZighdF9p c19zZXQoIm9ucmVwbHlfcm91dGUiKSkgdF9vbl9yZXBseSgiTUFOQUdFX1JFUExZIik7Cgl9Cglp ZiAoaXNfbWV0aG9kKCJJTlZJVEUiKSkgewoJCWlmKCF0X2lzX3NldCgiZmFpbHVyZV9yb3V0ZSIp KSB0X29uX2ZhaWx1cmUoIk1BTkFHRV9GQUlMVVJFIik7Cgl9CgoJaWYgKCF0X3JlbGF5KCkpIHsK CQlzbF9yZXBseV9lcnJvcigpOwoJfQoJZXhpdDsKfQoKIyBQZXIgU0lQIHJlcXVlc3QgaW5pdGlh bCBjaGVja3MKcm91dGVbUkVRSU5JVF0gewoKCglpZiAoIW1mX3Byb2Nlc3NfbWF4ZndkX2hlYWRl cigiMTAiKSkgewoJCXNsX3NlbmRfcmVwbHkoIjQ4MyIsIlRvbyBNYW55IEhvcHMiKTsKCQlleGl0 OwoJfQoKCWlmKCFzYW5pdHlfY2hlY2soIjE1MTEiLCAiNyIpKSB7CgkJeGxvZygiTWFsZm9ybWVk IFNJUCBtZXNzYWdlIGZyb20gJHNpOiRzcFxuIik7CgkJZXhpdDsKCX0KfQoKIyBIYW5kbGUgcmVx dWVzdHMgd2l0aGluIFNJUCBkaWFsb2dzCnJvdXRlW1dJVEhJTkRMR10gewoJaWYgKGhhc190b3Rh ZygpKSB7CgkJIyBzZXF1ZW50aWFsIHJlcXVlc3Qgd2l0aGluZyBhIGRpYWxvZyBzaG91bGQKCQkj IHRha2UgdGhlIHBhdGggZGV0ZXJtaW5lZCBieSByZWNvcmQtcm91dGluZwoJCWlmIChsb29zZV9y b3V0ZSgpKSB7CgkJCXJvdXRlKERMR1VSSSk7CgkJCWlmIChpc19tZXRob2QoIkJZRSIpKSB7CgkJ CQlzZXRmbGFnKEZMVF9BQ0MpOyAjIGRvIGFjY291bnRpbmcgLi4uCgkJCQlzZXRmbGFnKEZMVF9B Q0NGQUlMRUQpOyAjIC4uLiBldmVuIGlmIHRoZSB0cmFuc2FjdGlvbiBmYWlscwoJCQl9CgkJCWVs c2UgaWYgKCBpc19tZXRob2QoIkFDSyIpICkgewoJCQkJIyBBQ0sgaXMgZm9yd2FyZGVkIHN0YXRl bGVzc3kKCQkJCXJvdXRlKE5BVE1BTkFHRSk7CgkJCX0KCQkJZWxzZSBpZiAoIGlzX21ldGhvZCgi Tk9USUZZIikgKSB7CgkJCQkjIEFkZCBSZWNvcmQtUm91dGUgZm9yIGluLWRpYWxvZyBOT1RJRlkg YXMgcGVyIFJGQyA2NjY1LgoJCQkJcmVjb3JkX3JvdXRlKCk7CgkJCX0KCQkJcm91dGUoUkVMQVkp OwoJCX0gZWxzZSB7CgkJCWlmICggaXNfbWV0aG9kKCJBQ0siKSApIHsKCQkJCWlmICggdF9jaGVj a190cmFucygpICkgewoJCQkJCSMgbm8gbG9vc2Utcm91dGUsIGJ1dCBzdGF0ZWZ1bCBBQ0s7CgkJ CQkJIyBtdXN0IGJlIGFuIEFDSyBhZnRlciBhIDQ4NwoJCQkJCSMgb3IgZS5nLiA0MDQgZnJvbSB1 cHN0cmVhbSBzZXJ2ZXIKCQkJCQlyb3V0ZShSRUxBWSk7CgkJCQkJZXhpdDsKCQkJCX0gZWxzZSB7 CgkJCQkJIyBBQ0sgd2l0aG91dCBtYXRjaGluZyB0cmFuc2FjdGlvbiAuLi4gaWdub3JlIGFuZCBk aXNjYXJkCgkJCQkJZXhpdDsKCQkJCX0KCQkJfQoJCQlzbF9zZW5kX3JlcGx5KCI0MDQiLCJOb3Qg aGVyZSIpOwoJCX0KCQlleGl0OwoJfQp9Cgpyb3V0ZVtSRUdJU1RSQVJdIHsKCWlmIChpc19tZXRo b2QoIlJFR0lTVEVSIikpIHsKCXNldGJmbGFnKEZMQl9OQVRTSVBQSU5HKTsKCQoJCWlmICghc2F2 ZSgibG9jYXRpb24iKSkKCQkJc2xfcmVwbHlfZXJyb3IoKTsKCgkJZXhpdDsKCX0KfQoKIyBVU0VS IGxvY2F0aW9uIHNlcnZpY2UKcm91dGVbTE9DQVRJT05dIHsKCWlmICghbG9va3VwKCJsb2NhdGlv biIpKSB7CgkJJHZhcihyYykgPSAkcmM7CgkJdF9uZXd0cmFuKCk7CgkJc3dpdGNoICgkdmFyKHJj KSkgewoJCQljYXNlIC0xOgoJCQljYXNlIC0zOgoJCQkJc2VuZF9yZXBseSgiNDA0IiwgIk5vdCBG b3VuZCIpOwoJCQkJZXhpdDsKCQkJY2FzZSAtMjoKCQkJCXNlbmRfcmVwbHkoIjQwNSIsICJNZXRo b2QgTm90IEFsbG93ZWQiKTsKCQkJCWV4aXQ7CgkJfQoJfQoKCSMgd2hlbiByb3V0aW5nIHZpYSB1 c3Jsb2MsIGxvZyB0aGUgbWlzc2VkIGNhbGxzIGFsc28KCWlmIChpc19tZXRob2QoIklOVklURSIp KSB7CgkJc2V0ZmxhZyhGTFRfQUNDTUlTU0VEKTsKCX0KCglyb3V0ZShSRUxBWSk7CglleGl0Owp9 CgoKIyBBdXRoZW50aWNhdGlvbiByb3V0ZQpyb3V0ZVtBVVRIXSB7CiMhaWZkZWYgV0lUSF9BVVRI CgoJaWYgKGlzX21ldGhvZCgiUkVHSVNURVIiKSB8fCBmcm9tX3VyaT09bXlzZWxmKSB7CgkJIyBh dXRoZW50aWNhdGUgcmVxdWVzdHMKCQlpZiAoIWF1dGhfY2hlY2soIiRmZCIsICJzdWJzY3JpYmVy IiwgIjEiKSkgewoJCQlhdXRoX2NoYWxsZW5nZSgiJGZkIiwgIjAiKTsKCQkJZXhpdDsKCQl9CgkJ IyB1c2VyIGF1dGhlbnRpY2F0ZWQgLSByZW1vdmUgYXV0aCBoZWFkZXIKCQlpZighaXNfbWV0aG9k KCJSRUdJU1RFUnxQVUJMSVNIIikpCgkJCWNvbnN1bWVfY3JlZGVudGlhbHMoKTsKCX0KCSMgaWYg Y2FsbGVyIGlzIG5vdCBsb2NhbCBzdWJzY3JpYmVyLCB0aGVuIGNoZWNrIGlmIGl0IGNhbGxzCgkj IGEgbG9jYWwgZGVzdGluYXRpb24sIG90aGVyd2lzZSBkZW55LCBub3QgYW4gb3BlbiByZWxheSBo ZXJlCglpZiAoZnJvbV91cmkhPW15c2VsZiAmJiB1cmkhPW15c2VsZikgewoJCXNsX3NlbmRfcmVw bHkoIjQwMyIsIk5vdCByZWxheWluZyIpOwoJCWV4aXQ7Cgl9CgojIWVuZGlmCglyZXR1cm47Cn0K CiMgQ2FsbGVyIE5BVCBkZXRlY3Rpb24gcm91dGUKcm91dGVbTkFUREVURUNUXSB7CiMhaWZkZWYg V0lUSF9OQVQKCWZvcmNlX3Jwb3J0KCk7CglpZiAobmF0X3VhY190ZXN0KCIxMjgiKSkgewoJCWlm IChpc19tZXRob2QoIlJFR0lTVEVSIikpIHsKCQkJZml4X25hdGVkX3JlZ2lzdGVyKCk7CgkJfSBl bHNlIHsKCQkJYWRkX2NvbnRhY3RfYWxpYXMoKTsKCQl9CgkJc2V0ZmxhZyhGTFRfTkFUUyk7Cgl9 CiMhZW5kaWYKCXJldHVybjsKfQoKIyBSVFBQcm94eSBjb250cm9sCnJvdXRlW05BVE1BTkFHRV0g ewojIWlmZGVmIFdJVEhfTkFUCglpZiAoaXNfcmVxdWVzdCgpKSB7CgkJaWYoaGFzX3RvdGFnKCkp IHsKCQkJaWYoY2hlY2tfcm91dGVfcGFyYW0oIm5hdD15ZXMiKSkgewoJCQkJc2V0YmZsYWcoRkxC X05BVEIpOwoJCQl9CgkJfQoJfQoJaWYgKCEoaXNmbGFnc2V0KEZMVF9OQVRTKSB8fCBpc2JmbGFn c2V0KEZMQl9OQVRCKSkpCgkJcmV0dXJuOwoKCXJ0cHByb3h5X21hbmFnZSgiY28iKTsKCglpZiAo aXNfcmVxdWVzdCgpKSB7CgkJaWYgKCFoYXNfdG90YWcoKSkgewoJCQlpZih0X2lzX2JyYW5jaF9y b3V0ZSgpKSB7CgkJCQlhZGRfcnJfcGFyYW0oIjtuYXQ9eWVzIik7CgkJCX0KCQl9Cgl9CglpZiAo aXNfcmVwbHkoKSkgewoJCWlmKGlzYmZsYWdzZXQoRkxCX05BVEIpKSB7CgkJCWFkZF9jb250YWN0 X2FsaWFzKCk7CgkJfQoJfQojIWVuZGlmCglyZXR1cm47Cn0KCiMgVVJJIHVwZGF0ZSBmb3IgZGlh bG9nIHJlcXVlc3RzCnJvdXRlW0RMR1VSSV0gewojIWlmZGVmIFdJVEhfTkFUCglpZighaXNkc3R1 cmlzZXQoKSkgewoJCWhhbmRsZV9ydXJpX2FsaWFzKCk7Cgl9CiMhZW5kaWYKCXJldHVybjsKfQoK Cg== --===============0459131919==--