From 155adf54092f145d5e2ebe2b4b11e3080fcb379e Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Thu, 31 Jan 2013 17:52:54 +0100
Subject: [PATCH] Add support for the Merge operator.

nb : do not work for lv4/ec mode
---
 Makefile                                      |    4 +
 README.org                                    |    2 +-
 doc/lpp.dep.ps                                |  217 --
 doc/lpp.depfull.ps                            |  217 --
 doc/lpp.dvi                                   |  Bin 28116 -> 0 bytes
 doc/lpp.ps                                    | 2695 -----------------
 doc/lpp.toc                                   |   13 -
 doc/syntax.dvi                                |  Bin 13980 -> 0 bytes
 doc/syntax.ps                                 | 1251 --------
 lv6-ref-man/Makefile                          |   25 +-
 lv6-ref-man/lv6-ref-man.tex                   |   17 +-
 lv6-ref-man/utils/lus2tex                     |   12 +-
 src/ast2lic.ml                                |  611 ++--
 src/astCore.ml                                |    9 +-
 src/astRecognizePredef.ml                     |   10 +-
 src/astV6Dump.ml                              |  604 ++--
 src/evalClock.ml                              |   70 +-
 src/evalClock.mli                             |    4 +-
 src/evalConst.ml                              |   75 +-
 src/evalType.ml                               |  116 +-
 src/evalType.mli                              |    4 +-
 src/l2lCheckLoops.ml                          |    6 +-
 src/l2lExpandArrays.ml                        |   15 +-
 src/l2lExpandNodes.ml                         |    9 +-
 src/l2lRmPoly.ml                              |    5 +-
 src/l2lSplit.ml                               |    1 +
 src/lexer.mll                                 |    1 +
 src/lic.ml                                    |    6 +-
 src/licDump.ml                                |   32 +-
 src/licEvalType.ml                            |  203 +-
 src/licTab.ml                                 |   11 +-
 src/lxm.ml                                    |    4 +-
 src/mainArgs.ml                               |    2 +-
 src/parser.mly                                |   22 +-
 src/parserUtils.ml                            |   10 +-
 src/unifyClock.ml                             |    7 +-
 test/lus2lic.log.ref                          |   87 +-
 test/lus2lic.sum                              |   31 +-
 test/should_fail/type/merge_bad_clk.lus       |   12 +
 test/should_fail/type/merge_bad_enum.lus      |   12 +
 test/should_fail/type/merge_bad_type.lus      |   12 +
 .../type/merge_not_exhaustive.lus}            |    9 +-
 test/should_work/is_stable.lus                |   91 +
 test/should_work/merge.lus                    |   12 +
 test/should_work/parametric_node2.lus         |   13 -
 test/should_work/sincos.lus                   |   14 +
 todo.org                                      |    1 -
 todo.org_archive                              |   13 +
 48 files changed, 1276 insertions(+), 5321 deletions(-)
 delete mode 100644 doc/lpp.dep.ps
 delete mode 100644 doc/lpp.depfull.ps
 delete mode 100644 doc/lpp.dvi
 delete mode 100644 doc/lpp.ps
 delete mode 100644 doc/lpp.toc
 delete mode 100644 doc/syntax.dvi
 delete mode 100644 doc/syntax.ps
 create mode 100644 test/should_fail/type/merge_bad_clk.lus
 create mode 100644 test/should_fail/type/merge_bad_enum.lus
 create mode 100644 test/should_fail/type/merge_bad_type.lus
 rename test/{should_work/broken/merge.lus => should_fail/type/merge_not_exhaustive.lus} (54%)
 create mode 100644 test/should_work/is_stable.lus
 create mode 100644 test/should_work/merge.lus
 delete mode 100644 test/should_work/parametric_node2.lus
 create mode 100644 test/should_work/sincos.lus

diff --git a/Makefile b/Makefile
index a900e570..b4d3aa51 100644
--- a/Makefile
+++ b/Makefile
@@ -150,6 +150,8 @@ include $(OCAMLMAKEFILE)
 
 .PRECIOUS: $(OBJDIR)/version.ml
 
+
+
 $(OBJDIR)/version.ml: Makefile
 	echo "(** Automatically generated from Makefile *) " > $@
 	echo "let tool = \"lus2lic\"" >> $@
@@ -161,6 +163,8 @@ $(OBJDIR)/version.ml: Makefile
 
 
 
+
+
 all: nc
 lus2lic:
 	make all
diff --git a/README.org b/README.org
index 04781bef..437b2132 100644
--- a/README.org
+++ b/README.org
@@ -67,7 +67,7 @@ astV6Dump.{ml|mli}
 astInstanciateModel.{ml|mli}
 astRecognizePredef.{ml|mli}
 
-** Then the source is statically evaluated and type, checked
+** Then the source is statically evaluated and type/clock checked
 
 ast2lic.{ml|mli}
 lic.ml
diff --git a/doc/lpp.dep.ps b/doc/lpp.dep.ps
deleted file mode 100644
index 7f64e2c3..00000000
--- a/doc/lpp.dep.ps
+++ /dev/null
@@ -1,217 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dot version 2.8 (Fri Nov 17 20:26:27 UTC 2006)
-%%For: (jahier) Erwan Jahier
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: 36 36 44 44
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-	dup 1 exch div /InvScaleFactor exch def
-	dup scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw aligned label in bounding box aligned to current point
-/alignedtext {			% width adj text
-	/text exch def
-	/adj exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			text stringwidth pop adj mul 0 rmoveto
-		} if
-		[] 0 setdash
-		text show
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-%%Page: 1 1
-%%PageBoundingBox: 36 36 44 44
-%%PageOrientation: Portrait
-gsave
-36 36 8 8 boxprim clip newpath
-36 36 translate
-0 0 1 beginpage
-1.0000 set_scale
-4 4 translate 0 rotate
-0.000 0.000 1.000 graphcolor
-0.000 0.000 1.000 graphcolor
-newpath -6 -6 moveto
--6 6 lineto
-6 6 lineto
-6 -6 lineto
-closepath
-fill
-0.000 0.000 1.000 graphcolor
-newpath -6 -6 moveto
--6 6 lineto
-6 6 lineto
-6 -6 lineto
-closepath
-stroke
-0.000 0.000 0.000 graphcolor
-14.00 /Times-Roman set_font
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-end
-restore
-%%EOF
diff --git a/doc/lpp.depfull.ps b/doc/lpp.depfull.ps
deleted file mode 100644
index 7f64e2c3..00000000
--- a/doc/lpp.depfull.ps
+++ /dev/null
@@ -1,217 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dot version 2.8 (Fri Nov 17 20:26:27 UTC 2006)
-%%For: (jahier) Erwan Jahier
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: 36 36 44 44
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-	dup 1 exch div /InvScaleFactor exch def
-	dup scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw aligned label in bounding box aligned to current point
-/alignedtext {			% width adj text
-	/text exch def
-	/adj exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			text stringwidth pop adj mul 0 rmoveto
-		} if
-		[] 0 setdash
-		text show
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-%%Page: 1 1
-%%PageBoundingBox: 36 36 44 44
-%%PageOrientation: Portrait
-gsave
-36 36 8 8 boxprim clip newpath
-36 36 translate
-0 0 1 beginpage
-1.0000 set_scale
-4 4 translate 0 rotate
-0.000 0.000 1.000 graphcolor
-0.000 0.000 1.000 graphcolor
-newpath -6 -6 moveto
--6 6 lineto
-6 6 lineto
-6 -6 lineto
-closepath
-fill
-0.000 0.000 1.000 graphcolor
-newpath -6 -6 moveto
--6 6 lineto
-6 6 lineto
-6 -6 lineto
-closepath
-stroke
-0.000 0.000 0.000 graphcolor
-14.00 /Times-Roman set_font
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-end
-restore
-%%EOF
diff --git a/doc/lpp.dvi b/doc/lpp.dvi
deleted file mode 100644
index 04f8435a8e85fb398227f141172895b9ddb689d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28116
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
bL)Onfa8~f&Nh|nof_?4rgfAKJCjR~t(f`Ho

diff --git a/doc/lpp.ps b/doc/lpp.ps
deleted file mode 100644
index 89a608d4..00000000
--- a/doc/lpp.ps
+++ /dev/null
@@ -1,2695 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: lpp.dvi
-%%Pages: 9
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips lpp.dvi -o lpp.ps
-%DVIPSParameters: dpi=1200, compressed
-%DVIPSSource:  TeX output 2002.05.24:1448
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 1200 1200 (lpp.dvi)
-@start
-%DVIPSBitmapFont: Fa cmbsy10 10.95 2
-/Fa 2 104 df[<96380FFFE00607B512F0187F0503B6FC171F177F4CB712E00407EDE000
-4C4AC7FC4C14F04C14C04C91C8FC93B512FC4B5C604B5C605D605DA295C9FCB3B3AF5D5F
-A25D4B5BA292B55A4A5C5C4A5C021F5C027F5C49B548CAFC010F5C90B612F0007F15C0B7
-CBFC15F815C015F815FF6C15C0C615F0010F14FC0101806D6C6D7E021F800207806E8080
-6E806F7FA26F7F81A28381B3B3AF84A2818481846F80846F807013FF7014C07014F07014
-FE70ECFFE00401EDFFE0706C15F0171F1703EF007F1807DE000F13E0>76
-181 114 263 105 102 D[<EA7FFFB512FEECFFE015FCEDFF8016E06C15F8C66C14FE01
-0780010081023F80020F800203806E80806F7F81838183A281B3B3AF8481A2846F80A26F
-806F8084707F706D7E7014E0040714F87014FF040015F0053FECFFE0050F15F01701EF00
-3F4DB6FC170F053F15E094B6EAF000040392C7FC4C14F8041F14E04C14804C49C8FC93B5
-5A604B5C4B5CA24B5C60A25D95C9FCB3B3AF5DA25F5D5F5D92B55A5C4A5C020F5C023F5C
-91B65A010792CAFC017F5C007FB612F8B712E0168003FCCBFC15E04ACCFC6C90CDFC>76
-181 114 263 105 I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmr8 8 1
-/Fb 1 44 df<EF07804D7EB3B3A7007FBD12F0BE12F8A46C1CF0CAD80FC0CAFCB3B3A771
-5A5D5E78CF6E>43 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmsy8 8 1
-/Fc 1 4 df<15F04A7E4A7EA2815DA7003EEE07C0007FEE0FE09026C001F8133FD8FFE0
-ED7FF001F015FF01FC1403D87FFE4A13E0D9FF81131F001F01C1491380000701F19038FF
-FE000001D9F9F913F827003FFDFB13C0010FB6C7FC010314FC010014F0021F1380DA07FE
-C8FC91381FFF8091B512F0010314FC010F14FF90263FFDFB13C02701FFF9F913F80007D9
-F1F813FE001F01C190383FFF80007F01816D13E0D9FE011307D8FFFC6E13F001F0140001
-E0157FD87FC0ED3FE090260003FC130F003EEE07C0C792C7FCA7815DA26E5A6E5A343977
-BD47>3 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmtt10 10.95 50
-/Fd 50 126 df<DB07C0EC07C0DB1FF0EC1FF04B6C4A7EA24B6C4A7EA703FF15FF4C5DA8
-4A5D4C5DA8000FBB12FE003FF2FF80481BC0A2BD12E0A56C1BC0A26C1B80000FF2FE00C7
-000F902680000F0180C7FCA84A5D93C791C8FCA94A5D4B5DA8000FBB12FE003FF2FF8048
-1BC0A2BD12E0A56C1BC0A26C1B80000FF2FE00D800019026F0000101F0C8FCA8495D4B5D
-A8495D4B5DA76D496D5BA26D90C76C90C9FCD9007CEC007C536F7AEE60>35
-D<EE01F8EE03FCEE0FFEEE1FFF167F93B5FC5D15074B13FE4B13FC4B13F84B13E092B512
-C04A14804AEBFE004A5B4A5B4A5B4A5B5E4A5B91B5C7FC495B5D495B5B5D495B495BA249
-5BA24990C8FC5C13FF5C5A5C5A5CA25A5C5A5CA25AA25CA25A91C9FCA35AA25BA512FF5B
-B17F127FA57FA27EA3807EA280A27EA2807E807EA2807E807E80137F806D7FA26D7FA26D
-7F6D7F817F6D7F816D7F6E7F6E7F826E7F6E7F6E7F6E7F6EEBFF806E14C06F13E06F13F8
-6F13FC6F13FE6F13FF15018182161FEE0FFEEE03FCEE01F8308D61FD60>40
-D<EA0F80EA3FC0EA7FF07FEAFFFE7F806C13E0806C7F6C7F00077F6C7F6C806C6C7F6D7F
-6D7F6D7F6D7F7F6D7F6D7F6E7F806E7F82806E7F6E7FA26E7FA26E7F157F828117808117
-C081A217E08117F081A217F8A281A217FC81A317FEA2167FA517FF82B15E17FEA516FFA2
-17FCA35D17F8A25DA217F0A25D17E05D17C0A25D17805D17005D5E15FF4A5BA24A5BA24A
-5B4A5B5C5E4A5B5C91B5C7FC495B495B5B495B495B495B495B48B55A4891C8FC485B001F
-5B485B485B5CB5128091C9FC5BEA7FF85BEA3FC0EA0F80308D70FD60>I<167C4BB4FC4B
-7FA24B7FACD80780EF03C0D81FE0EF0FF0D83FF8EF3FF8486CEF7FFC01FFEE01FFB500C0
-030713FE02E05D02F8153F6C01FE92B512FC02FF14C16C02C701C714F803F713DF000F91
-B812E000031980C6F0FE006D5F011F17F0010717C0010194C7FC6D6C15FC6E5D020F15E0
-02031580A2020F15E0023F15F84A8149B8FC010717C0011F17F0017F17FC90B97E0003F0
-FF80000F19E0003F02F701DF14F803C713C748020701C114FC02FE14C0B500F8033F13FE
-02E0150F02C0816C0100030113FC01FCEE007F6C48EF3FF8D81FE0EF0FF0D80780EF03C0
-C893C7FCAC6F5BA26F90C9FCED007C474E74DE60>I<EE03E0EE0FF84C7EA24C7EB3AD00
-0FBB12F8003F1AFE4886A2BD1280A56C1B00A26C62000F1AF8C9D83FFECAFCB3AD705AA2
-705AEE03E0515379E060>I<EB1FE0EB7FF8EBFFFE487F4814804814C04814E015F05A15
-F8A215FCA215FEA37EA27E7E7E7E7F131F9038003FFCA2147FA2ECFFF8A24913F05B4913
-E05B4913C0137F48B51280000F1400123F485BB55A5C5C14C05C49C7FCEA7FF8EA3FE0EA
-0F801F315F9760>I<000FBA12FE003FF1FF80481AC0A2BC12E0A56C1AC0A26C1A80000F
-F1FE004B0D76BD60>I<13FF000313C04813E04813F04813F84813FC4813FEA2B6FCA86C
-13FEA26C13FC6C13F86C13F06C13E06C13C0C6130018185C9760>I<EE3FF84BB5FC030F
-14E0033F14F892B612FE4A81020716C04A824A824A824A8291B87E49DAF01F7F49DA8003
-804949C78003F8143F49496E7F49496E7F49496E7F4B804990C86C7FA249486F7F4A167F
-48854A824849701380A248497013C0A348497013E0A24A82481AF0A291CA7E481AF8A349
-83007F1AFCA549187FA200FF1AFEB16D18FFA2007F1AFCA56D5FA26C1AF8A26E5EA26C1A
-F0A26E5E6C1AE06E5EA26C1AC06E5EA26C6D4C1380A26C6D4C1300A26C6D4C5A6E5D6D60
-6F5C6D6D4A5B6F5C6D6D4A5B6D6D4A5B6D6D4A5B6F91B5FC6D9026FF80035C6DDAF01F91
-C7FC6D91B65A6E5E6E5E6E5E6E5E6E5E020193C8FC6E5D033F14F8030F14E0030191C9FC
-9238003FF84F7378F060>48 D<ED01F0ED07F84B7E82151FA2153FA2157FA215FF5CA25C
-5C5C5C5C5C49B5FC1307133F000FB6FC123F5AA2B7FC157F14FE14F86C13F014C0383FFE
-00EA1FF0C8FCB3B3B3AD0007B912E0001F18F84818FCA24818FEA46C18FCA26C18F80007
-18E03F716EF060>I<923803FFFE037FEBFFF00207B612FE021F6F7E027F16E049B812F8
-010717FE498349844984498490BA7EDC8007804802F0C76C7F0380020F7F4849C87E02F8
-03017F48837313806E82851BC0A2856C5BA26C5B6C5B6D5A011FCAFC90CB5AA21B8061A2
-1B006196B5FC62604E5B604E5B063F5B95B55A1707040FB65A031FB75A4B93C7FC4B5D92
-B75A19F06119F819FE737E6F826F826F8292C7000780DD007F7F060F7F06037F72148072
-6C13C0857313E0857313F0A27313F8851BFCA2851BFEA21A7FA3EA07F0EA1FFC487E487E
-A2B56C17FFA21BFC61A21BF891CA5A616C4819F06D5F6E4C13E06C6D5E6E4C13C06C6D4B
-B5128002FC5D6CD9FF80020F140003F0027F5B6C9126FF8007B55A6C92B75A6C616C6101
-3F606D95C7FC01075F6D17F8010017E0021F168002074BC8FCDA007F14F0030149C9FC4F
-7378F060>51 D<943803FFF84D7F4D7F4D7F5FA25F94B6FCA25E18F75E4C13E718C75E4C
-138718075EEE7FFEA2EEFFFC17F85D4B13F017E05D4B13C017805D4B1300A24B5A5E15FF
-4A5B5E5C4A5B5E5C4A5BA24A90C7FC5D147F4A5A5D5B495B5D5B495BA2495B92C8FC5B49
-5A5C13FF485B5C5A485BA2485B5C5A4890C9FC5B127F485A90BC12C01CE01CF01CF8A66C
-1BF06C1BE06C1BC0CB000790C8FCB30403B712FE4C824C17804C17C0A670178070170070
-5E55727BF160>I<013FB912E090BA7E4885865AA562626202F0CCFCB3AAEE7FFF0307B5
-12F0033F14FC02F1B7FC02F716C091B812F019FC8585868686DCE0078003FCC76C7F03E0
-021F7F0380140792C86C7F02FC6F7F4A814A7013806C49824A7013C06C5B013FCA6C13E0
-90CBFC851BF0A285A21BF8A285A4EA03E0EA0FF8487E487E487E61B57E1BF061A21BE061
-91CAFC4F13C06C485F6D4D1380A26C6D93B512006E15036C6D4B5B6E4B5B6C01FC033F5B
-02FF92B55A6C02E013076C02FE017F5C6C91B85A6C616D4DC7FC6D5F6D5F010717E06D17
-8001004CC8FC023F15F8020715E0020092C9FC030F13E04D7177EE60>I<13FF000313C0
-4813E04813F04813F84813FC4813FEA2B6FCA86C13FEA26C13FC6C13F86C13F06C13E06C
-13C0C6130090C7FCB3AC13FF000313C04813E04813F04813F84813FC4813FEA2B6FCA86C
-13FEA26C13FC6C13F86C13F06C13E06C13C0C61300184E5CCD60>58
-D<EB1FE0EB7FF8497E487F487F4814804814C0A24814E0A86C14C0A26C14806C14006C5B
-6C5B6D5AEB1FE090C8FCB3ACEB1FC0EB7FF0EBFFFC487F487F4814805A15C05A15E0A315
-F0A47EA27E7E7E7E7F131F130115E05BA215C05B5B15805B4913005B48485A485B120F00
-3F5B485BB55A5C5C91C7FC5B13F86C5AEA3FC0000FC8FC1C675FCD60>I<1A3EF2FF804F
-13C019074F13E0193F614EB5FC60060F14C0183F4E14804DB5EAFE004D14F8050F5C4D14
-C0057F5C94B548C7FC04035C4C14F0041F5C047F148093B548C8FC03035C4B14F0031F5C
-4B148092B6C9FC4A14FC02075C021F14E04A5C91B6CAFC4914FC01075C4914E0013F5C49
-91CBFC48B55A4814F8000F5C003F14C04891CCFC5CB512F85C14C014F0806C13FE806C14
-C0000F14F00003806C14FE6C6C7F6D14C0010F806D14F80101806D14FF023F14C06E8002
-0714F80201806E14FF033F806F14E00307806F14FC030080706D7E041F14E00407807014
-FC040080716D7E051F807114F00503807114FE716CEBFF807214C0180F060314E084727E
-85190F7313C01901731380F23E004B5D76E560>I<000FBB12F8003F1AFE4886A2BD1280
-A56C1B00A26C62000F1AF8D0FCAF000FBB12F8003F1AFE4886A2BD1280A56C1B00A26C62
-000F1AF8512979CB60>I<EA0F80EA3FE0487E13FC487E6D7E8014F0806C13FE6E7E6C80
-000F14F00003806C14FE6C6C7F6D14C0010F806D14F80101806D14FF023F14C0020F806E
-14F80201806E14FF033F806F14E00307806F14FC030014FF7080041F14E00407807014FC
-040080716D7E051F807114F00503807114FE716CEBFF80061F14C084060314E084727E4E
-B5FC60060F14C060067F14804DB5EAFE004D14F8050F5C4D14C0057F5C94B548C7FC0403
-5C4C14F0041F5C047F148093B6C8FC030314FC4B14F0031F5C4B148092B6C9FC4A14FC02
-075C4A14E0023F5C91B6CAFC4914FC01075C4914E0013F5C4991CBFC48B55A4814F8000F
-5C003F14C0485C4ACCFCB512F85C14C05C49CDFC6C5A13F06C5AEA0F804B5D76E560>I<
-000FBC12C0003F1BE0481BF01CF8BDFCA801FCC7000F9038C00001AE6C487213F06C48F1
-7FE06C48F13FC0C994C7FCB3B3B3B04AB712FE0207707E4A83A24A83A46E5FA26E5F0201
-4CC8FC556F7BEE60>84 D<0003B600C090B612F0000FDBE00381486F488104F882485EA4
-6C8204F05E6C4B6C5D00034BC65DD8000301FCC7000F01F0C7FC6D606F5C6D60816E4B5B
-826E4B90C8FC826E4B5A826E4A5B16F06E4A5B16F86E4A5B16FC6E4A5B16FE6E4A5B16FF
-6F01BF5B8194B5C9FC816081A26F5CA26F5CA26F5CA26F5CA2705BA2705BA44C7FA293B5
-7EA24B80845D845D845D845D05BF7F4B139F051F7F4B7F04FE8003FF7F04FC804A8004F8
-80834A01F080A24A6E7F5E4A6F7E5E4A6F7F4C814A8193C7804A814B8202FF8186494980
-86494980864949808649498187000FB60207B61280003F6F4915E0486F4915F0705BB718
-F8A46C1BF04C7F6C4B6D15E0000F92C76C1580556F7BEE60>88 D<0003BB12C0000F1AE0
-481AF01BF85AA61BF0A291CA001F13E04F13C0A24F138096B51200A24E5B4E5BA24E5B4E
-5BA24E5B4E5B6C5A6C484C5B6C4893B5C7FCCBFC4D5B4D5BA24D5B4D5BA24D5B4D5BA24D
-5B94B5C8FCA24C5B4C5BA24C5B5E604C5B5E604C5B93B5FC95C9FC4B5B5D5F4B5B5D5F4B
-5B5D5F4B5B92B5FC94CAFC4A5BA24A5B4A5BA24A5B4A5BA24A5B4A5BA291B5CBFC4949EE
-1FE0F23FF04949EE7FF84949EEFFFCA2495B495BA2495B495BA290B5CAFC485BA2485B48
-5BA2485B485BA2485B4890BAFCA2BCFCA76C1AF86C1AF06C1AE04E6F77EE60>90
-D<001FB712FC48824882B91280A618005F5F01FCCAFCB3B3B3B3B3B3A990B712FC838318
-80A66C17006C5E6C5E318D59FD60>I<001FB712FC48824882B91280A67E7E7EC9121FB3
-B3B3B3B3B3A9001FB8FC5A5AB9FCA66C17006C5E6C5E318D79FD60>93
-D<ED0780ED1FC0ED7FF0913801FFFC020713FF021F14C0027F14F049B612FC010715FF01
-1F16C0017F16F048B812FC4883000FEFFF80003F02F815E048DAE03F14F04B7EB6D80007
-14F802FC13014A7F6C01E0023F13F00280140F6C48C8000313E04981D81FF09238007FC0
-D80FC0EE1F800003CAEA06003D1B6FEE60>I<000FBA12FE003FF1FF80481AC0A2BC12E0
-A56C1AC0A26C1A80000FF1FE004B0D767B60>I<0207B512C091B612FC0107EDFF80011F
-16E04916F84916FE90B97E4884854884854884DB00018002FCD9001F7F0503801700727F
-6C496F7F846C496F7F6C49816D4881011FC98090CAFC84A594B6FC167F030FB7FC92B8FC
-1407141F91B9FC1303130F5B137F90BAFC48EEE00148EDF000484AC7FC4814F048148002
-FCC8FC4813F05C48138091C9FC485AA25BA66D5EA26C6C5EA26E151F6C6D5D02F092B5FC
-6C6D14036C01FF021F14FFDBE003B812E06C91BA12F06C1BF86C1BFC7E7F6D836DEEFC3F
-0107EEF00F0101DCC00714F86D6CDB000114F0020F02F0D9001F13E0020049CBFC565177
-CF60>97 D<001FB512C048804880B67EA67E7E7EEA0001B3A2943807FF80057F13F80403
-B6FC040F15C0043F8193B712F803F916FE92B9FC87878787DDFC03809426C0003F7F94C7
-000F7F04FC804C02017F04E06E14804C814C6F13C08693C914E04B827413F05D7413F85D
-861CFCA286A31CFEA21B7FAA1BFFA21CFCA262811CF862811CF0626F5E1CE0705D704B13
-C0627092B51280704A1400705C70020F5B04FF4A5B7190B55ADDF8075C94B75A636398C7
-FC03FB5E03F95E03F816F06D023F15C0DBF00F92C8FC91267FE00314FC91261FC00014F0
-91C8001F90C9FC57707EEE60>I<93383FFFFE0303B612F0031F15FC037F15FF4AB812C0
-020783021F83027F8391B9FC49845B4984499138F0000F4991C712034913FC4913F090B5
-12C0484A6E5B92C8FC48496F5B4A705A4849705A4AEE0F80484993C8FCA2485B5C5AA291
-CDFC5AA25BA212FFA25BAA7FA2127FA27FA27E80A26C6DEE03FC6E4C7E6C4E7E6E4C1380
-6C7F806C6D5E6C6D5E6F17006C02E092B5FC6D6D4A5B6D01FE14076F6C011F5B6DDAFC01
-B55A6D91B7FC6D600101606D606E5F021F94C7FC6E16FC020316F0020016C0031F92C8FC
-030314F8DB003F1380495174CF60>I<0503B512F84D804D804D80A683838394C7123FB3
-A2923801FFF0031F13FF037F14C04AB612F0020715FC021F15FF027F16BF91BAFC5B5B5B
-5B49ECC01F499038FE00034901F0130090B548143F4802808092C87E4849814849814A81
-485B4A8148845C5C4884A291CAFC5AA25BA212FFA25BAA7FA2127FA2617FA26C95B5FC80
-A26C6D5DA26C6D5D6E5D7E6E5D6C6D5D6E5D6C6D5D6C02C091B6FC6F13036D01F8130F6D
-9026FF807FEDFFF06D91B912F86D1AFC6D1AFE6D17BF6D173F6D16FE023F15FC020F15F0
-0203DBC01F14FC0200DB000F14F8033F01FC6D14F0030301C090C9FC57707AEE60>I<EE
-7FFC030FB512C0033F14F892B612FE02036F7E020F16E0023F16F84A8249B87E49834984
-498449DAE00F804949C7804901F8143F90B500E0020F7F0380804891C86C7F4849814A6F
-7F485B4A707E48844A1880485B85484918C0A291CA7E5AA25B1BE000FF8490BBFCA91BC0
-1B801B0049CDFC127FA27FA27E80A26C7F1AFF6C6D4C13806E4C13C06C6D4C13E0A26C7F
-6E5E6C6D6C5D6C6E4B13C06F5D6D01F892B512806D01FE14036DD9FFC0010F14006D02FE
-90B55A6D91B75A7F6D606D60023F17C06E5F020794C7FC020116FC6E6C15F0031F158003
-0302FCC8FCDB001F13C04B5176CF60>I<F0FFFC050FEBFFC0053F14F094B67E04038104
-0F814C815E4C168093B8FC5D5D4BECC07FEFFE004B01F86D13005F4B496D5A4D6D5A4DEB
-03F04B92C8FCA294CAFCAD000FBA12C0003F85488586BBFCA56C616C616C61C8003F90CA
-FCB3B3B2000FB912FC003F18FF4885A2BB7EA46C61A26C96C7FC000F18FC497079EF60>
-I<F20FFC922601FFE091B51280031F01FE010714C0037F9026FF801F14F04AB6D8E07F14
-F8020703F8B6FC021F92B712FC5C4A19FE49BBFC5B5B1AFC49DA807F02C013FC499026FC
-000FEC007F4901F0010316F84B6DED3FF04901806D6C9038800FE092C86C91C7FC90B583
-4A8148496F7FA24A81A24885A24A81A76E5DA26C61A26E5DA26C6D4B5B6E5D6D606F5C6D
-01E049B5C8FC6F5B6D01FC010F5B6D9026FF807F5B4991B65AA2495F6149178096C9FC60
-90B812F802F915E0DAF07F1480031F49CAFC030113E092CDFCA46D7EA2806D7EECFFFC6D
-90B7FC19FC6DEFFFC06D18F0011F18FE49727E498590BB12F04886488648864891C80003
-8002F0DB000F14804801C016004A053F13C04890CB120F49060313E0484884497213F0A2
-49197F00FF1BF8A249193FA66D197FA26C6CF1FFF06D606C6C4E13E06D6C170F6C6D4D13
-C002F0177F6C01FE0403B512806C6D6C030F14006C02F892B55A6CDAFFE0013F5C6C92B8
-5A6D616D616D61010796C7FC010118FC6D6C17F0021F17C0020794C8FC020016F8030F15
-80DB007F01F0C9FC577A7BCF60>I<001FB512C048804880B67EA67E7E7EEA0001B3A294
-3803FFE0053F13FC4CB6FC040715C0041F15F0047F8193B77E03F98292B8FC8687A2DDFE
-01809438E0003F05807F4CC76C7F5E4C8004E0825E855E93C8FCA25DA25DA45DB3B3001F
-B7D88003B7FC48DCC00F168048704816C0B800F017E060A4846C04E017C06C4C6C16806C
-DC800316005B6F7EEE60>I<ED01F0ED07FCED1FFF4B7FA24B7FA292B57EA56F5BA26F5B
-A26F90C9FCED07FCED01F092CBFCAF0007B7FC001F824882835AA47EA27E1207C81207B3
-B3B2001FBA12C04819E04819F0BB12F8A66C19F06C19E06C19C0457072EF60>I<000FB7
-12C0003F82488283B8FCA47EA27E120FC81201B3B3B3B3AF000FBBFC003F1AC0481AE0A2
-BC12F0A46C1AE0A26C1AC0000F1A004C6F76EE60>108 D<DCFFC0EC7FE0271FFFC00701
-F0903803FFF848D9E01F01FC010F13FE48D9F07F6D013F7FB56CB6498002FB0381B67E91
-B700C38118C706EF8195B7FC6C877E6C038103C07FD8003F49C66CEC003F03F815FC4B6D
-49131F4B4B804B5D4B5D71150F92C75CA24A93C7FCA34A5DA44A5DB3B3A2001FB5D8F001
-B500F890B512FC48DAF807DAFC0380486E486E4880B600FE03FF16804C5DA470816C02FC
-03FE16006C4A6C4A6C5C6CDAF0014AC65C614F81CE60>I<943803FFE0001FB500C0013F
-13FC486E48B6FC48DAF00715C0B6D8F81F15F0047F8193B77E03F98292B8FC866C867E6C
-DCFE0180D800019238E0003F05807F4CC76C7F5E4C8004E0825E855E93C8FCA25DA25DA4
-5DB3B3001FB7D88003B7FC48DCC00F168048704816C0B800F017E060A4846C04E017C06C
-4C6C16806CDC800316005B4F7ECE60>I<EEFFE0031F13FF037F14C00203B612F8020F15
-FE4A81027F16C091B87E4983010717FC49834983EE803F499026FC0007804901F0010180
-90B500C06D6C7F484A6E7F4AC8120F48496F7F4A8148496F7F48854A814A167F48854A82
-481A8091CA7EA2481AC04983A448487113E0AC6D5FA2007F1AC0A26D5FA26C1A806E5EA2
-6C6D4C1300A26E93B5FC6C6D4B5BA26C6D4B5B6E5D6C6D4B5B6E5D6C6E4A5B6C6E4A5B6D
-01F049B55A03FC13076D9026FF803F5C6D91B7C7FC6D5F6D5F6D5F010017E06E5E021F93
-C8FC6E5D020315F8020015E0031F91C9FC030013E04B5176CF60>I<943807FF80001FB5
-00C0017F13F848DAE003B6FC48DAF00F15C0B6D8F83F8193B712F803F916FE92B9FC8787
-6C866C866CDCFC0380D800019226C0003F7F94C7000F7F04FC804C02017F04E06E14804C
-814C6F13C08693C914E04B827413F05D7413F85D861CFCA286A31CFEA21B7FAA1BFFA21C
-FCA262811CF862811CF0626F5E1CE0705D704B13C0627092B51280704A1400705C70020F
-5B04FF4A5B7190B55ADDF8075C94B75A636398C7FC03FB5E03F95E03F816F0043F15C004
-0F92C8FC040314FC040014F0051F90C9FC94CBFCB3A9001FB77E48824882B87EA66C5E6C
-5E6C5E57777ECE60>I<96381FFF80000FB66C49B512F0003F6F010F14FC486F013F14FF
-7090B71280B7010316C0170F4D16E05F6C93B812F016F16C15F3000F03F7ECF80FC70003
-90B612809526FC000713E018F04E6D13C006806D138095C813004D153C4D92C7FC5F5F5F
-5FA25F94CBFCA25EA35EA35EA45EB3AA000FB912F0003F84488485BAFCA47E616C60000F
-60544F7BCE60>114 D<92267FFFF0137C021FB6EA01FE91B7EAE3FF010393B51280130F
-133F90BAFC5A5A5A5A5A9238C0007F4801F8C7120702C014014890C97E4982485A49825B
-A56D701300725AD87FFE705A6D93C8FC14E06C13FCECFFC06C14FF6C15FC6CEDFFF06CEE
-FF806C17F06C17FC013F16FF010F17C0010317F0010083021F82020182DA000F81DB003F
-1580040015C0050714E0EF007F061F13F0D80FE01607D83FF0040113F8486C826DEF7FFC
-12FF193F7FA37FA26E167F80F1FFF86E5D6E5D02FC4B13F06E151FDAFFC091B512E003FC
-011F14C092B8FC1A801A0061616101F317E001F01780D9E03F4BC7FC007F010F15F8263F
-C00115C06CC7001F01F8C8FC465173CF60>I<ED3F80EDFFC04A7F825CB3000FBA12F800
-3F85488586BCFCA56C616C616C61C7000301F0CAFCB3B2F27F80F2FFC04F13E04F13F0A6
-61821BE06E5E824F13C0705C6E6D4A1380DDC001B5FC6FD9F80F140094B7FC6F5E6F5E6F
-5E626F5E030116806F93C7FC043F14FC040F14F0040314C09326007FFCC8FC4C667BE460
->I<001FB500C0023FB57E486E4A80486E91B67EB66C4981A66C826C836C83D80001EE00
-03B3B3A761A36161A26F5D616D4CB5FC6F5C6F6C131F6ED9F801B8FC93BA12806E1AC01D
-E08080806E16FB6E16E36E6C038115C0031F4AC61580030702F86D1400DB007F018090C9
-FC5B4F7ECD60>I<000FB66C0103B612E0003F03E0010F15F8486F4915FCA2B76C4915FE
-A46C4B6D15FCA26C4B6D15F8000F0380010315E0D800070180C80003EBC0006D616F5DA2
-6D96C7FC6F5DA26D606F151FA2027F5F6F153FA2023F5F6F157FA2021F5F6F15FFA2020F
-5F6F5CA26E5F705BA26E5F705BA26E94C8FC705BA26E5E70131FA2037F5D70133FA2033F
-5D70137FA2031F5D7013FFA2030F5D705AA26F5D1783A26F5D17C7A26F92C9FC17EFA26F
-5C17FFA2705BA3705BA2705B705B705B040190CAFC574F7CCD60>I<001FB66C91B612FC
-4803E0010381486F4981B71980705BA44C7F6C1C006C4B6D5D6C038001005D26007FF0CA
-000790C7FC6E5F013F61A56D6C4D5AA56E173F010F61A56E177F6DDB7F805C933801FFE0
-4C7F5E84038016FF6D4A6D5CA34C7FA26D01C05F614C13FF17F717F3167F6D01E003815B
-1983A216FF05E313C317E1027F95C8FC15F119E717C0A215F3023F5F9438807FF715FBA2
-92B514FF6E4A6C5BA35E84A26E5F4C7FA36E496D5B4C7F6E496D5B020001806D1380594F
-7DCD60>I<0007B600C0017FB512FC001F03F090B7FC486F4816805F4803FC17C0A46C03
-F81780836C4B6C1600000703C06D14FCC7D87FFCC7000301E0C7FC6F4A5B023F4B5B6E7E
-6E6D4990C8FC6E6D495A70495A806E6D495A6E6D485B6F6C485B616F6C5A6F6C485B6F01
-9F90C9FC606F13FF6F5C6F5C6F5CA2705B705B705B7090CAFCA34C7F845E4C7F93B57E4B
-80844B139F4BEB0FFE4B804C6C7F4B487E033F814B486C7F4C6C7F03FF6E7E4A5B4A496D
-7E727E4A49804A90C76C7F4A814A486E7F4B824A486E7F02FF6F7F495B000FB66C010F90
-B51280003F03E0013F15C0486F4915E01CF0B76C90B7FCA46C4B7F1CE06C4B6D15C0000F
-0380010F1580544E7BCD60>I<001FB66C0107B612C0486F011F15F0486F4915F8B77E4E
-15FCA47215F86C5D6C4B6D15F06C4B010715C0D800070180C80007EB800098C7FC6D6D5D
-A26D606F151FA26D6D5E193F147F6F5E197F6E7E62021F16FF8162020F5D816E5F705BA2
-6E5F705BA26E6D92C8FC606E5E82181F037F5D82033F143F705CA2151F70495A150FA270
-495A81A26F01815BA217C16F01C35BA26F13E396C9FC17E7167FEFF7FEEE3FFFA26082A2
-6082A2705BA3705BA282605EA2605EA295CAFC5EA25F161FA25F163FA25F167F01FE5D26
-03FF8013FF487F486D485B5D4801F05C5D4B5B5DDA803F90CBFCEDFFFE14876C90B55A5E
-5E6C5DA26C15806C92CCFC5D6C5C013F13F06D13C0D903FECDFC56777BCD60>I<F17FFF
-061FB512804DB612C0050715E0171F177F4CB7FC5E5E4C16C04C16804C16004C02F8C7FC
-4EC8FC93B512E018804DC9FC4B5BA25FB3B3A25DA2030F5B5D037F5B0203B5FC027F5C00
-0FB7FC003F5E4893CAFC5EB75A16F05E8216FC6C81826C82000F82C77E020380EC007F03
-1F7F8103037FA281B3B3A283A26F7F717E18E07013FEF0FFF87091B5FC7016807016C070
-16E08282707E171F1707050115C0DD001F1480DE007F13004B8D76FD60>123
-D<EA0F80EA3FE0EA7FF0A2EAFFF8B3B3B3B3B3B3B3A7EA7FF0A2EA3FE0EA0F800D8D57FD
-60>I<380FFFC0003FEBFF804814F015FEB77E16E016F882826C816C826C82D8000181EB
-0007DA007F7F151F15076F7FA281B3B3A283836F7F847013E018FC70EBFFC0F1FFFE70ED
-FF807016C0827016E016008394B7FC16034C16C05E4C16804CEDFE0007C0C7FC4C01FCC8
-FC18E093B5128095C9FC4B5B5F5FB3B3A25DA24B5B151F157F0207B55A49B6FC001FB75A
-485E4893CAFCB75A5E5E16E016806C4ACBFC15F06C1480000F01C0CCFC4B8D76FD60>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmbx12 12 29
-/Fe 29 122 df<EB1FE0EB7FF83801FFFE0007EBFF804814C04814E0A24814F0A24814F8
-A2B612FCA86C14F8A26C14F0A26C14E0A26C14C06C14800001EBFE0038007FF8EB1FE01E
-1E709D3E>46 D[<EF03F0EF0FF8171F177F17FF1603160F163F4BB5FC150F92B6FC141F
-013FB7FCB9FCA615F7150714E0EBC000C8FCB3B3B3B3B3A7003FBB12FEAA>79
-130 111 257 112 49 D[<93387FFFC0030FB6FC92B712F0020316FE021F707E027F17E0
-49B912F84918FE010F727E4985499026FC007F15F090B500C00107814849C700018102F8
-6E6C804801E0031F8048496F8148496F8102E015014801F88502FE6F81486D826F6F8048
-80738081B67080817380A4851D80A36C5CA26C5CA26C5C6C91C9FC6C5B6C5BC613F0D91F
-801A0090CBFC61A264A24F5CA34F5C646164616496B65A99C7FC4E5C4E5C634E5C4E5C63
-4E5C4E91C8FC4E5B6295B55A4D14E04D5C4D5C4D49C9FC614D5B4D13E04D5B94B55A4C49
-CAFC4C5B4C5B4C13E04C5B4C49EDFF804C90C9FC4C5A4B13F84B494B13004B5B4B5B4B5B
-4B48C9FC4B485E4B5A4A495F4A13C04A4916074A90CAFC4A5A4A48170FEC7FF04B4CB45A
-91BBFC5B5B5B5B5B5B496290BCFC5A5A5A5A5A48635ABDFCA564A4>89
-130 117 257 112 I[<93380FFFFC4BB612F0030F15FF037F16E04AB812F8020717FE02
-1F717E4A18E091BA12F8499126F8007F80490280010F804901F8C70003804901E0020081
-4901806F804948C96C80804901C06F8015F090B56C846F81486E84A281488782A285A361
-A36C92C8FCA2646C5C6D5B4F5C6D5B010F13E0010301804B5CD900FEC9FC91CA5D616496
-B65AA24E92C7FC4E5C634E5C4E5C4E5C067F148095B6C8FC050714FC0407B65A0307B712
-E04B168007FCC9FC19F085F1FF801AF06F16FE92C86E7E060F14E0060314F87280726C13
-FF738073801CF073808588738088A27315801DC0A21DE0A2851DF0A3D91FC01AF8EBFFF8
-000313FE487F488048804880A24880A2B67EA21DF0A44F15E0A34B19C07E4B4B1580A26C
-4A19004B5D6C91C95D4A4C5C6C5B02E04C5C6C6D4C5C6C6D4C5C6C01FF93B65A6C02E002
-035D6D01FC020F92C7FC6DD9FFF090B612FC010F91B85A6D19E00101616D6C95C8FC021F
-17F8020317E0DA007F93C9FC030715F0DB001F01FCCAFC>93 132
-119 257 112 I[<F207FE507E62A2626297B5FCA261616161A261616196B6FCA2606060
-A260606060A295B7FC5F5F85EF07FE170FEF1FFCEF3FF818F0177FEFFFE04C13C018804C
-13005E4C5A4C5A5F163F4C5A4C5A5F4B5B5D4B90C7FC4B5A5E151F4B5A4B5A5E4B5A5C4A
-5B4A90C8FC5D140F4A5A4A5A5D4A5A14FF495B495B92C9FC5B495A495A5C495A137F495A
-485B5C4890CAFC5A485A5B485A123F485A485A90BE12E0AACB000192C8FCB3A4047FBA12
-E0AA>99 131 122 258 112 I[<BE12F0F5FFC01EFEF6FFC01FF81FFF20C020F020FC20
-FFC700074AC9000F16C0E2007F810B0715F80B00810C3F800C0F6E7E0C03810C00817980
-0D1F80798079808B798079817A807A80A27A807A80A27A80A27A80A27A80A2A112808CA1
-12C0A37B14E0A3A112F08DA3A112F8A4A112FCA28DA5A112FEB3A112FCA569A2A112F8A4
-A112F0A269A112E0A3A112C09EB6FCA2A1128068A11200A2565CA2565CA2565C686B565C
-686B9DB65A5592C7FC555C555C0D1F5C675514E054B65A0C075D0C1F92C8FC0C7F5C0B03
-B612F80B3F5D0A0FB712C0C25A56C9FC20F820E020800DFCCAFC1FE054CBFC1EE00BF0CC
-FC>151 137 120 264 172 68 D[<BB12FEAAC700030380C7FCB3B3B3B3B3B3A9BB12FE
-AA>71 137 122 264 83 73 D[<B96C063FB812FC848484A284848484A2C700077094C7
-000F01F0C7FC73070113808585A285854B8170807081A27081708170817081A270817081
-71807181838771817181718183877181728072817281A27281728172817281A272817380
-73817381858973817381738185897480748174817481A27481748174817481A275807581
-75817581878B758175817581888B7615807615C07615E08820F07615F87615FC7615FE77
-14FFA27715817715C17715E17715F18921F97715FD7792B5FC8A8AA28A8A8A8AA28A8A8B
-8BA28B8B8B8B8BA28B8C8C8CA28C8C8C8CA291263FFFC087B900F0868D8DA28D8D8D8DA2
-7B90C8FC>158 137 120 264 175 78 D[<93260FFFF0ED01F00303B600C081031F03F8
-140392B81407020305E0130F020F05F8131F023F71133F91BA137F49F1C0FF499126FC00
-1F14E1010F02C0010014F34949C8000F90B5FC4901F815034901E0ED007F4B8290B54816
-0F4891CA7E484917014A8348864A8448864A845A8748865C875A87A21C7FA2B5FC6E193F
-A36E191FA3806E190F80A215C0816C6E725A03FC95C8FC81EDFFC06C15F8EEFF8017FC6C
-EEFFC018FE6CEFFFF019FF6C19F01AFE6CF1FFC01BF06C1AFC6C1AFF6D866D1AE0886D86
-6D860103866D866D876E86021F8602078614016E6C85031F851503DB003F841603DC001F
-831701DD000F17801800070716C0F1007F1A1F080715E01A018687877514F087007F8648
-7E8787A387A36D86A31EE07FA37F1EC07F99B5FC6D1C807F636D1C00806E4E5B8002F84E
-5B6E6002FF4E5B6F4D5B03E04D5B03FC94B5FC03FF04035C04F04B5C04FF033F91C7FC49
-6C02FE0103B55A496C91B85AD9F80F19F0D9F0036149C6198049013F95C8FC49010F17FC
-90C7000117E048DA001F168048030103F8C9FC007CDB000391CAFC>100
-141 116 266 125 83 D[<000FC212FEA6488DA40480C703E0C7123F03F0C818010380F3
-003F4AC9190F02F81D034A894A894A8A484978138091CA86498BA2498BA2498BA2498BA4
-498B007F22C0A449207FA84848F83FE0A6CC98C7FCB3B3B3B3A4033FBD7EAA>139
-135 120 262 156 I[<BB00F84BB912E0AAC7000792CE6C0180C7FCE70FFCC8FCB3B3B3
-B3AF6E1E1F6AA3846E1E3F6AA26E1E7F7263A26F1DFF6A6F6E616A6F646F6E4F90C9FC68
-6F6E626F6E191F724F5A6F525A6F6EF001FF706E4D5B7002E04D5B706E051F5B7002FC05
-7F5B7002FF0403B5CAFC7003C0030F5B040003FC92B55A71DAFFE0013F14F0051F92B85A
-0507627197CBFCDD007F18FC061F18F0060718C006004DCCFC070F16F007001680080102
-E0CDFC>155 139 120 264 172 I<93B512F8037FECFFE00207B712FE023F707E91B912
-F0010318FC4918FF49854991C715E04901F0021F80496D0207806F02018090B56F806F6F
-7F4872806F6F8085888588A27380A26C5CA26D496F806D5BA26D5B010713C0010190C9FC
-90CBFCA796B6FC050FB7FC0407B8FC93B9FC150F157F0203BAFC021F1681027FEDC00149
-B6EAF800010715C0494AC7FC013F14F84914C090B65A484AC8FC485C485C485C485C5D5A
-5D5A92C9FCA2B6FC5CA461A36E5E7E616F5D7E6F5D6C6EDBFFBF7F6F4A013F7F6C6EDA03
-FE15F06C02FEDA0FFCEDFFF86C6E6C017F6D15FC6C9239F007FFF06C92B6487E013F17C0
-010FEF000701034C1301010004F87F021F03C0141F020392C8000314F8DA000F01E092C9
-FC665C7ADA6D>97 D[<ED1FF0017FB5FCB7FCAAEA003F1307A27FB3AF96383FFF800607
-B512FE063FECFFC04DB712F8050716FE051F707E057F17E004F1B97E04F3DA801F14FC93
-B526F800018006C06D6C7F4DC8001F804D6F14E005F015034D6F8005806F8094CA804C71
-7F4C838A4C711480A27614C0A21FE0A27614F0A31FF8A37614FCA61FFEAF1FFCA51FF864
-A21FF0A35214E0A21FC0A2521480A2704D1400A2704D5B7094B55A7160715D714B5C714B
-5CDCBFF8031F5CDC1FFE4B5C4B6C6C6C91B548C7FC4B6C01E001075C7001FE017F5C4B6C
-90B812E04B6C6C17804B6D4CC8FC4B010F16F84B010316E092C86C92C9FC4A031F14F090
-CB49CAFC>111 139 122 265 125 I<94B512E0041FECFF804BB712F8030F16FF033F17
-C092B97E020318F8020F844A84027F9126F0000F7F91B600806D14804902FCC75A494A17
-C04902E05C494A17E0494A5C4991C8FC495B90B55AA2485C5A5D487214C0A2484A6F1480
-7314005A4B6F5B070013F848F13FE097C8FCA3485CA5B6FCAF7EA281A37EA2817EA36C80
-F303F86CF207FC816C1A0F6F18F86C6E171FA26C6EEF3FF06D6E167F6D6E17E070EEFFC0
-6D6E5D6D02FC030713806D02FF4B13006D03C0EC3FFE010003F8ECFFFC6E9126FF800F5B
-6E92B65A020F60020318806E95C7FCDA003F16FC030F16F003011680DB001F02FCC8FC04
-001480565C79DA64>I[<F5FF800803B6FC0707B7FCAAF10001F2003FA287B3AFEFFFFE04
-3FEBFFF04BB612FE030FEDFF80037F16F04AB812F8020717FE4AEFFF9F023FDAFC0014DF
-4A02C0010F90B6FC49B548C712014902F86E7E494A151F4902C081494A814991C97E4B82
-498490B54883484A83A2485CA2485CA25AA2485CA25AA35D5AA5B6FCAF7EA66C80A37EA3
-6C80A27EA26C80636C6E94B6FC6C616F5E6D6D5E6D606D6D5E6D6E4B816D02E092B7FC6D
-6E4A16F86D02FC0207EEFFFE6D02FF023F13BF6EDAF003B5123F021F91B612FC6E17F802
-0317E002001780031FEDFE00030715F8DB007F14C0040301F8C702F0C7FC>111
-139 121 265 125 I<4CB5FC043F14F80303B7FC030F16E0037F16F84AB812FE0207717E
-4A84023FDAE00F804ADA000114F891B500F8D9003F7F01034A6E7F4902C080494A02037F
-4991C88149496F804B81498690B548707F48854B845A4B824887A248737F5D5AA2884885
-A25D5AA21D80A3B6FCA292BBFCA61D000380CDFCA67EA4817EA47E817E1C7F6C6EF0FF80
-A27E6F5F6C1C006F5F6C6E4D5A7F6D6D4D5A70161F6D02E04C5A6D6E4C5A6D6E4B485A6D
-02FE4B5B6DDAFFC0020F5B6D6C02F8027F90C7FC6E913AFF8007FFFE6E92B65A02076002
-0118E06E6C1780031F4CC8FC030716F8030016E0040F4AC9FCDC003F13C0595C7ADA66>
-I[<F0FFFE053FEBFFC00403B612F0041F15FC047F810303B812804B17C0151F037FDAC0
-7F13E092B548C6B512F04AECF8014ADAE00314F84A14C04A028015FC4A4A5A4A5B5E5C5E
-91B5FC5E497014F8A3494A6D14F07214E07313C0731380731300F103F896C8FCB3A2BA12
-C0AAD8000302F0CAFCB3B3B3AFB912F8AA>78 139 121 266 68
-I[<EC3FC0ECFFF0010313FC497F497F498049804980A290B67EA24881A86C5DA26D5CA2
-6D5C6D5C6D91C7FC6D5B6D5B010013F0EC3FC091C9FCB3ED1FF0013FB5FC007FB6FCAAEA
-003F1307A27FB3B3B3ABB9FCAA>48 139 120 266 63 105 D[<ED1FF0017FB5FCB7FCAA
-EA003F1307A27FB3B3B3B3B3B3A5B912C0AA>50 138 120 265 63
-108 D<DB3FE0912603FFF894380FFFE0017FB5037FD9FFC04BB6FCB74AB600F8030715E0
-060F03FE033F15F84E6F6C4A15FE067F7049B8FC4DB86C0107834D7149834DD9F00F6E49
-D9C03F80051FD900016E90277FFC000780DD3FFC6D6ED9FFF06D80DD7FF06E4A01C07FD8
-003FDBFFC0704890C78101074C6E4B8004E190C8DB87FC836DDAE3FC6FDA8FF081DCE7F8
-F09FE04DDEDFC08304EF19FF4D6F4B81DCFFC096C9FCA1804D6094C95DA24C61A34C61A4
-4C61B3B3ACB9D8E003B9D8800FB812FEAAAF5A78D9BC>I<DB3FE0913807FFF0017FB503
-7FEBFF80B70203B612F0060F15FC063F15FF4E824DB87E4D83050FD9F00F804DD9000380
-DD3FF86D804D487FD8003FDBFFC06E7F01075EDCE1FEC8806DDAE3FC81DCE7F8845F16EF
-4D81EEFFC04D84A294C9FCA25EA35EA45EB3B3ACB9D8E007B9FCAA705A78D97D>I<9438
-7FFFC0040FB512FE93B712E0030716FC033FEEFF8092B912E0020318F8020F18FE4ADAF0
-01804A91C7001F8091B500FC020714E04902F00201804902C06E6C7F494A6F7F4991C96C
-7F4949707F4949708049497080A290B548708048884B824888A2484A717FA24888A24888
-A24B83481D80A3481DC0A6B61BE0AE6C1DC0A56C1D806F5FA36C1D00A26C646F94B5FCA2
-6C646F5E6C646C646F5E6C646D6D4C5C6F5E6D6D4C5C6D6E4B91C7FC6D6E4B5B6D02F04A
-B55A6D02FC02075C010002FF021F14E06EDAF001B65A6E91B85A020F4EC8FC020318F86E
-60DA003F1780030F4CC9FC030116F0DB001F92CAFCDC007F13C0635C7ADA70>I<DB1FF0
-91381FFFC0017FB50203B512FEB7023FECFFE095B712F8050716FF051F83057F17E094B9
-12F804F38404F7DA803F14FF93B526F00003810680010081D8003F4BC86C80010703F803
-1F804D6F806D03C0814D6F8094C96C804C854C824C1A80887614C0A21FE0881FF088A21F
-F8A2881FFCA57614FEB01FFC64A41FF8A2641FF0A2641FE0A25214C0A2521480A299B612
-0082704C5C704C5C7160715D714B5C714B5C71037F5C05FE92B65A716C01034AC7FC06E0
-010F5C04FB01FE90B65A04F990B812E0DCF87F1780714CC8FC050F16F8050316E0050093
-C9FC061F14F0060049CAFC96CCFCB3AAB912E0AA6F817AD97D>I<DB3FC0EB07FF017FB5
-023F13E0B791B512F8050314FE050FECFF804D15C04D15E04D15F09426FFFC3F13F804C1
-EBE07F0680B512FC04C35BD8003F9126C7FC0114FE010715F816CF6D15F0EEDFE017C0A2
-EEFF807214FC94C7FC7313F8A24C6E13F07313E0070713804C913801FE0096C8FCA35EA6
-5EB3B3A7B912F8AA4F5A7AD95C>114 D<92263FFFF0EB07C00207B66C487E023FEDF03F
-49B7EAFCFF010793B5FC131F5B90B538F0003F4891C712034801F8EC007F4801E0151F4A
-81484981488391C97E48835B007F187FA3193F12FF7FA280806E705A6E93C8FC14FCECFF
-8015F06CECFF8016FEEEFFF06CEEFF8018F018FC6C17FF6C18C019F06C846C846C18FF6C
-856D84011F847F010384010084143F020F831401DA000F82ED007F040181EE000F1701DD
-003F148084007F1707486C8284847F85A26D83A36D1900A27F7F4F5A7F6D606E16FF6E5F
-6E5D6E4B5B02FC150F02FF4B5B03E091B55A03FE010F5C92B8C7FC19FC01F85FD9E03F16
-E0D9C00F1680D900034BC8FC48D9007F14E0007C020701FCC9FC495C79DA58>I<ED07FC
-A8150FA5151FA4153FA3157FA215FFA25CA25C5CA25C5C5C5C91B5FC5B5B130F5B90BA12
-C01207BBFCA8D8000102FCC9FCB3B3A8F107FCB0190F6D6E15F8A2191F1AF06E6D143F1A
-E06E6E137F71EBFFC06E6E5A6EDAFC0F13806E91B612006E5E6E5E6E5E033F5D6F5D0303
-1580DB007F49C7FC040313E046807CFE57>I<DB0FF8F07FC0017FB50403B6FCB70307B7
-FCAAD8003FEF00010107F0003FA26D85B3B3AD63A363A398B6FCA26D6062A2626D6E5DE0
-1FEF806E173F70DBFFCF14FC6E6D4A018F91B5FC6E6E0107130F05F8EB7FFE6E91B612FC
-020317F86E17E06E6C16C0031F1600030715FC030015F0040391C702FCC7FC705B78D97D
->I<007FB8020FB712E0AAC76C0280DA003F01E0C7FC6E6E030F90C8FC714B5A6E6E4B5A
-6E6E4B5A6E4E5A6E6E5E715C6E6E4A5B6E6F495B6F4C90C9FC6F6E495A72495A6F6E5C6F
-6E137F6F4C5A6F6E485B72485B6F6E485B6F038790CAFC70EC8FFE19DF70ECFFFC705D70
-5D705D6282705D7092CBFC7180867180718083718086864D805F874D814D8194B77E4C13
-EF4C01C7800687804C0103804C6D804C487E4C48824C486D804C486D804D6D804B814B49
-824B496D804B90C76C804B48804B486E804C84037F70804B486F804A49814A496F804A49
-844A90C96C804B708091B56C81B892B812FEAA6F597DD876>120
-D<007FB8031FB612F0AAD8000302FCCA001FEB80006D6EDD07FCC7FC1C0F826D505A836E
-4F5AA26E6E4C5AA26E6E5F1CFF6E6E5F63836E4E90C8FC836E4E5AA26E6E4B5AA26E6E5E
-1B1F846F4D5A846F4D5A846F4D5AA26F6E495BA26F6E92C9FC62846F4C5A846F4C5AA26F
-6E495AA27002805B1A3F7002C05B1A7F19E0704B5A857002F15BA27002FB90CAFCA270EC
-FFFEA3705DA2705DA2715CA2715CA2715CA3715CA27191CBFCA2715BA2715BA2715BA372
-5AA261A24E5AA2615FA24D90CCFCA24D5A137C2603FF804A5A000F13E0486D4A5A487F60
-486D143F60B56C147F4D5AA24C5B5E95CDFC4C5A4A130F6C4B5AEE7FF84A495A273FFBF0
-035B271FFEE00F5B9026FFC07F5B6C90B6CEFC6C5D6C15F86C5D6C15C0013F91CFFC010F
-13FC010013C06C817CD876>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmsy10 10.95 7
-/Ff 7 107 df<003FBF12F8481EFCC012FEA46C1EFC6C1EF86F0871B08E>0
-D<EA01F8EA07FE487E4813804813C04813E0A2B512F0A66C13E0A26C13C06C13806C1300
-6C5AEA01F8141471B633>I<923807FF80037F13F80203B6FC020F15C0023F15F091B712
-FC010316FF4983498349834983498390B97E4884A24884481980A24819C0A24819E0A248
-19F0A24819F8A4BB12FCAE6C19F8A46C19F0A26C19E0A26C19C0A26C1980A26C19006C60
-A26C606D5F6D5F6D5F6D5F6D5F6D94C7FC010016FC023F15F0020F15C0020392C8FCDA00
-7F13F803071380464676D05B>15 D<F81FC08DA48D200FA28D2007A28D2003A28D20018D
-8C8E217F8E213F8E7B7EA27B7E7B7E8E21037B7E8F7B7F7C7E7C7E7C7EFA0FFE7C7E7C7F
-7C13E07C7FFB7FFC7DB4FC7D13C0003FC512F048A112FCC5B5FCA11480A2A114006CA112
-FC6CA112F0D6001F13C05990C7FCFB7FFCFBFFF0585B5813805890C8FC585AFA1FF8585A
-585A585A575BA0C9FC575A21076A575A575AA2575A6A217F6A21FF9FCAFC6869200369A2
-200769A2200F69A2201F69A469A15E76DBB6>33 D[<953801FF80067F13C00503B5FC17
-1F057F14804CB5EAE000040749C7FC4C13F04C13C04C90C8FC4C5A4C5A4B13F05D4B5B5F
-5D5FA25D94C9FCB3B3B05D5EA2157F5E15FF5E4A5B4A5B4A5B4A5B023F90CAFCECFFFE01
-035B011F13F048B55A007F1480B500FCCBFC14E014FC6CEBFF80000114E0D8001F7F0103
-13FC01007FEC3FFF020F7F6E7F6E7F6E7F6E7F82157F82153FA28281B3B3B08381A28381
-836F7F816F13FC707E707E7013C07013F07013FE0401EBFFE0706CEBFF80051F14C01703
-EF007F06011380>66 181 116 263 91 102 D[<EA7FF0B57E14F814FF6C14C0000114F0
-D8000F13FC01037F9038007FFF6E7F020F7F6E7F6E7F6E7F6E7F157F82153FA28281B3B3
-B08381A2838183816F7F6F7F83707E93381FFF80707F7013F07013FE0400EBFFE0053FEB
-FF80050714C017001707053F148094B5EAE000040349C7FC4C13F04C13C04C5BDC7FFEC8
-FC4C5A5F4B5B4B5B5D5F5D5FA25D94C9FCB3B3B05D5EA2157F5E15FF4A5B4A5B4A5B4A5B
-023F5B4A90CAFC903803FFFE010F5B48B512F0007F14C0B6CBFC14F81480D87FF0CCFC>
-66 181 116 263 91 I[<123C127E12FFB3B3B3B3B3B3B3B3B3AF127E123C>8
-181 107 263 51 106 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmti10 10.95 43
-/Fg 43 122 df<E17FFEEE7FE00807B500E0913801FFFC083F02FC020713FF97B66C021F
-148007036F4A14C04FD9F0076D90397FF07FE0071FD980006D9039FFC01FF04F48C7261F
-E001EB800FDF7FF891267FF0039038003FF8DFFFE002FF49147F4E49494A48EBFFFC4E4B
-D9F81F5B50494B5A4E183F4E90C74801F04A13F81F7F4E4818F80CE016F0063F18FF4F6E
-496E13E05401F014C0067F6F01016E1380E200FC9238007E004E48030093C7FCA2545BA2
-4D5BA266685F61A266685F61A2669DC9FC5F61A26667A25F96CAFC1E7F031FBF7E4B8AA2
-4B66A36F9BC7FC92C76C48CA01F8C9FC60A2656717FF60A265675E60A26567A25E606567
-A25E60659CCAFCA25E60A265665E95CAFCA21D7F665E5FA21DFF66A2167F5F6466A216FF
-5F6466A25D5F6466A25D5F64665DA25F5290CBFCA25D5FA2525AA24B90CAFC651C7FA24B
-5A651CFF5E65157F634C60A203FF61D801F84A017E5CD807FC4BB4FC486C4A486D5D486C
-4B6D5B4801814A6D92CCFC484B485D6404804C5AB500834A5E020301004A133F515A4948
-484B5C01FC4992C7485A01F8496D48495B267FF00F4B010790CDFC9026C01FF002F0495A
-003F4AD90FFCEB3FF89026F07FC06DB46CB45A6CB5486D90B55A6C91C76C1580000301FC
-6E6C49CEFC6C49031F13F826003FC0030113C08EA584FF70>11 D<98380FFFFE50B612F0
-080F15FE087FEDFF804FB812E04F9026FE000713F0070F01E09038007FF84F90C8EA0FFC
-DF3FFCED03FE4F5ADFFFE0ED0FFF4E495D4E5F4E495DA24E90C9B5FCA24E5A063F18FEA2
-4F17FC067F18F8F67FF04E48EE3FE0F61F809BC7FCA24D5BA35F61A45F61A45F61A55F96
-CCFCA3031FBB12FC4B86A25D66A28192C7D87FFCC9FC66A305FF5E4E5FA3644C6160A264
-665EA24E5D66A34C5F4E94C7FCA3644C6060A21C7F655E95C9FC1CFF65A25E4D5D65A304
-7F5E4D5FA21FFC51EC01FE1DC004FF1AFC5F5114030B8013F85DA24D18075115F01D005D
-F60FE05F1E1F1FC04B715A4DF03F80A2756CEB7F00A24B7114FE4D170175EB87FC75EBFF
-F84B725B94CA6C5B0A0F1380E201FEC7FC99C9FC4B5AA44B5AA35EA215FF5EEA01F8EA07
-FC486C5C486C5A4801815B5A5E1483B591CFFC14035DEBFE0701FC5B49485AD87FF05BEB
-C01F003F495A9038F07FC06CB55A6C91D0FC000313FC6C5B38003FC070A584FF66>I<00
-1FB712F84816FC5AA217F8A2B8FCA217F0A217E06C16C02E0C70AC41>45
-D<191C193E197EA219FC18011803180719F8180F181F183FF07FF0EF01FF5F5F4D13E017
-3F94B5FC5E040F14C0163F4BB6FC92B7FC4A02CF13804A148F4C5A16F84A01C014009138
-03FE0091C85AA260A2177FA260A217FFA260A25EA260A25EA260A25EA260A25EA260A25E
-A295C7FCA25EA25FA2167FA25FA216FFA25FA25DA25FA25DA25FA25DA25FA25DA25FA25D
-A294C8FCA25DA25EA2157FA25EA215FFA25EA25CA25EA25CA2140F91B6FC007FB812FCB9
-7EA4606C02075C3F796BF85D>49 D<F00FFF95B512E0050314FC050F14FF053F8194267F
-F80713E0932701FFC0007F4C48C7EA3FF8DC07F86E7E4C486E7EDC1FC06E7E4C5A4CC86C
-138004FE17C04B48814B4817E04B4881030F18F05E4B4817F84B5A171892267F003C157F
-4B017C16FC4B137E4A5A053E15FF4A48133F834A5AA2140F5D141F4B495C173E143F5D05
-7E5C027F027C16F892C7FC17FC4D5C4A010117F04A5C04035D4D16E016074C484A13C05F
-041F4B13804CC8FC047E4B130091267E01FC4B5A91267F07F85E6EB4485C4C4A5B6E494A
-5B6E90C85CDA03F84B5B91CA485B4F90C7FC4F5A4F5A4E5B4E13E04E5B061F5B4E90C8FC
-F07FFC4D485A4D13E04D5B051F90C9FC4D5AEFFFF8040313E04C5B041F90CAFCEE7FFC4C
-5A030313E04B13804B48CBFCED3FFCED7FF0EDFFC04A5B4A90CCFCDA07FC171E4A48173F
-4A485F4A5A4A5A4ACB5A49486001031801495A4948604A1703494817074948601A0F4948
-4D5A49CBFC505A2601FEE0177F90B500F04C5A4802FF15034803F84A5BDCFF80011F90C7
-FC4804FC90B5FCD9FC0191B65A9026F0007F5E4848011F5E03075E484813016F5E49023F
-5D007F6F92C8FC90C800075C705C48030014F0053F13C0007EDC03FEC9FC567D72F85D>
-I[<F403F0527E1C0F1C1FA21C3FA21C7FA21CFF63A2638963A26363A263A263A298B5FC
-A262621BFB1A0709F37FF20FE3A2F21FC3F23FC11B811A7F1B011AFF1AFEF101FCA2F103
-F819071AF0190F08E080F11FC0A2F13F80077F7F97C7FC61611801614E5AA24E5A180F61
-181F4F824E5AA24EC87E60601701601703604D5A170F60171F60053F84604DC9FCA205FE
-8216015F4CBAFCA25EA25E5EA2DC3FC0C9123F5F047F8594CAFC16FEA24B488315035E15
-075E4B5AA24B5A153F5E157F93CBFC4B865D4A5AA24A488414075D140F141F143F147FEB
-01FF496D4E7F011F6D187F90B66C0403B6FC003F03F80307B812C0486F4B17E0B7FCA220
-C05E267FFE3F496F02C31480>115 130 117 257 135 65 D<4BBB12E01EFE4BF2FFC01F
-F01FFC1FFF6F8892C7001F49C8000380050701F8DB007F7F0C1F7F787F4F707F787FA24D
-727F61781480A25F4F8321C0A25F61A35F96CBFCA394B595B5128060A34C4F140060545B
-A24C4F5B60545B684C4F5B4E5F545B684C96B5C7FC4E4C5B535B0B0F5B4C4E13E04E4C5B
-9AB5C8FC525B4C050713F84E033F13E00903B5128095B800FCC9FC4C18E0A21DFE777E93
-B5C9001F13E04D040313F8767F766CB4FC4B737F4D717F8B777F4B854D85A2777F5D4D85
-89A24B875FA35D5FA35D5F65A24B6394CBFC656792B5FC4C6067654A644C6067654A97B5
-5A4C625291C8FC644A4F5B4C4D5B525B525B4A4F5B4C4CB55A515C4A060F49C9FC093F5B
-4A494BB55A0103B56C030F14E0003FBD12804899CAFC1CFC1CE01C80BC00F8CBFC6C97CC
-FC7A7C75FB80>I<972607FFE0150797B500FEED0F80070FDAFFC0EC1F00077F03F05C06
-03B76C5C060F04FE5C063F70495A95B6D8801FEB800305039126F00001EBC007050F0280
-9039007FE00F4D01FCC8D81FF05B057F01F092380FF81F94B50080923803FC3F040391C9
-0001137F4C01FC71485A4C01F070B5FC043F49834C138093B5CB6C5B4B5B4B01F8844B5B
-4B49725B4B5B4B5B4B90CC7E4B48635C4A5B4A49854A4963A24A5B4A5B4A9AC7FC5E91B5
-CDFC5B494963A2495BA24949635B5D5B4B635B5D90B51B07A2484A745A9BC9FC4891D2FC
-A3485BA3485BA35A5CA35A5CA35A5CA55CB5FCA5F503E04A507EA21D0F66A31D1F6C651D
-3F66A21D7F9BC9FC6C646E621C01525A6C641C076E626C1B0F525A6E4F5A6C641C7F6C6D
-4FCAFC515A6C6D4E5A515A6C6D4E5A6D6C4E5A6D4F5A6F4D5A6D6D4C48CBFC6D6D4C5A6D
-6D4C5A6D01FCEE1FF86D6DEE7FF06D6D6C913801FFC06E01E002075B6E01FC023F90CCFC
-020F903AFFC007FFFC6E91B612F002015F6E6C1680031F03FCCDFC030715F0DB007F91CE
-FC040713F0798465FF82>I<4BBB7E4B1AFC4BF2FF801FE01FF81FFE6F8792C7003F01FC
-C8001F80050F01F0030114E0776C7F0C1F7F4F04077F8A0C007F4D737E4F717FA2797F4D
-737F4F838D8B5F96CB808B8D94B5FC4E848DA25E607A7EA25E60A35E602280A25E4E96B5
-FCA35E60A222004C6260A35E95CCFC676993B5FC5F67A24B655F67A24B655F67695D4D61
-69A25D4D4F5BA2694B98B5FC4D98C7FC66685D4D4E5BA2545B5D94CC485B686692B5634C
-4F5BA25490C8FC4A515A4C6265535B4A505B4C62535B535B4A5090C9FC4C4E5A535A525B
-4A07075B4C4D5B525B0A7F5B4A96B5CAFC4C040313FC090F5B4A063F13E050B55A4A4903
-0F91CBFC0107B56C92B55A007FBC12F8BD12E099CCFC1BFC1BE098CDFC6C19E0817C74FB
-89>I<0303BE12C04B1DE0A58192C76C49C97E050F01F8040314C0F6007F4F171F1F075F
-8B4F8321805F8B61A25F210061A294B5FCA296CCFCA24C63A260A25EA24E1801E20FC05C
-4C4D7E6560A24C173F536D5A4E96C7FCA24C177F9ACAFC4E5DA25E515A4E1403A24C1607
-F31FFC4E147FF207FF93B9FC64A35D64A24DC7120F4B1601746C5A4D153FA25D645FA25D
-645F1F3F4B057F4B7E99C890C7FC5F674B4D5D5114014D611B7C4B94C81203674D180767
-92B5190FA294CC485AA24A641E3F4C197F674A1BFF9CC8FC4C60664A1A031D074C611D0F
-4A505A1D3F5E535A4AF101FF525B4C170F1C3F4A96B55A1B034A49043F5C0107B56C030F
-B6FC007FBEFCBFC9FCA265A36C647B7B74FA7B>I<4BBEFC4B1D80A35DA28192C7003F91
-C9FC050701FC16070C0014004F173F8B4D858B618B5F68611F015FA261A25FA24F60A294
-B5FCA296CBFCA25E1F034E61A25EF407C04E4B7EA24C171F536D5A4E95C8FCA24C173F65
-601C7F5E9ACAFC4E5D635E515A4E14071B0F4C167F973807FFFC95B7FCA293B9FC64A35D
-95C7000F5B4D14001B7F4B173F644D151FA25D645F1B3F5D645FA24B177F99CBFC5FA25D
-1B3E4D92CCFCA25DA25FA292B5FCA294D0FCA25CA25EA25CA25EA25CA25EA25CA25EA25C
-A25C0103B6FC003FB812FE4883A260B9FCA26CD9FE0F5C797B75FA77>I<4BB5D8F83FB5
-FC4B91B71280A34B1800A26F5F92C7003F02E0C7FC050749C8FC61A261A35F61A35F61A3
-5F61A35F61A394B5FC96C9FCA35E60A35E60A35E60A35E60A35E60A35E60A35E60A393B5
-FC95CAFCA35D5FA35D5FA35D5FA35D5FA35D5FA35D5FA35D5FA392B5FC94CBFCA35C5EA3
-5C5EA35C5EA35C5EA25CA25C0103B512FE003FB812E04883A2B95AA36CD9FE0F5C517C76
-FB46>73 D<4BB5D8F83FB512E04B91B77E5D64A36F6092C7003F02E0C9FC050F49CAFC19
-F8A261A35F61A35F61A35F61A394B5FC96CBFCA35E60A35E60A35E60A35E60A35E60A35E
-60A35E60A393B5FC95CCFCA35D5FA35D5FA35D5FA35D5FF501F8F503FC4B1AF85F1D071E
-F05D4D170F1EE0A24B191F4D18C0A21D3F92B5198094CB127FA2F5FF005C4C5F651C035C
-4C4D5AA21C0F4A4F5A5E1C3F525A4A19FF4C5E515B634A181F4C4C5B98B5FC4A1703080F
-5C4A4992B6FC0107B56C140F007FBDC7FCBEFCA264A36C63667C74FB72>76
-D<4BB600FC94B538C3FFFE4B6F4C91B6FC4B62A285A26F706F16FE92C7001FDE00031500
-0507DF007F13F074051F13C04D99C7FC7A5A7460695F746018EF74171F173F06C7628620
-3FEF7FC306836D60A20681197F05FF80060162847516FF4C804D6F94C8FCA2735F040382
-4D628575150316074D6D60871F07040F804D6F5E8575150F161F4D6D60871F1F043F804D
-705DA274163F047F834D628676147F04FF8194C86E5DA27416FF4B844C98C9FC86765B15
-034C6F5E8874150315074C715C86F58007150F4C705D1DC01E0F031F834C06E05BA27514
-1F033F19F04C705D1DF81E3F037F834C06FC5BA275147F03FF19FE93CA5E879AB5FC5C4B
-7192CAFCA28814034B6288A214074B725BA3020F854B62A2021F85A2023F735B147F4A7E
-010386010F01FE6290B612C0007FDBFF8082B87E661D7FA25F6C01C391CB6C5A907C75FB
-87>78 D<97380FFFC04FB512FC071FECFFC096B712F0060316FC061F16FF067FD9F00180
-4DB5C7003F13E04D01F802077F050F01E06E7F053F0180020013FE4D48C96C7E932601FF
-F8707F4C4982040F01C0707F4C49707F4C90CA6C7F4C4883DCFFF8854B49717F03075B4B
-49727E4B5B4B747E4B90CCFC4C1B804B48854A491BC05C4A5B4A49854A491BE0A24A5B4A
-1DF093CDFC4A5A5B5D5B495B20F8495BA2495B5BA2495BA290B55AA34891CE5AA2481FF0
-5C5A665C5AA220E0484963A4484998B512C0A4485214805CA2531400A34A505BB5FC6765
-A2535BA2674A626765679AB5FC67A25291C7FC525B7E525B666E6166525B6C6366525B6C
-98B5C8FC6E62636C505B515B6E4E5B6C646E4E5B6C505B5190C9FC6C6D4E5A6C6D4D5B50
-13F06D6C050F5B6D6D4C5B505B6D6D4C48CAFC6D6D4B485A6D6D03075B6D01FC4B13E06D
-6D033F13806D6C6C6C49B5CBFC6E01E0010713FC6E01FC017F13F0020790B712C002014C
-CCFC6E6C15F8031F15C0030102FCCDFCDB001F1380758465FF8C>I<4BBA12FE4BF1FFF0
-4B1AFE787E1FE01FF86F8792C7003F01FCC86C7F050F01F003077F0B0014807813C04F04
-1F13E07813F07813F85F4F7013FCA27813FE5F61A220FF5F96CAFCA394B5FC60A34C6160
-A34C4F13FE60A220FC4C616020F8664C1BF0605413E020C04C614E19809BB51200674C60
-4E4C5B535B535B4C4E5B95CA4813805390C7FC52485A93B504075B4D041F13F099B512C0
-090F5C4B90B948C8FC1DF81DC052C9FC4B18F051CAFC05FCCEFCA25D5FA35D5FA35D5FA3
-5D5FA35D5FA392B5FC94CFFCA35C5EA35C5EA35C5EA35C5EA35C5EA25CA25C0107B512F8
-007FB87EB97EA4606CD9FC3F91CEFC787C74FB7B>I<4BBA12E04B19FF1EF01EFC1EFF1F
-C06F1BF092C7001F49C7000180050701F8DA001F7F0B0313FF0B00804F707F8A787F4D72
-7F4F828C8A4D86618CA25F61A34D8696CAFC68A294B55F60A34C4F5B60A2545B5E4E6166
-684C634E5F9BB55A9DC7FC4C4E5B4E60535B535B4C4E5B4E4C13800B7F90C8FC535A4C05
-0313F84E030F5B0A3F13C051B5C9FC4C043F13FC95B812E01D800AF8CAFC93B9FC884DC8
-13FF091F7F4B717F4D03037F757F894B717F4D707EA2894B844D84A35D4D84A35D5FA264
-5D4D60A299B5FC5D94CAFCA26392B5FC4C96C9FCA2635C5EA34A604C60A2201F4AF53F80
-5EA2207F4A1E005E684A651F014A725E0103B500F8505A003FB86C8048714E5A754B5A76
-6C131FB9704A5A769038C0FF806CD9FC1F4A6F90B5C7FCCF000314FC765CE2003F13E00B
-031380798075FB85>82 D<DF1FFF15384EB500F0147C060F02FC14FC063F02FFEB01F895
-B7EA80030503EEE0074DD9F003EBF00F051F902780007FF813F04D48C7380FFC1FDD7FF8
-913803FE3FDDFFE00201137F0403496EB512E04C90C97E4C5A4C48824D7013C04C5A167F
-4C48824B491880A24B49824B90CAFC1E005D5E151F4C60153F1C03157F4C601C07A215FF
-65A35C65A21C0F82765A99C8FC82A282836E808317F8EFFF806F14F018FF19E06F15FCF1
-FFC06F16F86F16FE747E6F836F836F17F86F83163F7082040782040183EE003F050382EF
-007F0607811800190F070180737E8686868886A286A386A2EB0F80496C61133F5CA3017F
-6291CBFCA2624962A3505B5A99C8FC626348191F6E601A3F63484F5A80505A6E4C5B4860
-6E606E4C90C9FC4F5A486DEE3FFC02FF4C5A01FD6D4B5A01F901E002035BD83FF001F802
-0F5B496CB4023F90CAFC496C9039F001FFFE020F90B65A48486C16F0496C5E007E010016
-80007C021F02FCCBFC48020314F00070DA003F90CCFC668473FF66>I<0107BF1280491E
-C0A35BA349912680000791C7000F148003F0C702FC140003801A3F4948C84A150F4A8702
-F04B8349481D004A4D815C485F91C9FC4960000366495EA2484860A24E60485A625B001F
-94B51603A24995C95B123F495DA2007F6090C919074D615A4860A25F007C775ACA4A93C8
-FCA25FA261A25FA261A25FA261A25FA261A294B5FCA296CDFCA25EA260A25EA260A25EA2
-60A25EA260A25EA260A25EA260A25EA260A293B5FCA295CEFCA25DA25FA25DA25FA25DA2
-5FA25DA25FA25DA2157F020FB67E001FBA7E4885A35AA26CDAFC0F5D727B60FA82>I<00
-03B500F0B500F892B53887FFFC4891B66C4A91B512FE4862A46C4D6E16FCC76C0280C900
-03ECFE00021F01F8CB6C13E04C061F138054C7FC4C725A664A63A24C61A24A1A1F665EA2
-91B5193F6693CCFCA2491B7F9BC8FC5DA24963655DA2491A01655DA2491A03655DA2491A
-07655DA2491A0F655DA2491A1F655DA290B5193F6592CCFCA2481B7F9AC9FC5CA2486364
-5CA2481A01645CA2481A03645CA2481A07645CA2481A0F645CA2481A1F645CA21B3FB562
-91CCFC1B7F99CAFCA26349611A01631A03631A07631A0F505A007F621A3F505A98CBFC00
-3F616D4D5A4F5A6C4E5A4F5A6C6D4C5A4F5A6C6D4C5A4E48CCFC6C6D4B5A6C6DED0FFC6C
-6DED3FF86D6CEDFFF06DB402035B6D01C0011F13806DD9FC01B5CDFC6D90B612FC6D5E01
-0016E0023F1580020F02FCCEFC020114F09126001FFECFFC77805CFB87>I<263FFFF0B5
-00F8933A0FFFFC7FFC4890B66C4C90B512FEB85FA46C4C7015FCD8001F02F0CA00011500
-01070280DD003F13F06D49CC6C13C07790C7FC4B626F626666535A666D1B3F6653C8FC65
-651C016F611C0365525A6D1A0F651C1F65525A1C7F9AC9FC705F64515A1B036E611B0764
-515A1B1F641B3F705F51CAFC63636E1701631A0363505A1A0F6370151F63505A1A7F6E95
-CBFC62624F5A1903621907705D4F5A191F626E163F624FCCFC61611801705C1803614E5A
-6E150F61181F614E5A187F96CDFC705B604D5A17036E5D1707604D5A171F60173F04FE5B
-4DCEFC5F5F6E13FF5FA25F5FA25FA25F5FA26E91CFFCA25E5EA25EA25E5EA25E157F5E93
-D0FC77805AFB87>I<EE07FC93387FFF804BB512E0030780031F9138F807E0923B3FFE07
-FC0FF0923BFFF001FE1FF84A9039C000FF3F4A496D487E020F90C7EA3FFF4A485E4A4880
-4A5A4A48804B5E5B494980495B49604990C8FCA2495A017F605C13FF4A5D4861A2485B60
-4896C7FC5C5A6061485BA2187F48605CA218FF486091C9FCA25F61485AA25F615B1BFC4D
-EC01FE19C01BFCA2494B1403078013F8A2127F4D14074D15F019005F003F93B5EB0FE06D
-5C001F191F4C16C04C5B6C6CDA0FEFEC3F800007ED1FCF6D91263F87FFEB7F006CEDFF07
-6C6D48486C14FE6C9026C007FC140190287FF03FF801EB83FC6DB5486CEBFFF86D02C06D
-5B010791C76C5B010101FC020F13809026003FE0DA01FEC7FC4F526DCF5D>97
-D<ED1FE049B57E90B6FC5AA25EA37ED9007F5B140FA35EA25CA293C9FCA25CA25DA2147F
-A25DA214FFA25DA25BA25DA25BA25DA25BA25DA25BA25DEE07FC4991383FFFC093B512F0
-030380030F804990391FFC0FFE92393FE003FF9127FEFF8001138091B5C713C04901FCEC
-7FE04B15F04B143F4B15F890B55A4BEC1FFC92C8FC4A16FE5A5C5C19FF485BA25CA25AA2
-5C605AA25CA2485FA291C9FCA24894B5FC19FE5BA25F007F18FC5BA25F19F8485AA24D13
-F0A219E0495D19C0A24D1380A219005F60007F4C5AA24D5A604C5B003F5D606D4A5B001F
-4B90C7FC4C5A000F5E6D4A5A00074B5A6C6C49485A6C6C4913806CD9800F90C8FC90397F
-E07FFE6DB512F86D14E06D1480010349C9FC9038007FE040806CFD54>I<EF7FF80407B5
-FC043F14C093B612F0030381030F9038E01FFC033F90380003FEDB7FFCEB00FFDBFFF0EC
-7F80020301C0143F4A4915C04A90C8127F4A48EC01FF4A484A13E04A485C4A485C49495C
-5B49494A13C0495B5B92C81480495A017F7013004A5E01FF705A48EF03F04A92C8FC5A5C
-5AA2485BA3485BA35A5CA35A91CCFCA45B12FFA45BA4127FA21903F10780F10FC0F11FE0
-003FF03FC0197F6D1880001F943801FF004E5A000F4D5A6D4C5A6CEF3FF06C6D4B5A4D48
-5A6C6D02075B6C6DDA1FFEC7FC6D6CEC7FFCD93FFC903803FFF06DB4017F13C0010790B6
-C8FC6D15FC010015E0023F91C9FC020313E043526DCF54>I<F33FC00703B512E04EB6FC
-60A21CC0A38495C714801A1FA31C00A262A263A21A7FA263A21AFFA263A261A263A261A2
-63A261A263A261A263A261A298C7FCEE07FC93397FFF803F4BB512E0030702F05B031F14
-F8923A3FFE07FC7F9239FFF001FE4A9026C000FF5B4A49137F020F90C7EA3FFF4A5A4A48
-6E5B4A5A4A48805D4960494980495B5B4990C85CA2495A137F4A5F13FF4A5D5A62485B60
-5A4A94C8FC5A60A248495EA2187F5A4A5EA218FF5A91C95BA25FA248485FA25FA2495F1B
-FC4D4A7EA207C05BA2494B1403631980127F4D14074D5D19005F003F93B5495A6D5C001F
-191F4C5E4C5B6C6CDA0FEF4A5A0007ED1FCF6D91263F87FF49C7FC6CEDFF076C6D48486C
-14FE6C9026C007FC140190287FF03FF801EB83FC6DB5486CEBFFF86D02C06D5B010791C7
-6C5B010101FC020F13809026003FE0DA01FEC8FC53806DFD5D>I<EFFFE0041F13FE93B6
-7E030381030F81033F9038C07FF0923AFFFE000FF84A01F06D7E020701C06D7E4A491301
-4A48C87E4A5AECFFF8494916804949157F495B495B19FF4990C91300495A137F49485D61
-484915036148491507484D5AF03FF048494B5A4D485A050F5B484991B5C7FC041F13FC02
-C7B65A4890B712C095C8FC17F04CC9FC4801FCCBFC91CCFCA45B12FFA45BA8127FA21906
-190FF11F80003FF03FC0F17F8019FF001F19006DEE03FE000F4D5A4E5A6C6C4C5AF07FE0
-6C4D5A6C6D02035B6E020F90C7FC6CEE3FFCD97FF0ECFFF86D6C010713E06DB490B51280
-6D90B548C8FC010315F8010015C0023F49C9FC020713C042526CCF54>I<F21FE0F2FFFC
-070313FF4F1480071F14C096393FF87FE096397FE00FF0DFFFC013F84E143F4EEB807FF3
-FFFC4E130162604F4813F8181FA2063F15F019FC7413E0067F15C07413809738007E004F
-90C7FC18FFA44D5BA45F61A45F61A45FA261A45F96C9FC031FB812C04B83A56F5F92C7D8
-3FFEC9FC177F60A417FF60A45E60A55E60A45E60A45E60A45E95CAFCA45E5FA4167FA25F
-A416FF5FA45D5FA35DA25FA35D5FA45D5FA44B90CBFCA35E153FA35EA2157F5EA3D801F8
-495AEA07FC487E486C5C481381485DA25EB5FC4A90CCFCA201FE5B49485A13F86C48485A
-9038C01FF0003F5C391FF07FC06CB55A6C91CDFC6C5B6C13F838003FE056A584FF38>I<
-EF03FF051F13E094B57E040314FC040F9138FE01F84C903903FF03FC933B7FFC007F87FE
-DCFFF0EB3F8F4B01C090381FDFFF0307496DB5FC4B90C714FE4B48804B5A4B48804B5A1B
-FC4A49804A5B5C4A4916F8854A90C85A5C4B17F0147F4A485DA24919E05D495FA24B17C0
-5B615B4B1780A2615B4B1700A2615B4B5EA2197FA292C95BA24917FFA2625C60A2013F60
-A260A26260011F5EA24E5B010F5E606E92B5FC6D4B5C5F6D6D5B6D5D6F013F91C7FC6D6D
-EB7FDF6E6C48485A913A3FFC0FFE3F6EB500FC5B020714F06EECE07F02001400DB1FF85C
-92C8FC18FFA261A25FA261A25FA261A25F61EA01F8D807FC5D486C5F486C5D4895C8FC48
-4C5A177FB55E4D5A4C5B494A5B4C5B494A5B49023F90C9FC6C48ECFFFC003F02035B271F
-FF801F13E06C90B65A6C4BCAFC000115F86C6C14C0010301FCCBFC507576CF54>I<EE1F
-80EE3FE0EEFFF05D4B13F8A25DA417F017E017C06F13806F1300ED007C93C7FCB3A6EC1F
-F0EC7FFC49B5FC4980010F8090391FF07FE090383FC03F02007F017E8013FE485A5B0003
-81485A157F485AA2485A4B5AA2485A5C007F5D13005C5E485B485DA2007C5BC75CA25C93
-C7FC5C5DA2147F5DA214FF5DA25B5D5B5DA25B5DA25B92388001F849EC03FC150017F85B
-4A130717F0137F5CEE0FE013FF4A131F17C0A24AEB3F80A2EE7F00A216FE4A5B017F1301
-4B5A6E485A013F495A011FEB7FC06DB55A6D91C7FC6D5B6D13F89038003FC02E7A71F738
->105 D<EE3FC00203B57E49B6FC5BA25FA37F90C75C151FA394CAFCA25DA25EA3157F5E
-A315FF5EA35C5EA35C5EA35C5EA35C5EA35C93CBFCF103FE96381FFF804A047F13C04B4A
-B512E04E14F0953807FE07027F92391FF003F84B91383FC00F95387F003F06FEEB7FFC02
-FFDA01F813FF4B49485A4D485AEF0FC0494B484813F84BEB3F00177E4D15F0495D4B4848
-6D13E04C4815C04C486D138049020F9138007E004B484891C7FC4CCAFC167E495CED81F8
-ED87F0ED8FE049EBBFC04B5A03FECBFC5D5BEDFFE016FCEEFF804915E0DAFC7F13F80307
-7F03017F01FF6D6C7E4A011F7F707F707F48814A81828448815CF207E0F20FF05A4A18E0
-A24C151F481AC04A5DA21A3F481A8091C75C1A7F1B005A4918FEA262007F6F1401496019
-03057F495A00FF614992383FF01F716C485A71B55A496F91C7FC6C486F5B6C48030013F8
-6CCAEA3FE04E8073FD54>107 D<ED01FE021FB5FC010FB6FC5BA216FEA37FD9000713FC
-1400A316F8A25CA216F0A25CA216E0A25CA216C0A25CA21680A25CA21600A25CA25DA214
-7FA25DA214FFA25DA25BA25DA25BA25DA25BA25DA25BA25DA25BA292C7FCA25BA25CA213
-7FA25CA213FFA25CA25AA25CA25AA25CA25AA25CA25AA25CA25AA291C8FCED07E048EC0F
-F0A24914E0A2007F141F16C05BA2153F00FF15805BA2ED7F00A25D5D6C5A4A5AA26C6C48
-5AA2001F495A140F6C6C485A6CB55A6C5C6C91C7FC38007FFCEB0FF0288070FD2F>I<49
-B4922601FFC0ED07FF010701C0021F01F8037F13E04901F091B500FE0203B512F8496D01
-036E6C010F14FE496D496F498090267F87FE011F01016D90267FFC077F9026FE03FF9028
-3FF0007FF09026FFC0017FD801FC9126807FC06D6C4890C77F6E4AC79026FC03FC81D803
-F8DAC1FE021F4948147F0007DBC3F89226FE0FE08101F0DAE7F04C5ADCEFE04C5AD80FE0
-DAFFC06F48C87F4D6E01FE153F121F01C092C85C4A495F123F01804A4B49157F4C5F5C00
-7F4B5F13004C5F4849494B90C912FF48684C5EA2007C49057F5EC76793C95BA24A05FF5E
-694B5FA2027F4C5F694B5F6702FF4C61A24B4D5D9EC8FC495F674B4D5EA2494D177F684B
-5F0DFFEC0FC0494D4EEB1FE0A24B94C84816C068494D4C153F5614804B5E54157F49057F
-4E1400A292C9496154495B4917FF575A4A5F56485A017F4C637814074A4D4E5A6A01FF4C
-1A1F784A5A4A4D6F02FFC7FCF883FE78EBFFFC4A4D705B6D486F497013E06D486F90CA00
-0F5B6DCA007CDD03FEC8FC8B5271CF95>I<49B4923803FF80010701C0023F13F84901F0
-91B512FE496D010380496D010F8190267F87FE90261FFE037F9026FE03FF90263FF0007F
-00016D902680FFC06D7E01FC02C190C77FD803F8DAC3FE143FDCC7F881D807F0ECEFF0EE
-FFE0D80FE04B6E7E5F121F01C092C8FC4A5B003F5D0180183F5E5C007F5D01005CA24A49
-157F4862485DA2007C4917FFC76193C9FCA24A5E635DA2027F5E635D6102FF60A24B5D63
-5B614B94C8FCA2495F625D077FEC07E0494EEB0FF0A24B03FF15E062494C151F5014C05D
-4E153F494E1480A292C8EE7F004E5B5B1CFE5C50485A017F627214034A4E5A6401FF190F
-724A5A4A6FEC7F80E0C1FFC7FC73B45A4A705B6D487013F06D48040713C06DCA000190C8
-FC5C5271CF66>I<EF7FF80407B5FC043F14E093B67E030315FC030F9038E03FFE033F90
-380007FFDB7FFC01017FDBFFF06D7F020301C06E7E4A49814A90C86C7E4A48824A48151F
-4A48824A48150F494982495B5B494917805B92C97E495A017F19C05C01FF5F5A5C5A5C5A
-A2485B61A2485BA261481A805CA261481A0091CAFCA296B5FC625B00FF6160A262495E62
-6062007F6160624E90C7FCA24E5A003F4D5A6118FF6C6C4B5B61000F4C5B6D4B5B6C4C90
-C8FC6C6D4A5AEF7FF86C6D4A5A6C6D495B6D6C01075BD93FFC011F90C9FC6DB448B45A01
-0790B512F86D15E0010092CAFC023F13FC020313804A526DCF5D>I<DB0FF8EDFFC0DB3F
-FE020713F84B6C6C011F13FE92B56C017F7F4A6E90B612C0912803FC3FF00101C17F913E
-07F01FF807FE003FF0020F90270FFC0FF86D7E03E0DA1FE080DA1FC06D4848130F4E4880
-DA3F8090B5C76C7E60DA7F004A16804E804A5D4A4B16C05E01015E4A4B16E0A24C90C8FC
-13034A5CA2167F13074A5C636D4813FF90C8FC5FA24B5FA25FA24B5F1DC05FA24B5F1D80
-5FA24B5F1D005FA24B4D5AA294C95B624B60A24C4B5BA2037F60624C5F505B15FF5090C7
-FC6370153F4A60505A505A704A5B4A6071495B4F90C8FC71495A4A4C5ADCEFE0EB7FF893
-3AC7F801FFE09326C3FE075B4A01C1B6C9FC04C05C4C6C13F8051F13C04ADA07FECAFC94
-CCFC93CDFCA25CA25DA2147FA25DA214FFA25DA25BA25DA25BA25DA25BA2013F13F8003F
-B7FC4882A294CCFCB8FCA26C010F5B5B737ECF5D>I<DC07FE140793263FFF80EB0F804B
-B500E0133F03076EEB7F00031F02FC5B923A3FFE07FE019226FFF8005B4A01E090387F07
-FE4A0180EB3F8F4A90C7EA1FDF4A4815FF4A486E5B4A5A4A48804A5A4960494980495B5B
-92C85C5B494881017F5E4A5F13FFA248495D62485BA2485F4A5F5AA260484994C7FCA348
-5F4A5EA348177F91C95BA318FF48485FA35F495FA35F61A3495D61127F5F5F61003F5E6D
-5D94B5FC001F4B91C8FCA26C6C5C5E00074B5B6D143F6CED7FBF6C90398001FF7F6C9026
-C007FE5B90397FF03FFC6DB512F06DECE0FF010702805B0101495A9038003FF091C75A60
-A35E60A35E60A35E60A35E95C9FCA35E5FA2167F16FF03076D7E023FB712F04A82A261A3
-6E01F05C49736DCF54>I<49B4ED1FF8010701C049B57E4901F0010714E0496D4914F849
-6D013F8090267F87FE90397FF01FFE9026FE03FF9039FF8003FF48486CD981FEC7FCDC83
-FC01031380D803F8DAC7F05B0007DBCFE05B01F0DAFFC04913C061D80FE05D94C7481380
-001F5D13C04A491600003F5D0180715A4C5D4A705A007F4BEC07E0010094C8FC5E5C12FE
-5EA2007C5BC7FC93CBFCA25CA25DA2147FA25DA214FFA25DA25BA25DA25BA25DA25BA25D
-A25BA25DA25BA292CCFCA25BA25CA2137FA25CA213FFA25CA35C6D5A6D5A6DCDFC4A5271
-CF4D>I<EE0FFF93B512E0030314F8030F14FE033F8092267FFC031380923AFFE0007FC0
-4A0180EB1FE04A48C7EA0FF04A4814074A4815F84A48140318074A48EC1FFC027F153F4B
-147F02FF15FFA2494B13F85DA219F05B6F6D13E0F07FC0F03F006F91C7FC8115FC15FF16
-F8EEFF8017F06D15FC17FF846D826E816E81846E8114076E811400033F801501ED001F16
-031600053F138083A2012081D803FC1700486C81487E487F5A485FA34D5AB5C8FCA2494B
-5A5B495E6C484B5A90C9127F6D5E4D5A6C6C4A90C7FC001F4B5A01F0EC0FFC6C6C4A5AD8
-07FEECFFF02703FFE00F5B6C90B612806C6C4AC8FC011F14F8010714C09026007FFCC9FC
-3E5272CF4A>I<167CED01FE4B7E4B7F5DA45D94C7FCA35D5EA3157F5EA315FF5EA35C5E
-A35C5EA35C5EA3003FB812C04817E0A2B9FC18C0A26C1780C7001F90C8FC5C5DA3147F5D
-A314FF5DA35B5DA35B5DA35B5DA35B5DA35B92C9FCA35B5CA3137F5CA313FF5C173FEF7F
-805A4A15005F5F5A4A495AA21603485E4A13075F4C5AA24C5A4A495A7E4CC7FC16FE4B5A
-6C6D485A6C4A5AED1FE090397FE07FC06DB55A6D91C8FC6D13FC010313F09038007FC033
-7470F13C>I<EC0FF0EC7FFE49B5EE01F0496EED07F8496E4B7E90270FF87FE04B7E9027
-1FC03FF0153FD93F807F90387F001F01FE187F48486E5E153F485A484818FF63485A157F
-001F60496115FF48485C61007F496001005CA24A5E484B5E5A5C007C4B5CC748605EA24A
-5E93C891C7FCA25C4B5D62147F5D197F02FF5F5DA219FF49605DA26049605D1C7E4E15FF
-62494918FEA24E140108C013FCA31B034E15F81A80A24EEC07F07F4E140F4E15E01A006D
-93B5131F6F4916C06DDB03FBEB803F6FD907F31580027FDA1FE1EC7F006E6CD97FC15C91
-281FFF03FF80EBC1FE6E903BFFFE007FFFFC6E4A6D5B020102F06D5B6E6C01C0010713C0
-DB0FFEC890C7FC585271CF62>I<DA0FF016F8DA7FFEED03FE49B54B7E496E4A1380496E
-5C90270FF87FE04A13C090391FC03FF0D93F807F90387F001F13FE484880153F48488348
-488385485A037F81121F498315FF48485C731380007F5B01005CA25C484B16005A5C007C
-5DC7485F5EA24A160193C85BA25C4B150362147F5D190702FF5F5DA24F5A5B5D4F5AA25B
-4B4B5AA34FC7FC495B197E19FEA24E5AA2611803616D16074E5A61181F616D6D4AC8FC60
-6D16FE6F495A6E6C495A023F4A5ADA1FFEEB1FE06E6C6CB45A6E90B55A6E4AC9FC02005C
-033F13F0030313804A5271CF54>I<DB0FFC4AB4FC92267FFF80010F13E04AB56C4913F8
-4A02F0017F13FE020F6E90B6FC91281FF81FFC0101031380913E3FE007FE03FC007FC091
-297F8003FF07F0133F9126FE0001D98FE0EBFFE0494892389FC001494803FF5B49486D4A
-4813F049484C5A131F4A4B4913E0495A017F5E91C817C05B494C6D138000011B00494A6F
-5A4EEB01F8000396C8FC5B5E00075F5BA26C485CC95CA35E60A35E95CAFCA35E5FA3167F
-5FA316FF5FA21BFC4B4C7EA24D5DA24B160363D801F85DD807FC4E5A486C5B486C180F48
-62484A161F4D5DB54E5A4B167F7192C7FC494916FE4F5A49D97F7F14034901FE6D495A6C
-48023F4A5A9028C003FC1FF8EB3FE0003F49486C6CEBFFC02A1FF81FF007FF0390C8FC6C
-B5486CEBFFFE6C4A6C5C6C91C714F0C649023F13C0D91FF0DA07FEC9FC545276CF54>
-120 D<EC1FE0ECFFFC496DEE01F001076DEE07F8496EED0FFC90271FF07FC0ED1FFED93F
-C06D153FD97F007F01FE133F49187F00016F16FC4848137FA2484818FF1BF8485A15FF48
-485F1BF05CD83F805C61007F4918E001005CA24A5E484B16C05A5C007C4B5CC748188093
-C8FCA24A5E4B1700A2147F4B5D6214FF5D197F49605DA219FF49605DA26049605DA26062
-495BA26062A36062A3606D4C90C7FCA26095B5FC6D6D495BA26D15076F5B6D6D495B6E6C
-137F913A3FFE03FF7F6EB5EAFEFF02074A5B6E14F0020014C092380FFE0192C75CA34D5B
-A34D5B130801FF4B5B487F00076D4A90C8FC487F4D5A485F177F6048494A5A605E4A495B
-91C7485B4993C9FC01F84A5AD81FC04A5A4C5A6D4A5A6C6C49485A6C6C010713806D011F
-90CAFC3A03FF80FFFC6C90B55A6C6C14E06D1480010F01FCCBFC010113C04F7571CF58>
-I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmcsc10 10.95 2
-/Fh 2 81 df<B60003B612C092B7FCA6D800070380CCFC010002F8CDFC6E5B6E5BB3B3B3
-AC1EFCA41D011EF8A71D03A21EF0A21D07A41D0FA31D1F1EE01D3FA21D7F1DFFA2646464
-645213C01C7F51B5FC1B074A181F91B56C93B6FC01076E151FBFFCA21E80A5667C75FB7C
->76 D<BC7E1BFCF3FFC01CF81CFE767E1DE0D8000702F0C8000F14F801004ADB007F13FE
-6E49040F7F6E060380090014E00A3F7F767F767F767F888A761480881FC01FE0891FF0A3
-7713F8A31FFCAA1FF8A45313F0A21FE0A29AB512C0A21F805214006466525B525B525B0A
-7F5B99B55A090391C7FC090F5B097F13F8080FB55A93BA12C09AC8FC1CF81CC009FCC9FC
-1B8004E0CEFCB3B3AA4A7F91B57E010714FFB912FCA615076E7C74FB87>80
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmr10 10.95 68
-/Fi 68 123 df<942603FFF0ED7FE0057FD9FF80903807FFFC0407B600E0013F13FF041F
-03F890B612C093B76C4815E003039127003FFF079038E07FF04B01F00103018F9038003F
-F8031F01809027007FDFFC137F4B48C8B548EBFFFCDBFFF84A4A5A4A494A4A4813FE4A01
-C04A14C04A4917804A90C85A4A4818005D023F604A487313FC7713F84A486F49EC7FF0F6
-3FE049496FEE1FC07393C7FC735B4949167FB3A8BF12C0A7D8000301E0C9D87FFCC9FCB3
-B3B3A7496D4C7E87013F01FE030714E0B8D8801FB8FCA602C1EFF83F6F807CFF6A>11
-D<943801FFF0057F13FF0403B612C0041F15F0047F15FC4BB538003FFE030701F0EB03FF
-031F018001007F4B48C8EA3FC0DB7FF86F7E4A48484B7E4A01C015FF4A494A7F4A90C85A
-4A485D874A485D4A5AA24A5AA2495B735BA249496F5B735B735B083FC8FC97C9FCB3A2F2
-01FCF13FFFBCFCA7D8000301E0C8120F19031900A21A7FB3B3B3A3496D4C7EA2013F01FE
-0307EBFFC0B8D8801FB712F0A602C1EFF83F5C807CFF65>I<943803FFFC057FEBFFE004
-07B6EAF81C041FEDFFFC93B8FC0303EC000F4B01F01300031F01805B4B48C75ADBFFF85C
-4A5B4A13C04A5B4A90C85A4A48815D143F4A5A854A4881854949167FA3495BB3A8BCFCA7
-D8000301E0C9127FB3B3B3A7496D4C7EA2013F01FE0307EBFFC0B8D8801FB712F0A602C1
-EFF83F5C807CFF65>I[<EA01F8EA07FE381FFF804813C0A24813E0B512F0AA6C13E0AC6C
-13C0AC6C1380AC6C1300AC6C5AAB6C5AAC6C5AA6120090C7FCB0EA01F8EA07FE487E4813
-804813C04813E0A2B512F0A66C13E0A26C13C06C13806C13006C5AEA01F8>20
-130 113 257 51 33 D<D803F8157FD807FEEDFFC0D81FFF02037F486D497F6E81486D49
-7F6E81B55CA26E81A46C6D6D1480A26C81A26C812607FE7C010013CFD803FCED7F8FC7ED
-000FA502FC151FA24A1600A301015E4A153EA30103167E4A157C010716FC4A5D010F1501
-A249484A5AA249C8485A013E5E017E150F494B5A48484BC7FCA24848157E48485D48484A
-5A48484A5A90C85B001E5E000C6F5A39377AFD5B>I[<EE01C0EE03E0160FEE1FC0EE3F80
-EE7F0016FE4B5A4B5A4B5A150F4B5A4B5A4B5AA24BC7FC4A5A14034A5A5D140F4A5AA24A
-5A4A5AA24A5AA24990C8FC5B5C1307A2495AA2495AA2133F5CA2137F5C13FFA25C5AA25C
-5AA34890C9FCA4485AA4121F5BA3123FA45BA2127FA85B12FFB3A8127F7FA8123FA27FA4
-121FA37F120FA46C7EA46C7FA37E80A27E80A2137F80133FA280131FA26D7EA26D7EA213
-03807F6D7FA26E7EA26E7E6E7EA26E7E1407816E7E14016E7E6F7EA26F7E6F7E6F7E1507
-6F7E6F7E6F7E167FEE3F80EE1FC0EE0FE01603EE01C0>43 182 111
-263 71 40 D[<127012F812FE127F6C7E6C7E6C7E6C7E6C7E6C7E7F6C7E6D7E6D7EA26D
-7E6D7E806D7E1303806D7EA26D7F6E7EA26E7EA26E7E81140F81A26E7EA26E7EA28280A2
-828082A2157F82A2153F82A36F7EA46F7EA48281A31780A481A217C0A88117E0B3A817C0
-5DA81780A25DA41700A35D5EA44B5AA44B5AA35E157FA25E15FFA25E5C5EA25C93C7FCA2
-4A5AA24A5AA25D141F5D4A5AA24A5AA24A5A4990C8FCA2495A5C1307495A5C495A495AA2
-495A49C9FC485A5B485A485A485A485A485A48CAFC12FE12F81270>43
-182 118 263 71 I<EA03F8EA07FEEA1FFF48138014C04813E014F0B5FCA214F8A46C13
-FCA27EA27E3807FE7CEA03FCC7FCA514FCA214F8A3130114F0A3130314E0130714C0130F
-A2EB1F80A2EB3F00133E137E5B485AA2485A485A485A485A90C7FC121E120C1637719333
->44 D<B9FCAC300C7EAC3D>I<EA01F8EA07FE487E4813804813C04813E0A2B512F0A66C
-13E0A26C13C06C13806C13006C5AEA01F81414719333>I[<1AF0F101F8F103FCA21907A2
-1AF8190FA21AF0191FA21AE0193FA21AC0197FA2F1FF80A21A0060A2611803A2611807A2
-61180FA24E5AA261183FA261187FA26118FFA24D90C7FCA2601703A2601707A260170FA2
-60171FA24D5AA260177FA26017FFA295C8FC5EA25F1603A24C5AA25F160FA25F161FA25F
-163FA25F167FA24C5AA294C9FC5DA25E1503A25E1507A24B5AA25E151FA25E153FA25E15
-7FA25E15FFA24A90CAFCA25D1403A25D1407A25D140FA25D141FA24A5AA25D147FA25D14
-FFA292CBFC5BA25C1303A2495AA25C130FA25C131FA25C133FA2495AA25C13FFA291CCFC
-5AA25B1203A25B1207A2485AA25B121FA25B123FA25B127FA25B12FFA290CDFCA2127E12
-3C>70 181 118 263 91 I<16F04B7E15031507151F153F15FF1403141F91B5FC130F00
-07B6FCB7FCA214FD14E1140113F0EAF800C7FCB3B3B3B3B3A24A7F4A7F027FEBFFE0007F
-B912F0A6EDE07F3C796FF85B>49 D<92381FFF804AB512FC0207ECFF80023F15E04A15F8
-49B712FE4982010FD9C01F14C090271FFE000180D93FF86D6C7FD97FE0021F7FD9FF8002
-077F4890C86C7F496F7F48486F1480484818C04982000F7113E0484818F04982003F19F8
-49821AFCEA7FF801FE826D6C17FE80B5FC6E816E17FFA86C5B6C5BA26C5BD807FEC9FCD8
-01F818FECBFC60A21AFCA2601AF8A24E13F0A24E13E0A24E13C01A8095B5FC1A004D5B61
-4D5B4D5BA24D5B4D5B614D90C7FC4D5A4D5A604C5B4C13C04C5B4C90C8FC5F4C5A4C5A4C
-5A4C5A4B13804B90C9FC4B5A5E4B5A4B5A4B5A4B5A4B48153F4A90C9FC4A5A4A48167E5D
-4A5A4A5A4A5A4A5A4ACA12FE494817FCEB03F8495A4A1601495A495A49CAEA03F8017E17
-1F90BAFC5A5A5A5A1AF05A5A5ABBFCA31AE0A3487977F85B>I<923803FFF0033FEBFF80
-4AB612F0020F15FC4A15FF027F16C0494848C66C13F04901E0010F7F4990C700037FD90F
-FC6E7FD91FF06E6C7ED93FC08349486F7F91C96C7F01FE84485AD9FFE06F7F487F6E836E
-81487F6E83A48192C8FCA37E5C6C495F6C5B6D485DEB1FE090CA5CA24E5BA2626062A24E
-5B97C7FC4E5A614D5B4D5B4D5B4D5B4D5BDD7FFEC8FC933803FFFC4BB512F092B612C04A
-92C9FC8418F06E15FE92C76C6C7E051F7F050713F005017F7113FE727E727F727F86727F
-86727F868486A2721480A21BC0A21BE084A31BF0A2EA01FCEA07FF487F487F487F487FA2
-B57EA21BE0A3601BC05CA26C4918804A5D4A18006C90C9FC01FC4C5BEA1FE04E5B6C6C60
-6C6C4C5B6D606C6C4C5B6C6C6C4B5B6C01E092B5C7FCD97FF84A5BD93FFE02075B90260F
-FFC0011F5B6D01FE017F13E0010190B75A6D6C93C8FC021F15FC020715F0DA007F91C9FC
-030313F04C7D79F85B>I<19FC8518011803A21807180FA2181F183FA2187F18FFA25F5F
-A25F5FA25F5F187F177E17FE17FCEE01F8160317F0EE07E0160F17C0EE1F80163F170016
-7E16FE5E4B5A15035E4B5A150F5E4B5A153F93C7FC157E15FE5D4A5A14035D4A5A140F5D
-4A5A143F92C8FC147E14FE5C495A13035C495A130F5C495A133F91C9FC137E13FE5B485A
-12035B485A120F5B485A123F90CAFC127E12FEBDFCA7CB49C7FCB3A34D7F4D80051F14E0
-0303B9FCA6F0F83F507B7BFA5B>I<0170170701FCEF1F80D9FF80167F02F0ED07FF02FF
-033F130003F890380FFFFE92B7FC6161616161614EC7FC606018E018804DC8FC17F86E14
-C0020701FCC9FC91CCFCB3A5923801FFE0031F13FE037FEBFFC04AB612F0020781021F90
-38007FFEDA3FF0EB0FFFDA7FC06D13C04AC700017F02FC6E7F4A6F7E02E0824A6F7E4A15
-1F8591C96C13805B1AC0017C7013E090CAFC1AF0841AF8A31AFCA2841AFEA51AFFA4EA03
-F8EA0FFE487E487F487FA2B57EA31AFEA44A5D1AFC5C6C90C9FC4918F801F85E90CA14F0
-7E6D18E0606C6C18C0606C6C18806D4C13000007606C6C167F6D4C5A6C6C4B5B6C6C4B5B
-D97FC04A5B6D6C4A5BD91FF8023F90C7FC6DB4ECFFFE6DD9F00F5B010190B612F06D5E02
-3F1580020F02FCC8FC020314E09126003FFEC9FC487D77F85B>I<EF3FFC0407B512C004
-3F14F093B612FC030381030F814BD9F0077F037F90C77FDBFFFCEC3FE04A01F0EC0FF04A
-01C06E7E4A4914034A48C8EA1FFC4A48157F4A4815FF4A485C02FF4B7F495B49495C495B
-A24990C8FC5B5C013F705B495A725B49486F5B735A48F01F804A93C8FC5AA25A5CA25AA2
-5C5AA35A5E93387FFF800303B512F048D9800F14FC4B14FF4B819226FF800713E0DA81FE
-C77FDA83F86E7EDA87F0EC1FFCB501C06E7E028F6F7EDA9F808292C86C7F02BE6F7F02FE
-834A6F7FA24A707E865C737EA24A1880A21BC0A24A821BE0A56C1AF05CA87EA280A37EA2
-1BE0A27EA36C6D4C13C0A36C1A80A26C6D1800616C6180017F4D5A626D6C4B5B6D7E4E5B
-6D6C5F6D6D4A5B6D4C90C7FC6D01E04A5A6D6D4A5A6E6CECFFF8DA3FFE01035B91271FFF
-C01F5B6E90B61280020393C8FC020015FC033F14F0030F1480030001F8C9FC4C7D79F85B
->I<EA03F0A27F487E13FF14FC91BA12FCA35AA31BF8A21BF01BE0481AC0A21B801B00A2
-01F8CAEA01FE01C04D5A003F614917074F5A90CB485A62193F484E5A007E96C7FC614E5A
-4E5A611807484D5A61181FCB485A4E5A96C8FC604D5A6017034D5A4D5AA24D5A4D5AA24D
-5AA24DC9FC5E5F16035F1607160F5F161FA24C5AA2167F5F16FFA25D5FA25DA25D5FA25D
-A25DA294CAFC5DA45DA392B5FCA35EA25CA55CA75CAE6E5BA26E5B6E5B6F5AED1F804E7F
-76FA5B>I<EEFFF8030FEBFF80037F14F04AB612FC020715FF021F16C04AD9803F7F9127
-7FF8000313F8902601FFE001007F490180EC3FFE4948C8EA0FFF49486F7F4A6F7F494881
-49486F7F017F844A167F01FF844A163F4885191F4890CAFC86190FA25AA380A380191F6E
-5F80A26C6D4C5A8002FF4C5A816C02E04B5A6F5E6C02FC5C6F4A5B6D6D6C4990C7FC04E0
-5C6D6E495A6D02FC495A70EB7FF06D6E6C485A6D03C113806D03F790C8FC6DEDFFFC6D5E
-023F15E06E5D6E81020315F8020015FE6F8019C04AB77E020716F84A8291263FF87F8091
-267FE03F80902701FFC00F8149496C81902707FE00018149486D814948023F804948020F
-8049486E80494814014870804849153F4890C96C1480180748487014C0484816007313E0
-003F8449838548487113F085A285485A85A31A7FA41BE0A27F127F1BC01AFF7F003F1A80
-6D5F001F1A006D5F000F616C6C4D5A6E160F6C6D4C5A6C6D5F6C6DEE7FE06D6C4C5AD93F
-FE03035B6D6C4B90C7FC6D01C0EC3FFE6D01F8ECFFF801019026FF801F5B6D91B65A023F
-1680020F4BC8FC020115F0DA003F1480030101F8C9FC4C7D79F85B>I<EEFFF8031F13FF
-037F14E00203B612F84A15FE021F814AD9C01F7F91277FFE000713E0902601FFF001017F
-49496D6C7E4901806E7E4990C86C7E49160F49486F7E4948834A6F7F13FF48496F7F5A4A
-6F7F48855A4A167F4885A24885A2193F484983A31B80A2B5FCA21BC0A385A21BE0A84F13
-F07EA57E6E5EA27EA26C95B5FCA26C7F607E6C6D5DA26C6D5D017F17DF6D6CED0F9F6D6C
-151F010FEE3F1F6D6C153E6D6D02FE14E06D01E0EB01FC6D6DEB07F8DA7FFEEB1FF0021F
-B612C06E158002031500020002FC15C0031F01E05BDB0008C7FC93C8FCA21B80A31B0061
-A262A34F5AA2D91F805FD97FE05D496C5F487F486D4B5BA2486D4B5B626097C7FC4E5AA2
-4A4B5A4E5A6C495E4A4B5A4A4A5B6C01804A5B01FCC84890C8FC6C6CED1FFE6D6C4A5A6D
-6CECFFF8D93FF801035B90271FFF801F5B6D90B612806D4BC9FC01015D6D6C14E0020F14
-80020001F8CAFC4C7D79F85B>I<EA01F8EA07FE487E4813804813C04813E0A2B512F0A6
-6C13E0A26C13C06C13806C13006C5AEA01F8C8FCB3B3A2EA01F8EA07FE487E4813804813
-C04813E0A2B512F0A66C13E0A26C13C06C13806C13006C5AEA01F8144E71CD33>I<EA01
-F8EA07FE487E4813804813C04813E0A2B512F0A66C13E0A26C13C06C13806C13006C5AEA
-01F8C8FCB3B3A2EA03F8EA07FEEA1FFF48138014C05A14E0B5FC14F0A414F87EA27EA27E
-EA07FEEA03FCC7FCA6130114F0A4130314E0A2130714C0A2130F1480131F14005B133E13
-7E5BA2485A485AA2485A485A485A90C7FC121E120C157171CD33>I<003FC012FE488BC2
-1280A46C20006C67D5FCB3AA003FC012FE488BC21280A46C20006C67792C76C28E>61
-D[<F13F804F7EA34F7EA34E7FA34E7FA34E7FA34E7FA34E7FA34E80A24E80A28506FF80
-A24E7E05018118FC8505038118F8850507814E7EA2050F814E7EA2051F814E7EA2053F82
-4E7EA2057F8295C77EA24D824D80A20401834D80A20403834D80A20407834D80A2040F83
-4D80A2041F834D80A2043F844D80A2047F8494C97E4C84A24C82030185A24C82030385A2
-4C824BBA7EA34B85A34B8504C0C91201A2033F864C82A2037F8693CB7EA24B864B84A202
-01874B84A20203874B84A20207874B84A2020F874B84A2021F8788143F027F88884A6C87
-01037F496D4E80013F01FF0607800003B600E0053F14FEB8047FB812E0A6020F1B83>
-123 130 122 257 136 65 D<BC7E1BFCF3FFC01CF81CFE767E89D8000702F0C8000314
-F001004ADB007F7F6E49041F13FE6E06077F758075807580767F767F888A767FA2767FA2
-881F80A37614C0AA521480A31F00646664666466525B525B99B55A515C5191C7FC515B51
-13F8093F5B98B512C0080391C8FC083F13FC93B912F01C80A21CF81CFF04C0C96C13C009
-0F13F809037F090013FF767F7613E0767F767F767F767F8A7614807614C0A27713E01FF0
-A27713F8A37713FCA31FFEA58965A51FFCA2651FF8A2651FF09AB5FC1FE0645214C01F80
-64521400525B525B99B55A515C4A06075C91B56C043F5C01076E4BB6C7FCBE5A1DF81DE0
-1D800AFCC8FC1CE009FCC9FC6F7C79FB81>I<BC7E1BFCF3FF801CF01CFC1CFF1DC0D800
-0702F0C8001F14F001004A030014FC6E49041F7F6E06077F090114C0756C7F0A1F7F767F
-767F0A017F767F777F777F777FA2777F777F8B89777FA2777F8C8A8CA2787FA3787FA28C
-A28A8CA38C8AA38CA72180A68AA466A62100A668A36668A4686668A26668A2545BA2689B
-B5FC9DC7FC535BA2535B535BA2535B535B535B535B9AB5FC5291C8FC525B525B0A1F5B52
-13E099B55A09035C4A061F49C9FC91B56C93B55A01076E031F14F0BE5A1D8052CAFC1CF0
-1CC009FCCBFC1B80797C79FB8B>68 D<BF12FCA48AA3D8000702F8C9121F01004AEE007F
-6E49170F6E1901F4007F1D3F777E89898989A289A2F67F80A31E3FA31E1FA21FC0A21E0F
-A4F203F0A3F607E0A49BC7FCA21A07A41A0FA21A1FA21A3F1AFF1903193F93B8FCA704E0
-C7123F190319001A3F1A1FA21A0FA21A07A40803163FA31F7EA697CAFC1FFCA41E01A31F
-F81E03A41E07A2F60FF0A21E1FA21E3FA21E7FF6FFE0656565651D3F9AB5FC4A070314C0
-91B56C173F01076E040FB6FCC0FCA41F80A3707B7AFA7C>I<BF12F0A48AA3D8000702F8
-C9123F01004A16006E49171F6E19071C0188777E1D3F1D1F1D0F1D07A21D03A2777EA21D
-00A41E7EA21E7FA28AA6F207E0F61F80A49BC7FCA51A0FA31A1FA21A3FA21A7FF101FF19
-07197F93B8FCA704E0C77E19071901F1007F1A3FA21A1FA21A0FA31A07AA97CBFCB3A94A
-7F91B57E0107ECFF80BA12C0A61503697B7AFA77>I<B60007B500F80103B5D8FC1FB512
-E092B694B7FCA6D8000792CA001F02FCC7FC010002F8050314E06E49715C6E49715CB3B3
-AA93BCFCA704E0CBFCB3B3AF4A6D4D8091B56C4D80010702FF051F14FCB900F80103B912
-E0A60307F1FC1F7B7C7AFB88>72 D<B60083B512FE92B6FCA6D80003ED8000D9007F01FC
-C7FC6E5B6E5BB3B3B3B3B3AE4A7F4A7F0103B67EB912FEA61583377C7BFB42>I<B60003
-B612C092B7FCA6D800070380CCFC010002F8CDFC6E5B6E5BB3B3B3ACF503F0A41D071EE0
-A71D0FA21EC0A21D1FA41D3FA31D7F1E801DFFA26464A26464646452130051B5FC631B0F
-4A187F91B56C0303B6FC01076E157FBFFCA265A5647C7AFB72>76
-D<B700F00907B7FC7063A27063A27063A2D80007F9E00001006E097D91C7FC6E67DA3FBF
-6D08F95BA3039F6DF101F1A3038F6DF103E1A203876DF107C1A303836DF10F81A203816D
-F11F01A303806D193EA3706C197CA2706D18F8A3706DEF01F0A3706DEF03E0A2706DEF07
-C0A3706DEF0F80A2706DEF1F00A3706D173EA3716C5FA2716D5EA3716D4B5AA2716D4B5A
-A3716D4B5AA3716D4B5AA2716D4BC7FCA3716D153EA2726C5DA3726D5CA3726D495AA272
-6D495AA3726D495AA3726D495AA2726D49C8FCA3726D133EA2736C5BA3736D5AA373EBC1
-F0A273EBE3E0A373EBF7C0A273EBFF80A37391C9FCA34A6C6F5BA24A6C705A497F010701
-FC527F011F01FF70484C7F48B600F0093F14E0B800F06E48020FB9FCA3745AA302E07148
-EFF07F987C79FBA7>I<B700E094B500E0B512E07096B6FCA28282A282C76E0501EDF000
-023FDF001F91C7FC71050713FC71050113F0775B71725A8303BF745A039F7F83158F0387
-7F831583038180841580707F8482707F8482707F848270808582717F8583717F8583717F
-858371808683727F8684727F8684727F868472808784737F8785737F8785737F87857380
-8885747F8886747F8886747F88867414801DC0867513E01DF0877513F81DFC877513FE1D
-FF877514BF1EFF8788A28888A28888A28888A28889A24A6C85894A7E496D85010701FC85
-011F13FF48B600F084B800E083A2891E7FA21E3F02E075C8FC7B7C7AFB88>I<BB12FEF2
-FFF01BFEF3FFC01CF81CFE88D8000702F0C8003F14C001004A0303806E49DB007F13F86E
-061F7F09077F09017F7580767F767F8A88767F8AA2767FA28AA2761480A41FC0AB1F80A3
-1F0064A266A2525B666466525B666499B55A090391C7FC5113FC091F5B097F5B0803B512
-C0083F5C93B948C8FC1CF81CE099C9FC1BF050CAFC04E0CEFCB3B3AA4A7F91B57E010714
-FFB912FCA615076A7C79FB7C>80 D<922607FFC0EC01C0037F01FEEC03E00203B600C013
-07020F15F0023F03FC130F91B8131F4949C66C13804901E00103EBE03F4901800100EBF0
-7FD91FFEC8EA1FF84948923807FCFFD97FF06FB5FC4A150001FF83484982484982488491
-CAFC48488385121F4983003F84A25B007F197FA21A3FA212FF1A1FA31A0F7FA37F1A07A2
-7FA26C7F6EEF03C097C7FC806C7F14FC806C6D7E15E06C14FCEDFFC06C15FC6CEDFFE017
-FE6CEEFFE06C17FC6DEEFF806D17E06D17F86D17FE6D836D18C06D846D6C836E83020F83
-020383DA007F821507DB007F1680040716C0EE007F050715E0DD007F14F01807060114F8
-727E857313FC85857313FEA285851BFF00788512FCA286A4867EA56C1AFEA37FF23FFC7F
-A26D19F81A7F7F1BF06D18FF6D19E06D4D13C06D5F6E188002E04C13006E5E02FC4C5A02
-FF4C5A01E701C0EDFFF801C101F84A5B01C001FF020F5B496C01FC017F5BD9001F90B7C7
-FC6E5E48010316F848D9007F5D030F15C04802014AC8FC0070DA000713E0508476FF65>
-83 D<001FC012E0A74802C0C76C01FCC7000F14F002F8C86C49EC007F02C06F49150F4A
-1B0349C9844988491D7F491D3F491D1FA2491D0FA2491D07A2007F1FF890CA1903A5007E
-1E01A800FE1FFC481E00A6CB1A00B3B3B3B14E7F4E7F050FB612E0037FBA12FCA6190176
-7B7AFA83>I<B60007B500F892B500E0B512E092B695B6FCA6D8000792CA0001EDF00001
-0002F8DD001F91C7FC6E49060713FC6E49060113F0775B785AA2785AB3B3B3B3A31E7F6E
-99C8FCA282A26E6366A36E6D4E5AA26E1A03706180535A6E6D180F666F6C181F6F627117
-3F6F4F5A6F6D4DC9FC6F6D5E6F6D4C5A6F6D4C5A6F6D4C5A706CEE3FF0706C6C4B5A706D
-4A485A7001F802075B7001FE023F90CAFC0401903AFFE007FFFC7091B65A053F16E0050F
-5E050393CBFCDD007F14FC060F14E09526007FFCCCFC7B807AFB88>I<B5D8F07FB56C90
-271FFFFC1FB500F0020FB53887FFF091B793B795B5FCA6D8001F92C9000303E0C9003FEC
-FC00010302F0DC007F49CA000714C06D4A7101F8050191C7FC6D4A796C5A7649725A7872
-5A6E7363A16D5A70856E7363A270201F6E75618870203F6E7596C8FC8870686E4F6E177E
-A27020FE6E4F6E5FA2701F016E4F6E5FA2836E4F6E4C5A1D9FA271043F6E16076F070F61
-A271047F6E160F6FDE7E0761A27173161F6F4E6C61A2711E3F6F05016F94C9FC527E7166
-6F050370157E527E711EFE6F0507705D527F711D016F050F705D527F846F051F704A5A52
-7FA272023F7014077094C76C5FA2724A70140F70047E6E5FA27273141F704C6E5FA2721C
-3F7003017192CAFC5180726470030372137E5180721CFE700307725B5181721B0170030F
-06E05B5181198070031F72485A5181A2DFC03FF0F8077192C96C5DA27348F0FC0F71027E
-705DA207F0F1FE1F714A705DA207F81A3F7101F907FF90CBFC508207FD627101FF1AFE50
-82A271645083A271645083A271645083A37290CB6C5BA37248725BA37248725BA3060F98
-CCFC4F84A20607624F18007248197CB4807DFBBB>87 D<271FFFFE0FB500F8021FB53883
-FFFE91B795B5FCA6D8000193C800014BC7FCD9001F02F8DB003F14E06E02E07091C8FC6E
-4A7013F86E4A705B6E6E7013C06E6E609BC9FC6F6D5F715F6F4E5A6F6D160F715F6F4E5A
-6F6D163F725E6F4E5A6F6E15FF9ACAFC6F6E5C706D4A5A64706D1407706D4A5A64706D14
-1F706D4A5A64706E137F706E495A99CBFC706E5A716D485A6371EBF80707FC5B714A5A71
-EBFE1F07FF5B714A5A7114FF637192CCFC8362725B8462727F727FA2727F7280A2728087
-A24E804E80A24E804E8019EFDE3FC77F187F078380DEFF01805F4E6C804D486D7F17074E
-6D7F4D486D7F171F4E6D7F4D486D7F177F4E6D804DC76C805E4D6E804C48830407824D6F
-7F4C4883041F824D6F7F4C5A047F707F4D6F804CC9FC4B71804C70804B5A0307727F4C71
-7F4B5A031F727F4C717F4B5A037F727F76804B5A4A6D71800207884A85023F6D8691B56C
-4D80010702FC050714FE90B76C047FECFFC0B800F0030FB812FEA602C1F3F83F7F7C7CFB
-88>I[<B612E0A890C8FCB3B3B3B3B3B3B3B3B3A390B512E0A8>27
-181 108 263 51 91 D<02C01518496C153C0103167C010716FC49484A5A49484A5A49C8
-485A017E4B5AA2494B5A48484BC7FC49153E0003167E48485DA248484A5AA2495D001F15
-0390C85B481507003E5EA3007E150F007C5EA300FC151FA24893C8FCA501FFED1FE000F9
-6D4A7EB500E0ECFFFC6E81A26E81A26C6D6D1480A46C81A24A16006C816C496D5B6C816C
-496E5A6C0180EC3FF06C6CC8EA0FE0393765FD5B>I[<B612E0A8C7121FB3B3B3B3B3B3B3
-B3B3A3B6FCA8>27 181 125 263 51 I<92B5FC021F14F091B612FE01036F7E010F16E0
-49D9C00713F8D97FF8C77FD9FFC0EC3FFE6E6E6C7E486D6E7F486D6E7F6E8048707F6E6E
-7F85187F85A2727E6C5BA26C496F7F6C5B6D5AEB1F8090CAFCA84CB6FC93B7FC150F157F
-0203B8FC021FECE01F027FEBFC0049B512E0010791C7FC4913F84913E0017F5B90B5C8FC
-485B4813F85A5C485B485BA2485BA24890C9ED0FC0A3B5FC5BA260A4607F6C94B5FCA26E
-5C6CDC03F79038C01F806E15E36C16076C6DDA1FC39038E03F006C6DDA3F816D5A6C01FC
-DAFF01EBFFFE6C01FF902603FE005C6C6C9026E01FFC6D5B6D90B500F06D5B010F4B6D5B
-0103038001071380D9007F49C7D801FCC7FC020301E091C9FC525379D05B>97
-D<EC0FE048B5FCB6FCA7C67E131F1307A27FB3AF943803FFC0053F13FC4CB67E040715E0
-041F15F893267FFC0113FE933AFFC0003FFF03E190C7000F13C0DBE3FC02037FDBE7F002
-007FDBEFE06F7EDBFFC06F7E93C96C7E874B707F4B707F5D747F4B8486888688A2881B7F
-88A31D80A287A31DC0AE1D80A263A21D00A3641BFFA264A2505BA2505B6F60626F60505B
-6F95C7FC6F4C5A505ADBDF804B5ADB8FC04B5ADB07F04A5B6F6C02075B9126FE01FE021F
-5B6F6C6CD97FFEC8FC4A903A7FF807FFFC4A6DB612F0040F15C04A010392C9FC90C914F8
-050F90CAFC5A807CFD65>I<EE7FFF030FB512FC033FECFF804AB712E0020716F84A8202
-3FD9E0007F4A90C7EA07FFDAFFFC4A13804901F04A13C049495C495B49494A13E04990C8
-FC495A495A13FF485BA248496F13C0487113804A6F130048715A725A484992C8FCA3485B
-A35AA391CCFCA2B5FCAE7E80A47E80A27E1AF06C6DEE01F8A26C6D16031AF06C7F19076C
-6D17E06C180F6D6C17C06E161F6D6DED3F806D6DED7F006D6D15FE6D6D14016D01FC4A5A
-6D6DEC0FF89027007FFFC0EB3FF06E9039F803FFE0020F90B612806E93C7FC020115FC6E
-6C14F0030F14809226007FF8C8FC45537AD051>I<F207F096B5FC187FA7F0003F190F19
-03A285B3AFEE3FFC0307B512C0033F14F092B612FC020315FF020FD9F80713C14A903980
-007FE1DA7FFEC7EA1FF1DAFFF8EC07F94901E0EC01FD49496EB5FC4949814990C97E4948
-82494882137F49488248845C5A485BA2485BA25AA25C5AA35AA291CAFCA2B5FCAE7EA380
-A27EA37E807EA27E807E6E5E7E6C6D5E616D6C5E6D7E011F4D7F6D6C93B5FC6D6D4A14FE
-6D6DDA07FB6D7E6D01F0DA0FF3ECFFC06D01FCEC3FE3DA3FFF903801FF836ED9E00F1303
-020790B512FC020115F86E6C14E0030F0200EDE000030001F002F8C8FC5A807AFD65>I<
-923801FFF0031F13FF037F14E00203B612F84A15FE021F9038C07FFF91277FFE000F13C0
-DAFFF801037F4901E001007F49496E7E49496E7E4990C86C7E495A49486F7E017F701380
-495A4A6F13C05A484917E0844819F05C48831AF85A5C5AA2197F4819FC91CAFCA4BBFCA4
-1AF891CCFCA97EA280A37EA36C7FA26C19786E17FCA26C18016C6D17F8A26C6D16036C19
-F06E16076D6CEE0FE0013F18C06D6C161F6D6DED3F806D01E0ED7F006D6D15FE6D01FCEC
-03FC6D01FFEC0FF86E01C0EB3FF0021F9039FC01FFE06E90B65A020393C7FC020015FC03
-3F14F0030714C09226003FFCC8FC46537BD051>I<933803FF80043F13F093B512FC0303
-80030FECFF80033F010113C092267FF80013E04B485A4AD9C00313F04A495A4A494813F8
-4A5A141F5D4A5A147F5D02FF6E13F07113E049496D13C0711380F07F0095C7FC495BB3A9
-B9FCA7D8000301E0C9FCB3B3B3A7497F81013F13FFB812F8A614C13D807BFF38>I<F20F
-F8F27FFE922607FF800103B5FC037F01F8010F14800203B65B020F923AC03FF87FC0023F
-923AF0FFC0FFE04A9238F9FE019126FFFE01EBFFFC499026F0003F13F0010701C0010F13
-E049496D13C04990C76C6D6C13C04A6EED7F8049486E6DEB3F0049486F6C131E01FF7190
-C7FCA248496F7EA24884A24A81A24885AA6C96C8FCA26E5DA26C60A26C6D4B5AA2017F5F
-6D6C4B5A6D6C4A5B6E5C6D6D495B6D6D495B4901F0D93FFEC9FC499039FE01FFFC92B65A
-D93F3F5D020F15C0D97E0392CAFCDA007F13F80307138001FE90CDFCA67FA280A28014F0
-EB7FFC91B712F0F0FFC06D17FCF1FF806D18E06D846D18FC6D846D84010785011F85017F
-85D9FFFCC8001F804801E0030080480180161F4890CA00037F484817004848187F484872
-7E1A1F485A747EA2485A86A66D60007F62A26D181F6C6C4E5A001F626D187F6C6C4E5A6C
-01C004035B6C6D4C5B6C01F8041F5B6C01FE047F90C7FC6D6C6C4A485A011F01F8021F13
-F801079026FF8001B512E06D91B75A010095C8FC021F16F8020316C0DA007F4AC9FC0301
-148053787BD15B>I<EC0FE048B5FCB6FCA7C67E131F1307A27FB3AF943801FFF0050F13
-FF057F14E04CB67E4C15FC040F01017F933A1FF0003FFFDC3FC0010F7F4CC78004FE80DB
-E1F86E7FDBE3F082EDE7E04C8003EF83EDFF8093C8FC854B83A25DA35DA45DB3B3A7496D
-4B7FA2013F01FF030FEBFFC0B8D8C03FB712F0A602E1EFF87F5C7E7BFD65>I<EB01F8EB
-07FE497E497F497F497FA290B57EA66D5BA26D5B6D5B6D90C7FC6D5AEB01F890C9FCB3A5
-EC0FE048B5FC127FA7C67E130F7FA27FB3B3B3A35B81013F13FCB8FCA614C3287B7BFA32
->I<163FEEFFC04B13E04B13F04B13F84B13FCA24B13FEA66F13FCA26F13F86F13F06F13
-E06F13C0EE3F0093C7FCB3A517FEED3FFF021FB5FCA7EC000F150181167FA2163FB3B3B3
-B3A7EA07F8487E486C15FC486C147F487FB57E17F8A2EEFFF0A217E05D028014C06C4A13
-80020014006C48495A6C48495A6C48495A6CB46CB45A6C90B55A6C5D6C6C91C7FC011F13
-F8010113C02FA089FA38>I<EC0FE048B5FCB6FCA7C67E131F1307A27FB3B1953A7FFFFC
-3FF097B5FCA6060FECFE007214C07291C7FC1AF81AE06297C8FC4E5AF00FF84E5A4E5A4E
-5A4E5A4D90C9FCEF03FC4D5AEF1FF04D5A4D5A4D5A4C48CAFC16031607EE1FFF4C7F5E93
-B57E03E18003E380EDEFFBDBFFF37F04E17F16C04C6C7EDBFE007F4B6D7F4B7F4B814B6D
-7F83717F85717F8385727E84727F8684727F86727F84727F86737EA2737F8787496D834F
-13FC013F01FE92B61280B8D8800F15FFA602C1EFFE1F587E7CFD60>I<EC0FE048B5FCB6
-FCA7C67E131F1307A27FB3B3B3B3B3AD497FA2013F13FEB81280A614C1297E7BFD32>I<
-DA0FE0DAFFF8EE1FFF48B5020FD9FF804AB512F0B6023F02E0020714FC94B600F8021F14
-FF040303FE027F15C0040F01006D902701FFE01F7FDC1FF8011F6D48D900037FDC3FC06D
-9026C007F86D7F4CC76C9026E00FE06D7FC603FE6E4A48147F011FD9E1F86E6D48C86C7E
-0107D9E3F0DCF87E82DBE7E05F4C6E4A816D01EF05FD84DBFF80EEFFF093C95C74834B4E
-83A24B60A34B95C9FCA44B5FB3B3A7496D93B54C7FA2013F01FF030702E092B512FCB8D8
-C01FB7D8F803B8FCA602E1DDFC3F178790507BCF99>I<DA0FE0903801FFF048B5020F13
-FFB6027F14E04CB67E4C15FC040F01017F933A1FF0003FFFDC3FC0010F7F4CC780C66C02
-FE80011FD9E1F86E7F0107D9E3F082EDE7E06D4A8003EF83EDFF8093C8FC854B83A25DA3
-5DA45DB3B3A7496D4B7FA2013F01FF030FEBFFC0B8D8C03FB712F0A602E1EFF87F5C507B
-CF65>I<EE3FFC0307B512E0031F14F892B7FC020316C0020FD9E00713F04A90C77FDA7F
-FCEC3FFEDAFFF0EC0FFF4901C002037F49496E7F4990C97F4948707E4948707E4948707E
-017F844948707EA24849701380481AC04A82481AE0A248497013F0A2481AF8A3481AFC91
-CBFCA2481AFEA5B519FFAD6C1AFEA46C6D4C13FCA46C1AF8A26C6D4C13F0A26C1AE06E5E
-6C1AC06E5E6C1A806C6D4C1300017F606E163F6D6C4C5A6D6C4C5A6D6D4A5B6D6D4A5B6D
-01F0020F5B6D6D4A5B6D6CB4DAFFFEC7FC6ED9E0075B020F90B612F0020316C0020093C8
-FC033F14FC030714E09226003FFCC9FC50537BD05B>I<DA0FE0903801FFE048B5023F13
-FEB691B612C0040715F0041F15FC4C819326FFFC016D7E03E19026C0003F7F03E390C700
-0F7FC66CD9E7FC6E7F011FD9EFF06E7F0107D9FFE002007F04806F7E6D91C97F4B707F4B
-707F884B824B707F888688A2747FA28688A3751380A57513C0AE511380A41D0098B5FCA2
-64A262646264A2505B646F5E6F4C5B646F4C90C7FC6F4C5A505A705E7002035BDBF7F04A
-5BDBF3F84A5BDBF1FE023F5B9226F0FF80D9FFFEC8FC93267FF8075B70B612F0040F15C0
-040392C9FC040014F8050F90CAFC94CCFCB3A5497FA2013F13FFB812C0A614E15A737CCF
-65>I<DC7FF8EC01F00307B51403033F14E04AB612F84A6F1307020F15FF023FD9F807EB
-800F4AD9C00013C091B5C7383FE01F010301FCEC0FF04949EC07F84901E0913801FC3F49
-4914004949EDFE7F197F4990C9EA3FFF495A48498285485B5A4A825A4A825AA2485B85A2
-5C5AA4B5CAFCAE6C7FA57E80A27E807E616C7F616C7F616C7F6C606E5E137F6D6C5E6D6D
-92B5FC6D6D5C6D6DEC03FB6D6DEC07F36D6DEC1FE36D01FEEC7FC3913B3FFF8001FF836E
-9039E01FFE03020790B512FC020115F06E6C14C0030F1400030013F093C8FCB3A54F7FA2
-073F13FF95B812C0A61AE15A737ACF60>I<DA0FC0EB3FE048B5903801FFFCB6010713FF
-041F14804C14E0DC7FE013F0EEFF019226C1FC0313F8EDC3F8C66C9026C7F00713FC011F
-14E00107EBCFC016806D13DF160003FF6D13F85D7113F04B6D13E0F03F8095C7FC5DA45D
-A55DB3B3A4497F81013F13FFB812F0A614C13E507CCF47>I<912607FFF0131C027F01FF
-133E0103B6EAC07E010FEDF1FE903A3FFE003FFBD97FE0EB03FF2601FF8013004848C812
-3FD807F8151F000F160F49150748481503123F1701485A1700A312FF187E7FA27FA27F6D
-163C01FF93C7FC6C13C014F014FE6CEBFFF0EDFF806C15FC6CEDFF8017F06C826C16FE6C
-826C17C0013F826D820107820101826D7E020781DA003F801501DB000F14801601706C13
-C0830078160F00FC7013E083837E83A36C177FA37F19C07FA26D16FF19807F4D13007F6D
-4B5A6D5E6D15076EEC1FF802E04A5AD9CFF849B45A902787FF801F1380010390B6C7FC48
-C615FC486D14F048010F14800070010101F8C8FC3B537AD048>I<EC01F8A81403A61407
-A3140FA3141FA3143FA2147F14FFA25B5B5B5B5B137F48B812FC120FB9FCA5D8000101F8
-C9FCB3B3A2F01F80B0183F6D6D1500A3606E6C147EA2023F5D816E6D485A6E14039338E0
-07F06E9038F81FE06E90B55A02005D6F91C7FC031F5B030713F89238007FE039727DEF47
->I<DA07F0EE01FC48B5EE7FFFB6033FB5FCA7C66CEE001F011F170701071701A26D83B3
-B3A761A461A3617FA2616F5D6D187F073F7F027F167E6F037C6D7E023FDB01FC14E06E6C
-DA03F8ECFFF06E6CEC07F06E01C0EB3FE06E9039FC01FFC06E90B612006E6C5C031F14F8
-030702E0EDF800DB003F90C790C8FC5C527BCF65>I<B5260FFFFE913A3FFF8FFF8091B5
-94B5FCA6D8003F02800207ECF000010F01FCC8000191C7FC6D499238007FFC6D61745A6D
-616F5F7F6F5FA2027F95C8FC6F5E6E177E821AFE6E5F7014016E5FA27014036E5F701407
-6E5FA270140F6E5F70141FA26E5F70143F037F93C9FC82616F157E7113FE6F5DA2EFC001
-6F5DEFE0036F5DA2EFF0076F5DEFF80F6F5DA2EFFC1F6F5DEFFE3FA2047F91CAFC715A70
-137E18FEA2705BA2705BA3705BA2705BA3705BA2705BA371CBFC173E59507DCD60>I<2B
-FFFE1FFFFC0FFFC7B5903A0FFFF8FFF090B692B692B5FCA6C66C91C7000F02800100ECFE
-00011F01F8020349C8001F13F06D496E496F13C06D70496F5B7890C7FC6D057F5F741501
-6F636D053F5F741503816D716C5E616F1A07027F725D4F160F6E6C63877091B5151F6E64
-877049173F6E04F994C8FC877001035F6E04F0167E8770010717FE6EDCE07F5D8770010F
-16016E4C6C6C5C181F70DA801F14036E725C063F16076F6C4A6C5D1C807049160F6F027E
-6D5D1CC0DD80FE161F6F4A6D5D1CE005C1173F6F4A6D92C9FC1CF005E35F6F4A6D147E1C
-F805F717FE6F4A6E6C5A17FF4EEC3FFD6FF0FFF8A26F4A6E5BA37090C86C5BA370486F5B
-A370486F5BA370486F90CAFCA370486F5A7048167C7C507DCD83>I<287FFF87FFFE903A
-03FFFE3FFF91B593B6FCA6D8000F02F001001580010102C0023F01F8C7FC6D4A16C06E70
-90C8FC6E5F6E6D15F86E5F705D6E6D4A5A6E6D5D6E4CC9FC705C6E6D495A6F6C5C6F4A5A
-EF80076F6D485A6F6D485A616F6D485A6FEBF87F6F6D48CAFC606FEBFFFC82705B60705B
-82707FA2707F707F845E4C7F854C805EDC3FCF7F05877FDC7F037F16FF4B486C7F4C6C7F
-4B486D7E15074B486D7F4B486D7F4C7F4B4881037F6E7F4BC76C7F4B804A488202036F7F
-4A486F7E020F82021F84027F707F02FF8401036D83011F4D7F48B692B6FCB700C00107ED
-FFE0A6D9FC7FEFFE1F5B4E7ECD60>I<B5260FFFFE913A3FFF8FFF8091B594B5FCA6D800
-3F02800207ECE000010F01FCC8000191C7FC6D7113FC6D49705A6D725A6F5F636D618102
-7F95C8FC81626E177E7015FE6E5F8219016E5F7014036E5F8219076E5F70140F6E5F8219
-1F6E5F70143F037F93C9FC82616F157E7113FE6F5DEFC001A26F5DEFE0036F5DEFF007A2
-6F5DEFF80F6F5DEFFC1FA26F5DEFFE3F047F91CAFC715AA270137E18FE705BA3705BA270
-5BA3705BA2705BA3705BA271CBFCA3177E17FE5F1601A25F16035F1607A25F160FD803F8
-5DD80FFE141F487E486D5C163F486D91CCFC5E167E16FE4B5A5EEC80036C4A5A4A485A49
-131F6C48495A01F0495A000F4948CDFC3907FC07FE6CB55A6C14F06C5C013F90CEFCEB07
-F859737DCD60>I<000FBA12C01AE0A492C8003F13C002E04B1380028092B512004848C9
-FC494B5B494B5B494B5BA2494B5B4D5B494B5BA24D5B4992B5C7FCA24C5B4C5B4C5B123F
-90C8485B4C5B4C5BA24C5B93B5C8FCC8485BA24B5B4B5BA24B5B4B5B4B5BA24B5B92B5C9
-FC4A5BA24A49EC03F04A5B5C5E4A5B4A4914071AE04A5B91B5C8FC495BA2495B4949150F
-495BA2495B4949151F1AC0495B90B5C9123F485B197F484916FF48495D48495D60484915
-1F4849157F4849020FB5FC91B91280BBFCA47E444E7BCD51>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmbx10 10.95 55
-/Fj 55 122 df<0603B5FC0503B612F0057F15FC0407B8FC043F17C093B97E030384030F
-84033F9126FE001F7F92B600C001017F4A4AC86C7E020702F04AB5FC4A02C04A804A4A5C
-4A49C848804A5B4C5D91B5488449605E5B5EA25B5EA2745CA2745C7491C7FCA2745B0800
-13F8F33FE098C9FCAA98381FFFF0073FB6FCBEFCAAD8000702C0C8120386B3B3B3A6007F
-B700FE013FB8FCA9DAF83FEFFE0F687F7BFE74>12 D[<EF1F80EF3FC017FF5E4C138004
-0F13004C5A4C5A4C5A4C5A4B5B4B5B5D4B5B4B90C7FC4B5A157F5E4B5A5C4A5B4A5BA24A
-5B5C5E5C4A90C8FC5D14FFA2495B5B5D5B5D5BA2495BA25B5DA25B5D90B5FCA24891C9FC
-A35A5CA25AA25CA25AA3485BA55AA25CA35AA75CA2B5FCB3A57EA280A77EA380A27EA56C
-7FA37EA280A27EA2807EA36C80A27F817FA2817FA26D7FA27F817F817F6D7FA2147F816E
-7F8082806E7FA26E7F6E7F806F7E82153F6F7E6F7F6F7F816F7F6F7F707E707E707E707E
-040313807013C082173FEF1F80>50 181 109 263 81 40 D[<127EB4FC13C07F6C7EEA
-3FFC6C7E6C7E6C7F6C7F6C7F6C7F806D7E6D7E6D7E817F6D7F816D7F6D7FA26D7F81147F
-816E7F8082A26E7F8280828082A26E7FA28280A2838183A26F7FA38381A283A281A283A3
-6F7FA583A281A31880A781A218C0B3A51880A25DA71800A35DA25FA54B5BA35FA25DA25F
-A25D5FA34B5BA25F92B5FC94C7FCA25C5EA24A5BA25E5C5E5C5E4A5BA25E5C4A90C8FC5D
-14FF5D495BA2495B495B5D495B5B92C9FC495A495A495A5C485B485B485B4890CAFC485A
-485AEA7FF0485A5B90CBFC127E>50 181 117 263 81 I[<EE0FC0EE3FF04C7E4C7E4B7F
-A24B7FA2815FA56F5B01C0180CD807F8F07F80486CF0FFC0486C4D13E0486C4D13F04801
-C06D48010F13F86E5E6E5EB500FC93B512FC6E5D6E5D9239C03FF00F6C02E04A14F803F0
-5C6C02FC91B612F06C02FE01F115E06C02FF01F315C00001DB9FE7ECFE00D8003F91B712
-F001071880010005FCC7FC021F16E002071680020003FCC8FC031F14E0030391C9FC031F
-14E092B612FC0207EDFF80021F16E091B812FC0107EFFF80013F18F048B6D89FE714FE00
-0F4B6CECFFC04802FE01F115E04802FC01F015F04802F0023F14F803E080B600C06E14FC
-9239007FF8034A814A816C01F0043F13F84A824A826C90C7486C010313F06C487113E06C
-487113C06C48F07F80D800C0F00C0090C893C7FC4B7FA5835DA26F5BA26F5B705A705AEE
-0FC0>78 81 115 263 105 I<1A1F507E507E507EB3B3B3A7001FC212FE488D482280C4
-12C0A56C22806C22006C69CD01E0CDFCB3B3B3A7745A745A74CEFC8A8B74F2A3>I<EB3F
-C0EBFFF800037F4813FF4814804814C05A15E04814F0A2B612F8A315FCA415FEA27EA27E
-A27E7E7E7EC613F9EB3FE1EB000315FCA4140715F8A2140FA215F0141FA2EC3FE0A2EC7F
-C0A2ECFF805B15005B495A495A131F5C495AEBFFE05A485B485B91C7FC6C5A5B6C5AEA00
-E01F40729C3A>I<B912FEB337137EB146>I<EB1FC0EBFFF8000313FE487F4814804814C0
-4814E0A24814F0A3B612F8A76C14F0A36C14E0A26C14C06C14806C14006C5BC613F8EB1F
-C01D1D729C3A>I[<1BF8F201FCF203FE1BFF62A262A2F21FFEA21BFC1A3FA2F27FF8A21B
-F01AFFA24F13E0A21BC061A24F1380A24F1300A262191FA24F5AA262197FA24F5AA26260
-A24E5BA26260A24E90C7FCA261181FA24E5AA261187FA24E5AA24D5BA2615FA24D5BA296
-C8FC5FA24D5AA260173FA24D5AA26017FFA24C5BA2605EA24C5BA295C9FC5EA24C5AA24C
-5AA25F167FA24C5AA25F5DA24B5BA25F5DA24B90CAFCA25E151FA24B5AA25E157FA24B5A
-A25E5CA24A5BA25E5CA24A90CBFCA24A5AA25D143FA24A5AA25D14FFA2495BA25D5BA249
-5BA292CCFC5BA2495AA25C133FA2495AA25C13FFA2485BA2485BA25C5AA24890CDFCA25B
-121FA2485AA25B127FA2485AA25BA25B127F6C5A6CCEFC>80 181
-116 263 105 I<173FEFFF804C7F16075E163F4BB5FC1507153F0203B6FC147F48B8FCB9
-FCA615DFECFC1F148048C7FCC8FCB3B3B3B3AF003FBB12E0A9EEE03F4B7771F669>49
-D<4BB5FC033F14F80203B77E021F16F0027F16FC49B97E010718E0011F844918FC498490
-B5D8F003814891C7003F15C04801FC0207814801F06E814801C014004801F06F8002FC6F
-80486D6F806E81486E6E80846F1880B6816F18C0841CE085A31CF085A26C5CA26C5CA26C
-91C9FC6C5B6C5B000113F038003F8090CB4814E0A496B612C0A21C80601C00606363604E
-5C634E5C634E5C4E91C7FC95B55A624D5C4D5C4D14C04D5C97C8FC4D13FC4D5B4D5B94B5
-12C04C5C4C91C9FC4C13FC4C5B4C13E04C5B4C49EC3FF04C48C8FC4B5B4B49ED7FE04B5B
-4B13C04B5B4B90C9FC4B5ADBFFF816FF4A4917C04A5B4A13804A90C95A4A5A4A485EEC7F
-F04A48043F13804990BAFC5B5B5B5B5B491A0090BCFC5A5A5A5A5A48625ABCFCA563A454
-7776F669>I<93387FFFC0030FB6FC037F15F00203B712FE020F707E023F17E04A17F849
-B912FE49DAC00F804901FCC7814901E0023F804901806E804990C86C80D97FFC6F806E84
-90B56C8003E08348806F834883811C804880A481A25DA36C4D15005D7E5D6C626D495C6D
-495F010F1380D903FEC8485C90CAFC4E5C634E5C634E91C7FC95B55A4D5C4D5C050F5C05
-3F14C0041FB65A031FB648C8FC4B15F819E096C9FCA219F019FF6F16C092C7000F14F005
-0114FC716C13FF72807214E07280728072808772801C80A27215C01CE0A21CF0851CF8EB
-0F80EBFFF8487F000701FF19FC488048804880A24880A3B67EA31CF8A496B612F05D6C1B
-E0A24B18C06C4A5C1C806C4A5C4AC816006C494B5C02F05D6C6D606C01FE033F5C6C6D6C
-4A5C6C02F049B65A6D9026FF800F15806D91B8C7FC010F18FC0103606D18E06D6C178002
-0F04FCC8FC020116E0DA003F4AC9FC03001480567977F669>I<F2FF804F7F4F7F616161
-A2616196B5FCA260606060A260606095B6FCA25F5F5FA25F5F5F5F18F7EFFFE74C13C74C
-13875E1807EE0FFEEE1FFCEE3FF8167F17F0EEFFE04B13C05D17804B13004B5A4B5A153F
-5E4B5A4B5A4A5B5C5E4A90C7FC4A5A4A5AA24A5A4A5A4A5A5B5D495B4990C8FC495A131F
-5C495A495A495A5A5C485B4890C9FC5A5B485A485A485A12FF90BD12F0AACB001F02E0C7
-FCB34BBA12F0A9F1F03F5C787AF769>I<943803FFF8057FEBFF800407B612F0043F15FC
-93B77E0303707E030F83033F8392B6D8C01F7F4A9126FC00037F020702E013004A0280EC
-3FFC4A49C8127F4A494A487E4A49140791B5484A7F494A5C495C494A4A14804991C8FC61
-495B5B5D5B90B55AA25A731400485C735B5A735B4B6F5B48060113E09638007F8097C8FC
-5AA35A5D17064CB57E48030714F8041F14FF4C15C093B712F003C18203C316FE03C782B6
-27CFFE001F8004F8010780DBDFE0010180DBFFC06D804C6E7F8793C86C7F4B83854B1880
-1CC05D1CE0855D1CF0A25D1CF8A41CFC6C5CA87EA57EA36C6E18F8A37E1CF0A27E1CE06C
-606F18C07E1C806D7F4F14006D6D5F6D5F6D6D5F6F92B55A6D6E495C6D02E0495C6D6E01
-0F5C6D02FE90B65A6E90B8C7FC021F17FC6E5F020317E002001780033F4BC8FC030F15F8
-030115C0DB000F01F0C9FC567977F669>54 D<48B47EA2487F8014F891B512C093BA1280
-A45AA41D00A264486364646464A2644898C7FC636363636302C0C91207D83FFCCA485B63
-494D90C8FC4F5A494D5A4F5A60007F4D5B49604E5B4E5B4E90C9FC4E5A187F48484C5A61
-4D5BCA485B4D5BA24D5B4D90CAFC5F604D5A17FF605E5E605E605E5E605EA25E6093B5FC
-A25D95CBFC5DA35DA24B5BA35DA35DA35DA25FA292B5FCA55CA65CAE6E5CA26E5CA26F5B
-6F5B030F90CCFCED03FC597D74FA69>I<EB1FC0EBFFF8000313FE487F4814804814C048
-14E0A24814F0A3B612F8A76C14F0A36C14E0A26C14C06C14806C14006C5BC613F8EB1FC0
-90C8FCB3A5EB1FC0EBFFF8000313FE487F4814804814C04814E0A24814F0A3B612F8A76C
-14F0A36C14E0A26C14C06C14806C14006C5BC613F8EB1FC01D5172D03A>58
-D<EB1FC0EBFFF8000313FE487F4814804814C04814E0A24814F0A3B612F8A76C14F0A36C
-14E0A26C14C06C14806C14006C5BC613F8EB1FC090C8FCB3A5EB3FC0EBFFF0000313FC48
-7F487F4814804814C0A24814E0A2B612F0A215F8A415FCA37EA27EA27E7E7E7EC613FBEB
-3FE3EB000715F8A4140FA215F0A2141F15E0143FA215C0147F158014FF491300A2495A13
-075C130F495A495A137F495A485B485B4890C7FCA26C5A5BEA01F06C5A1E7472D03A>I<
-001FC212FE488D482280C412C0A56C22806C2200000F69D7FCB3AD000FC212FE003F8D48
-2280C412C0A56C22806C22006C698A3574C7A3>61 D<F21FF0507E507E507EA24F7FA34F
-80A24F80A34F80A24F80A34F80A24F80A396B67EA24E81A34E82A24E82A34E82A24E4881
-A261063F6D80A24E486C80A219F006FF6D80A24D496C80A219C04D6E81A24D496C81A219
-004D6E81A24D486D81A260053F6F80A24D486E80A26005FF6F80A24C496E80A2604C7081
-A24C496E81A295C8FC4C7081A24C486F81A25F043F7180A24C487080A25F04FF718094BB
-FC4B87A34B88A24B88A34B8894CA12014B487181A24C84033F88A24B487280A24B487280
-A34A497280A24A497281A34A497281A24A90CC6C81A34A487381A291267FFF807380B800
-FE93BA12FEA902E0F4FC0F8F8079FF9E>65 D<BEFC1DFCF5FFC01EF81EFF1FC01FF01FFC
-8B797EC7000F02F8C9001F810A03810A0081778077807780897780898D898D898DA38A8D
-AA9BB65AA3696569659EC7FC6568535C535C535C535C9AB65A0A035D0A0F4AC8FC0A3F14
-F80903B65A94BB128054C9FC1EF09BCAFC1EF8F6FF801FE01FFC05F8C9000714FF0A0015
-C00B3F800B0F14F877807780778077818D78807880A278808DA27880A38DA28A2280AB54
-1500A4545CA3545CA2545C9BB6FC69535D650B0F5D535D0B7F92C7FC52B65A0A1F5DC15A
-6820C09DC8FC1FFC1FF01FC054C9FC1EE00BF8CAFC817D79FC95>I<0703B517F84EB600
-FCED01FC063FDBFF8014030503B800F01407051F05FC140F94BA141F040307C0137F040F
-07F013FF043FF1FC0193BB6C5A03039326FC001FEBFF87030F4BC814CF4B03E0033F90B5
-FC037F92C9120792B600FC1601020303F0824A03C0173F4A92CB7E4A4A844A02F8844A4A
-8491B64884494B84494B854992CD7E4C86495C494A8649895E49895E90B64886A2488A5E
-5A93CF127F5AA2481F3F5DA25AA24B1C1F5AA3F80FF8489CC7FCA35DA3B6FCB17EA381A3
-7EA2F807F8F80FFC7E81A27EA2816C1F1F21F87E826C1F3F826C20F0207F6D80701CE06D
-1EFF705013C07F6D6E5013806D6E62701C006D6F616D6F4F5A6D6F4F5A6E6E4F5A6E6E19
-FF6E02FE4E5B6E6E06075B6E03C04D5B6E03F0053F5B020003FC4D90C7FC6FDAFF804B48
-5A031F03F0030F5B6F03FF037F13F0030304FC010FB55A030093B85A043F97C8FC040F19
-FC040319F0040019C0051F95C9FC050317F8DD003F16C006014BCAFCDE000314807E8174
-FE97>I<BD12F8F4FFF01DFF1EF01EFCF6FF801FE01FF81FFE797EC7001F02F8C8000782
-E1001F15F00A0381E2007F800B1F14FF0B07810B018177810C3F80788078808A78807880
-7881A279807980A27980A27980A27980A28E8BA28EA223808BA323C0A47915E0A723F0B1
-23E0A75515C0A42380A3551500A36A676AA2555CA2555CA2555CA2555C9CB65A669FC7FC
-545C545C545C0C3F5C545C53B65A535D0B0F92C8FC0B7F5C52B65A0A1F15F00907B75AC1
-12809DC9FC1FFC1FF01F8054CAFC1EF01E800BF0CBFC0AFCCCFC8C7D78FCA0>I<C1FCA5
-8CA5C7001F02FCC9FC1C03F4007F1D0F77801D01898A8A8A8A8AA2787FA28AA28AA31F7F
-A28CA2E17FE0143FA7797EA21BFFA29CC8FCA262A2626262621A7F0707B5FC94B8FCAA94
-38FC0007F1007F1A1F86868686A274EFFFC0A35513801B7FA5672100A398C9FC67A2681F
-0FA31F1FA2681F3FA21F7FA21FFF6668666666661E7F9BB55A1D031D0F1D7F0A03B6FC99
-B7FCC15AA768A37A7C78FB89>I<C012F8A48BA6C7000F4AC81203E1000F801C01767E1D
-1F1D07898989787E8AA28A8AA28A2080A28AA38AA320C08AF37FE0A5F77FE0A409FF92C7
-FCA462A2626262621A7F0707B5FC94B8FCAA9438FE0007F1007F1A1F86868686A286A41B
-7FA998CBFCB3A8BB12FEA9EDFC07737C79FB84>I<B800FC067FB50007B512E07198B6FC
-8384848484A28484C7001F6F94C7001F01C0C7FC72070790C8FC85A2858585858515FD03
-FC8170807081708186827081708170817081868371817181718187718183718171817280
-887281847281728172818872818473807381738189857381738173817381898674817481
-748174818A867481748175807515801FC0877515E07515F07515F87515FC1FFE877614FF
-7615877615C77615E720F7887692B5FC888889A289898989A28989898A8AA28A8A8A8A8A
-A28A8B8B8B8BA28BDA7FFF87B900C0848B8CA28C8C8C8C7A5ADAFC1F765A937D78FCA4>
-78 D<96387FFFE0063FB612C00503B712FC053FEEFFC04CB912F8040718FE043FF0FFC0
-93BB12F003031AFC4BDBF00081031F92C7000F6E7E4B02F802018192B600C0DA003F14F0
-4A92C9000F804A4A7080020F02F8040114FF4A4A70814A4A71804A4A718091B648718049
-92CB6C804C84494A7280494A7280498A4C84498B494A7380A2494A738090B6894C85488C
-A24892CD6C80A3484A7480A2488CA24B86482180A34821C0A44B864821E0A6B61FF0B26C
-21E0A36F62A36C21C0A56C6E501580A36C2100A26F626C68A26C6F4F5CA36C6F4F5CA26C
-686D6E4F5CA26D6E96B65AA26D6E4E5D6D6E4E92C7FC6D6670606D6E4E5C6D6F4D5C6D6F
-4D5C6E6E4D5C6E6E94B65A6E6E4C5D6E6E4C92C8FC6E02FF040F5C6E6F4B5C020003E003
-7F14F06F02F84AB65A031F02FF020F15806F03F090B7C9FC030392B812FC03001AF0043F
-19C0040F96CAFC040118F8DC003F17C005074CCBFCDD003F15C0DE007F01E0CCFC848174
-FE9D>I<BD12E0F4FF801DFCF5FF801EE01EFC1EFF8B1FE08BC7001F02F8C8000F15FC09
-00810A1F800A07810A018176817780898C898C7780A38C892180A421C0AC2180A32100A2
-6568A26865686568535C9AB65A0A035D5292C7FC0A1F5C99B65A091F5D94BB12E0679CC8
-FC1EFC1EF01E800BFCC9FC1DC00AE0CAFC05FCCFFCB3B3A8BB12C0A9EDF80F7A7D78FC8F
->I<93B516F8031F02FC4A7E92B76C1303020704F01307021F04FC130F027F04FF131F91
-B9EAC03F0103F0F07F49F0F8FF49DAC00114FD4949C7000F90B5FC4901F0140149496E7E
-90B50080151F4891C91207484916014A8248854A8348854A83488586485B86A24885A21B
-7FA2B5193F80A21B1F80A280A26E180F80818103F0715A6C02FC94C8FC15FF16F016FF6C
-16F8EFFFC018FC6CEFFFE019FE6CF0FFC01AF06C19FC1AFF6C866C1AE0876C866D856D85
-6D856D866D866D8601008680021F8502078514016E6C84150F0300841607EE007F050317
-80EF001F060116C0F0001F19071901857414E08686D87F8084486C84A286A286A36D84A3
-1DC07FA37F1D806D60A26D1B007F6E4D5B806E4D5B806E4D5B02FE5F6E6C4C5B03E04C5B
-03F893B55A03FF150304F0020F5CDCFFE090B6C7FC94B75AD9FC7F18F8D9F81F60496C60
-D9E003188049C66C4CC8FC49011F16F890C7000116E048DA001F4AC9FC007CDB007F13E0
-5B8174FE74>83 D<000FC112F8A6488CA493C7001F02FCC77E03E01A0392C8F0007F02FC
-1C1F4A8802E01C034A884849767F91C91A7FA2491E3FA2491E1FA2491E0FA3491E07007F
-8CA4498AA700FF2180498AA5CB97C8FCB3B3B3AE4ABD12C0A9F1F007817B78FA92>I[<B6
-12FEAB01E0C7FCB3B3B3B3B3B3B3B3AF90B512FEAB>31 181 106
-263 58 91 D[<B612FEABC7120FB3B3B3B3B3B3B3B3AFB6FCAB>31
-181 124 263 58 93 D<150C151E153FEDFFC04A7F4A7F4A7F021F13FE4A7F4A8049B612
-E0498149814981013F15FF498290B500F380000302E114F048DA807F7F489026FE001F7F
-48496D7F007F01F00103EBFF80B5486D14C06C01806D6C13806C90C86C130001FC150FD8
-1FF0ED03FE6C486F5A0180ED007C6CCA12383A1E69FD69>I<0307B512C04AB612FE021F
-EDFFE091B812FC010317FF4918C0011F18F04984499026FC000714FE03E001008090B56C
-023F804871806F020780A2486E6E8072808487A2737FA36C4A6F7FA26C5C6D5B6D5B6D5B
-6D90C9FCEB01F890CBFCA40607B6FC94B8FC163F0307B9FC157F0203BAFC141F027FEDF8
-3F49B6EAFC00010715C0011F02FCC7FC017F14E090B61280484AC8FC485C4814F0485C48
-5C5D5A92C9FC5A5CA2B55AA561A28096B6FC6C5F806C5F6F5C6C6EDA0FF7806F023F15F8
-6C02F8DAFFE7ECFFF86C6E010301C715FC6C9126FF803F018315FE6C92B612036C6CEEFC
-016D4C7E010F04E07F01030480131FD9007F4AC7000714FC020F02F0DA007F13F8DA003F
-90CCFC5F547AD266>97 D<ED7F8090B6FCB7FCAAC67E131F7FB3AC953807FFF095B67E05
-0F15F0053F15FE0481B87E048717E0048F17F804BF8393B5D8F0038095C76C6D7E05F802
-0F8005E06E8005806E8094C98016FC4C707F4C707F4C707F5E1E80871EC0A27514E0A31E
-F0A2871EF8A51EFCAF1EF8A55114F0A31EE0A25114C0A21E80631E0082704C5B704C5BA2
-04FE93B55A704B5C7102075C05E04A5C03FD6D023F5C03F801FE91B6C7FC9228F07FFFC0
-0F14FC4B6C90B75A040F17E0DBC00317804B6C4CC8FC92C76C15F84A020F15E04A02014A
-C9FC90CA001F13C0667F7AFD74>I<933807FFFE4BB612F8030F15FF037F16E04AB812F8
-020783021F17FF027F188091BA12C049ED8003499126F8000114E0010F02E016F0490280
-5B4991C7FC4B4A14F8495B90B55A5A5D485C5AA2484A6E14F0A2487114E04B6E14C07313
-8048721300735AF103F04895C8FC92CCFCA4B6FCAF7E81A37EA3817EA26C6EEE03FCF207
-FE6C801A0F6C6E17FC6F161F7E6C6EEE3FF86FEE7FF06D6E15FF6D02E04A13E06D6E5C6D
-02FC4A13C06DDAFF80013F13806DDBF801B51200010092B65A6E5F021F17F002075F0201
-17806E6C4BC7FC030F15F003011580DB000701F0C8FC4F5479D25D>I<F43FC0087FB5FC
-96B7FCAAF1003F1A0F86B3AC93380FFFE04BB6FC031F15E0037F15FC0203B8FC020F17C7
-4A17E7027F94B6FC49B6EAC00F4902FCC7FC4902F0143F4902C0140F494A14034949C87E
-49496F7E90B5488286484A82485CA25A5D5AA2485CA25AA34891CAFCA5B6FCAF7EA56C80
-A37EA36C80A27E6F5E6C617E6F5E6C6E93B6FC6D6D15036D5F03FF4B816D6E023F15F86D
-02E091B812FC010302F813036D02FF133F6D92B612EF023F178F6EEEFE0F020716F80201
-16E0DA003F15800307ECFC00DB003F018003F8C7FC667F79FD74>I<93380FFFF04BB67E
-030F15F8037F15FE4AB87E020717E0021F17F8027F8391B6C66C7F010302F8010F7F4902
-E00103804902800100804991C86C7F49496F7F49498190B5486F7F4B834884484A838548
-4A83855A4B18805A851CC05AA292CAFC4885A21CE0A3B6FCA292BAFCA51CC01C8092CDFC
-A57EA3817EA37EA2816CF21F80F33FC06C6EEF7FE0A26C6E17FF1CC06C6E5E6C6E4C1380
-6F5E6D6D4C13006D6E5D6D6E4B5A6D02F04B5A6D02FCEC01FF6DDAFF80010F5B6D03F890
-B55A6D6C91B712C0021F606E95C7FC020317FC020017F0031F16C003074BC8FCDB007F14
-F0040149C9FC53547AD260>I<943807FFF04CB512FE041F6E7E93B712E0030382030F82
-033F824B824AB5D8FE077F4AECF00F4A02C015804AEC001F4A5B4A494914C04A5B5E91B5
-FC495CA25E49701480A3494A6D1400725B725B725B9538007FE0070FC7FC96C8FCB1B912
-FCAAD8000702C0CAFCB3B3B3A7007FB812C0A9ECF83F4A7F79FE40>I<F303FE93B56C91
-383FFF80031F02FC91B512E04AB7D8C00314F00207DCF00F14F8021FEEFC3F027FDCFF7F
-14FC49BCFC491BFE49DAF00715C34991C76CEBFE034901FC021F13FC49496E13FE49496E
-13FF90B5486E028113FCA2484A6E6E13F84886F43FE0F40F80484A6E6EC7FCA34886AA6C
-62A36C6E4A5CA36C626C6E4A5CA26D6D4A91C8FC6D6D4A5B6D6D4A5B6D01FF027F5B6DDA
-F007B55A93B75A49604995C9FC02DF16FCD93FC716F0D97FC116C0DA801F02FCCAFC0300
-148001FF91CDFCA35A80A380808080ECFF8092B712F8F1FFF06C19FF1BE01BF86D19FE75
-7E6D86886D86886D866D866D86130F013F1B8090BDFC00031CC05A4891C9001F15E04801
-FCEE007F02F0170748491701487314F04A8487B55A87A56E606C1CE0A26E606C6D95B512
-C06E5F6C6D4D14806C6D4D14006C6D6C041F5B6C6E4C5B6C02F84BB55A6C02FF030F5C6D
-02FC0103B65A011F91B912806D97C7FC010319FCD9007F18E0021F1880020105F8C8FCDA
-001F1680DB003F02C0C9FC5F787AD269>I<ED7F8090B6FCB7FCAAC67E131F7FB3ACF1FF
-FE060FEBFFF0063F14FC4DB7FC050716C04D82053F824D829426FFFE018004819026E000
-7F7F048301806D7FDC87FEC77EDC8FF883EE9FF0DCBFE0804D83EEFF8094C8FC4C814C84
-A25EA25EA25EA45EB3B3A7B800FE90B812FEA9DAF87FEFFC3F677E78FD74>I<147F9038
-03FFE0010F13F8497F497F497F90B67EA24881A34881A76C5DA36C5DA26D91C7FC6D5B6D
-5B6D5B010313E0D9007FC8FC91C9FCB0ED7F8090B6FCB7FCAAC67E131F7FB3B3B3A4B812
-F0A9ECF07F2C7F78FE3A>I<ED7F8090B6FCB7FCAAC67E131F7FB3AD963A3FFFFE3FFC98
-B5FCA9070102C0C7FC51C8FC4F5B4F5B4F13E0073F5B4F5B96B5C9FC4E5B060713F84E5B
-4E5B4E5B95B5CAFC4D5B4D5B4D5B051F13E04D5B4D5B94B5CBFC0481801687048F80049F
-8004BF8093B67EA285858586A2053F80DCFC1F804C6C8004F0814C7EDC8003804C6C8086
-8372807280728087847280728072808784738073808873808573807380887380B800F001
-7FEDFFE0A902F0F0FC1F637E7AFD6E>107 D<ED7F8090B6FCB7FCAAC67E131F7FB3B3B3
-B3B3ACB812F8A9ECF07F2D7E78FD3A>I<DB7F8091263FFF8093380FFFE0017FB50203B5
-00FC93B6FCB7021F02FF030715C0067F03C0021F15F04DB700F0027F15FC05077049B77E
-051F700107824D7049834D01006E49D9C03F80DDFFF0013F9128803FFC000F80048101C0
-010F9126C07FF0010380048390C7EEFFC0D8003FDA87FC6E02E190C76C80010FDA8FF8EF
-E3FE6DDA9FF06EDAE7FC804DDDF7F883DCBFC0EFFFF0DCFF806094C86C4B81A17E4C614C
-96C9FCA24C60A34C60A34C60B3B3A7B9013FB8D8C00FB812F0A9DAFC3F060F18C3A45279
-D1AF>I<03FFEDFFFE90B6020FEBFFF0B7023F14FC4DB7FC050716C04D82053F824D8294
-26FFFE01804C9026E0007F7F4C01806D7F4C48C77EC66CDA0FF883011F4A5A6D4A48804D
-834C5A4CC8FC4C814C84A25EA25EA25EA45EB3B3A7B800FE90B812FEA9DAF87FEFFC3F67
-5278D174>I<933803FFFC93B612F0030715FE033FEDFFC092B812F0020717FE4A83023F
-18C04ADA801F8049B526F8000114F84902E06D6C7F490280021F7F4949C800077F49496F
-8049496F8049496F8090B5854B824887484A707FA248874B824887A2481C80A292CA7E48
-1CC0A3481CE0A5B61AF0AE6C1CE0A56C6E4C14C0A36C1C80A26C1C006F5E6C63A26C6E4C
-5BA26C6E93B55A6C636F5D6D6D4B5C6D6D4B5C6D6D6C021F5C6D02E0027F91C7FC6D02F8
-49B55A6D9126FF801F5C010092B712F06E60021F188002074DC8FC020117F86E6C16E003
-0F93C9FC030015F0040301FCCAFC5C547AD269>I<DB7F80903803FFF890B6027FEBFFC0
-B70107B612F8053F15FE94B812C0048383048F17F804BF17FE93BAFCDEF0078195C78105
-F8023F80C66C03C06E80011F4B0207806D4AC86C804C814C844C6F804C824C1980871EC0
-871EE0871EF0A3871EF8A4871EFCAF5114F8A51EF063A21EE0631EC0A2511480A2511400
-827093B55A505C82704B5C04FF4B5C71021F5C714A5C05F04A5C05FE0103B6C7FC9426FF
-C01F14FC95B75A04CF17E004C75F04C194C8FCDCC07F15F8050F15E005014AC9FCDD001F
-13C095CCFCB3A6B812FEA9ECF87F66757AD174>I<DA01FEECFFE048B5020713FEB6021F
-6D7E057F14E094B67E4C15FC4C815E4C01877F93261FFC0F148017F8EE3FE0C66C4A4848
-14C0011F15806DECFF00A26F5A5EA24C6D1480A27214005E725B4C6D5B9538007FF0F10F
-8096C8FC5EA65EB3B3A2B97EA9ECF07F4A527AD156>114 D<92B500C0137C021F9138FC
-01FE91B71287010716FF131F5B90B9FC48ECC0014801FCC7121F4801E0140348498091C9
-FC48177F49163F003F171F49160F127FA2180712FF7FA27F806E6F5A02F092C8FC14FEEC
-FFC015FE6CECFFF8EEFFE017FC6CEEFF8018E06C17F818FE6C717E6C846C846C846C846D
-83011F836D83130301001880141F020317C0EC001FDB007F15E01603EE001F050314F017
-00D87F8082486C8284846D82A2847FA26D18E0A27FA26D4C13C07F6E4B1380806E4B1300
-02F85D6EEDFFFEDAFF8001075B03F8017F5B92B75A61198001F094C7FCD9E03F15FCD980
-0F15E026FE000192C8FC007CD9001F13E0445479D253>I<ED3FF0A8157FA515FFA35CA3
-5CA35C5CA25CA25C5C91B5FC5B5B5B5B133F90B912F81207BAFCA8D8000302F0C9FCB3B3
-A3953801FF80AF4E13006D80A2606D6E5C180F6E6D495A70133F6E9138C0FFF86E91B55A
-616E5E02035E6E93C7FC6E6C5C031F14F8030314E09226003FFEC8FC41757CF351>I<DB
-7FC0EF3FE090B6047FB5FCB792B7FCAAC66CEF003F011F180F6D84B3B3A862A362A362A2
-6D6097B6FC616D6E5C4F816DDD0FFB14FC70DA3FF3ECFFFE6D6EECFFE36E9026FF800713
-C394B612836E1703020F16FE6E16F8020116F06E6C15C0030FECFE00DB003F01E04BC7FC
-675378D174>I<B500C1B500F0913A1FFFE3FFE091B694B5FCA9D8000F02E0C9001F90C7
-FC755A6D6E4C5AA26D6E4C5AA26D6E4C5AA26D6E5F1BFFA26E6D4B5BA26E6E4A5BA26E6E
-4A90C8FCA26E6E4A5AA36E6E4A5AA26E6E4A5AA26E6E4A5AA26E6E4A5AA2836F4B5BA26F
-6E485BA26F6E4890C9FCA26F6E485AA26F02F05B191FA26F6E485AA26F6E485AA26F6E48
-5AA27090B55AA3705DA27092CAFCA2705CA2705CA2705CA3705CA2705CA2715BA2715BA3
-7190CBFC715A715A63527BD06E>I<B50083B527E03FFFE1B500E0903A0FFFF8FFF091B6
-92B693B5FCA9D8001F0280C700030280C80007EBC00070755B6D716E94C7FC7063886D71
-4E5A826D726D5E7092B5161F886D545A705C6D745E704A187F886E535A705C6E735E7149
-5F896E525B715B6E7492C8FC71D93FF95E896E05F05F71017F170F6E745C7149486C151F
-896E4D6C5E7148183F6E745C4E496C157F05FE836F4C6C5E714818FF896F4A486D4A5B06
-8F17816F4B6D5E06DF17831EC36FDAFFF86D02C790C9FC1EE76F4B6D5D1EEF1EFF6F4B6E
-5CA26F4B6E5CA36F4B6E5CA27091C86C5CA370496F5CA270496F5CA370496F91CAFCA270
-614E81A27049705AA27049705A706CCAEA0FE08C527BD097>I<267FFFE1B500F0903B07
-FFFE3FFF8091B693B6FCA9D8000102FCC8003F01E0C7FC6D6E6F90C8FC6E6D4B5A71147F
-6E606E6E4A5A6E6E495B6E6E495B6E6E495B71495B6E5E6E6E92C9FC6F6D495A6F6E485A
-72485A6F02C15B6F02E35B6F14F76F91B55A6F5E97CAFC6F5D705C705C8261705C708070
-807080858285864C814C814C815E4C814C814D804C48804C487E4B496C804B496C804B49
-6C804B6E800580814B497E4B486D804B486D804B486E7F4A49834A824C6E804A496E804A
-496E804A90C8814A48814A486F8049486C6F80B700F8023F91B512F8A9D9FE1FF0FE1F65
-517CD06E>I<267FFFE0B500F8913A0FFFF1FFF091B694B5FCA9D8000702F0C9000FEB80
-007590C7FC6D6E4C5AA26D6E4C5AA26D6E4C5AA26E6D4C5AA26E6E4B5AA36E6E4A5BA26E
-6E4A5BA26E6E4A90C8FCA26E6E4A5AA26E6E4A5AA36E6E4A5AA26F6D4A5AA26F6E495AA2
-6F6E485BA26F6E485BA36F6E4890C9FCA26F6E485AA26F6E485AA26F6E485AA2706D485A
-A3704A5AA2705DA2705DA27092CAFCA2705CA3705CA2705CA2715BA2715BA2715BA3715B
-A27190CBFCA24D5AA24D5AA260173FA2D801FE4B5A3807FF80001F01E04A5A487F4C5B48
-7F4C5BB57E4C90CCFCA24C5A161F4C5A4C5A4A495A6C5C4B5BDAF00F5B273FFDE03F5B26
-1FFF41B5CDFC91B55A6C15F86C5D6C5D6C15806C6C49CEFC011F13F0010390CFFC64757C
-D06E>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmbx12 14.4 26
-/Fk 26 122 df[<F003F84E7E4E7E183F187FEF01FF1707171F177F4CB5FC160F167F03
-07B6FC92B7FC143FBAFCA7169FEDF81F150014C0C9FCB3B3B3B3B3B3AC001FBEFCAA04E0
-C71201>96 157 109 284 134 49 D[<94387FFFE0041FB612C04BB712FC030FEEFF8003
-3F17F04AB912FE0207727E4A19E0023F19F891BB7E491AFF499126FC003F82010F028001
-03824901FCC86C15F04901F0031F814901C06F8190B5C9000381484970814A70824801F0
-718148498374814801FE7181486D6C7081814802F07081816F70815A6F7081A26F711580
-B7FC821FC087A41FE087A26C92CAFCA36C5CA26C5C6C5C6C5C6C5C6C5C6C6C90CBFCD91F
-FC4E15C090CDFCA31F8063A21F0098B7FC66A2505DA2505DA266505DA2505D665092C7FC
-505C65505C97B6FC654F5D4F15809AC8FC4F5C4F5C4F5C644F5C4F148096B6C9FC4E5C63
-4E14F04E5C4E5C4E91CAFC4E5B4E5B95B512F04D5C4D5C97CBFC4D5B4D5B4D13F04D5B4D
-49EEFFE094B55A4C91CAFC4C13FC4C494C13C04C5B4C5B4C5B4C90CAFC4C5A4B495F4B49
-19804B5B4B13C04B495F4B90CBFC4B5A4B5A4A01F0604C1A004A49604A49604A90CB000F
-B5FC4A90BCFC5C5C91BD5A5B5B5B5B5B5B496490BEFC5A5A5A5A5A5A4865A2BFFCA566A4
->107 157 115 284 134 I[<050FB5FC4CB612FE041FEDFFE093B812FC0307EFFF80031F
-18E0037F18F892BA12FE0203737E4A9126FC007F15E0021F02800107814A01F8C7000181
-4A01E06E6C8091B5C96C804901FC7080494970814901E070814B70814949864913F803FE
-7081496D7E70854980706F8190B6FC827085A25A82A96C4B61A26D4A5DA26D4A61A26D5C
-6D4A4B5D010391C9FC6D49629026007FF85E91CB5EA2505D66629BC7FC505C65505C97B6
-5A4F5D654F5D070F92C8FC4F14FC4F5C96B612E0060F5D051FB7C9FC043FB712FC4C16F0
-1BC050CAFCA2F2FFE01BFEF3FFC07017F093C86C14FC070714FF070115C0736C14F07480
-7414FE74807481748174818A74818A75808A751580A21FC0A27515E0A21FF0A21FF887A2
-1FFCA3EB0FFE90267FFFC01BFE90B57E000314F8488048804880A24881A24881A2B77EA2
-1FFCA41FF863A21FF05E7E4C1AE06393CA16C07E4B4D15806C5C4B1B006C4A94B65A15C0
-6C91CA485D6C01F84D5D6C01FE4D5D6E636C02C04C5D6D01F8043F5D6D01FE4C92C7FC01
-0FD9FFC04AB65A6D02FC020715F86DDAFFF0017F5D010092B912C06E62021F4FC8FC0207
-19F8020119E0DA003F95C9FC030717F8030017C0040F03FCCAFCDC001F49CBFC>111
-160 117 284 134 I[<52B47E527F527F527FA2527FA3527FA2527FA399B6FCA25181A3
-5181A25181A35181A25181A35181A25181A398B8FCA25083A35083A25083A35001BF81A2
-50013F81881BFE083F8388E07FFC82881BF808FF83884F01F083881BE04F85884F498389
-634F85894F90C7828962073F85894F4884896207FF85894E498589624E87894E49858A62
-4E878A4E90C9828A61063F878A4E48868A6106FF878A4D49878A614D898A4D49878BA24D
-49878B4D90CB828BA24D48888B4DBE7EA394C0FCA24C8BA34C8BA24C8B06C0CC7EA24C49
-898C4C90CD828CA24C488A8C4C488A8CA24C488A8C4B498B8CA24B498B8C4B498B8DA24B
-498B8D4B90CF828DA24B488C8D4B488C8DA24B488C4A6D88027FD9FFF88CBA00C094BDFC
-AA9126C0000F0BF8C71203>184 167 119 294 203 65 D[<99263FFFFEF007C0093FB6
-00F8EF0FE0080FB86C161F97B900F0163F070F06FE16FF077F726C5C0603BB00E05C060F
-08F85C067F08FE5C4DBD6C5B05070AE05B051F9426C0003F6E5B057F04E0C7000102FC90
-B5FC4CB748C9003F6D5A4C04E004076D5A040F93CB14C74C03FC063F13EF047F03E07290
-B6FC93B70080180703034BCC12014B4B854B03F0864B4B1A1F4B0380864B92CE7E92B648
-874A4B874A03F0874A4B885C4A4B884A4B884A92D07E5F91B68A494B89495D8F494B8949
-5DA17E495DA17E5B5F498E94D2FC90B78BA2485DA17E5AA25E488FA25A5EA2A17E5AA25E
-5AA16C13C0A190C7FCA35AA35EA4B7FCB3A27EA482A37EA57E70F87FC0A1EBFFE07EA382
-7EA27E7067A26CA113C0A26C81A15A7F7120807F71666DA11200836D6A71676D221F6D6F
-67A1123F6D6F545A6D816E575A71656E6F666E6F646E6F525B6E6F525B6E6F646E6F5290
-C7FC6E6F525A6F6E525A6F6F505B6F03E0505B6F6F505B6F03FC081F5B6F6F505B03006F
-6C96B5C8FC7003E006035B041F03FC060F5B7003FF063F5B040304E04CB512E07004FE04
-0F5C706CDBFFF092B65A051FDCFFC0011F4AC9FC050794B812F8050164716C1BC0060F98
-CAFC06031AFCDE007F19E0070F1980070006FCCBFC080F17C0E0003F03FCCCFCE1003F91
-CDFC>163 170 113 294 194 67 D[<B600FC037FB512FE92BAFCAAC8001F03F0C8FCB3
-B3B3B3B3B3B3B0BD12FEAA03FCC87E>87 164 122 291 100 73
-D[<BA00E097267FFFFC91383FFFFE07F899B8FC85A28585868686A286C86C7096C7003F
-02FCC7FC749826007FFEC8FC74765AA2868787878716FB04F98204F88287718183718271
-82887182718283718272818872827282847282728289728284738173818A738273828573
-8273828A738286748174828B7482748286748274828B7581758287758275828C75828775
-8276818C7682768288768276828D768288778177818E7782778289778277828E77827881
-8A788278828F78828A788278828F79817916808B7916C07916E0A112F07916F87916FC8B
-7A15FE7A15FFA113BF7A16FF8C8C8CA28C8C8D8D8DA28D8D8D8DA28D8E8E8E8EA28E8E8E
-8E8FA28F8F8F8FA28F8F8FA17E4B6C8B027FEBFFF8BA00FC88A17EA17EA17EA2A17EA17E
-A1137FA1133FA16D5A02F8C76C795A>191 164 119 291 210 78
-D[<94261FFFF8177C0407B600E016FE047F03FE15010303B800C01403030F05F8140703
-3F05FE140F92BA6C131F020307E0133F020F07F8137F4A7313FF027F9126F8001FECFF01
-91B60080D9007F14834902FCC8000714C74902F0030091B5FC4902C0163F4991CA120749
-4983494917004949844B181F90B585484A844B8448874B844888894891CDFC894888A24A
-864888A2895A89A31E7FB5FC801E3FA281A21E1F8181A2816F1A0FA28115FF6C8170735A
-04F096C8FC8216FF6C16E017FEEFFFE06C17FF19F06CF0FF801AF8F2FFC06C1AFCF3FFC0
-6C1BF86C1BFE767E6C1CE06D1BF8896D1BFF6D886D1CE06D886D886D886D886E876E886E
-88020788800200886F87031F871507030087163F040386EE003F05011A80EF001F060019
-C0190FDF007F17E01A07F2003F090716F01B01757E0A1F15F8888888887615FC89D83FC0
-87487E00FF8889A289A389A27FA289A220F87FA37F20F0A27FA26D5114E0A2806E1DC0A2
-6E501480806E626E1D00806E505B6F4F5B15E06F4F5B03FC96B55A6F606F6C4D5C04F04D
-5C04FC051F5CDCFF804C91C7FC05F84BB55A02CFDAFF8002075C0283DBFF8090B65A0201
-93B85A496C6C1AC049011F624901074FC8FC49010119F849D9003F6049020F1880490201
-4DC9FC90C9001F16F048040093CAFC007C050114E0>118 170 113
-294 149 83 D<4CB512FE93B712FC031FEEFFC092B912F8020318FF020F19C0023F19F0
-4A19FC91BB7E4992C7003F6E7E4902C0020781496E020015F0496E033F80706F80497280
-706F8086496E6F817481A275808A878AA2876D4A85A26D5C75806D5C6D5C6D5C6D5CDA3F
-FECAFCEC07F091CCFCA90703B7FC060FB8FC0507B9FC94BAFC160F93BBFC1507153F92B8
-EAC00F0207EEF000021F4BC7FC027F15F091B71280010303FCC8FC4915F0011F15C04992
-C9FC4914FC90B65A485D485D485D5E4892CAFC5A5D485CA25A5DA3B65AA463A463816C62
-A26F94B6FC6C616F5E6C6EEE07FD6C6F030F8170DB1FF9816C6FDB7FF115E06C6F912601
-FFE115FF6C03FC020701C0EEFF806CDBFF80013F4917C06DDBF003B5486C16E0011F92B6
-5A6D4E7F010306F07F010006C07F023F4D1303020704FCC8FC020004F0033F15C0030F03
-8003011580DB001F01F0CEFC7B6D79EB83>97 D[<923801FFC0013FB6FCB8FCABEA001F
-13037FA27FB3B3A697380FFFF84FB612E0071F15FE96B812C0060317F0060F17FE063F71
-7E95BA7E05C319F005C7DAE00115FC05DF49C7001F8094B500F002078007800201814EC9
-6C14E006F870804E708006C070804E8295CA6C804D71804D71814D874D844D878A8D8D8A
-8DA37880A28DA32280A28AA222C0A522E0B122C0A6228066A22200A369A26669A2696669
-666971637195B6FC535D7198C7FC714D5C715F724C5C724C5C724C5C04FD01F84C5C04FC
-6D4BB612804C6CB44B92C8FC4C6C01C0021F5CDCE00F01F891B65A4C6C9026FF800F15F0
-4C6C91B85A0500198093C76C4DC9FC4B021F17F84B020717C04B020194CAFC4BDA003F15
-F84B030792CBFC91CB003F13C0>131 167 120 293 149 I<95387FFFFE051FB612FC4C
-B812E0041F17FC047F17FF0303BA12C0030F19F0033F854B854ABB7E4A03F8C780020F03
-80021F14804A4AC84814C04A02F85D4A02E018E091B64892B6FC4992C9FC494A4B15F05B
-495C495C495CA2495C90B6FC5E487315E05E487414C0A24892CA6C148075140048745B75
-5B484A050113F09838003F8099C8FC5AA4485CA6B6FCB07EA381A37EA36C80A37E82A26C
-F407FC70F00FFE7EA26C6F181F1EFC6C6F183F6D6E19F81D7F6D6EF0FFF06D806D6E4D13
-E0715E6D6F4C13C06D6F4C13806D03F84C13006D6FEE7FFE6E02FFED01FF021F03C00207
-5B6E03F8023F13F06E9226FFC003B55A020193B75A6E62033F4EC7FC030F60030318F003
-0018C0041F4CC8FC040316F0DC003F1580DD007F01E0C9FC676D77EB78>I[<F7FFE00A1F
-B6FC097FB7FCABF3000F1C0188A289B3B3A695B57E053F14FC0403B712C0041F16F093B8
-12FE0303EFFF80030F18E0033F18F092BA12FC4A9226FE003F13FE020703E0010390B7FC
-4A92C87E4A02F8150F027F4A150391B600C081494B6F7E4992CA7E494A83494A834C8349
-4A834986494A835E90B6FC5A5E5A93CCFC5AA25A5DA25AA35AA25D5AA6B6FCB17EA57EA2
-81A27EA37EA26C80A37E827E6C63705F7F6D6E5F646D6E5F6D6E5F6D6E5F6D6E4CB7FC6D
-6E4C826D6F5D6E6E031F826E02F0037F16FF6E02FC4A4848EEFFE06E02FF020F5B0203DB
-F001B55A6E92B712E06E6C60031F1800030717FC030117F06F6C16C0040F4BC7FC040015
-E0050301FCC802FCC8FC>131 167 119 293 149 I<95387FFFE0053FB67E0403B712F8
-041F16FF047F17C00303B912F0030F18FC033F18FF92BB12C04ADBF80181020792268000
-1F804A02FCC7000714FC023F02F00201804A4A6E8091B600806F804992C9121F494A7080
-494A85494A708049854C7080495C4973805E90B6727F485D8A488793CB15805A885A4B1B
-C0A25A7614E0A25AA25DA25A1FF0A388B6FC92BDFCA61FE01FC003FCCFFCA77EA5817EA3
-7EA2817EA27E70F11FC0F63FE06CF57FF0826C1DFF6C1EE070606D805313C06D6E606D6E
-1A806D6E4E130070606D6F4D5A6D6F177F6D6F4C485A6D03F84C5B6E6E040F5B021F02FF
-043F5B6E03E092B55A6E03FC02075C0201DBFFF090B6C7FC6E93B712FC033F61030F19E0
-0303198003004EC8FC041F17F8040717C0DC007F4BC9FC050715F0DD000F01FCCAFC6C6D
-79EB7B>I<F603FF0C3F13C094263FFFFC4BB512F0040FB600F002078093B8021F800307
-05E0017F80031FDDF801B7FC037FEFFE034ABA00871680020719EF4A96B500C114C0023F
-4AC66CEDFE034A02E0010715F891B6C815E0494A6F14804902F8031F14C0494A6F14E049
-1BF0494A6F6E6C1480494A6F14FC78140049756D5A4C6F705A90B673EB0FF09CC8FC4889
-93CAFC4889A44889AC6C65A46C65705D6C9AC9FCA26D63705D6D63A26D6E4B5C6D6E4B5C
-6D636D6E4B5C6D02FE037F5C6D6E92B6CAFC6E02E001075C05FE017F5C91BB12F049621C
-8049486C4DCBFC902607FC1F17F8030717E0010F010094CCFC4A010F15F0011FDA003F01
-FCCDFC94D0FCA2133FA4497EA380A28081818115F815FF6D91B812F8F3FFF8F4FFC01DFC
-6D1BFF1EE06D1CF81EFE6D881FC06D898B6D896D896E886E886E894A8949BFFC01078A13
-1F017F8A90C0FC4892CA001F824802F0EF003F484A1801480280DE003F804891CD120F4A
-86481C015C4876808AB55A8AA76E636C67A26E98B5FC6C676E626C6E4F5CA26C6E4F5C6C
-6E4F5C6C02F8073F5C6C6E4F91C7FC6C02FF4EB55A6D02C005075C6D02F8053F5C6D02FF
-4CB65A010703F0031F15C06DDBFFC00107B75A010093B948C8FC023F1BF8020F1BE00203
-1B80DA007F07FCC9FC030F19E003004ECAFC04031780DC00030380CBFC7A9D79EC86>
-103 D[<EC07FCEC1FFF027F13C049B512F04980498049804980A24981A24981A290B77E
-A96D5DA26D5DA26D92C8FCA26D5C6D5C6D5C6D5C6D6C13C0021F90C9FCEC07FC91CBFCB3
-A7EEFFC0011FB6FCB8FCABEA001F13037F7FB3B3B3B3A8BA1280AA9138F00003>57
-167 118 294 75 105 D[<923801FFC0013FB6FCB8FCABEA001F13037FA27FB3B3A70907
-B5398001FFE09BB6FCAAE1003F02FCC8FC0A07148054C9FC525B5213F0525B99B55A515C
-5149CAFC515B091F5B515B515B98B512805091CBFC08075B505B5013F0505B97B55A4F5C
-4F49CCFC4F5B4F5B073F5B4F5B96B512804E91CDFC1807604E804E8095B67E05C18117C3
-05C78105CF8194B77EA2878888A206F78106E38106C381188106008105FC6D804D6D804D
-834D7F05806D8173818985738173818986748074818A867481748174818A86758075808B
-87758175818B87758175818B8876808C5215F0BA6C013FB91280AA9126E000034EC7FC>
-129 166 120 293 142 107 D<DCFFC092263FFFE095380FFFF8011FB60303B66C94B612
-E0B8033F03F0040F15FC97B700FC043F15FF070304FF93B812C0070F05C0020317F0073F
-71020F834F714A834EB96C027F834EDA803F6E91B5D8E00F804E9026F0000F6E499026FC
-0003814E018001036E4901E00100814E48C76C6F4801806E80D8000FDC3FF86E4C48C87E
-01014C48724848846DDCFFC06F9126E03FF06F8005C1494F5A6E02C390C94C5ADDC7FE70
-02F1496F804E98C9FCDDCFF8F1F3FEDDDFF0DFFFFC854E62DDFFC0704B82A24E5085A295
-CA5EA24D63A24D98CAFCA34D62A54D62B3B3B3A3BA00F8013FB900FE010FBA1280AA02F8
-C74EC7003F953880000FD16B77EAE0>109 D<4BB46C92387FFFC0013FB6030FB512FEB8
-037FECFFC04FB712F0070716FC071F16FF077F834EB912E04E844E49C6814E01E0131F06
-3F90C76C80DE7FFC6E80D8001FDCFFF06E80010317C06D0381496E81058390C8FC6DDB87
-FE85DD8FF881A2DD9FF085EFBFE060DDFF8082A295CA81A25F5FA35FA35FA55FB3B3B3A3
-BA00E0017FB912F0AA9126F0000106F8C7FC846B76EA95>I<95383FFFF8050FB612E094
-B712FE040FEEFFE0043F17F84BBAFC030719C0031F19F0037F19FC92B626F8003F800203
-038001036E7E4A02FCC86C80021F02F0031F14F04A02C00307804A4A6F8091B6C96C8049
-02FC706C7F494A71804989494A7180494A7180A2494A718049894C8390B6874892CB6C80
-A2481F80A2484A7215C0A2481FE0A3481FF0A24B85481FF8A4481FFCA6B61DFEB06C1FFC
-A56C1FF86F96B6FCA36C1FF0A36C1FE06F606C1FC0A26C1F80705F6C1F00A26C6F4D5CA2
-6D6E4D5C6D656D6E4D5C705F6D6E4D5C6D6E94B65A6D6E4C5D6D6F4B92C7FC6D03E0030F
-5C6E6E4B5C021F02FC037F14F06EDAFF800103B65A6E03F8013F5D020192B9C8FC6E6C19
-FC6F61030F19E003031980DB007F05FCC9FC040F17E0040194CAFCDC000F15E0DD003F01
-F8CBFC776D79EB86>I<922601FFC0913807FFFC013FB692B612F0B8020F15FF077F16C0
-4EB812F8060F17FE063F717E95BA12E005C119F805C78505CFDAE0038194B548C76C6E7E
-07E0020F81D8001F05806E8101034CC80001816D04F86F8106E070806D4C70804E70804D
-CA7E4D71814D874D834D877781898DA27880A27880A38D8AA22280A28AA222C0A48A22E0
-B122C066A52280A2662200A3545CA3545CA2699BB6FC696569714D5DA2714D5D714D92C7
-FC7162715F724C5C724C5C7293B65A06F84B5D7203075D06FF4B92C8FC07C0023F5C05EF
-01F849B65A05E79026FF801F15F005E391B85A05E01980724DC9FC061F17F8060717C006
-0194CAFCDE003F15F807071580DF003F01C0CBFC97CEFCB3B0BA12E0AA9138F000018399
-78EA95>I<DB03FF913801FFE0013FB6021F13FEB8027F6D7E4EB612E0060715F84E814E
-15FF4E16804E16C095B5000714E04DEBF00F4DD9C01F14F01980D8001F4B48484814F801
-034B5A6D4C4914FC4D5A6D153F6060177F604DC7FCA24D6E14F8A27414F05F7414E07414
-C04D6E14807414009738007FFC4DED0FE098C8FCA45FA65FB3B3B0BA12FEAA9138F00001
-5E6B78EA6E>114 D<93B500F0143E033FDAFF8013FF0203B7EAF003020FEEFE0F027FEE
-FFBF49BBFC13075B499138C0003F017F01F8C7120390B500C0EC007F4891C9121F02FC16
-0748498248491600485B4A83488586485BA2865AA286B5FC80A28080A202FC715A6E94C8
-FC6E7E15E015FCEDFFC06C15FF17F8EFFFE06C17FF19E06C18FCF1FF806C19E0866C19FC
-6C19FF6C866C866D19F06D856D856D850103857F6D6C1980021F19C01407020019E0031F
-18F01503DB001F17F8EE007F1701DD000F15FC1800193F070F14FE1903D83FC01700486C
-8400FF85866D84A286A27F867F1CFCA27FA26D1AF86E5FA26E19F0806E4D13E0806E4D13
-C06E5F6E4D138003C093B512006F03035B03FC030F5BDBFF80027F5B04F8010FB55A93B8
-5A02BF60D9FE1F95C7FCD9FC075FD9F00117F8496C6C16C00180011F93C8FC90C7000115
-F0007CDA000F01FCC9FC576D77EB6A>I[<EE1FFCA8163FA6167FA416FFA45DA25DA35DA2
-5D5DA25DA25D92B5FC5C5CA25C141F5C5C91B6FC1303130F017F92B8FC0007BCFCBDFCA9
-C7001F02FCCAFCB3B3B1F37FF0B31BFF6E19E083A25013C080715C6E1980725B6E190072
-5B6E6F495A6F02F8EB7FFC6F9139FF01FFF86F92B5FC6F5F6F5F6F5F030094C7FC705D04
-1F15F804035DDC007F1480050101FCC8FC>84 153 123 279 105
-I<DCFFE0F17FF0013FB6051FB6FCB8047FB7FCABD8001FF1000F01031A016D86A26D87B3
-B3B3A49AB6FCA464A364A2648064A2646E6E5E646EF1FFBF51826E4E133F71DB07FE816E
-6EDB1FFCEDFF806E6EDB7FF8EEFFF0716C903801FFF06E03F8011F13E06E92B712C0033F
-18806F1800030717FC03015F6F6C16E0041F93C7FC040115FCDC000702C04CC8FC846C76
-EA95>I<267FFFE00107B56C91267FFFE0EB3FFF91B894B7FCAAC7001F92C9000103C0C7
-FC6E6FDB001F01E0C8FC6E6F606E6F4C5B5390C9FC6E6F5F6E6F4C5A6F6E4B5B6F6E4B5B
-646F6E4B5B6F6F4A5B6F6F4A5B6F6F93CAFC734A5A6F4E5A6F6F5B706E495B706E495B70
-6E495B65706F485B706F4890CBFC706F5A706F485A08F15B7003FB5B7191B55A715E715E
-64837193CCFC715D715D63837280728072807281A27281728172814E81604E814E81884E
-826095B87E4D834D01F9814D01F0814D5B4F6C804D496C804D496C804D6E814D48834C49
-7F4C496D814E6D814C496D814C496E805E4C496E804C90C86C804C486F814D6F814B5B4B
-496F814B496F814B71814B4970804B5B94CA6C804B4871804B4871814A49718102076D87
-49B66C82B800FE0307B912F8AA9026FE00079738C0001F856A7CE98E>120
-D<267FFFE0010FB56C923B3FFF8003FFC091B895B6FCAAC703F8CB6C49C7FC6E090713E0
-71725B6E515B836E5190C8FC836E515AA272173F6E64846E515A846E515A846E505B846F
-4F5BA2725E6F63846F4F90C9FC846F4F5A856F4F5A856F4F5AA27315FF6F62856F4E5B85
-704D5B85704D5B85704D90CAFC8564706086704D5A86704D5A86704D5A86704C5B1AF871
-4B5BA2745A715F1AFE714B90CBFC1AFF714B5A1B9F71EDBFFC1BFF715EA3715EA2715EA2
-725DA2725DA27292CCFCA3725CA2725CA2725CA2725CA2725CA3735BA2735BA27390CDFC
-A262A24F5AA24F5AA219FF62A24E5BA24E5BEB3F802601FFF04B5B000713FC486D4B90CE
-FC487F486E5C6148804E5A187FB66C5D18FF614D5B5F4D5B615F6C4A4990CFFCEF7FFE4B
-495A6C4B5BDB00075B6C017E011F5B02DC017F5B6CD9F803B55A6C90B7D0FC6C5E6C16F8
-6C5E6D15C0011F92D1FC010714FC010014E0DA1FFED2FC82997BE98E>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmr12 12 16
-/Fl 16 122 df<EA03F8EA0FFE487E4813804813C014E0B5FC14F0A214F8A414FC7EA27E
-7E6C137CEA03FCC7FCA714FC14F8A41301A214F0A2130314E0A2130714C0130F1480131F
-A2EB3F00133E137E5BA2485A485A1207485A5B485A48C7FC121E120C163B6F9336>44
-D[<EE1FFC0303B512E0031F14FC037F14FF4AB712C04AD9F0077F020FD9800013F84A48
-C7EA3FFCDA3FF8EC0FFEDAFFF06E6C7E49496E7F49496E7F4B804990C96C7E4948707E49
-48707EA24948707EA24948707E01FF85A24849707FA34849707FA24886A348864A82A348
-86A44886A391CB127FA24886A9B51A80B3AE6C1B00A86E94B5FC6C62A66C62A46C6D4C5B
-A36C62A36C6D4C5BA36C626E5E6C62A26D6C4C90C7FCA26D6C4C5A011F606E163F010F60
-6D6C4C5A6F15FF6D6D4A5B6D6D4A5B6D6D4A5B6E6C4A90C8FCDA1FFEEC3FFC6E6C6CEBFF
-F86ED9F0075B020190B612C06E6C92C9FC031F14FC030314E09226001FFCCAFC>81
-136 120 259 98 48 D[<923807FFE0037F13FF4AB612F0020F15FC023F15FF4A16C049
-B812F049D9F007804990C76C13FED90FFC020F7FD91FF0020380D93FC06E8049486E6C7F
-49C96C7F4848707F49707F48488248488449707F000F83491980001F834919C0003F8490
-CB14E0855A01FC19F013FF6E82B57E801BF88085A66C5BA26C5B6C495E6C90CAFC6C4819
-F0EA00F090CBFCA24F13E0A34F13C0A396B51280A24E140062A24E5BA24E5B4E5B626062
-4E5B4E90C7FC614E5A4D5B614D5B4D5B4D5B96C8FC4D5A4D5A4D5A4D5A4C5B604C5B4C90
-C9FC4C5AEE1FF84C5A4C5A4C5A5F4B90CAFC4B5A4B5A4B5A4B5A4B5A4B5A4B4816F893CA
-FC4A5A4A48EE01F04A5A4A5A4A5A4A5A4A5A4ACA12034A18E0495A495A49481707495A49
-5A4948170F017ECB13C04918FF90BBFC5A5A5A5A481A805A5ABCFCA41B00A3>77
-132 118 259 98 50 D[<F107C04F7E191FA2193F197FA219FF60A26060A260A26060A2
-6095B5FCA25FEF03F7A2EF07E7EF0FC7A2EF1F87EF3F07A2177E17FCA2EE01F8EE03F0A2
-EE07E0EE0FC0A2EE1F80EE3F00A2167E5EA24B5A5E15034B5AA24B5A4B5AA24BC7FC157E
-A25D4A5AA24A5A4A5AA24A5A4A5AA24AC8FC147EA25C495AA2495A495AA2495A495AA249
-C9FC133E137E5BA2485A485AA2485A485AA2485A48CAFCA2127E5ABD12FEA7CB000F01E0
-C7FCB3A54E7FA24E7F0503B67E047FB812FCA7>87 134 123 261
-98 52 D[<B700F00A07B712C07064A27064A27064A2D8000710F8C7FC9027007F7FFF0A
-7D1480023F9EC8FCA26E6C6D09F95BA26F6DF201F1A36F6DF203E1A26F6DF207C1A36F6D
-F20F81A36F6DF21F01A26F6D1A3EA3706C1A7CA3706D19F8A2706DF001F0A3706DF003E0
-A3706DF007C0A2706DF00F80A3706DF01F00A3706D183EA2716C60A3716D5FA2716D4C5A
-A3716D4C5AA3716D4C5AA2716D4C5AA3716D4CC7FCA3716D163EA2726C5EA3726D5DA372
-6D4A5AA2726D4A5AA3726D4A5AA3726D4A5AA2726D4AC8FCA3726D143EA2736C5CA3736D
-5BA3736D485AA2736D485AA3736D485AA3736D485AA2736D48C9FCA373EBFE3EA3746C5A
-A2745BA3745BA24A6C705BA24A7E4A6C705B496D537F497F011F01FF70494C8090B600E0
-0A7F14F8B800E06E90C8000FB912C0A3745AA31B7C>162 136 120
-263 179 77 D[<BC12E01BFF1CF01CFE767E1DE01DF8D800074AC8000314FED9007F01F8
-DB001F7F6E49040314C0E1007F7F6E071F7F767F0A037F767F767F777F8B777F898B777F
-A28B898BA38B89A32080AB2000A36567A267A2535BA2676567535B65679AB5C7FC525B0A
-075B525B0A3F13E0525B0903B55A091F49C8FC0803B512F893BA5A1DC052C9FC1CF01C80
-09E0CAFC04F0CFFCB3B3AF4A7FA24A7F0107B612C0B912FEA7>113
-136 120 263 133 80 D[<BB12F0F2FFE01BFEF3FFC01CF81CFE767ED800074AC8003F14
-E0D9007F01F8030114F86E49DB001F7F090713FF6E060180756C13E00A1F7F767F767F76
-7F767F888B777F8B898BA2777FA28BA289A28BAA67A26567A2676567A2535B679AB5FC52
-91C9FC66525B525B5213E00A3F5B525B514848CAFC09075B093F13F050B512C0083F91CB
-FC93B912F81CE051CCFC871CC004F0C814F0080F13FC080113FF746C7F7513E0090F7F75
-7F757F757F757F767FA2767F8A888A888AA3888AA78AA98AA8223879147CA288A4766E14
-FC22F8884A7F776D13014A6D1DF00107B600C0711503B900FE707F77ED07E0776D14C077
-6D130F776DEB3F80779039FFC0FF000C3FEBFFFED1000F5C0C035CE4007F13E00D031380
->134 140 120 263 144 82 D<92380FFFC04AB512FC020FECFF80023F15F091B712FC01
-03D9F8017F4990C7383FFF80D90FF8020F7FD91FE002037FD93F806E7F49C97FD9FFE06F
-7E6E6F7E486D826E6F7F486D816E83727FA3727FA36C496F7FA26C5B6D5A6D5AEB0FC090
-CAFCA8183F4CB6FC163F0303B7FC153F4AB5EAFE0102071480021FEBFC00027F13E049B5
-C7FC010713FC4913F04913C0017F5B90B5C8FC4813FC485BA2485B485B5A5C485B1C1F5A
-91C9FCA3485AA260A460A26D5E7E606E151E6C94263E7FFC133E6E157C6C17F86C6D0201
-6D6C137C6C6DDA03F06D13FC6C01FC91260FE01FEB81F86C6DDA3FC0ECFFF06C6D6C9038
-FF800F6D9028F007FE000714E0011F90B5486D1480010703F06D1400010103C09038007F
-FCD9003F91C8EA0FE0020101F092C8FC585B78D862>97 D<93381FFF804BB512FC030FEC
-FF80037F15E04AB712F84AD9F80013FE020F01C0EB07FF4A90C87FDA7FFCED3FC04A48ED
-0FE049496F7E4949ED3FF84949157F49494B7E4990C85A49484B7F60495A13FF5C5A485B
-A248496F5BA248715B4A6F5B48725AF11F8096C8FC485BA35AA391CDFCA2B5FCAF7EA280
-A37EA280A27EA26C6DEF07C0A36C6D170F1B806C7F6C191F6E18006C616D6C173E1A7E6D
-6C5F6D6D5E6D6D15016D6D4B5A6D6D4B5A6D6D4B5A6D6DED3F806EB44BC7FC021F01C0EB
-01FE6E01F0EB07FC6E01FFEB7FF8020191B512E06E6C1580030F4AC8FC030114F0DB001F
-90C9FC4A5B79D857>99 D[<F33F80071FB5FC060FB6FCA7F0000719008686A286B3B293
-380FFF804BB512F0030F14FE033FECFF8092B712E002039138007FF0020F01F0EB0FFC4A
-0180EB01FE4A48C8127FDAFFFCED3F9F4901F0ED0FDF49496FB5FC4949814949814990CA
-FC495A86494883495A48855C5A5C5AA2485BA25AA25C5AA35AA291CBFCA3B5FCAF7EA380
-A27EA37E80A27EA26C7FA26C7F627E6C6D5F97B5FC6D7E6D6C5E011F5F6D6C4C806D6D5D
-6D6DDB1FDF7F6D6DDB3F9F7F6D01F8DB7F1F13FE6E6CDA01FE91B5FC6EB4EC07F86E01C0
-EB1FF002079039FC01FFE0020190B612806E6CECFE00031F14F8030302E016809226003F
-FEC701C0C7FC>96 140 122 265 108 I[<EC03F848B5FCB6FCA7C67E130F7F7FA27FB3
-B3B3B3B3B3A6497F497F011F6D7EB812F0A7>44 138 122 265 55
-108 D<DA07F0DA3FFFEFFFFC48B54AB500F00307EBFFC0B6020F02FC033F14F0053F02FF
-92B612FC4D03C04915FF932701FFC03F6D0107010080932703FC00076DD90FF0011F7FDC
-07F001016DD91FC001077FDC0FC06D6D49C76C7FC66C4A486E6C017E6E7F010F4AC8003F
-4A806D027C9326FF01F0826D4A6F4948157F03F10687836D4A60DBF3E06FD9CF806F7E4C
-95C9FC03F718DF4C17DE03FF7001FE8293C94A84A24B60A34B60A54B60B3B3AC496D4C6D
-4C7F496D4C6D4C7F013FD9FFC092B60303B512FCB8D8F003B8D8C00FB8FCA798587AD7A3
->I<DA07F0EC3FFE48B50203B512E0B6020F14FC053F14FF94B77E4CD9807F7F932703FC
-000F7FDC07F001037FDC0FC06D7FC66C4A486D7F010F023EC8127F6D4A826D4A6F7EEDF1
-F07FDBF3E06F7F5E15F75E03FF707F93C9FCA25DA35DA45DB3B3AD496D4C7F496D4C7F01
-1F6D6C92B512FCB8D8F007B81280A761587AD76C>I<933807FFC0047F13FC0307B612C0
-031F15F0037F15FC913B01FFFC007FFF020701E0010F13C04A90C700017FDA3FFC913800
-7FF84A486F7EDAFFE0ED0FFE49496F7E49496F7F4990C96C7F4948707F011F854948717E
-4948717EA24948717E48864A83481B804A83481BC0A2481BE04A83481BF0A3481BF8A291
-CB7E481BFCA5B51AFEAE6C1BFCA46E5F6C1BF8A36C1BF0A26E5F6C1BE0A26C1BC06E5F6C
-1B806E5F6C1B006C626E173F6D6C4D5A013F616D6C4D5A6E5E6D6D4B5B6D616D01E0030F
-5B6D6D4B90C7FC6D6C6CED3FFCDA3FFEEDFFF86E6C6C01035B020701E0010F13C0020101
-FC017F90C8FC6E90B65A031F15F0030715C003004AC9FC040713C0575B7BD862>I<DBFF
-FC14E0021F9038FFC00191B6EAF8030107EDFC07011FEDFF0F49D98007139FD9FFF8C713
-FF4801C0141F4890C8120748488149814848814848167F183F485A181F485A180FA200FF
-1707A46D1603A27FA27F7F7F6C6C6C92C7FC14E014F86CEBFF8015F86CECFFC06C15FEEE
-FFE06C16FC6C16FF6C17C06C83013F16F86D826D8201038201001780021F16C0020316E0
-DA001F15F01500040714F8EE007F051F13FC17070078040113FE00F882187FF03FFF6C83
-84A2847EA2847EA36D17FEA27FA26DEE07FCA27F6DEE0FF8A26DEE1FF06DEE3FE06D167F
-02C0EDFFC0D9DFE04A1380D98FF802071300D907FEEC3FFE903B01FFE003FFF8486C90B6
-5A48013F15C0486D92C7FC48010314F848D9003F90C8FC405B7AD84D>115
-D<B84AB612FCA7C66C02C0DA003F1480010F49C9000FEBFC006D49040313F06D725B1C80
-6D7290C7FCA26D616F5F147F6F5F1A016E607015036E60821A076E6070150F6E60821A1F
-6E95C8FC705D6E173E821A7E6E177C7015FC037F5E8219016F5E7113036F5E8319076F5E
-71130F6F5E83191F6F93C9FC715B6F153E83197E6F157C7113FC047F5C831801705C1883
-705C18C318C7705C18EF705C18FFA27091CAFCA2705BA3705BA2715AA3715AA2715AA371
-5AA260A2171F95CBFCA2173EA2177E177CA217FC5F16015FA216035FD803C01407D81FF8
-5D486C140F486C5DA2B54ACCFC5E163E167E167C16FC49495A007F4A5A49130749495AD8
-3FE0495AD81F80495A01E001FFCDFC390FFC07FE6CB55A00015C6C14E0013F1380D907FC
-CEFC5E7F7CD567>121 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmcsc10 17.28 2
-/Fm 2 81 df[<B596387FFFF891BCFCA9C7003F05FCD1FC020004FCD2FC033F15F06F15
-C06F5DA26F92D3FCB3B3B3B3B3AFA1EB0FF0A5A1EB1FE0A8A1133FA114C0A5A1137FA4A1
-1480A113FFA4A15AA3A15AA2A11400A15AA2A15AA2A15AA2A15AA2A1485AA2A112FF6BA2
-6B6B6B6B6B595BA0B5FC22036A221F6A9FB6FC4B1D03211F4B6F077F5D4B0A07B7FC92B7
-6C187F023F04F8053FB8FCC5B4FCA5A15BA5>164 196 113 323
-196 76 D[<C112C0F8FF8021FCF9FFC022F822FF23C023F023FE7D7EC7003F04F0CA001F
-8202000480DD003F15F0033F92CC000315FC6FE2007F806F4A081F6E7E0F03816F0B0081
-7C80101F14FC7C807C801001817C817D80A1808F7D807D80A1808FA1807D1580A2A115C0
-8FA115E0A2A115F08FA2A115F8A3A115FCA17EA4A115FEACA115FCA4A1B6FCA115F8A3A1
-15F0A25915E0A2A115C0A2591580A2591500A15CA2595C595CA2595C595CA0B65A585D58
-92C7FC585C585C5814F0107F5C57B65A0F0792C8FC0F1F5C0F7F14F80E07B65A0E7F15C0
-0D1FB7C9FC95BE12FC23F0238058CAFC22F09FCBFC21F00EFCCCFC96D4FCB3B3B3B3A24B
-81A24B814B8192B712F8023FEEFFE0BD12F8A991CB1207>175 196
-112 323 213 80 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmr17 17.28 27
-/Fn 27 118 df<BB12FEAD470D7FC457>45 D<137F3803FFE0487F487F487F487F487FA3
-B61280A76C1400A36C5B6C5B6C5B6C5B6C5BC66CC7FC1919699848>I[<F0FFFC051FEBFF
-E094B612FC040315FF041F16E0047F16F893B5D8C00F7F030301FCC713FF030F01E0021F
-13C04B018002077F4B90C86C7FDB7FFC03007F4B48707E02034970B4FC4A49707F4C824A
-49707F4A90CA6C7F4A48717F4A48717F4B187F02FF864949727EA24949727E49884B8449
-884B844988A24990CC6C7FA34948737FA201FF88A24A854889A34889A24A86481E80A448
-1EC0A24A86A2481EE0A6481EF0A54A86A2481EF8ACB51DFCB3B3A46C1EF8A86E62A46C1E
-F0A76C1EE0A36E62A26C1EC0A46C1E80A26E97B5FCA26C1E00A46C6D4F5BA36C65A26D6C
-4F5BA36D6D4E5BA26D646F606D64A26D6D4E5BA26D6D4E90C7FCA26D6D4E5A6D636F18FF
-6E6C4D5B6E6C4D5B6E62705E6E6D4C5B6E6D4C5B6E6D4C90C8FC6E6D4C5A6E01FE4B485A
-DB3FFF4B13F06F01C0020F5B6F01F0023F5B030301FC91B5C9FC6F9026FFC00F5B6F6C90
-B612F8041F16E004071680040003FCCAFC051F14E0050001FCCBFC>110
-195 118 317 132 48 D[<F40FC0527E1C3FA21C7FA21CFF63A26363A263A26363A26398
-B5FCA262A26262A26262A2F23FBFA2F27F3F1AFEA2F101FC19031AF8F107F0A2F10FE0F1
-1FC0A2F13F80A2F17F0019FEA24E5A4E5AA24E5AA24E5A4E5AA24E5A4EC7FCA218FEA24D
-5A4D5AA24D5A170F604D5AA24D5A4DC8FCA217FE16015F4C5AA24C5A4C5AA24C5AA24C5A
-4CC9FCA216FE4B5AA24B5AA24B5A4B5AA24B5A4B5AA24BCAFCA215FE4A5AA24A5A14075D
-4A5AA24A5A4A5AA24ACBFC5C5C495AA2495A495AA2495AA2495A495AA249CCFC13FEA248
-5AA2485A485AA2485A485AA2485AA248CDFC12FEC2FCA8CE6C01E0C8FCB3B198B57EA250
-805080080F14FF4FB712F84DBB12F8A8>120 192 123 319 132
-52 D[<1D7F537EA3527FA3527FA2527FA3527FA3527FA3527FA3527FA399B67EA35181A2
-5181A21CF90907811CF11CF0090F816489091F811CC089093F811C8089097F811C008951
-826308016E80A2517F08038363890807836389080F83638A081F83638A083F83638A087F
-8398C8FC506F80A25081070185628A070385628A070785628A070F85628B071F8562073F
-717FA25082077F85A297CA7E4F86618B060187618B060387618B060787618B060F876106
-1F737FA24F84063F87A24F84067F8796CCFC8C4E88608C050189608C050389608C050789
-60050F748095BEFCA24D89A34D89A3DD7F80CD001F7F95CEFC8D4D8A5F8D04018B5F8D04
-038B5F04077680A24D87040F8B5F8E041F8B5F8E043F8B5F8E047F8B94D0FC8E4C8C5E8E
-03018D5E03037880A24C8903078D5E8E030F8D5E8F031F8D5E8F033F8DA24B488AA17F15
-FF8F4A6D8D5C7D804A7F4A8F023F6D664A6D8D49B56C548001076E5480011F6E6C9AB7FC
-48B700F00A0F16F0B96C081FBA1280A8>185 203 122 330 199
-65 D[<BF12F0F6FFC01FFCF7FFC020F020FE7A7E21E0D800034BCA000315F8D9001F02F8
-DD001F14FE02074A06016E7EE4003F806E4A070714F00D01806E766C13FE0E1F7F0E0780
-7A800E0014F07B7F7B7F0F0F7F7B7F7B807B807B807C7F7C7F8E7C7F7C7F7C7FA17F8E7C
-80A17F8F7D7FA17F8FA17F7D7F8FA17F8FA180A27D80A27D80A2A16C7FA2A180A17EA180
-A3A16C7FA3A16C7FA3A11580A2A17EA115C0A4A16C14E0A4A115F0A4A17EA2A115F8A8A1
-15FCB3A4A115F8A7A115F0A2A15AA4A115E0A3A15AA115C0A4A11580A15AA2A11500A2A1
-5AA15CA2A1485BA3A15CA15AA15CA1B5FCA15CA2595CA2595CA25991C7FCA2595BA15B6B
-595BA15B6BA15BA0B55A6A585CA190C8FC585B585B585B6A585B9FB55A575C575C0F0F91
-C9FC575B575B9EB512F0565C0E075C565C0E3F49CAFC4A9AB55A0D0714F04A6E071F5C9C
-B61280021F6E060F92CBFC0103B600FE0503B612FCC212F021C056CCFC20F820C055CDFC
-1FE00CF0CEFC>174 196 114 323 203 68 D[<C5FCA5A17EA3D800034BCB1201D9001F
-02F8F0000102074AF1001F20016E4A747E211F6E0C078021018D8E221F8EA28E8E7C7FA2
-8E237FA3233FA2231FA17EA2230FA32307A47D7EA42301A5A17EA22300A51E3FA2A1127E
-A5A1C7FCA666A666A365A265656565656552B5FC1C0F0903B6FC94BBFCA805E0C81203F3
-000F1C01767E898989898989A289A38AA68AA5A1137EA4A113FCA49BCCFCA3A1EA01F8A6
-A11203A113F0A4A11207A4A1EA0FE0A4A1121FA3A113C0A1123FA3A1127FA2A112FFA113
-80A26BA26B6BA2591300A26B6B6BA0B5FC6A6A585B221F6A9FB5FC4A1E03211F4A6E1B7F
-0E07B65A021F6E1A7F0103B600FE077FB7FCC5FCA4A15AA4>159
-196 114 323 180 I[<BB12F0A8D8000104F8C7FCD9000F92C8FC6E5C6E5C6E5CA26E5C
-B3B3B3B3B3B3B3B3B3A64A80A24A804A804A8049B712F8BB12F0A8>68
-196 116 323 94 73 D[<0403BB1280A893C86C4BC7FC070115E0736C5C745C869AC8FC
-86B3B3B3B3B3B3B3AA133F3801FFE0487F000F13FC487FA2487F4880A2B67EA3505BA54B
-6062A26C91CA5C5C4A4D5B5C6C4994B5FC02C06101C0CB5C6C6C5F646C6C5F99C9FC6C6C
-4D5B6C6C616D5F00014E5B6C6C4D5B6D6C60D93FE04C5B6D6C93B55AD90FFC4B91CAFC6D
-6C03075B6D6C6C4A13F86D01F0023F5B6D01FE91B512C091273FFFE0075C020F90B648CB
-FC6E16F8020116E0DA003F92CCFC030714F8DB003F90CDFC>105
-201 115 323 135 I[<BB12FEA8D8000304FCD0FCD9001F92D1FC020714FC5F6E5CA26E
-5CB3B3B3B3B3B3FA01F8A5FA03F0A92207A223E0A4220FA5221F23C0A4223FA3227FA3FA
-FF80A269A269A269A269A26957130069A29EB5FC686868201F686855B55A1F074A1C1F1F
-7F4A6E4EB6FC1E0F021F6E95B7FC0103B600FE173FC3FCA36AA5>141
-196 115 323 165 76 D[<B800F00F7FB712FCA2719EB8FCA27168A37168D80003A194C7
-FCD9001FA115E0DA07FB6DE607EF1480A2DA03F96EE50FCF91C8FCA20201A15C03F86EF7
-1F8FA3706DF73F0FA3706D1F7EA2706D1FFCA3706DF601F8A3706DF603F0A3706DF607E0
-A2706EF50FC0A3706EF51F80A3716DF53F00A2716D1D7EA3716D65A3716D525AA3716D52
-5AA2716D525AA3716E515AA3716E515AA3726D51C7FCA2726D1B7EA3726D63A3726D505A
-A3726D505AA2726D505AA3726E4F5AA3726E4F5AA3736D4FC8FCA2736D197EA3736D61A3
-736D4E5AA3736D4E5AA2736D4E5AA3736E4D5AA3736E4D5AA3746D4DC9FCA2746D177EA3
-746D5FA3746D4C5AA3746D4C5AA2746D4C5AA3746E4B5AA3746E4B5AA2756D4BCAFCA375
-6D157EA3756D5DA3756D4A5AA2756D4A5AA3756D4A5AA3756E495AA3756E495AA2766D49
-CBFCA3766D137EA3766D5BA3766D485AA2766D485AA3766D485AA376EC8FC0A376ECDF80
-A27701FFCCFCA3775B4A7EA2775B4A7EA24A6C735B4A7F77494F7F027F13E091B56C5880
-010302FC725B010F02FF9FB612E090B700F00E1F15FFB900F070490407BA12FCA3775BA2
-78CAFCA21E3E>214 196 114 323 244 I[<B800E00807B912808383A28383A283C76CE3
-0007EE800002016FE0007F02F8C7FC72091F14E010071480727591C8FC100013FC03FB80
-03F96E765A7D5A03F88070785A84707F70785A857080A2708082857080A270808385717F
-A27180838671808386838671808486727FA2728084877280A27280848772808587858773
-8085887380A2738085887380A2747F86887480A274808689748086898689757F87897580
-A27580878A7580A27580878A767FA2767F888B7680888B888B7680888B777FA2777F898C
-7780A27780898C7780898C8A8C787F8A8D7880A278808A8D7880A278808B8D797FA27914
-808B22C07914E08B22F08B22F87914FC8C22FE7A13FFA27A148F8C23CF7A14EFA27A14FF
-8CA28CA28D8DA28D8DA28DA28D8DA28D4A7E8E8E4A7E8E4A7E4A6D898E027F13E091B56C
-89010302FC89010F14FF90B700F088B912F0237F233FA2231FA2230F7D5A>169
-196 114 323 199 I[<99387FFFC0093FB67E0803B712F8081F16FF97B912E0070718FC
-073F9126C0007FEBFF8096B500F8C7000314E0060302C0DA007F13F8060F49C9000F13FE
-063F01F004016D7E4E01C0706C7F4DB5CB001F13F0050701FC060713FC4D49727F053F01
-E006006D7E4D49737F94B5CD001F7F0403497413F84C49747F4C01F008017F4C49747F4C
-49757F4C49757F93B5CF6C7F4B49767F4B49767F4B49767F4B8C4B49767F4B4976804B49
-777F92B548777FA24A91D16C7F4A49787F4A8E4C8A4A8E4A49787F4A497880A24A497880
-A291B548797F49A17E4C8B49A17E93D37E49A17EA249497A7FA249497A7FA249A17F4B8C
-49A17FA290B5487A80A3484A7A80A348A1804B8DA248A180A3484A7B7FA448A180A292D5
-7EA248A11580A548A115C0A24A8EA6B5A114E0B3A36E6A6CA115C0A86CA115806F69A56C
-A11500A26F69A26CA15CA36F9EB5FC6CA15CA36C6E565CA36CA15C6F68A26CA15C6F686D
-A15BA26F686DA15BA26D6D5691C7FCA26D6E555BA26D6E555BA26DA15A6D6E9CB55AA26D
-6E545CA26E6D545C6E6D545CA26E6D5491C8FC6E6A70666E6E535B6E6A6E6E535B719AB5
-FC6E6A6F6D525C6F6D525C6F6D5291C9FC6F6D525B6F6871646F6E515B6F6E515B6F6E98
-B55A043F6D501480706D5091CAFC7001FE080F5B706D505B706E4F5B04006E4F13E07101
-F04EB55A716D4E5C050F01FE060F49CBFC716D6C053F5B050102E094B512F07102F80403
-5C063F01FE040F1480060FD9FFC0037F49CCFC060302F80203B512F80600DAFFE090B612
-E0073F91B81280070706FCCDFC070118F0DF003F1780080304F8CEFCE0003F1580E1007F
-01C0CFFC>179 206 115 328 207 I[<BF7E1EFEF6FFE01FFEF7FFC020F020FC20FFD800
-034BCA001F15C0D9001F02F8DD007F14F002074A060714FC0C00806E4A073F6D7E0D0F80
-6E0A03800D0014F87A7F0E1F7F7A7F7A807A807A807A80A27B7F7B7F8F8D8F8DA112807B
-14C0A2A112E08DA2A112F08DA112F8A4A112FC8DA3A112FEAEA112FCA369A112F8A3A112
-F0A269A112E0A25714C0A2A1128069A11200696B575B6B699EB55A6B565C565C5691C7FC
-565B0E3F5B565B9DB55A0D0314C00D0F5C0D3F91C8FC54B512FC0C0714F00C7F5C0B1FB6
-128094BC48C9FC20F020C055CAFC1FF054CBFC1E8005E0D2FCB3B3B3B3A54A80A24A80A2
-021F14FE0103B712F0BB12C0A8>151 196 114 323 180 I[<942607FFF8170F4CB612E0
-040F03FC5E047FEDFF804BB800F05D030717FC031F05FF5D037F18C092B526FC000F6E5C
-020302C0D9007F13F84A49C800076D5B4A01F003007F4A01C0DC3FFF5B027F49040F1380
-4A48CA0003EBE0074901F8050013F04949067F5B4BF01FF84949726C5A4949F007FE4990
-CC3801FF3F49487313BF494874B5FCA24948864A8648884849865C488889485B8991CFFC
-4889A24988123F8AA2007F895B8AA300FF89A48AA36D88A56D89A3807E808BA2806C7FA2
-806E99C7FC7E80806C80816C80816C8015FE6C6E7E826C15F06D14FEEEFFC06D15FC6DED
-FF806D16F8F0FF806D17F86DEFFF806D18F06D18FF6E18F06E18FF6E19E0020719FC6E19
-FF6E1AC06E6C19F0031F856F19FE030385DB007F85041F19E0040185DC003F84050384DD
-003F83060383DE003F83070783F1007F080782E0007F810907811B000A3F800A0F801C03
-7680767E771480897714C0897714E0898920F08A8A20F88AA28A20FC8A127C00FC89A378
-13FEA38AA37EA21F7FA47EA420FC7FA37F1FFF20F87FA27F5413F07FA26D5213E0A26D1E
-C0667F6E51138080541300806E515A6E646E1B7F6E515A6E6401FD6D6101FC6D4F5B9026
-F87FF04F5B6E6C4F5B9026F01FFE4F90C7FC6E6C4F5A496C01C04E5A6E01F04D485A496C
-01FC4D5B6E6CB46C040F5B496D01F0043F5B030F01FE93B55A90C76CD9FFE0020791C8FC
-0301DAFFC090B512FC486E6C91B75A041F18E0480307188004004DC9FC48043F16F80503
-16C048DC003F4ACAFCDE007F13C0>119 206 115 328 147 83 D[<0007C5B51280A648
-A114C0A24CC96C02F8C812010480041F02E0ED000703FCCA6C4A160003E0201F0380714A
-17074ACB1B0102F87B7E4A8E02C0220F4A8E91CC8848A114E0498F498FA249A1127FA249
-A1123FA349A1121FA349A1120F003FA114F0A349A11207A590CD1D03A548A114F8A3007E
-A11301AA48A1EB00FCA6CE1E00B3B3B3B3B3B3A85180A25180A2097F14F850B612FE97B8
-12FC0507BD7EA8>174 195 120 322 192 I[<BB00C0050FB91280A8D8000304F0CD000F
-EE8000D9001F4ACF03F8C7FC020702F80A3F14E0100F14806E4A7691C8FC100113FC6E5C
-7C5B7D5AA27D5AA37D5AB3B3B3B3B3B3AB6E565AA283A46F1F7FA1C9FCA36F7F23FEA36F
-1E017165A26F1E036B6F7F22076B6F6D1C0F6B6F1E1F72646F1E3F706D64227F706D99CA
-FC6A706D505A8272505A706D505A701C0F706D505A706D63734F5A716D197F71515A716D
-060390CBFC7101F84E5A716D4E5A716DF03FF8716D4E5A716C01C04C485A7201F004075B
-7201FC041F5B7201FFDC7FFECCFC060302C0913803FFFC7202F8021F5B726C9026FFC003
-B512E0071F91B75A070795CDFC070117FC736C16F0081F16C008034BCEFCE0003F14F009
-0049CFFC>169 201 114 323 199 I[<000FBA00C00603B912E0A8C76C04FCCD6C04F0C7
-FC020304E0080F03FCC8FCDA007F03807415E06F92CE6C92C9FC6F4A7514FC6F4A7514F0
-6F696F7913806F9ECAFCA15A6F6E65706D65A15A706E64706E64595A706E99CBFC706E62
-73505A7066706E1A07706E505A6B716D1A1F716E4F5A6B716E4F5A716E19FFA0CCFC716E
-4E5A716E18036A716E4E5A716E180F6A726D4E5A726E173F6A726E4D5A726E17FF5690CD
-FC726E5F726E1603565A726E5F726E160F565A736D5F736E4B5A207F736E5E736E4BCEFC
-765C7360736E4A5A736E140768736E4A5A746D141F555A746E5C746E137F555A746E91CF
-FC746E5A545A7402F85B74ECFC07545A7402FE5B756D485A1E3F75ECBFC075ECFF80A275
-92D0FC755CA2755C87A27580767FA2768076808B8876807680648B5280648B5281640B9F
-80E2FF0F8063526C8051486C801B0751486C80526C801B1F51486D7F526D801B7F51486D
-8099C76C806250486E80516E80505A080F6F80516E80505A083F707F516F8050488408FF
-8298C96C804F48850703834F487080507080190F4F48708050717F193F4F487180507180
-19FF4E90CB6C804F72804E5A060773804F72804E5A061F73804F737F4E5A067F74804F73
-804ECDFC4D75804D48748060050775804D48748060051F75804D48757F604D48758005FF
-768095CF814C4888040377804D76804C5A040F77804D7680161F4C48777F047F788016FF
-4B79804B79805D4B79804B8E037F7F92B5548002036E8C021F6E536E7E027F6E0B7F8101
-07B79AB712F090B800E00907EEFF80B900FC98BA12FEA8>191 196
-125 323 199 88 D<933801FFFC043FEBFFE04BB612FE030FEDFFC0033F16F092B812FC
-4ADA001F13FF020701F00101804A01806D6C13E0DA1FFCC8000F7FDA7FF06F7FDAFFC003
-0113FE4990CA7F4948717F4A717F4948717F4948834948717F4A854948717F8649CB8002
-FC717F90B5FC6F717F816F717F4880A26F717FA48987A36C5CA26D5B6D5B6D5B6D90CBFC
-EB01F890CDFCAA0703B6FC0603B7FC95B8FC170F94B9FC040FEDFC0F043FECFC004BB6C7
-FC030714F0033F148092B500FCC8FC020314F04A1480021F49C9FC4A13F891B55A4914C0
-495C4949CAFC495B495B495B495B90B55A485CA24891CBFC485BA2485BA248491D3FA248
-5BA3485BA4B54860A563A363A26E95B5FC7E621BF76E17036CDF07E36D147E806CF10FC3
-6EDD1F836D14FE6C6DDD3F0116FC6C6D057F6E13016C07FE17F86C6E922603FC006D1303
-6C02E04B486D90388007F06D6DDB1FF09238C00FE06D01FCDB7FC06DEBF03F6D01FF4A48
-486D90B512C06D02C0010F90C71680010302FCD9FFFC6E1500010091B6486E5C023F04E0
-020114F8020F04806E5C020103FCC9003F1380DA001F02E0DC07FCC7FC030049CEFC7881
-75FE84>97 D[<F601F8F51FFF99B6FC1B3FA8F3000F1C001D3F89A289A389B3B3B2F07F
-FF050FB512F0057F14FE0403B712C0040F16F0047F16FC93B539FC007FFF030302800107
-1380030F01FCC813E04B01F0ED3FF0037F01C0ED0FF892B5C9EA03FC4A49EE01FE4A01F8
-EE007F4A49EF3F874A49EF1FC74A49EF0FE74A49EF07F74A90CB6CB5FC4A48844949845B
-4949854B855B4949855D4987495B8990B5CDFCA25A5C5AA2485BA35A5C5AA35C5AA45AA3
-5CA3B5FCB27EA480A37EA47E80A27EA36C7FA36C7FA27E806C64A26D6D61A26D6D616D63
-816D98B5FC6D6D60816D626D6DF007F76D6DF00FE76E6CDE1FC77F6E6DEF3F876E6DEF7F
-076E6D05FF806E6DEE03FC6E6DDC07F8806E01FEDC1FF015C06E6DDC3FE015FC6F01C0DB
-FFC092B5FC031F01F0020713806F01FE91383FFE000303903AFFE003FFF8030091B65A04
-3F16C0040F93C7FC040315F8DC003F02C0EFFE00050301F8C801FCC8FC>128
-201 119 326 147 100 D<943801FFFC053FEBFFE04CB612FE0407EDFFC0043F16F093B8
-12FC4BDA801F13FF03079026FC000180031F01E0D9003F13E04B0180020F7F4B48C86C7F
-4B4803017F020301F06F7F4A49707E4A49041F7F4A49844A90CA6C7F4A48717F02FF727F
-5D4949717F49498549854949858849491A8049864B1AC0498692CCFC90B51BE08848491B
-F0A25A4A85481DF8A2485BA27613FC5AA25CA25AA21EFEA24887A25CA391BDFCBFFCA41E
-FC02E0CFFCAD7EA380A37EA56C7FA37E80A27E1E3C6C6D1B7EA26C1DFE6E1BFC7E6F1901
-6D1CF8A26D6D19036D1CF06F19076D6D1AE06D1B0F6FF11FC06D1C806D6D193F6D6DF17F
-006E6C197E6E6D18FE6E6D4D5A6E6D4D5A6E6D4D5A6E6D4D5A6E6DEF3FC06E01FF4D5A6F
-6D4B48C7FC6F01E04B5A030F01F8ED0FFC6F01FEED7FF00301D9FFC0903803FFE06F6C01
-FE013F1380041F90B7C8FC040716FC040116F0DC003F1580050702FCC9FCDD003F138067
-8179FE75>I[<ED07E0EC7FFF0003B6FCB7FCA8EA003F1303130080A280A380B3B3B3B3B3
-B3B3B3B3A54A7FA24A7F91B57E010FECFFC0B912FCA8>54 199 119
-326 72 108 D<DB0FC092383FFF80DA7FFF0303B512FE0007B6031FECFFC0B792B712F0
-060316FC4E16FF061FD9801F8095273FF8000114E0DE7FC0D9003F7F4D48C8000F7FDD03
-FC6F7FD8003F4B486F7F0103DB0FE08101004B486F7F6E4A48707F95CAFC6E027E717F5F
-DCC1F8717F80DCC3F0717FEEC7E0A2DCCFC0834D8516DF94CBFC16FF5E777FA25EA35EA3
-5EA65EB3B3B3B04A6D4E7FA24A6D4E7F91B56C4E80010FDAFFC04CB612F8B900FC021FB9
-1280A8817E77FD93>110 D<DB0FC0913803FF80DA7FFF033F13F00007B692B512FEB702
-0380060F1580063F15E04E48C613F09538FFE0014DD9800313F84D48484813FCDD07F85B
-D8003F4B5A01034B484913FE01004B5A6E5D4DC7FC6E14FE5FEEC1F86E7113FCEEC3F004
-C76F13F84D6E13F07413E0DCCFC06E13C098C7FCEEDF80A294CBFC16FFA25EA35EA35EA5
-5EA75EB3B3B3A9825C824A7F91B57E010FECFFF0BA12E0A8577E78FD66>114
-D<93263FFFE0140F030FB500FE5C92B712C0020704F05B021F04FC5B027F04FF5B49B526
-C0007F1381010701F8C7000713C14901C0020013E34948C9EA3FF7D93FF8040FB5FC4948
-82D9FFC016014849824890CB7E484884A24848844984121F86485A86127F4984A286A212
-FFA287A27FA36D85A27FA27F6C7E80806C13F06E95C7FC14FE6C6D7E15E06C14FC6CECFF
-8016FC6CEDFFE06C16FF6C17F06DEEFF806D17F06D17FC6DEFFF806D18E00101846D18FC
-023F83020F83020318C0020084031F83030183DB000F82DC007F81050781EF003F060315
-80DE007F14C0190F070314E085736C13F0007C8500FC070F13F886866C1BFC86861B7F1C
-FE6C1A3FA31B1F7FA21B0F7FA37FA21CFC7FA27F1B1F6D1AF8A27FF33FF07FF37FE0806E
-F0FFC0805013806E4D13006E5FD9FBFC4D5AD9F1FF4D5A01E06D4C5A6E6CEEFFF09026C0
-3FF003035B9026801FFC031F5B6EB46C91B5C7FCD9000301FC011F5B486D90B712F86E6C
-16E048021F168048020703FCC8FC030015C048030F01F8C9FC578179FE67>I[<163FAA5E
-A75EA55DA45DA35DA25DA35DA25DA25D92B5FCA25C5C5CA25C5C5C91B6FC5B1307131F01
-7F92B8FC0007BCFCBDFCA6C891CBFCB3B3B3AAF303F0B3A7F307E06F7FA4F30FC06F7FA2
-1B1F6F1880836FEF3F00836F177E836F5F7114016F6D5D6F6D4A5A706D1307706DEB1FE0
-7001F0EB7FC0709039FE01FF807090B6C7FC04015D706C14F8051F5C050314809426003F
-FCC8FC>84 178 125 303 102 I<DB07E01AFCDA7FFFF10FFF0003B6067FB5FCB7051FB6
-FCA8D8003FF100070103F2007F01001B1F6E86A26E86A36E86B3B3B3AE65A565A465A365
-8065A29AB5FC7018FB6E19011DF31C036EF107E382E20FC37F6EF11F8370EF3F036E077F
-806F6C17FE70DC01FC816F6DDB03F815E06F6DDB0FF015FE6F01F0DB3FE092B512806F01
-FCEDFFC06F01FF02031300030002F8EB3FFE7090B65A041F16F0040716C0040193C7FCDC
-001F02F895C7FCDD007F01804BC9FC818077FD93>I E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 1200dpi
-TeXDict begin
-%%PaperSize: A4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 2617 1526 a Fn(Lustre)86 b(4X)g(and)f Fm(LPP)3214
-1891 y Fn(release)f(0.0)3093 2396 y Fl(P)-5 b(ascal)62
-b(Ra)-5 b(ymond)3231 2804 y(Ma)g(y)64 b(24,)h(2002)0
-3576 y Fk(Con)-7 b(ten)g(ts)0 3984 y Fj(1)168 b(t)-6
-b(yp)6 b(es)6743 b(3)273 4210 y Fi(1.1)185 b(Immediate)57
-b(t)-5 b(yp)5 b(es)151 b(.)90 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
-(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
-h(.)f(.)g(.)h(.)f(.)h(.)f(.)348 b(3)273 4435 y(1.2)185
-b(T)-5 b(yp)5 b(e)61 b(declaration)g(and)f(built)h(t)-5
-b(yp)5 b(es)130 b(.)91 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
-h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)348
-b(3)273 4661 y(1.3)185 b(Use)60 b(of)g(structured)g(t)-5
-b(yp)5 b(es)183 b(.)91 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
-h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
-(.)f(.)348 b(4)0 5069 y Fj(2)168 b(Static)70 b(parameters)5605
-b(4)273 5295 y Fi(2.1)185 b(Declaration)61 b(of)f(template)e(no)5
-b(de)145 b(.)90 b(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f
-(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)348
-b(4)273 5521 y(2.2)185 b(No)5 b(de)61 b(expression)185
-b(.)90 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
-h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
-(.)f(.)348 b(5)691 5746 y(2.2.1)207 b(Prede\014ned)60
-b(op)5 b(erators)95 b(.)c(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
-(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
-348 b(5)691 5972 y(2.2.2)207 b(T)-15 b(emplate)59 b(instanciation)h(.)
-90 b(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
-f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)348 b(5)273
-6198 y(2.3)185 b(Static)60 b(recursion)90 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f
-(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
-h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)348 b(6)273
-6424 y(2.4)185 b(Static)60 b(arrra)-5 b(ys)110 b(.)90
-b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f
-(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)
-h(.)f(.)348 b(6)0 6831 y Fj(3)168 b(Name)68 b(space)h(and)g(pac)-6
-b(k)-12 b(age)4956 b(6)0 7239 y(A)115 b(Abstract)69 b(syn)-6
-b(tax)5764 b(7)3758 11695 y Fi(1)p eop
-%%Page: 2 2
-2 1 bop 3758 11695 a Fi(2)p eop
-%%Page: 3 3
-3 2 bop 0 797 a Fk(In)-7 b(tro)7 b(duction)0 1203 y Fi(Lustre)60
-b(4X)90 b(is)h(a)f(\(new\))g(v)-5 b(ersion)90 b(of)g(the)g(Lustre)f
-(Langage)h(whic)-5 b(h)91 b(deriv)-5 b(es)90 b(form)e(the)i(Lustre)g
-(v4)g(\(ak)-10 b(a)0 1429 y(Lustre/P)-5 b(ollux\).)80
-b Fh(LPP)61 b Fi(is)f(the)h(assso)5 b(ciated)59 b(to)5
-b(ol)61 b(\(lik)-5 b(e)61 b(P)-5 b(ollux)61 b(w)-5 b(as)61
-b(with)g(Lustre)f(v4\).)80 b(The)61 b(main)f(inheri-)0
-1655 y(tence)69 b(from)g(Lustre/P)-5 b(ollux)70 b(are)g(static)f(arra)
--5 b(ys)70 b(and)h(static)e(recursion,)j(b)5 b(oth)70
-b(solv)-5 b(ed)70 b(b)-5 b(y)71 b(t)-5 b(yp)5 b(e)69
-b(and)i(no)5 b(de)0 1880 y(expansion.)282 2106 y(By)61
-b(the)f(w)-5 b(a)g(y)-15 b(,)60 b(Lustre)f(4X)i(is)g
-Fg(not)66 b(c)-9 b(omp)g(atible)58 b Fi(with)j(Lustre/P)-5
-b(ollux)60 b(for)g(the)h(follo)-5 b(wing)61 b(reasons:)273
-2407 y Ff(\017)91 b Fi(Structured)82 b(t)-5 b(yp)5 b(es,)87
-b(with)c(named)e(\014elds,)87 b(are)c(pro)-5 b(vided,)88
-b(instead)82 b(of)g(the)h(error-prone)f(notion)h(of)455
-2633 y(heterogeneous)59 b(arra)-5 b(ys)60 b(of)g(Lustre/P)-5
-b(ollux.)273 2978 y Ff(\017)91 b Fi(En)-5 b(umerated)58
-b(t)-5 b(yp)5 b(es)60 b(are)g(pro)-5 b(vided.)273 3324
-y Ff(\017)91 b Fi(Static)59 b(parameters)e(are)j(generalized)g(to)f(t)
--5 b(yp)5 b(es)59 b(and)g(no)5 b(des,)59 b(and)g(they)h(are)f(clearly)h
-(separated)f(from)455 3550 y(the)69 b(dynamic)f(parameters.)106
-b(In)70 b(fact,)g(Lustre)60 b(4X)70 b(pro)-5 b(vides)70
-b(a)g(quite)f(classical)i(notion)e(of)h(program)455 3775
-y(templates.)0 4334 y Fk(1)269 b(t)-7 b(yp)7 b(es)0 4740
-y Fi(W)-15 b(e)60 b(distinguish)h Fg(typ)-9 b(e)65 b(denotations)d
-Fi(\(or)e(immediate)e(t)-5 b(yp)5 b(es\))59 b(and)i Fg(typ)-9
-b(e)65 b(de\014nitions)c Fi(\(or)g(built)g(t)-5 b(yp)5
-b(es\).)0 5213 y Fe(1.1)225 b(Immediate)72 b(t)-6 b(yp)6
-b(es)0 5556 y Fi(Immediate)63 b(t)-5 b(yp)5 b(es)66 b(are)h
-Fg(typ)-9 b(e)71 b(expr)-9 b(essions)67 b Fi(used)f(to)g(declare)h(the)
-g(t)-5 b(yp)5 b(e)66 b(of)g(a)h(constan)-5 b(t,)67 b(a)g(v)-10
-b(ariable,)68 b(a)f(\014eld)0 5782 y(etc.)80 b(They)60
-b(are:)273 6083 y Ff(\017)91 b Fi(prede\014ned)60 b(t)-5
-b(yp)5 b(es:)455 6309 y Fd(bool)58 b Ff(j)i Fd(int)f
-Ff(j)h Fd(real)273 6654 y Ff(\017)91 b Fi(iden)-5 b(ti\014ers)62
-b(of)f(declared)i(t)-5 b(yp)5 b(es)61 b(\(wic)-5 b(h)62
-b(are,)g(dep)5 b(ending)63 b(on)f(their)g(de\014nitions)g(external)g(t)
--5 b(yp)5 b(es,)62 b(built)455 6880 y(t)-5 b(yp)5 b(es)59
-b(or)i(simple)f(aliases\):)455 7106 y Ff(j)g Fg(ident)273
-7451 y Ff(\017)91 b Fi(immediate)57 b(arra)-5 b(y:)455
-7677 y Ff(j)60 b Fg(typ)-9 b(e-expr)g(ession)60 b Fd(^)g
-Fg(c)-9 b(onstant-expr)g(ession)0 8150 y Fe(1.2)225 b(T)-6
-b(yp)6 b(e)74 b(declaration)e(and)i(built)f(t)-6 b(yp)6
-b(es)0 8493 y Fi(A)61 b(t)-5 b(yp)5 b(e)60 b(declaration)h(is)g(of)f
-(the)g(form:)472 8719 y Fd(type)94 b Fg(ident)p Fd(;)0
-8945 y Fi(in)61 b(wic)-5 b(h)61 b(case)f Fg(ident)h Fi(is)g(a)f
-(abstract)g(t)-5 b(yp)5 b(e)60 b(\(or)g(external)h(t)-5
-b(yp)5 b(e\),)59 b(or:)472 9171 y Fd(type)g Fg(ident)h
-Fd(=)g Fg(typ)-9 b(e-def)0 9396 y Fi(in)61 b(whic)-5
-b(h)61 b(case)f Fg(ident)h Fi(is)g(a)f(de\014ned)g(t)-5
-b(yp)5 b(e.)282 9622 y(A)77 b Fg(typ)-9 b(e-def)75 b
-Fi(can)h(b)5 b(e)75 b(a)h(t)-5 b(yp)5 b(e)76 b(expression,)j(in)d(wic)
--5 b(h)77 b(case)e(the)g(corresp)5 b(onding)76 b(iden)-5
-b(ti\014er)77 b(is)f(called)g(an)0 9848 y(aliased)61
-b(t)-5 b(yp)5 b(e.)282 10074 y(A)61 b Fg(typ)-9 b(e-def)60
-b Fi(can)h(also)f(b)5 b(e)61 b(a)f(built)h(t)-5 b(yp)5
-b(e)61 b(sp)5 b(eci\014cation:)273 10375 y Ff(\017)91
-b Fi(structured)59 b(t)-5 b(yp)5 b(e)60 b(with)i(named)c(\014elds:)927
-10600 y Fd(struct)f({)j Fg(ident)h Fd(:)f Fg(imm-typ)-9
-b(e)60 b Fd(;)g Ff(\001)30 b(\001)g(\001)60 b Fd(;)g
-Fg(ident)g Fd(:)g Fg(imm-typ)-9 b(e)60 b Fd(})273 10946
-y Ff(\017)91 b Fi(en)-5 b(umerated)58 b(t)-5 b(yp)5 b(e:)927
-11172 y Fd(enum)58 b({)i Fg(ident)h Fd(,)f Ff(\001)30
-b(\001)g(\001)60 b Fd(,)g Fg(ident)g Fd(})3758 11695
-y Fi(3)p eop
-%%Page: 4 4
-4 3 bop 0 797 a Fe(1.3)225 b(Use)75 b(of)h(structured)d(t)-6
-b(yp)6 b(es)0 1140 y Fi(The)44 b(declaration)g(of)f(a)g(structured)g(t)
--5 b(yp)5 b(e)43 b(is)h(seman)-5 b(tically)43 b(equiv)-10
-b(alen)-5 b(t)44 b(\(in)f(basic)h(Lustre\))f(to)g(the)g(declaration)0
-1366 y(of)60 b(an)h(abstract)e(t)-5 b(yp)5 b(e,)60 b(a)g(collection)h
-(of)f(\014eld-access)g(functions,)f(and)i(a)f(constructor)g(function.)
-282 1592 y(Here)h(is)g(an)f(example)g(of)g(structured)f(t)-5
-b(yp)5 b(e)61 b(declaration:)286 1949 y Fd(type)94 b(two_adic_int)89
-b(=)94 b(struct)f({)573 2175 y(sign)g(:)i(bool;)573 2401
-y(bits)e(:)i(bool)286 2627 y(};)0 2984 y Fi(Field)61
-b(acces)f(can)g(b)5 b(e)61 b(applied)g(to)f(an)-5 b(y)61
-b(expression)f Fg(exp)g Fi(of)g(t)-5 b(yp)5 b(e)61 b
-Fd(two)p 4824 2984 58 7 v 67 w(adic)p 5275 2984 V 66
-w(int)p Fi(:)472 3210 y Fg(exp)p Fd(.sign)0 3436 y Fi(is)g(an)f
-(expression)h(of)f(t)-5 b(yp)5 b(e)60 b Fd(bool)p Fi(.)282
-3662 y(The)93 b(construction)e(of)h(a)g(structured)g(t)-5
-b(yp)5 b(e)92 b(v)-10 b(alue)92 b(adopt)g(the)g(\\call)h(b)-5
-b(y)92 b(name")f(st)-5 b(yle:)143 b(the)92 b(name)0 3888
-y Fd(two)p 299 3888 V 67 w(adic)p 750 3888 V 67 w(int)69
-b Fi(can)h(b)5 b(e)71 b(view)-5 b(ed)71 b(as)f(a)h(function)f(that)g
-(tak)-5 b(es)70 b(t)-5 b(w)g(o)70 b(argumen)-5 b(ts,)71
-b(one)f(called)i Fd(sign)c Fi(and)j(the)0 4114 y(other)60
-b(one)h Fd(bits)p Fi(.)78 b(If)60 b Fg(exp1)g Fi(and)h
-Fg(exp2)f Fi(are)g(t)-5 b(w)g(o)61 b(b)5 b(o)g(olean)61
-b(expressions,)e(then:)472 4339 y Fd(two_adic_int)89
-b({)95 b(sign)f(=)g Fg(exp1)p Fd(;)h(bits)e(=)i Fg(exp2)h
-Fd(})0 4565 y Fi(is)61 b(an)f(expression)h(of)f(t)-5
-b(yp)5 b(e)60 b Fd(two)p 2227 4565 V 67 w(adic)p 2678
-4565 V 66 w(int)p Fi(.)282 4791 y(The)80 b(\014elds)f(of)g(a)h
-(structured)e(t)-5 b(yp)5 b(e)79 b(v)-10 b(ariable)80
-b(can)g(b)5 b(e)79 b(de\014ned)g(separatly)-15 b(,)83
-b(using)d(sev)-5 b(eral)79 b(equations.)0 5017 y(F)-15
-b(or)70 b(instance,)i(if)e(the)g(v)-10 b(ariable)72 b
-Fd(minus_one)90 b(:)95 b(two_adic_int)64 b Fi(is)70 b(declared,)j(it)e
-(can)f(b)5 b(e)70 b(de\014ned)g(b)-5 b(y)70 b(t)-5 b(w)g(o)0
-5243 y(equations:)286 5600 y Fd(minus_one.bits)88 b(=)95
-b(true;)286 5826 y(minus_one.sign)88 b(=)95 b(true)e(->)i(false;)0
-6183 y Fi(is)61 b(equiv)-10 b(alen)-5 b(t)60 b(to:)286
-6541 y Fd(minus_one)91 b(=)k(two_adic_int{)88 b(bits)93
-b(=)i(true;)e(sign)g(=)i(true)e(->)i(false)e(};)282 6899
-y Fi(More)47 b(generally)-15 b(,)51 b(if)c Fg(left)g
-Fi(is)h(a)g(prop)5 b(er)47 b(equation)h(left-part)e(of)h(t)-5
-b(yp)5 b(e)48 b Fd(two_adic_int)p Fi(,)43 b(and)k Fg(exp)h
-Fi(is)g(a)f(prop)5 b(er)0 7124 y(expression)60 b(of)g(t)-5
-b(yp)5 b(e)60 b Fd(bool)p Fi(,)e(one)j(can)f(write)h(the)f(equation:)
-472 7350 y Fg(left)p Fd(.sign)92 b(=)j Fg(exp)h Fd(;)0
-7920 y Fk(2)269 b(Static)89 b(parameters)0 8332 y Fe(2.1)225
-b(Declaration)72 b(of)j(template)e(no)6 b(de)0 8675 y
-Fi(The)70 b(notion)h(of)e(static)h(parameter)e(is)i(more)f(general)h
-(than)g(in)h(Lustre/P)-5 b(ollux:)99 b(it)70 b(can)g(b)5
-b(e)70 b(a)h(constan)-5 b(t,)70 b(a)0 8901 y(t)-5 b(yp)5
-b(e)60 b(or)h(a)f(ev)-5 b(en)60 b(a)h(no)5 b(de.)282
-9127 y(Static)61 b(parameters)d(are)i(clearly)i(separated)d(from)g
-(dynamic)h(parameters,)e(for)i(instance:)286 9485 y Fd(node)94
-b(toto<<)573 9710 y(type)f(a;)573 9936 y(const)f(n)j(:)g(int;)573
-10162 y(node)e(t\(x:a\)returns\(y:a\))286 10388 y(>>)i(\()g(X)g(:)f
-(a^n)g(\))h(returns)d(\()j(Z)g(:)g(a)f(\))0 10745 y Fi(The)60
-b(static)g(parameter)e(part)i(is)g(optionnal,)g(a)g(no)5
-b(de)60 b(with)h(static)e(parameters)f(is)i(called)h(a)f
-Fg(template)j(no)-9 b(de)p Fi(,)0 10971 y(while)62 b(a)e(no)5
-b(de)61 b(without)f(is)h(called)g Fg(e\013e)-9 b(ctive)63
-b(no)-9 b(de)p Fi(.)282 11197 y(T)-15 b(emplate)59 b(no)5
-b(de)61 b(are)f(not)g(compiled:)80 b(only)61 b(e\013ectiv)-5
-b(e)60 b(no)5 b(des)60 b(can)g(b)5 b(e)61 b(compiled.)3758
-11695 y(4)p eop
-%%Page: 5 5
-5 4 bop 0 797 a Fe(2.2)225 b(No)6 b(de)75 b(expression)0
-1167 y Fi(An)65 b(actual)g(no)5 b(de)64 b(denotation)h(\(a)f
-Fg(no)-9 b(de)68 b(expr)-9 b(ession)64 b Fi(is)h(the)g(denotation)f(of)
-g(an)h(e\013ectiv)-5 b(e)64 b(no)5 b(de)65 b(\(according)0
-1393 y(to)90 b(some)e(iden)-5 b(ti\014er)91 b(en)-5 b(vironmen)g(t\).)
-167 b(It)89 b(can)h(b)5 b(e)90 b(the)g(denotation)g(of)g(a)g
-(prede\014ned)g(op)5 b(erator,)96 b(or)91 b(the)0 1619
-y(instanciation)61 b(of)f(a)g(no)5 b(de)61 b(template)d(\(the)i(use)g
-(of)g(a)h(non-template)d(no)5 b(de)60 b(is)h(a)g(sp)5
-b(ecial)61 b(case)f(of)g(this)g(one\).)0 2178 y Fj(2.2.1)208
-b(Prede\014ned)70 b(op)6 b(erators)0 2548 y Fi(A)58 b(correct)e(no)5
-b(de)57 b(expression)g(can)g(b)5 b(e)57 b(optained)g(from)e(an)-5
-b(y)57 b(predi\014ned)h(op)5 b(erator)57 b(b)-5 b(y)57
-b(pre\014xing)h(it)f(with)h(the)0 2774 y(k)-5 b(eyw)g(ord)77
-b Fd(operator)p Fi(.)126 b(F)-15 b(or)77 b(instance)f
-Fd(operator)91 b(and)76 b Fi(if)h(a)g(no)5 b(de)77 b(expression)g
-(denoting)g(the)f(o)-5 b(v)g(erloaded)0 3000 y(arithmetic)64
-b(addition.)96 b(Note)66 b(the)f(sp)5 b(ecial)66 b(case)e(of)h
-Fd(operator)92 b(if)64 b Fi(whic)-5 b(h)66 b(denotes)f(the)g
-Fd(if)94 b(..)190 b(then)93 b(..)0 3226 y(else)58 b Fi(op)5
-b(erator.)0 3785 y Fj(2.2.2)208 b(T)-17 b(emplate)68
-b(instanciation)0 4155 y Fi(It)60 b(is)h(optained)f(b)-5
-b(y)61 b(concatenating)e(the)i(name)d(of)i(a)h(template)e(no)5
-b(de)60 b(and)g(a)h(list)g(of)f Fg(static)66 b(ar)-9
-b(guments)p Fi(:)273 4586 y Ff(\017)91 b Fi(for)60 b(a)g
-Fd(type)f Fi(static)h(parameter,)e(one)i(m)-5 b(ust)59
-b(giv)-5 b(e)61 b(a)f(correct)g(t)-5 b(yp)5 b(e)60 b(expression,)273
-5017 y Ff(\017)91 b Fi(for)60 b(a)g Fd(const)e Fi(static)i(parameter)f
-(a)h(correct)g(v)-10 b(alue)61 b(expression,)273 5447
-y Ff(\017)91 b Fi(for)60 b(a)g Fd(node)f Fi(static)h(parameter)e(a)j
-(correct)f Fg(no)-9 b(de)64 b(expr)-9 b(ession)p Fi(.)0
-5878 y(Unfortunatly)-15 b(,)66 b(it)g(is)g(almost)e(imp)5
-b(ossible)65 b(to)g(design)g(a)h(non)f(am)-5 b(bigous)64
-b(grammar)f(for)j(a)f(list)h(of)f(argumen)-5 b(t)0 6104
-y(whose)57 b(natures)f(are)h(so)g(di\013eren)-5 b(t.)79
-b(The)57 b(strict)g(w)-5 b(a)g(y)57 b(for)g(instanciating)g(static)g
-(argumen)-5 b(t)55 b(is)i(then)g(to)f(pre\014x)0 6330
-y(eac)-5 b(h)60 b(of)g(them)f(b)-5 b(y)60 b(the)g(k)-5
-b(eyw)g(ord)61 b(denoting)g(its)f(nature.)80 b(F)-15
-b(or)60 b(instance:)0 6774 y Fd(toto<<)92 b(type)h(int;)h(const)e(5;)j
-(node)e(max_int)f(>>)0 7205 y Fi(is)82 b(a)f(correct)g(no)5
-b(de)81 b(expression)g(if)g Fd(max)p 2847 7205 58 7 v
-67 w(int)f Fi(denotes)g(a)h(no)5 b(de)81 b(\(or)h(ev)-5
-b(en)80 b(an)i(external)f(function\))g(whose)0 7431 y(protot)-5
-b(yp)5 b(e)60 b(is)h Fd(\(x:int\))91 b(returns)h(\(y:int\))p
-Fi(.)282 7671 y(Ho)-5 b(w)g(erv)g(er,)61 b(there)f(are)h(some)d(simple)
-i(cases)f(where)i(it)g(is)g(not)f(necessary)f(to)i(precise)f(the)g
-(nature:)273 8101 y Ff(\017)91 b Fi(When)55 b(the)f(argumen)-5
-b(t)54 b(is)h(clearly)h(a)f(t)-5 b(yp)5 b(e)55 b(expression,)g(that)g
-(meens)e(a)i(prede\014ned)g(t)-5 b(yp)5 b(e,)56 b(or)f(an)g(arra)-5
-b(y)455 8327 y(of)60 b(prede\014ned)g(t)-5 b(yp)5 b(e)60
-b(\(lik)-5 b(e)61 b Fd(bool)p Fi(,)d Fd(int^4)p Fi(,)f(or)k(ev)-5
-b(en)60 b Fd(int^n^m)p Fi(\).)273 8758 y Ff(\017)91 b
-Fi(When)71 b(the)h(argumen)-5 b(t)70 b(is)i(clearly)h(a)f(constan)-5
-b(t)70 b(argumen)-5 b(t,)73 b(that)e(meens)f(a)i(simple)f(arithmetic)f
-(and)455 8984 y(logic)61 b(expression)f(\(lik)-5 b(e)61
-b Fd(3)p Fi(,)f Fd(n-1)p Fi(,)e(or)j Fd(if)94 b(b)h(then)e(\(3*x+1\))f
-(else)h(\(3*x\))p Fi(\).)273 9414 y Ff(\017)e Fi(When)80
-b(the)g(argumen)-5 b(t)78 b(is)j(clearly)g(a)f(no)5 b(de)80
-b(expression,)85 b(that)79 b(is,)85 b(either)c(a)f(predi\014ned)h(no)5
-b(de)80 b(\(lik)-5 b(e)455 9640 y Fd(operator)91 b(+)p
-Fi(\),)59 b(or)i(an)f(iden)-5 b(ti\014er)61 b(follo)-5
-b(w)g(ed)61 b(b)-5 b(y)61 b(a)f(static)g(argumen)-5 b(t)59
-b(list)i(\(eg.)80 b Fd(foo<<)92 b(3)j(>>)p Fi(\).)273
-10071 y Ff(\017)c Fi(Moreo)-5 b(v)g(er,)56 b(the)h(nature)g(can)g(b)5
-b(e)57 b(a)-5 b(v)g(oided)57 b(if)g(the)g(argumen)-5
-b(t)55 b(is)j(a)f(single)g(iden)-5 b(ti\014er:)79 b(in)58
-b(this)f(case,)g(the)455 10297 y(compiler)i(will)k(try)d(to)h(\\solv)-5
-b(e")60 b(the)g(nature)g(within)i(its)e(en)-5 b(vironemen)g(t.)0
-10727 y(Finally)-15 b(,)61 b(the)f(no)5 b(de)61 b(expression)f(b)5
-b(elo)-5 b(w)61 b(can)f(b)5 b(e)61 b(written)g(more)e(simply:)286
-11172 y Fd(toto)94 b(<<)g(int;)f(5;)i(max_int)c(>>)3758
-11695 y Fi(5)p eop
-%%Page: 6 6
-6 5 bop 0 797 a Fe(2.3)225 b(Static)73 b(recursion)0
-1140 y Fi(No)5 b(de)75 b(template)e(allo)-5 b(w)76 b(the)e(user)h(to)f
-(de\014ne)h(generic)f(no)5 b(des)75 b(;)81 b(another)75
-b(imp)5 b(ortan)-5 b(t)73 b(use)h(of)h(templates)d(is)0
-1366 y(to)64 b(de\014ne)f(static)h(recursiv)-5 b(e)64
-b(no)5 b(des.)90 b(In)-5 b(tuitiv)g(elly)-15 b(,)65 b(static)f
-(recursion)g(can)g(b)5 b(e)64 b(view)-5 b(ed)64 b(as)g(a)g(w)-5
-b(a)g(y)64 b(to)g(express)0 1592 y(regular)d(net)-5 b(w)g(orks)60
-b(of)g(no)5 b(des.)0 2017 y Fd(node)93 b(min\(x)g(:)i(int;)e(y)i(:)g
-(min\))e(returns)f(\(mn)i(:)h(int\);)0 2243 y(let)286
-2469 y(mn)g(=)g(if)f(\(x)g(<=)h(y\))f(then)f(x)i(else)f(y;)0
-2694 y(tel)0 3146 y(node)f(min_n<<const)c(n:)95 b(int>>)0
-3372 y(\(T)f(:)h(int^n\))d(returns)g(\(mn)i(:)h(int\);)0
-3598 y(let)286 3824 y(mn)g(=)g(with)e(\(n)h(=)h(1\))g(then)e(T[0])764
-4049 y(else)g(min\(T[0],)d(min_n<<n-1>>\(T[1..n)o(-1)o(])o(\)\))o(;)0
-4275 y(tel)282 4700 y Fi(The)61 b(curren)-5 b(t)60 b(syn)-5
-b(tax)60 b(of)g Fd(with)f Fi(statemen)-5 b(t)57 b(is)k(lik)-5
-b(ely)62 b(to)e(c)-5 b(hange)60 b(so)5 b(on)60 b(!)0
-5187 y Fe(2.4)225 b(Static)73 b(arrra)-6 b(ys)0 5603
-y Fk(3)269 b(Name)90 b(space)f(and)i(pac)-7 b(k)-15 b(age)0
-6043 y Fn(JUST)86 b(IDEAS)g(-)g(NOT)g(IMPLEMENTED)282
-6494 y Fi(The)67 b(idea)f(is)h(to)e(pro)-5 b(vide)67
-b(a)f(b)5 b(etter)66 b(mo)5 b(dule)65 b(system)e(that)j(the)g(one)g(in)
-g(Lustre/P)-5 b(ollux.)97 b(Note)66 b(that)g(in)0 6720
-y(Lustre/P)-5 b(ollux,)60 b(there)g(is)h(no)f(mo)5 b(dule)60
-b(system)e(at)i(all:)81 b(just)60 b(text)f(inlining)k(!)282
-6946 y(Imp)5 b(ortan)-5 b(t)59 b(p)5 b(oin)-5 b(ts)60
-b(are:)273 7321 y Ff(\017)91 b Fi(a)62 b(general)h(\\name)e(space")h
-(system)e(whic)-5 b(h)63 b(a)-5 b(v)g(oids)63 b(name)e(collision.)88
-b(F)-15 b(or)63 b(instance,)f(an)h(en)-5 b(umerated)455
-7547 y(t)g(yp)5 b(e)55 b Fd(toto)e Fi(is)j(a)g(name)e(space,)i(and)f(a)
-h(particular)g(v)-10 b(alue)56 b Fd(val)e Fi(form)g(this)i(t)-5
-b(yp)5 b(e)55 b(could)h(b)5 b(e)56 b(\(optionally\))455
-7773 y(writen)75 b Fd(toto::val)p Fi(.)117 b(A)75 b(pac)-5
-b(k)-10 b(age)74 b(\(ev)-5 b(en)74 b(if)h(the)f(notion)h(is)f(not)h(y)
--5 b(et)74 b(really)h(clear\))g(is)g(also)f(a)h(name)455
-7999 y(space:)g(whatev)-5 b(er)51 b(is)g(denoted)g(b)-5
-b(y)51 b(an)g(iden)-5 b(ti\014er)52 b Fd(foo)e Fi(declared)i(within)g
-(a)f(pac)-5 b(k)-10 b(age)51 b Fd(bar)f Fi(\(const,)h(t)-5
-b(yp)5 b(e,)455 8224 y(no)g(de)60 b(etc.\))79 b Fd(bar::foo)57
-b Fi(could)j(b)5 b(e)61 b(used)f(to)g(precisely)h(denote)f(it.)3758
-11695 y(6)p eop
-%%Page: 7 7
-7 6 bop 0 797 a Fk(A)269 b(Abstract)89 b(syn)-7 b(tax)100
-2531 y Fj(P)h(ac)g(k)-12 b(age:)100 2802 y Fi(A)55 b(Lustre)f(pac)-5
-b(k)-10 b(age)54 b(is)h(a)f(sequence)g(\(seman)-5 b(tically)53
-b(a)i(set\))f(of)g(declarations)h(of)f(constan)-5 b(ts,)54
-b(t)-5 b(yp)5 b(es,)55 b(functions)100 3028 y(or)60 b(no)5
-b(des.)557 3299 y Fg(LusPack)p 557 3328 670 8 v 249 w
-Ff(\000)-31 b(!)250 b(f)p Fg(OneDe)-9 b(cl)p 2110 3328
-667 8 v 99 w Ff(g)2969 3233 y Fc(\003)560 3570 y Fg(OneDe)g(cl)p
-560 3599 V 247 w Ff(\000)-31 b(!)200 b Fg(ConstDe)-9
-b(cl)p 1969 3599 802 8 v 211 w Ff(j)101 b Fg(T)-14 b(yp)-9
-b(eDe)g(cl)p 3134 3635 714 8 v 210 w Ff(j)101 b Fg(F)-14
-b(uncDe)-9 b(cl)p 4211 3599 730 8 v 210 w Ff(j)100 b
-Fg(No)-9 b(deDe)g(cl)p 5304 3599 738 8 v 100 4112 a Fj(Constan)j(t)69
-b(Declarations:)100 4383 y Fi(A)80 b(constan)-5 b(t)79
-b(can)g(b)5 b(e)80 b(declared)g(with)h(its)f(t)-5 b(yp)5
-b(e)79 b(and/or)h(v)-10 b(alue.)139 b(If)79 b(no)h(v)-10
-b(alue)80 b(is)g(giv)-5 b(en,)84 b(the)c(constan)-5 b(t)79
-b(is)100 4609 y(considered)64 b(as)g(imp)5 b(orted.)90
-b(Imp)5 b(orted)62 b(constan)-5 b(ts)63 b(of)g(a)i(same)d(t)-5
-b(yp)5 b(e)64 b(can)g(b)5 b(e)64 b(giv)-5 b(en)64 b(as)g(a)g(list.)92
-b(The)65 b(t)-5 b(yp)5 b(e)63 b(of)100 4835 y(de\014ned)d(constan)-5
-b(t)59 b(can)i(b)5 b(e)60 b(giv)-5 b(en)61 b(for)f(more)f(precision.)
-425 5106 y Fg(ConstDe)-9 b(cl)p 425 5135 802 8 v 249
-w Ff(\000)-31 b(!)200 b Fj(const)221 b Ff(f)p Fg(OneConstDe)-9
-b(cl)p 2759 5135 1127 8 v 100 w Ff(g)4078 5040 y Fb(+)4317
-5106 y Fj(;)100 5377 y Fg(OneConstDe)g(cl)p 100 5406
-V 248 w Ff(\000)-31 b(!)250 b(f)p Fg(Idf)p 2110 5441
-219 8 v 111 w Fj(,)101 b Ff(g)2690 5311 y Fc(\003)2890
-5377 y Fg(Idf)p 2890 5441 V 111 w Fj(:)111 b Fg(T)-14
-b(yp)-9 b(e)p 3389 5441 372 8 v 1598 5648 a Ff(j)320
-b Fg(Idf)p 1969 5712 219 8 v 110 w Fj(=)111 b Fg(Exp)p
-2572 5712 301 8 v 223 w Fi([)o Fj(:)h Fg(T)-14 b(yp)-9
-b(e)p 3315 5712 372 8 v 50 w Fi(])100 6190 y Fj(T)j(yp)6
-b(e)69 b(Declarations:)100 6461 y Fi(A)63 b(declared)f(t)-5
-b(yp)5 b(e)62 b(can)h(b)5 b(e)62 b(external)h(\(just)e(a)h(name\))f(or)
-i(declared.)86 b(Declared)62 b(t)-5 b(yp)5 b(es)62 b(are)h(either)f
-(aliases)h(on)100 6686 y(t)-5 b(yp)5 b(e)60 b(expressions,)f(or)i
-(built)g(t)-5 b(yp)5 b(es)60 b(\(structured)g(or)g(en)-5
-b(umerated\).)513 6957 y Fg(T)-14 b(yp)-9 b(eDe)g(cl)p
-513 7022 714 8 v 248 w Ff(\000)-31 b(!)200 b Fj(t)-6
-b(yp)6 b(e)222 b Ff(f)p Fg(OneT)-14 b(yp)-9 b(eDe)g(cl)p
-2685 7022 1039 8 v 109 w Fj(;)101 b Ff(g)4085 6891 y
-Fb(+)188 7228 y Fg(OneT)-14 b(yp)-9 b(eDe)g(cl)p 188
-7293 V 247 w Ff(\000)-31 b(!)250 b(f)p Fg(Idf)p 2110
-7293 219 8 v 111 w Fj(,)101 b Ff(g)2690 7162 y Fc(\003)2890
-7228 y Fg(Idf)p 2890 7293 V 212 w Ff(j)f Fg(Idf)p 3472
-7293 V 111 w Fj(=)111 b Fg(T)-14 b(yp)-9 b(e)p 4076 7293
-372 8 v 1598 7499 a Ff(j)320 b Fg(Idf)p 1969 7564 219
-8 v 110 w Fj(=)111 b Fg(T)-14 b(yp)-9 b(eBuilder)p 2572
-7564 953 8 v 274 7770 a(T)-14 b(yp)-9 b(eBuilder)p 274
-7835 V 247 w Ff(\000)-31 b(!)200 b Fj(en)-6 b(um)110
-b Fa(f)222 b Ff(f)p Fg(Idf)p 2994 7835 219 8 v 111 w
-Fj(,)101 b Ff(g)3574 7704 y Fc(\003)3774 7770 y Fg(Idf)p
-3774 7835 V 111 w Fa(g)1598 8041 y Ff(j)320 b Fj(struct)111
-b Fa(f)222 b Ff(f)p Fg(Fields)p 3038 8070 472 8 v 110
-w Fj(;)101 b Ff(g)3871 7975 y Fc(\003)4071 8041 y Fg(Fields)p
-4071 8070 V 110 w Fa(g)755 8312 y Fg(Fields)p 755 8341
-V 248 w Ff(\000)-31 b(!)250 b(f)p Fg(Idf)p 2110 8377
-219 8 v 111 w Fj(,)101 b Ff(g)2690 8246 y Fc(\003)2890
-8312 y Fg(Idf)p 2890 8377 V 111 w Fj(:)111 b Fg(T)-14
-b(yp)-9 b(e)p 3389 8377 372 8 v 100 8854 a Fj(T)j(yp)6
-b(e)69 b(Expression:)100 9125 y Fi(Those)75 b(expressions)h(are)g(used)
-f(to)h(sp)5 b(ecify)75 b(the)h(t)-5 b(yp)5 b(e)75 b(of)h(a)f(v)-10
-b(ariable,)80 b(a)c(\014eld,)k(etc.)126 b(W)-15 b(e)75
-b(also)h(talk)g(ab)5 b(out)100 9351 y Fg(imme)-9 b(diate)53
-b Fi(t)-5 b(yp)5 b(e,)55 b(to)g(outline)h(the)e(di\013erence)i(with)f
-Fg(built)k(typ)-9 b(es)p Fi(.)79 b(Immediate)52 b(t)-5
-b(yp)5 b(es)54 b(are)h(prede\014ned)g(t)-5 b(yp)5 b(es,)100
-9577 y(t)-5 b(yp)5 b(e)60 b(iden)-5 b(ti\014ers)61 b(\(references)e(to)
-h(declared)h(t)-5 b(yp)5 b(es\))59 b(or)i(static)f(arra)-5
-b(ys.)855 9848 y Fg(T)-14 b(yp)-9 b(e)p 855 9912 V 249
-w Ff(\000)-31 b(!)200 b Fg(Pr)-9 b(e)g(defT)-14 b(yp)-9
-b(e)p 1969 9912 870 8 v 210 w Ff(j)100 b Fg(Idf)p 3201
-9912 219 8 v 212 w Ff(j)h Fg(T)-14 b(yp)-9 b(e)p 3784
-9912 372 8 v 110 w Fj(^)111 b Fg(Exp)p 4482 9912 301
-8 v 358 10390 a(Pr)-9 b(e)g(defT)-14 b(yp)-9 b(e)p 358
-10454 870 8 v 247 w Ff(\000)-31 b(!)200 b Fj(b)6 b(o)g(ol)211
-b Ff(j)100 b Fj(in)-6 b(t)213 b Ff(j)100 b Fj(real)3758
-11695 y Fi(7)p eop
-%%Page: 8 8
-8 7 bop 100 804 a Fj(F)-17 b(unction)69 b(Declarations:)100
-1075 y Fi(A)61 b(function)f(is)h(declared)f(with)h(the)f(names)f(and)i
-(t)-5 b(yp)5 b(es)59 b(of)h(its)h(formal)e(parameters.)307
-1346 y Fg(F)-14 b(uncDe)-9 b(cl)p 307 1375 730 8 v 247
-w Ff(\000)-30 b(!)199 b Fj(function)111 b Fg(Idf)p 2639
-1410 219 8 v 111 w Fj(\()g Fg(V)-14 b(arDe)-9 b(clList)p
-3161 1375 938 8 v 110 w Fj(\))112 b(returns)f(\()h Fg(V)-14
-b(arDe)-9 b(clList)p 5370 1375 V 110 w Fj(\))100 1888
-y Fg(V)-14 b(arDe)-9 b(clList)p 100 1917 V 248 w Ff(\000)-30
-b(!)249 b(f)p Fg(V)-14 b(arDe)-9 b(cl)p 1920 1917 633
-8 v 110 w Fj(;)101 b Ff(g)2914 1822 y Fc(\003)3114 1888
-y Fg(V)-14 b(arDe)-9 b(cl)p 3114 1917 V 404 2430 a(V)-14
-b(arDe)-9 b(cl)p 404 2459 V 248 w Ff(\000)-30 b(!)249
-b(f)p Fg(Idf)p 1920 2494 219 8 v 111 w Fj(,)101 b Ff(g)2500
-2364 y Fc(\003)2700 2430 y Fg(Idf)p 2700 2494 V 111 w
-Fj(:)111 b Fg(T)-14 b(yp)-9 b(e)p 3199 2494 372 8 v 100
-3166 a Fj(No)6 b(de)68 b(Declaration:)100 3437 y Fi(A)61
-b(no)5 b(de)61 b(can)h(b)5 b(e)61 b(declared)g(with)h(a)f(complete)f
-(description)h(of)g(its)g(dynamic)f(b)5 b(eha)-5 b(viour,)62
-b(or)f(b)-5 b(y)62 b(implicitely)100 3663 y(reusing)51
-b(the)g(dynamic)f(b)5 b(eha)-5 b(viour)52 b(of)f(another)g(no)5
-b(de.)77 b(A)51 b(no)5 b(de)51 b(can)g(ha)-5 b(v)g(e)51
-b(static)g(parameters)e(\(w)-5 b(e)51 b(also)h(talk)100
-3889 y(ab)5 b(out)60 b Fg(template)k(no)-9 b(de)p Fi(,)59
-b(or)i(no)g(\(in)g(whic)-5 b(h)61 b(case)f(w)-5 b(e)60
-b(also)h(talk)g(ab)5 b(out)60 b Fg(actual)k(no)-9 b(de)p
-Fi(\).)894 4160 y Fg(No)g(deDe)g(cl)p 894 4189 738 8
-v 248 w Ff(\000)-31 b(!)199 b Fj(no)6 b(de)111 b Fg(Idf)p
-2923 4224 219 8 v 222 w Fi([)p Fg(StaticPr)-9 b(oto)p
-3415 4189 893 8 v 50 w Fi(])172 b Fg(No)-9 b(dePr)g(oto)p
-4580 4189 833 8 v 110 w(No)g(deBo)g(dy)p 5523 4224 789
-8 v 2002 4431 a Ff(j)320 b Fj(no)6 b(de)111 b Fg(Idf)p
-2923 4495 219 8 v 222 w Fi([)p Fg(StaticPr)-9 b(oto)p
-3415 4460 893 8 v 50 w Fi(])172 b Fj(=)110 b Fg(Idf)p
-4853 4495 219 8 v 222 w Fi([)p Fg(StaticA)-5 b(r)c(gList)p
-5345 4495 1042 8 v 51 w Fi(])171 b Fj(;)100 4973 y Fi(Static)60
-b(parameters)e(are)j(constan)-5 b(ts)59 b(and)h(abstract)g(t)-5
-b(yp)5 b(es,)59 b(or)i(no)5 b(des.)739 5244 y Fg(StaticPr)-9
-b(oto)p 739 5273 893 8 v 250 w Ff(\000)-31 b(!)199 b
-Fd(<<)171 b Ff(f)p Fg(StaticPar)-9 b(am)p 2827 5273 981
-8 v 111 w Fj(;)101 b Ff(g)4169 5178 y Fc(\003)4369 5244
-y Fg(StaticPar)-9 b(am)p 4369 5273 V 110 w Fd(>>)651
-5515 y Fg(StaticPar)g(am)p 651 5544 V 249 w Ff(\000)-31
-b(!)199 b Fj(t)-6 b(yp)6 b(e)112 b Fg(Idf)p 2888 5579
-219 8 v 212 w Ff(j)101 b Fj(const)110 b Fg(Idf)p 4059
-5579 V 111 w Fj(:)h Fg(T)-14 b(yp)-9 b(e)p 4558 5579
-372 8 v 2002 5786 a Ff(j)320 b Fj(no)6 b(de)111 b Fg(Idf)p
-2923 5850 219 8 v 111 w(No)-9 b(dePr)g(oto)p 3253 5815
-833 8 v 100 6328 a Fi(A)62 b(no)5 b(de)62 b(protot)-5
-b(yp)5 b(e)61 b(de\014nes)h(the)g(formal)e(inputs/outputs)h(of)h(a)g
-(no)5 b(de)62 b(\(in)g(some)e(sence)i(the)f("t)-5 b(yp)5
-b(e")62 b(of)f(the)100 6554 y(no)5 b(de\).)79 b(F)-15
-b(ormal)60 b(no)5 b(de)60 b(parameters)e(are)j(t)-5 b(yp)5
-b(ed)60 b(iden)-5 b(ti\014ers)61 b(with)g(an)g(optionnal)g(formal)e
-(clo)5 b(c)-5 b(k\).)799 6825 y Fg(No)c(dePr)g(oto)p
-799 6854 V 249 w Ff(\000)-31 b(!)199 b Fj(\()112 b Fg(Clo)-9
-b(cke)g(dV)-14 b(arDe)-9 b(clList)p 2566 6854 1532 8
-v 108 w Fj(\))111 b(returns)g(\()h Fg(Clo)-9 b(cke)g(dV)-14
-b(arDe)-9 b(clList)p 5369 6854 V 108 w Fj(\))100 7367
-y Fg(Clo)g(cke)g(dV)-14 b(arDe)-9 b(clList)p 100 7396
-V 246 w Ff(\000)-31 b(!)250 b(f)p Fg(Clo)-9 b(cke)g(dV)-14
-b(arDe)-9 b(cl)p 2515 7396 1228 8 v 107 w Fj(;)101 b
-Ff(g)4103 7301 y Fc(\003)4303 7367 y Fg(Clo)-9 b(cke)g(dV)-14
-b(arDe)-9 b(cl)p 4303 7396 V 404 7638 a(Clo)g(cke)g(dV)-14
-b(arDe)-9 b(cl)p 404 7667 V 246 w Ff(\000)-31 b(!)199
-b Fg(V)-14 b(arDe)-9 b(cl)p 2373 7667 633 8 v 110 w Fj(when)111
-b Fg(Idf)p 3707 7702 219 8 v 212 w Ff(j)101 b Fj(\()111
-b Fg(V)-14 b(arDe)-9 b(clList)p 4482 7667 938 8 v 110
-w Fj(\))112 b(when)f Fg(Idf)p 6313 7702 219 8 v 100 8180
-a Fj(No)6 b(de)68 b(Bo)6 b(dy:)100 8451 y Fi(It)68 b(con)-5
-b(tains)69 b(an)g(optionnal)h(set)f(of)f(lo)5 b(cal)70
-b(v)-10 b(ariable)70 b(de\014nitions)g(and)f(a)g(sequence)f(\(seman)-5
-b(tically)68 b(a)h(set\))f(of)100 8676 y(equations.)843
-8947 y Fg(No)-9 b(deBo)g(dy)p 843 9012 789 8 v 249 w
-Ff(\000)-31 b(!)250 b Fi([)o Fj(v)-12 b(ar)112 b Fg(Clo)-9
-b(cke)g(dV)-14 b(arDe)-9 b(clList)p 2872 8976 1532 8
-v 108 w Fj(;)50 b Fi(])172 b Fj(let)222 b Ff(f)p Fg(Equation)p
-5394 9012 709 8 v 111 w Fj(;)101 b Ff(g)6464 8881 y Fb(+)6703
-8947 y Fj(tel)100 9218 y Fi(An)61 b(equation)f(is)h(either)g(an)f
-(assertion)g(or)h(a)f("real")h(equation.)923 9489 y Fg(Equation)p
-923 9554 V 249 w Ff(\000)-31 b(!)199 b Fj(assert)110
-b Fg(Exp)p 3014 9554 301 8 v 213 w Ff(j)101 b Fg(L)-9
-b(eftPart)p 3679 9554 658 8 v 111 w Fj(=)110 b Fg(Exp)p
-4721 9554 301 8 v 100 9760 a Fi(A)53 b(left)g(part)g(is)h(a)f(non-empt)
--5 b(y)51 b(list)i(of)g(left)g(item.)76 b(A)54 b(left)f(item)f(denotes)
-g(a)h(v)-10 b(ariable)54 b("piece":)77 b(a)53 b(full)h(v)-10
-b(ariable,)100 9986 y(the)60 b(\014eld)h(of)f(a)g(structured)g(left)g
-(item,)f(an)h(elemen)-5 b(t)59 b(or)i(a)f(slice)h(of)f(an)h(arra)-5
-b(y)61 b(left)f(item.)974 10257 y Fg(L)-9 b(eftPart)p
-974 10322 658 8 v 249 w Ff(\000)-31 b(!)250 b Fi([)o
-Fj(\()51 b Fi(])283 b Ff(f)o Fg(L)-9 b(eftItem)p 3030
-10322 668 8 v 111 w Fj(,)101 b Ff(g)4059 10191 y Fc(\003)4259
-10257 y Fg(L)-9 b(eftItem)p 4259 10322 V 222 w Fi([)o
-Fj(\))51 b Fi(])964 10799 y Fg(L)-9 b(eftItem)p 964 10864
-V 249 w Ff(\000)-31 b(!)199 b Fg(Idf)p 2373 10864 219
-8 v 212 w Ff(j)101 b Fg(L)-9 b(eftItem)p 2956 10864 668
-8 v 110 w Fj(.)111 b Fg(Idf)p 3903 10864 219 8 v 212
-w Ff(j)101 b Fg(L)-9 b(eftItem)p 4486 10864 668 8 v 110
-w Fj([)112 b Fg(Exp)p 5434 10864 301 8 v 111 w Fj(])2002
-11070 y Ff(j)320 b Fg(L)-9 b(eftItem)p 2373 11134 668
-8 v 111 w Fj([)111 b Fg(Exp)p 3321 11134 301 8 v 112
-w Fj(..)g Fg(Exp)p 3960 11134 V 223 w Fi([)o Fj(step)g
-Fg(Exp)p 5020 11134 V 51 w Fi(])172 b Fj(])3758 11695
-y Fi(8)p eop
-%%Page: 9 9
-9 8 bop 100 1023 a Fj(Expressions:)1046 1294 y Fg(Exp)p
-1046 1358 301 8 v 250 w Ff(\000)-31 b(!)199 b Fg(Pr)-9
-b(e)g(defConst)p 2088 1358 958 8 v 212 w Ff(j)100 b Fg(Idf)p
-3409 1358 219 8 v 212 w Ff(j)h Fg(UnOp)p 3992 1358 470
-8 v 110 w(Exp)p 4572 1358 301 8 v 213 w Ff(j)g Fg(Exp)p
-5237 1358 V 111 w(BinOp)p 5648 1358 519 8 v 111 w(Exp)p
-6278 1358 301 8 v 1717 1565 a Ff(j)320 b Fj(if)111 b
-Fg(Exp)p 2321 1629 V 112 w Fj(then)g Fg(Exp)p 3253 1629
-V 112 w Fj(else)g Fg(Exp)p 4109 1629 V 212 w Ff(j)101
-b Fj(with)111 b Fg(Exp)p 5290 1629 V 112 w Fj(then)h
-Fg(Exp)p 6223 1629 V 111 w Fj(else)f Fg(Exp)p 7078 1629
-V 1717 1836 a Ff(j)320 b Fg(Exp)p 2088 1900 V 51 w Fi(.)p
-Fg(Idf)p 2490 1900 219 8 v 212 w Ff(j)100 b Fg(Exp)p
-3072 1900 301 8 v 51 w Fj([)51 b Fg(Exp)p 3532 1900 V
-51 w Fj(])212 b Ff(j)101 b Fg(Exp)p 4305 1900 V 51 w
-Fj([)50 b Fg(Exp)p 4764 1900 V 51 w Fj(..)h Fg(Exp)p
-5282 1900 V 162 w Fi([)p Fj(step)f Fg(Exp)p 6221 1900
-V 51 w Fi(])111 b Fj(])1717 2107 y Ff(j)320 b Fg(NaryOp)p
-2088 2171 626 8 v 50 w Fj(\()162 b Ff(f)p Fg(Exp)p 3098
-2171 301 8 v 51 w Fj(,)101 b Ff(g)3699 2041 y Fc(\003)3838
-2107 y Fg(Exp)p 3838 2171 V 52 w Fj(\))1717 2378 y Ff(j)320
-b Fj(\()223 b Ff(f)p Fg(Exp)p 2483 2442 V 111 w Fj(,)101
-b Ff(g)3144 2312 y Fc(\003)3344 2378 y Fg(Exp)p 3344
-2442 V 112 w Fj(\))1717 2649 y Ff(j)320 b Fg(Idf)p 2088
-2713 219 8 v 111 w Fa(f)222 b Ff(f)p Fg(Idf)p 2836 2713
-V 111 w Fi(=)60 b Fg(Exp)p 3368 2713 301 8 v 111 w Fj(;)101
-b Ff(g)4029 2583 y Fc(\003)4229 2649 y Fg(Idf)p 4229
-2713 219 8 v 111 w Fi(=)60 b Fg(Exp)p 4761 2713 301 8
-v 112 w Fa(g)1717 2920 y Ff(j)320 b Fg(No)-9 b(deExpr)g(ession)p
-2088 2984 1247 8 v 111 w Fj(\()222 b Ff(f)p Fg(Exp)p
-3840 2984 301 8 v 112 w Fj(,)101 b Ff(g)4502 2854 y Fc(\003)4702
-2920 y Fg(Exp)p 4702 2984 V 112 w Fj(\))100 3462 y Fi(In)-5
-b(teger)59 b(and)i(\015oating)f(p)5 b(oin)-5 b(t)61 b(notations)f(are)h
-(follo)-5 b(wing)61 b(the)f(ansi-c)h(syn)-5 b(tax.)389
-3733 y Fg(Pr)c(e)g(defConst)p 389 3797 958 8 v 249 w
-Ff(\000)-31 b(!)199 b Fg(Inte)-9 b(ger)p 2088 3797 552
-8 v 211 w Ff(j)101 b Fg(R)-9 b(e)g(al)p 3003 3762 338
-8 v 210 w Ff(j)100 b Fj(true)213 b Ff(j)101 b Fj(false)100
-4275 y(Op)6 b(erator)69 b(denotations:)100 4546 y Fi(The)59
-b(e\013ectiv)-5 b(e)58 b(no)5 b(de)58 b(construction)g(denotes)g(an)h
-(actual)f(op)5 b(eration)59 b(wic)-5 b(h)59 b(can)g(b)5
-b(e)59 b(a)f(predi\014ned)h(op)5 b(eration,)100 4771
-y(or)60 b(a)h(user)f(de\014ned)g(op)5 b(eration,)61 b(in)g(whic)-5
-b(h)61 b(case)f(a)g(list)h(of)f(e\013ectiv)-5 b(e)60
-b(static)g(parameters)f(can)h(b)5 b(e)61 b(giv)-5 b(en.)100
-5042 y Fg(No)c(deExpr)g(ession)p 100 5107 1247 8 v 249
-w Ff(\000)-31 b(!)199 b Fj(op)6 b(erator)110 b Fg(Pr)-9
-b(e)g(defOp)p 2981 5107 730 8 v 1717 5313 a Ff(j)320
-b Fg(Idf)p 2088 5378 219 8 v 222 w Fi([)p Fg(StaticA)-5
-b(r)c(gList)p 2580 5378 1042 8 v 51 w Fi(])100 5584 y(The)60
-b(k)-5 b(eyw)g(ord)61 b Fj(if)111 b Fi(is)61 b(denoting)f(the)h
-(ternary)f(op)5 b(eration)61 b Fj(if)50 b Fi(...)p Fj(then)g
-Fi(...)p Fj(else)e Fi(...)616 5855 y Fg(Pr)-9 b(e)g(defOp)p
-616 5920 730 8 v 248 w Ff(\000)-31 b(!)199 b Fg(Unop)p
-2088 5920 424 8 v 212 w Ff(j)101 b Fg(BinOp)p 2875 5920
-519 8 v 211 w Ff(j)g Fj(if)923 6397 y Fg(Unop)p 923 6462
-424 8 v 250 w Ff(\000)-31 b(!)199 b Fj(not)212 b Ff(j)101
-b Fj(-)212 b Ff(j)100 b Fj(pre)212 b Ff(j)101 b Fj(curren)-6
-b(t)828 6939 y Fg(BinOp)p 828 7004 519 8 v 249 w Ff(\000)-31
-b(!)199 b Fd(->)161 b Ff(j)100 b Fj(when)212 b Ff(j)101
-b Fj(or)212 b Ff(j)100 b Fj(xor)212 b Ff(j)101 b Fj(and)212
-b Ff(j)100 b Fd(=>)161 b Ff(j)101 b Fj(=)211 b Ff(j)101
-b Fd(<>)160 b Ff(j)101 b Fd(<)161 b Ff(j)100 b Fd(>)1717
-7210 y Ff(j)320 b Fd(<=)161 b Ff(j)100 b Fd(>=)161 b
-Ff(j)100 b Fj(+)212 b Ff(j)100 b Fj(-)212 b Ff(j)101
-b Fj(*)211 b Ff(j)101 b Fj(/)212 b Ff(j)100 b Fj(div)213
-b Ff(j)100 b Fj(mo)6 b(d)211 b Ff(j)101 b Fd(^)161 b
-Ff(j)100 b Fd(|)721 7752 y Fg(NaryOp)p 721 7817 626 8
-v 249 w Ff(\000)-31 b(!)199 b Fd(#)161 b Ff(j)101 b Fj(nor)100
-8294 y(Static)70 b(argumen)-6 b(ts:)100 8565 y Fi(The)88
-b(strict)f(w)-5 b(a)g(y)88 b(is)g(to)g(sp)5 b(ecify)87
-b(the)h(nature)f(\(const,)94 b(t)-5 b(yp)5 b(e)87 b(or)h(no)5
-b(de\))87 b(of)h(a)g(e\013ectiv)-5 b(e)87 b(static;)101
-b(ho)-5 b(w)g(ev)g(er,)100 8791 y(the)79 b(nature)h(can)g(b)5
-b(e)80 b(a)-5 b(v)g(oided)80 b(when)h(the)e(parameter)g(is:)119
-b(a)80 b Fj(simple)f Fi(arithmetic)g(and)h(logic)h(expression)100
-9017 y(\(t)-5 b(ypically)66 b Fd(n-1)p Fi(\),)e(a)i(predi\014ned)g(t)-5
-b(yp)5 b(e)65 b(or)g(constan)-5 b(t)65 b(\(or)g(an)g(arra)-5
-b(y)66 b(of)14 b(\),)66 b(a)f(predi\014ned)h(op)5 b(erator,)66
-b(or)g(ev)-5 b(en)65 b(a)100 9243 y(single)51 b(iden)-5
-b(ti\014er)51 b(\(in)g(this)f(case,)i(the)e(compiler)g(will)i(try)f(to)
-f(compute)e(the)i(nature)h(according)f(to)h(its)f(naming)100
-9468 y(en)-5 b(vironmen)g(t\).)305 9739 y Fg(StaticA)g(r)c(gList)p
-305 9804 1042 8 v 250 w Ff(\000)-31 b(!)199 b Fd(<<)171
-b Ff(f)p Fg(StaticA)-5 b(r)c(g)p 2542 9804 737 8 v 111
-w Fj(,)101 b Ff(g)3640 9673 y Fc(\003)3840 9739 y Fg(StaticA)-5
-b(r)c(g)p 3840 9804 V 111 w Fd(>>)609 10010 y Fg(StaticA)k(r)c(g)p
-609 10075 V 250 w Ff(\000)-31 b(!)199 b Fj(t)-6 b(yp)6
-b(e)112 b Fg(T)-14 b(yp)-9 b(e)p 2603 10075 372 8 v 212
-w Ff(j)100 b Fj(const)111 b Fg(Exp)p 3927 10075 301 8
-v 212 w Ff(j)101 b Fj(no)6 b(de)111 b Fg(No)-9 b(deExpr)g(ession)p
-5141 10075 1247 8 v 1717 10281 a Ff(j)320 b Fg(Pr)-9
-b(e)g(defT)-14 b(yp)-9 b(e)p 2088 10346 870 8 v 160 w
-Ff(f)p Fj(^)110 b Fg(Expr)-9 b(ession)p 3425 10346 852
-8 v 102 w Ff(g)4469 10215 y Fc(\003)4770 10281 y Ff(j)100
-b Fg(Pr)-9 b(e)g(defConst)p 4921 10346 958 8 v 161 w
-Ff(f)p Fj(^)111 b Fg(Expr)-9 b(ession)p 6347 10346 852
-8 v 101 w Ff(g)7390 10215 y Fc(\003)1717 10552 y Ff(j)320
-b Fg(SimpleExpr)-9 b(ession)p 2088 10617 1381 8 v 211
-w Ff(j)101 b Fj(op)6 b(erator)110 b Fg(Pr)-9 b(e)g(defOp)p
-4726 10617 730 8 v 210 w Ff(j)100 b Fg(idf)p 5819 10617
-205 8 v 3758 11695 a Fi(9)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/doc/lpp.toc b/doc/lpp.toc
deleted file mode 100644
index f375e18b..00000000
--- a/doc/lpp.toc
+++ /dev/null
@@ -1,13 +0,0 @@
-\contentsline {section}{\numberline {1}types}{3}
-\contentsline {subsection}{\numberline {1.1}Immediate types}{3}
-\contentsline {subsection}{\numberline {1.2}Type declaration and built types}{3}
-\contentsline {subsection}{\numberline {1.3}Use of structured types}{4}
-\contentsline {section}{\numberline {2}Static parameters}{4}
-\contentsline {subsection}{\numberline {2.1}Declaration of template node}{4}
-\contentsline {subsection}{\numberline {2.2}Node expression}{5}
-\contentsline {subsubsection}{\numberline {2.2.1}Predefined operators}{5}
-\contentsline {subsubsection}{\numberline {2.2.2}Template instanciation}{5}
-\contentsline {subsection}{\numberline {2.3}Static recursion}{6}
-\contentsline {subsection}{\numberline {2.4}Static arrrays}{6}
-\contentsline {section}{\numberline {3}Name space and package}{6}
-\contentsline {section}{\numberline {A}Abstract syntax}{7}
diff --git a/doc/syntax.dvi b/doc/syntax.dvi
deleted file mode 100644
index acf6757f4a4f27577ad619c783f1c98528c66232..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13980
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
H6ZHFUEp!4Y

diff --git a/doc/syntax.ps b/doc/syntax.ps
deleted file mode 100644
index 61eabc9b..00000000
--- a/doc/syntax.ps
+++ /dev/null
@@ -1,1251 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: syntax.dvi
-%%Pages: 3
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips syntax.dvi -o syntax.ps
-%DVIPSParameters: dpi=1200, compressed
-%DVIPSSource:  TeX output 2002.05.24:1448
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 1200 1200 (syntax.dvi)
-@start
-%DVIPSBitmapFont: Fa cmtt10 10.95 9
-/Fa 9 125 df<DB07C0EC07C0DB1FF0EC1FF04B6C4A7EA24B6C4A7EA703FF15FF4C5DA8
-4A5D4C5DA8000FBB12FE003FF2FF80481BC0A2BD12E0A56C1BC0A26C1B80000FF2FE00C7
-000F902680000F0180C7FCA84A5D93C791C8FCA94A5D4B5DA8000FBB12FE003FF2FF8048
-1BC0A2BD12E0A56C1BC0A26C1B80000FF2FE00D800019026F0000101F0C8FCA8495D4B5D
-A8495D4B5DA76D496D5BA26D90C76C90C9FCD9007CEC007C536F7AEE60>35
-D<000FBA12FE003FF1FF80481AC0A2BC12E0A56C1AC0A26C1A80000FF1FE004B0D76BD60
->45 D<ED01F0ED07F84B7E82151FA2153FA2157FA215FF5CA25C5C5C5C5C5C49B5FC1307
-133F000FB6FC123F5AA2B7FC157F14FE14F86C13F014C0383FFE00EA1FF0C8FCB3B3B3AD
-0007B912E0001F18F84818FCA24818FEA46C18FCA26C18F8000718E03F716EF060>49
-D<1A3EF2FF804F13C019074F13E0193F614EB5FC60060F14C0183F4E14804DB5EAFE004D
-14F8050F5C4D14C0057F5C94B548C7FC04035C4C14F0041F5C047F148093B548C8FC0303
-5C4B14F0031F5C4B148092B6C9FC4A14FC02075C021F14E04A5C91B6CAFC4914FC01075C
-4914E0013F5C4991CBFC48B55A4814F8000F5C003F14C04891CCFC5CB512F85C14C014F0
-806C13FE806C14C0000F14F00003806C14FE6C6C7F6D14C0010F806D14F80101806D14FF
-023F14C06E80020714F80201806E14FF033F806F14E00307806F14FC030080706D7E041F
-14E00407807014FC040080716D7E051F807114F00503807114FE716CEBFF807214C0180F
-060314E084727E85190F7313C01901731380F23E004B5D76E560>60
-D<000FBB12F8003F1AFE4886A2BD1280A56C1B00A26C62000F1AF8D0FCAF000FBB12F800
-3F1AFE4886A2BD1280A56C1B00A26C62000F1AF8512979CB60>I<EA0F80EA3FE0487E13
-FC487E6D7E8014F0806C13FE6E7E6C80000F14F00003806C14FE6C6C7F6D14C0010F806D
-14F80101806D14FF023F14C0020F806E14F80201806E14FF033F806F14E00307806F14FC
-030014FF7080041F14E00407807014FC040080716D7E051F807114F00503807114FE716C
-EBFF80061F14C084060314E084727E4EB5FC60060F14C060067F14804DB5EAFE004D14F8
-050F5C4D14C0057F5C94B548C7FC04035C4C14F0041F5C047F148093B6C8FC030314FC4B
-14F0031F5C4B148092B6C9FC4A14FC02075C4A14E0023F5C91B6CAFC4914FC01075C4914
-E0013F5C4991CBFC48B55A4814F8000F5C003F14C0485C4ACCFCB512F85C14C05C49CDFC
-6C5A13F06C5AEA0F804B5D76E560>I<ED0780ED1FC0ED7FF0913801FFFC020713FF021F
-14C0027F14F049B612FC010715FF011F16C0017F16F048B812FC4883000FEFFF80003F02
-F815E048DAE03F14F04B7EB6D8000714F802FC13014A7F6C01E0023F13F00280140F6C48
-C8000313E04981D81FF09238007FC0D80FC0EE1F800003CAEA06003D1B6FEE60>94
-D<943803FFE0001FB500C0013F13FC486E48B6FC48DAF00715C0B6D8F81F15F0047F8193
-B77E03F98292B8FC866C867E6CDCFE0180D800019238E0003F05807F4CC76C7F5E4C8004
-E0825E855E93C8FCA25DA25DA45DB3B3001FB7D88003B7FC48DCC00F168048704816C0B8
-00F017E060A4846C04E017C06C4C6C16806CDC800316005B4F7ECE60>110
-D<EA0F80EA3FE0EA7FF0A2EAFFF8B3B3B3B3B3B3B3A7EA7FF0A2EA3FE0EA0F800D8D57FD
-60>124 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmbsy10 10.95 2
-/Fb 2 104 df[<96380FFFE00607B512F0187F0503B6FC171F177F4CB712E00407EDE000
-4C4AC7FC4C14F04C14C04C91C8FC93B512FC4B5C604B5C605D605DA295C9FCB3B3AF5D5F
-A25D4B5BA292B55A4A5C5C4A5C021F5C027F5C49B548CAFC010F5C90B612F0007F15C0B7
-CBFC15F815C015F815FF6C15C0C615F0010F14FC0101806D6C6D7E021F800207806E8080
-6E806F7FA26F7F81A28381B3B3AF84A2818481846F80846F807013FF7014C07014F07014
-FE70ECFFE00401EDFFE0706C15F0171F1703EF007F1807DE000F13E0>76
-181 114 263 105 102 D[<EA7FFFB512FEECFFE015FCEDFF8016E06C15F8C66C14FE01
-0780010081023F80020F800203806E80806F7F81838183A281B3B3AF8481A2846F80A26F
-806F8084707F706D7E7014E0040714F87014FF040015F0053FECFFE0050F15F01701EF00
-3F4DB6FC170F053F15E094B6EAF000040392C7FC4C14F8041F14E04C14804C49C8FC93B5
-5A604B5C4B5CA24B5C60A25D95C9FCB3B3AF5DA25F5D5F5D92B55A5C4A5C020F5C023F5C
-91B65A010792CAFC017F5C007FB612F8B712E0168003FCCBFC15E04ACCFC6C90CDFC>76
-181 114 263 105 I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmr8 8 1
-/Fc 1 44 df<EF07804D7EB3B3A7007FBD12F0BE12F8A46C1CF0CAD80FC0CAFCB3B3A771
-5A5D5E78CF6E>43 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmsy8 8 1
-/Fd 1 4 df<15F04A7E4A7EA2815DA7003EEE07C0007FEE0FE09026C001F8133FD8FFE0
-ED7FF001F015FF01FC1403D87FFE4A13E0D9FF81131F001F01C1491380000701F19038FF
-FE000001D9F9F913F827003FFDFB13C0010FB6C7FC010314FC010014F0021F1380DA07FE
-C8FC91381FFF8091B512F0010314FC010F14FF90263FFDFB13C02701FFF9F913F80007D9
-F1F813FE001F01C190383FFF80007F01816D13E0D9FE011307D8FFFC6E13F001F0140001
-E0157FD87FC0ED3FE090260003FC130F003EEE07C0C792C7FCA7815DA26E5A6E5A343977
-BD47>3 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmsy10 10.95 5
-/Fe 5 107 df<003FBF12F8481EFCC012FEA46C1EFC6C1EF86F0871B08E>0
-D<F81FC08DA48D200FA28D2007A28D2003A28D20018D8C8E217F8E213F8E7B7EA27B7E7B
-7E8E21037B7E8F7B7F7C7E7C7E7C7EFA0FFE7C7E7C7F7C13E07C7FFB7FFC7DB4FC7D13C0
-003FC512F048A112FCC5B5FCA11480A2A114006CA112FC6CA112F0D6001F13C05990C7FC
-FB7FFCFBFFF0585B5813805890C8FC585AFA1FF8585A585A585A575BA0C9FC575A21076A
-575A575AA2575A6A217F6A21FF9FCAFC6869200369A2200769A2200F69A2201F69A469A1
-5E76DBB6>33 D[<953801FF80067F13C00503B5FC171F057F14804CB5EAE000040749C7
-FC4C13F04C13C04C90C8FC4C5A4C5A4B13F05D4B5B5F5D5FA25D94C9FCB3B3B05D5EA215
-7F5E15FF5E4A5B4A5B4A5B4A5B023F90CAFCECFFFE01035B011F13F048B55A007F1480B5
-00FCCBFC14E014FC6CEBFF80000114E0D8001F7F010313FC01007FEC3FFF020F7F6E7F6E
-7F6E7F6E7F82157F82153FA28281B3B3B08381A28381836F7F816F13FC707E707E7013C0
-7013F07013FE0401EBFFE0706CEBFF80051F14C01703EF007F06011380>66
-181 116 263 91 102 D[<EA7FF0B57E14F814FF6C14C0000114F0D8000F13FC01037F90
-38007FFF6E7F020F7F6E7F6E7F6E7F6E7F157F82153FA28281B3B3B08381A2838183816F
-7F6F7F83707E93381FFF80707F7013F07013FE0400EBFFE0053FEBFF80050714C0170017
-07053F148094B5EAE000040349C7FC4C13F04C13C04C5BDC7FFEC8FC4C5A5F4B5B4B5B5D
-5F5D5FA25D94C9FCB3B3B05D5EA2157F5E15FF4A5B4A5B4A5B4A5B023F5B4A90CAFC9038
-03FFFE010F5B48B512F0007F14C0B6CBFC14F81480D87FF0CCFC>66
-181 116 263 91 I[<123C127E12FFB3B3B3B3B3B3B3B3B3AF127E123C>8
-181 107 263 51 106 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmti10 10.95 37
-/Ff 37 122 df[<F403F0527E1C0F1C1FA21C3FA21C7FA21CFF63A2638963A26363A263
-A263A298B5FCA262621BFB1A0709F37FF20FE3A2F21FC3F23FC11B811A7F1B011AFF1AFE
-F101FCA2F103F819071AF0190F08E080F11FC0A2F13F80077F7F97C7FC61611801614E5A
-A24E5A180F61181F4F824E5AA24EC87E60601701601703604D5A170F60171F60053F8460
-4DC9FCA205FE8216015F4CBAFCA25EA25E5EA2DC3FC0C9123F5F047F8594CAFC16FEA24B
-488315035E15075E4B5AA24B5A153F5E157F93CBFC4B865D4A5AA24A488414075D140F14
-1F143F147FEB01FF496D4E7F011F6D187F90B66C0403B6FC003F03F80307B812C0486F4B
-17E0B7FCA220C05E267FFE3F496F02C31480>115 130 117 257
-135 65 D<4BBB12E01EFE4BF2FFC01FF01FFC1FFF6F8892C7001F49C8000380050701F8
-DB007F7F0C1F7F787F4F707F787FA24D727F61781480A25F4F8321C0A25F61A35F96CBFC
-A394B595B5128060A34C4F140060545BA24C4F5B60545B684C4F5B4E5F545B684C96B5C7
-FC4E4C5B535B0B0F5B4C4E13E04E4C5B9AB5C8FC525B4C050713F84E033F13E00903B512
-8095B800FCC9FC4C18E0A21DFE777E93B5C9001F13E04D040313F8767F766CB4FC4B737F
-4D717F8B777F4B854D85A2777F5D4D8589A24B875FA35D5FA35D5F65A24B6394CBFC6567
-92B5FC4C6067654A644C6067654A97B55A4C625291C8FC644A4F5B4C4D5B525B525B4A4F
-5B4C4CB55A515C4A060F49C9FC093F5B4A494BB55A0103B56C030F14E0003FBD12804899
-CAFC1CFC1CE01C80BC00F8CBFC6C97CCFC7A7C75FB80>I<972607FFE0150797B500FEED
-0F80070FDAFFC0EC1F00077F03F05C0603B76C5C060F04FE5C063F70495A95B6D8801FEB
-800305039126F00001EBC007050F02809039007FE00F4D01FCC8D81FF05B057F01F09238
-0FF81F94B50080923803FC3F040391C90001137F4C01FC71485A4C01F070B5FC043F4983
-4C138093B5CB6C5B4B5B4B01F8844B5B4B49725B4B5B4B5B4B90CC7E4B48635C4A5B4A49
-854A4963A24A5B4A5B4A9AC7FC5E91B5CDFC5B494963A2495BA24949635B5D5B4B635B5D
-90B51B07A2484A745A9BC9FC4891D2FCA3485BA3485BA35A5CA35A5CA35A5CA55CB5FCA5
-F503E04A507EA21D0F66A31D1F6C651D3F66A21D7F9BC9FC6C646E621C01525A6C641C07
-6E626C1B0F525A6E4F5A6C641C7F6C6D4FCAFC515A6C6D4E5A515A6C6D4E5A6D6C4E5A6D
-4F5A6F4D5A6D6D4C48CBFC6D6D4C5A6D6D4C5A6D01FCEE1FF86D6DEE7FF06D6D6C913801
-FFC06E01E002075B6E01FC023F90CCFC020F903AFFC007FFFC6E91B612F002015F6E6C16
-80031F03FCCDFC030715F0DB007F91CEFC040713F0798465FF82>I<4BBB7E4B1AFC4BF2
-FF801FE01FF81FFE6F8792C7003F01FCC8001F80050F01F0030114E0776C7F0C1F7F4F04
-077F8A0C007F4D737E4F717FA2797F4D737F4F838D8B5F96CB808B8D94B5FC4E848DA25E
-607A7EA25E60A35E602280A25E4E96B5FCA35E60A222004C6260A35E95CCFC676993B5FC
-5F67A24B655F67A24B655F67695D4D6169A25D4D4F5BA2694B98B5FC4D98C7FC66685D4D
-4E5BA2545B5D94CC485B686692B5634C4F5BA25490C8FC4A515A4C6265535B4A505B4C62
-535B535B4A5090C9FC4C4E5A535A525B4A07075B4C4D5B525B0A7F5B4A96B5CAFC4C0403
-13FC090F5B4A063F13E050B55A4A49030F91CBFC0107B56C92B55A007FBC12F8BD12E099
-CCFC1BFC1BE098CDFC6C19E0817C74FB89>I<0303BE12C04B1DE0A58192C76C49C97E05
-0F01F8040314C0F6007F4F171F1F075F8B4F8321805F8B61A25F210061A294B5FCA296CC
-FCA24C63A260A25EA24E1801E20FC05C4C4D7E6560A24C173F536D5A4E96C7FCA24C177F
-9ACAFC4E5DA25E515A4E1403A24C1607F31FFC4E147FF207FF93B9FC64A35D64A24DC712
-0F4B1601746C5A4D153FA25D645FA25D645F1F3F4B057F4B7E99C890C7FC5F674B4D5D51
-14014D611B7C4B94C81203674D18076792B5190FA294CC485AA24A641E3F4C197F674A1B
-FF9CC8FC4C60664A1A031D074C611D0F4A505A1D3F5E535A4AF101FF525B4C170F1C3F4A
-96B55A1B034A49043F5C0107B56C030FB6FC007FBEFCBFC9FCA265A36C647B7B74FA7B>
-I<4BBEFC4B1D80A35DA28192C7003F91C9FC050701FC16070C0014004F173F8B4D858B61
-8B5F68611F015FA261A25FA24F60A294B5FCA296CBFCA25E1F034E61A25EF407C04E4B7E
-A24C171F536D5A4E95C8FCA24C173F65601C7F5E9ACAFC4E5D635E515A4E14071B0F4C16
-7F973807FFFC95B7FCA293B9FC64A35D95C7000F5B4D14001B7F4B173F644D151FA25D64
-5F1B3F5D645FA24B177F99CBFC5FA25D1B3E4D92CCFCA25DA25FA292B5FCA294D0FCA25C
-A25EA25CA25EA25CA25EA25CA25EA25CA25C0103B6FC003FB812FE4883A260B9FCA26CD9
-FE0F5C797B75FA77>I<4BB5D8F83FB5FC4B91B71280A34B1800A26F5F92C7003F02E0C7
-FC050749C8FC61A261A35F61A35F61A35F61A35F61A394B5FC96C9FCA35E60A35E60A35E
-60A35E60A35E60A35E60A35E60A393B5FC95CAFCA35D5FA35D5FA35D5FA35D5FA35D5FA3
-5D5FA35D5FA392B5FC94CBFCA35C5EA35C5EA35C5EA35C5EA25CA25C0103B512FE003FB8
-12E04883A2B95AA36CD9FE0F5C517C76FB46>73 D<4BB5D8F83FB512E04B91B77E5D64A3
-6F6092C7003F02E0C9FC050F49CAFC19F8A261A35F61A35F61A35F61A394B5FC96CBFCA3
-5E60A35E60A35E60A35E60A35E60A35E60A35E60A393B5FC95CCFCA35D5FA35D5FA35D5F
-A35D5FF501F8F503FC4B1AF85F1D071EF05D4D170F1EE0A24B191F4D18C0A21D3F92B519
-8094CB127FA2F5FF005C4C5F651C035C4C4D5AA21C0F4A4F5A5E1C3F525A4A19FF4C5E51
-5B634A181F4C4C5B98B5FC4A1703080F5C4A4992B6FC0107B56C140F007FBDC7FCBEFCA2
-64A36C63667C74FB72>76 D<4BB600FC94B538C3FFFE4B6F4C91B6FC4B62A285A26F706F
-16FE92C7001FDE000315000507DF007F13F074051F13C04D99C7FC7A5A7460695F746018
-EF74171F173F06C76286203FEF7FC306836D60A20681197F05FF80060162847516FF4C80
-4D6F94C8FCA2735F0403824D628575150316074D6D60871F07040F804D6F5E8575150F16
-1F4D6D60871F1F043F804D705DA274163F047F834D628676147F04FF8194C86E5DA27416
-FF4B844C98C9FC86765B15034C6F5E8874150315074C715C86F58007150F4C705D1DC01E
-0F031F834C06E05BA275141F033F19F04C705D1DF81E3F037F834C06FC5BA275147F03FF
-19FE93CA5E879AB5FC5C4B7192CAFCA28814034B6288A214074B725BA3020F854B62A202
-1F85A2023F735B147F4A7E010386010F01FE6290B612C0007FDBFF8082B87E661D7FA25F
-6C01C391CB6C5A907C75FB87>78 D<97380FFFC04FB512FC071FECFFC096B712F0060316
-FC061F16FF067FD9F001804DB5C7003F13E04D01F802077F050F01E06E7F053F01800200
-13FE4D48C96C7E932601FFF8707F4C4982040F01C0707F4C49707F4C90CA6C7F4C4883DC
-FFF8854B49717F03075B4B49727E4B5B4B747E4B90CCFC4C1B804B48854A491BC05C4A5B
-4A49854A491BE0A24A5B4A1DF093CDFC4A5A5B5D5B495B20F8495BA2495B5BA2495BA290
-B55AA34891CE5AA2481FF05C5A665C5AA220E0484963A4484998B512C0A4485214805CA2
-531400A34A505BB5FC6765A2535BA2674A626765679AB5FC67A25291C7FC525B7E525B66
-6E6166525B6C6366525B6C98B5C8FC6E62636C505B515B6E4E5B6C646E4E5B6C505B5190
-C9FC6C6D4E5A6C6D4D5B5013F06D6C050F5B6D6D4C5B505B6D6D4C48CAFC6D6D4B485A6D
-6D03075B6D01FC4B13E06D6D033F13806D6C6C6C49B5CBFC6E01E0010713FC6E01FC017F
-13F0020790B712C002014CCCFC6E6C15F8031F15C0030102FCCDFCDB001F1380758465FF
-8C>I<4BBA12FE4BF1FFF04B1AFE787E1FE01FF86F8792C7003F01FCC86C7F050F01F003
-077F0B0014807813C04F041F13E07813F07813F85F4F7013FCA27813FE5F61A220FF5F96
-CAFCA394B5FC60A34C6160A34C4F13FE60A220FC4C616020F8664C1BF0605413E020C04C
-614E19809BB51200674C604E4C5B535B535B4C4E5B95CA4813805390C7FC52485A93B504
-075B4D041F13F099B512C0090F5C4B90B948C8FC1DF81DC052C9FC4B18F051CAFC05FCCE
-FCA25D5FA35D5FA35D5FA35D5FA35D5FA392B5FC94CFFCA35C5EA35C5EA35C5EA35C5EA3
-5C5EA25CA25C0107B512F8007FB87EB97EA4606CD9FC3F91CEFC787C74FB7B>I<4BBA12
-E04B19FF1EF01EFC1EFF1FC06F1BF092C7001F49C7000180050701F8DA001F7F0B0313FF
-0B00804F707F8A787F4D727F4F828C8A4D86618CA25F61A34D8696CAFC68A294B55F60A3
-4C4F5B60A2545B5E4E6166684C634E5F9BB55A9DC7FC4C4E5B4E60535B535B4C4E5B4E4C
-13800B7F90C8FC535A4C050313F84E030F5B0A3F13C051B5C9FC4C043F13FC95B812E01D
-800AF8CAFC93B9FC884DC813FF091F7F4B717F4D03037F757F894B717F4D707EA2894B84
-4D84A35D4D84A35D5FA2645D4D60A299B5FC5D94CAFCA26392B5FC4C96C9FCA2635C5EA3
-4A604C60A2201F4AF53F805EA2207F4A1E005E684A651F014A725E0103B500F8505A003F
-B86C8048714E5A754B5A766C131FB9704A5A769038C0FF806CD9FC1F4A6F90B5C7FCCF00
-0314FC765CE2003F13E00B031380798075FB85>82 D<DF1FFF15384EB500F0147C060F02
-FC14FC063F02FFEB01F895B7EA80030503EEE0074DD9F003EBF00F051F902780007FF813
-F04D48C7380FFC1FDD7FF8913803FE3FDDFFE00201137F0403496EB512E04C90C97E4C5A
-4C48824D7013C04C5A167F4C48824B491880A24B49824B90CAFC1E005D5E151F4C60153F
-1C03157F4C601C07A215FF65A35C65A21C0F82765A99C8FC82A282836E808317F8EFFF80
-6F14F018FF19E06F15FCF1FFC06F16F86F16FE747E6F836F836F17F86F83163F70820407
-82040183EE003F050382EF007F0607811800190F070180737E8686868886A286A386A2EB
-0F80496C61133F5CA3017F6291CBFCA2624962A3505B5A99C8FC626348191F6E601A3F63
-484F5A80505A6E4C5B48606E606E4C90C9FC4F5A486DEE3FFC02FF4C5A01FD6D4B5A01F9
-01E002035BD83FF001F8020F5B496CB4023F90CAFC496C9039F001FFFE020F90B65A4848
-6C16F0496C5E007E01001680007C021F02FCCBFC48020314F00070DA003F90CCFC668473
-FF66>I<0107BF1280491EC0A35BA349912680000791C7000F148003F0C702FC14000380
-1A3F4948C84A150F4A8702F04B8349481D004A4D815C485F91C9FC4960000366495EA248
-4860A24E60485A625B001F94B51603A24995C95B123F495DA2007F6090C919074D615A48
-60A25F007C775ACA4A93C8FCA25FA261A25FA261A25FA261A25FA261A294B5FCA296CDFC
-A25EA260A25EA260A25EA260A25EA260A25EA260A25EA260A25EA260A293B5FCA295CEFC
-A25DA25FA25DA25FA25DA25FA25DA25FA25DA2157F020FB67E001FBA7E4885A35AA26CDA
-FC0F5D727B60FA82>I<0003B500F0B500F892B53887FFFC4891B66C4A91B512FE4862A4
-6C4D6E16FCC76C0280C90003ECFE00021F01F8CB6C13E04C061F138054C7FC4C725A664A
-63A24C61A24A1A1F665EA291B5193F6693CCFCA2491B7F9BC8FC5DA24963655DA2491A01
-655DA2491A03655DA2491A07655DA2491A0F655DA2491A1F655DA290B5193F6592CCFCA2
-481B7F9AC9FC5CA24863645CA2481A01645CA2481A03645CA2481A07645CA2481A0F645C
-A2481A1F645CA21B3FB56291CCFC1B7F99CAFCA26349611A01631A03631A07631A0F505A
-007F621A3F505A98CBFC003F616D4D5A4F5A6C4E5A4F5A6C6D4C5A4F5A6C6D4C5A4E48CC
-FC6C6D4B5A6C6DED0FFC6C6DED3FF86D6CEDFFF06DB402035B6D01C0011F13806DD9FC01
-B5CDFC6D90B612FC6D5E010016E0023F1580020F02FCCEFC020114F09126001FFECFFC77
-805CFB87>I<263FFFF0B500F8933A0FFFFC7FFC4890B66C4C90B512FEB85FA46C4C7015
-FCD8001F02F0CA0001150001070280DD003F13F06D49CC6C13C07790C7FC4B626F626666
-535A666D1B3F6653C8FC65651C016F611C0365525A6D1A0F651C1F65525A1C7F9AC9FC70
-5F64515A1B036E611B0764515A1B1F641B3F705F51CAFC63636E1701631A0363505A1A0F
-6370151F63505A1A7F6E95CBFC62624F5A1903621907705D4F5A191F626E163F624FCCFC
-61611801705C1803614E5A6E150F61181F614E5A187F96CDFC705B604D5A17036E5D1707
-604D5A171F60173F04FE5B4DCEFC5F5F6E13FF5FA25F5FA25FA25F5FA26E91CFFCA25E5E
-A25EA25E5EA25E157F5E93D0FC77805AFB87>I<EE07FC93387FFF804BB512E003078003
-1F9138F807E0923B3FFE07FC0FF0923BFFF001FE1FF84A9039C000FF3F4A496D487E020F
-90C7EA3FFF4A485E4A48804A5A4A48804B5E5B494980495B49604990C8FCA2495A017F60
-5C13FF4A5D4861A2485B604896C7FC5C5A6061485BA2187F48605CA218FF486091C9FCA2
-5F61485AA25F615B1BFC4DEC01FE19C01BFCA2494B1403078013F8A2127F4D14074D15F0
-19005F003F93B5EB0FE06D5C001F191F4C16C04C5B6C6CDA0FEFEC3F800007ED1FCF6D91
-263F87FFEB7F006CEDFF076C6D48486C14FE6C9026C007FC140190287FF03FF801EB83FC
-6DB5486CEBFFF86D02C06D5B010791C76C5B010101FC020F13809026003FE0DA01FEC7FC
-4F526DCF5D>97 D<ED1FE049B57E90B6FC5AA25EA37ED9007F5B140FA35EA25CA293C9FC
-A25CA25DA2147FA25DA214FFA25DA25BA25DA25BA25DA25BA25DA25BA25DEE07FC499138
-3FFFC093B512F0030380030F804990391FFC0FFE92393FE003FF9127FEFF8001138091B5
-C713C04901FCEC7FE04B15F04B143F4B15F890B55A4BEC1FFC92C8FC4A16FE5A5C5C19FF
-485BA25CA25AA25C605AA25CA2485FA291C9FCA24894B5FC19FE5BA25F007F18FC5BA25F
-19F8485AA24D13F0A219E0495D19C0A24D1380A219005F60007F4C5AA24D5A604C5B003F
-5D606D4A5B001F4B90C7FC4C5A000F5E6D4A5A00074B5A6C6C49485A6C6C4913806CD980
-0F90C8FC90397FE07FFE6DB512F86D14E06D1480010349C9FC9038007FE040806CFD54>
-I<EF7FF80407B5FC043F14C093B612F0030381030F9038E01FFC033F90380003FEDB7FFC
-EB00FFDBFFF0EC7F80020301C0143F4A4915C04A90C8127F4A48EC01FF4A484A13E04A48
-5C4A485C49495C5B49494A13C0495B5B92C81480495A017F7013004A5E01FF705A48EF03
-F04A92C8FC5A5C5AA2485BA3485BA35A5CA35A91CCFCA45B12FFA45BA4127FA21903F107
-80F10FC0F11FE0003FF03FC0197F6D1880001F943801FF004E5A000F4D5A6D4C5A6CEF3F
-F06C6D4B5A4D485A6C6D02075B6C6DDA1FFEC7FC6D6CEC7FFCD93FFC903803FFF06DB401
-7F13C0010790B6C8FC6D15FC010015E0023F91C9FC020313E043526DCF54>I<F33FC007
-03B512E04EB6FC60A21CC0A38495C714801A1FA31C00A262A263A21A7FA263A21AFFA263
-A261A263A261A263A261A263A261A263A261A298C7FCEE07FC93397FFF803F4BB512E003
-0702F05B031F14F8923A3FFE07FC7F9239FFF001FE4A9026C000FF5B4A49137F020F90C7
-EA3FFF4A5A4A486E5B4A5A4A48805D4960494980495B5B4990C85CA2495A137F4A5F13FF
-4A5D5A62485B605A4A94C8FC5A60A248495EA2187F5A4A5EA218FF5A91C95BA25FA24848
-5FA25FA2495F1BFC4D4A7EA207C05BA2494B1403631980127F4D14074D5D19005F003F93
-B5495A6D5C001F191F4C5E4C5B6C6CDA0FEF4A5A0007ED1FCF6D91263F87FF49C7FC6CED
-FF076C6D48486C14FE6C9026C007FC140190287FF03FF801EB83FC6DB5486CEBFFF86D02
-C06D5B010791C76C5B010101FC020F13809026003FE0DA01FEC8FC53806DFD5D>I<EFFF
-E0041F13FE93B67E030381030F81033F9038C07FF0923AFFFE000FF84A01F06D7E020701
-C06D7E4A4913014A48C87E4A5AECFFF8494916804949157F495B495B19FF4990C9130049
-5A137F49485D61484915036148491507484D5AF03FF048494B5A4D485A050F5B484991B5
-C7FC041F13FC02C7B65A4890B712C095C8FC17F04CC9FC4801FCCBFC91CCFCA45B12FFA4
-5BA8127FA21906190FF11F80003FF03FC0F17F8019FF001F19006DEE03FE000F4D5A4E5A
-6C6C4C5AF07FE06C4D5A6C6D02035B6E020F90C7FC6CEE3FFCD97FF0ECFFF86D6C010713
-E06DB490B512806D90B548C8FC010315F8010015C0023F49C9FC020713C042526CCF54>
-I<F21FE0F2FFFC070313FF4F1480071F14C096393FF87FE096397FE00FF0DFFFC013F84E
-143F4EEB807FF3FFFC4E130162604F4813F8181FA2063F15F019FC7413E0067F15C07413
-809738007E004F90C7FC18FFA44D5BA45F61A45F61A45FA261A45F96C9FC031FB812C04B
-83A56F5F92C7D83FFEC9FC177F60A417FF60A45E60A55E60A45E60A45E60A45E95CAFCA4
-5E5FA4167FA25FA416FF5FA45D5FA35DA25FA35D5FA45D5FA44B90CBFCA35E153FA35EA2
-157F5EA3D801F8495AEA07FC487E486C5C481381485DA25EB5FC4A90CCFCA201FE5B4948
-5A13F86C48485A9038C01FF0003F5C391FF07FC06CB55A6C91CDFC6C5B6C13F838003FE0
-56A584FF38>I<EF03FF051F13E094B57E040314FC040F9138FE01F84C903903FF03FC93
-3B7FFC007F87FEDCFFF0EB3F8F4B01C090381FDFFF0307496DB5FC4B90C714FE4B48804B
-5A4B48804B5A1BFC4A49804A5B5C4A4916F8854A90C85A5C4B17F0147F4A485DA24919E0
-5D495FA24B17C05B615B4B1780A2615B4B1700A2615B4B5EA2197FA292C95BA24917FFA2
-625C60A2013F60A260A26260011F5EA24E5B010F5E606E92B5FC6D4B5C5F6D6D5B6D5D6F
-013F91C7FC6D6DEB7FDF6E6C48485A913A3FFC0FFE3F6EB500FC5B020714F06EECE07F02
-001400DB1FF85C92C8FC18FFA261A25FA261A25FA261A25F61EA01F8D807FC5D486C5F48
-6C5D4895C8FC484C5A177FB55E4D5A4C5B494A5B4C5B494A5B49023F90C9FC6C48ECFFFC
-003F02035B271FFF801F13E06C90B65A6C4BCAFC000115F86C6C14C0010301FCCBFC5075
-76CF54>I<EE1F80EE3FE0EEFFF05D4B13F8A25DA417F017E017C06F13806F1300ED007C
-93C7FCB3A6EC1FF0EC7FFC49B5FC4980010F8090391FF07FE090383FC03F02007F017E80
-13FE485A5B000381485A157F485AA2485A4B5AA2485A5C007F5D13005C5E485B485DA200
-7C5BC75CA25C93C7FC5C5DA2147F5DA214FF5DA25B5D5B5DA25B5DA25B92388001F849EC
-03FC150017F85B4A130717F0137F5CEE0FE013FF4A131F17C0A24AEB3F80A2EE7F00A216
-FE4A5B017F13014B5A6E485A013F495A011FEB7FC06DB55A6D91C7FC6D5B6D13F8903800
-3FC02E7A71F738>105 D<EE3FC00203B57E49B6FC5BA25FA37F90C75C151FA394CAFCA2
-5DA25EA3157F5EA315FF5EA35C5EA35C5EA35C5EA35C5EA35C93CBFCF103FE96381FFF80
-4A047F13C04B4AB512E04E14F0953807FE07027F92391FF003F84B91383FC00F95387F00
-3F06FEEB7FFC02FFDA01F813FF4B49485A4D485AEF0FC0494B484813F84BEB3F00177E4D
-15F0495D4B48486D13E04C4815C04C486D138049020F9138007E004B484891C7FC4CCAFC
-167E495CED81F8ED87F0ED8FE049EBBFC04B5A03FECBFC5D5BEDFFE016FCEEFF804915E0
-DAFC7F13F803077F03017F01FF6D6C7E4A011F7F707F707F48814A81828448815CF207E0
-F20FF05A4A18E0A24C151F481AC04A5DA21A3F481A8091C75C1A7F1B005A4918FEA26200
-7F6F140149601903057F495A00FF614992383FF01F716C485A71B55A496F91C7FC6C486F
-5B6C48030013F86CCAEA3FE04E8073FD54>107 D<ED01FE021FB5FC010FB6FC5BA216FE
-A37FD9000713FC1400A316F8A25CA216F0A25CA216E0A25CA216C0A25CA21680A25CA216
-00A25CA25DA2147FA25DA214FFA25DA25BA25DA25BA25DA25BA25DA25BA25DA25BA292C7
-FCA25BA25CA2137FA25CA213FFA25CA25AA25CA25AA25CA25AA25CA25AA25CA25AA291C8
-FCED07E048EC0FF0A24914E0A2007F141F16C05BA2153F00FF15805BA2ED7F00A25D5D6C
-5A4A5AA26C6C485AA2001F495A140F6C6C485A6CB55A6C5C6C91C7FC38007FFCEB0FF028
-8070FD2F>I<49B4922601FFC0ED07FF010701C0021F01F8037F13E04901F091B500FE02
-03B512F8496D01036E6C010F14FE496D496F498090267F87FE011F01016D90267FFC077F
-9026FE03FF90283FF0007FF09026FFC0017FD801FC9126807FC06D6C4890C77F6E4AC790
-26FC03FC81D803F8DAC1FE021F4948147F0007DBC3F89226FE0FE08101F0DAE7F04C5ADC
-EFE04C5AD80FE0DAFFC06F48C87F4D6E01FE153F121F01C092C85C4A495F123F01804A4B
-49157F4C5F5C007F4B5F13004C5F4849494B90C912FF48684C5EA2007C49057F5EC76793
-C95BA24A05FF5E694B5FA2027F4C5F694B5F6702FF4C61A24B4D5D9EC8FC495F674B4D5E
-A2494D177F684B5F0DFFEC0FC0494D4EEB1FE0A24B94C84816C068494D4C153F5614804B
-5E54157F49057F4E1400A292C9496154495B4917FF575A4A5F56485A017F4C637814074A
-4D4E5A6A01FF4C1A1F784A5A4A4D6F02FFC7FCF883FE78EBFFFC4A4D705B6D486F497013
-E06D486F90CA000F5B6DCA007CDD03FEC8FC8B5271CF95>I<49B4923803FF80010701C0
-023F13F84901F091B512FE496D010380496D010F8190267F87FE90261FFE037F9026FE03
-FF90263FF0007F00016D902680FFC06D7E01FC02C190C77FD803F8DAC3FE143FDCC7F881
-D807F0ECEFF0EEFFE0D80FE04B6E7E5F121F01C092C8FC4A5B003F5D0180183F5E5C007F
-5D01005CA24A49157F4862485DA2007C4917FFC76193C9FCA24A5E635DA2027F5E635D61
-02FF60A24B5D635B614B94C8FCA2495F625D077FEC07E0494EEB0FF0A24B03FF15E06249
-4C151F5014C05D4E153F494E1480A292C8EE7F004E5B5B1CFE5C50485A017F627214034A
-4E5A6401FF190F724A5A4A6FEC7F80E0C1FFC7FC73B45A4A705B6D487013F06D48040713
-C06DCA000190C8FC5C5271CF66>I<EF7FF80407B5FC043F14E093B67E030315FC030F90
-38E03FFE033F90380007FFDB7FFC01017FDBFFF06D7F020301C06E7E4A49814A90C86C7E
-4A48824A48151F4A48824A48150F494982495B5B494917805B92C97E495A017F19C05C01
-FF5F5A5C5A5C5AA2485B61A2485BA261481A805CA261481A0091CAFCA296B5FC625B00FF
-6160A262495E626062007F6160624E90C7FCA24E5A003F4D5A6118FF6C6C4B5B61000F4C
-5B6D4B5B6C4C90C8FC6C6D4A5AEF7FF86C6D4A5A6C6D495B6D6C01075BD93FFC011F90C9
-FC6DB448B45A010790B512F86D15E0010092CAFC023F13FC020313804A526DCF5D>I<DB
-0FF8EDFFC0DB3FFE020713F84B6C6C011F13FE92B56C017F7F4A6E90B612C0912803FC3F
-F00101C17F913E07F01FF807FE003FF0020F90270FFC0FF86D7E03E0DA1FE080DA1FC06D
-4848130F4E4880DA3F8090B5C76C7E60DA7F004A16804E804A5D4A4B16C05E01015E4A4B
-16E0A24C90C8FC13034A5CA2167F13074A5C636D4813FF90C8FC5FA24B5FA25FA24B5F1D
-C05FA24B5F1D805FA24B5F1D005FA24B4D5AA294C95B624B60A24C4B5BA2037F60624C5F
-505B15FF5090C7FC6370153F4A60505A505A704A5B4A6071495B4F90C8FC71495A4A4C5A
-DCEFE0EB7FF8933AC7F801FFE09326C3FE075B4A01C1B6C9FC04C05C4C6C13F8051F13C0
-4ADA07FECAFC94CCFC93CDFCA25CA25DA2147FA25DA214FFA25DA25BA25DA25BA25DA25B
-A2013F13F8003FB7FC4882A294CCFCB8FCA26C010F5B5B737ECF5D>I<DC07FE14079326
-3FFF80EB0F804BB500E0133F03076EEB7F00031F02FC5B923A3FFE07FE019226FFF8005B
-4A01E090387F07FE4A0180EB3F8F4A90C7EA1FDF4A4815FF4A486E5B4A5A4A48804A5A49
-60494980495B5B92C85C5B494881017F5E4A5F13FFA248495D62485BA2485F4A5F5AA260
-484994C7FCA3485F4A5EA348177F91C95BA318FF48485FA35F495FA35F61A3495D61127F
-5F5F61003F5E6D5D94B5FC001F4B91C8FCA26C6C5C5E00074B5B6D143F6CED7FBF6C9039
-8001FF7F6C9026C007FE5B90397FF03FFC6DB512F06DECE0FF010702805B0101495A9038
-003FF091C75A60A35E60A35E60A35E60A35E95C9FCA35E5FA2167F16FF03076D7E023FB7
-12F04A82A261A36E01F05C49736DCF54>I<49B4ED1FF8010701C049B57E4901F0010714
-E0496D4914F8496D013F8090267F87FE90397FF01FFE9026FE03FF9039FF8003FF48486C
-D981FEC7FCDC83FC01031380D803F8DAC7F05B0007DBCFE05B01F0DAFFC04913C061D80F
-E05D94C7481380001F5D13C04A491600003F5D0180715A4C5D4A705A007F4BEC07E00100
-94C8FC5E5C12FE5EA2007C5BC7FC93CBFCA25CA25DA2147FA25DA214FFA25DA25BA25DA2
-5BA25DA25BA25DA25BA25DA25BA292CCFCA25BA25CA2137FA25CA213FFA25CA35C6D5A6D
-5A6DCDFC4A5271CF4D>I<EE0FFF93B512E0030314F8030F14FE033F8092267FFC031380
-923AFFE0007FC04A0180EB1FE04A48C7EA0FF04A4814074A4815F84A48140318074A48EC
-1FFC027F153F4B147F02FF15FFA2494B13F85DA219F05B6F6D13E0F07FC0F03F006F91C7
-FC8115FC15FF16F8EEFF8017F06D15FC17FF846D826E816E81846E8114076E811400033F
-801501ED001F16031600053F138083A2012081D803FC1700486C81487E487F5A485FA34D
-5AB5C8FCA2494B5A5B495E6C484B5A90C9127F6D5E4D5A6C6C4A90C7FC001F4B5A01F0EC
-0FFC6C6C4A5AD807FEECFFF02703FFE00F5B6C90B612806C6C4AC8FC011F14F8010714C0
-9026007FFCC9FC3E5272CF4A>I<167CED01FE4B7E4B7F5DA45D94C7FCA35D5EA3157F5E
-A315FF5EA35C5EA35C5EA35C5EA3003FB812C04817E0A2B9FC18C0A26C1780C7001F90C8
-FC5C5DA3147F5DA314FF5DA35B5DA35B5DA35B5DA35B5DA35B92C9FCA35B5CA3137F5CA3
-13FF5C173FEF7F805A4A15005F5F5A4A495AA21603485E4A13075F4C5AA24C5A4A495A7E
-4CC7FC16FE4B5A6C6D485A6C4A5AED1FE090397FE07FC06DB55A6D91C8FC6D13FC010313
-F09038007FC0337470F13C>I<EC0FF0EC7FFE49B5EE01F0496EED07F8496E4B7E90270F
-F87FE04B7E90271FC03FF0153FD93F807F90387F001F01FE187F48486E5E153F485A4848
-18FF63485A157F001F60496115FF48485C61007F496001005CA24A5E484B5E5A5C007C4B
-5CC748605EA24A5E93C891C7FCA25C4B5D62147F5D197F02FF5F5DA219FF49605DA26049
-605D1C7E4E15FF62494918FEA24E140108C013FCA31B034E15F81A80A24EEC07F07F4E14
-0F4E15E01A006D93B5131F6F4916C06DDB03FBEB803F6FD907F31580027FDA1FE1EC7F00
-6E6CD97FC15C91281FFF03FF80EBC1FE6E903BFFFE007FFFFC6E4A6D5B020102F06D5B6E
-6C01C0010713C0DB0FFEC890C7FC585271CF62>I<DB0FFC4AB4FC92267FFF80010F13E0
-4AB56C4913F84A02F0017F13FE020F6E90B6FC91281FF81FFC0101031380913E3FE007FE
-03FC007FC091297F8003FF07F0133F9126FE0001D98FE0EBFFE0494892389FC001494803
-FF5B49486D4A4813F049484C5A131F4A4B4913E0495A017F5E91C817C05B494C6D138000
-011B00494A6F5A4EEB01F8000396C8FC5B5E00075F5BA26C485CC95CA35E60A35E95CAFC
-A35E5FA3167F5FA316FF5FA21BFC4B4C7EA24D5DA24B160363D801F85DD807FC4E5A486C
-5B486C180F4862484A161F4D5DB54E5A4B167F7192C7FC494916FE4F5A49D97F7F140349
-01FE6D495A6C48023F4A5A9028C003FC1FF8EB3FE0003F49486C6CEBFFC02A1FF81FF007
-FF0390C8FC6CB5486CEBFFFE6C4A6C5C6C91C714F0C649023F13C0D91FF0DA07FEC9FC54
-5276CF54>120 D<EC1FE0ECFFFC496DEE01F001076DEE07F8496EED0FFC90271FF07FC0
-ED1FFED93FC06D153FD97F007F01FE133F49187F00016F16FC4848137FA2484818FF1BF8
-485A15FF48485F1BF05CD83F805C61007F4918E001005CA24A5E484B16C05A5C007C4B5C
-C748188093C8FCA24A5E4B1700A2147F4B5D6214FF5D197F49605DA219FF49605DA26049
-605DA26062495BA26062A36062A3606D4C90C7FCA26095B5FC6D6D495BA26D15076F5B6D
-6D495B6E6C137F913A3FFE03FF7F6EB5EAFEFF02074A5B6E14F0020014C092380FFE0192
-C75CA34D5BA34D5B130801FF4B5B487F00076D4A90C8FC487F4D5A485F177F6048494A5A
-605E4A495B91C7485B4993C9FC01F84A5AD81FC04A5A4C5A6D4A5A6C6C49485A6C6C0107
-13806D011F90CAFC3A03FF80FFFC6C90B55A6C6C14E06D1480010F01FCCBFC010113C04F
-7571CF58>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmr10 10.95 51
-/Fg 51 122 df<942603FFF0ED7FE0057FD9FF80903807FFFC0407B600E0013F13FF041F
-03F890B612C093B76C4815E003039127003FFF079038E07FF04B01F00103018F9038003F
-F8031F01809027007FDFFC137F4B48C8B548EBFFFCDBFFF84A4A5A4A494A4A4813FE4A01
-C04A14C04A4917804A90C85A4A4818005D023F604A487313FC7713F84A486F49EC7FF0F6
-3FE049496FEE1FC07393C7FC735B4949167FB3A8BF12C0A7D8000301E0C9D87FFCC9FCB3
-B3B3A7496D4C7E87013F01FE030714E0B8D8801FB8FCA602C1EFF83F6F807CFF6A>11
-D<943801FFF0057F13FF0403B612C0041F15F0047F15FC4BB538003FFE030701F0EB03FF
-031F018001007F4B48C8EA3FC0DB7FF86F7E4A48484B7E4A01C015FF4A494A7F4A90C85A
-4A485D874A485D4A5AA24A5AA2495B735BA249496F5B735B735B083FC8FC97C9FCB3A2F2
-01FCF13FFFBCFCA7D8000301E0C8120F19031900A21A7FB3B3B3A3496D4C7EA2013F01FE
-0307EBFFC0B8D8801FB712F0A602C1EFF83F5C807CFF65>I<943803FFFC057FEBFFE004
-07B6EAF81C041FEDFFFC93B8FC0303EC000F4B01F01300031F01805B4B48C75ADBFFF85C
-4A5B4A13C04A5B4A90C85A4A48815D143F4A5A854A4881854949167FA3495BB3A8BCFCA7
-D8000301E0C9127FB3B3B3A7496D4C7EA2013F01FE0307EBFFC0B8D8801FB712F0A602C1
-EFF83F5C807CFF65>I<D803F8157FD807FEEDFFC0D81FFF02037F486D497F6E81486D49
-7F6E81B55CA26E81A46C6D6D1480A26C81A26C812607FE7C010013CFD803FCED7F8FC7ED
-000FA502FC151FA24A1600A301015E4A153EA30103167E4A157C010716FC4A5D010F1501
-A249484A5AA249C8485A013E5E017E150F494B5A48484BC7FCA24848157E48485D48484A
-5A48484A5A90C85B001E5E000C6F5A39377AFD5B>34 D[<EE01C0EE03E0160FEE1FC0EE
-3F80EE7F0016FE4B5A4B5A4B5A150F4B5A4B5A4B5AA24BC7FC4A5A14034A5A5D140F4A5A
-A24A5A4A5AA24A5AA24990C8FC5B5C1307A2495AA2495AA2133F5CA2137F5C13FFA25C5A
-A25C5AA34890C9FCA4485AA4121F5BA3123FA45BA2127FA85B12FFB3A8127F7FA8123FA2
-7FA4121FA37F120FA46C7EA46C7FA37E80A27E80A2137F80133FA280131FA26D7EA26D7E
-A21303807F6D7FA26E7EA26E7E6E7EA26E7E1407816E7E14016E7E6F7EA26F7E6F7E6F7E
-15076F7E6F7E6F7E167FEE3F80EE1FC0EE0FE01603EE01C0>43 182
-111 263 71 40 D[<127012F812FE127F6C7E6C7E6C7E6C7E6C7E6C7E7F6C7E6D7E6D7E
-A26D7E6D7E806D7E1303806D7EA26D7F6E7EA26E7EA26E7E81140F81A26E7EA26E7EA282
-80A2828082A2157F82A2153F82A36F7EA46F7EA48281A31780A481A217C0A88117E0B3A8
-17C05DA81780A25DA41700A35D5EA44B5AA44B5AA35E157FA25E15FFA25E5C5EA25C93C7
-FCA24A5AA24A5AA25D141F5D4A5AA24A5AA24A5A4990C8FCA2495A5C1307495A5C495A49
-5AA2495A49C9FC485A5B485A485A485A485A485A48CAFC12FE12F81270>43
-182 118 263 71 I<EA03F8EA07FEEA1FFF48138014C04813E014F0B5FCA214F8A46C13
-FCA27EA27E3807FE7CEA03FCC7FCA514FCA214F8A3130114F0A3130314E0130714C0130F
-A2EB1F80A2EB3F00133E137E5B485AA2485A485A485A485A90C7FC121E120C1637719333
->44 D<B9FCAC300C7EAC3D>I<EA01F8EA07FE487E4813804813C04813E0A2B512F0A66C
-13E0A26C13C06C13806C13006C5AEA01F81414719333>I[<1AF0F101F8F103FCA21907A2
-1AF8190FA21AF0191FA21AE0193FA21AC0197FA2F1FF80A21A0060A2611803A2611807A2
-61180FA24E5AA261183FA261187FA26118FFA24D90C7FCA2601703A2601707A260170FA2
-60171FA24D5AA260177FA26017FFA295C8FC5EA25F1603A24C5AA25F160FA25F161FA25F
-163FA25F167FA24C5AA294C9FC5DA25E1503A25E1507A24B5AA25E151FA25E153FA25E15
-7FA25E15FFA24A90CAFCA25D1403A25D1407A25D140FA25D141FA24A5AA25D147FA25D14
-FFA292CBFC5BA25C1303A2495AA25C130FA25C131FA25C133FA2495AA25C13FFA291CCFC
-5AA25B1203A25B1207A2485AA25B121FA25B123FA25B127FA25B12FFA290CDFCA2127E12
-3C>70 181 118 263 91 I<16F04B7E15031507151F153F15FF1403141F91B5FC130F00
-07B6FCB7FCA214FD14E1140113F0EAF800C7FCB3B3B3B3B3A24A7F4A7F027FEBFFE0007F
-B912F0A6EDE07F3C796FF85B>49 D<92381FFF804AB512FC0207ECFF80023F15E04A15F8
-49B712FE4982010FD9C01F14C090271FFE000180D93FF86D6C7FD97FE0021F7FD9FF8002
-077F4890C86C7F496F7F48486F1480484818C04982000F7113E0484818F04982003F19F8
-49821AFCEA7FF801FE826D6C17FE80B5FC6E816E17FFA86C5B6C5BA26C5BD807FEC9FCD8
-01F818FECBFC60A21AFCA2601AF8A24E13F0A24E13E0A24E13C01A8095B5FC1A004D5B61
-4D5B4D5BA24D5B4D5B614D90C7FC4D5A4D5A604C5B4C13C04C5B4C90C8FC5F4C5A4C5A4C
-5A4C5A4B13804B90C9FC4B5A5E4B5A4B5A4B5A4B5A4B48153F4A90C9FC4A5A4A48167E5D
-4A5A4A5A4A5A4A5A4ACA12FE494817FCEB03F8495A4A1601495A495A49CAEA03F8017E17
-1F90BAFC5A5A5A5A1AF05A5A5ABBFCA31AE0A3487977F85B>I<923803FFF0033FEBFF80
-4AB612F0020F15FC4A15FF027F16C0494848C66C13F04901E0010F7F4990C700037FD90F
-FC6E7FD91FF06E6C7ED93FC08349486F7F91C96C7F01FE84485AD9FFE06F7F487F6E836E
-81487F6E83A48192C8FCA37E5C6C495F6C5B6D485DEB1FE090CA5CA24E5BA2626062A24E
-5B97C7FC4E5A614D5B4D5B4D5B4D5B4D5BDD7FFEC8FC933803FFFC4BB512F092B612C04A
-92C9FC8418F06E15FE92C76C6C7E051F7F050713F005017F7113FE727E727F727F86727F
-86727F868486A2721480A21BC0A21BE084A31BF0A2EA01FCEA07FF487F487F487F487FA2
-B57EA21BE0A3601BC05CA26C4918804A5D4A18006C90C9FC01FC4C5BEA1FE04E5B6C6C60
-6C6C4C5B6D606C6C4C5B6C6C6C4B5B6C01E092B5C7FCD97FF84A5BD93FFE02075B90260F
-FFC0011F5B6D01FE017F13E0010190B75A6D6C93C8FC021F15FC020715F0DA007F91C9FC
-030313F04C7D79F85B>I<EA01F8EA07FE487E4813804813C04813E0A2B512F0A66C13E0
-A26C13C06C13806C13006C5AEA01F8C8FCB3B3A2EA01F8EA07FE487E4813804813C04813
-E0A2B512F0A66C13E0A26C13C06C13806C13006C5AEA01F8144E71CD33>58
-D<EA01F8EA07FE487E4813804813C04813E0A2B512F0A66C13E0A26C13C06C13806C1300
-6C5AEA01F8C8FCB3B3A2EA03F8EA07FEEA1FFF48138014C05A14E0B5FC14F0A414F87EA2
-7EA27EEA07FEEA03FCC7FCA6130114F0A4130314E0A2130714C0A2130F1480131F14005B
-133E137E5BA2485A485AA2485A485A485A90C7FC121E120C157171CD33>I<003FC012FE
-488BC21280A46C20006C67D5FCB3AA003FC012FE488BC21280A46C20006C67792C76C28E
->61 D[<F13F804F7EA34F7EA34E7FA34E7FA34E7FA34E7FA34E7FA34E80A24E80A28506
-FF80A24E7E05018118FC8505038118F8850507814E7EA2050F814E7EA2051F814E7EA205
-3F824E7EA2057F8295C77EA24D824D80A20401834D80A20403834D80A20407834D80A204
-0F834D80A2041F834D80A2043F844D80A2047F8494C97E4C84A24C82030185A24C820303
-85A24C824BBA7EA34B85A34B8504C0C91201A2033F864C82A2037F8693CB7EA24B864B84
-A20201874B84A20203874B84A20207874B84A2020F874B84A2021F8788143F027F88884A
-6C8701037F496D4E80013F01FF0607800003B600E0053F14FEB8047FB812E0A6020F1B83
->123 130 122 257 136 65 D<BC7E1BFCF3FF801CF01CFC1CFF1DC0D8000702F0C8001F
-14F001004A030014FC6E49041F7F6E06077F090114C0756C7F0A1F7F767F767F0A017F76
-7F777F777F777FA2777F777F8B89777FA2777F8C8A8CA2787FA3787FA28CA28A8CA38C8A
-A38CA72180A68AA466A62100A668A36668A4686668A26668A2545BA2689BB5FC9DC7FC53
-5BA2535B535BA2535B535B535B535B9AB5FC5291C8FC525B525B0A1F5B5213E099B55A09
-035C4A061F49C9FC91B56C93B55A01076E031F14F0BE5A1D8052CAFC1CF01CC009FCCBFC
-1B80797C79FB8B>68 D<BF12F0A48AA3D8000702F8C9123F01004A16006E49171F6E1907
-1C0188777E1D3F1D1F1D0F1D07A21D03A2777EA21D00A41E7EA21E7FA28AA6F207E0F61F
-80A49BC7FCA51A0FA31A1FA21A3FA21A7FF101FF1907197F93B8FCA704E0C77E19071901
-F1007F1A3FA21A1FA21A0FA31A07AA97CBFCB3A94A7F91B57E0107ECFF80BA12C0A61503
-697B7AFA77>70 D<B60083B512FE92B6FCA6D80003ED8000D9007F01FCC7FC6E5B6E5BB3
-B3B3B3B3AE4A7F4A7F0103B67EB912FEA61583377C7BFB42>73 D<B60003B612C092B7FC
-A6D800070380CCFC010002F8CDFC6E5B6E5BB3B3B3ACF503F0A41D071EE0A71D0FA21EC0
-A21D1FA41D3FA31D7F1E801DFFA26464A26464646452130051B5FC631B0F4A187F91B56C
-0303B6FC01076E157FBFFCA265A5647C7AFB72>76 D<922607FFC0EC01C0037F01FEEC03
-E00203B600C01307020F15F0023F03FC130F91B8131F4949C66C13804901E00103EBE03F
-4901800100EBF07FD91FFEC8EA1FF84948923807FCFFD97FF06FB5FC4A150001FF834849
-82484982488491CAFC48488385121F4983003F84A25B007F197FA21A3FA212FF1A1FA31A
-0F7FA37F1A07A27FA26C7F6EEF03C097C7FC806C7F14FC806C6D7E15E06C14FCEDFFC06C
-15FC6CEDFFE017FE6CEEFFE06C17FC6DEEFF806D17E06D17F86D17FE6D836D18C06D846D
-6C836E83020F83020383DA007F821507DB007F1680040716C0EE007F050715E0DD007F14
-F01807060114F8727E857313FC85857313FEA285851BFF00788512FCA286A4867EA56C1A
-FEA37FF23FFC7FA26D19F81A7F7F1BF06D18FF6D19E06D4D13C06D5F6E188002E04C1300
-6E5E02FC4C5A02FF4C5A01E701C0EDFFF801C101F84A5B01C001FF020F5B496C01FC017F
-5BD9001F90B7C7FC6E5E48010316F848D9007F5D030F15C04802014AC8FC0070DA000713
-E0508476FF65>83 D<001FC012E0A74802C0C76C01FCC7000F14F002F8C86C49EC007F02
-C06F49150F4A1B0349C9844988491D7F491D3F491D1FA2491D0FA2491D07A2007F1FF890
-CA1903A5007E1E01A800FE1FFC481E00A6CB1A00B3B3B3B14E7F4E7F050FB612E0037FBA
-12FCA61901767B7AFA83>I<B5D8F07FB56C90271FFFFC1FB500F0020FB53887FFF091B7
-93B795B5FCA6D8001F92C9000303E0C9003FECFC00010302F0DC007F49CA000714C06D4A
-7101F8050191C7FC6D4A796C5A7649725A78725A6E7363A16D5A70856E7363A270201F6E
-75618870203F6E7596C8FC8870686E4F6E177EA27020FE6E4F6E5FA2701F016E4F6E5FA2
-836E4F6E4C5A1D9FA271043F6E16076F070F61A271047F6E160F6FDE7E0761A27173161F
-6F4E6C61A2711E3F6F05016F94C9FC527E71666F050370157E527E711EFE6F0507705D52
-7F711D016F050F705D527F846F051F704A5A527FA272023F7014077094C76C5FA2724A70
-140F70047E6E5FA27273141F704C6E5FA2721C3F7003017192CAFC518072647003037213
-7E5180721CFE700307725B5181721B0170030F06E05B5181198070031F72485A5181A2DF
-C03FF0F8077192C96C5DA27348F0FC0F71027E705DA207F0F1FE1F714A705DA207F81A3F
-7101F907FF90CBFC508207FD627101FF1AFE5082A271645083A271645083A271645083A3
-7290CB6C5BA37248725BA37248725BA3060F98CCFC4F84A20607624F18007248197CB480
-7DFBBB>87 D[<B612E0A890C8FCB3B3B3B3B3B3B3B3B3A390B512E0A8>27
-181 108 263 51 91 D[<B612E0A8C7121FB3B3B3B3B3B3B3B3B3A3B6FCA8>27
-181 125 263 51 93 D<92B5FC021F14F091B612FE01036F7E010F16E049D9C00713F8D9
-7FF8C77FD9FFC0EC3FFE6E6E6C7E486D6E7F486D6E7F6E8048707F6E6E7F85187F85A272
-7E6C5BA26C496F7F6C5B6D5AEB1F8090CAFCA84CB6FC93B7FC150F157F0203B8FC021FEC
-E01F027FEBFC0049B512E0010791C7FC4913F84913E0017F5B90B5C8FC485B4813F85A5C
-485B485BA2485BA24890C9ED0FC0A3B5FC5BA260A4607F6C94B5FCA26E5C6CDC03F79038
-C01F806E15E36C16076C6DDA1FC39038E03F006C6DDA3F816D5A6C01FCDAFF01EBFFFE6C
-01FF902603FE005C6C6C9026E01FFC6D5B6D90B500F06D5B010F4B6D5B01030380010713
-80D9007F49C7D801FCC7FC020301E091C9FC525379D05B>97 D<EC0FE048B5FCB6FCA7C6
-7E131F1307A27FB3AF943803FFC0053F13FC4CB67E040715E0041F15F893267FFC0113FE
-933AFFC0003FFF03E190C7000F13C0DBE3FC02037FDBE7F002007FDBEFE06F7EDBFFC06F
-7E93C96C7E874B707F4B707F5D747F4B8486888688A2881B7F88A31D80A287A31DC0AE1D
-80A263A21D00A3641BFFA264A2505BA2505B6F60626F60505B6F95C7FC6F4C5A505ADBDF
-804B5ADB8FC04B5ADB07F04A5B6F6C02075B9126FE01FE021F5B6F6C6CD97FFEC8FC4A90
-3A7FF807FFFC4A6DB612F0040F15C04A010392C9FC90C914F8050F90CAFC5A807CFD65>
-I<EE7FFF030FB512FC033FECFF804AB712E0020716F84A82023FD9E0007F4A90C7EA07FF
-DAFFFC4A13804901F04A13C049495C495B49494A13E04990C8FC495A495A13FF485BA248
-496F13C0487113804A6F130048715A725A484992C8FCA3485BA35AA391CCFCA2B5FCAE7E
-80A47E80A27E1AF06C6DEE01F8A26C6D16031AF06C7F19076C6D17E06C180F6D6C17C06E
-161F6D6DED3F806D6DED7F006D6D15FE6D6D14016D01FC4A5A6D6DEC0FF89027007FFFC0
-EB3FF06E9039F803FFE0020F90B612806E93C7FC020115FC6E6C14F0030F14809226007F
-F8C8FC45537AD051>I<F207F096B5FC187FA7F0003F190F1903A285B3AFEE3FFC0307B5
-12C0033F14F092B612FC020315FF020FD9F80713C14A903980007FE1DA7FFEC7EA1FF1DA
-FFF8EC07F94901E0EC01FD49496EB5FC4949814990C97E494882494882137F4948824884
-5C5A485BA2485BA25AA25C5AA35AA291CAFCA2B5FCAE7EA380A27EA37E807EA27E807E6E
-5E7E6C6D5E616D6C5E6D7E011F4D7F6D6C93B5FC6D6D4A14FE6D6DDA07FB6D7E6D01F0DA
-0FF3ECFFC06D01FCEC3FE3DA3FFF903801FF836ED9E00F1303020790B512FC020115F86E
-6C14E0030F0200EDE000030001F002F8C8FC5A807AFD65>I<923801FFF0031F13FF037F
-14E00203B612F84A15FE021F9038C07FFF91277FFE000F13C0DAFFF801037F4901E00100
-7F49496E7E49496E7E4990C86C7E495A49486F7E017F701380495A4A6F13C05A484917E0
-844819F05C48831AF85A5C5AA2197F4819FC91CAFCA4BBFCA41AF891CCFCA97EA280A37E
-A36C7FA26C19786E17FCA26C18016C6D17F8A26C6D16036C19F06E16076D6CEE0FE0013F
-18C06D6C161F6D6DED3F806D01E0ED7F006D6D15FE6D01FCEC03FC6D01FFEC0FF86E01C0
-EB3FF0021F9039FC01FFE06E90B65A020393C7FC020015FC033F14F0030714C09226003F
-FCC8FC46537BD051>I<933803FF80043F13F093B512FC030380030FECFF80033F010113
-C092267FF80013E04B485A4AD9C00313F04A495A4A494813F84A5A141F5D4A5A147F5D02
-FF6E13F07113E049496D13C0711380F07F0095C7FC495BB3A9B9FCA7D8000301E0C9FCB3
-B3B3A7497F81013F13FFB812F8A614C13D807BFF38>I<F20FF8F27FFE922607FF800103
-B5FC037F01F8010F14800203B65B020F923AC03FF87FC0023F923AF0FFC0FFE04A9238F9
-FE019126FFFE01EBFFFC499026F0003F13F0010701C0010F13E049496D13C04990C76C6D
-6C13C04A6EED7F8049486E6DEB3F0049486F6C131E01FF7190C7FCA248496F7EA24884A2
-4A81A24885AA6C96C8FCA26E5DA26C60A26C6D4B5AA2017F5F6D6C4B5A6D6C4A5B6E5C6D
-6D495B6D6D495B4901F0D93FFEC9FC499039FE01FFFC92B65AD93F3F5D020F15C0D97E03
-92CAFCDA007F13F80307138001FE90CDFCA67FA280A28014F0EB7FFC91B712F0F0FFC06D
-17FCF1FF806D18E06D846D18FC6D846D84010785011F85017F85D9FFFCC8001F804801E0
-030080480180161F4890CA00037F484817004848187F4848727E1A1F485A747EA2485A86
-A66D60007F62A26D181F6C6C4E5A001F626D187F6C6C4E5A6C01C004035B6C6D4C5B6C01
-F8041F5B6C01FE047F90C7FC6D6C6C4A485A011F01F8021F13F801079026FF8001B512E0
-6D91B75A010095C8FC021F16F8020316C0DA007F4AC9FC0301148053787BD15B>I<EC0F
-E048B5FCB6FCA7C67E131F1307A27FB3AF943801FFF0050F13FF057F14E04CB67E4C15FC
-040F01017F933A1FF0003FFFDC3FC0010F7F4CC78004FE80DBE1F86E7FDBE3F082EDE7E0
-4C8003EF83EDFF8093C8FC854B83A25DA35DA45DB3B3A7496D4B7FA2013F01FF030FEBFF
-C0B8D8C03FB712F0A602E1EFF87F5C7E7BFD65>I<EB01F8EB07FE497E497F497F497FA2
-90B57EA66D5BA26D5B6D5B6D90C7FC6D5AEB01F890C9FCB3A5EC0FE048B5FC127FA7C67E
-130F7FA27FB3B3B3A35B81013F13FCB8FCA614C3287B7BFA32>I<163FEEFFC04B13E04B
-13F04B13F84B13FCA24B13FEA66F13FCA26F13F86F13F06F13E06F13C0EE3F0093C7FCB3
-A517FEED3FFF021FB5FCA7EC000F150181167FA2163FB3B3B3B3A7EA07F8487E486C15FC
-486C147F487FB57E17F8A2EEFFF0A217E05D028014C06C4A1380020014006C48495A6C48
-495A6C48495A6CB46CB45A6C90B55A6C5D6C6C91C7FC011F13F8010113C02FA089FA38>
-I<EC0FE048B5FCB6FCA7C67E131F1307A27FB3B1953A7FFFFC3FF097B5FCA6060FECFE00
-7214C07291C7FC1AF81AE06297C8FC4E5AF00FF84E5A4E5A4E5A4E5A4D90C9FCEF03FC4D
-5AEF1FF04D5A4D5A4D5A4C48CAFC16031607EE1FFF4C7F5E93B57E03E18003E380EDEFFB
-DBFFF37F04E17F16C04C6C7EDBFE007F4B6D7F4B7F4B814B6D7F83717F85717F8385727E
-84727F8684727F86727F84727F86737EA2737F8787496D834F13FC013F01FE92B61280B8
-D8800F15FFA602C1EFFE1F587E7CFD60>I<EC0FE048B5FCB6FCA7C67E131F1307A27FB3
-B3B3B3B3AD497FA2013F13FEB81280A614C1297E7BFD32>I<DA0FE0DAFFF8EE1FFF48B5
-020FD9FF804AB512F0B6023F02E0020714FC94B600F8021F14FF040303FE027F15C0040F
-01006D902701FFE01F7FDC1FF8011F6D48D900037FDC3FC06D9026C007F86D7F4CC76C90
-26E00FE06D7FC603FE6E4A48147F011FD9E1F86E6D48C86C7E0107D9E3F0DCF87E82DBE7
-E05F4C6E4A816D01EF05FD84DBFF80EEFFF093C95C74834B4E83A24B60A34B95C9FCA44B
-5FB3B3A7496D93B54C7FA2013F01FF030702E092B512FCB8D8C01FB7D8F803B8FCA602E1
-DDFC3F178790507BCF99>I<DA0FE0903801FFF048B5020F13FFB6027F14E04CB67E4C15
-FC040F01017F933A1FF0003FFFDC3FC0010F7F4CC780C66C02FE80011FD9E1F86E7F0107
-D9E3F082EDE7E06D4A8003EF83EDFF8093C8FC854B83A25DA35DA45DB3B3A7496D4B7FA2
-013F01FF030FEBFFC0B8D8C03FB712F0A602E1EFF87F5C507BCF65>I<EE3FFC0307B512
-E0031F14F892B7FC020316C0020FD9E00713F04A90C77FDA7FFCEC3FFEDAFFF0EC0FFF49
-01C002037F49496E7F4990C97F4948707E4948707E4948707E017F844948707EA2484970
-1380481AC04A82481AE0A248497013F0A2481AF8A3481AFC91CBFCA2481AFEA5B519FFAD
-6C1AFEA46C6D4C13FCA46C1AF8A26C6D4C13F0A26C1AE06E5E6C1AC06E5E6C1A806C6D4C
-1300017F606E163F6D6C4C5A6D6C4C5A6D6D4A5B6D6D4A5B6D01F0020F5B6D6D4A5B6D6C
-B4DAFFFEC7FC6ED9E0075B020F90B612F0020316C0020093C8FC033F14FC030714E09226
-003FFCC9FC50537BD05B>I<DA0FE0903801FFE048B5023F13FEB691B612C0040715F004
-1F15FC4C819326FFFC016D7E03E19026C0003F7F03E390C7000F7FC66CD9E7FC6E7F011F
-D9EFF06E7F0107D9FFE002007F04806F7E6D91C97F4B707F4B707F884B824B707F888688
-A2747FA28688A3751380A57513C0AE511380A41D0098B5FCA264A262646264A2505B646F
-5E6F4C5B646F4C90C7FC6F4C5A505A705E7002035BDBF7F04A5BDBF3F84A5BDBF1FE023F
-5B9226F0FF80D9FFFEC8FC93267FF8075B70B612F0040F15C0040392C9FC040014F8050F
-90CAFC94CCFCB3A5497FA2013F13FFB812C0A614E15A737CCF65>I<DC7FF8EC01F00307
-B51403033F14E04AB612F84A6F1307020F15FF023FD9F807EB800F4AD9C00013C091B5C7
-383FE01F010301FCEC0FF04949EC07F84901E0913801FC3F494914004949EDFE7F197F49
-90C9EA3FFF495A48498285485B5A4A825A4A825AA2485B85A25C5AA4B5CAFCAE6C7FA57E
-80A27E807E616C7F616C7F616C7F6C606E5E137F6D6C5E6D6D92B5FC6D6D5C6D6DEC03FB
-6D6DEC07F36D6DEC1FE36D01FEEC7FC3913B3FFF8001FF836E9039E01FFE03020790B512
-FC020115F06E6C14C0030F1400030013F093C8FCB3A54F7FA2073F13FF95B812C0A61AE1
-5A737ACF60>I<DA0FC0EB3FE048B5903801FFFCB6010713FF041F14804C14E0DC7FE013
-F0EEFF019226C1FC0313F8EDC3F8C66C9026C7F00713FC011F14E00107EBCFC016806D13
-DF160003FF6D13F85D7113F04B6D13E0F03F8095C7FC5DA45DA55DB3B3A4497F81013F13
-FFB812F0A614C13E507CCF47>I<912607FFF0131C027F01FF133E0103B6EAC07E010FED
-F1FE903A3FFE003FFBD97FE0EB03FF2601FF8013004848C8123FD807F8151F000F160F49
-150748481503123F1701485A1700A312FF187E7FA27FA27F6D163C01FF93C7FC6C13C014
-F014FE6CEBFFF0EDFF806C15FC6CEDFF8017F06C826C16FE6C826C17C0013F826D820107
-820101826D7E020781DA003F801501DB000F14801601706C13C0830078160F00FC7013E0
-83837E83A36C177FA37F19C07FA26D16FF19807F4D13007F6D4B5A6D5E6D15076EEC1FF8
-02E04A5AD9CFF849B45A902787FF801F1380010390B6C7FC48C615FC486D14F048010F14
-800070010101F8C8FC3B537AD048>I<EC01F8A81403A61407A3140FA3141FA3143FA214
-7F14FFA25B5B5B5B5B137F48B812FC120FB9FCA5D8000101F8C9FCB3B3A2F01F80B0183F
-6D6D1500A3606E6C147EA2023F5D816E6D485A6E14039338E007F06E9038F81FE06E90B5
-5A02005D6F91C7FC031F5B030713F89238007FE039727DEF47>I<DA07F0EE01FC48B5EE
-7FFFB6033FB5FCA7C66CEE001F011F170701071701A26D83B3B3A761A461A3617FA2616F
-5D6D187F073F7F027F167E6F037C6D7E023FDB01FC14E06E6CDA03F8ECFFF06E6CEC07F0
-6E01C0EB3FE06E9039FC01FFC06E90B612006E6C5C031F14F8030702E0EDF800DB003F90
-C790C8FC5C527BCF65>I<B5260FFFFE913A3FFF8FFF8091B594B5FCA6D8003F02800207
-ECF000010F01FCC8000191C7FC6D499238007FFC6D61745A6D616F5F7F6F5FA2027F95C8
-FC6F5E6E177E821AFE6E5F7014016E5FA27014036E5F7014076E5FA270140F6E5F70141F
-A26E5F70143F037F93C9FC82616F157E7113FE6F5DA2EFC0016F5DEFE0036F5DA2EFF007
-6F5DEFF80F6F5DA2EFFC1F6F5DEFFE3FA2047F91CAFC715A70137E18FEA2705BA2705BA3
-705BA2705BA3705BA2705BA371CBFC173E59507DCD60>I<2BFFFE1FFFFC0FFFC7B5903A
-0FFFF8FFF090B692B692B5FCA6C66C91C7000F02800100ECFE00011F01F8020349C8001F
-13F06D496E496F13C06D70496F5B7890C7FC6D057F5F7415016F636D053F5F741503816D
-716C5E616F1A07027F725D4F160F6E6C63877091B5151F6E64877049173F6E04F994C8FC
-877001035F6E04F0167E8770010717FE6EDCE07F5D8770010F16016E4C6C6C5C181F70DA
-801F14036E725C063F16076F6C4A6C5D1C807049160F6F027E6D5D1CC0DD80FE161F6F4A
-6D5D1CE005C1173F6F4A6D92C9FC1CF005E35F6F4A6D147E1CF805F717FE6F4A6E6C5A17
-FF4EEC3FFD6FF0FFF8A26F4A6E5BA37090C86C5BA370486F5BA370486F5BA370486F90CA
-FCA370486F5A7048167C7C507DCD83>I<287FFF87FFFE903A03FFFE3FFF91B593B6FCA6
-D8000F02F001001580010102C0023F01F8C7FC6D4A16C06E7090C8FC6E5F6E6D15F86E5F
-705D6E6D4A5A6E6D5D6E4CC9FC705C6E6D495A6F6C5C6F4A5AEF80076F6D485A6F6D485A
-616F6D485A6FEBF87F6F6D48CAFC606FEBFFFC82705B60705B82707FA2707F707F845E4C
-7F854C805EDC3FCF7F05877FDC7F037F16FF4B486C7F4C6C7F4B486D7E15074B486D7F4B
-486D7F4C7F4B4881037F6E7F4BC76C7F4B804A488202036F7F4A486F7E020F82021F8402
-7F707F02FF8401036D83011F4D7F48B692B6FCB700C00107EDFFE0A6D9FC7FEFFE1F5B4E
-7ECD60>I<B5260FFFFE913A3FFF8FFF8091B594B5FCA6D8003F02800207ECE000010F01
-FCC8000191C7FC6D7113FC6D49705A6D725A6F5F636D6181027F95C8FC81626E177E7015
-FE6E5F8219016E5F7014036E5F8219076E5F70140F6E5F82191F6E5F70143F037F93C9FC
-82616F157E7113FE6F5DEFC001A26F5DEFE0036F5DEFF007A26F5DEFF80F6F5DEFFC1FA2
-6F5DEFFE3F047F91CAFC715AA270137E18FE705BA3705BA2705BA3705BA2705BA3705BA2
-71CBFCA3177E17FE5F1601A25F16035F1607A25F160FD803F85DD80FFE141F487E486D5C
-163F486D91CCFC5E167E16FE4B5A5EEC80036C4A5A4A485A49131F6C48495A01F0495A00
-0F4948CDFC3907FC07FE6CB55A6C14F06C5C013F90CEFCEB07F859737DCD60>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmbx10 10.95 47
-/Fh 47 122 df[<EF1F80EF3FC017FF5E4C1380040F13004C5A4C5A4C5A4C5A4B5B4B5B
-5D4B5B4B90C7FC4B5A157F5E4B5A5C4A5B4A5BA24A5B5C5E5C4A90C8FC5D14FFA2495B5B
-5D5B5D5BA2495BA25B5DA25B5D90B5FCA24891C9FCA35A5CA25AA25CA25AA3485BA55AA2
-5CA35AA75CA2B5FCB3A57EA280A77EA380A27EA56C7FA37EA280A27EA2807EA36C80A27F
-817FA2817FA26D7FA27F817F817F6D7FA2147F816E7F8082806E7FA26E7F6E7F806F7E82
-153F6F7E6F7F6F7F816F7F6F7F707E707E707E707E040313807013C082173FEF1F80>50
-181 109 263 81 40 D[<127EB4FC13C07F6C7EEA3FFC6C7E6C7E6C7F6C7F6C7F6C7F80
-6D7E6D7E6D7E817F6D7F816D7F6D7FA26D7F81147F816E7F8082A26E7F8280828082A26E
-7FA28280A2838183A26F7FA38381A283A281A283A36F7FA583A281A31880A781A218C0B3
-A51880A25DA71800A35DA25FA54B5BA35FA25DA25FA25D5FA34B5BA25F92B5FC94C7FCA2
-5C5EA24A5BA25E5C5E5C5E4A5BA25E5C4A90C8FC5D14FF5D495BA2495B495B5D495B5B92
-C9FC495A495A495A5C485B485B485B4890CAFC485A485AEA7FF0485A5B90CBFC127E>50
-181 117 263 81 I[<EE0FC0EE3FF04C7E4C7E4B7FA24B7FA2815FA56F5B01C0180CD807
-F8F07F80486CF0FFC0486C4D13E0486C4D13F04801C06D48010F13F86E5E6E5EB500FC93
-B512FC6E5D6E5D9239C03FF00F6C02E04A14F803F05C6C02FC91B612F06C02FE01F115E0
-6C02FF01F315C00001DB9FE7ECFE00D8003F91B712F001071880010005FCC7FC021F16E0
-02071680020003FCC8FC031F14E0030391C9FC031F14E092B612FC0207EDFF80021F16E0
-91B812FC0107EFFF80013F18F048B6D89FE714FE000F4B6CECFFC04802FE01F115E04802
-FC01F015F04802F0023F14F803E080B600C06E14FC9239007FF8034A814A816C01F0043F
-13F84A824A826C90C7486C010313F06C487113E06C487113C06C48F07F80D800C0F00C00
-90C893C7FC4B7FA5835DA26F5BA26F5B705A705AEE0FC0>78 81
-115 263 105 I<1A1F507E507E507EB3B3B3A7001FC212FE488D482280C412C0A56C2280
-6C22006C69CD01E0CDFCB3B3B3A7745A745A74CEFC8A8B74F2A3>I<EB3FC0EBFFF80003
-7F4813FF4814804814C05A15E04814F0A2B612F8A315FCA415FEA27EA27EA27E7E7E7EC6
-13F9EB3FE1EB000315FCA4140715F8A2140FA215F0141FA2EC3FE0A2EC7FC0A2ECFF805B
-15005B495A495A131F5C495AEBFFE05A485B485B91C7FC6C5A5B6C5AEA00E01F40729C3A
->I<B912FEB337137EB146>I<EB1FC0EBFFF8000313FE487F4814804814C04814E0A24814
-F0A3B612F8A76C14F0A36C14E0A26C14C06C14806C14006C5BC613F8EB1FC01D1D729C3A
->I[<1BF8F201FCF203FE1BFF62A262A2F21FFEA21BFC1A3FA2F27FF8A21BF01AFFA24F13
-E0A21BC061A24F1380A24F1300A262191FA24F5AA262197FA24F5AA26260A24E5BA26260
-A24E90C7FCA261181FA24E5AA261187FA24E5AA24D5BA2615FA24D5BA296C8FC5FA24D5A
-A260173FA24D5AA26017FFA24C5BA2605EA24C5BA295C9FC5EA24C5AA24C5AA25F167FA2
-4C5AA25F5DA24B5BA25F5DA24B90CAFCA25E151FA24B5AA25E157FA24B5AA25E5CA24A5B
-A25E5CA24A90CBFCA24A5AA25D143FA24A5AA25D14FFA2495BA25D5BA2495BA292CCFC5B
-A2495AA25C133FA2495AA25C13FFA2485BA2485BA25C5AA24890CDFCA25B121FA2485AA2
-5B127FA2485AA25BA25B127F6C5A6CCEFC>80 181 116 263 105
-I<EB1FC0EBFFF8000313FE487F4814804814C04814E0A24814F0A3B612F8A76C14F0A36C
-14E0A26C14C06C14806C14006C5BC613F8EB1FC090C8FCB3A5EB1FC0EBFFF8000313FE48
-7F4814804814C04814E0A24814F0A3B612F8A76C14F0A36C14E0A26C14C06C14806C1400
-6C5BC613F8EB1FC01D5172D03A>58 D<EB1FC0EBFFF8000313FE487F4814804814C04814
-E0A24814F0A3B612F8A76C14F0A36C14E0A26C14C06C14806C14006C5BC613F8EB1FC090
-C8FCB3A5EB3FC0EBFFF0000313FC487F487F4814804814C0A24814E0A2B612F0A215F8A4
-15FCA37EA27EA27E7E7E7EC613FBEB3FE3EB000715F8A4140FA215F0A2141F15E0143FA2
-15C0147F158014FF491300A2495A13075C130F495A495A137F495A485B485B4890C7FCA2
-6C5A5BEA01F06C5A1E7472D03A>I<001FC212FE488D482280C412C0A56C22806C220000
-0F69D7FCB3AD000FC212FE003F8D482280C412C0A56C22806C22006C698A3574C7A3>61
-D<BEFC1DFCF5FFC01EF81EFF1FC01FF01FFC8B797EC7000F02F8C9001F810A03810A0081
-778077807780897780898D898D898DA38A8DAA9BB65AA3696569659EC7FC6568535C535C
-535C535C9AB65A0A035D0A0F4AC8FC0A3F14F80903B65A94BB128054C9FC1EF09BCAFC1E
-F8F6FF801FE01FFC05F8C9000714FF0A0015C00B3F800B0F14F877807780778077818D78
-807880A278808DA27880A38DA28A2280AB541500A4545CA3545CA2545C9BB6FC69535D65
-0B0F5D535D0B7F92C7FC52B65A0A1F5DC15A6820C09DC8FC1FFC1FF01FC054C9FC1EE00B
-F8CAFC817D79FC95>66 D<0703B517F84EB600FCED01FC063FDBFF8014030503B800F014
-07051F05FC140F94BA141F040307C0137F040F07F013FF043FF1FC0193BB6C5A03039326
-FC001FEBFF87030F4BC814CF4B03E0033F90B5FC037F92C9120792B600FC1601020303F0
-824A03C0173F4A92CB7E4A4A844A02F8844A4A8491B64884494B84494B854992CD7E4C86
-495C494A8649895E49895E90B64886A2488A5E5A93CF127F5AA2481F3F5DA25AA24B1C1F
-5AA3F80FF8489CC7FCA35DA3B6FCB17EA381A37EA2F807F8F80FFC7E81A27EA2816C1F1F
-21F87E826C1F3F826C20F0207F6D80701CE06D1EFF705013C07F6D6E5013806D6E62701C
-006D6F616D6F4F5A6D6F4F5A6E6E4F5A6E6E19FF6E02FE4E5B6E6E06075B6E03C04D5B6E
-03F0053F5B020003FC4D90C7FC6FDAFF804B485A031F03F0030F5B6F03FF037F13F00303
-04FC010FB55A030093B85A043F97C8FC040F19FC040319F0040019C0051F95C9FC050317
-F8DD003F16C006014BCAFCDE000314807E8174FE97>I<BD12F8F4FFF01DFF1EF01EFCF6
-FF801FE01FF81FFE797EC7001F02F8C8000782E1001F15F00A0381E2007F800B1F14FF0B
-07810B018177810C3F80788078808A788078807881A279807980A27980A27980A27980A2
-8E8BA28EA223808BA323C0A47915E0A723F0B123E0A75515C0A42380A3551500A36A676A
-A2555CA2555CA2555CA2555C9CB65A669FC7FC545C545C545C0C3F5C545C53B65A535D0B
-0F92C8FC0B7F5C52B65A0A1F15F00907B75AC112809DC9FC1FFC1FF01F8054CAFC1EF01E
-800BF0CBFC0AFCCCFC8C7D78FCA0>I<C1FCA58CA5C7001F02FCC9FC1C03F4007F1D0F77
-801D01898A8A8A8A8AA2787FA28AA28AA31F7FA28CA2E17FE0143FA7797EA21BFFA29CC8
-FCA262A2626262621A7F0707B5FC94B8FCAA9438FC0007F1007F1A1F86868686A274EFFF
-C0A35513801B7FA5672100A398C9FC67A2681F0FA31F1FA2681F3FA21F7FA21FFF666866
-6666661E7F9BB55A1D031D0F1D7F0A03B6FC99B7FCC15AA768A37A7C78FB89>I<C012F8
-A48BA6C7000F4AC81203E1000F801C01767E1D1F1D07898989787E8AA28A8AA28A2080A2
-8AA38AA320C08AF37FE0A5F77FE0A409FF92C7FCA462A2626262621A7F0707B5FC94B8FC
-AA9438FE0007F1007F1A1F86868686A286A41B7FA998CBFCB3A8BB12FEA9EDFC07737C79
-FB84>I<B800FC067FB50007B512E07198B6FC8384848484A28484C7001F6F94C7001F01
-C0C7FC72070790C8FC85A2858585858515FD03FC81708070817081868270817081708170
-818683718171817181877181837181718172808872818472817281728188728184738073
-81738189857381738173817381898674817481748174818A867481748175807515801FC0
-877515E07515F07515F87515FC1FFE877614FF7615877615C77615E720F7887692B5FC88
-8889A289898989A28989898A8AA28A8A8A8A8AA28A8B8B8B8BA28BDA7FFF87B900C0848B
-8CA28C8C8C8C7A5ADAFC1F765A937D78FCA4>78 D<96387FFFE0063FB612C00503B712FC
-053FEEFFC04CB912F8040718FE043FF0FFC093BB12F003031AFC4BDBF00081031F92C700
-0F6E7E4B02F802018192B600C0DA003F14F04A92C9000F804A4A7080020F02F8040114FF
-4A4A70814A4A71804A4A718091B64871804992CB6C804C84494A7280494A7280498A4C84
-498B494A7380A2494A738090B6894C85488CA24892CD6C80A3484A7480A2488CA24B8648
-2180A34821C0A44B864821E0A6B61FF0B26C21E0A36F62A36C21C0A56C6E501580A36C21
-00A26F626C68A26C6F4F5CA36C6F4F5CA26C686D6E4F5CA26D6E96B65AA26D6E4E5D6D6E
-4E92C7FC6D6670606D6E4E5C6D6F4D5C6D6F4D5C6E6E4D5C6E6E94B65A6E6E4C5D6E6E4C
-92C8FC6E02FF040F5C6E6F4B5C020003E0037F14F06F02F84AB65A031F02FF020F15806F
-03F090B7C9FC030392B812FC03001AF0043F19C0040F96CAFC040118F8DC003F17C00507
-4CCBFCDD003F15C0DE007F01E0CCFC848174FE9D>I<BD12E0F4FF801DFCF5FF801EE01E
-FC1EFF8B1FE08BC7001F02F8C8000F15FC0900810A1F800A07810A018176817780898C89
-8C7780A38C892180A421C0AC2180A32100A26568A26865686568535C9AB65A0A035D5292
-C7FC0A1F5C99B65A091F5D94BB12E0679CC8FC1EFC1EF01E800BFCC9FC1DC00AE0CAFC05
-FCCFFCB3B3A8BB12C0A9EDF80F7A7D78FC8F>I<93B516F8031F02FC4A7E92B76C130302
-0704F01307021F04FC130F027F04FF131F91B9EAC03F0103F0F07F49F0F8FF49DAC00114
-FD4949C7000F90B5FC4901F0140149496E7E90B50080151F4891C91207484916014A8248
-854A8348854A83488586485B86A24885A21B7FA2B5193F80A21B1F80A280A26E180F8081
-8103F0715A6C02FC94C8FC15FF16F016FF6C16F8EFFFC018FC6CEFFFE019FE6CF0FFC01A
-F06C19FC1AFF6C866C1AE0876C866D856D856D856D866D866D8601008680021F85020785
-14016E6C84150F0300841607EE007F05031780EF001F060116C0F0001F19071901857414
-E08686D87F8084486C84A286A286A36D84A31DC07FA37F1D806D60A26D1B007F6E4D5B80
-6E4D5B806E4D5B02FE5F6E6C4C5B03E04C5B03F893B55A03FF150304F0020F5CDCFFE090
-B6C7FC94B75AD9FC7F18F8D9F81F60496C60D9E003188049C66C4CC8FC49011F16F890C7
-000116E048DA001F4AC9FC007CDB007F13E05B8174FE74>83 D<000FC112F8A6488CA493
-C7001F02FCC77E03E01A0392C8F0007F02FC1C1F4A8802E01C034A884849767F91C91A7F
-A2491E3FA2491E1FA2491E0FA3491E07007F8CA4498AA700FF2180498AA5CB97C8FCB3B3
-B3AE4ABD12C0A9F1F007817B78FA92>I[<B612FEAB01E0C7FCB3B3B3B3B3B3B3B3AF90B5
-12FEAB>31 181 106 263 58 91 D[<B612FEABC7120FB3B3B3B3B3B3B3B3AFB6FCAB>
-31 181 124 263 58 93 D<150C151E153FEDFFC04A7F4A7F4A7F021F13FE4A7F4A8049
-B612E0498149814981013F15FF498290B500F380000302E114F048DA807F7F489026FE00
-1F7F48496D7F007F01F00103EBFF80B5486D14C06C01806D6C13806C90C86C130001FC15
-0FD81FF0ED03FE6C486F5A0180ED007C6CCA12383A1E69FD69>I<0307B512C04AB612FE
-021FEDFFE091B812FC010317FF4918C0011F18F04984499026FC000714FE03E001008090
-B56C023F804871806F020780A2486E6E8072808487A2737FA36C4A6F7FA26C5C6D5B6D5B
-6D5B6D90C9FCEB01F890CBFCA40607B6FC94B8FC163F0307B9FC157F0203BAFC141F027F
-EDF83F49B6EAFC00010715C0011F02FCC7FC017F14E090B61280484AC8FC485C4814F048
-5C485C5D5A92C9FC5A5CA2B55AA561A28096B6FC6C5F806C5F6F5C6C6EDA0FF7806F023F
-15F86C02F8DAFFE7ECFFF86C6E010301C715FC6C9126FF803F018315FE6C92B612036C6C
-EEFC016D4C7E010F04E07F01030480131FD9007F4AC7000714FC020F02F0DA007F13F8DA
-003F90CCFC5F547AD266>97 D<ED7F8090B6FCB7FCAAC67E131F7FB3AC953807FFF095B6
-7E050F15F0053F15FE0481B87E048717E0048F17F804BF8393B5D8F0038095C76C6D7E05
-F8020F8005E06E8005806E8094C98016FC4C707F4C707F4C707F5E1E80871EC0A27514E0
-A31EF0A2871EF8A51EFCAF1EF8A55114F0A31EE0A25114C0A21E80631E0082704C5B704C
-5BA204FE93B55A704B5C7102075C05E04A5C03FD6D023F5C03F801FE91B6C7FC9228F07F
-FFC00F14FC4B6C90B75A040F17E0DBC00317804B6C4CC8FC92C76C15F84A020F15E04A02
-014AC9FC90CA001F13C0667F7AFD74>I<933807FFFE4BB612F8030F15FF037F16E04AB8
-12F8020783021F17FF027F188091BA12C049ED8003499126F8000114E0010F02E016F049
-02805B4991C7FC4B4A14F8495B90B55A5A5D485C5AA2484A6E14F0A2487114E04B6E14C0
-73138048721300735AF103F04895C8FC92CCFCA4B6FCAF7E81A37EA3817EA26C6EEE03FC
-F207FE6C801A0F6C6E17FC6F161F7E6C6EEE3FF86FEE7FF06D6E15FF6D02E04A13E06D6E
-5C6D02FC4A13C06DDAFF80013F13806DDBF801B51200010092B65A6E5F021F17F002075F
-020117806E6C4BC7FC030F15F003011580DB000701F0C8FC4F5479D25D>I<F43FC0087F
-B5FC96B7FCAAF1003F1A0F86B3AC93380FFFE04BB6FC031F15E0037F15FC0203B8FC020F
-17C74A17E7027F94B6FC49B6EAC00F4902FCC7FC4902F0143F4902C0140F494A14034949
-C87E49496F7E90B5488286484A82485CA25A5D5AA2485CA25AA34891CAFCA5B6FCAF7EA5
-6C80A37EA36C80A27E6F5E6C617E6F5E6C6E93B6FC6D6D15036D5F03FF4B816D6E023F15
-F86D02E091B812FC010302F813036D02FF133F6D92B612EF023F178F6EEEFE0F020716F8
-020116E0DA003F15800307ECFC00DB003F018003F8C7FC667F79FD74>I<93380FFFF04B
-B67E030F15F8037F15FE4AB87E020717E0021F17F8027F8391B6C66C7F010302F8010F7F
-4902E00103804902800100804991C86C7F49496F7F49498190B5486F7F4B834884484A83
-85484A83855A4B18805A851CC05AA292CAFC4885A21CE0A3B6FCA292BAFCA51CC01C8092
-CDFCA57EA3817EA37EA2816CF21F80F33FC06C6EEF7FE0A26C6E17FF1CC06C6E5E6C6E4C
-13806F5E6D6D4C13006D6E5D6D6E4B5A6D02F04B5A6D02FCEC01FF6DDAFF80010F5B6D03
-F890B55A6D6C91B712C0021F606E95C7FC020317FC020017F0031F16C003074BC8FCDB00
-7F14F0040149C9FC53547AD260>I<943807FFF04CB512FE041F6E7E93B712E003038203
-0F82033F824B824AB5D8FE077F4AECF00F4A02C015804AEC001F4A5B4A494914C04A5B5E
-91B5FC495CA25E49701480A3494A6D1400725B725B725B9538007FE0070FC7FC96C8FCB1
-B912FCAAD8000702C0CAFCB3B3B3A7007FB812C0A9ECF83F4A7F79FE40>I<F303FE93B5
-6C91383FFF80031F02FC91B512E04AB7D8C00314F00207DCF00F14F8021FEEFC3F027FDC
-FF7F14FC49BCFC491BFE49DAF00715C34991C76CEBFE034901FC021F13FC49496E13FE49
-496E13FF90B5486E028113FCA2484A6E6E13F84886F43FE0F40F80484A6E6EC7FCA34886
-AA6C62A36C6E4A5CA36C626C6E4A5CA26D6D4A91C8FC6D6D4A5B6D6D4A5B6D01FF027F5B
-6DDAF007B55A93B75A49604995C9FC02DF16FCD93FC716F0D97FC116C0DA801F02FCCAFC
-0300148001FF91CDFCA35A80A380808080ECFF8092B712F8F1FFF06C19FF1BE01BF86D19
-FE757E6D86886D86886D866D866D86130F013F1B8090BDFC00031CC05A4891C9001F15E0
-4801FCEE007F02F0170748491701487314F04A8487B55A87A56E606C1CE0A26E606C6D95
-B512C06E5F6C6D4D14806C6D4D14006C6D6C041F5B6C6E4C5B6C02F84BB55A6C02FF030F
-5C6D02FC0103B65A011F91B912806D97C7FC010319FCD9007F18E0021F1880020105F8C8
-FCDA001F1680DB003F02C0C9FC5F787AD269>I<ED7F8090B6FCB7FCAAC67E131F7FB3AC
-F1FFFE060FEBFFF0063F14FC4DB7FC050716C04D82053F824D829426FFFE018004819026
-E0007F7F048301806D7FDC87FEC77EDC8FF883EE9FF0DCBFE0804D83EEFF8094C8FC4C81
-4C84A25EA25EA25EA45EB3B3A7B800FE90B812FEA9DAF87FEFFC3F677E78FD74>I<147F
-903803FFE0010F13F8497F497F497F90B67EA24881A34881A76C5DA36C5DA26D91C7FC6D
-5B6D5B6D5B010313E0D9007FC8FC91C9FCB0ED7F8090B6FCB7FCAAC67E131F7FB3B3B3A4
-B812F0A9ECF07F2C7F78FE3A>I<ED7F8090B6FCB7FCAAC67E131F7FB3AD963A3FFFFE3F
-FC98B5FCA9070102C0C7FC51C8FC4F5B4F5B4F13E0073F5B4F5B96B5C9FC4E5B060713F8
-4E5B4E5B4E5B95B5CAFC4D5B4D5B4D5B051F13E04D5B4D5B94B5CBFC0481801687048F80
-049F8004BF8093B67EA285858586A2053F80DCFC1F804C6C8004F0814C7EDC8003804C6C
-80868372807280728087847280728072808784738073808873808573807380887380B800
-F0017FEDFFE0A902F0F0FC1F637E7AFD6E>107 D<ED7F8090B6FCB7FCAAC67E131F7FB3
-B3B3B3B3ACB812F8A9ECF07F2D7E78FD3A>I<DB7F8091263FFF8093380FFFE0017FB502
-03B500FC93B6FCB7021F02FF030715C0067F03C0021F15F04DB700F0027F15FC05077049
-B77E051F700107824D7049834D01006E49D9C03F80DDFFF0013F9128803FFC000F800481
-01C0010F9126C07FF0010380048390C7EEFFC0D8003FDA87FC6E02E190C76C80010FDA8F
-F8EFE3FE6DDA9FF06EDAE7FC804DDDF7F883DCBFC0EFFFF0DCFF806094C86C4B81A17E4C
-614C96C9FCA24C60A34C60A34C60B3B3A7B9013FB8D8C00FB812F0A9DAFC3F060F18C3A4
-5279D1AF>I<03FFEDFFFE90B6020FEBFFF0B7023F14FC4DB7FC050716C04D82053F824D
-829426FFFE01804C9026E0007F7F4C01806D7F4C48C77EC66CDA0FF883011F4A5A6D4A48
-804D834C5A4CC8FC4C814C84A25EA25EA25EA45EB3B3A7B800FE90B812FEA9DAF87FEFFC
-3F675278D174>I<933803FFFC93B612F0030715FE033FEDFFC092B812F0020717FE4A83
-023F18C04ADA801F8049B526F8000114F84902E06D6C7F490280021F7F4949C800077F49
-496F8049496F8049496F8090B5854B824887484A707FA248874B824887A2481C80A292CA
-7E481CC0A3481CE0A5B61AF0AE6C1CE0A56C6E4C14C0A36C1C80A26C1C006F5E6C63A26C
-6E4C5BA26C6E93B55A6C636F5D6D6D4B5C6D6D4B5C6D6D6C021F5C6D02E0027F91C7FC6D
-02F849B55A6D9126FF801F5C010092B712F06E60021F188002074DC8FC020117F86E6C16
-E0030F93C9FC030015F0040301FCCAFC5C547AD269>I<DB7F80903803FFF890B6027FEB
-FFC0B70107B612F8053F15FE94B812C0048383048F17F804BF17FE93BAFCDEF0078195C7
-8105F8023F80C66C03C06E80011F4B0207806D4AC86C804C814C844C6F804C824C198087
-1EC0871EE0871EF0A3871EF8A4871EFCAF5114F8A51EF063A21EE0631EC0A2511480A251
-1400827093B55A505C82704B5C04FF4B5C71021F5C714A5C05F04A5C05FE0103B6C7FC94
-26FFC01F14FC95B75A04CF17E004C75F04C194C8FCDCC07F15F8050F15E005014AC9FCDD
-001F13C095CCFCB3A6B812FEA9ECF87F66757AD174>I<DA01FEECFFE048B5020713FEB6
-021F6D7E057F14E094B67E4C15FC4C815E4C01877F93261FFC0F148017F8EE3FE0C66C4A
-484814C0011F15806DECFF00A26F5A5EA24C6D1480A27214005E725B4C6D5B9538007FF0
-F10F8096C8FC5EA65EB3B3A2B97EA9ECF07F4A527AD156>114 D<92B500C0137C021F91
-38FC01FE91B71287010716FF131F5B90B9FC48ECC0014801FCC7121F4801E01403484980
-91C9FC48177F49163F003F171F49160F127FA2180712FF7FA27F806E6F5A02F092C8FC14
-FEECFFC015FE6CECFFF8EEFFE017FC6CEEFF8018E06C17F818FE6C717E6C846C846C846C
-846D83011F836D83130301001880141F020317C0EC001FDB007F15E01603EE001F050314
-F01700D87F8082486C8284846D82A2847FA26D18E0A27FA26D4C13C07F6E4B1380806E4B
-130002F85D6EEDFFFEDAFF8001075B03F8017F5B92B75A61198001F094C7FCD9E03F15FC
-D9800F15E026FE000192C8FC007CD9001F13E0445479D253>I<ED3FF0A8157FA515FFA3
-5CA35CA35C5CA25CA25C5C91B5FC5B5B5B5B133F90B912F81207BAFCA8D8000302F0C9FC
-B3B3A3953801FF80AF4E13006D80A2606D6E5C180F6E6D495A70133F6E9138C0FFF86E91
-B55A616E5E02035E6E93C7FC6E6C5C031F14F8030314E09226003FFEC8FC41757CF351>
-I<DB7FC0EF3FE090B6047FB5FCB792B7FCAAC66CEF003F011F180F6D84B3B3A862A362A3
-62A26D6097B6FC616D6E5C4F816DDD0FFB14FC70DA3FF3ECFFFE6D6EECFFE36E9026FF80
-0713C394B612836E1703020F16FE6E16F8020116F06E6C15C0030FECFE00DB003F01E04B
-C7FC675378D174>I<B500C1B500F0913A1FFFE3FFE091B694B5FCA9D8000F02E0C9001F
-90C7FC755A6D6E4C5AA26D6E4C5AA26D6E4C5AA26D6E5F1BFFA26E6D4B5BA26E6E4A5BA2
-6E6E4A90C8FCA26E6E4A5AA36E6E4A5AA26E6E4A5AA26E6E4A5AA26E6E4A5AA2836F4B5B
-A26F6E485BA26F6E4890C9FCA26F6E485AA26F02F05B191FA26F6E485AA26F6E485AA26F
-6E485AA27090B55AA3705DA27092CAFCA2705CA2705CA2705CA3705CA2705CA2715BA271
-5BA37190CBFC715A715A63527BD06E>I<B50083B527E03FFFE1B500E0903A0FFFF8FFF0
-91B692B693B5FCA9D8001F0280C700030280C80007EBC00070755B6D716E94C7FC706388
-6D714E5A826D726D5E7092B5161F886D545A705C6D745E704A187F886E535A705C6E735E
-71495F896E525B715B6E7492C8FC71D93FF95E896E05F05F71017F170F6E745C7149486C
-151F896E4D6C5E7148183F6E745C4E496C157F05FE836F4C6C5E714818FF896F4A486D4A
-5B068F17816F4B6D5E06DF17831EC36FDAFFF86D02C790C9FC1EE76F4B6D5D1EEF1EFF6F
-4B6E5CA26F4B6E5CA36F4B6E5CA27091C86C5CA370496F5CA270496F5CA370496F91CAFC
-A270614E81A27049705AA27049705A706CCAEA0FE08C527BD097>I<267FFFE1B500F090
-3B07FFFE3FFF8091B693B6FCA9D8000102FCC8003F01E0C7FC6D6E6F90C8FC6E6D4B5A71
-147F6E606E6E4A5A6E6E495B6E6E495B6E6E495B71495B6E5E6E6E92C9FC6F6D495A6F6E
-485A72485A6F02C15B6F02E35B6F14F76F91B55A6F5E97CAFC6F5D705C705C8261705C70
-8070807080858285864C814C814C815E4C814C814D804C48804C487E4B496C804B496C80
-4B496C804B6E800580814B497E4B486D804B486D804B486E7F4A49834A824C6E804A496E
-804A496E804A90C8814A48814A486F8049486C6F80B700F8023F91B512F8A9D9FE1FF0FE
-1F65517CD06E>I<267FFFE0B500F8913A0FFFF1FFF091B694B5FCA9D8000702F0C9000F
-EB80007590C7FC6D6E4C5AA26D6E4C5AA26D6E4C5AA26E6D4C5AA26E6E4B5AA36E6E4A5B
-A26E6E4A5BA26E6E4A90C8FCA26E6E4A5AA26E6E4A5AA36E6E4A5AA26F6D4A5AA26F6E49
-5AA26F6E485BA26F6E485BA36F6E4890C9FCA26F6E485AA26F6E485AA26F6E485AA2706D
-485AA3704A5AA2705DA2705DA27092CAFCA2705CA3705CA2705CA2715BA2715BA2715BA3
-715BA27190CBFCA24D5AA24D5AA260173FA2D801FE4B5A3807FF80001F01E04A5A487F4C
-5B487F4C5BB57E4C90CCFCA24C5A161F4C5A4C5A4A495A6C5C4B5BDAF00F5B273FFDE03F
-5B261FFF41B5CDFC91B55A6C15F86C5D6C5D6C15806C6C49CEFC011F13F0010390CFFC64
-757CD06E>I E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 1200dpi
-TeXDict begin
-%%PaperSize: A4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 100 1023 a Fh(P)-6 b(ac)g(k)-12 b(age:)100 1294
-y Fg(A)55 b(Lustre)f(pac)-5 b(k)-10 b(age)54 b(is)h(a)f(sequence)g
-(\(seman)-5 b(tically)53 b(a)i(set\))f(of)g(declarations)h(of)f
-(constan)-5 b(ts,)54 b(t)-5 b(yp)5 b(es,)55 b(functions)100
-1520 y(or)60 b(no)5 b(des.)557 1791 y Ff(LusPack)p 557
-1820 670 8 v 249 w Fe(\000)-31 b(!)250 b(f)p Ff(OneDe)-9
-b(cl)p 2110 1820 667 8 v 99 w Fe(g)2969 1725 y Fd(\003)560
-2062 y Ff(OneDe)g(cl)p 560 2091 V 247 w Fe(\000)-31 b(!)200
-b Ff(ConstDe)-9 b(cl)p 1969 2091 802 8 v 211 w Fe(j)101
-b Ff(T)-14 b(yp)-9 b(eDe)g(cl)p 3134 2126 714 8 v 210
-w Fe(j)101 b Ff(F)-14 b(uncDe)-9 b(cl)p 4211 2091 730
-8 v 210 w Fe(j)100 b Ff(No)-9 b(deDe)g(cl)p 5304 2091
-738 8 v 100 2604 a Fh(Constan)j(t)69 b(Declarations:)100
-2875 y Fg(A)80 b(constan)-5 b(t)79 b(can)g(b)5 b(e)80
-b(declared)g(with)h(its)f(t)-5 b(yp)5 b(e)79 b(and/or)h(v)-10
-b(alue.)139 b(If)79 b(no)h(v)-10 b(alue)80 b(is)g(giv)-5
-b(en,)84 b(the)c(constan)-5 b(t)79 b(is)100 3100 y(considered)64
-b(as)g(imp)5 b(orted.)90 b(Imp)5 b(orted)62 b(constan)-5
-b(ts)63 b(of)g(a)i(same)d(t)-5 b(yp)5 b(e)64 b(can)g(b)5
-b(e)64 b(giv)-5 b(en)64 b(as)g(a)g(list.)92 b(The)65
-b(t)-5 b(yp)5 b(e)63 b(of)100 3326 y(de\014ned)d(constan)-5
-b(t)59 b(can)i(b)5 b(e)60 b(giv)-5 b(en)61 b(for)f(more)f(precision.)
-425 3597 y Ff(ConstDe)-9 b(cl)p 425 3626 802 8 v 249
-w Fe(\000)-31 b(!)200 b Fh(const)221 b Fe(f)p Ff(OneConstDe)-9
-b(cl)p 2759 3626 1127 8 v 100 w Fe(g)4078 3531 y Fc(+)4317
-3597 y Fh(;)100 3868 y Ff(OneConstDe)g(cl)p 100 3897
-V 248 w Fe(\000)-31 b(!)250 b(f)p Ff(Idf)p 2110 3933
-219 8 v 111 w Fh(,)101 b Fe(g)2690 3802 y Fd(\003)2890
-3868 y Ff(Idf)p 2890 3933 V 111 w Fh(:)111 b Ff(T)-14
-b(yp)-9 b(e)p 3389 3933 372 8 v 1598 4139 a Fe(j)320
-b Ff(Idf)p 1969 4204 219 8 v 110 w Fh(=)111 b Ff(Exp)p
-2572 4204 301 8 v 223 w Fg([)o Fh(:)h Ff(T)-14 b(yp)-9
-b(e)p 3315 4204 372 8 v 50 w Fg(])100 4681 y Fh(T)j(yp)6
-b(e)69 b(Declarations:)100 4952 y Fg(A)63 b(declared)f(t)-5
-b(yp)5 b(e)62 b(can)h(b)5 b(e)62 b(external)h(\(just)e(a)h(name\))f(or)
-i(declared.)86 b(Declared)62 b(t)-5 b(yp)5 b(es)62 b(are)h(either)f
-(aliases)h(on)100 5178 y(t)-5 b(yp)5 b(e)60 b(expressions,)f(or)i
-(built)g(t)-5 b(yp)5 b(es)60 b(\(structured)g(or)g(en)-5
-b(umerated\).)513 5449 y Ff(T)-14 b(yp)-9 b(eDe)g(cl)p
-513 5513 714 8 v 248 w Fe(\000)-31 b(!)200 b Fh(t)-6
-b(yp)6 b(e)222 b Fe(f)p Ff(OneT)-14 b(yp)-9 b(eDe)g(cl)p
-2685 5513 1039 8 v 109 w Fh(;)101 b Fe(g)4085 5383 y
-Fc(+)188 5720 y Ff(OneT)-14 b(yp)-9 b(eDe)g(cl)p 188
-5784 V 247 w Fe(\000)-31 b(!)250 b(f)p Ff(Idf)p 2110
-5784 219 8 v 111 w Fh(,)101 b Fe(g)2690 5654 y Fd(\003)2890
-5720 y Ff(Idf)p 2890 5784 V 212 w Fe(j)f Ff(Idf)p 3472
-5784 V 111 w Fh(=)111 b Ff(T)-14 b(yp)-9 b(e)p 4076 5784
-372 8 v 1598 5991 a Fe(j)320 b Ff(Idf)p 1969 6055 219
-8 v 110 w Fh(=)111 b Ff(T)-14 b(yp)-9 b(eBuilder)p 2572
-6055 953 8 v 274 6262 a(T)-14 b(yp)-9 b(eBuilder)p 274
-6326 V 247 w Fe(\000)-31 b(!)200 b Fh(en)-6 b(um)110
-b Fb(f)222 b Fe(f)p Ff(Idf)p 2994 6326 219 8 v 111 w
-Fh(,)101 b Fe(g)3574 6196 y Fd(\003)3774 6262 y Ff(Idf)p
-3774 6326 V 111 w Fb(g)1598 6533 y Fe(j)320 b Fh(struct)111
-b Fb(f)222 b Fe(f)p Ff(Fields)p 3038 6562 472 8 v 110
-w Fh(;)101 b Fe(g)3871 6467 y Fd(\003)4071 6533 y Ff(Fields)p
-4071 6562 V 110 w Fb(g)755 6804 y Ff(Fields)p 755 6833
-V 248 w Fe(\000)-31 b(!)250 b(f)p Ff(Idf)p 2110 6868
-219 8 v 111 w Fh(,)101 b Fe(g)2690 6738 y Fd(\003)2890
-6804 y Ff(Idf)p 2890 6868 V 111 w Fh(:)111 b Ff(T)-14
-b(yp)-9 b(e)p 3389 6868 372 8 v 100 7346 a Fh(T)j(yp)6
-b(e)69 b(Expression:)100 7617 y Fg(Those)75 b(expressions)h(are)g(used)
-f(to)h(sp)5 b(ecify)75 b(the)h(t)-5 b(yp)5 b(e)75 b(of)h(a)f(v)-10
-b(ariable,)80 b(a)c(\014eld,)k(etc.)126 b(W)-15 b(e)75
-b(also)h(talk)g(ab)5 b(out)100 7843 y Ff(imme)-9 b(diate)53
-b Fg(t)-5 b(yp)5 b(e,)55 b(to)g(outline)h(the)e(di\013erence)i(with)f
-Ff(built)k(typ)-9 b(es)p Fg(.)79 b(Immediate)52 b(t)-5
-b(yp)5 b(es)54 b(are)h(prede\014ned)g(t)-5 b(yp)5 b(es,)100
-8068 y(t)-5 b(yp)5 b(e)60 b(iden)-5 b(ti\014ers)61 b(\(references)e(to)
-h(declared)h(t)-5 b(yp)5 b(es\))59 b(or)i(static)f(arra)-5
-b(ys.)855 8339 y Ff(T)-14 b(yp)-9 b(e)p 855 8404 V 249
-w Fe(\000)-31 b(!)200 b Ff(Pr)-9 b(e)g(defT)-14 b(yp)-9
-b(e)p 1969 8404 870 8 v 210 w Fe(j)100 b Ff(Idf)p 3201
-8404 219 8 v 212 w Fe(j)h Ff(T)-14 b(yp)-9 b(e)p 3784
-8404 372 8 v 110 w Fh(^)111 b Ff(Exp)p 4482 8404 301
-8 v 358 8881 a(Pr)-9 b(e)g(defT)-14 b(yp)-9 b(e)p 358
-8946 870 8 v 247 w Fe(\000)-31 b(!)200 b Fh(b)6 b(o)g(ol)211
-b Fe(j)100 b Fh(in)-6 b(t)213 b Fe(j)100 b Fh(real)3758
-11695 y Fg(1)p eop
-%%Page: 2 2
-2 1 bop 100 804 a Fh(F)-17 b(unction)69 b(Declarations:)100
-1075 y Fg(A)61 b(function)f(is)h(declared)f(with)h(the)f(names)f(and)i
-(t)-5 b(yp)5 b(es)59 b(of)h(its)h(formal)e(parameters.)307
-1346 y Ff(F)-14 b(uncDe)-9 b(cl)p 307 1375 730 8 v 247
-w Fe(\000)-30 b(!)199 b Fh(function)111 b Ff(Idf)p 2639
-1410 219 8 v 111 w Fh(\()g Ff(V)-14 b(arDe)-9 b(clList)p
-3161 1375 938 8 v 110 w Fh(\))112 b(returns)f(\()h Ff(V)-14
-b(arDe)-9 b(clList)p 5370 1375 V 110 w Fh(\))100 1888
-y Ff(V)-14 b(arDe)-9 b(clList)p 100 1917 V 248 w Fe(\000)-30
-b(!)249 b(f)p Ff(V)-14 b(arDe)-9 b(cl)p 1920 1917 633
-8 v 110 w Fh(;)101 b Fe(g)2914 1822 y Fd(\003)3114 1888
-y Ff(V)-14 b(arDe)-9 b(cl)p 3114 1917 V 404 2430 a(V)-14
-b(arDe)-9 b(cl)p 404 2459 V 248 w Fe(\000)-30 b(!)249
-b(f)p Ff(Idf)p 1920 2494 219 8 v 111 w Fh(,)101 b Fe(g)2500
-2364 y Fd(\003)2700 2430 y Ff(Idf)p 2700 2494 V 111 w
-Fh(:)111 b Ff(T)-14 b(yp)-9 b(e)p 3199 2494 372 8 v 100
-3166 a Fh(No)6 b(de)68 b(Declaration:)100 3437 y Fg(A)61
-b(no)5 b(de)61 b(can)h(b)5 b(e)61 b(declared)g(with)h(a)f(complete)f
-(description)h(of)g(its)g(dynamic)f(b)5 b(eha)-5 b(viour,)62
-b(or)f(b)-5 b(y)62 b(implicitely)100 3663 y(reusing)51
-b(the)g(dynamic)f(b)5 b(eha)-5 b(viour)52 b(of)f(another)g(no)5
-b(de.)77 b(A)51 b(no)5 b(de)51 b(can)g(ha)-5 b(v)g(e)51
-b(static)g(parameters)e(\(w)-5 b(e)51 b(also)h(talk)100
-3889 y(ab)5 b(out)60 b Ff(template)k(no)-9 b(de)p Fg(,)59
-b(or)i(no)g(\(in)g(whic)-5 b(h)61 b(case)f(w)-5 b(e)60
-b(also)h(talk)g(ab)5 b(out)60 b Ff(actual)k(no)-9 b(de)p
-Fg(\).)894 4160 y Ff(No)g(deDe)g(cl)p 894 4189 738 8
-v 248 w Fe(\000)-31 b(!)199 b Fh(no)6 b(de)111 b Ff(Idf)p
-2923 4224 219 8 v 222 w Fg([)p Ff(StaticPr)-9 b(oto)p
-3415 4189 893 8 v 50 w Fg(])172 b Ff(No)-9 b(dePr)g(oto)p
-4580 4189 833 8 v 110 w(No)g(deBo)g(dy)p 5523 4224 789
-8 v 2002 4431 a Fe(j)320 b Fh(no)6 b(de)111 b Ff(Idf)p
-2923 4495 219 8 v 222 w Fg([)p Ff(StaticPr)-9 b(oto)p
-3415 4460 893 8 v 50 w Fg(])172 b Fh(=)110 b Ff(Idf)p
-4853 4495 219 8 v 222 w Fg([)p Ff(StaticA)-5 b(r)c(gList)p
-5345 4495 1042 8 v 51 w Fg(])171 b Fh(;)100 4973 y Fg(Static)60
-b(parameters)e(are)j(constan)-5 b(ts)59 b(and)h(abstract)g(t)-5
-b(yp)5 b(es,)59 b(or)i(no)5 b(des.)739 5244 y Ff(StaticPr)-9
-b(oto)p 739 5273 893 8 v 250 w Fe(\000)-31 b(!)199 b
-Fa(<<)171 b Fe(f)p Ff(StaticPar)-9 b(am)p 2827 5273 981
-8 v 111 w Fh(;)101 b Fe(g)4169 5178 y Fd(\003)4369 5244
-y Ff(StaticPar)-9 b(am)p 4369 5273 V 110 w Fa(>>)651
-5515 y Ff(StaticPar)g(am)p 651 5544 V 249 w Fe(\000)-31
-b(!)199 b Fh(t)-6 b(yp)6 b(e)112 b Ff(Idf)p 2888 5579
-219 8 v 212 w Fe(j)101 b Fh(const)110 b Ff(Idf)p 4059
-5579 V 111 w Fh(:)h Ff(T)-14 b(yp)-9 b(e)p 4558 5579
-372 8 v 2002 5786 a Fe(j)320 b Fh(no)6 b(de)111 b Ff(Idf)p
-2923 5850 219 8 v 111 w(No)-9 b(dePr)g(oto)p 3253 5815
-833 8 v 100 6328 a Fg(A)62 b(no)5 b(de)62 b(protot)-5
-b(yp)5 b(e)61 b(de\014nes)h(the)g(formal)e(inputs/outputs)h(of)h(a)g
-(no)5 b(de)62 b(\(in)g(some)e(sence)i(the)f("t)-5 b(yp)5
-b(e")62 b(of)f(the)100 6554 y(no)5 b(de\).)79 b(F)-15
-b(ormal)60 b(no)5 b(de)60 b(parameters)e(are)j(t)-5 b(yp)5
-b(ed)60 b(iden)-5 b(ti\014ers)61 b(with)g(an)g(optionnal)g(formal)e
-(clo)5 b(c)-5 b(k\).)799 6825 y Ff(No)c(dePr)g(oto)p
-799 6854 V 249 w Fe(\000)-31 b(!)199 b Fh(\()112 b Ff(Clo)-9
-b(cke)g(dV)-14 b(arDe)-9 b(clList)p 2566 6854 1532 8
-v 108 w Fh(\))111 b(returns)g(\()h Ff(Clo)-9 b(cke)g(dV)-14
-b(arDe)-9 b(clList)p 5369 6854 V 108 w Fh(\))100 7367
-y Ff(Clo)g(cke)g(dV)-14 b(arDe)-9 b(clList)p 100 7396
-V 246 w Fe(\000)-31 b(!)250 b(f)p Ff(Clo)-9 b(cke)g(dV)-14
-b(arDe)-9 b(cl)p 2515 7396 1228 8 v 107 w Fh(;)101 b
-Fe(g)4103 7301 y Fd(\003)4303 7367 y Ff(Clo)-9 b(cke)g(dV)-14
-b(arDe)-9 b(cl)p 4303 7396 V 404 7638 a(Clo)g(cke)g(dV)-14
-b(arDe)-9 b(cl)p 404 7667 V 246 w Fe(\000)-31 b(!)199
-b Ff(V)-14 b(arDe)-9 b(cl)p 2373 7667 633 8 v 110 w Fh(when)111
-b Ff(Idf)p 3707 7702 219 8 v 212 w Fe(j)101 b Fh(\()111
-b Ff(V)-14 b(arDe)-9 b(clList)p 4482 7667 938 8 v 110
-w Fh(\))112 b(when)f Ff(Idf)p 6313 7702 219 8 v 100 8180
-a Fh(No)6 b(de)68 b(Bo)6 b(dy:)100 8451 y Fg(It)68 b(con)-5
-b(tains)69 b(an)g(optionnal)h(set)f(of)f(lo)5 b(cal)70
-b(v)-10 b(ariable)70 b(de\014nitions)g(and)f(a)g(sequence)f(\(seman)-5
-b(tically)68 b(a)h(set\))f(of)100 8676 y(equations.)843
-8947 y Ff(No)-9 b(deBo)g(dy)p 843 9012 789 8 v 249 w
-Fe(\000)-31 b(!)250 b Fg([)o Fh(v)-12 b(ar)112 b Ff(Clo)-9
-b(cke)g(dV)-14 b(arDe)-9 b(clList)p 2872 8976 1532 8
-v 108 w Fh(;)50 b Fg(])172 b Fh(let)222 b Fe(f)p Ff(Equation)p
-5394 9012 709 8 v 111 w Fh(;)101 b Fe(g)6464 8881 y Fc(+)6703
-8947 y Fh(tel)100 9218 y Fg(An)61 b(equation)f(is)h(either)g(an)f
-(assertion)g(or)h(a)f("real")h(equation.)923 9489 y Ff(Equation)p
-923 9554 V 249 w Fe(\000)-31 b(!)199 b Fh(assert)110
-b Ff(Exp)p 3014 9554 301 8 v 213 w Fe(j)101 b Ff(L)-9
-b(eftPart)p 3679 9554 658 8 v 111 w Fh(=)110 b Ff(Exp)p
-4721 9554 301 8 v 100 9760 a Fg(A)53 b(left)g(part)g(is)h(a)f(non-empt)
--5 b(y)51 b(list)i(of)g(left)g(item.)76 b(A)54 b(left)f(item)f(denotes)
-g(a)h(v)-10 b(ariable)54 b("piece":)77 b(a)53 b(full)h(v)-10
-b(ariable,)100 9986 y(the)60 b(\014eld)h(of)f(a)g(structured)g(left)g
-(item,)f(an)h(elemen)-5 b(t)59 b(or)i(a)f(slice)h(of)f(an)h(arra)-5
-b(y)61 b(left)f(item.)974 10257 y Ff(L)-9 b(eftPart)p
-974 10322 658 8 v 249 w Fe(\000)-31 b(!)250 b Fg([)o
-Fh(\()51 b Fg(])283 b Fe(f)o Ff(L)-9 b(eftItem)p 3030
-10322 668 8 v 111 w Fh(,)101 b Fe(g)4059 10191 y Fd(\003)4259
-10257 y Ff(L)-9 b(eftItem)p 4259 10322 V 222 w Fg([)o
-Fh(\))51 b Fg(])964 10799 y Ff(L)-9 b(eftItem)p 964 10864
-V 249 w Fe(\000)-31 b(!)199 b Ff(Idf)p 2373 10864 219
-8 v 212 w Fe(j)101 b Ff(L)-9 b(eftItem)p 2956 10864 668
-8 v 110 w Fh(.)111 b Ff(Idf)p 3903 10864 219 8 v 212
-w Fe(j)101 b Ff(L)-9 b(eftItem)p 4486 10864 668 8 v 110
-w Fh([)112 b Ff(Exp)p 5434 10864 301 8 v 111 w Fh(])2002
-11070 y Fe(j)320 b Ff(L)-9 b(eftItem)p 2373 11134 668
-8 v 111 w Fh([)111 b Ff(Exp)p 3321 11134 301 8 v 112
-w Fh(..)g Ff(Exp)p 3960 11134 V 223 w Fg([)o Fh(step)g
-Ff(Exp)p 5020 11134 V 51 w Fg(])172 b Fh(])3758 11695
-y Fg(2)p eop
-%%Page: 3 3
-3 2 bop 100 1023 a Fh(Expressions:)1046 1294 y Ff(Exp)p
-1046 1358 301 8 v 250 w Fe(\000)-31 b(!)199 b Ff(Pr)-9
-b(e)g(defConst)p 2088 1358 958 8 v 212 w Fe(j)100 b Ff(Idf)p
-3409 1358 219 8 v 212 w Fe(j)h Ff(UnOp)p 3992 1358 470
-8 v 110 w(Exp)p 4572 1358 301 8 v 213 w Fe(j)g Ff(Exp)p
-5237 1358 V 111 w(BinOp)p 5648 1358 519 8 v 111 w(Exp)p
-6278 1358 301 8 v 1717 1565 a Fe(j)320 b Fh(if)111 b
-Ff(Exp)p 2321 1629 V 112 w Fh(then)g Ff(Exp)p 3253 1629
-V 112 w Fh(else)g Ff(Exp)p 4109 1629 V 212 w Fe(j)101
-b Fh(with)111 b Ff(Exp)p 5290 1629 V 112 w Fh(then)h
-Ff(Exp)p 6223 1629 V 111 w Fh(else)f Ff(Exp)p 7078 1629
-V 1717 1836 a Fe(j)320 b Ff(Exp)p 2088 1900 V 51 w Fg(.)p
-Ff(Idf)p 2490 1900 219 8 v 212 w Fe(j)100 b Ff(Exp)p
-3072 1900 301 8 v 51 w Fh([)51 b Ff(Exp)p 3532 1900 V
-51 w Fh(])212 b Fe(j)101 b Ff(Exp)p 4305 1900 V 51 w
-Fh([)50 b Ff(Exp)p 4764 1900 V 51 w Fh(..)h Ff(Exp)p
-5282 1900 V 162 w Fg([)p Fh(step)f Ff(Exp)p 6221 1900
-V 51 w Fg(])111 b Fh(])1717 2107 y Fe(j)320 b Ff(NaryOp)p
-2088 2171 626 8 v 50 w Fh(\()162 b Fe(f)p Ff(Exp)p 3098
-2171 301 8 v 51 w Fh(,)101 b Fe(g)3699 2041 y Fd(\003)3838
-2107 y Ff(Exp)p 3838 2171 V 52 w Fh(\))1717 2378 y Fe(j)320
-b Fh(\()223 b Fe(f)p Ff(Exp)p 2483 2442 V 111 w Fh(,)101
-b Fe(g)3144 2312 y Fd(\003)3344 2378 y Ff(Exp)p 3344
-2442 V 112 w Fh(\))1717 2649 y Fe(j)320 b Ff(Idf)p 2088
-2713 219 8 v 111 w Fb(f)222 b Fe(f)p Ff(Idf)p 2836 2713
-V 111 w Fg(=)60 b Ff(Exp)p 3368 2713 301 8 v 111 w Fh(;)101
-b Fe(g)4029 2583 y Fd(\003)4229 2649 y Ff(Idf)p 4229
-2713 219 8 v 111 w Fg(=)60 b Ff(Exp)p 4761 2713 301 8
-v 112 w Fb(g)1717 2920 y Fe(j)320 b Ff(No)-9 b(deExpr)g(ession)p
-2088 2984 1247 8 v 111 w Fh(\()222 b Fe(f)p Ff(Exp)p
-3840 2984 301 8 v 112 w Fh(,)101 b Fe(g)4502 2854 y Fd(\003)4702
-2920 y Ff(Exp)p 4702 2984 V 112 w Fh(\))100 3462 y Fg(In)-5
-b(teger)59 b(and)i(\015oating)f(p)5 b(oin)-5 b(t)61 b(notations)f(are)h
-(follo)-5 b(wing)61 b(the)f(ansi-c)h(syn)-5 b(tax.)389
-3733 y Ff(Pr)c(e)g(defConst)p 389 3797 958 8 v 249 w
-Fe(\000)-31 b(!)199 b Ff(Inte)-9 b(ger)p 2088 3797 552
-8 v 211 w Fe(j)101 b Ff(R)-9 b(e)g(al)p 3003 3762 338
-8 v 210 w Fe(j)100 b Fh(true)213 b Fe(j)101 b Fh(false)100
-4275 y(Op)6 b(erator)69 b(denotations:)100 4546 y Fg(The)59
-b(e\013ectiv)-5 b(e)58 b(no)5 b(de)58 b(construction)g(denotes)g(an)h
-(actual)f(op)5 b(eration)59 b(wic)-5 b(h)59 b(can)g(b)5
-b(e)59 b(a)f(predi\014ned)h(op)5 b(eration,)100 4771
-y(or)60 b(a)h(user)f(de\014ned)g(op)5 b(eration,)61 b(in)g(whic)-5
-b(h)61 b(case)f(a)g(list)h(of)f(e\013ectiv)-5 b(e)60
-b(static)g(parameters)f(can)h(b)5 b(e)61 b(giv)-5 b(en.)100
-5042 y Ff(No)c(deExpr)g(ession)p 100 5107 1247 8 v 249
-w Fe(\000)-31 b(!)199 b Fh(op)6 b(erator)110 b Ff(Pr)-9
-b(e)g(defOp)p 2981 5107 730 8 v 1717 5313 a Fe(j)320
-b Ff(Idf)p 2088 5378 219 8 v 222 w Fg([)p Ff(StaticA)-5
-b(r)c(gList)p 2580 5378 1042 8 v 51 w Fg(])100 5584 y(The)60
-b(k)-5 b(eyw)g(ord)61 b Fh(if)111 b Fg(is)61 b(denoting)f(the)h
-(ternary)f(op)5 b(eration)61 b Fh(if)50 b Fg(...)p Fh(then)g
-Fg(...)p Fh(else)e Fg(...)616 5855 y Ff(Pr)-9 b(e)g(defOp)p
-616 5920 730 8 v 248 w Fe(\000)-31 b(!)199 b Ff(Unop)p
-2088 5920 424 8 v 212 w Fe(j)101 b Ff(BinOp)p 2875 5920
-519 8 v 211 w Fe(j)g Fh(if)923 6397 y Ff(Unop)p 923 6462
-424 8 v 250 w Fe(\000)-31 b(!)199 b Fh(not)212 b Fe(j)101
-b Fh(-)212 b Fe(j)100 b Fh(pre)212 b Fe(j)101 b Fh(curren)-6
-b(t)828 6939 y Ff(BinOp)p 828 7004 519 8 v 249 w Fe(\000)-31
-b(!)199 b Fa(->)161 b Fe(j)100 b Fh(when)212 b Fe(j)101
-b Fh(or)212 b Fe(j)100 b Fh(xor)212 b Fe(j)101 b Fh(and)212
-b Fe(j)100 b Fa(=>)161 b Fe(j)101 b Fh(=)211 b Fe(j)101
-b Fa(<>)160 b Fe(j)101 b Fa(<)161 b Fe(j)100 b Fa(>)1717
-7210 y Fe(j)320 b Fa(<=)161 b Fe(j)100 b Fa(>=)161 b
-Fe(j)100 b Fh(+)212 b Fe(j)100 b Fh(-)212 b Fe(j)101
-b Fh(*)211 b Fe(j)101 b Fh(/)212 b Fe(j)100 b Fh(div)213
-b Fe(j)100 b Fh(mo)6 b(d)211 b Fe(j)101 b Fa(^)161 b
-Fe(j)100 b Fa(|)721 7752 y Ff(NaryOp)p 721 7817 626 8
-v 249 w Fe(\000)-31 b(!)199 b Fa(#)161 b Fe(j)101 b Fh(nor)100
-8294 y(Static)70 b(argumen)-6 b(ts:)100 8565 y Fg(The)88
-b(strict)f(w)-5 b(a)g(y)88 b(is)g(to)g(sp)5 b(ecify)87
-b(the)h(nature)f(\(const,)94 b(t)-5 b(yp)5 b(e)87 b(or)h(no)5
-b(de\))87 b(of)h(a)g(e\013ectiv)-5 b(e)87 b(static;)101
-b(ho)-5 b(w)g(ev)g(er,)100 8791 y(the)79 b(nature)h(can)g(b)5
-b(e)80 b(a)-5 b(v)g(oided)80 b(when)h(the)e(parameter)g(is:)119
-b(a)80 b Fh(simple)f Fg(arithmetic)g(and)h(logic)h(expression)100
-9017 y(\(t)-5 b(ypically)66 b Fa(n-1)p Fg(\),)e(a)i(predi\014ned)g(t)-5
-b(yp)5 b(e)65 b(or)g(constan)-5 b(t)65 b(\(or)g(an)g(arra)-5
-b(y)66 b(of)14 b(\),)66 b(a)f(predi\014ned)h(op)5 b(erator,)66
-b(or)g(ev)-5 b(en)65 b(a)100 9243 y(single)51 b(iden)-5
-b(ti\014er)51 b(\(in)g(this)f(case,)i(the)e(compiler)g(will)i(try)f(to)
-f(compute)e(the)i(nature)h(according)f(to)h(its)f(naming)100
-9468 y(en)-5 b(vironmen)g(t\).)305 9739 y Ff(StaticA)g(r)c(gList)p
-305 9804 1042 8 v 250 w Fe(\000)-31 b(!)199 b Fa(<<)171
-b Fe(f)p Ff(StaticA)-5 b(r)c(g)p 2542 9804 737 8 v 111
-w Fh(,)101 b Fe(g)3640 9673 y Fd(\003)3840 9739 y Ff(StaticA)-5
-b(r)c(g)p 3840 9804 V 111 w Fa(>>)609 10010 y Ff(StaticA)k(r)c(g)p
-609 10075 V 250 w Fe(\000)-31 b(!)199 b Fh(t)-6 b(yp)6
-b(e)112 b Ff(T)-14 b(yp)-9 b(e)p 2603 10075 372 8 v 212
-w Fe(j)100 b Fh(const)111 b Ff(Exp)p 3927 10075 301 8
-v 212 w Fe(j)101 b Fh(no)6 b(de)111 b Ff(No)-9 b(deExpr)g(ession)p
-5141 10075 1247 8 v 1717 10281 a Fe(j)320 b Ff(Pr)-9
-b(e)g(defT)-14 b(yp)-9 b(e)p 2088 10346 870 8 v 160 w
-Fe(f)p Fh(^)110 b Ff(Expr)-9 b(ession)p 3425 10346 852
-8 v 102 w Fe(g)4469 10215 y Fd(\003)4770 10281 y Fe(j)100
-b Ff(Pr)-9 b(e)g(defConst)p 4921 10346 958 8 v 161 w
-Fe(f)p Fh(^)111 b Ff(Expr)-9 b(ession)p 6347 10346 852
-8 v 101 w Fe(g)7390 10215 y Fd(\003)1717 10552 y Fe(j)320
-b Ff(SimpleExpr)-9 b(ession)p 2088 10617 1381 8 v 211
-w Fe(j)101 b Fh(op)6 b(erator)110 b Ff(Pr)-9 b(e)g(defOp)p
-4726 10617 730 8 v 210 w Fe(j)100 b Ff(idf)p 5819 10617
-205 8 v 3758 11695 a Fg(3)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/lv6-ref-man/Makefile b/lv6-ref-man/Makefile
index cbe6abaa..fd2fc3af 100644
--- a/lv6-ref-man/Makefile
+++ b/lv6-ref-man/Makefile
@@ -30,6 +30,7 @@ FIGS=\
 
 # targets: lus 2 latex
 LUS2TEX= \
+	$(OBJPDF)/is_stable.lus.tex \
 	$(OBJPDF)/struct.lus.tex \
 	$(OBJPDF)/consensus2.lus.tex \
 	$(OBJPDF)/count.lus.tex \
@@ -42,6 +43,7 @@ LUS2TEX= \
 	$(OBJPDF)/SWITCH1.lus.tex \
 	$(OBJPDF)/FALLING_EDGE.lus.tex \
 	$(OBJPDF)/sincos.lus.tex \
+	$(OBJPDF)/sincos-bad.lus.tex \
 	$(OBJPDF)/integrator.lus.tex \
 	$(OBJPDF)/type_decl.lus.tex \
 	$(OBJPDF)/merge.lus.tex \
@@ -77,7 +79,7 @@ h:$(SRCS)
 
 #------------------------------
 #------------------------------
-$(MAIN).pdf : $(PARSER) $(SRCS) $(LUS2TEX) $(SUMMARY) $(FIGS)
+$(MAIN).pdf : $(PARSER) $(SRCS) $(LUS2TEX) $(SUMMARY) $(FIGS)  $(OBJPDF)/version.tex
 	(cd objpdf; pdflatex ../$(MAIN).tex)
 	mv objpdf/$(MAIN).pdf .
 
@@ -90,6 +92,16 @@ $(OBJPDF)/%.tex : $(FIGDIR)/%.fig
 	cd $(OBJPDF); epstopdf $*.ps
 	cd $(OBJPDF); fig2dev -Lpstex_t  -p $*.pdf $*.fig > $*.tex
 
+$(OBJPDF)/version.tex: ../$(OBJDIR)/lus2lic  Makefile
+	rm -f lv6-ref-man/version.tex ; \
+	date +VERSION_DATE=%d-%m-%y > lv6-ref-man/version.tex ; \
+	echo "\\\newcommand{\\\version}{`../$(OBJDIR)/lus2lic --version | cut -d " " -f1`}" >  $(OBJPDF)/version.tex ; \
+	echo "\\\newcommand{\\\sha}{$(SHA)}" >>  $(OBJPDF)/version.tex ; \
+	echo "\\\newcommand{\\\versiondate}{`date +%d-%m-%y`}" >>  $(OBJPDF)/version.tex ;\
+
+
+
+
 clean:
 	rm -f $(OBJPDF)/*
 
@@ -112,12 +124,19 @@ re:
 # direct inclusion of lustre non-reg files into the manual
 
 #LUSTRE_DIR=$(HOME)//lus2lic/src/test/should_work
-LUSTRE_DIR=../src/test/should_work
+LUSTRE_DIR=../test/should_work
+LUSTRE_DIR_bad=../test/should_fail
 #LUS2TEX=$(HOME)/TeXinputs/lus2tex
 
 # Generic rule for .lus.tex targets
 # - All lus files must be in some subdir of LUSTRE_DIR
-$(OBJPDF)/%.lus.tex : $(LUSTRE_DIR)/*/%.lus
+$(OBJPDF)/%-bad.lus.tex : $(LUSTRE_DIR_bad)/*/%.lus
+	utils/lus2tex $< > $@
+
+$(OBJPDF)/%.lus.tex : $(LUSTRE_DIR)/%.lus
+	utils/lus2tex $< > $@
+
+$(OBJPDF)/%-broken.lus.tex : $(LUSTRE_DIR)/broken/%.lus
 	utils/lus2tex $< > $@
 
 lus2tex: $(EXEMPLES)
diff --git a/lv6-ref-man/lv6-ref-man.tex b/lv6-ref-man/lv6-ref-man.tex
index 8907142c..0e2f5ab4 100644
--- a/lv6-ref-man/lv6-ref-man.tex
+++ b/lv6-ref-man/lv6-ref-man.tex
@@ -1,11 +1,13 @@
 \input{preambule}
+\input{version}
 
 \title{The Lustre V6 Reference Manual (draft)}
 \author{
 }
 
-\date{Initial version:  \today \\
-Last update: \today}
+\date{
+Software Version:\version 
+ (\versiondate) }
 
 
 \begin{document}
@@ -455,6 +457,9 @@ One can try to connect two such integrators in loop to compute the
 functions $\sin(\omega t)$ and $\cos(\omega t)$ in a simple-minded
 way:
 
+\begin{example}[The buggy sincos node]
+\input{sincos-bad.lus}
+\end{example}
 
 
 Called on this program, the compiler would complain that there is a {\em
@@ -1112,7 +1117,7 @@ functions, and a constructor function.
 \begin{alltt}
 \kwd{type} complex = \{ re : real ; im : real \};
 
-\kwd{const} j = \{ re = -sqrt(3)/2; im = sqrt(3)/2 \}; \comment{-- a complex constant}
+\kwd{const} j = \{ re = -sqrt(3)/2; im = sqrt(3)/2 \}; \coment{-- a complex constant}
 
 \kwd{node} get_im(c:complex) \kwd{returns} (x:real) ;
 \kwd{let}
@@ -1859,11 +1864,13 @@ y & 1 & 2 & 1 & 1 & 3 & 2\\
 
 \cleardoublepage
 
-\section{A complete example}
+\section{A complete example (finish me)}
 \label{exemples}
 
+\begin{example}[Detecting the stability of a flow]
+\input{is_stable.lus}
+\end{example}
 	
-\todo add a complete Lustre V6 commented exemple.... 
 
 
 
diff --git a/lv6-ref-man/utils/lus2tex b/lv6-ref-man/utils/lus2tex
index 7117cf6c..86848014 100755
--- a/lv6-ref-man/utils/lus2tex
+++ b/lv6-ref-man/utils/lus2tex
@@ -16,14 +16,14 @@ FILE=$1
 "
 
 
-sed -e 's/type /\\kwd{type} /g' $FILE \
-	| sed -e 's/ {/ \\{/g' \
-	| sed -e 's/ }/ \\}/g' \
+cat $FILE \
+	| sed -e 's/{/\\{/g' \
+	| sed -e 's/}/\\}/g' \
 	| sed -e 's/^}/\\}/g' \
 	| sed -e 's/^\(.*\) -- del//g' \
 	| sed -e 's/----\(.*\)$//g' \
 	| sed -e 's/---/\\pause/g' \
-	| sed -e 's/--\(.*\)$/\\comment{--\1}/g' \
+	| sed -e 's/--\(.*\)$/\\coment{--\1}/g' \
 	| sed -e 's/const/\\kwd{const}/'  \
 	| sed -e 's/function/\\kwd{function}/'  \
 	| sed -e 's/node/\\kwd{node}/'  \
@@ -54,7 +54,9 @@ sed -e 's/type /\\kwd{type} /g' $FILE \
 	| sed -e 's/ and / \\kwdd{and} /g' \
 	| sed -e 's/ not / \\kwdd{not} /g' \
 	| sed -e 's/ false / \\kwdd{false} /g'\
-	| sed -e 's/\t/   /g' 
+	| sed -e 's/\t/   /g'\
+	| sed -e 's/type /\\kwd{type} /g'
+
 
 
 echo "\end{alltt}
diff --git a/src/ast2lic.ml b/src/ast2lic.ml
index 70b37db5..09161380 100644
--- a/src/ast2lic.ml
+++ b/src/ast2lic.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 29/01/2013 (at 14:16) by Erwan Jahier> *)
+(* Time-stamp: <modified the 31/01/2013 (at 09:41) by Erwan Jahier> *)
 
 
 open Lxm
@@ -168,124 +168,124 @@ let get_abstract_static_params
 (* exported *)
 
 let rec of_node
-   (id_solver : Lic.id_solver) (ne: AstCore.node_exp srcflagged) : Lic.node_exp =
-                     
-   Verbose.exe ~flag:dbg (fun () ->
-      Printf.fprintf stderr "\n\n#DBG: ENTERING Ast2lic.of_node \'";
-      AstV6Dump.print_node_exp stderr ne.it;
-      Printf.fprintf stderr "'\n\n";
-                     
-   );
-   let lxm = ne.src in
-   let (idref, static_args) = ne.it in
-   (* pas tres beau : on corrige le idref des predefs ... *)
-   let idref = match (idref.id_pack, idref.id_id) with
-      | (None, "map")
-      | (None, "red")
-      | (None, "fill")
-      | (None, "fillred")
-      | (None, "boolred")
-      | (None, "condact") -> {idref with id_pack = Some "Lustre"}
-      | _ -> idref
-   in
-   (* BUG des param statique node avec le meme nom
-         qu'un node template global : 
-      pis-aller : si static_args = [],
-      on a peut-etre affaire à un static param node, donc
-      on appelle directement id_solver.id2node et c'est lui
-      qui plantera si ce n'est pas le cas et qu'il fallait
-      des static_args...
-      si static_args <> [], de toute maniere ca ne peut PAS
-      etre un static param node
-   *)
-
-   (* NOUVELLE VERSION ÉPURÉE :
-      ON ne fait AUCUNE vérif de cohérence de types pour les param statiques,
-      on ne vérifie QUE la nature (pour pouvoir résoudre les args qui sont des idents
-      A FAIRE + TARD ? !!
-   *)
-   let static_args_eff = match static_args with
-   | [] -> []
-   | _ ->
+    (id_solver : Lic.id_solver) (ne: AstCore.node_exp srcflagged) : Lic.node_exp =
+  
+  Verbose.exe ~flag:dbg (fun () ->
+    Printf.fprintf stderr "\n\n#DBG: ENTERING Ast2lic.of_node \'";
+    AstV6Dump.print_node_exp stderr ne.it;
+    Printf.fprintf stderr "'\n\n";
+    
+  );
+  let lxm = ne.src in
+  let (idref, static_args) = ne.it in
+  (* pas tres beau : on corrige le idref des predefs ... *)
+  let idref = match (idref.id_pack, idref.id_id) with
+    | (None, "map")
+    | (None, "red")
+    | (None, "fill")
+    | (None, "fillred")
+    | (None, "boolred")
+    | (None, "condact") -> {idref with id_pack = Some "Lustre"}
+    | _ -> idref
+  in
+  (* BUG des param statique node avec le meme nom
+     qu'un node template global : 
+     pis-aller : si static_args = [],
+     on a peut-etre affaire à un static param node, donc
+     on appelle directement id_solver.id2node et c'est lui
+     qui plantera si ce n'est pas le cas et qu'il fallait
+     des static_args...
+     si static_args <> [], de toute maniere ca ne peut PAS
+     etre un static param node
+  *)
+
+  (* NOUVELLE VERSION ÉPURÉE :
+     ON ne fait AUCUNE vérif de cohérence de types pour les param statiques,
+     on ne vérifie QUE la nature (pour pouvoir résoudre les args qui sont des idents
+     A FAIRE + TARD ? !!
+  *)
+  let static_args_eff = match static_args with
+    | [] -> []
+    | _ ->
       (* on en proffite pour corriger le idref en y rajoutant l'eventuel pack *)
       let static_params = get_abstract_static_params id_solver.global_symbols lxm idref in
       let sp_l = List.length static_params 
       and sa_l = List.length static_args in
-        if (sp_l <> sa_l) then
-          let msg = "Bad number of (static) arguments: " ^ 
-            (string_of_int sp_l) ^ " expected, and " ^ 
-            (string_of_int sa_l) ^ " provided."
-          in
-            raise (Compile_error(lxm, msg))
-        else
-          List.map2 (check_static_arg id_solver) 
-            static_params 
-            static_args 
-   in
-   let res = id_solver.id2node idref static_args_eff lxm in
-   Verbose.exe ~flag:dbg (fun () ->
-      Printf.fprintf stderr "\n#DBG: LEAVING Ast2lic.of_node \'";
-      AstV6Dump.print_node_exp stderr ne.it;
-      Printf.fprintf stderr "'\n";
-      Printf.fprintf stderr "    RESULT:\n%s\n" (Lic.string_of_node_exp res);
-   );
-   res
+      if (sp_l <> sa_l) then
+        let msg = "Bad number of (static) arguments: " ^ 
+          (string_of_int sp_l) ^ " expected, and " ^ 
+          (string_of_int sa_l) ^ " provided."
+        in
+        raise (Compile_error(lxm, msg))
+      else
+        List.map2 (check_static_arg id_solver) 
+          static_params 
+          static_args 
+  in
+  let res = id_solver.id2node idref static_args_eff lxm in
+  Verbose.exe ~flag:dbg (fun () ->
+    Printf.fprintf stderr "\n#DBG: LEAVING Ast2lic.of_node \'";
+    AstV6Dump.print_node_exp stderr ne.it;
+    Printf.fprintf stderr "'\n";
+    Printf.fprintf stderr "    RESULT:\n%s\n" (Lic.string_of_node_exp res);
+  );
+  res
 
 and check_static_arg
-   (node_id_solver: Lic.id_solver)
-   (asp: abstract_static_param) 
-   (sa: AstCore.static_arg srcflagged) 
-: Lic.static_arg =
-(
-   (* 1ere passe :
-      on utilise expected juste pour résoudre la nature,
-      on "compile" les args 
-   *)
-   let nature_error nat =
+    (node_id_solver: Lic.id_solver)
+    (asp: abstract_static_param) 
+    (sa: AstCore.static_arg srcflagged) 
+    : Lic.static_arg =
+  (
+    (* 1ere passe :
+       on utilise expected juste pour résoudre la nature,
+       on "compile" les args 
+    *)
+    let nature_error nat =
       let msg = Printf.sprintf "Bad static argument nature, a %s was expected" nat in
       raise (Compile_error(sa.src, msg))
-   in
-   let res = match (sa.it, asp) with
-   (* ident vs type *)
-   | (StaticArgIdent idref, ASP_type id) ->
-      let teff = node_id_solver.id2type idref sa.src in
-      TypeStaticArgLic (id, teff)
-   (* type_exp vs type *)
-   | (StaticArgType te, ASP_type id) ->
-      let teff = of_type node_id_solver te in
-      TypeStaticArgLic (id, teff)
-   (* ident vs const *)
-   | (StaticArgIdent idref, ASP_const id) ->
-      let ceff = node_id_solver.id2const idref sa.src in
-      ConstStaticArgLic (id, ceff)
-   (* val_exp vs const *)
-   | (StaticArgConst ce, ASP_const id) -> (
-      let ceff = EvalConst.f node_id_solver ce in
-      match ceff with
-      | [ceff] -> ConstStaticArgLic (id,ceff)
-      | _ -> ConstStaticArgLic (id,Tuple_const_eff ceff)
-   )
-   (* id vs node *)
-   | (StaticArgIdent idref, ASP_node id) ->
-      let sargs = [] in
-      let neff = node_id_solver.id2node idref sargs sa.src in
-      NodeStaticArgLic (id, neff.node_key_eff)
-   (* node exp vs node *)
-   | (StaticArgNode (CALL_n ne), ASP_node id) ->
-      let neff = of_node node_id_solver ne in
-      NodeStaticArgLic (id, neff.node_key_eff)
-   (* node exp vs node *)
-   | (StaticArgNode (Predef_n (op,sargs)), ASP_node id) ->
-      (* ICI : campagne de suppression de Lic.PREDEF_CALL: pas de macros ! *)
-      assert (sargs = []);
-      let opeff = LicEvalType.make_node_exp_eff node_id_solver None op.it sa.src [] in
-      NodeStaticArgLic (id, opeff.node_key_eff)
-   | (_, ASP_type _) -> nature_error "type"
-   | (_, ASP_const _) -> nature_error "constant"
-   | (_, ASP_node _) -> nature_error "node"
-   in res
-)
-        
+    in
+    let res = match (sa.it, asp) with
+      (* ident vs type *)
+      | (StaticArgIdent idref, ASP_type id) ->
+        let teff = node_id_solver.id2type idref sa.src in
+        TypeStaticArgLic (id, teff)
+      (* type_exp vs type *)
+      | (StaticArgType te, ASP_type id) ->
+        let teff = of_type node_id_solver te in
+        TypeStaticArgLic (id, teff)
+      (* ident vs const *)
+      | (StaticArgIdent idref, ASP_const id) ->
+        let ceff = node_id_solver.id2const idref sa.src in
+        ConstStaticArgLic (id, ceff)
+      (* val_exp vs const *)
+      | (StaticArgConst ce, ASP_const id) -> (
+        let ceff = EvalConst.f node_id_solver ce in
+        match ceff with
+          | [ceff] -> ConstStaticArgLic (id,ceff)
+          | _ -> ConstStaticArgLic (id,Tuple_const_eff ceff)
+      )
+      (* id vs node *)
+      | (StaticArgIdent idref, ASP_node id) ->
+        let sargs = [] in
+        let neff = node_id_solver.id2node idref sargs sa.src in
+        NodeStaticArgLic (id, neff.node_key_eff)
+      (* node exp vs node *)
+      | (StaticArgNode (CALL_n ne), ASP_node id) ->
+        let neff = of_node node_id_solver ne in
+        NodeStaticArgLic (id, neff.node_key_eff)
+      (* node exp vs node *)
+      | (StaticArgNode (Predef_n (op,sargs)), ASP_node id) ->
+        (* ICI : campagne de suppression de Lic.PREDEF_CALL: pas de macros ! *)
+        assert (sargs = []);
+        let opeff = LicEvalType.make_node_exp_eff node_id_solver None op.it sa.src [] in
+        NodeStaticArgLic (id, opeff.node_key_eff)
+      | (_, ASP_type _) -> nature_error "type"
+      | (_, ASP_const _) -> nature_error "constant"
+      | (_, ASP_node _) -> nature_error "node"
+    in res
+  )
+    
 (******************************************************************************)
 
 (* exported *)
@@ -295,214 +295,229 @@ and (of_eq: Lic.id_solver -> AstCore.eq_info srcflagged -> Lic.eq_info srcflagge
     let lpl_eff = List.map (translate_left_part id_solver) lpl
     and clk_subst,ve_eff  = translate_val_exp id_solver UnifyClock.empty_subst ve
     in
-      type_check_equation id_solver eq_info.src lpl_eff ve_eff;
-      clock_check_equation id_solver eq_info.src clk_subst lpl_eff ve_eff;
-      flagit (lpl_eff, ve_eff) eq_info.src
+    type_check_equation id_solver eq_info.src lpl_eff ve_eff;
+    clock_check_equation id_solver eq_info.src clk_subst lpl_eff ve_eff;
+    flagit (lpl_eff, ve_eff) eq_info.src
 
 
 and (translate_left_part : id_solver -> AstCore.left_part -> Lic.left) =
   fun id_solver lp_top -> 
     match lp_top with
       | LeftVar id -> 
-          let vi_eff = 
-            id_solver.id2var (Ident.idref_of_string (Ident.to_string id.it)) id.src 
-          in
-            LeftVarLic (vi_eff, id.src)
-              
+        let vi_eff = 
+          id_solver.id2var (Ident.idref_of_string (Ident.to_string id.it)) id.src 
+        in
+        LeftVarLic (vi_eff, id.src)
+          
       | LeftField (lp, id) -> (
-          let lp_eff = translate_left_part id_solver lp in
-          let teff = Lic.type_of_left lp_eff in
-            (* check that [lp_eff] is a struct that have a field named [id] *)
-            match teff with
-              | Struct_type_eff(_, fl) -> (
-                  try let (teff_field,_) = List.assoc id.it fl in
-                    LeftFieldLic(lp_eff, id.it, teff_field)
-                  with Not_found ->
-                    raise (Compile_error(id.src, "bad field name in structure"))
-                )
-              | _  -> raise (Compile_error(id.src, "a structure was expected"))
-        )
+        let lp_eff = translate_left_part id_solver lp in
+        let teff = Lic.type_of_left lp_eff in
+        (* check that [lp_eff] is a struct that have a field named [id] *)
+        match teff with
+          | Struct_type_eff(_, fl) -> (
+            try let (teff_field,_) = List.assoc id.it fl in
+                LeftFieldLic(lp_eff, id.it, teff_field)
+            with Not_found ->
+              raise (Compile_error(id.src, "bad field name in structure"))
+          )
+          | _  -> raise (Compile_error(id.src, "a structure was expected"))
+      )
       | LeftArray (lp, vef) -> (
-          let lp_eff = translate_left_part id_solver lp in
-          let teff = Lic.type_of_left lp_eff in
-          let lxm = vef.src in
-            match teff with
-              | Abstract_type_eff(_,Array_type_eff(teff_elt, size))
-              | Array_type_eff(teff_elt, size) ->
-                  let index = EvalConst.eval_array_index id_solver vef.it lxm in
-                    LeftArrayLic(lp_eff, index, teff_elt)
-                      
-              | _ -> raise (Compile_error(vef.src, "an array was expected"))
-        )
+        let lp_eff = translate_left_part id_solver lp in
+        let teff = Lic.type_of_left lp_eff in
+        let lxm = vef.src in
+        match teff with
+          | Abstract_type_eff(_,Array_type_eff(teff_elt, size))
+          | Array_type_eff(teff_elt, size) ->
+            let index = EvalConst.eval_array_index id_solver vef.it lxm in
+            LeftArrayLic(lp_eff, index, teff_elt)
+              
+          | _ -> raise (Compile_error(vef.src, "an array was expected"))
+      )
       | LeftSlice (lp, sif) -> (
-          let lp_eff = translate_left_part id_solver lp in
-          let teff = Lic.type_of_left lp_eff in
-            match teff with  
-              | Abstract_type_eff(_,Array_type_eff(teff_elt, size))
-              | Array_type_eff(teff_elt, size) -> 
-                  let sieff = translate_slice_info id_solver sif.it sif.src in
-                  let size_slice = sieff.se_width in
-                  let teff_slice = Array_type_eff(teff_elt, size_slice) in
-                    LeftSliceLic(lp_eff, sieff, teff_slice)
-              | _ -> raise (Compile_error(sif.src, "an array was expected"))
-        )
-
-
-and (translate_val_exp : Lic.id_solver -> UnifyClock.subst -> 
-      AstCore.val_exp -> UnifyClock.subst * Lic.val_exp) =
+        let lp_eff = translate_left_part id_solver lp in
+        let teff = Lic.type_of_left lp_eff in
+        match teff with  
+          | Abstract_type_eff(_,Array_type_eff(teff_elt, size))
+          | Array_type_eff(teff_elt, size) -> 
+            let sieff = translate_slice_info id_solver sif.it sif.src in
+            let size_slice = sieff.se_width in
+            let teff_slice = Array_type_eff(teff_elt, size_slice) in
+            LeftSliceLic(lp_eff, sieff, teff_slice)
+          | _ -> raise (Compile_error(sif.src, "an array was expected"))
+      )
+
+
+and (translate_val_exp : Lic.id_solver -> UnifyClock.subst -> AstCore.val_exp
+     -> UnifyClock.subst * Lic.val_exp) =
   fun id_solver s ve ->
     let s, vef_core, lxm =
       match ve with
-        | CallByName(by_name_op, field_list) ->
-            let s,fl = List.fold_left 
-              (fun (s,fl) f -> 
-                 let s,f = translate_field id_solver s f in
-                   s,f::fl
+        | MERGE_n(ve, cl) ->  
+          let lxm_ve = ve.src in
+          let s, ve = translate_val_exp id_solver s ve.it in
+          let s, cl =
+            List.fold_left
+              (fun (s,cl) (id,ve) -> 
+                let s, ve = translate_val_exp id_solver s ve in
+                let long = Ident.long_of_idref id.it in
+                s,(flagit long id.src, ve)::cl
               )
-              (s,[])
-              field_list
-            in
-            let fl = List.rev fl in
-              s, 
-            (CallByNameLic(
-               flagit (translate_by_name_op id_solver by_name_op) by_name_op.src, fl)),
-            by_name_op.src
-              
+              (s, [])
+              cl
+          in
+          s, Lic.Merge(flagit ve lxm_ve, List.rev cl), lxm_ve
+        | CallByName(by_name_op, field_list) ->
+          let s,fl = List.fold_left 
+            (fun (s,fl) f -> 
+              let s,f = translate_field id_solver s f in
+              s,f::fl
+            )
+            (s,[])
+            field_list
+          in
+          let fl = List.rev fl in
+          let s, by_name_op = translate_by_name_op id_solver by_name_op s in
+          s, 
+          (CallByNameLic(by_name_op, fl)), by_name_op.src
+            
         | CallByPos(by_pos_op, Oper vel) ->
-            let s, vel_eff = 
-              List.fold_left 
-                (fun (s,vel) ve -> 
-                   let s, ve = translate_val_exp id_solver s ve in
-                     s,ve::vel
-                )
-                (s,[]) vel 
-            in
-            let vel_eff = List.rev vel_eff in
-            let lxm = by_pos_op.src in
-            let by_pos_op = by_pos_op.it in
-            let mk_by_pos_op by_pos_op_eff =
-              CallByPosLic(flagit by_pos_op_eff lxm, OperLic vel_eff)
-            in
-            let s, vef_core =
-              match by_pos_op with
-                (* put that in another module ? yes, see above.*)
-                | Predef_n(op, sargs) -> (
-                  (* 12/07 SOLUTION INTERMEDIAIRE 
-                     - les macros predefs ne sont plus  traitées ici
-                       on les transforme en CALL standard 
-                     N.B. on garde pour l'instant la notion de 
-                     PREDEF_CALL pour les op simple, mais à terme 
-                     ça devrait disparaitre aussi ...
+          let s, vel_eff = 
+            List.fold_left 
+              (fun (s,vel) ve -> 
+                let s, ve = translate_val_exp id_solver s ve in
+                s,ve::vel
+              )
+              (s,[]) vel 
+          in
+          let vel_eff = List.rev vel_eff in
+          let lxm = by_pos_op.src in
+          let by_pos_op = by_pos_op.it in
+          let mk_by_pos_op by_pos_op_eff =
+            CallByPosLic(flagit by_pos_op_eff lxm, OperLic vel_eff)
+          in
+          let s, vef_core =
+            match by_pos_op with
+            (* put that in another module ? yes, see above.*)
+              | Predef_n(op, sargs) -> (
+              (* 12/07 SOLUTION INTERMEDIAIRE 
+                 - les macros predefs ne sont plus  traitées ici
+                 on les transforme en CALL standard 
+                 N.B. on garde pour l'instant la notion de 
+                 PREDEF_CALL pour les op simple, mais à terme 
+                 ça devrait disparaitre aussi ...
+              *)
+                match sargs with
+                  | [] -> s, mk_by_pos_op(PREDEF_CALL (op.it,[]))
+                  | _ -> 
+                  (* on re-construit une AstCore.node_exp srcflagged
+                     parce que c'est ca qu'attend of_node ...
                   *)
-                     match sargs with
-                     | [] -> s, mk_by_pos_op(PREDEF_CALL (op.it,[]))
-                     | _ -> 
-                     (* on re-construit une AstCore.node_exp srcflagged
-                        parce que c'est ca qu'attend of_node ...
-                     *)
-                     let node_exp_f = flagit (AstPredef.op_to_idref op.it, sargs) op.src in
-                     let neff = of_node id_solver node_exp_f in
-                     let ceff = Lic.CALL (flagit neff.node_key_eff node_exp_f.src) in
-                     Verbose.exe ~flag:dbg (fun () ->
-                        Printf.fprintf stderr "#DBG: Ast2lic.translate_val_exp CALL '%!";
-                        AstV6Dump.print_node_exp stderr node_exp_f.it;
-                        Printf.fprintf stderr " gives type: %s\n%!"
-                           (Lic.string_of_type_profile (profile_of_node_exp neff))
-                     ) ;
-                     (s, mk_by_pos_op ceff)
-                )
-                | CALL_n node_exp_f -> 
+                    let node_exp_f = flagit (AstPredef.op_to_idref op.it, sargs) op.src in
                     let neff = of_node id_solver node_exp_f in
                     let ceff = Lic.CALL (flagit neff.node_key_eff node_exp_f.src) in
                     Verbose.exe ~flag:dbg (fun () ->
-                       Printf.fprintf stderr "#DBG: Ast2lic.translate_val_exp CALL_n ";
-                       AstV6Dump.print_node_exp stderr node_exp_f.it;
-                       Printf.fprintf stderr " gives type: %s\n%!"
-                         (Lic.string_of_type_profile (profile_of_node_exp neff))
+                      Printf.fprintf stderr "#DBG: Ast2lic.translate_val_exp CALL '%!";
+                      AstV6Dump.print_node_exp stderr node_exp_f.it;
+                      Printf.fprintf stderr " gives type: %s\n%!"
+                        (Lic.string_of_type_profile (profile_of_node_exp neff))
                     ) ;
                     (s, mk_by_pos_op ceff)
-                | IDENT_n idref -> (
-                   try
-                     let var = id_solver.id2var idref lxm in
-                     s, mk_by_pos_op(Lic.VAR_REF var.var_name_eff)
-                   with _ ->
-                      let s, const = UnifyClock.const_to_val_eff lxm false s
-                        (id_solver.id2const idref lxm)
-                      in
-                        s, const.ve_core
-                ) 
-                | CURRENT_n -> s, mk_by_pos_op Lic.CURRENT
-                | PRE_n -> s, mk_by_pos_op Lic.PRE
-
-                | ARROW_n -> s, mk_by_pos_op Lic.ARROW
-                | FBY_n -> s, mk_by_pos_op Lic.FBY
-                | CONCAT_n -> s, mk_by_pos_op Lic.CONCAT
-                | TUPLE_n -> s, mk_by_pos_op Lic.TUPLE
-                | ARRAY_n -> 
-                    s, CallByPosLic(flagit (Lic.ARRAY vel_eff) lxm, OperLic [])
-
-                | WITH_n(c,e1,e2) ->
-                    let c_eff = EvalConst.f id_solver c in
-                      if c_eff = [ Bool_const_eff true ] then
-                        let s, ve1 = translate_val_exp id_solver s e1 in
-                          s, mk_by_pos_op (Lic.WITH (ve1))
-                      else 
-                        let s, ve2 = translate_val_exp id_solver s e2 in
-                          s, mk_by_pos_op (Lic.WITH (ve2))
-                | STRUCT_ACCESS_n fid ->
-                      s, mk_by_pos_op (Lic.STRUCT_ACCESS (fid))
-
-                | WHEN_n Base -> s, mk_by_pos_op (Lic.WHEN Base)
-                | WHEN_n (NamedClock { it = (cc,cv) ; src = lxm }) -> 
-                    let cc = add_pack_name id_solver lxm cc in
-                      s, 
-                    mk_by_pos_op (Lic.WHEN (NamedClock { it = (cc,cv) ; src = lxm }))
-
-                | ARRAY_ACCES_n ve_index ->
-                      s, mk_by_pos_op (
-                        Lic.ARRAY_ACCES(
-                          EvalConst.eval_array_index id_solver ve_index lxm))
-
-                | ARRAY_SLICE_n si ->
-                    s, mk_by_pos_op 
-                      (Lic.ARRAY_SLICE(
-                         EvalConst.eval_array_slice id_solver si lxm))
-                        
-                | HAT_n -> (
-                    match vel with
-                      | [exp; ve_size] -> 
-                          let size_const_eff = EvalConst.f id_solver ve_size 
-                          and s, exp_eff = translate_val_exp id_solver s exp in 
-                            (match size_const_eff with
-                               | [Int_const_eff size] -> 
-                                   s, mk_by_pos_op (Lic.HAT(size, exp_eff))
-                               | _ -> assert false)
-                      | _ -> assert false
-                  )
-
-                | MERGE_n(id, idl) -> s, mk_by_pos_op (Lic.MERGE(id, idl))
-            in
-              s, vef_core, lxm
+              )
+              | CALL_n node_exp_f -> 
+                let neff = of_node id_solver node_exp_f in
+                let ceff = Lic.CALL (flagit neff.node_key_eff node_exp_f.src) in
+                Verbose.exe ~flag:dbg (fun () ->
+                  Printf.fprintf stderr "#DBG: Ast2lic.translate_val_exp CALL_n ";
+                  AstV6Dump.print_node_exp stderr node_exp_f.it;
+                  Printf.fprintf stderr " gives type: %s\n%!"
+                    (Lic.string_of_type_profile (profile_of_node_exp neff))
+                ) ;
+                (s, mk_by_pos_op ceff)
+              | IDENT_n idref -> (
+                try
+                  let var = id_solver.id2var idref lxm in
+                  s, mk_by_pos_op(Lic.VAR_REF var.var_name_eff)
+                with _ ->
+                  let s, const = UnifyClock.const_to_val_eff lxm false s
+                    (id_solver.id2const idref lxm)
+                  in
+                  s, const.ve_core
+              ) 
+              | CURRENT_n -> s, mk_by_pos_op Lic.CURRENT
+              | PRE_n -> s, mk_by_pos_op Lic.PRE
+
+              | ARROW_n -> s, mk_by_pos_op Lic.ARROW
+              | FBY_n -> s, mk_by_pos_op Lic.FBY
+              | CONCAT_n -> s, mk_by_pos_op Lic.CONCAT
+              | TUPLE_n -> s, mk_by_pos_op Lic.TUPLE
+              | ARRAY_n -> 
+                s, CallByPosLic(flagit (Lic.ARRAY vel_eff) lxm, OperLic [])
+
+              | WITH_n(c,e1,e2) ->
+                let c_eff = EvalConst.f id_solver c in
+                if c_eff = [ Bool_const_eff true ] then
+                  let s, ve1 = translate_val_exp id_solver s e1 in
+                  s, mk_by_pos_op (Lic.WITH (ve1))
+                else 
+                  let s, ve2 = translate_val_exp id_solver s e2 in
+                  s, mk_by_pos_op (Lic.WITH (ve2))
+              | STRUCT_ACCESS_n fid ->
+                s, mk_by_pos_op (Lic.STRUCT_ACCESS (fid))
+
+              | WHEN_n Base -> s, mk_by_pos_op (Lic.WHEN Base)
+              | WHEN_n (NamedClock { it = (cc,cv) ; src = lxm }) -> 
+                let cc = add_pack_name id_solver lxm cc in
+                s, 
+                mk_by_pos_op (Lic.WHEN (NamedClock { it = (cc,cv) ; src = lxm }))
+
+              | ARRAY_ACCES_n ve_index ->
+                s, mk_by_pos_op (
+                  Lic.ARRAY_ACCES(
+                    EvalConst.eval_array_index id_solver ve_index lxm))
+
+              | ARRAY_SLICE_n si ->
+                s, mk_by_pos_op 
+                  (Lic.ARRAY_SLICE(
+                    EvalConst.eval_array_slice id_solver si lxm))
+                  
+              | HAT_n -> (
+                match vel with
+                  | [exp; ve_size] -> 
+                    let size_const_eff = EvalConst.f id_solver ve_size 
+                    and s, exp_eff = translate_val_exp id_solver s exp in 
+                    (match size_const_eff with
+                      | [Int_const_eff size] -> 
+                        s, mk_by_pos_op (Lic.HAT(size, exp_eff))
+                      | _ -> assert false)
+                  | _ -> assert false
+              )
+
+          in
+          s, vef_core, lxm
     in
     let vef, tl = EvalType.f id_solver { ve_core=vef_core; ve_typ=[]; ve_clk = [] } in
     let vef, _, s =  EvalClock.f lxm id_solver s vef [] in
-      s, vef
+    s, vef
 
-and translate_by_name_op id_solver op = 
-  match op.it with
-    | STRUCT_anonymous_n -> STRUCT_anonymous
-    | STRUCT_n idref -> 
+and translate_by_name_op id_solver op s = 
+  let s, nop =
+    match op.it with
+      | STRUCT_anonymous_n -> s,STRUCT_anonymous
+      | STRUCT_n idref -> 
         match Ident.pack_of_idref idref with
           | None -> 
-              (* If no pack name is provided, we lookup it in the symbol table *)
-              let id = Ident.of_idref idref in
-              let pn = AstTabSymbol.find_pack_of_type id_solver.global_symbols id op.src in
-                STRUCT (pn, idref)
-          | Some pn -> STRUCT (pn, idref)
+            (* If no pack name is provided, we lookup it in the symbol table *)
+            let id = Ident.of_idref idref in
+            let pn = AstTabSymbol.find_pack_of_type id_solver.global_symbols id op.src in
+            s, STRUCT (pn, idref)
+          | Some pn -> s,STRUCT (pn, idref)
+  in
+  s, flagit nop op.src
 
 and translate_field id_solver s (id, ve) = 
   let s, ve = translate_val_exp id_solver s ve in
-    s, (id, ve)
+  s, (id, ve)
 
 (* XXX autre nom, autre module ? 
    node_of_static_arg : appelé QUAND ON SAIT qu'un sarg doit etre un NODE
@@ -516,10 +531,10 @@ and const_of_static_arg id_solver const_or_const_ident lxm =
   match const_or_const_ident with
     | StaticArgConst(c) -> (
 		match EvalConst.f id_solver c with
-		| [x] -> x
-		| xl -> 
-			(* EvalConst.f ne fabrique PAS de tuple, on le fait ici *)
-			Tuple_const_eff xl
+		  | [x] -> x
+		  | xl -> 
+			 (* EvalConst.f ne fabrique PAS de tuple, on le fait ici *)
+			 Tuple_const_eff xl
 	 )
     | StaticArgIdent(id) -> id_solver.id2const id lxm 
     | StaticArgType _
@@ -530,12 +545,12 @@ and const_of_static_arg id_solver const_or_const_ident lxm =
 and node_of_static_arg id_solver node_or_node_ident lxm =
   match node_or_node_ident with
     | StaticArgIdent(id) -> 
-        let sargs = [] in (* it is an alias: no static arg *)
-          id_solver.id2node id sargs lxm 
+      let sargs = [] in (* it is an alias: no static arg *)
+      id_solver.id2node id sargs lxm 
 
     | StaticArgNode(CALL_n ne) -> of_node id_solver ne
     | StaticArgNode(Predef_n (op,[])) ->
-       LicEvalType.make_node_exp_eff id_solver None op.it lxm [] 
+      LicEvalType.make_node_exp_eff id_solver None op.it lxm [] 
     | StaticArgNode(Predef_n (op,_)) -> assert false
 
     | StaticArgNode(_) -> assert false
@@ -544,7 +559,7 @@ and node_of_static_arg id_solver node_or_node_ident lxm =
     | StaticArgConst _ -> raise (Compile_error(lxm, "a node was expected"))
 
 and (translate_slice_info  : Lic.id_solver -> AstCore.slice_info -> 
-      Lxm.t -> Lic.slice_info) =
+     Lxm.t -> Lic.slice_info) =
   fun id_solver si lxm ->
     EvalConst.eval_array_slice id_solver si lxm
 
diff --git a/src/astCore.ml b/src/astCore.ml
index ed1758fa..ba0fefab 100644
--- a/src/astCore.ml
+++ b/src/astCore.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 21/12/2012 (at 10:06) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 17:43) by Erwan Jahier> *)
 
 
 (** (Raw) Abstract syntax tree of source Lustre Core programs. *)
@@ -108,8 +108,8 @@ and by_pos_op =
 
   | ARRAY_ACCES_n of val_exp
   | ARRAY_SLICE_n of slice_info
-  | MERGE_n of (Ident.t * (Ident.t list))
-  
+(*   | MERGE_n of (Ident.t * ((Ident.t srcflagged * val_exp) list)) *)
+   
 
 (************************************************)
 (* Info associées aux expressions               *)
@@ -126,9 +126,10 @@ and by_pos_op =
 and val_exp = 
   | CallByPos  of (by_pos_op  srcflagged  * operands) 
   | CallByName of (by_name_op srcflagged  * (Ident.t srcflagged * val_exp) list)
+  | MERGE_n of val_exp srcflagged * (Ident.idref srcflagged * val_exp) list
    
 and operands = Oper of val_exp list
-(* XXX virer cet Oper ? *)
+(* Virer cet Oper ? Non, sinon ca boucle... *)
 
 and by_name_op =
   | STRUCT_n of Ident.idref
diff --git a/src/astRecognizePredef.ml b/src/astRecognizePredef.ml
index 11035d54..a9d64294 100644
--- a/src/astRecognizePredef.ml
+++ b/src/astRecognizePredef.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 13/12/2012 (at 11:32) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 17:51) by Erwan Jahier> *)
 
 
 let (get_predef : Ident.idref -> AstPredef.op option) =
@@ -111,9 +111,13 @@ and r_slice_info si = {
 
 and r_val_exp = function
   | CallByPos (by_pos_op, Oper vel) -> 
-      CallByPos(flag2 r_by_pos_op by_pos_op, Oper (List.map r_val_exp vel))
+    CallByPos(flag2 r_by_pos_op by_pos_op, Oper (List.map r_val_exp vel))
   | CallByName(by_name_op, args) -> 
-      CallByName(by_name_op, List.map (fun (id, ve) -> id, r_val_exp ve) args)
+    CallByName(by_name_op, List.map (fun (id, ve) -> id, r_val_exp ve) args)
+  | MERGE_n (ec,cl) -> 
+    let ec = flagit (r_val_exp ec.it) ec.src in
+    let cl = List.map (fun (id,ve) ->  (id, r_val_exp ve)) cl in
+    MERGE_n (ec,cl) 
 
 and r_item_info_flg_list = function
   | None -> None
diff --git a/src/astV6Dump.ml b/src/astV6Dump.ml
index 456fbe00..bcac4623 100644
--- a/src/astV6Dump.ml
+++ b/src/astV6Dump.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 13/12/2012 (at 11:32) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 17:46) by Erwan Jahier> *)
 
 
 open Lxm
@@ -13,28 +13,28 @@ open Format
 
 let rec (op2string : AstCore.by_pos_op -> string) =
   fun op ->  
-  match op with 
+    match op with 
       (* unaires *)
-    | Predef_n(op,sargs) -> (AstPredef.op2string op.it) ^
-	(if sargs = [] then "" else 
-	   "<<" ^ (String.concat ", " (List.map static_arg_to_string sargs)) ^ ">>")
-    | (CALL_n ne) -> string_of_node_exp ne.it
-    | (PRE_n    ) -> "pre"
-    | (CURRENT_n) -> "current"
-	(* binaires *)
-    | (ARROW_n  ) -> "->"
-    | (WHEN_n _ce) -> "when"
-    | (HAT_n    ) -> "^"
-    | (CONCAT_n ) -> "|"
-    | (IDENT_n idref) -> Ident.string_of_idref idref
-    | (FBY_n    ) -> "fby"
-    | (WITH_n(_,_,_)) -> "with" 
-    | (TUPLE_n  ) -> assert false
-    | (ARRAY_n  ) -> assert false
-    | (ARRAY_ACCES_n _ ) ->  assert false
-    | (ARRAY_SLICE_n sl) -> assert false
-    | (STRUCT_ACCESS_n fld) -> assert false
-    | (MERGE_n _) -> assert false
+      | Predef_n(op,sargs) -> (AstPredef.op2string op.it) ^
+	     (if sargs = [] then "" else 
+	         "<<" ^ (String.concat ", " (List.map static_arg_to_string sargs)) ^ ">>")
+      | (CALL_n ne) -> string_of_node_exp ne.it
+      | (PRE_n    ) -> "pre"
+      | (CURRENT_n) -> "current"
+	   (* binaires *)
+      | (ARROW_n  ) -> "->"
+      | (WHEN_n _ce) -> "when"
+      | (HAT_n    ) -> "^"
+      | (CONCAT_n ) -> "|"
+      | (IDENT_n idref) -> Ident.string_of_idref idref
+      | (FBY_n    ) -> "fby"
+      | (WITH_n(_,_,_)) -> "with" 
+      | (TUPLE_n  ) -> assert false
+      | (ARRAY_n  ) -> assert false
+      | (ARRAY_ACCES_n _ ) ->  assert false
+      | (ARRAY_SLICE_n sl) -> assert false
+      | (STRUCT_ACCESS_n fld) -> assert false
+(*     | (MERGE_n _) -> assert false *)
 
 
 (***********************************************************************************)
@@ -43,10 +43,10 @@ and packbody (os: Format.formatter) (pkg: AstV6.packbody) =
   let dump_def (d: item_ident) =
     try ( 
       (match d with
-	 | ConstItem id -> dump_const os (Hashtbl.find pkg.pk_const_table id)
-	 | TypeItem  id -> dump_type os  (Hashtbl.find pkg.pk_type_table  id)
-	 | NodeItem (id,sparams) ->
-	     let {src = lxm ; it = ninfo } = Hashtbl.find pkg.pk_node_table id in
+	     | ConstItem id -> dump_const os (Hashtbl.find pkg.pk_const_table id)
+	     | TypeItem  id -> dump_type os  (Hashtbl.find pkg.pk_type_table  id)
+	     | NodeItem (id,sparams) ->
+	       let {src = lxm ; it = ninfo } = Hashtbl.find pkg.pk_node_table id in
 	       dump_node os {src = lxm ; it = ninfo };
 	       fprintf os " <<@\n" ;
 	       fprintf os "@[<b 3>@   %a@]@\n" dump_static_param_list sparams;
@@ -56,80 +56,80 @@ and packbody (os: Format.formatter) (pkg: AstV6.packbody) =
     ) 
     with Not_found ->
       print_string ("*** unable to find a definition for " ^
-		      (match d with 
-			   ConstItem id 
-			 | TypeItem  id 
-			 | NodeItem (id,_) -> Ident.to_string id
-		      )
-		   );
+		                 (match d with 
+			                  ConstItem id 
+			                | TypeItem  id 
+			                | NodeItem (id,_) -> Ident.to_string id
+		                 )
+		);
       flush stdout;
       assert false
   in 
-    (* Format.fprintf os "@?@[<b 0>" ; *)
-    List.iter dump_def pkg.pk_def_list  ;
-    (* Format.fprintf os "@]@."  *)
+  (* Format.fprintf os "@?@[<b 0>" ; *)
+  List.iter dump_def pkg.pk_def_list  ;
+(* Format.fprintf os "@]@."  *)
 
 (*******************************)
 (* dump d'une def de constante *)
 (*******************************)
 and dump_const (os: Format.formatter) (x: const_info srcflagged) = (
   let lxm = x.src and info = x.it in
-    fprintf os "-- %s@\n" (Lxm.details lxm) ;
-    fprintf os "const %s " (Lxm.str lxm) ;
-    dump_const_def os info ;
-    fprintf os " ;@\n" ;
+  fprintf os "-- %s@\n" (Lxm.details lxm) ;
+  fprintf os "const %s " (Lxm.str lxm) ;
+  dump_const_def os info ;
+  fprintf os " ;@\n" ;
 )
 and dump_const_def (os: Format.formatter) (info: const_info) = (
   match info with
     | ExternalConst (id, ty,None) -> fprintf os ": %a " dump_type_exp ty
     | ExternalConst (id, ty, Some v) -> 
-	fprintf os ": %a = %a" dump_type_exp ty dump_val_exp v
+	   fprintf os ": %a = %a" dump_type_exp ty dump_val_exp v
     | DefinedConst  (id, None, exp) -> fprintf os "= %a " dump_val_exp exp
     | DefinedConst  (id, Some ty, exp) -> 
-	fprintf os ": %a = %a " dump_type_exp ty dump_val_exp exp
+	   fprintf os ": %a = %a " dump_type_exp ty dump_val_exp exp
     | EnumConst  (id, ty) -> fprintf os "XXX printme!"
 )
-  (**************************)
-  (* dump d'une def de type *)
-  (**************************)
+(**************************)
+(* dump d'une def de type *)
+(**************************)
 and dump_type (os: Format.formatter) (x: type_info srcflagged) = (
   let lxm = x.src and info = x.it in
   let id = Lxm.str lxm in
-    fprintf os "-- %s@\n" (Lxm.details lxm) ;
-    fprintf os "type %s " id ;
-    dump_type_def os info ;
-    fprintf os " ;@\n" ;
+  fprintf os "-- %s@\n" (Lxm.details lxm) ;
+  fprintf os "type %s " id ;
+  dump_type_def os info ;
+  fprintf os " ;@\n" ;
 )
 and dump_type_def (os: Format.formatter) (info: type_info ) = (
   match info with
     | ExternalType id -> () 
     | AliasedType (id, te) -> fprintf os "= %a" dump_type_exp te
     | EnumType (id, clist) ->
-	(* fprintf os "= enum {@[<b 3>@,%a@,@]}" dump_id_list clist *)
-	fprintf os "= enum { %a}" dump_id_list clist
-       
+	   (* fprintf os "= enum {@[<b 3>@,%a@,@]}" dump_id_list clist *)
+	   fprintf os "= enum { %a}" dump_id_list clist
+        
     | StructType {st_name = id; st_flist = fl; st_ftable = ft} ->
-	let filst = List.map (function id -> (Hashtbl.find ft id).it) fl in
-	  fprintf os "= struct {@\n@[<b 3>   %a@]@\n}"
-	    dump_field_list filst
+	   let filst = List.map (function id -> (Hashtbl.find ft id).it) fl in
+	   fprintf os "= struct {@\n@[<b 3>   %a@]@\n}"
+	     dump_field_list filst
 
     | ArrayType (id, texp, vexp) ->
-	fprintf os " = %a" dump_type_exp texp;
-	fprintf os "^%a"   dump_val_exp vexp;
-	
+	   fprintf os " = %a" dump_type_exp texp;
+	   fprintf os "^%a"   dump_val_exp vexp;
+	   
 )
-  (****************************)
-  (* dump d'une liste de noms *)
-  (****************************)
+(****************************)
+(* dump d'une liste de noms *)
+(****************************)
 and dump_id_list (os : formatter) (idlst : Ident.t srcflagged list) = (
   match idlst with 
       [] -> () 
     | h::[] -> ( fprintf os "%s" (Ident.to_string h.it))
     | h::t  -> ( fprintf os "%s, %a" (Ident.to_string h.it) dump_id_list t)
 )
-  (*****************************)
-  (* dump d'une liste de field *)
-  (*****************************)
+(*****************************)
+(* dump d'une liste de field *)
+(*****************************)
 and dump_field_list (os: Format.formatter) (filst: field_info list) = (
   match filst with
       [] -> ()
@@ -139,20 +139,20 @@ and dump_field_list (os: Format.formatter) (filst: field_info list) = (
 and dump_field (os: Format.formatter) (finfo: field_info) = (
   match finfo with
       {fd_name=id; fd_type=ty; fd_value=None} -> (
-	fprintf os "%s : %a" (Ident.to_string id) dump_type_exp ty
+	     fprintf os "%s : %a" (Ident.to_string id) dump_type_exp ty
       ) 
     |
-	{fd_name=id; fd_type=ty; fd_value=Some ex} -> (
-	  fprintf os "%s : %a = %a" (Ident.to_string id) 
-	    dump_type_exp ty dump_val_exp ex
-	)
+	     {fd_name=id; fd_type=ty; fd_value=Some ex} -> (
+	       fprintf os "%s : %a = %a" (Ident.to_string id) 
+	         dump_type_exp ty dump_val_exp ex
+	     )
 )
 and dump_param_list 
     (os: Format.formatter)
-    (plst: (Ident.t option * type_exp) list) = 
+  (plst: (Ident.t option * type_exp) list) = 
   (
     match plst with
-	[] -> ()
+	     [] -> ()
       | h::[] -> ( fprintf os "%a" dump_param h )
       | h::t  -> ( fprintf os "%a; %a" dump_param h dump_param_list t) 
   )
@@ -161,97 +161,97 @@ and dump_param (os: Format.formatter) (p: (Ident.t option * type_exp)) = (
       (None, ty) -> (fprintf os "%a" dump_type_exp ty)
     | (Some id, ty) -> (fprintf os "%s : %a" (Ident.to_string id) dump_type_exp ty) 
 ) 
-  (**************************)
-  (* dump d'une eq. de node *)
-  (**************************)
+(**************************)
+(* dump d'une eq. de node *)
+(**************************)
 and dump_item_info_list 
     (os: Format.formatter) 
-    (lst: item_info srcflagged list) =
+  (lst: item_info srcflagged list) =
   (
     match lst with
-	[] -> ()
+	     [] -> ()
       | h::[]	-> dump_item_info os h
       | h::t  -> fprintf os "%a;@\n%a" dump_item_info h dump_item_info_list t 
   )
 and dump_item_info
     (os: Format.formatter)
-    (ie: item_info srcflagged) = (
-      match ie.it with
-	| ConstInfo ci -> dump_const os (Lxm.flagit ci ie.src)
-	| TypeInfo ti -> dump_type os (Lxm.flagit ti ie.src)
-	| NodeInfo ni -> dump_node os (Lxm.flagit ni ie.src)
-    )
+  (ie: item_info srcflagged) = (
+  match ie.it with
+	 | ConstInfo ci -> dump_const os (Lxm.flagit ci ie.src)
+	 | TypeInfo ti -> dump_type os (Lxm.flagit ti ie.src)
+	 | NodeInfo ni -> dump_node os (Lxm.flagit ni ie.src)
+)
   
 
 and dump_static_param_list 
     (os: Format.formatter) 
-    (lst: static_param srcflagged list) =
+  (lst: static_param srcflagged list) =
   (
     match lst with
-	[] -> ()
+	     [] -> ()
       | h::[]	-> dump_static_param os h
       | h::t  -> fprintf os "%a;@\n%a" dump_static_param h dump_static_param_list t 
   )
 and dump_static_param 
     (os: Format.formatter) 
-    (sp: static_param srcflagged) =
+  (sp: static_param srcflagged) =
   (
     match sp.it with
       | StaticParamType id ->  fprintf os "type %s" (Ident.to_string id)
       | StaticParamConst (id, exp) -> fprintf os "const %s : %a" 
-	  (Ident.to_string id) dump_type_exp exp
+	     (Ident.to_string id) dump_type_exp exp
       | StaticParamNode (id, ins, outs, has_mem) -> (
-	  fprintf os "%s %s(@,%a@,)returns(@,%a@,)" 
-	    (if has_mem then "node" else "function")
-	    (Ident.to_string id)
-	    dump_line_var_decl_list ins dump_line_var_decl_list outs
-	)
+	     fprintf os "%s %s(@,%a@,)returns(@,%a@,)" 
+	       (if has_mem then "node" else "function")
+	       (Ident.to_string id)
+	       dump_line_var_decl_list ins dump_line_var_decl_list outs
+	   )
   )
-    (**************************)
-    (* dump d'une def de node *)
-    (**************************)
+(**************************)
+(* dump d'une def de node *)
+(**************************)
 and dump_node (os: Format.formatter) (x: node_info srcflagged) = (
   let lxm = x.src and ninfo = x.it in
-    fprintf os "-- %s" (Lxm.details lxm) ;
-    fprintf os " (node definition)@\n" ;
-    fprintf os "node %s" (Ident.to_string ninfo.name);
-    fprintf os " <<@\n" ;
-    fprintf os "@[<b 3>@   %a@]@\n" dump_static_param_list ninfo.static_params;
-    fprintf os ">>\n";
-    (match ninfo.vars with
-      | None -> ()
-      | Some {
-	  inlist  = inlist;
-	  outlist = outlist;
-	  loclist = loclist_opt;
-	  vartable = vartab;
-	} -> 
-	  let get_info (id: Ident.t) = (Hashtbl.find vartab id).it in
-	  let inlst = List.map get_info inlist in
-	  let outlst = List.map get_info outlist in
-	    fprintf os "(@\n" ;
-	    fprintf os "@[<b 3>@   %a@]@\n" dump_var_decl_list inlst ;
-	    fprintf os ") returns (@\n" ;
-	    fprintf os "@[<b 3>@   %a@]@\n" dump_var_decl_list outlst ;
-	    fprintf os ");@\n" ;
-	    match loclist_opt with
-	      | None -> ()
-	      | Some loclist -> 
-		  let loclst = List.map get_info loclist in
+  fprintf os "-- %s" (Lxm.details lxm) ;
+  fprintf os " (node definition)@\n" ;
+  fprintf os "node %s" (Ident.to_string ninfo.name);
+  fprintf os " <<@\n" ;
+  fprintf os "@[<b 3>@   %a@]@\n" dump_static_param_list ninfo.static_params;
+  fprintf os ">>\n";
+  (match ninfo.vars with
+    | None -> ()
+    | Some {
+	   inlist  = inlist;
+	   outlist = outlist;
+	   loclist = loclist_opt;
+	   vartable = vartab;
+	 } -> 
+	   let get_info (id: Ident.t) = (Hashtbl.find vartab id).it in
+	   let inlst = List.map get_info inlist in
+	   let outlst = List.map get_info outlist in
+	   fprintf os "(@\n" ;
+	   fprintf os "@[<b 3>@   %a@]@\n" dump_var_decl_list inlst ;
+	   fprintf os ") returns (@\n" ;
+	   fprintf os "@[<b 3>@   %a@]@\n" dump_var_decl_list outlst ;
+	   fprintf os ");@\n" ;
+	   match loclist_opt with
+	     | None -> ()
+	     | Some loclist -> 
+		    let loclst = List.map get_info loclist in
 		    fprintf os "var@\n";
 		    fprintf os "@[<b 3>   %a;@]@\n" dump_var_decl_list loclst;
-    );
-        
-    (match ninfo.def with
-       | Extern    -> fprintf os "extern"
-       | Abstract  -> fprintf os "abstract" 
-       | Body body -> dump_node_body os body
-       | Alias {it = nexp; src = lxm} -> assert false
-(* 	   fprintf os " = @,%a;@\n" dump_by_pos_exp nexp *)
+  );
+  
+  (match ninfo.def with
+    | Extern    -> fprintf os "extern"
+    | Abstract  -> fprintf os "abstract" 
+    | Body body -> dump_node_body os body
+    | Alias {it = nexp; src = lxm} -> assert false
+  (* 	   fprintf os " = @,%a;@\n" dump_by_pos_exp nexp *)
 
-    );
-    if ninfo.has_mem then () else ();
-    if ninfo.is_safe then () else ();
+  );
+  if ninfo.has_mem then () else ();
+  if ninfo.is_safe then () else ();
 
 )
 
@@ -263,14 +263,14 @@ and dump_node_body (os: Format.formatter) (nbody: node_body) = (
   dump_eq_list os nbody.eqs ;
   fprintf os "@]@\ntel" ;
 )
-  (* déclarations sur plusieurs lignes, indentées ... *)
+(* déclarations sur plusieurs lignes, indentées ... *)
 and dump_var_decl_list (os: Format.formatter) (lst: var_info list) = (
   match lst with
       [] -> ()
     | h::[] -> ( fprintf os "%a" dump_var_decl h )
     | h::t -> ( fprintf os "%a;@\n%a" dump_var_decl h dump_var_decl_list t )
 )
-  (* déclarations sur une ligne AVEC SOURCE ... *)
+(* déclarations sur une ligne AVEC SOURCE ... *)
 and dump_line_var_decl_list (os: Format.formatter) (lst: var_info srcflagged list) = (
   match lst with
       [] -> ()
@@ -281,21 +281,21 @@ and dump_var_decl (os: Format.formatter) (vinfo: var_info  ) = (
   fprintf os "%s : %a" (Ident.to_string vinfo.var_name) dump_type_exp vinfo.var_type ;
   (
     match vinfo.var_clock with
-	Base -> ()
+	     Base -> ()
       | NamedClock({it=cc,id;src=lxm}) ->
-          let cc_str = Ident.string_of_idref cc in
-          let id_str = Ident.to_string id in
-          let clk_str = 
-            if cc_str = "True" then id_str
-            else if cc_str = "False" then ("not " ^ id_str) 
-            else (cc_str ^ "(" ^ id_str ^ ")")
-          in
-            (fprintf os " when %s" ) clk_str
+        let cc_str = Ident.string_of_idref cc in
+        let id_str = Ident.to_string id in
+        let clk_str = 
+          if cc_str = "True" then id_str
+          else if cc_str = "False" then ("not " ^ id_str) 
+          else (cc_str ^ "(" ^ id_str ^ ")")
+        in
+        (fprintf os " when %s" ) clk_str
   )
 )
-  (**************************)
-  (* dump d'un type immédiat*)
-  (**************************)
+(**************************)
+(* dump d'un type immédiat*)
+(**************************)
 and dump_type_exp (os: Format.formatter) (x: type_exp) = (
   match x.it with
       Bool_type_exp -> fprintf os "bool"
@@ -303,64 +303,62 @@ and dump_type_exp (os: Format.formatter) (x: type_exp) = (
     |  Real_type_exp -> fprintf os "real"
     |  Named_type_exp id -> fprintf os "%s" (Ident.string_of_idref id)
     |  Array_type_exp (te, sz) -> (
-	 dump_type_exp os te ;
-	 fprintf os "^" ;
-	 dump_val_exp os sz
-       )
+	   dump_type_exp os te ;
+	   fprintf os "^" ;
+	   dump_val_exp os sz
+    )
 )
-  (**************************)
-  (* dump des assertions    *)
-  (**************************)
+(**************************)
+(* dump des assertions    *)
+(**************************)
 and dump_assert_list (os: Format.formatter) (af: (val_exp srcflagged) list) = (
   match af with
       [] -> ()
     | a :: reste -> (
-	  Format.fprintf os "@\nassert %a;" dump_val_exp a.it ;
-	  Format.fprintf os "%a" dump_assert_list reste
-	)
+	   Format.fprintf os "@\nassert %a;" dump_val_exp a.it ;
+	   Format.fprintf os "%a" dump_assert_list reste
+	 )
 )
-  (**************************)
-  (* dump des equations     *)
-  (**************************)
+(**************************)
+(* dump des equations     *)
+(**************************)
 and dump_eq_list (os: Format.formatter) (eqfs: (eq_info srcflagged) list) = (
   match eqfs with
       [] -> ()
     | {it=(lflst,exp); src=lxm} :: reste -> (
-	  Format.fprintf os "@\n%a = %a;%a"
-	    dump_left_part_list lflst
-	    dump_val_exp exp
-	    dump_eq_list reste
-	)
+	   Format.fprintf os "@\n%a = %a;%a"
+	     dump_left_part_list lflst
+	     dump_val_exp exp
+	     dump_eq_list reste
+	 )
 )
 and dump_left_part_list (os: Format.formatter) (lfts: left_part list) =
   (
     match lfts with
-	l::[] ->     dump_left_part os l
+	     l::[] ->     dump_left_part os l
       | l::reste ->  fprintf os "%a,@,%a" dump_left_part l dump_left_part_list reste
       | _ -> assert false
-	  
+	     
   )
 and dump_left_part (os: Format.formatter) (lft: left_part) =
   (
     match lft with
-	LeftVar idflg ->  fprintf os "%s" (Ident.to_string idflg.it)
+	     LeftVar idflg ->  fprintf os "%s" (Ident.to_string idflg.it)
       | LeftField (l, idflg) ->  fprintf os "%a.%s" dump_left_part l (Ident.to_string idflg.it)
       | LeftArray (l, expflg) ->
-	  fprintf os "%a[@,%a@,]" dump_left_part l dump_val_exp expflg.it
+	     fprintf os "%a[@,%a@,]" dump_left_part l dump_val_exp expflg.it
       | LeftSlice (l, slcflg) ->
-	  fprintf os "%a[@,%a@,]" dump_left_part l dump_slice_info slcflg.it
+	     fprintf os "%a[@,%a@,]" dump_left_part l dump_slice_info slcflg.it
   )
-    (**************************)
-    (* dump d'une expression  *)
-    (**************************)
+(**************************)
+(* dump d'une expression  *)
+(**************************)
 and dump_val_exp (os: Format.formatter) (x: val_exp) = (
   match x with
-      CallByPos ( {it=oper; src=lxm} , pars ) -> (
-	dump_by_pos_exp os oper pars
-      ) |
-	  CallByName ( {it=oper; src=lxm}, nm_pars ) -> (
-	    dump_by_name_exp os oper nm_pars
-	  )
+    | CallByPos ( {it=oper; src=lxm} , pars ) -> dump_by_pos_exp os oper pars
+    | CallByName ({it=oper; src=lxm},nm_pars) -> dump_by_name_exp os oper nm_pars
+    | MERGE_n (ve, _) -> (* finish me *)
+        fprintf os "merge %a (...) "  dump_val_exp ve.it
 )
 and dump_val_exp_list (os : formatter) (xl: val_exp list) = (
   match xl with 
@@ -368,9 +366,9 @@ and dump_val_exp_list (os : formatter) (xl: val_exp list) = (
     | h::[] -> ( fprintf os "%a" dump_val_exp h ) 
     | h::t  -> ( fprintf os "%a,@,%a" dump_val_exp h dump_val_exp_list t)
 )
-  (****************************)
-  (* Appels "par position"    *)
-  (****************************)
+(****************************)
+(* Appels "par position"    *)
+(****************************)
 and dump_by_pos_exp (os: Format.formatter) (oper: by_pos_op) (pars: operands) =
   (
     match (oper, pars) with 
@@ -382,64 +380,64 @@ and dump_by_pos_exp (os: Format.formatter) (oper: by_pos_op) (pars: operands) =
       | (WHEN_n _,   Oper [p0;p1]) -> dump_binary_exp os "when" p0 p1
 
       | (Predef_n (x,_), _) -> (
-         match (x.it, pars) with
-	      | (TRUE_n,     Oper [])  -> dump_leaf_exp os "true" 
-         | (FALSE_n,    Oper [])  -> dump_leaf_exp os "false"
-         | (ICONST_n s, Oper []) -> dump_leaf_exp os (Ident.to_string s) 
-         | (RCONST_n s, Oper []) -> dump_leaf_exp os (Ident.to_string s)
-	      (* unaires *)
-         | (NOT_n,      Oper [p0]) -> dump_unary_exp os "not" p0
-         | (UMINUS_n,   Oper [p0]) -> dump_unary_exp os "-" p0
-         | (RUMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0
-         | (IUMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0
-         | (REAL2INT_n, Oper [p0]) -> dump_unary_exp os "int" p0
-         | (INT2REAL_n, Oper [p0]) -> dump_unary_exp os "real" p0
-	      (* binaires *)
-         | (AND_n,    Oper [p0;p1]) -> dump_binary_exp os "and" p0 p1
-         | (OR_n,     Oper [p0;p1]) -> dump_binary_exp os "or" p0 p1
-         | (XOR_n,    Oper [p0;p1]) -> dump_binary_exp os "xor" p0 p1
-         | (IMPL_n,   Oper [p0;p1]) -> dump_binary_exp os "=>" p0 p1
-         | (EQ_n,     Oper [p0;p1]) -> dump_binary_exp os "=" p0 p1
-         | (NEQ_n,    Oper [p0;p1]) -> dump_binary_exp os "<>" p0 p1
-         | (LT_n,     Oper [p0;p1]) -> dump_binary_exp os "<" p0 p1
-         | (LTE_n,    Oper [p0;p1]) -> dump_binary_exp os "<=" p0 p1
-         | (GT_n,     Oper [p0;p1]) -> dump_binary_exp os ">" p0 p1
-         | (GTE_n,    Oper [p0;p1]) -> dump_binary_exp os ">=" p0 p1
-         | (DIV_n,    Oper [p0;p1]) -> dump_binary_exp os "div" p0 p1
-         | (MOD_n,    Oper [p0;p1]) -> dump_binary_exp os "mod" p0 p1
-         | (MINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0 
-         | (RMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0 
-         | (IMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0 
-         | (PLUS_n,   Oper [p0;p1]) -> dump_binary_exp os "+" p0 p1
-         | (RPLUS_n,   Oper [p0;p1]) -> dump_binary_exp os "+" p0 p1
-         | (IPLUS_n,   Oper [p0;p1]) -> dump_binary_exp os "+" p0 p1
-         | (SLASH_n,  Oper [p0;p1]) -> dump_binary_exp os "/" p0 p1
-         | (RSLASH_n,  Oper [p0;p1]) -> dump_binary_exp os "/" p0 p1
-         | (ISLASH_n,  Oper [p0;p1]) -> dump_binary_exp os "/" p0 p1
-         | (TIMES_n,  Oper [p0;p1]) -> dump_binary_exp os "*" p0 p1
-         | (RTIMES_n,  Oper [p0;p1]) -> dump_binary_exp os "*" p0 p1
-         | (ITIMES_n,  Oper [p0;p1]) -> dump_binary_exp os "*" p0 p1
-         | (IF_n,   Oper [p0;p1;p2]) -> dump_ternary_exp os "if" "then" "else" p0 p1 p2
-         | (NOR_n,    Oper pl) -> dump_nary_exp os "nor" pl
-         | (DIESE_n,  Oper pl) -> dump_nary_exp os "#" pl
-         | (_,_) -> assert false
+        match (x.it, pars) with
+	       | (TRUE_n,     Oper [])  -> dump_leaf_exp os "true" 
+          | (FALSE_n,    Oper [])  -> dump_leaf_exp os "false"
+          | (ICONST_n s, Oper []) -> dump_leaf_exp os (Ident.to_string s) 
+          | (RCONST_n s, Oper []) -> dump_leaf_exp os (Ident.to_string s)
+	       (* unaires *)
+          | (NOT_n,      Oper [p0]) -> dump_unary_exp os "not" p0
+          | (UMINUS_n,   Oper [p0]) -> dump_unary_exp os "-" p0
+          | (RUMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0
+          | (IUMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0
+          | (REAL2INT_n, Oper [p0]) -> dump_unary_exp os "int" p0
+          | (INT2REAL_n, Oper [p0]) -> dump_unary_exp os "real" p0
+	       (* binaires *)
+          | (AND_n,    Oper [p0;p1]) -> dump_binary_exp os "and" p0 p1
+          | (OR_n,     Oper [p0;p1]) -> dump_binary_exp os "or" p0 p1
+          | (XOR_n,    Oper [p0;p1]) -> dump_binary_exp os "xor" p0 p1
+          | (IMPL_n,   Oper [p0;p1]) -> dump_binary_exp os "=>" p0 p1
+          | (EQ_n,     Oper [p0;p1]) -> dump_binary_exp os "=" p0 p1
+          | (NEQ_n,    Oper [p0;p1]) -> dump_binary_exp os "<>" p0 p1
+          | (LT_n,     Oper [p0;p1]) -> dump_binary_exp os "<" p0 p1
+          | (LTE_n,    Oper [p0;p1]) -> dump_binary_exp os "<=" p0 p1
+          | (GT_n,     Oper [p0;p1]) -> dump_binary_exp os ">" p0 p1
+          | (GTE_n,    Oper [p0;p1]) -> dump_binary_exp os ">=" p0 p1
+          | (DIV_n,    Oper [p0;p1]) -> dump_binary_exp os "div" p0 p1
+          | (MOD_n,    Oper [p0;p1]) -> dump_binary_exp os "mod" p0 p1
+          | (MINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0 
+          | (RMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0 
+          | (IMINUS_n,  Oper [p0]) -> dump_unary_exp os "-" p0 
+          | (PLUS_n,   Oper [p0;p1]) -> dump_binary_exp os "+" p0 p1
+          | (RPLUS_n,   Oper [p0;p1]) -> dump_binary_exp os "+" p0 p1
+          | (IPLUS_n,   Oper [p0;p1]) -> dump_binary_exp os "+" p0 p1
+          | (SLASH_n,  Oper [p0;p1]) -> dump_binary_exp os "/" p0 p1
+          | (RSLASH_n,  Oper [p0;p1]) -> dump_binary_exp os "/" p0 p1
+          | (ISLASH_n,  Oper [p0;p1]) -> dump_binary_exp os "/" p0 p1
+          | (TIMES_n,  Oper [p0;p1]) -> dump_binary_exp os "*" p0 p1
+          | (RTIMES_n,  Oper [p0;p1]) -> dump_binary_exp os "*" p0 p1
+          | (ITIMES_n,  Oper [p0;p1]) -> dump_binary_exp os "*" p0 p1
+          | (IF_n,   Oper [p0;p1;p2]) -> dump_ternary_exp os "if" "then" "else" p0 p1 p2
+          | (NOR_n,    Oper pl) -> dump_nary_exp os "nor" pl
+          | (DIESE_n,  Oper pl) -> dump_nary_exp os "#" pl
+          | (_,_) -> assert false
       )
       | (HAT_n,    Oper [p0;p1]) -> dump_binary_exp os "^" p0 p1
       | (CONCAT_n, Oper [p0;p1]) -> dump_binary_exp os "|" p0 p1
       | (WITH_n(_), Oper [p0;p1;p2]) -> dump_ternary_exp os "with" "then" "else" p0 p1 p2
       | (TUPLE_n,  Oper pl) -> dump_nary_exp os "" pl
       | (CALL_n s, Oper pl) -> fprintf os "%a(@,%a@,)"
-	  dump_node_exp s.it dump_val_exp_list pl 
+	     dump_node_exp s.it dump_val_exp_list pl 
       | (ARRAY_n,  Oper pl) -> fprintf os "[@,%a@,]" dump_val_exp_list pl
       | (ARRAY_ACCES_n ix, Oper [p0]) ->  fprintf os "%a[@,%a@,]" 
-	  dump_val_exp p0 dump_val_exp ix 
+	     dump_val_exp p0 dump_val_exp ix 
       | (ARRAY_SLICE_n sl, Oper [p0]) ->  fprintf os "%a[@,%a@,]" 
-	  dump_val_exp p0 dump_slice_info sl 
+	     dump_val_exp p0 dump_slice_info sl 
       | (STRUCT_ACCESS_n fld, Oper [p0]) -> fprintf os "%a.%s"
-	  dump_val_exp p0 (Ident.to_string fld)
+	     dump_val_exp p0 (Ident.to_string fld)
 
-(*       | (ITERATOR_n _, _) -> assert false *)
-      | (MERGE_n _,_) -> assert false
+      (*       | (ITERATOR_n _, _) -> assert false *)
+      (*       | (MERGE_n _,_) -> assert false *)
 
       | (FBY_n, _) -> assert false
 
@@ -458,49 +456,49 @@ and dump_by_pos_exp (os: Format.formatter) (oper: by_pos_op) (pars: operands) =
       | (IDENT_n _, _) -> assert false
 
   )
-    (* les procs standard pour les operateurs predefs *)
+(* les procs standard pour les operateurs predefs *)
 and dump_leaf_exp (os : Format.formatter) (s : string) = (
   fprintf os "%s" s
 )
 and dump_unary_exp
     (os : Format.formatter)
-    (s : string)
-    (op0: val_exp)
+  (s : string)
+  (op0: val_exp)
     = (
-      fprintf os "(@,%s %a@,)" s dump_val_exp op0
-    )
+  fprintf os "(@,%s %a@,)" s dump_val_exp op0
+)
 and dump_binary_exp
     (os : Format.formatter)
-    (s : string)
-    (op0: val_exp)
-    (op1: val_exp)
+  (s : string)
+  (op0: val_exp)
+  (op1: val_exp)
     = (
-      fprintf os "(@,%a %s %a@,)" dump_val_exp op0 s dump_val_exp op1
-    )
+  fprintf os "(@,%a %s %a@,)" dump_val_exp op0 s dump_val_exp op1
+)
 and dump_ternary_exp
     (os : Format.formatter)
-    (s : string)
-    (t : string)
-    (e : string)
-    (op0: val_exp)
-    (op1: val_exp)
-    (op2: val_exp)
+  (s : string)
+  (t : string)
+  (e : string)
+  (op0: val_exp)
+  (op1: val_exp)
+  (op2: val_exp)
     = (
-      fprintf os "(@,%s %a %s %a %s %a@,)"
-	s dump_val_exp op0 t dump_val_exp op1 e dump_val_exp op2
-    )
+  fprintf os "(@,%s %a %s %a %s %a@,)"
+	 s dump_val_exp op0 t dump_val_exp op1 e dump_val_exp op2
+)
 and dump_nary_exp
     (os : Format.formatter)
-    (s: string)
-    (ops: val_exp list)
+  (s: string)
+  (ops: val_exp list)
     = (
-      fprintf os "%s(@,%a@,)" s dump_val_exp_list ops
-    )
+  fprintf os "%s(@,%a@,)" s dump_val_exp_list ops
+)
 
 and string_of_node_exp (id, sal) = 
   (Ident.string_of_idref id) ^
-	(if sal = [] then "" else 
-	   "<<" ^ (String.concat ", " (List.map static_arg_to_string sal)) ^ ">>")
+	 (if sal = [] then "" else 
+	     "<<" ^ (String.concat ", " (List.map static_arg_to_string sal)) ^ ">>")
 
 and static_arg_to_string arg = 
   match arg.it with
@@ -510,86 +508,86 @@ and static_arg_to_string arg =
     | StaticArgNode  op -> "node "^(op2string op)
 
 and dump_node_exp  os ne =
-   fprintf os "%s" (string_of_node_exp ne)
+  fprintf os "%s" (string_of_node_exp ne)
 
 and dump_static_sarg_list 
     (os : Format.formatter)
-    (lst: (static_arg srcflagged) list)
+  (lst: (static_arg srcflagged) list)
     = (
-      match lst with
-	| [] -> ()
-	| [sa] -> fprintf os "%a" dump_static_sarg sa.it
-	| sa::reste ->
-	    fprintf os "%a, @,%a" dump_static_sarg sa.it dump_static_sarg_list reste
-    )
+  match lst with
+	 | [] -> ()
+	 | [sa] -> fprintf os "%a" dump_static_sarg sa.it
+	 | sa::reste ->
+	   fprintf os "%a, @,%a" dump_static_sarg sa.it dump_static_sarg_list reste
+)
 and dump_static_sarg
     (os : Format.formatter)
-    (sa: static_arg)
+  (sa: static_arg)
     =
-      match sa with
-	| StaticArgIdent id -> fprintf os "%s" (Ident.string_of_idref id)
-	| StaticArgConst ve -> fprintf os "const %a"    dump_val_exp ve
-	| StaticArgType  te -> fprintf os "type %a"     dump_type_exp te
-	| StaticArgNode  op -> fprintf os "node %s"     (op2string op)
+  match sa with
+	 | StaticArgIdent id -> fprintf os "%s" (Ident.string_of_idref id)
+	 | StaticArgConst ve -> fprintf os "const %a"    dump_val_exp ve
+	 | StaticArgType  te -> fprintf os "type %a"     dump_type_exp te
+	 | StaticArgNode  op -> fprintf os "node %s"     (op2string op)
 
 and dump_static_arg_list 
     (os : Format.formatter)
-    (lst: (Ident.t * static_arg srcflagged) list)
+  (lst: (Ident.t * static_arg srcflagged) list)
     = (
-      match lst with
-	| [] -> ()
-	| [sa] -> fprintf os "%a" dump_static_arg sa
-	| sa::reste ->
-	    fprintf os "%a, @,%a" dump_static_arg sa dump_static_arg_list reste
-    )
+  match lst with
+	 | [] -> ()
+	 | [sa] -> fprintf os "%a" dump_static_arg sa
+	 | sa::reste ->
+	   fprintf os "%a, @,%a" dump_static_arg sa dump_static_arg_list reste
+)
 and dump_static_arg
     (os : Format.formatter)
-    ((id,sa): Ident.t * static_arg srcflagged) 
+  ((id,sa): Ident.t * static_arg srcflagged) 
     =
-	fprintf os "%s = " (Ident.to_string id);
-   match sa.it with
-	| StaticArgIdent id -> fprintf os "%s" (Ident.string_of_idref id)
-	| StaticArgConst ve -> fprintf os "const %a"    dump_val_exp ve
-	| StaticArgType  te -> fprintf os "type %a"     dump_type_exp te
-	| StaticArgNode  op -> fprintf os "node %s"     (op2string op)
+  fprintf os "%s = " (Ident.to_string id);
+  match sa.it with
+	 | StaticArgIdent id -> fprintf os "%s" (Ident.string_of_idref id)
+	 | StaticArgConst ve -> fprintf os "const %a"    dump_val_exp ve
+	 | StaticArgType  te -> fprintf os "type %a"     dump_type_exp te
+	 | StaticArgNode  op -> fprintf os "node %s"     (op2string op)
 (* 	| StaticArgFunc  ne -> fprintf os "function %a" dump_node_exp ne *)
-		      
+		
 and dump_slice_info 
     (os : Format.formatter)
-    (sl: slice_info)
+  (sl: slice_info)
     = (
-      fprintf os "%a@, .. @,%a" dump_val_exp sl.si_first dump_val_exp sl.si_last ;
-      match sl.si_step with
-	  Some e -> fprintf os "@, step %a" dump_val_exp e
-	| None -> ()
-    )
-  (****************************)
-  (* Appels "par noms"        *) 
-  (****************************)
+  fprintf os "%a@, .. @,%a" dump_val_exp sl.si_first dump_val_exp sl.si_last ;
+  match sl.si_step with
+	   Some e -> fprintf os "@, step %a" dump_val_exp e
+	 | None -> ()
+)
+(****************************)
+(* Appels "par noms"        *) 
+(****************************)
 and dump_by_name_exp
     (os: Format.formatter)
-    (oper: by_name_op)
-    (pars: (Ident.t srcflagged * val_exp) list) =
+  (oper: by_name_op)
+  (pars: (Ident.t srcflagged * val_exp) list) =
   (
     match (oper, pars) with
       | (STRUCT_n id, pl) -> (
-	  fprintf os "%s{@,%a@,}" 
-	    (Ident.string_of_idref id) 
-	    dump_named_pars pl
-	) 
+	     fprintf os "%s{@,%a@,}" 
+	       (Ident.string_of_idref id) 
+	       dump_named_pars pl
+	   ) 
       | (STRUCT_anonymous_n, pl) -> (
-	    fprintf os "{@,%a@,}" dump_named_pars pl
-	    )
+	     fprintf os "{@,%a@,}" dump_named_pars pl
+	   )
   )
 and dump_named_pars
     (os: Format.formatter)
-    (pars: (Ident.t srcflagged * val_exp) list) =
+  (pars: (Ident.t srcflagged * val_exp) list) =
   ( match pars with
-	[] -> () 
-      |(v,e)::[] -> fprintf os "%s = %a" (Ident.to_string v.it) dump_val_exp e
-      |(v,e)::l  ->
-	 fprintf os "%s = %a;@,%a" (Ident.to_string v.it) dump_val_exp e 
-	   dump_named_pars l
+	   [] -> () 
+    |(v,e)::[] -> fprintf os "%s = %a" (Ident.to_string v.it) dump_val_exp e
+    |(v,e)::l  ->
+	   fprintf os "%s = %a;@,%a" (Ident.to_string v.it) dump_val_exp e 
+	     dump_named_pars l
   )
 
 
diff --git a/src/evalClock.ml b/src/evalClock.ml
index f6755949..4afe893f 100644
--- a/src/evalClock.ml
+++ b/src/evalClock.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 18/01/2013 (at 08:32) by Erwan Jahier> *)
+(* Time-stamp: <modified the 31/01/2013 (at 17:50) by Erwan Jahier> *)
  
   
 open AstPredef
@@ -175,11 +175,9 @@ let (get_clock_profile : Lic.node_exp -> clock_profile) =
 
 let ci2str = LicDump.string_of_clock2
 
-
 (******************************************************************************)
 (** Now we can go on and define [f].  *)
 
-    
 let rec (f : Lxm.t -> Lic.id_solver -> subst -> Lic.val_exp -> Lic.clock list -> 
          Lic.val_exp * Lic.id_clock list * subst) =
   fun lxm id_solver s ve exp_clks ->
@@ -200,19 +198,29 @@ let rec (f : Lxm.t -> Lic.id_solver -> subst -> Lic.val_exp -> Lic.clock list ->
       "Clocking the expression '" ^ (LicDump.string_of_val_exp_eff ve) ^"': "^ 
         (LicDump.string_of_clock2 (List.hd clks)) ^"\n");
     ve, inf_clks, s
-      
-
 
 and f_aux id_solver s ve =
   let (cel, s), lxm = 
-    match ve.ve_core with
+    match ve.ve_core with    
       | CallByPosLic ({it=posop; src=lxm}, OperLic args) ->
-        eval_by_pos_clock id_solver posop lxm args s, lxm
-          
-      | CallByNameLic ({it=nmop; src=lxm}, nmargs ) ->
+        eval_by_pos_clock id_solver posop lxm args s, lxm          
+      | CallByNameLic ({it=nmop; src=lxm}, nmargs ) -> (
         try eval_by_name_clock id_solver nmop lxm nmargs s, lxm
         with EvalConst_error msg ->
           raise (Compile_error(lxm, "\n*** can't eval constant: "^msg))
+      )
+      | Merge(ce, cl) -> 
+        let _ve,cel,s = f ce.src id_solver s ce.it [] in
+        let ce_id, (merge_clk:Lic.clock) = match cel with [c] -> c | _ -> assert false in
+        let check_case s (id,ve) =
+        (* Check that ve is on id(ce) on merge_clk *)
+          let id_clk : Ident.clk = (Ident.idref_of_long id.it, ce_id) in
+          let exp_clk = [On(id_clk, merge_clk)] in
+          let _ve,cel,s = f id.src id_solver s ve exp_clk in
+          s
+        in
+        let s = List.fold_left check_case s cl in
+        (cel,s), ce.src
   in
   let new_clk = snd (List.split cel) in
   let s, ve = 
@@ -261,15 +269,14 @@ and (eval_by_pos_clock : Lic.id_solver -> Lic.by_pos_op -> Lxm.t -> Lic.val_exp
               c_clk, On((cc,c), c_clk)
         in
 	     let aux_when exp_clk s =
-            (* 
-               In order to clock check an expression such as
+          (* 
+             In order to clock check an expression such as
 
-               exp when C(c)
-               
-               (1) we first need to check that the clock of c (c_clk)
-               is a sub-clock of the clock of exp (exp_clk).
-               (2) 
-            *)
+             exp when C(c)
+             
+             we first need to check that the clock of c (c_clk)
+             is a sub-clock of the clock of exp (exp_clk).
+          *)
 
           match is_a_sub_clock lxm s exp_clk (fst exp_clk,c_clk) with
             | None -> 
@@ -291,16 +298,16 @@ and (eval_by_pos_clock : Lic.id_solver -> Lic.by_pos_op -> Lxm.t -> Lic.val_exp
               id_when_exp_clk, s
 	     in
         (match f_list id_solver s args with
-               (* XXX ce cas ne sert à rien !!!
-                  le traitement du cas ou la liste ne contient qu'un element
-                  n'a aucun raison d'etre particulier, si ???
-               *)
+          (* XXX ce cas ne sert à rien !!!
+             le traitement du cas ou la liste ne contient qu'un element
+             n'a aucun raison d'etre particulier, si ???
+          *)
           | _args,[[exp_clk]], s -> 
 		      let (exp_clk,s) = aux_when exp_clk s in
 		      ([exp_clk], s)
 
           | _args, [exp_clk_list], s ->
-         (* when on tuples *)
+            (* when on tuples *)
 		      let exp_clk_list, s = 
 		        List.fold_left 
 		          (fun (acc,s) exp_clk -> 
@@ -315,7 +322,6 @@ and (eval_by_pos_clock : Lic.id_solver -> Lic.by_pos_op -> Lxm.t -> Lic.val_exp
         )
       )
 
-      | Lic.MERGE _,args -> assert false (* TODO *)
       (*      f_aux id_solver (List.hd args) *)
 
       | Lic.HAT(i,ve),args -> 
@@ -338,16 +344,16 @@ and (eval_by_pos_clock : Lic.id_solver -> Lic.by_pos_op -> Lxm.t -> Lic.val_exp
         let node_exp_eff = UglyStuff.node_exp_of_node_key id_solver node_key lxm in
         let (cil_arg, cil_res) = get_clock_profile node_exp_eff in
         let s, rel_base = UnifyClock.new_clock_var s in
-          (*  the value of the base clock of a node is actually relative
-              to the context into which the node is called.
-              
-              Hence we create a fresh var clock, that will be instanciated
-              by the caller.
-          *)
+        (*  the value of the base clock of a node is actually relative
+            to the context into which the node is called.
+            
+            Hence we create a fresh var clock, that will be instanciated
+            by the caller.
+        *)
         let (replace_base : Lic.clock -> Lic.id_clock -> Lic.id_clock) =
           fun rel_base (id,ci) -> 
-              (* [replace_base rel_base ci ] replaces in [ci] any occurences of the
-                 base clock by [rel_base] *)
+            (* [replace_base rel_base ci ] replaces in [ci] any occurences of the
+               base clock by [rel_base] *)
             let rec aux ci =
               match ci with
                 | BaseLic -> rel_base
@@ -422,7 +428,7 @@ and (eval_by_name_clock : Lic.id_solver -> Lic.by_name_op -> Lxm.t ->
       | Lic.STRUCT _ ->
         let apply_subst s (id,clk) = id, UnifyClock.apply_subst s clk in
         let args = List.map (fun (id,ve) -> ve) namargs in
-          (* XXX The 3 following lines duplicates the code of TUPLE_eff and co *)
+        (* XXX The 3 following lines duplicates the code of TUPLE_eff and co *)
         let args, clk_args, s =  f_list id_solver s args in
         let flat_clk_args = List.flatten clk_args in (* => mono-clock! *)
         let _,flat_clk_args = List.split flat_clk_args in
diff --git a/src/evalClock.mli b/src/evalClock.mli
index 642ba003..7e3984d8 100644
--- a/src/evalClock.mli
+++ b/src/evalClock.mli
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 13/12/2012 (at 11:49) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 16:25) by Erwan Jahier> *)
 
 (** Static evaluation of clocks. *)
 
@@ -8,6 +8,8 @@ open UnifyClock
    it checks that the argument and the parameter clocks are compatible),
    and returns a clock profile that contains all the necessary information
    so that the caller can perform additional clock checks.
+
+    nb : if [cl] is empty, no check is done (should be an option type)
 *)
 val f : Lxm.t -> Lic.id_solver -> subst -> Lic.val_exp -> Lic.clock list -> 
   Lic.val_exp * Lic.id_clock list * subst
diff --git a/src/evalConst.ml b/src/evalConst.ml
index 62ae4f25..8048239c 100644
--- a/src/evalConst.ml
+++ b/src/evalConst.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 29/01/2013 (at 15:03) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 18:09) by Erwan Jahier> *)
 
 
 open Printf 
@@ -172,11 +172,11 @@ let rec f
     (env : Lic.id_solver) 
     (vexp : val_exp)
     = (
-      (*-----------------------------------
-        fonction récursive principale
-        -> capte les nv
-        -> récupère les EvalConst_error 
-        -----------------------------------*)
+  (*-----------------------------------
+    fonction récursive principale
+    -> capte les nv
+    -> récupère les EvalConst_error 
+    -----------------------------------*)
   let rec rec_eval_const (vexp : AstCore.val_exp) = (
     match vexp with
       | AstCore.CallByPos ({it=posop; src=lxm}, Oper args) -> (
@@ -192,24 +192,28 @@ let rec f
         with EvalConst_error msg ->
           raise (Compile_error(lxm, "\n*** can't eval constant: "^msg))
       )
+      | MERGE_n (_,_) -> 
+        finish_me "merge"; 
+        assert false
+
   )
-      (*-----------------------------------
-        fonction récursive secondaire
-        eval. exp classique (by pos)
-        N.B. On distingue les opérations 
-        classiques (avec extention tableau
-        implicie) des autres. Ici, on traite
-        toutes les opérations non classiques. 
-        -----------------------------------*)
+  (*-----------------------------------
+    fonction récursive secondaire
+    eval. exp classique (by pos)
+    N.B. On distingue les opérations 
+    classiques (avec extention tableau
+    implicie) des autres. Ici, on traite
+    toutes les opérations non classiques. 
+    -----------------------------------*)
   and eval_by_pos_const
       (posop : by_pos_op)   (* l'operateur *)
   (lxm : Lxm.t)      (* source de l'opérateur *)
   (args : val_exp list) (* arguments *)
       = (
     match (posop) with 
-                (* capte les idents de constantes *)
+        (* capte les idents de constantes *)
         IDENT_n  id  -> (
-                  (* 2007-07 on interdit les externes *)
+          (* 2007-07 on interdit les externes *)
           match (env.id2const id lxm) with
             | Abstract_const_eff(_,_, const_eff, true) -> [const_eff]
             | Abstract_const_eff(_,_,_,false) -> 
@@ -220,16 +224,16 @@ let rec f
                 sprintf "\n*** cannot access this extern constant value"))
             | x -> [ x ]
         )
-              (* opérateur lazzy *)
+      (* opérateur lazzy *)
       | WITH_n(a0,a1,a2) -> (
         match (rec_eval_const a0) with
             [ Bool_const_eff true] -> rec_eval_const a1
           | [ Bool_const_eff false] -> rec_eval_const a2
           | x -> type_error_const x "bool"
       )
-              (* mettre à plat la liste des args *)
+      (* mettre à plat la liste des args *)
       | TUPLE_n -> ( List.flatten (List.map rec_eval_const args))
-              (* les tableaux de tuples sont interdits *)
+      (* les tableaux de tuples sont interdits *)
       | HAT_n -> (
         match args with
           | [cexp; szexp] -> (
@@ -297,7 +301,7 @@ let rec f
             | [Array_const_eff (l, t)] -> (l, t) 
             | x -> type_error_const x "some array"
         in
-                    (* évalue la slice *)
+        (* évalue la slice *)
         try
           let sliceff = eval_array_slice env sl lxm in
           make_slice_const elts typelts sliceff
@@ -321,7 +325,6 @@ let rec f
         )
 
       | CALL_n _ -> not_evaluable_construct "node call"
-      | MERGE_n _ -> not_evaluable_construct "merge"
       | WHEN_n _ -> not_evaluable_construct "when"
       | FBY_n -> not_evaluable_construct "fby"
       | ARROW_n -> not_evaluable_construct "->"
@@ -334,17 +337,17 @@ let rec f
           let effargs =  (List.map rec_eval_const args) in
           LicEvalConst.f env op.it lxm [] effargs
         else
-                    (* Well, it migth be possible after all... TODO *)
+          (* Well, it migth be possible after all... TODO *)
           not_evaluable_construct (op2string op.it)
             
             
   ) (* FIN DE : eval_by_pos_const *)
-      (*-------------------------------------*)
-      (* Fonction récursive secondaire       *)
-      (*-------------------------------------*)
-      (* -> Eval. d'une expression spéciale  *)
-      (* "par nom"                           *)
-      (*-------------------------------------*)
+  (*-------------------------------------*)
+  (* Fonction récursive secondaire       *)
+  (*-------------------------------------*)
+  (* -> Eval. d'une expression spéciale  *)
+  (* "par nom"                           *)
+  (*-------------------------------------*)
   and eval_by_name_const
       (namop : by_name_op)   (* l'operateur *)
   (lxm : Lxm.t)      (* source de l'opérateur *)
@@ -381,14 +384,14 @@ let rec f
                             ))
                   in 
                   List.iter treat_one_arg namargs ;
-                      (* pour l'instant, on ne traite que les constructions de struct *)
+                  (* pour l'instant, on ne traite que les constructions de struct *)
                   let teff = env.id2type opid lxm in
                   [make_struct_const teff arg_tab]
       )
   ) (* FIN DE : eval_by_name_const *)
-      (*-------------------------------------*)
-      (* Corps de la fonction principale      *)
-      (*-------------------------------------*)
+  (*-------------------------------------*)
+  (* Corps de la fonction principale      *)
+  (*-------------------------------------*)
   in 
   rec_eval_const vexp 
 ) (* fin de f *)
@@ -508,17 +511,17 @@ and eval_array_slice (env : Lic.id_solver) (sl : slice_info) (lxm : Lxm.t) =
       let msg = sprintf "bad array slice [%d..%d] step %d" first_ix last_ix step in
       raise (EvalArray_error msg)
     else
-        (* index relatif du dernier *)
+      (* index relatif du dernier *)
       let last_rel = abs (last_ix-first_ix) in
       let abs_step = abs step in
-          (* le dernier est-il pris dans la tranche ? *)
+      (* le dernier est-il pris dans la tranche ? *)
       if ((last_rel mod abs_step) <> 0) then
         warning lxm (sprintf "last index out of slice [%d..%d step %d]" 
                        first_ix last_ix step);
       let width = 1 + last_rel/abs_step in
-          (* on force le dernier a être dans la tranche *)
+      (* on force le dernier a être dans la tranche *)
       let real_last_ix = first_ix + (width-1) * step in
-            (* (first_ix,last_ix,step,width) *)
+      (* (first_ix,last_ix,step,width) *)
       {
         se_first = first_ix;
         se_last = real_last_ix;
diff --git a/src/evalType.ml b/src/evalType.ml
index 5c014ec0..8c4751b7 100644
--- a/src/evalType.ml
+++ b/src/evalType.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 29/01/2013 (at 15:07) by Erwan Jahier> *)
+(** Time-stamp: <modified the 31/01/2013 (at 09:39) by Erwan Jahier> *)
  
   
 open AstPredef
@@ -50,13 +50,19 @@ let rec (f : Lic.id_solver -> Lic.val_exp -> Lic.val_exp * Lic.type_ list) =
           in
           ve, tl
         )
-        | CallByNameLic ({it=nmop; src=lxm}, nmargs ) ->
+        | CallByNameLic ({it=nmop; src=lxm}, nmargs ) -> (
           let nmargs, tl = 
             try eval_by_name_type id_solver nmop lxm nmargs
             with EvalConst_error msg ->
               raise (Compile_error(lxm, "\n*** can't eval constant: "^msg))
           in
           CallByNameLic ({it=nmop; src=lxm}, nmargs ), tl
+        )
+        | Merge ({it=clk ; src=lxm}, nmargs ) -> (
+          try eval_merge id_solver clk lxm nmargs
+          with EvalConst_error msg ->
+            raise (Compile_error(lxm, "\n*** can't eval constant: "^msg))
+        )
     in
     { ve_core = ve_core; ve_typ = tl ; ve_clk = ve.ve_clk }, tl
       
@@ -74,13 +80,13 @@ and eval_by_pos_type
   match posop with
     | PREDEF_CALL (op,sargs) -> (
       let args, targs = List.split (List.map (f id_solver) args) in
-          (* ICI pas de matches possible ? *)
+      (* ICI pas de matches possible ? *)
       let tve = LicEvalType.f id_solver op lxm sargs targs in
       None, args, tve
     )
     | Lic.CALL nkf -> 
       let node_key = nkf.it in
-         (* let node_exp_eff = id_solver.id2node node_key lxm in *)
+      (* let node_exp_eff = id_solver.id2node node_key lxm in *)
       let node_exp_eff = UglyStuff.node_exp_of_node_key id_solver node_key lxm in
       let (lti, lto) = Lic.profile_of_node_exp node_exp_eff in
       let args, t_argsl = List.split (List.map (f id_solver) args) in
@@ -89,7 +95,7 @@ and eval_by_pos_type
       let _ = if llti <> lt_args then
           raise_arity_error "" lt_args llti
       in
-         (* lti = expecteds, t_args = given *)
+      (* lti = expecteds, t_args = given *)
       let tmatches = try UnifyType.is_matched lti t_args 
         with UnifyType.Match_failed msg -> (
           let msg' = Printf.sprintf 
@@ -211,7 +217,7 @@ and eval_by_pos_type
       Some(Lic.HAT(size,ceff)), [], tl
         
     | Lic.ARRAY(args) ->
-          (* check that args are of the same type *)
+      (* check that args are of the same type *)
       let args, targs = List.split (List.map (f id_solver) args) in
       let teff_elt =
         List.fold_left
@@ -267,22 +273,18 @@ and eval_by_pos_type
         | [teff] -> None, args, teff
         | _ -> raise_arity_error "" (List.length targs) 1
     )
-    | Lic.MERGE _ -> finish_me "merge"; assert false
 
 
 (**
    Juste pour les structures ...
 *)
-and eval_by_name_type
-    (id_solver:  Lic.id_solver)
-  (namop: Lic.by_name_op)
-  (lxm: Lxm.t)
-  (namargs: (Ident.t Lxm.srcflagged * Lic.val_exp) list )
-(* renvoie la lsite de modif de champs compilée + le type du résultat *)
+and eval_by_name_type (id_solver:  Lic.id_solver) (namop: Lic.by_name_op) (lxm: Lxm.t)
+    (namargs: (Ident.t Lxm.srcflagged * Lic.val_exp) list )
+  (* renvoie la liste de modif de champs compilée + le type du résultat *)
   :  (Ident.t Lxm.srcflagged * Lic.val_exp) list * Lic.type_ list
-    = match namop with
-
-      | Lic.STRUCT_anonymous -> 
+    = 
+  match namop with
+    | Lic.STRUCT_anonymous -> 
       (* ??? comment faire ici pour recuperer son type ???
          il faut que je recherche à l'aide des noms de champs
          le type structure qui va bien !
@@ -291,27 +293,67 @@ and eval_by_name_type
          - rajouter dans la table a sa creation une entree dont le nom
          est composé du nom des champs ?
       *)
-        finish_me "anonymous struct not yet supported"; 
-        assert false
-          
-      | Lic.STRUCT (pn,opid) -> 
-        let struct_type = id_solver.id2type opid lxm in
-        match struct_type with
-          | Struct_type_eff(sn, fl) -> 
-            let do_field_assign (fn, fv) =
+      finish_me "anonymous struct not yet supported"; 
+      assert false
+        
+    | Lic.STRUCT (pn,opid) -> 
+      let struct_type = id_solver.id2type opid lxm in
+      match struct_type with
+        | Struct_type_eff(sn, fl) -> 
+          let do_field_assign (fn, fv) =
             (* traitement d'un ''field_name  = field_value'' *)
-              let (ft,fopt) = try
-                                List.assoc fn.it fl
-                with Not_found -> 
-                  let msg = "type error: bad field"^(Ident.to_string fn.it) in
-                  raise (Compile_error(lxm, msg))
-              in
+            let (ft,fopt) = 
+              try List.assoc fn.it fl
+              with Not_found -> 
+                let msg = "type error: bad field"^(Ident.to_string fn.it) in
+                raise (Compile_error(lxm, msg))
+            in
             (* let's check the type of fv *)
-              let fv, fv_type = f id_solver fv in
-              if fv_type = [ft] then (fn,fv)
-              else raise_type_error fv_type [ft]
-                ("while checking struct field "^(Lxm.details fn.src))
+            let fv, fv_type = f id_solver fv in
+            if fv_type = [ft] then (fn,fv)
+            else raise_type_error fv_type [ft]
+              ("while checking struct field "^(Lxm.details fn.src))
+          in
+          let namargs = List.map do_field_assign namargs
+          in (namargs, [struct_type])
+        | _ -> raise (Compile_error(lxm, "type error: a structure is expected"))
+
+and (eval_merge : Lic.id_solver -> Lic.val_exp -> Lxm.t -> 
+     (Ident.long Lxm.srcflagged * Lic.val_exp) list -> Lic.val_exp_core * Lic.type_ list) =
+  fun id_solver clk lxm nargs -> 
+    let clk, tclk = f id_solver clk in
+    let nargs,tl_opt = 
+      List.fold_left
+        (fun (acc,tl_opt) (id,ve) ->
+          (* check that id is of type tclk *)
+          let id_type = 
+            let c = id_solver.id2const (Ident.idref_of_long id.it) id.src in
+            type_of_const c
+          in
+          if [id_type] <> tclk then (
+            let msg = "type error in a merge branch: " ^
+              (Lic.string_of_type (List.hd tclk)) ^ " was expected, but " ^
+              (Lic.string_of_type id_type) ^ " was provided. " 
             in
-            let namargs = List.map do_field_assign namargs
-            in (namargs, [struct_type])
-          | _ -> raise (Compile_error(lxm, "type error: a structure is expected"))
+            raise (Compile_error(lxm, "type error: "^msg))
+          );
+          let ve,tl = f id_solver ve in
+          let tl_opt = 
+            match tl_opt with
+              | None -> Some tl
+              | Some tl' -> 
+                if tl = tl' then tl_opt else
+                  let tl2str tl = String.concat "*" (List.map Lic.string_of_type tl) in
+                  let msg = "types differ in merge branches: " ^
+                    (tl2str tl) ^ " <> " ^ (tl2str tl')
+                  in 
+                  raise (Compile_error(lxm, "type error: "^msg))
+          in
+          (id,ve)::acc, tl_opt
+        )
+        ([],None)
+        nargs
+    in
+    let tl = match tl_opt with Some tl -> tl | None -> assert false in    
+     Merge({it=clk; src=lxm}, nargs), tl
+
diff --git a/src/evalType.mli b/src/evalType.mli
index e65be8c2..f5bd8e36 100644
--- a/src/evalType.mli
+++ b/src/evalType.mli
@@ -1,9 +1,9 @@
-(* Time-stamp: <modified the 13/12/2012 (at 11:49) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 11:10) by Erwan Jahier> *)
 
 (** Static evaluation of types. *)
  
 (** Evaluates the type of an expression, and return a val_exp with
-    its "typ" field updated (and ditto for the type of its sub expr).
+    its "type_" field updated (and ditto for the type of its sub expr).
     
 Modif 12/07 :
 - Travaille au niveau Lic. donc on vire Lic.id_solver qui
diff --git a/src/l2lCheckLoops.ml b/src/l2lCheckLoops.ml
index c8698c7c..8867e468 100644
--- a/src/l2lCheckLoops.ml
+++ b/src/l2lCheckLoops.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 23/01/2013 (at 17:29) by Erwan Jahier> *)
+(* Time-stamp: <modified the 31/01/2013 (at 09:37) by Erwan Jahier> *)
 
 open Lxm
 open Errors
@@ -24,6 +24,9 @@ and
       | CallByPosLic (by_pos_op, OperLic vel) -> 
         let s = vars_of_by_pos_op s by_pos_op.it in
         List.fold_left vars_of_exp s vel
+      | Merge(ce, l) -> 
+        let s = vars_of_exp s ce.it in
+        List.fold_left (fun s (_,ve) -> vars_of_exp s ce.it) s l
       | CallByNameLic(_, _) -> s
 and 
     vars_of_by_pos_op s = function
@@ -32,7 +35,6 @@ and
       | WITH ve 
       | HAT(_,ve) -> vars_of_exp s ve 
       | ARRAY(vel) -> List.fold_left vars_of_exp s vel 
-      | MERGE(id,idl) -> List.fold_left (fun s id -> IdSet.add id s) s (id::idl) 
       | ARRAY_SLICE _ | ARRAY_ACCES _  | ARROW | FBY | CURRENT | WHEN _ 
       | STRUCT_ACCESS _
       | TUPLE | CONCAT | CONST_REF _ | CALL _ -> s
diff --git a/src/l2lExpandArrays.ml b/src/l2lExpandArrays.ml
index 5d612b99..8839ada6 100644
--- a/src/l2lExpandArrays.ml
+++ b/src/l2lExpandArrays.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 29/01/2013 (at 10:58) by Erwan Jahier> *)
+(** Time-stamp: <modified the 31/01/2013 (at 09:53) by Erwan Jahier> *)
 
 (* Replace structures and arrays by as many variables as necessary.
    Since structures can be recursive, it migth be a lot of new variables...
@@ -250,6 +250,7 @@ and (var_trees_of_val_exp :
     in
     let loop = var_trees_of_val_exp lctx acc in
     match ve.ve_core with
+      | Merge(ce,cl) -> assert false
       | CallByPosLic (by_pos_op, OperLic vel) -> (
         let lxm = by_pos_op.src in
         let by_pos_op = by_pos_op.it in
@@ -325,7 +326,7 @@ and (var_trees_of_val_exp :
               raise (Errors.Compile_error(lxm, msg))
           ) 
           | WITH(_) | HAT(_) | CONCAT | ARRAY(_) 
-          | PREDEF_CALL _ | CALL _  | MERGE _ 
+          | PREDEF_CALL _ | CALL _ 
           | PRE | ARROW | FBY | CURRENT | WHEN _ | TUPLE -> (
             (* Create a new loc var to alias such expressions *)
             let acc, nloc = make_new_loc lctx lxm acc ve in
@@ -435,6 +436,12 @@ and expand_val_exp_list lctx acc vel =
 and (expand_val_exp: local_ctx -> acc -> val_exp -> val_exp * acc) =
   fun lctx acc ve ->
     match ve.ve_core with
+      | Merge(ce,cl) -> 
+        let left,vel = List.split cl in
+        let vel,acc = expand_val_exp_list lctx acc vel in
+        let cl = List.combine left vel in
+        let newve =  { ve with ve_core = Merge(ce,cl) } in
+        newve, acc
       | CallByPosLic (by_pos_op, OperLic vel) -> 
         let lxm = by_pos_op.src in
         let by_pos_op = by_pos_op.it in
@@ -454,7 +461,7 @@ and (expand_val_exp: local_ctx -> acc -> val_exp -> val_exp * acc) =
               let vel,acc = expand_val_exp_list lctx acc vel in
               TUPLE, acc, vel
 		          
-            | CONCAT | PREDEF_CALL _ | CALL _  | MERGE _
+            | CONCAT | PREDEF_CALL _ | CALL _  
             | PRE | ARROW | FBY | CURRENT | WHEN _ | TUPLE 
               -> 
               let vel,acc = expand_val_exp_list lctx acc vel in
@@ -478,7 +485,7 @@ and (expand_val_exp: local_ctx -> acc -> val_exp -> val_exp * acc) =
         (*               EvalClock.copy newve ve *)
         (*             ); *)
         newve, acc
-          
+
       | CallByNameLic(by_name_op, fl_val) ->
 	     (* we want to print fields in the order of the type.
 	        Moreover, we have to deal with default value.
diff --git a/src/l2lExpandNodes.ml b/src/l2lExpandNodes.ml
index 83ca5f7a..ab2ae431 100644
--- a/src/l2lExpandNodes.ml
+++ b/src/l2lExpandNodes.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 18/01/2013 (at 15:36) by Erwan JAHIER> *)
+(* Time-stamp: <modified the 31/01/2013 (at 09:39) by Erwan Jahier> *)
 
 
 open Lxm
@@ -93,7 +93,7 @@ and (subst_in_val_exp : subst -> val_exp -> val_exp) =
                 let cv = var.var_name_eff in
                 WHEN(AstCore.NamedClock  {src=lxm;it=(cc,cv)})
               | PREDEF_CALL _| CALL _ | PRE | ARROW | FBY | CURRENT  | TUPLE
-              | CONCAT | STRUCT_ACCESS _ | ARRAY_ACCES _ | ARRAY_SLICE _  | MERGE _ 
+              | CONCAT | STRUCT_ACCESS _ | ARRAY_ACCES _ | ARRAY_SLICE _ 
                 (*               | CONST _ *)
                 -> by_pos_op
             in
@@ -102,6 +102,9 @@ and (subst_in_val_exp : subst -> val_exp -> val_exp) =
 	       | CallByNameLic(by_name_op, fl) ->
             let fl = List.map (fun (id,ve) -> (id, subst_in_val_exp s ve)) fl in
             CallByNameLic(by_name_op, fl) 
+          | Merge(ce,cl) ->
+            let cl = List.map (fun (id,ve) -> (id, subst_in_val_exp s ve)) cl in
+            Merge(flagit (subst_in_val_exp s ce.it) ce.src,cl)
     }
     in
     newve
@@ -234,9 +237,9 @@ and (expand_eq_aux: local_ctx -> Lic.eq_info -> acc option)=
               Some acc
           )
       | CallByPosLic (_, _)
+      | Merge (_, _) 
       | CallByNameLic (_, _) -> None
 
-
 and (expand_assert : local_ctx -> acc -> val_exp srcflagged -> acc) =
   fun lctx (a_acc,e_acc,v_acc) ve -> 
     let lxm = ve.src in
diff --git a/src/l2lRmPoly.ml b/src/l2lRmPoly.ml
index 159e0ec4..0a25fddb 100644
--- a/src/l2lRmPoly.ml
+++ b/src/l2lRmPoly.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 18/01/2013 (at 18:20) by Erwan JAHIER> *)
+(* Time-stamp: <modified the 31/01/2013 (at 09:38) by Erwan Jahier> *)
 
 (*
 Source 2 source transformation :
@@ -124,6 +124,9 @@ let rec doit (inprg : LicPrg.t) : LicPrg.t =
         | CallByNameLic (namop, idops) ->
           let idops' = List.map (fun (id, ve) -> (id, (do_exp m) ve)) idops in
           CallByNameLic (namop, idops')
+        | Merge (ce,cl) -> 
+          let cl = List.map (fun (id, ve) -> (id, (do_exp m) ve)) cl in
+          Merge (flagit (do_exp m ce.it) ce.src, cl)
       in
       { e with ve_core = core'; ve_typ = typ' }
   (* TRAITEMENT DES PARAMS STATIQUES *)
diff --git a/src/l2lSplit.ml b/src/l2lSplit.ml
index 14bebe5c..188a81e7 100644
--- a/src/l2lSplit.ml
+++ b/src/l2lSplit.ml
@@ -178,6 +178,7 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp ->
        is no "when"...
     *)
     match ve.ve_core with
+      | Merge(ce,cl) ->  ve, ([],[]) (* Should we deal with complex flow in merge ? *)
       | CallByPosLic({it=Lic.VAR_REF _}, _) -> ve, ([],[])
       | CallByPosLic({it=Lic.CONST_REF _}, _) -> ve, ([],[])
       | CallByPosLic({src=lxm;it=Lic.PREDEF_CALL(AstPredef.TRUE_n,_)}, _) 
diff --git a/src/lexer.mll b/src/lexer.mll
index f0753587..fbeb0db2 100644
--- a/src/lexer.mll
+++ b/src/lexer.mll
@@ -66,6 +66,7 @@ Hashtbl.add keywords "is"         (function x -> TK_IS x) ;;
 Hashtbl.add keywords "body"       (function x -> TK_BODY x) ;;
 Hashtbl.add keywords "end"        (function x -> TK_END x) ;;
 Hashtbl.add keywords "include"    (function x -> TK_INCLUDE x) ;;
+Hashtbl.add keywords "merge"      (function x -> TK_MERGE x) ;;
 
 let is_a_keyword ( s: string ) = (
         try
diff --git a/src/lic.ml b/src/lic.ml
index e1f4b46e..fd7457e8 100644
--- a/src/lic.ml
+++ b/src/lic.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 29/01/2013 (at 15:05) by Erwan Jahier> *)
+(* Time-stamp: <modified the 31/01/2013 (at 10:14) by Erwan Jahier> *)
 
 (** Define the Data Structure representing Compiled programs. *)
 
@@ -187,9 +187,10 @@ and val_exp =
    pour typer l'appel de l'opérateur ?
 *)
 and val_exp_core =
-  | CallByPosLic of (by_pos_op srcflagged * operands)
+  | CallByPosLic  of (by_pos_op srcflagged * operands)
   | CallByNameLic of
       (by_name_op srcflagged * (Ident.t srcflagged * val_exp) list)
+  | Merge of val_exp srcflagged * (Ident.long srcflagged * val_exp) list
 
 and operands = OperLic of val_exp list
 
@@ -223,7 +224,6 @@ and by_pos_op =
 
   | ARRAY_ACCES of int
   | ARRAY_SLICE of slice_info
-  | MERGE       of (Ident.t * (Ident.t list))  
 
 
 (*---------------------------------------------------------------------
diff --git a/src/licDump.ml b/src/licDump.ml
index c82bdd34..50908c20 100644
--- a/src/licDump.ml
+++ b/src/licDump.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 29/01/2013 (at 15:59) by Erwan Jahier> *)
+(* Time-stamp: <modified the 31/01/2013 (at 10:27) by Erwan Jahier> *)
 
 open Errors
 open Printf
@@ -264,7 +264,6 @@ and (string_of_by_pos_op_eff: Lic.by_pos_op srcflagged -> Lic.val_exp list -> st
   fun posop vel -> 
     let tuple vel = (String.concat ", " (List.map string_of_val_exp_eff vel)) in
     let tuple_par vel = "(" ^ (tuple vel) ^ ")" in
-    let tuple_underscore vel = String.concat "_" (List.map string_of_val_exp_eff vel) in
     let tuple_square vel = 
       "[" ^ (String.concat ", " (List.map string_of_val_exp_eff vel)) ^ "]"
     in
@@ -396,8 +395,6 @@ and (string_of_by_pos_op_eff: Lic.by_pos_op srcflagged -> Lic.val_exp list -> st
           (string_of_val_exp_eff ve1) ^ (string_of_slice_info_eff si_eff)
 
         | ARRAY_SLICE(_), _ -> assert false (* todo *)
-        | MERGE _, _ -> assert false (* todo *)
-        (*  | ITERATOR _, _ -> assert false (* todo *) *)
 
         (* Cannot happen *)
         | ARROW, _ -> assert false
@@ -439,17 +436,26 @@ and string_of_val_exp_eff_core ve_core =
       (* ICI : on pourrait afficher en commentaire l'éventuel type_matches ? *)
       (string_of_by_pos_op_eff by_pos_op_eff vel) 
 
+    | Merge (ve, cl) -> (
+      "merge " ^ (string_of_val_exp_eff ve.it) ^ " " ^
+        (String.concat " " 
+           (List.map 
+              (fun (id,ve) -> "| "^(dump_long id.it) ^ " => " ^ (string_of_val_exp_eff ve)^" ")
+              cl
+           )
+        )
+    )
     | CallByNameLic(by_name_op_eff, fl) -> 
       (match by_name_op_eff.it with
         | STRUCT (pn,idref) -> (
           match Ident.pack_of_idref idref with
-            | Some pn -> 
-              Ident.string_of_idref idref
+            | Some pn ->  Ident.string_of_idref idref
             | None -> 
               let idref = Ident.make_idref pn (Ident.of_idref idref) in
               Ident.string_of_idref idref
         )
-        | STRUCT_anonymous -> "") ^
+        | STRUCT_anonymous -> ""          
+      ) ^ (
         "{" ^ (String.concat ";" 
                  (List.map 
                     (fun (id,veff) -> 
@@ -458,7 +464,7 @@ and string_of_val_exp_eff_core ve_core =
                         (if is_a_tuple veff then ("("^ str^")") else str)
                     )
                     fl)) ^
-        "}"
+          "}")
 
 
 and wrap_long_line str = 
@@ -620,11 +626,11 @@ and (string_of_ident_clk : Ident.clk -> string) =
         | "True" -> (Ident.to_string v)
         | "False" ->  "not " ^ (Ident.to_string v)
         | _ -> 
-            if !Global.lv4 then 
-              raise (Errors.Global_error 
-                       ("*** Cannot generate V4 style Lustre for programs with enumerated "^
-                          "clocks (yet), sorry."))
-            else 
+(*             if !Global.lv4 then  *)
+(*               raise (Errors.Global_error  *)
+(*                        ("*** Cannot generate V4 style Lustre for programs with enumerated "^ *)
+(*                           "clocks (yet), sorry.")) *)
+(*             else  *)
               Ident.string_of_clk clk
     in
       clk_exp_str
diff --git a/src/licEvalType.ml b/src/licEvalType.ml
index 962277f9..62936a90 100644
--- a/src/licEvalType.ml
+++ b/src/licEvalType.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 20/12/2012 (at 10:59) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 13:49) by Erwan Jahier> *)
 
 open AstPredef
 open Lxm
@@ -25,21 +25,22 @@ let (type_error : Lic.type_ list -> string -> 'a) =
                    else (" whereas\n*** type '" ^expect^"' was expected")))))
 
 let raise_type_error
-   (prov:  Lic.type_ list)
-   (expec:  Lic.type_ list)
-   (msg: string)
-= raise (EvalType_error(
-   let pr = Lic.string_of_type_list prov in
-   let ex = Lic.string_of_type_list expec in
-   (
-      "\n*** type '" ^ pr ^ "' was provided" ^ (
-         if ex = "" then "" 
-         else (" whereas\n*** type '" ^ex^"' was expected")
-      ) ^ (
-         if msg = "" then "" else ("\n*** " ^ msg)
+    (prov:  Lic.type_ list)
+    (expec:  Lic.type_ list)
+    (msg: string)
+    = raise (EvalType_error(
+      let pr = Lic.string_of_type_list prov in
+      let ex = Lic.string_of_type_list expec in
+      (
+        "\n*** type '" ^ pr ^ "' was provided" ^ (
+          if ex = "" then "" 
+          else (" whereas\n*** type '" ^ex^"' was expected")
+        ) ^ (
+          if msg = "" then "" else ("\n*** " ^ msg)
+        )
       )
-   )
-))
+    )
+    )
 
 let raise_arity_error (msg:string) (get:int) (expect:int) =
     raise (EvalType_error(
@@ -85,24 +86,24 @@ let (type_to_array_type: Lic.var_info list -> int -> (Ident.t * Lic.type_) list)
 
 (* Extract the node and the constant from a list of static args *)
 let get_node_and_int_const
-   (lxm: Lxm.t)
-   (sargs: Lic.static_arg list)
-: (Lic.node_key * int) =
-      
-   match sargs with
-   | [ NodeStaticArgLic (_,nk); ConstStaticArgLic carg ] -> (
+    (lxm: Lxm.t)
+    (sargs: Lic.static_arg list)
+    : (Lic.node_key * int) =
+  
+  match sargs with
+    | [ NodeStaticArgLic (_,nk); ConstStaticArgLic carg ] -> (
       let c = match carg with
-      | (_, Int_const_eff c) -> c
-      | (_, Abstract_const_eff(_,_,Int_const_eff c, true)) -> c
-      | (_, zcl) -> 
-         let msg = "immediate integer expected, but get \""
+        | (_, Int_const_eff c) -> c
+        | (_, Abstract_const_eff(_,_,Int_const_eff c, true)) -> c
+        | (_, zcl) -> 
+          let msg = "immediate integer expected, but get \""
             ^ (LicDump.string_of_const_eff zcl)
             ^ "\"\n"
-         in raise (Compile_error(lxm, msg))
+          in raise (Compile_error(lxm, msg))
       in
       (nk, c)
-   )
-   | _ ->
+    )
+    | _ ->
       let msg = "*** an integer and a node are expected.\n" in
       raise (Compile_error(lxm, msg))
 
@@ -114,45 +115,45 @@ let get_id_type vi = vi.var_name_eff, vi.var_type_eff
 
 
 let condact_profile
-   (id_solver: Lic.id_solver)
-   (lxm: Lxm.t)
-   (sargs: Lic.static_arg list)
-: Lic.node_profile =
-try
-(*--------------------------------------------------------------------
-CONDACT
-----------------------------------------------------------------------
- Given : 
-   - A node n of type:       a_1 * ... *  a_n ->  b_1 * ... * b_k
-   - A (tuple) const:                             b_1 * ... * b_k
-Gen a node of type :  bool * a_1 * ... *  a_n ->  b_1 * ... * b_k  
----------------------------------------------------------------------*)
-   let nk, dflt = 
+    (id_solver: Lic.id_solver)
+    (lxm: Lxm.t)
+    (sargs: Lic.static_arg list)
+    : Lic.node_profile =
+  try
+   (*--------------------------------------------------------------------
+     CONDACT
+     ----------------------------------------------------------------------
+     Given : 
+     - A node n of type:       a_1 * ... *  a_n ->  b_1 * ... * b_k
+     - A (tuple) const:                             b_1 * ... * b_k
+     Gen a node of type :  bool * a_1 * ... *  a_n ->  b_1 * ... * b_k  
+     ---------------------------------------------------------------------*)
+    let nk, dflt = 
       match sargs with
-      | [NodeStaticArgLic(_,nk) ; ConstStaticArgLic(_,dflt)] -> nk, dflt
-      | _ -> assert false
-   in
+        | [NodeStaticArgLic(_,nk) ; ConstStaticArgLic(_,dflt)] -> nk, dflt
+        | _ -> assert false
+    in
    (* recherche le profil de nk ... *)
-   let ne = UglyStuff.node_exp_of_node_key id_solver nk lxm in
-   let inlist = ne.inlist_eff in
-   let outlist = ne.outlist_eff in
+    let ne = UglyStuff.node_exp_of_node_key id_solver nk lxm in
+    let inlist = ne.inlist_eff in
+    let outlist = ne.outlist_eff in
 
    (* dflt_types doit êre compatiple avec outlist *)
-   let dflt_types = types_of_const dflt in
-   let dl = List.length dflt_types in
-   let ol = List.length outlist in
-   Verbose.printf ~level:3 "  condact_profile: dflt=%s\n" (string_of_const_eff dflt);
-   let _ = if (dl <> ol) then
-      raise_arity_error " in condact default arg" dl ol in
-   let out_types = List.map (fun x -> x.var_type_eff) outlist in
-
-   let _ = if dflt_types <> out_types then
-      raise_type_error dflt_types out_types "in condact default arg" 
-   in
+    let dflt_types = types_of_const dflt in
+    let dl = List.length dflt_types in
+    let ol = List.length outlist in
+    Verbose.printf ~level:3 "  condact_profile: dflt=%s\n" (string_of_const_eff dflt);
+    let _ = if (dl <> ol) then
+        raise_arity_error " in condact default arg" dl ol in
+    let out_types = List.map (fun x -> x.var_type_eff) outlist in
+
+    let _ = if dflt_types <> out_types then
+        raise_type_error dflt_types out_types "in condact default arg" 
+    in
    (* ok pour les args statiques, le profil dynamique est : *)
-   (("_", Bool_type_eff)::(List.map get_id_type inlist), List.map get_id_type outlist)
-with
-| EvalType_error msg -> raise (Compile_error(lxm, "type error: "^msg))
+    (("_", Bool_type_eff)::(List.map get_id_type inlist), List.map get_id_type outlist)
+  with
+    | EvalType_error msg -> raise (Compile_error(lxm, "type error: "^msg))
 
 
 let map_profile
@@ -391,54 +392,54 @@ let make_simple_node_exp_eff
 
 (* exported *)
 let f 
-   (id_solver: Lic.id_solver)
-   (op: op)
-   (lxm: Lxm.t)
-   (sargs: Lic.static_arg list)
-: typer = fun ll ->
+    (id_solver: Lic.id_solver)
+    (op: op)
+    (lxm: Lxm.t)
+    (sargs: Lic.static_arg list)
+    : typer = fun ll ->
       match op with
         | IF_n  ->  (
             (* VERRUE 1 *)
             (* j'arrive pas a traiter le if de facon generique (pour l'instant...) 
                a cause du fait que le if peut renvoyer un tuple.
             *)
-            match ll with
-              | [[Bool_type_eff]; t; e] -> 
-                  if t = e then t else 
-                    (type_error (List.flatten [[Bool_type_eff]; t; e]) "bool*any*any")
-              | x -> (raise_arity_error "" (List.length x) 3)
-          )
+          match ll with
+            | [[Bool_type_eff]; t; e] -> 
+              if t = e then t else 
+                (type_error (List.flatten [[Bool_type_eff]; t; e]) "bool*any*any")
+            | x -> (raise_arity_error "" (List.length x) 3)
+        )
         | (NOR_n | DIESE_n) -> 
             (* VERRUE 2 : cf XXX above: therefore i define an ad-hoc
                check for them.  *)
-            let check_nary_iter acc ceff =
-              match ceff with (Bool_type_eff) -> 
-                acc | _ -> (type_error [ceff] "bool")
-            in
-              List.fold_left check_nary_iter () (List.flatten ll);
-              [Bool_type_eff]
+          let check_nary_iter acc ceff =
+            match ceff with (Bool_type_eff) -> 
+              acc | _ -> (type_error [ceff] "bool")
+          in
+          List.fold_left check_nary_iter () (List.flatten ll);
+          [Bool_type_eff]
         | _ -> 
             (* general case *)
-            let node_eff = make_node_exp_eff id_solver (Some false) op lxm sargs in
-            let lti = List.map (fun v -> v.var_type_eff) node_eff.inlist_eff
-            and lto = List.map (fun v -> v.var_type_eff) node_eff.outlist_eff in
-            let l = List.flatten ll in
-              if (List.length l <> List.length lti) then
-                raise_arity_error "" (List.length l) (List.length lti)
-              else if (l = []) then
+          let node_eff = make_node_exp_eff id_solver (Some false) op lxm sargs in
+          let lti = List.map (fun v -> v.var_type_eff) node_eff.inlist_eff
+          and lto = List.map (fun v -> v.var_type_eff) node_eff.outlist_eff in
+          let l = List.flatten ll in
+          if (List.length l <> List.length lti) then
+            raise_arity_error "" (List.length l) (List.length lti)
+          else if (l = []) then
                 (* useless to call UnifyType.f ! *)
-                lto
-              else
-                match UnifyType.f lti l with
-                  | Equal  -> lto
-                  | Unif (TypeVar Any) -> 
-                      raise_type_error l lti
-                        "could not instanciate polymorphic type"
-                  | Unif (TypeVar AnyNum) -> 
-                      raise_type_error l lti
-                        "could not instanciate overloaded type"
-                  | Unif t -> 
-                      List.map (subst_type t) lto
-
-                  | Ko(str) -> 
-                      raise_type_error l lti str
+            lto
+          else
+            match UnifyType.f lti l with
+              | Equal  -> lto
+              | Unif (TypeVar Any) -> 
+                raise_type_error l lti
+                  "could not instanciate polymorphic type"
+              | Unif (TypeVar AnyNum) -> 
+                raise_type_error l lti
+                  "could not instanciate overloaded type"
+              | Unif t -> 
+                List.map (subst_type t) lto
+
+              | Ko(str) -> 
+                raise_type_error l lti str
diff --git a/src/licTab.ml b/src/licTab.ml
index a1f6511e..56690ff2 100644
--- a/src/licTab.ml
+++ b/src/licTab.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 23/01/2013 (at 10:14) by Erwan Jahier> *)
+(* Time-stamp: <modified the 31/01/2013 (at 09:40) by Erwan Jahier> *)
 
 
 open Lxm
@@ -557,13 +557,6 @@ and (type_check_do: t -> Ident.long -> Lxm.t -> AstTabSymbol.t -> bool ->
             let eff_fields = List.map make_field sti.st_flist in
             Struct_type_eff (n, eff_fields)
           )
-      in
-      let is_struct_or_array = match type_eff with 
-        | Array_type_eff(_)
-        | Struct_type_eff(_) -> true
-        | TypeVar _ | Bool_type_eff | Int_type_eff | Real_type_eff
-        | External_type_eff(_) | Abstract_type_eff(_) | Enum_type_eff(_) 
-          -> false
       in        
       type_eff
     )
@@ -1076,7 +1069,7 @@ and (node_check_interface_do: t -> Lic.node_key -> Lxm.t ->
                          Ast2lic.of_node node_id_solver node_alias
                        | CALL_n(node_alias) -> 
                          Ast2lic.of_node node_id_solver node_alias 
-                       | (MERGE_n _|ARRAY_SLICE_n _|ARRAY_ACCES_n _|STRUCT_ACCESS_n _
+                       | (ARRAY_SLICE_n _|ARRAY_ACCES_n _|STRUCT_ACCESS_n _
                              |IDENT_n _|ARRAY_n|HAT_n|CONCAT_n|WITH_n(_)|TUPLE_n|WHEN_n _
                              |CURRENT_n|FBY_n|ARROW_n|PRE_n)
                          -> 
diff --git a/src/lxm.ml b/src/lxm.ml
index ea97f138..03e4d940 100644
--- a/src/lxm.ml
+++ b/src/lxm.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 11/01/2013 (at 16:51) by Erwan Jahier> *)
+(* Time-stamp: <modified the 29/01/2013 (at 17:37) by Erwan Jahier> *)
 
 (** Common to lus2lic and lic2loc  *)
 
@@ -19,7 +19,7 @@ type t = {
         _line : int ;
         _cstart : int ;
         _cend : int;
-	_pragma : pragma list
+	     _pragma : pragma list
 }
 
 let str x = (x._str)
diff --git a/src/mainArgs.ml b/src/mainArgs.ml
index 8ed16933..578404a1 100644
--- a/src/mainArgs.ml
+++ b/src/mainArgs.ml
@@ -182,7 +182,7 @@ let mkoptab (opt:t) : unit = (
 
     mkopt opt
       ["-version"; "--version"]
-      (Arg.Unit(function _ -> Printf.fprintf stderr "%s\n" Version.str; exit 0))
+      (Arg.Unit(function _ -> Printf.fprintf stdout "%s\n" Version.str; exit 0))
       ["Print the current version and exit"]
     ;
     (* verbose *)
diff --git a/src/parser.mly b/src/parser.mly
index c4404947..dfd0bc56 100644
--- a/src/parser.mly
+++ b/src/parser.mly
@@ -822,8 +822,24 @@ Expression:
         /* Parenthesis or tuple */
         |  TK_OPEN_PAR ExpressionList TK_CLOSE_PAR
 				{ if (List.length $2 = 1) then (List.hd $2) else naryexp $1 TUPLE_n (List.rev $2) }
+        /* merge */
+        |  TK_MERGE Expression MergeCaseList
+                        { make_merge_op $1 $2 $3 }
         ;
 
+MergeCaseList:
+                MergeCase
+                { [$1] }
+        |       MergeCaseList MergeCase
+                { $2::$1 }
+        ;
+
+MergeCase:
+          TK_BAR IdentRef TK_ARROW Expression 
+            { ($2,$4) }
+        |  TK_BAR IdentRef TK_IMPL Expression 
+            { ($2,$4) }
+        ;
 
 ClockExpr:
     Ident TK_OPEN_PAR Ident TK_CLOSE_PAR 
@@ -935,6 +951,7 @@ StaticArg:
                       | IDENT_n idref -> {src=op.src ; it = StaticArgIdent idref }
                       | _ -> {src=op.src ; it= StaticArgConst $1}
                   ) 
+                | MERGE_n _
                 | CallByName _ -> 
                     print_string "*** unexpected static argument\n";
                     assert false
@@ -990,6 +1007,7 @@ ByNameStaticArg:
                       | IDENT_n idref -> {src=op.src ; it = StaticArgIdent idref }
                       | _ -> {src=op.src ; it= StaticArgConst $3}
                   ) 
+                | MERGE_n _
                 | CallByName _ -> 
                     print_string "*** unexpected static argument\n";
                     assert false
@@ -1052,9 +1070,9 @@ SimpleTuple:
 		| [x] -> x
 		| l  -> naryexp $1 TUPLE_n (List.rev l) )
 	}
-
+   ;
 SimpleExpList: SimpleExp
-		{ [$1] }
+	 	{ [$1] }
 	|   SimpleExpList TK_COMA SimpleExp
 		{ $3::$1 }
 	;
diff --git a/src/parserUtils.ml b/src/parserUtils.ml
index 10ddda43..633ba005 100644
--- a/src/parserUtils.ml
+++ b/src/parserUtils.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 21/12/2012 (at 10:29) by Erwan Jahier> *)
+(* Time-stamp: <modified the 30/01/2013 (at 18:05) by Erwan Jahier> *)
 
 (** *)
 
@@ -119,6 +119,14 @@ let flat_twice_flagged_list
 (**********************************************************************************)
 
 (** Utilitaries to build [val_exp]  *)
+(* let make_merge_op lxm (v:val_exp) (l:(Lxm.t * val_exp) list)  =  *)
+(*   let l = List.map (fun (lxm,ve) -> { it=Lxm.str lxm ; src = lxm },ve) l in *)
+(*    CallByPos( { src = lxm ; it = MERGE_n (v,l) }, Oper [] ) *)
+
+let make_merge_op lxm (enum_clk:val_exp) (l:(Ident.idref srcflagged * val_exp) list)  = 
+  let l = List.map (fun (idref,ve) -> idref,ve) l in
+  let enum_clk =  { src = lxm ; it = enum_clk } in
+  MERGE_n(enum_clk,l) 
 
 let make_predef_posop lxm op =
    let op = flagit op lxm in
diff --git a/src/unifyClock.ml b/src/unifyClock.ml
index efd15ef5..d6784f87 100644
--- a/src/unifyClock.ml
+++ b/src/unifyClock.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 29/01/2013 (at 16:24) by Erwan Jahier> *)
+(* Time-stamp: <modified the 31/01/2013 (at 09:38) by Erwan Jahier> *)
 
 
 open LicDump
@@ -201,6 +201,11 @@ let rec (apply_subst_val_exp : subst -> Lic.val_exp -> Lic.val_exp) =
             (fun (fn,ve) -> (fn, apply_subst_val_exp s ve)) fl
           in
           CallByNameLic(by_name_op, fl)
+        | Merge(ce,cl) -> 
+          let cl = List.map
+            (fun (fn,ve) -> (fn, apply_subst_val_exp s ve)) cl
+          in
+          Merge(flagit (apply_subst_val_exp s ce.it) ce.src, cl) 
     in
     let new_clk = List.map (apply_subst s) ve.ve_clk in
     let ve = { ve with ve_core = ve_core ; ve_clk = new_clk } in
diff --git a/test/lus2lic.log.ref b/test/lus2lic.log.ref
index 1127a670..737c551d 100644
--- a/test/lus2lic.log.ref
+++ b/test/lus2lic.log.ref
@@ -1,4 +1,4 @@
-Test Run By jahier on Tue Jan 29 16:19:02 2013
+Test Run By jahier on Thu Jan 31 17:42:30 2013
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -391,6 +391,12 @@ spawn ./lus2lic -ec -o /tmp/X1.ec should_work/X1.lus
 PASS: ./lus2lic {-ec -o /tmp/X1.ec should_work/X1.lus}
 spawn ./ec2c -o /tmp/X1.c /tmp/X1.ec
 PASS: ./ec2c {-o /tmp/X1.c /tmp/X1.ec}
+spawn ./lus2lic -o /tmp/is_stable.lic should_work/is_stable.lus
+PASS: ./lus2lic {-o /tmp/is_stable.lic should_work/is_stable.lus}
+spawn ./lus2lic -ec -o /tmp/is_stable.ec should_work/is_stable.lus
+PASS: ./lus2lic {-ec -o /tmp/is_stable.ec should_work/is_stable.lus}
+spawn ./ec2c -o /tmp/is_stable.c /tmp/is_stable.ec
+PASS: ./ec2c {-o /tmp/is_stable.c /tmp/is_stable.ec}
 spawn ./lus2lic -o /tmp/test_clash.lic should_work/test_clash.lus
 PASS: ./lus2lic {-o /tmp/test_clash.lic should_work/test_clash.lus}
 spawn ./lus2lic -ec -o /tmp/test_clash.ec should_work/test_clash.lus
@@ -535,6 +541,12 @@ spawn ./lus2lic -ec -o /tmp/packs.ec should_work/packs.lus
 PASS: ./lus2lic {-ec -o /tmp/packs.ec should_work/packs.lus}
 spawn ./ec2c -o /tmp/packs.c /tmp/packs.ec
 PASS: ./ec2c {-o /tmp/packs.c /tmp/packs.ec}
+spawn ./lus2lic -o /tmp/sincos.lic should_work/sincos.lus
+PASS: ./lus2lic {-o /tmp/sincos.lic should_work/sincos.lus}
+spawn ./lus2lic -ec -o /tmp/sincos.ec should_work/sincos.lus
+PASS: ./lus2lic {-ec -o /tmp/sincos.ec should_work/sincos.lus}
+spawn ./ec2c -o /tmp/sincos.c /tmp/sincos.ec
+PASS: ./ec2c {-o /tmp/sincos.c /tmp/sincos.ec}
 spawn ./lus2lic -o /tmp/newpacks.lic should_work/newpacks.lus
 PASS: ./lus2lic {-o /tmp/newpacks.lic should_work/newpacks.lus}
 spawn ./lus2lic -ec -o /tmp/newpacks.ec should_work/newpacks.lus
@@ -1309,12 +1321,6 @@ spawn ./lus2lic -ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus
 PASS: ./lus2lic {-ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus}
 spawn ./ec2c -o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec
 PASS: ./ec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec}
-spawn ./lus2lic -o /tmp/parametric_node2.lic should_work/parametric_node2.lus
-PASS: ./lus2lic {-o /tmp/parametric_node2.lic should_work/parametric_node2.lus}
-spawn ./lus2lic -ec -o /tmp/parametric_node2.ec should_work/parametric_node2.lus
-PASS: ./lus2lic {-ec -o /tmp/parametric_node2.ec should_work/parametric_node2.lus}
-spawn ./ec2c -o /tmp/parametric_node2.c /tmp/parametric_node2.ec
-PASS: ./ec2c {-o /tmp/parametric_node2.c /tmp/parametric_node2.ec}
 spawn ./lus2lic -o /tmp/after.lic should_work/after.lus
 PASS: ./lus2lic {-o /tmp/after.lic should_work/after.lus}
 spawn ./lus2lic -ec -o /tmp/after.ec should_work/after.lus
@@ -1417,6 +1423,14 @@ spawn ./lus2lic -ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus
 PASS: ./lus2lic {-ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus}
 spawn ./ec2c -o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec
 PASS: ./ec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec}
+spawn ./lus2lic -o /tmp/merge.lic should_work/merge.lus
+PASS: ./lus2lic {-o /tmp/merge.lic should_work/merge.lus}
+spawn ./lus2lic -ec -o /tmp/merge.ec should_work/merge.lus
+PASS: ./lus2lic {-ec -o /tmp/merge.ec should_work/merge.lus}
+spawn ./ec2c -o /tmp/merge.c /tmp/merge.ec
+syntax error     - at line 13
+syntax errors...
+FAIL: Try ec2c on the result: ./ec2c {-o /tmp/merge.c /tmp/merge.ec}
 spawn ./lus2lic -o /tmp/decl.lic should_work/decl.lus
 PASS: ./lus2lic {-o /tmp/decl.lic should_work/decl.lus}
 spawn ./lus2lic -ec -o /tmp/decl.ec should_work/decl.lus
@@ -1485,6 +1499,11 @@ spawn ./lus2lic -o /tmp/parametric_node.lic should_fail/type/parametric_node.lus
 *** can't eval type: bad array size, int expected but get real
 
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node.lic should_fail/type/parametric_node.lus}
+spawn ./lus2lic -o /tmp/merge_bad_enum.lic should_fail/type/merge_bad_enum.lus
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_enum.lus", line 8, col 9 to 13, token 'merge':
+*** type error: type error in a merge branch: merge_bad_enum::trival was expected, but merge_bad_enum::okko was provided. 
+
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_enum.lic should_fail/type/merge_bad_enum.lus}
 spawn ./lus2lic -o /tmp/condact2.lic should_fail/type/condact2.lus
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/condact2.lus", line 5, col 6 to 12, token 'condact':
 *** type error: 
@@ -1492,6 +1511,11 @@ spawn ./lus2lic -o /tmp/condact2.lic should_fail/type/condact2.lus
 ***    bool can't be matched by int
 
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/condact2.lic should_fail/type/condact2.lus}
+spawn ./lus2lic -o /tmp/merge_bad_type.lic should_fail/type/merge_bad_type.lus
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_type.lus", line 8, col 9 to 13, token 'merge':
+*** type error: types differ in merge branches: real <> int
+
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_type.lic should_fail/type/merge_bad_type.lus}
 spawn ./lus2lic -o /tmp/packages.lic should_fail/type/packages.lus
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/packages.lus", line 31, col 10 to 15, token 'preced':
 *** provided node for inter::preced is not compatible with its implementation: 
@@ -1514,11 +1538,22 @@ spawn ./lus2lic -o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus
 *** syntax error
 
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus}
+spawn ./lus2lic -o /tmp/merge_bad_clk.lic should_fail/type/merge_bad_clk.lus
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge_bad_clk.lus", line 9, col 11 to 14, token 'Pile':
+*** 
+*** clock error: The two following clocks are not unifiable:
+***	 on merge_bad_clk::Pile(clk) on base
+***	 on merge_bad_clk::Face(clk) on base
+
+
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_clk.lic should_fail/type/merge_bad_clk.lus}
 spawn ./lus2lic -o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/parametric_node4.lus", line 4, col 17 to 17, token 'n':
 *** can't eval type: bad array size, int expected but get real
 
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus}
+spawn ./lus2lic -o /tmp/merge_not_exhaustive.lic should_fail/type/merge_not_exhaustive.lus
+XPASS: Test bad programs (type): lus2lic {-o /tmp/merge_not_exhaustive.lic should_fail/type/merge_not_exhaustive.lus}
 spawn ./lus2lic -o /tmp/const2.lic should_fail/type/const2.lus
 *** Error in file "/home/jahier/lus2lic/test/should_fail/type/const2.lus", line 16, col 12 to 13, token '<>':
 *** type error: 
@@ -1539,6 +1574,11 @@ spawn ./lus2lic -o /tmp/ts02.lic should_fail/type/ts02.lus
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/ts02.lic should_fail/type/ts02.lus}
 spawn ./lus2lic -o /tmp/parametric_node2.lic should_fail/type/parametric_node2.lus
 XPASS: Test bad programs (type): lus2lic {-o /tmp/parametric_node2.lic should_fail/type/parametric_node2.lus}
+spawn ./lus2lic -o /tmp/merge.lic should_fail/type/merge.lus
+*** Error in file "/home/jahier/lus2lic/test/should_fail/type/merge.lus", line 8, col 14 to 14, token ':':
+*** syntax error
+
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge.lic should_fail/type/merge.lus}
 spawn ./lus2lic -o /tmp/when_enum.lic should_fail/clock/when_enum.lus
 *** Error in file "/home/jahier/lus2lic/test/should_fail/clock/when_enum.lus", line 10, col 12 to 15, token 'toto':
 *** 
@@ -1668,7 +1708,7 @@ spawn ./lus2lic -o /tmp/m.lic should_fail/semantics/m.lus
 *** syntax error
 
 XFAIL: Test bad programs (semantics): lus2lic {-o /tmp/m.lic should_fail/semantics/m.lus}
-testcase ./lus2lic.tests/non-reg.exp completed in 53 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 54 seconds
 Running ./lus2lic.tests/progression.exp ...
 spawn ./lus2lic -o /tmp/when_enum.out should_work/broken/when_enum.lus
 *** Error in file "/home/jahier/lus2lic/test/should_work/broken/when_enum.lus", line 10, col 12 to 15, token 'toto':
@@ -1680,7 +1720,13 @@ spawn ./lus2lic -o /tmp/when_enum.out should_work/broken/when_enum.lus
 
 FAIL: without any option: ./lus2lic {    -o /tmp/when_enum.out should_work/broken/when_enum.lus}
 spawn ./lus2lic -ec -o /tmp/when_enum.ec should_work/broken/when_enum.lus
-Error. *** Cannot generate V4 style Lustre for programs with enumerated clocks (yet), sorry.
+*** Error in file "/home/jahier/lus2lic/test/should_work/broken/when_enum.lus", line 10, col 12 to 15, token 'toto':
+*** 
+*** clock error: The two following clocks are not unifiable:
+***	 on A(a) on base
+***	 on clk on base
+
+
 FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/when_enum.ec  should_work/broken/when_enum.lus}
 spawn ./lus2lic -o /tmp/when_not.out should_work/broken/when_not.lus
 *** Error in file "/home/jahier/lus2lic/test/should_work/broken/when_not.lus", line 7, col 12 to 17, token 'clock4':
@@ -1707,8 +1753,7 @@ PASS: ./lus2lic {-ec -o /tmp/packages.ec  should_work/broken/packages.lus}
 spawn ./lus2lic -o /tmp/when_node.out should_work/broken/when_node.lus
 PASS: ./lus2lic {    -o /tmp/when_node.out should_work/broken/when_node.lus}
 spawn ./lus2lic -ec -o /tmp/when_node.ec should_work/broken/when_node.lus
-Error. *** Cannot generate V4 style Lustre for programs with enumerated clocks (yet), sorry.
-FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/when_node.ec  should_work/broken/when_node.lus}
+PASS: ./lus2lic {-ec -o /tmp/when_node.ec  should_work/broken/when_node.lus}
 spawn ./lus2lic -o /tmp/testSystem.out should_work/broken/testSystem.lus
 *** Error in file "/home/jahier/lus2lic/test/should_work/broken/testSystem.lus", line 3, col 6 to 9, token 'capt':
 *** unknown package
@@ -1737,16 +1782,6 @@ spawn ./lus2lic -ec -o /tmp/car-orig.ec should_work/broken/car-orig.lus
 ***    bool and int are not unifiable
 
 FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/car-orig.ec  should_work/broken/car-orig.lus}
-spawn ./lus2lic -o /tmp/merge.out should_work/broken/merge.lus
-*** Error in file "/home/jahier/lus2lic/test/should_work/broken/merge.lus", line 7, col 15 to 17, token 'clk':
-*** syntax error
-
-FAIL: without any option: ./lus2lic {    -o /tmp/merge.out should_work/broken/merge.lus}
-spawn ./lus2lic -ec -o /tmp/merge.ec should_work/broken/merge.lus
-*** Error in file "/home/jahier/lus2lic/test/should_work/broken/merge.lus", line 7, col 15 to 17, token 'clk':
-*** syntax error
-
-FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/merge.ec  should_work/broken/merge.lus}
 spawn ./lus2lic -o /tmp/bad_call03.lic should_fail/type/broken/bad_call03.lus
 XPASS: Test bad programs (type): lus2lic {-o /tmp/bad_call03.lic should_fail/type/broken/bad_call03.lus}
 spawn ./lus2lic -o /tmp/ts03.lic should_fail/type/broken/ts03.lus
@@ -1770,9 +1805,9 @@ testcase ./lus2lic.tests/progression.exp completed in 0 seconds
 
 		=== lus2lic Summary ===
 
-# of expected passes		728
-# of unexpected failures	11
-# of unexpected successes	10
-# of expected failures		32
+# of expected passes		734
+# of unexpected failures	9
+# of unexpected successes	11
+# of expected failures		36
 # of unresolved testcases	2
-runtest completed at Tue Jan 29 16:19:55 2013
+runtest completed at Thu Jan 31 17:43:24 2013
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index b19cf262..f3f1c95c 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Tue Jan 29 16:19:02 2013
+Test Run By jahier on Thu Jan 31 17:42:30 2013
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -198,6 +198,9 @@ PASS: ./ec2c {-o /tmp/mm22.c /tmp/mm22.ec}
 PASS: ./lus2lic {-o /tmp/X1.lic should_work/X1.lus}
 PASS: ./lus2lic {-ec -o /tmp/X1.ec should_work/X1.lus}
 PASS: ./ec2c {-o /tmp/X1.c /tmp/X1.ec}
+PASS: ./lus2lic {-o /tmp/is_stable.lic should_work/is_stable.lus}
+PASS: ./lus2lic {-ec -o /tmp/is_stable.ec should_work/is_stable.lus}
+PASS: ./ec2c {-o /tmp/is_stable.c /tmp/is_stable.ec}
 PASS: ./lus2lic {-o /tmp/test_clash.lic should_work/test_clash.lus}
 PASS: ./lus2lic {-ec -o /tmp/test_clash.ec should_work/test_clash.lus}
 PASS: ./ec2c {-o /tmp/test_clash.c /tmp/test_clash.ec}
@@ -270,6 +273,9 @@ PASS: ./ec2c {-o /tmp/trivial.c /tmp/trivial.ec}
 PASS: ./lus2lic {-o /tmp/packs.lic should_work/packs.lus}
 PASS: ./lus2lic {-ec -o /tmp/packs.ec should_work/packs.lus}
 PASS: ./ec2c {-o /tmp/packs.c /tmp/packs.ec}
+PASS: ./lus2lic {-o /tmp/sincos.lic should_work/sincos.lus}
+PASS: ./lus2lic {-ec -o /tmp/sincos.ec should_work/sincos.lus}
+PASS: ./ec2c {-o /tmp/sincos.c /tmp/sincos.ec}
 PASS: ./lus2lic {-o /tmp/newpacks.lic should_work/newpacks.lus}
 PASS: ./lus2lic {-ec -o /tmp/newpacks.ec should_work/newpacks.lus}
 PASS: ./ec2c {-o /tmp/newpacks.c /tmp/newpacks.ec}
@@ -657,9 +663,6 @@ PASS: ./ec2c {-o /tmp/cond01.c /tmp/cond01.ec}
 PASS: ./lus2lic {-o /tmp/shiftFill_ludic.lic should_work/shiftFill_ludic.lus}
 PASS: ./lus2lic {-ec -o /tmp/shiftFill_ludic.ec should_work/shiftFill_ludic.lus}
 PASS: ./ec2c {-o /tmp/shiftFill_ludic.c /tmp/shiftFill_ludic.ec}
-PASS: ./lus2lic {-o /tmp/parametric_node2.lic should_work/parametric_node2.lus}
-PASS: ./lus2lic {-ec -o /tmp/parametric_node2.ec should_work/parametric_node2.lus}
-PASS: ./ec2c {-o /tmp/parametric_node2.c /tmp/parametric_node2.ec}
 PASS: ./lus2lic {-o /tmp/after.lic should_work/after.lus}
 PASS: ./lus2lic {-ec -o /tmp/after.ec should_work/after.lus}
 PASS: ./ec2c {-o /tmp/after.c /tmp/after.ec}
@@ -711,6 +714,9 @@ PASS: ./ec2c {-o /tmp/SWITCH1.c /tmp/SWITCH1.ec}
 PASS: ./lus2lic {-o /tmp/clock1_2ms.lic should_work/clock1_2ms.lus}
 PASS: ./lus2lic {-ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus}
 PASS: ./ec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec}
+PASS: ./lus2lic {-o /tmp/merge.lic should_work/merge.lus}
+PASS: ./lus2lic {-ec -o /tmp/merge.ec should_work/merge.lus}
+FAIL: Try ec2c on the result: ./ec2c {-o /tmp/merge.c /tmp/merge.ec}
 PASS: ./lus2lic {-o /tmp/decl.lic should_work/decl.lus}
 PASS: ./lus2lic {-ec -o /tmp/decl.ec should_work/decl.lus}
 PASS: ./ec2c {-o /tmp/decl.c /tmp/decl.ec}
@@ -739,15 +745,20 @@ XFAIL: Test bad programs (syntax): lus2lic {-o /tmp/old_style_and_pack.lic shoul
 XFAIL: Test bad programs (syntax): lus2lic {-o /tmp/record.lic should_fail/syntax/record.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node3.lic should_fail/type/parametric_node3.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node.lic should_fail/type/parametric_node.lus}
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_enum.lic should_fail/type/merge_bad_enum.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/condact2.lic should_fail/type/condact2.lus}
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_type.lic should_fail/type/merge_bad_type.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages.lic should_fail/type/packages.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/packages2.lic should_fail/type/packages2.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro.lic should_fail/type/Gyro.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/Gyro-2.lic should_fail/type/Gyro-2.lus}
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge_bad_clk.lic should_fail/type/merge_bad_clk.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/parametric_node4.lic should_fail/type/parametric_node4.lus}
+XPASS: Test bad programs (type): lus2lic {-o /tmp/merge_not_exhaustive.lic should_fail/type/merge_not_exhaustive.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/const2.lic should_fail/type/const2.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/ts02.lic should_fail/type/ts02.lus}
 XPASS: Test bad programs (type): lus2lic {-o /tmp/parametric_node2.lic should_fail/type/parametric_node2.lus}
+XFAIL: Test bad programs (type): lus2lic {-o /tmp/merge.lic should_fail/type/merge.lus}
 XFAIL: Test bad programs (clock): lus2lic {-o /tmp/when_enum.lic should_fail/clock/when_enum.lus}
 XFAIL: Test bad programs (clock): lus2lic {-o /tmp/bad_call02.lic should_fail/clock/bad_call02.lus}
 XFAIL: Test bad programs (clock): lus2lic {-o /tmp/inonout.lic should_fail/clock/inonout.lus}
@@ -777,13 +788,11 @@ FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/when_not.ec  should_work/broken
 PASS: ./lus2lic {    -o /tmp/packages.out should_work/broken/packages.lus}
 PASS: ./lus2lic {-ec -o /tmp/packages.ec  should_work/broken/packages.lus}
 PASS: ./lus2lic {    -o /tmp/when_node.out should_work/broken/when_node.lus}
-FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/when_node.ec  should_work/broken/when_node.lus}
+PASS: ./lus2lic {-ec -o /tmp/when_node.ec  should_work/broken/when_node.lus}
 FAIL: without any option: ./lus2lic {    -o /tmp/testSystem.out should_work/broken/testSystem.lus}
 FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/testSystem.ec  should_work/broken/testSystem.lus}
 FAIL: without any option: ./lus2lic {    -o /tmp/car-orig.out should_work/broken/car-orig.lus}
 FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/car-orig.ec  should_work/broken/car-orig.lus}
-FAIL: without any option: ./lus2lic {    -o /tmp/merge.out should_work/broken/merge.lus}
-FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/merge.ec  should_work/broken/merge.lus}
 XPASS: Test bad programs (type): lus2lic {-o /tmp/bad_call03.lic should_fail/type/broken/bad_call03.lus}
 XFAIL: Test bad programs (type): lus2lic {-o /tmp/ts03.lic should_fail/type/broken/ts03.lus}
 XPASS: Test bad programs (semantics): lus2lic {-o /tmp/piege.lic should_fail/semantics/broken/piege.lus}
@@ -795,8 +804,8 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		728
-# of unexpected failures	11
-# of unexpected successes	10
-# of expected failures		32
+# of expected passes		734
+# of unexpected failures	9
+# of unexpected successes	11
+# of expected failures		36
 # of unresolved testcases	2
diff --git a/test/should_fail/type/merge_bad_clk.lus b/test/should_fail/type/merge_bad_clk.lus
new file mode 100644
index 00000000..68a53dfa
--- /dev/null
+++ b/test/should_fail/type/merge_bad_clk.lus
@@ -0,0 +1,12 @@
+type trival = enum { Pile, Face, Tranche }; ---
+node merge_node(clk: trival; ---
+   i1 : int when Pile(clk) ; 
+   i2 : int when Face(clk); 
+   i3 : int when Tranche(clk)) 
+returns (y: int); ---
+let
+    y = merge clk
+        | Pile ->    i2 -- bad clock !!
+        | Face ->    i1 -- bad clock !!
+        | Tranche -> i3;
+tel
\ No newline at end of file
diff --git a/test/should_fail/type/merge_bad_enum.lus b/test/should_fail/type/merge_bad_enum.lus
new file mode 100644
index 00000000..2914b40a
--- /dev/null
+++ b/test/should_fail/type/merge_bad_enum.lus
@@ -0,0 +1,12 @@
+type trival = enum { Pile, Face, Tranche }; ---
+type okko = enum { Ok,ko }; ---
+node merge_node(clk: trival; ---
+   i1 : int when Pile(clk) ; i2 :  int when Face(clk); 
+   i3:  int when Tranche(clk)) 
+returns (y: int); ---
+let
+    y = merge clk
+        | Pile ->  i1
+        | Ok ->    i2
+        | Tranche -> i3;
+tel
\ No newline at end of file
diff --git a/test/should_fail/type/merge_bad_type.lus b/test/should_fail/type/merge_bad_type.lus
new file mode 100644
index 00000000..df742239
--- /dev/null
+++ b/test/should_fail/type/merge_bad_type.lus
@@ -0,0 +1,12 @@
+type trival = enum { Pile, Face, Tranche }; ---
+node merge_node(clk: trival; ---
+   i1 : int  when Pile(clk) ; 
+   i2 : real when Face(clk); 
+   i3 : int  when Tranche(clk)) 
+returns (y: int); ---
+let
+    y = merge clk
+        | Pile ->  i1
+        | Face ->    i2
+        | Tranche -> i3;
+tel
\ No newline at end of file
diff --git a/test/should_work/broken/merge.lus b/test/should_fail/type/merge_not_exhaustive.lus
similarity index 54%
rename from test/should_work/broken/merge.lus
rename to test/should_fail/type/merge_not_exhaustive.lus
index ffe738b7..631aad46 100644
--- a/test/should_work/broken/merge.lus
+++ b/test/should_fail/type/merge_not_exhaustive.lus
@@ -1,11 +1,12 @@
 type trival = enum { Pile, Face, Tranche }; ---
 node merge_node(clk: trival; ---
-   i1 :  int when Pile(clk) ; i2 :  int when Face(clk); 
+   i1 : int when Pile(clk) ; i2 :  int when Face(clk); 
    i3:  int when Tranche(clk)) 
 returns (y: int); ---
 let
     y = merge clk
-        (Pile:    i1)
-        (Face:    i2)
-        (Tranche: i3);
+
+--       | Pile ->    i1
+        | Face    -> i2
+        | Tranche -> i3;
 tel
\ No newline at end of file
diff --git a/test/should_work/is_stable.lus b/test/should_work/is_stable.lus
new file mode 100644
index 00000000..fb2b77e9
--- /dev/null
+++ b/test/should_work/is_stable.lus
@@ -0,0 +1,91 @@
+
+const cycle_time = 1.0;
+const epsilon = 0.0001;
+
+node vrai_depuis_n_secondes(n: real; signal: bool) returns (res: bool)
+var
+  tempo : real;
+let
+  tempo = n -> if not signal then n else max<<real>>(0.0, pre tempo - cycle_time);
+  res = (tempo = 0.0);
+tel
+
+node vrai_depuis_n_secondes_bis(n, t : real; signal: bool) returns (res: bool)
+var
+  tempo : real;
+  pt : real; -- un registre pour memoriser l'horodate de l'instant precedent
+let
+  pt = 0.0 -> pre t;
+  tempo = n -> if not signal then n else max<<real>> (0.0, pre tempo - (t-pt));
+  res = (tempo = 0.0);
+tel
+
+-- assign the jth element of an array to a value
+type update_acc = {
+  i: int; 
+  j: int; 
+  v: real
+};
+  
+node update_cell_do<<const d: int>>(acc: update_acc; cell: real) 
+returns (nacc: update_acc; ncell: real);
+let
+  ncell = if acc.i = acc.j then acc.v else cell;
+  nacc = update_acc { i = acc.i+1; j = acc.j ; v = acc.v }; -- arg...
+tel
+
+node assign<<const d: int>>(v: real; j: int;  t: real^d) returns (nt: real^d)
+var
+  dummy: update_acc; 
+let
+  dummy, nt=fillred<<update_cell_do<<d>>; d>>( update_acc { i = 0 ; j = j ; v = v },  t);
+tel
+
+----------------------------------------------------------------------------
+-- Compute the average of the elements of an array
+
+node average<<const d : int>>(t: real^d) returns (res: real)
+let
+   res =red<<+; d>>(0.0, t) / int2real(d);
+tel
+  
+------------------------------------------------------------------------------
+-- Compute the range of an array of reals
+type range = { min: real; max: real };
+node get_range_cell<<const d : int>>(acc :  range;  cell: real) returns (res : range);
+let
+  res = range {
+    min = if cell<acc.min then cell else acc.min;
+    max = if cell>acc.max then cell else acc.max;
+  };
+tel
+node get_range<<const d : int>>(t: real^d) returns (res : real);
+var
+  t_range: range;
+let
+  t_range = red<<get_range_cell; d>>(range{ min=t[0] ; max=t[0] }, t);
+  res = t_range.max - t_range.min;
+tel
+
+node is_d_stable<<const d: int; const eps: real>>(v: real) 
+returns (res:bool);
+var
+  v_mem: real^d; -- circular array
+  cpt: int; 
+let
+  cpt = 0 -> (pre cpt + 1);
+  v_mem = 0.0^d -> assign<<d>>(v, cpt mod d, pre v_mem);
+  res = cpt>=d-1 and (get_range<<d>>(v_mem) < eps);
+tel
+
+node max<<type t>>(a,b:t) returns(res:t)
+let
+  res = if a<b then b else a;
+tel
+node min<<type t>>(a,b:t) returns(res:t)
+let
+  res = if a>b then b else a;
+tel
+
+node maxr=max<<real>>;
+node minr=min<<real>>;
\ No newline at end of file
diff --git a/test/should_work/merge.lus b/test/should_work/merge.lus
new file mode 100644
index 00000000..0cf0136c
--- /dev/null
+++ b/test/should_work/merge.lus
@@ -0,0 +1,12 @@
+type trival = enum { Pile, Face, Tranche }; ---
+node merge_node(clk: trival; ---
+   i1 : int when Pile(clk) ; 
+   i2 : int when Face(clk); 
+   i3 : int when Tranche(clk)) 
+returns (y: int); ---
+let
+    y = merge clk
+        | Pile    => (0->i1)
+        | Face    => i2
+        | Tranche => i3;
+tel
\ No newline at end of file
diff --git a/test/should_work/parametric_node2.lus b/test/should_work/parametric_node2.lus
deleted file mode 100644
index 41846b3d..00000000
--- a/test/should_work/parametric_node2.lus
+++ /dev/null
@@ -1,13 +0,0 @@
-
- 
-node toto_n<<node f(a, b: int) returns (x: real); const n : int>>(a: int) 
---                                     ^^^^^^^^ should be an int
-returns (x: int^n);
-var v : int;
-let
-  v = f(a, 1);
-  x =  v ^ n;
-tel
-
-node toto_3 = toto_n<<Lustre::iplus, 3>>;
-
diff --git a/test/should_work/sincos.lus b/test/should_work/sincos.lus
new file mode 100644
index 00000000..44558b37
--- /dev/null
+++ b/test/should_work/sincos.lus
@@ -0,0 +1,14 @@
+-- 
+node sincos(omega:real) returns (sin, cos: real);
+var pcos,psin: real;
+let
+ pcos = 1.0 fby pre cos;
+ psin = 0.0 fby pre sin;
+ sin = omega * integrator(pcos,0.1,0.0);
+ cos = omega * integrator(-psin,0.1,1.0);
+tel
+node integrator(F,STEP,init: real) returns (Y: real); 
+let 
+  Y = init -> pre(Y) + ((F + pre(F))*STEP)/2.0; 
+tel -- del
+
diff --git a/todo.org b/todo.org
index 1feb3c8c..ecc1c393 100644
--- a/todo.org
+++ b/todo.org
@@ -124,7 +124,6 @@ file:src/unifyClock.ml::271
 On pourrait utiliser   file:src/misc.ml pour prendre finement en compte les 
 struct et les arrays.
 
-** TODO Merge is not working
 ** TODO Rajouter le with à la caml pour les structures
   - State "TODO"       from ""           [2012-10-26 Fri 14:59]
 
diff --git a/todo.org_archive b/todo.org_archive
index 094f1551..bfb08031 100644
--- a/todo.org_archive
+++ b/todo.org_archive
@@ -327,6 +327,19 @@ FAIL: without any option: ./lus2lic {    -o /tmp/multipar.out should_work/broken
 	File "objlinux/l2lExpandMetaOp.ml", line 310, column 4
  when compiling lustre program should_work/broken/cond01.lus          
 
+* TODO Merge is not working
+  :PROPERTIES:
+  :ARCHIVE_TIME: 2013-01-31 Thu 17:52
+  :ARCHIVE_FILE: ~/lus2lic/todo.org
+  :ARCHIVE_OLPATH: Languages issues
+  :ARCHIVE_CATEGORY: lv6
+  :ARCHIVE_TODO: TODO
+  :END:
+
+./lus2lic should_work/broken/merge.lus 
+file:test/should_work/broken/merge.lus::7
+
+
 
 
 
-- 
GitLab