{VERSION 6 0 "IBM INTEL LINUX" "6.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "2D Output" -1 20 "Times" 1 12 0 0 255 1 2 2 2 2 2 2 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "He ading 1" -1 3 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 4 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 2 2 0 2 0 2 2 -1 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Left Justified Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Mapl e Output12" -1 206 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }} {SECT 0 {SECT 0 {PARA 3 "" 0 "" {TEXT -1 21 "Algorithme de Gosper\n" } }{SECT 0 {PARA 4 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "restart;with(sumtools,gosper);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7#%'gosperG" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 5 "Pa s 2" }}{EXCHG {PARA 206 "" 1 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "pa s2:=proc(r)\n" }{MPLTEXT 1 0 47 "local L,f,g,N,M,G,R,S,s,a,b,i,l,k,u,c ,j,p,q,d;\n" }{MPLTEXT 1 0 25 "f:=numer(r);g:=denom(r);\n" }{MPLTEXT 1 0 18 "G:=subs(n=n+h,g);\n" }{MPLTEXT 1 0 9 "L:=NULL;\n" }{MPLTEXT 1 0 21 "R:=resultant(f,G,n);\n" }{MPLTEXT 1 0 30 "S:=\{solve(R=0,h)\};s: =nops(S);\n" }{MPLTEXT 1 0 21 "for i from 1 to s do\n" }{MPLTEXT 1 0 58 " if type(S[i],integer) and S[i]>=0 then L:=L,S[i];fi;\n" } {MPLTEXT 1 0 4 "od;\n" }{MPLTEXT 1 0 8 "L:=[L];\n" }{MPLTEXT 1 0 12 "l :=nops(L);\n" }{MPLTEXT 1 0 17 "p[0]:=f;q[0]:=g;\n" }{MPLTEXT 1 0 21 " for j from 1 to l do\n" }{MPLTEXT 1 0 46 " s[j]:=gcd(p[j-1],subs(n =n+L[j],q[j-1]));\n" }{MPLTEXT 1 0 34 " p[j]:=simplify(p[j-1]/s[j] );\n" }{MPLTEXT 1 0 52 " q[j]:=simplify(q[j-1]/subs(n=n-L[j],s[j]) );od;\n" }{MPLTEXT 1 0 9 "a:=p[l];\n" }{MPLTEXT 1 0 8 "b:=q[l];" } {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 39 " for i from 1 to l do min(1, L[i]);\n" }{MPLTEXT 1 0 56 " d[i]:=product(subs(n=n-k,s[i]),k =1..L[i]);od;\n" }{MPLTEXT 1 0 29 " c:=product(d[m],m=1..l);" } {MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 14 "return a,b,c;\n" }{MPLTEXT 1 0 9 "end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "pas2((n+3)/ (n*(n+1)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"\"%\"nG*&,&F$F#\"\" #F#F#,&F$F#F#F#F#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "pas2(( (n+1)^2+n+2)/(n^2+n+1));pas2(n/(n+2));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"\"\"F#,&*$),&%\"nGF#F#!\"\"\"\"#F#F#*&\"\"$F#F(F#F#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%%\"nG,&F#\"\"\"\"\"#F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 5 "Pa s 3" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "degsol:=proc(a,b,c)\n " }{MPLTEXT 1 0 28 "local da,db,dc,d1,d2,d,A,B;\n" }{MPLTEXT 1 0 17 "d a:=degree(a,n);\n" }{MPLTEXT 1 0 17 "db:=degree(b,n);\n" }{MPLTEXT 1 0 17 "dc:=degree(c,n);\n" }{MPLTEXT 1 0 20 "A:=coeff(a,n,da-1);\n" } {MPLTEXT 1 0 32 "B:=coeff(subs(n=n-1,b),n,db-1);\n" }{MPLTEXT 1 0 8 "d 1:=-1;\n" }{MPLTEXT 1 0 25 "d2:=(B-A)/coeff(a,n,da);\n" }{MPLTEXT 1 0 51 "if (da<>db) or (coeff(a,n,da)<>coeff(b,n,db)) then\n" }{MPLTEXT 1 0 23 " d:=dc-max(da,db);\n" }{MPLTEXT 1 0 6 "else \n" }{MPLTEXT 1 0 45 " if (dc-da+1)*coeff(a,n,da)+A-B<>0 then \n" }{MPLTEXT 1 0 23 " d1:=dc-da+1;\n" }{MPLTEXT 1 0 9 " fi;\n" }{MPLTEXT 1 0 20 " d:=max(d1,d2);\n" }{MPLTEXT 1 0 4 "fi;\n" }{MPLTEXT 1 0 10 "return d;\n" }{MPLTEXT 1 0 9 "end proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "degsol(n,n+2,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "degsol(1, 1, (n -1)^2+3*n);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "pas3:=proc(a,b,c,d)\n" }{MPLTEXT 1 0 21 " local X,x,i,S,sol,k;\n" }{MPLTEXT 1 0 25 "X:=sum(x[i]*n^i,i=0..d);\n" }{MPLTEXT 1 0 80 "S:=solve(identity(a*subs(n=n+1,X)-subs(n=n-1,b)*X = \+ c, n), \{seq(x[i],i=0..d)\});\n" }{MPLTEXT 1 0 37 "if nops([S])=0 then return(fail) fi;\n" }{MPLTEXT 1 0 11 "assign(S);\n" }{MPLTEXT 1 0 21 "for i from 0 to d do\n" }{MPLTEXT 1 0 45 " if type(x[i],rational) then x[i]:=x[i];\n" }{MPLTEXT 1 0 19 " else x[i]:=0;\n" } {MPLTEXT 1 0 9 " fi;\n" }{MPLTEXT 1 0 4 "od;\n" }{MPLTEXT 1 0 29 " return sum(x[k]*n^k,k=0..d);\n" }{MPLTEXT 1 0 17 "end proc: " } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "pas3(n,n+2,1,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "pas3(1, 1, 3*n+( n-1)^2,3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*&#\"\"#\"\"$\"\"\"%\" nGF(F(*&#F(F'F()F)F'F(F(" }}}}{PARA 3 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "gosp:=proc(t)\n" }{MPLTEXT 1 0 23 " local r,a,b,c,d,x,s,p;\n" }{MPLTEXT 1 0 30 "r:=simplify(subs(n=n+1,t)/ t);\n" }{MPLTEXT 1 0 16 "a,b,c:=pas2(r);\n" }{MPLTEXT 1 0 18 "d:=degso l(a,b,c);\n" }{MPLTEXT 1 0 49 "if d<0 then return Sum(subs(n=k,t),'k'= 1..n-1) ;\n" }{MPLTEXT 1 0 23 "else x:=pas3(a,b,c,d);\n" }{MPLTEXT 1 0 27 " if x=fail then return " }{MPLTEXT 1 0 31 "Sum(subs(n=k,t),' k'=1..n-1) fi;" }{MPLTEXT 1 0 1 "\n" }{MPLTEXT 1 0 29 " s:=subs(n= n-1,b)*x*t/c;\n" }{MPLTEXT 1 0 45 " return factor(simplify(s-subs( n=1,s)));\n" }{MPLTEXT 1 0 4 "fi;\n" }{MPLTEXT 1 0 9 "end proc:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "gosp(1/n);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$SumG6$*$%\"kG!\"\"/F';\"\"\",&%\"nGF+F+F(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "pas3(n,n+1,1,0);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%failG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "gosp(n^2+n+1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$* (#\"\"\"\"\"$F&,&%\"nGF&F&!\"\"F&,(*$)F)\"\"#F&F&F)F&F'F&F&F&" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "gosper(n^2+n+1,n);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #,$*(#\"\"\"\"\"$F&,&%\"nGF&F&!\"\"F&,(*$)F)\"\"#F&F&F)F&F'F&F&F&" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "gosper(1/(n*(n+1)),n);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#*&,&%\"nG\"\"\"F&!\"\"F&F%F'" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "gosp(1/(n*(n+1)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&,&%\"nG\"\"\"F&!\"\"F&F%F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "gosp(n!);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$SumG6$-%*factorialG6#%\"kG/F);\"\"\",&%\"nGF,F,!\"\" " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "simplify((n+1)*(n+1)!/( n*n!));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&),&%\"nG\"\"\"F'F'\"\"#F' F&!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "binomial(n,k);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%)binomialG6$%\"nG%\"kG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "convert(%,factorial);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#*(-%*factorialG6#%\"nG\"\"\"-F%6#%\"kG!\"\"-F%6# ,&F'F(F+F,F," }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "gosp(conver t(binomial(m,n),factorial));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$Sum G6$*(-%*factorialG6#%\"mG\"\"\"-F(6#%\"kG!\"\"-F(6#,&F*F+F.F/F//F.;F+, &%\"nGF+F+F/" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 7 "Exemple" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "with(SumTools[Hypergeometric]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "t:=(-1)^k*binomial(2*n,k)^3;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&)!\"\"%\"kG\"\"\")-%)binomialG6$,$*&\"\"#F'%\"nG F'F'F&\"\"$F'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "convert(t, factorial);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#**)!\"\"%\"kG\"\"\")-%* factorialG6#,$*&\"\"#F'%\"nGF'F'\"\"$F')-F*6#F&F0F%)-F*6#,&F-F'F&F%F0F %" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 49 "a1:=simplify(convert(subs(n=n+1,t)/t,factorial ));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,$*,\"\")\"\"\"),&*&\"\"#F&%\"n GF&F&F&F&\"\"$F&),&F+F&F&F&F,F&),(F)!\"\"%\"kGF&F&F1F,F1),(F)F1F*F1F2F &F,F1F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "tt := simplify ( (b0 + b1 * a1 ) * \+ ( denom (a1) ) ) ;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,bo**\"$y$\"\"\" %#b0GF&%\"nGF&)%\"kG\"\"#F&F&**\"$#>F&F'F&)F(\"\"&F&F*F&!\"\"**\"$g\"F &F'F&)F(\"\"$F&)F*F4F&F0**\"%c5F&F'F&F3F&F*F&F0**\"$?(F&F'F&F3F&F)F&F& **F9F&F'F&)F(\"\"%F&F*F&F0**\"$#zF&F'F&)F(F+F&F)F&F&**\"$c(F&F'F&F?F&F *F&F0**\"$k#F&F'F&F(F&F*F&F0**FCF&F'F&F(F&F5F&F0**\"#!*F&F'F&F(F&)F*F< F&F&**\"#gF&F'F&F?F&FGF&F&*&\"\")F&F'F&F&*&FKF&%#b1GF&F&*(\"#sF&F'F&F( F&F&*(\"#OF&F'F&F*F&F0*(FCF&F'F&F?F&F&*(\"$/&F&F'F&F3F&F&*(\"#jF&F'F&F 5F&F0*(\"#kF&F'F&)F(\"\"'F&F&*(\"$)GF&F'F&F.F&F&*(\"$G&F&F'F&F;F&F&*( \"#LF&F'F&FGF&F&*(\"\"*F&F'F&)F*F/F&F0*&F'F&)F*FZF&F&*(\"#mF&F'F&F)F&F &*(FXF&FMF&FYF&F&*(FfnF&FMF&F.F&F&*(FhnF&FMF&F;F&F&*(FTF&FMF&F3F&F&*(F CF&FMF&F?F&F&*(FOF&FMF&F(F&F&**\"#7F&F'F&F(F&F]oF&F0**\"$g$F&F'F&F?F&F 5F&F0**\"$S#F&F'F&F;F&F)F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "p := map ( factor , collect ( tt , [ b0, b1 ] , distributed ) ) \+ ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#,&*(),(*&\"\"#\"\"\"%\"nGF)!\"\"% \"kGF)F)F+\"\"$F)),(F'F+F(F+F,F)F-F)%#b0GF)F)**\"\")F)),&F*F)F)F)F-F)) ,&F'F)F)F)F-F)%#b1GF)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 " s := s4 * k^4 + s3 * k^3 + s2 * k^2 + s1 * k + s0 ;" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#,,*&%#s4G\"\"\")%\"kG\"\"%F&F&*&%#s3GF&)F(\"\"$F&F&*& %#s2GF&)F(\"\"#F&F&*&%#s1GF&F(F&F&%#s0GF&" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 84 "Eq := map ( factor , collect (-(2*n+2-k)^3*subs ( k = k + 1 , s )-k^3*s-p , k ) ) ;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,4*&,(*(\"\"'\"\"\"%#s4GF (%\"nGF(F(*&\"\"#F(F)F(F(%#b0GF(F()%\"kGF'F(!\"\"*(\"\"$F(,.*(\"\"%F(F -F(F*F(F(*&F2F(F-F(F(*(F5F(F)F()F*F,F(F(F+F0*(F,F(F*F(%#s3GF(F0F:F0F() F/\"\"&F(F(*&,:*(\"\")F(F)F()F*F2F(F(*(\"#CF(F)F(F8F(F0*(\"#OF(F)F(F*F (F0*&F@F(F)F(F0*(\"#7F(F8F(F:F(F0*(F'F(F*F(F:F(F0*&F2F(F:F(F(*(F'F(F*F (%#s2GF(F(*&F5F(FLF(F(*(\"#!*F(F-F(F*F(F(*(\"#gF(F-F(F8F(F(*&\"#LF(F-F (F(F()F/F5F(F0*&,D*(F'F(F*F(%#s1GF(F0FBF0*(\"#IF(F*F(F:F(F(*(FCF(F)F(F *F(F(*&\"#jF(F-F(F(*(F@F(FAF(F:F(F0*(\"$k#F(F-F(F*F(F(*(\"$g$F(F-F(F8F (F(*(\"$g\"F(F-F(FAF(F(*&F " 0 "" {MPLTEXT 1 0 52 "l := seq ( coeff ( Eq , k , i ) = 0 , i = 0 .. 6 ) ;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6)/,(*(\"\")\"\"\"),&%\"nGF'F'F'\" \"$F',,%#s4GF'%#s0GF'%#s1GF'%#s3GF'%#s2GF'F'!\"\"**F&F'),&*&\"\"#F'F*F 'F'F'F'F+F'F(F'%#b0GF'F2**F&F'F(F'F4F'%#b1GF'F2\"\"!/,$*(\"\"%F')F)F7F ',<*(\"#[F'F8F')F*F+F'F'*(\"#%)F'F8F')F*F7F'F'*(F7F'F*F'F/F'F2*(F&F'F- F'F*F'F2*(\"\"'F'F*F'F0F'F2*(FCF'F8F'F*F'F'*(F?F'F*F'F1F'F2F/F'*&F+F'F .F'F'F1F2*&\"\"&F'F-F'F2*&\"\"*F'F8F'F'*&F+F'F0F'F2F'F'F;/,$*(F7F'F)F' ,B*(\"$?\"F'F8F'FDF'F'*(\"$S#F'F8F'FGF'F'*(\"#CF'F-F'FGF'F'*(\"#7F'FGF 'F0F'F'*(F?F'FGF'F1F'F'*(FgnF'F-F'F*F'F'*(FKF'F*F'F/F'F2FJF'*(\"$c\"F' F8F'F*F'F'FMF2*&FPF'F1F'F2*&\"#LF'F8F'F'*&F+F'F-F'F'FSF2FNF'*&F+F'F/F' F2F'F2F;/,DF\\oF2FfnF2*(\"#IF'F*F'F0F'F'F[oF'*&\"#jF'F8F'F'*(F&F'FDF'F 0F'F2*(\"$k#F'F8F'F*F'F'*(\"$g$F'F8F'FGF'F'*(\"$g\"F'F8F'FDF'F'*&FPF'F /F'F2F1F'*(FinF'F*F'F1F'F'*(\"#KF'F-F'FDF'F2FhnF'*&\"# " 0 "" {MPLTEXT 1 0 57 "solve ( \{ l \} , \{ b0 , b1 , s0 , s1 , s2 , s3 , s4 \} ) ; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#<)/%#b0G ,&*(\"\"'\"\"\"%#s4GF)%\"nGF)!\"\"*&\"\"#F)F*F)F,/%#b1G,$**#F.\"\"$F)F *F),(*$)F+F.F)F)F)F)*&F.F)F+F)F)F),&*&F4F)F+F)F)F.F)F,F,/%#s0G,$**#\" \"%F4F)F*F),.*&\"$7\"F))F+\"\"&F)F)*&\"$S%F))F+F@F)F)*&\"$#oF))F+F4F)F )*&\"$@&F)F7F)F)*&\"$'>F)F+F)F)\"#HF)F)F9F,F)/%#s1G,$*(F*F),,*&\"$3#F) FHF)F)*&\"$W'F)FKF)F)*&\"$Q(F)F7F)F)*&\"$r$F)F+F)F)\"#pF)F)F9F,F,/%#s2 G*(F*F),**&\"$)>F)F+F)F)\"#\\F)*&\"$;\"F)FKF)F)*&\"$k#F)F7F)F)F)F9F,/% #s3G,&*(\"#5F)F*F)F+F)F,*&\"\")F)F*F)F,/F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}}{MARK "0 1" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }