summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--metapost/context/base/mp-grap.mpiv125
-rw-r--r--scripts/context/lua/mtxlibs.lua1
-rw-r--r--scripts/context/lua/mtxrun.lua79
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua79
-rwxr-xr-xscripts/context/stubs/unix/mtxrun79
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4127 -> 4136 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/l-file.lua22
-rw-r--r--tex/context/base/l-gzip.lua54
-rw-r--r--tex/context/base/lang-ini.lua6
-rw-r--r--tex/context/base/luat-bas.mkiv1
-rw-r--r--tex/context/base/phys-dim.mkiv27
-rw-r--r--tex/context/base/s-lan-03.mkiv40
-rw-r--r--tex/context/base/s-lan-04.mkiv153
-rw-r--r--tex/context/base/s-lan-06.mkiv53
-rw-r--r--tex/context/base/s-languages-counters.lua52
-rw-r--r--tex/context/base/s-languages-counters.mkiv30
-rw-r--r--tex/context/base/s-languages-frequencies.lua33
-rw-r--r--tex/context/base/s-languages-frequencies.mkiv38
-rw-r--r--tex/context/base/s-languages-hyphenation.lua135
-rw-r--r--tex/context/base/s-languages-hyphenation.mkiv75
-rw-r--r--tex/context/base/scrp-ini.mkiv2
-rw-r--r--tex/context/base/status-files.pdfbin24732 -> 24742 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin211790 -> 211973 bytes
-rw-r--r--tex/context/base/status-mkiv.lua30
-rw-r--r--tex/context/base/util-tab.lua4
-rw-r--r--tex/context/patterns/word-th.lua482
-rw-r--r--tex/generic/context/luatex/luatex-basics-gen.lua6
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua18
30 files changed, 806 insertions, 822 deletions
diff --git a/metapost/context/base/mp-grap.mpiv b/metapost/context/base/mp-grap.mpiv
index 34b1bd1cc..5761931ff 100644
--- a/metapost/context/base/mp-grap.mpiv
+++ b/metapost/context/base/mp-grap.mpiv
@@ -67,21 +67,37 @@ fi
input string.mp
% Private version of a few marith macros, fixed for double math...
-newinternal mzero ; mzero := -53*mlog 2 ; % Anything at least this small is treated as zero
-newinternal mlogten ; mlogten := mlog(10) ; % Would this be better inline?
+newinternal mlogten ; mlogten := mlog(10) ;
+newinternal doubleinfinity ; doubleinfinity := 2**1024 ;
+% Note that we get arithmetic overflows if we set to -doubleinfinity below.
-% Safely convert a number to mlog form
+% Safely convert a number to mlog form, trapping zero.
vardef graph_mlog primary x =
- if unknown x : whatever
- elseif x=0 : mzero
- else : mlog(abs x)
- fi
+ if unknown x: whatever elseif x=0: -.5doubleinfinity else: mlog(abs x) fi
+enddef ;
+vardef graph_exp primary x =
+ if unknown x: whatever else: mexp(x) fi
+enddef ;
+
+% and add the following for utility/completeness
+% (replacing the definitions in mp-tool.mpiv).
+vardef logten primary x =
+ if unknown x: whatever elseif x=0: -.5doubleinfinity else: mlog(abs x)/mlog(10) fi
+enddef ;
+vardef ln primary x =
+ if unknown x: whatever elseif x=0: -.5doubleinfinity else: mlog(abs x)/256 fi
+enddef ;
+vardef exp primary x =
+ if unknown x: whatever else: (mexp 256)**x fi
+enddef ;
+vardef powten primary x =
+ if unknown x: whatever else: 10**x fi
enddef ;
% Convert x from mlog form into a pair whose xpart gives a mantissa and whose
% ypart gives a power of ten.
vardef graph_Meform(expr x) =
- if x<=mzero : origin
+ if x<=-doubleinfinity : origin
else :
save e, m ; e=floor(x/mlogten)-3; m := mexp(x-e*mlogten) ;
if abs m<1000 : m := m*10 ; e := e-1 ; elseif abs m>=10000 : m := m/10 ; e := e+1 ; fi
@@ -115,6 +131,7 @@ enddef ;
% New :
save graph_background ; color graph_background ; % if defined, fill the frame.
+save graph_close_file ; boolean graph_close_file ; graph_close_file = false ;
def begingraph(expr w, h) =
begingroup
@@ -169,7 +186,7 @@ enddef ;
newinternal log, linear ; % coordinate system codes
log :=1 ; linear :=2;
-% note that mp-tool.mpiv defines log as log10...
+% note that mp-tool.mpiv defines log as log10.
%%%%%%%%%%%%%%%%%%%%%% Coordinates : setcoords, setrange %%%%%%%%%%%%%%%%%%%%%%
@@ -435,10 +452,14 @@ enddef ;
% Execute c for each line of data read from file f, and stop at the first
% line with no data. Commands c can use line number i and tokens $1, $2, ...
def gdata(expr f)(suffix $)(text c) =
+ boolean flag ;
for i=1 upto infinity :
exitunless graph_read_line$(f) ;
c
endfor
+ if graph_close_file :
+ closefrom f ;
+ fi
enddef ;
@@ -1037,44 +1058,45 @@ endfor cycle ;
graph_shape[34] := graph_shape[24] rotated 45 ;
-% usage : gdraw p plot plotsymbol(1,red,1) ; % a filled red circle
-% usage : gdraw p plot plotsymbol(14,blue,0) ; % a blue square
-% usage : gdraw p plot plotsymbol(4,green,0.5) ; % a 50% filled green diamond
-
-def stars(expr c, f) = plotsymbol(25,c,f) enddef ; % a 5-point star
-def points(expr c, f) = plotsymbol( 0,c,f) enddef ;
-def circles(expr c, f) = plotsymbol( 1,c,f) enddef ;
-def crosses(expr c, f) = plotsymbol(34,c,f) enddef ;
-def squares(expr c, f) = plotsymbol(14,c,f) enddef ;
-def diamonds(expr c, f) = plotsymbol( 4,c,f) enddef ; % a turned square
-def uptriangles(expr c, f) = plotsymbol( 3,c,f) enddef ;
-def downtriangles(expr c, f) = plotsymbol(13,c,f) enddef ;
-def lefttriangles(expr c, f) = plotsymbol(33,c,f) enddef ;
-def righttriangles(expr c, f) = plotsymbol(23,c,f) enddef ;
-
-def plotsymbol(expr n,c,f) = % (number,color,color|number)
+% usage : gdraw p plot plotsymbol( 1,1) ; % a filled circle
+% usage : gdraw p plot plotsymbol(14,0) ; % a square
+% usage : gdraw p plot plotsymbol( 4,.5) ; % a 50% filled diamond
+
+def stars(expr f) = plotsymbol(25,f) enddef ; % a 5-point star
+def points(expr f) = plotsymbol( 0,f) enddef ;
+def circles(expr f) = plotsymbol( 1,f) enddef ;
+def crosses(expr f) = plotsymbol(34,f) enddef ;
+def squares(expr f) = plotsymbol(14,f) enddef ;
+def diamonds(expr f) = plotsymbol( 4,f) enddef ; % a turned square
+def uptriangles(expr f) = plotsymbol( 3,f) enddef ;
+def downtriangles(expr f) = plotsymbol(13,f) enddef ;
+def lefttriangles(expr f) = plotsymbol(33,f) enddef ;
+def righttriangles(expr f) = plotsymbol(23,f) enddef ;
+
+def plotsymbol(expr n, f) text t =
if known graph_shape[n] :
image(
- save b ; color b ; b :=
- if known graph_background : graph_background else : background fi ;
+ save bg, fg ; color bg, fg ;
+ bg := if known graph_background : graph_background else : background fi ;
+ save pic ; picture pic ; pic := image(draw origin _op_ t ;) ;
+ fg := if color colorpart pic : colorpart pic else : black fi ;
save p ; path p ; p = graph_shape[n] scaled graph_shapesize ;
- draw p withcolor b withpen currentpen scaled 2 ; % halo
+ draw p withcolor bg withpen currentpen scaled 2 ; % halo
if cycle p : fill p withcolor
if color f and known f :
f
- elseif numeric f and known f and color c and known c :
- f[b,c]
elseif numeric f and known f :
- f[b,black]
+ f[bg,fg]
else :
- b
+ bg
fi ;
fi
- draw p if color c and known c : withcolor c fi ;
+ draw p withpen currentpen _op_ t ;
)
else :
nullpicture
fi
+ t
enddef ;
% standard resistance color code: rainbow sequence (from /usr/share/X11/rgb.txt)
@@ -1090,6 +1112,16 @@ resistance_color7 = (148/255,0,211/255) ; resistance_name7 = "darkviolet"
resistance_color8 = (190/255,190/255,190/255) ; resistance_name8 = "gray" ;
resistance_color9 = (1,1,1) ; resistance_name9 = "white" ;
+%def rainbow(expr f) =
+% ((abs(5f) mod 5) + 2 - floor((abs(5f) mod 5) + 2))
+% [resistance_color[ floor((abs(5f) mod 5) + 2)],
+% resistance_color[ceiling((abs(5f) mod 5) + 2)]]
+%enddef ;
+def rainbow(expr f) =
+ hide(numeric n_ ; n_ = (abs(5f) mod 5) + 2 ;)
+ (n_-floor(n_))[resistance_color[floor n_],resistance_color[ceiling n_]]
+enddef ;
+
% The following extensions are not specific to graph and could be moved to metafun...
% sort a path. Efficient en memory use, not so efficient in sorting long paths...
@@ -1128,10 +1160,10 @@ def smoothpath (suffix $) =
fi
enddef ;
-% return a path of a function func(x) with abcissa running from f to t over n intervals
+% return a path of a function func(x) with abscissa running from f to t over n intervals
def makefunctionpath (expr f, t, n) (text func) =
- (for x=f step ((t-f)/n) until t :
+ (for x=f step ((t-f)/(abs n)) until t :
if x<>f : .. fi
(x, func)
endfor )
@@ -1141,24 +1173,23 @@ enddef ;
%
% example :
%
-% p1 := addnoisetopath(p0,(.1normaldeviate,.1normaldeviate)) ;
+% p1 := addtopath(p0,(.1normaldeviate,.1normaldeviate)) ;
-vardef addnoisetopath (suffix p) (text t) =
+vardef addtopath (suffix p) (text t) =
if path p :
- hide(pair p_i)
(for i=0 upto length p :
if i>0 : -- fi
- hide(p_i := point i of p ; x := xpart p_i; y := ypart p_i)z shifted t
+ hide(clearxy ; z = point i of p ;) z shifted t
endfor)
fi
enddef ;
-% return a new path of a function func(x) using the same abcissa as an existing path
+% return a new path of a function func(z) using the same abscissa as an existing path
-vardef functionpath (suffix p) (text t) =
+vardef functionpath (suffix p) (text func) =
(for i=0 upto length p :
if i>0 : .. fi
- (hide(x := xpart(point i of p))x,t)
+ (hide(x := xpart(point i of p))x,func) %(hide(clearxy ; z = point i of p)x,func)
endfor )
enddef ;
@@ -1169,9 +1200,9 @@ enddef ;
% path p[] ;
% numeric a[] ; a0 := 1 ; a1 := .1 ; a2 := .01 ; a3 := .001 ; a4 := 0.0001 ;
% p0 := makefunctionpath(0,5,10,polynomial_function(a,4,x)) ;
-% p1 := addnoisetopath(p0,(0,.001normaldeviate)) ;
+% p1 := addtopath(p0,(0,.001normaldeviate)) ;
% gdraw p0 ;
-% gdraw p1 plot plotsymbol(1,black,.5) ;
+% gdraw p1 plot plotsymbol(1,.5) ;
%
% numeric b[] ;
% polynomial_fit(p1, b, 4, 1) ;
@@ -1298,7 +1329,7 @@ vardef polynomial_fit (suffix p, $) (expr n) (text t) =
endfor
endfor
% normalize by the number of degrees of freedom
- fit_chi_squared := fit_chi_squared / (length(p) - n) ;
+ fit_chi_squared := fit_chi_squared / (length(p) - n) ; % length(p)+1-(n+1)
fi
fi
enddef ;
@@ -1342,11 +1373,11 @@ enddef ;
vardef power_law_function (suffix $) (expr x) = $1*(x**$0) enddef ;
-% since we take logs, this only works for positive abcissae and ordinates
+% since we take logs, this only works for positive abscissae and ordinates
vardef power_law_fit (suffix p, $) (text t) =
save a ; numeric a[] ;
- save q ; path q ; % fit to the logs of the abcissae and ordinates
+ save q ; path q ; % fit to the logs of the abscissae and ordinates
for i=0 upto length p :
if (xpart(point i of p)>0) and (ypart(point i of p)>0) :
augment.q(ln(xpart(point i of p)),ln(ypart(point i of p))) ;
diff --git a/scripts/context/lua/mtxlibs.lua b/scripts/context/lua/mtxlibs.lua
index a34ba139a..7f52ac8bd 100644
--- a/scripts/context/lua/mtxlibs.lua
+++ b/scripts/context/lua/mtxlibs.lua
@@ -78,6 +78,7 @@ local ownlibs = {
"l-set.lua",
"l-os.lua",
"l-file.lua", -- limited functionality when no lfs
+ -- "l-gzip.lua",
"l-md5.lua", -- not loaded when no md5 library
"l-url.lua",
"l-dir.lua", -- limited functionality when no lfs
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 422946ceb..c1d345ef2 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -2843,7 +2843,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-file"] = package.loaded["l-file"] or true
--- original size: 17375, stripped down to: 9486
+-- original size: 17682, stripped down to: 9745
if not modules then modules={} end modules ['l-file']={
version=1.001,
@@ -2918,11 +2918,21 @@ local pattern=(noslashes^0*slashes)^0*(noperiod^1*period)^1*C(noperiod^1)*-1
local function suffixonly(name)
return name and lpegmatch(pattern,name) or ""
end
+local pattern=(noslashes^0*slashes)^0*noperiod^1*((period*C(noperiod^1))^1)*-1+Cc("")
+local function suffixesonly(name)
+ if name then
+ return lpegmatch(pattern,name)
+ else
+ return ""
+ end
+end
file.pathpart=pathpart
file.basename=basename
file.nameonly=nameonly
file.suffixonly=suffixonly
file.suffix=suffixonly
+file.suffixesonly=suffixesonly
+file.suffixes=suffixesonly
file.dirname=pathpart
file.extname=suffixonly
local drive=C(R("az","AZ"))*colon
@@ -3219,6 +3229,60 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-gzip"] = package.loaded["l-gzip"] or true
+
+-- original size: 1211, stripped down to: 1002
+
+if not modules then modules={} end modules ['l-gzip']={
+ version=1.001,
+ author="Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright="PRAGMA ADE / ConTeXt Development Team",
+ license="see context related readme files"
+}
+if not gzip then
+ return
+end
+local suffix,suffixes=file.suffix,file.suffixes
+function gzip.load(filename)
+ local f=io.open(filename,"rb")
+ if not f then
+ elseif suffix(filename)=="gz" then
+ f:close()
+ local g=gzip.open(filename,"rb")
+ if g then
+ local str=g:read("*all")
+ g:close()
+ return str
+ end
+ else
+ local str=f:read("*all")
+ f:close()
+ return str
+ end
+end
+function gzip.save(filename,data)
+ if suffix(filename)~="gz" then
+ filename=filename..".gz"
+ end
+ local f=io.open(filename,"wb")
+ if f then
+ local s=zlib.compress(data or "",9,nil,15+16)
+ f:write(s)
+ f:close()
+ return #s
+ end
+end
+function gzip.suffix(filename)
+ local suffix,extra=suffixes(filename)
+ local gzipped=extra=="gz"
+ return suffix,gzipped
+end
+
+
+end -- of closure
+
+do -- create closure to overcome 200 locals limit
+
package.loaded["l-md5"] = package.loaded["l-md5"] or true
-- original size: 3760, stripped down to: 2088
@@ -4967,7 +5031,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-tab"] = package.loaded["util-tab"] or true
--- original size: 14491, stripped down to: 8512
+-- original size: 14510, stripped down to: 8531
if not modules then modules={} end modules ['util-tab']={
version=1.001,
@@ -5245,9 +5309,9 @@ function table.deserialize(str)
end
return code
end
-function table.load(filename)
+function table.load(filename,loader)
if filename then
- local t=io.loaddata(filename)
+ local t=(loader or io.loaddata)(filename)
if t and t~="" then
t=load(t)
if type(t)=="function" then
@@ -16037,10 +16101,10 @@ end
end -- of closure
--- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
+-- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 668507
--- stripped bytes : 244711
+-- original bytes : 670044
+-- stripped bytes : 244968
-- end library merge
@@ -16074,6 +16138,7 @@ local ownlibs = { -- order can be made better
'l-set.lua',
'l-os.lua',
'l-file.lua',
+ 'l-gzip.lua',
'l-md5.lua',
'l-url.lua',
'l-dir.lua',
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 422946ceb..c1d345ef2 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -2843,7 +2843,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-file"] = package.loaded["l-file"] or true
--- original size: 17375, stripped down to: 9486
+-- original size: 17682, stripped down to: 9745
if not modules then modules={} end modules ['l-file']={
version=1.001,
@@ -2918,11 +2918,21 @@ local pattern=(noslashes^0*slashes)^0*(noperiod^1*period)^1*C(noperiod^1)*-1
local function suffixonly(name)
return name and lpegmatch(pattern,name) or ""
end
+local pattern=(noslashes^0*slashes)^0*noperiod^1*((period*C(noperiod^1))^1)*-1+Cc("")
+local function suffixesonly(name)
+ if name then
+ return lpegmatch(pattern,name)
+ else
+ return ""
+ end
+end
file.pathpart=pathpart
file.basename=basename
file.nameonly=nameonly
file.suffixonly=suffixonly
file.suffix=suffixonly
+file.suffixesonly=suffixesonly
+file.suffixes=suffixesonly
file.dirname=pathpart
file.extname=suffixonly
local drive=C(R("az","AZ"))*colon
@@ -3219,6 +3229,60 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-gzip"] = package.loaded["l-gzip"] or true
+
+-- original size: 1211, stripped down to: 1002
+
+if not modules then modules={} end modules ['l-gzip']={
+ version=1.001,
+ author="Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright="PRAGMA ADE / ConTeXt Development Team",
+ license="see context related readme files"
+}
+if not gzip then
+ return
+end
+local suffix,suffixes=file.suffix,file.suffixes
+function gzip.load(filename)
+ local f=io.open(filename,"rb")
+ if not f then
+ elseif suffix(filename)=="gz" then
+ f:close()
+ local g=gzip.open(filename,"rb")
+ if g then
+ local str=g:read("*all")
+ g:close()
+ return str
+ end
+ else
+ local str=f:read("*all")
+ f:close()
+ return str
+ end
+end
+function gzip.save(filename,data)
+ if suffix(filename)~="gz" then
+ filename=filename..".gz"
+ end
+ local f=io.open(filename,"wb")
+ if f then
+ local s=zlib.compress(data or "",9,nil,15+16)
+ f:write(s)
+ f:close()
+ return #s
+ end
+end
+function gzip.suffix(filename)
+ local suffix,extra=suffixes(filename)
+ local gzipped=extra=="gz"
+ return suffix,gzipped
+end
+
+
+end -- of closure
+
+do -- create closure to overcome 200 locals limit
+
package.loaded["l-md5"] = package.loaded["l-md5"] or true
-- original size: 3760, stripped down to: 2088
@@ -4967,7 +5031,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-tab"] = package.loaded["util-tab"] or true
--- original size: 14491, stripped down to: 8512
+-- original size: 14510, stripped down to: 8531
if not modules then modules={} end modules ['util-tab']={
version=1.001,
@@ -5245,9 +5309,9 @@ function table.deserialize(str)
end
return code
end
-function table.load(filename)
+function table.load(filename,loader)
if filename then
- local t=io.loaddata(filename)
+ local t=(loader or io.loaddata)(filename)
if t and t~="" then
t=load(t)
if type(t)=="function" then
@@ -16037,10 +16101,10 @@ end
end -- of closure
--- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
+-- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 668507
--- stripped bytes : 244711
+-- original bytes : 670044
+-- stripped bytes : 244968
-- end library merge
@@ -16074,6 +16138,7 @@ local ownlibs = { -- order can be made better
'l-set.lua',
'l-os.lua',
'l-file.lua',
+ 'l-gzip.lua',
'l-md5.lua',
'l-url.lua',
'l-dir.lua',
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 422946ceb..c1d345ef2 100755
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -2843,7 +2843,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-file"] = package.loaded["l-file"] or true
--- original size: 17375, stripped down to: 9486
+-- original size: 17682, stripped down to: 9745
if not modules then modules={} end modules ['l-file']={
version=1.001,
@@ -2918,11 +2918,21 @@ local pattern=(noslashes^0*slashes)^0*(noperiod^1*period)^1*C(noperiod^1)*-1
local function suffixonly(name)
return name and lpegmatch(pattern,name) or ""
end
+local pattern=(noslashes^0*slashes)^0*noperiod^1*((period*C(noperiod^1))^1)*-1+Cc("")
+local function suffixesonly(name)
+ if name then
+ return lpegmatch(pattern,name)
+ else
+ return ""
+ end
+end
file.pathpart=pathpart
file.basename=basename
file.nameonly=nameonly
file.suffixonly=suffixonly
file.suffix=suffixonly
+file.suffixesonly=suffixesonly
+file.suffixes=suffixesonly
file.dirname=pathpart
file.extname=suffixonly
local drive=C(R("az","AZ"))*colon
@@ -3219,6 +3229,60 @@ end -- of closure
do -- create closure to overcome 200 locals limit
+package.loaded["l-gzip"] = package.loaded["l-gzip"] or true
+
+-- original size: 1211, stripped down to: 1002
+
+if not modules then modules={} end modules ['l-gzip']={
+ version=1.001,
+ author="Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright="PRAGMA ADE / ConTeXt Development Team",
+ license="see context related readme files"
+}
+if not gzip then
+ return
+end
+local suffix,suffixes=file.suffix,file.suffixes
+function gzip.load(filename)
+ local f=io.open(filename,"rb")
+ if not f then
+ elseif suffix(filename)=="gz" then
+ f:close()
+ local g=gzip.open(filename,"rb")
+ if g then
+ local str=g:read("*all")
+ g:close()
+ return str
+ end
+ else
+ local str=f:read("*all")
+ f:close()
+ return str
+ end
+end
+function gzip.save(filename,data)
+ if suffix(filename)~="gz" then
+ filename=filename..".gz"
+ end
+ local f=io.open(filename,"wb")
+ if f then
+ local s=zlib.compress(data or "",9,nil,15+16)
+ f:write(s)
+ f:close()
+ return #s
+ end
+end
+function gzip.suffix(filename)
+ local suffix,extra=suffixes(filename)
+ local gzipped=extra=="gz"
+ return suffix,gzipped
+end
+
+
+end -- of closure
+
+do -- create closure to overcome 200 locals limit
+
package.loaded["l-md5"] = package.loaded["l-md5"] or true
-- original size: 3760, stripped down to: 2088
@@ -4967,7 +5031,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-tab"] = package.loaded["util-tab"] or true
--- original size: 14491, stripped down to: 8512
+-- original size: 14510, stripped down to: 8531
if not modules then modules={} end modules ['util-tab']={
version=1.001,
@@ -5245,9 +5309,9 @@ function table.deserialize(str)
end
return code
end
-function table.load(filename)
+function table.load(filename,loader)
if filename then
- local t=io.loaddata(filename)
+ local t=(loader or io.loaddata)(filename)
if t and t~="" then
t=load(t)
if type(t)=="function" then
@@ -16037,10 +16101,10 @@ end
end -- of closure
--- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
+-- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 668507
--- stripped bytes : 244711
+-- original bytes : 670044
+-- stripped bytes : 244968
-- end library merge
@@ -16074,6 +16138,7 @@ local ownlibs = { -- order can be made better
'l-set.lua',
'l-os.lua',
'l-file.lua',
+ 'l-gzip.lua',
'l-md5.lua',
'l-url.lua',
'l-dir.lua',
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index ecf92987c..ca982e6c5 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2013.05.20 02:00}
+\newcontextversion{2013.05.21 16:14}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 87a6493a9..37755f842 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 1ec2a4366..34f457df9 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.05.20 02:00}
+\edef\contextversion{2013.05.21 16:14}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/l-file.lua b/tex/context/base/l-file.lua
index f25490749..deaaca735 100644
--- a/tex/context/base/l-file.lua
+++ b/tex/context/base/l-file.lua
@@ -115,11 +115,23 @@ local function suffixonly(name)
return name and lpegmatch(pattern,name) or ""
end
-file.pathpart = pathpart
-file.basename = basename
-file.nameonly = nameonly
-file.suffixonly = suffixonly
-file.suffix = suffixonly
+local pattern = (noslashes^0 * slashes)^0 * noperiod^1 * ((period * C(noperiod^1))^1) * -1 + Cc("")
+
+local function suffixesonly(name)
+ if name then
+ return lpegmatch(pattern,name)
+ else
+ return ""
+ end
+end
+
+file.pathpart = pathpart
+file.basename = basename
+file.nameonly = nameonly
+file.suffixonly = suffixonly
+file.suffix = suffixonly
+file.suffixesonly = suffixesonly
+file.suffixes = suffixesonly
file.dirname = pathpart -- obsolete
file.extname = suffixonly -- obsolete
diff --git a/tex/context/base/l-gzip.lua b/tex/context/base/l-gzip.lua
new file mode 100644
index 000000000..5100e4722
--- /dev/null
+++ b/tex/context/base/l-gzip.lua
@@ -0,0 +1,54 @@
+if not modules then modules = { } end modules ['l-gzip'] = {
+ version = 1.001,
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if not gzip then
+
+ -- no fallback yet
+
+ return
+
+end
+
+local suffix, suffixes = file.suffix, file.suffixes
+
+function gzip.load(filename)
+ local f = io.open(filename,"rb")
+ if not f then
+ -- invalid file
+ elseif suffix(filename) == "gz" then
+ f:close()
+ local g = gzip.open(filename,"rb")
+ if g then
+ local str = g:read("*all")
+ g:close()
+ return str
+ end
+ else
+ local str = f:read("*all")
+ f:close()
+ return str
+ end
+end
+
+function gzip.save(filename,data)
+ if suffix(filename) ~= "gz" then
+ filename = filename .. ".gz"
+ end
+ local f = io.open(filename,"wb")
+ if f then
+ local s = zlib.compress(data or "",9,nil,15+16)
+ f:write(s)
+ f:close()
+ return #s
+ end
+end
+
+function gzip.suffix(filename)
+ local suffix, extra = suffixes(filename)
+ local gzipped = extra == "gz"
+ return suffix, gzipped
+end
diff --git a/tex/context/base/lang-ini.lua b/tex/context/base/lang-ini.lua
index b79bd0661..642213253 100644
--- a/tex/context/base/lang-ini.lua
+++ b/tex/context/base/lang-ini.lua
@@ -130,11 +130,15 @@ local function loaddefinitions(tag,specification)
dataused[definition] = definition
local filename = "lang-" .. definition .. ".lua"
local fullname = resolvers.findfile(filename) or ""
+ if fullname == "" then
+ fullname = resolvers.findfile(filename .. ".gz") or ""
+ end
if fullname ~= "" then
if trace_patterns then
report_initialization("loading definition %a for language %a from %a",definition,tag,fullname)
end
- local defs = dofile(fullname) -- use regular loader instead
+ local suffix, gzipped = gzip.suffix(fullname)
+ local defs = table.load(fullname,gzipped and gzip.load)
if defs then -- todo: version test
ok, nofloaded = true, nofloaded + 1
-- instance:patterns (defs.patterns and defs.patterns .data or "")
diff --git a/tex/context/base/luat-bas.mkiv b/tex/context/base/luat-bas.mkiv
index ddf901424..a38912716 100644
--- a/tex/context/base/luat-bas.mkiv
+++ b/tex/context/base/luat-bas.mkiv
@@ -26,6 +26,7 @@
\registerctxluafile{l-io} {1.001}
\registerctxluafile{l-os} {1.001}
\registerctxluafile{l-file} {1.001}
+\registerctxluafile{l-gzip} {1.001}
\registerctxluafile{l-md5} {1.001}
\registerctxluafile{l-dir} {1.001}
\registerctxluafile{l-unicode} {1.001}
diff --git a/tex/context/base/phys-dim.mkiv b/tex/context/base/phys-dim.mkiv
index 73cc2ea25..fe0f3f3b9 100644
--- a/tex/context/base/phys-dim.mkiv
+++ b/tex/context/base/phys-dim.mkiv
@@ -518,15 +518,24 @@
″\else\phys_units_text_doubleprime\fi\else\phys_units_text_doubleprime
\fi}
-\unexpanded\def\checkedtextcelsius
- {\iffontchar\font"2103\relax
- ℃\else\phys_units_text_celsius
- \fi}
-
-\unexpanded\def\checkedtextfahrenheit
- {\iffontchar\font"2109\relax
- ℉\else\phys_units_text_fahrenheit
- \fi}
+% \unexpanded\def\checkedtextcelsius
+% {\ifmmode
+% \phys_units_text_celsius
+% \else\iffontchar\font"2103\relax
+% ℃\else\phys_units_text_celsius
+% \fi\fi}
+%
+% \unexpanded\def\checkedtextfahrenheit
+% {\ifmmode
+% \phys_units_text_fahrenheit
+% \else\iffontchar\font"2109\relax
+% ℉\else\phys_units_text_fahrenheit
+% \fi\fi}
+%
+% % but, as users don't like this ...
+
+\let\checkedtextcelsius \phys_units_text_celsius
+\let\checkedtextfahrenheit\phys_units_text_fahrenheit
\setelementnature[unit] [mixed]
\setelementnature[quantity][mixed]
diff --git a/tex/context/base/s-lan-03.mkiv b/tex/context/base/s-lan-03.mkiv
deleted file mode 100644
index 6b46a49b1..000000000
--- a/tex/context/base/s-lan-03.mkiv
+++ /dev/null
@@ -1,40 +0,0 @@
-%D \module
-%D [ file=s-lan-03,
-%D version=2010.10.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Language Environment 3,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startluacode
-languages.words.tracers = languages.words.tracers or { }
-
-function languages.words.tracers.showwords(filename)
- filename = filename or file.addsuffix(tex.jobname,"words")
- if lfs.isfile(filename) then
- local w = dofile(filename)
- if w then
- -- table.print(w)
- for cname, category in table.sortedpairs(w.categories) do
- for lname, language in table.sortedpairs(category.languages) do
- context.bold(string.format("category: %s, language: %s, total: %s, unique: %s:",
- cname, lname, language.total or 0, language.unique or 0)
- )
- for word, n in table.sortedpairs(language.list) do
- context(" %s (%s)",word,n)
- end
- context.par()
- end
- end
- end
- end
-end
-\stopluacode
-
-\ctxlua{languages.words.tracers.showwords("words-003.words")}
-
diff --git a/tex/context/base/s-lan-04.mkiv b/tex/context/base/s-lan-04.mkiv
deleted file mode 100644
index c04be9466..000000000
--- a/tex/context/base/s-lan-04.mkiv
+++ /dev/null
@@ -1,153 +0,0 @@
-%D \module
-%D [ file=s-lan-04,
-%D version=2011.05.01,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Language Environment 4,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D For Mojca.
-
-\startluacode
- local a_colormodel = attributes.private('colormodel')
-
- local nodecodes = nodes.nodecodes
- local nodepool = nodes.pool
- local disc = nodecodes.disc
- local glyph = nodecodes.glyph
- local quads = fonts.hashes.quads
- local newkern = nodepool.kern
- local newrule = nodepool.rule
- local newglue = nodepool.glue
-
- local get_attribute = node.has_attribute
-
- local tracers = nodes.tracers
- local colortracers = tracers and tracers.colors
- local setnodecolor = colortracers.set
-
- local function identify(head,marked)
- local current, prev = head, nil
- while current do
- local id = current.id
- local next = current.next
- if id == disc then
- if prev and next.id == glyph then -- catch other usage of disc
- marked[#marked+1] = prev
- end
- elseif id == glyph then
- prev = current
- end
- current = next
- end
- end
-
- local function strip(head,marked)
- for i=1,#marked do
- local prev = marked[i]
- nodes.remove(head,prev.next,true)
- end
- end
-
- local function mark(head,marked,what,how)
- for i=1,#marked do
- local prev = marked[i]
- local font = prev.font
- local quad = quads[font]
- head, prev = node.insert_after(head,prev,newkern(-quad/40))
- if what then
- local rule = newrule(quad/20,.75*quad,0)
- head, prev = node.insert_after(head,prev,rule)
- setnodecolor(rule,how,get_attribute(prev,a_colormodel))
- else
- local rule = newrule(quad/20,0,.5*quad)
- head, prev = node.insert_after(head,prev,rule)
- setnodecolor(rule,how,get_attribute(prev,a_colormodel))
- end
- head, prev = node.insert_after(head,prev,newkern(-quad/40))
- head, prev = node.insert_after(head,prev,newglue(0))
- end
- end
-
- local language_one, language_two, tag_one, tag_two
-
- function nodes.showhyphens(head)
- local marked_1, marked_2 = { }, { }
- if language_one then
- for n in node.traverse_id(glyph,head) do
- n.lang = language_one
- end
- lang.hyphenate(head,node.slide(head))
- identify(head,marked_1)
- strip(head,marked_1)
- end
- if language_two then
- for n in node.traverse_id(glyph,head) do
- n.lang = language_two
- end
- lang.hyphenate(head,node.slide(head))
- identify(head,marked_2)
- strip(head,marked_2)
- end
- if tag_one then
- mark(head,marked_1,true,"hyphenation:"..tag_one)
- end
- if tag_two then
- mark(head,marked_2,false,"hyphenation:"..tag_two)
- end
- return head, true
- end
-
- function languages.startcomparepatterns(list)
- local list = utilities.parsers.settings_to_array(list)
- tag_one = list[1]
- tag_two = list[2]
- language_one = tag_one and languages.getnumber(tag_one)
- language_two = tag_two and languages.getnumber(tag_two)
- -- nodes.tasks.appendaction("processors","words","nodes.showhyphens")
- nodes.tasks.appendaction("processors","before","nodes.showhyphens")
- nodes.tasks.enableaction("processors","nodes.showhyphens")
- end
-
- function languages.stopcomparepatterns()
- nodes.tasks.disableaction("processors","nodes.showhyphens")
- end
-
-\stopluacode
-
-\unprotect
-
-\def\startcomparepatterns[#1]%
- {\bgroup
- \language\zerocount
- \setupalign[\v!nothyphenated]%
- \ctxlua{languages.startcomparepatterns("#1")}}
-
-\def\stopcomparepatterns
- {\ctxlua{languages.stopcomparepatterns()}%
- \egroup}
-
-\protect
-
-\definecolor[hyphenation:en] [r=.8]
-\definecolor[hyphenation:de] [g=.8]
-\definecolor[hyphenation:nl] [b=.8]
-
-\continueifinputfile{s-lan-04.mkiv}
-
-\starttext
-
- \startcomparepatterns[en,de]
- \input tufte\par
- \stopcomparepatterns
-
- \startcomparepatterns[de,nl]
- \input tufte\par
- \stopcomparepatterns
-
-\stoptext
diff --git a/tex/context/base/s-lan-06.mkiv b/tex/context/base/s-lan-06.mkiv
deleted file mode 100644
index 43d59a2d1..000000000
--- a/tex/context/base/s-lan-06.mkiv
+++ /dev/null
@@ -1,53 +0,0 @@
-%D \module
-%D [ file=s-lan-06,
-%D version=2013.03.22,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Language Environment 6,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startluacode
-
-languages.tracers = languages.tracers or { }
-
-function languages.tracers.showfrequencies(language)
- local t = languages.frequencies.getdata(language or "en")
- context.starttabulate { "|lT|cw(2em)|r|" }
- context.NC()
- context.formatted.rlap("%s: %p",t.language,languages.frequencies.averagecharwidth(t.language))
- context.NC()
- context.NC()
- context.NR()
- context.HL()
- for k, v in table.sortedhash(t.frequencies) do
- context.NC()
- context("%U",k)
- context.NC()
- context("%c",k)
- context.NC()
- context("%0.3f",v)
- context.NC()
- context.NR()
- end
- context.stoptabulate()
-end
-
-\stopluacode
-
-\unexpanded\def\ShowLanguageFrequencies#1%
- {\ctxlua{languages.tracers.showfrequencies("#1")}}
-
-\continueifinputfile{s-lan-06.mkiv}
-
-\starttext
-
- \hsize65\averagecharwidth \input ward \par
-
- \ShowLanguageFrequencies\currentmainlanguage
-
-\stoptext
diff --git a/tex/context/base/s-languages-counters.lua b/tex/context/base/s-languages-counters.lua
new file mode 100644
index 000000000..436e64a64
--- /dev/null
+++ b/tex/context/base/s-languages-counters.lua
@@ -0,0 +1,52 @@
+if not modules then modules = { } end modules ['s-languages-counters'] = {
+ version = 1.001,
+ comment = "companion to s-languages-counters.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+moduledata.languages = moduledata.languages or { }
+moduledata.languages.counters = moduledata.languages.counters or { }
+
+local data = converters.verbose.data
+
+function moduledata.languages.counters.showverbose(specification)
+ specification = interfaces.checkedspecification(specification)
+ local list = utilities.parsers.settings_to_array(specification.language or "")
+ if #list == 0then
+ return
+ end
+ local used = { }
+ local words = { }
+ for i=1,#list do
+ local ai = list[i]
+ local di = data[ai]
+ if di and di.words then
+ used[#used+1] = ai
+ table.merge(words,di.words)
+ end
+ end
+ context.starttabulate { string.rep("|l",#used) .. "|r|" }
+ context.HL()
+ context.NC()
+ for i=1,#used do
+ context.bold(used[i])
+ context.NC()
+ end
+ context.bold("number")
+ context.NC()
+ context.NR()
+ context.HL()
+ for k, v in table.sortedhash(words) do
+ context.NC()
+ for i=1,#used do
+ context(data[used[i]].words[k] or "")
+ context.NC()
+ end
+ context(k)
+ context.NC()
+ context.NR()
+ end
+ context.stoptabulate()
+end
diff --git a/tex/context/base/s-languages-counters.mkiv b/tex/context/base/s-languages-counters.mkiv
new file mode 100644
index 000000000..fa938d65a
--- /dev/null
+++ b/tex/context/base/s-languages-counters.mkiv
@@ -0,0 +1,30 @@
+%D \module
+%D [ file=s-languages-counters, % s-lan-05,
+%D version=2011.05.01, % older
+%D title=\CONTEXT\ Style File,
+%D subtitle=Language Counters,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmodule[languages-counters]
+
+\registerctxluafile{s-languages-counters}{}
+
+\installmodulecommandluasingle \showverbosecounters {moduledata.languages.counters.showverbose}
+
+\stopmodule
+
+\continueifinputfile{s-languages-counters.mkiv}
+
+\usemodule[art-01]
+
+\starttext
+
+ \showverbosecounters[language={en,es}]
+
+\stoptext
diff --git a/tex/context/base/s-languages-frequencies.lua b/tex/context/base/s-languages-frequencies.lua
new file mode 100644
index 000000000..16213a412
--- /dev/null
+++ b/tex/context/base/s-languages-frequencies.lua
@@ -0,0 +1,33 @@
+if not modules then modules = { } end modules ['s-languages-frequencies'] = {
+ version = 1.001,
+ comment = "companion to s-languages-frequencies.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+moduledata.languages = moduledata.languages or { }
+moduledata.languages.frequencies = moduledata.languages.frequencies or { }
+
+function moduledata.languages.frequencies.showlist(specification)
+ specification = interfaces.checkedspecification(specification)
+ local t = languages.frequencies.getdata(specification.language or languages.current())
+ context.starttabulate { "|lT|cw(2em)|r|" }
+ context.NC()
+ context.formatted.rlap("%s: %p",t.language,languages.frequencies.averagecharwidth(t.language))
+ context.NC()
+ context.NC()
+ context.NR()
+ context.HL()
+ for k, v in table.sortedhash(t.frequencies) do
+ context.NC()
+ context("%U",k)
+ context.NC()
+ context("%c",k)
+ context.NC()
+ context("%0.3f",v)
+ context.NC()
+ context.NR()
+ end
+ context.stoptabulate()
+end
diff --git a/tex/context/base/s-languages-frequencies.mkiv b/tex/context/base/s-languages-frequencies.mkiv
new file mode 100644
index 000000000..01a1f5682
--- /dev/null
+++ b/tex/context/base/s-languages-frequencies.mkiv
@@ -0,0 +1,38 @@
+%D \module
+%D [ file=s-languages-frequencies, % s-lan-06,
+%D version=2013.03.22,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Language Frequencies,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmodule[languages-frequencies]
+
+\registerctxluafile{s-languages-frequencies}{}
+
+\installmodulecommandluasingle \showfrequencies {moduledata.languages.frequencies.showlist}
+
+\stopmodule
+
+\continueifinputfile{s-languages-frequencies.mkiv}
+
+\usemodule[art-01]
+
+\starttext
+
+ \hsize65\averagecharwidth \the\hsize: \input ward \par
+
+ \showfrequencies \page
+
+ \mainlanguage[de]
+
+ \hsize65\averagecharwidth \the\hsize: \input ward \par
+
+ \showfrequencies \page
+
+\stoptext
diff --git a/tex/context/base/s-languages-hyphenation.lua b/tex/context/base/s-languages-hyphenation.lua
new file mode 100644
index 000000000..660392f80
--- /dev/null
+++ b/tex/context/base/s-languages-hyphenation.lua
@@ -0,0 +1,135 @@
+if not modules then modules = { } end modules ['s-languages-hyphenation'] = {
+ version = 1.001,
+ comment = "companion to s-languages-hyphenation.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+moduledata.languages = moduledata.languages or { }
+moduledata.languages.hyphenation = moduledata.languages.hyphenation or { }
+
+local a_colormodel = attributes.private('colormodel')
+
+local nodecodes = nodes.nodecodes
+local nodepool = nodes.pool
+local disc = nodecodes.disc
+local glyph = nodecodes.glyph
+local emwidths = fonts.hashes.emwidths
+local exheights = fonts.hashes.exheights
+local newkern = nodepool.kern
+local newrule = nodepool.rule
+local newglue = nodepool.glue
+
+local insert_node_after = node.insert_after
+local traverse_by_id = node.traverse_id
+local hyphenate = lang.hyphenate
+local find_tail = node.slide
+local remove_node = nodes.remove
+
+local tracers = nodes.tracers
+local colortracers = tracers and tracers.colors
+local setnodecolor = colortracers.set
+
+local function identify(head,marked)
+ local current, prev = head, nil
+ while current do
+ local id = current.id
+ local next = current.next
+ if id == disc then
+ if prev and next.id == glyph then -- catch other usage of disc
+ marked[#marked+1] = prev
+ end
+ elseif id == glyph then
+ prev = current
+ end
+ current = next
+ end
+end
+
+local function strip(head,marked)
+ for i=1,#marked do
+ local prev = marked[i]
+ remove_node(head,prev.next,true)
+ end
+end
+
+local function mark(head,marked,w,h,d,how)
+ for i=1,#marked do
+ local prev = marked[i]
+ local font = prev.font
+ local em = emwidths[font]
+ local ex = exheights[font]
+ local width = w*em
+ local rule = newrule(width,h*ex,d*ex)
+ head, prev = insert_node_after(head,prev,newkern(-width/2))
+ head, prev = insert_node_after(head,prev,rule)
+ head, prev = insert_node_after(head,prev,newkern(-width/2))
+ head, prev = insert_node_after(head,prev,newglue(0))
+ setnodecolor(rule,how,prev[a_colormodel])
+ end
+end
+
+local langs, tags, noflanguages = { }, { }, 0
+
+local colorbytag = false
+
+function moduledata.languages.hyphenation.showhyphens(head)
+ if noflanguages > 0 then
+ local marked = { }
+ for i=1,noflanguages do
+ local m = { }
+ local l = langs[i]
+ marked[i] = m
+ for n in traverse_by_id(glyph,head) do
+ n.lang = l
+ end
+ hyphenate(head,find_tail(head))
+ identify(head,m)
+ strip(head,m)
+ end
+ for i=noflanguages,1,-1 do
+ local l = noflanguages - i + 1
+ mark(head,marked[i],1/16,l/2,l/4,"hyphenation:"..(colorbytag and tags[i] or i))
+ end
+ return head, true
+ else
+ return head, false
+ end
+end
+
+local savedlanguage
+
+function moduledata.languages.hyphenation.startcomparepatterns(list)
+ if list and list ~= "" then
+ tags = utilities.parsers.settings_to_array(list)
+ end
+ savedlanguage = tex.language
+ tex.language = 0
+ noflanguages = #tags
+ for i=1,noflanguages do
+ langs[i] = tags[i] and languages.getnumber(tags[i])
+ end
+ nodes.tasks.enableaction("processors","moduledata.languages.hyphenation.showhyphens")
+end
+
+function moduledata.languages.hyphenation.stopcomparepatterns()
+ noflanguages = 0
+ tex.language = savedlanguage or tex.language
+ nodes.tasks.disableaction("processors","moduledata.languages.hyphenation.showhyphens")
+end
+
+function moduledata.languages.hyphenation.showcomparelegend(list)
+ if list and list ~= "" then
+ tags = utilities.parsers.settings_to_array(list)
+ end
+ for i=1,#tags do
+ if i > 1 then
+ context.enspace()
+ end
+ context.color( { "hyphenation:"..(colorbytag and tags[i] or i) }, tags[i])
+ end
+end
+
+nodes.tasks.appendaction("processors","before","moduledata.languages.hyphenation.showhyphens")
+nodes.tasks.disableaction("processors","moduledata.languages.hyphenation.showhyphens")
diff --git a/tex/context/base/s-languages-hyphenation.mkiv b/tex/context/base/s-languages-hyphenation.mkiv
new file mode 100644
index 000000000..769c3d059
--- /dev/null
+++ b/tex/context/base/s-languages-hyphenation.mkiv
@@ -0,0 +1,75 @@
+%D \module
+%D [ file=s-languages-hyphenation, % s-lan-04,
+%D version=2011.05.01,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Language Hyphenation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D For Mojca.
+
+\startmodule[languages-hyphenation]
+
+\registerctxluafile{s-languages-hyphenation}{}
+
+\unprotect
+
+\unexpanded\def\startcomparepatterns
+ {\dosingleempty\module_languages_hyphenation_start}
+
+\unexpanded\def\module_languages_hyphenation_start[#1]%
+ {\begingroup
+ \par
+ % \language\zerocount
+ \setupalign[\v!nothyphenated]%
+ \ctxlua{moduledata.languages.hyphenation.startcomparepatterns("#1")}}
+
+\unexpanded\def\stopcomparepatterns
+ {\par
+ \ctxlua{moduledata.languages.hyphenation.stopcomparepatterns()}%
+ \endgroup}
+
+\installmodulecommandluasingle \showcomparepatternslegend {moduledata.languages.hyphenation.showcomparelegend}
+
+\protect
+
+\definecolor[hyphenation:1] [r=.8]
+\definecolor[hyphenation:2] [g=.8]
+\definecolor[hyphenation:3] [b=.8]
+\definecolor[hyphenation:4] [r=.4,g=.4]
+
+\definecolor[hyphenation:en] [hyphenation:1]
+\definecolor[hyphenation:de] [hyphenation:2]
+\definecolor[hyphenation:nl] [hyphenation:3]
+\definecolor[hyphenation:fr] [hyphenation:4]
+
+\stopmodule
+
+\continueifinputfile{s-languages-hyphenation.mkiv}
+
+\usemodule[art-01]
+
+\starttext
+
+ \startsubject{Normal text}
+ \input tufte
+ \stopsubject
+
+ \startsubject{Compare hyphenation points of \showcomparepatternslegend[en,de]}
+ \startcomparepatterns
+ \input tufte \quad (\showcomparepatternslegend)
+ \stopcomparepatterns
+ \stopsubject
+
+ \startsubject{Compare hyphenation points}
+ \startcomparepatterns[de,nl,en,fr]
+ \input tufte \quad (\showcomparepatternslegend)
+ \stopcomparepatterns
+ \stopsubject
+
+\stoptext
diff --git a/tex/context/base/scrp-ini.mkiv b/tex/context/base/scrp-ini.mkiv
index 289409933..fe62295bb 100644
--- a/tex/context/base/scrp-ini.mkiv
+++ b/tex/context/base/scrp-ini.mkiv
@@ -75,6 +75,8 @@
\definescript [latin] [\c!method=] % resets the attribute (also currentscript)
+\definescript [test] [\c!method=test]
+
% a new trick (at some point we will predefine more scripts and consider a link with the above)
\appendtoks
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index af025dafd..52886b14d 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 515324e4b..165f0a0cc 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/status-mkiv.lua b/tex/context/base/status-mkiv.lua
index a112d644b..efd84f854 100644
--- a/tex/context/base/status-mkiv.lua
+++ b/tex/context/base/status-mkiv.lua
@@ -4302,6 +4302,21 @@ return {
},
{
category = "lua",
+ filename = "s-languages-counters",
+ status = "okay",
+ },
+ {
+ category = "lua",
+ filename = "s-languages-frequencies",
+ status = "okay",
+ },
+ {
+ category = "lua",
+ filename = "s-languages-hyphenation",
+ status = "okay",
+ },
+ {
+ category = "lua",
filename = "s-languages-sorting",
status = "okay",
},
@@ -5400,6 +5415,21 @@ return {
status = "todo",
},
{
+ category = "lua",
+ filename = "s-languages-counters",
+ status = "okay",
+ },
+ {
+ category = "lua",
+ filename = "s-languages-frequencies",
+ status = "okay",
+ },
+ {
+ category = "lua",
+ filename = "s-languages-hyphenation",
+ status = "okay",
+ },
+ {
category = "mkiv",
filename = "s-languages-sorting",
status = "okay",
diff --git a/tex/context/base/util-tab.lua b/tex/context/base/util-tab.lua
index ecf36b137..a47c0cb77 100644
--- a/tex/context/base/util-tab.lua
+++ b/tex/context/base/util-tab.lua
@@ -406,9 +406,9 @@ end
-- inspect(table.fastserialize { a = 1, b = { 4, { 5, 6 } }, c = { d = 7, e = 'f"g\nh' } })
-function table.load(filename)
+function table.load(filename,loader)
if filename then
- local t = io.loaddata(filename)
+ local t = (loader or io.loaddata)(filename)
if t and t ~= "" then
t = load(t)
if type(t) == "function" then
diff --git a/tex/context/patterns/word-th.lua b/tex/context/patterns/word-th.lua
deleted file mode 100644
index 570b64c09..000000000
--- a/tex/context/patterns/word-th.lua
+++ /dev/null
@@ -1,482 +0,0 @@
-return {
- ["comment"]="The data is taken from http://thailinux.gits.net.th/websvn/wsvn/software.swath by Phaisarn Charoenpornsawat and Theppitak Karoonboonyanan.",
- ["copyright"]="gnu general public license",
- ["language"]="th",
- ["lists"]={
- {
- ["compression"]="zlib",
- ["data"]="xuXnH\12~\21\30THICW\5e!V\20Q,(gL7x;\24c=y,qC4\7R3B\1\19Q\25G.\127\1gzri\30O؅-WO\8+uY]Ǐy{\30H2=0\"\23SDHdA\22\11\6R\23\15$\28(gN }į\25\19ap=l\
-T+u\\'(.re\14GHbc\3LJ@%2'ǽhj\5;Ȥ=V\11֑T'z\15\16pPBMD\3xm]z\12\26\180\21WKX-z\22@T\23HO\6Uf\7\0002\0318I\4Ja\3\0E^L\136^\1\15ݫ`]^\4\28\3\24!M/a¸e\"$\"O{\2KݦHxĄ#\30|#]³,/i\14yvc\5\8\5\29FNd*M)\\Z]\22~{&SEw{\2AspǔƬ6dL\6\26F\12:e1\21ww$RUE6ͯ3\27DIA\8\1\22~Ûw\20W\0\16V]!ZSzjMd\23\20\127\3'qgOh)Gaԉ9\5\21J,. + Q;|\76,p\240WB]&FMbcnp8\9'\3\6 \13\9>)\9\18z4<\13B]\26!U\21V0\4\29\"l8(Yh{\25.\171WH\17uJ-΀6\127\22Gk\20>~9KP\17y\5ʈ'oJ`0fpF\16tMK\31_?)3\26Tn?\1\19T\18,\13l2\19#`Y\15\7 0(J<\16.\15\1^=p\3`$\24W\64O+\3,b4\\\0269ۊN\28krk\12K\30b\19ǓOeN\14Syl\0K9\3j-\30۸[\22;}ڡx\27|d2WKwt\23\11s'W$Y~U7\2b)e\02y¹x`nVs\18j\3MO\2\144co r\0\24%K\0\\\179\82\15\1n\14\9=\6DJo\16yk`2\9qz3)\46ټ&҃:0O7Ѕx\0225\21C\2A%|\
-i\11\4\19b\26\29\\\24LRrJ`xAeF.#ւ6Ui\7ҟs\29-D2SW,B0f=B%!7y\0063)jU[~Ab#ڹ:y_s6(Mo¾\26uzgוS4bp\23ߚ5a\26[w5XZO\11-\21ss%j֌\15\9@p!Z\28&\30V$\23t\21y\22\25O{\25\0056.\23r2H\5*TrZ\0RzV#OX(&*dw6\31\0201XR,)\\\9okв\31\29`P4pP0s\22FjYX\"\1\28ڸe\24[ЊK}d~H]G,S_5q) 2у4ўeL\23A\16\5lI\"\
-[T:t\16%&\12\25\21=\3*{>\28y͌w\16,nJ%{z\8%\11\22p8\16c|Ejٲo\\\1M-R1~\2\16~\17-,|\29\8\12y1ǒ_\23&ǝɥe\11uwB\11\1/*[j\16`Dm\30zmUjuu\32tl~ӹ`|Un}E#tVѼvI~SJhV<Tj<s\36\24(VIٳaCo5{G)gXcq5x\6xd5\\5\1ulM;_\\-٨^ߟ\0172Kbn߹4AcL\5\9kg6Y\17\13ݺ\5{\
-\3RI5\21:٪R+T>/\13b[[#Bm5\30g-?oV骁IqS~ȭ\13\6\22\2C?:",
- ["filename"]="tdict-city.txt",
- ["length"]=5991,
- },
- {
- ["compression"]="zlib",
- ["data"]="xmRj@\16|<'*m\31ژ\6[E6(>B~ީ\12*NeTVD\3Il]\33\31lU\0.%\27_\19\31!yQ9\11{\132J(G#\28RKg{k̒9@)\19\11jD\78\28OQߡ\49nYF\7*9\26N+%t\30t=2L\5\27)]\0242gN\
-g]y\26[\0\23V`ߤ\29X~\9k;\\\22)7O8fY\31\31\21IqK )Du\1z\0\23\27\11",
- ["filename"]="tdict-collection.txt",
- ["length"]=708,
- },
- {
- ["compression"]="zlib",
- ["data"]="xڍ]H~\21=a\21\11\13\25\5s`U#B\29\12xmQWY%\8G\15YyMn+nVdo\3o\31ێؗv\14Ӄg_hvK\0313}o/Qg鳐\22>\19{uúݤm\27n\127ݾp-M\2\4Zݎ\28\8]~\22\\V}h\13x\21x%?&DUZxC<}@_\6vK\7~O2\9KV<O$27WZwFZx%FV>~V|\127\29k\127&\\X/\
-_Xۿt\16x_\0027\25;\19Ud{c:~.dz\19tn̢c\3V\30m?g\1u9r?\23\2ւl\22n;j\"-V&蔻PTeUt\15\8!>߳k`?qTȟd3if\8}O+\15=\23\29ݩ'N7\20lUvGe\14y\127mE9\27\25wDz)V\18h}o\127{/tklFPO\15$܅Q5{N#.s\285>E\18\9;\5\26\19XVC\22\28\22m-.l_fh4J\27\19\22I\
-'9B\29FhSH\
-\25g-\0067Qe\"%\1\31EU\14\14w\7}=G^\14?\8xemJ!l\30\17E!Rר\6y\11Y\15i\3\15Rlo`?B#5jHOaX\21\17Il\16\
-qP7\177U(<;\4Z=ZZm\9~wu8iUjL(Èz_\127tT>}\
-UXԸ\11\"=\5<τ\15\14vDŽ\13)\30\8D/>hQ~\5=\18&j;|#\2kb\16\0189wZ\0284\3ja\12\1PF\21կ{#}GUdV/\15<\
-ۼ}Eҁ62\31ڌ *1ѕ@XC%S5<\16\16\1u'\16J\7?ǰ\6;މ4T4n_t\22l\"`~\15+8\27՟ʑ\0110\3\27\2SY\23f\7(ͦ\24X!*(+\30k\0흻*A\9\\QY\18tF)AI5[\4)f:T;{h.ӻ\8W:jMIz1Si.{a\24v\2eVg\20&=v/T\31ִFg\14ej\15|\3~\25~*7&FO__k5!]\
-%\28=c\2{\23r\13s@P\1\127rk\"[aM9L#y<:Ph\21\9Cl\273(xP\\\24'\27\9d/$j\29\0092OP\127*\11{`]\4?\8O0N\22BF0U&A.bj\1\"T\21\9N`\29]?\2r$\28䟙E*\31ZRsv\9M<03\14R_LNa5\18\26EA\6ro/f\22ƒDH3*\24I\25_₱(ogrm*\
-\0087\24]bO\5\27ݕa?\93C4i<OwP6t04RPM&.A?X}bVl\13\127#X(a{.S\20+j\95?0[\
-\31u/޺7et:è[\13gYC,\31\0232+X\18څ꿸C;OMM38`Z&\20_}\14-\15*QƱ+A5&Q^\18C\3\9\5/Ljq\4-wV\2SMjM\26H˂Ц<YԮ;\28[p\21%99FOe羼\14mw\23ט1e\14Q`\30ۺ\18\25(Z\17\8TzD3+9*`QJ#qCriiK%.$\13adW*٣B٫Kkl\303\\,\6SX޴ԯ41'ZT\1\13X TUX\9VqCb\21h\3Bn-FO*h<3\12\02*{\21NBJ:\22L ό{9j\13\4=\19¶PYraՕcK8\23VɌqw}\16B\2|\9ީ~%\
-/V`4D\28\6b\25DWW^7'~\30A\13]8ͼ\17e[?WG\23<*y\187b\2ï&L\21B6\5H\19),\12Dߊɘ(p@\20\8(T^2\23J\4\3\0307A\8[+KA\12gCvQ-ueʬ||SL\2l؈ɶF౭J\12\7m\2/_2eZʣ*\11\9\23Rm\\\68#\22$4:\13\7\19RiŸ\26NΩp!\13ЯR55\13Sb\127V\19~\13YƥRVF\7C\0\30\17V\4\28o\12B8C\20.lʵہf\127e>;\20%%'y\21,&P\176%Q\28e/.uzjOfdc{b\27W\6\13d\27s_~\23W\27%\20ܯHsՄ\4y(E,`9]#\27O8\23\27\\A\0057YTl\286B\9FPf$)#x\16㖏,\30\14\"s4+\29\22m_\26Xlſ\1\27ѯ\9_=5N_\17|kG;zuaLa..Cp\13\3\7\27#I\14\
-@\27V4@J̒9^\19;\9|\12]C\127+Xb/׹`Ӗث\12\19\20 \18F05',\2<\1'Ήʇ\25rf\22T7\7P\21L\29\\_Ő4/+[L(VNU\7q\0ln\25\3B˱=U\11SRؒqVEs\
-_6t+\
-ߕª\0049F*~\1m\12rB|v'\26\5\\o\23:R\
-'\0026\25K\6}\127&\29oUZ+_k\8a#LS~\5%O\11\20\5`K|0«K_h#RX\31;p6{MC:w\0\6[|=7\3dZ1\22i@M2^r$5\"+\4\31u\3m\27xP$XWۡu3D\137n;\24Uْ.\3#.\25B\25HQ\20~:+m\6\0170\27])\7\22I\29\25GF՗{\22'no\4hX\22r\11x!\20Ŗxwߖ>Xh~)\19_pnB,]ޑ\13&b1\31_/9\29q)KXϦZ\22\23\14dfunN\22&RH^)\127BIYA\16U\19z\26\2\11]$b\16\31=UݗhyɌ\6'3P(\25\127hR\0190(OrKwv\2ڶ;k\16ۥfN\24\22bD\5Q\22\4iI\8M\
-bt[\0000\138utjM;t羂W6'҃\13»4%te\31+Mh\9&ˣ靚ka9b\19J\27\0164l1\24\127D\4Mн\"lq9$PdEF`o\17{ה'\22\12\\n\7\14:ZET>@\0138\14\28Ӹ\31Pg\47?!m皹jXI4?\\s;cN;S2\25\0043\6!\24@q\26+|0fc|\7yO\29#[\0287)&\5Tz\"oy>扗OM*rt̓\8fF<ڣ?(yc\15j\15i\16gFd*`^%X6^h\1\28&sv\24<r<\16V\30\0318\19̮\169\2OL7C.R\29y\127\30\3?h\282?u {k\127.u|=,1a<n\23\21*}(!TWc_.yN\11\14>p2IJ\29bWqJ*.\13\19mU{'\27f?&7#^b\12\18EFIa\12c{pqQF\22\19n=\20\26\19B-O\"V9!qI\27Y\31Q\27\19~`\27,矎ܟ\
-ߩ-B\9g{N\
-]=#T|f[z`っ˥9fV\26W)5σm\5jds\4*}\13\21\"R[\29?ku!{a\
-\30Ns\12pҽaP\292~>t}L,\3\0-\22>$\3&\30=&C\26\17S0XǰLp\27\27z\1øՃtXu\1%j\26\20ldWV\14\1>%s]n{Yq\17\1\22凹w\03tCmt:`\2i*{1TH\3OH.w;\5}\19d&-y\24Z4̊T~\5=r\14\18\17Cb\11\7 5$i诒$\3%>{qV?H<u*\24:-\4Å\0216\29!z\29\18vpV6`\9*+aV\12\19\127q\29 D\16!I'\31sG{Fh*\29R9qex\23c\22rghkGzݘs\25͓O`\8\18,\2|&og\26W\9Mi˂[F:\"\9OTMd=+~_{IGGߑkVp\23P׭s`\5))aQq1͇V4[t\26$l\7BGZsR.\0188JR\25n?JSVh&\24+x'\27\1$@Ԇ2\21LQH\11qO\22v(K\24}R1\25%\29\31pD\9,\18k=I'\21>%m_\\8I\28\8*q-\18Vk24[˒5͝Ec!]\11)Y)-\9woǘki\16G8R4:r\28s\26\25ȸLK\\v<4\27$jD\17щd\124ff䤻7w\9\12.\12A\127;]e'\0ܒ\289\"w]>,[un#Z\30^o=UlKHXJ8eGde-S\31ư.b\26N\25h{.\11\4k\18o/=4-L|(_+\\\15¾/W\0264FRRz\0052JL}\\XCURU3z,0ߩbh`\1270?51\27\0178J\13QZ\14C\249mR\12\17\1277ӎ2,kj{aG#2\
-@Tv`\8>C5gX\6=\27a\17y\18:I:\25Fv}w\25b7l.\8&\20&\11\22nG\0049\30\
-\"wۍ/ld\20n-{؄k$1\12)j\17󙪁Re\"dƷ+U\29\233\16m%Fl?Z!\7w]\21OfSMO\23޽IHJ2JȳUpgtLa:0Zw\30s) ;'+\1\31{u\20\30z񨄗֭Wn[[ZD5v(̹yʽ2w%|-No\11I\18DMk\21~\13]q`m,\13_p0H\16]\"\28Q-]\22ȃ/+?\"|xv,2dȋli5GpȘ;߀\1\7\14.`\27\0\30e{$\6\9R+\29~\6p\27\24\5p̼\23!\16lbrkڄ\6#\\0`6\30U\22\18Qeq^l5RⅨM\5\19B}W\13ڷȎ\24\23n\23Ɯӎl\16.h,j\17TBP8W\\\19E\3\11v\5|Dځ%vWr;'\5O\16MX9=S_@\19+n1u\26}(\21\13.68H\13t\0271aVKy=\13ֈeo\1\21WY06CŹC\6zJ·\20s1\3\27\0185\23R\26S\2\22R0\11^{+\18\13޵~+\\\18c~\0074?1`\9\23-\19K_\4!\9LB\9\15\5ly6\127!nB`\2ȑ\216b |bZ?\"ϐFSE͑۸pM\"\24\4\15J4MU\13X|6AL\18z\9\15q\19_'>\13:\31\13ٮv\23'ҵ-\20\21]\5\15_|Țp5:nHX',\9z\3Urw\19T͵ԩd\19Kv\21lF\0MbX8^Q'q\24G(y&\309PUW\21~2#<S:\5}\24\9iL\26\23VSC\22lŎ\27dSy\25a+O\9\12\9w͈m$\22#?|9\19y#vV[j\29f\23$'\27¢b?'\30bF͒CYp@g\41\3G%Є\30Ę\"ƞ &\16.\21\15\30~a\29Maj\17SyAX\21̩6V\14\17+#g\16e^:\
-F,}BH\21/\18L4\25{`\29\28',\3~(G><|#(rb|{Hqzr,jwSĢ41\26\11C}[Z\29k˶w\0-tra\6ɟ\228%b_0\2f{{SWN\"zČ*]K݇7Ի\15w\31Mﰃs;Hc\6?\13?$;wT\11'ZOk\27\20.\24uPrHYv\5#2(\25qmHhu8(mʼ\31W&ڈ]ӹ FqZ\30\12IO\12n;-v\12\31}B2sCMI8%\23IK4:H\26\7.ɓ坋T1*a5\2 \0\5ܹm&5Ҧ\20\29nY~\11K\29Χ.Κ\28~s;uR-sM:\17[\12W›E(16p>tof3\2QޢU-\11OHBk6\31eyLv\29<Ȃd!()>T%\7yt\17&\31:u-\31\127\14J_f8'\9\13Og.\9o߇b3(\14@k\11\24ľ\29l\12k\4Aó\25q ߍm6\127:E\30k!̽\27b}q\15\2~\29 Y_YR[.yR\2<A&͝\19>͘\24Lo|߃<&aq~!ubZ\127\24MWew\3\25ch\13C\12vcOy\7B>FgtA\27KIk<jhQEŭ\5X[\23\1dxBБW;<\9k\18*?J\12`sV\28\
-\\#\23iL]{/q\19;\30VO82Sm)E\17lNOB\21r\29t]e\120\19m)W\31\29:37}ײ-Qӊ\29^TxC{ˊ@/e\15\11eK^~J\12%\14\284<<\28jL8삇9h$g(ri\23M\13^ז\15<~RBPP\29DV=\127\
-\1k?\95VLsyϱ\2s vL\28\18U~x}zU\12i\17V\\{\"7\27?+sN\14\5£9Z0|]r$P\\\15Q\27XKw\1\18",
- ["filename"]="tdict-common.txt",
- ["length"]=27272,
- },
- {
- ["compression"]="zlib",
- ["data"]="x}X8\12~\21\30uWt+\29,T=\16+Vv\16Hmx%?ǡ\"8͵[6'_|lͭlnRj/+=mSDY(zs^u}u$5bI\0206\"ۿ\7RlQ\17{R.LzR\"5īI}Zߊ\63~w\6\26Ž\17)'\25\9WeL\6=m\26\\2\6L–\11\29{<p%\7JvSFn\21\"3\21ʻJ\26WfB3\27rKKS3jߋCF\26\31b΢ǟB'ί:|\9\25[ե_x5_ȼ㞓L١pNj5kv\0313\22ZjrN6\20\26\17^Hx1ωTjHrNwBj\18Q\15z\23\
-9\7հO#\26.fH6P\25_I\7g3Q\29}{\23\20G)+\5]Q(@c\11f8_\26\15H\25TFp\14yK5Y-WT\"\20E\9p\14\5()Ȗ2􆖀\20YAʈ\7W7\127ŎJSė)uU#=qmp\4\\\19R\25\4)Œ\24[ﷸb\31|L\21`h`TRQM1C!\4\\f\4bH\18JI+MЭ\85M\2\25\0048:b\15>uҨbԨM\21Ԋ 1#PWK\3\20^٩3j\
-ƺ$8]{\12P6'\27$8'*]wq\7\\4aR\23\14y#\5k9A|x\0f\20L%AqUQ\21s&QDHk\14\0 ˁ'b-\8i,\20\0`\
-\"ih\0Xy_k\15ί$;53{F7Q\13=}¸v4w\29QJAW]7v\6*)_\25ZVp\0183v\8\27\31x塸ݡz/aX逧}tEeQ\9ݒv\8\24\28t\6Hq}JZ?XÏ-\5C\21Db\25u\27`J\
-\16)cGrQhM\309ޘU'\1\5GJ6\12\6pxLb][7֒\19\22|YO\0196\30[rG)uʹ#Bjg2K{=\12K'[d±SeyG\14\14R$ހz/:\27vrVzLv\11v9\7<\259oj(\16ر1i>\3ʼnDv%r\3Yrp\14\0189\8B\7ܱ|\24.:03']O\4\14ʿ1K~(V\14`%Ѹ-\29Q!Sw4P^\7ah%Dx77a\11\29Qc\9Y!*=J4--c\6TiMo\30<GL\1zGEMzX\20F\21 y6#-03)k\0086sx+ҧ^iN8r`.\8.o\31#i[њB}Z9g\15}Ud&\
-C*B@@><;:#ʟ|wR_$\22xS\23\27ʞxK\"+\13=Yh7",
- ["filename"]="tdict-country.txt",
- ["length"]=5128,
- },
- {
- ["compression"]="zlib",
- ["data"]="xuV\11n0\16ZHiZmCP\1!Z\26tm|8\14M(3o\24\24]\27f\0253e<K\27=7\27\11r\7WFgFw\14?FwF\127@uqIٻ\25\127!\14aaM,5wN\16\4'I{@\21\15\
-fb\
-llhti]A\20\0079Cq\8E00P\28<\16jMž\18Df0j=\24Y\5W,:^g=\23\31]v\25lb=k݊ƌ,N̷(|s\7kYOTA^43B\29\16U\9\29\4\25BYܤmp2<@=\22\16 b\
-\13\11\14Y\25s—W\31\20ꉊA~T0\17\9%ө۱9\
-e:GܡLkWi\30\127\27v\28;VQ7,M\30\0212ZIwvt\23*\9ϫN4ߔ\22\0134$]0;] I^\21\4Z\30d́\19\127\14\13.\27\18,F&R\6D1Q\14l\1ۈ{}ί1ۯqUFH\8sb\25%L\27F>Q\11˟[d҇,\1o}\12\22U\19\30\25A^|nà0\8\1ju7DV\20k@dL\0017Z&I!n\27v{\27zDoP\13\19!G\25\"iy\18\14\12~M\31\0Y\24uw@Ͽp'\2\21sp4SkԶpR\4u\0\18F\12ܰfȎZ\27.y%Yqխ\28\4I\31]>O\119\127KKVl!>\12HsFukX4J^\\\16d\13\4esr7\25e~-k [\
->Y(\2\7\3T9,O%,\16?\8bM\29g*o&l\6M_w;\18cw`5/ 3\3͔Kv'd|\8襢kma2Oâ\\C6\8\6nyS\3T\0058|?Rp",
- ["filename"]="tdict-district.txt",
- ["length"]=2762,
- },
- {
- ["compression"]="zlib",
- ["data"]="xڅTK0\12J:T:*3;X,\0163T\25J69J8lBi1~)<:hO~\30ZO6#&\34[\8\18<\\{A\16\0071\31\6*\5Py(ɗ\0292\16\13\12-=}p\2\7Ê]4ACz\23\26,vx\8`\6\5 \6|V\239I5Q<\20pA=\2\5j&X\
-#]\26Woƽvm{8\22\3m\16(ѲF%Kp\29sTYhc)uod\22Ze`+Ys\22琒!WU\19O0;\8%3PfB\28.U\26|nJB\9ъ>\12c\281[ȓmO\4:'QᵹJ&CCR^o\22á_$÷2t\14\9A&6yUU2\"f\17\0193,G*޲\24\19NW+|\13^a˼\29?ty\0|\21qBv*ݒ\127\19z",
- ["filename"]="tdict-geo.txt",
- ["length"]=1324,
- },
- {
- ["compression"]="zlib",
- ["data"]="xm}j@\16ůQ\"h?h7~Ć\20%6sf׊\21’73oUWTN*ʻQe\":.'jp挃\24\
-xNt|\0k\0jrShG/\8aJJ\4\30UV\27vqNe?\26s*ό<ީ̙ME\
-=\24\27Kjb\23w,{g\21RmCqNmH3Dl\16)Pjъ(غ\17\14*\22\13n̕Q\0054>Hp+ߘ\4h\0128BаCfEh{ho&\
-}_1q?p!\18\19^{$'RaY+[duwgW@\14\13p\19K<JWR~ܥ\11*L\27\"jru/j9%+\26Þ\25.I:Q4\0%+%:fg&\27\9'uP\21[$9~\1ڐ",
- ["filename"]="tdict-history.txt",
- ["length"]=1010,
- },
- {
- ["compression"]="zlib",
- ["data"]="xڍXێ:\12\21>*\13\7cQwAjA\21R\24m\16ݧ~ilI̼ 8%t\30yc\30y|c\19h\30y2r\22\0\127)<\30u4O[Y%\15L\31u\30?h\17Z\16eł\1797\8͉ӅNc\\p\7\30$^\0096\18g\18\20:\22\11\28\\@ˡ#\11X\23P;5AW&,n΀#;tY՝E\11wv\11ALl\8'\20.6\"hq\127x#qI>'\29y0g+8:_K&,A\3\6\12Q\\\0\15\16\3pop\30n\1275n'v\26o{\0133\"ط2\22\28ļ \"hU=\21\15NAI0\24%\24\11q\8\8r+(+\0228@F^_OF\1+E9\\\30Ip\18O6\24KI-޶-\0R]Ro_#\30+bc\27ITﵤd\20Bq\12T#%\21.Q)q\18b\22ɾPd8\18'<!;a:<bp\24j`f_sܲ\16\"a^\\\20SIFC\9,R\"_2?dxR|hOiF\3gj8Ay])%\23(\
-r岶Q\19(I:\29 է\\fאNRF..d1\9Ews\17\1E.du3Yּ$BD]X\30&.Q\16RV\20m Cz\16ٲNx\31\0311C[)6\18\5&촘e8K\18\11\9\20'\28\25bs#vҮ.\21(UMWё>ږ}\20*ACUT*If,K=hPȅ~[i\30MMFڿLl?xX&#\1#I\31&S?\22?OܥFuph\13>FtitA-|ӄcl@a;w`x\0085F\\\0276_PEZJ)Y}\6kC*\29f.\2--\17:ՈjQ$04Ĵv\3\9C[\1y\14lMƇ\15bA:)ђZ@;`Wsm\9@sz׸mɋ<y\4\26MusRtohL2\6\26*\7ͻ\
- vO\20tE9rfIҹ4{\29_C\26N2huh\
-:o%?̃9G-BuZIѹ\23[bg@ML^\9ъ\20GrI\24<F!Hg\27(ٯ\26\17÷\9C;5O(\22z\11aO?\20VPΑߤ\15^J\11\8ddQr\19G!\20UT\4}\22A%{%GP\9H\0177[Q{.Y&_u\16\21tvO:\17付qfU>\\?x\15\13\0220B\"wwtyu{m4\127\9},oZ.\28U,\25u\17:-mR;a+\26S7);\30SPO\23{\24V\13&\25<H~znPvUɘX\9\20MQ\11UXgQQF;2\31;YSTy\5OS&cV^ѳt\7MŊPx}+@[\135\30Ow]Kߤ!_>h|/:ʬuT\22=\28\4\26-Kڟ\9\22gtȟkc8\242y::'\26B\15S",
- ["filename"]="tdict-ict.txt",
- ["length"]=6299,
- },
- {
- ["compression"]="zlib",
- ["data"]="xeS\1J@\16JjB!Vب`IKPB\0274$}3kP8E%W9L*y\22|<a\13*\4}4Zp\31k\9?\
-\7\24#k1D[\21SB\27\5\19\272X#o!!p\5\2934Zoتԙɱ\26Jk.P\18\18\23ĎUJy#7x\0/\6T\24\3\14\12Ɩ\19.hj^4\20m\9\13~#\0\0000-4\24+y񨐣\19ީ)xv'\28\25-_;=\24\
-z0al:9xb6s;\6ɫ?=&88.\14I]\28N/P-|L3XN\16S9\18Gn>u\1Į\31j\31)-L\15i5r!\5篶",
- ["filename"]="tdict-lang-ethnic.txt",
- ["length"]=969,
- },
- {
- ["compression"]="zlib",
- ["data"]="xڅZH\14~<\21ifa\4\19pAM.%oã\\ʟ?\3̌)~\\[_o}~we\20[܆?FЭ\2(\19[\0144`|K~?h\31\4.Fj<е|vT++:!\13/\25@t\0\29g\6D\1277!\27wqq\127\29AF,}Fl\"TZnr!妅|a\8٩LK.|\8|qG\15o\17v\28\18N\15\0133QJ\14\1mn\5X\26\0\15J\1(\1D\15r4\244\0084ߣAk\17\
-4SN-0*|\9P K6‡\17B\
-YP\25H\" [\7\9е֠98l2Q\6+n|q%7/eкLxjRdyGmZ&ҟЋM2\30^eƴ{;I9\23\20.\2\25K1XȔ\5?36\13D~3\"\0310\31#\16^3B\14@YTKN\2sgtA{,~\22rV/\19G_G\14\2:[\276w+@>h܃&>nN\0273\23bE3h\22AXy4F\0)(0V\12QQA\1\"VB0Ý\23rHYכ/Ѕ\5j![T\6*K:\30)\209\1\13Uf\13\2\
-0~fl”܏\7~\3mrDU&\19\6\6\20!,\11\24\23T|:\14QU\\\4\16ry\30\11?\30\16I8_ \24LEH-\24@s vDP\1^P]\"V\8䦷K\13\"\1$\14Py\13>/-c,w);\22)\20\16q'7=(%l\29\1\28[\18\8K,\1d4j\9=/\5Zz(<vC-\15n%6=\23\3\\qNQ\18Gg\6oH\"qJ\17\
-h,P`Vo\257\13\24\23Ѵ\24\0151\17\4)M6+@\0167v`\9\8\7h $ZZPhkG\17ՆȄlM7s\304o͜(\21ok:|\13kR\3eLB3\30xn\8\30\31Sx\30B\8@Wq\3s]z6Pc9\9\18<a\4,bʄgi%Hj'Ux!Dh/\27,H\7\6}-\25L\0060\\5X2Xe\263}YKꢎs\11lY\26bKWc;\21^<\31u13Hnځ¡)r's\31qG=V\18Z{\28Hpھtk\251g}\21\5\5ܬɼ\0119uA&܂\25\2ֽa>V\7\16Q!\6qp\11+5'uO\02470:hux1{{%60j?\"=\13\22\
-\4n9\127X6\
-̃r4F;P\24h~Goj\2ºY#Vb\2A\3SlE|W\24D\3Ae/2Aϟo7/L9;4\18O+U\20VgMg+l\12f\28%Fok)7\22\17֩!mik\28\1d\28\25\29|\20;ag˜s\22f\2nr'{\0309ӪZ<\5,\25śR:#K֥;!Q\3_4A(%¿ْΩ-D^Ъ\33\5Y!\6\25;hŭKgVȰg\11m֕\22&l>DS}.ʅ;^\21\26=e\31LV:0@%/Z:˦\127a\0\13\21?@h9>\17\11Y~\18Ƣ/\17\22o0yA0@LM\0+eVf\
-}.xX.U'8\"lUeح3%Ր\8\31jWF\\\19g'\1270&s/ۗ޿\23/E\7~@*P0j]hؗ5hƮ)Fz\5k;Jm\6\21X@(/C/hׄ\26Ģ \20mw\31X{]z\
-]í\20S9\3v+f\13\3Ea\127a@V\28\24ۀ8e2n5\
-\30\191\5Dys~0.͇a\14\2\3(Y/}=q+D\7^U̕A\11m\13huZ&\8\11OG\7\13&nZ&\"nh%:)qK\27n`Jj*ȴ\6k\25\27\4ZF<\02964I/|Hrg\\Mi\
-̞\7/tpt\45+\2\1}w\27G\6\31\7p\7nmlD!>h1Lѥx9\23\13;PNƒ$c8蛫`&Z\18,O\8Gjh%XG\1\29sZ\19\14_\\\17,,ng\28nZ<UlEt5e\1270=ׯ(\19\18+t-\8 \31\22̮OOy喘\09[p G\17\17ܟ\15\3@WR>(\25\12\38 i]L\29Y8q(]!_]:\11\30\17w0AL-bؚ9CK6zk׎9)\23us}\21!8Júd\11\27=SM\27h\0214H4f\19cCWϚ|v\30POw48-\
-^k飫!hxcĪ|\9'\25\29 ތ4Hy=F\1^EN\051O\27k3hI*\3Y}BVw.M2.bd\30a/+?y\26\8O{ZB\"'\26\12zv}\19\26y^yeiCkҝ[9Րą{2HsتCUBb\
-Sܰa_\24^8?QYv/vosSN\\\30k \"\8\6\7J3lx\3/ꃕ-k\127@Eo\31j߫{]\\\8i\31\15V{PmU\7]Xq\31#$^If1\29\7݁\\;ai\15\
-rV3z{)\15w\11\6O\19Уn@{~SfݛS\4یM'\11#g'T=v7CTB y34\"\14kv.\14n\23\4ύ\127fcK\23x>l!7y\145ҫ\14MgK5S\127T\27.7\11rv\23\\>tƤ\30\15 멞\20\28k-芍Ub\6*]fگM\25q90A_e4\0302gŹ\14@)瘰k\"2<C\20gP՜]Y\24?Ug,=L\25O=э\0\"z\24BtH\1ȜiU'\5=#\2d\
-\6\15͌C}l\208o:)\"z2+h)7m\19c\14Z\13\1\"\13v",
- ["filename"]="tdict-proper.txt",
- ["length"]=10367,
- },
- {
- ["compression"]="zlib",
- ["data"]="x}X늫H\16~\21\31u\12™\12쏍x@<\29i\0246Ym|c]\3a&]__ge\\e:.SL-\12:[\0o*9GQÿU)Jq\29,SLuuzP\15\8_p8\26\30>1LTzfN\3(ΟIDZ'%VZ\7_\8|\2vs\5\6NVC\0\30.hw\9:C#z\17ϽfP\26\0&#JVoC\"\0\11|B]I\
-\7Hq\0052\"d\4v\0\24V\24:t&Yvd\17o\3n\24\3Y\29\3\7s4p\7\0177[4d\8̈́r\"T&\27\12l¥\21\21(@8\31x0zܰS)0E\4争JD5I)G+3\8o5\8}\27W\26dSg7`2z1ʦ\20s\1q8_1\
-\29xyvCE*>(҃\28ĺa\\eh?\6\21i@bm%`\28I}KߞQlK\25=~r\0\7g%㩙}@QZn73gY]1a#WUԉiM\
-JjW'j܌ \
-km`<_uREj%W%;|+P˜uşm\18~\0259LPf\5`&j-\0ұIm-Fi@\21\3\13F*QL\14yR0S\51>39Q\21\7bUa=\2\24+Q%P7\13\0072O\28\\%'t\3НԒ7C\17&#̀\18z\16\31'\3&\29K]\5i \"N\4L {D\12#\235\\\19\19uLfe$HT%\25JŨ\1Z81#j\4\24<o5\0187\4$`\
-s+G\13\0280$iޱ`Bj&M6Byg(>ng\\\0d(\16HɾJ5t\20\15\27T:u\1277:\19z]7(vdk+\127R\127\19P\1N\26:P\
-J ]\09!A$oUQ:k¿}\\18\2\1271\19W\22UE\29`Ks&{,gg\8zom^\21;IB\2\24-GC(^\19ꣁ-R\5,TN6\4w.#em\6Ng4ml\\\17:S\21˰`\16cQB}\23^B$r\17\\Z\3\13\5;7F\17w#&['(/1k^\2W\23喔Sv 9KgH%\18z\"\30>p:4:46Ѩ7oT.X\19\29_)zL%_eb󶥦ً\2E&\16\11\20WrDރXsRq$Mҳ\7d>c\1oRЅcB+mEТ:\4/KI\29Q\":Mu\
-~3ަXh)q\18([.\16T\16\0C\23铩\18\1\11.w\12̳0\2Qycʓ˯\4\0041\19w_Kir\2{{)\16spI\1e>D",
- ["filename"]="tdict-science.txt",
- ["length"]=5492,
- },
- {
- ["compression"]="zlib",
- ["data"]="xmT\110\16JJT\
-Ҕ\4M(\2\"A\20Vm(g[R)[L*&\23;\17SŤ\24#\22\23hܠ4\20;{RG1wߣ\239 \
-R\20sv\16bfb\30b\23\14\
-Gub*|Os\1\17\31 'zqIo\27\20Q7l\29PH\12bv͢\25D[Ȳ\11\8^!v\69\8vΦ\21\14\3BwFLCHЭXv}\172xuы\4XB]0\18-R]Q\"1w\19Eoy\1Mu}\30\18lB,#\3慄Ë왆\15N;\11;\"fwIg̲\
-(\25\27~yi;jNn\15!\\\13z˾#\8\15´ȡ@sJ\23d\26ƒ,9\"9Kc,\0221\
-?Σ]c#\14>E`«P\19'h\\O.\12ϡkPN\7 WaF4\1J\0096ӸAZ3Z֜A}3\127.L\16\4pN$*Xh\21W=p tjpX-v=E߄1^mF̿\12BvT+_K&5hcEiGEC7wx궡);6jx9#B\23*HD/a؉n4v|ZT|\8\"\22\12\
-\30\127x8'\24b`\8\21P\00873G$v *px^8E݋?L7\26 /R-",
- ["filename"]="tdict-spell.txt",
- ["length"]=1787,
- },
- {
- ["compression"]="zlib",
- ["data"]="xڍ}H\26Xh<ޝ\0134\22iKZ<aG*,F8\28]'DT?Yuak>}Q^}=\13\127\11Ͽo\31??\127~W\29**@o\4N^\26\30T\12Ͽ\6–?\127\30pG\127_ׯ\127_gC'x\25%ÏV_?9߿e\24\4m_\25<1\8E\14o<\7\31s?\6\81z\
->г+\98\15K t\3a30?&0p\15#hq\2c~N;|8\20C'Gi?{Ǐ*>\13Cd\27^?O \29h\127\6?\7r_o6:J8D|;J9ǧcԼ\26\3\11\3\26Q\4nL\12-٣\239?j?(ju))hG]lɎ|\31b)O&N5<p3Lg\"wW\127iGУ{cݗ8o;\13gw9\24^5'4?W\264fQ\2\15#9}躴0fY4}\28^\26\15z1^}\30sӗ\1}\
-e3|~h4saN09(\31sNV߹w7zQ{\3/|F0[E\1r]J2#<\24P{څ\7I\11w\7s@\127A4\3ñҿ\3\12ޟ\\\7>%Zڧ܏mSؗf?\34\1275սd\17\14D9_ΐ\31Mv?\17~NݿF\7h\13\"_HLMNqU\26>̴mV5\27V|6\296KE\23o\0\2\30-zj\3&\27VcL8\12\15=^\"Am? z\12Α\6\21\158I$aﯹf\24}}(P>*/<\18Ta0\12е\9*~\31e+\27?\3)m\19P̷;S\3rCEplf;ȫEO\21\3SʎNP\0\127\29]$ϗi2\
-f;|kyz\28cWzM(YO\12)\14p\22M0/\19s\28\11qR-DRg傡\9$H\6\127tx,Ȏ_\1[a\29<7hfg(\29؉0cUC\
-S\28-\26\3*\23\18[\22\27oV\25\127VFgLߍI\3Ua?@\31\8F8(i?)-+/I߁oa\28͌\17ӽ\0$:\15`ʋ\21\31o\14\15:~\17V>ȯ\16}o2f#P\9jx\"ak%S?y\22\16\19}ؐ~\7^\17D/|֫ͪTez\127CdP\3I<@\24a@\7ҙ4t(=A\5\15ht|\127t$\127x`{>A׋\31-?t0Ç\13\31:\17\127͛_2їZ2!1__$\6Z6yҸ\19cz%^mͯU\16Z/?\9w;ܒsԭJ\"\28|l\17/\27סt\18b]vPgo7oÔJ<\8xWۄ0B\9M\"ݱ\\p?pzjtkI\9\\]ݩ|\30\6H:\14:\7cӇ{}(a]G.rb:vw&@WG\30\6Dacw!J\26U\13SO\"пtAuh\24TH0\3\"{R\0125T\25\11iګ\24g2qZ\4+v',s&đ\25'\23Nة\
-_\7aP\26 d\29}Ӄtx4|ZÏ<˘\5\13wv?څZ}L\4U8ҕ!\17Z\21\\ʇ-.ؤkRؙ\
-WZF\23\"]1\14)\0hG\21;\255堪\0031BLP+O\0\7%퓗\31 8Aל\
-~\30+c\
-ݫ|~G\285_\16S\"ҞbB\17A.V+6^ѕiwyNUݰҿ{\16p\11اe&&k\
-\"崖\\\14Ͼ$f`*wbeʦ\"ux\12rM\31{\15D9\20\18\2\5OLj\7Jz.-*Y܊\4\22\21<91mo\27Sg|aϫCLU\7\
-q; Hg\12\29C[\18;\20\5\24\12F>IHeƩ\
-N\24£j\6wLb̩JьNq8JN:bLAARfءM\6;\29\21\1u\"XOsuIr\19b\30|\30\30J\25\3$3Ai3[]@6#4\29\\ne3\26\30p]AY/=2z\2\14:[\29?mg!dƆAq\11N\29xPNj9pTXz\29jU*PS\3;!5L\24=B\2twF4fڒh@\11<9\21v~} eF;'ڷtez9\30!\
-Fm$\35o@Nx\4{J\3n\21 TA`5%/1a\6\5f <ģvPm\27)yTu@\23|,\15,mQ#\4\8!bn\"(Bݨ2gZvn t\127\23HL\14\\\7=OH\31\7Oο\11('\15\8\13\31\23\28F\4mL'$CĪ{?\8f8\27Ё;P@\84Xe J?hC_z\6V\3v4n\31\27$3[l\1M\27m#.a\4҆>9\19\6p9\7(\23[O,GK\26\15eJ4\5`Pٟ]FP>b\4Bɛ[h)UM4V@\7]\27\29\9*I\308\17(\30:GtANۜ*N9a\26GAeq0X>W}\0272?:\2z>\29_\30JG`D4o\8k\22G\2}J&\0275\9^7CK\2&ô|{?\70fr\3\22#\23h\15](\8WHk\26!\\H\2x\27lhL\8:g/7wB\27T\12ŚP;7,H+\29/*\29/;I\8b<ӵ$eX餲\\ti9=\17:mN5\27)fi}\4\18\28Sq\0173\30\30p\4<\126';!\13\0197f*꽁I\4c&P\12cUN?U5b\\6S\14w\22Lf*̪J{1\7Ї\20R;@2N(vm\27C\23\20y&\23C=\6\14|\0001\25\160֯$Iz\30\17=``w\18Zg\6!u\28dV4q/5yl=(^\19iyy\15N<.\36L$5~e\26&D\16i!YѨTf\60%ℐ6#\4XfdG8\7\6Z\18Jr}'@\31o\30^6ox\7i=wB >H_ѯ.\26EP.aXjÔ30\0158c丗R\0\1S\25\0276Vͮ\
-\\Hf0~\
-\6K6Ą4jHDRG|;\127\12\25))0\20$T\7:@Z\9lΞH29s\18֛@ChEЊP)Fg]\\\11d\8\15}A4?N:Vy\15S:r\
-\25Ycpn\12E}\0196\21ft\5E~\23\272\12u\2\13N\4\0045#9j\0}\19?ô\27hS\9ly\534y7DpmWGU| b]\31\14Z&(r>\9-f)\8h6\11v%,h\5B~QЁ\270hWAJh\\An\280x\29c\4ٜѲNx_I;\22VgdV==2\\Vb\30\6z”I\20)/˛#?:@\0113fӏ\2UQϡ\225 lU\12^KI\24JRM-(L>agIsA\0129%A5o\9jeʟ\
-\12[\14\0087.\31\19\24.\27d\8\15\0À\5PhU\0166@͔9\13*\25ۑ\24B?\\G>-\29N\6]ȻJ&\31'GW:3fd1n\127o#>#YX6^CWZ,'o\26@Œ:,'_z0Î0knd\1;g<z_j$#aS\24'W,Q-\26d'996}\25\13id}Li\13]nK_T\21a\31|!\\Nqi}\24\3h:zO\22%:n^_ޡ{Zn\14ےd\3O0\11KS]2g:g\18q\127zV%\5c\25\"1UITV-RNʞd!l\19(犵\29Fs\12\17#h%i׍\15|?\20y\3m\9\23F!\7\29PWn%,M3\
-Cuep\11ǎd;\127gEYR\24 `GҎJ(i\28Sf\26yn\11.a,@\26%Nt\14K\0194ǀ\30ѻ*)\23(Zz\\B9+rnsrDZQ?\6&m\
-\27p\3ZAЋzWo`D\27\6\21F\24FuE\24\5W3\127_nAM.lj}\5@-\19z!\22@p]\8P$Cs1)[ЅS\5;\21|`3 y|T=\25\15;2P@;ՒN\24\21\"y\7|7o5~{}U.0+~\26P5JW\3s/FFL\28;d\127G_\5nT\11rbź01\18-HX\8Ps[c \127d\14/%C\11L*X}- -Yԝ\14\22p\24&F\4Z\18_+='Hws}\0301A\19k\16(j̿AEеPMbb\1\23^L)jh}[\27P6\30\18;\6QY\30^wMIvx-opW\19\23Z:a\7={G\12\2\6\14b\27X3X@ʫ\5\29\18N np\12\
-\0184\19:.T)\13\127ь)\16\20\11tw\1\17BsE)%o9\19w\5Qs l|\11i\26\16`h,\23gxU2\23Uxd8W]f^l\13\0139C\11g\25-H\23\31ܙրi)\11\15l\25\2:Bh\4\17D\6A@g*\14\\[m!:\22d<tbRhB\0233z\21W\9\27e\11X`W/̋b\27ޘ5\16\19v\27_|Qc<Ä/Ư~bϑ2\26rqta\6^P'Q&;E>Qtl@nst[\24lQl\30!D[Ѻ൝^\9\2Z\4t!D\127\8@bt\30\11r\\A[T&\19\31!\0-9_P.@;sMB\12c\8y\28\27F\19Q)lb5@2\
-~D\28\4Θ\17G{3̆9\14\31qN)d$Q>ҡ\6&\19G--f\4A#fB\31Y\18h́.nSgf^G*o$\17\23\26t N\31\
-?Ej [)\25wQH\0266m\0177*\8R\27\9%\5y[rH%˭lkK\6lP ^bYK8fsVΑ\7\1\29*C'R;) .\16\
-+Z=\\jx,5|B\31\23\20Ts\3kA5?bC3\22 \8\3{\21]1-::\22?tJ\27}\9l_\"\127V-JJ.\31`~U=B3\"-p9\\ZP-3_\31P3-aT*\9~K\18J\22?i1Q!q:?/ouM=aB*tw7D\17T\11\
-\29\18{\0163mVQP8\14o70z7M\28?r\24e3Kƒ\4\1n\01720@\29Ƅ%oVޒtxY$\22yݹB-0/z\7w\28T \13\1^`ϴ\7#3\27(q=3\6‰qO::GOQ\7gʙ\9NDĿ\"\4+P\31\13W]-WMҀn\16\11h)R\5KX\11\"zZg\18\17Z\9>\22P\\]\129ϋ2~d\11A\16*\16\30٢lInY\11n\8\20.R\21ީ\7Q\7|+lb/\8Ӓ\22|\1-7\19az#s\26,R;\16`r\18~3\28\26`Mg\\v-UbD\77C\22\23Kx\211\26%<*>XV\16Sx ,nK]r%)x\24&@&\31TaIZ\29D\15 *rB\19%eE\23~$gD&R!2hg\7.oc7|EAR磡BţnO\15S\4Hnu\20>=uHK\22v\"28n\14&3)\16ʼE\26|;\0272ZtF\20\16/ua\22Ϥ!ٛ/\22-{-J\18g\1-\5-\16l_pQ\12lI\12#eo;\29ɉoG?b(PA'GA-\0075cSңQ\3:\9CyT\31\27V/\19cAh.G7J}\13ѹ\4\0žucU\11\14}r\30\15\31I\26]UM\21\19\"o\8*Q\21\1\21\27@}\19V|T7n\7~\4\11QY@_!:c5;T|}\25W%TGS\31cWpaAH\18W\15=ъп\7=\16\1:F\17`bK^uq\21L.R\31[ K\31#k\14>b<yk\31٦l:4\\v)\25\17mD\0076\18x\1\0aD].\7C\0055J9\16cVjH+/\26\24AaV\26\19bR1ұ\"ǂ@\8\4\14r+'w\1qoؠ\8\25-X\21%Oٲ-\26ǎ\0*pD\22J\0P\23PV~WaYh\127;Y'\21<\23tG~\0XCl\17+;TN\"\17K \"\9UFR \9y\"c\17-3+6:\2&'h\13u|p{\9Nߵ'~V\20zEH8=LKB^Vñ\27MpI5\7Fu\23zI\22'\28Dܥ+eÉ[\1\7un\25Zflzy\14-\12u覕\16/y5?w\11'^',LMmO\23>u\1`9qKzV+NݳX+ORM׏ȧ\28\3oή\30#pL'H|\13F\12M<R*yd\18~^G\7\26؏\26UP{Z'ڂ\9f\1Eu\23?\127\13ySt\26[s몾z[\0080>\19b\04\"M\23BϏhPA\"\23HQ3񍣚$вW\1]=2\\tcn-=Z)zA[`W9\28M\28R)\11\0\18Ρ+\22V̊LFgH\5Q\2kx\1[1iEB\29-V\5\15\19\14d~\31d;@\19Zw\6vU\18;)d\\w&T\3\19ZܙnU\128\12 \5$\15\21\2\0A|$\31E'Z5<\11hz\\c\\\19߷B\5w*[51Foa\7\22ɮRrC\20Уn\\[F+`q\13\0212\0234b̕u\30\11u^MJE~h'EncC诳_8B\1\19l6$I\30\
-F\14[锑2\2OqZj.L\27ajDR0ga]֔\16)ө\28\17h\31Ɂ&Ŏ[)\12\1i|bʔ/X0c)ԟ#FU\22/y<ds-$š!eEp\29\16_\3;X\29~䇉\8zca\3\26ZBV\22k\11\1Э\8oniԼB-Xn2T<rhU\11΅^t6y0-9H0,\127ZM\\0~]{7=&.޹g%#[cqer;$adՠr\27\22\18\22_4y?\8f !Ɔ3A|\2jB%4_g%ˑ߅9T@w\2ɓHn[\7!\22{\24\0V\29첦iZ\26̃$~%qDC\0044F{ի1Qq+GqEuWI\13A6Kvh'NE\
-cՎP^]O\5%$Q*CM\3Z{\14qZC4&Ldj\20i\6\2p\16uH^\1ǚ$Vsl\23\3s6I([930Iw6Oi\
-j5Y|FΒ\7^\25v9x4\13\0YVKXrk\13\283e\\\17DsDe<\4U\6\8ƛY\26Z-g\210\127/ivӛN9Z{sHe~ɻz\17N԰K\24\30h\27:GЋP\27\3C\11[G\20j#\16\3^((˝CkO\24\31$}\3;]@#5\0275E\11\16`*7|\29\14ΔկjKsp˄\18s*qrҁY}ewnC\24ctGPia饇\31\127E^KxOn<\29Z|L\18fM:6/q\31u\15>\13h\1'8@D{hwJ\28{|9٥\0z\16k\18l\25Z\3}6\23bb\8'NTQ@sDAy\20\2bw\2\13e\21|D_TB\31C/*{䦿3ٌ<\26\"xk\11\17OS\30\4QPrK\12Z\5:\11&J_n3&\32\7\19?O\5<\115 L^4֙|a\11q\193ȵ\0273P!mbDkc4d\23F+呾>wS\17F6e.F5\127Zi4\29'@y\11\127|p\7׿%ܓnel~\26'ǟ\9Y\18<ٱ1ĺLZ\8\11w,_\20J{ph\14'^?\14D\
-Y>yG'H%\28{\2WD2MD4ʳ\28,\21Kn\3ʮL\27xn[HKOI7%n\15Om\8Ox\8)ʢ|]gL\21č<p\18\11\22\0[\8\259<':A\29$Fm\7Z\28&;\\57Rm`r7j\26jE9,T+'\"\29/\6&[*n\26S%\3n*aM\0169gq\22,\23,*r\2>\16\200Su&ȔZC~U[,sp\16\1_nN\1\
-%hR?&\07B&\0?7\19\"x\31i%'\11\19\24Rv\28\9JNVh\0ߐ^9ᚿI\28o!F`}@2;\0136vCĊcC\29_c݊,ap9sn\0\13\257\02276YAq!K0`\30j:o5\14lgl#!i\27pD\2>X\27\1Q\14B\8aܛ\27[\116S\29U~]ɌV\5by\28U3{me\24s\3 \
-LpgԥP\14˳\6.N翘9ςU~;r2D\31q1\25\
-QT\2a\143\7\12\0116\5;?6>\7e}>TL\7V\19Ў-n@\28m\26`@U>܀nW\25\7QT(.\26\7I%0wȧ\28 [nm0\27rD#F\19ߐHsXh\
-\27>\0!CR芤\24@%'q<Ho 1ӎ߇ODA:\"\11l5e\1/x\
-۾\\.6W\127VqW\12&\8\31=[x'MxD$:U_y\30\23\21eAY+\3t՚\27OuIYo4ؙ:\5\27?4|%g9\7||M!e\15κL}4YG+\1gM\3\\is%-Z?ԒV/_NxE85ó\
-s7]y\\0\85!c\0^\14P!?.x\4\4C\25\9\15x\"t\7E\0282\26\29\25VEݼl\4\15@kfD.)/,\29Ns\25s**Q姮ʒ\\<ksr\7)\8E~\23eZ\\U~n\20\26˯܉\2MN[g,tZMfS\2!F\12+@%\2?\30͡\5ޏ\8jF>vhQsX6\\:͊\19\20\16Fj\2OÑ\3<\4&m0?\12Q64M0G\127\
-cB&kF͵(1\26hp\16\12\13跖I@<s\11N\20Z\9m`B1\\F\8O?X^,\5\22I6pRݛ@H;\15\8\0087ju4r\3\30o\28w\21bگ\\ E\27hb*~.^9\0048L\"%|F^iă\25h 9Z{T\0\2-\21,=.\16(\30\8\18\7\
-\30r&aB\28v\16VY ㎫C\22\23cĄ]-I/$\18n)ѱ@=u!՞!\11BZ.\25\20j=.q\
-=JŒP\29mzo\28;A, 䕐xe\4(I7({sM\28~GE$\30HPB\12\29U_a?\0134mX6Qe.\13\6=\23b$ۄ~KK\20nh™/ٴ\19\21}P)BR\11K~\
-\0210,4D=9~y\12w\127\11\18\24%x7U0Ȍ\20\11mah܎:/Ua\25\11\18\22,-\\\23G+,\1ޑE%+0)\17\"2\22+((\13\11*H_0\21\0110v\8D(j\\RaF\20m\".(ن#-\23\20M\8xx\20dl\27\25\8]'A;?_fBk6\9dB\19F\31\7p,(!9'$s\23O|b7M\13A􂜲%b\0\12\2\19O((\14@\16&Ж\24䲪<\22jŽ\1]P0B\\B-\"\3!8 wB\14jK\25}h0\0099Qe\26\20]Vw?\12:G;;> im|?HtV$E.*Mп|\17hHf\4a:*S\13na!\25oY\3Bsާt~}*K|t\127rRYNSW4\1@2|jT*)c著&\27#vTcW]_yBa\306^0<0SRi\21>Pޣ3,D,T&\135lI2A\\L\0|;%E>Q_8UGsAK3[\13\18J2\17I\22ܖ\29\3\26c\6g\31ʴ3hNա\29\127j\17t-L8\12\8\31K\14\19\22{B\\9\22i\23.u?r\31˺\8\45,P\17:X@\21\
-hg`|\\HLVp.{\30q*?\25G5j\31ȗ0t/Ȩr$e]\18p\19\\k\25\
-zWsΣVM-dyn\26ڕ\23cJTԈ\24\6VB]\8N=\16z\14}s8qѺv>a\2\14=\27PAu\\Q&k\24ubWB^s\127@\11GE#YY&\8fA̴G\3\00234QA\127q\29v\25ʚlZ 8Ij{CD[wv[|B߭Vu\127\127~sQ.v}\11ZOF94\"\30hvBS8].j_k\15\21!\21z;In\24=s\21p\5\9Vp\30g#jTQSТC\
-\"oZ*T\31d=iSjb9<b\2\2t{Lp]\
-\31\27TDc;\14?nXLyN\3;3Ҩ\"p:$i/>n6>w\17\20-\"m\17Vh(hd\23\16\8\2*!\17^\2tf¯׽A;\26\31\0021\8Z^P0!\127%\9\127WC\22H5P*8d[_VmF\16w(L3h,7~W%\7*EjR\17l&;V/K.m'T\13Ol\22\0I>Z\113\0Xd \8뾝\9[u0xEa\6MSy\3\30\14?\5\15cA*G-'j\"\23bi3\11D\0M7ܳnh\24zF\19*깆H\\~{ ϋFGk.f֧1\14n)T~̈́V\28%/F\15|Z\21{eS(0\0153\9i\\(_Sc26\24~<\18m)l\15\19ƀ\6l\8_&\23AôFeINe¼S\24oR\3\30Դ)\15ZNsP,I䙦[Y\23=\20[f\2\30l*&d@\17\9Ö\"nBY\19[`m=\25v\8+etur~\4~O\4\13\21qgn\21n}mwݪ\18\3\1B&\0005\"ު{p\17YFm-\11Uy\27Lm\1r4W\29hK% V+_q]gR\5\31\27Aa.O\28\15D$h^!$x\4S-͆MdC3e\14zN<\20\4gkL\90}@9Ñi\\{l0\11\9ŗ\13\18\0089\1\1943V<@2\6\21C$RRQ|3ƃJ.\25ZNRxzi{%BwR\20^x\22~CP'٪\2h\20EtK/\15&\20#9Vig+\19wi\";ZE֮\127\0VyMoH;<\13\
-\19u\11$d<æ;׍+˂\7D=T\"43yb#\20\16-2i4\2\22n\0249&PU ڪ\18I\17-omE\0234>\29\307C\18%\256\31\2u\23t\26UAH\11eڢnڣgaWV9\4t\16[=lrR~2c\0\12t[AXNFS:q9|\22*<3\26(\11*\317\8\27\81[kV݃\4FN`nz3\29#SC\\U3\5ڲ0&;w=\19\\סyG~\307\0057*\1u-t\30x\6Oa\26!\21h#F\19|\26\127Jp\7BT;\5\\2\25\7=\19\\dMP@\22eTV\17:(@-B\17g\15\13\29~P<\21F,؏jC|siF^%ԧڿ\21Bl\2O\"!\4̈NX<N$V[\9<\8~\18\20\127\16Y\\&CsTBxrI\19^h&M-\26\1\23hS=\
-&M;\6\3[\8\13\26[WG^F+\1~nQlTMOڃ1\1\2L0\27\12tqQ\0291\31\20Fs\14\7JD\9\4-\9{Ǚ5h\21\4\\Z\15\22%\4P8w\30TY9}w\
-\16A\0\210N4K\16\11\24STLHǿz[@z\30X89\3)!Zʃ\73\197*JX\25hE`s\26f*\17H9qn$BJKSx\21#|1ԛ#ef@k2\\<r%G7\14)\2c5\28mΌ<|2$̫8?\5\4ʌnWaf9Io@\26sG)v~\23UIő-N֛\9)Ps\5o\")VuՋhh#\4\\W+ce\17{\29tNl\19)>y\30\9=6\15fF4R.ql\75CĴ#MV\0309\30@\19cJ>)\12wv\26ɢL;խLn?Ay5:tn\13?K!2(R\2NqѾ5\9\9\4B;\13ET9+aC\12̐+RÎ9\12\27^p\7gN-2\3afĨny-\16\13\29\4o;Y񷥚\127<n\19$Ƣ\13O\2֕@%+\0147_\14&|ٞZ\0022c\29F!m\11{P/ːgs?]\5\19[\"Pd\95\7<_\3\184$VB\24Aלpb!i\\\\B\16u\6)\23\24&0q'Vb]Z`CK8\0k4Bqp$\19t_;FːL.dE\
-Ԭ\18\26{^~\31]X\6]p9B4\11\12\28\28h\18?C]9- N\12\1զWf&K\21#⎷$\13TEv۽Cm{~\7e3y\29b\17Ŏ\13!\26Nwr6|§%mLЄ+M*sZ[&\4Ho~܍\29̂:\15l*U>&<Ő\26\\>Pkk\7/\24̞2\24r7^5\28} 8\29jhkc/\23Ωѹb!:@\13vy{0-g\13`\15;9CD'yǽ]b\25}Q9ʋ--`]E.jb8>ф\27\22Z1=^\"\17\18f:=+}En,9x\7\9m<?%}(ԛ\2l\9'C:Vԡ;TuuI\19\24\1Av:(=\26ҹKUo3_7r۷K.\4k#Yx\4G\11Ϟe\5?\127S3\5)ei)\127n\21C\9\0032o\9X<\7Q\16\3hG\"4Q\
-i\0034lVL ] _+8\05kPN\13\20t\14\5:Qw3Y\25z$lճfG!qoCTj@dձ|x\28URϷ\7~I8t[x*Z%=9\13h\
-}\6|\29\127\27䨋%\30\28wӈK\0128 g?`fbT\1\11\7-<\16t \"\18s7/zc!B\23T>pjOo\0g\23F3Cu@]\11&G7GL.{tdj7SOAex\22;Jd\127\3\
-<YHpAcБ\12E\7\19ր\22J]\
-ddXH\16 hnV\11&x](.t#@06yx\11!\17~9>\127\16^7\4LG\29\23\18a},s\
-5[\26A-FDa\26\13\25\27w;\5j$V\24\26 *H7&BGJK\11\4*\18d@PcgRA\24~ 듅'\73\12\02532\9K\30\8\12(\27C;VU]>r?\173--\15]H\27|Xoj\6k\20\21 L ۍ\22΅Ix\30#Sr\5B/I#dZb\20j6{&إr&\27%︫9ٴˣd}&_[\12%x\12J\6T4\127gʨ\20\30W_4٤o.\0;\0034\19A\20\78F ;_޿H&,\24£J\31l\27]{R\6Z7\28\20Y4ZH\0094L-.=-\11指5SI~‹^p\23LLG8- =KJ)b?ۍ@&m|7EA)$\15֢B\23N\0|^57eM.\6\11=I:gSX!\18\\V\
-\253ˠ]\14:CD\25:\21s$A6;hKidE\\%D+}v+\28T\19otop)O|y\19^e\26y&ܴKO\7b\22h+\7UG\12\8)8\24 \1271'Ι \0mB[RvѽՅ{\25//*OvY\0IFА(YJSݛ>\5([NmɆÇJx|\8\11\30/yϺ<Cl\1h9=5$%\18*\3R?zCTT<kQ@\29,0s`~ :hb`\28LXN\\.ڜ<c\18\1}Q鐃N*ݝQY\24b/\232\29_\2r\9_bj\15\127~/VG\5\1Y\14\9H__xX\27\6d/z2iI\1271ѿDosE獥:p_0ۉGTM6A;~\9:}\12J%ol,\6\11FuA\8/(|SkxP\12H䦻Ww\0200wIi\7{Ee\17\22\23\\E7{{\22݁c%ګ(e\127;<4\19hӵh5s\28`{RhYu\"^\0B\15ZTp\1%\17\7B\7_?X~ϐ\4Vޓ\1و5cNv6\\L^dL(˿y{k*t}\0\2E~\11\8GkCT\13N\22f\167sE\13\4\26\7Ά_\17;󎠿\24I(\4u\0292\19%%w!=5y\20գ`I|vp[h|;KD\4[[a$\0\"?י3!{41Aa\11O`nQ_B\0*S\7\127t 8cP\21f\27fSy\
-m*`.\3I\26|K\5&P7yH\14˽'cH\11(\24\31\"\\\5\0317O\31/\26h\15\11BUHD\4\
-^\\ͨ\7s\21~tM֞4zұV2d\22P\31\8Gc(\16zF\15О2:c{bK]\"7B5 \0Y\17|IО%|{\13:\\p$Ӥ\\\30ۄ4\17YeP1N\16Z&&$\21XVf5^g\55GJV`ďt/lO\1\28;s$/Zi)_z\29)\19N\268Q\12n@G`\7KԞDŽ\0081b(\30Յ7\27\3)cO\"IBߟ1cY\20\5'=]#muj,=S\\M\12Ҟ'D\18\6\17z}\11B˒\31è`:k&g=\28\23^V\14cBWY\26h]hQI\13\0յά\2V&⍳\2/ب\0082e+M&\19'rg!@o\30:~|u\14[=&h:o\22F\9\11f\13Pd\21fɴ\19͟QwI\2\4\
-\25\15?+\29\22'&e /_\21B=оQ\12q\
-^\9gUr\22\15d\22\4(\7/H=D3h\9o\29)JGۓ#~\13(\25\22GLp\22N[{yځlG\24\19~GF˖d{Qܕ'g7#;S(B) ޛ%u3;\\_8\21`X\5tI\0052\127\
-\16\4|b\3=+\127ɶs?fgM\11_U\1ݒ\22B6r=}d@-pE3*Lq\27|\28r;B%_ɷ:t\18סI\\#:ă\1\2\54ȉ-\5\30\0136\29uG\"\"mPG7\14=\17\2\9dCBL/\8.lz+y!L\2]b\22]\26ԙ_h\19ŒMQ-\24?P\23\7\6e\11/d̰8\27\13_ X\6\5@jxxs/>\25pƇ\127f/-}?\16^XZB܏]\24¿\9\5yUGk\19!2뾨R$6<պ<1_ @av8x͉]\26یfvV[Z?/j\1[i6Q\9p@Z̚@)n1@\1\8{)EEu'ʵ'\2e\27`C֝iN\0\
-;@hT\12\0$Rr\28\\V\
-g\0qZ\30*Zc]˅CM\0\21%cDT\28\0097USh|UHxrݟ}Uɩ7\18H\4YtDײ:M΄)^Pԥ?S{f\16\1B\3\8V5:\0193dBx3Ac(@6\31NFk<P\9\2*G(\27;\"\9qr\187lh`Fg|G\9+\7/Z<\24\27든ĥ,u^ia\5Er>jQ4hY\8KUM\0\6TD3v'%LHɕD\12\12Z8P\13dȍ}\127m-5\22'4&5.U&;t7ɂT.#ʎ\0095ʅ7*4<K5Ȝ&)\23j\1aK\3a AiG\31b% 3\4S(\16\0~ݬ\5\20o\18\8\24\127\15e]\3hsF3I\27NT\15sA)uJk)sC\20ܝ\26m\14Q!\31\0h\3\25 p40z\16\2h1(Q\18$.f\9\19%?JV\4j\2h|- $\18]J>E<B ؃H5 L#UiQ4|C0-7v^0\19М;l\19deֆ%glz„\18{Z\
-l\29&z\127WcAj!Wx\"\5ZK[\"\22#\9\\[Xx\27\8Q[5rŸn\\u6\22\
-Opamӎ\26 e\12J\31lWE\28+EI\13G&Zb\7\27@\12%*4L^>-Wl!ާIlZ9}x\26h\31`ve~Q\11\31n\20`cj\16Ay\29nPWl\26{u\7\\$\19`@HQ}a)߸mUry`y&L(9\23K\1\16f\31%،{\16V$\6SBU\5W?>u\15\31(s\26vl7\23&^OߋLЛv=X5\18\7ckF[\24\7Ls./ѣ\31:\29\127*~\15rT`MPC8\29q\11\27\27\6tBኂZ;rE\23p\4uy\31\17\
-͏\6\21cBJTM\0137e3E2\6_:LK\136.\27vIF+%b\
-\30/Blb`H%\26Dj`\20\9E\1r\0gWR\21\31j˚eUO!&oS`6F6\4\14Ϲ\3\18\18Q\4\3ri7J\27Q0\15ma\21p7>% \28ڒ\
-ug.\183\9\20\4c\26L&:TⱤt0&\23%\\\5\20\12p\12R\19\11\00475JV\0162\66^\0\19G_zfj@C>\23dyvV(UrB\45ﹸ)%a\0090BPpBM&\12\27Eg\7gB\8K\17\16Q,\0\11O\5KD(5\9.>X\11/z\27PJ\2eRr\15,\2WC_P\12̏XVPT/\17_˔}\1m-<*Z\12C+\23g`Y0nǢ7Y>=E% k}ૉ]2{7!\28f\3: W\4!6R\\>z(N,g)\26fzYq\
-h`:a\
-Eu\11\19UZ\0114*\3\6FX\5\11ؕ&_FN\14\27-r\15ݰJ$TR\24Zz\29\0225,\28Z/)ð%xF\20*hӴsS%\27b\16zC/CE\17^\7󠲉xr\24ʮ̈\26l\"\15ߛq\4\"\26\1T,\9\7T|DXWA%@-V\17*4XQWnT$G2?\"\7?X\14g\21k^\25E[;E9*\\#F\27h+3\29&\6Pw`bSJ\25\25BT%|_gE<RI4BL@k5\25\8\4QF\210ad`k7\3\21,\21JJ[ükK\21\"|W(t\26\22fq\12W-c*2p9Q4\23$}\21M\31^=$.V{\127\24t\15zůsEI#+sE#t\21!|SU\18Df\28•\
-,PR$U\207^N-GpLSQmGʥ\23Pf\12F\13v1@~!C,\26ǣ Hs7At\23\\6g\18\127\9\23&\4UbeM[C$ܰzm܅'\30\3?]0]\23\6\13ҘR\29T\7Z[¢\16WWY#\28_J\21@Wo,*\15d1FΪ\31U\31m\195*5ǘk:pJK> Be=\30t\3s\7>uO\2Zp)xY%@\23.WP(\2\9p&\26Ǟn5V\11;^\127ia\2ď \26\\\30DǶPW7?Lt|[2_\
-\31S'\0226\28Z~\5r݃\28<o53ao>A*P>*\7\28\15~H'W~U\19W>FOh:b'uՠo\3S\23<0zn1Zʼf\22ڪ/\11'!c@3e\29\19K-f\0h䓿^sSihjH\2:3\15׌.\11}@p',9oG9VHv9!40Z,!\21d\13B%NJgݎXGz\23-[.\2NX-X܊o^\9KIj\31g'r\27\0235%Dr$\14^<.[˸7arG(ͧ\14\18P\30U7lͷT\12U\12\\E:p#\29S\21\
-\
-I\25dW亮yAZ$bO*R\1\23.L_\14`'gMss\15s;a)0\3qBל&\30z\20w\4M4\26jywI@iO\1JQ#\6ٻ\19+\29\9Rp>Ŵ\21?-}`Rq\4͞`rr\20AfYg}@Fjc,aZ{܄ Htd\22\21}S\14a)t\20i;ku\24xt@km4t7#U~\1\19\5b3\2\17k\19*\3\22r\8/`\24<R\0000F->\8\29[zѪy\3q7tV5yVxe(ZDoÓ\2A\6I\12\0245)]Q\30\3\20\17-s]J(qY\29_R7k~U\13\225}sz|\24\26k}7\6\2*|y$/NX,,r蚿xA6^} \28A[#?+[zyG\9j\18\30ᷦM\7A.\2;\17A,8viEz\26i(`dUC)9\23k{Mִ3>V\19\12Uk8Y:\
-\25JI\5A\3{(\12T\25xʥ\\$>&{򿈀\8:L{Q_əwUM\14%v&hC&\27&D#}3T/\3\127hd\23\19\17-_I!|?\30h\26\3Ugt0_94%[F@+8\0164rK]՝|f\25ϒ\21G\\c\6~,1,:sQ$>g̐Gx-)U\24Xd7<*Ӑuz^o[\4\7\31\9z\12\18\14]E9$꼡ۚ\19\4aƓq\27\
-@f&\00165|e|>jԺ6\26h\5x[vn&$\15\30^#\21\2M6X\8=\3\
-\17>N\16\19O]SO\
-ak}\14Pep@uK0\19ΚM\6\6%AU\127a\9؀n7\15bZ\30a5Gwjp\14ﱽ\3:[\288ܨtC\17Ac\8F+\21ʤ\"<n@Ò'ݸ\9hIɩc{xY\18=R?ƑB):yw\29iAJ\127\14t|-uJ^tf=Z*4~j{\18l\25כ\25CX.\21GZ\4`=0\127Zd:X\12x\22PÞcZSӃ+\24\18Ug\0]\23\30hy\26TZlB\13HdhͣHoZ\22\22\127)G ڟ~\22\0135^м\13k+Rrզp\22\26Rƨݖv__%G*n\20[\31>›\0189T\"d%O@_U\\&sQ)Wu\31j5|\27ƽ-5??X>\5_/Xd>\0095[\0190m~9T\11CXp\13G\8z\19/y1\5ٞ+]\\\17ԡb/+\9ZL\29B칪\14{\17\18qL(!H'>\31!qJI\5\25eb\15$\\ǹM-3OGEhWSBWJ\17\8\1J,\30IoM$^o\23^w?Nw)\24wԉ\18Za\21]\18\30B }\30\18\16\9dG[p-8fMI\18h\25B\24@V\5OQwj\0135\4\127\"~K1\21#g\"+j50\13Bn#6*X$$\127%l\25\7ҰҦ,D \13\147SWHp)F\16\0012@#j\":8\27Lw\1H\27Eu\94~f\27\28ϛ69紖}\27K\24\7B\
-hlm9\23<\152|\13ɍ6&5]ivX\15BI}{T(\8Mɫ\28:g,y\\E\14\29\29\15Yp\127:#Gc\29\\$<1U\3uц\30oy>c;势*'k3\7\21\\v=]C|bޚ|f\26.%m&\118\127;\1278\0071y5<#P\15Y:{?u\13i\5Pq.#s\31\31uÓ\20-ߥBG\31 p.TJAr\31p*id+_b7ł\\-l\4|^0Ds\\j\14kE\18\18\0T6E5#\127~c\27:TZ\"d(UrM\\\21V!w0r7*\28\9f\3\2tn\01147w+sA\7ȱZk2>p՚\20\
-\127\24I\4rYe\26\22\22ZN6!\3G>`7dM\7/pLh<\11,e7A']\3_.\29m?4fJ:@\27m,\30y@\8[\18\29\0\30ԲaLLUF\9\13\2C5dB\28\26l`$.h\9\23\
-*d7\16.Oz~9k4ii\29\27Q}ԔY\14k\2PCf}\127p\145dYA\15'ΈQ\8,K(\2Y\4\30UyR\6\29_P?|sjQNv,\18\3Z ْ/0dGq\\MC3|\26\24\0084LBG@\14\20[jlm\22&\15Θ!̒G'¹!.$}i(,T\13]=a> O\\˽V\27R[@n\3\11bqq{,\19,\"ۼŔrK\27+xx\21U\"ر=ɰ=?\27\16|LWRk\24'N\"KU!WD\1v!w(ɉqv8o\19|\19\29\15'\12J\19[~=K\27=;餐\29Y5_\16\0233se\"M?=XV+DWk\14j1n\21\31!˄@_á\25 UV!\4)O\27\30m.i\21\24MP`܇+(lyM#A׮JMf٨MLvj꒴\211\12LG+\29\2\5.5?\23Ϛ+pIeq/_\1ZU*AԹ}CQ1\27\4t0\9s\13l֙lf$\25)f\2(IT\7*y\\&_C\8䞛6~dk8#\21\\\9\4*dE\21;\0T\30Sa\213\13I܎|e\
-Pz\"m_-.\12x\
-\1@y\27z31tlۻiz\20k^\1eq\6 S:\7g9\28[\8\4a9\25q)t8\\_G\14k!F\"4\17\11Z\4B\19\1їiAs\24\25_n\"\27\20K\19\1but\25\31[ЛU!W\28l\3lh\1ʼ\18>:\27$A?{қv\27NO\28>F\17\14@F_=$B$1\22n\16Dbh\6!|+/\12\13cv\8p\
-bA7_Ys8(݅#\6moXk\16(\6\18f\11\2\127\8P75oSDV%x2d\24\18kfno΅˷5_ iq\24\5ȯԄ>\6\123B3\\E@\15a,\5w_.\28Z\29J9<:s>Ɍa\26-Q\12[<p@<*[\4rËr@0jydn\12\4-NdBJC\8HI˚M&ʮ@\26hC#\28|\20{oD0Boճ4\0314Jw'\18H\23a\\`Pr$yڑ[\0ɠ\23\\$V#KL#\5ൺ3fZh&M&\1\73!&\20?\30o\16\26\14h6\151mc8B[O9a/\0016-\5\2'\27\27;5S~iYk\27\12\19?W<o\20 \11[v+\27E\3\30A4\31\9GFα4Ox\9͢ze;=~\14u9\26\22^\18~崆3Ӎր|-*\23\28dFG\8iO|Pv\1\23QC\1\8Ҿ\127KQ%6\20f\17鰫=\1\162)`]\24\19Rt25=\19l\16\8fg\14\9k٣U-\23DD\64h4K\5'iuˁǹ<8r\18Z2\11\
-߆\5\19ӊ>&⊖\11>\0027\17R;\22ZIu\5Q\4J_i`CAk箐\18\8e\23\2$\4@ŨȨTSf\28j\6\17K3RukR=f\"d\4w)2]ے^nSaiz\16BU]Z&_c&t\5݌[\2\30\25$ \
-\1V2\20\4Z\6\28\16=ҏoFR\18Nn\4Ǡ#w\21B\1|Z\
-i!>eEM߮e)}\28ܿ5)3\14\127a&$5u&\3k):\\ܸd׼o\24q:B7XL\4iGi^\292x3j!8\24\21S\27+Yrdp2mh3ce\22\27>ygλr41Gݪf 'P[ItoRfy\20\13\127Ҕ\16oY4u\4B}\27$\17*}U\31=\127R^#lP\0044\23iY5?V\25F1\24\29Ft\0ց`\14\1-/qd9ւjU\252\6C8hIBDAG2cj+A\24Ɇh\27\0232\8Ep\27h)z\30\14m9YK\127G~Yp\23ohen@ؗȉU0\26mcNCdF3:]5,K[2ѳU-B-qR8erPv@CM\5(1B\19~q${u_\20tl}SуӜ2\26~S\30\")b~OrNw\9yEQk$B\6'o?\14\17\5愊\27gLZ1y\9q>A'vz%\11?bzMy871tow\1gſ8}x=t$x\127\9­=]sD6M\0\26uABЍ}~;%1\3;4t\13X\17&X\22&F\\8+oy Cehd\5^\"Ў\24NG\4\20\2i\17]i\1\9^c<\\M\
-\2ͥ9\0144|-I\30ibv2Bkz1k \28\9n6\8/o\21\11IvÄTOh\23<'\\{fL]\21ei`\13qMxؑ\18-0\18\18R­Î.+\20!V!o\25\21;huۉ\17,(\3\19:Q懎RqydV&\8+:\23\11D2\11ISb\0\0210&^4\"r^΀\26t\19;V\19h&\8D_\9qV\25Oܩh^|^)R\14!\20\7Z}8\0304\8gv\0Ђd(\29lȑPzH\18Z!NF.\25u\25\13\27ЮV\
-\28l\15T\"X\0124uQv\26\5۫w\28\23ӓޙEUiv.\25v .Z[Y\
-Ht͚l`\16z\18e\11S{N9\1\1hؿ\55(.,\127\18RW\315K\28x;_ԱZ.bVr'P?U*RX\5^R7\
-̠\21BL\14=P\3\300&\16hũ\15\15ad`<rtFQÂ\14hr\6bYS6\0110{_\7ut󅫟\22\6m\8;{-E\\1[\23טPŚzbh~)<$c-|#pd\10(F-ڭG5l 0\3,\17(픇dONeZ|z5a\26qp0tuzi;ԩ\6j\22L̕pCI@$J\0141O9\0295ʠm=G2YpvoxҌqT1^ZM\
-\"H\14۩\5\
-\127\19j!fn'7s\26z04\28tPa&)ߥ&Ϸ_Ea Ρ\15cɝtFF\14Ozj9Ae#\23\191C1\6)\19jZ\"\22\21\0165%\23N\"[\15&L\11\25&\12UTj\16(\6&>sL@pL2\19\\@K|\20;F\17 k\2)]\27L'GP\18ud6\3GcPac{\13\0ٍt\19\9\6tr~`G6Fn\19\2澢J-jG\127n-s~\20^\1h\12\30l\2ܣá0jv#;r^7\275bG&| \\HlGMbۑ\1!\0\18S&\27Ԏ33\29\22N9]fA\24Wq,r[x\25mVgꦁ\27\3g\2ӱFT\3@^@\4\21^YgE}[\19žb w\22_QѲaTa3\9!DE$'?V\14r9\127l\13\11\14\22ݩJ~G\6\5#\1\19K\19p)3~@al3\25:\4X) brOz\14\15:=VaZ-,bF\20v8o\17ٕ|9B\23΃)\7sY\3aN=\26X#<N\16Z\31Up\2z1*\14p&6pZx_BPN%%\
-K\29\9\22\
-EETt̅C%R;ԩ<e0Խ|Ңg\7%?P\15\26\31Mo86ob2@|16FL`\18Wg۪\8h\8tGQЕ@\2x<y`|k<Ǧo\127UO$)\2\26/-WI\"\29 wiI\17z%\13w07ŔIlI\23&Ⱦjh|o\25\20@/Tw\23T]˕l9&t\14Q1\26wjTXw@ݤ9\31}^w\22\19R5Td\13<M؃=,I6\22Ifё;ʄ2NiBN*9\5;4*\13`I\7-|'B>\16鈧r?Js\14@\29\5\28\9I <\7)\12S!8\2K6\28!DXǩ\7Y.p\16t^6\22VE#_'l|H#dTѺ3O.%u;\14\9\20IN\8oS&\27\151NY!v\26~Q7\14!6b0va\25 Gb,\2\"_^?s\1Y\19PRH\11qGߖZ\285`3=Fc\27>\1eipdR;6o_7u*3K{s\18|z\2\27C/\15JIFOlS\17h\27\14%V\14E/\27''{'^\20\28bי.EL\0sI8\\Z\2N(~x\4Rt,Ȋ޿\2mk_:Hٝ\27k\18Y\25j\27Ɍ\20\8``Od\19A/')\271;[&'dM\9c\8|\1\" \0022\12\28A\18UQ\4'}NWz19\1\21\16V̹IxSŽ\27IdΕ*r|)v\0\7u2/R<\12҉\2\\\29=wj&Ex{1~r\0x\9kw]ãBUhe\23^\28٤3z\12=\14U\18$\21Qo#\23\28]\91F@\12\"\3\19R!D^hP=*ì7HQsѱt\30U-\14xX'F6?H?hڅ5}Av\14Ȗ\0097,9?U\7\9E3Yy\1\21܃*\20䔽_Uq\3,5\2ɕ|JY\0u\20\21K+αFZ܍t4\21JDd\48/vFP\186B@O:2j\29,i,;cxJȾ\25MO[䣉0\250(Sv\4\182aÓ\12ׂW\25T\9B%) \3#\26aч7\29@\18+\0[U\23JL8\15.\14\16\11\18*۶rK:\316zw1΁޲[r/ݫ$܄Dhգ\18֜gt\6ؑ+ûUtq?FSx#G\26\30R-\16d<p@ D\239P\5\9ʦ\\\28^ꖔ\\>hcx&y\127$i6\14ʉF۰\21\\)sVS(\17GBǥD\0134zBft3桁.C_\20A\7..A8\7bF+~/@oys\24=6iI\23\19&\16wF]\1278R\0Gp\26}+:P\7@P\1u&\15>\27OԆbXkOh\31'w\24‹\29(t\19\30\26e\26\
-i\4g;9&\3?6x9hqgE\11S2\7/I#\263,qM\27^\13)ͭ\0315o5\127Fc\12[C⮾\4Y͖@\11ȳl#ч+eCgk{@z\0016\23wBn7Q\0074*Ы{1Bd-C8\12tcS842\28N%=$\1i\7$\26<0-n\23\30Ҹ\
-e\12W6r\15\19\3GK\13OKƺktطr\26F\29\0054r-\\GB^\21>83+Ao?6X\
-AN\26[j;r􀀓!Ӣ訡Oq\11\26!=\3\"{\2XC۰B/G\12\29(o@\24ysEB\"+~_ؓ\15\\\6\4\13Kaj3ixP;\15\21\18Ƭ%Tx1'tPh>S\"#lgE]cDN\26\\l@6w>q\30a.\31C]Z/\19Wh\19Rٻ>vPg\18P\11UĄcxk\4\17c\17GI Xۤx\30„qS\17&)^{^\\떻\30KZ\5gF^1rL\0\2\28\29Vs\7^\20\12\4:!-ȁ\18W\31y\3cb\19;\24\26LԾ\28\22;YzC)9.UR{O .&!Ykpao\0012-\20\2R\1r\7\20[m\21\"i-رz>9OA\"\116+n޲-\59\8zp\26\28';I\8F\19V\12; \17.2Ip'\16$b?y,\15ha+\22HM\16\9\5U\16E?L^\2\11V]\19M,FZ °j)>m\25\13|C|T\5ǜ!,bug9@Olt+jl\14]\28\0305\9/Ct<M7#C_Bn($A]>Dž/\28\9\127&&J>\\\19q]F6B~=\02676pggJj#6*\0281rNH~YU\3\18zY{\025090\277rCF\19ye|v*-lSR#FL\28KHȃ\26\1]h6b\15&{@O :\127\16T\2hF\28\15@Q4F=\4*$fǐK\13_3]X\7\7Jwj\21}\28ź\
-]RAVA\2HYG1]DF\29\19\4J\127T:Tܪm\15Ӹ 㨌,B\3 :j~Lt\30gD\28sZVtG\9\0050\20G\4kgFi\21;\
-\19J\
-\19q.C:#EK\28\5\6(VÐ8M\28U\
-ޫ`P~'='+C->.\25\127r$yJ֙\4}֩-LXÌv\8~{\28{\165@\7}w\8@}U\6-\1܌h\127wLa>Z.K٬Z\17\26\127}ċ:\"\6GW`?`\127hF\22s8ŽA|=r\30]{]wG\21&\269H\29IG\13$\18\31\30b8FE\9q&!T\5#\\qB&\20,:f\27\20\23{Ǵ)D0K\7\8\8Sj$\26et}$#Ϲ޿m\30Խ9GC\0095:1\0yi\20\0046aF\26>E:z1\28݇[j\18Ђ#\30Ug[Ms#Oؓψ~@n'!xV\
-5\16\13LJ1\15W}\3-M|2މMH|1Gx\29\246\\eQ\20켉(o8Ls6ji1\7\127A3\4$&T)\\?3j\30!ث[Dg |PU\27f\7hR.^/J6;8\1465;J0iMN>V\22v糆\31\30Ng\25JPN\127FGΖ3YN#\24|MIϯ3%>,t!O\6\14\230\29\31:\26`\0048m\25t{Pӎ?\15K?\15\14eR\31\30|OS\3\8\0G~${O}n]\15bb{r\27?g\27>ƕS.ӼQoխ0Y|\16\23<\127bS\18wx\5y\20!\5=j\26?ؤ@У^@zT\0260VGM(wH@\27#g_\19r\312u\11\14J\17\8\12\3\24bCĚGAy_1\0179\26\9_j\21>\3\17i\17}(!l\22\12qB$t<)8\7Z~u\15X\11\30YE\4\29xT@IylDÜϠ\5n^T+\22\14ó\26\16C,\27\127\"T\0\5\17Pzũ\23G\28w;m\22\2)$g\127\31\24'\24Q#%:yeGo\127\0173x:@{Aý\3\27/f",
- ["filename"]="tdict-std-compound.txt",
- ["length"]=125327,
- },
- {
- ["compression"]="zlib",
- ["data"]="xڔ}r8\14S^53{#-yoeJxVD\22\3P[\9&\8\2b~:\18z\127__@\11iKV\8\17H_\12\127G\6?\31I\1277\6~\14:36b;|i\0~\4\
-_\29?\0|(Pw\29b?b\30y\127Q\31Kq\14J\3\14-\5bPɑc\0?s\8y-c\21=j\22\2}\25ۯ@\127\127dB(l\25\127~\9B\2\22.\7J\13 Tr\17\26!\3KC<L\19WN\21\17q\20?*/H\29Ք\24\16i˄ZCp%y}sQ\28\20dJͱT\30\31\3e\27\7\30\17\24R\1\27\5Bk\25\1{$>|4\9\2f\0\30>z?rX\11P\25B\5B#\31\12/Oj}}\4\27\15Êc\0266Z\"z(]K\\Cs\15<C\2d\0Ot:\12S+\15ԛC\24yhܶc\28eS نNz Ka\24{Wzӯ'KarGJ\127\65ȑ~h#[\6n-\30\22\15`πP\299\72:D8WΊ,\0\11\25;-@LX\24&9\26ym8sQ.\27m苛\23\9)\30F)aycY\17*.($\18\9I\17)l4\28\24j!ͲS/F\22cQcxHqx]2\23\14>8&\9\21:ql8$\127\30)8j\12Vn!E1y\31\31-ig״״W\17U.y\127PT]fצn/<PUڧơ\29\0068bѴU\26A\14Ln:Gơ}(R>-{?\28i<}*!\127MO2/\96ADZ1c\\&㧺cކ?\7Z9F{\16$2i2\31k_6\3t*]V\23\"bOByVnd\15[\14_{Śf\1B$S\31\26N[\"!o\0153+逢,G,\29M>,udETPӼ\3ORYdc?\24\27\20&\0097rV\9\30Ev|elIxn0tؤ&]7C.RT_Y\24\0\0292\0054f\127\4tfl\17mFs$=vÕ'\31\3\15\0172S\25\94J1|0 4i\12'\30[ތ\22qp\0250~:g骓FD]OF]\12\127W\1270uvi۴*퐼g)_D\13>BP\"uI6]&/\29\14\15I\13\277z\15^aYY/G>iWiV|1\"vd}FWls˒éae$z \28\30\\(4ŮF㮆-S\25MM\22,u2Ri幛\16e!\28?XNɂ\2jti\28nnI5U\31r+_kZ5iq:3r@=ʓ\17}3w@0)\7M|t\2(d7\31y`1Rl!XwD?I2,\31fHCn<\251igוP{\30}t<!Gў]Ѷ.֕s+[\31d4&~ ۦc\12Ql$U\18ʯċ\20J[&S :ci\28b$[zOpO\22;mz6Y~DR{2N@ΞN6t\4ň\23}mGOŨ\24\29\28E*\\\15n=:\"%饛H2={\9CӼ}K7kT[b{=V+T[&|ZJ}\29p:t67@y\30\12ӡ4T$R~n~i$Rwۡ\23)szO\7 6E\20\0311 d\\\19LZ?5v\3vn%΍\5\25a\7` H\15s;_I?\17\27ksb7Fp~#\25)۟ڍ\7|7:C|kiCpi9N^έƋv턪t<lrx;SvwPQJ0m\26ϋ3J_*Rl>/\16{I\7xM^A$hS\26%\6\7\20fR$W|q3%M^U%]_FeT,B\0ϼ#4㏱EaGuVn3H5XWt(Ti7Uc7`\21}lR\28q\313#+s>\23Wѣ\13}z\24ۋ~4ŞD>\28CM\7%(c8@~cޏ9f\27\02693Qg\11C\27%X?~v[\11j7k7xG`O%\27H.Ku*\
-p\11:g:Ч\4\127q\116\11H֠\29suarY\18:&ɩ?\5QaiPU5e\27]M\0264Vڤ+aK\30v5lnD\18\6S2k&5E\5ź'yV/+\7\7\6NcǴ\15)nBG\31.Gz\0033&m=Izi\24V(_b\18}Z#h^rL\71ȟ\22:\27}9U)sP\7!%\27X4/9N/&?/,5\25\13\24\4\6T\17LɆq\26Vƭ\12Qjq\25?%{I4\14e,j6\26g\31\25\8lyA8$\17ۍ\22Ư\29-`Dz\26-H6iඪ\0045VGt=(Q\280ðY$)rs)hh5\4)HZe9\18\14Uճ@Ҕzii;*@\
-Zb/\25[^ΠH8)3)bb\20\31An11\17t;[s*8\12+<-E\"(_\12#9@S.籃$>2i9pQI9L4]lbSK\0253f὎o]S\11;T@ɀݼ'\26=1oS.xV-X2\7\34{W=\19\27\1]V^9r\24k;6-=ػÎ3cmb-8\22.;_u\25=Ω5t0e\13(m$&I@j\21t\"(\6aݧa\31=\
-*e\13-\25\1VA6p&w\6\27}s\26:ͭR4Ғ\6w6x\17\0223y\18EފL\31'QBWAQ\24\
-\12a3Ba{}hsp\127\14G\127c99\8?FtK=\21dl1*u`\1E=ߘrb5sN\0198jNaYh]W;)k6\0295je\15L\21\21r\13zjvok0d\24Ҹo+r][Es\6-\0052.&\31QJ\13\13\0187cK\24{C\28\27$shYR#K\13\25\34snMC\13o[;ai\7lX\25XW|RL=+\22:Ղ\\n0r\29N\1w\18Aq+dãɜv\27\12\24sjxh4i\26ңV=uK#ٹ22ƱFP]\3\27&$nh/\3\
-\\Êx\1Pzݝ#Q\"\3 Á\9\17T\26w\15K\11\1qnC_IE\8jƣlC\7\15ey\13$;-\8RG%Z\233e`\12'PE`\
-ٕ\27gr\0127gGy\20SjH$t\11έf\2\"4Kn9RcX*0˷!Y^kyX\6\127Q!4g9R/\18gǩ21aHKȚ]L[dbg j,A\00065\14T,D\20l\26\28F\9B\21gk4\22:\23gwa\29y6o1*g d\4EIFlI\1]2ܪ\21ia`\17(TO\9\7:k;\20(ƚZq.ݘ$BubSӣ.\20y\22\4{>;C#޴ݵ1g\0174M\22Q{\20+UÛ({Sm\23Q̀邭te% d\"*\28(Ep+GO-M-QvҭR[.RJQ¥V\\\3v^'44\8\15j&\27S$Gj\29\1X;'$1uɎn\11$.\4b`…\0132*x\5:\6\6\17(,>F8,6Dq*'cuxl\12\9=\11u\13(A\1E\\\20e\29\0015t'4\"=\11\6\30iQ_A\130|p\127jmh%r\190g\13Or%\29\14Ly.\14e.N\0138gu=-'#مcd\20֯\7\3$Uqy/1.ۀۚf<&\15c%=g\2b\15<\29\28&Q*\21/SJD Q'EY\29rVCQE<eL\
-l}Z*2Ű+1Jb2nw;.!}@S\0170nok\9\9\18ٍ\7VmkDј\16ArNeYsD\5lH3\5WS&\"pXBoA4;8\31\29t#\4}Er\1p9]\28ID&!&dr\1_ԭ\29yN\12Su#*\23\30\9ʀgG%`ʑ7^e\0234m<ɮI2{Q\3R1\79N)Wpr2p\127{rꙥ#ue\1VM4=<^C|[P=@a3'Ia\1270ubBܙ\24<\15I\2\15p\1s\7%9\5\19G$}uV7\2a-g\0139^\6Ďpk\12zxʥx\26|})\
-AA\0132_\29u\127O\14>q\12!\11r(Mq\294q1̝IK_\26jl\25k\\MH֐V\5!V׊]\25Gɹ\1\11'Ae\29?\9LQ*E\186~!{ۜM\3>\24%#hz2^5l{0Qs7wP\31y\0!\31|\29\29\28CP\21>:p\27/<\
-vP\13\31zq\9}20@\11C@~A\254\")]V_\3']rCp̨\30_-<C\0127N\18\31\23@\24n:nךί\25GܻL<y\18_3|c\"\1\29K-n9WUے-}X\12p\3\23F-'ƮQ3\15^݀\19\
-du\29sʀVo-FӅ&\8K2ú\6f#2\21s[\
-B)ۊ\13]rF9\11\13\14MZ\7Tmha.*ޓ[\25z\5ue\\r\127Ī\3Z\29V\6&8\31˵9.#o@znQzcQ\0139(\2GvT\17X?B\14r\30f\24\27f\7\0)q\6\8>;)\29$\7j\2#aQn\21\7KKa\15\29\127[\141,~cE4]Z8R(&\
-'协\21\9q\11\18\0196\0134\30\24뚵jU\0204<EqaX\13xhG\23u1[`\8\7sqIN~'f\0<V\13@\0305\127$KCR\
-\127'}Œ\16ޯNձӻ7\6ԝ\23Wz\22|\29=D\14Z+wE_W]9j\13\19\13\0183>U[Ww\0x;пp1\11)8Tt^\13\19oh|k!\6\12+\
-o\8__\8/^y(S\2qY];Ε{qQ\84˯xT6}M_R\9qq'\\8l͍XppW\9gZRIc\"9G'5\29y\7WhY3C=A~HǭFzeWH\25ݠ\17H<-3\1S\13Y`]\127BAt\0057:ކidz'v80E}&0W\3\24\25cVp`aW\16\5#\30\307ٿ3\\8y1\29\24ۉh`Gf_\13G?9\30(9IC\6\15a\9\25sS@\8c|\7\11V\23\6\20=j\14ءc\19\7k7ե\22\12\12G.Wm\0yġU\17XJ]3TONm8܏Z@RM^\0<\30Jy͞\2956C\20\19o)(Pizy\23`%>\18҇;I\0\29A\31\
-=G\29W\"brI\127CNA.\7\8~_Lo]|iȕ!syG/:Ep\5w,F\"q\31\20t<#b!'×\4<2|%\23P_\3\28١=W\26#v\1u\11\27͂#<*'gԍQH\13j\0006\\}Pd\21v<\"\29x\17 ]ZkY\5jv7.œ;s\17z9k}\19cͨ\17v\8t\12\20`\17TɍE\15l\29wX\26l\24wbaKϗ2z3u(zOL>*?ޱއe\5`^\29\30\0\7!̘\\\24ig(T\12\17H\9WE|Gk#\14c>hgV2\22\12,\25X1!(SJqI\17f$f\20\20j\25u/Fˌ1?\2\"\21ki\0\11{\17(8N\9t~B\23kw1ab\1\6pƑ\11&o/0:\6_9򚙷TERH^e&cR86'nڵS8D*pfd+\11\22cE\30Z%(\"}GRTèwWw\31(-5+F26\24Pư,mo\\o\".Se\0oE)]nd\20\24\8exJQE\\\0262hYD\21n\25-{A\9(-/W-gY\"V1J 5(3\27\15OH)o\28\19.Gn@GYGFg(m1\18E\5t\13qY,nC\17j\15)j\6CC\7g\14.8|\2ab;l\\>\7AAų\24Fi\15\26#v_-RN\30N<Ŝ,ڱE-\1\17B\12\24X\19\16\212cp\31ԨI2\20\30\15\16hJP)\0S\22\28\16\1F\15qBsF\13'\0'y8`X]@J9Fa5ʥm8-\
-s7i4Azw\29V)Yh\25\12d\6s\6s&S:,F3\25\12P\25\15\25-WzI.,q4ĕD_+w\\\"_pCDw\13\26V\13I\16a-0g<g\0l\217х!\30\3wفu\22\29aA\3x:&xF/\18\19MN\11H9,s\6\15c\3p\28\21\3\13<P壄m8Oί\4|ԏ܋Q\8X\27G\0219\7asF\9VTO\25\15HP\127`ə\4\9)\26Rax,:j\7\211\127\3\0318\15\30Ntp7\9\22j%h4; %]\14oc4%x2s:u䨛\3!K\2zu\6{\25UL)q\17\17lP\"Ȁf``@\19\\9+G36c\71`Ҕ\12\1\"\5\1\15\21\
-Ha\21W\25>%\127FA\2}Od&!\18\
-\5\27O\\]\"A*έv4~1gla\3\4\"\
-//\847I7a{\13z\5\25לś$\30ޣ^{n=l\1,8=;CAt&xS\6\
-\2E܊{\30i{\30O{4W}\3(\9WK\1@,{;G>\23յ\0t]Gw13j\0h\7,(\7{\6\17\12\14fl8[\25\18\25{㙱\25ڌ_Ƙʌ]\31\17L^\21\1b5\12.'x\4\7S\\/\6tAj{`K\20wu\22\24o&|&n-؈'\1k\6?9(̔\1TMgiPK6.3-@h38F0W\12W3v\22sU}o\0\29On1Af\"\14/{<A[\01632J_Ti\23hjf \55#\11}Jb/\17RBf\
-\26p\27z*x\127;S\23ؼd/\20\5ZJ\17M9F<1Q6\15vMV1UPU\"pa\"b\0248:oZ9\16\28nymhy\20jos+\1!\0[ Trn/E\21ǯ\16gq\19_\2مak1ܡ`UgƫE7܉\29Ѡt\
-B\13+n\0-Lx-\19n8\28&\"*$ƥ@nd\12)\12rP&\11\4P\24 \8\28g\17Ei\1R\30PftP)xL7A\14tǻC^:Hc$$B\25_[\15\28\122gt\13\6]\23\
-ß+\\\53ymiyxC/We\5V\30\25=7\7\\ߧ`fꂽng!6\00889cI\27P.{s:Do9kg,cf\0186\
-x\1Z\0030A;[4%\7(k;\29\23T\305]H(\28<n'\23>{ԙ]\
-3t\"3\0253\116ޣ\
-*g\7\0073u1\6\7 \25!8|[@>#\24Дlo\11\17\0210(̝\31\1g\16^X@\26D.\18bt!FW\0262hg_s՜h5\23;t\0031\12?\28_\20x/r\0X`[v`X5\14\
-\30\21\30\3?Aʼn_\25{\11\0P\24li5\31X\2_}\0266n\14\\8\13t/0瘰\19S=\
-\1܀\1xŧM\31\\Jm-\23\19\
-)&D\21[c>̃υG߂\5ս:8A\"xD[:V\7\2\2X5nƚT!\28\22b!T\"t\16Q_\13\"\28D\4}X<v~?\23E\12\0\28\1\28<WӴG3.7\17p\136\29?79U*\9W1\28E<lc3Ey\20Oq\23\15f\19\
-Q2b\6G<.Ρ9g9\27\21\12d@\13hl\0232g\0208fejt\3\8Y\22\12-N\30yu>@\29@w\17\14]44[ql{M\16e\
-6\25'\\D<\
-'\25\3\15+(z\23\127\"\17^L9|E:ǁ\19\127\17`?\15\\y\"}P8 ɂ\9O~\9\15<\12#g?l6?ŴF\12t]k^Qj\\es>wq?wn\0179cp1L<\12FPH~X^W[䠊]4$5pɟ?&&͂Zrk^x\19p'4}\14i\14'k\27і\27\11,q\\ZVcŪyR/s/)bE{\21ڨ7\13a2hf\23\20]cM뇹?w^<b\27gL\0274d\3Ӹ\3X\"y%\22..`\26\8\13o~#`h\22h\\7\13^Ʀ99'\
-qG\19;yv4j.\15DXG|Y-⼑+\12\0122u݂V\16d*\02219ɜ\5\21-'l4\14\1351}\"wOG\17}PVq*.Pq|\17\23ӕ^/; &tR,ϙzh3;֘zmz\
-k.k}Unqշ\8\27N\11\28\0\30Q@\127#p20\14n\97^saͷ+̽\11ߩ\19)kYN>pHDpHJpHP`6k*$\14\0k/X(\16͹@쥎d\28Q}ٱ\26\28U͊:DGR\7\\\0253K&Tz\25$je}l\9\3G*5.1(Z\7\1\11\31d\15x\0+N@6b\191qKP9\3\7Y؝L\6+BޤO;tK\11`\27_ 6EY'{z[\28JCS\30џmKD\0\27P\1\14*\31-6.\"h\
-_IKyd]xpAs ~W3EzLFu1)\\\29\11\"\18\26\17\13OÝ\29He\221`/_+\11\127rayi\9`\1\2|/o7#<✢`d@\27\24>QN\25q\25B\21rA\17i\14q\20#G\23\26\95\25zeyTb\27\127\6\6\8[\27|\172w|JOP\7\8X0F{T۽\236$2\30ޣuֹ-H\1܉\19zބ4/\4<t1'\30\21Exa.F'\29\9-\16},2ySL Uܳ|6JBT\12rG\15\4\7}9<\
-@O\0162:q.\0Vs6\11r\1!ڂ\0\\Pӳ9\127\7\13~bEU^dHD`_\25\6}d\0254韸SŚyj|\"2\21\13z\0m#[S\22m81\21\21\19\6I\17Cԍ{hBtN%P̉\7\19\15K\
-cٯ\30\15b\0\17()\\Ӿ3wsw\17>E98I\24ʡ<b57ǭz\2v[ab_CLD3\0\7\31|\25-\8\12\80\27wveE\25GKV)ɣU*\24ִZ\31F\\\8 \24\\{u\25a4̙:I-:#\029367\26fcRY\30\260\16frR\22fΤ\127\22l\14)$۠sap\24hANT\16J\6LJ\21a2INQ`\07)w:\3CAaκG3\30'\
-2\11i\0305&ds6,\16jc\9\7¯\0ꉕ\29+ԈW\8YfD\22y0\
-$\20?n|Q<\8+\15,Ⅰ\1-k1y&Ld\127'〢[_\22\2_׿E8m2&#OC\124O\6\17\24\8K\
-_\24\23T\20Di\"\8?\31G\5F\
-\2*\11V_\5{g9OQTC\29ʈ-uʥ#,\12@c\13\13ɇ\20Upf\22\11\31i+]@-`\1삅\11\28\28\23,G]ళ`ނp\11\22n-䘷\4x`ND\13oQ\22en[\3ZxԐ\26\2b\5H\22,\3XS\2'\5N\11>x.\8bs\2w\11\24,px[x2Kk#`4E͂\15]ȢJߣ}\7\25܇a\20\11V\22`@\23-F`\8(f\0b\20\23wH=B,Rȅ@H9Nu\
-LQ\26\
-\11Ta\30\
-\16%K\20.J\0026$22\0110]\11VO\\0`O\1\11qZ>\127v!O\6E\9\24X\17\16m}J\9\11\13I\22E؝\22ak\11F\\*X4Ȑ|\24k\3@e\127i܄RF\0091s8\3hA\18a)o\"aw\22@fs~#@Qa\12\7Ԝ(\7_ \\00ɣ\2>:\29\11\14#X\\$\0260/\8EMu\9\21\30]B\29\4EK$8@r\9ϵKK蒴AdW\0i\26|Rؔ%\3#Bg\20\31\25\6A.^\25.\27W\1KL#;%\11\20\1\12T\12I\19\26~U\9Oh#7}{.\1v\18Uӳ\16㥨ſ쇴\27nq\20,\24\16@h0-T\25#rZK\\KpK%N{P\18M\23j+/vK\17\22ѣg\18\24%\30`廱\27$\16*\19m3\9k\3KV&sGYZ\17\27%?`xA\11:Dqm\29\3(څ=?.E\2rq\22lKᛴ\23.:JRMZ2QK.Xm,!*-\17sI\12/G>$\\X\6/RuԆ\2rq2uf\20۹\2>߭i&LjmYVqm*s%E]7Ǻۄh\26yD&S\0288o&\25{%c\27L\24F]ӈWnZ`L~\165%a-\157@L1A\127?g\1?\2-(*\28\19ta\6z&&X4?橻\17\20ِ\43w^6\22\25K~\1M͸\25{u5:G!~C\19(cs$'\
-\0253O!\28*v/g)\6*y\1\9My\5TpuFgL-I\1t%kXQs.r\0SX\28Zy\28٣\26\16\26BL~G\11U\0]jYlqQ\30;*rE\22(Rm'\29rZFccu\0037ߌZ),\14\22;$lld\
-whѲ\31\0\12M\"'\"f<\15\2o\23\29>,\0250SU\22=\2\
-5F\0r`2|cҞ]:^jQl5=\0;G*yj7\26ђ^s*\11x\5\21ŘxH\19k‡!\11\29v\19_I՞7\30\13w@twpK#5i4&c\25M@ى*\\΅\15/Y!w}\5ōV4\0276L4\11,)z7X$\"m\28KLND^G9OP^˹<#3cAD'/.\2c/\14n\1\23\
-OPm`qԖDh'ʠ(\17M_s\"į\30ەP')B4<rČ*of5$\30'qc\0265\93\1nxn\24&\17 EAq\9\29%-c\18yK0=\6lOg`#fޓ+\19湔\27\5̊i}8z\0xҐj>\22-\8\25BSp'\30X{\22mޣ7z^TIo)Fˡ6.5Gܲ\14\28GnT\1.޵\22\\Њ\11RqVԶ;\307\7\27\9mϯ@3MO;ט\25m\8\14/\1|\18\3\26\257,\27=ބR\0*\
-b\2H5K)\9wTEA\7bCq+\6-\"w^\30ڊnȒ\4sO\3+zu\17\16g)svrT\"\16*ؚ\29&r\13b\11\29oL^ל\24G~uc)^\26QpC\
-D/,\23U+%nQ[^\7iihr/\28$\26E\22,wiT\
-4E_l'~Eۦԝ\29es'K9DD@'i\25å>\\c\4\6eZo\8J\"\200%D/o\22A{27^ҽ$\25O\23KC;\31L5$\"\29)TV癒UEd%#!\31\3\1278\13\0_]W\25j\
-o\11\2m\19\26\5\18V\13jH\
-\23PZA\11}I\\B.\8(%D2͇&\\\31$?aˉ\23\12+2Ս\8ٯ3v\29)\5*70a\17\127\2\23b\17Ŋ=#XF\3RZ?\6V|j\71P\2\9\3RC9\0t=b+w\21:WY\9\7ոr[vŮ}Wr\42` cb@?\26mxV0\0#t\15!-l\20p0\12}(Zh\26wD\23+ײg\6-d\23T\25J\127Z{\5\"F\1=\30VrOx\5[\2u\28x\11\11\17\161%IdW<xun\27\8\15)\3=#\20_]\18\0239\26\4\29qGu\24\9{HW<j1:H\16\14@ŞG`tj+\2P\17RCn4&ąl&n\6\0]G>u=TI\19˰\18D\18\6Tl\8\29:]oh8k{z%HѠ̇\26r\13s7C%M1z&rDђJͬVx4\2q2\8\21\7\\h4{j\0074\12\12(GJ[L`\\oʸ-\17u\22\5\21WO#+?NrZT7Q~a\31Zf\14Y7\4[dl\29!@Ms\5V\21s+~iyZY/\21C3h\23@ފQ\25B\5\3%\\WZfjP\7]V\\[|t-Ʈ0aq\11Glc\2/aB\26\9?G\11#\19:\0203\11?EA\11\2P\\Эa5\22NS\26B\113a\1p&\11j\",\6H-iM~\0133/Q ,tkyD>'r\30z0Ki3>0w}C{\4G\21帩>\0085֤9y挮\1MU\24\30D^knP\0069h'6\0F((\\C\25d-bm\0004[Qż5\17@H\13O\18M5k\26X杶,\5,8e8%B\21G\3]\15vLSX\31/\\ڔ`S\24j(Y\5*6^(R\28B\25HB|-&\23y\7\3 kHw=r\27\31i)g#(ӏX\127Z|d\12\0124.53n\
-\11E\22=Z·\2T\13;\7xKuZ]޹7d\20\12O40v4\00595]d\8s˯i\23\17:ԯ(b\25T=&t/\0\21LCPT9Q\0166\115F1\25.d\"x,mQ\"9'L\1\26\2>9p{q\7\29\16\14\9p\\\16^\24j/\26n*\0=&n\127'ú\0011j'{p=\
-\1\9\
-ƚ;1Y\0CGD-C\10N5:?sCۚ9|\7KLѠ(\"LjGG\1}\25\6\18Zq\11\6\14k_\25;R\
-vA!+:\21\25]F*|DTN0ppxw\0\9h+\18PZ.XE\11^v.ZfE,:**\25FEwnj\11'ɭ:A\127\6Ѝ8И\21TP4\13e\19\"\28\29ʆtxOZӁ$gc\4}-3O\"Etx\9ę(\29\17PЏ(\27n=@\3\7=k\246\13L_x\31\5?ƾ\23sseqob\12:“\26^uLVw@5f\13Bp\0:\30o|\9\127F\281od0\18|7V\29Q;ZCdv<kv\22U\19\12!m\30_\19\24X\25w\23y=]\8|yʱ\14IFэȂQ(¯µT\0225Ft\16{?wx\
-9\0UX\14\31\23a/\7,2\11\4\8pm\16t\0\12Qo'X\2\16\30q8\5|\2\\;o|\19,\30U>\26g\0062\2\0{sES'Ekwݯ0H0ש\4+\119:5g_;s\19r(\\\31\8E,\0]9Q\11d1W:Oe\24Q\8G\1^\9\24#*㘙G8אA5\2.\16HS\1\16=b\127`,LE5e\15r\8E0m-#\86au]Fܨ\2홎MXC8+\9\13+iT\11u\3@(~=fxaiˆ%^\27RmxC#φ?\27>opD߰\29E\0271*`3R[\16:\210b\367Y󏰥l`\17HT6\16Slpp\3N|\3؆\29l#,J\"\17|;4ܰyÑX\24k\27.)\30ye\27`<$4[@w#\18Y`d\0o\9>`Ef8-<F\20(-TbB\14;+Eopy\26B;\16ǥ\29\12i\6\1<E \3}E\0Ҿ0Y3 o=_Vbk\20\13~To7͆y[z#]h\30\13R)l\15\6\27ܷ\16\29\5%|&\15\23f&f\"ޔ\5\26q(\11\0K\6V\12,d5\0138\0136\13?amyE\
-ބhQ\0*(۹<k2戴\29#a*\27:+n\1|\9\30\163\28]\19k\11\28#7\22L:\27i݀ˆI\28.USS+pGm\8\28Aɒ\31}w\22N\6^\28볃~F\20=\1367\30߀k~Fo\19\127pk\1_a_@\27Y\11\27LG~A)+Ё1\15C\127#)B\16|\27XиvK۠q:\25\31(aXm~Ŧ\8V- Y:W\21cWQq\\gw)\9[|fag\12?a\12\29ٵ<9qfo\299w68]\12\24N\127g'ӻ\5ſS\11\17GO`\27}%/x#sN\2\7VwHg~n\"\16Na\4\16י\3VfW$\0315w\3q\12;t\6?k,a{̜J&͸\7#t\15R^\3SƜWCLm7\0\0079\2)\29XD+-\5\16\14?\13\21h\24d72c\0bh3r\\2\" +\12T\6)A\6~.N&%\27Lܽ\7G\27L0s80\\32\26-J\3\23(Y3RH\\cjG^QkY\6!gז\25NV^\
-jIX\8,a7\20hѾD*6U\28#\0\25蔕\121\28\0*m\0012\17m4>ײ\1Պa\08eoK\17L|mZCIp-+\19LShQS\12'\0127e\25N8\27\5\29x\1\20O\11\25\3\0056nt\
-F_.\1Dor\71pc\14OrŨ\26\29^sc\0P\23\3\2tR!I]Μ\9\127opN\22psAK;!=f(8Nõ2\18o\127K\20\14td\22.e|\23p\3XӾ!W]߸g`\0\30\4\0(Y7o\13T+/aQ[ܾ\
-V^\25;\9i\8e\8\21\12\12\30\
-z1J\19\14<C?gF$j\24;։7F`\3!r`ob8:Ahx\23S\30Mf/\3\12!]yx_\19\25\25\
-\25K\24(\24׭H1\"m.\129\11!9#?g|j\13\5r5\23/\25\1\3\24DlFE\20B\24+fT\0VF\7,\8VژJ\24l&n\0063q\20ӶV\22\20+U\0217OS:\20'<;\3jVҊ\21TkRi\29]Un*swS\2\28 \"΍̍\52˶;1|Eґ\127e\21\25D0\113g\16_dpDH,2J#N\25\4\17x\30qió@HsH\31\25\13o+8<N<\27@8` A}\17Cl?,-<-\"F.Gȹ+<\31r@r?\17O,!t9bsb\19儮<l99@e{>r99\12p\6\14bf\0255>\5f\28*\2qB\5\22g,\\L-\58{\23ip茄QwWBX\25\"siwx\2\\~(jPWnM\
-W\18~\2;M>\26Q&Vo3\127ItN\23h5\5c\8\29t9\31{~\9E\26\24͡ō^0.Z\24\0!P\1\6O7%K·5\5`r<j#WF5\28%\3GW6MMh=a+A8k\26/p_\19\1^(}77.X!ί\17\0wtHg\0257)2̬d5Yj>\4x{\14)^β\\u,\26#1o牼|V2ЊΖ\0>$+E08\17Q;'%\9R\6K\13vN\0073\
-\\\1t)`_&TMC1հN\11-}HN\"6o`wQ\301-\13(\127p\23&5E\19.V!\9T\0261j$VjW:ҸOj]te\19XA9\11\7g\14;ؤNQM\1[Q*\24\7\0050\22XtcL\13%P`.bxN\0F\13_.?fł)\24\\2pfuĎnh\21w=3㾞\19cLKzu:\30,\20>@v\5ԙ\7Mӹs\2\24MB04{t\16~-x\0͹\7G~DU=f<K7K\\*YH(\29V#9m\15F6(\17kZ\3-{ysϘ&ѴsJ#%$\16S\28b\26i_a_\\_-/\8L\7\11{\15gK\7\25~sx\127\279@30:/vEB2a12\12_5@1\\ph}li$cӃ\
-n$n-/&~0\26idD׸ \2|I>o.훺\8aqjP#ج\3(V\20c)\30=K>\16<Σ>\26j\30X<Y\0ȥ=_37[\9&)|\30a+\9x\25\20ՄXt\21eN@)I\18+\31HR^epL\9O:pc5i8{pe{\2go2ң\2A\23+WpB1:O_`1\28\15FdLh\25\28\6X9@h\127;'ۻ\28ӝM*ʙ7\"1R\29FU\27\18JC2r\11Fu\12\17::\7֐\8;\27fZ^6\5\23w\127+*\26n\17\20K|4h \12\17g_AW\22Լ%\21wн$\14K\2\\(\18;$ġj\12_\24RNB5K;@KA'0P\11\0O\8e\8\5\7g\3pg\12NFB:5ֈD*\19\0DT&r\27raD\18p\4\15>\205\0\4ibplx.$\\\18tyg^Yw>\5\7$*\14>*;\29\17^\23*BlԠ\27MkF4\19\12G\8\27LZm]1ŝ?csԎ*1\27\2rs>߆R\23g*BT\20/1쟆\19«?w̓r᪦*RXc@O|\23k;>.\\='ss\30$\25d9\30\"\2%G\23*ӺP\16\19{\6%9\27бY\2W\26#\21Oo\1E`rh>\4EVC@\4wcE\26\0069f\28j9vUW`Y)`fR%^\27KVok\6{bm`\21sM\23>ԩsݫ^\22sV I\9\0220)$w'9;3wQ\14kh\13'\\:;{ΡC\17#F\14s:\3HRPJ\149\\\21e&k\0\7\17$w(XD;.36WYc$gWhQkh0ُd(X89D*P:EY?\4(9tN\19zynH#h9\28\67q~L\12#`=2d\0254^J\15=簸>C{Y\\d\1?\5\23\16<\111^\17 .\28\4I\8\5!g|\6l\31^3GS^)ڰ1=\23gv\29Wބd\20\\3>3[H<K\6Ǚg>?\8\26_;#lZ3̥\2 \16_<J3,(=C\23|\25YA<=\8FX+*r%y\5W_\0\20kWό>Cwvҽr\9̃\5@E/\938s=\3\135\24\17\24\30:q/`\3qvzƹ';F\17Fpϐ=\7Y8DzLf\6\17.\16:h\8\8o\11aF7\0^=CٽCL7SZ\7\28g愞<3L׬\293?z\
-|Y\46dxg\20'yvptv\2bB:*jZs&lj\7[\6U\"Ti\8D\25<d8\15\29JBsΏu\19S[,x\"\13\19r\27\22'-oŠo\27fVʸ\15@\25\127oKm1w\"\7+|h\22:\17oUgnw!\3Q\1Fʃ,缻z\20\31}\3\16\0$y~B\15\\ n\9@%\\x\"\17\25\1܇\5%\13\23P`PFMV\11\61r\16^fT,W&%\5ϯn`\
-&(5`B%REnim܈5'H%\3\21\3\9H\29'[|lʒ5@q\19ypvyRwBc%YG!\12Rp)Մݲs-3\\!Ι`N@ӈ\30.s\13U\27_\13m\12nZ,eMtgCw\27f^\\\15hk+VC*K\1ВѢg4g\\3\14\0׀\1k`%\0{dN`%]>rw\
-`n`nl3\280\1&\1[\30EI\22mya-\17\23b~Bl%o-u3o.\
-Sm9\30\14[8yqL\3\11ހdXхV\137WښZ)\302<8@\5\21\0*@)8YeT`\"elKc]WvD<\11PO#(\20ce\29-!?\19/L\15\24\6my8u/\127|\11\9\0;-v\14\14\2\15c`_\
-\13%3B \2'Ҍew\"pqp\7ѿV)t8ni\25Z\28wq\21\"(7+3r9\18/ԐQPk!\\Z0|\17рMCbf0e\13nE\243\13l#v<\3m\18ב\19fe2\\o\17v\22^\\F+4:њ\30+\0250H\127\21\3w\14,b\11!6A2?\12@+\14Q\21?\14te\5tn\4\5@Pũ+\29\2{Es݂eʚaݲ\0o\0256E\118\0:1Z-4{-\31\21X1\6\13\12넸r2\14Ȟខ;Vc8h\29z\1;\26xW;QgV\1\246N_\16gN\29\11\9\22[V\14\28\31x\3F_٩e\20h;̂\29k;6VG\5ۊC\5P\26Y;>uXÍHk\0i)\0191\14]pK\1[:Ϟ\9G>/dc`\1&EaBa\9ou%\0201;o<Fd\127ljMr6Y\8Ug\4p'w̩q}u>I\28FVFO.\24\5ׁ]|a@Yžc4?.\14\4VUa .8(ٲ\20O\4QB1\20\5RJ\13\5\6N\20S>\7\15s 8KH\30vA |U߲\22fV[{ٲ\22w\4[)يvȔ)o;g?*e\25\30\23nKS­+2ϹB\7aS\1\17\0205wݷb\22p08Xpf\26wrQmf+U&\14\11\14Qr\13ٕ\
-J*j|_A*\189-d~n{Eca\22hh^X\"@:%JP,[G^4\24z\28tV6Oxk\9\4>Ꝑq\
-\7Á4`ԁ$\7ڒO\22Җva\28`PY\9lA\15=\28K\11\0@r,(\18Sπw\6x`K*\17\
-#!\29u\16\127X`[6./-7>B\27VRԺV,(\15/-<\0'0pD\2u|<\0<\12T\12\4,\28!J|\21Q/\"r, ='_\"\0\23dusLbU?J_Hqӵ:մ-\21.J4Ҥ\5S;w\29\5\13-[OC# KEtGʠt&{!E99N$M~P\28\11O\16bwp5{\24:P\3\31i\\-s1=\11'.3\20'\13zn\
-<*Q:NsڜnM01CŘv\29%3\0\20:3MĂ[lo6,1\4\17\7M#7\17ޓ>JpN\11O=d\23\3--ơ:\6aA\22\19[<%v_h><5!/\"=\0X\27G-/\18\"BDŽ#^\16j5\4\22a\29\"g\30\27[\0Sja3\23M&\25\31\5NO\0zGiQ{\13~ychr\5\30B\21\14\19a\0Dy0o\30F1I\0\17\0) r\14\27x|\28+C/%\23\7/q1\18\19\13G1\127s\233T\8WYa}\25'\31u\4{Q\23\30\1278\17R.&t<Z\13]7/\\V\3<*\29\25\15\14mWB\19/r:\24\17@Ņ>kH\28៸xA\26\19MaaLhr\2106>i=\
-aA\23~T\1b_/2tb+&\26v.kj<JZ3a\17ቫ}m\23vVE|Gx\7T\21\11;s\"*Z\0\1ݗ uF(s\25\18J\15\12\7r\13Ab\5r\17B¤;\14@]\24x\5P1zhzzrΨJncc_\20I\4\8)=\27&RB(c/đO\29̰\21W\15v\"܍B^\8BP:L\11y%RH?iP1vAv--rJ\2(}c\4KE\21\18m\\a\\\24o.KaF\24:yV5\0 *\16/\22aI*f땥*)v\11BpߢHaLdi\1\7UC%6\"\22l\24\7aŞ\16\1E\19\28Bd\69T!E\20\31\13\3 \0058\23\1270\0030j\5\243˄3t\1\19\17k\11\23n)x\28Oז\127S\30@ߑ\20'\20Y\127\29$`Ë:\2s{\17lU\2\21^\5\0_\0137B\1Ҽ\8^3K\21ҁḊ\23V6#;<\30Oԭ\17l\11\13ą'L\6IO(Z@ô`Bv\1IK\192RY}U\0/\20v\0hֿ\\˜'r>]{ʗ\5+_\22:6\8\9?W\23T\
-) <%\16U3bu/i1\13Ю(A\13\14\18w%\127g΢\23)I\15>`g\18_@\13\18\127Mؤ\16e\12JAXrW_)\11$\15F\29r.\11qZp{!fO1\"\9o,c\22֊\17^6B\13\14\6|\0\12\19++`q\18Fv\
-&]\5|,V$ z;1$g\13BS\28;$t\3~eK?~QKW\31ule֟y8:\14#\22HZ3\2UAχ3ݹqPleiO\8}/kU1~fs\9\0317V\5\13\20\24b=q\31\28\24T\30\26EI\4$\2g_\6:.\\[l\11\3\1|jy\30]\127\21\11^2*~\21PpO\0\23\23L`YȮDJ1/\29D\14U\2X@`u9I.\13t\8ȕ>.L\22b9^G~IQ(\16mY\26uc\4&uG~M#6ιLa)ԥL\24Ɉ@3Z^r\0144ҿ:}r\22P/-[F\25\6w\17\21=\19;#_x/Dxauh^\\_Ô\5.u4ӎ*\19U\1r_)cQ)Q!\19a)nEO6;\173@\21`ܦ>\\Qk\8s\27\31R%7!$\3@WA\9jt88N5UJxH;\1oiZv'\12/\14[9wƏ\9\20WDɗiC{`Hm:nN\29J\6?[S\12_&˕X7\24@[HKT]͑kZbV/flsϼvu\13-|{\20=Uq}\30;9\14>P;[h\02800)GU1Ό<wWHB;GbӒDWqlD\5\2zshE\20ho:swݢ3Ux\27\277f\6z\
-94η@\179M@\5`#Ν\19AVAG\
-\\<֌:0\9`3+e\16e#HпH\30m\214\\\24ޘ\4(RӌQX\20\21\\;v\"\18\\g\0ZOV\2_1y\19\0=V6R|N\20Nh9PAήfI\3\"\29&H$6yGЊ]½{V@y`y\
-\0044\0ѷ)\7\
-8\
-苢;4Op.\0.\2/W\2BD\0bÂ\23f$vW\22<OŇ'z\4Q (;!\5\\iks(r\2?}|dՔ\127~A5\17\182rJ<\13R\29Aj\17\13$w\18U)r\20\20\2hȕ2pl)-\1[/\19J\0077)'8|z.?(\4\12]74A\\\30\24r\14lIʨ\22v\
-0\26~q^\12\26%)*n5}eoǖj\7}\181nRžQzgH,ߛ-id\31M?\4)QG7L!.coz\7:X\20Z\
-ol;-.rK@<i1\5Cdn6^XiS1\20ڣwV\29\12Q\0g>H!QtA\1^yq:\16l\7)ٴ3!/\8>*\2T*\2[g\29a\8J\6(\14k$E\19cySօC\17)\13A(\127F;7\28ҭ\13#F(nA+\2hocqXf7\15hs:g}ۍ%-t/X`)YJ|e(\4\15,@e\19~Pd{\18%sY\2˨\3K\18\4\6\9Ek\21js0\0276}&\14Jy#)\13d)9X\23\26\23؅z4O\12<aUНq9\26\14p:BLQ󬉮\17\27(gvl:ˈ<~td;LH8|gM]\16N<1\8_=#E:8\0F\22\21qJ)K.g\16\25n\29|c3+3\3{T!\20t\14\14VǠ\\8\28|=*/ָx\13\8̕\11jã3ss.\22j/UW%_=\26\26BEǠ5ʖgF-8\21qԈ{~Kd&F\13{RC-Wq\23`_4F\11\5gx+3Òc\26Pq9b\22Z-\22X\22\13.^q+67\30-=\\_Q\18wԥ(n\26O\9%\17nl<$[\18X}L\25\27\19N\
-ؠ߂D\27)\20=t;\15VFڵy!*\24\7.W\17&/Yڕ\8.}N%){za7%:)s\0\4V]D\27:nt\22P{ۂv&S\13yKQ`8O4ij\21SS+\29\19\127h\19.K\0265\14ܫ|\6\\iuq~%J\7I1s4\\ dfO\6]\5;vA\20G`ؒ\0147Z\0N잭dmRv\0xa\14<\17H{לC!!\26^\293q\0173<T#_ye#{ g\23\7y\9ΥQx]}DU\13etoƖT\1q\12\7f5_\0291\24\29g-_<\2R~֐\24|Ie\13L\14!\2Ñ\29<e\0091z0zO\0\12w\29<zĽvܺ(Xٮ+R2K]X7\127;eR܁x\30\3֕Uw\26t9 h^\0\4\21\15AcZEt!p\21Xb\16oF/\"\7~B{\19x8)QC5U8\
-ո$\23%O\12{댔\
-߱0(\
-+_K@\8wLEfR\4%OtGwH\9{xl\24;yq\11æ#L*m[\22tK\12+1\3\11\0153WS-+F\12\31Q\22^\24\8\14\29ݞ!?-\3:\17Þ{:\25\21z\
-lWY`u\21\4u\11]#`\\̙\
-!u\16dDKCMg1v)7Ƶ@FcgAYqe4OI\12\\\20\18AH\23\18.`\15\31\21\270[\127`/\14n=\23\16'E\2\7}{\31Ȋ>\1(x-o!9*q\24\1:Dq]:&\
-Ƿ\
-\18R\15\17BFR4\5^\12\16Į@iZ\20:nNhWQ)\27i<V\11\
-'%<)ϓ0(̥0o}E\18PJ\11)|f\13\
-c|Up(\15p1{U77L.WJ\21n\5]0GM\5\28]gGAJUwjа\\Ÿ*\2Z(\17\0172NLu_6\0D#t\0165Qg\7P(\14:?B\5\
-Ρ\18\11͎\20\7^9\9S\4k\"ƫߐb\"\15Z.\"=6t!\21enp\23U6zLUgaջgl>\29Ʃ5\81Q}\6J}\2\21uL\24r_&j[]:BP==k\30\13InT\7B9\19B{GPw2MTjV,\2\0vmA!\12\7kzHS\2FWUrvj\11:\6s簍\0275|\31\88m]\11\281RR\29Q9\0\21B\13O\19Υ;q\9\17\0ߐ8?t\15\127 mm̅z\22\2\22-\127cIώ܈?;\1׎NRmd[%z06j;y\3[\29 V\7&f9]M\20@r\9\28E'K\26-P:%l;\2\6=C!H5֋#\14l\8;\"\24c}&\30\24(\6c\24z\0GU\14xz{2=so\19g,\72x;ċW\0I%\20w\5o2l(x7AsZX4Vk\50_o\23>;Է\17\20;wk4^׫e|2e8Y \30&0\8m*\23Ì\11t6H5d«;^\21cCfnc}`\8,M1iG4MtU_\6q>å)h\14M(!t\21\2\27Y=-ڭ\24STP:Kf\24\19:KK[.:6:wL޳fmbGIV`x>\\nLgqnN]{cP\7\9[\15\24]Z{[ںsC-]O\14\3s~9-H[Z\16-\28\\8IQQޡn\2d2mQ3f<\25U:T-XLF}$R5\23zsr\24mm6NfMK\1\30>H#U\29QJx,<Av1\20o:q\9pW|2ݒ6ᘧ#h(\0\9#ݟ\30i\8\25;.U8-\133d뢛\23>9ۏvˑ\11^G[,E\14զ\5|VXǛvi\17ɜ>\28HQGPL'\27sjSV{{{Kl\14pI9!tGV\14>{8\23.`\11冻b\20wX~;\17pF\29ɮyű>\29\24[ \11X?K_FOu\1k\14g܎\9%i\11i\26_\24\1279qwzcU7Ov\13*\25\16\5\0293x\11\31jUN4bavP\8/){:j}uTD\5\127RHRLb6(:\\\21?\1L/X0F\24\25ppEE\20Nff19'\\\27_!k'\26+yz5=\9AR\5\29O\0086]Th\17\13U\58:TO\31v(/iҝ8\24xQE.\12£\22s\4s\20>:v8:ꏎ99>\127tcwZ;*Q;\27SZnE8N_u\29r\28tei\15]'Uh?#U\27\12Ǐ$\21G8K\3/H\7h'Pϸ`B\5MdR[vN6Mx֓Lv\14<K\26+l)vߓ\3\17Y{c\6>_\29Ickz\263ez\12~T偒\1\8L^R\9yWءn\14\20\2RҜêœ\12\27M/\24FV[MVo\5|\"L3\0\14f&{Y\26@5Mm5T-\21g<\31Ժ\26\0067\11kCx?`g}u\25}3@*\286iB1Ӆ\"tzD'wI;F\25K]j.9K}\27u\
-g7FT~\
-:7\0( T\9]C\"\25lwꜻuK\"Ȗюޞ3\5\29?\8Zi\0;Uj\0309\7{'\6\24F\24>XK=\0220.>\17ԏΪ3jBz;xJQJڮ\26q$\29v\8߹\0235v]8QaN]\26W}\25\15\11;r\0\19#l+N\22\20%67wOs\273g.~\24כ\19w\\ޠϰfinDiӾH1|Kyz]#,<G\20\23j'\23g\19\2!Ȫ*SG]P\22C\29\5 a׽\19cZL\0ؑC\5G\28`b@^\16rQC\0112L](QSik6y\30#rɆ\24\18mXY\14ϧ0\17`s⸚-5wU\6\3\29gw`Sw\0\13\27o\13+5\5Td\":F\0VԄ{wu•=s2\216,F5\17/\25iL\0q[\5\
-H\26<6'C\14Fh\0;XpIQ~\16\25TTr\24~\"7!Z\
-A\13|FƐby(`V\13]2<Rt8{3ݙ\0281^\16A\1m0JCnqv\22gG\15='7b炢S.E\23RW\0003i\4k3,;z\15\14\20hx\21\5e+b\23\18@aS-F_k2\189m\12\23vᶓ\23=l{ͨlBf~%\
-@@\18@z\20I+{\0228,ow5+|[[8\13BBP4{l}0\8\14ԗ\\\29\16\
->'xOS}D^;G1oa9ޡZR=8ڈ\20Ӷ0\24\8`\20U\
-\26oG\19^\25\7\1\\\27>`67ƀ5\",0EIYr,z{z\20fqd`\30G0b\2864>#\242|b7\13u\0294s\21ޕ\\\1HTyc\19c|1y\20|RL@Bل^\17`d*KєГඑHJ:\15o<\
-)\\(s\16\18Ɔ\22m^]_@\\[LeIWL\19\31E\5V8& q@\31L!Wg\21>Q,\11މ\13\19/\\\15-Ga<\27‘шm\19/eP#N`p\18R1ے\16Ey(D-$:\20w!(\21>s\127\22\18\11C\3\4\199[5L\27\12\\Q9%А$\28pţ.Zv\8EZ0<Z1oxgkŵ\0K]V\0B\30r.X+S\29;ډZ\3et/-D\0065\28\21)c;0Ŗ$\15ªLi\29\31\7\30T\17\28HPk.vmp\0037\26\16\127\11bZ)*;3mt?)\2W\14\19y$]Ph/ؒ)@G:;\28\28i)1C\29\\G) `~\30%u\\}nF}n1\11w,\0169ϾQڌp*\21&0b;t\25Ub\16g{x܉«{\23'P٢6\18\7a,\14\27\4\0097,z*Q0p#\29%\\\21&Ƭ\21TѶQxsa\"!AF\127gw9w`b]\15V\14z!\92\19mĉ\24\303?W\27{LxK\9fÜG\29ܹw]\11(U\127e\1{a1\\~°\2/pWb\31c_8d*<j7`w{\11\
-\110J+,9 \11[>ʷ(3n܈={NnDJ\127F\19yzb!GσH=j栛F\27\29G;)\21W`{z\"~\25\17-^t\14PR\8^v\17K 5\8>tT:\127NC_渵)L-\3\24o^\23\7\31,LyCڒT\13*r+<&OI_\"P\0150OR@\4\2J:\25콪_\8ۥ'$V\21\28\12s\27hh\24l\"cT)\30N1>vYٹS\31yg&t_qm3O|@[\18ɶpOȠu)\13u\74g\15ARM>*“fd}\4qB-Ў\11Wor\2*I#+k\14M8\5jR)\30oa9$W<^ۉOnH\22Oo[6a<\26\28\13|\15lEo\
-qcu a\1ݨx^18V`3>szӗwY$\29qdL⇵{qEA7bJs\9nJx\29{\2C\0167u\0\19r*\14>߃<cJ\30;\208aS\22':`L^'z\4\9>7` c\12qG\4@_\31E(\4\6M)\9\30n{y\18Z*\16\9N\0157r\31]x=}IMDŽ3-\25;\25'p*?\9ާ1boıN)~ba/\24\11.[;M\22\30,\19\"NkFҔxABS\4s`ɮ@:\4]fxݒgi.G\14hh\5@\0055\3><?+sS\21bW\29,\16\127\1A(v =?bx+۶gW1\127\15rQqI2i)'}odWTJ:h?\193\4*~\2529[鈧(q\29\0I6&\25.6o3;xf\5L 3\0A3\
-dG\30sZ\5\0254^\0\1N(>\127\11gS@~LNd4Y.zxy&\16\22-AttL晢F\21Hr\9Ugè柵D\28݉R\19bI\11g56*n>Z9\7?PC\28\2\25VsϢ5c`\25@\21d\24k\3F\22\26֨\6\31@\"g\12mg<^q\25\21+\14ꙻ\13ƣs\31OB\11n5\19\3<Nwb9ijY3ǧ;E[%\04BgӉj0m\"ַB<͂\25-+bh/e+οto'\25I\29L\14\2g\30J\29\23\28\19e\8#/348\2ـF\7^c1t|Re3FßE3:??8\9=/I,\14Eb#x3]D\\\19΃r1X[U\20\22o4{/\8Sju\5wsӳ\19,(\30X#iW\3LFZ<\5w\4l:\22='g\27\30?;\8p8I\25>q.zơ\25Gg\11\2C\12rjB\21>#@k\29\14nB߿AS;<22yQs{}O@܀?xx庑G\36d}Z\12\29q\25FO\
-:xx.\\aO,V?Ī\22Xb~'\22X\24~ba'fן\127b\23?b'_\7\12sOܜ-OlL~\14}qÞs`LO\127:ϴD\15N3\127\12ms\18L$JT܄\0123.,\20\2ĕ\16í\1<E*US\16 ?uʼ28G\6I5b6\20T \3>O$<L\5@n#\27\29Dy\5\3,,\12\127\26\0 2f&3I\29E0X\0D\11j\21ɾCMߘz|>\155\6{6b>csL\13#dԙK\6\\h \13\5\12`\29\9}pw\
-\27m8n߆<nĚ.\4\\D/\271̤{\30\31\5E\1\127\11h|\2'\6$?\20M6;\15\
-\29bRn\0M/ؿY$\26\17)\27l\\nZ\11MAÞљh-Q:~,\0T8-\29\1\\@Z`ؤY\\9o(\12Ɯݰ\13I#Wu[.\29%Sglh=\222}w߼K\
-7\"6g,66=4¥պ?ꓛ@jrT2\209Hp̌k.x˥\
-o;\\ksm[~\127\
-FXD*c9*鍋\8 \19\2la\3sfjswwY8*\
-ɵR\25^\9\0061\6,'ufgntPbӛ'C\30u\14\22p9q>\28x\9$3\29b=\29!ʑ\26^(\16aB\14^dInpB4\1%\23\"d-X5\26qCіmi6r\22j|ZNJ\0138\2\30oMݤVPV۰\13\27%\3d\12(?\24(\4ai<%L/3SVA7,wް$u\2S\5Q{֚rK\24<V5T!\20qVjCS='y{ShM\26XH\1273AyJM\5Fe\25\26޵m ЎOyeCnM7&5G\13>-HLu׈8q&^c˞Ϻ{|\1\5;\19ǙnA0'#]\15Q\31oR\12tDō3ݰآ]5lcFQ2\17_|Ʀ\22\15^bdÝ\59g#[\0285;mx\23ۋ+d!яLD\11x\"߈Dķ\23Gpu8%1%`o>s$\15qo\24\"qtz0P\16It\5Nb\12Yg\14?^$5\20$]m@jGIk\".y\19.;u\23N\1271\25U_\23\13/^=gӚކ\26Dާ.acRK;f\0097W=\30UJSҙ1u\29aL7 =snStק\5a x\21\31ADw\18c\
-1j'Az˸vP\19\127asJ7u>\\\6=@On\87\8\0279Icm\19] \17\27\8DԤSv˅b^6ME$En/'aĕqeJ\15F\3^ox\"]$l\21݆q\15@*\19T\4\15\9\11/*kyom\4ɭ-R\21-LȫwƟo$n-d<(VȞ\127繣e!]\11;xN\14\28S!\0068Y\
-\13Aϣi\31f\12729q;\27Wv [\0\13p\30;\14Iϟ>\0q\27!A\
-m3<>\22=fYR\25A\0c^\2\4\21v\31<16\27\12.NBa@\21/B4K\21?0,#g++ϊ\24Y<⨦Vt\0210B\\\28^\2e\8\1\25\0\25\0\31dq8\11M2?ݐʹK}]\0\31Q2FWl\\TTۑq(\29\293/|ڴQJ5n\22\14mqrsv)`v![c+ˠ;J\15+\19qRR/t˹\15丰b~p\12İ\25ujਯZh\26ck\19vrù~(\25\17y=ϲ\1?:]vߩrǸ˾2t%\17\0247;\14H\3;JzNA1D\23B\8a'h3tc\6)7\1(k$D\21\9ÉiNʾqZ#W=6\29qqDhշd]q.N\16lo\258mQ]h\3C8e\5Ս]?ʡ;H\21\\]E\16gvÐ.S~T\26\30qSB/!\7\19\21G[\9KeC% \6`\2c\3\11W\31ymƍ?,:(\31ؾ\\gZLRF\28k\4Q\0tq\11ަ\23\23ޙ\28L6hmA_q* \8#f熍7l3a=ܠ\127u\7$NPtPjịn\12o^\13\21Gǘݔa *X\17ik\12wW'\15H\4)0U\19>V$8VD'9+nǼ\17DkK\13\0237\0095رX$fQ6\4KK+\24\6C.q\29\6t#\0uXs\11w&tߤ\27kr\9k&\25dh\14\28\13j!\2\\\12F\31\21\\\19l|Ծ7c\11|\27krjnY\7\29KX`c\\\26UkTA-l*S\18׌F灜}\0174PC0s\9דD\27Q^w\19w\3%\13\27\25oUM$AXxDL\27\25g)\25\26\1(ʰ'hoHz좣\0263\24WB\16=\24|\15e\7e~\23<LI/\0IZ˶s\21\19)LQ~31>'\18\29GLH\31Iaf\6y\18o`\30O@\22\29']\13\1~7^&F73VP\3u{\24\5*JR\15T\2wޘ\24}dc\13[PhO!-\
-,\97oTH4\16R7V\0\26I}\1\07G^Fjp\27Z\\$\0011\11Vt+?+aY!KW򳢖|9P\27Ε](\3%\24yK\"\24\127U\19Tqo;6#I:O5b=~\11t^T4\26P)l\15\28_<@\21\50/Py&\11+徰^\11I/8\5\11\127!/_\\޷zmt?lF\19505\18/y\17Q\282Pg\20Jʅ&Y\0094\17ؼ\23\9\5׷/|;\23ٌ*!/80\11 _\5r\26Y4\26K@\2q\11Tn^b\7u\23]B\23\8>^D|\7*k\3o'\0303\1R\30Q\30\"\23$\23\27\28~O*q^1\21\26W%'\\J\23\11o_ ~q\24jaߪ\31^أW\4ÃK\15:/k\0236G{qΑ^y%zq/\9Ջ\21&<.%;ڜ\26?\14%ʅ\13TZh:IKDȝl\19fkt* Qj(25g\26\16V/\9\
-@\21W-n@\"`\\ &BY\19\12.A,\12-*ƻ-\17r}͖_J[\5#\\1g޺,#Ȱм;~ׯ ?B'<-}\11jINlaeItF\13T\14w_\9a0o\12\2V R\14k\14/]8\3\23]~S`g\\@\0k\5\"d/\3\24`Žn$\22:[\\\"lIǫeʗ 圹Ɗ\"Y\9P&\4i\9\20f\11IrJ5I\19\28\27\19ޒc#3\30`?[p\21,\25Z\6\25tKW4c\7I\28OZ7Z(SfV\11WX\11>f\26k2\24x'\\(\3\12:.+\23'\30!*\25\12z\191+0j禯F50z\27\19ð?\0/yd\25\19%֭oС:2\20s%Qn@\0{`\21\15SGAje\12778l\17At+M\25zJRkցa\5m\29\20f\27\9?\8Ӿ(o[8\0066\1\0%sJ[8\15\"\15>2PL{\14}a)Z(ؑoixOm\22\0pɭQ;\9U\0232>\11\4N;\
-\
-[@ܷ{\14$f[ZJ\12n=l\24<6f\253\8ʘS^\289s2\26qhS+pM\15w\127\6\30\17OD\11\2mX\"aL\184rѠ'\22b\9O\25d(CO\19\23u\245 dj\4o\3U5 t7\15\28sPx,ǨD#@|j~9k;\6堆\27=*&HVˌx\16|>\20LW\8\1cO:WZ3\18Lb*\5%wD^\4H\21>z\0.\11x7ʎȶ\1>\12 pb\8\19^ ]*Oy-FOa9T\0bJVb\7\17 \12W~\0185[]XB\9Ìíg´rbB\23\11'%-r*yPŜ$\0L]\7\21>PAj1r\18At3\13K_)'\21^\1\26\22Ŷc\28=\23J\15h;7:*\28\23\5f.E'\21\15_ԟ2\2\127qiWoP04W(xdO\1Sಜ\13\21൵J־9TsO9a\"f\30\"I\1r}E6GH\13c\44\26-\25\20\14T0)\\ļ2cr\0PwS\28B\\N\16\9uL&GR\20{=@\2\23;{Y)Mm\13lY\12q/Y綰ן6ں\25!adjmQoQ'S̨vV\298FTկ\3*\11\27KWxM\25\28.q|S'&'[B\2qs\2j%kWy`Z\28S\0e\
-RУ\183H\17\20\1nG\25oC1Z\26#uLآwآXGID\23l;\29\29NK-\5>|_Z \30&\17w-j\6ҫ\1<)hW\3ԝ\1\
-%Ar߹6.`63:ό[V\29\15\27I2))x\26\11ƙ?-*\74\20G1qlG`(J\4\5v\0\7YG\7\24\14\31\0275\17aGvB\"79i\19@\29Bb0YZ*D\18JN[pFE!7G.\24</\11\3&\1\6\28Ek%\0009/\23m)\273\28Bq7n74\28Z!\27W1\13CnF\12q\2oC\26pZ=cB S\28\4\22\127qP\";W,\0\31z\\zK\21\31<\24;\18\22\20̌wd\5҇\4Q҅0\\P\7`\1xZO쐎I\29~PP\
-$\30\31j0Kr_YH:\5\17<8'=g/B\18\5\24\15׵s^5;8|\26I\31n\
-%FY0Q\1ZB\25''':\0254\30#uL2!WJ.'͛*\30a\21f8&u\12|+MQ<\31T<¦GKVe~Y\28\11GqmxrΎ\13\7\31hn%\15b'\19I#S<(Fkx݌t\24.(56u\9;^INػ#\30f\8֜B<KɊ19;c)ǥ=[@{c\31!;qi@Zڂn\\Jgam\29Jg<\"`ّ|\18ߑ得~~;)\3E10I\24\18\23)8v2-H\29\24L$h\3c\\x75YkXy\0298\1B2URq؏ \7fH\6\21\13l\7\1u2MU@)HVI\0)sؼ.xӍG^O\31\0001̐׌3WP9G+'=}}cۊ\19o'Yt]7DRQ#-^OÔsmְ\
-)c\26vd\14Rgsu\13NإQ\14\\S\27W\9\3z0inlY\\\11\29$SfQ.r=3>Z\25/\24\24\5\20$_u~Qyr$75/r:ѐxo\15E\17K޻.\0BLT*\7hFAP\13#\3X2e1ycm<\")w׍V#?!+)q,RmY\5q˸\24>\11\29o@ZR\18qϸb[*zgK\"\3\8qi\0130\5\1\13pݳ\0c\216ď;܆pFqաe:Lo8\11v\27:tݨ-*8\03100r$=NșX;Hwqя}\31\31Ebq\23r[Bd\127xlmj\13\26㑣^@m\291h\25ub\19k,&֍\25\13\13k\12\28zrJN\0156=\29\29?\11>F;\
-}p+UGEXz`?z@OQ\18\22}Lz1*26\26W|\3\19{w Q\7=\15\2~Q%\30ёqg귖>!\15w\0Qx9\3iɿ7Ǐu`Mb\127-'/(cVp\127`%wNR\24]N/v\212_tn\3%4O=?L\1FϫN=(v氮Yfi\5ҔF˯k[O\27I-\127\31QO\13;\6\23ϚM'%=\23\"VX\7pt^\13\14jV|(/^#\\zct.\16].1I\21O\3)3h,Bǔ\26%\"\21\\~߆\6Z~_\13s\21\9J\0dȩ-4\24g~bB+[\14\18ay%>=\12INb\25xؙDBAn\8DAřq\2.[rq\19NV\26r\255O\\\19!uf\2|\17'ٚ\20\11x!\19>*^!\26\12712\19\11\\W,4\15\22X\2}jZ:斕yϯo\5\29\23v\25\\}SLS09ξ6w\14ar\23\0142O+CnG.2\26Ow$>Yr\29GMds\24Bhc!\25^K&F\24`@;%\13c7\4\4FJ]LxMsk8;.}/`bS>\23&Ct-ÉH\14\0319l&ح';D&kÖ\25ġi\22\0:m]dؼCT/:4hF\18\27Q\13u\15T\23\27$ded7d\29BB o+ԆZ,+k-:[uɴ>ذ\28\18{ͭ\22\29J\6c9\14\29mG\28\21\31_eP9G1wp\30?n>A\29g#),GrEX5f)\16^/ޏ\23TZ!7I(*P\16֙y\23h \
-\7\0228P;)SOşx\1N*]@} 1A\13B.o\29֡o]\2Y\24C5w4\19\9\30?0h@YƾL\5Nd?\3# \
-d\5\20\
-v%S@K\15\21RUUJ\20\5G~,%M\17\\\20R\188Gk'\19>(\5\22<\30\18\11g\12_8\3\127\26g$Bq_?P]m`\9;PNr\9Ä>Oh\23#Do~rfֿD$\29a'qX\20#5'R,Xl\11ή_\2x\29nТFk\9d3\0h\77a&G!*S\6\0251\19\29*EK͘\30s\13\5ߣ(x!{4B`\0\22P\19\14\9\\\"\19?S6\2C\22 7m5,Yk\20>0B<1g5\23~Oͯ8\13)Pr\11~UR@V}\2\26%\13L)S \26g\18\0`kB\23\1658y\28uhPEL2u?3Po\25v\16s[\\\166\21$:<s8sMI=Oi\19ɵ%\22_Gӽ\16O\31ch\127S&OT\0154\7:NE׻&;\17B\11@MJ\
-\17g0\29\0b\
-\31)u&Oԩz^\20{\\ew\31\23\23!>a\127\3u`\5z(S@ZslD0]#Ik\0z\1\6rԎ\6iB邝&/.Qj/sk|Z \6\9\"O8d!I\23 \16\13@\11\
-=ŏ\17QͭPx]iF[\23\21p\2b/Hb\0002\3pLx4\27T\18\0170\21,m*!gk&,0rn\"[i\\Vvwő(ڀ`NU\24?&mE\0116IM\17)Bǵqe\14懶5F\4JETQe\5K4TiH(HwD\15m\29uA'\7\28^/]RVu(\2iOb$f\11'-p‰f5bF,kDN\18Ő\5\4\5\4\5$\5$\5.x*\144N\0\"\12.رb1Lx@HW@Y@xV!\0264K\24P\26-'ES\17\21N\\\20\
-`g\00444=\"\30.\9F\"ëHzm\5A`T[+5 A\13s|hLr\0072BH\14Ngn10ʅ\2qݏ\12\18r\15\3\13㊰蒕bl~\47%G\18.\16l}1\23\19vVFV%?ż\127?D6iطe0\1741\28Zl+M\11\20H6:q1VB4\0306%I\15#kT-NfL%%)\6@k< \7SO[\25\3BI7h&b\1K4q.`J9\21R(-\6\6-Q.O^Zfr\23&eBR,f\13|aD<\4\6&8\12i4T!4\2OU\11\11~!s\19ya!k@M@ŧ\29e\19\\ )T\2\127rٗ38jgA~\0ݱpcQ(r0\25\28\25+D&\4p,x29\27\25\23|,u՘2X0\25\15Zq1ո\28o[7f\16+2^;;\\7e\27O6'\5(sq\9\\5eͣ\3ŽÆ:>+~c\16}\0\127`h\5\27\6Ӄ&\\}lj:\\\"\7X\1\132^{$rt.B\0062\199A\22w+\11\
-yqF=6k-JF٩\288&9.yOZkǣ\20ݕ\14t\265\27R]J\26F-F)(\21o\27r1 I]׮jjWܩ}_ğT[\9bwU{|FM}3﹘{/\6LW6\30s]i&fٻ\21m(8s\\\18y\24#$?V\2~GAtwB\"\23K&;5n\20\16\27oANr\\TrZԒ\5m*#dΌ)\127`輣\31TfJ\9;\6̃;Ϟo {WlKg\
-\0009$&O|\63\30Qlz:kv}`6\\s}!\\p%sK)\4OjG\0h$i\22~,K׮͗j>A0'@o\\6qLM\267fF7I8\19\14\0271J)`27N㘱$TX-q 59E#v\0{\9\19\30CQ?}\13gך\15}q\25\13)\15!0\28Nx\
-\31]+1):>b\26#h\
-\12}K\25\17(\20i\7Rt06\9pGT.fv·%C[tV\22qûϦ(ykx\14\19S\6YNß\28\23 ݧjSM\20S1,\30G<N\21\20#:RTF\13\31/n=i+}ܽ\23L8\23`\24pG}MI\13\
-WþA=28qˀ\25ioa^Ǹ\28Ekb=\28k#xYA=\0/ڮ缔\20\14?tҰ\127a;:2:0H$5,KQ\31uW\4\29:+\110Ѽ>8HZU%[|mcHh*K\8\17\13#}MOv\26%֜I>shUUҎǜ]IŪ$\14iUd\18AKi~V{l6\37\20=\9D|\0l$on'o=X\"`=\18\0tiNFH^o|Ke,zޒ/\309蛕\6Me\20׈ux\23ҡflf=wb\15(y\198\11@oA~U+cP=\25puh&39U\85ۃNSW\4j<F[%*Gv;\\\11N6H\8*Ə:&Ux(&d\0242\3#\16'υ\31q?YZ\3w\12Ά\27:&i~\9{(zWIVȚM\\=$*}t\2\30s/=Nׄ*Y\27k\1lأq\27/\16\\\22/K\12]1/2G&\5ec\17p ]{v10\9\26\208ˉA(0#\16#)\0,X\31\20!Eɥđ\
-y\11Pƚ\8[\15\12@끌!K֨*Yߨd}#~T\19\16#o42\14\14_\16\27X\17QoDI\"6xpܿߒHLuJ}Pj}8qqw\22\26PԀT\13LՀW$\"4YW6\25\19_X/nT\127\
-LS>-;TVQZEA\127BY%\11\18B%IЅ=%iJDB4\16\2z\23Q=Icrߌ\27\
-\23\
-O&Uu\27sS3\27X\15\"=[i`\18F\127z*1_8̫\8/\18\31~\16\11\18_\23NRZ\4QE~Q\0228N>\0:\20n\19񯡘[<iVR\127dW\\+32'z\13U\23nd\"\1\9!L;$YL$xOEWإ\5\15dUWCRVX+^T|Z2RA=B3H^US9\12ib褐\0TqJTwT\28b\
-Q\\\3qcZ%\14S\17\218\0216zXv\0B\7ë0\5\28<$m\17Oh\9Z<\3sZV \21D\9\21%WNp{^b*򀴡ۊr+㎞Qxy4DvL\20B<6sP)\1i\5\18FEJ\0243\31\2\
-Q%\"g\5J\21\25h\31Yj_qǪfqrWPx0r1*\19J\0\28\7\6o*\23,Bk)rT_/\0055\"u8r)/No9Z=[U1\
-\3LTSU8\16UQcQ\22\0257j\26nf?R SP/i\"\24C3\14)n]\22n6(u5aR;I1>30O\8<CO<Ԝ#Zc\28S\9˼|4wF)H6u?W\21;@j&\0? j\2>Uy8I=U;/\26nf~ʕ0\30̇)\1\1\11H\11&0qiߊFS\30sY1F%8\26O\27W+Vhc\21q\28yqXuO\27biy?\8\16/\7\20ڦ\22V* 7\22K*M]\26QtR\21J+JN\7l'v\31K´J>\
-ξPÆ7,-}\148+|&laX\5)F`\21^Ͱ\11z\0i\26L uoA\7\127(ľ\27(W:ϼ\25.A4'*嵊M\27\13O]\1_͛\0196T\24\
-\18̀p[\26B\27\20Kzc#ȫ\0ӟ\13޸\\_3w+\169y͉Oezfu\0135\19K2{\18=2L\9\20\27\2n8\27rçP>͊kz\9g\19l\23ZCI\19y\7p\27=2\4T\24\29[:k\0257\13W\12.>Hڑ3\13S\11ɹO\0U\276I\12r)r\22k=q\14ض뚳\5\16G\8\21t36gxp\21\"w\127#x\25's|?q?q?\15ԃ\31$BM\22y=^Ҕ\5?=7n%]z9\29\0\23_\16\5\21~A)/!Z& \22⑪kw\0021z\5u\30E+ܹT|Rɝˣ^nx\25rg\19+i\19WC?Wp\20.\5poScd\0058\253~\127i$^ԚZS\3\127m\3S<s~;ܕT$OE<Z7\20\17\0115\0J]+\29JBR#\9\127%iT\6=\9_I-N_\23)0Z|bW`\2XV3>5Lcq;-=WWt\0095b{zͩ\25\13H\2$I$؝\23\31.I~ݘw\19[wc}\23dIw)i.NM\3HK݄ˑwg:[1\15Bog3;\2r}VkJΞ-[Ҋ/*\\U]`_\\/\17J+8|tCAE\25d\29Ԝ\223J*\27N:(\30\2\2\25F؁^σb.\5;SIm+:o\26P2\24?Ip\17Z^ֲ\15\13\2u\7R@6x\24)4i@U<\4hPF/yQx/\2{+.;gw\25y<tO\24d\20w\6\118hV>1\
-O\25\22**>NT9a_\23|16o\0=繗f\8gf\4\11!zc]᪺Uu\5\17\21- \11p]n\28؍(eCp1\17\5\17\5xEJ+\1URs\9\14\01991NB=tAc,0@\1278is-L\6TED6\5J/^pK =b[\15\0289D.G,j9X_N) w]\7.\0054IGjO\8k,\
-\1I\5L:3aT\0\14\14>jr?;\12rQ@7&i\
-4'2.'wP.[+\0wZ<=j4Sjћ;NH\0to@}wn_q=\0T{0-\29dv,6Ќqw\12RG\30\127j\0n\5,ߋC9j{\22:~\1\2\11Wz{dK$ީ͚el\29:\14AV\17`ˠbPMv=KNnn \11\19%SQZ\15œ\22'(Y\1g2ԜQ\16Ph|\0135&MRUEf4䙃TA1H\28\18$\19\12ոP9\"5p/=tQ\25\6W\25vƣ\22v?q)fQLfగ\23\2FוKqY'əGf8$\31V\5oU0\11\7\7g\25˼O\25(yZuO1\
-x.]d\25;e\7f\1279~gƙsnˌڟ\19\31\\shԙDfBk'H\13\29\21p=\11ً)RA{0Lzm^;3\25E\29IHi3T\20;c;x1k}\8)'R;)IS=\13r\23=$2\25r\21R`\29\0075\26גQB\3\7THS)T\26ץ\0268jV\22T|3O\24U\0267—·o!\7\13\28$:Nا\9SE\1Z\3%e;:YD'ʜ\27[:\20NGRqӛELbi\5`}-s!\16<\14\12SJsFmH\11^\23c\25cD%gÆ8_\0260񘖘BL\0\4\" Βg3\13PskWEv\31D׬I2pm\16uᾧE)[v\13\30Qbly\0m{t~W\5=p!o\15DB]\8y9ab\16D6ۦ\27;]b&2G[\27\6&er:39\
-:R\23]\14t h\24V&\19\209wX#'0~aP^\24H\21'\14\13\30,\16\26\7\7S~rؔ^G\18pxK0'\0168|OU\24T\22 -\
-\8)\3AkB5M\13x\21\2w+{\24f#\19\21\3(\15;O_\9u,yT\\ZJ\20\11\0r\30wbz`ܫ$#\26,`drZ\31if\21\
-)Uc\20Vv8bi\21%I\24Rto\11nY#F\6E\11PYAӔ\15\127tU'(\29\25\2382Z\17=Q\6YB\
-[m&\129@Qr\3`\21_4v\22_'\29c\11}':\6DrC<rC<ry.\6:]J}]i+s'H\5w%\\*/\4)go*56>\17\4:Nvgk>\28\5켖YÌ5o\29\21TOz\20\0044nKى\2bN}0u$2IuJ\26YQ9\29f<ŸqGKf?\26^\17!^mx\0\14z4L\31S\29ereoa\21xq.\13\1lmJ2m͹[lT#\25K=\29WJ\\t\"\12^zls\25\9\29\25.<RMO73\0\11ƽKo;&匃\18JhM059>Nh\1\0#\1\22%-RrX-v@b\1KNJҌ\28$k<v'.UKgN/:z\22CVTt-\13\28w\19\
-\
-w\1223$_\9;'HkslŎsuwdv%6i\127ޱO\"j\3XeHT\25\9aBS07nm<xT1:8ZJbU\
-\
-!uWqch(`3B_Ab6lL\036\27'xh Ɣ!Wǭ>sSϳyEwLI>\13tVenM{9\6W\11+4\30lft3p/\20\15pqȉ|l>}ҝT\2666>G'b3߈\21f\11䕊Vg\22KxuDf\1Nv3z55a|EdY\\(>`ު[md5\9\23o\127[z,0+y1IejS#fF7u<\\|Ⱦ\5\23tokt^#c\29\24'W#X\0s<S\18-;2d+g\0\20koV1p hÅ<Ij\25\12\18jQ#S9$UJ\29YL\"_\15D\24h%?rL\27[%c\15SZ\127++9\0\18Uߠ-$0Us\0256sk\299U[q5ؠ!\5\127zy#tFQjdϭ\2]\22fS0}\6\19Jl5\12vc\9\25^팀j쮦@ONMrQ\"|0RaNRmI\13mL<'\26USf\4\20\27x\20@\208J\19\14f`B[5\2,?Z\31(r\29/d‘r8c{6aX\25/--6|W\30?&j所:\6i؉Zf\0nϘ9|\14x,\19M\1lA5IISdLԚsG7UDX~d98Sw\29\3\20w_`\31TsA\5\0\19ݫ%*]2c7{lO\20c6*+`\0216\18M'qtXʝ*\20+F\
-c{\29\25\30Q\29\"GuCynP`t|\12\00d_\29I\16K\31\31b(\2\31\11y\19IN;\
-d~X\24\2>ڌ\11԰r*Hiv&8$H]Q^N#\13\24L:2o&\5v\8E&\1\19Ncc?\26\17Hd\28_9̐Xq'KN-z\19xcnh\7)w<\6\27\14\9O%fG\15.h\20\"S|n̊;\22\22WgVgk\19\2Q~\4s7Rxt\29\11\4Žo\13\13_|2+@V6Q\28#w7ıy!sTst'oth0Z4H\23tV 1\25F᤺\0;+\1\2m\127pW;\1\8=g.ԨڜT0}\18;HHܻ\4ԑ<?ws<R\20+h|\2k5WK!w_\29]ATC\12W!J7I;Z$:H8cJ=>^Y܎\1@qyƳ3V\31\6Ne\15\30ۻ(wzd\\\25=8X\5_s\28\29V~̌9[\0307\3D\153.vhȝ>3Z1aҁ6\\*\27|~\7/FH\2\31\6r\18+\12^Kdbq\20L{;QD92PNwgƯ݂Ő\17I+\24pr\
-~!¡\21\4r$;\82-\23u݋Hv,ڱF\7\4\4;iʅu\25j>%vv\28\28\14 vd,\27\22X}*h\25tp\09l\28\0141?\24/K \20'W\\3:<\23Unpt8u8\15p\18U\26zf\20\26Ql*\27\
-U`w1ElFҹD/2P4\20*($ezr:ƍBI\25=OR.Ϊ|r/\0004h\6@ɾ\17\17w\37jа|Is\13k)~\19\22Z4\26r7|Vj\13; nx\23@eEFG&V35j6\0\12@\6\27\26j$D[ls|՟#=\0154H`\29*\13wN\30\13\14\12)V\31\3\19ndt[ɯ;\13\23/(\25j4rChZ8\30\6`w.\20N\13Mt{u\19\7\15\17pw 39'D0?yܑ:.U+L\5=!c7&է)\31\13\15;\9\4|&q\20\29cL;c-A-\263w\6=푛\21\68f\4eP$u\27\25(+J= 7<N2.H>!\15\12\18\07G<ܓ\8k\3:=#u X~b3G+\6\0124\30CD\28\127zWxʻa$@\27i\26\\ٍ\27j\6D}\25b1'{\22)ՓnN\29H#KS-#+y^屺6\1644,FoHSz(\23[)fE0'9\25\5\15Ԝc<6p+\0288\15(Y |܍{\27\6\4=x??Ry0>UoȊ7Y^:\9R/~eʙv\24\"Ӎxh\14\"\5\19\7\"\18\5Ŋ4H4\15Ҟz$\
-\24\0@\24aCԖo$AF\25+U{K.9\22G\5{K\0038o$Ą\28n\28]J!\23\18\01955?<湝f\7o_CA7Z}:~\14č9<wqC@7\0ʢ =y\13c\6ɝ\25rޠ眇Z\1,S&x!(dlRe\3odh\11\"l\29\22s[踶:/-Rik\\\27%2u<Pn~\2XqK`\16s0\24XY-%e\13\
-E\9\18\6{W=Ɂ~\21hM6fk8Ij+t,Pu\5O\2\5\22\4s8\25\21<j\11XJ7\15k\27ZªaVu*߫W\0tW\20\28_\17\25\17)-%\22JV_K\7VqƒUa\26i+\6fZ\"\9%\8~o3r~[\0\13\2Iks\27\3n\5T=Am9wr/ְLdcuT5)g^#{CQ}\2_s+k2i\13\11\5j7\21U&v$;\17\18m\1Or\18X]Kv\24W-M i(^ad*6\12\127ɼ\19?'żvs\3Ϟ\
--0~KHg\127\1SEƩ0V|\128\13l\\\15U(u\27\15\18}:g\24ҚA\13\19gݢrݤWIS-w\14CH#\00^RLJȒ+Ϩz©>\30=\7XUx\14QzmǚW:5k\12äI\7az/A.8\20\127`n4tzg\15˔d陧'\\v:Ziakt#\2nƒPk#AΤ[^k\30\21\\k\30%\\7\"/A(l\\^\26r9||,<\
-k%3M\6\13{inK\264r\15hد\5X}z\21w=f\15\1ßSN$>I\0r.7o/#}EҐ?{\5jCeX\1AzyuLtF3.Id\25\"G%9\0288;@;\1U\28N\29\31&t;\29.*>\4y\16^tbk],cւ\14#-\24ǝ}H a\20\28\3;E\20+\6F/\"k 9 d<H;a(vS\29\31`\3\15.ׂ\29D\6#\
-Yi&>0>xg~+\21\29^\17g,[mZK=\9BAuMV\28ߏ\31\13&^sլy_[y;?\4}\15)LyE\28\23QA)R]K)x =St*ώ0\21ٕ2{\240\13xak\13OfG9U|~\20ɱ\30[c9\23~|k\14ҝx_!g\14\25Q\7\27\9\13\30M\18VL\17\20c,:b\30+\14 ;=L\00723D<8#\29\7u̫v&\3Uԁ\127~.g7ά\31;3Zܱ\17\6K\9\
-WvDn@=9E\19|W:S\288K\25\23\12Sr0\84NݸMPܑv\4\1273\0131NSL{=&2w;:R}Á{Gi6-,{np\19zr28\8c\30\24۴oe(d̆YI\\ߊbww*UL7\29m\1278<[5\31n_[ P\24ߨ=\22\127%\26=Ȝ\21xjT\28\0j8\23\16x\127RW䤤Iُ#\8̮+0\
-(gP#V$$~È?\30U\6xkRGHjhq\"%D\\okF\27gD\7D\
-)/2>$x\17R&\12\19Bڦ\9aח\127&\21\25MztkwOr#;9;\5id}\16(\28\3%\1\194Jy\24\\Y\9!M|H%-a\4\30x&{\24\6C:\31F\4@~\127\0245\14<snA\25]IX\23P\7^3,VaIjzy6H,Idj\16\30N]Vk!ݧ\12arMwaúm1\21\21케\1뭆$\11k}¨\127\
-U=:\2c햚soͿ\24\3OjtQ\16\6S e{tb\19Aqʊ\0203ui\15ƿz5Iˆ\27ƶ\21i\26\17\28%=\17:-INj.!iJ3S\18gf\16GTy\0206d&cyHf8\
-<6S$Ho}ꉛ\30=\8.4L\12ڻ{\
-f\30\24#\19A6\23[x\30>G\26\12g['f\"*Kf\3%yrY<q\13\6\12W(a%\24\8\6s-S\20j,:&6\\̍H\23O0\0169\31\21p5%p\6T\7\21\15[%q\18\14;\127圶\20JL~\24V\28l>9~$)‚?}sf'O\12\23;v‘NW![##:\0290\31DL\24vxN1e\28c6T\26\31\17MhVMFݒ뼳K{r}v;U=Qk2D;\0w\30۴Mۦ\6E\12;g\223TNW+B@aDl.{|.\13TR\19֖T[}ߙ,\"P;>Dsۈ2FI ڦ\127ػ\11\20nW\27*\14\17~\3ܺD=~y\3!]N\25\20HZ\18z~\24NBo.閕\28Ϩ887\17S4d9E$ְ)\23I$Z\1*̤6\27V.oe{x'*z\19Ұg\5Vl/s(q\14\16\21\770[\16`F-˻Zu9q|wCyBfx\17)cF*\2e\14-+gu\24\23^*h--]ry\30\29\0133WT.\2iR:\24)\1273?LDE,ܪV\0213&\21\3\11̑y+\26\2ɼ\26nܞ\27̒:R\1\11|jwf[l4h\20GG5{[Pu~+w\19j\
-1[sņrŀJ枭U\20\2ѣ\1\27\5\6+HfB<G\23.L\5̌Z_/\1\20\13\127RF3\4\24u|zK5'#RDt\">F)\30ZTc-\20\28L9\0139/\8G!\26XϿ9\37Q2n]w\127\127*\5G+&\27hA*i(0\18G!EIә_\126\993\20%\23J<\24|\9?3+%Å\21\3zZt\\ͩd<2B\13idRTTT:ƼMC͵O?l磩cD5`&{[;l\17:\231\20`2.\5ۓ]8_1I\127\127W\30\24\299\25oY1Hm+\8\127;Q5X2\127J\0ϕ\18tkKIX:V\29E\1\12\7wiܱ#<;xnh\25\4ď~ѹ,y\31f+\14\8;Y”n\
-.ɣ\25\29\1ǶD\26ܠ;{\\`P^ܻ\30%\
-/\16yWzF2.F%+=tLI%\5W6T\13k<{\14Z\30#q2]P\6_u\0124KRP+TQ]/͝޻M:9mpTjTg4y\3\3f9\20Z9z\15IՂ?<\\G}$y1?hGjC(\18IsY\9syxl^<3`\22T7\15\6Ov\31\31|\20\7~?|<皀\16m\23Eަ\"^\17\3=,*\3X\21\7N|=/\1\\\02717^;S\18{1\24gP̥\20R\6<n)a$h\25'+lmv\28=i=S@\"W9,\6*ћ=Z[0AD(G\5$UR\1D\3k'\11}b~ߒt7mz.\16_\7Ka~uζr=d,]{\133wo}\26\0091P\31\31E\28uv5#\25 ۋmFH.({\\W&MwdƉg,\19&\27f/%\20'y2pTs\5IJQVnLr\
-`95\19~xn\19lVg@?[ͬ\127]\4u*ȝ\30q\21pȥ;4\4Yf0&/#E>pu閦RܚW&}LkDbN5͈\29V{0RL'7ۍ{\14\16\27\27W\29#{<⧎\20w:6\31\133ƈ\18Njc\8iu?\24UʸM[\4ҭ2y\14Ν\30f)k\22id\28&m6HQjOBH~j.ef)h\24\17tPYK^)NGjN쵝/씡3c1;;jmμVG`f\25;wV`>P\127\12Gt7L{g\26\12J0p=ÓnS/-]1`ww\\\\%g\28c\5#\19E8\6쑂\1215hh|/sAu0\15#EZ}5Tqr,gs΅\28\23\13\11D֍>Im\14dxGO\19r\28|\6p`f\12L뼄9\127pc]4\8Iڐcֈ\
-g\26\17X\27\4\17n\16YျkF@\2}2#6EC.Đ$Z+t\21da{as\8\1279slj\23_ٷUQ\0136?9s_\"p;``\"6!z7q_G}[\\A\23KsK6m\3\127L2\"V[)+:l\16e\13.]5URĩ\7R\19\5|hOiN}yᩙ0Q3c\27ƣ\27m-\3#!\"\4\7C\29/\\-wCJ\12;\"04E\6H\24\
-(\21V\26vk2$9\0'\15x,58Os\\r:UJI\31<-|p\6]Lb\30M\31\16O7O.\29iTħ>1y)\
-\19Z\
-+=5'^)Se,<qNp\18Pߍg\3DG\17̌\26tj’q-P7\19Rq\12' ;)h\13 K=C5\6\14\18\20\28([\17 \26xg\14r2G^H7j\31\\+\21\2U5 ֺۆ7\3\25tFiOm5\22))w\28=t9CG_76K;\20\31'\14\8 (|p븷\26Ԓ\127yߌw\0VTv\20n\31sj(\23ÙC@ï\20/\3>\19eC1\22\0122E1E\6`)[~aiQWX\22:ΰ\12:.;'Eu$\\y`ƚD\5\0\\\
-Iζ2Nj6\45(\15ߣ\20jd=\"^N!5ˠcXW\7NrP2O\29#\2Q:)\6b\1.͕\11\18{OP\13=+\1\12йP\2D9\7޴Jƽ0Ckdܪ뜪g-C!\127V0\6x'1\"NG\11t\29\1J\31\14\19\19\127A?\2E(Kw\\9Ԝ{f\14\5=\"\
-\8PW̹+nf˹k欨\
-1sf\22'߹T'.\9}.b,\
-5jHI!\16pj\300u` w;G5:fi\11&H\15\16U|3џs\14'͠o\29gmh2\12[30LoxH2\26B$*ET]:\30\5p\5jJ#.l@uB&ԩ\5nθHc|و\30\23s(DY0K<]ƹس\11s\190(/AV0woX1#`\8ނ҄'4hȯGZZVJX\
-\197\\RQ-d \3Ea4\258D}H\29\23OAvbs_lPG쑑W^Udh@\3ns\8\8\12P”m,y@I/ۗK.MF\31\4=2^\26@{9`$i\18J\1|\\4\\ǘ{S\6/J̲%Mc\127/Fk\0\9{~6/\9\28\20B\21VÜ\15a\11zp\152V\0?=|\5=l<׽\42X0w\28[LspQY)ʉy\18Yɱr{{z!C5x\8\24\19r:e1X3\25\20\12%+ktŋjųG\5}eCYA1\21<l>x[Au/6)3\22\0122\6\1=!%iu@K3&\5\30\27 \3`r\1A8#N\191\29\22\1d!\30jW\4qbL%@.L7k;=ּ<qM\4\
-0s\6ZOox8O|g\7\1272\31>\11\1m\127@\3\12t9pЍ\13\24;\11ӎ=]\29\23[\27#\7A$n\25eV>)<\17x>][\26\3Lj*H\26#71u\13\5#zW5\11:Raomރc\7\11Q1CvV>{* ]*|\27c3hͱ.\16@ZI['7\22am2G:3^\0076,kѣ[X\\\4Z4[\30\29:1D3=\15v>U\13BLsvč m\7Yq\7-[q\2iO\7-lF2\17ѹ^\13d_3nPE3#\19?_0\3u\13,2ѩD\1}\6\127ϝ#\7Lc$\16HN򜖠-#\3O\23ͳ\19:b\19\27aBG&K{6\
-\1\31Hk˙/3A\29=A?1RwITj\31#\30kM=rԽ9#<:tbҚS \23.-/\30Htt\18}\31{or#O״\23[oeYl%D{vٳ^u&&jl\20BQ\6n\31\23A#\
-U&c\18k\14\12\0183\"\31Xa+˨CM?\
-fTP?FV%玓\6\313\8&Ɂ\27\26cO_\26@2/C=2UV\21<i2KJ\28=qHJTLf\18\21g:f\14\25\27\27&TIm\21P$\19B\0207\175\25\1W\15\19F`ƙUT\21\127BŅk5Be+U+\22աII\22\21+2qB\1\31\27|\3Ti\6irK\"@w\\5_s߮]4֎N\127\127mf:Q\23!؎_X^KmG\7\31=:L=\29IP8u\\~3IDlOO =ź` \7Pr*h\\\17)cq\6\29̜\0p/87\\qʓ\6Fp8ϊ\12+ΰ檪Y.Z[\\dU\
-4\24\21\13\0302\19̮\
-s8BՔ\0253\0026R\12Yf\17b쌯lKS\5_\29JDvO\\ŕxfc\20ݠox\26\4#uVs&':(\3\313\7ȡ\20\127\0%\21nڷ\11\7(L\22I>Q\7\6\16*z\2Rp\20\21Nģ3Qu\31'n\3|\15Gʃ\15vaDR2n\7\27\"\12&s&|h#\24g\21\29\0ϡÍQ\31\5P\\[|&0<\14\5\27%8u\08}\310\12\
-\"z[&$r_\
-j)\16Dt\31űY\7l\26h҅ r\31dn\28D_Xp蕈`v\1ܓg\5\13\\E$P\13Kh=.$[%1?DDç\21JZ(\19-Z8y<[̞r\8f\\rPa!㣊tkJ#P-ԢA\3\0007\2\30\0169\26I\"\23m\31]D\9O\0017g\0004y\7r-rIrL\13ie\7iF\31\21jܪ\28D'IK-Xl\30\27\18)h\291|\8?s\1\29uGR:wUr\21p5\127Qg\18Ȍ<.{p\2\12;>\4ޑI{\27:8\17\12\5Lˆ5\14fpθb\0}8\21\2Hgf;\30\17{`?\30sAdGӎ\"ho\22@l\17u;%'Q\0N`n^|CzHS=\3\0042ȅ)b\27\19r\6UHh\\8\298Pɽb\30m\14T1!<8V_޹MlPv^G\18|!\24#j\"rad\310&-Lz\28!\14\5j\23$Pʽ\30mO穞\12=ӴnԣTC\15(տ\4K\15Ix?\28IKfSK݂ѧQ'\29p$\"3\14:\25z2Ê:L-Ž,\18͓MA4\5:\17oF`>Ic\20\16OW%6\16^GDRt\26s\15\
-ۂr\7vk+R.\18O\20j֐i&ATQޠT\9\15!b4R\29)v*\1t$1LG4T&e\30\127CSJ\26y[Hf \24\18jr+NqM\0彖\21|\27c\127\11]Ϋ\14:7ày\14\27;\4\9\29>\12oTDC9{Ka[:\90'HKuJ\\5Tm;Rھ&t}ڊ6I|ybb+\30\21xme=3x0ZR5W,G[\17{etFl\8h_GPVxZ&\
-:CG:Y\"AQK\12\21#@\6jO\24\14;l> N/\24;\11Q$-H#.aG٫C\14^\6&b6P4U\14Nz>\26!ځ\\l\16?b\30o3S\25\19f\2\28\11\13'Ps`J\24K\4\\\18\8\28\\m\240\3PGwHԎ\2\17ṫ\14/J\22JV5%8LZs(N)}\0kžds\3k\29%\12\8<Q;pE*\7\29>\27%\31Yfvt\8bv\129%~'\0OXeKwgS\22;\26\\\6\24\11[*H\\:lN\17\21.AQQg`-\29G\30tQF\21[=RG{W\29-sJ%\29)jY\172:b%ykv&\29ʉj]^\22[eo@^\31Lj~O\1\3\3o\25R\0035[vZb}\23L$i\12ܥ%h۬\15U>>\0209Iߋ\11<'\12.U>}\\8.Q׼vwuuAZ\5bgd\7\24s\4\6\1^y2\
-҉q\28R\31^80lI1\9\7\11_n8_%\2ۗ>jJ\31\20u'm2uI \30\21\26s,oD=A>'|\11]%\12J*|p\25\9m\1=|ӳL*9|\21e=\29tGc5Η^j2\27ihh8`2OaSՓt\14UUp,+̾N(\13jp7+z;Cp\29A7X\1\29H4&\1=\24j\23i!\22`ۗ_n#yC8IA\14F)鷑[M\5*:-G>0\14l8{&$\15rcS\28-\25\29얍:\14;$I\13j\0252]\02088Q0\6:\13k9}7W^\127\24ٽ\7j\21\15R}\"TY\45JY\\\127t}{\2\15\17'W|\2R)ۋG\0088]]p\
-/a\27ړ7\30[ug<ihF` je>Y\127\19oA6\0035\24G;ό3\284@6zK\8F.\11Cs y\
-™݈#|Ϟ\19ac\3\0236w ɨ'`\29];R\16;GpUym\26&Ԧ?TI\0Hg\4aj\31\2;RcD\29MHdd\22'Y6|A\25Fݪ\0165\
-i>\1\2=\0G4ǁ\28Qb;F귑j߈Ma\29\15hDsi#Sx/ɤO'i\"o0\30\
-OƊi.(\28‡\27-vw:u<ܙss7\24c<\30,?ܝm8-n\2}\8\7N/L\1R~h Ix\9A3yBӣ%}ܼZK\25a׉NбZ\248.`\4\26F\18ҙ\30П\12\21s|śٓ\20(OOּ\11xǽO\30\127~\6}\9\127Q4\307\9nÖTR\6<\23\27\19O \17\28v\3O\20to5H'\26-kK[WTٕqqpd\5䣟Z^\25x.\14^$Fhv\6so\4%QD\27K)\13Ȍd\5qQ4 (ceҲǔJ\21-W<\3F\202KLI2*c]3\
-AsL~p<uJ[2q8@|iʮ)a\15wh$;VM.6\30J0JR\20}c-\16\26WpC\19R0\11*:\12fT}Ni\28>S$:Q\1At*f'Q\9y\"ۈ\14\0ˁHd)qEH\14/sgb8!ik\1upV?\30\14ې5\16\11o\233\8l\5M\13QEkJgkf?\26)\30\14\7eJ\12;\17ltȝˡ氆D\8:Eu0:\29-ZMȨ\284?a\"\15}CDPǔQ;Fe\27@\8\19%y&\29'\0170(l\
-\25-'#Wɣ\14Ԇگv`\24`+3@Q\16'V\17a\18vXӧ[J.\27pw˲,տ\13\26pWs\0283BR\26ብ\2Ql]1\28]Gg\31!4.sQC(0j\1ԝH\0087|[E\17$J]0CWpj\9o\28\0%ZQSVF-rh\"\8zů?\9\27}\0289/ޘ8n>3:̉(\12B\29R1{ \19GL\2i3Ɠe7G>\17PQi\31,E3\0298e)\\aæs7)\24\17oܳ3\22\0019'5snsNR{7:qu\9\22-ɕ\
-Do8E1{1(~_n\13ڹ๭\22\30`XNi\17\12Ga}A&`;0\3v!f%m`M/\21K7,Wb.rt(\3\327+78 Ū\22gM\\\127)*cz\15anDb\20\5S'\
-/Oܳ\13o\17zF*G27^6n۸\21?\"\0`0RC\"#k*a^>\18\\K\23H\25F7Ό6:KZ5ce\8(\"k7漟,bĚ,\8+uz\2~s4t(c}vWX5\28٤v\8megAEi4fŽ1\4,V\29'{2\17Q]\24\5;\26v.BёN\0219|K\12uF\14U3܋dQ=*$a@V\4Q@\29\25ۻf/\6\13/{\25LN3N\14r\0067uA\31qE[u&KB>ɪ|@\4a\18?\27^\20\26.\27\9>PL0BH0&4iU6\22{0\23wx`iV2O\29:~\23&I\5Pf`\"\25^\11w1;\4'1!\127.c\127*UTN.IX\28l\29H\2yB7$\2\14QoTzR{\2\12PZ\20V_x\13pwr.:'~\28;Xڜ9\29lqz~\12q]:\25Nb!m\1'\29w\4]̯7L44~d^\14\29Ø\1193bZ\20\19\8eMD]Z=n8S+G9:\2XQLL]5?i]X\28WWb+sUJ\\#2r͕\29\19=B\7%\"\11\28J\24ܤgx\21\0045Qߗorb{\127;Y5OFk:9J휩DGVM\240\1272UO'Ōr/|Vp9\26dJf5Ɓ{z2\16\\W.\0\\G;nPs\7ގ2oX}\8sv|\26f\7:6ίOk\\1KQS^&z+gI~\26oJYfr\20LXLsךZS\\\26-?L&*gB̭o^s\20\24&\17Wts!\17$>CP\0159j\15Թ\\\29'\25\19<P1e\17pz(\30LO\7\19'Sbӳ~uQH-ȑM\16a5\
-\127$!-Tl|b]SƮЎLwb_lNg1WO2l;\31\127\0002a\12I>l#WkEzGn\7p\31F\31l<\21\26\15]\8\\$jڋ{s<a\27G/\22wz[@_dC[3#h)`\30Ǘ\30\\ʼnG\9\14\7l\6Ux\0\26TXZ\29Xj#\7&E\31\\\15>L\2A\16tY[\1\23vN4'\18K!o8V4d=kHk1\3\18{o\0260\19}ӑQ^Q\5lt\7\"ԸexKV\16U4yuc+{s\18+\127\7gگJlEx%\15(1wG|d\31UҖ\9Fz\"%-ᐡ;9)BHS{1]Սp{/Q\13{I(C@\25B\26Q;2S!zׅw\2}Ӏ;_(\183Y/6L}X|K$\26a6Z{awX\28=);a3z\28]\127&<uθcH\0iRAЎs\15\15\30\29vGՒ4\26ƨhV\28D\132\4c\14eЊc\21{vXuf¸g)\8\15\14\26*\4PoY\3Օ\22ДUJT8*jp&,\
-%\11q5!+\23\16\235vC\17\"#Orؿ\7H;\15\15\13XYƽw_qj\28}oITЌc6\22\0287nF\27%-\22::\17\22Mspغ{/u^//F^|\0259\4gD6L\20p\01970?H):GLu'O8[g3\1\19\0X\18e\27\7\1'Ø\11&Q̡Yo?(g4Pw„\24\29P3 TNaϒ?;u<;Cޝm夵 Fŋ56\13W0hy(\\t㖼ӑ%\23y\145\13\6B\0114D\23|\11\30\127\122;P/oIW\19ta-q\22\22{4|UiЛ\28j&YH\0GS)Ȏg&G}7\11aY\19sS\8j\30{\6\30\29ej,V\26\2h\0082<\19^\26Nhwv\6\5P-YSr.K͚Rz˱N\18\"k\28\20PJ{lG\2:Ņ\3Y?s{E˲W\20\15rK\5>ӅiAFVDz\16\24;\29%\0032`JapZ\218f/\23UČkyQ\246\29{F\4dC%\04xȔL\
-\20kԨm'+Z_gU\"+w-3}\
-O\18A\25ꁢ\28K0ʷ,\\uYĠ:tGuh^T\127\127\15\30Ԇ\2\19\6Hת礆srdncѾ{\13a$hQ=C\26\13g[\
-nѵ\16\3Lr\6Vä-Hw3wZ\17FX25\0117x?\\?Zu\11Y>\17\6\31wVO6j\11i\0293\
-{$_1\30p(W\22\21E\16\1d\9\1y\127o\03_`Al\14#L6\16Z\27\14\13r\9Ur}Þ\0/\\M5f@\1LKA%LCR\12qf\1\13Vސ|Q6[\
-\15xe`aX1l0p$]\3\17x\11^ܫw;Af\3iO\\\11\"4mC^D\4d%A!\19mV.w\18,\20X\3^yzJOX-{=vB3B\18[C뮭K]ʻ[Z\12]|\11Σ{%L_2zd@\21`@W1L\15P\6Y9F\17\9\0238\29͠L\13-I\7@(@Qw\23\26ҡ4P-\2AB-}K b\127I\2_j(gE6\30$>\1\17=\21Q\168G>9J+g\23aM)+.AƦ\12\26\20j\6W$lOL\19\31\29/Y\12\4x\4\15Xat\6>䶈>0z>hP@ \1L\1j\0=F\16.\1\2\0p%s\1S\24n\18p\8\26E>\7\0071@Ж7Ei|s\5߷(v/Wt\14\28݊\5Òs\7ϟt\78ڂIw$cKå/:EI6gs\11|\12\7\13;\5\12\28x\25\25,Q\22=a(5TO\31\2l\9_\3w\15|7\6f\2Q\14b\19w\15-H\\t\14\9Ǵ\4lA3.$\9N=(\
-YE\19\29\26w7\3\21L\27",
- ["filename"]="tdict-std.txt",
- ["length"]=268756,
- },
- },
- ["timestamp"]="2013-05-20 02:00:09",
- ["version"]="1.00",
-} \ No newline at end of file
diff --git a/tex/generic/context/luatex/luatex-basics-gen.lua b/tex/generic/context/luatex/luatex-basics-gen.lua
index 0561778b4..4a46fbb07 100644
--- a/tex/generic/context/luatex/luatex-basics-gen.lua
+++ b/tex/generic/context/luatex/luatex-basics-gen.lua
@@ -147,18 +147,18 @@ do
-- standard context tree setup
- local cachepaths = kpse.expand_path('$TEXMFCACHE') or ""
+ local cachepaths = kpse.expand_var('$TEXMFCACHE') or ""
-- quite like tex live or so
if cachepaths == "" then
- cachepaths = kpse.expand_path('$TEXMFVAR')
+ cachepaths = kpse.expand_var('$TEXMFVAR') or ""
end
-- this also happened to be used
if cachepaths == "" then
- cachepaths = kpse.expand_path('$VARTEXMF')
+ cachepaths = kpse.expand_var('$VARTEXMF') or ""
end
-- and this is a last resort
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 71f6e79a4..310febe96 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 05/20/13 02:00:30
+-- merge date : 05/21/13 16:14:48
do -- begin closure to overcome local limits and interference
@@ -2017,11 +2017,21 @@ local pattern=(noslashes^0*slashes)^0*(noperiod^1*period)^1*C(noperiod^1)*-1
local function suffixonly(name)
return name and lpegmatch(pattern,name) or ""
end
+local pattern=(noslashes^0*slashes)^0*noperiod^1*((period*C(noperiod^1))^1)*-1+Cc("")
+local function suffixesonly(name)
+ if name then
+ return lpegmatch(pattern,name)
+ else
+ return ""
+ end
+end
file.pathpart=pathpart
file.basename=basename
file.nameonly=nameonly
file.suffixonly=suffixonly
file.suffix=suffixonly
+file.suffixesonly=suffixesonly
+file.suffixes=suffixesonly
file.dirname=pathpart
file.extname=suffixonly
local drive=C(R("az","AZ"))*colon
@@ -3007,12 +3017,12 @@ if not caches.namespace or caches.namespace=="" or caches.namespace=="context" t
caches.namespace='generic'
end
do
- local cachepaths=kpse.expand_path('$TEXMFCACHE') or ""
+ local cachepaths=kpse.expand_var('$TEXMFCACHE') or ""
if cachepaths=="" then
- cachepaths=kpse.expand_path('$TEXMFVAR')
+ cachepaths=kpse.expand_var('$TEXMFVAR') or ""
end
if cachepaths=="" then
- cachepaths=kpse.expand_path('$VARTEXMF')
+ cachepaths=kpse.expand_var('$VARTEXMF') or ""
end
if cachepaths=="" then
cachepaths="."