diff --git a/postscript-go/TestPostscript.png b/postscript-go/TestPostscript.png index f6b7f61..c103be2 100644 Binary files a/postscript-go/TestPostscript.png and b/postscript-go/TestPostscript.png differ diff --git a/postscript-go/src/pkg/postscript/operators_control.go b/postscript-go/src/pkg/postscript/operators_control.go index d0d6755..08877d1 100644 --- a/postscript-go/src/pkg/postscript/operators_control.go +++ b/postscript-go/src/pkg/postscript/operators_control.go @@ -50,6 +50,14 @@ func foroperator(interpreter *Interpreter) { } } +func repeat(interpreter *Interpreter) { + proc := NewProcedure(interpreter.PopProcedureDefinition()) + times := interpreter.PopInt() + for i := 0; i <= times; i++ { + proc.Execute(interpreter) + } +} + // any stopped bool -> Establish context for catching stop func stopped(interpreter *Interpreter) { value := interpreter.Pop() @@ -67,5 +75,6 @@ func initControlOperators(interpreter *Interpreter) { interpreter.SystemDefine("if", NewOperator(ifoperator)) interpreter.SystemDefine("ifelse", NewOperator(ifelse)) interpreter.SystemDefine("for", NewOperator(foroperator)) + interpreter.SystemDefine("repeat", NewOperator(repeat)) interpreter.SystemDefine("stopped", NewOperator(stopped)) } diff --git a/postscript-go/src/pkg/postscript/operators_graphics.go b/postscript-go/src/pkg/postscript/operators_graphics.go index 129ce52..66a2f27 100644 --- a/postscript-go/src/pkg/postscript/operators_graphics.go +++ b/postscript-go/src/pkg/postscript/operators_graphics.go @@ -71,6 +71,15 @@ func rcurveto(interpreter *Interpreter) { interpreter.GetGraphicContext().RCubicCurveTo(cx1, cy1, cx2, cy2, cx3, cy3) } +func arc(interpreter *Interpreter) { + angle2 := interpreter.PopFloat() * (math.Pi / 180.0) + angle1 := interpreter.PopFloat() * (math.Pi / 180.0) + r := interpreter.PopFloat() + y := interpreter.PopFloat() + x := interpreter.PopFloat() + interpreter.GetGraphicContext().ArcTo(x, y, r, r, angle1, angle2 - angle1) +} + func clippath(interpreter *Interpreter) { log.Printf("clippath not yet implemented") } @@ -280,37 +289,135 @@ func matrix(interpreter *Interpreter) { interpreter.Push(draw2d.NewIdentityMatrix()) } +func initmatrix(interpreter *Interpreter) { + interpreter.Push(draw2d.NewIdentityMatrix()) +} + +func identmatrix(interpreter *Interpreter) { + tr := interpreter.Pop().(draw2d.MatrixTransform) + ident := draw2d.NewIdentityMatrix() + copy(tr[:], ident[:]) + interpreter.Push(tr) +} + +func defaultmatrix(interpreter *Interpreter) { + tr := interpreter.Pop().(draw2d.MatrixTransform) + ident := draw2d.NewIdentityMatrix() + copy(tr[:], ident[:]) + interpreter.Push(tr) +} + +func currentmatrix(interpreter *Interpreter) { + tr := interpreter.Pop().(draw2d.MatrixTransform) + ctm := interpreter.GetGraphicContext().GetMatrixTransform() + copy(tr[:], ctm[:]) + interpreter.Push(tr) +} + +func setmatrix(interpreter *Interpreter) { + tr := interpreter.Pop().(draw2d.MatrixTransform) + interpreter.GetGraphicContext().SetMatrixTransform(tr) +} + +func concat(interpreter *Interpreter) { + tr := interpreter.Pop().(draw2d.MatrixTransform) + interpreter.GetGraphicContext().ComposeMatrixTransform(tr) +} +func concatmatrix(interpreter *Interpreter) { + tr3 := interpreter.Pop().(draw2d.MatrixTransform) + tr2 := interpreter.Pop().(draw2d.MatrixTransform) + tr1 := interpreter.Pop().(draw2d.MatrixTransform) + result := tr1.Multiply(tr2) + copy(tr3[:], result[:]) + interpreter.Push(tr3) +} + func transform(interpreter *Interpreter) { - y := interpreter.PopFloat() + value := interpreter.Pop() + matrix, ok := value.(draw2d.MatrixTransform) + var y float + if(!ok) { + matrix = interpreter.GetGraphicContext().GetMatrixTransform() + y = value.(float) + } else { + y = interpreter.PopFloat() + } x := interpreter.PopFloat() - interpreter.GetGraphicContext().GetMatrixTransform().Transform(&x, &y) + matrix.Transform(&x, &y) interpreter.Push(x) interpreter.Push(y) } func itransform(interpreter *Interpreter) { - y := interpreter.PopFloat() + value := interpreter.Pop() + matrix, ok := value.(draw2d.MatrixTransform) + var y float + if(!ok) { + matrix = interpreter.GetGraphicContext().GetMatrixTransform() + y = value.(float) + } else { + y = interpreter.PopFloat() + } x := interpreter.PopFloat() - interpreter.GetGraphicContext().GetMatrixTransform().InverseTransform(&x, &y) + matrix.InverseTransform(&x, &y) interpreter.Push(x) interpreter.Push(y) } func translate(interpreter *Interpreter) { - y := interpreter.PopFloat() + value := interpreter.Pop() + matrix, ok := value.(draw2d.MatrixTransform) + var y float + if(!ok) { + matrix = interpreter.GetGraphicContext().GetMatrixTransform() + y = value.(float) + } else { + y = interpreter.PopFloat() + } x := interpreter.PopFloat() - interpreter.GetGraphicContext().Translate(x, y) + if(!ok) { + interpreter.GetGraphicContext().Translate(x, y) + } else { + matrix = draw2d.NewTranslationMatrix(x, y).Multiply(matrix) + interpreter.Push(matrix) + } } func rotate(interpreter *Interpreter) { - angle := interpreter.PopFloat() - interpreter.GetGraphicContext().Rotate(angle * (math.Pi / 180.0)) + value := interpreter.Pop() + matrix, ok := value.(draw2d.MatrixTransform) + var angle float + if(!ok) { + matrix = interpreter.GetGraphicContext().GetMatrixTransform() + angle = value.(float) * math.Pi / 180 + } else { + angle = interpreter.PopFloat() * math.Pi / 180 + } + if(!ok) { + interpreter.GetGraphicContext().Rotate(angle) + } else { + matrix = draw2d.NewRotationMatrix(angle).Multiply(matrix) + interpreter.Push(matrix) + } } func scale(interpreter *Interpreter) { - y := interpreter.PopFloat() + value := interpreter.Pop() + matrix, ok := value.(draw2d.MatrixTransform) + var y float + if(!ok) { + matrix = interpreter.GetGraphicContext().GetMatrixTransform() + y = value.(float) + } else { + y = interpreter.PopFloat() + } x := interpreter.PopFloat() - interpreter.GetGraphicContext().Scale(x, y) + if(!ok) { + interpreter.GetGraphicContext().Scale(x, y) + } else { + matrix = draw2d.NewScaleMatrix(x, y).Multiply(matrix) + interpreter.Push(matrix) + } } @@ -346,6 +453,14 @@ func initDrawingOperators(interpreter *Interpreter) { // Coordinate System and Matrix operators interpreter.SystemDefine("matrix", NewOperator(matrix)) + interpreter.SystemDefine("initmatrix", NewOperator(initmatrix)) + interpreter.SystemDefine("identmatrix", NewOperator(identmatrix)) + interpreter.SystemDefine("defaultmatrix", NewOperator(defaultmatrix)) + interpreter.SystemDefine("currentmatrix", NewOperator(currentmatrix)) + interpreter.SystemDefine("setmatrix", NewOperator(setmatrix)) + interpreter.SystemDefine("concat", NewOperator(concat)) + interpreter.SystemDefine("concatmatrix", NewOperator(concatmatrix)) + interpreter.SystemDefine("transform", NewOperator(transform)) interpreter.SystemDefine("itransform", NewOperator(itransform)) interpreter.SystemDefine("translate", NewOperator(translate)) @@ -362,5 +477,6 @@ func initDrawingOperators(interpreter *Interpreter) { interpreter.SystemDefine("rlineto", NewOperator(rlineto)) interpreter.SystemDefine("curveto", NewOperator(curveto)) interpreter.SystemDefine("rcurveto", NewOperator(rcurveto)) + interpreter.SystemDefine("arc", NewOperator(arc)) interpreter.SystemDefine("clippath", NewOperator(clippath)) } diff --git a/postscript-go/src/pkg/postscript/operators_math.go b/postscript-go/src/pkg/postscript/operators_math.go index 5267ed2..ea1a7ae 100644 --- a/postscript-go/src/pkg/postscript/operators_math.go +++ b/postscript-go/src/pkg/postscript/operators_math.go @@ -91,13 +91,13 @@ func atan(interpreter *Interpreter) { } //angle cos real -> Return cosine of angle degrees func cos(interpreter *Interpreter) { - a := interpreter.PopFloat() - interpreter.Push(float(math.Cos(float64(a))) * (180.0 / math.Pi)) + a := interpreter.PopFloat() * math.Pi / 180 + interpreter.Push(float(math.Cos(float64(a )))) } //angle sin real -> Return sine of angle degrees func sin(interpreter *Interpreter) { - a := interpreter.PopFloat() - interpreter.Push(float(math.Sin(float64(a))) * (180.0 / math.Pi)) + a := interpreter.PopFloat() * math.Pi / 180 + interpreter.Push(float(math.Sin(float64(a)))) } //base exponent exp real -> Raise base to exponent power func exp(interpreter *Interpreter) { @@ -117,7 +117,7 @@ func log10(interpreter *Interpreter) { } //– rand int Generate pseudo-random integer func randInt(interpreter *Interpreter) { - interpreter.Push(rand.Int()) + interpreter.Push(float(rand.Int())) } var randGenerator *rand.Rand diff --git a/postscript-go/src/pkg/postscript/operators_relational.go b/postscript-go/src/pkg/postscript/operators_relational.go index 0f43169..c1e708b 100644 --- a/postscript-go/src/pkg/postscript/operators_relational.go +++ b/postscript-go/src/pkg/postscript/operators_relational.go @@ -16,14 +16,26 @@ func ne(interpreter *Interpreter) { interpreter.Push(value1 != value2) } +func not(interpreter *Interpreter) { + b := interpreter.PopBoolean() + interpreter.Push(!b) +} + func lt(interpreter *Interpreter) { f2 := interpreter.PopFloat() f1 := interpreter.PopFloat() interpreter.Push(f1 < f2) } +func gt(interpreter *Interpreter) { + f2 := interpreter.PopFloat() + f1 := interpreter.PopFloat() + interpreter.Push(f1 > f2) +} func initRelationalOperators(interpreter *Interpreter) { interpreter.SystemDefine("eq", NewOperator(eq)) interpreter.SystemDefine("ne", NewOperator(ne)) + interpreter.SystemDefine("not", NewOperator(not)) interpreter.SystemDefine("lt", NewOperator(lt)) + interpreter.SystemDefine("gt", NewOperator(gt)) } diff --git a/postscript-go/test_files/3dcolor.ps b/postscript-go/test_files/3dcolor.ps new file mode 100644 index 0000000..1b31d08 --- /dev/null +++ b/postscript-go/test_files/3dcolor.ps @@ -0,0 +1,57 @@ +%!PS +/B {bind} bind def +/D {def} def +/Q {bind def} B D +/E {exch def} Q +/S {gsave} Q +/R {grestore} Q +/P 20 D +/N P 1 sub D +/I 1 P div D +initclip clippath pathbbox newpath +72 sub /URy E 72 sub /URx E 72 add /LLy E 72 add /LLx E +/Sq5 5 sqrt D +/F 2 Sq5 add D +/Wx URx LLx sub D /Wy URy LLy sub D +/Xx Wx 4 div D /Xy Wy F div D /X Xx Xy le {Xx}{Xy}ifelse D +Wx X 4 mul sub 2 div LLx add X 2 mul add Wy X F mul sub 2 div LLy add translate +/X X Sq5 mul D +X dup scale +0.1 X div setlinewidth +S +[ 1 .5 0 1 0 0 ] concat +0 1 N {I mul /A E + 0 1 N {I mul /B E + S A B translate + newpath 0 0 moveto I 0 rlineto 0 I rlineto I neg 0 rlineto + closepath + S I B add 1 1 A sub setrgbcolor fill R stroke % Green + R + } for + } for +R +S +[ -1 .5 0 1 0 0 ] concat +0 1 N {I mul /A E + 0 1 N {I mul /B E + S A B translate + newpath 0 0 moveto I 0 rlineto 0 I rlineto I neg 0 rlineto + closepath + S I B add 1 A sub 1 setrgbcolor fill R stroke % Blue + R + } for + } for +R +S +[ 1 .5 -1 0.5 0 1 ] concat +0 1 N {I mul /A E + 0 1 N {I mul /B E + S A B translate + newpath 0 0 moveto I 0 rlineto 0 I rlineto I neg 0 rlineto + closepath + S 1 1 B sub 1 A sub setrgbcolor fill R stroke % Red + R + } for + } for +R +showpage diff --git a/postscript-go/test_files/Koch.ps b/postscript-go/test_files/Koch.ps new file mode 100644 index 0000000..539432c --- /dev/null +++ b/postscript-go/test_files/Koch.ps @@ -0,0 +1,76 @@ +%%% Start of L-system definition + +/STARTK { FK plusK plusK FK plusK plusK FK} def +/FK { + dup 0 eq + { DK } % if the recursion order ends, draw forward + { + 1 sub % recurse + 4 {dup} repeat % dup the number of parameters (order) needed. + FK minusK FK plusK plusK FK minusK FK } + ifelse + pop % pop the dup'd order +} bind def + +/angleK 60 def + +/minusK { % rotation to the right + angleK neg rotate +} bind def + +/plusK { % rotation to the left + angleK rotate +} bind def + +%%% End of L-System definition + +/DK { sizeK 3 orderK exp div 0 rlineto } bind def +/thicknessK {1 orderK dup mul div} bind def + +%%% Scaling factors + +/orderK 3 def +/sizeK 300 def + +%%% Draws a Koch's snowflake of radius 180 at 0 0 + +/Koch180 { + gsave + newpath + thicknessK setlinewidth + 200 300 60 cos mul add + neg + 200 100 60 sin mul add + neg + translate + 200 200 moveto + orderK orderK orderK STARTK + stroke + closepath + grestore +} def % receives nothing + +%%% Draws an arbitrary Koch's snowflake + +/Koch { + /orderK exch store + gsave + 3 1 roll + translate + 180 div dup scale + rand 360 mod rotate + Koch180 + grestore +} def % Receives x y size order + + +%%% Sample, bounded by an arc + + 400 400 100 3 Koch + newpath + 400 400 + 100 0 360 arc + stroke + closepath + +showpage \ No newline at end of file diff --git a/postscript-go/test_files/Mand.ps b/postscript-go/test_files/Mand.ps new file mode 100644 index 0000000..1f0d427 --- /dev/null +++ b/postscript-go/test_files/Mand.ps @@ -0,0 +1,68 @@ +%!PS-Adobe-2.0 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% Mandelbrot set via PostScript code. Not optimized % +% in any way. Centered in A4 paper. Escape time, B&W % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +/fun { + 4 3 roll % y c1 c2 x + dup dup % y c1 c2 x x x + mul % y c1 c2 x x^2 + 5 4 roll % c1 c2 x x^2 y + dup dup mul % c1 c2 x x^2 y y^2 + 2 index exch sub % c1 c2 x x^2 y (x^2-y^2) + 6 1 roll 2 index % (x^2-y^2) c1 c2 x x^2 y x + 2 mul mul % (x^2-y^2) c1 c2 x x^2 2xy + 6 1 roll % 2xy (x^2-y^2) c1 c2 x x^2 + pop pop 4 1 roll % c2 2xy (x^2-y^2) c1 + dup 5 1 roll add % c1 c2 2xy (x^2-y^2+c1) + 4 1 roll % (x^2-y^2+c1) c1 c2 2xy + 1 index % (x^2-y^2+c1) c1 c2 2xy c2 + add 4 3 roll % c1 c2 (2xy+c2) (x^2-y^2+c1) + exch 4 2 roll % (x^2-y^2+c1) (2xy+c2) c1 c2 +} def + +/res 500 def +/iter 50 def + + +300 300 translate +90 rotate +-150 -260 translate +0 1 res { + /x exch def + 0 1 res { + /y exch def + 0 0 + -2.5 4 x mul res div add + 2 4 y mul res div sub + iter -1 0 { + /n exch store + fun + 2 index dup mul + 4 index dup mul + add sqrt + 4 gt + {exit} if + } for + pop pop pop pop + + + n 0 gt + {1 setgray + x y 0.7 0 360 arc + fill + } + { + 0 setgray + x y 0.5 0 360 arc + fill + } ifelse + } for + }for +showpage + + \ No newline at end of file diff --git a/postscript-go/test_files/bell_206.ps b/postscript-go/test_files/bell_206.ps new file mode 100644 index 0000000..d3e1d0e --- /dev/null +++ b/postscript-go/test_files/bell_206.ps @@ -0,0 +1,3537 @@ +%!PS-Adobe-3.0 +%%Creator: GIMP PostScript file plugin V 1.11 by Peter Kirchgessner +%%Title: C:\Documents and Settings\burkardt\My Documents\bell_206.ps +%%CreationDate: Fri Feb 08 10:41:12 2002 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 14 14 275 815 +%%EndComments +%%BeginProlog +% Use own dictionary to avoid conflicts +10 dict begin +%%EndProlog +%%Page: 1 1 +% Translate for offset +14.173228 14.173228 translate +% Translate to begin of first scanline +0.000000 800.000000 translate +260.000000 -800.000000 scale +% Image geometry +260 800 8 +% Transformation matrix +[ 260 0 0 800 0 0 ] +% Strings to hold RGB-samples per scanline +/rstr 260 string def +/gstr 260 string def +/bstr 260 string def +{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} +true 3 +%%BeginData: 188979 ASCII Bytes +colorimage +JcELb!c9aT_Z,,~> +JcELb!c9aT_Z,,~> +JcELb!c9gV_Z,,~> +JcELb!b+i-_Z,,~> +JcELb!b+i-_Z,,~> +JcELb!b+i/_Z,,~> +JcELb",]cGTu6n\~> +JcELb",]cGTu6n\~> +JcELb",]cGTu6n\~> +JcELb"JJL_:$T[sJ,~> +JcELb"JJL_:$T[sJ,~> +JcELb"JJL_:$on!J,~> +JcELb!4i)&!,][SJ,~> +JcELb!4i)&!,][SJ,~> +JcELb!4i)&!,][SJ,~> +JcELb"k$(<:/&LCs*t~> +JcELb"k$(<:/&LCs*t~> +JcELb"k$(<:/&LCs*t~> +JcELb!:]t]!`!A"`rCP~> +JcELb!:]t]!`!A"`rCP~> +JcELb!:]t]!`!A"`rCP~> +JcELb#5M"f9MJ*]`rCP~> +JcELb#5M"f9MJ*]`rCP~> +JcELb#5M"f9MJ*]`rCP~> +JcELb#Q7Xr9MLs7lGrpT~> +JcELb#Q7Xr9MLs7lGrpT~> +JcELb#Q7Xr9MLs9mDo6W~> +JcEIa!+Pq$"/UTuoZ7&_~> +JcEIa!+Pq$"/UTuoZ7&_~> +JcEIa!+Pq$"/UTuoZ7&_~> +JcEIa#C0!:9nhjk`lS11~> +JcEIa#C0!:9nhjk`lS11~> +JcEIa#CB-<9nhsp`lS11~> +JcEIa#a%eS9kOF.8b'q&J,~> +JcEIa#a%eS9kOF.8b'q&J,~> +JcEIa#a%eS9kOF.8b'q&J,~> +JcEIa!2]Zg"B56jBp$O;J,~> +JcEIa!2]Zg"B>6iBp$O;J,~> +JcEIa!2]Zg"BGBlC6?X +JcEIa!5e_/"\nLdiA9oEs*t~> +JcEIa!5e_/"\nLdiA9oEs*t~> +JcEIa!65"3"\nLdiAL&Gs*t~> +JcEIa!8[WJ"\mGFmPF:Rs*t~> +JcEIa!8[WJ"\mGFmPF:Rs*t~> +JcEIa!8[WJ"\mGFmPXFTs*t~> +JcEIa$1U_`9MM\io/kdNs*t~> +JcEIa$1U_`9MM\io/kdNs*t~> +JcEIa$1U_`9MM\io/kdNs*t~> +JcEIa$2IFl9MLQIoO>,Ks*t~> +JcEIa$2IFl9MLQIoO>,Ks*t~> +JcEIa$2IFl9MLQIoO>5Ns*t~> +JcEIa$N=1%9MK=&s,N-3bQ!(~> +JcEIa$N=1%9MK=&s,N-3bQ!(~> +JcEIa$N=4&9MKF)s,N-3bQ!(~> +JcEF`!+u4("]bR%Y&3gSs*t~> +JcEF`!+u4("]bR%Y&3gSs*t~> +JcEF`!+u4("]bR%Y&3gSs*t~> +JcEF`!.t2D"]"^idRj)Ss*t~> +JcEF`!.t2D"]"^idRj)Ss*t~> +JcEF`!.t2D"]"^idRj)Ss*t~> +JcEF`!29Bc"\mtUkr&"Ss*t~> +JcEF`!29Bc"\mtUkr&"Ss*t~> +JcEF`!29Bc"\mtUl8A+Ts*t~> +JcEF`!3uMs"\l`2nMBFQs*t~> +JcEF`!3uMs"\l`2nMBFQs*t~> +JcEF`!3uMs"\l`2nMTUTs*t~> +JcEF`!71X<"\kinoL.BUs*t~> +JcEF`!71X<"\kinoL.BUs*t~> +JcEF`!71X<"\kinoL.BUs*t~> +JcEF`!9O2R"\jUKoPLbSs*t~> +JcEF`!9O2R"\jUKoPLbSs*t~> +JcEF`!9O2R"\jUKoPLbSs*t~> +_#FH2p4<5Os7B&[9MK!rs,N!/bl<1~> +_#FH2p4<5Os7B&[9MK!rs,N!/bl<1~> +_#FH2pOW>Ps7B&[9MK!rs,N!/bl<1~> +_>aW5;#p<@rrN'sr_*Jmr;X0:oZ[>c~> +_>aW5;#p<@rrN'tr_*JmqZ!s8oZ[>c~> +_>aW5;#p?ArrN'ur_*Jmr;X0:oZ[>c~> +_>aW-%05gIrrN+*r_*JinGh00oZ[>c~> +_>aW-%05gIrrN+*r_*JinGh00oZ[>c~> +_>aW-%05gIrrN+*r_*JinGh00oZ[>c~> +_>aW-'*.HOrrN.>r_*Jig&L=nnBCo_~> +_>aW-'*.HOrrN.?r_*Jig&L=nnBCo_~> +_>aW-'*.HOrrN.?r_*Jig&LFsnBCo_~> +_>aW-'*.HOrrN.^r_*Ji[K#hWjimaT~> +_>aW-'*.HOrrN.^r_*Ji[K#hWjimaT~> +_>aW-'*.HOrrN.^r_*Ji[K#hYjimaT~> +_>aW-'*.HOrrN.rr_*JiScA=\`m"I5~> +_>aW-'*.HOrrN.rr_*JiScA=]`m"I5~> +_>aW-'*.HOrrN.rr_*JiScA=^`m"I5~> +_>aW-'*.HOrrN/6r_*JiH2mMcS]q+a~> +_>aW-'*.HOrrN/6r_*JiH2mMcS]q+a~> +_>aW-'*.HOrrN/6r_*JiHiN_eS]q+a~> +_>aW-!!(u/rrN/Ur_*Mj?N0tnK(R=fJ,~> +_>aW-!!(u/rrN/Ur_*Mj?N0tnK(R=fJ,~> +_>aW-!!(u/rrN/Ur_*Mj?N0tnK(R=fJ,~> +_>aY;!%1J1Jc>c?:&[fi;>L7.=nKu=J,~> +_>aY;!%1J1Jc>c?:&[fi;>L7.=nKu=J,~> +_>aYc?:&[fi;>L7.>4g)>J,~> +_>aY;1NcjjJc>cH;>s5m:$M]:47g_sJ,~> +_>aY;1NcjjJc>cH;>s5m:$M]:47g_sJ,~> +_>aY<20E*mJc>cH;>s5m:$Vc;47g_sJ,~> +_>aY;4+:?&Jc>cM=oM(u9ud5$1[`NfJ,~> +_>aY;4+:?&Jc>cM=oM(u9ud5$1[`NfJ,~> +_>aY<4+:B'Jc>cM>5h2!9ud5$2=A`hJ,~> +_>aY;4+:?&Jc>cND>m349r7m]45J0]J,~> +_>aY;4+:?&Jc>cND>m349r7m]45J0]J,~> +_>aY<4+:B'Jc>cND>m349r7m]45J0]J,~> +_>aY;4+:?&Jc>cNMZ-9Q9oAuC?FnD]J,~> +_>aY;4+:?&Jc>cNMZ-9Q9oAuC?FnD]J,~> +_>aY<4+:B'Jc>cNMZ-9Q9oAuC?G+P_J,~> +_>aY;4+:?&Jc>cNU&I^h9k+.pJsFU\J,~> +_>aY;4+:?&Jc>cNU&I^h9k+.pJsFU\J,~> +_>aY<4+:B'Jc>cNU&I^h9k+.pJsFU\J,~> +_Z'l*F\0`u/#`H!rrB>&9EeAns.O`1cMrC~> +_Z'l*F\)fC/#`H!rrB>&9EeDos.O`1cMrC~> +_Z'l+F\+SRFN+62rrB>&9EeGps.Of3cMrC~> +`;^2DXtC&nf\!>,'8;)=!6kC8"]"^i``)NTs*t~> +`;^2DY$>j"!!!9)'8;)=!6kC8"]"^i``2TUs*t~> +`;^2DY%`_l1G^psAZCC_!6kC8"]"^i``;ZVs*t~> +`W$5BIO>0uB%Yb=rVut2r.Y.Njo%jV:#Z-62tP>pJ,~> +`W$5BIU@,91&q=\rVut2qM"qLjo%jV:#Z-62tP>pJ,~> +`W$5BIVt:1<&6?hra5bpr.Y.Njo%jV:#Z-63V1PrJ,~> +`r?,$2uJF1!;-4`"\li5nMBFTs*t~> +`r?,:EaSfd!u_.?#lO`(2u8:/!;-4`"\li5nMBFTs*t~> +`r?, +`r?'b-iF)KRb68qqu?^ULAq;P;>s5m9r7m^7+KT_J,~> +`r?'b?i>!I)?9dDqu?^ULAq;N;>s5m9r7m^7+KT_J,~> +`r?'dDZ,\":GXgcr*TMMLAq;P;>s5m9r7m^7+KT_J,~> +a8Z0t-iF)M$Ei%6E!H4?!0i9=!WHR-9Ee.Js7Bp2cMrC~> +a8Z0t?i>!KD?p4C#R:2,!0i9=!WHR-9Ee.Js7Bp2cMrC~> +a8Z0tDZ,\$M)I.H:LsB2!1\iE!WHR-9Ee.Js7Bp2cMrC~> +aSu:;0)YhU"A>oMfPh#k!!%+rrr@?D9Ee.)s7D#-cMrC~> +aSu:;>lA[IED$Q;!=/l+!!%+rrr@?D9Ee.)s7D#-cMrC~> +aSu:;C&O.uOA.Vh1f%TX?iZaQrr@EF9Ee.*s7D#-cMrC~> +ao;Fd9*G4q#6ZYQb1P?c"8VutS;@1FQ2OA[ +ao;Fd96'rO#B=!B#64c1"8VutS;@1FQ2OA[ +ao;Fd9p#@:#EWXn3AWKf@esI4_MJ3lQ2OA[YaJ,~> +b5VPBAgdNY#:E2=b1P?c"8Vuu"lY= +b5VPBAmbLW#@C.u#64c1"8Vuu"lY= +b5VPBAo@R0#B!4/3AWKf@esI5@ciOI!35uk"]"[ha\h]Vs*t~> +b5VL=0)YhW$;4&eb1P?c!r2fr7#CpD_Ym.3:"fR.2tPAqJ,~> +b5VL=>lA[KDG*Ys#64c1!r2fr7#CpD_Ym.3:"fR.2tPAqJ,~> +b5VL=C&O/"M+pZ;3AWKf@JO:2I>Rt(`r/R7:"fR.3V1SsJ,~> +bPr+@:'q%("9L2L9MO*jfPgoe!!&sTrrCmR9Ee.us7%u2ci8L~> +bPqh8:2Y)mEH5=`9EY@r!=/c%!!&sTrrCmR9Ee.us7%u2ci8L~> +bPqh8:5P*qOHF8V9E[1.1f%QT?i\0'rrCmR9Ee.us7%u3ci8L~> +bPqU3-iF)H-iQdC:"ItLDuo_6!=Sg`rrDKc9Ee.Zs7An2ci8L~> +bPqU3?i>!F?i +bPqU3DZ,[tDZ*631c$sa@JF42Ac.Jd!:KeZ"\kHcoL[KWs*t~> +bl7b::($t%!s5m9mQd2D5kk]J,~> +bl7b::2^&O!HCd29EY@r!=/`#!!%8%rrMpmr_*JiH2mMRWR(Tp~> +bl7b::5St4!K^%S9E[1.1f%QS?i[*_rrMpmr_*JiHiN_TWmC]q~> +bl7^/0)YhO-iH^=:&`cG:BC1i! +bl7^/>lA[C?i3Ut!!30(!VZQp"Q>=>!WH*t9EeZ"s,N!/d/SU~> +bl7^/C&O.oDZ!3.1BKC1@J=.1?KR4H!WH*t9Ee`$s,N!/d/SU~> +c2Rk::($t%! +c2Rk::2^&O!HCd19`G(o!<`Gs!!%_2rr?O,9Ee;es/p).d/SU~> +c2Rk::5St4!K^%R9`HmM1f7]T?i[3brr?O,9Ee;fs/p,/d/SU~> +c2RgD0)YhO-i?X<:&`cG:BC.h!>GEjrr@NH9Ee/Ps3aL2d/SU~> +c2RgD>lA[C?i*Os!!30(!VQKo'E*mi!.Ol?"\n+YdRj)Xs*t~> +c2RgEC&O.oDYm--1BKC1@J4(0Ac7Sf!.Ol?"\n+YdRj)Xs*t~> +cMmtF=UP-0! +cMmtF=`44Z!HCd09`G(o!<`Gr!!(&urrAMd9Ee/5s62E2d/SU~> +cMmtF>)E6@!K^%Q9`HmM1f7]S?i\i +cMmpn9Dnnl-i6R;:&`cG/ckVF!(`(K!3,oj"\kuro/GdXs*t~> +cMmpn9Drl2?i!Ir!!30(!VHEm8 +cMmpn:&U1SDYd',1BKC6@J+".LQ)65Wr5Tp9re6b3T\WfJ,~> +cMn)t-NX>P"AAVc!+c)]""jTS#58)u"mV*I!5e\."\k9^oM*TWs*t~> +cMn)t?ZL1,ED-1&#>tO%!<`E'#58)u"R;!H!5e\."\k9^oM*TWs*t~> +cMn)tDNU'COA5UG#>m951fe!lAG9I4?L +ci4(29a(Fs!%7V:!+u5_""jTS"nhor]8cgjh>L"N9m-L.EN.=bJ,~> +ci4(29l^/Q!+5Rr#;Q8Z!<`E'"nhor]8cgjh>L"N9m-L.EiIFcJ,~> +ci4(39p#@:!,hX,#?3K81fe$m@eO10duFA-h>L"N9m-L.EiRLdJ,~> +ci4$B0)YhO9DV<^B)^Eb(BFLQ4Y_MY, +ci4$B>lA[C9DVQ4Y_MY, +ci4$BC&O.o:&7Ng<&6 +ci4#P$N:),$Md?qB)^Ed(BFL[U7o[3\h~> +ci4#PDZ4YVDYZs41&q:T"p"]+!!`2u![U7o[3\h~> +ci4#PM>iV;M>9gO<&6[U7o[3\h~> +d/O.&9Dnnl-i$F9B)^Ed(BFL;!!`/t!5"9k!WH=%9Ee/Ps3aL2dJn^~> +d/O.&9Drl2?hmA%1&q:T"p"]*!!`/t!5"9k!WH=%9Ee/Ps3aL2dJn^~> +d/O.&:&U1SDYZs4<&6!7Qu.!WHC'9Ee/Ps3aL2dJn^~> +d/O-8-iO/J"AAPa$"hiBee\>e!<<;t!!#fSrr@';9Ee/1s5c-.dJn^~> +d/O-8?iG'HED-+$#r2J\! +d/O-8DZ5b!OA5OE#ui]:1fe$m@:3R=?iZ:Jrr@*<9Ee/1s5c-.dJn^~> +dJj:I<=8^,!%7P8$"hiBedDKY!<<;t!!*DuNrK*>rCdAhWW2KGl-]N]~> +dJj:IrCdAhWW2KGl-]N]~> +dJj:IrCdAhWrMTHlI#W^~> +dJj6n9Dnnl0)/*HRb69D"T\T(!!W&r!7Ho-!2]Wf"\jmSoL.6Ws*t~> +dJj6n9Drl2>kgu!)?9a<"9AK'!!W&r!7Ho-!2]Wf"\jmSoL.6Ws*t~> +dJj6n:&U1SC%t@.:GXd`?=@5M?t/h;!8W\8!2]Wf"\k!VoL.6Ws*t~> +dJjEE-NX>P"AAM`$(BN!ecc$R!<<5q!!$VkrrBV.9Ee.-s7Bp/dJn^~> +dJjEE?ZL1,ED-(##oWdD!<`B&!<<5q!!$VkrrBV.9Ee.-s7Bp/dJn^~> +dJjEEDNU'COA5LD#u +dJj5R$N:),$MR4#Rb69D"T\T(!!;io!#(Cm!7Ld="Bk`rKosd_J,~> +dJj5RDZ4YVDYHg2)?9a<"9AK'!!;io!#(Cm!7Ld="Bk`rKosd_J,~> +dJj5RM>iV;M>'[M:GXd`?=@5M?t&b:!+h2j!7Ld="BtfsKosd_J,~> +df0C-9*G4q!&"">$(BN!ecc'S!<<2o!!(u=rrD<]9Ee;hs.O`1df4g~> +df0C-96'rO!*o7l#oWdD!<`E'!<<2o!!(u=rrD<]9Ee;hs.O`1df4g~> +df0C-9p#@:!,;1$#uMrrD?^9Ee;hs.Of3df4g~> +df0?Z0)bnQ"AAJ_$(BMtec>dO!< +df0?Z>lJaEED-%"#oWdE!<<-#!< +df0?\C&X4qOA5IC"]$p21gXVi?iXX.?i[3frrMpmrCdAhlMnk(o[ +df0?"$N:),$MI."Rb63B!p.df4g~> +df0?"DZ4YVDY?a1)?9d=!!*'#!!2`m!%X-1!WH*t9Ee/:s5>p.df4g~> +df0?"M>iV;M=sUL:GXga?=@5M?t&_9!-F;%!WH*t9Ee/:s5?!0df4g~> +e,KLJ;$?k"!&!t=$(BMtaoMMC!< +e,KLJ;/uSU!*o4k#oWdE#6=i*!< +e,KLJ;3:d>!,;.#"&C^03W*7b@J+"/@I'!S!+u1'"\l9%n29U]s*t~> +e,KI19Dnnl9D2$cY1V=J! +e,KI19Drl29D2$c#QOl1!!*'#!!2]l!2ttY!.t/C"\kHcoL.B\s*t~> +e,KI1:&U1S:%h6e2D[0M?=7/L?t&\8!6($!!.t/C"\kHcoL.B\s*t~> +e,KHV-iO/I$M@(!Y1VCL! +e,KHV?iG'GDY6[0#QOl1! +e,KHVDZ5auM=jOE2D[0Mra5e9?t&_9!Ffr-rrAMd9Ee.5s7Bp2df4g~> +e,KGo$N:),-hU.>Y1VCL! +e,KGoDZ4YV?hI)!#QOl1! +e,KGqM>iV;DY6[02D[0M?t!GO?t&_9!c(O$OT,<`r(I6!rq))1df4g~> +eGfRK:Ak4o0(hmEb1P@h!!*'#!!2cn"ASps@ePra!64q1"]>*qTlp"Vs*t~> +eGfRK9`8u3>kLbs#64`/!!*'#!!2cn"AJjr@ePra!64q1"]>*qTlp"Vs*t~> +eGfRK;#QLVC%Y.%3AWHOra5e9?t&b:"DRo:@eZ#b!64q1"]>*qTlp"Vs*t~> +eGfR20)bnQ"AAD]$-LoQXoJJ&!< +eGfR2>lJaEED,su#mUG1#QOl*!< +eGfR2C&X4qOA5CA#rsdt2IKs$@:3O +eGfQ[-iO/I$M7!ob1P@LrW!!#!!2ip#R`Ql6o+ukS*H4;!VB.c9Ee/7s5c32e,Op~> +eGfQ[?iG'GDY-U)#64`0rW!!#!!2ip#R`Ql6o+ukS*H4;!VB.c9Ee/7s5c32e,Op~> +eGfQ[DZ5auM=aID3AWHLr*TM5pg=A=3<;N*"XKZ+PQ([U:Amii:!EY!3V1`"J,~> +eGfQ'$N:),-hU.9:!2,@Y5SD&!< +eGfQ'DZ4YV?h@"o#64`0rW!!#!!2ip#u(RR9M#mF"\J!DrrMsqrCdAhY5e#JlI5c`~> +eGfQ'M>iV;DY-U)3AWHLr*TM5pg=DC"Y38<'.F)Vm?IVOr)N\h"\l0"nMT^_s*t~> +ec,^M;[!($!&!q<"AR%kfWP2R!W`9%q#CdB,83XB:-/Jr1Kj=7rrN+*rCdAhQ2gJEg!ftO~> +ec,^M<,qnX!*o.i!s\f+#lXf*!< +ec,^M +ec,[39E"tn"AAD]"ARJ"fWP2R!W`9%q>^s*9)q@R9]:+--a!H0jH]`FFo=u;9l^4*B!p+fJ,~> +ec,[39E&r4ED,pt!s&B%#lXf*!</+~> +ec,[3:&^7UOA5@@"#Mei2Z@(c@:3O??k$O=!(9LSiH6(gXoOLJQ2^i,rCdAhErYcD[F>/+~> +ec,Zd0)bnP$M7!p:"ItLE;fh=!<:hJrr%ELI\d]\jHffGOo.lU>Q48KOjj>\~> +ec,Zd>lJaDDY$O(!<<**rW!!#!!2or%Q>%G9MNA&rIP'!V%["mQN$rIr(I5trq(o,e,Op~> +ec,ZdC&X4pM=XCC1c$p`ra5e9?t&n>%V-4u9MNA&rIP*"V&NV(QN$rIr(I6!rq(o,e,Op~> +ec,Z8-iO/I-hL(4:&`cLDu]n=!< +ec,Z8?iG'G?h6tj!!W]/!<<-#!W)j."ZHTV9MA4-rr%^!_R1%3jHolHV>O!j;>L6cH1]VdJ,~> +ec,Z8DZ5auDY$R$1B:5M?ijbE@JaFD@Q=T`9MA4-rr%^"`jHI8l^.VOV>O!j;>L6cHh>hfJ,~> +ec,Ya$N:),0(_g;:&`cLDu]n=!< +ec,YaDZ4YV>k:Yg!!W]/!<<-#!W)iu9aWEL9F=YUrr7[tbec)&lBqSO])55*:$M\t<:n]?J,~> +ec,YbM>iV;C%G$t1B:5M?ijbE@JaF6C'lKi9F=YUrr7\!bf2D+m?mnR]_kG,:$Vbu +f)GdL;>gOr9CtmX:&`cLDu]n=!< +f)GdL;>kM89CkjV!!W]/!<<-#!W2p""Yg?Ur(IH#mf*6W`ltsnWUlPX!7h!@"\m>CiA^AXs*t~> +f)GdL;>lUW:%M'X1BpW_@:3MO@JjL8@PS9^r(IH$mf*6W`ltsnWq2YY!7h!@"\m>CiApMZs*t~> +f)Gs5/cl(W"AAA\!)K>9s3Js6RfQjbRfia~> +f)Gs5>]Ok)ED,msrW!-.!!*'#!!2ut!_j"VqFh61q>^K@c-2XX?LXE`!9sDT"\l9%n2'@Zs*t~> +f)Gs5Bp"O>OA5=?r\FOMra5e9?t&t@!br&tqFh62q>^K@c-2^Z?LXE`!:'JU"\l9%n29U_s*t~> +f)Gc]-iO/I$M-pkAH(3_Du]q +f)Gc]?iG'GDY$O%;Z6Xt#QOo)!!!&u!! +f)Gc]DZ5auM=XC@;>r?Q:LIW1?iXX6?isjq$;(%e$B"i_s7":WXpSe4S,WN`:Amii9qD=V7,?Am +J,~> +f)Gc9$N:),-hC"3B)^EaDu]q +f)Gc9DZ4YV?h6qk1B%7T#QOo)!!!&u!!5Ot/,)^EU&P)loZtaa$=`XtrrN'trCdAhK)bII^=<15~> +f)Gc9M>iV;DY$O%<;nZT:LIW1?iXX6?ik +f)Gbb$N:),0(Va:B)^Ea:Bgn"!!!&u!!5Ol8bPgbY5\J$q9R9f$>]:)rrN+*rCdAhB)hLPS^d[i~> +f)GbbDZ4YV>k:Vh1B%7T"9nr,!!!&u!!5Ol8bPgbY5\J$q9R9f$>]:)rrN+*rCdAhB)hLPS^d[i~> +f)GbcM>iV;C%G!u<;nZT;.O,7?iXX6?ii_"8bPgbY5\J$q9R9f$?#L,rrN+*rCdAhB)hLPS^d[i~> +fDbmN;uHat9CkgWB)^Ea:B^h!!!!'!!!4Db,P=_<9u6i/s7t!bT`KH:Sc8\4r(I8mr;W%9o[Wtl~> +fDbmN<;gh;9CkgW1B%7T"9el+!!!'!!!45],P=_<9u6i/s7t!bT`KH8Sc8\4r(I8nqYuh7o[Wtl~> +fDbmN +fDc$H/cl(W"S,4dB)^Ea:BL^u!!!'!!!5mr7.a.\:"fOGs7sm_PlQI8T)SeUr(I8gnc,k.o[Wtl~> +fDc$H>]Ok)EUld'1B%7T"9Sc*!!!'!!!5jq7.a.\:"fOGs7sm_PlQI8T)SeUr(I8gnc,k.o[Wtl~> +fDc$HBp"O>ORc'F<;nZT;.=#6?iXX7?ik'D7.a.\:"fOGs7sm_PlQa@T)SeUr(I8gnc,k/o[Wtl~> +fDblt-iO/I$M$jjB)^Ea:BCXt!!WH(!!,.g8b5UV47N7L#5QThJcU`-TDnnjr(I8gg&KJlo[Wtl~> +fDblt?iG'GDXpI$1B%7T"9J])!!WH(!!,.g8b5UV47N7L#5QThJcU`-TDnnjr(I8gg&KJlo[Wtl~> +fDbltDZ5auM=O=?<;nZT;.3r5?j:%I?su,(8b5UV47N7L#5QThJc_8;TDnnkr(I8gg&KJlo[Wtl~> +fDblN-iO/I-h9q2B)^Ea/cl.S!!WH(!!skh8b5UW6oY)Drrr5Eb]*uHTDno-r(I8g\c:bMo@ +fDblN?iG'G?h-kj1B%7T"9J])!!WH(!!skh8b5UW6oY)Drrr5Eb]4&ITDno-r(I8g\c:bMo@ +fDblODZ5auDXpI$<;nZT +fDbl:$N:),0(M[9Rf:q@/cc(R!!NB'!%/F7nk9*V)gVD^"o6Kg@M>*$rrCmQ9Ee.as7%u2ec1.~> +fDbl:DZ4YV>k1Pg)ZB^<"9AW(!!NB'!%/F7nk9*V)gVD^"o6Kg@M>*$rrCmQ9Ee.as7%u2ec1.~> +fDbl:M>iV;C%=pt:]<-OZ4rrCmQ9Ee.as7%u3ec1.~> +fDbkk"TAH&0(M[9Rf:q@/cc(R!!NB'!) +fDbklEW0tY>k1Pg)ZB^<"9AW(!!NB'!)3J^nOs!G"igN@"o6Kg=X0]8rrMXarCdAhIfK%.e^a\M~> +fDbklOT(@BC%=pt:]<-O +fDbhMr;lsloLo<]9q)(6!\OKUrW!*&!!#ap8b#IV8I@lRrVm&sbfid9\t]3*q,.)a"\iV/oObAY +s*t~> +fDbhOrGhm2oLoNc9c=!3!<`E*rW!*&!!#[n8b#IV8I@lRrVm&sbfid9\t]3*q,.)a"\iV/oObAY +s*t~> +fDbhSrK.(SoLoNc9i!Q$1fe$ora5nE,q,.)a"\iV/oObAY +s*t~> +f`)-R/cl(W"SGIg9`e1Le,Iu$(BFX;!!NB'!':W]n4Wp7'<1^(rrr,B_)k6:U]1Ao>Pq.t;uQ?G +Ok'J^~> +f`)-R>]Ok)EV3$*9aFURB`J,6"p"i*!!NB'!':W]n4Wp7'<1^(rrr,B_)k6:U]1Ao>Pq.t<;lHH +Ok'J^~> +f`)-RBp"O>OS)U]1Ao?2RA! +f`)!6-iO/I$MR6o9a"ImnGhbPfE)ii"8i-$""P<^n4WsQ!--HcrVm&mc+4iuo:u['2:A"R[ +FnF8bJ,~> +f`)!6?iG'GDYHj)9aXmsnGdJ.!!*9)"8i-$""P<^n4WsQ!-6NdrVm&mc+4iuo:u['2:A"R[ +FnF8bJ,~> +f`)!6DZ5auM>'^D9aXmsnGeJ(1Gi-@@f0U9@OiBhn4WsQ!-6NdrVm&mc+G!$o:u['2:A"R[ +FnF8bJ,~> +f`(ur-iO/I$MdBq9`eq7q>UBol2K<:(BFX;!!E<&$R6nb9Ee!,-cXj=rVm&jc*7Flr1s>mL&=UJ +:$)Dp;tSZ@J,~> +f`(ur?iG'GDY[!+9`eq7q>UBuE<#t>"p"i*!!E<&#U:S_9Ee!,-cXj=rVm&jc*7FlqP=,kL&=UJ +:$)Dp<:ncAJ,~> +f`(urDZ5auM>9jF9`eq7q>UBuNAE@ImL&=UJ +:$)Dp +f`(u_$N:),-i?XA9h\<2ci3kB!9F.3!Z(k=rW!'%!#?M(mS!a@$C/ior;QrcbaJNarh]VpU&7Rf +9ud4l2tPW#J,~> +f`(u_DZ4YV?i3S$9h\<2ci3kB##G:"! +f`(u_M>iV;DZ!039h\<2ci3kB#'2RV1fe$nra5k;?s4L"mS!a@$C/ior;QrfbaJNirh]VpU&7Rf +9ud4l3V1i%J,~> +f`(uA"TAH&0)eQE9`e1\l1t>`jOi,9$NU>.!!E<&-PJ6&9EdukgP#r(I8g +WW2HDmahDg~> +f`(uAEW0tY>lIFs9`e1\l1t>`:]LIr#QY#+!!E<&-PJ6&9EdukgP#r(I8g +WW2HDmahDg~> +f`(uCOT(@BC&Ug+9`e1\lM:GaF#,U/=^bbgP#r(I8g +WrMQGmahDg~> +f`(u("TAH,/keu6>H.>jrrD-ZfE)3W!r`0&!<>%c47,`A,6PL#c1Cl5"Qdj:)mZ@@!6k@7"\k9^ +o/kdZs*t~> +f`(u(EW0t_>YIjd>H.>jrru:"!!39(!r`0&!<>%c47,`A,6PL#c1Cl5"Qdj:)mZ@@!6k@7"\k9^ +o/kdZs*t~> +f`(u(OT(@HBhV5q?)mYnrs!O#1GrKI@K'X;@:3UQ47,`A,QkU$c1Cl5"Qdj:)muRC!6k@7"\k9^ +o/kdZs*t~> +f`(q_r;m*s9l\#Jp&>3Nf\"aY!WLk7.!YP3sCYgbg6+_rrh0%:,TndrrD0Y9Ee.5s7BX/ +f)L7~> +f`(q_rGi$79le)Kp&>1R!!!$&!WLk7.!YP3sCYgbg6+_rrh0%:,TndrrD0Y9Ee.5s7BX/ +f)L7~> +f`(qerK.4Z9le)Kp&>2&1G^jo@JsR:@:4'Y7.!YP3sCYgbg6+_rrh0%:,U%hrrD0Y9Ee.5s7BX1 +f)L7~> +g&Djq7.!YL8HhifbQ68nrVm'#e\3P6n>Q?foM5?Y"\i>& +oR`O_s*t~> +g&D]Ok)>`.A.rsgpe!!*3'!!!$"!<>gp7.!YL8HhifbQ68nrVm'#e\3P6n>Q?foM5?Y"\i>& +oR`O_s*t~> +g&DBo:a;rrlac1GiEHrEob:?to^1m7[RQ"\o!?!S.2JrrrDP^+34QW;cnj:Amii9j[hk +Jst9jJ,~> +g&D6S:'q>tnF6JXfF6Ha!^C5!W>sp9Ee;hs-eQ3 +fDg@~> +g&D6S:2Xs=nF6Gf.KBSP!!*'"!<<-#9`RTJ9EHFX[JnAMiV`]ZqU2bYD>L73!W?!q9Ee;hs-eQ3 +fDg@~> +g&D6S:5OgunF6G]<&6Eh?=Ee?"CY\Q!(?0I![J_mrlbB$r;Qrud^9F!r2K\srDibh"]>*qRY(1` +s*t~> +g&D0E=`+!&rsmc8g"$0)!!!$"! +g&D0E=`+!&rrNu:"TAH%!!WH(! +g&D0E>&F*'rrkkJ2DefMrEob:?s3S&lq@IB"dT&1!9O.Y"S^65!1'S`!+Pk""\nFb\RP3_s*t~> +g&D-D1Tpjq8aK+P8HE;ubQ./1rrhi8E>,4Krr@?B9Ee/Ds4Kg4 +fDg@~> +g&D-D1Tpdo8aK+P8HE;ubQ./1rrhi8EYG=Lrr@?B9Ee/Ds4Kg4 +fDg@~> +g&D-D26QNM$KfLRrr,AC2*"uOrEob:?r-nrlq@IP!b2)O!:]pd"RsWU'=k+B!.4W;"\m\MfgPJa +s*t~> +g&D-D'@$+JrW!Karn#fTaoMMC!!*'#!)!Jelq@LQ)^if,bQ6&cr;QoabY^IEWrE'ar(I8g])V"P +n^mek~> +g&D-D'@$+JrW!K\rWrQ+#6=i*!!*'#!)!Jelq@LQ)^if,bQ6&cr;QoabY^ICWrE'ar(I8g])V"P +n^mek~> +g&D-D'@$+Jr_F)Hr]2hm3FH9'?t!GO?qgerlq@LQ)_&r.bQ6&cr;QobbY^IGWrE'ar(I8g]`77S +n^mek~> +g&D-C"l]+R!T=.Z!"UX4f\"=I!<<<)!!*'f$;'PW!\k.\r6,2lrqud!iP$7?q5aMqWVfEn9r7m[ +2 +g&D-C"l]+R!T=.Z!"UUe!!3B+!<<<)!!*'f$;'PW!\k.\r6,2lrqud!iP$7?q5aMqWVfEn9r7m[ +2 +g&D-C"l]+R!TmA[:Ch5%1Gq1#@:3VS?t!G2$;'PW!\t4]r6,2lrqud!iP$7?q5aMqWr,No9r7m[ +2 +g&D- +g&D- +g&D-=!:BIZ!rdIArD*Pm:GXgfra5t?@:3MO3t4dI9EIT^K) +g&D-0$Lm]f!*B'u%fricfZF0p!!NE(!<>%l8aB%O8IA&cbQ-o*rri/DFVD'^rrCmQ9Ee.5s7Bd2 +fDg@~> +g&D-0$Lm]f!*B'u%flq9!=&T*!!NE(!<>%l8aB%O8IA&cbQ-o*rri/DFVD'^rrCmQ9Ee.5s7Bd2 +fDg@~> +g&D-0$Lm]f!/^VL%o>/?1c\rP?t*PP@:2)/8aB%O8IA&cbQ-r+rri/DFVD0arrCmQ9Ee.5s7Bd2 +fDg@~> +g&D,i)tES#!JpjV!"]/5b1P@L!!*''!WW6%0b[.D9`H=;\bjSOc1Lr6"R& +oR`@[s*t~> +g&D,i)tES#!JpjV!"]/5#64c1!!*''!WW6%0b[.D9`H=;\bjSOc1Lr6"R& +oR`@[s*t~> +g&D,i)tES#!OGW%:Cp?%3AWKM?t!GP@:3MP1)!7E9`H@<\bjSOc1Lr6"RX#n:#2rO!:KbY"\i>& +oR`@[s*t~> +g&D,M47VnAr;coorn%U]!!*'%!WW6'.iV(F9EI-[Rek5/df'+D"Qd0'EW*'?!VoUj9Ee;ks-nK0 +f`-I~> +g&D,M47VnAr;dGl!!!$*!!*'%!WW6'.iV(F9EI-[Rek5/df'+D"Qd0'EW*'?!VoUj9Ee;is-nK0 +f`-I~> +g&D,M47VnArD4$j1G^jG?t!GP@:3MQ.iV(F9EI3]Rek5/df'+D"Qd0'G5\TD!VoUj9Ee;ks.+W2 +f`-I~> +g&D,*?LdUd"F*=*R/-a6$a'I1!!33%!OPl[5SrrN+%r(I8hoDcX0 +o[s1o~> +g&D,*?LdUd'6lo9R-+GL!=/Z+!!33%!OPl[5SrrN+%r(I8hoDcX0 +o[s1o~> +g&D,*?LdUd';p86]'D..1cA`M?t!JO@:C`+8a8tN6i_i7bQ-Jsrri>OPldkdrrN+&r(I8hoDcX1 +o[s1o~> +gA_6ED0>7G!;-9C$a'I1!!33%!;O:%rr?d29Ee/Hs4od.f`-I~> +gA_6ED0>7G&)I9d!=/Z+!!33%!;O:%rr?d29Ee/Hs4od.f`-I~> +gA_6ED0>7G&*5T'1cA`M?t!JO@:CK$8a8tN8Hi,hbQ-c&rri)@>rBa,rr?g39Ee/Hs4od.f`-I~> +gA_6E;3(&D!;-9C$a'I1!!33%! +gA_6E;3(&D&)I9d!=/Z+!!33%! +gA_6E;3(&D&*5T'1cA`M?t!JO@:CK-8a8tN8K02SbQ./1rrhGt'6aAYrr@ZK9Ee/1s6_c4f`-I~> +gA_6E0sU-G!;-9C$CUqq!!*-$!>ZV%kY)%*)n#Ib!RL]Brri>SNXDPbrrAVf9Ee.is78>2f`-I~> +gA_6E0sU-G%a4nQ!?(q=!!*-$!>ZV%kY)%*)n#Ib!RLW@rri>SNXD;[rrAVf9Ee.is78>2f`-I~> +gA_6E19p6H%b3?k1f%Lf?t!JO@9OU!kY)%,)n#Ib!RL]Brri>SNXDhjrrAVf9Ee.js78>2f`-I~> +gA_6E'?p.L#km]7_84gss6]g<$ZH(H!!*-$!>?[s8a/nM2%?PZbQ->orri/68P\6KrrB>%9Ee.U +s7B70f`-I~> +gA_6E'?p.L(\[:F_84gss1&+0!=/Z+!!*-$!>?[s8a/nM2%?PZbQ->orri/68P\6KrrB>%9Ee.U +s7B:1f`-I~> +gA_6E'?p.L(\d@G_84gss2ZuP1f%Lf?t!JO@:^]'8a/nM2%?S[bQ->orri/68P\EPrrB>%9Ee.U +s7B=2f`-I~> +gA_6D"l8qQ$MMK"JsrjFOb1.2rn%Wu!!*'#!WW3&0`W^lr^lKN!^m'Op<3Nur;Ql\\HRVirrCCC +9Ee.9s7CH1f`-I~> +gA_6D"l8qQ)YV12JsrjFOb1-S!!!$*!!*'#!WW3&0`W^lr^lKN!^m'Op<3Nur;Ql\\HRVirrCCC +9Ee.9s7CH1f`-I~> +gA_6D"l8qQ)Y_73JsrjFOb1-b1G^j`?t!GO@:3JP1&rgmr^lKN!^m'Op<3Nur;Ql\\HRnqrrCCC +9Ee.;s7CH1f`-I~> +gA_6B!9s:Y"SS+Leb8t;$gFXB[+ErL!!*'#!WE'+6othY!=]tm.lBEf7.s1T6oQUrIeCnboDS[l +rmH'2]!;88l243Z9k+,%NfNbbs*t~> +gA_6B!9s:Y"SS+Leb8t;$gFXB.gZ4^!!*'#!WE'+6othY!=]tm.lBEf7.s1T6oQUrIeCnboDS[l +rmH'2]!;88l243Z9k+,%NfNbbs*t~> +gA_6B!:'@Z"S\1MebB%<#3r4?;`Za2ra>b7ra6(]3t22k%3$QC2*:e*p.5BT3@b)YoumF-rVm$" +dX)qGZ2Xghr(I;h@fHCfNqD$)J,~> +q#:?ZjSo;C!Ufd`"7qPHq>1*uq)YcrNcG(q,.&`"]P@!WH%R`s*t~> +q#:?ZjSo;C!Ufd`"7qPHq>1*uq35l=.gQ+U!!*-"!$))Q)d@>N.jGuB"T\T'!)YcrNcG(q,.&`"]Y?uWH.Xas*t~> +q#:?]jSo;C!Ufd`"7qPHq>1*pq5/@[;c!C#s'bn7*FX.2?#i=`,T@0r!<<*#"Uu+Y)]KFt"T\W2 +'.\+rbQ6/jrVm#l_'EdoZMst$;>a)k +q>UNX!4(_d!ndqMqYpW^K"h!Z$16?OM0L9P"UbD0!#h^7::\T_[AfXQKmn#A6oR%P.kse%EJ:6g +_XktOiV`]Xh3nMBZMst)=o:qs:@nM.;=rQAJ,~> +q>UNX!4(_d!ndqMqYpW^K"h!Z$'PZGEG?a*":,),!#h^7::\T_[AfXQKmn&B6oR%P.kse%EeU?h +_XktOiV`]Xh3nM;ZMst)=o:qs:@nM.;=rQAJ,~> +q>UNX!4Cqg!ndqMqYpWaK"h!Z$)fm`GBR_1?5V%t:@nM.;=rQAJ,~> +qYpZ^)ZY?KrrU1Znb`=fq6@3ursA)Ff[j_\/5/_Fqu?m6UI5,l^>7!5mf!.gq8#-slE^EiC]$j0 +:#Z-247h/*J,~> +qYpZ^)ZY?KrrU1Znb`=fq6@3urs=kh!!tE+/5/_Cqu?m6S4!Be^>7!5mf!.gq8#-slE^EiC]$j0 +:#Z-247h/*J,~> +qYpZ_)ZY?KrrU:]nb`=fq6@3urs>V[1HJK^CJ7E)r*T\EX$d"u^>7!5mf!.gq8#-umBZ`lDZ!03 +:#Z-247h/*J,~> +qu6fC"^Ynljo5Ci/+NN:!q:g5pAY-Wrn%Bn#p`25.f02M'/=Yb'8"'XbQ6&grVlu]W<&?krr@cN +9Ee/5s6_]2g&HR~> +qu6fC"^Ynljo5Ci/+NN:!q:g5pAYG=!!!$*#p2i/.f02M'.e;]'8"'XbQ6&grVlu]W<&?krr@cN +9Ee/5s6_]2g&HR~> +qu6fC"^Yqmjo5Ci/+NN:!q:g5pAYGY1G^j`@V8A/>l.n5CibCf'8"'XbQ6&grVlu]WWB$'rr@cN +9Ee/5s6_c4g&HR~> +r;Qrb)hmfrIc^S2Tg\GJrrV#=q=aggl2K^[XF;$0u_;NN;iVicZrPD6.lEgKj +U&7Rf9sO`i45nlmJ,~> +r;Qrb)hmfrIc^S2Tg\GJrrV#=q=agrE<#t>#QPW56n1S2q>^[XF;$0u_;NN;iVicZrPD6.lEgKj +U&7Rf9sO`i45nlmJ,~> +r;Qrc)hmfsIc^S2Tg\GJrrV#=q=agrNAE@I:LI@#9jD[IqHsJPHkS$(_;NN;iVicZrPhN2mBcfm +U&7Rf9sO`i45nlmJ,~> +rVm*#?=*6nBn#1D!fC"Jqu6`JSb`!Z!9sL8#u:O:78"D$Grl?0!!NF*@KB32i622mrVluaXoOfp +rrB>%9Ee.]s7B70g&HR~> +rVm*#?=*6nBn#1D!fC"Jqu6`JSb`!Z%<2@J!<`B<6q\;#Grl?0!!NF*@KB32i622mrVluaXoOfp +rrB>%9Ee.]s7B:1g&HR~> +rVm*#?=*6nC4>:E!fC"Jqu6`JSb`!Z%?3/"1f7Xa9hef7HZ!%9Ee.]s7B=2g&HR~> +rVm)G!Tj@OBn#1D!dSMMqu6`JSb`!Z!9sL8$VpdQ9M?3,,\M3M#Q"K)$YE-7BtiTN!RguHrri;? +:0ID"rrC4>9Ee.Es7CH1g&HR~> +rVm)G!Tj@OBn#1D!dSMMqu6`JSb`!Z%rhRL!<`EQ9M?3,+(o[H#Q"K)$YE-7BtiTN!RguHrri;? +:0ID"rrC4>9Ee.Es7CH1g&HR~> +rVm)G!p0IPC4>:E!de\Pqu6`JSb`!Z%uiA$1f7Xc9MAW!B6S`=@f'O:AW':bC;/]O!RguHrri;? +:0RJ#rrC4>9Ee.Es7CH1g&HR~> +rr35n7"519nS*I7rrV_-Fo)+>eXcO0rrD-ZfE=tM!]DP-!!NTYFCuj(qZ$d>Fse5h_;i`>jo,2] +jf&9e[/U-br(I;hC]FEpMY,X&J,~> +rr35n7"519nS*I7rrV_-Fo)+>eXcO0rs2F$!!*3&!]MV.!!NTYFCu[#qZ$d>Fse5h_;i`>jo,2] +jf&9e[/U-br(I;hC]FEpMY,X&J,~> +rr35n7"519nS3O8rrV_-Fo)+>eXcO0rs3[%1Ghs:@8'r*?j1"TI!944qd9SILaa:'_;i`>jo,2] +jf/Bq[/U-br(I;hDZB`sNV(s)J,~> +rr35?$L[ronS*I7rrV^sK)5KKeXcO0rrD-ZfFC[W!X/W*!!*'"#s3E;'Dhb5!CUo:26#Z\!R:H> +rri;;0l?otrrMaer(I8srr8s;o\0=q~> +rr35?$L[ronS*I7rrV^sK)5KKeXcO0rt8-.!!*3&!X&Q)!!*'"#s3E;'Dhb5!CUr;26#Z\!R:H> +rri;;0l?otrrMaer(I8srr8s +rr35C$L[ronS3O8rrV^sK)5KKeXcO0rs3[%1Ghs:@:!C??j'qVHZiut?j0teEXan+jNIYLq>UBs +rPgU0rjDb,oM5 +s8N/j;0i0@!pLY]k5PMQ9U5JS!nEk;pAY-Rrn%HO!!3-$!!!&u!!ETrIS1(G!!NO->6.U3jid_\ +rVlu]Jg8^OrrN'sr(I8kq>\H3o\0=q~> +s8N/j;0i0@!pLY]k5PMQ9U5JS!nEk;pAYLs!!!$&!!3-$!!!&u!!ETrIS1(G!!NO->6.U3jid_\ +rVlu]Jg8^OrrN'tr(I8kq>\H3o\0=q~> +s8N/j;1&1G^jb?t!GOqHsG8EIMq>qd9S:M-U-Z\`M$8h>R?U +janc/[Jp:+L76;=rTBJ,~> +s8N/b!TF%X!b,=&k5PMQ2lZZR!nEk;pAY-Jrn%H.!!3-$!!!&s!!E[&IRFM>!!NjE9*&b@k0*hs +rr3)u^&b"9rr?[/9Ee/Ys5?'2gAc[~> +s8N/b!TF%X!b,=&k5PMQ2lZZR!nEk;pAYLY!!!$&!!3-$!!!&s!!E[&IRFM>!!NjE9*&b@k0*hs +rr3)s^&b"9rr?[/9Ee/Ys5?'2gAc[~> +s8N/c!TF%X!b,@'k5PMQ3NDrU!nEk;pAYD*1G^jg?t!GOpg=59Edi";qd9SAMbO7f^?3W>oD\al +r4W64[/U, +s8N=h2t?qJeH+XjrrV^8^A@j2eXcO0rrCjRfEX#/!WW6$!!2or"U>]GGrl?0!!O?c-PMBRkfa(X +rr2p!eMV?Rrr@NG9Ee/Ds6_]4gAc[~> +s8N=h2t?qJeH+XjrrV^8^A@j2eXcO0rsL^b!!*3&!WW6$!!2or"U>]GGrl?0!!O?c-PMBRkfa(X +rr2p!eMVBSrr@NG9Ee/Ds6_]4gAc[~> +s8N=h3V!.LeH+XjrrV^9^A@j2eXcO0rsN0i1Gi-?@:3MO?t&n>"_)%dHZ!%.2.TTkfa(X +rr2p!eMVBSrr@NG9Ee/Ds6_c6gAc[~> +#ljELScA`[7"44s!q?rMqYpWISb`!ZrR_?-!!<3%!!!&p!!NTQB65[0qZ$aeE=Fe)kfa%krr3)l +Bh@9krrAMc9Ee/)s7822gAc[~> +#ljELScA`[7"44s!q?rMqYpWISb`!Z$Ru,V!<`B)!!*'"!VcWu#9RT#/-l%P"@R5=26#f`!9sL_ +"7p4uiO/[cRf#h_9tpZ!2s&cnJ,~> +#ljEMScA`[7"44s!q?rMqYpWISb`!Z$WJo<1fe!n?t!GN@JF46@V9n4CL[0K"FYG&26,la!:'R` +"7p8!iO/[cRf#h_9tpZ!3T\upJ,~> +#liudl2UeJ!9O4[!;#FS!q6QQqYpWISb`!Z!8@G)#8[RH!!*'"!VQKs#:st-*!cBA"Tqh1!*-Sp +bQlJms8W(p'@O;g!3Z5n"\kuroL[Kbs*t~> +#liudl2UeJ!9O4[!;#FS!q6QQqYpWISb`!Z$PrdC! +#liudlMpnL!9O4[!;#FS!q6QQqYpWISb`!Z#Y$U+1fe-r?t&Y7"_)7pH#$me?j1"r>l[m8lHBLZ +rVuosV%_FfrrB5"9Ee.js7An2gAc[~> +%0)bXnc/W[1\(MFfo#"n!q$*NqYpWISb`$[!WLgPfEW2r"TSQ'!!2]l":7/=<"o-/"V,-4"`_9B +bQ-c(rrUjS]!_P<`r&L69q)+S@^XqiJ,~> +%0)bXnc/W[1\(MFfo#"n!q$*NqYpWISb`$[%/q%C!!*9-"TSQ'!!2]l":7/=<"o-/"V,-4"`h?C +bQ-c(rrUjS]!_P<`r&L69q)+S@^XqiJ,~> +%0)bXnc/W[2=^_Hfo#"n!q$-OqYpWISb`$[#Q@1K1Gi-A@f9[7@J!q1@W$X:Ac#j=Bo>@_Ek^k` +!9O4[!ndUe[Jp6Hr(I8gRfE"h[G(Y2~> +#OtrKs8VUaMZ3VW0`]ParrVHcl2(D]eXcO1rrN,Qrn%Gl!sJZ*!!!&j!!EZtIS1(G!!Olr,9)ZZ +mE>dZq>^Kg"f&L*!9*iL"\jUKoR`Ocs*t~> +#OtrKs8VUaMZ3VW0`]ParrVHcl2(D]eXcO1rs\lC!!!$(!sJZ*!!!&j!!EZtIS1(G!!Olr,9)ZZ +mE>dZq>^Kg"e<"#!9*iL"\jUKoR`Ocs*t~> +#OtuLs8VUaMZ3VW1'#YbrrVQflMCM^eXcO1rs\lr1G^jg@U`_R?smF6?j(%\IWB#s?j1Y.,TDc[ +mE>dZq>^Kh"fo'2!9*iL"\jUKoR`Ocs*t~> +%IahTs8VKjg&K2."TZm5rrV9_meZqbeXcO1rs\kXf\"a_!sS`+!!!&h!!Es7IRFM?!!NBkE=F_# +mE>Rhrr3!oK=1^[nP/sU##/h3s-8<1g])d~> +%IahTs8VKjg&K2."TZm5rrV9_meZqbeXcO1rs\i4!!!$*!sS`+!!!&h!!Es7IRFM?!!NBkE=F_# +mE>Rhrr3!oK=1^[nP/sU##/h3s-8<1g])d~> +%IahTs8VKjg&K2."TZm5rrV9_meZqbeXcO1rs\ie1G^jj@UrkT?smF4?j(%_IW8ip?j0teFq$=* +mE>Rhrr3!oMm`QcnP/sU##/k4s-8<1g])d~> +%H.?Us8U=WnC8mh^&cRErrV![nG<.deXcO1rrN&Lrn%8U!XAT'!!;Th"U>rNGrl9/!!NO-?3*p6 +n&ts]rVunkEOGfIr)*Dd##/>$s0?8/g])d~> +%H.?Us8U=WnC8mh^&cRErrV![nG<.deXcO1rs/B,!!!''!XAT'!!;Th"U>rNGrl9/!!NO-?3*p6 +n&ts]rVunkEOGfIqGI2b##/>$s0?8/g])d~> +%H.BVs8U=WnC8sk^&cRErrV![nG<.deXcO1rs/H_1G^mp@:]=E!+G>("_)(eHZ!Nr)*Dd##/D&s0ZJ2g])d~> +%B2)Ps8RdQj]+7U^&cRErrUU^nbW7eeXcO1rs\hWf\"aY!X8W*!!WMl!!NTQB5oI-qu?m1AkN/= +^@9>MiW&r6@fEh9!WHF'9Ee;ks3aL2g])d~> +%B2)Ps8RdQj]+7U^&cRErrUU^nbW7eeXcO1rs\`1!!!$&!X8W*!!WMl!!NTQB5oI-qu?m1AkN/= +^@9>MiW&r6@fEh9!WHF'9Ee;is3aL2g])d~> +%B;2Rs8RdQj]+=W^&cRErrUU^nbW7eeXcO1rs\fd1G^jo@:WbS?t<^5?j1"SGBRb2r*T\BMbO7f +^@9>MiW&r6@fEh9!WHF'9Ee;ks3aL2g])d~> +%=)RUs7&LBZ2q5S^&cRErrU%VnbW7eeXcO1rrDlnfEVQ\"onZ("p4)j"U?i*A/Y^N!!O?c-PM3M +o#q9^r;Z\!iO/[cFo4o::A"SJ2tPf(J,~> +%=)RUs7&LBZ2q5S^&cRErrU%VnbW7eeXcO1rrDlo!!iW/!N*!i!-S35"]"^ijYuecs*t~> +%=;^Ws7&LB[/mPV^&cRErrU1ZnbW7eeXcO1rrDlo1C,jE@:WbS?t<^3?j1"UI!K=5r*T\DLaa!k +_=GeRc2@V>?/`3k!-S35"]"^ijZ2qes*t~> +%8i/cs6p]G4'p.T^&cRErrTG[nbW7eeXcO1rs\\Tf\+gV!=8`,!!WMh!!ETiIT.!X!!Pc1'/??" +o?7?rs8I#o[Jp5ar(I8gl2U6/mb@bl~> +%8i/cs6p]G4'p.T^&cRErrTG[nbW7eeXcO1rs\Q#!!E<&!=8`,!!WMh!!ETiIT.!X!!Pc1'/??" +o?7?rs8I&p[Jp5ar(I8gl2U6/mb@bl~> +%8i/cs6p]G4'p.T^&cRErrTG\nbW7eeXcO1rs\ZY1H%'r@:EVQ?t<^1?j'qVIWT/u?j1t%'/HE# +o?7?rs8I&p[Jp5ar(I8glMp?2mb@bl~> +%3rUes60O'"hMq%^&cRErrS`ZnbW7eeXcO1rs\_Uf\+gV! +%3rUes60O'"hMq%^&cRErrS`ZnbW7eeXcO1rr_Ea!!N9%"U4r-!!NGe!!EU$IS1(H!!NI+@KB32 +oZRH_qZ!8B[Jp5qr(I8gg&LY*h:qs[~> +%4&[fs69U("h`('^&cRErrS`ZnbW7eeXcO1rs\3L1H%'t@:WbS?t*R-?j'qZIWB#t?j1"r@KK93 +oZRH_r;WJD[Jp5qr(I8gg&LY*h:qs[~> +%0bSfs324/ +%0bSfs324/ +%0bSfs324/ +%05Yms.qe)WQ`Ss!L +%05Yms.qe)WQ`Ss!L +%05\ns.qe+Wm&\t!gWcLrrRO^nbW7eeXcO1rs\!F1Gq1!@:`hT?t*U+?j1"OH$a@:r*T\JLc#Wj +_=u.U\MYng[Jp6Cr(I8gWrM^6V;)$#~> +$j#ers*83,_9C,046>`,!qC,Iq>UNHSb`$[!;-9C#g*/K$NL2-"U!`a"U?;mE?kee!!P*!'.9?e +qof5[IK`Y^d^B)Tg&+MJ9qD=aNfNbes*t~> +$j#ers*83,_9C,046>`,!qC,Jq>UNHSb`$[%,Lsa!XA`,$NL2-"U!`a"U?;mE?kee!!Ooq'.9?e +qof5[IK`\_d^B)Tg&+MJ9qD=aNfNbes*t~> +$j,kss*J?._9C,046>`,!qC,Jq>UNHSb`$[%-99$2*#&QARJqS@Ue>)"_)4iG%tLa?j1V!)_%>o +qof5[IK``>h6m7_g&+MJ9qD=aNfNbes*t~> +$PW(1nQCH\bfmX!Z0;2inR<9^qYpWISb`$[!;-9C#g*/K$NL2-"U!Z_"U?i/A/Y^O!!NF*AHbZ5 +rlbV`Tdpe",65clrrD?^9En4Fs8Sp8o\BIs~> +$PW(1nQCH\bfmX!Z0;2inR<9^qYpWISb`$[%*S\O!=&W+$NL2-"U!Z_"U?i/A/Y^O!!NF*AHbZ5 +rlbV`Tdpe",65clrrD?^9En4Fs8Sp9o\BIs~> +$PW(1nQLN]bfm^$Z0;2inR>\XqYpWISb`$[#LtUd1c\rPAc?*;@c1Vt@VgC:An(^H"_!7'"\H-$ +bQktX.hd_]@+_me!:B\X##0gOs.sc.h#Dm~> +$R>3AnL'U)bfk&]jll^JnJ2*,L&LrL!nEk;p\t6crn%M!!!*H-!<<3(r;ciuj8];h7"/)Kqu@35 +AlA\4\u@ap@TNX3!4K<8!VT:e9En46s8Tr9o\BIs~> +$R>3AnL'U)bfk)^jll^JnJ2*,L&LrL!nEk;p\tZG!!!$)!!*H-!<<3(r;ZfuirB2g7"/)Kqu@35 +AlJb5\u@ap@TNX3!4K<8!VT:e9En46s8Tr9o\BIs~> +$RG9BnL9a+bfk)_jll^JnQJ^fWr;kq!nEk;p\tKK1G^jJ?t!XG@/j^7?ia)1jBr+"EIN"@r*U"D +McBa\]W+$s@YnQ%@*5nW!V]@f9En46s8U)=o\BIs~> +$8M)NnIq2(beZ5\kPkSQ$2so*2rX`8!nEk;p\t6\rn%M!!!*9(!<<3(r;Zfur;ciuk5YVm97BM? +qu?sAG!lK7?=j]G!!&OsrrN'srCdDi@fQJa7.f:7J,~> +$8M)NnIq2(beZ5\kPkSQ$iU,,2rX`8!nEk;p\tZ4!!!$)!!*9(!<<3(g].Hb97BM?qu?sAG!lK7 +?=j]G!!&OsrrN'trCdDi@fQJa7.f:7J,~> +$8V/OnIq2(beZ;^kPkSQ9)_TeH05)*!nEk;p\tZC1G^jJ?t!SR@:3PRrEoV3rF#Y3k?nF(Edi%< +r*TbFLdVCJ?AiOr?i\'OrrN'urCdDi@fQJa7.f:7J,~> +$:OFan-,N%bdmhpkPkSQ$2ji/",[$Ws4*\9p\t6\rn%M!!!*9(!<<3(r;Zfur;Zk2,NSn7'3'EB +#ltD7!!"9fAdeJ9!/\,`!WHF(9En3orr;4=n_F.p~> +$:OFan-,N%bdmhpkPkSQ$iL&1",[$Ws4*\9p\tZ4!!!$)!!*9(!<<3(p](>-,NSn7'3'EB#lt;4 +!!"9fAdeJ9!/\,`!WHF(9En3orr;4=n_F.p~> +$:OFan-,N%be*trkPkSQ9)VNj<3uT(s4*\9p\tK>1G^jJ?t!UF@/j^7?iXO3?itTu,>.-,#%_n* +DIR!Vra5hCLl5jA?i[O@rrN+*rCdDi>5nQe2=]K%J,~> +$;p?nl2\69b_dY,kPkSQ$2X]+7-ag&Sb`$[!:Bd<#d+.."onZ(!sA?!"TbsRY$MM7!!!&d!!``I +A6_f%70WAb!-kmN!-.p1"]>3tnMTRds*t~> +$;p?nl2\69b_dY,kPkSQ$i9o-7-ag&Sb`$[%$LYk!=/Z+"onZ(!sA?!"TbsRY$MM!!!``IA6_f% +6j32`!-kmN!-8!2"]>-rnMTRds*t~> +$;p?nm/XQQ/";@D0mf?5PJ#?sm=- +?jC.QH$2kT9j[O$!2m4(!-8!2"]>3tnMTUes*t~> +$;p?nklA`I_,X_E"]"^ioL.Njs*t~> +$;p?nklA`I_,X_r=.Q7\- +!!%_[rr@cN9Ee2`s7A_8h#Dm~> +$;p?nl2\iJ_,Xe>kPkSQ9);YJW#?i[46rr@cN9Ee2`s7A_8h#Dm~> +#uU6mjT3WM_&Js-rr_d)! +#uU6mjT3WM_&Js-rr_d)! +#uU6mjT<]N_&Js-rr_d):f.!a!fNNCp\tZ#1G^jG?t!SR@:3MQrEoe3@:3JP`r!s__/^eO;!VKn +?;+U/FCo"W?i[46rrAMc9Ee/Xs7B=2h#Dm~> +#uU6mi<@KM\H't +#uU6mi<@KM\H't +#uU6mi<@KM\H't09MA]2IWT/s?i[+3rrB(s9Ee/Hs7C?3h#Dm~> +#ugBofa>sIRM4fFrs%s"g$rYT!W +#upHpfa>sIRM4fFrs%s"g$rYT!W)?9dB!!*'$"oJ?'!<<30aS!aXO[SU; +#o63..KKoMIRFS@!!*/0[Jp6Dr(I8g`rG[bQ/)Ci~> +$!$Nqfa>sIRN(ANrs%s"g%L>#;#O/m>^9;:p\FgoNAE@I:LIUAra5b8@f9[;8mu+:Ab=1KO[LEd +r*T[J!!"!,?Me+:>"hUp?tFA-EFo#T!Fa-YrrC(:9Ee/1s7D#1h#Dm~> +#oiC6h$VTSCIIUQrs/#siW&qV('4C7"Y+$b!#iKGrrD<_fEdoG!!N?9/-6"Q!!E<&!Y3BEbQ5OA +o`+smqu?a*.fB>L'3'EKqZ$WtW4)^+h>BqN9st$$Q%ekds*t~> +#oiC6h$VTSCIIUQrs/#siW&qV('4C7"Y+$b!#iKGrsWlI!!*uL'3'EKq>^Mo[f6?`r(I;h[K$8lL%O4$J,~> +#oiC6h$VTSDFEpTrs/#siW&qs>#>2o"^H=P:M/)PrsXlC1Ghm8?t*MTCLL]N?j/r,?t!clo?79P +3un3,!#5A3!X1)Nr*TP.>lA%4ATWB@qd9G2`O>dHh>BqN9st$$Q%ekds*t~> +#rV8Qh$VTH9POLgrrVThjo58bnQ,_l!%ML]rVut@r;?Qpl2K<@RK*?mQV:'S"oJ?&!<<-6n]UuB +kPt_j*.CNaqu?a(n[JMume]Z]V>pRuD=lZaJ,~> +#rV8Qh$VTH9POLgrrVThjo58bnQ,_l!%ML]rVut@qY^@%E<#t>)?9dBQV:'S"oJ?&!<<-6n]UuB +kPt_j*.CNaqu?a(n[JMume]Z]V>pRuD=lZaJ,~> +#rV8Qh$VTH9PXRhrrVTijo58bp5)UB:L&0Er_EQcr;?R'NAE@I:LIUAVbBcm@f9[;6t'J3D"5^M +@O(hZ!"8W'!Ydb$pg=J=COU;5?sm1Y=CV!5rrDKa9Eh9ms/p52h>`!~> +#W;/Ph$VTH,F.Bj!q$*Nr;Qqf$NV_f"8r3#,g6/d!9sL8#]KbE6qp?K;$["!!s&B&*:_5Q +#W;/Ph$VTH,F.Bj!q$*Nr;Qqf#QZDc"8r3#,gZGh$ul7I!=/Z+6qp?K;$["!!s&B&*:_5Q +#W;/Ph$VTH,aIKk!q$*Nr;Qr3=\r@K<;fSnC>o-k%#m&!1f%LfI8*C/;.BK3"@Q[+@<(h]!ECZK +?i`=mq#CI",>@l?$>Xip?sm1==C>_6\GlU*;>j/m9q)+^b#.fes*t~> +#W;/Ph$VTH$G,@!!pTdMqu6fa81J-Pqu?m&L&M&OjSmd;Du]nW9he;U$2ac*!<<-Nn]Uu$r;[!& +_SL4:!Up'j/7]"^!!+#5\c2^/;uKAo9niWIh)k5as*t~> +#W;/Ph$VTH$G,@!!pTdMqu6fa81J-Pqu@<2L&M&O:]LIr#QOlD9he;U$2ac*!<<-Nn]Uu$r;[!& +_SL7;!Up'j/7]"^!!+#2\c2^/<;fJp9niWIh)k5as*t~> +#W;/Ph$VTH$G>L#!pp!Qqu6fdLKo+(r(do(Wr;ttF#,U/:LIUC9he;U@f9[;6t'J3FRdQU6o4gM +"_#EeE[1\]!!3NY9)E!(CO'As?s!D2?smUA\c2^/ +#W;/Ph$VTE!70d,!p'INqYpZsKk(Sf!!>1=s5a13#]KbE,YUp+=U"^'!s&B&2=\lj2>mLU"igPc +!j5i=q#CBqqZ$[R>R1')!A+2\rrN+*rCdDiEW?((1\'<$J,~> +#W;/Ph$VTE!70d,!p'INqYpZsKk(Jc!"V$Is%i[q!=/Z+,YUp+=U"^'!s&B&2=\lj2>mLU"igPc +!j5i=q#CBqqZ$[R>R1')!A+2\rrN+*rCdDiErZ1)1\'<$J,~> +#W;/Ph$VTE!70d,!p'INqYpZsWd.bD:Cha5s)TtP1f%LfC.q>q>%7G<"?^+#@=dsm!Au\4?ia`Y +rlbGH?4H]1! +#VklLjT3oB!7g32&)d]#bLtk8mIBoGdZm3$!W)iu",Z+d-49k+,%nMTRes*t~> +#VklLjT3oB!7g32&)d]#ce7: +#VtrMjT3oB!7g32&)d]7iT0.eo(MhRdZo5W;#=#i<3pZF1C-ca@<4hc>&n*N?jA`$?t#/Yg!B<7 +"XuQA?s[F@bQ=%t"oA9#!a,D/#B"Wm?sm(:>Q%q1IK$hX!,_[.##/S+s7%u3h>`!~> +#Uf0BmJt\G!SQT7!87)H"Y=:%('=U7!!!&ufEcEr!CSl8@W;VN!"0/8!!-g6s8MZPg!0<9!#tk: +!"SeJ"2T+1'DMP24&cFb!!2or!-GgP!.t,B"]bO$o/kdas*t~> +#Uf0BmJt\G!SQT7!87)H"Y=:%('=U7!"ArY!!!$*!!,JHRUU:Ar;[35!<<.7s8W)jjk7oRbQ&U\ +!!!N(bQG\(.hh[X"ZoZg!!!&r!!%,Prr@ZK9EeGps78>.h>`!~> +#V#$=m%qbIYt<&6.h>`!~> +#UAm>mJt87!SQT7!71B>!\.^_p](9prR_Bp!!,VHSR-:?r;Zs,!!!%Equ6ftoB"NIr6,-Sr;Zg; +oumHR;u$Cp6q[dY!!&CurrAMc9Ee;hs7B70h>`!~> +#UAm>mJt87!SQT7!71B>!\.^_p](a(.KBGL#QOlr1S%il#5nN)$NL/-Gl.LDrU].$c2>cc'E%n2 +*;.MV_Gp=2!^oZdp&G)[]Dhl"r(I8kq>^(d`ngZF~> +#UJs?mJtA:!nl]8!RFO9:BFdH<;95u:fK5,1f%LfLGbW/G%CPZ"A3'0@Aj#&"T@rRe]n$9!>A*) +?iY!8bQ5^`rVupKrEokMEaiEa9FG)%?i[dMrrAMc9Ee;hs7B=5h>`!~> +$6/O8q*Y4nD;"ILkPkP!pAb7EA-;T,!!!%-7rqZR!rU].$c,p@o +rVupCo?72@q>gO`!!i2t!`!~> +$6/O8q*Y4nD;"ILkPkP!pAb7EA-;T,%077F!!*3&!EV(N??$2J!!X2>!!%-7rqZR!rU].$c,p@o +rVupCo?72@q>gO`!!i/s!5#oD!3,li"\nOeoPLbes*t~> +$6/O8q*Y4nD;"ILkPkS&:A@Td>^9 +%NFs@P!H*5ukrpfIW!V!\p!!4W\"8Dis!S[P*#YtF$Ai6DkEUNpklq"c!&sMn!QmA!!!3Bu7.^H["kgTh!5\S,"\n+YoR`Ofs*t~> +%NFs@P!H*5ukrpfIW!V!\p!!4W\"8Dj*!>b_9!<`B'Ai6DkEUNpklq"c!&sMn!QmA!!!3Bu7.^H["PLKg!5\S,"\n+YoR`Ofs*t~> +%NFsd">??TlX?j^(G?t#VMce7UX +rqZQrrTXPgra5_Oo?7I6kil%?iaTk^&J)Kr(I8gjo=t)Rbe!o~> +!?:S-rt4MWc_Z>-0a[q#6uAC=l1"65pAY6V??lSH!!4W\"8Dis!S[P*#YtF$AiG`KEVrrM]pr;Zggo#q(qqu?d'90;_F!>G:CrrCLF9En5;s8S4=o\TUu~> +!?:S-rt4MWc_Z>-0a[q#6uAC=l1"65pAY6V??lSH!!4W\"8Dj*!>b_9!<`B'AiG`LEU +!?:S-rt4PXc_Z>-1("%$6uAC=lL=?6pAY6V?@,ND:BFdH<;95u:e!5s1f7XgM`HetG%CS["^Y\I +?t#u2bQQ8JlM:GWrrVcq>Q/"1L[rXj3rh)9?ijeXDZ4#F4;;#q?iaj7^Ae2]r(I;hci=$-MY,d* +J,~> +!?:S(s8VU#nE%f^F[QlC$7fSG_;4PLnbrIiksR$/q#LEq!\.^_pAk9Grn%<*!!.9B-NRuer;ZsJ +!<<.Sprj#ihjP3FnFPjJ,~> +!?:S(s8VU#nE%f^F[QlC$7fSG_;4PLnbrIiksR$/q#LEq!\.^_pAkL*!!!$&!!.9B-NRuer;ZsJ +!<<.Spriuhh +!?:S(s8VU#nE%f`F[QlC$7fSG_;4PLnbrIil9m-0q+q#e!aL"MpJ;)U1G^jg?t"lj.04 +!?:S!rtFqllJ8jn:*ToG1M2?Oh;Ms%fnKD+q>^t.K8"PlAlhAZ/0l,LfDaD./cYoo.jl]a#5nN) +-NO2JQh8K'cf*+H!!*+4o?76T"oJ?%#@'(T!!$*8rrDQd9En4rs8To>o\TUu~> +!?:S!rtFqllJ8jn:*ToG1M2?Oh;Ms%fnKD+q>_C:K8"PlAlhAZ/0l,L#ljr+"98IE.jl]a#5nN) +-NO2JQh8K'cf*+H!!*+4o?76T"oJ?%#@'(T!!$*8rrDQd9En4rs8To>o\TUu~> +!?:S!rtFqlmG50s:*]uH2.hQQh;Ms'fnKE%qG.uUMlN\GR>H?;CMIHb3\rQKPDM*M80&jnGGra9sO`u_-Q]is*t~> +!>G"hs8VU"nD1'h>:0RS'BS>0!!*H.qZ$[IA>]2&!ri,Lrn%<*!!79A-NS2krW!*&,QRlGVXhq2 +U&=rl!GV/L!QG<@!!3C9/FWW>Gej=[q,.)a##1ros4'O0hZ&*~> +!>G"hs8VU"nD1'h>:0RS'BS>0!!*?+qZ$[IA>]2&$3'c-!!!$&!!79A-NS2krW!*&,QRlGVXhq2 +U&=rl!GV/L!QG<@!!3C9/FWW>Gej=[q,.)a##1ros4'O0hZ&*~> +!>G"hs8VU"nD1*k>q#pW'BS>0:Jb1jqbI8uH+EbN$3'i`1G^jg?t"H^.04U&ra5n+C11LY\amrF +TaUj-!F__obQGig!&OU^!b-Fjra5d`,?skL!2mX4!VoUk9En4fs8UV;o\TUu~> +!>G"bs8VTsnC]0diI1e-!%\-Or;ZsMA-6H;qYpTofDaD)(B=PSr[._d#5nN),QRlGZguqu?d'B-csH! +!>G"bs8VTsnC]0diI1e-!%\-Or;ZsMA-6H;qYpit#ljr+"onaBr[._d#5nN),QRlGZguqu?d'B-cpG!6;qU!W?$s9En4[s8V1>oA9Lt~> +!>G"bs8VTsnC]6fiI4U!:MWd'rD*Q$GuU4+qYpj!3\rQK +!=ePWrsIE[iH,)#!!0MD!WE'&.V&V](;'JD!;ZTG#T!IFBdY8YF9_[D"=+!J!OM@@!.t.L!r'!W2p!#B;$X!!*E"_>aLErCdDiMZ<_E1[s9$J,~> +!=ePWrsIE[iH,)#!!0MD!WE'&.V&V](;'JD!;ZTo#lt51#&,G4.s)!o!!FPJ!!0FsbQ*7n!!*+S +oZRBZ_#aH6!XE]emf3@pp;-b/@f8t)9oAuNmPF@hs*t~> +!=ePWrsIE\iI"Ht:Jf2;;#X5o>^9:E>1 +!=J>Trrhj*`c2%Y!!iUIrVllmrR_Al!$kc)-SoNBr;Zs?!<<2 +!=J>Trrhj*`c2%Y!!iUIt= +!LWN'!m84Xqu?d'F;jQI!A+5err@3?9En43s8V[Jl/)Gj~> +!=J>Trrhj*`cb2X:C'dfM,7#E>^99brq?ib'B_Z'UYrCdDiErZ122 +!=J>TrrhjHY%7Y4!!`O]S-o?IA-;c1!@5kfrrDlnfE`8n!<@+GCB4V;!!F8B"TuX4bQ)AU!!*+t +oZRBZ\cM^/!XEuam/R,f_Z'UrrCdDi@fQK#45JcnJ,~> +!=J>TrrhjHY%7Y4!!`O]S-T-FA-;c1!@6"jrrD6]!!r]2!!*(>?>BQFr;Zs?!c"=2Ot;Nr;WU9k+/&oK1mcs*t~> +!=J>TrrhjIY%pl4:Bs_&_HB]?GuX`?t!Gd?>a1\ra5mlCLL[]`q%=SC*W^c +!F`P2bQQ)$!<>Oe?jC.fARJnM,;\mu!/\Sm!07"O##/S,s7AD/hZ&*~> +!=J>Trr_d)`b##I"q0MW81J-Pqu?j%L&M&IrR_A`!!3-("p"`.rW!*0`[_2n`q%=R?Msj)!OMCA +!OVt+!!3CN'C5]!M8T>nU&@Xh:0%8moM*Tes*t~> +!=J>Trr_d)`b##I"pj;T81J-Pqu?j%L&M&7rW!6+#QOo+"U4u."o\K*$cX\#!QO]S!+,U(! +!=J>Trr_d)`bYHI#$L9ZLKo+(r(dGpWr;t`r\Fj<=^YZG@UrnU@fBa=3lZ8N@EJ)a!F@;U?ia]L +o?7ak?jC.fARJnM*'Eb!!40TC!29?b##81ss7B%1hZ&*~> +!=J>Trr_Zifj=OU#Q\Q;reZ(>!sAH$!]T*1rR_AZ!!*'%"onZ-r;Zr1bef_:bQ(N=!!*/ +qZ$[(ILGKB! +!=J>Trr_Zifj=OU#Q\Q;reZ(>!sAH$!]T)prW!6+"98H&!sS`+"oSE'\]hpWn]Uu1r;Zj"_XktO +Z24M&$%<9K!!*5]`;]h:r(I8kqZ$1s\_d@:~> +!=J>Trr_Zjfj=PO#Z-rhrg&":<)ick!dWqir\FR4?N+=8@UrkT@fBa<1V(`LVt%t3;)A2Z!Fa"> +bQG*M!)3B"#@`-n?sm1Q7.FXc?KT3+!35rj"]>3toO>Afs*t~> +!=J>Trr_'\fi7eJ%fs +!=J>Trr_'\fiIqL%fs +!=J>Trr_'\fin5J%oCaTrLJC\C0XqA<)6:hPl80Kp?ib$A`W#qKr(I8hp]'l.V;D6&~> +!=J>Trr]YZePu>E%QFCeq=B;.A:Af/3u/2VrR_AZ!!3-%"onZ-qu?b0b4*UT1&_.S!=?p?bQF[A +!!3'!!XX;^l2Ufr`W#q\r(I8gnGi-7Q/;Ok~> +!=J>Trr]YZeQ2JG%QFCeq=B;.A:Af/3u/))rW!6+"98K'!X8W*"oJ?$B$0Ve!&=EP!=?j=bQF[A +!!3'!!XX;^l2Ufr`W#q\r(I8gnGi-7Q/;Ok~> +!=J>Trr]YZeQVcE%XJ'Rq=CV+H%(*`DH^1Dr\Fj +!=J>Trr[sXcVFE=!!3'!! +!=J>Trr[sXcV49;!!3'!! +!=J>Trr[sYcVXR9!)WYj!Dpc6rtS[L=^#?XI"$6M;`QmJ?t!GOA7/hTr*T\%9hg>Pb4NmY,XhW> +!GT^JbQFC9!*K5.#A&?n?sm1H:@;Kib/XG]iVZ@R:$)ETQ&>4ks*t~> +! +! +!?F9S:k#gppriaP +9`AE"D">dPPlLedra5tBIUZ\m>6Rjk?iam=a8Z//r(I;hec5ZGFnFSkJ,~> +! +! +!4Kf=M?!W\ra5tBIUZ\m>67Xg?i[4IrrMpmrCdDi`rH(L@eARXJ,~> +! +! +!6%dm?iaa(aSu;? +! +!pSK7.fC:J,~> +!#.182*,&O@UNVY@V':oH%(*^DJ!?ep0\)/ +6on%bZ-)OZ"+C4O?N+=;Ape&q?s!D2lsKgna8Z-KrCdDiV>pSK7.fC:J,~> +!E +! +!=:MHEj!RVbQEk*!abk6#A\Kl?sm(:=R9DqF3":\ErAZ99q)+^iB-Ygs*t~> +!l!!4EY#Nl'f$1Q%9!.t/C##1!Ts62E2huA3~> +!l!!4EY#Nl'f$1Q%9!.t/C##1!Ts62E2huA3~> +!=pqMEiR7WbQZ/5@K6R9ra5tGG@Frf=9)Rl?iaa+aSu6lrCdDi +NW9%D2=]T(J,~> +('3k's8A')Al18r!ELjr!lL=?6q#:Qg,Iuph(BOL8$iuac$NL/VA=3D^0`h7R&-8`of[n`t +1K8IFED%hr#m^8+rs&o<*(4%\H!EEL#mU_/!!EZfD5kPQbkV5?/7]"b!!!&c!!*,caSu7*rCdDi +H2mp41[s<%J,~> +('3k's8A')Al18r!Eh1&"lL=?6q#:Qg,Iuph(BOL8$iuac#QOiSA=3D^/-5_M&-8_L!!rrH +1K8IFED%hr#m^8+rs&o<*(4%\H!EEL#mU_/!!EZgD5kPQbkV5?/7]"b!!!&c!!*,caSu7*rCdDi +H2mp41[s<%J,~> +('3k's8A'*Al1;s!=pqMD5tVRbl.SB1]:\dCO'As?s!J7lX0_[aSu7* +rCdDiHiO-62=TN'J,~> +2?E7Gs(28N_S2kG_8`mFD+#TU!"CetMRhR.nF?&Ks69XD0aSu7: +rCdDiC&e5'1[ +2?E7Gs(28N_S2kG_8`mFD+#TU!"CetMRhR.nF?&Ks69X'`\UO$RAAUIX+mS)@6ZD!"9)='/NU0IV2;)$O6q1!!N`hBr.7iq#CIP>R0Bk!7Jsg!2]Wf +##/h3s7%o1huA3~> +2?E7Gs(28N`kJ:L_8`mFD+#WV!"CetMRhR1nF?&Ks6Tj?jk24^:esk`])S0o:L&0[rVuV,rD+)B +NAE@I7UTeAASQ72IX?0SAn#6E@/j[CAScI9IWogJAR]-D?j^443_X:bRRmJZ,Q(pSCj'8q?r$r1 +lX0_KaSu7:rCdDiCB+>(2=9<$J,~> +2Z`@Hs*eRsb]O@>'*/+Q1L#I9_SN'o=XO@Q%5D(=ZDe2ijk1l2,QRuJSH$b5!%MLeR/d3F"9&9$ +!Rq&#'?U:W#lju6#72;1<-`q*6mN-F#PeB"#7:ha6t^so<'(a"#P\9!!VQKp4&cII!!'XPrrBA' +9En3trr;RKjkp)g~> +2Z`@Hs*eRsb]O@>'*/+Q1L#I9_SN'o=XO@Q%5D(=ZDe2ijk1l2,QRuJSH$n9!%MLbR/d3F"9&9; +!GMN6!>PS:#lju6#72;1<-`q*6mN-F#PeB"#7:ha6t^so<'(a"#ODEl4&cII!!'XPrrBA'9En3t +rr;RKjkp)g~> +2Z`@Hs*eS"b]O@?'*84S2-kg=`keKu=t'UT%5M4@[AjSmjk1o;C/@l+_Z/Rk:L&0J])Vfm<;oZ1 +:l7%b1e(k^@UNVU@U`qeFF/I\EGB&o@ejF3@L?[]EHckYFDbZ!@ea=7?;*-h$U";o#B"Wm?slS7 +>O,Yse&_Oh[J`c'9j[i!o/Ypis*t~> +2Z`@Hs*eFo;ZP&+jk7eQMJZ$3$315W;0f.X_Pr,n.fa_Njk1TPr-/;EVZ6T?!%ML](@(r"7/d/e +!OVjY(Wl^["onZ3!!*-$#6t_i94r]q<&50o#P\9-#72;1>^:d/6mN-F#Oqcq4&cII!!'XPrrC:@ +9EeGps7A_4huA3~> +2Z`@Hs*eFo;uk/,jk7eQMJZ$3$315W;0f.X_Pr,n.fa_Njk1TPqKN)CVZ6T?!%ML](@(r"7/d0+ +!@n-M!>PS:"onZ3!!*-$#6t_i94r]q<&50o#P\9-#72;1>^:d/6ludA#Oqcq4&cII!!'XPrrC:@ +9EeGps7A_4huA3~> +2Z`@Hs*eFs<<18.jk7eQMJZ$4$315Y;1#=_`i=Vs.fa_Njk1TQr23Lj\c;VC:L&0E>4)@iIK!"^ +:fB/+1e(k^A7/hW?t!JO@Ua%eEd)t[FDPMt@ea@2@L?^bG'e[`EG&il@e!h2DKK>q?pkB,lX0_A +aSu7ar(I8orVuLXg#)g[~> +#m'Jos+4^s@T2dmru(7diRPc0D-8S&!!OTBFfpkHfua;ts8U7frr3;'!@hU^!&=3IGl@[D!Lj#? +$*F70$NL28!!*0!!<393#ol?*qoM*Tfs*t~> +#m'Jos+4^s@T;jnru(7diRPc0D-8S&!!OTBFfpkHfua;ts8UCjrr3;'!@hU^!%djDGl@[Q!?(q< +!=/Z,$NL28!!*0!!<393#ol?*qoM*Tfs*t~> +#m'Jos+4_"@TDporu(7diRPc0D-A\(!!OWCFfpkKfua;ts8V%mrr3;D:gA9F:NQ:1VuBI%:erl' +1cA`MARJqX?t!LA@/aU?CN4NEHZjCEraP\2s'c=HCN=TIHua"6@Uf"<#B=cn?slA:>O,Ys`Q8&Z +iVZ@Q;>L7a:!MSqJ,~> +#lsDns+4RoAl8'hru^apiRPc5D-8B[!&4WrflVImM=LWGrA,p6!rr +#lsDns+4RoAl8'hru^apiRPc5D-8B[!&4WrflVImM=LWGrA,p6!rr +#lsDns+4RsAl8'hru^aqiRPc5D-AH\!&=]sfq#%@ZhFG!rG5_a<)6;&h5C6J%T#qW1Gh!t@:`hT +ARJqTpL+#1$>"$qI"$9[CLpsaq-a53$>!jiH%(*`DJ!?eq-a5B"_(kI4<.Sk?i\0errDTe9Ee2` +s7BX3huA3~> +#ls8js+O[oAkqd\rs/&Xh7f#k?=s-9#6RNMs2um&"8Mot".K5A$(:hq$NL28!!*/m!<392$RA,Q +IX+mS)@6ZD!"fGB'0B08IV2%o$O6n:!!c.bjT#:ZaSu;:;>j/l:$M]MD6DdrJ,~> +#ls8js+O[oAkqd\rs/&Xh7f#k?=s-9#6RNMs3E0*"8Mp,!u_.>!?(q>$NL28!!*/m!<392$RA,Q +IX+mS)@6ZD!"fGB'0B08IV2%o$O6n:!!c.bjT#:ZaSu;:;>j/l:$M]MD6DdrJ,~> +#lsAms+OauAkqd\rs/&Yh7f#k?AnbX#?6K>s5@4.<;B<"<)5;+1f%LfARJqX?t!L8@/j[CASQ4/ +IX?0SAn#6E@/j[HASuU;IWodHAR]+V?t+.rra5d`,?sJA!6*%Z!VoUk9Ee/Us7C02huA3~> +#ls8js,'t!Bhe$YrrMTsq#CP!l?6\?q#CEtY5[&[RK*?r!!*H-!!2Kf$jR(W4'[&[A4.[N#7(&) +rs&o>/5'W)FAt%0$X?*]!!&t=rrN'srCdAhh>d+rS_sHt~> +#ls8js,'t!Bhe$YrrMTsq#CP!l?6\?q#Cm,#QOi*)?9dG!!*H-!!2Kf$jR(W4'[&[A4.[N#7(&) +rs&o>/5'W)FAt%0$X?*]!!&t=rrN'trCdAhh>d+rS_sHt~> +#lsAms,(""C/+-ZrrMU+q+h-Mm>-$eq+hK"2D[-G:LIUB?t!VS?t&J2s'c=IDK^AUH#[S1@Uf.@ +s'c@ICN=WJHus19ATi(m?ii,/>O,Ys`Q8&[rDiei"\mhQoR<@gs*t~> +#ls5is,'grBh@aUrrDQ_!!^:dI)W^r!R)o:.r`f=p"\m/>oSSdgs*t~> +#ls5is,'grBh@aUrrDQ_!!^:dI)W^r!R)o:.r`f=p"\m/>oSSdgs*t~> +#ls8js,'grC.[jVrrMUOpeLupQ?HF,:C^2Z1G^j`?t!bW@:`hS@Hq8#@L?[^EcunZEbo;r@ejF2 +@KpF^G'e[eB)Z3<.f`f>?i[dZrrN+)rCdAhb5_*kOl-1h~> +#ls5is,KsrD+X0YrrCL@!!=]m('473! +#ls5is,KsrD+X0YrrCL@!!=]m('473%KR:E!!*u +#ls8js,KsrD+X0YrrLqNpJ1lrHs0AC:C^2j1G^j`?t!bW@:`hT@HLts@L$OcH%(*`DJ&lWq-a53 +!G,mB?ijO_/*^LBWlP,>CAgg19tC<(Oc&ehs*t~> +#ls5is,g0uD+*gTrrD0S!!Fc^$Pid?!!*,Crn%Nr!!*Q0!=Jl.!oX+f#72&"<-3S%9.UGU#M]:Z +Kua2nH2UD@9r\0mRY(1is*t~> +#ls5is,g0uD+*gTrrD0S!!Fc^#SmI +#ls8js,g0uD+*gTrrM4VpJ1osH!+ +#m'/fs-69tECB6XrrCaN!<*#t!!Xo`!rsSI!WE'"!>bXd$#fkF%KHM;!!*/W!<392$RA,QIWSON +'+"p%!!%_nrrA)X9En4^s8Sd +#m'/fs-69tE^]?YrrCaN!<*#t!!Xo`!rsDD!WE'0!>[-b!!*?*!=f)1$NL2/h#RH[$4A+IB7=r% +3tho*huEb2a8Z."rCdDiScA_`H1^%pJ,~> +#m'/fs-69tE^]?YrrM1Ur_NMirD*W&GuRRP:f.-e%o?G/1G^j`?t!bW@:`hT@GP>k@L?[]EHckZ +FDbZ!@esI6>9brh?i[4IrrA)X9En4^s8Sd>o\fb"~> +#m'/fs-cO!ECB6XrrD$V!##BF,QRoG!%ML]!!"Pq!<<-9s4[J)$#fkF%KHM;!!*/R!"0#<)EV2L +IUkhl#m0/f!-lQa!29?b##1!Ts/Bl-i;\<~> +#m'/fs-cO!E^]?YrrD$V!$D;S*ruBB!%ML]!!"Pl!<<-9rtbY8!=/Z+%KHM;!!*/R!"0#<)EV2L +IUkhg#m0/f!-lQa!29?b##1!Ts/Bl-i;\<~> +#m05gs-cO!E^]?YrrM7Wr_FY5R:f>m:JY5@<)6;*B2DB#>5q&J1Ghm8@;0+XARJqTqdBF[!DH_W +@/j[BAo;d=IX,pG@U]7D!a?X#l +#m'/fs-lErFZ\mOrrD0Z!!r\7rhp_9!%ML]rW!-jflX\#rn@A($#fkF'*&%@!!*/N!<39.'.cdr +IRF4u!!$WOrrB%s9En4:s8TW=o\fb"~> +#m'/fs-lErFZ\mOrrD0Z!!r\7rhp_9!%ML]rW!U"flX\!rYGP7!=/Z+'*&%@!!*/N!<39.'.cdr +IRF4u!!$WOrrB%s9En4:s8TW=o\fb"~> +#m05gs.)QtFZ]!RrrM4Tr_Ehsb5T@l:et>A<;oZ,IH6sAr;K/A1Ghm8@;K=[ARJqTr*TLLr;Zs. +,;W"tj'_mr"_DIiG(+H1?ijOP4R-;SRE,=-Wr5Tq9mcp?\RP3hs*t~> +#mK;fs.Mj#Grt +#mK;fs.Mj#Grt +#mK;fs.Mj#HTUWXrrMLLr_EhsWrN+oSPWR:<;fT*H2R^Br^J\"1f%LfCg^[_?t!LB?iVGG!!EZS +1J1m4@/j[@AU\6!?s==-l4gbQJ,~> +#mK;fs.qfsGrt>G6$NL2/c2[nNGn]9>!*@5@ +!71U;##/>$s34:1i;\<~> +#mK;fs.qfsGrt>G6$NL2/c2[nNGn]9>!*@5@ +!71U;##/>$s34:1i;\<~> +#mK;fs.qfsHTUWXrrML,rD*Gtp\t0pfPu19r(do_rr;sY1G^j`?t!kZ@:`hT@K'X71[tGJ$QLrp +>N]B!@XDZo?s==5l +#mK;fs.qfsIPpERrrVEb"8r3#=8r4!"4D?#!WfDaD/:B1D/!!!B,! +#mK;fs.qfsIPpERrrVEb"8r3#=8r4!"4D>u!W +#mK;fs.qfsIPpNUrrVHh<;fSnM>mMS"4E!.;#O0%:n@Xa3\rQK;.*gK?smPR@:B.C#;Z>[8PV8Q +!V69o$QLrp>O5`&@X_lr?s="2l +#n#Mgs/@rsJhu]Trr_KcdT`ILG6;!*@5@!:]n["]>3tiB-Yhs*t~> +#n#Mgs/@rsJhu]Trr_KcdT`ILG6;!*@5@!:]n["]>-riB-Yhs*t~> +#n#Mgs/J*!Ji2rYrr_NdM,=.H#`8BWs4*[Z=]#&m&6.`g3\rQK;.*gK?t!SR@:B.C"#BpNb5TTg +[=qp;$3B_u":H2*6s/te#@`-n?sm1B:[2gIQ47hD1J,~> +#n#Mgs/n6!JhcNQrr_?`]*%s2#V>':eXcNp,Q[iD!D*%bfEk=R!>>G6"onZ*r;ZgVpWNfONaajT +!TO.]$%<3[!<3)b!!$*@rrMpmrCdAiq>]P8oAKY!~> +#n#Mgs/n6!JhcNQrr_?`]*%s2#V>':eXcNp,Q[iD!D*%c!"&`0!!*`5!Jh!XX;^rW)s!l2Ufca8Z29;>j/l:AOqO2tPu-J,~> +#n#Mgs/n6$JhlWSrr_?`do?6@#]&c+eXcNuC/Fk)!JgLM1C>s9?t!kZ@:WbS@K'X8.lm@J"hBY& +2%9WY!!EHF1IP@=?jC.i@UNSJ!`8/i!/\br!VoUk9Ee2es5c94i;\<~> +#n#Acs/n/tKe_iTrrhEamY(]>!!it@eXcO9p-\r\!!*+qrR_EP!!*`5! +#n#Acs/n/tKe_iTrrhEamY(]>!!ik=eXcO9p-\r\!!*+jrW!9+"98H9!!*9(! +#n#Acs/n6$KehrVrrhEam]'+]:C(+GeXcO9pO,m;:B=:mr\Fm<;.*gK?t!SR@:B.C!@tGGbQY_G +AigY-o)Jms*&AgDqd9Y?IUZ\m>67pl?iYu&rrN'urCdAhnGhc2n_jFt~> +#n>Sfs0=B%Ke)ENrrqKbmefHRqZ$hBS,**aq(2LF!aMSS^b6 +!UTjg$[rED!!"surrN+*rCdAhiW&=%nDO=s~> +#n>Sfs0=B%Ke)ENrrqKbmeTF2 +)Zf=+!XjG`jT#9>a8Z2>?N!P$:#Z-?1[s?&J,~> +#n>Sfs0XW)Ke)HOrrqKcmehK0qbR6_"Sr)tq.ot*!Dmh91C>s>?t!bW@:WbS@K'X8/&(Dp"i6aH +6lQ4"!!!3"?jC7l@UNSG!*JMo!-uWb!WHF(9Ee/Ls6_c6i;\<~> +#n>Gbs0XB"MC[rSrs%EcnGi25!W2p!.VHBmrrLOMrVup7rR_E/!!*Q0! +#n>Gbs0XB"MC[rSrs%EcnGi25!W2p!.VHBmrrLOMrVup&rW!9+"98H4!!*9(!d-3:!`k/1[a3$J,~> +#n>Gbs0XB"MC[uTrs%EcnGi5u;#F)j>^+ZrrrLqTr_EMpr\Fm< +#ntbes1'N"N[O)SrrV-_nG`Ff,l@WI.V&X'pAb.OrVup7rR_E/!!*Q0! +#ntbes1'N"N[O)SrrV-_nG`Ff+8c*D.V&X'pAb.OrVup&rW!9+"98H4!!*9(! +#ntbes1'T$N[a8VrrV-_nG`FfBDbO1>^9;>p](8=r_EMpr\Fm<#A&6k?sm(:>O#SrH,fjaK)J@H9u6l!2=BE&J,~> +#ntYbs10T%N[O)Srs7EfnG3(ZnM((D!!aua!rs*np/h4n!&"6&#qc2X%KHM6!!*0"!!($pbQ>V@ +!Vuct)KZ5`!!!&a!!"strrA>_9Ee.qs7%o1i;\<~> +#ntYbs10T%N[O)Srs7EfnG3(ZnLO_?!!aua!rs*np/h4n!!N9$$3:80!"Ju0"onZ*r;Zi;h95r: +NWJtV!ZH.crVup!kl:]B`r?%(rCdAhZ2a>MlJV\m~> +#ntYbs1Bf)N[a8Vrs7EfnG3(Zp2a(0:Bt-M<)6](pPJlF!*9(T$8bdk?tj"WA7/hSra5aH`neiB +_2\Qs!"8a5#A/?m?sm(<>O#SrH,fjaQ2OA[9sO`g2=9?%J,~> +#ntP_s1T`%OX',Rrsm]hdOZ:E2lK+F!!"KZ"9&9#$iL&*0)aE/(B=ID!!*9(! +#ntP_s1T`%OX',Rrsm]hdOZ:B2lK+F!!"KZ"9&9##lO`'"TAB.!^[@EX'k9r\0a2s&utJ,~> +#oh+gs1Tc&OX05Trsm]hh.pV*H,Y2.:JY5@<;oYn=oD+r +#oh%es1or(Pp>PVrrUj_$iBu/$Ub!r.V&YW!!"YMfEi>o!=Jl."TSQ)rVus,b1b&>7/Hrc,\IAD +!!"strrBJ*9Ee.as78>2i;\<~> +#oh%es1or(Pp>PVrrUj_#lFZ,#Xe[o.V&YW!!!0$!"&`2!!*H-!`r?%HrCdAhU&X^GiSa`d~> +#oh%es1ou)PpGYXrrUj_=o;&"=aa+C>^9s>?t!VS@:EVQ@K'X8(s:RV!^m#&rEokF +G@Frf:((:k?iYJlrrBJ*9Ee.as78>2i;\<~> +#ognas2H#&PoJiJrrCaI!!EZ3.V&YW!!#gnfEi>o!=Jl."TSQ)rVus4b1b&>MYdAT/7]"I!!"st +rrC:A9Ee.Us7A_4i;\<~> +#ognas2H#&PoJiJrrCaI!!EQ0.V&YW!!!0$!"&c3!!*H-! +`r?%_rCdAhQ2gJEg#2m\~> +#oh"ds2H#&PoJiJrrLe8q+h,r<*X]Jq+gufr\Fm= +#ognas2H#&RN(AOrrBD!!!5)i$i'c&:]8oP$NL23!!*0%!`r?%t +rCdAhK)bI;cf"hR~> +#ognas2H#&RN(AOrrBD!!!5)i#l+H#"TAB.!XJc,"onZ+!!*0#!!!tkbQ)\\!!4r]#NYpc2objt +iVcFR9nNE;:!_btJ,~> +#oh"ds2H#&RN(AOrrKf.pJ1j$H!0r=!)`_O$8kso@:WbS@UNVQra5^FfusM#AeQm?slA: +>O#SrH,fjaiVcFR9nNE;:!_btJ,~> +#ognas2l;,RN(AOrrBD!!!Fca$NUA,!!#gnfEh]]! +#ognas2l;,RN(AOrrBD!!!Fca#QY&)!!!0$!"&c1!!*9(! +#oh"ds2l;,RN(AOrrBb+:BXpH=\r)p:B48k1C?!G?t!SR@:EVQ@K'X7,h^BCC&f7P?jCRk@UNS+ +'O0j1!-uTa!:]q\"\ik6oMNchs*t~> +#ognas3)/&RiCJPrr@&oNB&hs*t~> +#ognas3)/&RiCJPrr@1! +#oh"ds3)G.SK$\RrrAtp:B45h:Bk'L<,5H/;#X5k:f%'H$8l-t@:WbS@UNVQra5^VfusM,!$(rF +#B=cn?sl):>O#SrFN4=]q,.,b"\i>&oNK8ms*t~> +#ognas3DA)TbHPNrr@cO!!<60! +#ognas3DA)TbHPNrr@cO!!<6-! +#oh"ds3DA)TbHPNrrB(t:BOEr:f.-e#$cFQ:Mbqmr_NW.W;\R_2I9d"@UNVQ?t!JO?sY_DbQ;)N +,Q2!TEH5Mr?o'$3l@tJ,~> +#ognas3_S,TbHPNrr@cO!$h[?a".5k!%ML]!!"tU]9q[Yle'kCf`;'R"TSQ(!!**#!!,17bQ(Z@ +!!3Bu7-"=J*6/!Zr`f=p"B#*h?Fo(pJ,~> +#ognas3_S,TbHPNrr@cO!$DC;a".5k!%ML]!!"tS]9q[YPQ1[d"98E&"TSQ(!!*-"!!#+6bQ(Z@ +!!3Bu7-"=J*6/!Zr`f=p"B#$f?Fo(pJ,~> +#oh"ds3_S,TbHPNrrB(t:ENR1fP=;Z:L&0E:JZ96e%4lEVDC"d2I9d"@UNVQ?t'%B!F@k@bQ:cE +/,ioX@WHJf?ii,/>O#SrCW?ATra#Ir"B#*h?G,4rJ,~> +#ognas3_S,TbHPNrrBY/!!rc$s7o^s!%ML]rVusXq>UC,l.FYAf)YjP!rr?&!!**#!!,[EbQ(?7 +!!3Bu7-"=J*6%pXB)PC+:A4 +#ognas3_S,TbHPNrrBY/!!rc$s7o^s!%ML]rVusXq>UC(E<#tA#ljr+!rr?&!!*-"!!#UDbQ(?7 +!!3Bu7-"=J*6%pXB)PC+:A4 +#oh"ds3_S,TbHPNrrKc-r_Ei"p](&G:et>A<;oYoH27I>%?3/"2EG/P@:EVQ@:3OC?iaS*fusLk +!%\%V!b-1ira>aV!*e_r!,KRR!+u1'"A\^`?G,4rJ,~> +#ognas4%S)V%_tRrrC(;!!r\gnFU%ui;\<~> +#ognas4%S)V%_tRrrC(;!!r\gnFU%ui;\<~> +#oh"ds4%S)V%_tRrrL,3r_Ehse,TIGI8=*n<;fT.M>dJSNAE@J3ac?(@UNVQ?t!JO?s?L]bQ:04 +/,io]@WZKq?s>-3l!OL,`W#pbrCd>gnFU&"i;\<~> +#ognas4Ik0V%)DHrrL+Ir;[*^rVuoY""Ighqu?h2rr;6^fF$42!!*-$!Ahs*t~> +#ognas4Ik0V%)DHrrL+Ir;[*^rVuoY""Igequ@=@rr6sAhs*t~> +#ognas4Ik0V%)DHrrL,#rD*]ErVuo`<*X]Or(e&qrr7s61Gq4"?t!JO@:1q+$3<1l7 +?jC.aCg^XT,;\Rl!,KRR!0-qN"AS"M@_(FsJ,~> +#p[:ds4Ib-W=@hLrrU1V!W;uuGlI^G6n2^L!Wgg%9!`i;\<~> +#p[:ds4Ib-W=@hLrrU1V!W;uuGlI^G6n2^L!Wgg%9!`i;\<~> +#pd@es4Ib-WX[qMrrU1l;#O/iVuH]!I9_%s;#O0):tYf-1G^mL?smDO?t!JO@:9brg?iXu]rrAVg9E\)CoP1Yhs*t~> +#p[1as4n%1W=@hLrrU1b2uEX]FT)5n.V&V^!W +#p[1as4n%1W=@hLrrU1b2uEX]FT)5n.V&V^!W +#pd7bs4n%1WX[qMrrU1cH2LGDSc/Sg>^9:F;#O0(B)%?A1Gq4$?t!JO?t!GO@:3JFB%bB0,QKY" +?jC.bC1(FR*'EIn!,KRR!35uk"AR&2EiS'tJ,~> +#q*=as4n%1W=%VIrr^7cZN9t(#VjAA.V&V^Ac_l2!We#9rn%_'!<<-$!!**#!g\b($@i;\<~> +#q*=as4n%1W=%VIrr^7cZN9t(#V=#<.V&V^Ac_l2'ENna!!!$7!<<-$!!**#!g\b($@i;\<~> +#q^9:FR8ElY%oB9I1G^jW?smDO?t!JO@K'X8:i4n0!ZM,% +ra5t?G%Y2j>80Ki?iXu]rrBe39E\)#oQ@"gs*t~> +#qNRds4mk,XpX.Nrrg=XmR.*P!!Oi_!s'<.r;Zj+jSmd=aoDDB!<<-$!!*-"!!%K%bQ5j"qu?d' +F;j3?!$&uX!7h$A"APlfI[f9qJ,~> +#qNRds4mk,XpX.Nrrg=XmR.*P!!Oi_!s'<.r;[?6:]LIr'`\47!<<-$!!*-"!!%K%bQ5j"qu?d' +F;j3?!$&uX!7h$A"APlfI[f9qJ,~> +#qNRds4mk,XpX.Nrrg=nmX7q.:Bb!K<)@1TrD*o+F#,U/7UTV4@:3MP?t'%B!CVCjbQH!$!'L6g +#@`'m?sm1Q7-S(ZCW6;Rebr/E9rdi7S`'Nu~> +#qNF`s5=.0XpX"Jrrp4=B'giEqZ$gMA-2iJm0imn!!3&N$H`>K! +#qNF`s5=.0XpX"Jrrp4=B'gZ@qZ$gMA-2iJm0N[k%fn-[!!*f7!!**#!gU%F&(i;\<~> +#qNF`s5=.0XpX"Jrrp56RIXueqbIE$GuRUDnlbrf%T$+\1GhR/?t!JO?t!GOra5b&3SM[Zape>= +ra5t?HY$Sm>74'f?iXu]rrD?_9E\(`oS&Rgs*t~> +#r/^bs5=.3Xp*YErs#b0!$n'B!W2p%.WGh()ZGTm!!*,'rn%S#!!!$#!!**#!C +apS%H!XEuaj8]0"`W#u2:B!oi9pP@.Ol67i~> +#r/^bs5=.3Xp*YErs#b0!$@^:!W2p%.WG_")ZGTm!"T)9!!!$7!!!$#!!**#!C +apS%H!XEuaj8]0"`W#u2:B!oi9pP@.Ol67i~> +#r8dcs5=.3Xp*YErs#l-:M7OI;#F)n>]s7QB)].9:C^2Z1G^jW?smDO?t!JO@JsR:,C[k\b21>E +apJ,:ra5t?HY$Sm>743j?iXu]rrMaer_*GhQ1Trri;\<~> +#rAaas5=.3Ym&tHrs,\-!!!+5$N^2+#6TF(:-7_*$iU,+Y5[&\aoDDB!<<-$!!*,u!!@\X_92c$ +!6X?G!QG<@!!3IU$iL&*!U0Ra*6%pYq,.,b"AOL?MNQisJ,~> +#rAaas5=.3Ym&tHrs,\-!!!+5#Qal(#6TF(9fqV)#lXf6#QOi*'`\47!<<-$!!*,u!!@\X_92c$ +!6X?G!QG<@!!3IU$iL&*!U0Ra*6%pYq,.,b"AOL?MNQisJ,~> +#rSmcs5=.3Ym&tHrs,]':JXrX=]#&m#?6/$C2W>(=oM2+2D[-G7UTV4@:3MP?t&t@"=&B'_92c$ +!6X?G"3C]H9)`3'@X_lr?ss5l9nN"pOl67i~> +#rej`s5a:3Ym&tHrrJkqr;ZjQ(An.>!u=:WIYD#g((7;EfF#b$!!**#! +#rej`s5a:3Ym&tHrrJkqr;ZjL(An.L!u=:WIYD#g('k0G!!*f7!!**#! +#s#$cs5a=4Ym&tHrrK,rrD*H8>5V/4<*F:"IYDr_>$3a>1GhR/?t!JO@:67pk?iXg3rrN)\e,KIJ +#s5!`s5a:3Z3B(IrrAPc!!<[+DYi!!**#! +#s5!`s5a:3Z3B(IrrAPc!!<PCi;\<~> +#s5!`s5a=4[0>CLrrJZcr(dDoC/@b+:DQc+jA];nFF8O]AQ(Wg@UNVQ?t!JO@J=.9=@t@h(c>c_ +\]X3]"Nn^c!)NT%#@`-k?sm1==R0>s?:72]pAY21@"Hf,!+Pq$"AN@tMO!-"J,~> +#s5!`s5a:3[/ntDrrAPa!!*uRrW*'.mcscOrrWc>[%N8)M+]W<#mUJ3!!*,h!!N`b?A5f,rQG8] +oZRH\_#XN:rW!!-IL5!6!A)q"rrb7\!"8GKrr@'<9E\'mo88gks*t~> +#s5!`s5a:3[/ntDrrAPa!!*uRrW*'+mcscOrrWc;.o:57ED&)$#mUJ3!!*,h!!N`b?A5f,rQG8] +oZRH\_#XN:rW!!-IL5!6!A)q"rrb7\!"8GKrr@*=9E\'mo88gks*t~> +#s5!`s5a:3[0#%ErrJZcqG.-(>5h>"=mk\V:]FB(=]8mUIWogKAR]+W@:3O7?jU%01E75e?A5f/ +rQG8]oZRH\_#aU5ra5tBIUZ\m=9)Ih?j0aS4CDscq>US.!$c(IeGfMhr_*Gh>4[W:i;\<~> +#t1Kes5a:3[/ntDrrSYi!Vud8$YcJliI6nW.LQ=\!6WpFb+M.5IX,0[)@6]Nl2Utq-Wto$`r4*] +b4s0_`]F/$rW!!-IL4s5!Wcp$r;QcerVus"lI>h?IS?S3:0$o"_XladJ,~> +#t1Kes5a:3[/ntDrrSYi!Vud8#\g/iiI6nW.L6+Y!!`f:#>dg!IX,0[)@6]Nl2Utq-Wto$`r4*] +b4s0_`]F/$rW!!-IL4p4!G:ctrrDTg!!*,ceGfi(9VkEX +#t1Kes5a:3[0#%ErrS`d;#3s+=e`I,k'iG4>Zk$*:H:Hs3G!2UIX?6UAn#6:?jU%01F!_c>(3Wo +rQG8aprii^3ri+V?jC7l@UNSG!*JPp#?qR.?smRE9MSUZ^;fd's*t~> +#t19_s60O6[/ntDrr]5O)?KX6*D!GejiU>2IWSOJb1G7tRK3^$'0B0=IV2%o$O6q#!!FNDFfE7V +bQ,fbbQ5jSqZ$[2GmEC1!!3#u!X3i +#t19_s60O6[/ntDrr]5O)?KX6*D!GejiC//IWSOJ'aY0I)?C-N'0B0=IV2%o$O6q#!!FNDFfE7V +bQ,fbbQ5jSqZ$[2GmEC1!!3#u!X*c;rr2tCr;ZiGeGfi8Tt-Uc; +#t1?as69U7[0#%Err]8[Al/;!*J^nOjihI`IXH6J7QNRe:LIX@ASuU:IWodHAR]-9?jU%21F!SZ +;0AnYrQG8arlbMf6i[3Tra5tBHX^Aj=9)Rk?ijO9;#Oc'?Dm;lrro;V!$bn-eGfi8Tt-Uc;=-aO +;;qP*~> +#t^Tcs60O6\H1CHrroA\l=g8"qZ%chI[L0#!s8oH4'[5`TV,m470N\l#mgtj96#E&9/@4d#Nl'm +)bG%C_9C',1&:kS'6sf_!!*,b!!!&r!!Et&mcb&V!!'X\rsQt"!0p5Qi;h1;/)fOgJ,~> +#t^Tcs60O6\H1CHrroA\l=g8"qZ%chI[L0#!s8fE4'[5`:f&n_6j*Mj#mgtj96#E&9/@4d#Nl'm +)bG(D_9C',1&:kS'6sf_!!*,b!!!&r!!Et&mcb&V!!'X\rsQt"!0p5Qi;h1;/)fOgJ,~> +#t^Tcs69U7\H:IIrroD_m@mERqbJA?I_,RH<)d"(DK^JXAS"hE9jV79@U`naEcunZEbo;r@dIJ6 +>>?t!'H9VaTu"sqYqc:Z1]:\dAU@lo?r-o/lX0cu!a,>-$"^^9l=)OL,@K!MrsQt"!0p5Qi;h1; +/)fOgJ,~> +#u$Was60O3\H1CHrs#G]nc-$5!W2p%.V&W_f`;-Q!#l +#u$Was60O3\H1CHrs#G]nc-$5!W2p%.V&W_f`;-Q!#l1K'e<*39LM8e'+"sF!=8u;+%0XgH!EEL +#m]Sm!\4ofq#CI7F9gP#!<``,!!%l+rseHZ)Zc3t:!X: +#u$Was69U4\H1CHrs#J`nc-a8;#F)n>^9;*jA8\P:C^Mf7T3l69MJ5nAR]+V@K'^BB5r3GHZj:= +@UeY2$=6Lj,8;XA"TSNYr*TbAHt$Jk:Batg?ijF1=SZ>0?=I:m!$bmXec-*J3u\3c9MNhBnGd?3 +n`9_#~> +#uQibs60O3\H1CHrs5S_nc/X_AcVr3!!Xo`!rs*<(B+=G/D&P,f2#'i.U7FJ>WWi1#Q=]3#72&* +<-`q*6mN-F#O;Bi!VcWr,]O(O!<3)i!!$W]rscdRf`7I79u.e=s10HFjSs`~> +#uQibs60O3\H1CHrs5S_nc/X_AcVr3!!Xo`!rs*<(B+=G/-u:V#mWWi1#Q=]3#72&* +<-`q*6mN-F#O29h!VcWr+)qPJ!<3)i!!$W]rscdRf`7I79u.e=s10HFjSs`~> +#uQibs69U4\H1CHrs5Vbnc/X`Mbm7L:Bk'L<)6\S>5h>0CH=7-3`/RU>]tRCG&Co$@fBd8@L?[a +FF/I\EGB&o@d@D)?;NF?7/L?sB6I`l?q^r4lX0cj!aGA+"<7Cd@%#RF%D`M,!1HSU_&MqE]Hm%. +s*t~> +#uQ`_s69U4\H(1CrrT/YnbrImW!`V+!%ML]rW!+6]8:7sg&BVG/ke/Q#mhM3<-`q*6mN-F#64`/ +#7E(UEIN"&1D9uuj8]6,B*Zod!&rI.%>@a>!M)nYYp])Ai +#uQ`_s69U4\H(1CrrT/YnbrImW!ED(!%ML]rW"?Y]8:7p"98E&"ACa(#mhM3<-`q*6mN-F#64`/ +#7E(UEIN"&1D9uuj8]6,B*Zod!&rI.%>@d?!M)nYYp])Ai +#uQ`_s6Tg7\H(1CrrT2\nbrIm`E?#5:L&0Er_Fr1e$GeD2D[-G<_Q1l@U`qeFF/I\EGB&o@UNSQ +@V'=qG(+gZCh7'bjBr4-G@Frf8dekh?iiq.>P;G-$NMDZH.Dp(KiR(5SP2b_.ImGs"n:UQJ,~> +#uul_s69U4\H(1CrrT#YnbiCknQ,_l.V&Y[!!F4Ps7k:HfHV/*9GRX/!W`N4'.cdhIWSOF'+"mD +!!``8,Xc0lH!EEL#m]Yo!\@jee,TIgf)H6M=bZ8ERnQPU1\(M5"l88>J,~> +#uul_s69U4\H(1CrrT#YnbiCknQ,_l.V&Y[!%Su"s7HKp!!*j/9GRX/!W`N4'.cdhIWSOF'+"mD +!!``8+%0XgH!EEL#m]Yo!\@jee,TIgf)H6M=bZ8ERnQPU1\(M5"l88>J,~> +#uul_s6Tg7\H(1CrrT#YnbiCkp5)UB>^9O,Yu4;;#n?j$i;,@G< +$!E/cs69U4\cC:DrrSW\nbW7gQjYBS"8`'!FSYmf-l5QN"T\T)!<<-$!!``8)EV2LIUkhl#mU\8 +!!`fD4&gKSB1+!Q#7'Vr!]+'df`2!Qr;Zj+n^mdNnM@?9!M)nYWA3rCnJfL/s*t~> +$!E/cs69U4\cC:DrrSW\nbW7gQj>0P"8`'NFQW]*!!*9t9EY@r!W`9%!< +$!N5ds6Tg7]E$LFrrSW\nbW7g\li9`<;TH'Sa/-h1Gi-+9O;.8@: +$!W,`s6]p9\cC1Arr\B!R.:%Q"6s'#$i0i'-iM[)E!6UN!<<0%!!*,t!#l.L'/N:'IW8"3'*eaB +!!``:/5'u3FA"D'#7'c!!]s?df`2!Qr;Zj%maqIKnKYm>$DgEjWAF)EnN3T.s*t~> +$!W,`s6]p9\cC1Arr\B!R.:%Q"6s'##l4N3-NX8J!=/f6!W`9&!<<-$qZ%Q?#no*fFFJ4&//&6n +!!!6/$S4qjIWS4='*ed4!!55]#Li_S"n("B%e1d[n-Z!c9rTr=s7&1IjSs`~> +$!i8bs6]p9]E$CCrr\Be](Z"#"7:G\=o(o(@l6%u1f%F\@:O,\s.f`fJ?j9p;!$bl\maqIKnKbs?$DgEjW\s>HnN3T. +s*t~> +$"AMds6]p9\cC1Arr?U/!!>$2iVrfU"4Df0!W)it(Y8T<$?,tF!s&B&!<<-$pAk3u)%.]XA:Af' +3uSD1!!!6/#p_oLIX,0[)@6ZA!!5P]#Li_S!UA;:%e1LXn-u3f9s,`2s7&dJjSs`~> +$"AMds6]p9\cC1Arr?U/!!>$2iVrfU"4Df-!W)j-"p"](!=/Z*!s&B&!<<-$pAk3u)%.]XA:Af' +3uSD1!!!6/#p2QGIX,0[)@6ZA!!5P]#Li_S!UA;:%e1LXn-u3f9s,`2s7&dJjSs`~> +$"AMds6]p9]E$CCrr@?D:BPF5k5P>Z"4E*1;#=#u<\uTg1f%Le@UWYQ@:3O;@/j[EASQ41IX?0S +An#4W@/aUAB5r3GHZj:=@Uf"<#B=cn?skc8>O5`!>9brt?j9^5!%VGbmFV@JnJfL;%Ac`mXsEQ; +nP#5/s*t~> +$"AA`s6]p6^&ZUErr?U,!"'Wd]D;KWS_5q&!W;uu(]Dtn:B1@r!<<-$!!*,k!#l.L)EUoDIV2%o +$O6n:!!`fD4&gKSB1+!Q#7()*!^oZdf`2!Qqu?`UfDc?N,JijVV+aUg'Cl+m;j$/@J,~> +$"AA`s6]p6^&ZUErr?U,!"'Wd]D;KWS_5q&!W;uu#6"T1!<`B&!W`9%!<<-$nc0U6#oYm)H%'Bo +,RXh^!!!61'0B0=IV2%o$O6q5!!5P]#MB(W!W2otiRe)>nKYm>$DgEjYnQ[-nPkY3s*t~> +$"AA`s6]s7^&ZUErr@?A:C:^)e+s$oS`G&m;#O/iO5`!>803n?j9F-!%VGbk1BVCnKbs?$DgEjYoE65 +nPt_4s*t~> +$"eYds6]p6^&ZLBrr?=!!!is6Q^[aKK`_AT!!!i6fEtCS!!30$! +$"eYds6]p6^&ZLBrr?=!!!ij3Q^[aKK`_AT!!!6&!"/f1!!!'$!!**#! +$"eYds6]s7^&ZLBrr@6;:C(*[VjdG[W`2go:B4Gp1C>s9?smDO?t!JO@I7J&@NK6!Ed)t[FDPMt +@UNSQ@VKUuG(+gZCh7'b?smGaEW0AG.f`f??ijO?9_Miu8cSiA?sqgBrsnQeU%&em9MDGqnGi#Y +No^4j~> +$#+\bs6p3<^&cRCrr? +$#+\bs6p3<^&cRCrr?^:U"6lZL< +#65MT#p2QGIX,0[)@g"?!Rh#K]@[&mnSN=:)l65%T`srcnO]21s*t~> +$#4hes6p3<^&cRCrr@69:C:?PCoZRWF&5\/$>BJEI!"[G&Co+G&^nt>:V5i?ijO4=S?,,49,@3?sqI8rsnR9Eq(*F9MD,`nGi#MRcOL!~> +$#=\`s6p3<^&cLArr?J +!!`fD4&gKSIM:-0!3"KK%A>`B-_X4-RK2XQnLLd's*t~> +$#=\`s6p3<^&cLArr? +$#Xncs6p3<^&cLArr@69:C:?P<)6:nR?^`J9bri?ijF1>P;G/1B7D*?spt)rsbY^jXHls9UYtKs7%VBjSs`~> +$#Ohbs6p3:^&cI@rr>^c!!4W\"8i0!$NMgXfEs52!!<6%!s&B&!T=%Y#7q7g6nD"i.Q\OT#64`/ +#7_F/!!!&f!!%l,rse2ndP74b9U,Y?s4m_;jSs`~> +$#Ohbs6p3:^&cI@rr>^c!!4W\"8i0!#QP#,!"/f1!!!*%!!<6%! +$#Ohbs6p3:^&lOArr@*5:BFdH<;]Pl=TDM%1C>s>?smGP?t*PP@GkPn@M!*cEGJ6A>]+._@UNSQ +@VKEQ?ijOP1[AEM:^((s?j8Ce!%VGbZe#-cl2f +$#O\^s6p3:^&cI@rrRX!!W^LJrR_H0!!!0'!!<6%! +$#O__s6p3:^&cI@rrRX!!W^KurW!<,"98E*!<<3&!!*,U!"9W96l&aIIUkhl +$O6p`!!$W^rs\B9SNE*19TB;8n4\,fs*t~> +$#O__s6p3:^&lOArrRXS;#O/j:fREi!aL"MqG.)lr\Fm<',+?H#[S1 +@Uf:D!a?X,lX0cd$X<=4"sX*J.pubQf)H0J)kB'U9MCHMiUBNfj8XW~> +s)A;6s6pB>^&cC>rr[C\Ac_i1"p4l,!%ML]q>^LJrR_H0!!WT-!!30$! +s)JA7s6pB>^&cC>rr[C\Ac_i1"p4l,!%ML]q>^KurW!<,"98W0!<<0%!!*/V!"B]39GRj<'.cdr +IWS4&d/X/;f)H0K4.8a$9h^EOh=3S'j8XW~> +s)JA7s6pB>^&lI?rr[C\R8EiX##nDq:L&0EqG.)lr\Fp=5%.QEJ8WHM=N=+M34/M!;J,~> +s)A;6s6pB>^&c7:rrdI]n5o_i!!NH`""Ig`q>^LkrR_Gn!!NN,!!<6%!Y97@l/!!"b)rs\EtISken9R.;tnPtV0s*t~> +s)JA7s6pB>^&c7:rrdI]n5o_i!!NH`""Ig`q>^KurW!<,"onf1!<<3&!!*/V!!=]E9F1Rsrs&Z5 ++%q&&dJs7uf)H0K +s)JA7s6pB>^&lF>rrdI]n +$$C+Ts6pB<^'2O>s8R'@nbkuZr;[$(W/5-p!J,~> +$$C+Ts6pB<^'2O>s8R*AnbkuZr;[$(W/5-m! +$$C+Ts6pB<^'2O>s8R*Anbn5>rD*Vs`Kk^N:f.'c!)`_O$T(ml@U`bR@UWYQ@K'X79)W-!?;Ou, +?iXO-@/j@'@/jF*?jC.gCLCOS$V]np!a@02oj@t3!!"f_?t\'j%.S(M?@GUBDCN-d?A7G>J,~> +$$C+Ts6pK?^'2C;rs/(+IfKHD2Z`jW"TtNjdW?9(!WN-":]8oQ(B=UB!<<9(!!*2u!!<6%!!1gS +!XEfcf`;$Qqu?^1ec-#"? +$$C+Ts6pK?^'2C;rs/(+IfKHD2Z`jW"TtNjdW?9(!WN-""TAB/!^Tu!!!&S +!!3CI)V>#i!W2ot'@m*jF^A3n:/"tUV=ADJj8XW~> +$$C+Ts6pK?^'2O?rs/(+IfKHDGu4H8"]VLmh47aK;#a;k;>r?Z1fe!n@UWYR@:3MQra5^ora6". +"TST3,;W)!pL"1t!!O&m6s/te#@`'m?sm1B:[DHj>9#d!?jC!>!!"f_?tImg$[#cZF\YV:4/MIa +HfP-V~> +$$g7Ts6pK;_$.[=rrV_&IfB?Kp+-7C!"(39q>^E*Ad\V?:]8oQ(B=UB!<<9(!!*2m!!!&X!!3CN +'E/"3!S7;P$i\`W$]\(uBhh?)9pP6aH/npT~> +$$g7Ts6pK;_$.[=rrV_&IfB?Kp+-7C!"(39q>^E*AdAD<"TAB/!X8W."T\T,!<<-&nc/XjhuEf` +Gn^/WrrL^O!=SnXrsOiaBk^=9=\Y1OCO+t?J,~> +$%$FWs6pK;_$.[=rrV_&IfB?KpM3V(:C:?eq>^EBR9r?Z2-+*o@UWYR@:3MQra5^ora5^V +q>^[#$R7H$>Pqk/9)ASk$QLrr>P;G0@XDZo?s<\/lsKm!$VL,#!*fF&">aFnAcC9\$]\)!C/.H+ +9pP6dHfP-V~> +$%?LVs7$cB_$.[=rrV_&If99Jm3D`3!!4W\[f-4.q5?i'rR_Gn!!D<*&C%:9aJ,~> +$%?LVs7$cB_$.[=rrV_&If99Jm2lB.!!4W\[f-4.q5?girW!<-"on`/!<<9(!!*2h!!!&]!!3CN +'BT;p!Up'j!=/,FrsZ:cJl,NA;-SbSH"lg0s*t~> +$%?LVs7$cB_$.[=rrV_&If99Jnn1eu:BFdHb5M>Bq8J+br\Fp>6%dl?ijO6;"e8s=T/:'1LOU"nCIUJ[4?i+ +$%?@Rs7$c>_$[p?rrV^pL&CrVj;%ar!%MLe]DMU.l2B6A$NL>6!<<9(!!*2t!!3fQ!TO.[!Vuct +$%<92!!30+nCIUJ_Aeb%?;++.H2ib)n`9_#~> +$%?@Rs7$c>_$[p?rrV^pL&CrVj;%ar!%MLb]DMU.EW,qG!XJc0"T\T,!<<-&q#CI0)Zet!!!2or +!XX;`df9FM#Op=E%)NsK4'kTUBmK`9=n1SQJ,~> +$%?@Rs7$cB_$[p?rrV^rL&CrVlWR+\:L&0Je,0.FNW(^A2-FLs,("MjSs`~> +$%cXVs7$c=_$[d;rrV^cQ2CRefa@f\.V&Vha8Gr;l2B6A$NL>6!<<9(!!*3!!!r[mbfmJK?7Q?` +k5YJ_qZ$[(ILG<=!!2KfrrN2gf)H03$Df7e9MoeHnWci=jSs`~> +$%cXVs7$c=_$[d;rrV^cQ2CRefa%TY.V&Vea8GrJE<-%>!XJc0"T\T,!<<-&qZ$p'Qd![]KjH8: +!TsF_!W)iu$%<9F!!!&f!<3*#mahCHfa=Q+BhVBED=Nlcn`9_#~> +$%cXVs7$c=_$[j=rrV^cQ2CRejB5;T>^9:Of_ka[NANFI2-FaFo@ID_H%+tua.r%aTEc(?3 +:%@ +$%cLRs7$c=_$[a:rrV^bQ2:Ldb6n>#A-2f>a8Q# +$%cLRs7$c=_$[a:rrV^bQ2:LdcNjP$A-2f;a8Q#KE<-%>!X&K,"T\T,!<<-&qZ$WtVY\L@[=qp; +$3:1i!!3IU$.AkU"Tmu?rs\,lYoARXZ$p0PPtpl1s*t~> +$%cLRs7%&E_$[a:rrV^bQ2:LdiE8u^GuRRBf_tg\NANFI2-s["@UWYR@:3MQra5k$?smERqTK2P +KjH8:!IUZ\m=9)Ii?ii_1>P;G)4T5<`1LO[#mFM:Gl2\(.MMeZf@e#^Y +n`9_#~> +$&)URs7%&B_%!s=rrV^bQ21Fc])sNn!rru/J,~> +$&)URs7%&B_%!s=rrV^bQ21Fc])sNn!rr<,a8Z)LE<-%>"9\]."T\T,!<<-&qZ$WtVY/.6RK;aT +!!2ut!XX;^dJs:KlIPtDn--N5nGiNR:@Y;Bn`9_#~> +$&)[Ts7%&B_%!s=rrV^bQ21Fcdo9Rt<)6:mf`(m]NANFI2I9d#@UWYR@:3MQra5k&?smERoumK+ +!abk6!&O-F!jSs`~> +$&VmUs7%&B_%!g9rrV^YS,!!cW%)<[rW!'/bQ%V'rn%V3"TS]0!<<9(!!*3!!!*,,oumH9!W=J.jo1N?nZan?jSs`~> +$&VmUs7%&B_%!g9rrV^YS,!!cW%)<[rW!T;ci=#A!<<*&"98T/!<<9(!!*3!!!*,,oumH9!W=J.jo1N?nZan?jSs`~> +$&VpVs7%&B_%!g9rrV^YSbW3e`E[[fr_F21iW&q!1c$pG?=75O@:3PQ?t!OD?j'54?t$bAbQ4^F +rEobJ?7Q?`oDeknrEokAIUZ\m=9)Rm?ijO_/+m9M/,fMK1]Cb^lIPtDnIrV:jlQK,:@YSHn`9_#~> +$&VaQs7%&=_%!^6rrV^LWV?DoQXg3s!!k!:U$]q>^Krqu?p7IKoiQ! +$&VaQs7%&=_%!^6rrV^LWV?DoQXg3s!"oRcs%i^r!!EE)"U+o,"T\T("8`'!!OMIC!29>k!:U$]q>^Krqu?p7IKoiQ! +$&qsTs7%&=_%!g9rrV^NWqZMpVg28?:D-gds)U"Q1H&QI@U`bR@UWYQ@fBa<:LIR=^%KSMT`tF' +!F_DqbQYD.>q66_q>^Nt>Q%q7AU\)r?r-o/m9g!",;]"#!$hIC!&OU^!9Vl4%.PUJ)mrsdIU_iP +2=]c-J,~> +$'A*Ts7%>E_%X*;rrV^F[J0\&eUn8-!"fUljOi,@(W]s04 +$'A*Ts7%>E_%X*;rrV^F[J0\&eUn/*!"fLi:]UP!"9JQ,"T\T,!<<-%rW!'%!!!)3oumE)r;Zj! +C&,sU[=qgs)u]g;!W2p!'6si2!!*,]f)H0K8W$Aj>@(W]s04 +$'A*Ts7%AF_%X*;rrV^G[J0\&eVdT.:D$ajF#5[22IU!&@UWYR@:3MPra5k*?smEUoumH*"o_m1 +@A"^CA%!a?@,oj@b6rVupSra5`lf)H0K8W$Al?!^ias04?L +jSs`~> +$'e9Us7%>A_%X!8rrV^F[J0\'eX_Bpqu@9Dgt:94f)bpU"T\T,!<<-&rW!'%!!!)7oumDur;Zj! +FS3i]`_uj;!>nSN97!0rfL[K"Agn`9_#~> +$'e9Us7%>A_%X!8rrV^F[J0\'eX_Bpqu@9D2? +$'e9Us7%AB_%X!8rrV^G[J0\'eX`^:r(dl-?SjPs3alE*@UWYR@:3MQra5k*?smEWoumH!$iXN7 +@@d)8"iaOB!!6L*?jC:k@UNS9$X<"+!a>h'oj@b-rVup\ra5`lf)H0KD/u'FQ'D?Ws2l;NjSs`~> +$'e3Ss7%JE_%Wg3rrV^F[J0\(eXcMX!W2p.Y1VC[f)bpU"T\T,!<<-&qZ$Wu_Y)+QMZ!MU!I44[ +!)`^rr;Zm;F9g1n!9D]1$]8*WcN".%s8U4\n`9_#~> +$'e3Ss7%JE_%Wg3rrV^F[J0\(eXcMX!W2p.#QXo.#m()1"T\T,!<<-&qZ$Wu_Y)+QMZ!MU!I44[ +!`8t!qu?d:F9g1n!9D]1$]8*WcN".%s8U4\n`9_#~> +$'e3Ss7%PG_%Wj4rrV^G[J0\(eXcN,;#F*"2Dd3J3alE*@UWYR@:3MQra5k2?smE_oumGo$iXN7 +@Ai_@"&T+$?N"7:Ape&q?pkB,m9g!"!*Jo%!!W?%!'L6g!:/28$]8-XcN".%s8U4\n`9_#~> +$(=HUs7%JA_%Wg3rrV^F[J0\)eXcO8Ac_i1!3Z=R%bCa^"Tnc*"T\T(!rr<%rVus$_Y)+QK)GZM +!JU-h"3ND"!W +$(=HUs7%JA_%Wg3rrV^F[J0\)eXcO8Ac_i1%gW.8!XSo."Tnc*"T\T("8`'!"2a`T!.t.L! +$(=HUs7%PC_%Wj4rrV^G[J0\)eXcO8R8EiX(H+'*2*,/R@U`bR@UWYQ@UNSM=C>NG`q@OVJd_Qc +!F`#"bQH!F"^_.8#ASHl?slA:>O>f"=9)Is?iaR8rVup\ra5`gec,f\.IdB!mf*4f8Ls;ks*t~> +$)'cWs7%VB_&K67rrV^F[J0\*eXcO9rDs%!!!'2$fFHL7!!NH*!!NB'! +$)'cWs7%VB_&K67rrV^F[J0\*eXcO9rDs%!!"T>9!!3H.!!NH*!!NB'! +$)'cWs7%VB_&K67rrV^G[J0\*eXcO9rJ=AM:DYoG1Gq4%?t*SR?t*PP@:EVP? +$)'cWs7%hH_&K67rrV^F[J0\.eXcO9s85Cg!!'2$fFuC/!!NH*!!NB'![!-.r; +! +$)'cWs7%hH_&K67rrV^F[J0\=eXcO9s8#7e!!!9*!!*f9!!NH*!!NB'! +$)'cWs7%kI_&K67rrV^G[J0\EeXcO9s87XK:JWl*1GhR0?t*SR?t*PP@:EVP? +$)K`Rs7%nE_&K*3rrV^F[J0\&eXcO8rri-V! +$)K`Rs7%nE_&K*3rrV^F[J0\&eXcO8rtG2e!< +$)K`Rs7%tH_&K*3rrV^G[J0\&eXcO8ru1]Y:eru+1GqX1?t*SR?t*PP@:EVP>?bKE@e@kFD%utW +!F`S1bQ/ssr*TbGG%+ie1F$,k@/h_W>P;G):Ak.m7/gQohp_T:YlO4ls,%ccIU_f/!$jrAea*6c~> +$)olRs7%tC_&Js/rrV^F[J0\&eXcO7rr_sG!NuFS$d&MN!s8Q("T\T("oJ?%!Xm0DbQ)8R!!*+t +o#q(QqZ$[Z +$)olRs7%tC_&Js/rrV^F[J0\&eXcO7rt>#V!=/]+!Ykb:!s8Q("T\T("oJ?%!Xm0DbQ)8R!!*+t +o#q(QqZ$[Z +$*$#Us7%tC_&Js/rrV^G[J0\&eXcO7ru1WI:c:-d2+D"^@U`bR@UWYQ@UNSJ>@:lNb4WsZAfUeX +!F`P0bQ/Xjr*TbIFCJWc.k=il?ijOW1\G,U7/[)c7/gQohp_T:mK/"?s1&-_ +$*H)Ss7&%E_'>E4rrV^@[J0\&eXcO6rrVR+Y5[&]f)bpS!s&B*!<<-)rW!'%!!3YQoumDFr;Zj! +VXhq2'Dhb26q[d4!!-Q.eGg*M,JO0FlC%m.jo +$*H)Ss7&%E_'>E4rrV^@[J0\&eXcO6rt4W:#QOi+#m()/!s&B*!<<-)qu?d"%a+Ig!+Pm,! +$*H/Us7&+G_'GK5rrV^@[J0\&eXcO6ru(B>2D[-H3alE*@UWYR@:3MS?sm)C?t!cloumGG,Q;'O +@CbsQ!>>k=?j:Uk@UNCj/+$^G>9#cu?iW=f!!#Fd?ia`:eGg*M,ej9Gm@"31jo +$*H/Us7&1E_'>E4rrV^8^A%X/eXcO4rrCdPfF-:4!!<<(!!NB'!=&N'!s&B''D0KK?Msj)!OMCA +!Ql)Q!!5P]#LEGS0r]<+me$,Ns8N#es6fpPrTX@Ds5F"6s4J1 +$*H/Us7&1E_'>E4rrV^8^A%X/eXcO4rsonH!!3H.!!<<(!!NB'!=&H%!s5!_.(=gaU`kfY._3%JS9R2?]^-hs`V,TD< +m/MS~> +$*H/Us7&1E_'GK5rrV^9^A%X/eXcO4rt\'\1Gq4%?t*SR?t*PP@:WbR=C,BDD"PpP?6fGW!F`\5 +bQ>p#$iFB:EH5Mr>9brk?ijO?9_Dcn1]7:R9)`3&$Sn`)\aK+]s8W)tnGhqVmJZ>Mjo=<>h>c.D +e^)L[_8[/)O\Ru3H\Lt'6i`@G +$*H/Us7&LJ_'bN3rrV^0`qTK7eXcO4rt!i9f\+jX!! +$*H/Us7&LJ_'bN3rrV^0`qTK7eXcO4rsonH!!ET0!!7J3!'iIP!!"M_K$;6N\Zr-1RZWJZH#d\0@Tui08OPWp.jGuH'+G9P! +$*H/Us7&LJ_'tZ5rrV^0`qTK7eXcO4rt\'\1H%:&?t*SR?t*PP@:WbR=C,BDD"PpP<@e&V!F`\5 +bQ>or'`DDE@WHHr?s=U,m9fut!*Jo%!%\!J!)EN$5YMUe!%S_7bf7K0Z)XXhOc"a;Ec,>q>ua`n +6p!.S,T@C1%137?!<<*#!X/`7F_WuF +$*H/Us7&LG_'bB/rrV^0bkM,=eXcO5rtk[gf\"m/!WW<+!<<3&!!*H-!!**#!?CaU!)EIm! +$*H/Us7&LG_'bB/rrV^0bkM,=eXcO5rtkYN!WW?0!WW<+!<<3&!!*H-!!**#!?CaU!)EIm! +$*H/Us7&LG_'tN1rrV^0bkM,=eXcO5rtkZ(2)@-O@:3PR@:3PQ?t!VS?r16=@<(q`!DY0E?ia]M +o?79Y$5EGH#@_^n?sm1Y4RHMX=9;_"?iV2F!!#dn?n"oX7$TW')fdAV.k>$bZMDJaE: +IY*H>Q(=VFWiib;\\,ShqnWh8'=#9Z]X +$*H/Us7&[L_(1Z3rrV^0bkM,=eXcO5rt,1`f\"m/!WW<+!<<3&!!*K,!!NB'!@,q8p<3M.r;Zj" +_XktP`Wc8?!XD[dci=%se1hP'=XUVkCID%Ms8V&SPt;!2V +$*H/Us7&[L_(1Z3rrV^0bkM,=eXcO5rt,/G!WW?0!WW<+!<<3&!!*K,!!NB'!@,q8p<3M.r;Zj" +_XktP`Wc8?!XD[dci=%se1hP'=XUVkCID%Ms8V&SPt;!2V +$*H/Us7&[L_(1Z3rrV^0bkM,=eXcO5ru(f*2)@-O@:3PR@:3PQ?t!VS?r(0<@FDbJo>803e?ij"0>P2A('`A"39`AE"2q0Sp6s;%I^2?>9ec5[.V3OUR18X=: +J,~> +$*H/Us7&[G_(1E,rrV^0bkM,=eXcO5rrN,Qrn%V3"TS]1!<<0&!!!E+!"/f-!B'oUo]bJjccuC3 +!'C,Z!<^42bl>Z_"oJ?%#?3M/!!!'!!!$Z]OV"2nQ+DDE6igoYs8Abp2kf3qs*t~> +$*H/Us7&[G_(1E,rrV^0bkM,=eXcO5rt,/G!WW3'"98T0!<<0&!!!E+!"/f-!B'oUo]bJjccuC3 +!'C,Z!<^42bl>Z_"oJ?%#?3M/!!!'!!!$Z]OV"2nQ+DDE6igoYs8Abp2kf3qs*t~> +$*H/Us7&[G_(1N/rrV^0bkM,=eXcO5ru_502)@$H?=75Q@:3MP?smPR?qas9@=eIWo]kPkccuC3 +!BW+:?ia`VoZ[?T! +$*H/Us7&gG_(gi2rrV^0bkM,=eXcO5rrN,Qrn%V3"TS]1!<<0)!!*K,!!<6%!B^/X#6"2Zjk7s; +r;Zj%`q7IV`khcS!!3C11YMg/!VcWpVUX9/XoYer!Hjib!/fkWKcA_/s*t~> +$*H/Us7&gG_(gi2rrV^0bkM,=eXcO5rt,/G!WW3'"98T0!<<0)!!*K,!!<6%!B^/X#6"2Zjk7s; +r;Zj%`q7IV`khcS!!3C11XH+%VUX9/XoYer!Hjib!/fkWKcA_/s*t~> +$*H/Us7&gG_(po3rrV^0bkM,=eXcO5rtkZ(2)@$H?=75Q@:3MQ?t!VS?qOg7@>4RX#Q=;^jk7s; +1]Cb_@`e8d"3JOa*;s7M@WlQq?s="2m9orE!*f/)!F>s.!!$.#?i[aefab.dZ'k`:RY:a!jVrmm +g$&Hd~> +$*H/Us7&sK_(gZ-rrV^0bkM,=eXcO5rrW/Ng&BV2"TS]1!!!$(!!*K*!!**kr;QcrqYpOSrW!!# +#0-;Z!m8=[qu?d'A1ZF7!!2ip!2e9!&?Z2BOTC'&OTg3>,CTWdh>Z^>J,~> +$*H/Us7&sK_(gZ-rrV^0bkM,=eXcO5rt,,8"98E'"98T0!!!$(!!*K*!!**kr;QcrqYpOSrW!!# +#0-;Z!m8=[qu?d'A1Z(-!2e9!&?Z2BOTC'&OTg3>,CTWdh>Z^>J,~> +$*H/Us7&sK_(p`.rrV^0bkM,=eXcO5rtkVp2D[-H?=75Q?smDR?t!VS?qOg7@>Fd\!<2ip!BDt8 +?iaf[oZRE[_#bk[?jC.dCLCOS$VKhp!a?X,oj@c+qu?_!ra5`:eCbD9"gsHnJsqf*I^LGM!286J +lMlA~> +$*H/Us7&sH_)$f/rrV^0bkM,=eXH=2rrW,Mg&BV2(B=OA!<<-.!!*K,!!rZ+!CY8ejm)R_=5/OXoYN,=TERh0r_GcPsbWl=g@5Xs*t~> +$*H/Us7&sH_)$f/rrV^0bkM,=eXH=2rt,#5"98E'"on`0!<<-.!!*K,!!rZ+!CY8ejm)R_=5/OXoYN,=TERh0r_GcPsbWl=g@5Xs*t~> +$*H/Us7&sH_)6r1rrV^0bkM,=eXH=2ruM"u2D[-H73jl?iX=,!!$7&?i[+s`q$t8^(RRLWj,_-FX/`B +[0i0e!?54IlKnP$~> +$*c5Ts7'*H_)6i.rrV^0bkM,=mXk00rrW,Mg&BV2(B=UC-PHjt!!*T/!!<6%!D*.4#gL]Kjm)R< +s!RaF!=R'BbQ>qt!W2p!#B:a^!!!&e!<3)a!8[bO"VW7O;80b4%4A!dD&]=BRVabZH1^M(J,~> +$*c5Ts7'*H_)6i.rrV^0bkM,=mXk00rt,#5"98E&"onf2-PHjt!!*T/!!<6%!D*.4#gL]Kjm)R< +s!RaF!=R'BbQ>qt!W2p!#B:a^!!!&e!<3)a!8[bO"VW7O;80b4%4A!dD&]=BRVabZH1^M(J,~> +$*c8Us7'*H_)6i.rrV^0bkM,=mXk31rtkSo2D[-GFd)$-gfLjmDg@ +s!^)0?iai]oZRE[\H+5Z?jC.aCLCOS"]4Vp!a>_&oj@bpqu?_$ra5a@!;-BX!r)p4.7@%I^-iDZ +V7pdcV4F&l1&u[nmJh\~> +$+2;Rs7'6G_)m,0rrV^0bkM,=p4D`0rrW,Mg&BV2(B=Fo9h\;M!!*T-!!**rp<3T_cPuf_!=m9D +bQ,'J!!3CI)ZB^:!Rq)SB8)&)EOh@"mbR9h$b6:3[CN95^5;oJRf9,cPp]f8mJh\~> +$+2;Rs7'6G_)m,0rrV^0bkM,=p4D`0rt,#5"98E&"onW^9h\;M!!*T-!!**pp<3T_cPuf_!=m9D +bQ,'J!!3CI)ZB^:!Rq)SB8)&)Ek.I#mbR9h$b6:3[CN95^5;oJRf9,cPp]f8mJh\~> +$+2;Rs7'9H_)m,0rrV^0bkM,=pO_i1rtkSo2D[-GHtHbo>67pp?ijF1=S6&%9)JYh>Q/"8GD1a9Ek.I#mbR9h$b6=4[CN<6^5;oJ +Rf9,cPpp# +$+VSVs7' +$+VSVs7' +$+VSVs7'BH_)m,0rrV^0bkM,=q3ob/rsATa2D[-GXX#!>@m#?iY$6 +bQ=pI/,`i\@XDZo?s +$+_MSs7'EI_)lr+rrV^0b4ko;q6dd1rrW,Mg&BV+:B1Aor_*E!!!*c2!!*+&oZR:Kr;Zg2o#q*5 +qZ$[&Gn\a/rW2uu#<#7ID'QH*FkQd+oA(Vu!"((RD;C'L;4WsP^?klM~> +$+_MSs7'EI_)lr+rrV^0b4ko;q6dd1rsAN."98E&"98F$r_*E!!!*c2!!*+&oZR:Kr;Zg2o#q*5 +qZ$[&Gn\a/rrN&u#<,=JD'QH*FkQd+oA(Vu!"((RD;C'L;4WsP^?klM~> +$+q_Ws7'EI_)m#-rrV^0b4ko;q6dd1rsATa2D[-G;.*dRr_*ZB?t!kZ?p%h)@?pK/!>A*)?iY$6 +bQ=dE1]:\d@XDZo?s!D2mU-)Y**`)D!$(tb""\EPV[;C'>rt+eX,ROMY.0+5@M?$ME +PlSPbs*t~> +$,.YSs7'QI_*iG0rrV^8_=mm1c^jn0rrW,Mg&BV2:B1B"9MJ2k!!*c2!!*+4oumHZ%K-8,*:h;R +U&+fk$%<9:!!!&u!!!&t!!bD4!(eECD0=P3&;gIQh +$,.YSs7'QI_*iG0rrV^8_=mm1c^jn0rt,#5"98E&"98F,9MJ2k!!*c2!!*+4oumHZ%K-8,*:h;R +U&+fk$%<95!!!&t!!bG5!(eECD0=P3&;gIQh +$,.\Ts7'QI_*iG0rrV^9_=mm1c^jn0rtkSo2D[-G;.*dT9MJ3+?t!kZ?p%h)@@?f4!m1sGra5_G +o#q0/!&OR]#@`-n?sm(:=RKSs.f`fI?iaR;rVus#"oVg69Ig*7,dhK3g&DVC!0uC*nF>TtHi-8n +SV7O'm/MS~> +$,IkVs7'QI_*iG0rrV^<\b?%)l@ns0rrW,Mg&BV2Du]l]7#F' +$,IkVs7'QI_*iG0rrV^<\b?%)l@ns0rt,#5"98E&#QOjJ7#F' +$,InWs7'QI_*iG0rrV^>\b?%)m=k<4rtkSo2D[-G:LIRd7#F'a?t!kZ?p%h)@@?f4!m1jHra5_K +o#q0(!&OR]#@`-n?sm(:=RTW!>9brs?iW=e!!!E*?jA7`)aksZD0=S4!qA[Dqu6qa7-.DK>!"M$ +m/MS~> +$-!qSs7']H_*i;,rrV^FZ1e2!p4Df3rrW,Mg&BV2Du]l]9VF7S!!*T-!!*+7oumHV"oSE$/+Uma +Oo#+[$%<3[!!!&L!!a<;rPBeeD0=S4!qAj6rVm5pjV)M/\Q(?aL&UH=J,~> +$-!qSs7']H_*i>-rrV^FZ1e2!p4Df3rt,#5"98E&#QOjJ9VF7S!!*T-!!*+7oumHV"oSE$/+Uma +Oo#+[$%<3[!!!&L!!a<;rPBeeD0=S4!qAj6rVm5pjV)M-\Q(?aL&UH=J,~> +$-!qSs7']J_*i>-rrV^GZ1e2!pO_o4rtkSo2D[-G:LIRd9VF>%?t!bW?p%h)@AOPr$>80L!?iXF.!!!E*?jA8\rPg+jD0=S4!qAj6rVm5pjV)M/\Q(Bb +L&UH=J,~> +$-!qSs7'fK_+AM-rrV^FZM+;"q3BY2rrW,Mg&BV2RK*A1 +$-!qSs7'fK_+AM-rrV^FZM+;"q3BY2rt,#5"98E&)?9e[ +$-=.Vs7'iN_+AM-rrV^G[J'V%q3BY2rtkSo2D[-G:LIUYOPr$>67Xp?iV2D!!!`3?jG0\s5a]tD0=P3%]'0!`gV$U.6H5_s8M<: +lMlA~> +$-X@Ys7'rK_+AM-rrV^FZM+;"q6IU0rrW,Mg&BV2RK*A.@\GSi!!3Q-!!<6%!I4:]!Q#$=!!#+O +bQ*+h!!3OW$/PX^!V??sa77DL!5Vu]g&DDQas.inCPAU-!5@UqJ,~> +$-X@Ys7'rK_+AM-rrV^FZM+;"q6IU0rt,#5"98E&)?9eY@\GSi!!3Q-!!<6%!I4:]!Q#$=!!#+O +bQ*+h!!3OW$.&YWa77DL!5Vu^g&DDQas.inCPAU-!5@UqJ,~> +$-X@Ys7'rK_+AM-rrV^G[J'V%q6dm5rtkSo2D[-G:LIRN@\GZ;?t!VS?p%k*@AieB!lbCGra5_[ +o#q/a!'L3f#A&?n?slb6>OPr$=9)Iu?iaRYq>^L8rEol_n]af/_-V08rsGIB,TB-hKr&nl^?5HG~> +$-s:Ts7'rK_+eY-rrV^F[IsP$bb=k2rrW,Mg&BV2ZiC8DCS +$-s:Ts7'rK_+eY-rrV^F[IsP$bb=k2rt,#5"98E&.f]`eCS +$-s:Ts7'rK_+e\.rrV^G[IsP$bb=k2rtkSo2D[-G;da'LDP8qE?smGO?o)5!@B0"E!l4qBra5_] +o#q/X!'L3f#A&?n?slS7>OPr$6kil$?i`k-q#CCFrEokr3 +$ITUXs7'rG_+n_Dl2LhT2lZKM!pPF4rVlrsf@g/U$FBd@@SKQQj""Q]Wg!:]1OJ,~> +$ITUXs7'rH_+n_Dl2LhT2lZKM!pPF4rVmH*#m:5.!@n-X@SKQQj""Q]Wg!:]1OJ,~> +$ITUXs7'rH_+nbEl2LhT3NDcP!pYL6rVm]33]8cM1fIdn@SKQSM-s_#?skd!?t$).bQ>K[>Q/"1 +L[rXjEWAN+?jC7i@UNS3$X<(-!])'*qd9G,,PM0<;#Oc+/WSZ$8HOq)rrRX]nbrIjjT)OcnE9h%~> +$ITUXs8R(Y\PZu^9.));qCIV/-MnFZbF'*)2)kPp&~> +$ITUXs8R+[\PZuPSJ9.));ojo`+.h!*SgSs*t~> +$ITUXs8R+[\PZu#%>uS.2.ojo`+1q!*\mT +s*t~> +$IoUTs8R(Y\Plu:l2LhT8Xf>P!r7u7rVlrtf@g/U$H`>g6mj?4QD7J,~> +$IoUTs8R+[\Q!&;l2LhT8Xf>P!r7u7rVmH-#m:5.!>PSS6mj?4QD7J,~> +$IoUTs8R+[\Q*,P!r7u7rVmQ03]8cM1e(kg6n'Q8M-s_"?skei@0!n3bQ5*TrEoVj +o#q/I!)!2t#A\Kl?sl):>OZ#)>80J34=^g2!!"hQ?iq>sSaP&.$@?OXKi*3sq4T\Ak5Tr~> +$J>mXs8R4Y\Plu:l2LhT9pPDO!r9"5rVlotfDX>5f)[B\-RUEG!!!$$!!!uK"n^"=Y5A8"B(F.G +@f$-,,\IAI!!!&`!!/kbe,Kbp@U9%g"]b*WRdoP?J,~> +$J>mXs8R4Y\Q!&;l2LhT9pPDO!r9"5rVmZ4#m(),!XSlX2^]t'TK`tKHl'h/)s*t~> +$J>mXs8R4Y\Q*, +$J>dUs8R4Y\Q*, +$J>dUs8R4Y\Q*,!<;lk$"TSP-b/X(t!3,kr!+tfG +!*T1!!\@jeci=(!e,KgGCM=6O=euJndM)-4s*t~> +$J>dUs8R4Y\Q*,%?iZVc +bQ:rJ:AnQ*CO'As?o'$3n6c5Pmf3@r>Phe.hp_T5nSW(NTj"9"ma;d +$Jc'Ys8R@Y\QN8 +$Jc'Ys8R@Y\QN8R/p^!!2lq!85j$$h8(J"f5q("l\\Gl/r"r~> +$Jc'Ys8RF\\QW>=l2LhT9pPAN!p,=8rr3'!7Q(0$"#aJ6/,gt'LLOY"ARH4_b4EgXTaUj-!F_De +bQ:WA;#Oc,CNa/p?o'$3nR)>Imf3@i9_r,shp_T5nSN"EV.uP)iT^F.k5Tr~> +$K20Xs8R@V\QN8 +$K20Xs8R@V\QN8'9*G:r$NL1Db4EgWRf*3e!HdnV +!_E@mr;ZmT>R/UU!85j$$h8(G!S*IO,JN[]dcUR[~> +$K20Xs8RFX\QW>=l2LhT:6kJO!q^s5rr3'!7Pt*#%lIL31+=Y-EaiEbARGncb4EgXRLB+&!F_Pi +bQ:?9;#Oc,Cj'8q?n3a3nmDGRmf3@r:\eAuhp_T5nSMk>eWmrr^@;lbk5Tr~> +$K20Xs8ROW\QN/9l2LhTt!=Jl-^@KJJOo57\!I41Z!(?\a +!]s?dmf3=gmf3=gp&G*@e,KgGD.Wg<9N>)MnN3T0s*t~> +$K20Xs8ROW\QN/9l2LhT +$K20Xs8ROW\QW;PMS+h:)B3nSMk>SP3$`MX`d)k5Tr~> +$K20Xs8R[[_HU14l2LhT?A8%O!r8h4rVucI%5%V\! +$K20Xs8R[[_HU14l2LhT?A8%O!r8h4rVlmJ!WE'/!<`B&! +$K20Xs8R[[`a)d;l2LhT?A8%O!r8k9rVlmt2#]951fe!lrF#nE?smGO,BEA!!K%Tj?ia]9o#q.q +!*K2-#'"Zm?s>-3o3_S5$h=9!!\7CH?i]9:rsS@6AceMs:3C11Ap`\?J,~> +$KVi +$KVi +$KV?Ws8R[W`a2jWq+@8 +1&tGT?j:Uk@UNCb1\5#G!! +$KV +$KV +$KV?Ws8RdY`a2jWI +1PtYG!\"+Rra5t?EcGJp>9brr?iXF*!!E?;1J2!D?i]NArs\F7C(mF;9VDg_]Hm%1s*t~> +$KV +$KV +$KV9#ct?j'[6!#,V9$NhV08mC[j!:/,6%.S1L)l65%SH.s:!Uf.N +J,~> +$KVVV! +$KV +$KV +$KV +$KV +$KV?jC._Cg^XT'L_S$!*K.!!#4X)!:&&5%.S1L7$UG>@QU:F%>F!FJ,~> +$KV +$KVKhY6 +$KV +$KVOh1^')Ce7[%N8)M+]B5%L2t7!!!$0mJm4frW!*0,?&lj`qdgY_>4-5 +#@oC5!!36(maM1GoMnapGtq%,SLa71XqU6fs*t~> +$KVOh1^')?MP.o:57ED%hr%L2t7!!!$0l2Utq,?/rk`qdgY_>4-5#@oC5 +!!36(maM1GoMnapGtq%,SLa71XqU6fs*t~> +$KVH#$eq>74'q?iX=,!!"h??ijeGmaM1GoMnapHVR7.SLa71XqU6fs*t~> +$KV>b*=4J!!3C< +,gcSn!X8#@rsn,kiH8p19MD,`nGhtsZ0D:=~> +$KV>b*=4J!!3C<,gcSn +!X8#@rsn,kiH8p19MD,`nGhtsZ0D:=~> +$KV1F!S_>(X$!bfZ1r!$(oE +#@_ml?sm1H9_;]m=Sr.!7-\.]@:JZRrsn,kiH9$49MD,`nGhtsZ0D:=~> +$KV^R%E?*@+!W`Pq +e,Ks$'Ch)] +$KVRUN`9"P9U,Y;s8R4Un`p.)~> +$KV +$KV +$KVW&9.U_]#MT4[#BUm_!!!&g!!!&a +!!33,nC.CJZ8(mK2e#HSE[/ +$KV"!nI"$6ZCLpsak$S9q4?QjE?jC.gAmf"N +"]4i!!*K1"! +$L%QUs8Sc\`c4E7kl1^u,Ot4%!:B^:(>/ik!!*'"!X8W0#n&"HA:Af'3tho*hZ*]_Gn^/WrrL[N +!W`Pqe,Kra1%E7&F\GJ/=b?\RcP,g5s*t~> +$L%QUs8Sc\`c=K8kl1^u,Ot4%!P&70!<33%!"o;4!!3?)#71b`6tCal<'(a"#N#L_#C.!^!<3)N +!!30+nC.CJZ8(mh)g+hJ +$L.WYs8Sc\`c=K8kl1^u,k:=&!Q[+r1DVlT?smDN?t!SR@U`n`EI!"[FDbZ!@c(Pu@XDZo?s<\/ +oO%Z$r;Zg$k[4F#nC.CJ[5.9l)g+hJ +$L%QUs8SoW`c4E7kl1_()tE@r!:B[9)A`AR! +$L%QUs8SoW`c=K8kl1_()tE@r!P&70!#ktD!!!$$!!!*$!!*9(!!`fK4'[&[A4.LG#7';i!XEua +rVup!eGoXO$1QFD&(2-]h$T$59MU%>nc.DPnEU%(~> +$L.WYs8SoW`c=K8kl1_+)tE@r!Q[+r1DhuM?smDO?smGO?t!SR?t*SWDK^AUH#[Kr@cUo%@XDZo +?s<\7oO%Z$r;Zg3k[4F#nC.CJdM)0,$AqMN:4?C:s4n%OlMlA~> +$L.WUs8T&W`cX];kl1_1'CkMj!;-0@$SDDZ!W&9.UGU#Nu-h$%<9/ +!!!\\rrqKalK&&3r_*Nm)tEsa$Lm?\J,~> +$L.WUs8T&W`cX];kl1_1'CkMj!R(TC!"8l2!!!$'!!!$"!!*K)!<392'/N:'IW8"3$O6q#!!3IU +$d\kR'@QmajT+T-!L +$LIiYs8T)Z`cX];kl1_1'CkMj!S'%*1CQ*@?smDP?smDN?t!XD@/j[CAScC7IWfaIAR]-4?jC.i +ARJnM!*Jl$!*K1"!$(31!+jUY"m#aOjT1YG9Eq=4nc.DPnEU%(~> +$L.WUs8T5Z`cXB.kl1_4'CkMj!;-0@#>Y="!=Jl-!WE'!#58,t#7:ha6t^so<'(a"#ODEl$%<9/ +!!!\\rrqm$ddRF6r_*Nc!9sO>$Lm?\J,~> +$L.WUs8T5Z`cXB.kl1_4'CkMj!T!kU!!iT.!!!$-!!!'!!!!5t!<392$RA,QIX+mS'+"p1!!3IU +$d\kR'@Qman.!h8"ekoh#+GVWs4n%OlMlA~> +$LIiYs8T5Za`T]4kl1_4'CkMj!Tc0:1BfU4?smDSqd9D7pL+#1$>!slGCFm\DIm9dlsL'-IUunp +=9)Iq?iX=-!!"P5?iXcdrrqm$ddRF6r_*Ne!:'U?$Lm?\J,~> +$LRoYs8T5X`d'Z2kl1_;$LmK`!;-0@#B0YC!>>G5!WE'!!qH="#72;1>^:d/6lZL<#Oqcq$%<3- +!!""errqpmK(1(Zr_*NF)o;QR/+Mp)J,~> +$LRoYs8T5X`d'Z2kl1_;$LmK`!T!kU!!iT2!!!$5!!!'!!!!)k!"9)=)EV2LIUkhd#mU_*!!3IU +$.&YP*7FijnPt22,GG*1#(@N-s/@O=lMlA~> +$LRoZs8T5Zaa6,:kl1_;$LmK`!Tc0:1C,g5?smDZ?smFB?iXX+@/j[@Ao;d=IX,pKraPD*#@`-k +?sm(:=S,u$=T&4"1[&3HCXW4dnPt22,bb32#(@N-s/IU>lMlA~> +$LRrVs8T>Yb'l;7kl1_C"n:s[!;ZNE"E4>@!?D(=!s8N'!U]sf#7;,#96>Vq9.UGU#PA&u$%<3- +!!"OsrsbYVj[>5*9MA;mH13>El2Q8~> +$LRrVs8T>Yb'l;7kl1_C"n:s[!TsO_!!NB/!!!$>rW!$&!!!&f!<392'/N:'IV2;)$O6q0!!3IU +$.&YP/(+A+TeYXsO\JMC;.=h?.urloJ,~> +$LRrVs8T>Zb'lAQ=7$12;9Mo8Gn10O`s*t~> +$LRrVs8TJWb'l55kl1_K!:K:T!;QHD%%7.r!>>G5! +$LRrVs8TJWb'l55kl1_K!:K:T!VHNm!"ArI!!!$5!!!$(!!!$$lN$qi$4A+IB7=r%1D:'"q#CI( +IL4@$!&r=*%H.;I?@GUB9MUI,)as2[s*t~> +$LRrVs8TJWb'l58kl1_L!:K:T!VePN1CZ0:?smDZ?smDR?smDOlX9a%$>!slGCFp]Ch7'bq-XG= +IUZ\m=9)Iq?iX=-!!#XT?iYK"rsdoeNa@0/9MA3@3u^TWl2Q8~> +$LRrVs8TV[b(;G7kl1_L!9rqO!W:XKfF5+e!!3N.!!*9(!!*;d!"0#<)EV2LIU#8Z#m^D/!Y^"f +ci=&Jd/OLD!!$J*9MA0[!,;8ms*t~> +$LRrVs8TV[b(;G7kl1_L!9rqO!Vurt!"ArZ!!!'.!!!$(!!!$(jo>bo#oYm1H%'!d)@6ZI!!3g_ +#LEGN=O@'UnGiPu;+sYXW;pZ.kl6/~> +$LRrVs8TV[b(;M?smDS?smDR?smDRk$\3u$"e'uH[^-XAn#6J?jC7l +@UNSG!*Jl$!*K1"!*JGm!0tq2$h42s@Sofm9r\2.q<7j/~> +$LRrVs8TYXb_7e9kl1_P!TibL!W:RIfDs(n!!!6&!!EK+!!*T!!!=b^#7'u'%L3:R1K8IFB1jKX +#9&$rci=&fci4 +$LRrVs8TYXb_7e9kl1_P!TibL!W!-$!!**8rVup&rW!'*!!!$0n,NPA%L375!"K5?'/NU0IV2;! +$O7T!#LEGNFO0sn_Aeb\9MA/i[IEAZJ,~> +$LRrVs8T_\b_7h;kl1_P!p/kM!W5"W1BB=%ra5_:ra5k>?smDWn6c?6BjtQG@/j[JAScI9IWogI +AR]8#@UNSG!*f)'!*K1"!*eYp!1hI9$-!pLE_K/$@^Y^gs*t~> +$LRrVs8TeXb_7S3kl1_R$Jk.M!WL^KfDs(n!!!*"!!!-#!!!5n!!YN6IX+mS"n_lq#7(\_94r]q +IV/i`!!!&g!<3)`!!%8hrrK+8rCd8m:=\P-J,~> +$LRrVs8TeXb_7S3kl1_R$Jk.M!WEE(!!**8rVup"rVup#rVup&nGibTIXZQA3sG9Wrs&f;,YMd! +FFIj+rVup!mf3=gk5YL,cMmpE_>R%/ +$LRrVs8TeYb_7S4kl1_R$Jk.M!WG.Y1BB=%ra5_7ra5_8ra5_:nR)Q=IXZWcDIW9Hs'cFKC3"NI +I"$9K?sm(<>P);'=T/:$!ab(u!2n-B!NO!79EJ3he`Zs_~> +$LRrVs8Tn[b_dA(kl1_S'@Q=K!WLgNfEBe,!!!'!!!!'!!!!)j!!bnb',irX>QsZurs&W4)G:,0 +!!!&L!!&P7rrB%r9EJ(.V<@l/~> +$LRrVs8Tn[b_dA(kl1_S'@Q=K!WEo6!!NE1!<<*#rVup!rVup"nGie^9+r4*H!COD!<39+#oZG; +r;Zfue,TK=cMmmDr(I/hD5HFqJ,~> +$LRrVs8Tn\b_dA)kl1_S'@Q=K!WGRe1BB?ora5_7ra5_7ra5_7nR)TAEb/j#HZilh@/aU9AodiX +!a#M.oO%Z$rVup%k?n;,cMmmEr(I/hD5HFqJ,~> +$gn&Ws8TqTbcUqPr9=4_nO1Cas81FSf)YjO! +$gn&Ws8TqTbcUqPqW\"]nO1Carr=PH!!!?)!!E<+!!!'!!!!&i!<5Fj#64`[A-_N&!!3#urrM]k +!!2*[!5$PV!5eY-"&4o,o]Z=*~> +$gn&Ws8U(XbcUqPr9=4_nO1Carr?$r1C-$J?smDP?smFB?iXX*@/k3M@UNS[H"-#G!`/r&oO%Yq +rVup+k?n;=cMmmar(I2eOacrds*t~> +%djAZs8B)>ccj*'?I.m8m/I.;>LMp=!8RM)%G:mb!!*9(!!*6'!!*8o!<5Fj#64`T>R0Kn!!1OK +!7K0m!SpKK9ES"o9_@QKJ,~> +%djAZs8B)>ccj*'?I.m8m/I.;>LMp=!&j`Trri?%#lt51!!*6'!!*8o!<5Fj#64`T>R0Kn!!1OK +!7K0m!SpKK9ES"o9_@QKJ,~> +%djD[s8B)>ccj*'?I.p9m/I.;?./-?!+5X[%5qO#?t!SR?t!MP?t!O8@/k3M@UNSZG%0]D!`0&) +oO%Z$rVup4k?n;GcMmq$:&R`f9sICakl6/~> +'CZ1as8V$Y2q#pD6i]/XS'9^QnFHS]`X2^"mJd1Iqq);n!!!$0!!!$0!!!$0nc8\X"U>#-/6iFl +!!*,ZcMmq@;>j/j9s-;Akl6/~> +'CZ1as8V$Y2q#pD6i]/XS'9^QnFHS]`X2^"mJd/_qu@0,"onW(%KHJ0%KHJ0%e9W"6j3eq!%_@[ +])Vj4iQhH(q,.)a"&5pSnEBn&~> +'CZ1as8V$Z3RZ-F6i]5ZS]opTnFHS]`X2^"mJd0-r%ed=[3E +!q6BPrr3Z->;a[L_6S2X)Z^:##-/6iFm!!36(lH]D1rDiei"&54Pg$&Hd~> +!q6BPrr3Z->;a[L_6S2X)Z^:# +!q6BPrr3Z->rBmN_6nD[)Z^:$[3 +E +!q6QQrVn#4AcXW3WQ`W,[Aeaa6k]P00i`Lqc/IscrQ5:8j^qukmf*:Qqq)$I!!!$>rVup+rVup% +nc8\X"U>#-/6iGZ!!A6l('2;Q!W`Vsc2RcmrCd;fIW;@Ns*t~> +!q6QQrVn#4AcXW3WQ`W,[Aeaa6k]P00i`Lqc/IsarQ5:8j^qukmf*9Oqu?m$"98E&*<#p<$iU,+ +"nDZn6j3eq!%_@[rW!%F;AK;N!!30-nBLt5If2qB9n%,^kl6/~> +!q6QQrVn#4AcXZ6Wm&`-[Angb6k]P010&[tc/J'frQ5:8j^qukmf*9ar%eL5;.*d?EW0>GAc?'; +@e*q,E +!q6QQr;Rl;l(qiD"U-,_Q+G;c_6Ktk?98f#%5h@Y-Z.u,KganfrrDH`fE?-n!!*c4!!!-#!!!&j +!"MCi$NL/X>R(6/Yfk87`9mU*"nW&u"TSqp#6=uHbl7['rCd>gAt"2@l2Q8~> +!q6QQr;Rl;l(qiD"U-,_Q+G;c_6Ktk?98f#%5h@Y-Z.u,KganfrrA8\!!NB/!!!$5rVup#rVup! +nc0.f9+(_"/6iD[!0sXfXetLd!!Mp!!!N9)!"8#r! +!q6QQr;Rl;lD7rF"U-/`Q+YGe_6L"l?98f#%5hF[.;e2.KganfrrB"q1BfU2?smDZra5_8ra5_7 +nmDfEEb/WdCNa/p?nVF*!%@>E!_Ni,oO7f,rWN9_k[FO(bl7['rCd>gAt"2@l2Q8~> +!q6QQq>^Kb)Xu^rGtAqU$9N*qb14YK^869qD)L#.jeX3\mf*:Sqq(mfrVup+rW!*&!WW3$"7lL' +/:LPS'/Nku!!'7Hbfn87n,NG`noXkRk]?i)1!KXtY5Crq;p%f+l2Q8~> +!q6QQq>^Kb)Xu^rGtAqU$9N*qb14YK^869qD)L#.jeX3\mf*9tqu?`u#lXf($iU,0! +!q6QQq>^Kb)Xu^rHV#.W$9N*qb14YK^869qD)L#.jeX6]mf*:.r%e@1:]=`%Ac?*;@K0^9@:Jh9 +$>Y*4Ch7F+@UNRrr?_LsnR)Ai;"B#5Fm+2RFE>\+!3Z5n"'*K;o]cC+~> +!q6QQoDej\'^jYNEB=L-'1?i>c-LO?g$.V7%H6aT!;-0@!1Nle!!W?%"T\f-!!*T#!"Ku:>^h-, +"TSS3bKS/QYj_Vm'Cm(@)ZUZC)?MI&*;pcV'1g@I!71R:"&@f2nEKt'~> +!q6QQoDej\'^jYNE]XU.'1?l?c-LO?g$.V7%H6aT!6k?@!6sP1i +>Qk*.R]NWmXHi8T!#+oArYkhQn/;?ZB,pjg!>A#JrrCCC9ES&K1[sZ/J,~> +!q6QQoDej\'^jYNE]XU.'1?l@c-LO?g$7\8%H6aT!7h!'!AmUO?iX[8?j0tL?smDWnmDc>EHZe[ +G%+ie/H$mq0(E5rYki@n7D`;GAI.h!G.&1rrCCC9ES&K2=Tl1J,~> +!q6QQmJdafnEJ8gD(>bi/$<`gm`G^ho`"pbr:p?bqpthTrW`E0rW`T5*!Z]T'Di%.!!``8'+"X= +"gJ!M!mALih>dNko)Jq-!!"Q\#Q+Q%FNjabl243W:"_qfl2Q8~> +!q6QQmJdafnEJ8gD(>bi/$<`gm`G^ho`"pbr:p?Lq[!6QrW`E0rW`T5*!Z]T'Di%.!!``8'+"X= +"I8tg!j&7)h>dNko)Jq-!!"Q\#Q+Q%FNjabl243W:"_qfl2Q8~> +!q6QQmJdafnES>jD(>bi/$<`hm`G^ho`"pcr:p?Sq`4^Uq-j>DraGkDqdT8,s'c.C@UNSM0)[*t +-s?+K!^m`,oO%Z'rVuq%o3_` +!q6QQkl:\Q$1QUm;5F`4h#Q.$rrW"qU&CefU&1J_M>:BVAG9=/7.:0VYl;iIb@KE/!0Qkr"dM"H +4&cI_!!&D1rrMaerCd;f^2^.:s*t~> +!q6QQkl:\Q$1QUm;5F`4h#Q.$rrW"qU&CefU&.XdEVWi>AG9=/7.:0VQ2[ldXA[jS!0Qkr"dM"H +4&cI_!!&D1rrMaerCd;f^2g4;s*t~> +!q6QQkl:\Q$1QUn;5F`4h#Q.$rrW"rU&CefU&/C$GPQC^H1uI^EU[?90)[*s;=S#q6kikt?iXF1 +!!&/QL]s&h?uC'qr*TN9bl7_9:Amig9tkYJl2Q8~> +!q6ZPjSoJT%Ahk\\I-@Mrr_5/Q-]ER!6Y/FrA+F8r\FOBpG2l"A-qi-!sq9E\(hQ%JYns*t~> +!q6ZPjSoJT%Ahk\\I-@Mrr_5/Q-]ER!6Y-grA+F8r\FOBpG2l"A-qi-! +!q6ZPjSoJT%Ahk\\I-@Mrr_5/Q-]ER!6Y.:rG2IOrbMR_pM9n[H"-AQ!F@2R-3,[f?iiG1>P);, +>6"X(!!)Wu"TY!gWg/2.lMlA~> +!q?rPj8T=4?KGX=-a*4D!qqo!qu6]qfDO8%f)bjN!#,>3!"8c+!gOht&hlMlA~> +!q?rPj8T=4?KGX=-a*4D!qqo!qu6]q$2ji)!X\f*!#,>3!"8c+!gOht)ilMlA~> +!q?rPj8T=4?KGX=.B`FF!r%u"qu6]q3rLi92*,(C?iY$B?iXd;?ia\Ir*TS;G&d+]!FdVZ-35N$ +nR)DS**`&C!*fF&!1!/l"KDI%FE.1c!8l$#!WHF(9E\(P``;Zrs*t~> +!q?rJj8T=_46^?o8WNQF!r7`8qu6]rgAKS,f)bpP!?D(="Tnf+!!+):!!5P]#P.oqYl;iH[bLi_ +V=Vn6[/j?61].4R!T_H(!.Ol?"ANn#2=]u3J,~> +!q?rJj8T=_46^?o8WNQF!r7`8qu6]r(]47:#m(),!?D(="Tnf+!!+):!!5P]#P.oqQ2[lcRbRlC +V=Vn6[/j?61].4R!T_H(!.Ol?"ANq$2=]u3J,~> +!q@5Rj8T=`46gEp8WNQF!r7`8qu6]r7f5%G3alE(@<)9S"_(nJ?t"'P?ik=g@e3t-0)d0t/F[$K +1F$,r?iXF1!!&kebQP +!q@5Lj8T=8?>T\QGG4! +!q@5Lj8T=8?>T\Q +!q@5Oj8T=8?>T\Q +!q@5PjSoMUD/BsXj_82nq#:EkZF]o4!8RJ(";_%^^obQ,*/ +!!30$Y4Kj?Pp7f$)Z0R8$d/JL[JW]#;=8&$lMlA~> +!q@5PjSoMUD/BsXj_82nq#:EkZF]o4!&j`T"T\f-!!3Q-!!**6rVus#!W2p!*,u5U!!*j[rN-'g +hZ*]Y!3Yq;"I12^F;k&W!"6sL!4D_u"&\JuZ0M@>~> +!q@5PjSoMUD/BsXj_A8oq#:Ek[ClA9!+5X["Z07f?t!XG?ia\Pra>b7r*TSAG%1)O!EqJ]-3,Ue +?ii,/>P);+>6"^)Y4Kj?PpCI!B)H$:A]k#Q[JW]#;=8&$lMlA~> +!q@5PjSoMU>Cthqjap(np\t<2Y5.tp!9F%0!)NRo!!`E&!d2]R8[qu?^Ib5VIcr(I5fjctPlli2J~> +!q@5PjSoMU>Cthqjap(np\t<2Y5.tp!)WRn! +!q@5PjSoMU?%V%sjap(np\t<2Y5.tp!-A&o!Am[Q?iXa:?ia\_ra5b8@f0U8AU\+]?ih`'./bIm +/Fd-J.f`fG?j'[6!W]LsbQNATCOTjm?iY;krrC:@9E\)OQ%ekrs*t~> +!q@5PjSo;O/$]*8!hh.0p\t +!q@5PjSo;O/$]*8!hh.0p\trVus"*;fd<$%<9U!!31uXSf1# +Rbn)H! +!q@5PjSo;O/$]*8!hh.3p\tP);+=9&@%[I_TFAkcic@f0U6ONRS'iVZ@P9ub=Mo]uO-~> +!q@5PjSo;N%F+n6!kK'0p\tf)n! +!q@5PjSo;N%F+n6!kK'0p\t +!q@5PjSo;N%F+n6!k]33p\t +@/h_W>P);+>6"[(\b+)L_,XZMIU`4_!1h:4!V9(b9E\(im5==ts*t~> +!q@5PjSo;G!8[Y9!lbE*p\tgNq>`ili2J~> +!q@5PjSo;G!8[Y9!lbE*p\tgNq>`ili2J~> +!q@5PjSo;H!8[Y9!m(W-p\t_F +>4Q&&>:V5q?j'[8!!'S%bQYgNCM%p&r*TN9b5VM?;>j/k9oej6ea*6c~> +!q@5LjSoM.'8"p!jj*q[p\t!!**6rVus"$iL&,#?3eY!!`nTbKS/R +`"q82rrN-"!4qgH"i2p8,\IA[!!'XRrrN+*rCd>gD=htAli2J~> +!q@5LjSoM.'8"p!jj*q[p\tgD=htAli2J~> +!q@5OjSoM.'8"p!jj*q[p\t4Gu%>:V5q?j'd;!!'\(bQYg +!q@YKjSoLG;+rppjk0g]p\tid +$fD$a!==oP+;o^)U.~> +!q@YKjSoLG;+rppjk0g]p\tR10,!9)'"!."K9"Bk_tFnG&#J,~> +!q@_MjSoLG;+s!rjk0g]p\tiDK]Le?i]?2rr@ED9E\PuTlp"os*t~> +!qA4Krr3#un`g)RD$J +!qA4Krr3#un`g)RD$J:"hZ*`Z!%.d="U+m'=?B.\rW!!'!U@f,!1NgZ"B"m@7.fjGJ,~> +!qA:Nrr3#un`g)RD$JE!a?m*o3_]-!WXYLoE>Bu;3c$>@fBa:@USTFrrAMc9E\5edR<`os*t~> +%.RPRs8W&V=dme(naZ)J$1UEGrqVfu%03s5rrW#$^AIp2r7Cl!"kNbT!!3Z/!!!]2!!*0'r;Zm= +E +%.RPRs8W&V=dme(naZ)J$1UEGrqVfu%03s5rrW#$^AIp2q?d*#!f)o!< +%.RVTs8W&V>+3n,naZ)J$1UEGrqVfu%03s5rrW#$^AIp2r&Xd4"uSGJ?smDWrEoVArEoY8@JsR8 +CNa1^?iWms-3.6>?ijOP1\4uW?31*YSFh^BWfU\1EVs2F@dqM>!3uGq"AS"G2=Bi2J,~> +&c\O)iUGr+!(77s,@68Il1+<9rsA0%^An64je\F-pAY3.Z2+:s!8@A'!SIPR!!!6%!!*6)rVus"% +fHA/'7L8`!! +&c\O)iUGr+!(77s,@68Il1+<9rsA0%^An64je\F-pAY3.Z2+:s!#PP5!<`K'!!!6%!!*6)rVus"% +fHA/'7L8`!!<@mXK;B&!La&H!!<6%!+tm;"XHV=#?3e_!!!\RrrCCC9E\)4oL.-os*t~> +&c\O)iUGr+!(77s,[QAMlLFE:rsA0%^An64je\F-pAY3.Z2+:s!(QlB!B+Bc?iXa9?ia_Fra5b8 +C&ME@AU\+a?iaRbq^):on6c<%*'Eh#"C;-0,E)5+"_rg#@WZMc?iXcZrrCCC9E\)4oL.-os*t~> +(B=;i!&5u(iUQF!^4K3$!#&4Y\`N>Nq>UNX!Ufpd!q6lOpAY3BSb`0_!8RJ(!!W?%!!<*!! +(B=5g!&5u(iUQF!^4K3$!#&4Y\`N>Nq>UNX!Ufpd!q6lOpAY3BSb`0_!&j`T! +(B=;i!&?&)iUQF!^4K3$!#&4Y\`N>Nq>UNX!q-$e!q6lOpAY3BSb`0_!+5X[!B"3_?iXX6?ia\I +ra5b8Fo>\L@X_n`?iWpt-3.<@?ijOP4S)q`?31+#1A!X29jhFUC]%Q?H-$!clMO +s8N6"_6L9,qu?]d''[Q!@Ntm_7!5ZgnF?&Ks1orMrVlrh0sUHP!p,=8qu6Z\qq(lbrVus""o\K& +!?D%B!VoUk9Ee.Qs.+H-mJh\~> +s8N5u_6L9,qu?]d''[Q!@Ntm_7!5ZgnF?&Ks1orMrVlrh0sUHP!p,=8qu6Y9qu?`u#6"T'!B!VoUk9Ee.Qs.+H-mJh\~> +s8N6"_6L9,qu?]d''dW"@O(s`7!5ZgnF?&Ks1ouNrVlrh19pQQ!p,=8qu6YUr%e@1_aA-r'5>!a?@$o3_]-!WW9`oQp]Ej/l9p,IH +Hh?_*J,~> +n,NFX%IVc9CG>tr0l*9/EEVi1rrV^jMY@&On:LB2rrD<\fDmQ'!!**1rVus"/,]GK!sSZ(!XE?` +p&G0&bKKn/!QutO!<3*"!!'b*bQNqR7!TID!!%8brrN'urCdAhD?&$Po^2[/~> +n,NFX%IVc9CG>tr0l*9/E`qr2rrV^jMY@&On:LB2rr@':!!**'rVus"%fQG/!A"*K!R]NUiXT>LQhuEi[!!'b*bQNqR7!TID!!%8brrN'urCdAhD?&$Po^2[/~> +n,NFX%IVc;DDDA!12`Z5EarrV^jMY@&On:LE3rrA&V1BB=5ra5b8C&VK@@=.r\s'kt8!b-@g +p0[kOq^);JnmDN''L_P#"C;-0!5A*L"HFpZHY*+_!2mp +lMpnS#OpQPF[Q61WVc\sEGb7?rrVnGoDAOfmJGN9:]:=p!>GD3!#,;2!7 +bfn6[i;ilY!WW88oZRGX6lLL^qu?_ea8Z-Kr(I5nrpDT1mJh\~> +lMpnS#OpQPF[Q61WVc\sEc(@@rrVnGoDAOfPPbC]! +lMpnS#OpQPF[Q61Wr)etEc(@@rrVqHoDAOfW;JFP1f=6[!F]gC?iY$A?ia\Yra5e:FDge[!&"-q +!*o)&!a?@,o3_]-!WW88oZRGY6tUmZr*TNAa8Z-Kr(I5nrpDZ3mJh\~> +jSo;OnEKfL!g-4Ip\t +jSo;OnEKfL!g-4Ip\t +jSo;OnETlM!g-4Ip\t +gA_5k)tE\&!r8;8qu6Zgqq(n;rVus"*;oj +gA_5k)tE\&!r8;8qu6Z?qu?`u)ZB^;!?D%R1$(#6C^'XfSY,#i>Ua!<<;> +oumTU;-jo]#Q+Q',@^/arrA2Z9E\)XoR<7rs*t~> +gA_5o)tE\&!r8;8qu6ZHr%e@1:]=`&@<)6R!F]O;?iahIra5eDG%12R!%@al!*Si"!a?%#o3_]- +!WWD?oumTU;-mg\@f0U8,\$8brrA2Z9E\)XoR<7rs*t~> +gA_69!Uf^^!r9"8qu6Zlqq(nUr;Zg-r;Zj!'E%n3!=o)/!ZZ1bpAb33rQG;c.c:=,! +gA_69!Uf^^!r9"8qu6][!rW*"!A"*K!"Sr-!Ekms*t~> +gA_69!q,g_!r9"8qu6]_2>o<31fO?\!,;C>!F]gC?ia\Mra5eCG%12R!%@al!*o&%!a?%)o3_]- +!WWD?oumTU4)SYX@fBd8@Kh*^4"7?3bl7[Cr(I8gec2I_o^;a0~> +gA_6D"l]1T!kPf8r;QfqfDO8$b5D;?"8r3#!@.OC! +gA_6D"l]1T!kPf8r;Qfo$2ji)!>YP5!!E0"! +gA_6D"l]1T!kbr:r;Qfq3rLi81e.FO!+Pn7!F^-L?ia\era5e=IU`([!DG-D-3.BB?ijO?9_2Wp +?31*6_=c"U_'sbIH"-b\$"7Yr[?5T'.D5Z*rrC4>9Ee/$s4KL*mf.e~> +gA_6E,JNmO!mdS9r;QfsgAKS(f)bjN! +gA_6E,JNmO!mdS9r;Qfs(]476#m(#*!L+hZ*`Z!#*3A +bQYfrFurY.rW!9+2;R*A_4#L.,Pf[c!9O,P"\kinnMBFts*t~> +gA_6E,ej!P!mdS9r;Qfs7f5%B3rNFe@:K4D!F]gB?j:a^?smGmAbf^69_p(9?L_D)>6Rgo?j'd; +!#*3AbQYfrLi. +gA_6E;3(AM!o]18qu6ZOr7D&'"o\K&!=o&.! +gA_6E;3(AM!o]18qu6XSquHa"rVus"%fHA."p+Z&"pG22!!dc_q>^TuR]NUhXT>M$mf3=gnc/am +!#*3AbQYfdAjf8srVus"=T.%Ze\Rec,O3YU!VT:e9Ee.Qs7B=-mf.e~> +gA_6E;3(AM!o]18qu6Y'r%e@3?N+=5@;5[J!G#X;?j:(N?smGjAbf^6/G^[n;=S#q>6Rjp?j'd; +!#*3AbQYfdMfEcHra5b8Q2TMBe\Rec,jitY!V]@f9Ee.Qs7B=-mf.e~> +g&D+rC[q0!!q:g8qu6ZWqq(lbrVus"'E%n3!=Si+"p$4S!!d-^q#CFibPo]fbKS.?n,NFhmf3A- +_=c"T^&Vb<7/[)d!He4p"50Yh/(":srDWYg"\j:BoSS[ss*t~> +g&D+rC[q0!!q:g8qu6Xmqu?a!#6"T'!>GD3!h#l?0CFdd3!W?!r9Ee.9s7D2/mf.e~> +g&D+rDXmK$!q:g9qu6Y;r%e@267pt?ipQ4 +)o;3k"MOkoEcM%c!F_Prh#l?1DCa*6!W?$s9Ee.;s7D2/mf.e~> +g&D,I7.L$O!q^s5qu6Z\qq(m$rVus"/,]GK!@.OC"p$4T!!cIbp](>*bPfWcb6?Z$!.OTu"B>G' +>Vl +g&D,I7.L$O!q^s5qu6Y9qu?`u"TAB%!A"*K!YWHB`Qdf0;ir(I8mrVu+>naHL.~> +g&D,t'Ckhs!qq?4qu6Y[qu?`u#lXf)!?D% +g&D,t'Ckhs!r%E6qu6Ypr%e@1:]=`&@<)6R!F^-K?j:1O?smtp@ejC4@OV.$!+PJ+!a#G)nmDP' +!+%,I.g.,t@WuSc?ia]LptZ%PFXuS%rr@3>9EeGps6;K3n,In~> +g&D-R1$(!6"i[!R#$0!!*BOoc+*9!XEfc +r;Zj"b4scqfsPfImaM19Oo.lV:A4_Z45'*&J,~> +g&D-M$h#IH`,kW,[ +g&D-=!:BO\!r8,7qu6ZHr%e@1:]4Z$Ac,p9C&D?C@=_foCj':_?iVVQ-3-p5?ijF1=Roi%"TV/0 +okO\e@:FUrrEoY7bkTusfsPiLmaM19Oo.lV:A=e[45'*&J,~> +g&D-C'@6FQ!r8h4qu6Zlqq(nUr;Zj#!W +g&D-C'@6FQ!r8h4qu6ZZqu?`u/,]GK!s/?#!r)Z">N8rrAbj9Ee/Ts7C0-n,In~> +g&D-C'@6FQ!r8k9qu6Z^r%e@1;uL))@U]4C!FfL9?j:%n?smbn@ea=20)R$r=n,l$=9)Io?igK3 +C@mDeM-seAAc?*;A,t +g&D-D7%3iL!kG`7r;Qfmg&0J&b5D;@!=&K&! +g&D-D7%3iL!kG`7r;Qfj"T8<$!>YP5! +g&D-D7%3iL!kG`7r;Qfm2Z5E41e.FO!F]O;?ia\Mr*T\B@:3Yq@ejC3>l,iJ?L_D)=9)Io?ipQ4 +2$!=N"TU!B@X_ec?ia\Pp"]`#RRt?FrrB_09En5As8SO:o^Mm2~> +f`)"mD=RB#!mIM:r;QfqfDO8%f)bjN! +f`)"nD=RB#!mIM:r;Qfo$2ac'$2ji)!>GD3! +f`)"nD=RB#!mIM:r;Qfq3rCc73aVen!F]gC?ia\_r*T\:EF<7)Abf^9>UCdGr[%VBnR)E#!*f#% +!sJZ.[J%<<\Jn8"IU`:a!F^*Bh#kuM.K7lt!879D##2c1s3+1/nGe"~> +f`)#L2t?YB!o]:;r;QfsgABM&(]FC8!@.OC! +f`)#L2t?YB!o]:;r;Qfs(]476!XAW(! +f`)#L3UukD!o]:;r;Qfs7f5%C2-0]a!F^-L?ia\Ur*T\:Kj\A:Abf^6>l,iJ0(E:&R`i9re6nm5=>$s*t~> +f`)$+$Lmfi!q([6qu6ZOqq(m$rVus",Q%NB"p=c'";:hAB-d9Q!#GIU!4M@s!!2Ng!CXctbQYgA +E?oN/rW!*&=0]Kag%X;)dY0FTf)GdK;>j/m9qD=aoL.-ss*t~> +f`)$+$Lmfi!q([6qu6XSqu?`u"TAB%!@.LB! +f`)$+$Lmfi!q([7qu6Y'r%e@1Ol/("TUs, +p<3]V3Hf.\@fBa=@>V8'c.VjI"4DlYrmq)Mr)*Dd##1Zgs7A_-nGe"~> +f`)$D48AjY(R16."p%nuWO9UnpY>n]?A6u1!WH=%9En4Ks8V_:S+-H.~> +f`)$GA2"9BJI<'0mU!uA#@XT#=%Q14kS!Ug!h7)AT@ +"i2F,/6iGZ!!WI-SZ0$6eb@l$\R(!@rrN+'rCdDiMZ<_KH(4='J,~> +f`)$?!Tj(U!q^s6qu6YUr%e@1:]4Z$D#@ZA@;PjL"CZ:ZFDgn^!*]7H!&!eL!`/r&nmDP'!(=Zs +bQYg.Lhh0Cra5q=H_%1E`msh>!kDWkf)GdM?2[G$9oAuNoR!.us*t~> +f`)$C)ohXP!qq?5qu6Z`qq(n;r;Zj%!rW*"!A"'J"T^[b6q[d]!!a:_bJ_TJbcpU;!!2Kf!D1-$ +bQYfrFurY.r;[%,KpA@:_:A>:!niGYec,VdrCd5dFoMCBV/c.ts*t~> +f`)$C)ohXP!qq?5qu6Y[qu?`u)Z9X:"TnW&!^a9XK8;#Xf[lY!!!&f!!,[- +p<3]V'6ZH:#Q4W,>_SH:Z,+uch#c8e-e84sD>d-/9m-I8!i9r0nc++~> +f`)$C)ohXP!r%E9qu6Ypr%e@1:]4Z%@U]4C!F^?Q?j0tm?u^3rqHsD/-71/?-3,[g?ij..>Ol/( +"TV-1p<3]V'8UOJ@f9[=G(l3TZ,+uch#c8e.FnFuD>d-/9m-I8!i9r0nc++~> +f`)$C;2Y,J!r8,;qu6Z`qq(nkr;Zj!$iL&+!A"$I"<7J!>R1')##1*]8]8iWnGiOimJm5\oumQT +"_L.jqu?t+D17A5Y.iH]h#aiYo@EpAL&F[G9k+,%!ng!5nc++~> +f`)$C;2Y,J!r8,;qu6Z,qu?`u(&\+5!=Si+!A\hHSZ]]WptZ"V;=iB=!/:AF!DR&&rrUkAoC;j2~> +f`)$C;2t>M!r8,;qu6Z;r%e@17f?]q@:fCF!F^?P?j(IXCj':`?j9:a?:cOl0(E%JSZ]]WptZ"V;=iB=!/:AF!DR&&rrUkAoC;j2~> +fDbo(>OhLg!r8h8qu6Zgqq(r$!WE'"!?D";!=Ju,!!E?C*,u5U!!!ei!!#^cbQPW[AlLkj!!r[! +=_;f6R]aKWq:u)%K%9l$S,>qa +fDbo(>OhLg!r8h8qu6ZQqZ$X'!WE'"!?D";!=Ju,!!E?C*,u5U!!!ei!!#^cbQPW[AlLkj!!r[! +=_;f6R]aKWq:u)%K%9l$S,>qa +fDbo(?1I^i!r8k9qu6ZXq_J45rEoY7EVs2FARYLE"CZ:cG%1)O!*\l"!`&u(nmDM,!)3(0"MOko +FDh"a#YeK7Fc)Wj_:AA;!S)ePrrAVf9EnMqs8VUHlLFn)~> +fDbog)tE\&s1&.*r;Qfmg&0J'f`h?T! +fDbog)tE\&s1&.*r;Qfj"T/9""TAB%!B'cT!L7loMr`ts*t~> +fDbog)tE\&s1&.*r;Qfm2Z,?32I?Aj!F^QW?ia\Pr*TY9Kk5^Bia;g_$X<10!Xf!*oumQL!Ju); +rEot=2+1;JFbQ9e`nC4E!++1T!35rj##Y3rs7B=-nc++~> +fDbp6!:'=Y!lh)4r;QfqfDF2#0)bhO!?D";! +fDbp6!:'=Y!lh)4r;Qfo$2ac(! +fDbp6!:BO\!lh)4r;Qfq3rCc71fjT`!F^!G?ia\eqd9MGAU\4M?iiq.>Ol/'$NOB'bQP'ULN[>/ +?j]jP.m$F2Fc)m#chuT"fmD3J!64q1##4Ues7D#-nc++~> +fDbpA%FY"N!o9.;qu?NF!)NOn!"8])![EUZ"EY!s*t~> +fDbpA%FY"N!o9.;qu6XGqu?`u"T8<#$iBu*!@.IA!s0]m'@6^\"TTM7YlnABApG'g!"0&A'.5_4 +@Wd^-^=iMA!S*XerrD<]9E@lDrr3&)B(YZoJ,~> +fDbpA%FY"N!o9.;qu6Xqr%e@1;>jl&Ac,p:@!A`@)!8deko?igK3)tgH=?4Dg>Ac6!E +=Uc#n3D +fDbpB4/)EK!pYL5qu6ZWqq(n;r;Zj"#5eH%"p=c'!s(r*,gQGk!@ROD"9>b9ILH)S%p/I-'-fG1 +Aq$2Rce[F'h9l6'q+gl^!DUT5rrV" +fDbpB4/)EK!pYL5qu6Xmqu?`u)Z9X:!XAQ&! +fDbpB4/)EK!pt^9qu6Y;r%e@1:]4Z%@:]:D!G#[;?ishmGA?,F!^m`,nmDM,!@d[F"9?,HIV&Ic% +uL$a'-oS4Aq$2Rce[F'h9l6'q+gl^!DUT5rrV" +fDbpBD/o=M!q^s6qu6Z\qq(nUr;Zj!*;fd;!?Ct:!ZY0$c2[kr=7o)d!"")\r;[=Ps8RNW,`r49a!WH*t9E@kqrr3&i2 +fDbpBD0#CN!q^s6qu6Y9qu?`u/,]GK!?D";!43dg,/6DL8!rrXV$2ji6GlRem%3mr7 +D2P1#h8]E?rrN+!rCd5d[Jp1-nMTS%s*t~> +fDbpBD0#CN!q^s6qu6YUr%e@1;uL))@<)3Q!F^!F?ik=iDW5%*6kikr?ipc:CPh_>"(5Se@f9[E +VuQdG%4"#8D2P1#h8]E?rrN+!rCd5d[Jp1-nMTV&s*t~> +f)GfJ2t?\C!qq66qu6Z`qq(nkr;Zj!2>dFT!B^/Y!s)Ru#L +f)GfJ2t?\C!qq66qu6Y[qu?`u(&\+5!B'cT! +f)GfJ3UunE!r%<7qu6Ypr%e@17f?]q@=e>a!F^]Z?ishaEan':!^%0$n6c6Sp2^C_Cg^h$@f9[7 +`W#lCD%eEf?@.^;V9T#?CAgg,9r7jh!q]L/o)F4~> +f)Gg)$Lmij!r7u7qu6Zgqq(r$!WE'"!A"'J!WaePqu?g"='Q!V!;%35M?"Q:#Q4W&g&:pT2]F\Q +@YJgGrr@cO9E@kVrr3&lMNRK0J,~> +f)Gg)$Lmij!r7u7qu6Z?qZ$U&r;Zj!/,TAK!@n3K!!<7'>R/RToG[pj!#fqar;ZiNrVm'\)`LW' +KlYE;!/:AF!DT$^rrVhMOn/O&~> +f)Gg)$Lmij!r7u7qu6ZHq_J76?N+=5@=.o[!b$Far*TV8M0<@g?iiG1>OZ%m)[)..Ape(d?i]*_ +rrtJ&3Dj7>Em4O`L&F[G9q)(]!q_A4o)F4~> +f)Gg>"l]7V!r8\8qu6ZlqUbcar;Zg2qZ$X%#5\B%.s)$D!!6aO48,3KOT9h]B*\D9!@`bPqR5rCd5dL&M#QWGV;!s*t~> +f)Gg>"l]7V!r8\8qu6][!rN$!!XAT'!#,50!=&i+!!4Zm#LNMQAfEi*SHY,UIOo+:rVus"l2CVc +n-pa(?@pB#!1j'^!DS:HrrT0:o^i*5~> +f)Gg>"l]7V!r8\8qu6]_2>f622-0Z`!,VO?!FfU:?ikFt@cLht1E9Wi?il6*48,3KOT9iGG@LMY +!:'O_"n2sM3F7<\rrAVg9E@kArVlr!D=mH"J,~> +f)GgA0s:Hl$!!!$'nGN:g +AeQuRb5VIHrCd5dEW,n=dRj*&s*t~> +f)GgA0s:s9lg44!n'[4oDa=~> +f)GgA19UEP!r977qu6]p3rCc71f=3Zs'kn6!F^-J?ijng@cLht1F$,p?ik`cWqOX?_'FDEFCP5W +!FG9nrrZjH2;-.P!3uJr!DRV5rrUV?o^i*5~> +f)GgAD/o=M!lCr4r;QfsgABM&E;]b;!>GA2! +f)GgAD0#CN!lCr4r;Qfs(]476!=8W(! +f)GgAD0#CN!lh89r;Qfs7f5%C1f+'X!F]gB?ia\eqd9J7IV%PI!])'*nmDNI%BB-G"i1k.EH5Of +?iaj/qu6[9rQ5'>b5G!89k+,$rrVICnald2~> +ec,]E2t?\C!nik7qu6ZWqq(nUr;Zj!/,K;I*!,s;!XEuhd/X59%B9'F"MkFg918^Y!%bqc!8[QH +!E8srrrVdNjn&M&~> +ec,]E2t?\C!nik7qu6Xmqu?`u/,]GK!A"$I!?;. +ec,]E3UunE!nik7qu6Y;r%e@1;uL))@=.lZ!HDQG?ijeaB&d;!.f`fE?ik`cWqOX>_$Z!=EW'8F +CV]rMh>BqI +ec,^0"n)0c!pPF4qu6Z\qq(nkr;Zj!/,K;I!Y5,.!XE@+d/X59%B9'F"MOnK>VlW +9EA#drr3&l;o\G/J,~> +ec,^0"n)0c!pPF4qu6Y9qu?`u(&\+5!A"$I!UBqoMij%s*t~> +ec,^0"n)0c!pYL6qu6YUr%e@17f?]q@=.lZ!F]^??ije]IH+`8.f`fE?ik`cWqOX>^&j49D#I`A +M89,ll:q4N!E&[lrrVgm`q04\~> +ec,^?%FY%O!qUm5qu6Z`qq(r$!W;uu'Dhb1!B'cT!s_e/!R^rL6k--hbQPHVAnNCf!!%8ZrrN'n +rCd5dmf*4foQd#!s*t~> +ec,^?%FY%O!qUm5qu6Y[qZ$U&qu?^1qZ$Wt2>dFV#?4k-dJs>:%B9'F"M"MEB-dEU!-ldl +9E@lUrr3&lH(FR,J,~> +ec,^?%FY%O!qUm5qu6Ypq_J76?N"73D#7T@@=e>a"(HA!@HCku>:V5o?ik`cWqOX>\H%P3CAhN? +Vni<5rD*;b!DW"]rrVh>Sb)l3~> +ec,^@8X9)N!qq68qu6ZgqUbcar;cj$qu?`u2>[@T6q\$ +ec,^@8X9)N!qq68qu6Z?qZ$Wu#5nQ%"oJ?$!B'`S!^oZkdJs>:%B9'F"LSD7F;k)X!3![4!*T7o +!DVDKrrSX@o^r06~> +ec,^@8X9)N!r%<9qu6ZHq_J71R?TRY(2(s*t~> +eGfSq@e'9o!r7l8qu6ZkqUbdDr;Zj!*;]^:$O-G.!]+(CdJs>:%B9'F"K;huIM;Y[!6`.W!,_[. +!DU`8rrTo=o^r06~> +eGfSq@e'9o!r7l8qu6]i!rN$!!W^@6!^mKsp<3Z=%7GXYr;ZiD^]+:N +rCd5db5M>A^0C7%s*t~> +eGfSs@e'9o!r7l8qu6]l2>f621f=3Z!F^!F?iahJr*TSBG(o$c!a@0*nR)EH%BB-G"KDoZIV&Ic +!9(]m!,_[.!DU`8rrTo?o^r06~> +eGfT\,OtU0!r8P7qu6]qfDF2#Rf*3e!B'`S! +eGfT\,OtU0!r8P7qu6]q$2ac(!?1n:! +eGfT\,k:^1!r8P7qu6]q3rCc71f+'X!F^QV?ia\_r*TVBG(F)a?ijO_/+I!KI1<4MbQO@RF+.^! +?i]N-rr@rT9E@kurVlrT47i+EJ,~> +eGfU3!UBL\!r978qZ$EE!4;\)! +eGfU3!UBL\!r978qYpOFqu?`u/,]GK!B'`S! +eGfU3!U]^_!r97:qYpOpr%e@1;uL))@=e;`!F^][?isthBk?F7!a?m*nR)ET%BB-G$&'mNIUZ\m +@:&B:rrAbk9E@kfrVlre2=U8 +eGfU?'?9hI!l;&8qu6Z\qq(ql!W +eGfU?'?9hI!l;&8qu6Y9qZ$X3!W +eGfU?'?U%L!l;&8qu6YUq_J4Ar*TPA@JaF5F^b5V"(H^jL#ubE>9bro?il0B)tn^`!*X2c@fBa8 +A\S0E]_tM)9qD7_!qSM4o`'F~> +eGfU?=b?GK!nEb8qu6Z`qq(r&"oSE%!t4u+! +eGfU?=b?GK!nEb8qu6Y[qZ-X!r;Zj#$i9o)"V^h7":'2c.fn&u!'Bm5"BtjJE +eGfU?>(ZPL!nEb8qu6Ypq_J72?N"74@V,FE!FfmD?j'qcAU@kK?ijOW1[e]O48(Z;?!q;g@fBa8 +FM@bTebr/B9oAoL!q]L4o`'F~> +e,KK0:%A&Z!pPU +e,KK0:%A&Z!pPU,R"k0!!$*p'*Tm3!%_@[rVuq"^Ae2p +rCd5dH2[aEoQd/&s*t~> +e,KK0:%A&Z!pY[=qu6ZHq_J70(QbFD>3!G%1GY +!/\Gi!9O/Q!DRq>rrVh>U%JA8~> +e,KKo'Cbht!qV$;qu6]lg&'D%E;T\948T!Y!B^5[":%mf!B\a1!??sjAd+MU!'=-brVuqC^Ae6' +:&[fe9kO>'!gSK3p&BO~> +e,KKo'Cbht!qV$;qu6]i"T/6#!=8T'!'C&X!o_&67~> +e,KKo'Cbht!qV$eB)MZ1Q%el's*t~> +e,KL7!9O%V!qq68qu6]qfDF2#[/Bt*!A"!H!=f;3!!G\_#:fi*!!+(5o`,,H4%)IArVuqg^Ae6* +;>s5j9j@VqrrTT?o_&67~> +e,KL7!9O%V!qq68qu6]q$2ac(!A"*K! +e,KL:!9O%V!r%<9qu6]q3rCc71fO?\!F^?O?iatNrEobJEajB(k[4Hr'Kknn!HFh+!!In-EH,Ie +?i\'XrrM^gr_*Af?2jg&!juY4p&BO~> +e,KL>,J!XM!r7`8qYpQNqq(nkqu?a-"8`'!!@.OC">a9f!u'5c!s+5YV>%\,XoO;X48f-Za1hQS +oND,d!E8sqrrU_=o_&67~> +e,KL>,J!XM!r7`8qYpORqu?`u(&S%4%KlS.! +e,KL>,e5_+q +e,KL>Bm'7O!r8D8qYpQ[qq(r$!W +e,KL>Bm'7O!r8D8qYpP8qZ$U&qu?a!'Dhb1!D*.h"<;Cd!B\g3!`oB5pWNcS"_M9rrVus"jLtQn +B)PC(;>L1j!pMT4p&BO~> +e,KL>C3B@P!r8D8qYpPTq_J76?N"74@;PgK!F^c^?j(7g@UXuS?ijO?7.FXdM#b3_bQPW`Mg9+: +?i]N+rr?[09EA#drVlra2=^A>J,~> +df0BF1\(>A!r9+8qYpQ_qUbcUr;Zj!/,K;J!@n3M!!O$b#llIVec5bQ!4qpK$+^+KE?kMa!X8#* +rr@NH9E@lWrVlrh2 +df0BF1\(>A!r9+8qYpPZqZ$Wu#lO`(!A"$I!WaePrW!*8IL-!)!S.5P +df0BF2=^PC!r9+8qYpPoq_J71=oD_/@=.lZ!b$Fara5n@IUZ]3@Hh/$>74'n?il/b]_BVV]E!k5 +B4,+U?LGN,!.Ol?!DW(^rrV^JlLk1-~> +df0C-!Ufd`!ktr8qu6ZgqUbd#r;Zj!48JpX"r$t9"UTVc!!4>F +Q2OAW:$)?R!q\n2p&BO~> +df0C-!Ufd`!ktr8qu6]R!W2ou!_9E@lLrVlrk7+Lu1J,~> +df0C-!q,ma!ktr8qu6]Y2#K-11fjQ_!F^]Y?iaeSra5n=IUunrD!>=/>74'n?il/b]_BVQ[/u23 +Ac?';A\A$CQ2OAW:$)?R!q\n2p&BO~> +df0C<%F=kM!n*Y8qu6]pfDF2#B)M]1!@.F@! +df0C<%F=kM!n*Y8qu6]n$2ac(!AaTR! +df0C<%F=kM!n*Y8qu6]p3rCc71fXE]!F^-I?ia\kra5n=HY$SnL$;tH>74'n?il/b]_BVQWX=0' +Ac?';FM.VR[J`c":"'"?!q^*4p&BO~> +df0C=;2Y2L!p,=8qZ$EE!4;Y(!XB8oS&S's*t~> +df0C=;2Y2L!p,=8qYpOFqu?`u/,TAJ"p=`&! +df0C=;2Y2L!p,=8qYpOpr%e@1;uC#(A7GFD!F^c_?j:(aC1(Fh@Hq5%>74-p?il/b]_BVQRN$'l +@fBa8M7iigdeui?9u6f.!q_23p&BO~> +dJj9% +dJj9%G;0$53RC!!cIb!!!'?f)PkR!4qpK"G/?ZIL#iP!-l0V +!9O/Q!DT`prrSX@o_/<8~> +dJj9%a0Z?t+4q?smD_lJ +ra5`(]`.unrCd5dY5J;$RY(2*s*t~> +dJj9f'Ckr!!qq6;qYpQ]qq(r$"oSE%!A"!H! +dJj9f'Ckr!!qq6;qYpP[qZ$X'"T8<$!A"!H! +dJj9f)tEe)!r%< +dJj:4!9s@[!r7`8qYpQ_qUbcer;Zj!/,B5H!D*1i"uBKh!!!u?kl:\anGiV])^G,\"]GDH/8#4e +!!(H[rrD]i9E@kVr;QiO7.g3QJ,~> +dJj:4!9s@[!r7`8qYpQ+qZ$Wu'E%n3!A"!H! +dJj:5!:'F\!r7`8qYpQ:q_J71B`2<>@=.iY!F^c_?j:Fj@UNS`@I%;&>6Rjn?il*&,ktOH<<.A] +G@LPZ!8Y +dJj:<,J![N!r8;8qYpQkqUbd[qu?a-!W)j)!AslX!$#t`!!!$El2Uebmf3B5;>43!F9"+%#64`) +l+I#soMPT]!DSILrrVF@nb3!5~> +dJj:<,J![N!r8;8qYpTZ!rN$!!AaQQ!=f/-!"/fb!<<*>EsrrMahr_*>eMZ!JUkqhl's*t~> +dJj:<,ef621fXB\!GQ!>?jgCo@:3JYG%+ie@_.n6c9p;>45sHsgc6 +@fBa8lFd,toMPT]!DSROrrVICnb3!5~> +dJj: +dJj: +dJj:eIf03InMTV*s*t~> +d/O0H1%G,?!kP]5qYpQNqUk]G! +d/O0H1%G,?!kP]5qYpORqu?`u.f98I!A"!H"p%Eu!"")^rVus4"mZ-g%H8o?1L+2a/-$?qrrMb+ +r_*>eD>aD8oL.C+s*t~> +d/O0I1@b5@!kbr:qYpP&r%e@1<;^,)@=.iY#% +d/O1/!UBO]!n)euqYpQ[qq(r'!rW*"!B^,X"p%L#!"")^rVus"2 +d/O1/!UBO]!n)euqYpP8qZ$X5!rW*"!B^,X"p%F!!"")^rVus"2 +d/O1/!U]a`!n)euqYpPTq_J7B@JsR7@>4Pc#% +d/O1;'?^1O!qUlXqXadRqUY]dr +d/O1;'?^1O!qUlXqXacPq?[-8r +d/O1;'?^1O!qUl\qXacbqDnUirF,e=Hhh+SF_,99FCP5W!b$dkm9fut!a4>g!/\;e!07%P!_ubp +rVlrkEiSj5J,~> +d/O1;>Cu\N!UuB4IK3@E!!*H6`W-!\])Mc5rCd5hr;HWsoSSe)s*t~> +d/O1;>Cu\N!UuB4IK3@E!!*H6`W-!\])Mc5rCd5hqYgEqoSSe)s*t~> +d/O1;?%VnP!UuB4IK4Ke?iahJm9fut!*J&b!1g_$!3Z8o!E&dnrrVhMOnSg*~> +ci4'37.L*Q!;ZK`!:]j:!205r!=KnD#m1Q;#m^>-! +ci4'37.L*Q!;ZK`!:]gk!)WS"!=KnD#m1Q;#m^>-! +ci4'37.L*Q!;ZK`!:]hG!+l(;!G-9I@KU2,@Uf4B!F^QH?ijF1=P[?b_RfaIbl(39:A"Ja!h+`5 +p]#a~> +ci4("$LmQbqUbeTqu?`u2>R:S!BUDZ!!+SNg&M-U'DVq8'*\44!6;\N!9*lM!DVkWrrTK +ci4("$LmQb!%RmH!^Qt3s59Y!@n3)!!*08q$@'8"o83!a1D9NiVcFN:$VZV!jZG1 +p]#a~> +ci4("$LmQb!*&kP!AmaQ?ia\eqHsA5Kjsjc!IJ8C?ijF1>OZ#$@V,@E!G,a:?i\ijrrD$V9E@lT +r;Qi+B(YitJ,~> +ci4(9$JFqK!9sC5!SRSQ!!**Nq#CF",P_^NV])Mfr8cDBa:#5aI!mOI3 +p]#a~> +ci4(9$JFqK!-.l9!>be8!!**Nq#CF",P_^NV])Mfr8cDBa:#5aI!mOI3 +p]#a~> +ci4(9$JFqK!0-k3!(Qlo!F^?N?iae\q-X54AaWq-=9)Rp?ic6Yq+Ul]D>IW?lam)sm7I:N!DVDJ +rrUG>o_8B9~> +ci4(:9TJWB!:B[9!SIeW!!*`6q>^Ns=SVpt!B'6E!!2Qh!eUJWq.Tq?!,2W9!!36(m^iE!nO`^R +!DUo +ci4(:9TJWB!0d9[!<``,!!*`6q>^Ns=SVpt!B'6E!!2Qh!eUJWq.Tq?!,2W9!!36(m^iE!nO`^R +!DUo +ci4(:9TJWB!3#cN!B+Eb?ib(PqHs>4Q2+eg@=diS!a#M.nR)EV!+#D8"(D7F@fBa:@U\]9rrMX] +r_*>eci!eEiB-Z*s*t~> +cMms';=X2V!;--?!&"0L!)4U=]$+9!!*c'])Mg&8cDBa +9u6c-!pVT2p]#a~> +cMms';=X2V!6k^Qt9`b%i!?;./!!!&h!! +cMms';=X2V!7gs&!AmjT?ia_IqHsA5OC@rm!HDQ:?ij..>Ol2%@KAR,prieC;.fc7!G1f4rrM^_ +r_*>e_>O<7m5=D-s*t~> +cMmso$LmTc!Vk@FfDqB2:W_,4M@r;ZgK\c2[%rCd5dZ2FV' +nMTS*s*t~> +cMmso$LmTc!VHTn!!**=qu?`u,P_ +cMmso$LmTc!VeSN1BB=.r*TP6FnoDGEFelQ!F]g5?ij+->Ol/(@:E!Jq9/rW;-m`1?iXuQrrD]i +9E@kmr;Qig2 +cMmt8"kiGG!WLgMfDr;V!!**^q#CEs48AjW!B]*;!s2e+_>2:W_*i&>r;Zh!\c2^& +cMmt8"kiGG!WEo5!!**Nqu?`u48AjW!^$2X!3oMtla!DTEg +rrVg\h=pr"~> +cMmt8"kiGG!WGRd1BB=2r*TP6L&#*W@>4Mb!F^]N?ij"0>Ol/(@9ugIq9/rW6uHH3?iZ%orrMal +r_*>eV>U>poL.O0s*t~> +cMmt98X8fF!9F%0!8@>N! +cMmt98X8fF!)WOm!#PP5! +cMmt98X8fF!-A#n!(Qlo!F^?N?ia]$pg=,=@IRY+8deko?iskE +c2Rio?LdRc!:0O7!SIeW!!*Q3q>^Qt3sGE[! +c2Rio?LdRc!0m?\!<``,!!*Q3q>^Qt3sGE[! +c2Rio?LdRc!2fWL!B+Eb?iatNqHsA5Kjsjc!F^!;?ii_(>Ol/(@U3!Mq9/oV'8ZQo!6)MK!VCa< +9E@kJr;QijD6EX5J,~> +c2Rj^)tEIu!;--?!$qIB!"^,!Eq9/oV$?l=I!7JCW!07%P!DS%@rrVhE +ReQi4~> +c2Rj^)tEIu!6k2:V_$YA`!!(HWrrA)Y9E@k:r;Qij +JsuH6J,~> +c2Rjb)tEIu!7gs&!AnHe?ia\Uq-X57Hhh%M@>42Y!^m`,nmDQ/>$AcTfM#:W\h73IbNrD]Q +9n*$?!q_)5p]#a~> +c2Rk0!9NbN!;ZKD!205i! +c2Rk0!9NbN!TsO^!!**squ?`u2>I4Q!G;*,!=f4h!!j~> +c2Rk1!9NbN!UDW@1BB=Dr*TP6Jb`[S@@?mu!GQ$5?ii_1>Ol/(A6N0Qq9/oS!K6k`!:%)o!36#l +!DRG.rrS=?o_AH:~> +c2Rk8/$AFB!WLgMfDr;V!!**^q#CHsAc_]-!PQDD\H,e2!!30)n@8K%_G*]t9k+#" +!i^23q#>j~> +c2Rk8/$AFB!WEo5!!**Nqu?`u48AjX!G2B.!!**FhZ*]\5rW!!#"Rrr$"i +c2Rk8/$AFB!WGRd1BB=2r*TP6L&#*X@@:R"?ia\YnR)D\'O1-9!a\l4prifM!K$b_!FG9*rrpD: +9MA/iqu6_tEqK/,J,~> +bl7`aC[prp!8RJ(!8@;M!@%[A!!+&Lq#CEr2;\B8#?>+*bQ>$Q8GrMh'CiU4!87?F!_lhsr;Qi7 +=nMLhJ,~> +bl7`bC[prp!&j`T!G"5rrCaO9EIpkrquct +_--F*s*t~> +bl7`bDXm8s!+5X[!Am:C?ibCYq-X5CC&)-;@=drV!^%H,nmDN. +bl7aY)tEIu!9sC5!S7YU!!*96q#CEs=SMjs$O,Gg!XV_5prif5'0#ji!%bVZ!TcoP9EA)jr;QiO +7.g9SJ,~> +bl7aY)tEIu!-.l9rsAT'! +bl7aY)tEIu!0-k3!BO]f?iaePq-X53Q2"_fARb4j~> +bl7b0!TESK!:BX8!&=BO! +bl7b0!TESK!4ht,!iq>C6o +jYuf+s*t~> +bl7b3!TESK!6G$n!Anlq?ia\eq-X84U1*k*!F^?G?iiG1>Ol/'@SpV0bQ +bl7b72kfdA!;ZKD!205i! +bl7b72kfdA!TsO^!!**squ?`u8GN5e!D!Fi!!+SNi;`oc:1j:F!d-Rj~> +bl7b73MH!C!UDW@1BB=Dr*TP6L\YACg?ibU_o3_VU,?s_H!b+o:prie^4(\@u!1C=r!V8_Y +9E@o[r;Qid2=C8>J,~> +bPqWdC%:co!WCXIfDs@t!!30Y!Vl]r$Tn+`!el2:P_ +o/5Y)s*t~> +bPqWdC%:co!Wj~> +bPqWdC@Ulp!W>(W1BB=Nr*TS7JRS@^!G-u[?ia_Io3_VU,?s_H!b+l=prieK;.BK3!4007!VAeZ +9E@lQr;Qii2 +bPqXS,Ot=(!8RG'!!2ut!=K,-!!*+7p]( +bPqXS,Ot=(!&j`T!WabOqu?a*#5J6"!GVj~> +bPqXS,k:F)!+5X[!]3kbr*TP:AGKU6@AOl/'I60Ib^&tbg;02\D!6VeN!VB.d +9E@lDr;Qij7,@Y +bPqY*!9s%R!9sC5!S7_W!!**Nq#CHsB`e&0!?;.!!!/Dep](=6Gl.OAfsgt^oND/e!DUo +bPqY*!9s%R!-.l9!=9/3!!**Nq#CHsB`e&0!?;.!!!/Dep](=6Gl.OAfsgt^oND/e!DUo +bPqY*!:'+S!0-k3!BOfi?ia\_q-X84U1*h)!HDQ??ii,/>Oc)%VZQVn!?7s7?i]8srrMaqr_*>e +ci!eEoMNd+s*t~> +bPqY6,J!@E!:BX8!&=BO!e^AS!4oObN+ +s*t~> +bPqY6,J!@E!0d9[!j~> +bPqY6,e +bPqY6BlW\C!;--?!205i! +bPqY6Bl`bD!6k +bPqY6C3&kE!7gs&!AnBc?ia\kpg=,3RJ:.j@=e&Ys!n(Ri*ZP#[f6C#If<"A9s4Eo!q^r4q#>j~> +b5VOB/+N31!Vk@FfDs@t!!30@"o/-"!I+Y?!!*`6d/X0:[Jp5er_*>eV>U>poT"t,s*t~> +b5VOB/+N31!VHTn!!*+"qu?d!*!Q-j~> +b5VOC/+N31!VeSN1BB=Nr*TS7EFS`O!b&!8pg=,=@J4(1>:V5]?i\'OrrA)Y9E@kar;QijNfNo7 +J,~> +b5VP)!UB7U!WLgMfE'b/qu?a$,P_<@!E]R$!!**?df9FM"mWMq!2]Zg!DT$[rrSX@o_JN;~> +b5VP)!UB7U!WEo5!!30Z!rN$!"XEgC!WcC-p]( +b5VP)!U]IX!WGRd1BKC?@JjL6@WhKS!b%@)pg=,2EV:V5^?iaU$[Jp6'r_*>eRf!*dRY(2- +s*t~> +b5VP5)o;(E!9F%0!S8"_!!**rp](=)488dV!B\^0!*?Q-!5\Y.!DSUOrrTH>o_JN;~> +b5VP5)o;(E!)WOm!=9G;!!**pp](=)488dV!B\^0!*?Q-!5\Y.!DSUOrrTH>o_JN;~> +b5VP5)o;(E!-A#n!BP&p?ia\tpg=,:L%o$V@>4D_!a?m*i*ZPA[/U-Br_*>eNr/hXZ"iq,s*t~> +b5VP5Ap*YD!:BX8!)NLm!Ys~> +b5VP5Ap*YD!0d9[! +b5VP5Ap*YD!3#cN!B#u:?ia]$pg=,2VtXR"Bk$gE!a?m*i*ZQ@[/U-Vr_*>eK)>QL``;[,s*t~> +ao;FA1%Fi7!;--?!1Wld!Wb.\q#CHsGQRX?! +ao;FA1%Fi7!R(TB!!*+:qu?d!2$Ys~> +ao;FB1@ar8!S'%)1BB=sr*TS7JR\F_!b&!8pg=,2JbNOR>9br_?iXrJrrD0[9E@k.qu6`N7.g +ao;G(!9s(S!W:RHfDsCt!!*H@p](=P,PV6?!Aso.!!&n&rrq[Z9MA/pqu6`Z2tQkFJ,~> +ao;G(!9s(S!W!-#!!*+7qZ$X)'DMP.2'_kr!Wb.ZeGoTHZi:3o8PDfPC&@o3jYuf,s*t~> +ao;G(!:'.T!W5"V1BB=iqd9G9D"qB=JT^`q!b$Xgpg=/-*'E1f!4fH9"mnlT9MK:!rrV:BoD/E:~> +ao;G4)nPS>qUbi("oJ?$!DiIj! +ao;G4)nPS>!%RmH!Wb1_qu?`u:&"\h"aKbA!Ys~> +ao;G4)nb_@!*&kP!]47nr*TP6OSE2a@]/s.!G#d:?ijOP4Q9`L@d^TY8Y9MJjmr;Qid2=UGA +J,~> +ao;G4D/JhC!9sC5!S8Ro!!*+&p](?rM#mAO! +ao;G4D/JhC!-.l9!=:"K!!*+&p](?rM#mAO! +ao;G4D/JhC!0-k3!BPB$?ia]$pg=/3ZXNW:!F^QS?ijOH4Q9`KRBlhso1;VL9j7PorrV^JlM:I1~> +aSu=P,Ot@)!:BX8!+u-/!Wc'tq#CHs=:Y'*!@n3(!!30&jKedco_hGa;uQXo!qSM4q>Ys~> +aSu=P,Ot@)!0d9[! +aSu=P,k:I*!3#cN!B#f5?ijbu@JO:4@?kR$?ibU_q-X8.'L^th!Fb<"rrD]i9EA/lr;Qii45p#8 +J,~> +aSu>+!9s(S!;--?!1Wic!?;LB!!*a8pAb3t'A*9b=0_c+oMtla!E&[jrrVgadeWon~> +aSu>+!9s(S!T!kT!!*+:qZ$X:$hs]&'3Ou/!iq>C6ooL[L,s*t~> +aSu>,!:'.T!Tc091BB=sqd9GEAb]X6CmFa&!Ffm@?ijO?9&j:ZM6[']oMtla!E&[jrrVgadeWon~> +aSu>2,IR+B!W:RHfDsCt!!*0Zp]($uN!B]!8!WiD]Z2Xjs@fB%%:A"Ja!q]g5q>Ys~> +aSu>2,IR+B!W!-#!!*+7qZ$X!2>@.P!K$ON! +aSu>2,dm4C!W5"V1BB=iqd9G6JbWUR@C,]9!F^]X?ijO?9''F^@:&*$rrMb$r_*>fo_e^joNo9- +s*t~> +a8Z4$2t?J=q:GZOqu?`u=SMjt!I+eB!!+;Gg&M+DYl=arD>m30:%%rZ!q^K3q>Ys~> +a8Z4$2t?J=!%RmH!WabTqu?`u=SMjt!I+eB!!+;Gg&M+DYl=arD>m30:%%rZ!q^N4q>Ys~> +a8Z4$3Uu\?!*&kP!]3ker*TP6Q2"_g@AdT/?ibCYqHsA/$VKJf!/IfY!VC7.9E@lUr;QijEiSs8 +J,~> +a8Z5&%AE@m!9F%0!S9((!!*+&pAk4DpAb3q,MW8#!s.)Yrr@?D9E@lLr;QijKpDK6J,~> +a8Z5&%AE@m!)WOm!=:=T!!*+&pAk4DpAb3q,MW8#!s.)Yrr@?D9E@lLr;QijKpDK6J,~> +a8Z5&%AE@m!-A#n!BP<"?ia]$pL+#JpL"#1Fo#JI>74-e?ijeFhlm%[Hi?\>:$)Ys~> +`r?+[!/:%E!:0L6!-J) +`r?+[!/:%E!0m?\!!!+;Kp]( +`r?+^!/:%E!2fWL!ApAE?ibC\pg=,3VtXR"@>4Pc!a>h(j^8(:Y5\K]r_*>eg&(dNOc&f-s*t~> +`W$#)!4DJ!!;--?!7UfF!o_ST<~> +`W$#)!4DJ!!6k>Xl!!(HMrrAnp9E@l3qu6_kH1^t5J,~> +`W$#,!4DJ!!7gs&!Ao]2?ia_`pg=/3WaYX0!Gl6B?ijO9:?>j`h6-bXV>a-h:!EM7!hju5qYu'~> +`;]n +`;]n[+/9tL6%!juM0qYu'~> +`;]n=!P.n'!VePM1BKCj@f0U7@?pUq!b%@.pL"#1Hi%1P>74'c?iY#FrrBn79E@l#qu6`*@eBNs +J,~> +_uBe7!2]Dh!WLgLfDlT^!!$-q!!*R3pAb6q3s"1 +_uBe7!2]Dh!WEo4!!+P_qZ$UupAb4(=SDds!BU>=!!('ArrCaO9E@kjqu6`A;=s_bJ,~> +_uBe7!2]Dh!WGRc1BCHkqd9DhpL"#9Q1nYf@>/.f?ijOH7-7kWfWG/Rg&=YG9s4Bn!mFO6qYu'~> +_Z'\F!KQmR!9F%0!SL9H!!30Y"o&&u!JU4Irs%?\!%b5O!9O/Q!2]Sm!o69:qYu'~> +_Z'\F!KQmR!)WOm! +_Z'\F!fm!S!-A#n!B-&;?ijbf@ea=3@B0$/s()%8!a?@$k?n:*XT&:^rCd3fqu6`R7.g?UJ,~> +_>aV]$@21:rrDB]fDqE +_>aV]$@21:rrA;\!!*+:qZ$X)*;BL8!I+eB!!**XhZ*YgXT&In8PDfPRf!*djYuf-s*t~> +_>aV]$@D= +_#FMi,>mb%rrDH_fDsCt!!*+&pAb4E2>."N.fnT/!$nWF"nP;Z9MLEArrVUEnG<08~> +_#FMi,>mb%rrBV,!!*+7qZ$Wt=SDdr.lI##!@n30!!":Frrr!c9MA0 +_#FMi,Z3t)rrC.;1BB=iqd9G5Q1nYeH\(lu!IJ8R?ijOW1[&3HC9.@ +^]+E$=W>ofrrDlkfE(%:qu?`u=SDdr"*jM>! +^]+E$=W>ofrrM9aqu?d!:^-as!!qA)3qYu'~> +^]+E'=rZ#grrMFCr%eC2F(5&T!F_8f?ia`7p0[o1C&ME@>9brf?i\?MrrD]j9E@k:qu6`f2=:8? +J,~> +^&J._!N#\n!WLgMfE'\Nqu?d!3s,0W!We,ZpAb3p45p5?,c^kJoMJ:U9l'Y+!qSA4qYu'~> +^&J._!N#\n!WEo4!!*l\qu?d!3s,0W!We,ZpAb3p45p5?,c^kJoMJ:U9l'Y+!qSA4qYu'~> +^&J._!i>eo!WGRc1BBsfr*TS7Kjjaa!b&EDpL"#1L&GB\>:V5g?iXrArrr$l9MA/uqu6`h3T^,; +J,~> +]`/)A$?>S5rrD-WfE'Z-qZ$X1%ep#*!E^?8!!+&?irB(fWrE7p=\ML`@f-0,oL.C/s*t~> +]`/)A$?GY6rr>mm!!*4)qZ$X1%ep#*!E^?8!!+&?irB(fWrE7p=\ML`@f-0,oL.C/s*t~> +]`/)A$?GY6rr@-;1BBD!qd9G@C%u';@?kj+?ib7UrF#XU!*e_r!6V>A"nYtl9MK!nrrVg\g%t`!~> +]Dhul0gt.%rrDB]fDqE +]Dhul0gt.%rrA;\!!*+:qZ$Wu48/^U%VbV:! +]Dhul1.:7&rrAqn1BB=sqd9G5L%esUBqkO,YsC8q4;oO:Kf9jRbrrrVgib52-g~> +])Mm#AeW2`rrD]ffE'G%qu?`u=SDds!LNo^!!**^j8]1gW;d$<9MA2]rquctoO>6)s*t~> +])Mm#AeW2`rrC:?!!318!W2ou!Ef'r!WeYhpAb3p46-AA[]'30D+mVu +])Mm#AeW2`rrCUH1BKCj@JjL6@?pRp!b&ZKpL"#1L&GB\1E9Wb?i\?Jrrm759MSUer;Qij@^Z(4 +J,~> +\Glbq!07*Zpt>Ps!TXI_!!31'!VcWr!I+hB!!*Q5jo>B$VuHaBr_*>krVZZsoQ@#,s*t~> +\Glbq!07*Zo`Y0m!Wc+%qu?d!=980s!WdNMp&G+'"m,db*2if:H2^J<<;lap!q^W3qYu'~> +\Glbq!07*Zpbr%+!]4t/r*TS7Q!sGq!b&!;p0[o8@fBa:4<.Sl?iXu?rr@EF9EA/lr;QijFf"s7 +J,~> +\,QWO'4UD0gABM'g+3%#!@%gC!!+T@p&G*o2L.i!q_23qYu'~> +\,QWO'4UD0(]+15(G#@_!@%gC!!+T@p&G*o2L.i!q_23qYu'~> +\,QWR'4UD07f+tB7XP#?!HhrI?ibV0p0[o0Jc9$Y6kikl?i\0DrrA2\9EA#dr;QijKpDN7J,~> +[f6Kp8L)[EqUbdiqZ$X#/,'#E"c;pQ!Wb.ZkPtW'rhobrWW#Ql:A"G`!g/B4qu;0~> +[f6Kp8L)Y[qZ$WuFSc%="Y9R!!30Y!U'La*<)l9!3,rk!D`:arrS=?o_\Z=~> +[f6Kq8L2`*q_J71Sbldq@XIiW!FiD/?jC+k@:3J2$X<"+!Gh\4rrB(u9E@o\qu6_[MY-fGJ,~> +[Jp?uIK?, +[Jp?uIK<:B!!*+7qZ$Wt=SDds!LNu_!!*96kPtU]VZ-Y5r_*>enGE4eTm?;-s*t~> +[Jp?uIK=$W1BB=iqd9G5Q1nYf@CfqA?j:.U?slY9>O>eu`MWY8`r8X4:%8&[!hju5qu;0~> +Zi:'B@J\UWkl^h`! +Zi:'B&GlG/!HA5>!!*+&pAb6q=!ejno&ZZ"`k-s*t~> +Zi:'B&c4?c1lYuB?ia]$pL"&2Q$)e.#%<3n?r$r1mU-'2rhf\qg&=YG:$)9P!jQM4qu;0~> +ZMssib59flg_9Sc!Wb@dpAb4(GkD%>.ffVN!UTjeW29Lojo.pS:"fFD!lA+4qu;0~> +ZMssi#Q+Q'!B(Vh!!30_"nqut%X@XH"=jKQ! +ZMssj3W(Z71gb(s?ijbj@eX72BrCW3"aaZc:]akh?i\0BrrD0[9E@l@qu6`;>4h^lJ,~> +Z2Xjs[/APWf3%nM!=g@K!!32"!VQKo![I"2!?1p5rrD?`9E@l3qu6`G8bDo[J,~> +Z2Xj]/,TAJ$!@')!=g@K!!32"!VQKo![I"2!?1p5rrD?`9E@l3qu6`G8bDo[J,~> +Z2Xjd;uAEP3gKSM!GQ]N?ijcU@J4(4@ +Yl=e(danBL!1Wic! +Yl=e(;uusu!e`r#c;h)k6*s*t~> +Yl=e(D`%GL!Ap& +Y5\Ogf)F;%e,'+G!G;$*!@qdT!!*`;m/R,3U]1>cr_*>e^AIp3jYuf.s*t~> +Y5\Zi!<<*#C&7l2!G;$*!@qdT!!*`;m/R,3U]1>cr_*>e^AIp3jYuf.s*t~> +Y5\[&1c$pEMYgc^@@?gs!IL7-?j(:V=9)Im?iXr:rrDZi9E@l%qu6`Z3V3.JJ,~> +XoARsb1PA-"oJ?%!D!=e!!3=o!VQKo!B]ZK!5#$+"nYP`9MM\errVIAnb`?:~> +XoAR]'`\82"oJ?%!D!=e!!3=o!VQKo!B]ZK!5#$+"nYP`9MM\errVIAnb`?:~> +XoARd7PclB@f0U8@>A=d?ijfS@J4(3@>.nc=R]\ue"cpHoM/(R9s4Bn!pql8qu;0~> +XT&G$db)\^qZ$X,*;9F7!LsAf!!<6m!!2Qh!&:5J"nYeg9MM5XrrV[Gmed$7~> +XT&G";udXQqZ$X,*;9F7!LsAf!!<6m!!2Qh!%alE"nYeg9MM5XrrV[Gmed$7~> +XT&G$D_jk&qd9G=EVEiB@DZRK?j'nn>67ps?iY8Brrr$p9MA0Squ6`e2=CAAJ,~> +WrE.d0c'Wd!$qO"r[IBnGiR0UAkDh?;+$eRf!*do/5Y,s*t~> +WrE-b0c'Wd!$qO"r[IBnGiR0UAkDh?;+$eRf!*do/5Y,s*t~> +WrE-t10XQ_!F_8f?ijc%Jb +WW*"e2u +WW*"e2u +WW*"eAG]a8@?pOo!GSn5?ishm$V^,!!-t7;"DUV(9o]&M!qSM4qu;0~> +VuH`1qu?d!:BL7j!Wf_2o`+t:nc/^n!7IP?"EdC39of,N!q](4qu;0~> +VuH`1qu?d!9`k%h!Wf_2o`+t:nc/^n!7IP?"EdC39of,N!q](4qu;0~> +VuHa.r*TS7OC@lk!b'5[oj@iD$VL&!!b,QnT`5.;9MA0@qu6`i8^dM9J,~> +VuHef,l@ZB'DDJ.!I,UW!!**.nc/YXTDo%J9MA0'qu6`i +VuHef,l@ZB'DDJ.!I,UV!!!Dt!!#EZrre$L9MK[,rrVgm`r#dd~> +VuHekCA_K>D"h<=@Ae, +VZ-\m48f-["&JUj!@qmV!!!])!!33&d\$OBRS6CLD>X>7oObN.s*t~> +VZ-\m48f-["&8Ih!@qmV!!!])!!33&d\$OBRS6CLD>X>7oObN.s*t~> +VZ-\mL&GB[@Z^:k!ILR6?ijOO4S<(`@:7o`rreca9MKC$rrVh)[JTuS~> +V>gSp=T/:$!G;$*!X#A%jo>BPT)Sqr9MA/iqu6`iFf#!8J,~> +V>gSp=T/:$!G;$*!X#A%jo>BPT)Sqr9MA/iqu6`iFf#!8J,~> +V>gSpQ2Y.l@@?gs!b0,Wp0[r+, +V#LYuF8u:A=98-r!WeYroDekBp&P*n!83tD"i3l+9j@VprrVhHQ2CT3~> +V#LYuF8u:A=98-r!WeYroDekBp&P*n!83tD"i3l+9j@VprrVhHQ2CT3~> +V#LYuSR>i6Q!sDp!b&ZOp0[r+,<,7&!9BaO"i3l+9jRbrrrVhHQ2CT3~> +UAk@@!!"5OpAb6q=@i&a!>be1!!$W%rrpqH9MSUdqu?\V!;-3hJ,~> +UAk@@!!"5OpAb6q=@i&a!>be1!!$W%rrpqH9MSUdqu?\V!;-3hJ,~> +UAk@o?sn+gpL"&2Q&#'@"'[9-@J4(/R@X?]eP&Y3 +U&P4^!!"nM!!*Rso)Jb1p](?r"lu6S!9*oN!E&dlrrSX@o_e`>~> +U&P4^!!"nM!!*Rso)Jb1p](?r"QZ-R!9*oN!E&^jrrSX@o_e`>~> +U&P5+?snQZ?iauQojIeM!-.a@!FG)_rrD$W9EA#gqu6_dK(T!@J,~> +T`5(`!B9]P!Wfn8oDekZpAb1qSGrTRr_*>fpA=jkV02G.s*t~> +T`5(`!B9]P!Wfn8oDekZpAb1qSGrTRr_*>fpA=jkV02G.s*t~> +T`5)1?tAt=!b'Pep0dnN!.FTL!0s)S!:'PW!D`CdrrT$>o_e`>~> +TDnu$(BO71!WdNroDen3"o&&t=.K9jnGZ)^:%S8^!juM0r;V9~> +TDnu$(BO71!WdNroDen3"o&&t=.K9jnGZ)^:%S8^!juM0r;V9~> +TDnu8/ReB]!b&!Rp0[tY,AUc`?iZ%RrrDQf9E@lZqu6`*@eBTuJ,~> +T)Shs!VQKo,C&e[!'BrU!(`X["nPG^9MOdKrrU2?o_e`>~> +T)Sero`,";Gk1n8488dU8=]\`o1_nP:$MQT!le74r;V9~> +T)Si!?M7b-Ff4q@"$@Q-L%o$ULReAJo1_nP:$VWU!le74r;V9~> +T)Si_'D;D-"1nU+!!,Ukq#CC_SGrca;+sYXiVWWVeOfE2s*t~> +T)Si_'D;D-"1nU+!!,Ukq#CC_SGrca;+sYXiVWWVeOfE2s*t~> +T)Si_AbKL5@aec[?j&S+>DHY_?iYVFrrr!k9MA1>qu6`J8bDr\J,~> +Sc8[kp&G-pQk&`g!!!"sJrrr$p9MA12qu6`V47iCMJ,~> +Sc8[kp&G-pQk&`g!!!"sJrrr$p9MA12qu6`V47iCMJ,~> +Sc8\Hp0[r1\nUnH"@Nr.A9%EQ!-t+7"nYeg9MO(7rrV.@oDJW=~> +Sc8\Wp&G-p:K[5h!oDJW=~> +Sc8\Wp&G-p9j%#f!oDJW=~> +Sc8]$p0[r1OHoQJ"A0&+@>FYd!-t(6"C4\p9ud)1!p)<2r;V9~> +Sc8]Co`,"#W:Kui,6RcB!&9uC"D1>$9tC0$!q%l6r;V9~> +Sc8]Co`,"#W:Kui,6RcB!%aW>"D1>$9tC0$!q%l6r;V9~> +Sc8]Ioj@f3`V3aD9FG'4F^k2T!-=Y0"D1>$9tC0$!q%r8r;V9~> +Sc8]Xo`,$o[KZF+!!3'!! +Sc8]Xo`,$o[KZF+!!3'!! +Sc8`Y=S?,(@EN'S?j0@1>@:ljqHs;FS,WV<9MA0`qu6`f2=CDBJ,~> +Sc8`\$2+?#!GOFc!!NB'!!,UkqZ$UIS,WJGr_* +Sc8`\$haQ%!GOFc!!NB'!!,UkqZ$UIS,WJGr_* +Sc8`\9(lWo@A8>J?j9^7>@:lp@JaF4CRb>(MZ-9LV>L8oo/Yq1s*t~> +Sc8`\$hXK#*/3ta!=KD7!!":6rreT\9MM#RrrVdRiV`_+~> +Sc8`\$hXK#*/3ta!=KD7!!":6rreT\9MM#RrrVdRiV`_+~> +Sc8`\3qZk]EN8eA#$:k0?smP[qd9D=S,WVV9MA0Oqu6`h45p,;J,~> +Sc8c]2Z`UP!Wot7oDemm:\t+l,b+f:V+aQWNr/hXoL[L/s*t~> +Sc8c]2Z`UP!Wot7oDemm:&=nj+.N95V+aQWNr/hXoL[L/s*t~> +Sc8`\3V?b]@FJZ\?j9^5=C>NFOS`DcB:Jo(V+aQWNr/hXoL[L/s*t~> +Sc8c];[N-t!We,ko)JeA"8i-!)Opa0\P,[kK)>QLoM`d-s*t~> +Sc8c]QLoMij.s*t~> +Sc8c] +Sc8c]D'\cS!B"Td!!!&u!!*-Yqu?^8S,WW69MA0'qu6`i@_)F:J,~> +Sc8c]D'/EN!B"Td!!!&u!!*-Yqu?^8S,WW69MA0'qu6`i@_)F:J,~> +Sc8c]D.iNL!J.!@?ijO6=T2\/@=e>a!+q`#"NjD39m-@5!q]s4r;V9~> +SGrVA2t[.P"fMIt!<3*!!!30s!W;uu':]")fh>(6C&@o3oPLc/s*t~> +SGrVA2t[.P"fMIt!<3*!!!30q!W;uu':]")fh>(6C&@o3oPLc/s*t~> +SGrVAAG'=3@`;dP?ijO6;#Xi(@?=pr?iXc-rrh"K9MK:!rrVh0Y5J +SGrYe2?ELO!Wf5(o)Se#r;Zg2S,WWQ9MA/iqu6`iI\$E:J,~> +SGrYe2Z`UP!Wf5(o)Se#r;Zg2S,WWQ9MA/iqu6`iI\$E:J,~> +SGrYe9O[X&!b'&YqHsA/"],))s(VF>!+hZ""Q` +SGrZ,,6miA!WcCoo)Jdl:]17n':]"*l:alG=oS@!!q_A8r;V9~> +SGrZ,,6miA!WcCoo)Jdl:&P%l':]"*l:alG=oS@!!q_A8r;V9~> +SGrZ,,\6UV!b%@LqHsA/$VLA*!F_)g?iXc-rrqd`9MJ^ir;QijMO",>J,~> +SGrZD$7kcL!>C=\!!+q\rVus4nXTU_n4cSM;uQUn!g/B4rVqB~> +SGrZD$7kcL!>C=\!!+q\rVus4nXTU_n4cSM<;l^o!g/B4rVqB~> +SGrZD$@DGR!Go+=?ijO?7/UEnJR\Ud!G1ekrrqmd9MAIbqu6_[MY-lIJ,~> +SGrZP!Hdu7!Wfn7o)Jdm48o3\$h9be"nPSb9MtW_rrSX@o_nf?~> +SGrZP!Hdu7!Wfn7o)Jdm48o3\$h9be"nPSb9MtW_rrSX@o_nf?~> +SGrZP!hK!l!b'Pdqd9J0'L_k,!F^]]?iaj/SGrca;+sY\q>:0nRY(21s*t~> +SGrY)!)N7f!We!"nc/hq!<<*+nXTU_r_Z?_:A"G`!i:&3rVqB~> +SGrY)!)<+d!We!"nc/hq!<<*+nXTU_r_Z?_:A"G`!i:&3rVqB~> +SGrYb@$(%h!b&*Oqd9J0*'F++"dNM(?t/YrrrrC!9MA4Rqu6_oFnGY4J,~> +SGr\Y!%S6G!!+Tpnc/h$)up!Gn=0F\=\ML`nGE4e[:](0s*t~> +SGr\Y!%S6G!!+Tpnc/h$)up!Gn=0F\=\ML`nGE4e[:](0s*t~> +SGr]&@!cAU?ibVPqd9J0,;]4)"_D[]?t/VprrcM!9MP$RrrTT?o_nf?~> +SGr]"!"1%E!!3>9!V69p!D!1k$1OGa"D1>$:$)9P!l8%3rVqB~> +SGr]"!"1%E!!3>9!V69p!D!1k$1OGa"D1>$:$)9P!l8%3rVqB~> +SGr]6?tFKR?ijfd@JjL7>9bs$?j0to?smI5S,WV'9MA1Bqu6`6>4hdnJ,~> +SGr]3!!-3p!!31k%e9T&*!QEIn=0F\F\GJ'h>@3RcV='1s*t~> +SGr]3!!-3p!!31k%e9T&*!QEHn=0F\F\GJ'h>@3RcV='1s*t~> +SGr]D?t#>n?ijcRC&D??>:V6#?j(I[?s`>lrrdI<9MO@?rrUM@o_nf?~> +SGr]E! +SGr]E! +SGr]P?t#>n?ijc%Q2=th.f`fN?j'nl@:&Gmrre3Q9MNk1rrUkAo_nf?~> +SGr`V! +SGr`V! +SGr`W?t"h!oj@f7_Y[^B1F$-#?itsg?L"$["I2YS9u6`,!oZ64rVqB~> +SGr`["TT2Lo`,$o`s)#6!s=cHnXKO]V+aQWZMXY'kr&)2s*t~> +SGr`["99)Ko`,$o`s)#6!s=cHnXKO]V+aQWZMXY'kr&)2s*t~> +SGr`[?=7Scoj@i0fOFbd!])'*qHsD7S2p,/rrf/l9MMqlrrVICoDS]>~> +SGr`j#lk$&o`,$oGUr=b!s(qInXKO][7j7gWVc\sl8.u/s*t~> +SGr`j#lk$$o`,$oGUr=b!s(qInXKO][7j7gWVc\sl8.u/s*t~> +SGr`j@UNW+oj@i0VgJ>L!^%H,qHsD6LGJChrrf`'9MMParrVRFnbrK<~> +S,WR(!!-3o!!+U(nGiUs-h3]+"NF,/9qhIa!q8#6rVqB~> +S,WR(!!-3o!!+U(nGiUs-h3]+"NF,/9qhIa!q8#6rVqB~> +S,WS%?t#>m?ibVSr*TRo'O1B@!b*VKS,WW29MA0Squ6`e2=CGCJ,~> +S,WU:!!-1&o`,$s])hI&!W`VtS,WWE9MA0Gqu6`f2J,~> +S,WU:!!-1&o`,$s])hI&!W`]!S,WWE9MA0Gqu6`f2J,~> +S,WV+?t#=/oj@i1dp`2_!^mE#q-X849(ADN"PHIB9pPVU!qA/5rVqB~> +S,WUM!!!uKo`,$oS.>&h! +S,WUM!!!uKo`,$oS.>#g!9p!Q"Q<$J9oAiJ!qSA4rVqB~> +S,WV:?smtgoj@i0_J/sV!_Ni)pg=,/lC7eViClp>MYmDTo/Yq2s*t~> +S,WUm!!!*_o`,$o:K[)d!-k"5"R/TR9n*!>!qSM4rVqB~> +S,WUm!!!*_o`,$o9j$lb!-k"5"R/TR9n*!>!qSM4rVqB~> +S,WVJ?smGtoj@i0OHocP!`&u(pL"!!S,WWV9MA00qu6`h45p/ +S,WV*!!!%%oDen"SG`Hf!VQKnd[U7>mS-ALD>X>7oL.C2s*t~> +S,WV*!!!%%oDen"SG`Hf!VQKnd[U7>mS-ALD>X>7oL.C2s*t~> +S,WVc?smE.oO%]2_YmjD:]akq?i]#Prrhaa9MKC$rrVg\g&:r$~> +S,WYG!!!%%!VHEo!P8O6!!!&n!!('/rrhpg9MK-rrrVgec2IZm~> +S,WYG!!!%%!VHEo!P8O6!!!&n!!('/rrhpg9MK-rrrVgec2IZm~> +S,WYl?smE.@J+"0@FJ]b?ijF3>PDM*fUMmDo1htRB)DT0oM*U/s*t~> +S,WY^!!!$M#5%rt!I-Kl!!('/rrrC!9MJajr;Qij=i1.;J,~> +S,WY^!!!$M#5%rt!I-Kl!!('/rrrC!9MJajr;Qij=i1.;J,~> +S,WZ/?smDiAG'=3@Ae\U?ijF1=SH2'fUMmEr_Z?`?2jd%!q][9rVqB~> +S,WJsrVus'2=pkL*/X1c!5"^""BeDn +S,WJsrVus'2=pkL*/X1c!5"^""BeDn +S,WK2ra5b;Jb3=NEO5XP!a#G)pL"!MRf +S,WK/rVus"B(Q')!lkB5!!'Hrrrce)9Mt`crrVh4WVujI~> +S,WK/rVus"B(Q')!lkB5!!'Hrrrce)9MtZarrVh5WVujI~> +S,WK@ra5b8RIjkl@G#!r?s +S,WKArVus"B(Q')!Jr'#!!!&n!!&sdrrdI<9MYE]rrVh +S,WKArVus"B(Q')!Jr'#!!!&n!!&sdrrdI<9MYE]rrVh +S,WKLra5b8RIjkl@C()a?s<\7pL"!?Rf +S,W]W!WW3$3sG9W!WbB-r;ZfupAb2lRf +S,W]W!WW3$3sG9W!WbB-r;ZfupAb2lRf +S,W]X@:3JOKjs^_#@W=a?sm1B;"n>t`L?f0KhP07oDJUioS&S/s*t~> +S,WNf"o\K&$R>9D!X?7;o)Jc\Rf +S,WNf"o\K&$R>9D!X?7;o)Jc\Rf +S,WNf@fBa9ATdWQ#%Z1k?s="6pL"! +S,WNg$iU,,!G:s(!Wf5-o)JcXRfqu6__L%PBEJ,~> +S,WNg$iU,,!G:s(!Wf5-o)JcXRfqu6__L%PBEJ,~> +S,WNgAc?'<@@?aq#%>J^?s="2pL"!4Rfqu6__L%PBEJ,~> +Rf<@-rVus"B(Q')!G5.!!!%kErrfJu9MO(7rrSa?o`"l@~> +Rf<@-rVus"B(Q')!G5't!!%kErrfJu9MO(7rrSa?o`"l@~> +Rf80L"?i[O%rrfJu9MO(7rrSa?o`"l@~> +Rf<@HrW!!#:BU4h!>Cjl!!%kErrg&09MNP(rrT0>o`"l@~> +Rf<@HrW!!#9`t"f!>Cjl!!%kErrg&09MNP(rrT0?o`"l@~> +Rf803o?i[O%rrg&09MNP(rrT3@o`"l@~> +Rf<@hr;Zj3*:s44!P8I+!!%_ArrgS?9MN(prrTT?o`"l@~> +Rf<@hr;Zj3*:s44!P8I+!!%_ArrgS?9MN(prrTT?o`"l@~> +Rf +Rfo`"l@~> +Rfo`"l@~> +Rf +Rf +Rf +RfL8obYIg0s*t~> +Rf +Rf +Rf +Rf +Rf +Rfq^"Sked9p,>Q!o5s0rr7K~> +Rfc!!$W"rri9t9ML-9rrV:@oD\c?~> +Rfc!!$W"rri9t9ML-9rrV:@oD\c?~> +RfC+(,?sqN!1B;U"T;1k9nN9B!p)H6rr7K~> +Rf +Rf +RfPMS+R@=-Yr`)WdFo21?l8A,2s*t~> +Rf +Rf +Rf +Rf +Rf +RfSLE;?iZ%Orr["09k+#"!q8)8rr7K~> +RfB)=!!#QXrrdU@9j.JnrrVdLl2L^5~> +RfB)=!!#QXrrdU@9j.JnrrVdLl2L^5~> +Rf[")Nl'>PMS+LRJ/FHV@.;rqucto/5h4s*t~> +RK!7,qu?`uB(H!'!LNK[!(<7T"H#lH;uQXo!qSA4rr7K~> +RK!7,qu?`uB(H!'!LNK[!(<7T"H#lH<;lap!qSA4rr7K~> +RK!8&r*TP6RIaeg@AaK;pg=)MRK!DI9MAIbr;Qii3T^8?J,~> +RK!7Aqu?`uB(H!'!G;$*!&p>G"I`"X;>L.i!q\n:rr7K~> +RK!7G"I`"X;>L.i!q\n:rr7K~> +RK!8.r*TP6RIaeg@@7:'pg=)IRK!DY9MA=Zr;Qij7,@kBJ,~> +RK!7Xqu?d!3sG3U!@.jC!!"aArrf#h9MY +RK!7Xqu?d!3sG3U!@.jC!!"R +RK!8Br*TS7KjsX]!bqmCpg=)CRK!D`9MA4Ur;Qij8^dV +RK!8!qZ$X,,P(m9!s/,r!%XK;"KkEl:%8)\!q]@4rr7K~> +RK!8!qZ$X,,P(m9!s/,r!%XK;"KkEl:%8)\!q]@4rr7K~> +RK!8Tqd9G=Fn8uB +RK!83qZ$Wt=Rc@k$2=K#,anZ8\kGdljo#,[oNo92s*t~> +RK!83qZ$Wt=Rc@k$2=K#,anZ8\kGdljo#,[oNo92s*t~> +RK!8bqd9G5Q1JAb=9)h*?iXr0rrfu.9MOXHrrVh!^Ae._~> +RK!8SqZ$WtB(5j$7/-`^*1?g0bY1])h>I9SoP(T0s*t~> +RK!8SqZ$WtB(5j$7/-`^*1?g0bY1])h>I9SoP(T0s*t~> +RK!8uqd9G5RIaef>6'*H?iXu1rrgP>9MO@@rrVh-Z2XcR~> +RK!8cqZ$Zu:BL(e!-n8=!#h:*"PHIB:!`b;!q^W3rr7K~> +RK!8cqZ$Zu9`jkc!-n8=!#h:*"PHIB:!`b;!q^W3rr7K~> +RK!9+qd9J6OC@ch!a>Z&pg=)6RK!EC9MA1,r;QijFf#*;J,~> +RK!9-q>gO/o)JgmK`h,N!#(e#"Q` +RK!9-q>gO/o)JgmK`h,N!#(e#"Q` +RK!9>qI'>>oO%c*!if`*?iXc+rrhFW9MNA$rrVhERf<>;~> +RK!9?q>^Nu:\"Jd="F(H!#(e#"R8]T9ssp!!q_A4rr7K~> +RK!9?q>^Nu:%A8b="F(H!#(e#"R8]T9ssp!!q_A4rr7K~> +RK!9JqHs>5ORuo_>6Tk1q-X26RK!EW9h\9hr;QijMNRo +RK!9Jq>^NsB(>p&$[DII!#(e#"T2"g9r\$i"HeT6s8RT~> +RK!9Jq>^NsB(>p&#^H.F!#(e#"Stke9r\$i"HeT6s8RT~> +RK!9QqHs>4RIjkh>74T3q-X26RK!Ef:/"B^qu6e]MY-rKJ,~> +RK! +RK! +RK! +RK! +RK! +RK! +RK!5=!!30-n +RK!5=!!30-n +RK! +R/[.+q>^NsB(>p&!grib!W`JoRK!A/9ML!5rrflAo`+rA~> +R/[.+q>^NsB(>p&!grib!W`JoRK!A09ML!5rrflAo`+rA~> +R/[/%qHs>4RIsqj>9#G-])#e8@dofc"*.(0If'-J\RP42s*t~> +R/[.Fq>^QtAc_K'!WdNLqu?d""n%fY",0ECEVob=_HHO2s*t~> +R/[.Fq>^QtAc_K'!WdNLqu?d""n%fY",0ECEr5k>_HHO2s*t~> +R/[/3qHsA5R:5es"^<3-@AdT4?ijbGm[=(WKhP3]qu6f=>4hjpJ,~> +R/[.^q>^Qt2$WUOs#']S!WiPnRK!AS9MK-rrrgSAo`+rA~> +R/[.\q>^Qt2$WUOs#']S!WiMmRK!AS9MK-rrrgSAo`+rA~> +R/[/JqHsA5JRnI^"^ +R/[/#q#CF'/+NZ@"aKnE! +R/[/#q#CF'/+NZ@"aKnE! +R/[/\q-X57HhCeH.frpaVu'j&@IBQ`"JJL`?2jd%"P#p4s8RT~> +R/[/2q#CErB(>p'!JLRP!!*,cRK!Dm9MSUer;QoU7.gNZJ,~> +R/[/2q#CErB(>p'!JLRP!!*,cRK!Dm9MSUer;QoU7.gNZJ,~> +R/[/aq-X53RIsqk1F$+4WaYd4!:?3S"KkEn +R/[/Rq#CErB(>p'!D!n%!!*/cRK!E(9MA=]r;QoY47iLPJ,~> +R/[/Rq#CErB(>p'!D!n%!!*/cRK!E(9MA=[r;QoY47iLPJ,~> +R/[/tq-X53RIsqk1F$+4LMZlr!Fb8]rrg&09Mt`crrh:BoDei@~> +R/[/pq#CHs8-SPa!=NN;!!*,bRK!E69MA=Zr;Qoa2=pkJJ,~> +R/[/pq#CHs8-SPa!=NN;!!*,bRK!E69MA=Zr;Qoa2=pkJJ,~> +R/[0/q-X84LLTsb"[!c/?tGc'?i]J[rrgP>9MtW`rrhUEoDei@~> +R/[0,p](=)*:a(2!JLRQ!!*,]RK!EC9MA4Qr;Qob1\(MFJ,~> +R/[0,p](=)*:a(2!JLRQ!!*,]RK!EC9MA4Qr;Qob1\(MFJ,~> +R/[0=pg=,:EV~> +R/[0>p]( +R/[0>p]( +R/[0Ipg=,2Q1eSi6kij5@A7<1?i]>WrrhFW9MOpPrrhaInGiN=~> +R/[3O!r2fs!G:j%!>@Qm!!(uGrrhR[9MOLDrrhjJlMpm7~> +R/[3O!r2fs!G:j%!>@Qm!!(uGrrhR[9MOLDrrhjJlMpm7~> +R/[3P@JO:3@@?gs#"f8-?smf)r*TNeRK!ET9MA1>r;Qoi2=:GDJ,~> +R/[3T"o/-"!E]Eo!!*+Fqu?`MRK!Ec:/"C4r;Qok2 +R/[3T"Si$!!E]Eo!!*+Fqu?`MRK!Ec:/"C4r;Qok2 +R/[3T?MRt1@?k9q?j9@0>@:iIVu0p&jI-#Nq+aUXeboFMo/5h5s*t~> +R/[3d$2=K$*#&&H!!3#u!WdNIr;ZiNRK!Eg;+s^,r;Qok2s()>J,~> +R/[3d$2=K$*#&&H!!3#u!WdNIr;ZiNRK!Eg;+s^,r;Qok2s()>J,~> +R/[3d@ea=3EGYAW#>bS.?smE@@JsR6hjOKIrD?6_b5D8Bo/Yq4s*t~> +Qi@%!p](dM*~> +Qi@%!p](dM*~> +Qi@%spg=,3OS<,f=9;]7?t"D%rEoW]RK!Eh +Qi@%9p]( +Qi@%9p]( +Qi@&-pg=,2RJ1(j=9)J&?ia`)rEoWaR/[7o9MMeirrhs^g&M)&~> +Qi@%Rp](?rAc_H&!Wd!9rVur=R/[8&9MMA]rrhscdf9>t~> +Qi@%Rp](?rAc_H&!Wd!9rVur=R/[8&9MMA]rrhscdf9>t~> +Qi@&6pg=/3R:5ku!a#G)ra5e9U1+%/!8*\="):M(V>U>roL[L2s*t~> +Qi@%tpAb4E%e9T$!BU\g!!'Wurr[C;9qD4^"S>R8s8RT~> +Qi@%tpAb4E%e9T$!BU\g!!'Wurr[C;9qD4^"S>R8s8RT~> +Qi@&RpL"#KC%u';=9)J&?ijbjAc?';e!U.;F\GN#r;Qol;9](?J,~> +Qi@&1pAb3u8G<)a!W2ou"],*t!5"Wu",0ECOo54^oNB$1s*t~> +Qi@&1pAb3u8G<)a!W2ou"\nsr!5"Wu",0ECOo54^oNB$1s*t~> +Qi@&`pL"#4L\P6Y>67q*?ia_ura5`TR/[8B9MLZIrrhst_>jOc~> +Qi@&BpAb3pC%_N,!WB2s*t~> +Qi@&BpAb3pC%_N,!WB2s*t~> +Qi@&lpL"#1UA/*t>6Rk%?ia](ra5`KR/[8R9ML6=rrht'\c;\[~> +Qi@&apAb6qB`[c)"T^[g!!&sbrr\rg9mQ[:"S?E5s8RT~> +Qi@&apAb6qB`[c)"T^[g!!&sbrr\rg9mQ[:"S?E5s8RT~> +Qi@')pL"&2U1*k*!a>h'rEoe;KjnFt`L-Z-ThJ1-r;QolC9dg=J,~> +Qi@'+pAb6q2$WRN"9p^`!2u:b"0"sgC]+28oPpl1s*t~> +Qi@'+pAb6q2$WRN"9p^`!2u:b"0"sgC]+28oQ$r2s*t~> +Qi@' +Qi@'=p&G+$2=UYL!E]=%S=' +Qi@'=p&G+$2=UYL!E]=%S=' +Qi@'Cp0[o4Jb`[T>80L'?j'o'?spj=rr]f*9k+&#"S@&7s8RT~> +Qi@*I!VZQp!GV'("9CRb!19/R"NF,/=oSC""S@;7s8RT~> +Qi@*I!VZQp!GV'("9CRb!19/R"NF,/=oSC""S@;7s8RT~> +Qi@'Op0[o0UA80u>803t?j'nl@:6[6rrg>89NqGorrhtGRfED<~> +Qi@*S"nqut!GV$'!t,S=M4";GeP&Y8rVca!oSSe2s*t~> +Qi@*S"nqut!GV$'!t,S=M4";GeP&Y9rVca!oSSe2s*t~> +Qi@*S@eX72@A +Qi@*c$2FQ(!rr?t"n;Qp!D!3)R/[ +Qi@*c$2FQ(!rr?r"n;Qp!D!3)R/[ +Qi@*c@ejC7<(^S\@esI6>9bs$?ishm@%s%g"Q<$J;>L.is,I-Ps*t~> +QN$q'q>^[#!!!09,Oka9!E]BaR/[<\9MA4Tr;QkaMY-q!~> +QN$q'q>^[*!!!-8,Oka9!E]BaR/[<\9MA4Tr;QkaMY-q!~> +QN$qsqHsJ>!!$>AFo#JI>9bs$?isi&!Tf^K"S5;\:A=\d"-nc9s*t~> +QN$q8p&G*p=RZ:l%L(s]rri-m9MP$Srr\^Ao`'F~> +QN$q8p&G*p=RZ:l%L(s]rri-m9MP$Srr\^Ao`'F~> +QN$r,qHsI_.m+MSQ24ki>:V6#?ik$Gjd?&Nq+aUXnGN:gRY(23J,~> +QN$qUp](Bt!!6m(!!30$iL'WJrD$$\l2:P`Tm?;1J,~> +QN$qUp](C&!!6m(!!30$iL'WJrD$$\l2:P`Tm?;1J,~> +QN$r?qHsIp,A.!bUA83s.f`fN?ijaViL'WJrD$$\lMUYaTmQG3J,~> +QN$qsq>^a&!!3-#=9FEN!!30$h3e3Fr_lKbh>I9TWH%S1J,~> +QN$qsq>^a&!!rW*=9FEN!!30$h3e3Fr_uQch>I9TWH.Y2J,~> +QN$rQqHsP-$YLGIQ"%)s?ii,/>Phe0@78q=rri=$9MO@@rr]9Ao`'F~> +QN$r0q>^a%!!3-#':8^g!!*,KQi@.l9MNt5rr]Q=o`'F~> +QN$r0q>^a%!!rW*':8^f!!(H6rrZJ!:"&t>"0uP2s*t~> +QN$r_qHsVQ%q21E9Wq?iaT^Qi@.n9MNt5rr]Z@o`'F~> +QN$rAq>^d'!!33%SH&RWq>^Krq#CDlQi@/"9MND%rr]i=o`'F~> +QN$rAq>^d'!!rr3SH&RVnGiQdQi@/"9MND%rr]i=o`'F~> +QN$rkqHskD"_VHJ_Z0U0$Su!p?q`[hq-X35Qi@/"9MNP)rr]o?o`'F~> +QN$r`q>^d%!!*/+rr;tOnGiPkQi@/19MMqmrr^8@o`'F~> +QN$r`q>^d%!!*D2rr;tOnGiPkQi@/19MMqmrr^8@o`'F~> +QN$s(q-XUF:hR'4s8K#d'Ep9pp0[lcQi@/19MMqmrr^8@o`'F~> +QN$rsp&G5 +QN$rsp&G5 +QN$s6qHsh<.l0;1rr;uV?s?#5"Z'9U?iZ:Trr[sK9re-k"3jU5s*t~> +QN$s5p&G7Hrr<#l#5eH$!VcWp8=0>YPtXoKr;QlL8bE%5~> +QN$s5p&G7Hrr<#l#5eH$!VcWp8=0>YPtXoKr;QlL8bE%5~> +QN$s@q-Xb+!!%-?s8Vh(?sm22*!.WmqHs;YQi@/Q9MMA]rr^eCo`'F~> +QN$sDp](O"!s\K!s8FnP!!!&r!!#ERrr\fc9q)"["5QB;s*t~> +QN$sDp](O"!s\K!s8FnP!!!&r!!#ERrr\fc9q)"["5QB;s*t~> +QN$sIq-XJ#!b,^7s8W(LrEoe59H4*a=SuP,I@'s9SP2bHr;QlT7.gM0~> +QN%!M!r2g$!WW5@s8W(Cnc/YKQi@/e9MLEBrr_4AoDa=~> +QN%!M!r2g$#ljtGs8W(Cnc/YKQi@/e9MLEBrr_4AoDa=~> +QN%!N@JO:9B4,-"s8W(rqd9S3:*T`h=T2\.H'eO5W_?-Hr;QlX47iK&~> +QN%!a"nhp!L&_2P]CGq%0phnB[7j;Dr;Ql\2tR'"~> +QN%!a"nhp!L&_2P]CGq%/=6A=[7j;Dr;Ql\2tR'"~> +QN%!a@eO14WrN+ue+mAV>>HID.p-"sQi@/q9ML!6rr_@CoDa=~> +QN%!b%e]l&49#6\nH8Lc!!3'!!=R>Crr^,39l^+2"6h]5s*t~> +QN%!b%e]l&49#6\nH8Lc!!3'!!=7,@rr^,39lg13"6h]5s*t~> +QN%!bC%bp7L&V)Qp1!f)#$XnK!$bY&R/[9.9MKR*rr_ODnc++~> +Q2^h(p&G7(r;Zfr,Oka7Ku]Y^"4Bk;B)MZ2mPFD5J,~> +Q2^h(p&G7(qZ$Tp,Oka7Ku]Y^"4Bk;B)MZ2mPFD5J,~> +Q2^i"p0\&8r;ZfrFnT2I>?EBU,HBCbrr^\C9kO>'"7A&:s*t~> +Q2^hCo`,-Js8W(4nc/g!rn3"GSGr`J9MAdlrVluh1[b9n~> +Q2^hCo`,-Js8W(4nc/g!rn3"GSGr`J9MAdlrVluh1[b9n~> +Q2^i0oj@p`s8W(mo3_`(^&HohfUVsEh+ULKrr)j!n29Y6J,~> +Q2^h[o`,,^s8W(snc/l9rr;u'41h*a"S#/[ +Q2^hYo`,,^s8W(snc/l9rr;u'41h*a"S#/[ +Q2^iGoj@p6s8W);nmDZmrr;u*DUY3W"S#/[ +Q2^huo`+torr3#a!V69t,Q@`Cn-&eC[f3!#"Sked;>gCm"7\85s*t~> +Q2^huo`+torr3#a!V69t,Q@`Cn-&eC[f3!#"Sked;>U7k"7\85s*t~> +Q2^iYoj@cbrr3#d@Imk5FoMF@n-'eIb5S+7"Sked;>gCm"7\86s*t~> +Q2^i +Q2^i +Q2^iaoj@r>rVuorD"D$B@eTj%rcL!u'P#,]U]1Jp:/"O\rVluk3T^9k~> +Q2^iSp]16r"R?$er`J^k"Le@1rcn>@!Z%a5V>g\t;bTsYrVluk45p3i~> +Q2^iSp]17#"R?$er`J^k"Le@1rcn>@!Z%a5V>g\t<(p'ZrVluk45p3i~> +Q2^j$pgF&<"RZ6hrg!%^%*JVMrhj.+1BeIr`VlY5"TDCp:A"Mb"7nV5s*t~> +Q2^imq#CEt!<*-)VZ6\qR.:4[GlRgC[e]t*(7>&trrZJ!:%%u["8#"7s*t~> +Q2^imq#CEt!<*?/VZ6\qR.:4[GlRgC[e]t*(7>&trrZJ!:%%u["8#"7s*t~> +Q2^j,q-X5&1]D7p\c;^/](053VuQerb5PcQ>;HEs>.X[0rrZP#:%%u["8#"7s*t~> +Q2^j4pAk0r!,MT6!86oC"XF$Hs7$9g!!3IorM]_uAkYq\rVlul8^dWh~> +Q2^j4pAk1#!,MT6!86oC"XF$Hs7$9g!!3OqrM]_uAkYq\rVlul8^dWh~> +Q2^j?q-X4k*;sdSrrD-N?j1]Ps8Ve%rEoh64:;Nh])AT-"(k5$jo,2]oL[L2J,~> +Q2^jCq#Ca(!!NN-,Q@`Cr!r;u"U";ps8FPC!!3I`r2Tc!F\GN_rVlul;9]&j~> +Q2^jCq#Ca(!"0/@,Q@`Cq@<)s"U";ps8FPC!!3ObqPsPtF\GN_rVlul;9]&j~> +Q2^jHq-XP/$Z9ip,l[iDr+Yb1"_.3*s8IBB?j9gt$O]S5r2Tc!F\GN_rVlul;9]&j~> +Q2^mL!r;m(!WW9*!X8,os8GR[!!Kb1s8I99!!3O^q5jSuKhP4`rVlul=i(,g~> +Q2^mL!r;m(!WWN7#mKl!s8GR[!!Kb1s8I99!!3O^q5jSuKhP4`rVlul=i(,g~> +Q2^mM@JX@=@/sqXB*J#/s8IfE?j+XPs8Jql?j9gt$O]"qq5jSuKhP4`rVlul>/C5h~> +Q2^mQ"o83+!W`?+! +Q2^mQ"o83+#lt>?! +Q2^mQ@esI>B*)^`:__CYs8K@q?j*D-s8LLA?j9h''EpOqpTFMuPtXodrVlul@_)Mh~> +Q2^ma$i0i1!rr<)!!%9Ds8L44!!OVHs8Vcrnc/_!GkSBA"//C_Z2O\)oPLc2J,~> +Q2^ma$i0i1!rr +Q2^maAbodA@N7LJ*&FMms8M!J?j1]Ps8Vh&p0\)/6kfecVt[Fq"//C_Z2O\)oPLc2J,~> +PlC_%q>^Krr;[$(2?*XUp]g^DroQ@#1J,~> +PlC_%q>^Krr;[$(2?*XUo`k!f"U4Grs8FP=!!<6%FRc[:"0"sgV>^DroQ@#1J,~> +PlC_qqHs\>9E6jK@Y+OYs7g-r?j1$5s8W(FoO%l-8fRmgSbBAh"0,$hV>^DroQ@#1J,~> +PlC_ +PlC_7q#Ca&#lk,/$i0i&r\a6H"Le@1rcml3!s&C6mBllq\P,_krVlulH(k7g~> +PlC`)q-XP!]-88[/U6=9MM5Zrr_n?U&TW~> +PlC_SpAb0prW!)Es8W(Cnc/f;s8W)=lN" +PlC_SpAb1"rW!)Is8W(Cnc/f;s8W)=lN" +PlC`=pL!u6ra5lfs8W(rnmDTus8W)Nn6cB':)j6i[/U6J9MLfNrr_nFRf@m~> +PlC_qo)JoMs8W)1nc/hDrr<#l#4)L&M#RoSSq6J,~> +PlC_qo)JoMs8W)1nc/hDrr<#l#4)L&M#RoSSq6J,~> +PlC`Oo3_^-s8W)InmDWJrr<#mAFEn/>=nlfrO2_.eP&\krVlulMO"3l~> +PlC`.o)Jbdrr3#h"nM]t"nDWmr\a$B!=Sk7rr_4R9mQ^;"8%V6s*t~> +PlC`.o)Jbbrr3#h"nM]t"nDWmr\a$B!=Sk7rr_4R9mQ^;"8%V6s*t~> +PlC`]o3_Q[rr3#m@e3t2@eTj%rdjKF"'Za+rO2_.iClsmrVlulNfO-i~> +PlC`No)Jq(r;Zfr,Otg;[f?C,L$Sd?$iRO6"6iKRD>aD8Oc&d]~> +PlC`No)Jq(qZ$Tp,Otg;[f?C,L$Sd?$iRO6"6iKRD>aD8Oc&d]~> +PlC`po3_`9r;ZfrFn/oCb5_M@WpX6s>9c3-[f6Hp9MKC%rrS=?oRH~> +PlC`lo)JppjT#8ZC%;6,GlRgCa6Wd,$iRO6"8P\d@f66-Q%ej\~> +PlC`lo)JppjT#8ZC%;6,GlRgCa6Wd,$iRO6"8P\d@f66-Q%ej\~> +PlCa+o3_`1li7"aU@M[pVuQerf^<,L>9c3-[f6I*:/,3qrrSI>oRH~> +PlCa(nc/f_s8W(snc/hDrr<#n#42Bk$iRO6"T;1k=oSC"!h+`5J,~> +PlCa(nc/f_s8W(snc/hDrr<#k#42Bk$iRO6"T;1k=oSC"!h+`5J,~> +PlCa9nmDU;s8W);nmDWJrr<#nAFEn.>9c3-[f6L/;+t0mrVlqfK(OQ~> +PlCa:nc/Z%rr3#d!qQBq"nDWmr]BKI!=Sk7rri=$9N1ogrrSm>oRH~> +PlCa:nc/Z%rr3#d!qQBq"nDWmr]BKI!=Sk7rri=$9N:uhrrSm>oRH~> +PlCaEnmDHcrr3#i@Imk1@eTj%re9fK"'[!2rO2_/r`)WlrVc`tTmQE^~> +PlCdK!V69p*<#p;r>bA."Le@1re9_>!=Sk6rrZS$;>L1j!i^23J,~> +PlCdK!V69p*<#p;r>bA."Le@1re9_>!=Sk6rrZS$;>L1j!i^54J,~> +PlCaKnmDW@rVuorEUmK?b5_M@Wpa9c3-[Jp>89MtWarrT3@oRH~> +PlCdP"nM]t!q$$fr`J^k"F0tHrla[/!=Sk6rr[%1:A4Yd!jQJ3J,~> +PlCdP"S2Ts!q$$fr`J^k"F0tHrm0s3!=Sk6rr[%1:A4Yd!jQJ3J,~> +PlCdP?LqP.@IjHurg!%^"K2;"ro* +PlCdR$1\'![f?C,SFQX`/,oSKq$ZTj!=Sk6rr[O?:%A2^!kDe4J,~> +PlCdR$1\'![f?C,SFQX`/,oSKq$ZTj!=Sk6rr[O?:%A2^!kDe4J,~> +PlCdR@e*n0b5_M@_X_(0~> +PQ(Urnc/Z7rr3#[!V69p"nDWmr]BNJ!=Sk6rr\9T:$MWV!l8+5J,~> +PQ(Urnc/Z7rr3#[!V69p"nDWmr]BNJ!=Sk6rr\9T:$MWV!l8+5J,~> +PQ(VonmDHqrr3#b@Imk1@eTj%re9iL"'[!2rO)Y-N_E14rVlr8?1`X~> +PQ(V.nc/hDrr2rq'Cl,']Dhg1M=(?E$iRL5".DnXh>R?T``;Y]~> +PQ(V.nc/hDrr2ro'Cl,']Dhg1M=(?E$iRL5".DnXh>R?T``;Y]~> +PQ(VtnmDWJrr2rqAb'4/e,K@IZg_?)>9c3-[Jp>t9MO@ArrU2?oRH~> +PQ(VNnGi]KjSf'Qnc/Z7rr2uAmJm7qrO)Y-V+aV3rVlrC;=oA~> +PQ(VNnGi]KjSf'Pnc/Z7rr2uEmJm7qrO)Y-V+aV3rVlrC;=oA~> +PQ(W2nR)U.li$ft8m>Nm?i[,(rrD$I?isUX3rQJd"/S[cdf'1IbYe"_~> +PQ(Van,NUn:Nuj>!V??q/,oSKq$ZWk!=Sk6rr]Q#9u?l/!n'd7J,~> +PQ(Van,NUn9m?X +PQ(W>n6cQ2OJaT:![Bg0>PMS0HiF'Fq.9)("'[!2rO)Y-[7j<7rVlrI9_ +PQ(W)mf3K)!<<*#qu?]tq>^[&nc/Xg8FHNZ$iRL5"2[`+\c)O0eO9%[~> +PQ(W)mf3K)!<<*#qu?]tq>^[&nc/Xg8FHNZ$iRL5"2[`+\c)O0eO9%[~> +PQ(WRmpHNt@:3;91DBg'1Jh +PQ(W:n,NLj2%03[!!2lq"M=^6re^(D!=Sk6rr^\C9r\*k!ng!6J,~> +PQ(W:n,NLj2%03[!!2lq"M=^6re^(D!=Sk6rr^\C9r\*k!ng!6J,~> +PQ(W_n6c<+JS"df$!ULo*!-Ku8m>O!?j+sYs8K@p?isUX3rQJd"4Bk;Wr;r!fgPI_~> +PQ(WQmf3@r2>$qL!W;uuGlI^Cg$\nA$iRL5"5upJV>^Dqh)k4Y~> +PQ(WQmf3@r2>$qL!W;uuGlI^Cg$\nA$iRL5"5upJV>^Dqh)k4Y~> +PQ(X"mpH0-Jbia]>?F9D"Tfo:=Bh^&rrD-M?isUX3rQJd"5upJV>^Dqh)k4Y~> +PQ(Wkmf3@hB(l9,KpY:,!!"MJrrN$-n,NIsrO)Y-ktFg?rVlrX47dt~> +PQ(Wkmf3@hB(l9,KpY:,!!"MJrrMs+n,NIsrO)Y-ktFg?rVlrX47dt~> +PQ(X*mpH0)RJ1(oWk*U7$NM/Orr3#sC%>X6>9c3-[Jp?o9MLuSrrV.@o7-~> +PQ(X+mf3@hB(l92M?!VO[UomIq>U?n8FQT[$iRL5"8P\dMZ*PVjYud]~> +PQ(X/mf3@hB(l92M?!VO[UomIq>U?n8FQT[$iRL5"8P\dMZ*PVjYud]~> +PQ(XAmpH0)RJ1(pZiC($b)8;#q>U?oLKj@X"'[!2rO)Y-q+aYArVlr\3V.b~> +PQ(X9mf3Ci8-Sbg!/:@N#5uSrGfp#Gn,NIsrO)Y-rD?: +PQ(X9mf3Ci8-Sbg!/:@N#5uSrGf]lEn,NIsrO)Y-rD?: +PQ(XDmpH3*LLU$d!35ts$N8VWVp,.#.n!KDp0[u,, +PQ([E!Ug!h%O:`K!-n;=!o]M.n,NIsrO)Y-r_lL1rVlr`2=Z1~> +PQ([E!Ug!h%O:`K!-n;=!o]M.n,NIsrO)Y-r_uR3rVlr`2=Z1~> +PQ(XKmU-'0Fnf>EVtg8uk.5F\$NM//=BkT/"'[!2rO)Y-r`)X4rVlra2=Z1~> +PQ([O"n)El!bV3-!-n2:"88Zp$iL&*!Vl]r$iRI4!aA?1rVlra1\#t~> +PQ([O"n)El!bV3-!-n2:"88Zp$iL&*!Vl]r$iRI4!aA?1rVlra1\#t~> +PQ([O@dd\*@@?mu!2oMi$2;Dq3YVQ.1Jh +PQ([_$1@ip!G;*,!-If3"oZJ`('"C2!!*K+[/U5?9O@_trrVUEn:1~> +PQ([_$1@ip!G;*,!-If3"oZJ`('"C2!!*K+[/U5?9O@_trrVUEn:1~> +PQ([_@dd\*@@?mu!1i]\&,k.O=sF(V.nX#M?s=j:rNuS,AkZP1rr3&f2=Q+~> +P5bLqmf3Ci=9J@!!,:p%%0"q6/-#YN!!!$"$iRI4"*I:;rr2p!n2'K_~> +P5bLqmf3Ci=9J@!!,:p%%0"q6/-#YN!!!$"$iRI4"*I:;rr2p!n2'K_~> +P5bMnmpH3*Q"'Ps!2Ar^%0#.aCF]bo, +P5bM4mJm8-'DVV.B']I!jIAaKrVus,rNuS,KhPABrr3&h1[]b~> +P5bM4mJm8-'DVV.B']I!jIAaKrVus,rNuS,KhPABrr3&h1[]b~> +P5bN(mU-'8D#%H=RHskYlb\E<'EA+orNuS,KhPABrr3&h2=>t~> +P5bMQmJm7i:\atjB'B6sr4?PIZMt#l9MtWbrrV^Hl@8~> +P5bMQmJm7i:&+bhB'B6sqR^>IZMt#l9MtWbrrV^Hl@8~> +P5bN;mU-')OSN8aRHXYQr6q'+ZMt#l9MtWbrrV^Jm=5~> +P5bMomJm7gB))E,=QTP_rj)P+ThJ5Rrr3&k2 +P5bMomJm7gB))E,=QTP_rj)P+ThJ5Rrr3&k2 +P5bNMmU-'(RJC4jQ0&#Grj)P+ThJ5Rrr3&k2 +P5bN,mJm:hAc_`.!*>Hc"0P +P5bN,mJm:hAc_`.!*>Hc"0P +P5bN[mU-*)R:5r"!/[!@"0P +P5bN=m/R/;$i0i'8 +P5bN=m/R/;$i0i'8 +P5bNgm9fsAAbod7LR%lA]M)&]rr3&k45k\~> +P5bN\m/R.j48JpW7$[cSbY1aarr3&k45k\~> +P5bN\m/R.j48JpW7$[cSbY1aarr3&k45k\~> +P5bO$m9fs(L&,0WI?jg7bY1aarr3&k45k\~> +P5bO&m/R.fB)2K-2jOCFfh>,arr3&l7,<@~> +P5bO&m/R.fB)2K-2jOCFfh>,arr3&l7,<@~> +P5bO7m9fs'RJL:kH'SC3fh>,arr3&l7,<@~> +P5bO8m/R1gAc_c/!&p2C"6E3N^Ae-6oL.5[~> +P5bO8m/R1gAc_c/!&p2C"6E3N^Ae-6oL.5[~> +P5bO>n6l8H"']3%@JaF4H'SC3j\/C_rr3&l7+He~> +P5bRD!U]ph!At)Y!!"O7rr_LZ9sO]t!q](4J,~> +P5bRD!U]ph!At)Y!!"O7rr_LZ9sO]t!q](4J,~> +P5bOJn6l8H"']2bAG]a7FHuk.l:apWrr3&l8^`+~> +P5bRJ!posg$T7e]!$mj0"7AlXWW)o!oMNh_~> +P5bRJ!posg$T7e]!$mj0"7AlXWW)o!oMNh_~> +P5bRM@I[_/1F$+3AV'_d!,@f!"7AlXWrE#"oMNh_~> +P5bR]$1.]n!GVE2!$mj0"8tthRf< +P5bR]$1.]n!GVE2!$mj0"8tthRf< +P5bR]@e!h01F$+3@A +OoGCpm/R.fC&7l1*0pO+r_Z@Orr3&l?G:p~> +OoGCpm/R.fC&7l1*0pO+r_Z@Orr3&l?G:p~> +OoGDmnR)M_**ZfZUAJ +OoGD,m/R1g:Bp^s!#h+%!a/3Nrr3&l@_%!~> +OoGD,m/R1g9a:Lq!#h+%!a/3Nrr3&l@_%!~> +OoGDrnR)P`**ZfZOC\8s!+qJq!a89Orr3&l@_%!~> +OoGDCli7&"/,TAI'9rLu@SCqDrrVh,Z%)~> +OoGDCli7&"/,TAI'9rLu@SCqDrrVh,Z%)~> +OoGE8nR)Ph'O+sQCjZ(f!+hDp!b+iGrr3&lC9`9~> +OoGD`li7%fC&@r2'9rLuD+ngGrrVh4WIO~> +OoGD`li7%fC&@r2'9rLuD+ngGrrVh5WIO~> +OoGEHnR)Ph'O+sQ@A<[-!+hDp!c:VJrr3&lEiOW~> +OoGE'li7%eFSl+=$^CYmIS=5MrrVh8V18~> +OoGE'li7%eFSl+=$^CYmIS=5MrrVh8V18~> +OoGEPnR)Pn$X7"H@@d=(!+hDp!e*gPrr3&lFesT~> +OoGE8li7(f=9\[(!W`W,Q2_,M9NhAps7Cc2J,~> +OoGE8li7(f=9\[(!W`W,Q2_,M9NhAps7Cc2J,~> +OoGE]nR)Sq$X7"H@?k=#?iaa9Q2_,M9NqGqs7Cc2J,~> +OoGEOlMpr*,Q7ZE!=A7\rs5&e;uQaroR`N^~> +OoGEOlMpr*,Q7ZE!=A7\rs5&e<;ljsoR`N^~> +OoGEunR)Do"^Ct6!HE8\?iaa+Q2_,Y9ND&ks7Co3J,~> +OoGEnnGiOiqu?a"B)Vc3!=/+Zrs5Gp;>gIooSSc]~> +OoGEnnGiOiqu?a"B)Vc3!=/+Zrs5Gp;>U=moSSc]~> +OoGF1nR)Dp"^Ct6!FhJq?iaa+Q2_,d9Mt`fs7D22J,~> +OoGF0n,NFhr;Zj!Gl@[E! +OoGF0n,NFhr;Zj!Gl@[E! +OoGF;nR)E#!aGY3!F_o)?iaa+Q2_,t9MY?^s7D>3J,~> +OoGI@!UKdk!GMT8!!3>lQ2^s&9MP'VrrJ7>J,~> +OoGI@!UKdk!GMT8!!3;kQ2^s&9MP'VrrJ7>J,~> +OoGFDnR)E#!*fG1#@X?8?smDLmZmeS_+[Snrr3"]MLY~> +OoGII!UKdk!@nf`!!<;jQ2^s49MOdNrrJC=J,~> +OoGII!UKdk!@nf`!!<;jQ2^s49MOdNrrJC=J,~> +OoGFKnR)E#!*K5.#@Vsq?smGPmZmeScV.'urr3"aKn'~> +OoGIO"mZ-h##G3u! +OoGIO"mZ-h##5's! +OoGIO@e*n.=9)J%?iaf"rEoWmQ2^sB9MOLFrrJR?J,~> +OT,:olMpqdC&S)5!pZ'N"6E3Ndf07ITm;.~> +OT,:olMpqdC&S)5!pZ'N"6E3Ndf07ITm;.~> +OT,;lnmDN$!*K2-!F_`%?ia^'Q2^sJ9MNt7rrJg?J,~> +OT,;#lMpqdC&S)5!U5mL"6rTT`r>u=WH!F~> +OT,;#lMpqdC&S)5!U5mL"6rTT`r>u=WH*L~> +OT,;rnmDN'!*K2-!F_`$?i]JWrr_X_9ud24!NL0j~> +OT,BLre^4H!!2ut"p$dn!!!&aQ2^sU://:urrKB=J,~> +OT,BLre^4H!!2ut"p$dn!!!&aQ2^sU://:urrKB=J,~> +OT,Bnrj26)!a>_.rEo\8Kk:6k!:#jL"7T&[\c2U0Z"ed~> +OT,BLrl=U1rrN#t"Ud0f!!2/Grr`6t9r7jh!OZBe~> +OT,BLrl=U1rrN#t"Ud0f!!2/Grr`6t9r7jh!OZBe~> +OT,Bnrn-jN!a>_&r*TP:Jc9$Wl]qJPr_ZCdrr3#,@Xn~> +OT,EMrp9dY!!!&t!!*+7rVurWPlCeb9VMIc!PVlj~> +OT,EMrp9dY!!!&t!!*+7rVurWPlCeb9VMIc!PVlj~> +OT,EorpjLj?ijO9;#F]%@A +OT,EMrr!Mt!!*+7rVurWPlCeo9U5VW!Q%ui~> +OT,EMrr!Mt!!*+7rVurWPlCeo9U5VW!Q%ui~> +OT,Eorr$[+?ijO?:AeK#@A(?~> +OT,E]rVf@T!!NC!!rr>SPlCf)9T&iL!QJ&g~> +OT,E]rVf@T!!NBt!rr>SPlCf*9T&iL!QJ)h~> +OT,F%rVhTF?ijO?9)N'#@?=r+@-!RP!cgtlrr3#@ +OT,Epr;Ls-!!ErT!!(]:rrRdGIfB?Jbt`c~> +OT,EpqYka+!!ErT!!(]:rrRdGIfB?Jbt`c~> +OT,F3r;NVe?ijO?9)E!!CiNijhj"-BJkUXmrrLA>J,~> +OT,F2pAVMe!!E@8!!(H3rrS +OT,F2pAVMe!!E@8!!(H3rrSdRer~> +OT,F=p\r>.?ijOH7/L?p@@:M2h3@p@O\BfprrLP>J,~> +OT,IBmJl5Jm/R7iB`J.RPlCfU9P4;(!S'Sg~> +OT,IBmJl5Jm/R7iB`J.RPlCfU9P4;(!S'Sg~> +OT,IGo)J#ap0[r+'L_h+"C\$4@+^_D!hE"srr3#L7">~> +OT,IKg&LsXm/R7iAci%RPlCuf9O@_us4Kej~> +OT,IKg&LmVm/R7iAci%RPlCuf9O@_us4Kej~> +OT,INjT#-hp0[r+*'F++"C[^-@+^_D#HCI(rr<#O7">~> +OT,IOa8c,rli7,4'*,Y/rs-). +OT,IOa8c,rli7,4'*,Y/rs-). +OT,IOf`1r%p0[r+*'F(*"*JEfe!0k;\P-$&s8Un:J,~> +OT,I_[f?>Kli7+kf`CT,rs-P;;>pOpiB)P~> +OT,I_[f?>Kli7+kf`CT,rs-P;;>pOpiB)P~> +OT,I_b5_I3p0[r+,;]1("(L-hnJ,~> +O8f^KV2h1~> +O8f^KV2h1~> +O8f=!s8Kn/?ijOW1\tJ]@CZF,PlD!=9MYE`s5c7k~> +O8f +O8f +O8f +O8f?Ms8Vium/R4h.fek!rs.XZ9^_r\kr!t~> +O8f?Ms8V`rm/R4h.fek!rs.XZ9^_r\kr!t~> +O8f?os8Vk)pL"&,.kCI("(?NVm?IVUj\/A9s8V@AJ,~> +O8f?Ms8W'Cli7(k!U5jK#O4uWjo>AG1Oo~> +O8f?Ms8W'Cli7(k!U5jK#O4uWjo>AG1Oo~> +O8f?os8W(@p0dnN!*f;-!b;AtPlD!U9MOXKs6V[o~> +O8f?Ms8W(1li7(f!9KIF#OkJ_g&M*?1Oo~> +O8f?Ms8W(1li7(f!9KIF#OkJ_g&M*?1Oo~> +O8f?os8W(dp0[qX,?t"P!auf)PlD!X:/0FAs6_ap~> +O8f?Qs8W(Tli7(f!9KIF#P1eebl@_21Oo~> +O8f?Qs8W(Tli7(f!9KIF#P1eebl@_21Oo~> +O8f@"s8W))p0[qX,?t"P!b!nHPlD![;,,:7s6_ap~> +O8f?ks8W)Ali7(f!9'.A#$"C.s8VREJ,~> +O8f?ks8W)Eli7(f!9'.A#$"C.s8VREJ,~> +O8f@*s8W)Wp0[qX**`8I!b"^[PQ(he9tC<(n25^~> +O8fC(rVuof"mZ-gh37jC?;.O%s7%mq~> +O8fC(rVuof"mZ-gh37jC?;.O%s7%mq~> +O8fC9rVuok@eX734<.T$?iaKfPQ(hn9WnEqnMPg~> +O8fC:mJm4b*:!S)]9E7!CJ:T)s7%mq~> +O8fC:mJm4b*:!S)]9E7!CJ:T)s7%mq~> +O8fCEo)JagEVEiB4;;#p?i\Z>rs!@7V>pSc21P~> +O8fCJ]Dqp1:[7u\FHc_/IS?41s7%ss~> +O8fCJ]Dqp1:$VcZFHc_/IS?41s7%ss~> +O8fCKe,TIIOS<,a6kil#?iZa]rs!pGRfEEX21P~> +O8f7KM>mMTL$J^=As<6!MG004s78*u~> +O8f7KM>mMTL$J^=As<6!MG004s78*u~> +O8f7KZi9t)WqTm&6jm5o?iZUYrs"HVOoPIQ21P~> +O8fC_=TAF#]B]FsAs<6!RS8G8s781"~> +O8fC_=TAF#]B]FsAs<6!RS8G8s781"~> +O8fC_Q2gm`e+[5O8deku?iZUYrs"ocL&_2E3Ih~> +NrK8;rVuob!pfme=HiahWD%U;s781"~> +NrK86rVuob!pfme=HiahWD%U;s781"~> +NrK9(rVuog@JF439FG)"?iZIUrs#JsHiO-;3Ih~> +NrK8;pAb0k%dX/q=-NXg\P-f=s781"~> +NrK86pAb0k%dX/q=-NXg\P-f=s781"~> +NrK9(p](9lC%u';:Batt?iZ%Irs$#-DZBb.3Ih~> +NrK8RbQ%VA488dU!VQKn:Qte_b"Q:Es78=&~> +NrK8Rci=%E488dU!VQKn9p>S]b"Q:Es78=&~> +NrK9@fQK"4+I~> +NrK8pR/d3cGkV1QJs78=&~> +NrK8pR/d3cGkV1QJs78=&~> +NrK9N])Vg0VtaX$=9;_%?iYtGrs%.M>5nQn4+I~> +NrK9-C&e54W9aKa7$IWTiCm2Ks7AC'~> +NrK9-C&e54W9aKa7$IWTiCm5Ls7AC'~> +NrK9\UAt8m`V +NrK-I/,oPLj8nWJ!&p,A#3efYr;ZCWJ,~> +NrK-I/,oPLj8nWJ!&p,A#3efYqZ$1UJ,~> +NrK-kHiF$GlXBTs!a#G)pg=)IPQ(jP9Mt`foL+3~> +NrK2\pAabQJ,~> +NrK2\pAabQJ,~> +NrK=+AblB+r+5\3!a#G)pg=)IPQ(jT9htH_oL+3~> +NrK=(!Ta:\r[[@9!%X95#4P>\oDeGSJ,~> +NrK=(!Ta:\r[[@9!%X95#4P>\oDeGSJ,~> +NrK=9@I*snrd4HK!a#G)pg=)DPQ(jV9hb0YoLXQ~> +NrK=:!3#qtrb:a"!$md.#4kSal2UBLJ,~> +NrK=:!3#qtrb:a"!$md.#4kSal2UBLJ,~> +NrK=E@)`0GrhB3r!a>Y,pg=):PQ(jY:/1$RoLsc~> +NrK=E!I4YErg```!!2fo!$%4thgiW&OFJ,~> +NrK=E!I4YErg```!!2fo!$%4tkhiW&OFJ,~> +NrK=L@&O&)rkeJ=!a>_.pg=);PQ(jZ +NrK=O!^$G^rn7&HrrMlp!#h%#"^=^Fs7B6?~> +NrK=O!^$G^rn7&HrrMlp!#h%#"^=^Fs7B9@~> +NrK=O@>4a]roEl_!a>_&pg=)6P5b\k:!EY0 +NrK@R#o!:;s7QZb!!![qrrlk+^Amh.J,~> +NrK@R#o!:;s7QZb!!![qrrlk+^Amh.J,~> +NrK@R@Vl#Cs7^(#?ijO9:\\;tAWm&s@SOT:oNHb~> +NW01r!q$$frZgh2!#(Oq"_gZ9s7BWJ~> +NW01r!q$$frZgh2!#(Oq"_gZ9s7BWJ~> +NW02o@IjHurcS'F!a?%+pg=)5P5b]#9XXom?@W~> +NW02.!5&:2r`JRg!"4ti"`[58s7BcN~> +NW02.!5&:2r`JRg!"4ti"`d;9s7BcN~> +NW02t@+5/Urg!=f!a?%)pg=)5P5b]+9WJ-b@Xn~> +NW02N!/^aUre^%C!=SF]rrqpK[K#l5J,~> +NW02N!/^aUre^%C!=SF]rrqpK[K#l5J,~> +NW032@'fn5rj2H/!a?%#pg=,6nWWtVnMR`SoP/m~> +NW02b!*K:$rl=F,!=SF\rrgY*V=\bX~> +NW02b!*K:$rl=F,!=SF\rrgY*V=\eY~> +NW03J@$Uclrn.'T!a?@,pg=,6nWNnTcS_QkEe"~> +NW06*!$(t;s7$3[!!*JtOoGO64,S$.~> +NW06*!$(t;s7$3[!!*JtOoGO64,S'/~> +NW06S?uc/Fs7Tq!?ijOH4SW:bAato_"4]JmEe"~> +NW06?!!W)rs8 +NW06?!!W)rs8 +NW06i?t/m1s8?d2?ijOP4SW:b@doKZ!oZ3uJ,~> +NW06^!!(4Bs8GRY!!30-n;mSMjYMD~> +NW06^!!(@Fs8GRY!!30-n;mSMjYMD~> +NW07&?sqsns8IfN?ijOP1\b>Y@doHY!Tc1h~> +NW07(!!&Dds8I`A!!30)n;dMKnUL~> +NW07(!!&Dds8I`A!!30)n;dMKnUL~> +NW079?spSGs8K%q?ijOW1\b>Y@doEX!:bR~> +NW07:!!$a5s8KIr!!33*n;[Hu~> +NW07:!!$a5s8KIr!!33*n;[Hu~> +NW07@?so`/s8L1 +NW0+A!<=YLrrMBcnGrRj!:GjHJ,~> +NW0+A!<=YLrrMBcnGrRj!:GjHJ,~> +NW0+H?sn?\rrMLqr*TS1.kCF's'YoqNW4M~> +NW0:P!WWW(s8W!,nGiUo!UbsIJ,~> +NW0:P!WWW(s8Vp*nGiUo!UbsIJ,~> +NW0:P@:3[Bs8W"2qdBFS!*f;-!b,R*NW4M~> +NW0:R#lk"es8W'Un,NIilAbgo~> +NW0:R#lk"es8W'Un,NIilAbgo~> +NW0:R@UNX1s8W(LqdBFS!*f5+!:>dGJ,~> +N;j+r!!&tts8I94!!*,bNW4M~> +N;j+r!!&tts8I94!!*,bNW4M~> +N;j,o?sptRs8Jqn?ii,/>PMS+lAbgo~> +N;j,.!!%9Ds8Jtd!!*,]NW4M~> +N;j,.!!%9Ds8Jtd!!*,]NW4M~> +N;j,t?soo4s8L"7?ii,/>PMS+l](pp~> +N;j,N!!#+\s8M!H!!*,]NW4M~> +N;j,N!!#+\s8M!H!!*,]NW4M~> +N;j-2?sn]gs8M0X?ii,(>PMS+l](pp~> +N;j/c!!!]2s8Vm!n,NILNW4M~> +N;j/c!!!]2s8Vm!n,NILNW4M~> +N;j0K?smgLs8Vn*r*TRg**`2G!:,XEJ,~> +N;j0*!!!)fs8W'Kn,NILNW4M~> +N;j0*!!!)fs8W'Kn,NILNW4M~> +N;j0S?smF6s8W(Fr*TRg'O1??!:,XEJ,~> +N;im7rW!)5s8W(4n,NILNW4M~> +N;im7rW!)5s8W(4n,NILNW4M~> +N;imara5lXs8W(mr*TRo'O1??!:,XEJ,~> +N;imVrW!(Xs8W(cn,NIINW4M~> +N;imVrW!(Xs8W(cn,NIINW4M~> +N;imsra5l8s8W)0r*TRu$X +N;imirW!('s8W)An,NIANW4M~> +N;imirW!('s8W)En,NIANW4M~> +N;in,ra5kos8W)Wr*TRu$XJ,~> +N;in2rW!*ArVuok"n;QmdZ+9W~> +N;in2rW!*ArVuok"n;QmdZ+9W~> +N;in8ra5nLrVuol@f9[9:((;$?i]#Bs*t~> +N;j4F!<<*'pAb0k*:X"/bDlOP~> +N;j4F!<<*'pAb0k*:X"/c].sT~> +N;inDra5n=p](9lEW'8H:Batt?i]/Fs*t~> +N;iqD!r`0&df9@H=T&7"!VZQoa,U+L~> +N;iqD!r`0&df9@H=T&7"!VZQoa,U+L~> +N;iqG@K'X;h>dNSQ2P(l:]akr?i\i=s*t~> +OoGFOrVlof#Q=]+R/d3cM>R>R!VZQo]8ci@~> +OoGFOrVlof#Q=]+R/d3cM>R>R!VZQo]8ci@~> +OoGFOrVlof@fBa<])Vg0Zi+85=9;_%?i\Z8s*t~> +PQ(aMY$'`^rr<`3!!I$9s8KY#!!'Wjs*t~> +PQ(aMY$'`^rr<`3!!I$9s8KY#!!'Wjs*t~> +PQ(aPY$0f_rr?X0?j*5(s8LLG?ijF1>PMS+duFBX~> +Q2_'RIL7<3!87AO!$(t +Q2_'RIL7<3!87AO!$(t +Q2_'UIL7?4!87AO!,MRA!.4_F!V0[u?ijF1=SQ8(duFBX~> +QN%?/)_i"ks*6Qns8P%W!!Nc+s8W$2nc/ZuNW4M~> +QN%?/)_i"ks*6Qns8P%W!!Nc+s8W$2nc/ZuNW4M~> +QN%?/)_r(ls*Hcrs8RBD?j1-;s8W%6ra5e0!*K#(!6U<$J,~> +R/[WbFTIctXps[a)k-g,=8i1'!Ta:\r^cS[!2tnWJ,~> +R/[WbFTIctXps[a)k-g,=8i1'!Ta:\r^cS[!2tnWJ,~> +R/[WbFTRiuXpsdd)k-g,M>gld@I*snreLJ\!a#G)pg=*@NW4M~> +RK!cI2`9Fks7&d&s0W3us(VE3"K;A#rcmu6!1]&KJ,~> +RK!cI2`9Fks7&d's0W3us(VE3"K;A#rcmu6!1]&KJ,~> +RK!cI3AoXms7&d's0W4!s.]I""NCE@rhoa'!a>Y,pg=*=NW4M~> +Rf +Rf +Rf_.pg=*=NW4M~> +S,WQK!3,hp#'E?(h#Q-,r;ZgZrr3#[!W;uu!VcWpS;mQ!~> +S,WQK!3,hp#'E?(h#Q-,r;ZgZrr3#[!W;uu!VcWpS;mQ!~> +S,WQK!35nq#'E?(h#Q-IrEoVZrr32g@:3JI"]4u%!5a`qJ,~> +SGrZ:!06mT#4<.2s)C`Qr;[!7rVuoq$hF>uR#V,r~> +SGrZ:!06mT#4<.2s)LfRr;[!7rVuoo$hF>uR#V,r~> +SGrZ:!06mT#4<.2s)LfcrEotKrVuoqARJnM"]+o$!4n0iJ,~> +Sc8cQ"ekbl#k;a3!/g"JZ3("*"Tn)ks8FnI!!%k8s*t~> +Sc8cQ"ekbl#k;a3!/g"JZ3("*"Tn)ks8FnI!!%k8s*t~> +Sc8cQ"ekbl#k;a3!/g%K[:0&B$=WN*s8IRW?s="4pg=*.NW4M~> +Sc8bf/+NN:!rf/4rW!')o9CP4r;Zu4s8W(4o)Jc8NW4M~> +Sc8bf/+NN:!rf/4rW!')o9CP4r;Zu4s8W(4o)Jc8NW4M~> +Sc8bf/+NN:!rf25rW!')o9CShrEor\s8W(m?sm1H9))coViC_,~> +Sc8cM!9*kU!Td>Y!!HNq.tS0.!!J/Ys8JP[!!%8's*t~> +Sc8cM!9*kU!Td>Y!!HNq.tS0.!!J/Ys8JP[!!%8's*t~> +Sc8cM!9*kU!Td>Y!!HTs.tV@3?jX1>s8KlC?s=",pg=*"NW4M~> +SGrY->_?G2`!!HF(s8L^C!!%8's*t~> +SGrY->_?G2`!!HF(s8L^C!!%8's*t~> +SGrY-B`W`:>?jW+us8M(e?s==5pg=*"NW4M~> +SGrfX$FTp6bR4+F$jH-,@NtjQ*<#p;p]g?j!-F5#J,~> +SGrfX$FTp6bR4+F$jH-,@NtjQ*<#p;o`k$g!-F5#J,~> +SGrfY$FTp6bR4+F&-_Q0@Wc'dEW,q;pgdc:'Kl.u!1f,LJ,~> +S,WV[)t)Adp](a(!06.AQN.!hpAb0l,P1s9ArZh@~> +S,WV[)t)Adp](a(!06.AQN.!hpAb0l,P1s9ArZh@~> +S,WV[)t)Adp](m,!06.BVdNnAp](9mF^SDn4SW:aR>q5s~> +S,WT\6tm>0!"K#K0mWeN2,=2Pdf9@HB(Q''ArZh@~> +S,WT\6tm>0!"K#K0mWeN2,+&Ndf9@HB(Q''ArZh@~> +S,WT\6u!\9!"o;O140%Q23;3Rh>dNSR:'5D1\b>XR>q5s~> +Rf +Rf +Rf +Rf +Rf +RfXM2hOc~> +RK!7+qZ%*,2s();OU;'g,Oe9E'.a(^!V$?d!!#QLs*t~> +RK!7+qZ%*,2s()9OU;'g,Oe9F'.a(^!V$?d!!#QLs*t~> +RK!7+qZ%*,3T^;=OU;'g,k+BGCjZ0]"SQ;/.kCC&!/HR6J,~> +RK!mLY!G;<1eMI+'$'*[=Ka[hYs8 +RK!mLY!G;<1eMI+'$'*[=Ka[bWs8 +RK!mLY!G;<1eM[7)%?B*AWb),.s8?qF.k=j"?iYtAs*t~> +R/[KS"TSN'IfKG:$Msf0$M8=52<=f;r_N1e!(`+LJ,~> +R/[KS"TSN'IfKG:$Msf0$M8@62<=f;r_<%c!(`+LJ,~> +R/[KS"TSN'IfKG:$Msf4$M8@6Ja<@9rfCM<.pMgW!/HR6J,~> +Qi@;E!!.]Os*4Y@!!G7G$C%Lgrr@cG!!#EHs*t~> +Qi@;E!!.]Os*4Y@!!G7G$C%Lgrr@cG!!#EHs*t~> +Qi@;E!!.]Os*FhC!!G=L$Co*7rrf?01F$-"?iYV7s*t~> +QN%'g"m,c0p&G?BPp<7-s8KY'!!"s;s*t~> +QN%'g"m,c0p&G?BPp<7-s8KY'!!"s;s*t~> +QN%'g"m,c2p&GKFPpF?Ks8LJT1F$-"?iYJ3s*t~> +QN%&9@TdF>!<3'%\aV>*rr3#d!qlTo.ujRZ~> +QN%&9@TdF>!<3'%\aV>*rr3#d!qlTo.ujRZ~> +QN%&9@TmO@!<3'%\aVA+rr3,l@6>N6q-X2ENW4M~> +Q2^pM"TeE!rrEI5Jg9d%"m,dar=8N$!&9K5J,~> +Q2^pM"TeE!rrEI5Jg9d%"m,dar=8N$!%a-0J,~> +Q2^pN"TeE!rrER8JgBj*"m,darFnA6>PVY,F,g3M~> +Q2^lf!Vl^)!?8A!p8r]BfR!%a-0J,~> +Q2^lf!Vl^)!?8A!p8r]BfR!%a-0J,~> +Q2^lf!Vl^,!?8PVY,CQ8@E~> +PlCd$!W2rt!=`3(s8So/!+Omfci +PlCd$!W2rt!=`3(s8So/!+Omfci +PlCd(!W2rt!>&H,s8So/!+Omfci=!B6kil$?iXu%s*t~> +PQ(W"r;ciu"H*6Zh,F:Q"p)kq47W +PQ(W"r;ciu"H*6Zh,O@R"p)kq47W +PQ(W"r;[$&!fI$Xh,XFS#m&1t47W +PQ)!c'*&"5%D)T>Pm[Eh"Y9!SV>oWM!!*c2NrOV~> +PQ)!c'*&"5%D)T>Pm[Eh"Y9!SV>oWM!!*c0NrOV~> +PQ)!c'*&"5%D;`@Pm[Eh#V5ojT$X +P5bcl!<=(ps6aLp!!Sgf'CPZ(pAb13NW4M~> +P5bcl!<=(ps6aLp!!Sgf'CPZ%pAb13NW4M~> +P5bcl!<=(ps6aLp!!esh'CP[!"^Ce1!+q5jJ,~> +OoGUH!N#hB)u'C:%I#s'rZq4 +OoGUH!N#hB)u'C:%I#s'rZq4 +OoGUH!i>qC)u'C<%I-$(rb;U@q-X27NW4M~> +OT,EV'>=qL!!R5`!TdA`p](=.nW*X"~> +OT,EV'>=qL!!R5`!TdA`p](=.nW*X"~> +OT,EV'>=qL!![;a!p,7?>PVY-Aatf\J,~> +OT,CP<<`-trrE +OT,CP<<`-trrE +OT,CP<<`-t#lt)X@e!o:VZL*!?ijbGmZ. +O8f3&p](R#'?9,;_;t^3pAb3pmZ. +O8f3&p](R#'?9,;_;t^3pAb3pmZ. +O8f3&p](X%'?T>>_;ta4!*K#(!:GmIJ,~> +O8f7Z)uBX8!= +O8f7Z)uBX8!= +O8f7Z)uBX8!=EH#s8Rs,n:EMp=SQ8(fT,u^~> +NrK-r!W +NrK-r!W +NrK-r!W +NW/umrW!!#)peE]"nppRYmkgM!!*8fO8j_~> +NW/umrW!!#)peE]"nppRYmkgM!!*5eO8j_~> +NW/unrW!!#)peE]"o%!SYmm9!?iaU!O8j_~> +NW01X'*&&$nb<%cnP!pBp](=_rfI/1~> +NW01X'*&&$nb<%cnP!sCp](=_rfI/1~> +NW01X'*&&$nb<%cnP!tCpg=,NrfI/1~> +N;j!_!!2'OrrUjRL%bQJ7/`8JJ,~> +N;j!_!!2'OrrUjRL%bQJ7/`8JJ,~> +N;j!_!!;-PrrUjRWqTm%IJo<.J,~> +N;j!l/-WTVrrR162tm:Q,iOpdJ,~> +N;j!l/-WTVrrR472tm:Q+5rC_J,~> +N;j"/2[-barrR47H1t\IBBGBWJ,~> +NrK=]=9&_d'C,8j"6g/W!quZq"bi0?J,~> +NrK=[=9&_d'C,8j"6g/W!quZq"GN'>J,~> +NrK=]Q!e0_'CGJm"6p5`@J=.1?E04hJ,~> +O8f6m'E.t56r@RgrrSH1B(Z-),fc2MJ,~> +O8f6m'E.t56r@RgrrSH1B(Z-)+30ZHJ,~> +O8f70Ac?'=I8OVKrrSH2RIsqgB@rLLJ,~> +OoGI[B);Q0KaP*]rs85Bl2UeQ0nKf*!!,LHQiDR~> +OoGIYB);Q0KaP*]rs85Bl2UeQ0nKf*!!,LHQiDR~> +OoGI[RJU@nWX?$-rs85BlMpnR14j*0?ib] +P5bQk'D_\2#)O#Yqu6q2!#+f#s2"qao)JgmB'PfaJ,~> +P5bQk'D_\2#)O#Yqu6q2!#+f#s2"qao)JgmB'PfaJ,~> +P5bR*Abod:A +PQ(X!pAb7V;/-"/$gAl9l>[9ds7'6+*:a(2"a'1%s*t~> +PQ(X!pAb7V;/-"/$gAl9l>d?es7'6+*:a(2"Ea($s*t~> +PQ(X!pL"&V;/6(0$gJu;m;`Zhs7'9-EUmK=?CgMRs*t~> +Q2^pQB`[o-!egfgrr3Af!9sNt\HUO`i;e`(!!3I\rLNt=~> +Q2^lqC%VH-Ka#$drsRogl2SK."kEY3!/^1F!XXSZSc=3~> +Q2^p,C0pUA!icF7rr3Af!:'Tu\HUO`i;g4R?ijf;rLNt=~> +Qi@3\gt63Pp&G^5MA,7Ss6p3B`W-"h-gq"S90;SB!Y^FhTDsE~> +Qi@3F2?5KGp&G^5MA,7Ss6p3B`W-"h-gq"T90;SB!Y^FhTDsE~> +Qi@3M?SbYtp0\MEN>(UWs6p3B`W-"h.IR4V9ni%D!bJ_:TDsE~> +R/[?Ub1PA2/+ilT4'Q1is7'g.!0I8(Q!=:R%?pq^!!3Oqrh9@B~> +R/[>S#64dE/+ilT4'Q1is7'g.!0I8(Q!=:R%?pq^!!3Oqrh9@B~> +R/[>e3AWLOHhCbZKjA0`s7'j/!0I8(Q!OFW%@gkp?ijoNrh9@B~> +Rf +RfpSG%HRR?q=#VOs-am=li7'b[\EeP~> +RfpSG%HRR?q=#YPs-amplsKk5b+eod~> +S,WNBf)4/$jD"5d&du#GZ17?aL!oV_K' +S,WNB!W +S,WNB2#T331ioD`?kR%a!3u(a +Sc8c\H"$R%!/9tD&>9G+fuaZimK!;jcN(u/%>F3M"s!UAs6;>NVZ2/~> +Sc8c\GnBlR!Wad)nc05p$;T9s$L[<_!*RVJ`lnmGmJmG2rVuo_/A%eZJ,~> +Sc8c\HP-03!]3lVnmE$&$;T9s$L[<`!*[\K`lnmlmU-6=rVuobF47#dJ,~> +T)So/,<+rcfE']nnc04/M/<9=/"rX:RK2$$'@daemJmLnjT#8Y)uqP +T)Sr0,<(hfr;Zm#(RXan&.=>3!I62hT`CM]fo?`r'1hNk#Qa#ds8 +T)Sr0,WV_YrA+L47_8.u&7r1b!dcGkT`CM]fo?`r'8Q!`#\!'!s8?qFCYbrhJ,~> +T`52\D#o[do_[8Af=(/K&0.'[PnWbc!9O7G[?ZcOW$D9A!$(S1$(1bmrceDC!CYV@s*t~> +T`55]D#o[dh?!NS!=?4(!"^-;Fd3X3V#]WWlEun;WMh'@!!"#1!!J\hs8I9B!!,L@WrIS~> +T`55`D$#aejYZlk!BSBm?k@=hFd3X3V#]WWmBr4>Wl9,[?iY3 +UAkJgYnL!ns8VljfDsUm!##j>/!]qpp44pAq^CjY&s:9"Af'trk&+/!WbjNXT*e~> +UAkMhYnL!ns8V`nqu?a!b3f6C%]1bAq<@U)$4Spc,6;D1"^%pLoDf"gs8W)1qu?agiN3'0~> +UAkMhYnL!ns8VjOr%e@2h!SP`Bt5aZq +U]1JY=UM"qrr3#sfDF2#g$JbF!M^=rs+2uJnG_q_h-LQ-0`W_\o`,.*r;Zfj#5eH&!DhCOs*t~> +U]1JY=UM"qrr3#q$2ac(!Qsd0#Q^\6mf.knb4,E##Mi\q_D)$@M=giP%f65*p'1Ep!Wc$KY5a"~> +U]1JY=ph+rrr3#s3rCc71u.J+#[s_Hmf.kob4,E##Mi\q`\INEZh7]0C&J#2pLO//!KcBFs*t~> +V>g\fM?.GUr;QfsgABM'm0;qX"aDQ';ZZCbrs/.l)]QWoIKoHF"PNhTr]BrV!WlH^YlB4~> +V>g\fM?.GUr;Qfs(]477!P&F%!!RTtZ;^koqu6omV&LAj!.G.F!!M!Ts8G+V!!34'iNW?4~> +V>g\fM?7PXr;Qfs7f5%D1rs4p?j3GY[8d:tqu6omV&LAn!.JJO?j,Qjs8I`K?ijbnk-4l9~> +VZ-bC0djj6rrCjOfE(@Lm/R8&_3H87rr3>pmf2BX"b)=/!LWKZ!/^^T!/^IN!WcotZN#F~> +VZ-bC0djj6rr=tT!!31b%da6!'>]qYnG`FpnF$><@Kh4>~> +VZ-bC1+C6=rr?F(1BKD3C$f:2Cr)A^nG`FpnF$><@Kh4 +W;d"gE<1[\q#:?Tqq(r8,OGI5!oYB'rr3>B'*2;E>I?=5Y&s78"?ZV_s4R)G!X3<&[/YX~> +W;d"gEWLd]q#:=jqu?d!PU#Pq!s7F+WW)o)_@lrS$ +W;d"gEWLd]q#:>8r%eC2VKM96"(C=;WrE#*`Y/AY$=1%s,d*^0?j)2_s8V0R?ijZ/lEpSA~> +WW*(2)arNUrrD<\fE(4uli7U6%IjDt\H&)B!/c@.I[tTho)Jpuq#CBm'D2>,"a'% +WW*(2)arNUrr@':!!31@46uqY_@?#7s1&,ubQ*NP!.LJ]$hF?%#5/#rr=ei(!X*W1[f:j~> +WW*(2)arNUrrA&V1BKCmL$W1Y`XVG;s1&,ubQ*NP!.LJ]Ab0:5AGH3)rG;.7!a_Gb[f:j~> +X8`=eAd+Xnp&>$Xqq(r1=R?)#!MqUBs6qass8UmT[GCk?;\S^%"NUQBrata%!XEuJ\Gq'~> +X8`=eAd+Xnp&>#Vqu?d!:g!)b&HS^anc/)5L&_2/!4CY_MGt8[!!L@Bs8HX%!!3CMqRHQU~> +X8`=fAd+Xnp&>#hr%eC2F-Z-#&RhLnnc/)6L&_2/!4CY_NE'Q\?j,-^s8JGX?ijf8r4)cW~> +XT&C-'34/crrDH`fE'cPli7Td2t?FL)m95@mJtT5s-c=qnc/f;s8W(snGiUsM>b$cJ,~> +XT&C-'34/crrA8\!!30ZGjGDARlBm-\f7gPs6]m5s8SNU*:a(4GlRgCW:9ih$&SVls*t~> +XT&C-'34/crrB"q1BKC?VsIe&SN661]Gn$Rs6]m5s8SNUC[tj9VuQer`UR=;@^H$Es*t~> +Y5\Xh@LAh!o)A^^qq(r'MO +Y5\Xh@LAh!o)A^6qu?d"(Q%JY&=b-$;%nBYea>4,jo>@'AfC4?"Y9TPs7$3\!!3h(rk/8]~> +Y5\Xi@LAh!o)A^?r%eC37^MGh&?@85;%nBYea>:.jo>@'AnLUA"ag7Ks7Tpk?ijoVrk/8]~> +YQ"^4'3XGdrrD]gfE'U&m/RJTW-JD\W?[N*!$hLC"7[V=%e9T'"7cEkr[[C:!ZJ$:^Ai]~> +YQ"^4'3XGdrrCpQ!!*D)m/RJTW-JD\W?[N*!$hLC"7[V=%e9T'"7cEkr[[C:!ZJ$:^Ai]~> +YQ"^4'3aMerrD0X1BBPUm9g9T`HqW&W[*],!$qRD"7[Y>C%>X8@eTj%rd4'@!bTFN^Ai]~> +Z2XspD$?L#n,EC_qq(r&a6`j6eGoTW@Khnajk]G*rr])2SK./""K;A#rcmc0!?.oOs*t~> +Z2XspD$?L#n,EF]!rN$!"NTm0$Io+V[:0<%n`ATrrr3(s':g-5!!K8#s8I90!!+":^]/f~> +Z2XspD$?L#n,EF`2>f622V@D)$Io+V[:0<%n`ATrrr3(s)kCd7?j+IKs8Jq_?ialY^]/f~> +ZMt$@)bK#UrrN&Lqq(o%mJmHY!4Cbh?KM%`"JH!m'8>rV!,;H4!6aX-!?/Sds*t~> +ZMt$@)bK#UrrMs&qu?`ub3f66QiOPQ"^^f#~> +ZMt$@)bK#UrrN$Yr%e@1h!SPS\cB.s"^^f#~> +[/U9uD$?3pm/I+cgABM'm02qY#Zj(f!(9h0md^;V#OnDemf-m.*:a(5*<#p;q$ZEe!A):/s*t~> +[/U9uD$?3pm/I+c(]477!P&C&!!lXf!!#DeFmef!rs/%e!:Kl!@N=q="W[L@s7m&e!!+Xk_uG5~> +[/U9uD$?3pm/I+c7f5%D1rs.p?jMTN!!#DeFmef!rs/%e!:Kl!@VbOB"`aM@s7p6j?ib&q_uG5~> +[Jp?j4$2Ecs8(@Km0i=^':a'Ss5cWUBo7pn)]Q'^s5 +[Jp?j4$2Ecrr=PH!!31b$gn!.S8u7Aj[9GiMN2fu)mTGCi;f2Fo)JppjT#8Z:$2KW1WRK7J,~> +[Jp?j4$2Ecrr?$r1BKD3AaWq>_K+-*j[9GjMN2fu)mTGCi;fcao3_`1li7"aOQU!PCtQ`,J,~> +[f6Hk'5R+$rrD-WfE(:Xm/Rh1$iL%o`c5!UB"@@0c]8$;As@NDoDf#]s8W(cjo>JDM9![:J,~> +[f6Hk'5R+$rr>mn!!31c*:3_?%L`.5nA]KK;.dB,s3H`*AnI9P"nVctR/d3cR-"AMjGCpts*t~> +[f6Hk'5m='rr@-<1BKD1EU@-JBk@5BnA]KK;.dB,s3H`*AnIR2@e=%2])Vg0]&mB%la,6as*t~> +\,QO')hR5P!9sC5!U2K.!##Cos8W(@Ibcf&s4mYTV;2-3)lE6-!*K7#!TX:F!!S5Ys7&%rao?k~> +\,QO')hR5P!-.o:!Wd9uli7\"jT#8ZFai.&FoU7t!2\KONZ4kf!!$.#rrM0]kPtdCrr;LId`MN>~> +\,QO()hR5P!0-n4!]5mflsLK8li7"aFai.(FoU7t!2\KONZ5P$?iZJkrrMFok[4S#rr;\;h9#\I~> +\,QNk!:K"L!:0O7!T[AK!#2C3s6s$Gs4n$mD#eDQj^r;%!4)n'!!Nl1s8W$;kPti +\,QNk!:K"L!0mB]!Wc,"lMqWts8VRgMZ;K>\SV=`!9Ig.T`DD'p&G7+qZ$To*9[A-/,oSKj8qm2 +bQ!(~> +\,QNk!:K"L!2fZM!]4t`lX1FGs8VRgMZ;K>\SV=`!9Ig1T`Dc:p0\&S2 +bQ!(~> +\,QNk!Uf+M!:B[9!Shqc!#0\Xs8?D2nc--#j]_`\p +\,QNk!Uf+M!0d<\!Wb3(lMqWDs8W%,>Oha(!TdMcq=`, +\,QNk!q,4N!3#fO!]48^lX1F)s8W%,?1Is*!TdSeq=i2=m@a]`oj@p`s8W(mk[4^*li7"aJRDlB +k0 +\,QNk!Uf+M!:B[9!SWCr!!#Rhrt4?"\c;\`)s-Ab +\,QNk!Uf+M!4i"-!Wa*olMpoUrr3Sl$G$3:KcB.=s&Hm'IfF+W8G3#dM?!VT[c[VnL&_2PR/R'e +!EeF/s*t~> +\,QNk!q,4N!6G'o!]3BQlX0^Jrr3Sl$G$3:KcB.@s&Hm'IfF.XL\>*YZiC()b3*.8WrN+u])?"; +Q0ZcrJ,~> +\,QNk!Uf+M!;-0@!S>aX%!!'_BmckIB#58*$49#9[p'0^\"XF!Gs7$9k +!!3=GlI#W^~> +\,QNk!Uf+M!8dSQ!=>:^!#?7Hs8W(U,Oka5>>aX%!!'_BmckIB#58*$49#9[p'0^\"XF!Gs7$9k +!!3:FlI#W^~> +\,QNk!q,4N!9O)6!BS*`?l!SWs8W(X,k1j6>uBm(!!'_Bmd1[RAG9I8L&V,PpLNJq"a0eDs7Tq# +?ijZ*mEtra~> +\,QNk!Uf+M!;QHD!SP*W!!!9"!#>Y+s8W(T1P5Z,mO+h?6i_KeWW041L%bQN#5J5ur\`m>"Td +\,QNk!Uf+M!VHNl!!*57oDejrq#D03nc/XgM)0b`s6_82%7C2A0rb2X$AJ3S"U=Z"s8Fn>!!NDV +s8W'hqZ$[#FR%?TJ,~> +\,QNk!q,4N!VePM1BBD_oO%Z.q-XtHpAb0lZSd@7s6_>4%7C2C191AZ$EEi."_@E.s8IT5?j1!" +s8W(Rqd9J3SaFo+J,~> +\,QNk!Uf+M!W:RHfDsV#!!WH(!$mrb!Vl^2a8c2=M3e8%s8Um^kmEINEFSG;Bhh4n!!L@Bs8Il< +!!IQHs8Jtm!!3I\n^[Yi~> +\,QNk!Uf+M!W!-#!!*/Dq#CU"!!"+.f`CmK( +\,QNk!q,4N!W5"V1BBAgp0[r7]&39j(>/Zerj/L(iW&r6$L.tYs)MT +\,QNk!Uf+M!WLgMfE(@Aq>^^$8B_&5rY,)-(Q&1lrlZNu>Ohan_$.+;s%+s1s6:PU$hs]%GlI^C +g#i>=*<#p;p'19l! +\,QNk!Uf+M!WEo5!!323"8W!%!_CZ;s8E]-!#LLls8L=hAm=g*s1nlDpA[]=lMp,gK+%GS!-nMC +!86N8"W[L@s7QZl!!*7Wf)L7~> +\,QNk!q,4N!WGRd1BKDS@esI:@>EhAs8HU*?l-0Ls8Lu"AmOs,s1nlDp]!f?mJlPmMe2Zk!2ohr +!9E +\,QNk!Uf(LqUbi9$iBu+'6rd>rr>Uc!!$.#rrhioGQkq_rrqZfEA8-krr3&6!JU:K"Y9TPs83Pn +!!M!Ts8H-o!!#gHs*t~> +\,QNk!Uf(L!%RmH!Wfh>qu?d3Gj5/+!(cnc!*K7#"RuS="i:3<"mQ).0b`gNrrTn8L%kWO/,oSK +q@i#l"PNhTr`Jjo!);)FJ,~> +\,QNk!q,1M!*&kP!]7u0r*TS;Vs=3[!/LAX!1!Q`"SQ<&"i:3<"ml;11)&sPrrTn9Wq]s*HiF'F +r+tP("Q]U_rg!1b!0Gh4J,~> +\,QNk!Uf(L!9F%0#O<$'!!+g_rqcWpM>7,X,Q@`Cr>Z2s/+EQ<"5QOToDJUiEC +\,QNk!Uf(L!)WRn#Q^/'!!!$N[f6.'!/^LO#p]HLs8 +\,QNk!q,1M!-A&o!]6cjra5eKb5V8;!42K/$$H7Is8?qKJh-?irr_(K?M"*p!cg\jq-XA8pAb0l +Q02NXVuQerb4T-B_V"m=~> +\,QNk!Uf(L!9sC5"I];oB%cqY!7LZC#mU,'s8GdoF +\,QNk!Uf(L!-.o:"T]MA"_QH^rrCLC!!rl's8W'm!-BHNrVlofnb`=gmN[;hq#CQ+s8W(sk5YZ* +rVuon%e]l&R+VFh~> +\,QNk!q,1M!0-n4"Z0!T@Z0=ArrCmN?jUB +\,QNk!Uf(L!9sC5!jq(Wp&>'\#Pe?+g&M*OK`G_q$L.6`#0$ZN)uos>r;Zh3rr3#d"6TXebQ%VA +C%_N,7+hNi~> +\,QNk!Uf(L!-.u<"T\T'/*63lrrMNmq#C`Ss8W(P!+rbKl1P&\`W6Dd!!!&u!!$a4rrMKhk5YY2 +s8W(4p&G(\f`-I~> +\,QNk!q,1M!0-t6"Z/"k;s!H?rrMOsq-XNis8W(u@%"P4lLk/Z`W6E^qHs;trr3#i@cq,%iW&rW +U@qspIG"RM~> +\,QNk!Uf(L!:0X:!nPflnc&SJq#C_ks8W)1!3#EbEVBD;o6pZ>d`4l[r;[!@rVuos/*?m4GlI^C +a7]K8'CG2Qg])d~> +\,QNk!Uf(L!0mH_!Wc9Enc&SJq#C_ks8W)1!3#EbEq]Md`4l[r;[!@rVuos/*?m4GlI^C +a7]K8'=kZ +\,QNk!q,1M!2f`O!]4iGnc&T7q-XNGs8W)I@)_Y5Eq]Mdb'=`rEoeKrVuosHfnc:VuH\r +f_/\TA]Vrig])d~> +\,QNk!Uf.N#4Sd-fZM\.n,EB4q#CD/rr32i!oa18!872J!r\AnrW!BHrVti5)?9a=jT#8ZGio&1 +'E%n1r=er+"T\TD*F\$as*t~> +\,QNk!Uf.N#4ScN!!d6'n,EB4q#CD/rr32i!oa18!872J!r\AnrW!BHrVti5)?9a=jT#8ZGio&1 +'Dhb/r=ef'!>&)_s*t~> +\,QNk!q,7O#4Scp1HC?[n,EBcq-X2srr32n@HRUG!872J!r\AnrW!BHrVu#dAmf"Tli7"aVrqFk +D#F>5rG;7:"^Y:2!"j;-s*t~> +\,QNk!Uf7Q#P$o)',uhrnEp5Ua8#]82?*UVr?M=A"Ed<#K"Cs]!rf/DqZ$V5rVlu?,nrW("$ +!!L@Bs8I9 +\,QNk!Uf7Q#P$o)',uh>nEp5Ua8#]82?*UVr?M=A"Ed<#K"Cs]!rf/DqZ$V5rVlu? +\,QNk!q,@R#P$o)',uhMnEp5Uf_JnTJc>ZMrH8,>"Ed<$K"V*_!rf2FqZ$V5rVluPM-e'urW(U5 +?j,-^s8Jqk?j9qA2@0?`NSXVb~> +\,QNk!:K4R#4]i?!)0unlMgna$i0i,$iL&)rl>$<#jMl(_$/s#\hj-^! +\,QNk!:K4R#4]i?!)0unlMgna$i0i,$i9o'rl>$<#jMl(_$/s#\hj-^! +\,QNk!:K4R#4]iA!)1&plMgnaAbod +\,QNk!6Xa0#4@p1$?>%pkPkNrq>^["jT#8Za8Q#ATc`!~> +\,QNk!6Xa0#4@p1$?G+qkPkNrq>^["jT#8Za8Q#ATc +\,QNk!6Xa0#4@p1$?G+qkPkOVqHsJ8li7"af_tgRTc`!~> +\,QR"!!'Ftrs&#LE=+4emc=BJa8#]<[f??olM^_bnN2#Jo`,$o!+u$+"8nZ>!U'Ld]Dqp1L%kWJ +"9.Wf!8---J,~> +\,QR"!!'Ftrs&#LEXF=fmc=BJa8#]<[f??olM^_bnN2#Jo`,$o!+u$+"8\N +\,QR"!!'Ftrs&#LEXF=fmc=BJf_JnXb5_J3mJ[%enN2)Lo`,$o!+u$+!rToWk?nGAs8W(upg=)$ +rWrT*<8IS)~> +\,QTq!':4ap&>6c\Ocg.bjj]m!WF)8!!@KGrjM_("4@2*%JKi*!>B<#nFlk`fk(QU!!R!6s8V-] +q#CR!@:9.EmG7em~> +\,QTq!':4ap&>6c\Ocg.bjj]m!WF)8!!@KGrjM_("4@2*%JKi*!>B<#nFlk`fk(QU!!R!6s8V-] +q#CR!&.egQPMQ7h~> +\,QTr!':4ap&>6c\Ocg.bjj]m!WHm2?j!>,rlY-<"4@2*%JKi*!?5l+nFlk`jI'KB?j2tts8VCn +q-XA&&J5!TW87K(~> +\,QWS'AWWh\bZ71n`boM'8#?9hu<\5q>^Ugrr'J*rrR%9ZM=M#!^Ko2>I4T/n&1kq:u"#~> +\,QWS'AWWh\bZ71n`boM'8#?9hu<\5q>^Ugrr'J*rrR%:ZM=M#!^Ko2>I4T":u+Mq:u"#~> +\,QWS)r1Jq\bZ71n`kuN'8#?9hu<\_qHsD\rr(=BrrR%;[J9e,! +\,QYp9YqI3!2]Vn#4^,R!CX3^h#@EK#Q"K'2?*.EqYpZ^$Fs%3!<3'#)nu=O!lb5do)Ad>=9\*m +"Le@1re^FN!a>6ggAc[~> +\,QYp9YqI3!2]Vn#4^,R!CX3^h#@EK#Q"K'2?*.EqYpZ^$Fs%3!<3'#)nu=O!lb5do)Ad>=9\*m +"Le@1re^FN!a=I;gAc[~> +\,QYp9Z@a7!2]Vn#4^,R!^s<_h#@EL@f'O8Jc>BAqYpZ_$Fs%3!<3'#)nu=O!m(Ggo)AdIQ"'/h +"NpcErj2E.!dj%jgAc[~> +\Gm02ApL47n[S[_s8VM`2$IjMn_*pBL%t]K=SVn'OX&fg!!!$#':&CmrrfS?!!&kcrrVnN*:Nq3 +=T8@#m0!1b!4LP[J,~> +\Gm02ApL47n[S[_s8VM`2$IjMn_*pBL%t]K=SVn'OX&fg!!!$#':&CmrrfS?!!&kcrrVnN*:Nq3 +=T8@#m0!1b!4LP[J,~> +\Gm02Ap^@9n[S^`s8VM`2$IjMn_*pBWqg$&Q2(@dOX/lh!!!$#':&CmrrfS?!!&kcrrVr$C[b^8 +Q2^g`nm_H'!6WsoJ,~> +\Gm'//$X52nc-`=Tm7(lQ0Qs#!Vd'"!!*>pq#:Wh.uJoY!=F;Jrr3#hB)M]1$LmNa!n(Zco)Jq% +pAb0l48T!Y!T_o5J,~> +\Gm'//$X52nc-`=Tm7(lQ0Qs#!VHit!!*>pq#:Wh.uJoY!=F;Jrr3#hB)M]1$LmNa!n(Zco)Jq% +pAb0l48T!Y!T_o5J,~> +\Gm'//$X53nc-`=TmI4oQ0m0&!Vg7'?iaa1q#:Wh.uJoY!=F;Jrr3#hB)M]1$LmNa!o98Ro3_`5 +p](9mL&,0Wle)5f~> +\Gl^$"j]r+rr3,S%9::8e,KZ?!$_jV+omJnrrp4BjT,hLrr3&kJdVAT!(?5S"8nZ>!VHEqW;lns +SGN9d*7t4@~> +\Gl^$"j]r+rr3,S%9::8e,KZ?!$_jV2?8U-rrp4BjT,hLrr3&kJdVAT!(?5S"8\N +\Gl^$"j]r+rr3,S%9:FfDg@~> +\Gl]j"lUE:rVloWn^.:>B.OiM!*&Xk$1V>2>:YF-rgOSr!!%oBrrq(t$NL/-q>^[prr<#g#5eH$ +C"NB8~> +\Gl]j"lUE:rVloWn^.:>HRosa!+>L"$1V>2>:YF-rgOSr!!%oBrrq(t$NL/-q>^[nrr<#g#5eH$ +C"NB8~> +\Gl]j"lUE:rVloWn^.:>X>_^i!0QsS$1V>2>q:X/rga_t!!&#ErrV8PAbTR9OT,:[p14)/!2A*F +J,~> +\Gl]B-fG*fb5V[&!&c_855b*R#3>m&`W^['pAb0l:](1mbLccE~> +\Gl]B-fG*fb5V[&!&lh:@f#ct#3>m&`W^['pAb0l:&Ftkce&2I~> +\Gl]B.H(?ib5V[P!)-&dL&CWD#3>p+`WEOsp&G*siTgFFrQ9OsqHsJ;p](9mOSiJdiRe*[~> +\Gl\\@aYGLb5VY(/cZ%kX7Q>nKe)Y)p&P'm!6XL)"6l0t!W2p#SH&Wg[f$1,$iS]WJ,~> +\Gl\\@aYGLb5VY(>Q=pD_Xmd0Ke)Y)p&P'm!6XL)"6l0t!W2p#SH&Wg[f$1,$iS]WJ,~> +\Gl\\@aYGLb5VY-B`J;gg@P=HKe)Y)p&P'm!6XL)!p[@>qd9QDs8W)@rEoY;rR_("~> +\c2j';i8.2n]Ce5b +\c2j' +\c2j' +\c2j')o7D3n]:_2q +\c2j')o7D3n]:_2q +\c2j')o7D3n]:_2q==%T"1\d#'D__/! +\c2ft!SLq2[/U6u:3!H6!!<6/MZ!JR!mLb^i;Wr=M3u?WrVupKec1.~> +\c2ft!SLq2[/U6u:3*N7!!<6/MYd>P!mLb^i;Wr=M3u?WrVupKec1.~> +\c2g"!SLq2[/U6u:3*N7!!<6/MZ!JR!mLb^i;WrBZb"f`ra5_Qec1.~> +\c2f_%H0+BZi:-\!8U'B!<3'#; +\c2f_%H0+BZi:-\!8U'B!<3'#; +\c2f_%H01EZi:-\!8U'B!<3'#; +\c2f/45gP"ZMt/L;:tsM!@P&KrrLY +\c2f/45gP"ZMt/M;:tsM!@P&KrrLY +\c2f/45gP"ZMt/M;:u!N!@b2MrrLY +\c;\L!ndS=ZMt-n%C54!H2[aB!V(1+!!+%DY5a"~> +\c;\M!ndS=ZMt-n%C54!H2[aB!V(4,!!+%DY5a"~> +\c;\M!ndS@ZMt-o%CPI%Hi +])Ms(1SN,.nZi*#RN([[,Oka*JdV8Q!!TP*J,~> +])Ms(1SN,.nZi*#RN([[,Oka*JdV8Q!!TP*J,~> +])Ms(25/>0nZi*#RN([[,k1j+JdV8Q!!TP*J,~> +])MqV!8X>:nZi*!nMbpd1ObT&o`,!&YQ'+~> +])MqV!8X>:nZi*!nMbpd1ObT&o`,!&YQ'+~> +])MqV!8X>:nZi*!nMu'f21Cf(o`,!&YQ'+~> +]Di) +]Di) +]Di) +^&J?:Bfk;RnO]"KrrQn;eb0"C!<[>H$K\MlJ,~> +^&J?:Bfk;RnO]"KrrQn;eb0"C!<[AI$K\MlJ,~> +^&J?:C-1DSnO]"KrrQq=eb/tH! +^&J>r!9*tXf`9$prr_Kh^305OrrE +^&J>r!9*tXf`9$prr_Kh^305OrrE +^&J>r!9*tXf`9$prr_Ni^305OrrE +^&J=k:%A8Z'/THdrr\9+knEpo!s&RWr;Q]tkmaVss*t~> +^&J=k:%A8Z'/THdrr\9+knEpo!s&RWqYpKrkmaVss*t~> +^&J=k:%A8Z'/fTfrr\9,l4a$p!s&RWr;Q]tl4'bus*t~> +^AeH.4.ZED;+^D]rr_a@MP^7OrrE.4iVWWVW=A*ts*t~> +^AeH.4.ZED;+^D]rr_a@MP^7OrrE.4iVWWVW=A*ts*t~> +^AeH.4.ZED;+^D]rr_a@MP^7O!s&I8iVWWVWX\7!s*t~> +^AeE,$JGHe%IgCt#f-]+3rf9^7*k]/!o4$jZN#F~> +^AeE,$JGHe%IgCt#f-]+3rf9^7*k]/!o4$jZN#F~> +^AeE,$JGHe%IgCt#f-]+3rf9^7*k]/!o4$jZN#F~> +^AeE,"jc_.2=RXG#4Z#3i;`nLq#:Dh!/7]XJ,~> +^AeE,"jc_.2=RXG#4Z#3i;`nLq#:Dh!/7]XJ,~> +^AeE,"jc_02=RXG#4Z#3i;`nLq#:Dh!/7]XJ,~> +^AeE&)ZX_l!5>H4"m#d--OR9WrrSVhl*12<~> +^AeE&)ZX_l!5>H4"m#d--OR9WrrSVhl*12<~> +^AeE))ZX_l!5>H4"m#g..13KYrrSVhlEL;=~> +]`/.aECg-1n>ZEkJi2YY)t*Y("6sJ-_6 +]`/.aE_-62n>ZEkJi2YY)t*Y("6sJ-_6 +]`/.aE_-62n>ZEkJi2YY)t*Y("79\0_6 +])Vg#!84=N"n3J"nMbpqrr^+W;<=t\J,~> +])Vg#!84=N"n3J"nMbpqrr^+W;<=t\J,~> +])Vg#!84=N"n3J"nMu'srr^7[;<=t\J,~> +JcFR+$aC0*dK&,'n8SJhnZDhA~> +JcFR+$aC0*dK&,'n8\PinZDhA~> +JcFR+$aC0+dK&,'n8\SjnZDhA~> +JcFR+$1V#0s(tWD, +JcFR+$1V#0s(tWD, +JcFR+$1V#1s(tWD,Wjh_s*t~> +JcFO*#N5^"fdd)\n>cM=~> +JcFO*#N5^"fdd)\n>cM=~> +JcFO*#N5a#fdd,]n>cM=~> +JcFL)"I/re>N)O\J,~> +JcFL)"I/re>N)O\J,~> +JcFL)"I/re?/_a^J,~> +%%EndData +showpage +%%Trailer +end +%%EOF diff --git a/postscript-go/test_files/escher.ps b/postscript-go/test_files/escher.ps index b5df169..5910ebf 100644 --- a/postscript-go/test_files/escher.ps +++ b/postscript-go/test_files/escher.ps @@ -294,14 +294,14 @@ def (RHW) show % autograph warp 1 eq { % redefine commands to use Xform - /moveto { Xform //moveto} def - /lineto { Xform //lineto} def + /moveto { Xform moveto} bind def + /lineto { Xform lineto} bind def /curveto { Xform 6 -2 roll Xform 6 -2 roll Xform 6 -2 roll - //curveto - } def + curveto + } bind def }if diff --git a/postscript-go/test_files/grayalph.ps b/postscript-go/test_files/grayalph.ps new file mode 100755 index 0000000..2a83474 --- /dev/null +++ b/postscript-go/test_files/grayalph.ps @@ -0,0 +1,65 @@ +%! +% grayscaled text test, including a trivial user bitmap font + +/grayalphsave save def % prevent left over effects + +/inch {72 mul} def + +/BuildCharDict 10 dict def +/$ExampleFont 7 dict def +$ExampleFont begin + /FontType 3 def % user defined font. + /FontMatrix [1 0 0 1 0 0] def + /FontBBox [0 0 1 1] def + /Encoding 256 array def + 0 1 255 {Encoding exch /.notdef put} for + Encoding (a) 0 get /plus put + /CharStrings 2 dict def + CharStrings /.notdef {} put + CharStrings /plus + { gsave + 0 0 moveto + 32 32 true [32 0 0 -32 0 32] + {<0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 + 0007E000 0007E000 0007E000 0007E000 0007E000 FFFFFFFF FFFFFFFF FFFFFFFF + FFFFFFFF FFFFFFFF FFFFFFFF 0007E000 0007E000 0007E000 0007E000 0007E000 + 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000 0007E000> + } imagemask + grestore + } put + /BuildChar + { BuildCharDict begin + /char exch def + /fontdict exch def + /charproc + fontdict /Encoding get char get + fontdict /CharStrings get + exch get def + 1 0 0 0 1 1 setcachedevice + charproc + end + } def +end + +/MyFont $ExampleFont definefont pop + + newpath + .5 inch 7.5 inch moveto + 7.5 inch 0 rlineto + 0 1.5 inch rlineto + -7.5 inch 0 rlineto + closepath + 0 setgray + fill + + /MyFont findfont 72 scalefont setfont + .75 inch 7.75 inch moveto + 0 1 6 + { /n exch def + 1 n 6 div sub setgray + (a) show + } for + +showpage +clear cleardictstack +grayalphsave restore diff --git a/postscript-go/test_files/manylines.ps b/postscript-go/test_files/manylines.ps new file mode 100644 index 0000000..5395a1c --- /dev/null +++ b/postscript-go/test_files/manylines.ps @@ -0,0 +1,939 @@ +%!PS-Adobe-2.0 +%%Title: Just A Little PostScript +%%Creator: Randolph J. Herber +%%CreationDate: Mon Aug 19 18:39:39 CDT 1996 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: (atend) +%%BoundingBox: 0 0 792 612 +%%Orientation: Portrait +%%PageOrder: Ascend +%%EndComments +%%BeginProlog +/DoColor true def +/Handout true def +%! +% behandler.ps, v1.3, Mar 23 1990, a modified version of Adobe's ehandler.ps +% Original program copyright (c) 1986 Adobe Systems Incorporated +% Modified by Fredric Ihren, for support contact fred@nada.kth.se or write to +% Fredric Ihren; Moerbydalen 17; S-182 32 D-RYD; Sweden +% Adobe will not keep maintenance of this program. +% Distributed with permission from Adobe Systems Incorporated + +% 0000 % serverloop password +% /$brkpage where not { +% dup serverdict begin statusdict begin checkpassword +% { (NEW Error Handler downloaded.\n) print flush exitserver } +% { pop (Bad Password on loading error handler.\n) print flush stop } +% ifelse +% } { +% pop pop (NEW Error Handler in place - not loaded again\n) print flush stop +% } ifelse +/$brkpage 64 dict def +$brkpage begin + /== { /cp 0 def typeprint nl } def + /printpage { + /prnt { + dup type /stringtype ne { =string cvs } if dup length 6 mul /tx exch def + /ty 10 def currentpoint /toy exch def /tox exch def 1 setgray newpath + tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto + closepath fill tox toy moveto 0 setgray show + } bind def + /nl { currentpoint exch pop lmargin exch moveto 0 -10 rmoveto } def + /doshowpage systemdict /showpage get def + } def + /printonly { + /nl { (\n) print } def + /prnt { dup type /stringtype ne { =string cvs } if print } def + /doshowpage null cvx def + } def + printpage + /typeprint { dup type dup currentdict exch known + { exec } { unknowntype } ifelse + } def + /lmargin 72 def /rmargin 72 def + /tprint { dup length cp add rmargin gt { nl /cp 0 def } if + dup length cp add /cp exch def prnt + } def + /cvsprint { =string cvs tprint( ) tprint } def + /unknowntype { exch pop cvlit (??) tprint cvsprint } def + /integertype { cvsprint } def + /realtype { cvsprint } def + /booleantype { cvsprint } def + /operatortype { (//) tprint cvsprint } def + /marktype { pop (-mark- ) tprint } def + /dicttype { pop (-dictionary- ) tprint } def + /nulltype { pop (-null- ) tprint } def + /filetype { pop (-filestream- ) tprint } def + /savetype { pop (-savelevel- ) tprint } def + /fonttype { pop (-fontid- ) tprint } def + /nametype { dup xcheck not { (/) tprint } if cvsprint } def + /stringtype { + dup rcheck + { (\() tprint tprint (\)) tprint } + { pop (-string- ) tprint } + ifelse + } def + /arraytype { + dup rcheck { dup xcheck + { ({) tprint { typeprint } forall (}) tprint } + { ([) tprint { typeprint } forall (]) tprint } + ifelse } { pop (-array- ) tprint } ifelse + } def + /packedarraytype { + dup rcheck { dup xcheck + { ({) tprint { typeprint } forall (}) tprint } + { ([) tprint { typeprint } forall (]) tprint } + ifelse } { pop (-packedarray- ) tprint } ifelse + } def + /stackmax 50 def + /execmax 25 def + /filemax 10 def + /courier /Courier findfont 10 scalefont def + /OLDhandleerror errordict /handleerror get def +end %$brkpage +errordict /handleerror { + systemdict begin $error begin $brkpage begin newerror { + { + /newerror false store + vmstatus pop pop 0 ne { grestoreall } if initgraphics courier setfont + lmargin 750 moveto + statusdict /jobname get dup null ne + { (Jobname: ) prnt prnt nl } { pop } ifelse + (Error: ) prnt errorname prnt nl + (Command: ) prnt /command load == + $error /ostack known { + $error /ostack get dup length 0 ne { + (Stack \() prnt + aload length dup prnt (\):) prnt nl + /i 0 def + { /i i 1 add def i stackmax le { == } { pop } ifelse } + repeat + } { pop } ifelse + } if + $error /estack known { + $error /estack get dup dup length 1 sub get type /filetype ne { + (Execstack \() prnt + aload length dup prnt (\):) prnt nl + /i 0 def + { /i i 1 add def dup type /filetype eq { /i 99 def } if + i execmax le { == } { pop } ifelse + } repeat + } { pop } ifelse + } if + (%stdin) (r) file + dup =string readline { + (File:) prnt nl prnt nl + filemax 1 sub { dup =string readline { prnt nl } { exit } ifelse } + repeat + } if pop + userdict /debug known { + (Debug:) prnt nl + userdict /debug get stopped pop nl + } if + } stopped pop + doshowpage + /newerror true store + /OLDhandleerror load end end end exec + } { end end end } + ifelse +} dup 0 systemdict put dup 4 $brkpage put bind put + +/PageFrame 600 dict dup begin +%%Copyright: Copyright 1991 University Research Associates. +%%+ *************************************************************************** +%%+ ** Copyright (c) 1991 Randolph J. Herber ** +%%+ ** All Rights Reserved. ** +%%+ ** Applies only to the included type 3 font ** +%%+ ** describing the Fermilab logo. ** +%%+ ** The type 3 font was developed using personal ** +%%+ ** equipment and own time and materials. ** +%%+ ** The following license granted to the ** +%%+ ** Government. ** +%%+ ** Copyright (c) 1991 Universities Research Association, Inc. ** +%%+ ** All Rights Reserved. ** +%%+ ** ** +%%+ ** This material resulted from work developed under a Government ** +%%+ ** Contract and is subject to the following license: ** +%%+ ** ** +%%+ ** LICENSE ** +%%+ ** The Government retains a paid-up, nonexclusive, irrevocable worldwide ** +%%+ ** license to reproduce, prepare derivative works, perform publicly and ** +%%+ ** display publicly by or for the Government, including the right to ** +%%+ ** distribute to other Government contractors. Neither the ** +%%+ ** United States nor the United States Department of Energy nor any of ** +%%+ ** their employees, nor the author of the type 3 font included makes ** +%%+ ** any warranty, express or implied, or assumes any legal liability or ** +%%+ ** responsibility for the accuracy, completeness, or usefulness of any ** +%%+ ** information, apparatus, product, or process disclosed, or represents ** +%%+ ** that its use would not infringe privately owned rights. ** +%%+ ** ** +%%+ ** ** +%%+ ** Fermilab Computing Division/Distributed Computing Department ** +%%+ ** ** +%%+ *************************************************************************** +%% +%% Begining of Logo font definition +%% +9 dict dup begin +/FontType 3 def +/FontName (Logo) cvn def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox [0 0 0 0] def % Some interperters need this +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } bind for +Encoding +dup 70 /Fermi put +pop +/CharProcs 7 dict dup begin +/Fermi { +0 setlinecap +0 setlinejoin +1 setlinewidth +1000 0 0 0 1000 1000 setcachedevice + 475 887.5 moveto + 0 80.88 rlineto +-150 0 rlineto + 0 -93.38 rlineto +-155.72 0 rlineto + 0 -150 rlineto + 154.46 0 rlineto + 262.5 737.5 62.5 348.46 270 arcn +-230.88 0 rlineto + 0 -150 rlineto + 230.88 0 rlineto + 262.5 737.5 212.5 270 360 arc + 50 0 rlineto + 737.5 737.5 212.5 180 270 arc + 230.88 0 rlineto + 0 150 rlineto +-230.88 0 rlineto + 737.5 737.5 62.5 270 191.54 arcn + 154.46 0 rlineto + 0 150 rlineto +-155.72 0 rlineto + 0 93.38 rlineto +-150 0 rlineto + 0 -80.88 rlineto fill + 525 112.5 moveto + 0 -80.88 rlineto + 150 0 rlineto + 0 93.38 rlineto + 155.72 0 rlineto + 0 150 rlineto +-154.46 0 rlineto + 737.5 262.5 62.5 168.46 90 arcn + 230.88 0 rlineto + 0 150 rlineto +-230.88 0 rlineto + 737.5 262.5 212.5 90 180 arc + -50 0 rlineto + 262.5 262.5 212.5 0 90 arc +-230.88 0 rlineto + 0 -150 rlineto + 230.88 0 rlineto + 262.5 262.5 62.5 90 11.54 arcn +-154.46 0 rlineto + 0 -150 rlineto + 155.72 0 rlineto + 0 -93.38 rlineto + 150 0 rlineto + 0 80.88 rlineto fill +} bind def +end def +/BuildChar { +0 +begin +exch begin +Encoding exch get +CharProcs exch get +end +exec +end +} bind def +/BuildChar load 0 +6 dict dup begin +end put +end +/Logo exch definefont pop + +% +% Copyright 1990 by Adobe Systems Incorporated. All rights reserved. +% +% This file may be freely copied and redistributed as long as: +% 1) This entire notice continues to be included in the file, +% 2) If the file has been modified in any way, a notice of such +% modification is conspicuously indicated. +% +% PostScript, Display PostScript, and Adobe are registered trademarks of +% Adobe Systems Incorporated. +% +% ************************************************************************ +% THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO CHANGE WITHOUT +% NOTICE, AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ADOBE SYSTEMS +% INCORPORATED. ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY OR +% LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO WARRANTY OF ANY +% KIND (EXPRESS, IMPLIED OR STATUTORY) WITH RESPECT TO THIS INFORMATION, +% AND EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. +% ************************************************************************ +% + +% This file defines a PostScript procedure called "R" which will +% reencode a font. It expects to find three things on the operand stack: +% +% [ array ] /NewName /OldName +% +% The array should contain pairs of , like "32 /space", +% each of which will define a slot in the encoding and the name to put +% in that slot. Only those names which are needed to over-ride the +% existing ones need be specified. An encoding value (number) may +% be specified followed by more than one name, like "128 /name1 /name2". +% In this case, the names will be sequentially stored in the encoding +% starting at the initial number given (128). + +/R { + findfont begin currentdict dup length dict begin + { %forall + 1 index /FID ne {def} {pop pop} ifelse + } forall + /FontName exch def dup length 0 ne { %if + /Encoding Encoding 256 array copy def + 0 exch { %forall + dup type /nametype eq { %ifelse + Encoding 2 index 2 index put + pop 1 add + }{ %else + exch pop + } ifelse + } forall + } if pop + currentdict dup end end + /FontName get exch definefont pop +} bind def + +% sample use: +% [ 8#360 /apple ] /_Symbol /Symbol R + +% declare page sizes +/D {def} bind def +/B {bind D} bind D +/E {exch D} B +/M {moveto} B +/S {marking {show} + {stringwidth rmoveto + currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse} + ifelse} B +/H {marking {currentlinewidth exch true charpath 0.5 setlinewidth + gsave 1 setgray fill grestore stroke setlinewidth} + {stringwidth rmoveto + currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse} + ifelse} B +/Stroke {currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse marking {stroke}if} B +/W {stringwidth pop} B +/Short 612 D +/Long 792 D +% at this point in the program, the default coordinate system is still in place +/Shrink where {pop +Short 1.0 Shrink sub 0.5 mul mul Long 1.0 Shrink sub 0.5 mul mul translate +Shrink Shrink scale} if +/margin 36 D +/logosize 48 D % memo head size is 56.25 +/radius 18 D +/gap 12 D +/offset 8 D +/High 480 D +/Wide 720 D +/CenterX 396 D +/CenterY 336 D +/Top CenterY High 0.5 mul add D +/Tsize 36 D +/Tlead 9 D +/Tspace Tsize Tlead add D +/esize 18 D +/elead 6 D +/espace esize elead add D +/tsize 18 D +/tlead 6 D +/tspace tsize tlead add D +/Ssize 6 D +/Slead 2 D +/Sspace Ssize Slead add D +/setline {1 sub /lineno E} B +/LT {/lineno exch def lineno Lmax gt {/Lmax lineno def}if} B +/eT {/lineno exch def lineno emax gt {/emax lineno def}if} B +/lT {/lineno exch def lineno lmax gt {/lmax lineno def}if} B +/Line {LT lineno 1 sub Tspace mul Base exch sub /Y E} B +/L+ {lineno 1 add LT lineno 1 sub Tspace mul Base exch sub /Y E} B +/L+2 {lineno 2 add LT lineno 1 sub Tspace mul Base exch sub /Y E} B +/eline {eT lineno 1 sub espace mul ebase exch sub /Y E} B +/e+ {lineno 1 add eT lineno 1 sub espace mul ebase exch sub /Y E} B +/e+2 {lineno 2 add eT lineno 1 sub espace mul ebase exch sub /Y E} B +/line {lT lineno 1 sub tspace mul base exch sub /Y E} B +/l+ {lineno 1 add lT lineno 1 sub tspace mul base exch sub /Y E} B +/l+2 {lineno 2 add lT lineno 1 sub tspace mul base exch sub /Y E} B +/C1 {col1 Y moveto} B +/C2 {col2 Y moveto} B +/C3 {col3 Y moveto} B +/C4 {col4 Y moveto} B +/C5 {col5 Y moveto} B +/C6 {col6 Y moveto} B +/C7 {col7 Y moveto} B +/C8 {col8 Y moveto} B +/C9 {col9 Y moveto} B +/RC [ 8#375 /copyright /registered /trademark ] def +RC /_Times-Roman /Times-Roman R +/foliofont /_Times-Roman findfont logosize offset 3 mul sub scalefont D +/FO {foliofont setfont} B +/textsize /_Times-Roman findfont tsize scalefont D +/TX {textsize setfont} B +/TXS {currentfont exch TX S setfont} B +RC /_Times-Italic /Times-Italic R +/italics /_Times-Italic findfont tsize scalefont D +/TI {italics setfont} B +/TIS {currentfont exch TI S setfont} B +RC /_Times-BoldItalic /Times-BoldItalic R +/bold_italics /_Times-BoldItalic findfont tsize scalefont D +/TJ {bold_italics setfont} B +/TJS {currentfont exch TJ S setfont} B +RC /_Times-Bold /Times-Bold R +/boldfont /_Times-Bold findfont tsize scalefont D +/TB {boldfont setfont} B +/TBS {currentfont exch TB S setfont} B +/monospace /Courier-Bold findfont tsize scalefont D +/CM {monospace setfont} B +/CMS {currentfont exch CM S setfont} B +/monolite /Courier findfont tsize scalefont D +/CR {monolite setfont} B +/CRS {currentfont exch CR S setfont} B +/monoitalic /Courier-Oblique findfont tsize scalefont D +/CI {monoitalic setfont} B +/CIS {currentfont exch CI S setfont} B +/monoBI /Courier-BoldOblique findfont tsize scalefont D +/CJ {monoBI setfont} B +/CJS {currentfont exch CJ S setfont} B +/narrowmono /Courier-Bold findfont [.8 tsize mul 0 0 tsize 0 0] makefont D +/SC {narrowmono setfont} B +/SCS {currentfont exch SC S setfont} B +/largesize /_Times-Roman findfont Tsize scalefont D +/LG {largesize setfont} B +/LGS {currentfont exch LG S setfont} B +/smallfont /_Times-Roman findfont Ssize scalefont D +/SM {smallfont setfont} B +/SMS {currentfont exch SM S setfont} B +/symbolfont /Symbol findfont tsize scalefont D +/SY {symbolfont setfont} B +/microsymbol /Symbol findfont tsize 0.4 mul scalefont D +/MY {microsymbol setfont} B +/pointerfont /ZapfDingbats findfont tsize scalefont D +/PT {pointerfont setfont} B +/FNALfont /Logo findfont tsize scalefont D +/FN {FNALfont setfont} B +/Item {currentfont SY(\267)S setfont} B +/Note {currentfont PT(-)S setfont} B +/Here {currentfont PT(+)S setfont} B +/Gives {currentfont SY(\336)S setfont} B +/Moon {currentfont PT(m)S setfont} B +/FNAL {currentfont FN(F)S setfont} B +/Block1 {currentfont PT(y)S setfont} B +/Block2 {currentfont PT(z)S setfont} B +/Start {currentpoint gsave currentpoint translate MY (\355) stringwidth + pop -.5 mul tsize -.5 mul moveto (\255) S grestore moveto } B +/Mark {currentpoint gsave currentpoint translate MY (\355) stringwidth + pop -.5 mul tsize -.5 mul moveto (\335) S grestore moveto } B +/More {660 108 M currentfont TX ((more)) show setfont} B +/center {/Text E Long Text stringwidth pop sub 0.5 mul exch moveto + Text marking{show}{pop}ifelse} B +/Center {Long exch sub 0.5 mul exch moveto} B +/Fickle {Index lineno eq {Here} {Item} ifelse} B +/RVS {marking {dup save exch currentpoint newpath moveto + 1 0 rmoveto true charpath pathbbox + 1 add /Uy E 1 add /Ux E 1 sub /Ly E 1 sub /Lx E newpath + Lx Ux add 0.5 mul Ly moveto + Lx Ly Lx Uy 1 arcto pop pop pop pop + Lx Uy Ux Uy 1 arcto pop pop pop pop + Ux Uy Ux Ly 1 arcto pop pop pop pop + Ux Ly Lx Ly 1 arcto pop pop pop pop + closepath + 0 setgray fill restore + currentgray exch 1 setgray 1 0 rmoveto show 1 0 rmoveto setgray} + {stringwidth rmoveto 2 0 rmoveto + currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse} + ifelse} B +/Frame { +/ll E /el E /Ll E +/Lmax 0 D /emax 0 D /lmax 0 D +/Gaps 1 Ll 1 lt{0 /THght 0 D}{1 /THght Ll Tspace mul Tlead sub D}ifelse add + el 1 lt{0 /eHght 0 D}{1 /eHght el espace mul elead sub D}ifelse add + ll 1 lt{0 /tHght 0 D}{1 /tHght ll tspace mul tlead sub D}ifelse add D +/GapSize High THght sub eHght sub tHght sub Gaps div D +/Base Top Ll 1 ge{GapSize sub Tsize sub}if D +/ebase Top Ll 1 ge{GapSize sub THght sub}if + el 1 ge{GapSize sub esize sub}if D +/base Top Ll 1 ge{GapSize sub THght sub}if + el 1 ge{GapSize sub eHght sub}if + ll 1 ge{GapSize sub tsize sub}if D + +/Rnd {rand 2147483647.0 div mul add} bind def + +% size of rounded box allowing for logo at top +/boxx Long margin dup add sub D +/boxy Short margin dup add sub logosize sub gap sub D +% left edge of logo area +/logox Long margin sub logosize 1.2 mul sub +/Helvetica-Bold findfont logosize 0.5 mul scalefont setfont (Fermilab) + stringwidth pop sub D + +% left edge of titling area +/titlesize logosize 6 div D +/titlefont /Helvetica-Bold findfont titlesize 1.6 mul scalefont D +/giverfont /Times-Roman findfont titlesize 0.8 mul scalefont D +/titlex logox gap sub + titlefont setfont talktitle stringwidth pop + giverfont setfont talkgiver stringwidth pop 2 copy lt {exch} if pop + talkdept stringwidth pop 2 copy lt {exch} if pop + talkaddr stringwidth pop 2 copy lt {exch} if pop + talkcopyr stringwidth pop 2 copy lt {exch} if pop + sub D + +% determine folio box size +/folioboxx foliofont setfont folio stringwidth pop offset dup add add D +/folioboxy logosize offset sub D + +% determine folio box x origin +/folioorgx titlex margin add gap sub offset sub folioboxx sub 2 div D + +% rotate to landscape orientation +90 rotate + +% move origin to lower left hand corner of sheet +0 Short neg translate + +% draw logo in lower right hand corner +save +/DoColor where {pop DoColor {.4 .6 Rnd .2 .8 Rnd .2 .8 Rnd setrgbcolor}if}if +logox margin translate +/Logo findfont logosize scalefont setfont 0 0 moveto (F) show +/DoColor where {pop DoColor {0 setgray}if}if +/Helvetica-Bold findfont + logosize 0.5 mul scalefont setfont + logosize 1.2 mul logosize 0.375 mul moveto +(Fermilab) show +restore + +% add talk data +save +titlex margin translate +0 titlesize 4 mul moveto titlefont setfont talktitle show +0 titlesize 3 mul moveto giverfont setfont talkgiver show +0 titlesize 2 mul moveto talkdept show +0 titlesize moveto talkaddr show +0 0 moveto talkcopyr show +restore + +% add folio +save +0 setlinecap % square butt ends +1 setlinejoin % rounded corners +0.5 setlinewidth % width of line to draw +/box {1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath} B +folioorgx margin translate +gsave + offset 0 translate 0 0 moveto 0 setgray folioboxx folioboxy box fill +grestore +gsave + 0 offset translate + 0 0 moveto 0.95 setgray folioboxx folioboxy box fill + 0 0 moveto 0 setgray folioboxx folioboxy box stroke +grestore +gsave + offset dup dup add translate 0 0 moveto foliofont setfont + folio true charpath + gsave 1 setgray fill grestore stroke + +grestore +restore + +% +% draw rounded box +% +save +/DoColor where {pop DoColor {0 0 1 setrgbcolor}if}if +% start a new path +% line characters +0 setlinecap % square butt ends +1 setlinejoin % rounded corners +3 setlinewidth % width of line to draw +newpath +% make lower left corner of the rounded box the origin +margin margin logosize add gap add translate +% center of bottom edge +boxx 0.5 mul 0 moveto +% draw lower left corner to center of left edge +0 0 0 boxy mul 0.5 radius arcto pop pop pop pop +% draw upper left corner to center of top edge +0 boxy boxx 0.5 mul boxy radius arcto pop pop pop pop +% draw upper right corner to center of right edge +boxx boxy boxx boxy 0.5 mul radius arcto pop pop pop pop +% draw lower left corner to near center of bottom edge +boxx 0 boxx mul 0.5 6 add 0 radius arcto pop pop pop pop +% close the path +closepath +% draw the box +stroke +restore + +save +filenames {756 SM filename stringwidth pop sub 588 moveto filename show}if +restore} B + +/Check { +filenames { + Lmax dup add emax add lmax add 18 lt + {Lmax Ll ne emax el ne or lmax ll ne or} + {Lmax Ll ne emax el ne or lmax 1 add ll ne or} ifelse + { 36 588 moveto SM + Lmax =string cvs show (/)show Ll =string cvs show ( )show + emax =string cvs show (/)show el =string cvs show ( )show + lmax =string cvs show (/)show ll =string cvs show + } if +} if } B + +% +% draw rounded box +% +/drbradius tsize 3 div D +/drb { /drbtext E /drbxy E /drbxx E + marking + { save + currentpoint translate + 0 setlinecap % square butt ends + 1 setlinejoin % rounded corners + 0.5 setlinewidth % width of line to draw + newpath + % the origin is the lower left corner of the rounded box + % start drawing the box at the center of the bottom edge + drbxx 0.5 mul 0 moveto + % draw lower left corner to center of left edge + 0 0 0 drbxy mul 0.5 drbradius arcto pop pop pop pop + % draw upper left corner to center of top edge + 0 drbxy drbxx 0.5 mul drbxy drbradius arcto pop pop pop pop + % draw upper right corner to center of right edge + drbxx drbxy drbxx drbxy 0.5 mul drbradius arcto pop pop pop pop + % draw lower left corner to near center of bottom edge + drbxx 0 drbxx mul 0.5 6 add 0 drbradius arcto pop pop pop pop + % close the path + closepath + % draw the box + stroke + % place the text + drbxx drbtext stringwidth pop sub 0.5 mul + drbxy tspace sub 0.5 mul tlead add + moveto drbtext show + restore + }{ + /drbright currentpoint pop drbxx add 0.25 add D + drbright MaxX gt {/MaxX drbright D} if + } ifelse +} B + +/PlaceText { + /Markings E + save /marking false D /MaxX 0 D Markings + CenterX MaxX 0.5 mul sub 0 translate + /marking true D Markings lmax exch restore /lmax exch def} B + +/MeasureText {/Markings E /marking false D /MaxX 0 D /Base Top D /base Top D + Markings /OffsetX CenterX MaxX 0.5 mul sub D} B + +/MarkText {save OffsetX 0 translate /marking true D Markings restore} B + +/marking true D +/filenames false D +/OffsetX 90 D +/col1 0 D +/col2 30 D +/col3 60 D +/col4 90 D +/col5 120 D +/col6 150 D +/col7 180 D +/col8 210 D +/col9 240 D + +%% +%% Used to divide the page into two sections divided horizonally +%% + +/Scale 0.625 D +/SubPageX Short Scale mul D +/SubPageY Long Scale mul D +/AdjustX -6 D +/AdjustUX Long -0.5 mul AdjustX sub SubPageX sub D +/AdjustLX Long -0.5 mul AdjustX add D +/AdjustY Short SubPageY sub 0.5 mul D + +/Upper{Handout + {-90 rotate AdjustUX AdjustY translate Scale Scale scale }if}B +/Lower{Handout + {-90 rotate AdjustLX AdjustY translate Scale Scale scale }if}B + +%% +%% Used to print handout format text +%% +/LineBuffer 128 string D +/in{72 mul}B /mm{2.8346 mul}B /pt{}B /by{}B +/PageSize{/long E /short E}B +/land{90 rotate 0 short neg translate /High short D /Wide long D}B +/port{/High long D /Wide short D}B +/Offset{/Yoff E /Xoff E Xoff Yoff translate + /High High Yoff sub Yoff sub D /Wide Wide Xoff sub Xoff sub D}B +/LineSize{/Lhigh E /Lwide E + /Lvert High Lhigh div cvi D /Lhori Wide Lwide div cvi D}B +/SetFont{findfont exch /FS E [ .8 FS mul 0 0 FS 0 0 ] makefont setfont}B +/R3{3 1 roll}B +/DC{2 index Lhori 1 sub ge + {NewPage pop pop 0 Lvert false} + {R3 pop Lvert R3 1 add R3}ifelse}B +/DR{1 index 0 le{DC}if exch 1 sub exch}B +/T{exch pop true exch 3 index Lwide mul 3 index Lhigh mul M show}B +/ReadLine {currentfile LineBuffer readline exch /Text E not Text EOF eq or}B +% +% Sheet description +% +/NoteText{/EOF E Handout + {8.5 in by 11 in PageSize land 36 36 Offset + 360 pt by 12 pt LineSize 11 /Courier-Bold SetFont + save 0 Lvert false + {ReadLine {exit}{DR Text length 0 ne {Text T}if}ifelse}loop + pop pop pop restore} + {{ReadLine {exit}if}loop} + ifelse restore}B + +/Viewgraph {save Upper} B +/EndViewgraph {Check restore} B +/Notes {save Lower (EndNotes) NoteText} B + +end def + +/PageTop {PageFrame begin save 100 dict begin} bind def +/PageBottom {end restore end} bind def +/DoColor where {pop}{/DoColor false def}ifelse +/Handout where {pop}{/Handout false def}ifelse +% titling data +/talktitle (Just a little PostScript) def +/talkgiver (Randolph J. Herber, herber@fnal.fnal.gov, 1 630 840 2966 CDF PK149O) + def +/talkdept (Computing Division/Operating System Support/CDF Task Force) def +/talkaddr (P.O. Box 500, Mail Stop 234 (WH6W), Batavia, IL 60510) def +/talkcopyr () def + +/filenames true def +%%EndProlog +%%Page: Examples12 1 +PageTop +Viewgraph +/folio (Examples) def +/filename (examples.12) def + + +/@ {transform .5 add floor exch .5 add floor exch itransform} bind def +/! {dtransform .5 add floor exch .5 add floor exch idtransform} bind def +1 0 19 Frame + +LG 1 Line Y (Many different ways to draw two parallel lines) center + +8 line save /showpage {} def 146 Y @ translate .2 dup scale +gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +2 setlinewidth +0 0 @ moveto 500 0 ! rlineto stroke +0 500 @ moveto 500 0 ! rlineto stroke +showpage +restore + +8 line save /showpage {} def 271 Y @ @ translate .2 dup scale +gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +2 setlinewidth +0 0 @ moveto +gsave +0 500 @ moveto 500 0 ! rlineto stroke +grestore +500 0 ! rlineto stroke +showpage +restore + +8 line save /showpage {} def 396 Y @ translate .2 dup scale +gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +2 setlinewidth +[500] 0 setdash +0 0 @ moveto 500 0 ! rlineto 0 500 ! rlineto -500 0 ! rlineto closepath stroke +showpage +restore + +8 line save /showpage {} def 521 Y @ translate .2 dup scale +gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +2 setlinewidth +[50] 0 setdash +0 0 @ moveto 500 0 ! rlineto stroke +500 500 @ moveto -500 0 ! rlineto stroke +500 0 @ moveto -500 0 ! rlineto stroke +0 500 @ moveto 500 0 ! rlineto stroke +showpage +restore + +16 line save /showpage {} def 146 Y @ translate .2 dup scale +gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +2 setlinewidth +[50] 0 setdash +.2 setgray 0 0 @ moveto 500 0 ! rlineto stroke +.4 setgray 500 500 @ moveto -500 0 ! rlineto stroke +.6 setgray 500 0 @ moveto -500 0 ! rlineto stroke +.8 setgray 0 500 @ moveto 500 0 ! rlineto stroke +showpage +restore + +16 line save /showpage {} def 271 Y @ translate .2 dup scale +gsave newpath 0 0 @ moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +/B {bind def} dup exec +/E {exch def} B +/Box {/W E /H E + @ moveto W 0 ! rlineto 0 H ! rlineto W neg 0 ! rlineto closepath} B +0 -1 2 500 Box 0 499 2 500 Box fill +showpage +restore + +16 line save /showpage {} def 390 Y @ translate .2 dup scale +gsave newpath 0 0 @ moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +/B {bind def} dup exec +/E {exch def} B +/Box {/W E /H E + @ moveto W 0 ! rlineto 0 H ! rlineto W neg 0 ! rlineto closepath} B +0 -2 504 500 Box fill 1 setgray 0 1 498 500 Box fill +showpage +restore + +16 line save /showpage {} def 521 Y @ translate .2 dup scale +gsave newpath 0 0 @ moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath +DoColor{0 0 1 setrgbcolor}if stroke grestore +66 146 @ translate +2 setlinewidth +[5] 0 setdash +newpath +500 0 0 0 -500 0 500 500 -500 0 500 0 500 0 0 500 +4 {@ moveto ! rlineto} bind repeat +stroke +showpage +restore + +{ +18 setline TX +l+ C1(These look alike and have vastly different PostScript language codes.)S +} PlaceText +EndViewgraph +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Notes lines should not be longer than 65 characters. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Notes +==> Q1.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate 2 setlinewidth + 0 0 moveto 500 0 rlineto stroke + 0 500 moveto 500 0 rlineto stroke + showpage + +==> Q2.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate 2 setlinewidth + 0 0 moveto gsave 0 500 moveto 500 0 rlineto stroke + grestore 500 0 rlineto stroke + showpage + +==> Q3.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate 2 setlinewidth [500] 0 setdash + 0 0 moveto 500 0 rlineto 0 500 rlineto -500 0 rlineto + closepath stroke + showpage + +==> Q4.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate 2 setlinewidth [50] 0 setdash + 0 0 moveto 500 0 rlineto stroke + 500 500 moveto -500 0 rlineto stroke + 500 0 moveto -500 0 rlineto stroke + 0 500 moveto 500 0 rlineto stroke + showpage + +==> Q5.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate 2 setlinewidth [50] 0 setdash + .2 setgray 0 0 moveto 500 0 rlineto stroke + .4 setgray 500 500 moveto -500 0 rlineto stroke + .6 setgray 500 0 moveto -500 0 rlineto stroke + .8 setgray 0 500 moveto 500 0 rlineto stroke + showpage + +==> Q6.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate /B {bind def} dup exec /E {exch def} B + /Box {/W E /H E moveto + W 0 rlineto 0 H rlineto W neg 0 rlineto closepath} B + 0 -1 2 500 Box 0 499 2 500 Box fill + showpage + +==> Q7.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate /B {bind def} dup exec /E {exch def} B + /Box {/W E /H E moveto + W 0 rlineto 0 H rlineto W neg 0 rlineto closepath} B + 0 -1 502 500 Box fill 1 setgray 0 1 498 500 Box fill + showpage + +==> Q8.ps <== + %!PS-Adobe-3.0 EPSF-3.0 + %%BoundingBox: 55 145 557 647 + %%Pages: 1 + %%EndComments + 66 146 translate 2 setlinewidth [5] 0 setdash newpath + 500 0 0 0 -500 0 500 500 -500 0 500 0 500 0 0 500 + 4 {moveto rlineto} bind repeat stroke + showpage +EndNotes +showpage +PageBottom +%%EOF diff --git a/postscript-go/test_files/maze.ps b/postscript-go/test_files/maze.ps new file mode 100755 index 0000000..5fec8ab --- /dev/null +++ b/postscript-go/test_files/maze.ps @@ -0,0 +1,275 @@ +%!PS +%%Pages: 1 +%%EndComments + +% Yet Another Maze Maker +% Version 2 +% Written by Peter Sorotokin, 1996-1998 +% This program is in the public domain. + +% Note: do not send this job to the printer until you know +% how to cancel it (it may take a LOT of time on slow printer; +% it takes couple minutes on my LaserJet 4). + +%%BeginSetup + +% put your sizes here: + +/width 25 def +/height 25 def + +% seed number here: + +0 srand % put your seed number instead of 0 (normally not required) +systemdict /realtime known { realtime srand } if + +% initialization + +/size width height mul def +/zone size array def +/zsize size array def +/vert width 1 add array def +/hor height 1 add array def + +/w1 width 1 sub def +/h1 height 1 sub def + +0 1 size 1 sub { dup zsize exch 1 put zone exch dup put } bind for +0 1 width { vert exch height string 0 1 h1 + { 1 index exch 255 put } for put } bind for +0 1 height { hor exch width string 0 1 w1 + { 1 index exch 255 put } for put } bind for + +% define subroutines + +/db { dup 20 string cvs = } bind def + +/find_set { { zone 1 index get dup 3 1 roll eq {exit} if } loop} bind def + +/merge_sets { + 2 copy zsize exch get + exch zsize exch get 2 copy gt + 3 1 roll add exch + { zsize 2 index 3 -1 roll put + zone 3 1 roll put } + { zsize 3 index 3 -1 roll put + zone 3 1 roll exch put } + ifelse } bind def + +%%EndSetup + +%%Page: maze 1 + +% building + +size 1 sub +{ + { + rand 2 mod 0 eq + { + rand height mod + rand w1 mod 2 copy + height mul add + dup height add + find_set exch find_set + 2 copy eq + { + pop pop pop pop + } + { + merge_sets vert exch 1 add get exch 0 put exit + } + ifelse + } + { + rand h1 mod + rand width mod 2 copy + height mul add + dup 1 add + find_set exch find_set + 2 copy eq + { + pop pop pop pop + } + { + merge_sets exch hor exch 1 add get exch 0 put exit + } + ifelse + } + ifelse + } + loop +} bind repeat + +% make entrance and exit + +vert 0 get rand height mod 0 put +vert width get rand height mod 0 put + +% setup output + +clippath pathbbox +2 index sub exch +3 index sub exch +4 2 roll translate +2 copy height 4 add div exch width 4 add div +2 copy gt {exch} if pop /myscale exch def + +myscale height mul sub 2 div exch +myscale width mul sub 2 div exch +translate + +myscale myscale scale +0.05 setlinewidth + +newpath + +% render the maze + +0 1 width { dup 0 moveto vert exch get 0 1 height 1 sub + { 1 index exch get 0 eq 0 1 3 -1 roll { rmoveto } { rlineto } ifelse } + for pop } bind for + +0 1 height { dup 0 exch moveto hor exch get 0 1 width 1 sub + { 1 index exch get 0 eq 1 0 3 -1 roll { rmoveto } { rlineto } ifelse } + for pop } bind for + +stroke + +stroke + +% Quick hack to solve the maze. +% This part written by Christian Lehner. + +clear + +/NORTH 1 def +/WEST 2 def +/SOUTH 4 def +/EAST 8 def +/CRUMB 16 def + +/find_door {% column => index + dup 0 1 3 -1 roll length 1 sub { + 2 copy get 0 eq { + exch pop + exit + } { + pop + } ifelse + } for +} bind def + +/mentrance vert 0 get find_door def +/mexit vert width get find_door def + +/maze [height {[width {0} repeat]} repeat] def + +/mget {% row col => int + maze 3 -1 roll get exch get +} bind def + +/mset {% row col int => - + maze 4 -1 roll get 3 -2 roll put +} bind def + +/initmaze { + 0 1 height 1 sub {/row exch def + /mrow maze row get def + 0 1 width 1 sub {/col exch def + % north + hor row 1 add get col get 0 eq { + mrow col 2 copy get //NORTH or put + } if + % west + vert col get row get 0 eq { + mrow col 2 copy get //WEST or put + } if + % south + hor row get col get 0 eq { + mrow col 2 copy get //SOUTH or put + } if + % east + vert col 1 add get row get 0 eq { + mrow col 2 copy get //EAST or put + } if + } for + } for +} bind def + +/step {% row col side => row' col' + /side exch def + /col exch def + /row exch def + side //NORTH eq { + row 1 add col + } { + side //WEST eq { + row col 1 sub + } { + side //SOUTH eq { + row 1 sub col + } { + side //EAST eq { + row col 1 add + } { + (step: bad side ) print side == + } ifelse + } ifelse + } ifelse + } ifelse +} bind def + +/done false def + +/escape {% row col => - + /col exch def + /row exch def + row mexit eq col width 1 sub eq and { + (done)== + row col + /done true store + } { + row col 2 copy mget //CRUMB or mset + row col + [//NORTH //WEST //SOUTH //EAST] {/side exch def + done {exit} if + 2 copy mget /val exch def + val side and 0 ne { + 2 copy side step 2 copy + mget /val exch def + val //CRUMB and 0 eq { + escape + } { + pop pop + } ifelse + } if + } forall + done not { + pop pop + } if + } ifelse +} bind def + +/solve { + % close the entrance + vert 0 get mentrance 1 put + initmaze + % start the escape + /path [mentrance -1 mentrance 0 escape 2 copy 1 add] def + % draw the path + .5 setgray + .5 .5 translate + path 1 get path 0 get moveto + 2 2 path length 1 sub {/i exch def + path i 1 add get path i get lineto + } for + stroke + showpage +} bind def + +% eject the page + +copypage solve + +%%EOF diff --git a/postscript-go/test_files/vasarely.ps b/postscript-go/test_files/vasarely.ps new file mode 100755 index 0000000..bb058a6 --- /dev/null +++ b/postscript-go/test_files/vasarely.ps @@ -0,0 +1,588 @@ +%! +% vasarely +% Elizabeth D. Zwicky +% zwicky@sgi.com +/vasarelysave save def % prevent residual side effects +% +% Inspired by Vasarely's experiments with tilting circles and squares +% (for instance "Tlinko" and "Betelgeuse" + +%% circles +/part { circle } def /nnrand false def +%% squares +% /part { ngon } def /nn 4 def /nnrand false def +%% random polygons +% /part { ngon } def /nnrand true def +%% random stars (not my favorite on this program) +% /part { nstar } def /nnrand true def + +%% tilt the base shape a random amount? +/twist false def +% /twist true def + + +/rainbow false def +%% To make rainbows +% /rainbow true def +%% Set this to 1 to go through a full range of colors +/rainrange .25 def + +% number of different designs per page +/inheight 2 def +/inwidth 2 def +% number of repeats in a design +/xtimes 10 def +/ytimes 16 def + +%% This sets the relationship between the two hues: comptwo is maximum contrast +/colorway {comptwo} def +%% monochrome comptwo harmtwo harmfour freecolor compthree closeharm +%% origcolor + +%% This sets the brightness and saturation of the colors; vivid makes +%% them both bright +/colorfam {vivid} def +%% vivid jewel intense medium pastel free orig contrast +%% medjewel medvivid vivpastel medpastel + + +%% Only experts below this point! + +10 srand +/seed rand def + +/starcompensate false def +/constroke 1 def + + + +/circle { + /radius radius 1.33 mul def + currentpoint /herey exch def /herex exch def + herex herey radius 0 360 arc +} def + +/ngon{ % polygon of n sides, n determined by nn + nside 2 div radius rmoveto + nn cvi { + nside neg 0 rlineto + 360 360 nn div sub neg rotate + } repeat + closepath +} def + +/nstar{ % star of n points, n determined by nstarslider + /radius radius 1.33 mul def + currentpoint /herey exch def /herex exch def + 0 radius rmoveto + 90 nstarangle 2 div add neg rotate + nn cvi {nstarside 0 rlineto + 180 180 nstarangle 2 mul sub sub neg rotate + nstarside 0 rlineto + 180 180 360 nn div sub nstarangle 2 mul sub sub rotate + } repeat + 90 nstarangle 2 div add rotate + closepath +} def + +/nstarangle {180 360 nn div sub 3 div} def +/nstarside { + 2 + radius + 1 + 180 nn div + sin + div + div + mul + nstarangle sin + mul + 180 + nstarangle 2 mul + sub + sin + div +} def + +/nside { + 2 + radius + 360 nn div 2 div tan + mul + mul +} def + + +/tan { /alpha exch def + alpha sin + 1 alpha sin dup mul sub sqrt + div +} def + + +/pastel { + /backbright high def + /backsat medlow def + /fillbright high def + /fillsat medlow def + /eobright high def + /eosat medlow def + constroke 0 eq { + /strokebright high def + /strokesat medlow def + } + { + /strokebright low def + /strokesat high def + } ifelse +} def + +/jewel { + /fillbright med def + /fillsat high def + /backbright med def + /backsat high def + /eobright med def + /eosat high def + constroke 0 eq { + /strokebright medlow def + /strokesat high def + } + { + /strokebright high def + /strokesat medlow def + } ifelse +} def + +/vivid { + /fillsat 1 def + /fillbright high def + /eosat 1 def + /eobright high def + /backsat 1 def + /backbright high def + constroke 0 eq { + /strokesat 1 def + /strokebright high def + } + { + /strokesat high def + /strokebright medlow def + } ifelse +} def + +/free { + /fillsat anyrand def + /fillbright anyrand def + /eosat anyrand def + /eobright anyrand def + /backsat anyrand def + /backbright anyrand def + /strokesat anyrand def + /strokebright anyrand def +} def + +/contrast { + /sat medhigh def + /bright rand 2 mod 0 eq {medhigh} {medlow} ifelse def + /backsat sat def + /backbright bright def + /eosat sat def + /eobright 1 bright sub def + /fillsat sat def + /fillbright bright def + /strokebright rand 2 mod def + /strokesat rand 2 mod def + +} def +/medium { + /backsat med def + /backbright med def + /eosat med def + /eobright med def + /fillsat med def + /fillbright med def + /strokebright med def + /strokesat med def + +} def +/intense { + /backsat high def + /backbright med def + /eosat high def + /eobright high def + /fillsat high def + /fillbright med def + /strokebright high def + /strokesat high def + +} def +/orig { + /backsat rand 99 mod 55 add 100 div def + /backbright rand 99 mod 35 add 100 div def + /eosat rand 77 mod 22 add 100 div def + /eobright 90 rand 75 mod sub 15 add 100 div def + /fillsat 100 rand 90 mod sub 100 div def + /fillbright 100 rand 45 mod sub 20 add 100 div def + /strokebright 100 rand 55 mod sub 100 div def + /strokesat 100 rand 85 mod sub 100 div def + +} def + +/medjewel { + /alt rand 2 mod def + /backsat alt 0 eq {high} { med} ifelse def + /fillsat alt 0 eq {med} {high} ifelse def + /eosat alt 0 eq {high} {med} ifelse def + /backbright med def + /fillbright med def + /eobright med def + constroke 0 eq { + /strokebright medlow def + /strokesat high def + } + { + /strokebright high def + /strokesat medlow def + } ifelse +} def + +/medvivid { + /alt rand 2 mod def + /backsat alt 0 eq {1} { med} ifelse def + /fillsat alt 0 eq {med} {1} ifelse def + /eosat alt 0 eq {1} {med} ifelse def + /backbright alt 0 eq {high} {med} ifelse def + /eobright alt 0 eq {high} {med} ifelse def + /fillbright alt 0 eq {med} {high} ifelse def + constroke 0 eq { + /strokesat 1 def + /strokebright high def + } + { + /strokesat high def + /strokebright medlow def + } ifelse +} def +/vivpastel { + /backlight rand 2 mod def + /backsat backlight 0 eq {medlow} {1} ifelse def + /eosat backlight 0 eq {medlow} {1} ifelse def + /fillsat backlight 0 eq {1} {medlow} ifelse def + /fillbright high def + /backbright high def + /eobright high def + constroke 0 eq { + /strokesat 1 def + /strokebright high def + } + { + /strokesat high def + /strokebright medlow def + } ifelse +} def + +/medpastel { + /alt rand 2 mod def + /backsat alt 0 eq {medlow} {med} ifelse def + /eosat alt 0 eq {medlow} {med} ifelse def + /fillsat alt 0 eq {med} {medlow} ifelse def + /fillbright alt 0 eq { high } {med} ifelse def + /backbright alt 0 eq {med} { high } ifelse def + /eobright alt 0 eq {med} { high } ifelse def + constroke 0 eq { + /strokebright high def + /strokesat medlow def + } + { + /strokebright low def + /strokesat high def + } ifelse +} def + +/maxcon { + rand 2 mod 1 eq { + /backsat 0 def + /backbright 0 def + /eosat 0 def + /eobright 0 def + /fillsat 0 def + /fillbright 1 def + /strokebright 1 def + /strokesat 0 def + } + { + /backsat 0 def + /backbright 1 def + /eosat 0 def + /eobright 1 def + /fillsat 0 def + /fillbright 0 def + /strokebright 0 def + /strokesat 0 def + } + ifelse +} def + +/monochrome { + /fillhue hue closevary def + /strokehue hue closevary def + /eohue hue closevary def + /backhue hue def +} def + +/blackandwhite { + /fillhue 1 def + /eohue 0 def + /backhue 0 def + /strokehue 1 def +} def + + +/freecolor { + /fillhue anyrand def + /strokehue anyrand def + /eohue anyrand def + /backhue anyrand def +} def + +/purple { + /fillhue rand 15 mod 80 add 100 div def + /backhue rand 15 mod 80 add 100 div def + /strokehue rand 15 mod 80 add 100 div def + /eohue rand 15 mod 80 add 100 div def + /backhue rand 15 mod 80 add 100 div def +} def + +/comptwo { + /fillhue hue closevary def + /strokehue hue .5 add dup 1 gt {1 sub} if def + /backhue strokehue def + /eohue strokehue closevary def +} def + +/compthree { + /backhue hue def + /strokehue hue 1 3 div add dup 1 gt {1 sub} if closevary def + /fillhue strokehue closevary def + /eohue hue 1 3 div sub dup 1 lt { 1 add} if closevary def +} def + +/origcolor { + /backhue hue def + /strokehue + hue 1000 mul cvi 3 mod dup 1 eq + {hue closevary} + {2 eq + {rand 999 mod 1000 div} + {hue .5 add dup 1 gt {1 sub} if } + ifelse + } + ifelse def + /fillhue hue 1000 mul cvi 3 mod dup 1 eq + {hue closevary} + {2 eq + {rand 999 mod 1000 div} + {hue .5 add dup 1 gt {1 sub} if } + ifelse + } + ifelse + def + /eohue hue 1000 mul cvi 2 mod 1 eq + {hue closevary} + {rand 999 mod 1000 div} + ifelse def +} def + +/harmtwo { + /fillhue hue closevary def + /backhue hue def + /strokehue hue .2 add dup 1 gt {1 sub} if closevary def + /eohue strokehue closevary def +} def + +/harmfour { + /fillhue hue closevary def + /backhue hue .1 add dup 1 gt {1 sub} if def + /strokehue hue .2 add dup 1 gt {1 sub} if closevary def + /eohue hue .1 sub dup 1 lt {1 add} if closevary def +} def + +/closeharm { + /fillhue hue def + /backhue hue .05 add dup 1 gt {1 sub} if closevary def + /strokehue hue .1 add dup 1 gt {1 sub} if closevary def + /eohue hue .05 sub dup 0 lt {1 add} if closevary def +} def + + +/high {100 rand 25 mod sub 100 div } def +/med { rand 33 mod 33 add 100 div } def +/medhigh {100 rand 50 mod sub 100 div } def +/medlow {rand 50 mod 100 div } def +/low { rand 25 mod 100 div} def +/anyrand { rand 100 mod 100 div } def +/closevary {rand 70 mod rand 100 mod sub 1000 div add} def + +%rainbow +% {/colorfill {fillhue 1 1 sethsbcolor fill} def} + /colorfill {fillhue fillsat fillbright sethsbcolor fill } def +%ifelse +/colorstroke {strokehue strokesat strokebright sethsbcolor stroke } def +/eocolorfill {eohue eosat eobright sethsbcolor eofill } def +/backfill{ backhue backsat backbright sethsbcolor fill } def + +/xstep { xrange xtimes 1 sub div x 1 sub mul } def +/ystep { yrange ytimes 1 sub div y 1 sub mul} def + +/functionarray [ + {sin abs} + {sin } + {cos } + {cos abs} + {sin dup mul } + {cos dup mul } + {sin abs sqrt } + {cos abs sqrt } +] def + +/range { /top exch def /bottom exch def /number exch def +% number is between -1 and 1 + /rangesize top bottom sub def + number 1 add 2 div + % number is now between 0 and 1 + rangesize mul + bottom add + } def + +/drawone { + /radius + width height lt {width 3 div} {height 3 div} ifelse + def + seed srand + 0 0 moveto + /origmatrix [ 0 0 0 0 0 0 ] currentmatrix def + [ % xstep function ystep function2 add 0.4 1.3 range + 1 + ystep function xstep function add -0.25 0.25 range + ystep function3 xstep function2 add -0.5 0.5 range +% xstep function4 ystep function mul 0.4 1.3 range + 1 + 0 + 0 + ] + concat + twist {twistdeg rotate} if + part colorfill + origmatrix setmatrix + rainbow + {/fillhue fillhue rainrange xtimes ytimes mul div add dup 1 gt {1 sub} if def} + if + +} def + +/notdrawone { + seed srand + twist {/twistdeg rand 360 mod def} if + nnrand {/nn rand 6 mod 3 add def} if + /x1 rand width 3 div cvi mod width 8 div add def + /y1 rand height 3 div cvi mod height 8 div add def + rand 3 mod dup 1 eq + {pop /x2 rand width 2 div cvi mod def + /y2 rand height 2 div cvi mod def} + { 2 eq + {/x2 y1 def /y2 x1 def} + {/x2 y1 width mul height div def /y2 x1 height mul width div def} + ifelse + } + ifelse + /radius width height gt {width} {height} ifelse 2.5 div def + /stripe rand width 10 div cvi mod 2 add def + starcompensate { /stripe stripe 2 mul def /radius radius 10 nn div mul def } if + /i 1 def + /repeats radius stripe div cvi 1 add def + /nnincr 1 def + repeats { + colorvary {colorfam colorway} if + /i i 1 add def + /radius radius stripe sub def + + } repeat +} def + + +/page { + clippath pathbbox /ury exch def /urx exch def /lly exch def /llx exch +def +/pagewidth urx llx sub 36 72 mul min def +/pageheight ury lly sub 36 72 mul min def +0 0 moveto + llx lly translate + /outerwidth + pagewidth inwidth div + def + /outerheight + pageheight inheight div + def + /width + outerwidth xtimes div + def + /height + outerheight ytimes div + def + + + + /size + width height gt {width} {height} ifelse + def + inwidth { + inheight { + + /seed rand def + /hue rand 999 mod 1000 div def + colorway colorfam + /x 1 def /y 1 def + nnrand {/nn rand 6 mod 3 add def} if + /twistdeg rand 360 mod def + + /function functionarray rand functionarray length mod get def + /function2 functionarray rand functionarray length mod get def + /function3 functionarray rand functionarray length mod get def + /function4 functionarray rand functionarray length mod get def + +/xrange [ 90 180 270 360 180 360 ] rand 6 mod get def +/yrange [ 90 180 270 360 180 360 ] rand 6 mod get def + initclip + newpath + 0 0 moveto + outerwidth 0 rlineto + 0 outerheight rlineto + outerwidth neg 0 rlineto + backfill + + xtimes { + ytimes{ + /y y 1 add def + width 2 div height 2 div translate + drawone + width 2 div neg height 2 div neg translate + 0 height translate + } repeat + + /y 1 def + /x x 1 add def + width height ytimes mul neg translate + + } repeat + + width xtimes mul neg outerheight translate + } repeat + outerwidth outerheight inheight mul neg translate + } repeat + + } def + +page showpage +clear cleardictstack +vasarelysave restore diff --git a/postscript-go/test_files/whitepaper.ps b/postscript-go/test_files/whitepaper.ps new file mode 100755 index 0000000..4222c4c --- /dev/null +++ b/postscript-go/test_files/whitepaper.ps @@ -0,0 +1,5043 @@ +%!PS-Adobe-3.0 +%%BoundingBox: (atend) +%%Pages: (atend) +%%PageOrder: (atend) +%%DocumentFonts: (atend) +%%Creator: Frame 5.0 +%%DocumentData: Clean7Bit +%%EndComments +%%BeginProlog +% +% Frame ps_prolog 5.0, for use with Frame 5.0 products +% This ps_prolog file is Copyright (c) 1986-1995 Frame Technology +% Corporation. All rights reserved. This ps_prolog file may be +% freely copied and distributed in conjunction with documents created +% using FrameMaker, FrameMaker/SGML and FrameViewer as long as this +% copyright notice is preserved. +% +% FrameMaker users specify the proper paper size for each print job in the +% "Print" dialog's "Printer Paper Size" "Width" and "Height~ fields. If the +% printer that the PS file is sent to does not support the requested paper +% size, or if there is no paper tray of the proper size currently installed, +% then the job will not be printed. The following flag, if set to true, will +% cause the job to print on the default paper in such cases. +/FMAllowPaperSizeMismatch false def +% +% Frame products normally print colors as their true color on a color printer +% or as shades of gray, based on luminance, on a black-and white printer. The +% following flag, if set to true, forces all non-white colors to print as pure +% black. This has no effect on bitmap images. +/FMPrintAllColorsAsBlack false def +% +% Frame products can either set their own line screens or use a printer's +% default settings. Three flags below control this separately for no +% separations, spot separations and process separations. If a flag +% is true, then the default printer settings will not be changed. If it is +% false, Frame products will use their own settings from a table based on +% the printer's resolution. +/FMUseDefaultNoSeparationScreen true def +/FMUseDefaultSpotSeparationScreen true def +/FMUseDefaultProcessSeparationScreen false def +% +% For any given PostScript printer resolution, Frame products have two sets of +% screen angles and frequencies for printing process separations, which are +% recomended by Adobe. The following variable chooses the higher frequencies +% when set to true or the lower frequencies when set to false. This is only +% effective if the appropriate FMUseDefault...SeparationScreen flag is false. +/FMUseHighFrequencyScreens true def +% +% The following is a set of predefined optimal frequencies and angles for various +% common dpi settings. This is taken from "Advances in Color Separation Using +% PostScript Software Technology," from Adobe Systems (3/13/89 P.N. LPS 0043) +% and corrolated with information which is in various PPD (4.0) files. +% +% The "dpiranges" figure is the minimum dots per inch device resolution which +% can support this setting. The "low" and "high" values are controlled by the +% setting of the FMUseHighFrequencyScreens flag above. The "TDot" flags control +% the use of the "Yellow Triple Dot" feature whereby the frequency id divided by +% three, but the dot function is "trippled" giving a block of 3x3 dots per cell. +% +% PatFreq is a compromise pattern frequency for ps Level 2 printers which is close +% to the ideal WYSIWYG pattern frequency of 9 repetitions/inch but does not beat +% (too badly) against the screen frequencies of any separations for that DPI. +/dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def +/CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def +/YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def +/KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def +/CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def +/MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def +/YLowTDot [ true true false true true false false false ] def +/CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def +/YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def +/KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def +/CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def +/MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def +/YHighTDot [ false false true false false true true false ] def +/PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def +% +% PostScript Level 2 printers contain an "Accurate Screens" feature which can +% improve process separation rendering at the expense of compute time. This +% flag is ignored by PostScript Level 1 printers. +/FMUseAcccurateScreens true def +% +% The following PostScript procedure defines the spot function that Frame +% products will use for process separations. You may un-comment-out one of +% the alternative functions below, or use your own. +% +% Dot function +/FMSpotFunction {abs exch abs 2 copy add 1 gt + {1 sub dup mul exch 1 sub dup mul add 1 sub } + {dup mul exch dup mul add 1 exch sub }ifelse } def +% +% Line function +% /FMSpotFunction { pop } def +% +% Elipse function +% /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add +% sqrt 1 exch sub } def +% +% +/FMversion (5.0) def +/fMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def +/FMPColor + fMLevel1 { + false + /colorimage where {pop pop true} if + } { + true + } ifelse +def +/FrameDict 400 dict def +systemdict /errordict known not {/errordict 10 dict def + errordict /rangecheck {stop} put} if +% The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk +FrameDict /tmprangecheck errordict /rangecheck get put +errordict /rangecheck {FrameDict /bug true put} put +FrameDict /bug false put +mark +% Some PS machines read past the CR, so keep the following 3 lines together! +currentfile 5 string readline +00 +0000000000 +cleartomark +errordict /rangecheck FrameDict /tmprangecheck get put +FrameDict /bug get { + /readline { + /gstring exch def + /gfile exch def + /gindex 0 def + { + gfile read pop + dup 10 eq {exit} if + dup 13 eq {exit} if + gstring exch gindex exch put + /gindex gindex 1 add def + } loop + pop + gstring 0 gindex getinterval true + } bind def + } if +/FMshowpage /showpage load def +/FMquit /quit load def +/FMFAILURE { + dup = flush + FMshowpage + /Helvetica findfont 12 scalefont setfont + 72 200 moveto show + 72 220 moveto show + FMshowpage + FMquit + } def +/FMVERSION { + FMversion ne { + (Frame product version does not match ps_prolog! Check installation;) + (also check ~/fminit and ./fminit for old versions) FMFAILURE + } if + } def +/FMBADEPSF { + (Adobe's PostScript Language Reference Manual, 2nd Edition, section H.2.4) + (says your EPS file is not valid, as it calls X ) + dup dup (X) search pop exch pop exch pop length + 5 -1 roll + putinterval + FMFAILURE + } def +/fmConcatProcs + { + /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def + newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx +}def +FrameDict begin [ + /ALDsave + /FMdicttop + /FMoptop + /FMpointsize + /FMsaveobject + /b + /bitmapsave + /blut + /bpside + /bs + /bstring + /bwidth + /c + /cf + /cs + /cynu + /depth + /edown + /fh + /fillvals + /fw + /fx + /fy + /g + /gfile + /gindex + /grnt + /gryt + /gstring + /height + /hh + /i + /im + /indx + /is + /k + /kk + /landscape + /lb + /len + /llx + /lly + /m + /magu + /manualfeed + /n + /offbits + /onbits + /organgle + /orgbangle + /orgbfreq + /orgbproc + /orgbxfer + /orgfreq + /orggangle + /orggfreq + /orggproc + /orggxfer + /orgmatrix + /orgproc + /orgrangle + /orgrfreq + /orgrproc + /orgrxfer + /orgxfer + /pagesave + /paperheight + /papersizedict + /paperwidth + /pos + /pwid + /r + /rad + /redt + /sl + /str + /tran + /u + /urx + /ury + /val + /width + /width + /ws + /ww + /x + /x1 + /x2 + /xindex + /xpoint + /xscale + /xx + /y + /y1 + /y2 + /yelu + /yindex + /ypoint + /yscale + /yy +] { 0 def } forall +/FmBD {bind def} bind def +systemdict /pdfmark known { + /fMAcrobat true def + + /FmPD /pdfmark load def + + + /FmPT /show load def + + + currentdistillerparams /CoreDistVersion get 2000 ge { + + + /FmPD2 /pdfmark load def + + + + + + /FmPA { mark exch /Dest exch 5 3 roll + /View [ /XYZ null 6 -2 roll FmDC exch pop null] /DEST FmPD + }FmBD + } { + + /FmPD2 /cleartomark load def + /FmPA {pop pop pop}FmBD + } ifelse +} { + + /fMAcrobat false def + /FmPD /cleartomark load def + /FmPD2 /cleartomark load def + /FmPT /pop load def + /FmPA {pop pop pop}FmBD +} ifelse +/FmDC { + transform fMDefaultMatrix itransform cvi exch cvi exch +}FmBD +/FmBx { + dup 3 index lt {3 1 roll exch} if + 1 index 4 index lt {4 -1 roll 3 1 roll exch 4 1 roll} if +}FmBD +/FMnone 0 def +/FMcyan 1 def +/FMmagenta 2 def +/FMyellow 3 def +/FMblack 4 def +/FMcustom 5 def +/fMNegative false def +/FrameSepIs FMnone def +/FrameSepBlack 0 def +/FrameSepYellow 0 def +/FrameSepMagenta 0 def +/FrameSepCyan 0 def +/FrameSepRed 1 def +/FrameSepGreen 1 def +/FrameSepBlue 1 def +/FrameCurGray 1 def +/FrameCurPat null def +/FrameCurColors [ 0 0 0 1 0 0 0 ] def +/FrameColorEpsilon .001 def +/eqepsilon { + sub dup 0 lt {neg} if + FrameColorEpsilon le +} bind def +/FrameCmpColorsCMYK { + 2 copy 0 get exch 0 get eqepsilon { + 2 copy 1 get exch 1 get eqepsilon { + 2 copy 2 get exch 2 get eqepsilon { + 3 get exch 3 get eqepsilon + } {pop pop false} ifelse + }{pop pop false} ifelse + } {pop pop false} ifelse +} bind def +/FrameCmpColorsRGB { + 2 copy 4 get exch 0 get eqepsilon { + 2 copy 5 get exch 1 get eqepsilon { + 6 get exch 2 get eqepsilon + }{pop pop false} ifelse + } {pop pop false} ifelse +} bind def +/RGBtoCMYK { + 1 exch sub + 3 1 roll + 1 exch sub + 3 1 roll + 1 exch sub + 3 1 roll + 3 copy + 2 copy + le { pop } { exch pop } ifelse + 2 copy + le { pop } { exch pop } ifelse + dup dup dup + 6 1 roll + 4 1 roll + 7 1 roll + sub + 6 1 roll + sub + 5 1 roll + sub + 4 1 roll +} bind def +/CMYKtoRGB { + dup dup 4 -1 roll add + 5 1 roll 3 -1 roll add + 4 1 roll add + 1 exch sub dup 0 lt {pop 0} if 3 1 roll + 1 exch sub dup 0 lt {pop 0} if exch + 1 exch sub dup 0 lt {pop 0} if exch +} bind def +/FrameSepInit { + 1.0 RealSetgray +} bind def +/FrameSetSepColor { + /FrameSepBlue exch def + /FrameSepGreen exch def + /FrameSepRed exch def + /FrameSepBlack exch def + /FrameSepYellow exch def + /FrameSepMagenta exch def + /FrameSepCyan exch def + /FrameSepIs FMcustom def + setCurrentScreen +} bind def +/FrameSetCyan { + /FrameSepBlue 1.0 def + /FrameSepGreen 1.0 def + /FrameSepRed 0.0 def + /FrameSepBlack 0.0 def + /FrameSepYellow 0.0 def + /FrameSepMagenta 0.0 def + /FrameSepCyan 1.0 def + /FrameSepIs FMcyan def + setCurrentScreen +} bind def + +/FrameSetMagenta { + /FrameSepBlue 1.0 def + /FrameSepGreen 0.0 def + /FrameSepRed 1.0 def + /FrameSepBlack 0.0 def + /FrameSepYellow 0.0 def + /FrameSepMagenta 1.0 def + /FrameSepCyan 0.0 def + /FrameSepIs FMmagenta def + setCurrentScreen +} bind def + +/FrameSetYellow { + /FrameSepBlue 0.0 def + /FrameSepGreen 1.0 def + /FrameSepRed 1.0 def + /FrameSepBlack 0.0 def + /FrameSepYellow 1.0 def + /FrameSepMagenta 0.0 def + /FrameSepCyan 0.0 def + /FrameSepIs FMyellow def + setCurrentScreen +} bind def + +/FrameSetBlack { + /FrameSepBlue 0.0 def + /FrameSepGreen 0.0 def + /FrameSepRed 0.0 def + /FrameSepBlack 1.0 def + /FrameSepYellow 0.0 def + /FrameSepMagenta 0.0 def + /FrameSepCyan 0.0 def + /FrameSepIs FMblack def + setCurrentScreen +} bind def + +/FrameNoSep { + /FrameSepIs FMnone def + setCurrentScreen +} bind def +/FrameSetSepColors { + FrameDict begin + [ exch 1 add 1 roll ] + /FrameSepColors + exch def end + } bind def +/FrameColorInSepListCMYK { + FrameSepColors { + exch dup 3 -1 roll + FrameCmpColorsCMYK + { pop true exit } if + } forall + dup true ne {pop false} if + } bind def +/FrameColorInSepListRGB { + FrameSepColors { + exch dup 3 -1 roll + FrameCmpColorsRGB + { pop true exit } if + } forall + dup true ne {pop false} if + } bind def +/RealSetgray /setgray load def +/RealSetrgbcolor /setrgbcolor load def +/RealSethsbcolor /sethsbcolor load def +end +/setgray { + FrameDict begin + FrameSepIs FMnone eq + { RealSetgray } + { + FrameSepIs FMblack eq + { RealSetgray } + { FrameSepIs FMcustom eq + FrameSepRed 0 eq and + FrameSepGreen 0 eq and + FrameSepBlue 0 eq and { + RealSetgray + } { + 1 RealSetgray pop + } ifelse + } ifelse + } ifelse + end +} bind def +/setrgbcolor { + FrameDict begin + FrameSepIs FMnone eq + { RealSetrgbcolor } + { + 3 copy [ 4 1 roll ] + FrameColorInSepListRGB + { + FrameSepBlue eq exch + FrameSepGreen eq and exch + FrameSepRed eq and + { 0 } { 1 } ifelse + } + { + FMPColor { + RealSetrgbcolor + currentcmykcolor + } { + RGBtoCMYK + } ifelse + FrameSepIs FMblack eq + {1.0 exch sub 4 1 roll pop pop pop} { + FrameSepIs FMyellow eq + {pop 1.0 exch sub 3 1 roll pop pop} { + FrameSepIs FMmagenta eq + {pop pop 1.0 exch sub exch pop } { + FrameSepIs FMcyan eq + {pop pop pop 1.0 exch sub } + {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse + } ifelse + RealSetgray + } + ifelse + end +} bind def +/sethsbcolor { + FrameDict begin + FrameSepIs FMnone eq + { RealSethsbcolor } + { + RealSethsbcolor + currentrgbcolor + setrgbcolor + } + ifelse + end +} bind def +FrameDict begin +/setcmykcolor where { + pop /RealSetcmykcolor /setcmykcolor load def +} { + /RealSetcmykcolor { + 4 1 roll + 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat + RealSetrgbcolor pop + } bind def +} ifelse +userdict /setcmykcolor { + FrameDict begin + FrameSepIs FMnone eq + { RealSetcmykcolor } + { + 4 copy [ 5 1 roll ] + FrameColorInSepListCMYK + { + FrameSepBlack eq exch + FrameSepYellow eq and exch + FrameSepMagenta eq and exch + FrameSepCyan eq and + { 0 } { 1 } ifelse + } + { + FrameSepIs FMblack eq + {1.0 exch sub 4 1 roll pop pop pop} { + FrameSepIs FMyellow eq + {pop 1.0 exch sub 3 1 roll pop pop} { + FrameSepIs FMmagenta eq + {pop pop 1.0 exch sub exch pop } { + FrameSepIs FMcyan eq + {pop pop pop 1.0 exch sub } + {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse + } ifelse + RealSetgray + } + ifelse + end + } bind put +fMLevel1 { + + + + /patScreenDict 7 dict dup begin + <0f1e3c78f0e1c387> [ 45 { pop } {exch pop} .5 2 sqrt] FmBD + <0f87c3e1f0783c1e> [ 135 { pop } {exch pop} .5 2 sqrt] FmBD + [ 0 { pop } dup .5 2 ] FmBD + [ 90 { pop } dup .5 2 ] FmBD + <8142241818244281> [ 45 { 2 copy lt {exch} if pop} dup .75 2 sqrt] FmBD + <03060c183060c081> [ 45 { pop } {exch pop} .875 2 sqrt] FmBD + <8040201008040201> [ 135 { pop } {exch pop} .875 2 sqrt] FmBD + end def +} { + + /patProcDict 5 dict dup begin + <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke + 4 -4 moveto 12 4 lineto stroke + -4 4 moveto 4 12 lineto stroke} bind def + <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke + -4 4 moveto 4 -4 lineto stroke + 4 12 moveto 12 4 lineto stroke} bind def + <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke + -1 -1 moveto 9 9 lineto stroke } bind def + <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke + 4 -4 moveto 12 4 lineto stroke + -4 4 moveto 4 12 lineto stroke} bind def + <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke + -4 4 moveto 4 -4 lineto stroke + 4 12 moveto 12 4 lineto stroke} bind def + end def + /patDict 15 dict dup begin + /PatternType 1 def + /PaintType 2 def + /TilingType 3 def + /BBox [ 0 0 8 8 ] def + /XStep 8 def + /YStep 8 def + /PaintProc { + begin + patProcDict bstring known { + patProcDict bstring get exec + } { + 8 8 true [1 0 0 -1 0 8] bstring imagemask + } ifelse + end + } bind def + end def +} ifelse +/combineColor { + FrameSepIs FMnone eq + { + graymode fMLevel1 or not { + + [/Pattern [/DeviceCMYK]] setcolorspace + FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor + } { + FrameCurColors 3 get 1.0 ge { + FrameCurGray RealSetgray + } { + fMAcrobat not FMPColor graymode and and { + 0 1 3 { + FrameCurColors exch get + 1 FrameCurGray sub mul + } for + RealSetcmykcolor + } { + 4 1 6 { + FrameCurColors exch get + graymode { + 1 exch sub 1 FrameCurGray sub mul 1 exch sub + } { + 1.0 lt {FrameCurGray} {1} ifelse + } ifelse + } for + RealSetrgbcolor + } ifelse + } ifelse + } ifelse + } { + FrameCurColors 0 4 getinterval aload + FrameColorInSepListCMYK { + FrameSepBlack eq exch + FrameSepYellow eq and exch + FrameSepMagenta eq and exch + FrameSepCyan eq and + FrameSepIs FMcustom eq and + { FrameCurGray } { 1 } ifelse + } { + FrameSepIs FMblack eq + {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { + FrameSepIs FMyellow eq + {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { + FrameSepIs FMmagenta eq + {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { + FrameSepIs FMcyan eq + {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } + {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse + } ifelse + graymode fMLevel1 or not { + + [/Pattern [/DeviceGray]] setcolorspace + FrameCurPat setcolor + } { + graymode not fMLevel1 and { + + dup 1 lt {pop FrameCurGray} if + } if + RealSetgray + } ifelse + } ifelse +} bind def +/savematrix { + orgmatrix currentmatrix pop + } bind def +/restorematrix { + orgmatrix setmatrix + } bind def +/fMDefaultMatrix matrix defaultmatrix def +/fMatrix2 matrix def +/dpi 72 0 fMDefaultMatrix dtransform + dup mul exch dup mul add sqrt def + +/freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def +/sangle 1 0 fMDefaultMatrix dtransform exch atan def + sangle fMatrix2 rotate + fMDefaultMatrix fMatrix2 concatmatrix + dup 0 get /sflipx exch def + 3 get /sflipy exch def +/screenIndex { + 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for +} bind def +/getCyanScreen { + FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse + screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load +} bind def +/getMagentaScreen { + FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse + screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load +} bind def +/getYellowScreen { + FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse + screenIndex dup 3 1 roll get 3 1 roll get { 3 div + {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat + FMSpotFunction } } {/FMSpotFunction load } ifelse + 0.0 exch +} bind def +/getBlackScreen { + FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse + screenIndex get 45.0 /FMSpotFunction load +} bind def +/getSpotScreen { + getBlackScreen +} bind def +/getCompositeScreen { + getBlackScreen +} bind def +/FMSetScreen + fMLevel1 { /setscreen load + }{ { + 8 dict begin + /HalftoneType 1 def + /SpotFunction exch def + /Angle exch def + /Frequency exch def + /AccurateScreens FMUseAcccurateScreens def + currentdict end sethalftone + } bind } ifelse +def +/setDefaultScreen { + FMPColor { + orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer + } + { + orgxfer cvx settransfer + } ifelse + orgfreq organgle orgproc cvx setscreen +} bind def +/setCurrentScreen { + FrameSepIs FMnone eq { + FMUseDefaultNoSeparationScreen { + setDefaultScreen + } { + getCompositeScreen FMSetScreen + } ifelse + } { + FrameSepIs FMcustom eq { + FMUseDefaultSpotSeparationScreen { + setDefaultScreen + } { + getSpotScreen FMSetScreen + } ifelse + } { + FMUseDefaultProcessSeparationScreen { + setDefaultScreen + } { + FrameSepIs FMcyan eq { + getCyanScreen FMSetScreen + } { + FrameSepIs FMmagenta eq { + getMagentaScreen FMSetScreen + } { + FrameSepIs FMyellow eq { + getYellowScreen FMSetScreen + } { + getBlackScreen FMSetScreen + } ifelse + } ifelse + } ifelse + } ifelse + } ifelse + } ifelse +} bind def +end + +/FMDOCUMENT { + array /FMfonts exch def + /#copies exch def + FrameDict begin + 0 ne /manualfeed exch def + /paperheight exch def + /paperwidth exch def + 0 ne /fMNegative exch def + 0 ne /edown exch def + /yscale exch def + /xscale exch def + fMLevel1 { + manualfeed {setmanualfeed} if + /FMdicttop countdictstack 1 add def + /FMoptop count def + setpapername + manualfeed {true} {papersize} ifelse + {manualpapersize} {false} ifelse + {desperatepapersize} {false} ifelse + {papersizefailure} if + count -1 FMoptop {pop pop} for + countdictstack -1 FMdicttop {pop end} for + } + {2 dict + dup /PageSize [paperwidth paperheight] put + manualfeed {dup /ManualFeed manualfeed put} if + {setpagedevice} stopped {papersizefailure} if + } + ifelse + + FMPColor { + currentcolorscreen + cvlit /orgproc exch def + /organgle exch def + /orgfreq exch def + cvlit /orgbproc exch def + /orgbangle exch def + /orgbfreq exch def + cvlit /orggproc exch def + /orggangle exch def + /orggfreq exch def + cvlit /orgrproc exch def + /orgrangle exch def + /orgrfreq exch def + currentcolortransfer + fMNegative { + 1 1 4 { + pop { 1 exch sub } fmConcatProcs 4 1 roll + } for + 4 copy + setcolortransfer + } if + cvlit /orgxfer exch def + cvlit /orgbxfer exch def + cvlit /orggxfer exch def + cvlit /orgrxfer exch def + } { + currentscreen + cvlit /orgproc exch def + /organgle exch def + /orgfreq exch def + + currenttransfer + fMNegative { + { 1 exch sub } fmConcatProcs + dup settransfer + } if + cvlit /orgxfer exch def + } ifelse + end +} def +/FMBEGINPAGE { + FrameDict begin + /pagesave save def + 3.86 setmiterlimit + /landscape exch 0 ne def + landscape { + 90 rotate 0 exch dup /pwid exch def neg translate pop + }{ + pop /pwid exch def + } ifelse + edown { [-1 0 0 1 pwid 0] concat } if + 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto + 0 paperheight lineto 0 0 lineto 1 setgray fill + xscale yscale scale + /orgmatrix matrix def + gsave +} def +/FMENDPAGE { + grestore + pagesave restore + end + showpage + } def +/FMFONTDEFINE { + FrameDict begin + findfont + ReEncode + 1 index exch + definefont + FMfonts 3 1 roll + put + end + } def +/FMFILLS { + FrameDict begin dup + array /fillvals exch def + dict /patCache exch def + end + } def +/FMFILL { + FrameDict begin + fillvals 3 1 roll put + end + } def +/FMNORMALIZEGRAPHICS { + newpath + 1 setlinewidth + 0 setlinecap + 0 0 0 sethsbcolor + 0 setgray + } bind def +/FMBEGINEPSF { + end + /FMEPSF save def + /showpage {} def +% See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. +% "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) + /banddevice {(banddevice) FMBADEPSF} def + /clear {(clear) FMBADEPSF} def + /cleardictstack {(cleardictstack) FMBADEPSF} def + /copypage {(copypage) FMBADEPSF} def + /erasepage {(erasepage) FMBADEPSF} def + /exitserver {(exitserver) FMBADEPSF} def + /framedevice {(framedevice) FMBADEPSF} def + /grestoreall {(grestoreall) FMBADEPSF} def + /initclip {(initclip) FMBADEPSF} def + /initgraphics {(initgraphics) FMBADEPSF} def + /quit {(quit) FMBADEPSF} def + /renderbands {(renderbands) FMBADEPSF} def + /setglobal {(setglobal) FMBADEPSF} def + /setpagedevice {(setpagedevice) FMBADEPSF} def + /setshared {(setshared) FMBADEPSF} def + /startjob {(startjob) FMBADEPSF} def + /lettertray {(lettertray) FMBADEPSF} def + /letter {(letter) FMBADEPSF} def + /lettersmall {(lettersmall) FMBADEPSF} def + /11x17tray {(11x17tray) FMBADEPSF} def + /11x17 {(11x17) FMBADEPSF} def + /ledgertray {(ledgertray) FMBADEPSF} def + /ledger {(ledger) FMBADEPSF} def + /legaltray {(legaltray) FMBADEPSF} def + /legal {(legal) FMBADEPSF} def + /statementtray {(statementtray) FMBADEPSF} def + /statement {(statement) FMBADEPSF} def + /executivetray {(executivetray) FMBADEPSF} def + /executive {(executive) FMBADEPSF} def + /a3tray {(a3tray) FMBADEPSF} def + /a3 {(a3) FMBADEPSF} def + /a4tray {(a4tray) FMBADEPSF} def + /a4 {(a4) FMBADEPSF} def + /a4small {(a4small) FMBADEPSF} def + /b4tray {(b4tray) FMBADEPSF} def + /b4 {(b4) FMBADEPSF} def + /b5tray {(b5tray) FMBADEPSF} def + /b5 {(b5) FMBADEPSF} def + FMNORMALIZEGRAPHICS + [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall + fx fw 2 div add fy fh 2 div add translate + rotate + fw 2 div neg fh 2 div neg translate + fw urx llx sub div fh ury lly sub div scale + llx neg lly neg translate + /FMdicttop countdictstack 1 add def + /FMoptop count def + } bind def +/FMENDEPSF { + count -1 FMoptop {pop pop} for + countdictstack -1 FMdicttop {pop end} for + FMEPSF restore + FrameDict begin + } bind def +FrameDict begin +/setmanualfeed { +%%BeginFeature *ManualFeed True + statusdict /manualfeed true put +%%EndFeature + } bind def +/max {2 copy lt {exch} if pop} bind def +/min {2 copy gt {exch} if pop} bind def +/inch {72 mul} def +/pagedimen { + paperheight sub abs 16 lt exch + paperwidth sub abs 16 lt and + {/papername exch def} {pop} ifelse + } bind def +/setpapername { + /papersizedict 14 dict def + papersizedict begin + /papername /unknown def + /Letter 8.5 inch 11.0 inch pagedimen + /LetterSmall 7.68 inch 10.16 inch pagedimen + /Tabloid 11.0 inch 17.0 inch pagedimen + /Ledger 17.0 inch 11.0 inch pagedimen + /Legal 8.5 inch 14.0 inch pagedimen + /Statement 5.5 inch 8.5 inch pagedimen + /Executive 7.5 inch 10.0 inch pagedimen + /A3 11.69 inch 16.5 inch pagedimen + /A4 8.26 inch 11.69 inch pagedimen + /A4Small 7.47 inch 10.85 inch pagedimen + /B4 10.125 inch 14.33 inch pagedimen + /B5 7.16 inch 10.125 inch pagedimen + end + } bind def +/papersize { + papersizedict begin + /Letter {lettertray letter} def + /LetterSmall {lettertray lettersmall} def + /Tabloid {11x17tray 11x17} def + /Ledger {ledgertray ledger} def + /Legal {legaltray legal} def + /Statement {statementtray statement} def + /Executive {executivetray executive} def + /A3 {a3tray a3} def + /A4 {a4tray a4} def + /A4Small {a4tray a4small} def + /B4 {b4tray b4} def + /B5 {b5tray b5} def + /unknown {unknown} def + papersizedict dup papername known {papername} {/unknown} ifelse get + end + statusdict begin stopped end + } bind def +/manualpapersize { + papersizedict begin + /Letter {letter} def + /LetterSmall {lettersmall} def + /Tabloid {11x17} def + /Ledger {ledger} def + /Legal {legal} def + /Statement {statement} def + /Executive {executive} def + /A3 {a3} def + /A4 {a4} def + /A4Small {a4small} def + /B4 {b4} def + /B5 {b5} def + /unknown {unknown} def + papersizedict dup papername known {papername} {/unknown} ifelse get + end + stopped + } bind def +/desperatepapersize { + statusdict /setpageparams known + { + paperwidth paperheight 0 1 + statusdict begin + {setpageparams} stopped + end + } {true} ifelse + } bind def +/papersizefailure { + FMAllowPaperSizeMismatch not + { +(The requested paper size is not available in any currently-installed tray) +(Edit the PS file to "FMAllowPaperSizeMismatch true" to use default tray) + FMFAILURE } if + } def +/DiacriticEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl +/numbersign /dollar /percent /ampersand /quotesingle /parenleft +/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K +/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash +/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h +/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar +/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute +/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis +/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis +/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve +/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex +/udieresis /dagger /.notdef /cent /sterling /section /bullet +/paragraph /germandbls /registered /copyright /trademark /acute +/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef +/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown +/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef +/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde +/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright +/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis +/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl +/periodcentered /quotesinglbase /quotedblbase /perthousand +/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute +/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve +/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron +/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron +] def +/ReEncode { + dup + length + dict begin + { + 1 index /FID ne + {def} + {pop pop} ifelse + } forall + 0 eq {/Encoding DiacriticEncoding def} if + currentdict + end + } bind def +FMPColor + + { + /BEGINBITMAPCOLOR { + BITMAPCOLOR} def + /BEGINBITMAPCOLORc { + BITMAPCOLORc} def + /BEGINBITMAPTRUECOLOR { + BITMAPTRUECOLOR } def + /BEGINBITMAPTRUECOLORc { + BITMAPTRUECOLORc } def + /BEGINBITMAPCMYK { + BITMAPCMYK } def + /BEGINBITMAPCMYKc { + BITMAPCMYKc } def + } + + { + /BEGINBITMAPCOLOR { + BITMAPGRAY} def + /BEGINBITMAPCOLORc { + BITMAPGRAYc} def + /BEGINBITMAPTRUECOLOR { + BITMAPTRUEGRAY } def + /BEGINBITMAPTRUECOLORc { + BITMAPTRUEGRAYc } def + /BEGINBITMAPCMYK { + BITMAPCMYKGRAY } def + /BEGINBITMAPCMYKc { + BITMAPCMYKGRAYc } def + } +ifelse +/K { + FMPrintAllColorsAsBlack { + dup 1 eq 2 index 1 eq and 3 index 1 eq and not + {7 {pop} repeat 0 0 0 1 0 0 0} if + } if + FrameCurColors astore + pop combineColor +} bind def +/graymode true def +fMLevel1 { + /fmGetFlip { + fMatrix2 exch get mul 0 lt { -1 } { 1 } ifelse + } FmBD +} if +/setPatternMode { + fMLevel1 { + 2 index patScreenDict exch known { + pop pop + patScreenDict exch get aload pop + freq + mul + 5 2 roll + fMatrix2 currentmatrix 1 get 0 ne { + 3 -1 roll 90 add 3 1 roll + sflipx 1 fmGetFlip sflipy 2 fmGetFlip neg mul + } { + sflipx 0 fmGetFlip sflipy 3 fmGetFlip mul + } ifelse + 0 lt {exch pop} {pop} ifelse + fMNegative { + {neg} fmConcatProcs + } if + bind + + + + systemdict /setscreen get exec + /FrameCurGray exch def + } { + /bwidth exch def + /bpside exch def + /bstring exch def + /onbits 0 def /offbits 0 def + freq sangle landscape {90 add} if + {/ypoint exch def + /xpoint exch def + /xindex xpoint 1 add 2 div bpside mul cvi def + /yindex ypoint 1 add 2 div bpside mul cvi def + bstring yindex bwidth mul xindex 8 idiv add get + 1 7 xindex 8 mod sub bitshift and 0 ne fMNegative {not} if + {/onbits onbits 1 add def 1} + {/offbits offbits 1 add def 0} + ifelse + } + setscreen + offbits offbits onbits add div fMNegative {1.0 exch sub} if + /FrameCurGray exch def + } ifelse + } { + pop pop + dup patCache exch known { + patCache exch get + } { + dup + patDict /bstring 3 -1 roll put + patDict + 9 PatFreq screenIndex get div dup matrix scale + makepattern + dup + patCache 4 -1 roll 3 -1 roll put + } ifelse + /FrameCurGray 0 def + /FrameCurPat exch def + } ifelse + /graymode false def + combineColor +} bind def +/setGrayScaleMode { + graymode not { + /graymode true def + fMLevel1 { + setCurrentScreen + } if + } if + /FrameCurGray exch def + combineColor +} bind def +/normalize { + transform round exch round exch itransform + } bind def +/dnormalize { + dtransform round exch round exch idtransform + } bind def +/lnormalize { + 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop + } bind def +/H { + lnormalize setlinewidth + } bind def +/Z { + setlinecap + } bind def + +/PFill { + graymode fMLevel1 or not { + gsave 1 setgray eofill grestore + } if +} bind def +/PStroke { + graymode fMLevel1 or not { + gsave 1 setgray stroke grestore + } if + stroke +} bind def +/X { + fillvals exch get + dup type /stringtype eq + {8 1 setPatternMode} + {setGrayScaleMode} + ifelse + } bind def +/V { + PFill gsave eofill grestore + } bind def +/Vclip { + clip + } bind def +/Vstrk { + currentlinewidth exch setlinewidth PStroke setlinewidth + } bind def +/N { + PStroke + } bind def +/Nclip { + strokepath clip newpath + } bind def +/Nstrk { + currentlinewidth exch setlinewidth PStroke setlinewidth + } bind def +/M {newpath moveto} bind def +/E {lineto} bind def +/D {curveto} bind def +/O {closepath} bind def +/L { + /n exch def + newpath + normalize + moveto + 2 1 n {pop normalize lineto} for + } bind def +/Y { + L + closepath + } bind def +/R { + /y2 exch def + /x2 exch def + /y1 exch def + /x1 exch def + x1 y1 + x2 y1 + x2 y2 + x1 y2 + 4 Y + } bind def +/rarc + {rad + arcto + } bind def +/RR { + /rad exch def + normalize + /y2 exch def + /x2 exch def + normalize + /y1 exch def + /x1 exch def + mark + newpath + { + x1 y1 rad add moveto + x1 y2 x2 y2 rarc + x2 y2 x2 y1 rarc + x2 y1 x1 y1 rarc + x1 y1 x1 y2 rarc + closepath + } stopped {x1 y1 x2 y2 R} if + cleartomark + } bind def +/RRR { + /rad exch def + normalize /y4 exch def /x4 exch def + normalize /y3 exch def /x3 exch def + normalize /y2 exch def /x2 exch def + normalize /y1 exch def /x1 exch def + newpath + normalize moveto + mark + { + x2 y2 x3 y3 rarc + x3 y3 x4 y4 rarc + x4 y4 x1 y1 rarc + x1 y1 x2 y2 rarc + closepath + } stopped + {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if + cleartomark + } bind def +/C { + grestore + gsave + R + clip + setCurrentScreen +} bind def +/CP { + grestore + gsave + Y + clip + setCurrentScreen +} bind def +/F { + FMfonts exch get + FMpointsize scalefont + setfont + } bind def +/Q { + /FMpointsize exch def + F + } bind def +/T { + moveto show + } bind def +/RF { + rotate + 0 ne {-1 1 scale} if + } bind def +/TF { + gsave + moveto + RF + show + grestore + } bind def +/P { + moveto + 0 32 3 2 roll widthshow + } bind def +/PF { + gsave + moveto + RF + 0 32 3 2 roll widthshow + grestore + } bind def +/S { + moveto + 0 exch ashow + } bind def +/SF { + gsave + moveto + RF + 0 exch ashow + grestore + } bind def +/B { + moveto + 0 32 4 2 roll 0 exch awidthshow + } bind def +/BF { + gsave + moveto + RF + 0 32 4 2 roll 0 exch awidthshow + grestore + } bind def +/G { + gsave + newpath + normalize translate 0.0 0.0 moveto + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath + PFill fill + grestore + } bind def +/Gstrk { + savematrix + newpath + 2 index 2 div add exch 3 index 2 div sub exch + normalize 2 index 2 div sub exch 3 index 2 div add exch + translate + scale + 0.0 0.0 1.0 5 3 roll arc + restorematrix + currentlinewidth exch setlinewidth PStroke setlinewidth + } bind def +/Gclip { + newpath + savematrix + normalize translate 0.0 0.0 moveto + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath + clip newpath + restorematrix + } bind def +/GG { + gsave + newpath + normalize translate 0.0 0.0 moveto + rotate + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath + PFill + fill + grestore + } bind def +/GGclip { + savematrix + newpath + normalize translate 0.0 0.0 moveto + rotate + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath + clip newpath + restorematrix + } bind def +/GGstrk { + savematrix + newpath + normalize translate 0.0 0.0 moveto + rotate + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath + restorematrix + currentlinewidth exch setlinewidth PStroke setlinewidth + } bind def +/A { + gsave + savematrix + newpath + 2 index 2 div add exch 3 index 2 div sub exch + normalize 2 index 2 div sub exch 3 index 2 div add exch + translate + scale + 0.0 0.0 1.0 5 3 roll arc + restorematrix + PStroke + grestore + } bind def +/Aclip { + newpath + savematrix + normalize translate 0.0 0.0 moveto + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath + strokepath clip newpath + restorematrix +} bind def +/Astrk { + Gstrk +} bind def +/AA { + gsave + savematrix + newpath + + 3 index 2 div add exch 4 index 2 div sub exch + + normalize 3 index 2 div sub exch 4 index 2 div add exch + translate + rotate + scale + 0.0 0.0 1.0 5 3 roll arc + restorematrix + PStroke + grestore + } bind def +/AAclip { + savematrix + newpath + normalize translate 0.0 0.0 moveto + rotate + dnormalize scale + 0.0 0.0 1.0 5 3 roll arc + closepath + strokepath clip newpath + restorematrix +} bind def +/AAstrk { + GGstrk +} bind def +/BEGINPRINTCODE { + /FMdicttop countdictstack 1 add def + /FMoptop count 7 sub def + /FMsaveobject save def + userdict begin + /showpage {} def + FMNORMALIZEGRAPHICS + 3 index neg 3 index neg translate + } bind def +/ENDPRINTCODE { + count -1 FMoptop {pop pop} for + countdictstack -1 FMdicttop {pop end} for + FMsaveobject restore + } bind def +/gn { + 0 + { 46 mul + cf read pop + 32 sub + dup 46 lt {exit} if + 46 sub add + } loop + add + } bind def +/cfs { + /str sl string def + 0 1 sl 1 sub {str exch val put} for + str def + } bind def +/ic [ + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 + 0 + {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} + {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} + {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} + {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} + {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} + {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} + {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} + {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} + {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} + ] def +/ms { + /sl exch def + /val 255 def + /ws cfs + /im cfs + /val 0 def + /bs cfs + /cs cfs + } bind def +400 ms +/ip { + is + 0 + cf cs readline pop + { ic exch get exec + add + } forall + pop + + } bind def +/rip { + + + bis ris copy pop + is + 0 + cf cs readline pop + { ic exch get exec + add + } forall + pop pop + ris gis copy pop + dup is exch + + cf cs readline pop + { ic exch get exec + add + } forall + pop pop + gis bis copy pop + dup add is exch + + cf cs readline pop + { ic exch get exec + add + } forall + pop + + } bind def +/rip4 { + + + kis cis copy pop + is + 0 + cf cs readline pop + { ic exch get exec + add + } forall + pop pop + cis mis copy pop + dup is exch + + cf cs readline pop + { ic exch get exec + add + } forall + pop pop + mis yis copy pop + dup dup add is exch + + cf cs readline pop + { ic exch get exec + add + } forall + pop pop + yis kis copy pop + 3 mul is exch + + cf cs readline pop + { ic exch get exec + add + } forall + pop + + } bind def +/wh { + /len exch def + /pos exch def + ws 0 len getinterval im pos len getinterval copy pop + pos len + } bind def +/bl { + /len exch def + /pos exch def + bs 0 len getinterval im pos len getinterval copy pop + pos len + } bind def +/s1 1 string def +/fl { + /len exch def + /pos exch def + /val cf s1 readhexstring pop 0 get def + pos 1 pos len add 1 sub {im exch val put} for + pos len + } bind def +/hx { + 3 copy getinterval + cf exch readhexstring pop pop + } bind def +/wbytes { + dup dup + 8 gt { pop 8 idiv mul } + { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse + } bind def +/BEGINBITMAPBWc { + 1 {} COMMONBITMAPc + } bind def +/BEGINBITMAPGRAYc { + 8 {} COMMONBITMAPc + } bind def +/BEGINBITMAP2BITc { + 2 {} COMMONBITMAPc + } bind def +/COMMONBITMAPc { + + /cvtProc exch def + /depth exch def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /lb width depth wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + cvtProc + /is im 0 lb getinterval def + ws 0 lb getinterval is copy pop + /cf currentfile def + width height depth [width 0 0 height neg 0 height] + {ip} image + bitmapsave restore + grestore + } bind def +/BEGINBITMAPBW { + 1 {} COMMONBITMAP + } bind def +/BEGINBITMAPGRAY { + 8 {} COMMONBITMAP + } bind def +/BEGINBITMAP2BIT { + 2 {} COMMONBITMAP + } bind def +/COMMONBITMAP { + /cvtProc exch def + /depth exch def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /bitmapsave save def + cvtProc + /is width depth wbytes string def + /cf currentfile def + width height depth [width 0 0 height neg 0 height] + {cf is readhexstring pop} image + bitmapsave restore + grestore + } bind def +/ngrayt 256 array def +/nredt 256 array def +/nbluet 256 array def +/ngreent 256 array def +fMLevel1 { +/colorsetup { + currentcolortransfer + /gryt exch def + /blut exch def + /grnt exch def + /redt exch def + 0 1 255 { + /indx exch def + /cynu 1 red indx get 255 div sub def + /magu 1 green indx get 255 div sub def + /yelu 1 blue indx get 255 div sub def + /kk cynu magu min yelu min def + /u kk currentundercolorremoval exec def +% /u 0 def + nredt indx 1 0 cynu u sub max sub redt exec put + ngreent indx 1 0 magu u sub max sub grnt exec put + nbluet indx 1 0 yelu u sub max sub blut exec put + ngrayt indx 1 kk currentblackgeneration exec sub gryt exec put + } for + {255 mul cvi nredt exch get} + {255 mul cvi ngreent exch get} + {255 mul cvi nbluet exch get} + {255 mul cvi ngrayt exch get} + setcolortransfer + {pop 0} setundercolorremoval + {} setblackgeneration + } bind def +} +{ +/colorSetup2 { + [ /Indexed /DeviceRGB 255 + {dup red exch get 255 div + exch dup green exch get 255 div + exch blue exch get 255 div} + ] setcolorspace +} bind def +} ifelse +/fakecolorsetup { + /tran 256 string def + 0 1 255 {/indx exch def + tran indx + red indx get 77 mul + green indx get 151 mul + blue indx get 28 mul + add add 256 idiv put} for + currenttransfer + {255 mul cvi tran exch get 255.0 div} + exch fmConcatProcs settransfer +} bind def +/BITMAPCOLOR { + /depth 8 def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /bitmapsave save def + fMLevel1 { + colorsetup + /is width depth wbytes string def + /cf currentfile def + width height depth [width 0 0 height neg 0 height] + {cf is readhexstring pop} {is} {is} true 3 colorimage + } { + colorSetup2 + /is width depth wbytes string def + /cf currentfile def + 7 dict dup begin + /ImageType 1 def + /Width width def + /Height height def + /ImageMatrix [width 0 0 height neg 0 height] def + /DataSource {cf is readhexstring pop} bind def + /BitsPerComponent depth def + /Decode [0 255] def + end image + } ifelse + bitmapsave restore + grestore + } bind def +/BITMAPCOLORc { + /depth 8 def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /lb width depth wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + fMLevel1 { + colorsetup + /is im 0 lb getinterval def + ws 0 lb getinterval is copy pop + /cf currentfile def + width height depth [width 0 0 height neg 0 height] + {ip} {is} {is} true 3 colorimage + } { + colorSetup2 + /is im 0 lb getinterval def + ws 0 lb getinterval is copy pop + /cf currentfile def + 7 dict dup begin + /ImageType 1 def + /Width width def + /Height height def + /ImageMatrix [width 0 0 height neg 0 height] def + /DataSource {ip} bind def + /BitsPerComponent depth def + /Decode [0 255] def + end image + } ifelse + bitmapsave restore + grestore + } bind def +/BITMAPTRUECOLORc { + /depth 24 def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /lb width depth wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + + /is im 0 lb getinterval def + /ris im 0 width getinterval def + /gis im width width getinterval def + /bis im width 2 mul width getinterval def + + ws 0 lb getinterval is copy pop + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + {width rip pop ris} {gis} {bis} true 3 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPCMYKc { + /depth 32 def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /lb width depth wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + + /is im 0 lb getinterval def + /cis im 0 width getinterval def + /mis im width width getinterval def + /yis im width 2 mul width getinterval def + /kis im width 3 mul width getinterval def + + ws 0 lb getinterval is copy pop + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + {width rip4 pop cis} {mis} {yis} {kis} true 4 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPTRUECOLOR { + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /bitmapsave save def + /is width string def + /gis width string def + /bis width string def + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + { cf is readhexstring pop } + { cf gis readhexstring pop } + { cf bis readhexstring pop } + true 3 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPCMYK { + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /bitmapsave save def + /is width string def + /mis width string def + /yis width string def + /kis width string def + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + { cf is readhexstring pop } + { cf mis readhexstring pop } + { cf yis readhexstring pop } + { cf kis readhexstring pop } + true 4 colorimage + bitmapsave restore + grestore + } bind def +/BITMAPTRUEGRAYc { + /depth 24 def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /lb width depth wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + + /is im 0 lb getinterval def + /ris im 0 width getinterval def + /gis im width width getinterval def + /bis im width 2 mul width getinterval def + ws 0 lb getinterval is copy pop + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + {width rip pop ris gis bis width gray} image + bitmapsave restore + grestore + } bind def +/BITMAPCMYKGRAYc { + /depth 32 def + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /lb width depth wbytes def + sl lb lt {lb ms} if + /bitmapsave save def + + /is im 0 lb getinterval def + /cis im 0 width getinterval def + /mis im width width getinterval def + /yis im width 2 mul width getinterval def + /kis im width 3 mul width getinterval def + ws 0 lb getinterval is copy pop + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + {width rip pop cis mis yis kis width cgray} image + bitmapsave restore + grestore + } bind def +/cgray { + /ww exch def + /k exch def + /y exch def + /m exch def + /c exch def + 0 1 ww 1 sub { /i exch def c i get m i get y i get k i get CMYKtoRGB + .144 mul 3 1 roll .587 mul 3 1 roll .299 mul add add + c i 3 -1 roll floor cvi put } for + c + } bind def +/gray { + /ww exch def + /b exch def + /g exch def + /r exch def + 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul + b i get .114 mul add add r i 3 -1 roll floor cvi put } for + r + } bind def +/BITMAPTRUEGRAY { + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /bitmapsave save def + /is width string def + /gis width string def + /bis width string def + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + { cf is readhexstring pop + cf gis readhexstring pop + cf bis readhexstring pop width gray} image + bitmapsave restore + grestore + } bind def +/BITMAPCMYKGRAY { + gsave + + 3 index 2 div add exch + 4 index 2 div add exch + translate + rotate + 1 index 2 div neg + 1 index 2 div neg + translate + scale + /height exch def /width exch def + /bitmapsave save def + /is width string def + /yis width string def + /mis width string def + /kis width string def + /cf currentfile def + width height 8 [width 0 0 height neg 0 height] + { cf is readhexstring pop + cf mis readhexstring pop + cf yis readhexstring pop + cf kis readhexstring pop width cgray} image + bitmapsave restore + grestore + } bind def +/BITMAPGRAY { + 8 {fakecolorsetup} COMMONBITMAP + } bind def +/BITMAPGRAYc { + 8 {fakecolorsetup} COMMONBITMAPc + } bind def +/ENDBITMAP { + } bind def +end + /ALDmatrix matrix def ALDmatrix currentmatrix pop +/StartALD { + /ALDsave save def + savematrix + ALDmatrix setmatrix + } bind def +/InALD { + restorematrix + } bind def +/DoneALD { + ALDsave restore + } bind def +/I { setdash } bind def +/J { [] 0 setdash } bind def +%%EndProlog +%%BeginSetup +(5.0) FMVERSION +1 1 0 0 612 792 0 1 12 FMDOCUMENT +0 0 /Times-Roman FMFONTDEFINE +1 0 /Helvetica-Bold FMFONTDEFINE +2 0 /Times-Italic FMFONTDEFINE +3 0 /Helvetica-BoldOblique FMFONTDEFINE +4 0 /Courier FMFONTDEFINE +32 FMFILLS +0 0 FMFILL +1 0.1 FMFILL +2 0.3 FMFILL +3 0.5 FMFILL +4 0.7 FMFILL +5 0.9 FMFILL +6 0.97 FMFILL +7 1 FMFILL +8 <0f1e3c78f0e1c387> FMFILL +9 <0f87c3e1f0783c1e> FMFILL +10 FMFILL +11 FMFILL +12 <8142241818244281> FMFILL +13 <03060c183060c081> FMFILL +14 <8040201008040201> FMFILL +16 1 FMFILL +17 0.9 FMFILL +18 0.7 FMFILL +19 0.5 FMFILL +20 0.3 FMFILL +21 0.1 FMFILL +22 0.03 FMFILL +23 0 FMFILL +24 FMFILL +25 FMFILL +26 <3333333333333333> FMFILL +27 <0000ffff0000ffff> FMFILL +28 <7ebddbe7e7dbbd7e> FMFILL +29 FMFILL +30 <7fbfdfeff7fbfdfe> FMFILL +%%EndSetup +%%Page: "1" 1 +%%BeginPaperSize: Letter +%%EndPaperSize +612 792 0 FMBEGINPAGE +[0 0 0 1 0 0 0] +[ 0 1 1 0 1 0 0] +[ 1 0 1 0 0 1 0] +[ 1 1 0 0 0 0 1] +[ 1 0 0 0 0 1 1] +[ 0 1 0 0 1 0 1] +[ 0 0 1 0 1 1 0] + 7 FrameSetSepColors +FrameNoSep +0 0 0 1 0 0 0 K +J +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 9 558 36 R +7 X +0 0 0 1 0 0 0 K +V +0 8 Q +0 X +(\251 Sun Microsystems, Inc., 1996) 54 30.67 T +(1) 306 30.67 T +54 54 297 621 R +7 X +V +1 10 Q +0 X +(INTR) 54 614.33 T +(ODUCTION) 77.13 614.33 T +0 F +0.25 0.09 (Since its release in May of 1995, Ja) 54 598.33 B +0.25 0.09 (v) 200.97 598.33 B +0.25 0.09 (a has swept across the) 205.81 598.33 B +0.25 0.71 (Internet. W) 54 587.33 B +0.25 0.71 (ith its promise of truly netw) 107.2 587.33 B +0.25 0.71 (ork oriented) 240.34 587.33 B +0.25 0.28 (computing and a nearly uni) 54 576.33 B +0.25 0.28 (v) 171.5 576.33 B +0.25 0.28 (ersal system for distrib) 176.63 576.33 B +0.25 0.28 (uting) 275.31 576.33 B +0.25 0.08 (applications, Ja) 54 565.33 B +0.25 0.08 (v) 116.99 565.33 B +0.25 0.08 (a is widely seen as the solution to man) 121.82 565.33 B +0.25 0.08 (y of) 280.68 565.33 B +0.25 0.04 (the most persistent problems in client/serv) 54 554.33 B +0.25 0.04 (er computing and) 225.93 554.33 B +0.25 0.46 (on the W) 54 543.33 B +0.25 0.46 (orld W) 94.03 543.33 B +0.25 0.46 (ide W) 124.68 543.33 B +0.25 0.46 (eb) 150.59 543.33 B +0.25 0.46 (. Ho) 160.54 543.33 B +0.25 0.46 (we) 179.6 543.33 B +0.25 0.46 (v) 191.93 543.33 B +0.25 0.46 (er) 197.24 543.33 B +0.25 0.46 (, this same ability to) 205.52 543.33 B +0.25 0.05 (distrib) 54 532.33 B +0.25 0.05 (ute e) 79.72 532.33 B +0.25 0.05 (x) 99.23 532.33 B +0.25 0.05 (ecutables automatically o) 104.13 532.33 B +0.25 0.05 (v) 207.4 532.33 B +0.25 0.05 (er the netw) 212.3 532.33 B +0.25 0.05 (ork raises) 257.69 532.33 B +0.25 0.36 (concerns about Ja) 54 521.33 B +0.25 0.36 (v) 131.51 521.33 B +0.25 0.36 (a\325) 136.62 521.33 B +0.25 0.36 (s ef) 144.56 521.33 B +0.25 0.36 (fect on netw) 160.15 521.33 B +0.25 0.36 (ork security) 214.3 521.33 B +0.25 0.36 (. These) 265.71 521.33 B +0.25 0.13 (concerns ha) 54 510.33 B +0.25 0.13 (v) 102.93 510.33 B +0.25 0.13 (e been heightened by the disco) 107.91 510.33 B +0.25 0.13 (v) 235.85 510.33 B +0.25 0.13 (ery of se) 240.83 510.33 B +0.25 0.13 (v) 276.65 510.33 B +0.25 0.13 (eral) 281.63 510.33 B +(security related b) 54 499.33 T +(ugs in e) 122.67 499.33 T +(xisting Ja) 153.63 499.33 T +(v) 191.49 499.33 T +(a implementations.) 196.24 499.33 T +0.25 0.01 (This paper discusses these concerns and ho) 54 480.33 B +0.25 0.01 (w Ja) 228.47 480.33 B +0.25 0.01 (v) 246.61 480.33 B +0.25 0.01 (a addresses) 251.38 480.33 B +0.25 0.09 (them. It also describes se) 54 469.33 B +0.25 0.09 (v) 157.44 469.33 B +0.25 0.09 (eral ef) 162.39 469.33 B +0.25 0.09 (forts underw) 188.3 469.33 B +0.25 0.09 (ay to enhance) 240.4 469.33 B +0.25 0.13 (and e) 54 458.33 B +0.25 0.13 (xtend the Ja) 76.14 458.33 B +0.25 0.13 (v) 125.79 458.33 B +0.25 0.13 (a security model. It is di) 130.67 458.33 B +0.25 0.13 (vided into three) 231.75 458.33 B +0.25 0.37 (sections. The f) 54 447.33 B +0.25 0.37 (irst section describes Ja) 118.08 447.33 B +0.25 0.37 (v) 222.01 447.33 B +0.25 0.37 (a in general and) 227.13 447.33 B +0.25 0.01 (discusses the security implications of Ja) 54 436.33 B +0.25 0.01 (v) 215.22 436.33 B +0.25 0.01 (a. Readers who are) 219.98 436.33 B +-0.14 (already f) 54 425.33 P +-0.14 (amiliar with Ja) 89.02 425.33 P +-0.14 (v) 147.98 425.33 P +-0.14 (a may wish to proceed to the second) 152.73 425.33 P +0.25 0.14 (section which discusses computer security in general, ho) 54 414.33 B +0.25 0.14 (w) 289.78 414.33 B +2.14 1.25 (security af) 54 403.33 B +2.14 1.25 (fects netw) 111.57 403.33 B +2.14 1.25 (ork) 166.93 403.33 B +2.14 1.25 (ed systems and some) 183.91 403.33 B +1.86 1.25 (misconceptions about security) 54 392.33 B +1.86 1.25 (. Because these) 214.41 392.33 B +0.25 0.32 (misconceptions are v) 54 381.33 B +0.25 0.32 (ery common and af) 145.1 381.33 B +0.25 0.32 (fect ho) 228.46 381.33 B +0.25 0.32 (w people) 258.16 381.33 B +0.25 0.12 (approach ne) 54 370.33 B +0.25 0.12 (w technology) 103.94 370.33 B +0.25 0.12 (, readers who are unf) 159.18 370.33 B +0.25 0.12 (amiliar with) 246.79 370.33 B +0.25 0.17 (general security issues are encouraged to read this section) 54 359.33 B +0.25 0.55 (carefully) 54 348.33 B +0.25 0.55 (. The third section discusses Ja) 93.82 348.33 B +0.25 0.55 (v) 235.74 348.33 B +0.25 0.55 (a security in) 241.04 348.33 B +0.25 0.08 (particular) 54 337.33 B +0.25 0.08 (, looks at ho) 92.69 337.33 B +0.25 0.08 (w the security model is implemented,) 143.07 337.33 B +(and describes upcoming e) 54 326.33 T +(xtensions to the security model.) 157.44 326.33 T +1 F +(J) 54 303.33 T +(A) 59.36 303.33 T +(V) 65.78 303.33 T +(A) 71.65 303.33 T +(The Ja) 54 280.33 T +(v) 85.53 280.33 T +(a Platf) 90.89 280.33 T +(orm) 120.7 280.33 T +0 F +0.25 0.16 (Ja) 54 264.33 B +0.25 0.16 (v) 62.45 264.33 B +0.25 0.16 (a is a re) 67.35 264.33 B +0.25 0.16 (v) 100.1 264.33 B +0.25 0.16 (olutionary ne) 105.05 264.33 B +0.25 0.16 (w application platform from Sun) 160.16 264.33 B +0.25 0.54 (Microsystems. Lik) 54 253.33 B +0.25 0.54 (e other operating systems, the Ja) 138.36 253.33 B +0.25 0.54 (v) 287.27 253.33 B +0.25 0.54 (a) 292.56 253.33 B +-0.18 (platform pro) 54 242.33 P +-0.18 (vides de) 103.94 242.33 P +-0.18 (v) 136.56 242.33 P +-0.18 (elopers with I/O, netw) 141.41 242.33 P +-0.18 (orking, windo) 230.21 242.33 P +-0.18 (ws) 285.89 242.33 P +0.25 0.44 (and graphics capabilities and other f) 54 231.33 B +0.25 0.44 (acilities needed to) 216.29 231.33 B +0.25 0.62 (de) 54 220.33 B +0.25 0.62 (v) 64.43 220.33 B +0.25 0.62 (elop and run sophisticated applications. The Ja) 69.9 220.33 B +0.25 0.62 (v) 287.19 220.33 B +0.25 0.62 (a) 292.56 220.33 B +0.25 0.08 (platform also pro) 54 209.33 B +0.25 0.08 (vides an important capability not found in) 124.55 209.33 B +0.25 0.39 (traditional operating systems. This ability) 54 198.33 B +0.25 0.39 (, called Write) 237.33 198.33 B +0.25 0.35 (Once/Run An) 54 187.33 B +0.25 0.35 (ywhere e) 113.2 187.33 B +0.25 0.35 (x) 152.45 187.33 B +0.25 0.35 (ecutables, allo) 157.65 187.33 B +0.25 0.35 (ws Ja) 220.08 187.33 B +0.25 0.35 (v) 243.81 187.33 B +0.25 0.35 (a programs) 248.91 187.33 B +0.25 0.09 (written on one type of hardw) 54 176.33 B +0.25 0.09 (are or operating system to run) 173.46 176.33 B +(unmodi\336ed on almost an) 54 165.33 T +(y other type of computer) 153.02 165.33 T +(.) 251.34 165.33 T +0.25 0.22 (Applications written for traditional operating systems are) 54 146.33 B +0.25 0.07 (tied directly to that platform and cannot be easily mo) 54 135.33 B +0.25 0.07 (v) 271.83 135.33 B +0.25 0.07 (ed to) 276.75 135.33 B +0.25 0.03 (another machine or operating system. This locks de) 54 124.33 B +0.25 0.03 (v) 263.06 124.33 B +0.25 0.03 (elopers) 267.94 124.33 B +-0.08 (to that particular) 54 113.33 P +-0.08 (, often proprietary) 119.54 113.33 P +-0.08 (, system. If the application) 191.21 113.33 P +0.25 0.17 (must be deplo) 54 102.33 B +0.25 0.17 (yed on other platforms, the de) 112.77 102.33 B +0.25 0.17 (v) 238.98 102.33 B +0.25 0.17 (elopers must) 244 102.33 B +0.24 (port the application to those platforms. These porting ef) 54 91.33 P +0.24 (forts) 278.67 91.33 P +0.25 0.11 (are often e) 54 80.33 B +0.25 0.11 (xpensi) 97.74 80.33 B +0.25 0.11 (v) 124.26 80.33 B +0.25 0.11 (e and w) 129.21 80.33 B +0.25 0.11 (aste resources that could be used) 161.48 80.33 B +0.25 0.56 (for ne) 54 69.33 B +0.25 0.56 (w de) 80.97 69.33 B +0.25 0.56 (v) 102.37 69.33 B +0.25 0.56 (elopment. Because ports to the secondary) 107.78 69.33 B +0.25 0.11 (platforms often lag behind the primary platform by se) 54 58.33 B +0.25 0.11 (v) 276.71 58.33 B +0.25 0.11 (eral) 281.67 58.33 B +315 54 558 621 R +7 X +V +0 X +0.11 (months, the application lock of traditional operating systems) 315 614.33 P +0.25 0.51 (also forces the or) 315 603.33 B +0.25 0.51 (g) 393.4 603.33 B +0.25 0.51 (anization to support man) 398.86 603.33 B +0.25 0.51 (y dif) 510.94 603.33 B +0.25 0.51 (ferent) 532.11 603.33 B +0.25 0.27 (v) 315 592.33 B +0.25 0.27 (ersions of the application. This administrati) 320.12 592.33 B +0.25 0.27 (v) 506.95 592.33 B +0.25 0.27 (e o) 512.07 592.33 B +0.25 0.27 (v) 524.91 592.33 B +0.25 0.27 (erhead) 530.02 592.33 B +0.25 0.32 (mak) 315 581.33 B +0.25 0.32 (es netw) 333.07 581.33 B +0.25 0.32 (ork) 365.7 581.33 B +0.25 0.32 (ed computing with traditional PCs a v) 379.88 581.33 B +0.25 0.32 (ery) 544.6 581.33 B +(e) 315 570.33 T +(xpensi) 319.29 570.33 T +(v) 345.15 570.33 T +(e proposition.) 350 570.33 T +0 8 Q +(1) 405 574.33 T +0 10 Q +0.25 0.5 (W) 315 551.33 B +0.25 0.5 (ith their Write Once/Run An) 324.54 551.33 B +0.25 0.5 (ywhere capability) 453.4 551.33 B +0.25 0.5 (, Ja) 532.92 551.33 B +0.25 0.5 (v) 548.31 551.33 B +0.25 0.5 (a) 553.56 551.33 B +0.25 0.08 (applications do not suf) 315 540.33 B +0.25 0.08 (fer from these problems. De) 408.23 540.33 B +0.25 0.08 (v) 523.69 540.33 B +0.25 0.08 (elopers) 528.62 540.33 B +0.25 0.57 (w) 315 529.33 B +0.25 0.57 (orking on a Sun Ultra computer running the Solaris) 322.69 529.33 B +0.21 (operating system can produce an e) 315 518.33 P +0.21 (x) 453.93 518.33 P +0.21 (ecutable which also runs) 458.78 518.33 P +0.25 0.54 (on W) 315 507.33 B +0.25 0.54 (indo) 338.95 507.33 B +0.25 0.54 (ws PCs, Macintosh and man) 358.65 507.33 B +0.25 0.54 (y other types of) 486.64 507.33 B +0.25 0.13 (computers without an) 315 496.33 B +0.25 0.13 (y porting. This frees up de) 404.69 496.33 B +0.25 0.13 (v) 514.86 496.33 B +0.25 0.13 (elopment) 519.84 496.33 B +0.25 0.11 (resources for other w) 315 485.33 B +0.25 0.11 (ork and ensures that ne) 402.7 485.33 B +0.25 0.11 (w applications) 498.24 485.33 B +0.25 0.32 (and ne) 315 474.33 B +0.25 0.32 (w v) 343.33 474.33 B +0.25 0.32 (ersions of old applications are simultaneously) 359.12 474.33 B +(a) 315 463.33 T +(v) 319.24 463.33 T +(ailable for all platforms in an or) 323.99 463.33 T +(g) 451.01 463.33 T +(anization.) 455.96 463.33 T +1 F +(The Vir) 315 441.33 T +(tual Mac) 349.1 441.33 T +(hine) 389.01 441.33 T +0 F +0.25 0.41 (Ja) 315 425.33 B +0.25 0.41 (v) 323.96 425.33 B +0.25 0.41 (a pro) 329.13 425.33 B +0.25 0.41 (vides its Write Once/Run An) 351.57 425.33 B +0.25 0.41 (ywhere capability) 479.73 425.33 B +0.25 0.19 (through the Ja) 315 414.33 B +0.25 0.19 (v) 374.55 414.33 B +0.25 0.19 (a V) 379.49 414.33 B +0.25 0.19 (irtual Machine. The V) 393.86 414.33 B +0.25 0.19 (irtual Machine is) 486.77 414.33 B +0.25 0.01 (implemented on top of a machine\325) 315 403.33 B +0.25 0.01 (s nati) 453.51 403.33 B +0.25 0.01 (v) 474.96 403.33 B +0.25 0.01 (e operating system.) 479.82 403.33 B +0.25 0.32 (Ja) 315 392.33 B +0.25 0.32 (v) 323.78 392.33 B +0.25 0.32 (a applications run on top of the virtual machine. The) 328.86 392.33 B +0.25 0.2 (virtual machine insulates the application from dif) 315 381.33 B +0.25 0.2 (ferences) 523.31 381.33 B +0.25 0.28 (between underlying operating systems and hardw) 315 370.33 B +0.25 0.28 (are and) 526.93 370.33 B +0.25 1.19 (ensures cross platform compatibility among all) 315 359.33 B +(implementations of the Ja) 315 348.33 T +(v) 417.85 348.33 T +(a platform \050see \336g. 1\051.) 422.6 348.33 T +0.25 0.1 (The Ja) 315 154.71 B +0.25 0.1 (v) 342 154.71 B +0.25 0.1 (a V) 346.85 154.71 B +0.25 0.1 (irtual machine w) 360.95 154.71 B +0.25 0.1 (as f) 430.09 154.71 B +0.25 0.1 (irst widely a) 444.33 154.71 B +0.25 0.1 (v) 495.31 154.71 B +0.25 0.1 (ailable in web) 500.16 154.71 B +0.25 0.09 (bro) 315 143.71 B +0.25 0.09 (wsers. Ja) 328.33 143.71 B +0.25 0.09 (v) 365.25 143.71 B +0.25 0.09 (a-enabled bro) 370.08 143.71 B +0.25 0.09 (wsers are currently a) 425.89 143.71 B +0.25 0.09 (v) 511.24 143.71 B +0.25 0.09 (ailable for) 516.08 143.71 B +315 117 558 137.09 C +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +315 124.99 446.98 124.99 2 L +0.25 H +2 Z +0 X +0 0 0 1 0 0 0 K +N +0 0 612 792 C +0 9.5 Q +0 X +0 0 0 1 0 0 0 K +1.12 (1 A recent report from F) 315 110.67 P +1.12 (orrester Research estimates that, for) 417.11 110.67 P +-0.09 (companies aggressi) 315 100.67 P +-0.09 (v) 388.82 100.67 P +-0.09 (ely managing their PC related costs, cost of) 393.42 100.67 P +3.11 (o) 315 90.67 P +3.11 (wnership for the a) 319.51 90.67 P +3.11 (v) 397.5 90.67 P +3.11 (erage PC ranges between $3,500 and) 402.11 90.67 P +1 ($5,000 per year) 315 80.67 P +1 (. Other studies ha) 375.84 80.67 P +1 (v) 445.14 80.67 P +1 (e sho) 449.75 80.67 P +1 (wn that for companies) 470.3 80.67 P +0.19 (which are not closely w) 315 70.67 P +0.19 (atching PC related costs, cost of o) 405.9 70.67 P +0.19 (wner-) 535.85 70.67 P +(ship can be as high as $12,000 per year) 315 60.67 T +(.) 463.54 60.67 T +0 0 0 1 0 0 0 K +315 170.38 558 345 C +0 0 0 1 0 0 0 K +321.88 311.75 547.5 334.87 R +7 X +0 0 0 1 0 0 0 K +V +0.5 H +2 Z +0 X +N +0 10 Q +(Ja) 399.02 322.04 T +(v) 407.15 322.04 T +(a Applications) 411.9 322.04 T +322.38 286.25 548 307.5 R +7 X +V +0 X +N +(Ja) 392.5 294.87 T +(v) 400.63 294.87 T +(a V) 405.38 294.87 T +(irtual Machine) 418.94 294.87 T +322.5 231.5 373.75 279 R +7 X +V +0 X +N +380.5 232.12 431.75 279.62 R +7 X +V +0 X +N +439.13 231.5 490.38 279 R +7 X +V +0 X +N +496.5 232.12 547.75 279.62 R +7 X +V +0 X +N +(Solaris) 336.25 253.62 T +(W) 388.13 253.62 T +(indo) 397.17 253.62 T +(ws) 414.7 253.62 T +(MacOS) 451.25 253.62 T +(Ja) 505.63 253.62 T +(v) 513.76 253.62 T +(aOS) 518.51 253.62 T +322.38 206.62 373.63 228.5 R +7 X +V +0 X +N +380.38 206.62 431.63 228.5 R +7 X +V +0 X +N +439.63 206.62 490.88 228.5 R +7 X +V +0 X +N +496.38 206.62 547.63 228.5 R +7 X +V +0 X +N +0 9 Q +(SP) 325.63 216.75 T +(ARC/Intel) 334.81 216.75 T +(Intel/Others) 385 216.12 T +(Po) 448.75 216.12 T +(werPC) 458.03 216.12 T +(Thin Clients) 500.63 217.37 T +(Fig. 1 The Ja) 321.88 193.62 T +(v) 368.7 193.62 T +(a V) 372.97 193.62 T +(irtual Machine sits between a nati) 385.17 193.62 T +(v) 506.18 193.62 T +(e operating) 510.54 193.62 T +(system and Ja) 321.88 184.62 T +(v) 371.69 184.62 T +(a applications, allo) 375.97 184.62 T +(wing a single e) 443.48 184.62 T +(x) 497.59 184.62 T +(ecutable to) 501.96 184.62 T +(run on man) 321.88 175.62 T +(y dif) 362.74 175.62 T +(ferent systems.) 379.26 175.62 T +0 0 0 1 0 0 0 K +0 0 612 792 C +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 630 558 740.88 R +7 X +0 0 0 1 0 0 0 K +V +1 18 Q +0 X +(Ja) 243.58 727.96 T +(v) 263.33 727.96 T +(a) 272.97 727.96 T +0 9.6 Q +(\252) 282.98 732.76 T +1 18 Q +( Security) 292.39 727.96 T +2 12 Q +(J) 212.98 692.23 T +(. Ste) 218 692.23 T +(ven F) 238.49 692.23 T +(ritzing) 264.82 692.23 T +(er) 296.04 692.23 T +(, Marianne Mueller) 304.7 692.23 T +0 F +(Sun Microsystems, Inc.) 249.34 676.23 T +FMENDPAGE +%%EndPage: "1" 1 +%%Page: "2" 2 +612 792 0 FMBEGINPAGE +[0 0 0 1 0 0 0] +[ 0 1 1 0 1 0 0] +[ 1 0 1 0 0 1 0] +[ 1 1 0 0 0 0 1] +[ 1 0 0 0 0 1 1] +[ 0 1 0 0 1 0 1] +[ 0 0 1 0 1 1 0] + 7 FrameSetSepColors +FrameNoSep +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 18 558 45 R +7 X +0 0 0 1 0 0 0 K +V +0 8 Q +0 X +(\251 Sun Microsystems, Inc., 1996) 54 39.67 T +(2) 306 39.67 T +54 54 558 738 R +7 X +V +0 10 Q +0 X +0.25 0.11 (the major v) 54 731.33 B +0.25 0.11 (ersions of the Unix operating system, W) 101.1 731.33 B +0.25 0.11 (indo) 267.82 731.33 B +0.25 0.11 (ws) 285.78 731.33 B +0.25 0.49 (3.1, 95, and NT) 54 720.33 B +0.25 0.49 (, the MacOS and OS/2 W) 124.1 720.33 B +0.25 0.49 (arp. The Ja) 237.5 720.33 B +0.25 0.49 (v) 287.32 720.33 B +0.25 0.49 (a) 292.56 720.33 B +0.25 0.42 (V) 54 709.33 B +0.25 0.42 (irtual Machine has also been licensed by e) 61.04 709.33 B +0.25 0.42 (v) 249.48 709.33 B +0.25 0.42 (ery major) 254.76 709.33 B +0.25 0.54 (operating systems v) 54 698.33 B +0.25 0.54 (endor) 144.07 698.33 B +0.25 0.54 (, including Apple, HP) 169.15 698.33 B +0.25 0.54 (, IBM,) 267.65 698.33 B +0.25 0.09 (Microsoft and SunSoft. These v) 54 687.33 B +0.25 0.09 (endors will b) 184.95 687.33 B +0.25 0.09 (undle the Ja) 238.61 687.33 B +0.25 0.09 (v) 287.72 687.33 B +0.25 0.09 (a) 292.56 687.33 B +0.25 0.4 (V) 54 676.33 B +0.25 0.4 (irtual Machine with their operating systems. As these) 61.02 676.33 B +0.25 0.35 (implementations become a) 54 665.33 B +0.25 0.35 (v) 169.84 665.33 B +0.25 0.35 (ailable o) 174.94 665.33 B +0.25 0.35 (v) 212.32 665.33 B +0.25 0.35 (er the ne) 217.52 665.33 B +0.25 0.35 (xt se) 255.43 665.33 B +0.25 0.35 (v) 275.77 665.33 B +0.25 0.35 (eral) 280.97 665.33 B +0.25 0.2 (months, Ja) 54 654.33 B +0.25 0.2 (v) 98.83 654.33 B +0.25 0.2 (a will become a standard part of all important) 103.79 654.33 B +(operating systems, and an e) 54 643.33 T +(xpected part of e) 164.11 643.33 T +(v) 230.78 643.33 T +(ery desktop.) 235.63 643.33 T +1 F +(Applets) 54 621.33 T +0 F +0.25 0.17 (W) 54 605.33 B +0.25 0.17 (eb Applets are one of the most e) 62.81 605.33 B +0.25 0.17 (xciting uses of the Ja) 199.12 605.33 B +0.25 0.17 (v) 287.64 605.33 B +0.25 0.17 (a) 292.56 605.33 B +0.18 (Platform. Applets are small pieces of e) 54 594.33 P +0.18 (x) 210.16 594.33 P +0.18 (ecutable code which) 215.01 594.33 P +0.25 0.12 (may be included in W) 54 583.33 B +0.25 0.12 (eb pages and which run inside of the) 144.84 583.33 B +0.25 0.46 (user\325) 54 572.33 B +0.25 0.46 (s bro) 75.76 572.33 B +0.25 0.46 (wser) 97.8 572.33 B +0.25 0.46 (. While traditional web pages ha) 117.98 572.33 B +0.25 0.46 (v) 263.3 572.33 B +0.25 0.46 (e been) 268.61 572.33 B +0.25 0.48 (limited to simple te) 54 561.33 B +0.25 0.48 (xt and graphics, applets allo) 141.76 561.33 B +0.25 0.48 (w web) 268.44 561.33 B +0.25 0.1 (publishers to include sophisticated, interacti) 54 550.33 B +0.25 0.1 (v) 235.22 550.33 B +0.25 0.1 (e applications) 240.17 550.33 B +0.25 0.22 (in their pages. F) 54 539.33 B +0.25 0.22 (or e) 122.72 539.33 B +0.25 0.22 (xample, a stock brok) 138.96 539.33 B +0.25 0.22 (er might w) 227.27 539.33 B +0.25 0.22 (ant to) 273.17 539.33 B +0.25 0.49 (publish the results of a f) 54 528.33 B +0.25 0.49 (inancial analysis model. W) 163.93 528.33 B +0.25 0.49 (ith) 285.45 528.33 B +0.25 0.21 (applets, instead of publishing a simple graph sho) 54 517.33 B +0.25 0.21 (wing the) 260.59 517.33 B +0.25 0.31 (results of the model, the brok) 54 506.33 B +0.25 0.31 (er could publish the model) 181.62 506.33 B +0.25 0.1 (itself, along with connections to li) 54 495.33 B +0.25 0.1 (v) 194.6 495.33 B +0.25 0.1 (e stock mark) 199.55 495.33 B +0.25 0.1 (et data and) 252.21 495.33 B +(the customer\325) 54 484.33 T +(s portfolio.) 108.16 484.33 T +1 F +(Security Implications) 54 462.33 T +0 F +0.25 0.4 (While applets solv) 54 446.33 B +0.25 0.4 (e man) 135.98 446.33 B +0.25 0.4 (y of the important problems in) 162.23 446.33 B +0.25 0.04 (client/serv) 54 435.33 B +0.25 0.04 (er and netw) 95.93 435.33 B +0.25 0.04 (ork-centric computing, the) 143.39 435.33 B +0.25 0.04 (y also raise) 251.09 435.33 B +0.25 0.23 (ne) 54 424.33 B +0.25 0.23 (w concerns about security) 63.65 424.33 B +0.25 0.23 (. In traditional en) 173.62 424.33 B +0.25 0.23 (vironments,) 247.21 424.33 B +0.25 0.04 (companies could protect themselv) 54 413.33 B +0.25 0.04 (es by controlling ph) 192.25 413.33 B +0.25 0.04 (ysical) 273.47 413.33 B +0.25 0.49 (and netw) 54 402.33 B +0.25 0.49 (ork access to their computers by establishing) 94.46 402.33 B +0.25 0.34 (policies for what kinds of softw) 54 391.33 B +0.25 0.34 (are can be used on their) 193.12 391.33 B +0.25 0.16 (machines. These steps include b) 54 380.33 B +0.25 0.16 (uilding a f) 188.4 380.33 B +0.25 0.16 (ire) 231.24 380.33 B +0.25 0.16 (w) 242.03 380.33 B +0.25 0.16 (all between) 249.31 380.33 B +0.25 0.09 (the Internet and the compan) 54 369.33 B +0.25 0.09 (y\325) 169.02 369.33 B +0.25 0.09 (s intranet, obtaining softw) 176.99 369.33 B +0.25 0.09 (are) 284.6 369.33 B +0.25 0.15 (only from kno) 54 358.33 B +0.25 0.15 (wn and trusted sources, and using anti-virus) 113.38 358.33 B +(programs to check all ne) 54 347.33 T +(w softw) 152.06 347.33 T +(are.) 183.9 347.33 T +0.25 0.09 (Use of applets potentially adds a ne) 54 328.33 B +0.25 0.09 (w security vunerability) 200.49 328.33 B +0.25 0.09 (.) 294.5 328.33 B +0.17 (An emplo) 54 317.33 P +0.17 (yee searching an e) 93.79 317.33 P +0.17 (xternal W) 167.71 317.33 P +0.17 (eb site for information) 206.79 317.33 P +-0.19 (might inadv) 54 306.33 P +-0.19 (ertently load and e) 101.72 306.33 P +-0.19 (x) 175.15 306.33 P +-0.19 (ecute an applet without being) 180 306.33 P +0.25 0.03 (a) 54 295.33 B +0.25 0.03 (w) 58.32 295.33 B +0.25 0.03 (are that the site contains e) 65.47 295.33 B +0.25 0.03 (x) 171.06 295.33 B +0.25 0.03 (ecutable code. This automatic) 175.94 295.33 B +0.22 (distrib) 54 284.33 P +0.22 (ution of e) 79.36 284.33 P +0.22 (x) 117.98 284.33 P +0.22 (ecutables mak) 122.83 284.33 P +0.22 (es it v) 179.88 284.33 P +0.22 (ery lik) 204.06 284.33 P +0.22 (ely that softw) 230.01 284.33 P +0.22 (are) 284.79 284.33 P +0.25 0.41 (will be obtained from untrusted third parties. Since the) 54 273.33 B +0.25 0.36 (applet is imported into the user\325) 54 262.33 B +0.25 0.36 (s web bro) 194.19 262.33 B +0.25 0.36 (wser and runs) 236.6 262.33 B +0.25 0.42 (locally) 54 251.33 B +0.25 0.42 (, this softw) 83.51 251.33 B +0.25 0.42 (are could potentially steal or damage) 133.13 251.33 B +0.25 0.17 (information stored in the user\325) 54 240.33 B +0.25 0.17 (s machine on a netw) 181.26 240.33 B +0.25 0.17 (ork f) 266.97 240.33 B +0.25 0.17 (ile) 286.67 240.33 B +0.25 0.53 (serv) 54 229.33 B +0.25 0.53 (er) 72.62 229.33 B +0.25 0.53 (. Also, since this softw) 80.9 229.33 B +0.25 0.53 (are is already behind the) 185.58 229.33 B +-0.13 (compan) 54 218.33 P +-0.13 (y\325) 85.51 218.33 P +-0.13 (s \336re) 93.29 218.33 P +-0.13 (w) 112.63 218.33 P +-0.13 (all, the applet could attack other unprotected) 119.75 218.33 P +-0.14 (machines on a corporate intranet. These attacks w) 54 207.33 P +-0.14 (ould not be) 252.29 207.33 P +(stopped by traditional security measures.) 54 196.33 T +0.25 0.15 (Ja) 54 177.33 B +0.25 0.15 (v) 62.43 177.33 B +0.25 0.15 (a protects its users from these dangers by placing strict) 67.32 177.33 B +0.25 0.15 (limits on applets. Applets cannot read from or write to the) 54 166.33 B +0.25 0.42 (local disk. Stand-alone windo) 54 155.33 B +0.25 0.42 (ws created by applets are) 185.47 155.33 B +0.25 0 (clearly labeled as being o) 54 144.33 B +0.25 0 (wned by untrusted softw) 156.4 144.33 B +0.25 0 (are. These) 255.66 144.33 B +0.25 0.11 (limits pre) 54 133.33 B +0.25 0.11 (v) 93.2 133.33 B +0.25 0.11 (ent malicious applets from stealing information,) 98.17 133.33 B +0.25 0.22 (spreading viruses, or acting as T) 54 122.33 B +0.25 0.22 (rojan horses. Applets are) 191.56 122.33 B +0.25 0.15 (also prohibited from making netw) 54 111.33 B +0.25 0.15 (ork connections to other) 195.84 111.33 B +0.09 (computers on the corporate intranet. This pre) 54 100.33 P +0.09 (v) 234.56 100.33 P +0.09 (ents malicious) 239.41 100.33 P +0.25 0.48 (applets from e) 54 89.33 B +0.25 0.48 (xploiting security f) 118.27 89.33 B +0.25 0.48 (la) 203.91 89.33 B +0.25 0.48 (ws that might e) 211.94 89.33 B +0.25 0.48 (xist) 281.11 89.33 B +0.25 0.2 (behind the f) 54 78.33 B +0.25 0.2 (ire) 104.17 78.33 B +0.25 0.2 (w) 115.09 78.33 B +0.25 0.2 (all or in the underlying operating system.) 122.41 78.33 B +-0.14 (While Ja) 54 67.33 P +-0.14 (v) 88.93 67.33 P +-0.14 (a is the not \336rst or only platform that claims to be a) 93.68 67.33 P +0.25 0.53 (secure means of distrib) 315 731.33 B +0.25 0.53 (uting e) 420.14 731.33 B +0.25 0.53 (x) 451.43 731.33 B +0.25 0.53 (ecutable code o) 456.8 731.33 B +0.25 0.53 (v) 527.25 731.33 B +0.25 0.53 (er the) 532.63 731.33 B +(internet, it it perhaps the best kno) 315 720.33 T +(wn and most widely used.) 448.35 720.33 T +1 F +(WHA) 315 697.33 T +(T IS SECURITY?) 337.98 697.33 T +(The Security Pr) 315 674.33 T +(ocess) 388.16 674.33 T +0 F +-0 (Ef) 315 651.33 P +-0 (fecti) 324.19 651.33 P +-0 (v) 341.71 651.33 P +-0 (e security is an on-going process which must in) 346.56 651.33 P +-0 (v) 536.13 651.33 P +-0 (olv) 540.93 651.33 P +-0 (e) 553.56 651.33 P +0.73 (e) 315 640.33 P +0.73 (v) 319.19 640.33 P +0.73 (ery member of an or) 324.04 640.33 P +0.73 (g) 408.43 640.33 P +0.73 (anization and touch e) 413.38 640.33 P +0.73 (v) 500.59 640.33 P +0.73 (ery aspect of) 505.44 640.33 P +0.92 (its operation. The strongest possible netw) 315 629.33 P +0.92 (ork and computer) 485.61 629.33 P +0.76 (security does little to protect an or) 315 618.33 P +0.76 (g) 456.05 618.33 P +0.76 (anization which has not) 461 618.33 P +0.12 (tak) 315 607.33 P +0.12 (en steps to ensure that its emplo) 327.12 607.33 P +0.12 (yees are trustw) 455.49 607.33 P +0.12 (orth) 515.6 607.33 P +0.12 (y or to) 531.66 607.33 P +2.69 (protect its ph) 315 596.33 P +2.69 (ysical assets from theft. Similarly) 372.54 596.33 P +2.69 (, the best) 516.8 596.33 P +4.97 (security mechanisms and procedures quickly f) 315 585.33 P +4.97 (all into) 524.97 585.33 P +-0.05 (disrepair if the) 315 574.33 P +-0.05 (y are not constantly reinforced by training and) 373.08 574.33 P +(periodically updated to account for ne) 315 563.33 T +(w threats.) 466.66 563.33 T +1 F +(Cost V) 315 541.33 T +(. Security) 345.47 541.33 T +0 F +0.25 0.05 (Security is one means by which an or) 315 525.33 B +0.25 0.05 (g) 468.15 525.33 B +0.25 0.05 (anization can protect) 473.15 525.33 B +0.25 0.16 (or e) 315 514.33 B +0.25 0.16 (xtend a competiti) 331.01 514.33 B +0.25 0.16 (v) 403.44 514.33 B +0.25 0.16 (e adv) 408.45 514.33 B +0.25 0.16 (antage. By protecting v) 430.63 514.33 B +0.25 0.16 (aluable) 528.15 514.33 B +0.25 0.09 (ph) 315 503.33 B +0.25 0.09 (ysical assets or proprietary intellectual property) 325.12 503.33 B +0.25 0.09 (, security) 520.31 503.33 B +0.25 0.32 (policies and procedures allo) 315 492.33 B +0.25 0.32 (w an or) 436.46 492.33 B +0.25 0.32 (g) 469.02 492.33 B +0.25 0.32 (anization to e) 474.3 492.33 B +0.25 0.32 (xploit) 533.05 492.33 B +0.05 (those assets to the fullest. But there are costs associated with) 315 481.33 P +0.25 0.33 (all security procedures and these costs must be weighed) 315 470.33 B +0.25 0.12 (ag) 315 459.33 B +0.25 0.12 (ainst the v) 324.63 459.33 B +0.25 0.12 (alue of the assets protected by those measures) 367.3 459.33 B +0.25 0.02 (and the potential harm which could be caused by the loss of) 315 448.33 B +0.05 (that asset. A compan) 315 437.33 P +0.05 (y which wished to adv) 398.33 437.33 P +0.05 (ertise on the W) 488.38 437.33 P +0.05 (eb) 548.56 437.33 P +0.25 0.6 (may be satisf) 315 426.33 B +0.25 0.6 (ied with a simple f) 375.56 426.33 B +0.25 0.6 (ire) 461.91 426.33 B +0.25 0.6 (w) 474.02 426.33 B +0.25 0.6 (all to discourage) 481.75 426.33 B +0.12 (electronic v) 315 415.33 P +0.12 (andals. A lar) 361.8 415.33 P +0.12 (ge \336nancial institute with billions of) 412.68 415.33 P +0.25 0.12 (dollars at stak) 315 404.33 B +0.25 0.12 (e could justify much more elaborate security) 372.83 404.33 B +0.25 0.68 (measures, possibly including public k) 315 393.33 B +0.25 0.68 (e) 491.86 393.33 B +0.25 0.68 (y encryption,) 496.83 393.33 B +0.25 0.17 (dedicated, pri) 315 382.33 B +0.25 0.17 (v) 371.87 382.33 B +0.25 0.17 (ate netw) 376.8 382.33 B +0.25 0.17 (orks and re) 411.94 382.33 B +0.25 0.17 (gular security audits. In) 458.64 382.33 B +0.25 0.03 (e) 315 371.33 B +0.25 0.03 (xtreme cases, public safety and national security may be at) 319.32 371.33 B +0.25 0.05 (risk. F) 315 360.33 B +0.25 0.05 (or applications such as air traf) 341.04 360.33 B +0.25 0.05 (f) 464.05 360.33 B +0.25 0.05 (ic control and military) 466.88 360.33 B +0.25 0.46 (and intelligence systems, the risks of connecting these) 315 349.33 B +0.25 0.06 (systems to the Internet may so f) 315 338.33 B +0.25 0.06 (ar out-weigh the benef) 445.46 338.33 B +0.25 0.06 (its of) 537.18 338.33 B +0.25 0.25 (increased communication that the most sensiti) 315 327.33 B +0.25 0.25 (v) 511.85 327.33 B +0.25 0.25 (e of these) 516.95 327.33 B +(systems should ne) 315 316.33 T +(v) 387.53 316.33 T +(er be connected \050see \336g. 2\051.) 392.38 316.33 T +3 F +(Ne) 315 135.15 T +(w T) 327.63 135.15 T +(ec) 343.7 135.15 T +(hnology) 354.72 135.15 T +0 F +0.25 0.08 (Since no security system can e) 315 116.15 B +0.25 0.08 (v) 440.85 116.15 B +0.25 0.08 (er be 100% secure, it is not) 445.78 116.15 B +0.02 (meaningful to ask if a ne) 315 105.15 P +0.02 (w technology or system is \322secure\323.) 414.02 105.15 P +0.25 0.14 (Instead one should e) 315 94.15 B +0.25 0.14 (v) 400.21 94.15 B +0.25 0.14 (aluate the ne) 405.1 94.15 B +0.25 0.14 (w technology in light of) 457.69 94.15 B +0.25 0.21 (the e) 315 83.15 B +0.25 0.21 (xisting cost/security tradeof) 335.29 83.15 B +0.25 0.21 (fs. If the ne) 452.61 83.15 B +0.25 0.21 (w technology) 501.33 83.15 B +0.25 0.54 (mak) 315 72.15 B +0.25 0.54 (es it easier or cheaper to obtain the same le) 333.75 72.15 B +0.25 0.54 (v) 532.13 72.15 B +0.25 0.54 (el of) 537.52 72.15 B +0.25 0.04 (security) 315 61.15 B +0.25 0.04 (, that technology w) 346.36 61.15 B +0.25 0.04 (ould be v) 424.49 61.15 B +0.25 0.04 (ery attracti) 462.45 61.15 B +0.25 0.04 (v) 506.02 61.15 B +0.25 0.04 (e. If, on the) 510.91 61.15 B +0 0 0 1 0 0 0 K +315 150.82 558 313 C +0 0 0 1 0 0 0 K +333 304 333 205 531 205 3 L +0.5 H +2 Z +0 X +0 0 0 1 0 0 0 K +N +0 10 Q +(Cost) 438.5 191.73 T +(Security) 0 -270 328.33 234 TF +90 180 180 72 522 214 A +J +333 292.5 540 292.5 2 L +J +333 292.5 336.75 292.5 2 L +N +[7.389 6.404] 7.389 I +336.75 292.5 536.25 292.5 2 L +N +J +536.25 292.5 540 292.5 2 L +N +(Fig. 2 Increasing security increases costs. Or) 326.5 176.04 T +(g) 505.17 176.04 T +(anizations) 510.12 176.04 T +(must choose the appropriate trade of) 326.5 166.04 T +(f.) 472.05 166.04 T +(W) 355.5 225 T +(eb adv) 364.14 225 T +(ertiser) 390.37 225 T +(On-line commerce) 395.5 256.5 T +(National) 494 274.5 T +(Security) 494 264.5 T +J +340 228.64 346.36 235 352.73 228.64 346.36 222.27 4 Y +V +J +340 228.64 346.36 235 352.73 228.64 346.36 222.27 4 Y +J +342.65 225.98 340 228.64 342.65 231.29 3 L +N +[1.731 1.5] 1.731 I +342.65 231.29 343.71 232.35 2 L +N +J +343.71 232.35 346.36 235 349.02 232.35 3 L +N +[1.731 1.5] 1.731 I +349.02 232.35 350.08 231.29 2 L +N +J +350.08 231.29 352.73 228.64 350.08 225.98 3 L +N +[1.731 1.5] 1.731 I +350.08 225.98 349.02 224.92 2 L +N +J +349.02 224.92 346.36 222.27 343.71 224.92 3 L +N +[1.731 1.5] 1.731 I +343.71 224.92 342.65 225.98 2 L +N +J +377.64 260 384 266.36 390.36 260 384 253.64 4 Y +V +J +377.64 260 384 266.36 390.36 260 384 253.64 4 Y +J +380.29 257.35 377.64 260 380.29 262.65 3 L +N +[1.731 1.5] 1.731 I +380.29 262.65 381.35 263.71 2 L +N +J +381.35 263.71 384 266.36 386.65 263.71 3 L +N +[1.731 1.5] 1.731 I +386.65 263.71 387.71 262.65 2 L +N +J +387.71 262.65 390.36 260 387.71 257.35 3 L +N +[1.731 1.5] 1.731 I +387.71 257.35 386.65 256.29 2 L +N +J +386.65 256.29 384 253.64 381.35 256.29 3 L +N +[1.731 1.5] 1.731 I +381.35 256.29 380.29 257.35 2 L +N +J +478.14 283.5 484.5 289.86 490.86 283.5 484.5 277.14 4 Y +V +J +478.14 283.5 484.5 289.86 490.86 283.5 484.5 277.14 4 Y +J +480.79 280.85 478.14 283.5 480.79 286.15 3 L +N +[1.731 1.5] 1.731 I +480.79 286.15 481.85 287.21 2 L +N +J +481.85 287.21 484.5 289.86 487.15 287.21 3 L +N +[1.731 1.5] 1.731 I +487.15 287.21 488.21 286.15 2 L +N +J +488.21 286.15 490.86 283.5 488.21 280.85 3 L +N +[1.731 1.5] 1.731 I +488.21 280.85 487.15 279.79 2 L +N +J +487.15 279.79 484.5 277.14 481.85 279.79 3 L +N +[1.731 1.5] 1.731 I +481.85 279.79 480.79 280.85 2 L +N +0 0 0 1 0 0 0 K +J +0 0 612 792 C +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +FMENDPAGE +%%EndPage: "2" 2 +%%Page: "3" 3 +612 792 0 FMBEGINPAGE +[0 0 0 1 0 0 0] +[ 0 1 1 0 1 0 0] +[ 1 0 1 0 0 1 0] +[ 1 1 0 0 0 0 1] +[ 1 0 0 0 0 1 1] +[ 0 1 0 0 1 0 1] +[ 0 0 1 0 1 1 0] + 7 FrameSetSepColors +FrameNoSep +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 9 558 36 R +7 X +0 0 0 1 0 0 0 K +V +0 8 Q +0 X +(\251 Sun Microsystems, Inc., 1996) 54 30.67 T +(3) 306 30.67 T +54 54 558 738 R +7 X +V +0 10 Q +0 X +0.25 1.22 (other hand, the ne) 54 731.33 B +0.25 1.22 (w system opens ne) 148.02 731.33 B +0.25 1.22 (w security) 244.44 731.33 B +0.25 0.5 (vulnerabilities and mak) 54 720.33 B +0.25 0.5 (es it more costly to achie) 159.79 720.33 B +0.25 0.5 (v) 273.52 720.33 B +0.25 0.5 (e an) 278.87 720.33 B +0.25 0.06 (acceptable le) 54 709.33 B +0.25 0.06 (v) 106.72 709.33 B +0.25 0.06 (el of security) 111.63 709.33 B +0.25 0.06 (, the or) 164.56 709.33 B +0.25 0.06 (g) 193.42 709.33 B +0.25 0.06 (anization must carefully) 198.43 709.33 B +0.11 (weigh the bene\336ts of) 54 698.33 P +0.11 (fered by the technology and ask itself if) 137.67 698.33 P +0.25 0.14 (these benef) 54 687.33 B +0.25 0.14 (its are w) 100.46 687.33 B +0.25 0.14 (orth either the added risk the) 135.96 687.33 B +0.25 0.14 (y bring or) 255.84 687.33 B +(the added e) 54 676.33 T +(xpense required to manage these risks.) 99.39 676.33 T +3 F +(Usability) 54 657.33 T +0 F +0.25 0.17 (When calculating security costs, usability is an important,) 54 638.33 B +0.25 0.33 (and often hidden, f) 54 627.33 B +0.25 0.33 (actor) 136.54 627.33 B +0.25 0.33 (. If security mechanisms are too) 157.65 627.33 B +0.25 0.58 (time-consuming or dif) 54 616.33 B +0.25 0.58 (f) 155.81 616.33 B +0.25 0.58 (icult to use, the) 159.17 616.33 B +0.25 0.58 (y can decrease) 230.69 616.33 B +-0.03 (producti) 54 605.33 P +-0.03 (vity by taking time and resources which should ha) 87.08 605.33 P +-0.03 (v) 287.71 605.33 P +-0.03 (e) 292.56 605.33 P +0.25 (been directed to the or) 54 594.33 P +0.25 (g) 144.23 594.33 P +0.25 (anization\325) 149.18 594.33 P +0.25 (s mission. Ov) 188.62 594.33 P +0.25 (erly stringent) 243.7 594.33 P +0.23 (procedures can actually weak) 54 583.33 P +0.23 (en security) 172.61 583.33 P +0.23 (. Users who \336nd the) 215.79 583.33 P +0.25 0.56 (policies dif) 54 572.33 B +0.25 0.56 (f) 105.47 572.33 B +0.25 0.56 (icult to follo) 108.82 572.33 B +0.25 0.56 (w may ignore the policies or) 166.4 572.33 B +0.25 0.18 (implement them haphazardly) 54 561.33 B +0.25 0.18 (. In e) 175.13 561.33 B +0.25 0.18 (xtreme cases, where the) 196.82 561.33 B +0.25 0.39 (policies are seen as b) 54 550.33 B +0.25 0.39 (ureaucratic roadblocks, users may) 147.76 550.33 B +0.25 0.06 (acti) 54 539.33 B +0.25 0.06 (v) 68.44 539.33 B +0.25 0.06 (ely sabotage the policies in order to \322get the job done\323) 73.35 539.33 B +(\050see \336g. 3\051.) 54 528.33 T +0.25 0.52 (In general, it is v) 54 337.33 B +0.25 0.52 (ery dif) 132.16 337.33 B +0.25 0.52 (f) 162.16 337.33 B +0.25 0.52 (icult to design easy-to-use or) 165.46 337.33 B +0.25 0.52 (automatic security mechanisms which still ef) 54 326.33 B +0.25 0.52 (fecti) 258.23 326.33 B +0.25 0.52 (v) 278.36 326.33 B +0.25 0.52 (ely) 283.73 326.33 B +0.25 0.18 (protect an or) 54 315.33 B +0.25 0.18 (g) 107.22 315.33 B +0.25 0.18 (anization\325) 112.35 315.33 B +0.25 0.18 (s assets. Despite these dif) 153.61 315.33 B +0.25 0.18 (f) 261.2 315.33 B +0.25 0.18 (iculties,) 264.16 315.33 B +0.25 0.31 (Ja) 54 304.33 B +0.25 0.31 (v) 62.74 304.33 B +0.25 0.31 (a is able to pro) 67.8 304.33 B +0.25 0.31 (vide transparent security mechanisms,) 132.44 304.33 B +0.25 0.01 (which do not require an) 54 293.33 B +0.25 0.01 (y kno) 150 293.33 B +0.25 0.01 (wledge or action on the part of) 172.53 293.33 B +0.25 0.06 (the end user) 54 282.33 B +0.25 0.06 (. This is possible because Ja) 102.97 282.33 B +0.25 0.06 (v) 217.93 282.33 B +0.25 0.06 (a\325) 222.74 282.33 B +0.25 0.06 (s security model) 230.07 282.33 B +0.25 0.09 (is intended to protect the end-user from hostile e) 54 271.33 B +0.25 0.09 (x) 254.14 271.33 B +0.25 0.09 (ecutables) 259.08 271.33 B +-0.19 (accidentally imported from untrusted sources. Limiting these) 54 260.33 P +0.25 0.68 (so called \322T) 54 249.33 B +0.25 0.68 (rojan horses\323 is a much easier task than) 110.65 249.33 B +0.25 0.42 (pro) 54 238.33 B +0.25 0.42 (viding general netw) 68.44 238.33 B +0.25 0.42 (ork and ph) 156.23 238.33 B +0.25 0.42 (ysical security) 203.64 238.33 B +0.25 0.42 (. Since) 267.02 238.33 B +0.25 0.18 (Ja) 54 227.33 B +0.25 0.18 (v) 62.49 227.33 B +0.25 0.18 (a\325) 67.43 227.33 B +0.25 0.18 (s security model is intended to augment, not replace,) 75.01 227.33 B +0.25 0.22 (these traditional security mechanisms, Ja) 54 216.33 B +0.25 0.22 (v) 227.51 216.33 B +0.25 0.22 (a can pro) 232.48 216.33 B +0.25 0.22 (vide a) 271.48 216.33 B +0.25 0.26 (simple, usable solution to this simpler) 54 205.33 B +0.25 0.26 (, more manageable) 216.57 205.33 B +(problem.) 54 194.33 T +1 F +(Common Security F) 54 172.33 T +(allacies) 148.26 172.33 T +3 F +(Risk A) 54 156.33 T +(v) 84.72 156.33 T +(oidance) 89.98 156.33 T +0 F +-0.17 (The most common security f) 54 137.33 P +-0.17 (allac) 168.2 137.33 P +-0.17 (y is that the goal of security) 186.93 137.33 P +0.25 0.03 (is to eliminate all risk and vulnerabilities from a system. As) 54 126.33 B +0.25 0.03 (discussed abo) 54 115.33 B +0.25 0.03 (v) 109.72 115.33 B +0.25 0.03 (e, this is an unobtainable goal and little good) 114.6 115.33 B +0.25 0.03 (comes from pursuing it. A compan) 54 104.33 B +0.25 0.03 (y with a \322zero tolerance\323) 195.39 104.33 B +0.25 0.28 (approach to security risks w) 54 93.33 B +0.25 0.28 (ould be forced to disconnect) 175.04 93.33 B +0.25 0.47 (itself completely from the Internet and thus w) 54 82.33 B +0.25 0.47 (ould not) 260.39 82.33 B +0.25 0.88 (benef) 54 71.33 B +0.25 0.88 (it from the v) 80.04 71.33 B +0.25 0.88 (ast resources and near) 141.66 71.33 B +0.25 0.88 (-uni) 249.52 71.33 B +0.25 0.88 (v) 268.89 71.33 B +0.25 0.88 (ersal) 274.61 71.33 B +0.25 0.16 (connecti) 54 60.33 B +0.25 0.16 (vity it pro) 88.92 60.33 B +0.25 0.16 (vides. Such a compan) 130.49 60.33 B +0.25 0.16 (y w) 221.53 60.33 B +0.25 0.16 (ould still be at) 236.88 60.33 B +0.25 0.56 (risk from undetected viruses in commercial softw) 315 731.33 B +0.25 0.56 (are,) 541.61 731.33 B +(disgruntled emplo) 315 720.33 T +(yees and industrial espionage.) 387.4 720.33 T +0.25 0.68 (While this compan) 315 701.33 B +0.25 0.68 (y spends v) 402.52 701.33 B +0.25 0.68 (ast sums of mone) 451.82 701.33 B +0.25 0.68 (y and) 533.08 701.33 B +0.25 0.82 (resources chasing the chimera of total security) 315 690.33 B +0.25 0.82 (, its) 540.01 690.33 B +0.25 0.17 (competitors with more realistic security policies w) 315 679.33 B +0.25 0.17 (ould be) 527.04 679.33 B +0.25 0.14 (concentrating on more practical matters such as e) 315 668.33 B +0.25 0.14 (xploiting) 520.78 668.33 B +0.25 0.64 (ne) 315 657.33 B +0.25 0.64 (w) 325.47 657.33 B +0.25 0.64 (, \322risk) 332.68 657.33 B +0.25 0.64 (y\323 technologies to better their competiti) 361.7 657.33 B +0.25 0.64 (v) 548.07 657.33 B +0.25 0.64 (e) 553.56 657.33 B +(position.) 315 646.33 T +3 F +(Piecemeal Security) 315 627.33 T +0 F +0.13 (The risk a) 315 608.33 P +0.13 (v) 355.06 608.33 P +0.13 (oidance f) 359.86 608.33 P +0.13 (allac) 396.82 608.33 P +0.13 (y is v) 415.55 608.33 P +0.13 (ery common among computer) 437.34 608.33 P +0.08 (users and managers. F) 315 597.33 P +0.08 (ortunately) 403.97 597.33 P +0.08 (, most security professionals) 443.87 597.33 P +0.25 0.54 (recognize that their goal is risk management, not risk) 315 586.33 B +0.25 0.5 (a) 315 575.33 B +0.25 0.5 (v) 319.74 575.33 B +0.25 0.5 (oidance, and do not f) 325.04 575.33 B +0.25 0.5 (all into this trap. Among these) 420.61 575.33 B +0.25 0.66 (professionals, piecemeal security is a more common) 315 564.33 B +(problem.) 315 553.33 T +0.25 0 (Piecemeal security is the tendenc) 315 534.33 B +0.25 0 (y to look at small pieces of) 448.67 534.33 B +0.08 (a system or netw) 315 523.33 P +0.08 (ork in isolation from the system as a whole.) 382.64 523.33 P +0.25 0.73 (Because computer systems and especially computer) 315 512.33 B +0.25 0.19 (netw) 315 501.33 B +0.25 0.19 (orks can be e) 335.09 501.33 B +0.25 0.19 (xtremely comple) 390.61 501.33 B +0.25 0.19 (x, it is of little v) 461.02 501.33 B +0.25 0.19 (alue to) 529.68 501.33 B +0.25 0.02 (e) 315 490.33 B +0.25 0.02 (xamine indi) 319.31 490.33 B +0.25 0.02 (vidual aspects of the system. Informed security) 367.02 490.33 B +0.25 0.06 (decisions can only be made by e) 315 479.33 B +0.25 0.06 (xamining the entire system) 447.67 479.33 B +0.25 0.22 (and looking for the unanticipated side-ef) 315 468.33 B +0.25 0.22 (fects of adding a) 487.4 468.33 B +(ne) 315 457.33 T +(w type of softw) 324.19 457.33 T +(are or netw) 386.58 457.33 T +(ork resource.) 431.46 457.33 T +0.25 0.42 (Piecemeal security often is the result of ha) 315 438.33 B +0.25 0.42 (ving se) 504.89 438.33 B +0.25 0.42 (v) 536.46 438.33 B +0.25 0.42 (eral) 541.74 438.33 B +0.25 0.1 (departments responsible for dif) 315 427.33 B +0.25 0.1 (ferent aspects of security) 443.35 427.33 B +0.25 0.1 (. If) 545.78 427.33 B +0.15 (these departments do not w) 315 416.33 P +0.15 (ork closely together) 424.92 416.33 P +0.15 (, each can set) 504.25 416.33 P +0.12 (policies without re) 315 405.33 P +0.12 (g) 389.53 405.33 P +0.12 (ard for ho) 394.48 405.33 P +0.12 (w those policies af) 433.9 405.33 P +0.12 (fect security) 508.73 405.33 P +0.25 0.29 (as a whole. This can create vulnerabilities at the borders) 315 394.33 B +0.25 0.09 (between tw) 315 383.33 B +0.25 0.09 (o departments and decrease the total security of) 361.86 383.33 B +-0.16 (the or) 315 372.33 P +-0.16 (g) 337.71 372.33 P +-0.16 (anization. These g) 342.66 372.33 P +-0.16 (aps are particularly dangerous since) 415.34 372.33 P +0.25 0.49 (attack) 315 361.33 B +0.25 0.49 (ers may acti) 341.71 361.33 B +0.25 0.49 (v) 396.13 361.33 B +0.25 0.49 (ely seek out areas in which se) 401.47 361.33 B +0.25 0.49 (v) 536.21 361.33 B +0.25 0.49 (eral) 541.55 361.33 B +0.25 0.02 (departments share security responsibilities or in which there) 315 350.33 B +(is a g) 315 339.33 T +(ap between departments.) 336.06 339.33 T +3 F +(Steel Door) 315 320.33 T +(s And Grass Huts) 364.86 320.33 T +0 F +-0.23 (Piecemeal security can lead an or) 315 301.33 P +-0.23 (g) 447.26 301.33 P +-0.23 (anization to o) 452.21 301.33 P +-0.23 (v) 506.05 301.33 P +-0.23 (er) 510.9 301.33 P +-0.23 (-react to a) 518.47 301.33 P +0.25 0.07 (percei) 315 290.33 B +0.25 0.07 (v) 339.59 290.33 B +0.25 0.07 (ed vulnerability) 344.51 290.33 B +0.25 0.07 (. This is often the case when dealing) 408.26 290.33 B +0.25 0.05 (with ne) 315 279.33 B +0.25 0.05 (w technologies. A f) 345.04 279.33 B +0.25 0.05 (la) 424.42 279.33 B +0.25 0.05 (w found in the ne) 431.58 279.33 B +0.25 0.05 (w technology) 503.09 279.33 B +0.25 0.02 (prompts the or) 315 268.33 B +0.25 0.02 (g) 373.92 268.33 B +0.25 0.02 (anization to e) 378.89 268.33 B +0.25 0.02 (xpend great ef) 433.38 268.33 B +0.25 0.02 (fort patching the) 491.1 268.33 B +0.25 0.43 (vulnerability) 315 257.33 B +0.25 0.43 (, without f) 371.07 257.33 B +0.25 0.43 (irst checking to see if this same) 417.15 257.33 B +0.25 0.22 (vulnerability e) 315 246.33 B +0.25 0.22 (xists, undetected, in e) 376.45 246.33 B +0.25 0.22 (xisting systems. Lik) 468.48 246.33 B +0.25 0.22 (e) 553.56 246.33 B +0.25 0.12 (steel doors on a grass hut, these patches, produced at great) 315 235.33 B +0.25 0.04 (e) 315 224.33 B +0.25 0.04 (xpense, close one possible hole b) 319.33 224.33 B +0.25 0.04 (ut do little to increase the) 454.36 224.33 B +(security of the system as a whole.) 315 213.33 T +0.08 (While the desire to b) 315 194.33 P +0.08 (uild steel doors to protect ag) 398.42 194.33 P +0.08 (ainst ne) 512.34 194.33 P +0.08 (wly) 543 194.33 P +0.25 0.02 (percei) 315 183.33 B +0.25 0.02 (v) 339.31 183.33 B +0.25 0.02 (ed threats can w) 344.18 183.33 B +0.25 0.02 (aste resources and slo) 409.88 183.33 B +0.25 0.02 (w the adoption) 497.78 183.33 B +0.25 0.18 (of ne) 315 172.33 B +0.25 0.18 (w technology) 336.18 172.33 B +0.25 0.18 (, pre) 392.13 172.33 B +0.25 0.18 (viously constructed steel doors can) 410.82 172.33 B +0.02 (blind an or) 315 161.33 P +0.02 (g) 358.19 161.33 P +0.02 (anization to ne) 363.14 161.33 P +0.02 (w or pre) 421.8 161.33 P +0.02 (viously unnoticed threats.) 454.91 161.33 P +0.25 0.01 (If the ne) 315 150.33 B +0.25 0.01 (w found threat is not well-understood and is similar) 348.69 150.33 B +0.25 0.19 (to the threat which moti) 315 139.33 B +0.25 0.19 (v) 415.85 139.33 B +0.25 0.19 (ated the construction of the steel) 420.79 139.33 B +0.25 0.1 (door) 315 128.33 B +0.25 0.1 (, f) 333.32 128.33 B +0.25 0.1 (alse conf) 342.08 128.33 B +0.25 0.1 (idence in the elaborately constructed door\325) 378.47 128.33 B +0.25 0.1 (s) 554.11 128.33 B +0.25 0.62 (ability to protect ag) 315 117.33 B +0.25 0.62 (ainst the ne) 406.71 117.33 B +0.25 0.62 (w threat can slo) 459.92 117.33 B +0.25 0.62 (w the) 533.34 117.33 B +(adoption of more ef) 315 106.33 T +(fecti) 393.9 106.33 T +(v) 411.42 106.33 T +(e measures.) 416.27 106.33 T +1 F +(K) 315 84.33 T +(eeping Current) 322.07 84.33 T +0 F +0.25 0.2 (One of the most important parts of the security process is) 315 68.33 B +0.25 0.44 (staying informed. Ne) 315 57.33 B +0.25 0.44 (w vulnerabilities in computer and) 408.66 57.33 B +0 0 0 1 0 0 0 K +54 353 297 525 C +0 0 0 1 0 0 0 K +72 516 72 417 270 417 3 L +0.5 H +2 Z +0 X +0 0 0 1 0 0 0 K +N +0 10 Q +(Cost) 177.5 399 T +(Security) 0 -270 67.33 446 TF +J +72 504.5 279 504.5 2 L +J +72 504.5 75.75 504.5 2 L +N +[7.389 6.404] 7.389 I +75.75 504.5 275.25 504.5 2 L +N +J +275.25 504.5 279 504.5 2 L +N +J +84.5 428 M + 87.78 446.62 130.8 492.97 143 466 D + 152.5 445 169.38 437.04 196.5 439.44 D + 202.3 439.95 260.67 438.81 266.5 439 D +N +(Fig. 3 Ov) 63.5 377.5 T +(erly complicated and dif) 101.41 377.5 T +(\336cult to follo) 198.64 377.5 T +(w) 250.62 377.5 T +(procedures reduce o) 63.5 367.5 T +(v) 143.87 367.5 T +(erall security and increase cost.) 148.72 367.5 T +0 0 0 1 0 0 0 K +0 0 612 792 C +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +FMENDPAGE +%%EndPage: "3" 3 +%%Page: "4" 4 +612 792 0 FMBEGINPAGE +[0 0 0 1 0 0 0] +[ 0 1 1 0 1 0 0] +[ 1 0 1 0 0 1 0] +[ 1 1 0 0 0 0 1] +[ 1 0 0 0 0 1 1] +[ 0 1 0 0 1 0 1] +[ 0 0 1 0 1 1 0] + 7 FrameSetSepColors +FrameNoSep +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 18 558 45 R +7 X +0 0 0 1 0 0 0 K +V +0 8 Q +0 X +(\251 Sun Microsystems, Inc., 1996) 54 39.67 T +(4) 306 39.67 T +54 54 558 738 R +7 X +V +0 10 Q +0 X +0.25 0.49 (netw) 54 731.33 B +0.25 0.49 (ork systems, and ne) 75.31 731.33 B +0.25 0.49 (w attacks which e) 164.04 731.33 B +0.25 0.49 (xploit those) 244.38 731.33 B +0.25 0.21 (vulnerabilities, are found re) 54 720.33 B +0.25 0.21 (gularly) 171.28 720.33 B +0.25 0.21 (. Because of these ne) 200.44 720.33 B +0.25 0.21 (w) 289.78 720.33 B +0.25 0.51 (attacks, e) 54 709.33 B +0.25 0.51 (v) 96.35 709.33 B +0.25 0.51 (en the most secure installation will quickly) 101.72 709.33 B +0.25 0.09 (become vulnerable if its security is not acti) 54 698.33 B +0.25 0.09 (v) 231.48 698.33 B +0.25 0.09 (ely maintained) 236.42 698.33 B +(by a well-informed, up-to-date staf) 54 687.33 T +(f.) 193.44 687.33 T +0.25 0.13 (The CER) 54 668.33 B +0.25 0.13 (T) 92.04 668.33 B +0 8 Q +0.2 0.13 (2) 98.28 672.33 B +0 10 Q +0.25 0.13 ( Coordination Center \050CER) 102.4 668.33 B +0.25 0.13 (T/CC\051 maintains an) 215.45 668.33 B +0.25 0.06 (e) 54 657.33 B +0.25 0.06 (xcellent set of on-line resources for security professionals.) 58.35 657.33 B +-0.03 (The CER) 54 646.33 P +-0.03 (T/CC e) 90.87 646.33 P +-0.03 (v) 119.75 646.33 P +-0.03 (olv) 124.55 646.33 P +-0.03 (ed from an Adv) 137.18 646.33 P +-0.03 (anced Research Projects) 199.88 646.33 P +0 (Agenc) 54 635.33 P +0 (y \050ARP) 79.95 635.33 P +0 (A\051 computer emer) 109.31 635.33 P +0 (genc) 182.45 635.33 P +0 (y response team formed) 201.18 635.33 P +0.25 0 (in 1988 follo) 54 624.33 B +0.25 0 (wing the Morris Internet W) 105.96 624.33 B +0.25 0 (orm. The CER) 216.21 624.33 B +0.25 0 (T/CC) 274.76 624.33 B +0.25 0.05 (collects and in) 54 613.33 B +0.25 0.05 (v) 112.62 613.33 B +0.25 0.05 (estig) 117.52 613.33 B +0.25 0.05 (ates reports of security attacks and ne) 136.61 613.33 B +0.25 0.05 (w) 289.78 613.33 B +0.25 0.27 (found vulnerabilities. The) 54 602.33 B +0.25 0.27 (y distrib) 165.01 602.33 B +0.25 0.27 (ute this information as) 200.56 602.33 B +0.25 0.14 (CER) 54 591.33 B +0.25 0.14 (T Advisories, which document the vulnerabilities, list) 73.26 591.33 B +0.02 (con\336rmed and rumored occurrences of attacks e) 54 580.33 P +0.02 (xploiting the) 246.14 580.33 P +0.25 0.31 (vulnerabilities, and document patches and procedures to) 54 569.33 B +(close the vulnerabilities.) 54 558.33 T +0.25 0.2 (Ov) 54 539.33 B +0.25 0.2 (er the last se) 66.47 539.33 B +0.25 0.2 (v) 119.46 539.33 B +0.25 0.2 (eral years the CER) 124.5 539.33 B +0.25 0.2 (T/CC has documented) 203.49 539.33 B +0.25 0.51 (approximately 10 to 20 ne) 54 528.33 B +0.25 0.51 (w-found vulnerabilities and) 172.59 528.33 B +0.25 0.09 (attacks each year) 54 517.33 B +0.25 0.09 (. These vulnerabilities co) 123.82 517.33 B +0.25 0.09 (v) 227.35 517.33 B +0.25 0.09 (er all aspects of) 232.29 517.33 B +0.25 0.14 (computer security on systems ranging from mainframes to) 54 506.33 B +0.25 1.08 (Microsoft W) 54 495.33 B +0.25 1.08 (indo) 117.09 495.33 B +0.25 1.08 (ws. CER) 138.93 495.33 B +0.25 1.08 (T Advisories and other) 181.68 495.33 B +0.25 0.31 (information can be found on their web site at) 54 484.33 B +4 F +0.6 0.31 (http://) 253.12 484.33 B +(www.cert.org) 54 473.33 T +0 F +(.) 126 473.33 T +1 F +(J) 54 450.33 T +(A) 59.36 450.33 T +(V) 65.78 450.33 T +(A SECURITY) 71.65 450.33 T +(The Sandbo) 54 427.33 T +(x) 110.93 427.33 T +0 F +0.25 0.05 (Ja) 54 411.33 B +0.25 0.05 (v) 62.23 411.33 B +0.25 0.05 (a\325) 67.03 411.33 B +0.25 0.05 (s security allo) 74.35 411.33 B +0.25 0.05 (ws a user to import and run applets from) 130.88 411.33 B +0.25 0.44 (the W) 54 400.33 B +0.25 0.44 (eb or an intranet without undue risk to the user\325) 79.79 400.33 B +0.25 0.44 (s) 293.11 400.33 B +0.03 (machine. The applet\325) 54 389.33 P +0.03 (s actions are restricted to its \322sandbox\323,) 138.22 389.33 P +0.25 0.3 (an area of the web bro) 54 378.33 B +0.25 0.3 (wser dedicated to that applet. The) 150.79 378.33 B +0.25 0.36 (applet may do an) 54 367.33 B +0.25 0.36 (ything it w) 128.99 367.33 B +0.25 0.36 (ants within its sandbox, b) 176.71 367.33 B +0.25 0.36 (ut) 288.86 367.33 B +0.25 0.29 (cannot read or alter an) 54 356.33 B +0.25 0.29 (y data outside of its sandbox. The) 151.05 356.33 B +0.25 0.73 (sandbox model is to run untrusted code in a trusted) 54 345.33 B +0.25 0.12 (en) 54 334.33 B +0.25 0.12 (vironment so that if a user accidentally imports a hostile) 63.28 334.33 B +(applet, that applet cannot damage the local machine.) 54 323.33 T +0.15 (This approach is much dif) 54 304.33 P +0.15 (ferent from that used in traditional) 158.77 304.33 P +0.25 0.19 (operating systems. Because most operating systems allo) 54 293.33 B +0.25 0.19 (w) 289.78 293.33 B +0.25 0.07 (applications broad access to the machine, especially in PCs) 54 282.33 B +0.25 0.32 (where v) 54 271.33 B +0.25 0.32 (ery little protection is pro) 88.28 271.33 B +0.25 0.32 (vided by the operating) 199.79 271.33 B +0.25 0.46 (system, the runtime en) 54 260.33 B +0.25 0.46 (vironment cannot be trusted. T) 154.99 260.33 B +0.25 0.46 (o) 292 260.33 B +0.25 0.21 (compensate for this lack, security policies often require a) 54 249.33 B +0.25 0.06 (le) 54 238.33 B +0.25 0.06 (v) 61.09 238.33 B +0.25 0.06 (el of trust to be established in the application before it is) 66 238.33 B +0.25 0.18 (e) 54 227.33 B +0.25 0.18 (x) 58.47 227.33 B +0.25 0.18 (ecuted. F) 63.5 227.33 B +0.25 0.18 (or e) 101.9 227.33 B +0.25 0.18 (xample, an or) 118 227.33 B +0.25 0.18 (g) 175.39 227.33 B +0.25 0.18 (anization might require that) 180.52 227.33 B +0.25 0.18 (before an emplo) 54 216.33 B +0.25 0.18 (yee runs an application obtained from the) 122.12 216.33 B +0.25 0.25 (web, that application must be check) 54 205.33 B +0.25 0.25 (ed for viruses and its) 207.35 205.33 B +(source code e) 54 194.33 T +(xamined for malicious code.) 108.27 194.33 T +0.13 (There are tw) 54 175.33 P +0.13 (o problems with this approach. First, the checks) 104.7 175.33 P +0.06 (required to b) 54 164.33 P +0.06 (uild trust in the application may be too comple) 105.02 164.33 P +0.06 (x) 292 164.33 P +0.25 0.28 (and time-consuming to be practical. Fe) 54 153.33 B +0.25 0.28 (w emplo) 221.82 153.33 B +0.25 0.28 (yees will) 258.66 153.33 B +0.25 0.13 (tak) 54 142.33 B +0.25 0.13 (e the time to read the source code of an application and) 66.5 142.33 B +0.25 0.2 (compile it locally to ensure that it tak) 54 131.33 B +0.25 0.2 (es no hidden hostile) 212.76 131.33 B +0.25 1.06 (actions. Second, virus check) 54 120.33 B +0.25 1.06 (ers require constant) 198 120.33 B +0.25 0.38 (maintenance in order to remain ef) 54 109.33 B +0.25 0.38 (fecti) 202.64 109.33 B +0.25 0.38 (v) 222.04 109.33 B +0.25 0.38 (e. The) 227.26 109.33 B +0.25 0.38 (y must be) 254.6 109.33 B +54 77 297 97.09 C +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 84.99 185.98 84.99 2 L +0.25 H +2 Z +0 X +0 0 0 1 0 0 0 K +N +0 0 612 792 C +0 9 Q +0 X +0 0 0 1 0 0 0 K +(2 CER) 54 71 T +(T is a service mark of Carne) 79.96 71 T +(gie Mellon Uni) 181.8 71 T +(v) 236.57 71 T +(ersity) 240.94 71 T +0 10 Q +0.25 0.03 (updated with samples of ne) 315 731.33 B +0.25 0.03 (wly disco) 425.91 731.33 B +0.25 0.03 (v) 464.88 731.33 B +0.25 0.03 (ered viruses and must) 469.76 731.33 B +0.03 (be installed on each machine. Also, man) 315 720.33 P +0.03 (y virus check) 476.66 720.33 P +0.03 (ers can) 529.93 720.33 P +0.25 0.17 (be turned of) 315 709.33 B +0.25 0.17 (f, either accidentally) 365.6 709.33 B +0.25 0.17 (, as part of an installation) 451.09 709.33 B +0.11 (procedure, or to sa) 315 698.33 P +0.11 (v) 389.56 698.33 P +0.11 (e time when handling \322safe\323 disk) 394.41 698.33 P +0.11 (ettes. If) 527.9 698.33 P +0.13 (the check) 315 687.33 P +0.13 (er is accidentally left of) 353.07 687.33 P +0.13 (f, the machine and possibly) 447.77 687.33 P +(the entire or) 315 676.33 T +(g) 363.14 676.33 T +(anization are at risk.) 368.09 676.33 T +0.25 0.52 (Ja) 315 657.33 B +0.25 0.52 (v) 324.16 657.33 B +0.25 0.52 (a solv) 329.43 657.33 B +0.25 0.52 (es these problems, and the usability problem) 356.24 657.33 B +0.25 0.15 (discussed abo) 315 646.33 B +0.25 0.15 (v) 372.38 646.33 B +0.25 0.15 (e, by automatically conf) 377.38 646.33 B +0.25 0.15 (ining applets to the) 477.93 646.33 B +0.22 (sandbox. End-users do not ha) 315 635.33 P +0.22 (v) 433.74 635.33 P +0.22 (e to tak) 438.59 635.33 P +0.22 (e an) 468.38 635.33 P +0.22 (y special action in) 484.83 635.33 P +0.25 0.47 (order to ensure the safety of the machine. Because the) 315 624.33 B +0.25 0.19 (sandbox pre) 315 613.33 B +0.25 0.19 (v) 365.71 613.33 B +0.25 0.19 (ents the actions required to spread a virus or) 370.75 613.33 B +0.25 0.46 (steal information, instead of trying to identify a virus-) 315 602.33 B +0.25 0.14 (infected e) 315 591.33 B +0.25 0.14 (x) 355.67 591.33 B +0.25 0.14 (ecutable or potential attack) 360.66 591.33 B +0.25 0.14 (er) 473.31 591.33 B +0.25 0.14 (, the sandbox does) 480.96 591.33 B +(not require periodic updates with ne) 315 580.33 T +(w viruses.) 458.89 580.33 T +3 F +(Applets And Applications) 315 561.33 T +0 F +0.25 0.34 (Ja) 315 542.33 B +0.25 0.34 (v) 323.8 542.33 B +0.25 0.34 (a programs can e) 328.89 542.33 B +0.25 0.34 (xist in tw) 402.9 542.33 B +0.25 0.34 (o forms: as applets, which) 443.89 542.33 B +0.25 0.19 (tra) 315 531.33 B +0.25 0.19 (v) 325.91 531.33 B +0.25 0.19 (el across the Internet or intranet as part of a web page) 330.94 531.33 B +0.25 0.21 (and run inside of the end-user\325) 315 520.33 B +0.25 0.21 (s bro) 444.81 520.33 B +0.25 0.21 (wser; or as traditional) 465.61 520.33 B +0.25 0.32 (stand-alone applications. Only applets are subject to the) 315 509.33 B +(security restrictions described abo) 315 498.33 T +(v) 451.21 498.33 T +(e.) 456.06 498.33 T +0.25 0.51 (Ja) 315 479.33 B +0.25 0.51 (v) 324.15 479.33 B +0.25 0.51 (a applications are purchased and installed just lik) 329.42 479.33 B +0.25 0.51 (e) 553.56 479.33 B +0.21 (traditional commercial applications. The) 315 468.33 P +0.21 (y may be purchased) 477.67 468.33 P +0.25 0.04 (in \322shrink-wrapped\323 box) 315 457.33 B +0.25 0.04 (es or imported o) 415.77 457.33 B +0.25 0.04 (v) 482.34 457.33 B +0.25 0.04 (er a netw) 487.23 457.33 B +0.25 0.04 (ork, and) 524.67 457.33 B +0.25 0.8 (may be installed by users or system administrators) 315 446.33 B +0.25 0.36 (\050according to standard practice within an or) 315 435.33 B +0.25 0.36 (g) 506.59 435.33 B +0.25 0.36 (anization.\051) 511.9 435.33 B +0.25 0.62 (Since applications are not imported from outside the) 315 424.33 B +0.25 0.23 (or) 315 413.33 B +0.25 0.23 (g) 323.61 413.33 B +0.25 0.23 (anization, and are \050in theory\051 only installed by trusted) 328.78 413.33 B +0.25 0.01 (indi) 315 402.33 B +0.25 0.01 (viduals, Ja) 330.37 402.33 B +0.25 0.01 (v) 372.8 402.33 B +0.25 0.01 (a applications add no ne) 377.56 402.33 B +0.25 0.01 (w security concerns.) 475.31 402.33 B +0.25 0.11 (Security comes from maintaining ph) 315 391.33 B +0.25 0.11 (ysical control o) 465.9 391.33 B +0.25 0.11 (v) 529.73 391.33 B +0.25 0.11 (er the) 534.69 391.33 B +0.25 0.1 (systems, pre) 315 380.33 B +0.25 0.1 (v) 365.7 380.33 B +0.25 0.1 (enting end-users from do) 370.65 380.33 B +0.25 0.1 (wnloading untrusted) 473.92 380.33 B +0.25 0.26 (applications from the net, using virus check) 315 369.33 B +0.25 0.26 (ers and other) 502.69 369.33 B +(traditional security measures.) 315 358.33 T +1 F +(Building The Sandbo) 315 336.33 T +(x) 414.71 336.33 T +0 F +0.25 0.63 (The sandbox is made up of se) 315 320.33 B +0.25 0.63 (v) 452.87 320.33 B +0.25 0.63 (eral dif) 458.35 320.33 B +0.25 0.63 (ferent systems) 492.02 320.33 B +0.25 0.48 (operating together) 315 309.33 B +0.25 0.48 (. These systems range from security) 396.45 309.33 B +0.25 0.09 (managers running inside of the application which imported) 315 298.33 B +0.17 (the applet, to safety features b) 315 287.33 P +0.17 (uilt into the Ja) 435.64 287.33 P +0.17 (v) 492.92 287.33 P +0.17 (a language and) 497.67 287.33 P +(the virtual machine.) 315 276.33 T +3 F +(Class Loader) 315 257.33 T +0 F +0.19 (When an applet is to be imported from the netw) 315 238.33 P +0.19 (ork, the web) 507.92 238.33 P +0.25 0.05 (bro) 315 227.33 B +0.25 0.05 (wser calls the applet class loader) 328.24 227.33 B +0.25 0.05 (. The class loader is the) 461.58 227.33 B +0.25 0.3 (f) 315 216.33 B +0.25 0.3 (irst link in the security chain. In addition to fetching an) 318.08 216.33 B +0.25 0.09 (applet\325) 315 205.33 B +0.25 0.09 (s e) 342.83 205.33 B +0.25 0.09 (x) 354.02 205.33 B +0.25 0.09 (ecutable code from the netw) 358.96 205.33 B +0.25 0.09 (ork, the class loader) 475.52 205.33 B +0.25 0.15 (enforces the name space hierarch) 315 194.33 B +0.25 0.15 (y) 453.42 194.33 B +0.25 0.15 (. A name space controls) 457.92 194.33 B +0.25 0.2 (what other portions of the Ja) 315 183.33 B +0.25 0.2 (v) 435.9 183.33 B +0.25 0.2 (a V) 440.85 183.33 B +0.25 0.2 (irtual Machine an applet) 455.25 183.33 B +-0.09 (can access. By maintaining a separate name space for trusted) 315 172.33 P +0.25 0.05 (code which w) 315 161.33 B +0.25 0.05 (as loaded from the local disk, the class loader) 371.59 161.33 B +0.25 0.41 (pre) 315 150.33 B +0.25 0.41 (v) 328.73 150.33 B +0.25 0.41 (ents untrusted applets from g) 333.99 150.33 B +0.25 0.41 (aining access to more) 462.78 150.33 B +(pri) 315 139.33 T +(vile) 325.86 139.33 T +(ged, trusted parts of the system.) 340.71 139.33 T +0.25 0.21 (Applets do) 315 120.33 B +0.25 0.21 (wnloaded from the net cannot create their o) 360.75 120.33 B +0.25 0.21 (wn) 545.57 120.33 B +0.25 0.12 (class loaders. Do) 315 109.33 B +0.25 0.12 (wnloaded applets are also pre) 385.4 109.33 B +0.25 0.12 (v) 508.06 109.33 B +0.25 0.12 (ented from) 513.03 109.33 B +(in) 315 98.33 T +(v) 322.38 98.33 T +(oking methods in the system\325) 327.18 98.33 T +(s class loader) 444.41 98.33 T +(.) 497.18 98.33 T +3 F +(V) 315 79.33 T +(eri\336er) 321.17 79.33 T +0 0 0 1 0 0 0 K +FMENDPAGE +%%EndPage: "4" 4 +%%Page: "5" 5 +612 792 0 FMBEGINPAGE +[0 0 0 1 0 0 0] +[ 0 1 1 0 1 0 0] +[ 1 0 1 0 0 1 0] +[ 1 1 0 0 0 0 1] +[ 1 0 0 0 0 1 1] +[ 0 1 0 0 1 0 1] +[ 0 0 1 0 1 1 0] + 7 FrameSetSepColors +FrameNoSep +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 9 558 36 R +7 X +0 0 0 1 0 0 0 K +V +0 8 Q +0 X +(\251 Sun Microsystems, Inc., 1996) 54 30.67 T +(5) 306 30.67 T +54 54 558 738 R +7 X +V +0 10 Q +0 X +0.25 0.26 (Before running a ne) 54 731.33 B +0.25 0.26 (wly imported applet, the class loader) 139.16 731.33 B +0.25 0.44 (in) 54 720.33 B +0.25 0.44 (v) 62.26 720.33 B +0.25 0.44 (ok) 67.5 720.33 B +0.25 0.44 (es the v) 78.27 720.33 B +0.25 0.44 (erif) 112.68 720.33 B +0.25 0.44 (ier) 127.76 720.33 B +0.25 0.44 (. The v) 139.07 720.33 B +0.25 0.44 (erif) 170.54 720.33 B +0.25 0.44 (ier checks that the applet) 185.62 720.33 B +0.25 0.17 (conforms to the Ja) 54 709.33 B +0.25 0.17 (v) 131.25 709.33 B +0.25 0.17 (a language specif) 136.18 709.33 B +0.25 0.17 (ication and that there) 208.48 709.33 B +0.25 0.14 (are no violations of the Ja) 54 698.33 B +0.25 0.14 (v) 161.99 698.33 B +0.25 0.14 (a language rules or name space) 166.88 698.33 B +0.25 0.05 (restrictions. The v) 54 687.33 B +0.25 0.05 (erif) 127.84 687.33 B +0.25 0.05 (ier also checks for common violations) 141.38 687.33 B +0.13 (of memory management, lik) 54 676.33 P +0.13 (e stack under\337o) 167.6 676.33 P +0.13 (ws or o) 230.92 676.33 P +0.13 (v) 260.46 676.33 P +0.13 (er\337o) 265.31 676.33 P +0.13 (ws,) 283.39 676.33 P +-0.12 (and ille) 54 665.33 P +-0.12 (g) 83.45 665.33 P +-0.12 (al data type casts, which could allo) 88.4 665.33 P +-0.12 (w a hostile applet) 227.1 665.33 P +0.25 0.09 (to corrupt part of the security mechanism or to replace part) 54 654.33 B +(of the system with its o) 54 643.33 T +(wn code.) 146.81 643.33 T +3 F +(Security Mana) 54 624.33 T +(g) 121.7 624.33 T +(er) 127.91 624.33 T +0 F +0.25 0.22 (The security manager enforces the boundaries around the) 54 605.33 B +0.25 0.37 (sandbox. Whene) 54 594.33 B +0.25 0.37 (v) 125.8 594.33 B +0.25 0.37 (er an applet tries to perform an action) 131.02 594.33 B +-0.21 (which could corrupt the local machine or access information,) 54 583.33 P +0.25 0.15 (the Ja) 54 572.33 B +0.25 0.15 (v) 78.01 572.33 B +0.25 0.15 (a V) 82.91 572.33 B +0.25 0.15 (irtual Machine f) 97.18 572.33 B +0.25 0.15 (irst asks the security manager if) 163.98 572.33 B +0.25 0.06 (this action can be performed safely) 54 561.33 B +0.25 0.06 (. If the security manager) 197.03 561.33 B +-0.01 (appro) 54 550.33 P +-0.01 (v) 76.62 550.33 P +-0.01 (es the action \321 for e) 81.47 550.33 P +-0.01 (xample, a trusted applet from the) 164.85 550.33 P +0.25 0.28 (local disk may be trying to read the disk, or an imported) 54 539.33 B +0.25 0.11 (untrusted applet may be trying to connect back to its home) 54 528.33 B +0.25 0.13 (serv) 54 517.33 B +0.25 0.13 (er \321 the virtual machine will then perform the action.) 71.04 517.33 B +0.25 0.18 (Otherwise, the virtual machine raises a security e) 54 506.33 B +0.25 0.18 (xception) 261.29 506.33 B +(and writes an error to the Ja) 54 495.33 T +(v) 164.88 495.33 T +(a console.) 169.63 495.33 T +0.25 0.13 (The security manager will not allo) 54 476.33 B +0.25 0.13 (w an untrusted applet to) 196.91 476.33 B +-0.01 (read or write to a \336le, delete a \336le, get an) 54 465.33 P +-0.01 (y information about) 217.58 465.33 P +0.25 0.15 (a f) 54 454.33 B +0.25 0.15 (ile, e) 64.42 454.33 B +0.25 0.15 (x) 84.86 454.33 B +0.25 0.15 (ecute operating system commands or nati) 89.86 454.33 B +0.25 0.15 (v) 262.53 454.33 B +0.25 0.15 (e code,) 267.53 454.33 B +0.25 0.39 (load a library) 54 443.33 B +0.25 0.39 (, or establish a netw) 112.69 443.33 B +0.25 0.39 (ork connection to an) 201.58 443.33 B +0.25 0.39 (y) 292 443.33 B +0.25 0.04 (machine other than the applet\325) 54 432.33 B +0.25 0.04 (s home serv) 177.4 432.33 B +0.25 0.04 (er) 225.99 432.33 B +0.25 0.04 (. This list is not) 233.3 432.33 B +0.25 0.41 (e) 54 421.33 B +0.25 0.41 (xhausti) 58.7 421.33 B +0.25 0.41 (v) 90.19 421.33 B +0.25 0.41 (e b) 95.45 421.33 B +0.25 0.41 (ut does gi) 108.67 421.33 B +0.25 0.41 (v) 151.89 421.33 B +0.25 0.41 (e a representati) 157.15 421.33 B +0.25 0.41 (v) 224.46 421.33 B +0.25 0.41 (e sample of the) 229.71 421.33 B +(restrictions place on applets.) 54 410.33 T +0.25 0.02 (An application or a web bro) 54 391.33 B +0.25 0.02 (wser can only ha) 167.47 391.33 B +0.25 0.02 (v) 235.82 391.33 B +0.25 0.02 (e one security) 240.7 391.33 B +0.25 0.11 (manager) 54 380.33 B +0.25 0.11 (. This assures that all access checks are made by a) 88.67 380.33 B +0.25 0.15 (single security manager enforcing a single security polic) 54 369.33 B +0.25 0.15 (y) 290 369.33 B +0.25 0.15 (.) 294.5 369.33 B +0.25 0.27 (The security manager is loaded at start-up and cannot be) 54 358.33 B +0.25 0.43 (e) 54 347.33 B +0.25 0.43 (xtended, o) 58.72 347.33 B +0.25 0.43 (v) 104.74 347.33 B +0.25 0.43 (erridden or replaced. F) 110.01 347.33 B +0.25 0.43 (or ob) 211.49 347.33 B +0.25 0.43 (vious reasons,) 234.55 347.33 B +(applets can not create their o) 54 336.33 T +(wn security managers.) 168.44 336.33 T +3 F +(Langua) 54 317.33 T +(g) 89.46 317.33 T +(e Features) 95.67 317.33 T +0 F +-0.19 (Ja) 54 298.33 P +-0.19 (v) 62.13 298.33 P +-0.19 (a has se) 66.88 298.33 P +-0.19 (v) 97.36 298.33 P +-0.19 (eral language features which protect the inte) 102.21 298.33 P +-0.19 (grity) 278.11 298.33 P +0.25 0.18 (of the security system and which pre) 54 287.33 B +0.25 0.18 (v) 208.3 287.33 B +0.25 0.18 (ent se) 213.33 287.33 B +0.25 0.18 (v) 237.45 287.33 B +0.25 0.18 (eral common) 242.48 287.33 B +0.25 0.41 (attacks. F) 54 276.33 B +0.25 0.41 (or e) 96.49 276.33 B +0.25 0.41 (xample, Ja) 113.48 276.33 B +0.25 0.41 (v) 160.35 276.33 B +0.25 0.41 (a programs are not allo) 165.51 276.33 B +0.25 0.41 (wed to) 267.78 276.33 B +0.25 0.39 (def) 54 265.33 B +0.25 0.39 (ine their o) 67.4 265.33 B +0.25 0.39 (wn memory pointers or to access ph) 112.51 265.33 B +0.25 0.39 (ysical) 271.71 265.33 B +-0.01 (memory directly) 54 254.33 P +-0.01 (. This pre) 119.72 254.33 P +-0.01 (v) 157.5 254.33 P +-0.01 (ents an applet from accessing and) 162.35 254.33 P +-0 (modifying critical parts of the security system. The language) 54 243.33 P +0.25 0.11 (tracks the type of ne) 54 232.33 B +0.25 0.11 (wly created classes and objects so that) 138.1 232.33 B +0.25 0.48 (an applet cannot for) 54 221.33 B +0.25 0.48 (ge its o) 143.88 221.33 B +0.25 0.48 (wn class loader or security) 176.87 221.33 B +-0.18 (manager) 54 210.33 P +-0.18 (. The Ja) 87.88 210.33 P +-0.18 (v) 118.7 210.33 P +-0.18 (a language also has se) 123.45 210.33 P +-0.18 (v) 210.78 210.33 P +-0.18 (eral other checks for) 215.63 210.33 P +0.25 0.03 (memory and pointer ab) 54 199.33 B +0.25 0.03 (use which could weak) 148.1 199.33 B +0.25 0.03 (en the security) 237.84 199.33 B +(system.) 54 188.33 T +0.25 0.39 (In addition to making Ja) 54 169.33 B +0.25 0.39 (v) 161.38 169.33 B +0.25 0.39 (a a more secure system, these) 166.52 169.33 B +0.25 0.11 (language features also mak) 54 158.33 B +0.25 0.11 (e Ja) 166.1 158.33 B +0.25 0.11 (v) 181.86 158.33 B +0.25 0.11 (a programs safer and more) 186.72 158.33 B +0.05 (reliable. Studies ha) 54 147.33 P +0.05 (v) 130.27 147.33 P +0.05 (e sho) 135.12 147.33 P +0.05 (wn that 40% to 50% of all b) 155.75 147.33 P +0.05 (ugs are) 268.36 147.33 P +0.25 0.23 (caused by errors in memory management. By automating) 54 136.33 B +0.25 0.04 (memory management, Ja) 54 125.33 B +0.25 0.04 (v) 155.37 125.33 B +0.25 0.04 (a eliminates a lar) 160.15 125.33 B +0.25 0.04 (ge class of b) 229.46 125.33 B +0.25 0.04 (ugs;) 280.21 125.33 B +(this results in more stable and reliable code.) 54 114.33 T +1 F +(Security Thr) 54 92.33 T +(ough Openness) 112.15 92.33 T +0 F +0.25 0.27 (In the past, man) 54 76.33 B +0.25 0.27 (y computer and netw) 122.74 76.33 B +0.25 0.27 (ork systems tried to) 212.59 76.33 B +0.25 0.09 (maintain security by hiding the inner w) 54 65.33 B +0.25 0.09 (orks and policies of) 216 65.33 B +0.25 0.61 (the system. This practice, kno) 315 731.33 B +0.25 0.61 (wn as security through) 453.56 731.33 B +0.25 0.31 (obscurity) 315 720.33 B +0.25 0.31 (, assumed that if the system w) 354.37 720.33 B +0.25 0.31 (as presented as a) 485.36 720.33 B +0.25 0.25 (black box then no one w) 315 709.33 B +0.25 0.25 (ould e) 419.84 709.33 B +0.25 0.25 (xpend the ef) 446.14 709.33 B +0.25 0.25 (fort needed to) 498.77 709.33 B +0.25 0.32 (disco) 315 698.33 B +0.25 0.32 (v) 337.55 698.33 B +0.25 0.32 (er the hidden vulnerabilities. The e) 342.72 698.33 B +0.25 0.32 (xistence of the) 494.72 698.33 B +0.25 0.05 (CER) 315 687.33 B +0.25 0.05 (T/CC and a number of well publicized netw) 334.01 687.33 B +0.25 0.05 (ork attacks) 513.62 687.33 B +0.25 0.8 (in recent years demonstrate that this assumption is) 315 676.33 B +0.13 (unfounded; the box is ne) 315 665.33 P +0.13 (v) 414.17 665.33 P +0.13 (er black enough. This is especially) 419.02 665.33 P +0.25 0.12 (true for commercially successful systems. F) 315 654.33 B +0.25 0.12 (or such widely) 497 654.33 B +0.25 0.09 (used systems, too man) 315 643.33 B +0.25 0.09 (y people kno) 407.56 643.33 B +0.25 0.09 (w the internal w) 460.59 643.33 B +0.25 0.09 (orkings) 527.44 643.33 B +0.03 (of the system for the details to remain secret and the re) 315 632.33 P +0.03 (w) 534.22 632.33 P +0.03 (ards) 541.34 632.33 P +(for breaking into the system are too great.) 315 621.33 T +0.03 (Sun took the opposite approach, and published all the details) 315 602.33 P +0.25 0.23 (of Ja) 315 591.33 B +0.25 0.23 (v) 335.36 591.33 B +0.25 0.23 (a security model when Ja) 340.34 591.33 B +0.25 0.23 (v) 447.77 591.33 B +0.25 0.23 (a w) 452.75 591.33 B +0.25 0.23 (as f) 467.75 591.33 B +0.25 0.23 (irst released. This) 482.53 591.33 B +0.25 0.79 (included the design specif) 315 580.33 B +0.25 0.79 (ications for the language) 439.79 580.33 B +0.25 1.2 (mechanisms and the sandbox, and a full source) 315 569.33 B +0.25 0.28 (implementation. This approach, dubbed security through) 315 558.33 B +0.25 0.02 (openness, w) 315 547.33 B +0.25 0.02 (as intended to encourage security researchers to) 364.3 547.33 B +0.25 0.31 (e) 315 536.33 B +0.25 0.31 (xamine the Ja) 319.6 536.33 B +0.25 0.31 (v) 378.98 536.33 B +0.25 0.31 (a model and to report an) 384.04 536.33 B +0.25 0.31 (y security f) 490.17 536.33 B +0.25 0.31 (la) 538.88 536.33 B +0.25 0.31 (ws) 546.58 536.33 B +0 (found; the \337a) 315 525.33 P +0 (ws could be \336x) 368.18 525.33 P +0 (ed before attacks based on those) 428.86 525.33 P +0.25 0.11 (f) 315 514.33 B +0.25 0.11 (la) 317.89 514.33 B +0.25 0.11 (ws could become endemic on the W) 325.18 514.33 B +0.25 0.11 (eb) 474.41 514.33 B +0.25 0.11 (. Security through) 483.67 514.33 B +0.25 0.36 (openness also allo) 315 503.33 B +0.25 0.36 (ws an) 394.46 503.33 B +0.25 0.36 (y or) 419.4 503.33 B +0.25 0.36 (g) 436.73 503.33 B +0.25 0.36 (anization to study the Ja) 442.04 503.33 B +0.25 0.36 (v) 548.45 503.33 B +0.25 0.36 (a) 553.56 503.33 B +-0.11 (security model in detail and mak) 315 492.33 P +-0.11 (e an informed assessment of) 445.15 492.33 P +(the potential risks v) 315 481.33 T +(ersus the bene\336ts of the Ja) 393.46 481.33 T +(v) 498.52 481.33 T +(a platform.) 503.27 481.33 T +1 F +(The Ja) 315 459.33 T +(v) 346.53 459.33 T +(a Security F) 351.89 459.33 T +(A) 407.78 459.33 T +(Q) 414.6 459.33 T +0 F +0.25 0.07 (K) 315 443.33 B +0.25 0.07 (eeping current is as important for Ja) 322.04 443.33 B +0.25 0.07 (v) 469.65 443.33 B +0.25 0.07 (a security as it is for) 474.47 443.33 B +0.25 0.35 (general security) 315 432.33 B +0.25 0.35 (. T) 383.72 432.33 B +0.25 0.35 (o f) 395.32 432.33 B +0.25 0.35 (acilitate this, Sun maintains a Ja) 407.33 432.33 B +0.25 0.35 (v) 548.46 432.33 B +0.25 0.35 (a) 553.56 432.33 B +0.25 0.29 (Security Frequently Ask) 315 421.33 B +0.25 0.29 (ed Questions \050F) 419.88 421.33 B +0.25 0.29 (A) 487.35 421.33 B +0.25 0.29 (Q\051 page on the) 494.31 421.33 B +0.25 0.77 (Ja) 315 410.33 B +0.25 0.77 (v) 324.67 410.33 B +0.25 0.77 (a web site. This F) 330.2 410.33 B +0.25 0.77 (A) 415.18 410.33 B +0.25 0.77 (Q can be found at) 422.63 410.33 B +4 F +0.6 0.77 (http://) 511.37 410.33 B +0.6 0.15 (java.sun.com/sfaq.) 315 399.33 B +0 F +0.25 0.15 ( The F) 425.68 399.33 B +0.25 0.15 (A) 452.45 399.33 B +0.25 0.15 (Q contains more details) 459.26 399.33 B +0.25 0.1 (on kno) 315 388.33 B +0.25 0.1 (wn vulnerabilities, the status of these vulnerabilities) 343.1 388.33 B +0.25 0.51 (and, when a) 315 377.33 B +0.25 0.51 (v) 368.95 377.33 B +0.25 0.51 (ailable, dates and release numbers of the) 374.21 377.33 B +0.05 (v) 315 366.33 P +0.05 (ersion of Ja) 319.85 366.33 P +0.05 (v) 365.85 366.33 P +0.05 (a in which the vulnerabilities were \336x) 370.6 366.33 P +0.05 (ed. More) 521.85 366.33 P +0.25 0.43 (security related information can be found at) 315 355.33 B +4 F +0.6 0.43 (http://) 513.44 355.33 B +(java.sun.com/security) 315 344.33 T +0 F +(.) 440.35 344.33 T +0.25 0.14 (Se) 315 325.33 B +0.25 0.14 (v) 325.02 325.33 B +0.25 0.14 (eral other or) 330.01 325.33 B +0.25 0.14 (g) 380.97 325.33 B +0.25 0.14 (anizations are also tracking Ja) 386.06 325.33 B +0.25 0.14 (v) 511.05 325.33 B +0.25 0.14 (a security) 515.94 325.33 B +0.25 0.14 (.) 555.5 325.33 B +0.25 0.5 (The CER) 315 314.33 B +0.25 0.5 (T/CC has released se) 355.68 314.33 B +0.25 0.5 (v) 450.43 314.33 B +0.25 0.5 (eral advisories on Ja) 455.78 314.33 B +0.25 0.5 (v) 548.3 314.33 B +0.25 0.5 (a) 553.56 314.33 B +0.25 0.2 (Security) 315 303.33 B +0.25 0.2 (. These vulnerabilities ha) 349.3 303.33 B +0.25 0.2 (v) 455.63 303.33 B +0.25 0.2 (e closely paralleled the) 460.69 303.33 B +0.25 0.22 (vulnerabilities listed abo) 315 292.33 B +0.25 0.22 (v) 419.26 292.33 B +0.25 0.22 (e and in the Ja) 424.32 292.33 B +0.25 0.22 (v) 485.55 292.33 B +0.25 0.22 (a Security F) 490.52 292.33 B +0.25 0.22 (A) 541.18 292.33 B +0.25 0.22 (Q.) 548.07 292.33 B +0.25 0.48 (Details are from the CER) 315 281.33 B +0.25 0.48 (T/CC web site. Se) 428.59 281.33 B +0.25 0.48 (v) 510.05 281.33 B +0.25 0.48 (eral other) 515.38 281.33 B +0.25 0.02 (or) 315 270.33 B +0.25 0.02 (g) 323.19 270.33 B +0.25 0.02 (anizations, including researchers at Princeton Uni) 328.16 270.33 B +0.25 0.02 (v) 528.95 270.33 B +0.25 0.02 (ersity) 533.82 270.33 B +0.25 0.02 (,) 555.5 270.33 B +0.01 (ha) 315 259.33 P +0.01 (v) 324.24 259.33 P +0.01 (e been in) 329.09 259.33 P +0.01 (v) 364.81 259.33 P +0.01 (estig) 369.66 259.33 P +0.01 (ating Ja) 388.5 259.33 P +0.01 (v) 419.14 259.33 P +0.01 (a security) 423.89 259.33 P +0.01 (. The Princeton \336ndings) 461.86 259.33 P +0.25 0.24 (can be found at) 315 248.33 B +4 F +0.6 0.24 (http://www.cs.princeton.edu/) 383.64 248.33 B +(sip/) 315 237.33 T +0 F +(.) 339 237.33 T +1 F +(EXTENDING J) 315 214.33 T +(A) 381.48 214.33 T +(V) 387.9 214.33 T +(A SECURITY) 393.77 214.33 T +(Security Modeling) 315 191.33 T +0 F +0.25 0.22 (While man) 315 175.33 B +0.25 0.22 (y e) 361.19 175.33 B +0.25 0.22 (xperts agree that the Ja) 373.88 175.33 B +0.25 0.22 (v) 471.48 175.33 B +0.25 0.22 (a Security model is) 476.44 175.33 B +0.25 0.22 (basically sound, there is a concern that the model has not) 315 164.33 B +-0.01 (been e) 315 153.33 P +-0.01 (xamined in enough detail to ensure that the sandbox is) 340.65 153.33 P +0.25 0.17 (as secure as is claimed. There is also the possibility that a) 315 142.33 B +0.25 0.02 (particular implementation of the Ja) 315 131.33 B +0.25 0.02 (v) 456.47 131.33 B +0.25 0.02 (a security model suf) 461.24 131.33 B +0.25 0.02 (fers) 542.95 131.33 B +0.25 0.03 (from b) 315 120.33 B +0.25 0.03 (ugs and other coding errors which could be e) 342.14 120.33 B +0.25 0.03 (xploited) 525.04 120.33 B +0.25 0.41 (by a malicious applet which wished to break out of the) 315 109.33 B +0.25 0.31 (sandbox. Finally) 315 98.33 B +0.25 0.31 (, there could be une) 386.15 98.33 B +0.25 0.31 (xpected interactions) 471.69 98.33 B +0.25 0.13 (between Ja) 315 87.33 B +0.25 0.13 (v) 360.48 87.33 B +0.25 0.13 (a applets and other parts of the netw) 365.36 87.33 B +0.25 0.13 (ork which) 516.45 87.33 B +0.06 (could be e) 315 76.33 P +0.06 (xploited. Problems which e) 356.07 76.33 P +0.06 (xploit all three of these) 465.55 76.33 P +(cate) 315 65.33 T +(gories ha) 330.95 65.33 T +(v) 367.13 65.33 T +(e been reported.) 371.98 65.33 T +0 0 0 1 0 0 0 K +FMENDPAGE +%%EndPage: "5" 5 +%%Page: "6" 6 +612 792 0 FMBEGINPAGE +[0 0 0 1 0 0 0] +[ 0 1 1 0 1 0 0] +[ 1 0 1 0 0 1 0] +[ 1 1 0 0 0 0 1] +[ 1 0 0 0 0 1 1] +[ 0 1 0 0 1 0 1] +[ 0 0 1 0 1 1 0] + 7 FrameSetSepColors +FrameNoSep +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 18 558 45 R +7 X +0 0 0 1 0 0 0 K +V +0 8 Q +0 X +(\251 Sun Microsystems, Inc., 1996) 54 39.67 T +(6) 306 39.67 T +54 54 558 738 R +7 X +V +0 10 Q +0 X +0.25 0.22 (F) 54 731.33 B +0.25 0.22 (or these reasons, Sun has initiated an independent, third) 59.63 731.33 B +0.25 0.72 (party security modeling ef) 54 720.33 B +0.25 0.72 (fort. The f) 178.44 720.33 B +0.25 0.72 (irst step, being) 227.11 720.33 B +0.25 0.02 (conducted by security consultant Blackw) 54 709.33 B +0.25 0.02 (atch Inc. \050) 219.97 709.33 B +4 F +0.6 0.02 (http:/) 260.92 709.33 B +0.6 0.61 (/www.blackwatch.com) 54 698.33 B +0 F +0.25 0.61 (\051, will produce a Security) 179.5 698.33 B +0.25 0.41 (Reference Model. The Reference Model will document) 54 687.33 B +(Ja) 54 676.33 T +(v) 62.13 676.33 T +(a\325) 66.88 676.33 T +(s security model in rigorous detail.) 74.1 676.33 T +0.25 0.04 (The second step will be to de) 54 657.33 B +0.25 0.04 (v) 172.93 657.33 B +0.25 0.04 (elop a more rigorous security) 177.81 657.33 B +0.07 (compatibility test suite based on the Reference Model. Since) 54 646.33 P +0.25 0.23 (each Ja) 54 635.33 B +0.25 0.23 (v) 84.82 635.33 B +0.25 0.23 (a licensee is free to re-implement portions of the) 89.8 635.33 B +-0.04 (Ja) 54 624.33 P +-0.04 (v) 62.13 624.33 P +-0.04 (a V) 66.88 624.33 P +-0.04 (irtual Machine, the ne) 80.4 624.33 P +-0.04 (w test suite will ensure that both) 167.79 624.33 P +0.25 0.57 (Sun and all licensees ha) 54 613.33 B +0.25 0.57 (v) 164.05 613.33 B +0.25 0.57 (e correctly implemented the) 169.47 613.33 B +0.25 0.06 (Reference Model. This test suite will be an enhancement to) 54 602.33 B +0.82 1.25 (the test suite already used to ensure that Ja) 54 591.33 B +0.82 1.25 (v) 286.56 591.33 B +0.82 1.25 (a) 292.56 591.33 B +(implementations comply with the Ja) 54 580.33 T +(v) 198.8 580.33 T +(a standard.) 203.55 580.33 T +-0.22 (The third step will be to commission independent, third party) 54 561.33 P +0.25 0.12 (assessments of Sun\325) 54 550.33 B +0.25 0.12 (s reference implementation of the Ja) 136.88 550.33 B +0.25 0.12 (v) 287.68 550.33 B +0.25 0.12 (a) 292.56 550.33 B +0.25 0.19 (standard. This assessment ef) 54 539.33 B +0.25 0.19 (fort relies on ha) 173.61 539.33 B +0.25 0.19 (ving a formal) 240.38 539.33 B +0.25 0.08 (model specif) 54 528.33 B +0.25 0.08 (ied so that the implementation can be assessed) 106 528.33 B +(in the conte) 54 517.33 T +(xt of the assertions of the security model.) 100.51 517.33 T +(This re) 54 498.33 T +(vie) 81.8 498.33 T +(w is e) 93.77 498.33 T +(xpected to be complete by the f) 116.95 498.33 T +(all of 1996.) 242.38 498.33 T +1 F +(Ne) 54 476.33 T +(w Security F) 66.63 476.33 T +(acilities) 125.34 476.33 T +0 F +0.25 0.05 (The sandbox model described abo) 54 460.33 B +0.25 0.05 (v) 193.15 460.33 B +0.25 0.05 (e protects the end-user\325) 198.05 460.33 B +0.25 0.05 (s) 293.11 460.33 B +0.25 0.1 (machine and netw) 54 449.33 B +0.25 0.1 (ork) 128.73 449.33 B +0.25 0.1 (ed computing resources from damage) 142.25 449.33 B +0.25 0.04 (or theft by a malicious applet. Users can run untrusted code) 54 438.33 B +0.25 0.5 (obtained from the netw) 54 427.33 B +0.25 0.5 (ork without undue risk to their) 158.74 427.33 B +(system.) 54 416.33 T +0.25 0.1 (The sandbox model does not address se) 54 397.33 B +0.25 0.1 (v) 217.45 397.33 B +0.25 0.1 (eral other security) 222.41 397.33 B +0.25 0.17 (and pri) 54 386.33 B +0.25 0.17 (v) 83.28 386.33 B +0.25 0.17 (ac) 88.2 386.33 B +0.25 0.17 (y issues. Authentication is needed, to guarantee) 97.28 386.33 B +0.25 0.1 (that an applet comes from the place it claims to ha) 54 375.33 B +0.25 0.1 (v) 262.68 375.33 B +0.25 0.1 (e come) 267.63 375.33 B +0.25 0.38 (from. Digitally signed and authenticated applets can be) 54 364.33 B +-0.03 (promoted to the status of trusted applets, and then allo) 54 353.33 P +-0.03 (wed to) 270.09 353.33 P +0.25 0.12 (run with fe) 54 342.33 B +0.25 0.12 (wer security restrictions. Encryption can ensure) 99.48 342.33 B +0.25 0.25 (the pri) 54 331.33 B +0.25 0.25 (v) 81.58 331.33 B +0.25 0.25 (ac) 86.58 331.33 B +0.25 0.25 (y of data passed between an applet client and a) 95.81 331.33 B +0.25 0.21 (serv) 54 320.33 B +0.25 0.21 (er on the Internet. W) 71.36 320.33 B +0.25 0.21 (ork is underw) 159.05 320.33 B +0.25 0.21 (ay to e) 217.2 320.33 B +0.25 0.21 (xtend Ja) 245.7 320.33 B +0.25 0.21 (v) 280.5 320.33 B +0.25 0.21 (a\325) 285.46 320.33 B +0.25 0.21 (s) 293.11 320.33 B +(security model into each of these areas.) 54 309.33 T +3 F +(Signed J) 54 290.33 T +(AR \336les) 95.48 290.33 T +0 F +0.25 0.37 (All netw) 54 271.33 B +0.25 0.37 (ork) 91.85 271.33 B +0.25 0.37 (ed systems are potentially vulnerable to the) 106.19 271.33 B +0.25 0.05 (\322Man-in-the-Middle\323 attack. In this attack, a client contacts) 54 260.33 B +0.2 (a le) 54 249.33 P +0.2 (gitimate serv) 68.21 249.33 P +0.2 (er on the netw) 120.19 249.33 P +0.2 (ork and requests some action.) 177.62 249.33 P +0.25 0.07 (The attack) 54 238.33 B +0.25 0.07 (er) 96.82 238.33 B +0.25 0.07 (, or man in the middle, notices this request and) 104.34 238.33 B +0.25 0.07 (w) 54 227.33 B +0.25 0.07 (aits for the serv) 61.19 227.33 B +0.25 0.07 (er to respond. The attack) 124.83 227.33 B +0.25 0.07 (er then intercepts) 226.51 227.33 B +0.25 0.21 (the response and supplies a bogus reply to the client. The) 54 216.33 B +0.25 0.15 (client then acts on the bogus information, or possibly runs) 54 205.33 B +0.25 0.29 (the program supplied by the attack) 54 194.33 B +0.25 0.29 (er) 203.49 194.33 B +0.25 0.29 (, gi) 211.43 194.33 B +0.25 0.29 (ving the attack) 225.36 194.33 B +0.25 0.29 (er) 288.94 194.33 B +0.23 (access to the client machine. F) 54 183.33 P +0.23 (or e) 177.19 183.33 P +0.23 (xample, an attack) 192.54 183.33 P +0.23 (er might) 263.16 183.33 P +0.25 0.27 (w) 54 172.33 B +0.25 0.27 (atch an Internet-based banking site. As clients visit the) 61.39 172.33 B +-0.06 (page which pro) 54 161.33 P +-0.06 (vides bill paying services, the attack) 115.38 161.33 P +-0.06 (er di) 259.97 161.33 P +-0.06 (v) 277.71 161.33 P +-0.06 (erts) 282.56 161.33 P +0.25 0.05 (the bank\325) 54 150.33 B +0.25 0.05 (s responses and pro) 91.64 150.33 B +0.25 0.05 (vides a malicious applet which) 171.23 150.33 B +-0.15 (mimics the bank\325) 54 139.33 P +-0.15 (s service, b) 122.59 139.33 P +-0.15 (ut also steals a cop) 166.79 139.33 P +-0.15 (y of the user\325) 241.07 139.33 P +-0.15 (s) 293.11 139.33 P +(credit card and bank account numbers.) 54 128.33 T +-0.16 (This attack can be thw) 54 109.33 P +-0.16 (arted by applying \322digital shrinkwrap\323) 143.23 109.33 P +0.25 0.04 (to the applet. W) 54 98.33 B +0.25 0.04 (e trust ph) 118.41 98.33 B +0.25 0.04 (ysical softw) 156.45 98.33 B +0.25 0.04 (are we ha) 205.08 98.33 B +0.25 0.04 (v) 244.02 98.33 B +0.25 0.04 (e purchased) 248.91 98.33 B +-0.23 (because its packaging sho) 54 87.33 P +-0.23 (ws who produced the softw) 156.64 87.33 P +-0.23 (are, and) 265.58 87.33 P +-0.16 (the shrinkwrap sho) 54 76.33 P +-0.16 (ws that the product has not been tampered) 129.53 76.33 P +0.25 0.26 (with. If the producer has a good reputation for pro) 54 65.33 B +0.25 0.26 (viding) 270.11 65.33 B +0.25 0.03 (softw) 315 731.33 B +0.25 0.03 (are which does not tak) 337.29 731.33 B +0.25 0.03 (e an) 428.92 731.33 B +0.25 0.03 (y hostile actions ag) 445.54 731.33 B +0.25 0.03 (ainst the) 523.87 731.33 B +0.25 0.23 (user) 315 720.33 B +0.25 0.23 (, then we can install the product with some de) 332.19 720.33 B +0.25 0.23 (gree of) 528.31 720.33 B +(con\336dence.) 315 709.33 T +0.25 0.3 (\322Signed applets\323 gi) 315 690.33 B +0.25 0.3 (v) 398.65 690.33 B +0.25 0.3 (e us the same le) 403.8 690.33 B +0.25 0.3 (v) 472.61 690.33 B +0.25 0.3 (el of conf) 477.76 690.33 B +0.25 0.3 (idence in) 519 690.33 B +-0.03 (netw) 315 679.33 P +-0.03 (ork distrib) 334.34 679.33 P +-0.03 (uted softw) 375.51 679.33 P +-0.03 (are. T) 417.32 679.33 P +-0.03 (o sign an applet, the producer) 439.82 679.33 P +0.25 0.09 (f) 315 668.33 B +0.25 0.09 (irst b) 317.87 668.33 B +0.25 0.09 (undles all the Ja) 338.75 668.33 B +0.25 0.09 (v) 405.01 668.33 B +0.25 0.09 (a code and related f) 409.85 668.33 B +0.25 0.09 (iles into a single) 490.42 668.33 B +0.12 (\336le called a Ja) 315 657.33 P +0.12 (v) 372.09 657.33 P +0.12 (a Archi) 376.84 657.33 P +0.12 (v) 406.42 657.33 P +0.12 (e, or J) 411.27 657.33 P +0.12 (AR. The producer then creates) 435.06 657.33 P +-0.1 (a string called a digital signature based on the contents of the) 315 646.33 P +0.25 0.26 (J) 315 635.33 B +0.25 0.26 (AR. The full details of digital signatures are be) 318.55 635.33 B +0.25 0.26 (yond the) 521.2 635.33 B +0.25 0.4 (scope of this white paper) 315 624.33 B +0.25 0.4 (. More details can be found in) 425.32 624.33 B +0.25 0.42 (\322) 315 613.33 B +0.25 0.42 (Applied Cryptograph) 319.06 613.33 B +0.25 0.42 (y) 412.55 613.33 B +0.25 0.42 (,) 417.32 613.33 B +0.25 0.42 (\323 by Bruce Schneier) 419.55 613.33 B +0.25 0.42 (, as well as) 508.73 613.33 B +(numerous other cryptographic reference books.) 315 602.33 T +0.25 0.45 (J) 315 583.33 B +0.25 0.45 (AR f) 318.74 583.33 B +0.25 0.45 (iles solv) 339.97 583.33 B +0.25 0.45 (e another problem. Currently) 377.21 583.33 B +0.25 0.45 (, man) 506.08 583.33 B +0.25 0.45 (y Ja) 530.66 583.33 B +0.25 0.45 (v) 548.36 583.33 B +0.25 0.45 (a) 553.56 583.33 B +-0.16 (applets tak) 315 572.33 P +-0.16 (e a v) 357.79 572.33 P +-0.16 (ery long time to do) 376.2 572.33 P +-0.16 (wnload and be) 451.42 572.33 P +-0.16 (gin running.) 509.27 572.33 P +0.25 0.09 (This can be anno) 315 561.33 B +0.25 0.09 (ying e) 385.12 561.33 B +0.25 0.09 (v) 410.38 561.33 B +0.25 0.09 (en for those users with a v) 415.32 561.33 B +0.25 0.09 (ery high) 524.07 561.33 B +0.25 0.51 (speed link to the Internet. The problem is that current) 315 550.33 B +0.25 0.15 (Internet protocols mo) 315 539.33 B +0.25 0.15 (v) 404.67 539.33 B +0.25 0.15 (e web pages across the Internet one) 409.67 539.33 B +0.25 0.09 (f) 315 528.33 B +0.25 0.09 (ile at a time. Since there is some o) 317.87 528.33 B +0.25 0.09 (v) 460.05 528.33 B +0.25 0.09 (erhead associated with) 464.99 528.33 B +0.07 (each request for a \336le, web pages and Ja) 315 517.33 P +0.07 (v) 476.12 517.33 P +0.07 (a applets which are) 480.88 517.33 P +0.25 0.55 (composed of man) 315 506.33 B +0.25 0.55 (y small f) 394.63 506.33 B +0.25 0.55 (iles might spend more time) 434.48 506.33 B +0.09 (requesting those \336les and w) 315 495.33 P +0.09 (aiting for replies than the) 426.35 495.33 P +0.09 (y spend) 527.08 495.33 P +-0.12 (actually mo) 315 484.33 P +-0.12 (ving the information. Since a J) 361.67 484.33 P +-0.12 (AR \336le b) 483.27 484.33 P +-0.12 (undles all) 519.51 484.33 P +0.15 (the information needed by the applet and its web page into a) 315 473.33 P +0.25 0.08 (single f) 315 462.33 B +0.25 0.08 (ile, the entire page can be do) 345.02 462.33 B +0.25 0.08 (wnloaded with a single) 463.19 462.33 B +0.25 0.13 (request. F) 315 451.33 B +0.25 0.13 (or man) 355.86 451.33 B +0.25 0.13 (y pages this will greatly reduce do) 384.81 451.33 B +0.25 0.13 (wnload) 527.9 451.33 B +(times.) 315 440.33 T +0.25 0.57 (J) 315 421.33 B +0.25 0.57 (ARs and digital signatures can also be used for Ja) 318.86 421.33 B +0.25 0.57 (v) 548.23 421.33 B +0.25 0.57 (a) 553.56 421.33 B +0.25 0.12 (applications. While Ja) 315 410.33 B +0.25 0.12 (v) 406.55 410.33 B +0.25 0.12 (a applications are more trustw) 411.42 410.33 B +0.25 0.12 (orth) 536.46 410.33 B +0.25 0.12 (y) 553 410.33 B +0.25 0.01 (than applets because the) 315 399.33 B +0.25 0.01 (y do not tra) 412.84 399.33 B +0.25 0.01 (v) 459.38 399.33 B +0.25 0.01 (el o) 464.24 399.33 B +0.25 0.01 (v) 479.12 399.33 B +0.25 0.01 (er the Internet and) 483.98 399.33 B +0.25 0.1 (are subject to an or) 315 388.33 B +0.25 0.1 (g) 393.86 388.33 B +0.25 0.1 (anizations traditional security policies,) 398.91 388.33 B +0.25 0.49 (applications are subject to se) 315 377.33 B +0.25 0.49 (v) 445.39 377.33 B +0.25 0.49 (eral types of attack. F) 450.73 377.33 B +0.25 0.49 (or) 549.18 377.33 B +0.25 0.08 (e) 315 366.33 B +0.25 0.08 (xample, viruses spread by modifying e) 319.37 366.33 B +0.25 0.08 (xisting applications) 478.25 366.33 B +0.25 0.21 (to include a cop) 315 355.33 B +0.25 0.21 (y of the virus. Since a virus w) 382.67 355.33 B +0.25 0.21 (ould not be) 510.36 355.33 B +0.08 (able to produce a v) 315 344.33 P +0.08 (alid signature for the altered program, the) 391.16 344.33 P +0.25 0.08 (Ja) 315 333.33 B +0.25 0.08 (v) 323.3 333.33 B +0.25 0.08 (a system could detect that a signed application has been) 328.13 333.33 B +0.25 0.03 (tampered with, and refuse to run it. Since the J) 315 322.33 B +0.25 0.03 (AR signature) 504.38 322.33 B +0.25 0 (system will w) 315 311.33 B +0.25 0 (ork with all types of information, not just Ja) 371.01 311.33 B +0.25 0 (v) 548.81 311.33 B +0.25 0 (a) 553.56 311.33 B +-0.22 (\336les, J) 315 300.33 P +-0.22 (AR signatures can also be used to protect data \336les and) 339.73 300.33 P +(other information.) 315 289.33 T +0.25 0.26 (Signed J) 315 270.33 B +0.25 0.26 (AR f) 350.91 270.33 B +0.25 0.26 (iles will be included in Ja) 371.38 270.33 B +0.25 0.26 (v) 481.42 270.33 B +0.25 0.26 (a release 1.1 and) 486.43 270.33 B +(should be a) 315 259.33 T +(v) 360.35 259.33 T +(ailable by the end of 1996.) 365.1 259.33 T +3 F +(Fle) 315 240.33 T +(xib) 329.3 240.33 T +(le P) 343.65 240.33 T +(olicies) 361.04 240.33 T +0 F +0.04 (Since digital signatures allo) 315 221.33 P +0.04 (w us to assign to Ja) 425.69 221.33 P +0.04 (v) 503.18 221.33 P +0.04 (a applets the) 507.93 221.33 P +0.25 0.53 (same le) 315 210.33 B +0.25 0.53 (v) 348.97 210.33 B +0.25 0.53 (el of trust which we assign to shrinkwrapped) 354.35 210.33 B +0.25 0.39 (applications, it may be useful to relax the Ja) 315 199.33 B +0.25 0.39 (v) 510.51 199.33 B +0.25 0.39 (a security) 515.65 199.33 B +-0.21 (restrictions for some applets. F) 315 188.33 P +-0.21 (or e) 437.63 188.33 P +-0.21 (xample, it w) 452.54 188.33 P +-0.21 (ould be useful) 501.75 188.33 P +0.25 0.08 (if the home banking applet described abo) 315 177.33 B +0.25 0.08 (v) 484.6 177.33 B +0.25 0.08 (e could establish) 489.53 177.33 B +0.25 0.41 (its o) 315 166.33 B +0.25 0.41 (wn directory on the user\325) 333.98 166.33 B +0.25 0.41 (s hard disk. It could store) 445.1 166.33 B +-0.13 (account and credit card numbers, passw) 315 155.33 P +-0.13 (ords, PINs, and other) 473.67 155.33 P +0.25 0.05 (frequently used information so the end-user w) 315 144.33 B +0.25 0.05 (ould not ha) 502.86 144.33 B +0.25 0.05 (v) 548.66 144.33 B +0.25 0.05 (e) 553.56 144.33 B +(to constantly re-enter that information.) 315 133.33 T +0.25 0 (Signed applets can be used to create this en) 315 114.33 B +0.25 0 (vironment. If the) 489.98 114.33 B +0.01 (end-user has pre) 315 103.33 P +0.01 (viously told the Ja) 380.31 103.33 P +0.01 (v) 453.21 103.33 P +0.01 (a system that a particular) 457.96 103.33 P +0.25 0.03 (web publisher) 315 92.33 B +0.25 0.03 (, say a bank or credit card compan) 371.62 92.33 B +0.25 0.03 (y) 511.4 92.33 B +0.25 0.03 (, is trusted) 515.78 92.33 B +0.25 0.06 (and a signed applet from that publisher has arri) 315 81.33 B +0.25 0.06 (v) 507.87 81.33 B +0.25 0.06 (ed o) 512.78 81.33 B +0.25 0.06 (v) 530.06 81.33 B +0.25 0.06 (er the) 534.97 81.33 B +0.25 0.43 (Internet and been authenticated, then the Ja) 315 70.33 B +0.25 0.43 (v) 508.39 70.33 B +0.25 0.43 (a Security) 513.58 70.33 B +0 0 0 1 0 0 0 K +FMENDPAGE +%%EndPage: "6" 6 +%%Page: "7" 7 +612 792 0 FMBEGINPAGE +[0 0 0 1 0 0 0] +[ 0 1 1 0 1 0 0] +[ 1 0 1 0 0 1 0] +[ 1 1 0 0 0 0 1] +[ 1 0 0 0 0 1 1] +[ 0 1 0 0 1 0 1] +[ 0 0 1 0 1 1 0] + 7 FrameSetSepColors +FrameNoSep +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +0 0 0 1 0 0 0 K +54 9 558 36 R +7 X +0 0 0 1 0 0 0 K +V +0 8 Q +0 X +(\251 Sun Microsystems, Inc., 1996) 54 30.67 T +(7) 306 30.67 T +54 54 558 738 R +7 X +V +0 10 Q +0 X +0.25 0.29 (Manager could allo) 54 731.33 B +0.25 0.29 (w that applet out of the sandbox, and) 137.17 731.33 B +(treat it as an application.) 54 720.33 T +0.25 0.13 (The Security Manger could also enforce dif) 54 701.33 B +0.25 0.13 (ferent le) 235.01 701.33 B +0.25 0.13 (v) 269.19 701.33 B +0.25 0.13 (els of) 274.17 701.33 B +0.25 0.03 (control based on ho) 54 690.33 B +0.25 0.03 (w much a particular publisher is trusted,) 133.61 690.33 B +0.25 0.46 (or on ho) 54 679.33 B +0.25 0.46 (w much the Internet as a whole is trusted. F) 91.29 679.33 B +0.25 0.46 (or) 288.21 679.33 B +0.25 0.04 (e) 54 668.33 B +0.25 0.04 (xample, a v) 58.33 668.33 B +0.25 0.04 (ery security-conscious user could conf) 105.47 668.33 B +0.25 0.04 (igure the) 261.18 668.33 B +0.25 0.6 (system to allo) 54 657.33 B +0.25 0.6 (w signed applets to run only inside the) 118.23 657.33 B +0.03 (sandbox, and to pre) 54 646.33 P +0.03 (v) 132.15 646.33 P +0.03 (ent an) 137 646.33 P +0.03 (y unsigned applet from running at) 161.04 646.33 P +0.25 0.24 (all. Another user might conf) 54 635.33 B +0.25 0.24 (igure the system to allo) 174.11 635.33 B +0.25 0.24 (w the) 273.86 635.33 B +0.18 (banking applet to access only one particular directory on the) 54 624.33 P +0.25 0.18 (hard disk, while a net g) 54 613.33 B +0.25 0.18 (aming applet could access another) 152.93 613.33 B +(directory and all other applets are restricted to the sandbox.) 54 602.33 T +3 F +(A) 54 583.33 T +(uditing) 60.92 583.33 T +0 F +0.25 0.33 (Auditing is another important security feature. Auditing) 54 564.33 B +0.24 (softw) 54 553.33 P +0.24 (are maintains a record of e) 76.12 553.33 P +0.24 (v) 183.4 553.33 P +0.24 (erything which happens on) 188.25 553.33 P +0.25 0.06 (the system. When something goes wrong, either through an) 54 542.33 B +0.25 0.29 (accident or a b) 54 531.33 B +0.25 0.29 (ug, or because of an attack, the audit trail) 117.51 531.33 B +0.25 0.35 (allo) 54 520.33 B +0.25 0.35 (ws systems administrators and security personnel to) 70.16 520.33 B +-0.08 (\336gure out what happened, and ho) 54 509.33 P +-0.08 (w to pre) 186.66 509.33 P +-0.08 (v) 219.02 509.33 P +-0.08 (ent a reoccurrence) 223.87 509.33 P +0.25 0.17 (in the future. While auditing cannot pre) 54 498.33 B +0.25 0.17 (v) 219.95 498.33 B +0.25 0.17 (ent accidents and) 224.96 498.33 B +0.25 0.28 (attacks, once things go wrong, it is an important tool for) 54 487.33 B +(cleaning up the mess.) 54 476.33 T +0.25 0.22 (While some v) 54 457.33 B +0.25 0.22 (ersions of the Ja) 112.56 457.33 B +0.25 0.22 (v) 181.58 457.33 B +0.25 0.22 (a platform include limited) 186.55 457.33 B +0.25 0.58 (auditing features, there is no standard set of auditing) 54 446.33 B +0.25 0.2 (capabilities on which an administrator can rely) 54 435.33 B +0.25 0.2 (, and those) 251.45 435.33 B +0.08 (features that do e) 54 424.33 P +0.08 (xist do not record as much detail as is often) 122.68 424.33 P +0.25 0.49 (needed. Ef) 54 413.33 B +0.25 0.49 (forts are under w) 101.68 413.33 B +0.25 0.49 (ay to def) 178.72 413.33 B +0.25 0.49 (ine what standard) 218.09 413.33 B +0.25 0.16 (features need to be included in e) 54 402.33 B +0.25 0.16 (v) 190.03 402.33 B +0.25 0.16 (ery Ja) 195.05 402.33 B +0.25 0.16 (v) 219.67 402.33 B +0.25 0.16 (a implementation) 224.59 402.33 B +(and ho) 54 391.33 T +(w these features should be implemented.) 80.69 391.33 T +3 F +(Encr) 54 372.33 T +(yption) 76.33 372.33 T +0 F +0.25 0.22 (While the sandbox and signed applets can protect ag) 54 353.33 B +0.25 0.22 (ainst) 277.22 353.33 B +0.25 0.13 (hostile applets and man-in-the-middle attacks, information) 54 342.33 B +0.25 0.12 (tra) 54 331.33 B +0.25 0.12 (v) 64.71 331.33 B +0.25 0.12 (eling between the applet and a serv) 69.69 331.33 B +0.25 0.12 (er on the Internet is) 215.81 331.33 B +0.25 0.06 (still vulnerable to theft. This is because the Internet itself is) 54 320.33 B +0.25 0.51 (an insecure medium. An attack) 54 309.33 B +0.25 0.51 (er attached to a central) 193.79 309.33 B +0.1 (portion of the Internet can read all information which tra) 54 298.33 P +0.1 (v) 281.04 298.33 P +0.1 (els) 285.89 298.33 P +0.04 (through that portion of the Internet. The attack) 54 287.33 P +0.04 (er could listen) 240.26 287.33 P +0.25 0.03 (to all traf) 54 276.33 B +0.25 0.03 (f) 91.26 276.33 B +0.25 0.03 (ic bound for a major bank or mail order compan) 94.08 276.33 B +0.25 0.03 (y) 290.12 276.33 B +0.25 0.03 (,) 294.5 276.33 B +0.25 0.1 (and simply read credit card numbers and other information) 54 265.33 B +-0.16 (of) 54 254.33 P +-0.16 (f the wire as it passed. T) 62.08 254.33 P +-0.16 (o secure ag) 157.78 254.33 P +-0.16 (ainst this type of attack,) 202.38 254.33 P +0.25 0.27 (all information f) 54 243.33 B +0.25 0.27 (lo) 124.15 243.33 B +0.25 0.27 (wing between the applet and its serv) 132.23 243.33 B +0.25 0.27 (er) 288.96 243.33 B +(must be rendered unreadable by encrypting it.) 54 232.33 T +-0 (Se) 54 213.33 P +-0 (v) 63.75 213.33 P +-0 (eral Ja) 68.6 213.33 P +-0 (v) 94.22 213.33 P +-0 (a encryption f) 98.97 213.33 P +-0 (acilities are being de) 154.4 213.33 P +-0 (v) 236.61 213.33 P +-0 (eloped. These) 241.46 213.33 P +0.25 0.18 (f) 54 202.33 B +0.25 0.18 (acilities will allo) 57.41 202.33 B +0.25 0.18 (w applet de) 127.72 202.33 B +0.25 0.18 (v) 176.03 202.33 B +0.25 0.18 (elopers to select the type of) 181.06 202.33 B +0.25 0.21 (encryption algorithm used, to ne) 54 191.33 B +0.25 0.21 (gotiate with the serv) 191.39 191.33 B +0.25 0.21 (er to) 277.85 191.33 B +0.25 0.16 (create the k) 54 180.33 B +0.25 0.16 (e) 102.39 180.33 B +0.25 0.16 (ys used in the encryption and to do the actual) 106.83 180.33 B +(encryption of the data.) 54 169.33 T +0.25 0.19 (While there are fe) 54 150.33 B +0.25 0.19 (w technical challenges to implementing) 129.92 150.33 B +0.25 0.01 (the cryptographic functionality) 54 139.33 B +0.25 0.01 (, the US go) 178.01 139.33 B +0.25 0.01 (v) 223.71 139.33 B +0.25 0.01 (ernment imposes) 228.57 139.33 B +0.01 (strict e) 54 128.33 P +0.01 (xport controls on encryption technology) 80.8 128.33 P +0.01 (. Since Ja) 240.75 128.33 P +0.01 (v) 278.63 128.33 P +0.01 (a is) 283.38 128.33 P +0.25 0.2 (a) 54 117.33 B +0.25 0.2 (v) 58.44 117.33 B +0.25 0.2 (ailable w) 63.39 117.33 B +0.25 0.2 (orld-wide, an) 101.73 117.33 B +0.25 0.2 (y proposed cryptographic system) 157.75 117.33 B +0.08 (must comply with these la) 54 106.33 P +0.08 (ws. Ensuring this compliance may) 159.18 106.33 P +(delay the release of the f) 54 95.33 T +(acilities.) 151.92 95.33 T +1 F +(SUMMAR) 315 731.33 T +(Y) 359.49 731.33 T +0 F +0.25 0.42 (The Ja) 315 715.33 B +0.25 0.42 (v) 343.94 715.33 B +0.25 0.42 (a platform supports Write Once/Run An) 349.11 715.33 B +0.25 0.42 (ywhere) 526.48 715.33 B +0.25 0.41 (applications. This, combined with the easy distrib) 315 704.33 B +0.25 0.41 (ution) 535.79 704.33 B +0.14 (mechanisms pro) 315 693.33 P +0.14 (vided by the W) 380.26 693.33 P +0.14 (orld W) 441.25 693.33 P +0.14 (ide W) 469.04 693.33 P +0.14 (eb and W) 492.54 693.33 P +0.14 (eb-lik) 530.33 693.33 P +0.14 (e) 553.56 693.33 P +0.25 0.33 (systems called intranets, mak) 315 682.33 B +0.25 0.33 (es Ja) 442.47 682.33 B +0.25 0.33 (v) 463.34 682.33 B +0.25 0.33 (a a po) 468.42 682.33 B +0.25 0.33 (werful tool for) 494.54 682.33 B +0.25 0.46 (man) 315 671.33 B +0.25 0.46 (y netw) 333.46 671.33 B +0.25 0.46 (ork based systems. The mobile applications) 363.33 671.33 B +0.25 0.53 (which Ja) 315 660.33 B +0.25 0.53 (v) 354.55 660.33 B +0.25 0.53 (a enables \321 applications that automatically) 359.83 660.33 B +0.25 0.08 (migrate o) 315 649.33 B +0.25 0.08 (v) 353.9 649.33 B +0.25 0.08 (er the netw) 358.83 649.33 B +0.25 0.08 (ork to where the) 404.58 649.33 B +0.25 0.08 (y are needed \321solv) 471.76 649.33 B +0.25 0.08 (e) 553.56 649.33 B +0.25 0.3 (man) 315 638.33 B +0.25 0.3 (y persistent problems in application distrib) 332.96 638.33 B +0.25 0.3 (ution and) 517.88 638.33 B +(systems management.) 315 627.33 T +0.25 0.22 (While mobile applications solv) 315 608.33 B +0.25 0.22 (e the softw) 447.03 608.33 B +0.25 0.22 (are distrib) 493.77 608.33 B +0.25 0.22 (ution) 536.54 608.33 B +0.25 0.18 (problem, the) 315 597.33 B +0.25 0.18 (y also mak) 367.76 597.33 B +0.25 0.18 (e it more lik) 413.24 597.33 B +0.25 0.18 (ely that end-users will) 464.79 597.33 B +0.04 (unintentionally import hostile applications into the corporate) 315 586.33 P +0.25 0.5 (netw) 315 575.33 B +0.25 0.5 (ork. Ja) 336.32 575.33 B +0.25 0.5 (v) 366.49 575.33 B +0.25 0.5 (a addresses these concerns by running all) 371.74 575.33 B +0.25 0.41 (untrusted applications in a protected area kno) 315 564.33 B +0.25 0.41 (wn as the) 516.49 564.33 B +0.25 0.4 (sandbox. Applications running in the sandbox can only) 315 553.33 B +0.25 0.09 (access local and netw) 315 542.33 B +0.25 0.09 (ork resources through a limited set of) 403.85 542.33 B +0.25 0.33 (trusted mechanisms. The sandbox model gi) 315 531.33 B +0.25 0.33 (v) 502.57 531.33 B +0.25 0.33 (es users the) 507.76 531.33 B +0.25 0.11 (adv) 315 520.33 B +0.25 0.11 (antages of easy) 329.51 520.33 B +0.25 0.11 (, ad-hoc application distrib) 392.04 520.33 B +0.25 0.11 (ution while it) 502.78 520.33 B +(protects them from potentially malicious applications.) 315 509.33 T +0.25 0.01 (Se) 315 490.33 B +0.25 0.01 (v) 324.77 490.33 B +0.25 0.01 (eral ef) 329.64 490.33 B +0.25 0.01 (forts are underw) 354.98 490.33 B +0.25 0.01 (ay to further enhance the sandbox) 421.11 490.33 B +0.25 0.07 (model. Independent contractors are re) 315 479.33 B +0.25 0.07 (vie) 469.71 479.33 B +0.25 0.07 (wing the design of) 481.89 479.33 B +0.25 0.14 (the sandbox to ensure that it pro) 315 468.33 B +0.25 0.14 (vides adequate protection.) 449.3 468.33 B +0.25 0.19 (Future releases of Ja) 315 457.33 B +0.25 0.19 (v) 401.45 457.33 B +0.25 0.19 (a will pro) 406.39 457.33 B +0.25 0.19 (vide applet signing, which) 446.96 457.33 B +0.25 0.39 (acts as digital shrinkwrap. Support for f) 315 446.33 B +0.25 0.39 (le) 490.63 446.33 B +0.25 0.39 (xible security) 498.49 446.33 B +0.25 0.49 (policies, encryption and other more adv) 315 435.33 B +0.25 0.49 (anced security) 493.92 435.33 B +(features are also being added.) 315 424.33 T +0.25 0.78 (An) 315 405.33 B +0.25 0.78 (y or) 328.63 405.33 B +0.25 0.78 (g) 347.64 405.33 B +0.25 0.78 (anization which is considering adding Ja) 353.37 405.33 B +0.25 0.78 (v) 548.03 405.33 B +0.25 0.78 (a) 553.56 405.33 B +0.25 0.09 (applications or Ja) 315 394.33 B +0.25 0.09 (v) 386.85 394.33 B +0.25 0.09 (a enabled softw) 391.68 394.33 B +0.25 0.09 (are to its netw) 456.14 394.33 B +0.25 0.09 (ork should) 514.47 394.33 B +0.25 0.01 (carefully consider ho) 315 383.33 B +0.25 0.01 (w Ja) 399.98 383.33 B +0.25 0.01 (v) 418.14 383.33 B +0.25 0.01 (a will af) 422.91 383.33 B +0.25 0.01 (fect their current security) 456.06 383.33 B +0.25 0 (policies. While no set of security policies can e) 315 372.33 B +0.25 0 (v) 505.39 372.33 B +0.25 0 (er eliminate) 510.24 372.33 B +0.25 0.12 (all risk from a netw) 315 361.33 B +0.25 0.12 (ork) 396.61 361.33 B +0.25 0.12 (ed en) 410.2 361.33 B +0.25 0.12 (vironment, understanding ho) 432.03 361.33 B +0.25 0.12 (w) 550.78 361.33 B +0.25 0.02 (Ja) 315 350.33 B +0.25 0.02 (v) 323.17 350.33 B +0.25 0.02 (a\325) 327.93 350.33 B +0.25 0.02 (s security model w) 335.19 350.33 B +0.25 0.02 (orks and what sorts of attacks might) 411.44 350.33 B +0.25 0.86 (be committed ag) 315 339.33 B +0.25 0.86 (ainst it, k) 394.96 339.33 B +0.25 0.86 (eeping current with ne) 441.73 339.33 B +0.25 0.86 (w) 550.78 339.33 B +0.25 0.11 (de) 315 328.33 B +0.25 0.11 (v) 324.41 328.33 B +0.25 0.11 (elopments by both attack) 329.38 328.33 B +0.25 0.11 (ers and other security of) 432.98 328.33 B +0.25 0.11 (f) 533.17 328.33 B +0.25 0.11 (icers,) 536.06 328.33 B +0.25 0.31 (and e) 315 317.33 B +0.25 0.31 (v) 337.92 317.33 B +0.25 0.31 (aluating Ja) 342.97 317.33 B +0.25 0.31 (v) 389.45 317.33 B +0.25 0.31 (a in light of the or) 394.51 317.33 B +0.25 0.31 (g) 473.66 317.33 B +0.25 0.31 (anization\325) 478.92 317.33 B +0.25 0.31 (s o) 521.43 317.33 B +0.25 0.31 (v) 533.84 317.33 B +0.25 0.31 (erall) 539 317.33 B +(security polic) 315 306.33 T +(y can reduce risks to an acceptable le) 369.01 306.33 T +(v) 517.32 306.33 T +(el.) 522.17 306.33 T +0 0 0 1 0 0 0 K +FMENDPAGE +%%EndPage: "7" 7 +%%Trailer +%%BoundingBox: 0 0 612 792 +%%PageOrder: Ascend +%%Pages: 7 +%%DocumentFonts: Times-Roman +%%+ Helvetica-Bold +%%+ Times-Italic +%%+ Helvetica-BoldOblique +%%+ Courier +%%EOF