From charles.chance@sipcentric.com Fri Sep 27 13:35:17 2013 From: Charles Chance To: sr-users@lists.kamailio.org Subject: Re: [SR-Users] Communicate with Kamailio through external application Date: Fri, 27 Sep 2013 12:35:11 +0100 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1363997266==" --===============1363997266== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi, Have you added the appropriate listen=3D and/or port=3D directive to your config? http://www.kamailio.org/wiki/cookbooks/4.0.x/core#listen http://www.kamailio.org/wiki/cookbooks/4.0.x/core#port Also make sure you have not disabled TCP. Regards, Charles On 27 September 2013 12:27, Grant Bagdasarian wrote: > What am I doing wrong here?**** > > ** ** > > # ----- xhttp params ------**** > > modparam("xhttp", "url_match", "null")**** > > ** ** > > # ----- xhttp_rpc params ------**** > > modparam("xhttp_rpc", "xhttp_rpc_root", "http_rpc")**** > > ** ** > > ####### Routing Logic ########**** > > ** ** > > event_route[xhttp:request] {**** > > xlog("L_INFO", "************************************** RECEIVED > NEW HTTP REQUEST: $hu *********************************");**** > > xhttp_reply("200", "OK", "text/html","OK =E2=80=93 Reque= st > Received");**** > > }**** > > ** ** > > It seems like Kamailio isn=E2=80=99t receiving the HTTP requests.**** > > Im doing a simple HTTP GET (http://192.168.1.10/http_rpc) using my > browser to see if it hits the event_route.**** > > From what I understand, the RCP command is in the url of the HTTP request, > and is extracted using string transformations.**** > > I=E2=80=99ve never done anything with RPC directly, so maybe I=E2=80=99m ju= st wrong.**** > > ** ** > > Also, I don=E2=80=99t see Kamailio binding to the HTTP port.**** > > The xhttp_rpc_root param only allows alphanumeric values, so I can=E2=80=99t > specify a full URL.**** > > ** ** > > ** ** > > ** ** > > *From:* sr-users-bounces(a)lists.sip-router.org [mailto: > sr-users-bounces(a)lists.sip-router.org] *On Behalf Of *Grant Bagdasarian > *Sent:* Friday, September 27, 2013 10:04 AM > *To:* Kamailio (SER) - Users Mailing List > *Subject:* Re: [SR-Users] Communicate with Kamailio through external > application**** > > ** ** > > Thanks, I=E2=80=99ll have a look at it. **** > > Looks much easier than setting up Ssh connections programmatically. **** > > ** ** > > *From:* sr-users-bounces(a)lists.sip-router.org [ > mailto:sr-users-bounces(a)lists.sip-router.org] > *On Behalf Of *Charles Chance > *Sent:* Wednesday, September 25, 2013 1:12 PM > *To:* Kamailio (SER) - Users Mailing List > *Subject:* Re: [SR-Users] Communicate with Kamailio through external > application**** > > ** ** > > Hi,**** > > ** ** > > Take a look at > http://www.kamailio.org/docs/modules/stable/modules/xhttp_rpc.html, which > allows you to receive/handle RPC commands over HTTP.**** > > ** ** > > Then use the appropriate RPC command in dispatcher module to reload table: > http://www.kamailio.org/docs/modules/stable/modules/dispatcher.html#idp1699= 8512 > **** > > ** ** > > Regards,**** > > ** ** > > Charles**** > > ** ** > > ** ** > > On 25 September 2013 11:40, Grant Bagdasarian wrote:**** > > Hello,**** > > **** > > When adding rows to the dispatcher table, the table in memory needs to be > refreshed. Since we have multiple Kamailio instances running on different > machines, I=E2=80=99d like to automate the process of reloading the table.*= *** > > Is there an easy way of doing this with an already existing module, which > provides easy connectivity from the outside?**** > > Or do I need to write an application which basically sets up a SSH socket > connection with the machine and sends the command =E2=80=9Ckamctl dispatcher > reload=E2=80=9D then exit? Not that hard either, but there might be a finer > solution available.**** > > **** > > Regards,**** > > **** > > Grant**** > > **** > > > _______________________________________________ > 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**** > > ** ** > > > www.sipcentric.com > > Follow us on twitter @sipcentric > > Sipcentric Ltd. Company registered in England & Wales no. 7365592. Register= ed > office: Unit 10 iBIC, Birmingham Science Park, Holt Court South, Birmingham > B7 4EJ.**** > > _______________________________________________ > 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 > > --=20 www.sipcentric.com Follow us on twitter @sipcentric Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered= =20 office: Unit 10 iBIC, Birmingham Science Park, Holt Court South, Birmingham=20 B7 4EJ. --===============1363997266== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+SGksPGRpdj48YnI+PC9kaXY+PGRpdj5IYXZlIHlvdSBhZGRlZCB0aGUg YXBwcm9wcmlhdGUgbGlzdGVuPSBhbmQvb3IgcG9ydD0gZGlyZWN0aXZlIHRvIHlvdXIgY29uZmln PzwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGEgaHJlZj0iaHR0cDovL3d3dy5rYW1haWxpby5v cmcvd2lraS9jb29rYm9va3MvNC4wLngvY29yZSNsaXN0ZW4iPmh0dHA6Ly93d3cua2FtYWlsaW8u b3JnL3dpa2kvY29va2Jvb2tzLzQuMC54L2NvcmUjbGlzdGVuPC9hPjxicj4KPC9kaXY+PGRpdj48 YSBocmVmPSJodHRwOi8vd3d3LmthbWFpbGlvLm9yZy93aWtpL2Nvb2tib29rcy80LjAueC9jb3Jl I3BvcnQiPmh0dHA6Ly93d3cua2FtYWlsaW8ub3JnL3dpa2kvY29va2Jvb2tzLzQuMC54L2NvcmUj cG9ydDwvYT48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5BbHNvIG1ha2Ugc3VyZSB5b3Ug aGF2ZSBub3QgZGlzYWJsZWQgVENQLjwvZGl2PjxkaXY+PGJyPjwvZGl2Pgo8ZGl2PlJlZ2FyZHMs PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5DaGFybGVzPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRp diBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gMjcg U2VwdGVtYmVyIDIwMTMgMTI6MjcsIEdyYW50IEJhZ2Rhc2FyaWFuIDxzcGFuIGRpcj0ibHRyIj4m bHQ7PGEgaHJlZj0ibWFpbHRvOkdCQGNtLm5sIiB0YXJnZXQ9Il9ibGFuayI+R0JAY20ubmw8L2E+ Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPgo8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0 eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5n LWxlZnQ6MWV4Ij48ZGl2IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIj48 ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv cjojMWY0OTdkIj5XaGF0IGFtIEkgZG9pbmcgd3JvbmcgaGVyZT88dT48L3U+PHU+PC91Pjwvc3Bh bj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj b2xvcjojMWY0OTdkIj48dT48L3U+oDx1PjwvdT48L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjku MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4jIC0tLS0tIHhodHRwIHBh cmFtcyAtLS0tLS08dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij5tb2RwYXJhbSgmcXVvdDt4aHR0 cCZxdW90OywgJnF1b3Q7dXJsX21hdGNoJnF1b3Q7LCAmcXVvdDtudWxsJnF1b3Q7KTx1PjwvdT48 dT48L3U+PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0idGV4dC1hdXRvc3Bh Y2U6bm9uZSI+CjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7 Q291cmllciBOZXcmcXVvdDsiPjx1PjwvdT6gPHU+PC91Pjwvc3Bhbj48L3A+PHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LXNp emU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiMgLS0tLS0geGh0 dHBfcnBjIHBhcmFtcyAtLS0tLS08dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1z aXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij5tb2RwYXJhbSgm cXVvdDt4aHR0cF9ycGMmcXVvdDssICZxdW90O3hodHRwX3JwY19yb290JnF1b3Q7LCAmcXVvdDto dHRwX3JwYyZxdW90Oyk8dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjku MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij48dT48L3U+oDx1PjwvdT48 L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25l Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIg TmV3JnF1b3Q7Ij4jIyMjIyMjIFJvdXRpbmcgTG9naWMgIyMjIyMjIyM8dT48L3U+PHU+PC91Pjwv c3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25l Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIg TmV3JnF1b3Q7Ij48dT48L3U+oDx1PjwvdT48L3NwYW4+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij5ldmVudF9yb3V0ZVt4aHR0cDpy ZXF1ZXN0XSB7PC9zcGFuPjxzcGFuIGxhbmc9Ik5MIiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij48dT48L3U+PHU+PC91Pjwvc3Bhbj48 L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWF1dG9zcGFjZTpub25lIj48c3Bh biBsYW5nPSJOTCIgc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtDb3Vy aWVyIE5ldyZxdW90OyI+oKCgoKCgIDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij54bG9nKCZxdW90O0xfSU5GTyZx dW90OywgJnF1b3Q7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogUkVDRUlW RUQgTkVXIEhUVFAgUkVRVUVTVDqgICRodSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiomcXVvdDspOzx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9InRleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPqCgoKCgoCB4aHR0cF9yZXBseSgm cXVvdDsyMDAmcXVvdDssICZxdW90O09LJnF1b3Q7LCAmcXVvdDt0ZXh0L2h0bWwmcXVvdDssJnF1 b3Q7Jmx0O2h0bWwmZ3Q7Jmx0O2JvZHkmZ3Q7T0sgliBSZXF1ZXN0IFJlY2VpdmVkJmx0Oy9ib2R5 Jmd0OyZsdDsvaHRtbCZndDsmcXVvdDspOzx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtYXV0b3NwYWNlOm5vbmUiPjxzcGFuIHN0eWxlPSJm b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPn08dT48 L3U+PHU+PC91Pjwvc3Bhbj48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z LXNlcmlmJnF1b3Q7O2NvbG9yOiMxZjQ5N2QiPjx1PjwvdT6gPHU+PC91Pjwvc3Bhbj48L3A+Cjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMWY0 OTdkIj5JdCBzZWVtcyBsaWtlIEthbWFpbGlvIGlzbpJ0IHJlY2VpdmluZyB0aGUgSFRUUCByZXF1 ZXN0cy48dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+CjxzcGFu IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMWY0OTdkIj5JbSBkb2luZyBhIHNpbXBsZSBI VFRQIEdFVCAoPC9zcGFuPjxhIGhyZWY9Imh0dHA6Ly8xOTIuMTY4LjEuMTAvaHR0cF9ycGMiIHRh cmdldD0iX2JsYW5rIj5odHRwOi8vMTkyLjE2OC4xLjEwL2h0dHBfcnBjPC9hPik8c3BhbiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90 O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFmNDk3ZCI+IHVzaW5nIG15IGJyb3dzZXIgdG8gc2Vl IGlmIGl0IGhpdHMgdGhlIGV2ZW50X3JvdXRlLjx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxZjQ5 N2QiPkZyb20gd2hhdCBJIHVuZGVyc3RhbmQsIHRoZSBSQ1AgY29tbWFuZCBpcyBpbiB0aGUgdXJs IG9mIHRoZSBIVFRQIHJlcXVlc3QsIGFuZCBpcyBleHRyYWN0ZWQgdXNpbmcgc3RyaW5nIHRyYW5z Zm9ybWF0aW9ucy48dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMWY0OTdkIj5JknZlIG5ldmVyIGRv bmUgYW55dGhpbmcgd2l0aCBSUEMgZGlyZWN0bHksIHNvIG1heWJlIEmSbSBqdXN0IHdyb25nLjx1 PjwvdT48dT48L3U+PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj4KPHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxZjQ5N2QiPjx1PjwvdT6gPHU+PC91Pjwvc3Bhbj48L3A+ PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx ZjQ5N2QiPkFsc28sIEkgZG9uknQgc2VlIEthbWFpbGlvIGJpbmRpbmcgdG8gdGhlIEhUVFAgcG9y dC48dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1 b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMWY0OTdkIj5UaGUgeGh0dHBfcnBjX3Jvb3QgcGFy YW0gb25seSBhbGxvd3MgYWxwaGFudW1lcmljIHZhbHVlcywgc28gSSBjYW6SdCBzcGVjaWZ5IGEg ZnVsbCBVUkwuPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFmNDk3ZCI+PHU+PC91PqA8dT48L3U+ PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv dDs7Y29sb3I6IzFmNDk3ZCI+PHU+PC91PqA8dT48L3U+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1z b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxZjQ5N2QiPjx1Pjwv dT6gPHU+PC91Pjwvc3Bhbj48L3A+PGRpdj48ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXIt dG9wOnNvbGlkICNiNWM0ZGYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+CjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFt aWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bh bj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFo b21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiA8YSBocmVmPSJtYWlsdG86c3ItdXNl cnMtYm91bmNlc0BsaXN0cy5zaXAtcm91dGVyLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNyLXVzZXJz LWJvdW5jZXNAbGlzdHMuc2lwLXJvdXRlci5vcmc8L2E+IFttYWlsdG86PGEgaHJlZj0ibWFpbHRv OnNyLXVzZXJzLWJvdW5jZXNAbGlzdHMuc2lwLXJvdXRlci5vcmciIHRhcmdldD0iX2JsYW5rIj5z ci11c2Vycy1ib3VuY2VzQGxpc3RzLnNpcC1yb3V0ZXIub3JnPC9hPl0gPGI+T24gQmVoYWxmIE9m IDwvYj5HcmFudCBCYWdkYXNhcmlhbjxicj4KPGI+U2VudDo8L2I+IEZyaWRheSwgU2VwdGVtYmVy IDI3LCAyMDEzIDEwOjA0IEFNPGJyPjxiPlRvOjwvYj4gS2FtYWlsaW8gKFNFUikgLSBVc2VycyBN YWlsaW5nIExpc3Q8YnI+PGI+U3ViamVjdDo8L2I+IFJlOiBbU1ItVXNlcnNdIENvbW11bmljYXRl IHdpdGggS2FtYWlsaW8gdGhyb3VnaCBleHRlcm5hbCBhcHBsaWNhdGlvbjx1PjwvdT48dT48L3U+ PC9zcGFuPjwvcD48L2Rpdj48L2Rpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PqA8dT48 L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj b2xvcjojMWY0OTdkIj5UaGFua3MsIEmSbGwgaGF2ZSBhIGxvb2sgYXQgaXQuIDx1PjwvdT48dT48 L3U+PC9zcGFuPjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj4KPHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlm JnF1b3Q7O2NvbG9yOiMxZjQ5N2QiPkxvb2tzIG11Y2ggZWFzaWVyIHRoYW4gc2V0dGluZyB1cCBT c2ggY29ubmVjdGlvbnMgcHJvZ3JhbW1hdGljYWxseS4gPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9w PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj MWY0OTdkIj48dT48L3U+oDx1PjwvdT48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEm cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxl PSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtz YW5zLXNlcmlmJnF1b3Q7Ij4gPGEgaHJlZj0ibWFpbHRvOnNyLXVzZXJzLWJvdW5jZXNAbGlzdHMu c2lwLXJvdXRlci5vcmciIHRhcmdldD0iX2JsYW5rIj5zci11c2Vycy1ib3VuY2VzQGxpc3RzLnNp cC1yb3V0ZXIub3JnPC9hPiBbPGEgaHJlZj0ibWFpbHRvOnNyLXVzZXJzLWJvdW5jZXNAbGlzdHMu c2lwLXJvdXRlci5vcmciIHRhcmdldD0iX2JsYW5rIj5tYWlsdG86c3ItdXNlcnMtYm91bmNlc0Bs aXN0cy5zaXAtcm91dGVyLm9yZzwvYT5dIDxiPk9uIEJlaGFsZiBPZiA8L2I+Q2hhcmxlcyBDaGFu Y2U8YnI+CjxiPlNlbnQ6PC9iPiBXZWRuZXNkYXksIFNlcHRlbWJlciAyNSwgMjAxMyAxOjEyIFBN PGJyPjxiPlRvOjwvYj4gS2FtYWlsaW8gKFNFUikgLSBVc2VycyBNYWlsaW5nIExpc3Q8YnI+PGI+ U3ViamVjdDo8L2I+IFJlOiBbU1ItVXNlcnNdIENvbW11bmljYXRlIHdpdGggS2FtYWlsaW8gdGhy b3VnaCBleHRlcm5hbCBhcHBsaWNhdGlvbjx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD48cCBjbGFz cz0iTXNvTm9ybWFsIj4KPHU+PC91PqA8dT48L3U+PC9wPjxkaXY+PHAgY2xhc3M9Ik1zb05vcm1h bCI+SGksPHU+PC91Pjx1PjwvdT48L3A+PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U+ oDx1PjwvdT48L3A+PC9kaXY+PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIj5UYWtlIGEgbG9vayBh dKA8YSBocmVmPSJodHRwOi8vd3d3LmthbWFpbGlvLm9yZy9kb2NzL21vZHVsZXMvc3RhYmxlL21v ZHVsZXMveGh0dHBfcnBjLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LmthbWFpbGlv Lm9yZy9kb2NzL21vZHVsZXMvc3RhYmxlL21vZHVsZXMveGh0dHBfcnBjLmh0bWw8L2E+LCB3aGlj aCBhbGxvd3MgeW91IHRvIHJlY2VpdmUvaGFuZGxlIFJQQyBjb21tYW5kcyBvdmVyIEhUVFAuPHU+ PC91Pjx1PjwvdT48L3A+CjwvZGl2PjxkaXY+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PqA8 dT48L3U+PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlbiB1c2UgdGhlIGFw cHJvcHJpYXRlIFJQQyBjb21tYW5kIGluIGRpc3BhdGNoZXIgbW9kdWxlIHRvIHJlbG9hZCB0YWJs ZTqgPGEgaHJlZj0iaHR0cDovL3d3dy5rYW1haWxpby5vcmcvZG9jcy9tb2R1bGVzL3N0YWJsZS9t b2R1bGVzL2Rpc3BhdGNoZXIuaHRtbCNpZHAxNjk5ODUxMiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6 Ly93d3cua2FtYWlsaW8ub3JnL2RvY3MvbW9kdWxlcy9zdGFibGUvbW9kdWxlcy9kaXNwYXRjaGVy Lmh0bWwjaWRwMTY5OTg1MTI8L2E+PHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2PjxkaXY+PHAgY2xh c3M9Ik1zb05vcm1hbCI+PHU+PC91PqA8dT48L3U+PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9Ik1z b05vcm1hbCI+UmVnYXJkcyw8dT48L3U+PHU+PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJN c29Ob3JtYWwiPjx1PjwvdT6gPHU+PC91PjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPSJNc29Ob3Jt YWwiPkNoYXJsZXM8dT48L3U+PHU+PC91PjwvcD48L2Rpdj4KPGRpdj48cCBjbGFzcz0iTXNvTm9y bWFsIj48dT48L3U+oDx1PjwvdT48L3A+PC9kaXY+PGRpdj48cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjx1PjwvdT6gPHU+PC91PjwvcD48ZGl2PjxwIGNs YXNzPSJNc29Ob3JtYWwiPk9uIDI1IFNlcHRlbWJlciAyMDEzIDExOjQwLCBHcmFudCBCYWdkYXNh cmlhbiAmbHQ7PGEgaHJlZj0ibWFpbHRvOkdCQGNtLm5sIiB0YXJnZXQ9Il9ibGFuayI+R0JAY20u bmw8L2E+Jmd0OyB3cm90ZTo8dT48L3U+PHU+PC91PjwvcD4KPGRpdj48ZGl2PjxwIGNsYXNzPSJN c29Ob3JtYWwiPkhlbGxvLDx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPqA8 dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5XaGVuIGFkZGluZyByb3dzIHRv IHRoZSBkaXNwYXRjaGVyIHRhYmxlLCB0aGUgdGFibGUgaW4gbWVtb3J5IG5lZWRzIHRvIGJlIHJl ZnJlc2hlZC4gU2luY2Ugd2UgaGF2ZSBtdWx0aXBsZSBLYW1haWxpbyBpbnN0YW5jZXMgcnVubmlu ZyBvbiBkaWZmZXJlbnQgbWFjaGluZXMsIEmSZCBsaWtlIHRvIGF1dG9tYXRlIHRoZSBwcm9jZXNz IG9mIHJlbG9hZGluZyB0aGUgdGFibGUuPHU+PC91Pjx1PjwvdT48L3A+CjxwIGNsYXNzPSJNc29O b3JtYWwiPklzIHRoZXJlIGFuIGVhc3kgd2F5IG9mIGRvaW5nIHRoaXMgd2l0aCBhbiBhbHJlYWR5 IGV4aXN0aW5nIG1vZHVsZSwgd2hpY2ggcHJvdmlkZXMgZWFzeSBjb25uZWN0aXZpdHkgZnJvbSB0 aGUgb3V0c2lkZT88dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5PciBkbyBJ IG5lZWQgdG8gd3JpdGUgYW4gYXBwbGljYXRpb24gd2hpY2ggYmFzaWNhbGx5IHNldHMgdXAgYSBT U0ggc29ja2V0IGNvbm5lY3Rpb24gd2l0aCB0aGUgbWFjaGluZSBhbmQgc2VuZHMgdGhlIGNvbW1h bmQgk2thbWN0bCBkaXNwYXRjaGVyIHJlbG9hZJQgdGhlbiBleGl0PyBOb3QgdGhhdCBoYXJkIGVp dGhlciwgYnV0IHRoZXJlIG1pZ2h0IGJlIGEgZmluZXIgc29sdXRpb24gYXZhaWxhYmxlLjx1Pjwv dT48dT48L3U+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj6gPHU+PC91Pjx1PjwvdT48L3A+PHAg Y2xhc3M9Ik1zb05vcm1hbCI+UmVnYXJkcyw8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNv Tm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6Izg4ODg4OCI+oDx1PjwvdT48dT48L3U+PC9zcGFu PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6Izg4ODg4OCI+R3Jh bnQ8dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0 eWxlPSJjb2xvcjojODg4ODg4Ij6gPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPjwvZGl2PjwvZGl2 PjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGJyPl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPlNJUCBFeHBy ZXNzIFJvdXRlciAoU0VSKSBhbmQgS2FtYWlsaW8gKE9wZW5TRVIpIC0gc3ItdXNlcnMgbWFpbGlu ZyBsaXN0PGJyPgo8YSBocmVmPSJtYWlsdG86c3ItdXNlcnNAbGlzdHMuc2lwLXJvdXRlci5vcmci IHRhcmdldD0iX2JsYW5rIj5zci11c2Vyc0BsaXN0cy5zaXAtcm91dGVyLm9yZzwvYT48YnI+PGEg aHJlZj0iaHR0cDovL2xpc3RzLnNpcC1yb3V0ZXIub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m by9zci11c2VycyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9saXN0cy5zaXAtcm91dGVyLm9yZy9j Z2ktYmluL21haWxtYW4vbGlzdGluZm8vc3ItdXNlcnM8L2E+PHU+PC91Pjx1PjwvdT48L3A+Cjwv ZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PHU+ PC91PqA8dT48L3U+PC9wPjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxicj48c3Bh biBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVv dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PGEgaHJlZj0iaHR0cDovL3d3dy5zaXBjZW50cmlj LmNvbS8iIHRpdGxlPSJibG9ja2VkOjpodHRwOi8vd3d3LnNpcGNlbnRyaWMuY29tLyIgdGFyZ2V0 PSJfYmxhbmsiPnd3dy5zaXBjZW50cmljLmNvbTwvYT48YnI+Cjxicj5Gb2xsb3cgdXMgb24gdHdp dHRlciA8YSBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vc2lwY2VudHJpYyIgdGl0bGU9ImJsb2Nr ZWQ6Omh0dHA6Ly90d2l0dGVyLmNvbS9zaXBjZW50cmljIiB0YXJnZXQ9Il9ibGFuayI+QHNpcGNl bnRyaWM8L2E+PGJyPjxicj48c3BhbiBzdHlsZT0iY29sb3I6Z3JheSI+U2lwY2VudHJpYyBMdGQu IENvbXBhbnkgcmVnaXN0ZXJlZCBpbiBFbmdsYW5kICZhbXA7IFdhbGVzIG5vLiA3MzY1NTkyLjwv c3Bhbj6gPHNwYW4gc3R5bGU9ImNvbG9yOmdyYXkiPlJlZ2lzdGVyZWQgb2ZmaWNlOiBVbml0IDEw IGlCSUMsIEJpcm1pbmdoYW0gU2NpZW5jZSBQYXJrLCBIb2x0IENvdXJ0IFNvdXRoLCBCaXJtaW5n aGFtIEI3IDRFSi48L3NwYW4+PC9zcGFuPjx1PjwvdT48dT48L3U+PC9wPgo8L2Rpdj48L2Rpdj48 YnI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+ClNJ UCBFeHByZXNzIFJvdXRlciAoU0VSKSBhbmQgS2FtYWlsaW8gKE9wZW5TRVIpIC0gc3ItdXNlcnMg bWFpbGluZyBsaXN0PGJyPgo8YSBocmVmPSJtYWlsdG86c3ItdXNlcnNAbGlzdHMuc2lwLXJvdXRl ci5vcmciPnNyLXVzZXJzQGxpc3RzLnNpcC1yb3V0ZXIub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0 cDovL2xpc3RzLnNpcC1yb3V0ZXIub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9zci11c2Vy cyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9saXN0cy5zaXAtcm91dGVyLm9yZy9jZ2ktYmluL21h aWxtYW4vbGlzdGluZm8vc3ItdXNlcnM8L2E+PGJyPgo8YnI+PC9ibG9ja3F1b3RlPjwvZGl2Pjxi cj48YnIgY2xlYXI9ImFsbCI+PGRpdj48YnI+PC9kaXY+CjwvZGl2PjwvZGl2PgoKPGJyPgo8Zm9u dCBmYWNlPSJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmIj48Zm9udCBzaXplPSIyIj48c3Bh biBzdHlsZT0iZm9udC1zaXplOjEwcHQiPjxhIGhyZWY9Imh0dHA6Ly93d3cuc2lwY2VudHJpYy5j b20vIiB0aXRsZT0iYmxvY2tlZDo6aHR0cDovL3d3dy5zaXBjZW50cmljLmNvbS8iIHRhcmdldD0i X2JsYW5rIj53d3cuc2lwY2VudHJpYy5jb208L2E+PGJyPgogICAgICAgICAgICA8YnI+CiAgICAg ICAgICAgIEZvbGxvdyB1cyBvbiB0d2l0dGVyIDxhIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9z aXBjZW50cmljIiB0aXRsZT0iYmxvY2tlZDo6aHR0cDovL3R3aXR0ZXIuY29tL3NpcGNlbnRyaWMi IHRhcmdldD0iX2JsYW5rIj5Ac2lwY2VudHJpYzwvYT48YnI+CiAgICAgICAgICAgIDxicj4KICAg ICAgICAgICAgPGZvbnQgY29sb3I9ImdyYXkiPlNpcGNlbnRyaWMgTHRkLgogICAgICAgICAgICAg ICAgQ29tcGFueSByZWdpc3RlcmVkIGluIEVuZ2xhbmQgJmFtcDsgV2FsZXMgbm8uIDczNjU1OTIu PC9mb250PqA8Zm9udCBjb2xvcj0iZ3JheSI+UmVnaXN0ZXJlZAogICAgICAgICAgICAgICAgb2Zm aWNlOiBVbml0IDEwIGlCSUMsIEJpcm1pbmdoYW0gU2NpZW5jZSBQYXJrLCBIb2x0IENvdXJ0IFNv dXRoLCBCaXJtaW5naGFtIEI3IDRFSi48L2ZvbnQ+PC9zcGFuPjwvZm9udD48L2ZvbnQ+ --===============1363997266==--