home *** CD-ROM | disk | FTP | other *** search
- /* */
- #include <stdio.h>
- #define pr(x) fprintf(fp,x)
- typedef struct bb{
- char MEAN[21],DB[9],KEY[4][11],COFLAG,COPATH[11];
- int no;
- struct bb *next;
- }BASE;
- typedef struct cc {
- char field[128][11],ftype[128];
- int len1[128];
- int NN;
- int no;
- struct cc *next;
- }CONTENT;
- typedef struct ll {
- int MAR[6][128];
- int no;
- struct ll *next;
- }LINK;
- extern LINK *flink;
- extern BASE *fbase;
- extern CONTENT *fcon;
- extern char *explain;
- extern int NB,I;
- get_fc(int *s)
- { int i,n=0;
- int c,cc;
- int row,col,cl,m,con=1,j,k;
- FILE *fp;
- BASE *mybase;
- CONTENT *mycon;
-
- clear_win(0,0,24,79,0x70) ;
- I=0;
- fp=fopen("creat\\meno1.txt","w");
- i=0;
- judge(0,s[i]);
- n=in_c(s,&i);
- cursor(14,0);
- for (m=1;m<80;m++) putchar('-');
- clear_win(15,0,23,79,43);
- color_puts("╫Θ║╧╠⌡╝■╚τ╧┬ ",11,15,10);
- color_puts(" ",10,15,10);
- row=16;
- col=2;
- m=1;
- cursor(row,col);
- mybase=fbase;
- mycon=fcon;
- while (mybase->no!=(s[i]-1)) mybase=mybase->next;
- while (mycon->no!=s[i]-1) mycon=mycon->next;
- /* while(mybase->no!=(s[i]-1))
- {
- mybase=mybase->next;
- mycon=mycon->next;
- } */
- printf("%d. %s ",m,mycon->field[n-1]);
- fprintf(fp,"#%s#%s#%c#%d",mycon->field[n-1],mybase->DB,mycon->ftype[n-1],mycon->len1[n-1]);
- while (con!=0)
- {
- color_puts("╠⌡╝■╣╪╧╡░ⁿ└¿: 1_.AND. 2_.OR. 3_.NOT. 4_.AND..NOT. 5_.OR..NOT. ╟δ╤í╘±(0╜ß╩°):",11,22,0);
- con=get((long)0,(long)5,22,77);
- while (con<0 || con>5) con=get((long)0,(long)5,22,77);
- color_puts(" ",10,22,10);
- col+=12;
- cursor(row,col);
- switch (con)
- { case 1 : printf(".AND.");
- col+=5;
- fprintf(fp,"#.AND.");
- break;
- case 2 : printf(".OR.");
- col+=4;
- fprintf(fp,"#.OR.");
- break;
- case 3 : printf(".NOT.");
- col+=5;
- fprintf(fp,"#.NOT.");
- break;
- case 4 : printf(".AND..NOT.");
- col+=10;
- fprintf(fp,"#.AND..NOT.");
- break;
- case 5 : printf(".OR..NOT.");
- col+=9;
- fprintf(fp,"#.OR..NOT.");
- break;
- case 0 : row++;
- col=2;
- cursor(22,0);
- printf(" ");
- fprintf(fp,"#\n#####\n"); continue;
- break;
- }
- if (con!=0) n=in_c(s,&i);
- mybase=fbase;
- mycon=fcon;
- while (mybase->no!=(s[i]-1)) mybase=mybase->next;
- while (mycon->no!=s[i]-1) mycon=mycon->next;
- /* while(mybase->no!=(s[i]-1))
- {
- mybase=mybase->next;
- mycon=mycon->next;
- }*/
- if (col<10) cursor(row,col+2);
- else cursor(row,col);
- printf(" %s ",mycon->field[n-1]);
- fprintf(fp,"#%s#%s#%c#%d",mycon->field[n-1],mybase->DB,mycon->ftype[n-1],mycon->len1[n-1]);
- }
- fclose(fp);
- }
-
-
-
-
-
-
-
- /* ╩Σ╚δ╠⌡╝■*/
- getcondition(ii)
- int *ii;
- {int cc;
- char dd;
-
- clear_win(0,0,24,79,0x70) ;
- for(;;)
- {
-
- clear_win(0,0,24,80,0x70) ;
- color_puts(explain,90,2,3);
- clear_win(10,17,19,52,0) ;
- clear_win(9,15,18,50,0x10) ;
- color_puts("=====╟δ╠⌡╝■╩Σ╚δ╖╜╩╜ [ ] =======",30,10,16);
- color_puts("1. ╣╠ ╢¿ ╠⌡ ╝■",30,12,23) ;
- color_puts("2. ╫Θ ║╧ ╠⌡ ╝■",30,13,23) ;
- color_puts("3. ╚╬ ╥Γ ╠⌡ ╝■",30,14,23) ;
- color_puts("0. ═╦ │÷ ",30,15,23) ;
- color_puts("==================================",30,17,16);
- cc=get((long)0,(long)3,10,38);
- color_puts("─π─▄╚╖╚╧┬≡? (Y/N) [ ]",30,21,20);
- cursor(21,39);
- fflush(stdin) ;
- scanf("%c",&dd);
- if(dd=='y'||dd=='Y')
- break;
- }
- *ii=cc;
- }
- /*╣╠╢¿╠⌡╝■*/
-
- get_dc(s)
- int *s;
- { int i,n=0,N=0,mark;
- int c;
- char ss[256]="#",dd[120]="#",tt[10],str1[11],str2[9],sh[10];
- int row,col,cl,m1,m2,con=1,j,k,k1,k2,kk;
- FILE *fp;
- BASE *mybase;
- CONTENT *mycon;
- i=0;
- I=0;
- clear_win(0,0,24,79,0x70) ;
- fp=fopen("creat\\meno2.txt","w");
- judge(0,s[i]);
- n=in_c(s,&i);
- col=1;
- cursor(19,col);
- mybase=fbase;
- mycon=fcon;
- while (mybase->no!=(s[i]-1)) mybase=mybase->next;
- while (mycon->no!=s[i]-1) mycon=mycon->next;
- /* while(mybase->no!=(s[i]-1))
- {
- mybase=mybase->next;
- mycon=mycon->next;
- }*/
- printf("%s",mycon->field[n-1]);
- strcat(ss,mycon->field[n-1]);
- strcat(dd,mybase->DB);
- strcat(dd,"#");
- tt[N++]=mycon->ftype[n-1];
- while (con!=0)
- {
- color_puts("╠⌡╝■╣╪╧╡░ⁿ└¿: 1_.AND. 2_.OR. 3_.NOT. 4_.AND..NOT. 5_.OR..NOT. ╟δ╤í╘±(0╜ß╩°):",11,22,0);
- con=get((long)0,(long)5,22,77);
- while (con<0 || con>5) con=get((long)0,(long)5,22,77);
- color_puts(" ",10,22,0);
- col+=12;
- cursor(19,col);
- switch (con)
- { case 1 : printf(".AND.");
- col+=5;
- strcat(ss,"#.AND.#");
- break;
- case 2 : printf(".OR.");
- col+=4;
- strcat(ss,"#.OR.#");
- break;
- case 3 : printf(".NOT.");
- col+=5;
- strcat(ss,"#.NOT.#");
- break;
- case 4 : printf(".AND..NOT.");
- col+=10;
- strcat(ss,"#.AND..NOT.#");
- break;
- case 5 : printf(".OR..NOT.");
- col+=9;
- strcat(ss,"#.OR..NOT.#");
- break;
- case 0 : strcat(ss,"#");
- tt[N]='\0';
- clear_win(0,0,24,79,0x70) ;
- color_puts(explain,14,0,1);
- clear_win(8,4,20,68,0) ;
- clear_win(7,2,19,66,0x10) ;
- color_puts("─·╢¿╥σ╡─╠⌡╝■╬¬:",11,5,5);
- color_puts(ss,10,5,20,3);
- color_puts("╠⌡╝■╡─╛▀╠σ╓╡",11,5,45);
- row=9;
- m1=1;
- m2=1;
- j=0;
- while (ss[m1]!='\0')
- {
- k1=0;
- k2=0;
- while (ss[m1]!='#') str1[k1++]=ss[m1++];
- str1[k1]='\0';
- while (dd[m2]!='#') str2[k2++]=dd[m2++];
- str2[k2]='\0';
- color_puts(str1,10,row,3);
- fprintf(fp,"%s->%s",str2,str1);
- cursor(row,13);
- mark=0;
- k=0;
- switch (tt[j++])
- { case 'C' :
- case 'L' : printf(" = ");
- pr("='");
- scanf("%s",sh) ;
- fprintf(fp,"%s'",sh);
- break;
- case 'N' : color_puts(" > = < ",10|64,row,13);
- cursor(row,15);
- while ((c=getchar())!='\n')
- { if (k==0) pr(">");
- k=1;
- mark=1;
- fprintf(fp,"%c",c);
- }
- k=0;
- cursor(row,27);
- while ((c=getchar())!='\n')
- { if (mark&&k==0) fprintf(fp,".AND.%s->%s=",str2,str1);
- else if (k==0) pr("=");
- fprintf(fp,"%c",c);
- k=1;
- mark=1;
- }
- k=0;
- cursor(row,39);
- while ((c=getchar())!='\n')
- { if (mark&&k==0) fprintf(fp,".AND.%s->%s<",str2,str1);
- else if (k==0) pr("<");
- fprintf(fp,"%c",c);
- k=1;
- }
- break;
- case 'D' :
- k=0;mark=0;kk=0;
- printf(" > / / ");
- c=get1(1,12,row,15);
- if(c!=0)
- { fprintf(fp,">ctod('%d",c);
- k=1;}
- if(k==1)
- {
- c=get1(1,31,row,18);
- fprintf(fp,"/%d",c);
- c=get1(0,99,row,21);
- fprintf(fp,"/%d')",c);
- }
- cursor(row,25);
- printf(" = / / ");
- c=get1(1,12,row,27);
- if(c!=0)
- {
- if(k==1)
- {
- pr(".AND.");
- k=0;
- }
- fprintf(fp,">ctod('%d",c);
- mark=1;
- }
- if(mark==1)
- {
- c=get1(1,31,row,30);
- fprintf(fp,"/%d",c);
- c=get1(0,99,row,33);
- fprintf(fp,"/%d')",c);
- }
- cursor(row,37);
- printf(" < / / ");
- c=get1(1,12,row,39);
- if(c!=0)
- {
- kk=1;
- if(k==1||mark==1)
- pr(".AND.");
- fprintf(fp,"<ctod('%d",c);
- }
- if(kk==1)
- {
- c=get1(1,31,row,42);
- fprintf(fp,"/%d",c);
- c=get1(0,99,row,45);
- fprintf(fp,"/%d')",c);
- }
- break;
- }
- row++;
- m1++;
- while (ss[m1]!='#'&&ss[m1]!='\0') fprintf(fp,"%c",ss[m1++]);
- m1++;
- m2++;
- }
- pr("\n");
- fprintf(fp,"#####\n");
- fclose(fp);continue;
- break;
- }
- if (con!=0) n=in_c(s,&i);
- cursor(19,col);
- mybase=fbase;
- mycon=fcon;
- while (mybase->no!=(s[i]-1)) mybase=mybase->next;
- while (mycon->no!=s[i]-1) mycon=mycon->next;
- /* while(mybase->no!=(s[i]-1))
- {
- mybase=mybase->next;
- mycon=mycon->next;
- }*/
- printf("%s",mycon->field[n-1]);
- strcat(ss,mycon->field[n-1]);
- strcat(dd,mybase->DB);
- strcat(dd,"#");
- tt[N++]=mycon->ftype[n-1];
- }
- fclose(fp);
- }
-
-
-
-
- mcon(fp,buff)
- char buff[];
- FILE *fp;
- { char fd[120][10],db[14][20],ft[14],cc[14][10];
- int ii,ll,jj,kk,row,col,m,n,fl[14];
- for(ii=0;ii<14;ii++)
- fl[ii]=0;
- ii=0;jj=1;kk=0;
- for(;;)
- { while(buff[jj]!='#') fd[ii][kk++]=buff[jj++];
- fd[ii][kk]='\0';
- kk=0;jj++;
- while(buff[jj]!='#') db[ii][kk++]=buff[jj++];
- db[ii][kk]='\0'; kk=0;jj++;
- ft[ii]=buff[jj++];
- jj++;
- while(buff[jj]!='#') fl[ii]=fl[ii]*10+(buff[jj++]-'0');
- jj++;
- if(buff[jj]=='\n')
- break;
- while(buff[jj]!='#') cc[ii][kk++]=buff[jj++];
- cc[ii++][kk]='\0'; kk=0; jj++;
- }
- pr("set confirm off\nset color to w+/B\n");
- pr("@2,2 say '╫Θ║╧╠⌡╝■╚τ╧┬:");
- for(ll=0;ll<ii;ll++)
- fprintf(fp,"%s%s",fd[ll],cc[ll]);
- fprintf(fp,"%s'\n",fd[ll]);
- pr("condition=''\n");
- row=5;col=5;
- for(ll=0;ll<=ii;ll++)
- { fprintf(fp,"value=space(%d)\n",fl[ll]);
- switch(ft[ll])
- { case 'C':
- case 'L':
- if(row>18)
- pr("@5,0 clear to 21,79\n");
- fprintf(fp,"@%d,%d say '%s='get value\n",row,col,fd[ll]);
- pr("read\n");
- pr("if len(trim(value))<>0\n");
- if(ll!=0)
- fprintf(fp,"condition=condition+'%s'\n",cc[ll-1]);
- fprintf(fp,"condition=condition+'%s->%s'+'='+\"'\"+value+\"'\"\n",db[ll],fd[ll]); pr("endif\n");
- row+=2;
- break;
- case 'N':
- if(row>18)
- pr("@5,0 clear to 24,79\n");
- pr("r=.f.\nrr=.f.\n");
- fprintf(fp,"@%d,%d say '%s>' get value\n",row,col,fd[ll]);
- pr("read\nif len(trim(value))<>0\n");
- if(ll!=0)
- fprintf(fp,"condition=condition+'%s'\n",cc[ll-1]);
- pr("condition=condition+'('\n");
- fprintf(fp,"condition=condition+'%s->%s>'+value\nr=.t.\nendif\n",db[ll],fd[ll]);
- fprintf(fp,"value=space(%d)\n",fl[ll]);
- fprintf(fp,"@%d,%d say '%s=' get value\n",row+1,col,fd[ll]);
- pr("read\nif len(trim(value))<>0\n");
- pr("if r\ncondition=condition+'.OR.'\n");
- if(ll!=0)
- fprintf(fp,"else\ncondition=condition+'%s'\n",cc[ll-1]);
- fprintf(fp,"endif\ncondition=condition+'('\n");
- fprintf(fp,"condition=condition+'%s->%s='+value\nendif\n",db[ll],fd[ll]);
- fprintf(fp,"value=space(%d)\n",fl[ll]);
- fprintf(fp,"@%d,%d say '%s<' get value\n",row+2,col,fd[ll]);
- pr("read\nif len(trim(value))<>0\n");
- pr("if r\ncondition= condition+'.AND.'\n");
- pr("else\nif rr\ncondition=condition+'.OR.'\n");
- if(ll!=0)
- fprintf(fp,"else\ncondition=condition+'%s'\n",cc[ll-1]);
- fprintf(fp,"endif\nendif\ncondition=condition+'('\n");
- fprintf(fp,"condition=condition+'%s->%s<'+value\nendif\n",db[ll],fd[ll]);
- row=row+4;
- pr("condition=condition+')'\n");
- break;
- case 'D':
- if(row>18)
- pr("set color to W+/b\nclear\nset color to W+/B\n");
- col=col+5;
- fprintf(fp,"@%d,%d say '%s'\n",row,col,fd[ll]);
- row++;
- pr("r=.f.\n");
- pr("value=' '\n");
- fprintf(fp,"@%d,%d say '> / /' \n",row,col);
- fprintf(fp,"@%d,%d get value\n",row,col+1);
- pr("read\n");
- pr("if len(trim(value))<>0\n");
- pr("date=trim(value)\n");
- pr("value=' '\n");
- fprintf(fp,"@%d,%d get value\n",row,col+4);
- pr("read\n");
- pr("date=date+'/'+trim(value)\n");
- pr("value=' '\n");
- fprintf(fp,"@%d,%d get value\n",row,col+7);
- pr("read\n");
- pr("date=date+'/'+trim(value)\n");
- pr("value='ctod('+'\"'+date+'\"'+')'\n");
- if(ll!=0)
- fprintf(fp,"condition=condition+'%s'\n",cc[ll-1]);
- fprintf(fp,"condition=condition+'%s->%s>'+value\nr=.t.\nendif\n",db[ll],fd[ll]);
- pr("value=' '\n");
- fprintf(fp,"@%d,%d say '= / /' \n",row+1,col);
- fprintf(fp,"@%d,%d get value\n",row+1,col+1);
- pr("read\n");
- pr("if len(trim(value))<>0\n");
- pr("date=trim(value)\n");
- pr("value=' '\n");
- fprintf(fp,"@%d,%d get value\n",row+1,col+4);
- pr("read\n");
- pr("date=date+'/'+trim(value)\n");
- pr("value=' '\n");
- fprintf(fp,"@%d,%d get value\n",row+1,col+7);
- pr("read\n");
- pr("date=date+'/'+trim(value)\n");
- pr("value='ctod('+'\"'+date+'\"'+')'\n");
- pr("if r\ncondition=condition+'.AND.'\n");
- if(ll!=0)
- fprintf(fp,"else\ncondition=condition+'%s'\nr=.t.\n",cc[ll-1]);
- fprintf(fp,"endif\ncondition=condition+'%s->%s='+value\nendif\n",db[ll],fd[ll]);
- pr("value=' '\n");
- fprintf(fp,"@%d,%d say '< / /' \n",row+2,col);
- fprintf(fp,"@%d,%d get value\n",row+2,col+1);
- pr("read\n");
- pr("if len(trim(value))<>0\n");
- pr("date=trim(value)\n");
- pr("value=' '\n");
- fprintf(fp,"@%d,%d get value\n",row+2,col+4);
- pr("read\n");
- pr("date=date+'/'+trim(value)\n");
- pr("value=' '\n");
- fprintf(fp,"@%d,%d get value\n",row+2,col+7);
- pr("read\n");
- pr("date=date+'/'+value\n");
- pr("value='ctod('+'\"'+date+'\"'+')'\n");
- pr("if r\ncondition= condition+'.AND.'\n");
- if(ll!=0)
- fprintf(fp,"endif\ncondition=condition+'('\n");
- fprintf(fp,"condition=condition+'%s->%s<'+value\nendif\n",db[ll],fd[ll]);
- row=row+4;
- break;
- }
- }
- }
-
-
-
-
- rcon(int k,int j,int *s,FILE *fp)
- { int row,col,l,ll;
- CONTENT *mycon;
- BASE *mybase;
- pr("ccs=.t.\n");
- pr("cb=1\n");
- pr("do while ccs\n");
- pr("do case\n");
- for(l=1;l<=j;l++)
- { fprintf(fp,"case cb=%d\n",l);
- pr("select 10\n");
- pr("name='s'\n");
- mybase=fbase;
- mycon=fcon;
- while (mybase->no!=(s[l-1]-1)) mybase=mybase->next;
- while (mycon->no!=s[l-1]-1) mycon=mycon->next;
- /* while(mybase->no!=(s[l-1]-1))
- {
- mybase=mybase->next;
- mycon=mycon->next;
- }*/
- fprintf(fp,"name=name+'%s'\n",mybase->DB);
- pr("use &name\n");
- if(mycon->NN>68)
- { pr("set color to W+/b\nclear\nset color to W+/B\n");
- pr("cf=1\n");
- pr("cc=.t.\n");
- pr("do while cc\n");
- pr("renu=0\n");
- pr("do case\n");
- pr("case cf=1\n");
- row=5; col=5;
- for(ll=0;ll<68;ll++)
- {
- fprintf(fp,"@%d,%d say '%2d.%s'\n",row,col,ll+1,mycon->field[ll]);
- if(col==65) { row++;col=5;}
- else col+=20;
- }
- pr("skeyboar=' '\nset color to w+/b\n");
- pr("@22,0 say '╩╣╙├ PgUp,PgDn ╤í╘±▓┘╫≈┐Γ,íⁿ/í² ╤í╘±▒╛┐Γ╞Σ╙α╫╓╢╬'\n");
- pr("@23,0 say '╗≥╤í╘±╫╓╢╬(1--68)╫≈╬¬╠⌡╝■╫╓╢╬'\n");
- pr("read\nset color to W+/b\n");
- pr("i=readkey()\n");
- pr("do case\n");
- pr("case i=6 .or. i=7\n");
- pr("ccs=.f.\n");
- pr("cc=.f.\n");
- pr("if i=7\n");
- pr("cb=cb+1\n");
- fprintf(fp,"if cb>%d\n",j);
- pr("cb=1\n");
- pr("endif\n");
- pr("else\n");
- pr("cb=cb-1\n");
- pr("if cb=0\n");
- pr("cb=1\n");
- pr("endif\n");
- pr("endif\n");
- pr("case i=5 .or. i=4\n");
- pr("cf=2\n");
- pr("case skeyboar>'0' .or. skeyboar<'69'\n");
- pr("renu=val(skeyboar)\n");
- pr("cc=.f.\n");
- pr("endcase\n");
- pr("case cf=2\n");
- pr("set color to W+/b\nclear\nset color to W+/B\n");
- row=5;col=5;
- for(ll=68;ll<mycon->NN;ll++)
- { fprintf(fp,"@%d,%d say '%3d.%s'\n",row,col,ll+1,mycon->field[ll]);
- if(col==65) { row++;col=5;}
- else col+=20;
- }
- pr("skeyboar=' '\nset color to w+/b\n");
- pr("@22,0 say '╩╣╙├ PgUp,PgDn ╤í╘±▓┘╫≈┐Γ'\n");
- fprintf(fp,"@23,0 say '╗≥╤í╘±╫╓╢╬ (68--%d) ╫≈╬¬╠⌡╝■╫╓╢╬ ' get skeyboar\n",mycon->NN);
- pr("read\nset color to W+/b\n");
- pr("i=readkey\n");
- pr("do case\n");
- pr("case i=6 .or. i=7\n");
- pr("cc=.f\n");
- pr("if i=7\n");
- pr("cb=cb+1\n");
- fprintf(fp,"if cb>%d\n",j);
- pr("cb=1\n");
- pr("else\n");
- pr("cb=cb-1\n");
- pr("if cb=0\n");
- pr("cb=1\n");
- pr("endif\n");
- pr("endif\n");
- pr("case i=5 .or. i=4\n");
- pr("cf=1\n");
- fprintf(fp,"case skeyboar>'68' .or. skeyboar<'%d'\n",mycon->NN);
- pr("renu=val(skeyboar)\n");
- pr("ccs=.f.\n");
- pr("cc=.f\n");
- pr("endcase\n");
- pr("endcase\n");
- pr("enddo\n");
- }
- else
- { pr("set color to W+/b\nclear\nset color to W+/B\n");
- row=5;col=5;
- for(ll=0;ll<mycon->NN;ll++)
- { fprintf(fp,"@%d,%d say '%2d.%s'\n",row,col,ll+1,mycon->field[ll]);
- if(col==65) { row++;col=5;}
- else col+=20;
- }
- pr("skeyboar=' '\nset color to w+/b\n");
- pr("@22,0 say '╩╣╙├ PgUp,PgDn ╤í╘±▓┘╫≈┐Γ'\n");
- fprintf(fp,"@23,0 say '╗≥╤í╘±╫╓╢╬ (1--%d) ╫≈╬¬╠⌡╝■╫╓╢╬ ' get skeyboar\n",mycon->NN);
- pr("read\nset color to W+/b\n");
- pr("i=readkey()\n");
- pr("do case\n");
- pr("case i=6 .or. i=7\n");
- pr("if i=7\n");
- pr("cb=cb+1\n");
- fprintf(fp,"if cb>%d\n",j);
- pr("cb=1\n");
- pr("endif\n");
- pr("else\n");
- pr("cb=cb-1\n");
- pr("if cb=0\n");
- pr("cb=1\n");
- pr("endif\n");
- pr("endif\n");
- fprintf(fp,"case skeyboar>'1' .or. skeyboar<'%d'\n",mycon->NN);
- pr("ccs=.f.\n");
- pr("renu=val(skeyboar)\n");
- pr("endcase\n");
- }
- }
- pr("endcase\n");
- pr("enddo\n");
- }
-
-
-
- get1(i,j,row,col)
- int i,j,row,col;
- { int key,c,n=0;
- cursor(row,col);
- while ((key=getcc())!=0x0D)
- { putchar(key);
- n=10*n+key%256-'0';
- }
- if ((n>j||n<i)&&n!=0) { error();
- get((long)i,(long)j,row,col);
- }
- else return(n);
- }