ELF>3 @@ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012378:;<=>?@ABCDEFGHIJKLMOPRSTUVWYZ[\^_`acdefghijopqrstuvwxyz{|}~HBSHHIIIӃI?IIL9| DHHVHHHx L A/v (LH I9HtkHxHH?HHL9(7 HVHH?HHHHI9}hHHfDATIUHSHHdH%(HD$HH`H9&0t{HEH`H9G0 ID$AD$I$ID$HD$dH+%(}HL[]A\DID$1HLI$H$rH$foI$IT$);fofPp@fo@ fo@0fo@@fo@Pfo@`H$I$ID$>HfDH5L@H5Ly@HЃtHEH`H9HЃtHEH`H9tdHЃtHEH`H9t?H~@H5L@H5Lo0>0*0ff.AT1IHdH%(HD$1HGHH$HH$H5I$HxIT$HHHHH{H)H)HH$I$ID$HD$dH+%(u HLA\AT1IHdH%(HD$1HGHH$@HH$H5I$HxIT$HHHHH8H)H)@HH$I$ID$HD$dH+%(u HLA\AT1IHdH%(HD$1HGHH$ZHH$H5I$HxIT$HHHHHRH)H)ZHH$I$ID$HD$dH+%(u HLA\AVAUATUSHHIHDEH5HPHUH HH9L5t4H0H H9HH`L5H`L9W0t<twID$AD$I$ID$[L]A\A]A^ÐELH5[L]A\A]A^HHU,fELH5O[L]A\A]A^L9W0T3@HHUfEH5L-f.LH5[L]A\A]A^DLH5[L]A\A]A^DHЃHEH`L9HЃHEH`L9HЃt"HEH`L9txHZ~EtH5LUfH5L?@H5L'@HхHU000fHWHGHHGDAT1IHdH%(HD$1HGHH$;HH$foH.0 / 255I$IT$.0foHH0@fofP8@:;@ H$I$ID$HD$dH+%(u HLA\ff.@AT1IHdH%(HD$1HGHH$ HH$foI$IT$fo@H$I$ID$HD$dH+%(u HLA\fDAT1IHdH%(HD$1HGHH$HH$H5I$HxIT$HHHHHH)H)HH$I$ID$HD$dH+%(u HLA\HWHGHHGDHWHGHHGDATIHHdH%(HD$HHHH9HIT$I$u5ID$AD$HD$dH+%(HLA\H1LH$H$H5I$HxIT$HHHHHH)H)HH$I$ID$hfD?ff.ATIHHdH%(HD$HHHH9HIT$I$u5ID$AD$HD$dH+%(HLA\H1LH$H$H5I$HxIT$HHHHHH)H)HH$I$ID$hfD?ff.ATIHHdH%(HD$HHHH9HIT$I$u5ID$AD$HD$dH+%(HLA\H1LH$fH$H5I$HxIT$HHHHH^H)H)fHH$I$ID$hfD?ff.HWHGHHGDHWHGHHGDATIHHdH%(HD$HHHH9HIT$I$HH1LH$HH$H5I$HxIT$HHHHH@H)H)HHH$I$ID$HD$dH+%(u1HLA\ID$AD$@ff.AUIATIHUSHdH%(HD$xHHHH9HHHl$ LD$ Hl$HD$HHHH8H9aH|$0H5HD$0H\$@H|$HT$8H95HL$@fHnfHnflH9Ht$ HD$HT$HL$ HH|$0Ht$@HD$8H|$0H9tLl$PH\$`ID$AD$I$ID$HD$xdH+%(HĈL[]A\A]Ll$PH5L,HD$PH\$`H|$HT$XH9HL$`fHnfHnflH9Ht$ HD$HT$HL$ HH|$PHt$`HD$XH|$PH9tHt$1LH\$PHD$HT$HD$PHxH5HHT$`HHHHH)H)HH|$HD$HT$PHD$XHT$XHt$PH|$PH9tID$I$HD$H9I$HD$ ID$HD$ID$ybffHtHHHT$8H|$HT$H|$0@HtHHHT$XH|$HT$H|$P@fo\$ A\$OHD$D$H\$PH\$`HP@HD$D$H\$0H\$@HJ@D$`HT$XH|${fD$@HT$8H|$+IIff.fHWHGHHGDHWHGHHGDATIHdH%(HD$1HGHMtMu2ID$AD$HD$dH+%(ugHLA\f1HH$H$foHD in_masI$IT$k;HHfPH$I$ID$ATHOIHdH%(HD$1MH|$ uMu5ID$AD$HD$dH+%(HLA\H1H$H$foH }I$IT$foH@fo@ fo@0fo@@fo@Pfo@`fo@pH$I$ID$5fDATHOIHdH%(HD$1MH|$ uMu5ID$AD$HD$dH+%(HLA\1HH$H$foI$IT$foǀ @foƀ @ fo@0fo@@fo@Pfo@`fo@pfofofofofoH$ID$I$ff.AUATIUSHXdH%(HD$H1M$uMu=ID$AD$I$ID$HD$HdH+%(9HXL[]A\A]IH5Hl$ L聽$H5HdHT$(Ht$ LH|$ H\$0H9tH5H/LD$H $11HIT$I$HHPH9I $HHIL$HHHH@IL$@H|$ H9tH<$HD$H9H5H衼HT$(Ht$ L8f.o@AD$|HHHHff.AT1IHdH%(HD$1HGHH$PHH$foI$IT$fo@fo@ fo@0fo@@H$I$ID$HD$dH+%(u HLA\fAT1IHdH%(HD$1HGHH$HH$foHpth = trI$IT$uefoH@fof@ foƀ;@0fo@@fo@Pfo@`fo@pfoH$I$ID$HD$dH+%(u HLA\ff.AT1IHdH%(HD$1HGHH$HH$foH I$IT$ foH@fof@ foƀ}@0fo@@fo@Pfo@`fo@pfoH$I$ID$HD$dH+%(u HLA\ff.AT1IHdH%(HD$1HGHH$:HH$H5I$HxIT$HHHHH2H)H):HH$I$ID$HD$dH+%(u HLA\AT1IHdH%(HD$1HGHH$!HH$foI$IT$fo@ ;@H$I$ID$HD$dH+%(u HLA\fAT1IHdH%(HD$1HGHH$HH$foH I$IT$ }foH@fof@ fo@0fo@@fo@Pfo@`fo@pH$I$ID$HD$dH+%(u HLA\AT1IHdH%(HD$1HGHH$OHH$H5I$HxIT$HHHHHGH)H)OHH$I$ID$HD$dH+%(u HLA\AT1IHdH%(HD$1HGHH$OHH$foHalizeRayI$IT$()foHH@@fo@HCast@ fofPL@N;@0H$I$ID$HD$dH+%(u HLA\ff.AWIAVAUATUSHxHt$HT$dH%(HD$h1HGHGHD$H fGH/HD$PE1Hl$ I?H$Ll$0HD$LD$0HHLl$ HD$(HHCHpLH+D$(HH5HHSH3HLH+D$(HH5HH $HPHL$@HH9HL$@HHHL$PHH@LHL$HHHt$@H@HT$HH|$@H;<$tH|$ L9t@IL9d$HD$hdH+%(u[HxL[]A\A]A^A_f.IL9d$o@)D$PUH=H=HHHAUATUSH(dH%(HD$HGL MH8HLl$H(,ML狰L LII$H;HvRH8LE1LDD$HHHAHD$dH+%(H(D[]A\A]@H8I9uMtIELH;Hw@ALHT$HHt$H8LLJHH8HCHfDUHSHHHHtHHtHH[]DH[]ÐAT1USHHdH%(HD$1HHH4$HH1HH4$HHHD$dH+%(u H[]A\II@ATUSHH HPdH%(HD$1HHCH t ,t.HD$dH+%(H H@[]A\fDHuLd$Hl$HHLHt$HHHLHHt$HHaIIf.AWAVAUIATIUHSHdH%(H$1LIHD$I$LLIHLHHt$PLHMnPH$L$L|$0HD$(Lt$f}ELLL)|$D$ f(D$@f(L$0HHf(fff^KL$@^KL9u$$$$$$YYX$ YXfXf/f/A$0$(YYX$8YXXf/f/DFG$@$HYYX$PYXXf/"f/DFG$X$`YYX$hYXXf/f/DFG$p$xYYX$YXXf/hf/DFG$$YYX$YXXf/ f/DFG$$YYX$YXXf/f/Y$Y$Y$XXXf/wRf/vW!EDDH|$HtHP H$dH+%(HD[]A\A]A^A_ffAWfDfDfDAfDfDfDE11%HAWAVAUATIUSH8H0H4$HT$dH%(HD$(1HtHIHD$ID$LhHXHD$HD$ I9Hl$ LIH9tLHŶAńtL9AA$uuEt$HT$(dH+%(ufH8[]A\A]A^A_HT$H4$LLuAD$uI$PHtI$0HHH9E1ufDAUIATIUHHSHHdH%(H$1HHH9EHI}H HHH99HHH9,HT$ HXH9'fPf`fp)l$ )t$0)|$@UMHL]e H5f(_D$ _T$(f(f(]]Uf(L$(ff(_L$0l$ _T$8fZ]f(_L$@]_d$Hf(t$0f\$8](fZf(])$]\$Hf(|$@ffZL$D$PCLD$PfHcATHu t+ I)HsWL H5LH$dH+%(H[]A\A]@HzHHD HH) 1HffxI}HHt$ @f`fpfP)L$0)d$ )D$@@LD$PDfDAUL-ATUHSHHHHL9unLƃwMtLHugHEHL9uGH1HtHHvH[]A\A]HIfDHHfDLHvƃwxfDUHSHHHHH9H`HHEHHH9Ehtt7puH[]HhǃpH[]HhHEHHH9uM$pH[]fpƃttfDHH9HSfDH벐HSHHHH9u*H`Httt H[Hp[fDHHff.ATHSHH(dH%(HD$1HD$HD$HH9H`Ld$HtLttCHH HH9uoHHH9udH4<HD$D$HxLH5HD$dH+%(u5H([A\@HHkL뷐HL$HT$ Lf.AUHATUSHH(dH%(HD$HHH9u{H`HtGtt>pmHD$dH+%(6HEHHxH([]A\A]HD$dH+%(H([]A\A]fHHfDH{1IHHH5LPIEtqHH H9HHH9+AopAAApL$EtD$AxA|)$+fH5LPu_Dd$<$T$ t$D$L$A)))HADDHEL@HELH8fIEH HH9HHH9uJAo8AHALA8L$E<D$A@AD) $GfDHHL$HT$HH|$WLLL$ LD$Dd$|$T$t$D$$L$ AXAYHLff.GÐfDATHUHSHH0HPdH%(HD$(1HHPH9]{H{ PHPHHEH5HPgH{ HL%H{(HH{ HHL9aH{ H HHH9-tLJH{ HHH H9tLJH{ HHH H9tLJH{ HHH H9HtLJHEHH@H9lHH{ S`s\H{(HHL90H{(H HHH9dtLJH{(HHH H9tLJH{(HHH H9tLJH{(HHH H9wtLJH{(S`s\E1AS`s\H{ S`s\H{(H{0HEL%H L9HH{0HEH L9HK`DC\HE1ɋsTSXh&hQE0APDDjHEH0H L9MHHD$(dH+%(H0[]A\D1HPH{DHHHT$H4$H=HHH@LMbA|$8tpAt$CHHH<$HD$H9tHD$(dH+%(H0[]A\f.fLI$H H@0H9qLdfDHHkHHfHL%HC0HHEH L99HH{0Hs H{0HS(H{0E1E111fDHC HC(HHu@H{ H~DH{ H/DH{ HDHfDH{(H{(HGDH{(HDH{(HDHHH@UHwSHHHH-HsUHEHHs[]SwHt'HHHsCst'HHHsCCtHHsC[f.AWAVAUATUSHdH%(HD$x1HHIH IHH9Dv\HH H9E|$`HHH9E$LDD$ fAVD$AG)D$@)D$P)D$`T$T$$D$D$D$ D$(HD$0D$,Ht$@HHH0HEDDHpHEHt$ HHET$ HL111IHEHLIH|$AVASDD$HHHAPPH LI$LP MIELH0HEHP HD$xdH+%(ubHĈ[]A\A]A^A_HAI$ILAI$MLAXItfDHHHfDHHHfDtsUHSHHHH9ugHHHSHHHHHHH9u2GTH[]fDf.HHfDH[]Ð@HGt HtUSHHHH1HHHHHHH H9uKHHHHHHH[]f.H뵐USHHHHHHHH H9uBHHHHHHHq []H뾐HUHSHHHHH5PHHtHP HǃHHt$HH HHP HǃHHt$HH HHP HǃHHt$HH HHP HǃH[]ÐfDHGDExDHEhAWAVAUATUHSHH. ~G\W\G`<6fpf~f~9Clu9SptHPfClHHLPMI$L=LLPHLL5I$H L9M$LLHS`Hs\H{HHHXH9DHHtD;HP HǃLHHS`s\HE1EHHHH HHH9etLJHHHH H9RtLJHHH(H H9DEtLJDH~HH@HHH11HE1E1E1E11HHHH@HHHH L9Hf((HHHH L9uwHHA[]A\A]A^A_ff**^^[fC\LI$AjfDH뉐HBfDHPHIHaHELHPLHLS`s\HE1AHHHH HHH9DEtLJHHHH H9DEtLJHHH(H H9DEhLJSHZLHHS`s\HHHHH HHH9tLJHHHH H9tLJHHH(H H9eLJP1HHD1 1HHD11HH1HHY1HH 1HH 11f.HUHSHHHHH5PHHtHP HǃHHt$HH HHP HǃHHt$HH HHP HǃH8HHHpH9u H[]fDHH[]DÐfDAWAVAUATUHSHHHG~G\W\. G`fpf~f~9Cdu9ShtHPfCdHHHPHHEH5HPHHL%HEH L9LLLHS`s\HHHHH@H8H01HELpHHAHHHH L9HfH(((HAHHq []A\A]A^A_HIff**^^[fC\9HL=HHS`s\1HHHHHHL9LDEtLJHHHL5L9DEtLJHHH(L-L9DEtLJHHHHS`s\E1HAHHHHHL9 tLJHHHL9tLJHHH(L9u}tLJHHH11HE1E1fDHafDH21f.1HHTD1HHD1Hi1HHD1HH@UHSHHH@H8HHHHHHXHCǀHH[]Ð@AVAUATUSHdH%(HD$1H,HHIH5HPI$HtHP IDŽ$I$M$I9tnIfH;HH 1LH4$HLHI9uM$I$I9tLfHHH9uM$M$I$I9t,LH;HCH9tdH H9uM$I$HtHP IDŽ$IDŽ$HD$dH+%(uH[]A\A]A^fDH H9uHff.AUATUSHH0dH%(HD$1}HEHH@H9HuH(H}HHH EHH9HPHH9HE H}(tHHDLeI$I$HH@HPHHH9h rHHFHHPHHH9h sH,HHHILXHhL9tH}(LHHI9uHLG Mt 82LHLHLHL8Mt>LLH1HHH4$H8HHLHHD$dH+%(xHH[]HPA\A]fDH9t H9o wHI$LeI$HHH9HEEHD$dH+%(H[]A\A]DILL HHx HP HLHx(H@ H HHx(HP HLHx0H@(HHHx0HP HHG0:@HT$dH+%(u=HH[]A\A]HH}Hu-LHH}HuIf.USHHHHx H9t6HHt HP HHh Ht%HEHHPHH@8H[]fD@8H[]Ð@HHÐff.HHÐff.ff.zuD@f/f.zfH~HDfHn^^ XYf/@f(fZf/vf(f(^^@fZf/R^@fZ^@f.HB^ f/v"H H@/f/v @ Df/v@ f(@^USHHGHhHXH9t H}(HHH9uH[]HVAWAVAUATIUSH(Ml$MMuMIFHD$HSHD$HhHH]HL{MMGMI@HtCHxLD$H$eH$IH@Iz(HD$H<$HD$LD$HuI@Ix(L$HD$H<$HD$Ht{IL}H}(HMt.L=@L{H{(HMtL$H\$HkH{(HHt9Hl$DIGI(H$LH$HtII0I@I^In(H9tIvIvIvI~pvI~XI~PI~HI~@HLHtI I0I@I]Im(H9tIlvI`vITvI}pKvI}XI}PI}HI}@HLHtIrI$0I\$Il$(I$@H9tI$uI$uI$uI|$puI|$XI|$PI|$HI|$@HLHtIH([]A\A]A^A_AUATIUSHHH0HHH)HEH HPH9HuHH}H}HH EHH9.HPHH90HE H}(tHHDLmIIHH@HPHHH9h rHHnHHPHHH9h sHTHHI$0Ht"HEfH@HHH9iIDŽ$0I$HtHHI$`IDŽ$HH{HLm(H0H@H[H9tHsHsH~sH}pusH}XH}PH}HH}@LHHjI$8HtIDŽ$8HP HL[]A\A]H9tH9o wHILmIEHHH9u.HEEq@HH}HuLHH}Huff.UHH]f.AWAVAUATUSHH|$HLdH%(H$1HHD$HL9HD$`L`IE1HD$LXDLMtPAMLΐHUHE;M ~HtHHUHE;M Ht HHѐHI9t;M }[IL9l$HuHH;tHEH$dH+%(HĨ[]A\A]A^A_H|$Hu(HE0Hu@HD$hE8D$pHD$xHHD$ H$HuHHHD$(H$HuPHHD$0L$HuXLH}pH$DŽ$HDŽ$H$H$HDŽ$HtUUHfHHRHuH$HfHHRHuHH$H$H$HH$DŽ$HDŽ$H$H$HDŽ$HtYHfDHHRHuH$HfHHRHuHH$H$H$HH$DŽ$HDŽ$H$H$HDŽ$ HtYHfDHHRHuH$HfHHRHuHH$H$H$ HH$0DŽ$0HDŽ$8H$@H$HHDŽ$PHtYy~HfDHHRHuH$@HfHHRHuHH$HH$8H$PH H0L8H$X($`H$xHD$H$hHLt HJL|$XII|$xHD$L$pB8HPH|$`H$X$HtLL|$xML$ML$Mt"I_PI;_XtH;LHI9_XuHD$HH@HXHD$8HH@(H0HD$@H@H9tLMtCIlI(IG8I_H9tLHtIDLHuLMtDIlI(IG8I_H9tLHtIfDLHuLMtDINlI(IG8I_H9tLHtIfDLHuL}pMtGIlI(IG8I_H9t LHtIfLHuH}XH}PH}HH}@H|$@HHD$8H$hHxH;|$tH$8HtDH}VkH}(HE8H]H9tHHtHfDHHuH$HtCH}kH}(HE8H]H9tHHtHDHHuH$HtCH}jH}(HE8H]H9tHHtHDHHuH$HtCH}ejH}(HE8H]H9tHHtHDHHuLIH|$0H|$(H|$ H|$HD$HxL9l$HL`ALXf.I_PI;_X@fH;LHI9_Xu$fDI_PI;_XfH;LHI9_XufDMHD$DHt$XH$h1H$hHHD$XH$xLHL|$XH$h2HAH;mH$dH+%(uH|$HĨ[]A\A]A^A_H|$H=HHHHHHHHHHfDAWAVAUATUSHHHHHt$dH%(HD$8HXH{1HHIHH5LPHEHHHH9DA~H{L5HHL90H(HPMl$pL|$0LE1LH{MD$xHAHHHL9TH(LLLjL$L$HH ƃH{HHMD$xL9rH(LLLII$H;(HEHL HH9DMxHt$ELLLHD$8dH+%(HHH([]A\A]A^A_fDE1fƃHD$8dH+%(HH[]A\A]A^A_fDHA;D$LHT$/HHt$0H LH LJHH{|$HHMD$pL9LD$LD$HH%H{Ml$pHHL9HH I9[MILH;(9@L$LD$L$LD$HHA)H ƃt$H{HHH(D$Hff.ATHUSHHdH%(HD$HHIHCXH$HI9LBHHHHuHD$dH+%(u HL[]A\ff.AVIAUEATAUHSHH@dH%(HD$818u H HH{ HH5H{HHHH9DH5HC@H5HHCHH5^HHCH5 ^\H HLhIELLLl$H5H(LH )D$f)D$ H|$HT$@`zPv EHTH5HHD$H5HHPdfDHD$8dH+%(H@HH51[]A\A]A^IPH5HVfDHT$H5HHT$ H5HLHD$8dH+%(uH@[]A\A]A^HAVAUATIHUHSHHH`dH%(HD$X1HEHL$ILD$HT$@LHD$I}PHpPIELLI}PHIELHT$H5LHH5LLHD$I}PHpPIELLI}PHIELHT$H5LHH5LHUH H8H9Ll$0Lt$ HHH9Hňf]LLH5fZD$ fZED$(LL~CTH5[D$0LLf(~c\H5f(f^fZL$0LL~k\f(H5f^fZD$0HD$XdH+%(H`[]A\A]A^DH0H H9H(HH9fLl$0)L$0D$@Lt$ LfZLH5ZL$ D$(HUpfHHUNfHHoLl$0HLf(L$0D$@Ll$0HL$@HHT$8Lf(L$0D$@cAVAUIATIUSHH8Ht.LpILLH5Lt []A\A]A^ÐHC0tH t߃,uHHH5LIxHCH5L(H8H5L@TH8LH5@dHHHHH9uQWt[L]A\H5A]A^fDHHH5LAЉ@UHHHHHhH9uH5H]HH5]ff.AUAATUSHHLgI$hIXL9t9@H}(HxHCH}(0HHI9uH{ Ht{8t,H8HtHxAtH[]A\A]ÐfHC0tH t̓,uHHH[]A\A]ff.H ։HfLÐff.AWHAVAUIATUSHHHH9LIƀMtLHI8HHtLI8HHt1I8IMu6HHL[]A\A]A^A_@I8E1Mtf1LHHfHI)LHM8IƀLHuI8IzM8HLD$ 9uE11ۅ~RfLHM8HLHH9uHEHI9LB9\$ uI8I8E1@AWAVAUATIUSHHdH%(HD$81HHI$I$8I$XADŽ$XIDŽ$`I$hI$pIDŽ$xHL5HLLEHIVLL|$fHnfHnfl) $H11ffHHHHDžHXH{HLLxL?fo $IF@fHHLHLLDžHƅHHHHDžHHH$HHHD$ HDžHHH L0L8H(LH Lf1HHDžHDžfƅ@P`HDž(H0H8Lt$0f11H@LH?LefMEHEEHE0E8HE<P`p 0@P`pE Ht$0LL1ExfvH0foI$I$@ADŽ$HEHfEXEhfDžpE|HDžDžHDžƅufLDžHH H@@HL`H@ qH@(I$0HD$8dH+%(uHH[]A\A]A^A_HD$(IIIIHHH$HHHHHf.ATUHHILHL]A\HAWAVAUATIUSHDD$,dH%(H$HHHHfHnHL$ HfHnfl)L$H HHH5HPHL$Ll$@LHf1$H$H$1f$HHDŽ$HXH@H{H\$@HD$LHHfod$fL|$H)D$PH@)d$@H$H$HHD$8)D$`)D$pHLLDŽ$HƄ$HD$HH$HD$0H$HDŽ$H5LLHǺFH5|$,LH5DL/H5HILH5HILHH~T$ H5HfHnfl)T$HD$pIl$ID$I,$AD$HLD$`ML9HL$h11LI)Hfot$H$H@)t$@H$H;|$0tHH|$8HHD$HHCH\$@LH\$H\@HHH$H$dH+%(uRHL[]A\A]A^A_1 fI*H$L!HHHHfDAWAVAUATUSHHH|$DD$ldH%(H$HHHHfHnHL$XHfHnfl)L$@HVHIH5HP;HCHl$pH@0HD$PHC(H$HH\$8HD$ $H11ff$H$H$H$HDŽ$HHH@HyHL$pHL$(HHD$0HHfod$@fLd$x)$H@)d$pH$H$HHD$@)$)$HLHDŽ$HƄ$HD$xH$HD$`H$HDŽ$IHH0H9oAHt)IHHH9YA*H5H{H5HHD$ ~q1L-L=pLHHH5HILHǺL9$uDH5H/H5HIHH`H9FA0tQIHHH9PA.H5H/H5HeH5HH|$PHXH1t |$lH~T$XHfHnHD$flHXH@H@H$)$HGL$M&L9H$H|$11I)Hfo4$H$H@)t$pH$H;|$`tHH|$@HHD$xHD$(HL$0H|$8HD$pH@HLpHHH$H$dH+%(HD$H[]A\A]A^A_fDE1LH1HH5HI1LHǺLH5H IHH`H9 A04H5HfD-H5HD$ 1L-L5L=H5HHH5HI1<$L@MLHILLHIL(LHILH5HIL%H5HILH5HIL H5HILHǺH59$IH|$H$fLfDLfDLfDLLHIHIAWAVIAUATUSHHdH%(H$HL$Ll$@LL|$ HHHfHnHL$(HfHnfl)L$Hf1$H$H$1f$HHDŽ$HHH@HyHL$@H $LHD$HHfoL$fHl$H)D$PH@)L$@H$H$HHD$8)D$`)D$pHHLDŽ$HƄ$HD$HH$HD$0H$HDŽ$HkHH9L=xDu^H5LH8H0LH5HILHǺLHHH9t=H}0HXrHpiHHH9u@H~T$(I^IFIHAFfHnHD$pfl)T$HLD$`ML9HL$h11LI)Hfol$H$H@)l$@H$H;|$0tHH|$8HHD$HH$H\$H|$ HD$@H@H\@HHH$H$dH+%(u>HL[]A\A]A^A_@I8H$L/HHHHfDAWAVAUATIUSHL=L$fDIH$H$LHL$opHqH=HEIHHIHH@AWAVAUATUHSHH(H|$(L$LdH%(H$1*H5LHEHH`H9u HkHCE1HD$H9UDH}0HXLA\$IH5L#H5HILH5HILH5HIDL6H5HIDLH5HIDLHǺDH5IEL=HHL9AIpHL$A, HL$HfD$HDŽ$Ƅ$D$XH @D@ HPHHExHHHfDHHf.LЅtWIEHHL9LЃH5LHHH9D$;AAHD$pD$pHD$ HD$`HD$h-H5LHHD$0H$HHtDDDZ HBHJExHHtHfHt HfDH94$t DV E~HD$0HT$8HHD$8f@HHV0Hv(LoH5HIHEpH}hD$PHHtB@DH HPHHExHHtHfHt HfDH9t DF E~HD$PHT$@H}`HD$@?HHV0Hv(LH5HIHT$hHt$`L H5HIDLH5HIHH4$D$XHtLDz HBHJxHHt!H‹z HBHJyHt HDH94$t D^ E~HD$XHT$HHHD$H>HHV0Hv(LH5HIDLHǺH5Af H5LH8H0L!H5HI H5LDLH5HIDLH5HIH8H0LMH5HIH8H0LH5HIHHD$XHHtB@DP HPHHExHHtHfHt HfDH9t DN E~HD$XHT$PHHD$P=HHV0Hv(LHǺH5H|$`H;|$ kafDH9tF ~HD$XHT$0HHD$0H$PHHH$`HHH$H$XH@H$PH@H$XH$PL9tH$0H9tH$H9tH$H;|$HtH$H;|$@tH$L9tH$pH;|$8tH$PH;|$0tH$0H;|$(tH$H;|$ tH$H;|$tH$H;|$tH$H;|$P_$$9D$x?H$H$LH$HH$H5 L$0HH5LH$PHLH$XH$PH$lb|:0$`HD$`H$XH8H=H=H=H=H=H=H=H=HHHHHHHHHHIHHHHIIHHHHHHHHHHHHHAWAVEAUATIUSDH(H$`DD$4HD$dH%(H$1H$ HHD$HH$(LA> ~|$4 H|$Ht$XD$X:HH$H5HHH$HHH$H$LH$H$H9tH$H$H9tHH$pHP@HfHnHH$HfHnH$fl)$ H9tHH$`HH$(HH$HPH@H$ HRH HHH$H$dH+%(2 H(L[]A\A]A^A_fH$HHD$8H$H5HHD$@H$H$LH$H$H9tHD$D$T1HHD$(DH|$8H$H$HDŽ$L$H$Ƅ$HiL$ML9H$11LI)A 11LH L$HPL$HH9H$HHH$HHH$HH@@H?H9$H$H5HHD$ H$HHPH9OH$HHH$HHLH$H@H$H@H$H$H9tH$L9tH$H9tHD$HHHPD$THt$(HQHy;A HHtkHHQHy;A ~HtVHѐH$H5\H$H$LH$H$H9LLfDH9t$(t;F }H|$HD$THT$XHD$XHH|$@HV(H5H$H$LH$H9tH$H$HDŽ$Ƅ$HL$M L9H$11LI)HD$pD$pLt$`HD$HD$`H$HD$hHL$ML9H$11LI)A!11LH H$HPH$HHt$H9H$HHH$HH@H$H@HH?H+$H'H$(H5L$HPL$HH9H$HHH$HH@H$HL$H@L$H$M9HHE$H$I H9vH9HE$H9<H$L$HHPH9WH$HHH$HHH$H@@HH?H+$H#\H|$ $H5H$HHPH9H$HHH$HHLH$H@H$H@H$H$H9tH$L9tH$L9tH$H;|$tH|$`H;|$tH$H9tH$E1H1H$H$HDŽ$Ƅ$1H$$H$HE$1H$H9tH$1D$Tpt$T;t$4YH|$@H5H$H$LH$H9tH|$8IbIIIop)$Hf$xD$hHt$hL Ll$pHH5LH$HLH$H$HH$H$H9tH|$pH$H9J@@t$\HH5HIIVHD$\Ht$f.HJHz;B HHHHJHz;B ~HHfH9t$t;F }HD$\HT$`LHD$`HHV0Hv(LHHIt$\LH5HIt$\LHǺ H5D$\D$\;$H5HH~T$8I\$ID$I$HAD$fHnH$fl)$HL$MtL9kH$11LI)Hfo,$H$H@)$H$ H;|$@tHH|$HHH$HD$(H\$0LH$H@HHHH$ H$(dH+%(H8L[]A\A]A^A_fDH9t$t;F }HD$\HT$hLHD$h5HHV0Hv(LHHIt$\L H5HIt$\LHǺ H5IH$LSLl$pHH5LH$HLH$H$HBLl$pHH5LH$HLH$H$HHt$fDHt$H5HIIIIIHIHIIIIAWAVAUATUSHH$@H|$DD$$HHD$dH%(H$1|$ ~ E|$ExH|$H$H$DŽ$CH5HHH|$HHH$H$H9f.HD$H$DŽ$HDŽ$HxH$H$HDŽ$HtdDL$ DL$ HDHHRHuH$HfHHRHuH\$H$H$HS(H$t$H|$H$DH$-H$dH+%(t HD$H[]A\A]A^A_HH5HDŽ$Ƅ$HXHfHnH$HfHnH$H$flH$H$HHD$ )$H$H$H$HH$H$H$H$H9tHDŽ$L$I?HXH@HD$(HD$HHD$HLfH|$ 1H$$HH$H$1f$H{HD$(HDŽ$HHffo$H$)$H@)$H$H$HHD$p)$)$HHLDŽ$HƄ$H$H$HD$xH$HDŽ$$H|$ H$0Ƅ$0L$ HD$0H$ H$HDŽ$(HaL$MhL9_H$11LI)HD$$Hl$HH@HtjfDHPHH9p |HHtCHHPHH9p }Ht.HfH|$H5f.H9l$Ht;u }(H|$H$H$HH$HL$@LH5LLH+$HH !H5LH$pHPH$`HHt$8H9H$`HHH$pHH@H$`H$hHHu(H@HU0H$HPH$HHt$@H9;H$HHH$HH@H$H@HLH+$HH$H5H$HPH$HHt$PH9H$HHH$HH@H$H$HH$ H@H$(H$HPH$HHt$XH9H$HHH$HH@H$H@HLH+$HH$H5H$H$HHT$`HPH9~H$HHH$HH@H$H$HH$ H@H$(H$HPH$HH9H$HHH$HH@H$H@HLH+$H(%H$)H5L$0HPL$ HH9 H$ HHH$0HH@H$ H$(HH$ H@H$(L$PHPL$@HH9H$@HHH$PHH@H$HH@HLH+$HH 0H$@ H5H$pHPH$`HHt$hH97H$`HHH$pHHH$@H$hHH$`H@H$hHH$`~$HfHnfl)$H;|$htH$@L9tH$ L9tH$H9tH$H;|$`tH$H;|$XtH$H;|$PtH$H;|$@tH$`H;|$8tH$@H$PH9tH$ H;|$0tHH$fo$H@H$)$H;|$xtHH|$pHH$HCHT$(LH$HHHH$$$;D$H|$ H5蝷H$H$H$H$H;$tH\$HCHH$H;$wHH$HCH$HCIox)$fDop)$fDoh)$fDox)$afDop)$fDoh)$pFfDop)$0fDop)$pfDox)$P1fDH$LH|$H$H$DŽ$H5HHH|$HHfo$kH=H=H=H=H=HHIHIHIHHHHHIHHIHHHHHAW AVAUATUSHH|$pHt$xH$dH%(H$HHGfOHX@HfHnH$HfHnHGflH$H)l$`H_HE1H$HXH@HD$H$@H$3f.H$HHH$HH@H$H@HH?H+$H H$H5H$HPH$HHt$@H97H$HHH$HH@H$H$HI6H@IVL$HPL$HH9H$HHH$HH@H$H@HH?H+$H 6H$ H5H$0H$ HHT$0HPH9cH$ HHH$0HHH|$p@H$(HH$ H@H$(HH$ ~$HfHnfl)L$PH;|$0tH$L9tH$H;|$@tH$L9tH$L9tHfod$PH$H)$PH$@HHhH$H;|$HtHH|$8IHH$XHD$ Ht$(HHL$HT$H@H@HD$H$PH@HPHCH$@H@HHDŽ$HHH$L9$HHfHt$$H$H$H$1f$HCHDŽ$H$@H@1HDŽ$HH{HL$P1H@ HxH$PHD$HLH@(HHD$HHfL$XfoT$`H@Hr0HD$ H@Ht$(H@H)$PH)$`H$@H)$pHh)$H$H$HHD$8HLHDŽ$HƄ$H$XH$HD$HH$HDŽ$LLHD$xML$HDŽ$IL$L$L0H$Ƅ$HL$pMtjL9weH$x11LI)A 11LH L$HPL$HH9uop)$wIox)$FfDox)$fDop)$0fDH$LMH?H\$pH+CHvXH|$p H5H$dH+%(u;HD$pH[]A\A]A^A_H=H=H=HHHHIHHHHHHfAWAVIAUATUSHH|$(Ht$`HL$@dH%(H$x1HHHHEHXHEIcH$HE11HD$0H$H$MHD$H$IHD$ H$@HD$H$HL$8HD$H$Lt$PIDl$hIDLHD$DLZAHD$ DLZAHD$8DLZHD$H HD$ZBIL;|$0iLt$PDl$hHL$DH5LHL$ DLH5HL$DLH5HL$DLH5H|$@HX1H=HD$(@t-H\$`HHHH9> hLH5HD$(HHxHH(H9& f/HD$(HHxHHH9 H\$(fHPT] T]H(T]YK@\ Zft$Z\ YD$H5LXZH\$`HHHHHD$HD$(Lc`tH I9& M$KdH,HHI@I HL$(H(H@ LcitH9tIH HHAOHH9uH I9 M2 KlmHHHD$HH@HD$(Lc`tIt%HHB H9tH H HHJHH9uH I9$ M:K,dHHHD$ HH@HD$(LchtIt'HHB H9tDH H HHJHH9uH I9 MQ KlmHHHD$HH@It'HH@ H9tDH H HHJHH9uHD$(D$0L$L-@|D$8HCXH$ff*/w=LHHHHEHL9tHff*/vHUH HH99D$8ED$0H D$@HH9HHD$PHH H9HHD$hH0H H9HHD$pHHH9LLL$PHcD$@HT$Ht$hAAaH@H<HD$ YI ?HH|$`YHH|$pYZYZ^ZYZZWYZAIYZINYYGHZJZ@HHD$@HT$@f:J\Hf()|$@f8f\f(f(Yff(YXf(YXff.Qf.f(fztf^^HL$HA`Q`HIpHD$@HL$HT$@HHH@HL$HD$`fHHD$fq`ZIpHfZHE)t$@HH9]gD$0DLl$(LH5LAUtAUtHL$H5LAUtHL$ H5LAUtHL$H5LA}xuHD$(@|HD$HtHHD$ HtHHD$HtHMt LH$xdH+%(5HĈ[]A\A]A^A_H$HD$H$HD$ H$@HD$H$HD$HD$E1HD$ HD${DD$8fDL$HcH$LHD$(H$LHcp|HD$(Lch|LH=MAJHHT$@HL$(HD$0HcI|HL$8ItHT$@HxHH9t H1HD$8H='HD$8Ht9L,LH|$8HtHxJ(H9t IU1HCXH$HD$`H$H$HT$8HHD$@HHT$PHD$hAff*/LHIHtQIEHHH9tLHЉHD$0SfDfH\$(HL$@H5LS|S|HL$8H5LS|HH5LS|HL$0H5LHtHHD$0HtHHD$8HtHHD$@HHDIEHHH9AIEH HH9IffH ZJHT$hfZ BHH9AHT$`HZDHH9tAHT$0HD$`ZLf8@HD$)|$px`HLh`@pHL$LLHIHfA}`HD$PfAZMpHD$h fZH @HD$`HD$P)|$pf.HD$(Lcht1fHfDHfDHHD$pHUzDHHD$hHU?DHHD$PHUDHHUmHD$qHD$LLHIE(LLIENH=H=H=H=H=)T$PL$@f(T$PL$@fH=HHHHHHHHHHf.AWAVAUIATUSHHt$hH`H$HXdH%(H$HGHPHxDŽ$ÉD$dHH)HcHH9sHH9tH`IxIpDŽ$HH)HH9sHH9tIxIIDŽ$HH)HH9sHH9tIIIDŽ$HH)HH9tsHH9tIIIDŽ$HH)HH9sHH9tIIIDŽ$HH)HH9tsHH9tID$dIDŽ$I@HH)HcHH9 sHH9tIIIDŽ$HH)HH94HD$HIIHD$(T$dHHDŽ$DŽ$H$IEDŽ$?HhD$`HD$PHD$XHD$_f.HHHHH9mHH\$HHPL{PLHHIPI\$PHHHPI$LH|$(HoPHH|$(HH$HD$@H$HD$8LLH|$HHfAo fAwpHL$IXfZfAo0fZfAwM HqHy fZfAo@fZHt$ HQ0LfZfAoPH|$IxPHT$fZfAo`LD$0fZfA/TL fZD0LD$0ILM IPHILI IpHt$ H|$fhpff``L|$fZfZfffZfZffZffZfZfXPHD$fZB:2H :HI$Lfk fs0fc@IfZfZfs`fkPfZfcpHt$ fZf+fZfsH|$fZHT$fZfZB80H 8HI$Lfc fk0Hfs@IfZfZfk`fcPfZfspH|$fZfcfZfZfHT$fZLfZB8L|$ B8 8HHt$(HHfe0fU HfM@fmPH@fu`fZfZfepfZfZfZfZfef]IfZHT$H|$fZHt$@H\$8B8 8IHT$PCDCDIFDFDH D$`D$`HL$HT$P9D$d D$`IPtH\$XHH$Hs(HD$xH|$pH{0I(HH\$HI(L{PHuPLHHH$Hp(I\$PHHPI$LuPMXAl$PE`Ad$pf(fD(A$YUhE$fD(DYE|$XfD(ET$`EYDYAYt$hAXfD(DYAXfD(EYAXED$xDY|$fA(AXE$DYAXE$DYfD(EXE$DYAY$DL$XE$EXE$XDYAY$fA(AXXMxE$DYDYf(fD(AY$DYEXfD(fA(fE(XDT$fD(DYt$ upDYDYAXfE(DYDXEXEd$xDYfA(E$AXED$`DYDYDXEXE$AYt$hE$El$xDYAY$DYAY$fA(DAXXE$DYAY$DXXDYEXDf(Xf(AYL$0f(f(Yf(f(YXf(fA(AYXfA(E$EYXfA(AYXA$YXAXEl$`EYEYd$hfA(E$DYAY$DXA$AXDYAY$AYAXE$XEYYEY$AXDAYAXDD$8EYt$@XXfA(Yf(A\$xAXAYXA$AYXA$AYXA\$`E$Dt$ H$EYD$XYEY$AY|$hfA(E$XA$EYAYEY$EY$EvhDt$8AFXEVpXfA(Dl$ENxEX|$En`AXA~PAAXDd$0AEAAXD\$@AEAAEDpPD`XDX`DhhAYfE(EYDXfA(YAXfE(DYAXfD(EYfH~fA(fE(EYAXfE(DYDXfA(YDXfA(AYDYd$0fL~D|$EYDYt$ AXD|$8EXDppEYDY\$@DXfA(YEXD`xDYDXfA(EXAYDfM~D|$fM~DEYAXfE(DYDXfA(YDXfA(AYfM~fD(EYAXfE(DYDXfA(YDXfA(AYDYd$0fM~D|$EYDYt$ AXD|$8EXDEYDY\$@DXfA(YEXDDYDXEXDfL~D|$D$fE(EYEYEXfD(DYEXfE(DYEXfL~fD(EYfE(fE(EYEXfD(DYEXfE(DYEXD\$EYDYt$ fA(fE(EYDYd$0DXEXfA(D\$8DYY|$@DXfA(DYfD(EXYfA(DAXDXEYEYEYfH~DD$DYt$0DAYHD$I~XYIINPAYIAYIAYMF`AYMNhDXD$8DYfHnEEZAYMVpAXDYl$@M^xEEZIXl$XYAZDX$AAXXd$YAY|$ ZDXfDXfZfHnAXEXXfEXZfInffEAZfInZEZfInXffInEZZfA8ZfHnXfZfZfHnXfZfHnADZEX H|$(DX(H0HoP@8H$HHHPH|$(HH$HHHL$8HHL$@Hu\HHt0HH$HH|$hH5H|$pHD$xHD$X7HH$HH|$hH5H$H|$hH$H5~[$f*$H$H|$hH5HH$H|$hH5HH$T$dIXH5H|$hD|$dH\$hH5IpDHIDH5HIDH5HIDH5HIDH5HIDH5HIDH5HH|$(HtHP Mt ILP Mt I$LP H|$HHtHP H$dH+%(-H[]A\A]A^A_HHH9IHH$IpH)"HH$IH)HH$IH)"HH$IH)7HH$IH)HH$IH)HH$IH)"HH$HXH) HHHHHHAVAUIATUHSH`'IIEI|$(Ml$(Mt$ AD$ 1HLI|$@ID$0AD$8I|$HI|$PI|$XID$hHLID$xHI$I$I$I$I$I$I$I$I$I$I$@AD$hID$pIDŽ$ADŽ$IDŽ$IDŽ$ADŽ$IDŽ$IDŽ$ADŽ$IDŽ$IDŽ$IDŽ$ ADŽ$(I$0IDŽ$8AƄ$@IDŽ$PAƄ$XHHt0HKHtBLLHC([]A\A]A^fLLI[L]A\A]A^ÐH9t1B A9D$ @멐f.AVAUIATUHSH`'IIEI|$(Ml$(Mt$ AD$ 1HLI|$@ID$0AD$8I|$HI|$PI|$XID$hHLID$xHI$I$I$I$I$I$I$I$I$I$I$@AD$hID$pIDŽ$ADŽ$IDŽ$IDŽ$ADŽ$IDŽ$IDŽ$ADŽ$IDŽ$IDŽ$IDŽ$ ADŽ$(I$0IDŽ$8AƄ$@IDŽ$PAƄ$XHHt0HKHtBLLHC([]A\A]A^fLLI[L]A\A]A^ÐH9t1B A9D$ @멐f.HLOHdH%(HT$1HWLHuWLHtDR HJLBExHHHuI9t'V  HF(HT$dH+%(uHHH$4Hf.AWAVAUIATIUSHdH%(H$1HGHGGH~(HD$H/HnHFHD$H9fH}0HXHHHHHH9yHH HcHH'HھHKY8m4.H?BHHYHHHH HwH$H$1H|$H$H$$H$HHcviH=I(\(DHHHIIHILHHHH)HLADTWWFDIBH='wC0H vH=D_F_HupH}hD$,HHDF HVHFEyHtHDHtHHHH9tF ~HD$,HT$0H}`HD$0َHHF0H\$PH\$@Lv(L`I9LGLLt MLd$8IIAL|$@D$PHLd$HLH5B Ld$`LH?H9D$hqH5LL$HPL$HH9H$HHH$HHH$@HL$H@L$H$M9HHE$H$I H9vH;4$HE$H9sH$L$HPL$HH9H$HHH$HHH$H@@HH?H+$H7H$H5L$HPL$HH9zH$HHH$HHLH$H@H$H@H$H$L9tH$L9tH$L9tH|$`HD$pH9tH|$@H9tH$H;<$tHHH9D$9H$dH+%(OHL[]A\A]A^A_D1MHL|$@Kf.L|$@Ht$81LHD$@HHD$8HD$PLLLd$8HD$@o@)$mfDoH)$fDoP)$fDppH|$L11L$HPL$HH9oX)$DpHHHHH9H$HHD$Ht$,LD$0D$,HpHLH@H_|$0Mf.HNHV;~ ~Ht&HHNHV;~ HtIHѐH'LI9t;~ }HT$0Hx8HT$8HT$8HHF0H\$PH\$@Hn(L`I9LGHLt HLd$8IqIuDEL|$@D$PHCHqg]SMfHL|$@Ld$HLH5B Ld$`LH$HLHL$HT$HLH$HLH$H$LH$H$H9tH$H$H9tH$H$H9tH|$`HD$pH9tH|$@H9tH$H$H93)L|$@Ht$81LHD$@HHD$8HD$PLHLd$8HD$@LHL|$@H=H=H=H=HL|$@HHHHHHHHHHHHHfAWAVAUATALUHSHHt$dH%(H$xHHH@HfHnH$HfHnfl)$HEH HLxDŽ$BD$$LcHH)HI9h sJH9tH H8H0DŽ$HH)HI9 sJH9tH8HPGtmHHDŽ$McHH)HI9sJH9tHPHhH`DŽ$HH)HI9sJH9tHhHHxBDŽ$HcHH)HH9|=HEHhHXHD$xH4$H94D$`EE1E11 H$H@HD$HH@HD$ H$H$H$pHD$}f$y@THHTLhdHADADA D H0AEAEDAEDAE D HHAD$8B:AD$HH5HPt*IE1f1fLLHAf1t1AUATIUuHLju"IELXHHH;@v LHLLH1]A\A]fAV1AUATUSHHHdH%(H$1HH`HHH5E1MPHH5HELEPIDH{D$H`HXHHufDHLHtDZ LBHJEyHHuH9DV ELn0MI$H HH9HHH9fA$@A$P)l$0D$@H{DEDEC@H$dH+%(:HĐ[]A\A]A^HD$HT$HPHD$HLn0M,HtLt$PHLHEHHpH9.H(HD$ 0D$(f(L$Pf(D$`fD$XH{fL$`f\L$ Df^f*L$()D$0D$x\D$p^D$@E@IEH(LH(fEPf(YEpYXYXL$0f.QYEX~f(YExYfT] XYXd$8f.QYfT]f(E`f(YYXYXd$@f.QHCY@f.fT]fEZK@f/Z^K@@Ht$0HL$@LHT$8OMI$H HH9HHH9Ao$pLt$P)t$PI$HD$`Ht$0LHC Z(^/ TUV@E1Ht$0LyLt$PHHEH HH9HHH9o8)|$PHHHD$`/Ht$ HLt$PLLH{ HL$XLt$PLHT$THHt$lVLLL$pLD$lYH{^HLH{HT$THL$XHHHt$lVLLL$pLD$lXH{Z $ $fd$ $ $d$f~L$$$L$$$f~=AWAVAUIATUHSH8HdH%(HD$(1LHH$L9iL|$ 1ML|$f.H`LXHiA4$MHHtHPHH9p |IHHuM9tA;v } HT$HPLLd$ |I}IHH M~(HH94A HH5H98A$HH H9uS<AE@0A(HLIL9$$tPI}I}HqfAE@AIEE(0fI}HefIPt.HD$(dH+%(H8[]A\A]A^A_MI}D$H`LXLHu4@HHtDH HPHHExHHHuL9tF ~HD$HT$ HPHD$ %HHV(LHHfAWAVAUATIUSH$@H|$H$H $HDD$DL$(D$,dH%(H$HA(HD$ AH5HDHL=HǺLH5HDHH5HIDLHǺLI$LHHHtaHH5PtP H5HH5HH5HH5HI$LHHHRH5HrH5HI$H5LPI$HHH9A$HD$ H5HDhDNDH'H5HHDH(H5HHDH/H5HHDH H5HHDHH5HHDHH5HHDHH5HHDHHǺLH5HDHHǺLI$HH(H9zA$f/vqH5HH $D$4HQHAHHSDJ HJHzExHHtHfHt HfDH9DF E H~0HXHt5H<$Ht$8D$8"HxHXH1H5Ht$ HH5HIDLHǺH5H5HDHHǺLH<$Xt$.&I$H(H9:A$f/t$$H~$PI$H H0H9{A$Ht+HHH9A$I$H`HH9A$0HHHHSfHnHD$fHnflL`H@L @H$) $HL$MxL9oH$H|$11I)HC@fo,$H$H$H$)$H9tHH$HH$HH$HPH@H$HRHHHH$H$dH+%(dHD$H[]A\A]A^A_fH<$HD$4HT$8HD$8H!H5H|$,|$XH5H'H5HILЅ=#H5H$f.I$LHHHDH|$@t$(H|$`|$,H5HHT$HHt$@HH5HIHT$hHt$`LHǺH5L$(I$H(H9A$f/H5HT$(H5H@hH5H "H5HI$H(H9LfDH$H@Hx0HXHHHHH9HH4HH5PH5H DH|$H$sfH5HDHH5HIDLH5HIDL H5HIDLHǺLH|$`HD$pH9tH|$@HD$PH9f.LЃuF-H5HDLI$f.LfDI$H`H9t>LH5HlfLOHELjA$0bIIIHUHAWAVAUATSHHHHH`LHHPLXdH%(HE1HL=xAHHH0HHH;sHp1HtHBPHH@H@XHxHtHRPHHRHBXHHtHRPHHRHBXHHtHRPHHRHBX4@1ɺ1A1HEdH+%(HHe1[A\A]A^A_]fDH@HxHhHH HXHHIHhHHHHI9ufoHH8)foHHE)foHp) fo)0fo)@fo)Pfo)`fo)pfo)E}@LI9I$PMl$XH@PNDHmIHhHH7/DHhHH0@HHKHLLLLHHC(HHE([]A\A]A^A_fHL1D;r @뻐fDAWL~AVIAUIATIULSHHT$DD$ dH%(H$1HFHu HHtD@ HPHHExHHHuI9} HE(L|$8LD$8LHD$(wLHHD$IXHHHHH9VGPD$$Hl$`HD$P1LH\$pHHD$HD$@HD$HD$PH\$`HD$8HT$8foDeHHD$`Ld$@H|$(HT$pfH@cHD$8HT$`HD$hLH|$`H9tH|$@H;|$tHt$LLL1LHH\$`HD$8HT$8foHD$`HH|$HT$pDefP@cHD$8HT$`HD$hLH|$`H9tH|$@H;|$tHt$LLL1LHH\$`HD$8HT$8foHD$`HH|$HT$p@InitHD$8HT$`HD$hLH|$`H9tH|$@H;|$tIHPIPLL1LHH\$`HD$8HT$8foHD$`HH|$HT$p@ImplHD$8HT$`HD$hLH|$`H9tH|$@H;|$tHt$DL$$LLDD$ L1LHH\$`HD$8HT$8foHD$`HH|$HT$p@ExitHD$8HT$`HD$hLH|$`H9tH|$@H;|$tH$dH+%( HĘ[]A\A]A^A_ÿ0HHL@ HP HH@(HHI9t HLHID$(DHLLLL8D$,M PD$0PA,PHt$8H H5H*H|$LHJ@HHhr 1@]ЉD$$HHHHHHHHHHHHAVAULnATIULSHHPdH%(HD$H1HFHupHHtp HPHH~HHHuI9tA} ;A$Lm(HD$HdH+%(HP[]A\A]A^fD0ILH@ HP HH@(IHI9t HLHHC(Lm(A$hIH5Hl$ L(H5H(LHLH|$ Lt$0L9tH<$H\$H9tH5Lh(H5HY(LHLH|$ L9tH<$H9tH5L(H5H (LHLH|$ L9tH<$H9tH5L'H5H'LHLH|$ L9tH<$H9@HL1z @fHHHHHHHHff.AVAULnATIULSHHPdH%(HD$H1HFHuDHHtp HPHH~HHHuI9} I$Lm(ptrIH5Hl$ L;&H5H,&LHLH|$ HD$0H9tH<$HD$H9tHD$HdH+%(HP[]A\A]A^Ð0ILH@ HP HH@(IH&I9t H(LHHC(fDIH5Hl$ LQ%H5HB%LHLH|$ Lt$0L9tH<$H\$H9tH5L$H5H$LHLH|$ L9tH<$H9fDIH5Hl$ L$H5H$LHLYfHL1z @HHHHHHHHff.AWAVLvAUIATIULSHHT$HL$DD$(dH%(H$1HFHufDHHtDP HPHHExHHHuI9[DM ENHE(Lt$8LD$8LHD$ H|$HHD$HXHHHHH9zGPD$,Ld$@1L|$PLLL|$@Hl$`H\$pHD$8HT$8H5HD$@HxHT$PHHHHHH)H)HLHHD$8HT$@HD$H1H\$`HD$8HT$8mpHD$`HipPos::IfoH|$ HT$pHHfpH@lHD$8HT$`HD$hLH|$`H9tH|$@L9tH5L!1LHH\$`HD$8!HT$8foHD$`HH|$ HT$pfo@ l@HD$8HT$`HD$hLH|$`H9tH|$@L9tIE1LLHt$HL$HPA1LHH\$`HD$8HT$8foHD$`HH|$ HT$pHD$8HT$`HD$hLH|$`H9tH|$@L9t1LLL|$@HD$8OHT$8()HfoHD$@HalizeRayHT$PfoHp@L@fo@HCast@ fofHL@N;@0HD$8HT$@HD$H1H\$`HD$8HT$8foHD$`HH|$HT$pmp@r::IfP@lHD$8HT$`HD$hLH|$`H9tH|$@L9tIPHLLHL$(It$4DH|D@tV@xt$8VPHt$01LHH$HD$XH HT$8foHD$`HH|$HT$pHD$8HT$`HD$hLH|$`H9tH|$@L9tHt$HL$ LLID@x1LHH\$`HD$8HT$8foHD$`HH|$HT$p@tHD$8HT$`HD$hLH|$`H9tH|$@L9tHt$HL$LLH5HH|$LHH|$`H9tH|$@L9t1LHL|$@HD$HD$PH\$`HD$8HT$8foHD$`HH|$HT$p@tHD$8HT$`HD$hLH|$`H9tH|$@L9tH$dH+%(HĘ[]A\A]A^A_0ILL@ HP HH@(HHt*I9tHt0LHID$(WDHHBDB 1E@ƐЉD$,HHHHHHHHHHHHHHHHAWAVAULnATIULSHHHT$HL$DD$dH%(HD$x1HFHuHHtDH HPHHE~HHHuI9} I$Lu(H8tI$ HD$@D$@H$HD$0HD$8Hl$PL|$(1HD$(H\$`LHH\$PHT$(HD$PHLAecLl$0foHT$`@k::DfD@HD$(HT$PHD$XLH|$PH9tH|$0H;<$tI$ A$,uI$H8H$D$@HD$8HD$01LHH\$PHD$(HT$(fompHHD$PHT$`fxL@k::I@lHD$(HT$PHD$XLH|$PH9tH|$0H;<$tI$ A$,uI$H8OH$D$@HD$8HD$01LHH\$PHD$(HT$(foHD$PLHMask::DeHT$`HpH@cHD$(HT$PHD$XLH|$PH9tH|$0H;<$tI$M$ LLL8D$PA$,PHL$ Ht$H\$`1HHD$8Y^LHT$(foHD$PLHMask::ImHT$`plHpHfPHD$(HT$PHD$XLH|$PH9tH|$0H;<$tHD$xdH+%(HĈ[]A\A]A^A_f0ILH@ HP HH@(IHtbI9t HLHHC(fH|$0H5/HD$@H$9H5L @HLH5L1z @vHHHHHHHHAVAUATLfUHSHH@HVdH%(HD$81HHM HHtDP HHHpExIHHuM9SEM EFI}(HD$ Ht$ H߄HL0HEHH9HuPLl$LLLH|$HD$ H9tHSHH(M HHtx HHHp~IHHuM9A} I}(/HD$ Ht$ H߄_JHL(HEHH9HuXHl$HHLH|$HD$ H9tHSHHLHHtx HHHp~HHHuI9} H}(HtuL DHHtx HPHH~HHHuI9} Le(Hl$H5HHLH|$HD$ H9tHD$8dH+%( H@[]A\A]A^@MD0LH@ HP IH@(IH I9t HLLHC(I~(`fDMD0LH@ HP IH@(IHI9t HLLHC(I~("fDLD0HH@ HP IH@(HHyI9tHu1z @LLHC(I}(sHCHL0ILH@ HP HH@(IHHu I9*LHHC(fDLl$L0HLH0LLfHl$L(HHH0qHLLM HL 1LIED$ IxoD$(HHHH9E~ EAH$Ƅ$HD$H$HDŽ$ET$A!L$L$`H5LL$IOILLH$HLH$H$LH$H$H9tH$H$H9tH$`H$pH9tH5LXH$@H5HAL$`H$H$HL>H$LLH$H$LH$H$H9tH$`H$pH9tH$@H$PH9tH$H$H9tH5L$H$H;|$IpiIxIED$ EшL$(~HH H9 1LIED$(LzH$HHD$0HH5HHH5H$H5HHH$HH$H$H9tH\$0HH$H¾HH1H$H$H9tH|$0@L$`H5LL$IOILLH$HLH$H$LH$H$H9tH$H$H9tH$`H$pH9tH5L$HH$Ƅ$HD$H$HDŽ$H$@H5HL$H5LLt$`H$ H$H$LHHD$xIL$`HLLL$H$H$LLH$HLHHD$HH$H$LH$H$HD$@H9tH$H$HD$8H9tH$`H$pHD$pH9tH$ H$0HD$hH9tH$H$HD$PH9tH$@H$PHD$XH9tD$ D$($$H$H;|$fDH$H5EtOL$AH$H\$!LAdH5LV@H$H$H5HD$H$HD$H$HD$H$HDŽ$DŽ$sHPHHx@HD$I@H/HIHHrHJD;J ~HuL9E;H IP(H5LH|$HHLH$H$LH$H;|$@tH$H;|$8OEH5L|$(6HD$XƄ$PHDŽ$HH$@H$H5HHD$(9H$H$Ht$(H$HHD$ /H$Ht$ HHHD$(H$H$Ht$(H$HHD$ Ht$ H|$`H$D$ H$@H5HH$H$H5HHD$(gH$ Ht$(IOIHHD$(fL$`H$Ht$(LLL|$xHT$`LHLLH|$HLLH$H$LH$H;|$@tH$`H;|$ptH$ H;|$htH$`H$pH9tH$ H$0H9tH$H$H9tH$@H$PH9tH$H;|$Pt|$ thH$H$H9tH$H$H9tH$H$H9tH$H$H9tH$@H;|$XtH$H;|$87-fDLIH$Hx8LH$HT$0IGH5H1|$ HD$PƄ$HDŽ$H$^ILHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHfUHAWIAVAUATSHZHHH DDdH%(HEHBHHHH9u=DLHH9t(IH0HX1Huѻf1L LHI~(HDžHHƅo H@H5HHHHGH@HPH9tIGIGLuHIAGHLH5HDžHHHƅHHHDžƅcH@H5HHFH`HHHHHHLIH9HI~0HXHHHH9tЃuHHHHH9,HHHt3HH50HUHuLH}L9tfHH5HUHuLH}L9tHH;tHH;  @H`H5HIHLLuH`HpH9tIGAGHIIGtlH5LL11LHLmHPLmHH9HMHHHMHHLHMH@HuH@HUH}L9tH}HEH9tHH;tHEdH+%(HeL[A\A]A^A_]fDHHH9SHHHh Hx1LHEHHxHEH`LHxHUfDoh)mf.o`)efoX)poP)HtH1LHUHHH}f.op)P;HL11H8HPH@HH9ox)PfDHHLmIHLuH5LHLH}HEH9$$HH5mHUHuLxox)}cfEHUHHH=H=H=H=HhHHHHHHHHHHHHHHHHHHHHff.UHAWAVAUMATISHHHDD@dH%(HE1HGGHHHH(HHHPHHHGLH8HHHDžƅHDžƅHDžƅH0HHDžƅIY(-HvHpƅpH`H`HDžhHH0ƅ0HhH H HDž(HXHXAk11H HPHPH@HHpH9H@HHHPHHLuLHHHH`H@@H@HHH H?H+EH H5LH]HPH]HH9HMHHHMHHHMHHH@@HEH9UoEH;P{HHHkH}HUHEH}H9tH}HEHxH9tH@H;ptH H;htH`H;`tH?H+H=HH5H?H+H=HH5H?H+HyLzH5LHxjH}LDMD@AVDHHHEHsampled_HEEpoinEtHE EXHuLZHUH}H9tH}H;xtHHLLLLHH?H+HH5LHHLHhHPH HH9H HHH0HHHXH(HHH@H@HpHPH@HH9H@HHHPHHHHH@@HH?H+HH=BH CH5H`HPH`HH9H`HHHpHHHHhHHH@H@HxHPHuHH9mHMHHHMHHHMH@@HH?H+EHX YH5LH]HHPH92HMHHHMHHLHMH@HuH@HUH}H9tH}H;xtH`H;`tH@H;ptH H;htHL9tHH;0tHH;8tHH;PtHH;(tHEdH+%(HeL[A\A]A^A_]fDH`H5HpH`H_H H5HHXH0HhdDHH]H]Hf.oH)PzoP)Uf.o`)PoX)0hop)ufoh)p#ox)}f.HUHtHt1HHUHHH}f.EHUHH=H=H=H=H=H=H=IIHHIIHHHHHHHHff.UHAWIAVAUIHATSHH DdH%(HE1HPDžPHH袤LL0IXHHHHHH9 CPIPLeLLHHEH5HH8H8LLH}HEH(H9tH}HEH0H9tA4 IEHH(H9Y A/vIxtHHLH8H5H8LLH}H;(tH}H;0tIHPH LHLDH8H5H8LLH}H;(tH}H;0tHLH8H5:H8LLH}H;(tH}H;0tHLH8H5H8LLH}H;(tH}H;0tHLH8H5H8LLH}H;(tH}H;0tILXc HLH8H5H LHLH}H;(tH}H;0tILLH DDPxR@tLPH8XH5ZHLHLH}H;(tH}H;0tH HHHH8H9GH5L H8H5HLHLH}H;(tH}H;0tHEdH+%(l He[A\A]A^A_]H5Lz@H LLLH8H5XH8LLH}H;(tH}H;0tILLIHDLPH8Y^H5H8LLH}H;(tH}H;0tIxxNP|LLH8H5jH8LLH}H;(tH}H;0fDHHHHHH99IHDžLHLHHMHXHDž`HHDžXHhHpHDžxHHta-LH8H@HHRHuHhHfHHRHuIH8HpHxH`LLLDDPH _H8H5AXH8LLH}H;(tH}H;0tH`dIHHDžLLHHDž`HHDžXHhHpHDžxHtnLH8HfHHRHuHhHf.HHRHuIH8HpHxH`LLLDDPH H8Y^H5LH8LLH}H;(tH}H;0tH`IHHDžLKHHLDDH LRLH8XH5ZH8LLH}H;(tH}H;0tH`)LHLH DH8H5 H8LLH}H;(tH}H;0tH DLLH8H5H8LLH}H;(tH}H;0tHLH8H5HALHLH}H;(tH}H;0tf.IHH LDDLPxRP|R@tLPH8H H5HLHLILLHDDH8H5SH8LLH}H;(tH}H;0LfDHЉf1HpfDHHDžPGHXHDž`HxxHhHDžXHpHDžxHt])H8HHHRHuHhHfHHRHuHH8HpHxH`HLLDLDH H8A[H5XH8LLH}H;(tH}H;0tH`gHHLLL狍H8H53H8LLH}H;(tH}H;0tH`Hs8HHHLLSDLDH H8AYH5AZHLHLH}H;(tH}H;0tH`DOHEHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHfAWAVAUIATIUH1SHdH%(HD$x1HGGLt$PHL|$H\$`HGLLHD$H\$PHD$HT$HD$PHxH5HHT$`HHHHH)H)HLHD$HT$PHD$XHT$XHt$PH|$PH9tHEHH`H90)IELXHHHHH9LMIEH5LPLIELLPLLHH5H|$PH9tH5LH5LH|$0LH|$PH9tLH|$0HL LH1H|$0HD$@H9tL1LLH\$PHD$QHT$HD$PHxH5HHT$`HHHHIH)H)QHLHD$HT$PHD$XHT$XHt$PH|$PH9tHD$xdH+%(urHĈL[]A\A]A^A_HfDH5LHT$XHt$PLH|$PH9IHHHHHHHHAWAVAULnATIULSHH<$HT$HL$dH%(HD$x1HFHuDHHtX HPHHxHHHuI9UD] EHHE(Lt$(LHl$PLLd$@H\$`D$(HD$討1LHL8Ld$0HD$8D$@H\$PHD$(HT$(foADeHD$PLl$0H|$HHT$`@on::fDH@cHD$(HT$PHD$XLH|$PH9tH|$0L9t1LLLd$0HD$(;HT$(foHHD$0A.0H.0 / 255HT$@foHp0L@fofD@8@:;@ HD$(HT$0HD$81H\$PHD$(HT$(foDeHHD$PHT$`fxL@on::@cHD$(HT$PHD$XLH|$PH9tH|$0L9tH$Ht$LHL$1LHH\$PHD$(HT$(foitLHD$PHT$`fpH@::InHD$(HT$PHD$XLH|$PH9tH|$0L9t1LLLd$0HD$(HT$(H5HD$0HxHT$@HHHHHH)H)HLHHD$(HT$0HD$81H\$PHD$(HT$(plHLfoHD$PHT$`fH@::ImHD$(HT$PHD$XLH|$PH9tH|$0L9t1LHLd$0HD$8D$@H\$PHD$(HT$(HD$PHLfoHT$`it@::ExfPHD$(HT$PHD$XLH|$PH9tH|$0L9tHD$xdH+%(HĈ[]A\A]A^A_Ð0ILL@ HP HH@(HHt*I9tHt0LHID$(]DHHHDR 1E@HHHHHHHHHH@AWffAVAUATUSHLPdH%(H$H*G\*O`HX@HfHnH\$pHfHnHGfl)\$`HGT^^[fG\MIEHH5LPIEHH H9IM\UXuTDE`LMIH HH9 HHH9! IVhAFhH$u\U`9u9$tHH$dH+%(. HĘ[]A\A]A^A_LH7HHH$HH< LHL)HH9LLL)HD$ HHD$HtHLLIM9t/LfIILIHHCM9uLMtLHD$ H\$fInHLLfHnHflHL$HH$H$HHD$HD$x1>fDLHL$H$LHD$HfH|$H1HL5$h$xHCI^INHDŽ$XH$1f$`HCH$HHDŽ$H{HL$ IF H$1HL$H$HHHD$(IF(HHHD$0IFIv0fL$fod$`HD$8H@Ht$@HH)$H)$ H$H)$0Hh)$@H$H$PHHD$PHLLDŽ$XHƄ$pH$H$pHD$XH$`HDŽ$hHt$H|$H$Ƅ$L$HD$H$H$@HDŽ$HL$0MsL9jH$811LI)A 11LH L$HPL$HH9JH$HHH$HH@H$HH$H@H;|$tHH;HGH$HH$HH H~D$pH$HfHnflL9t)D$foD$HH$`)$HH$HHhH$H;|$XtHH|$PHH$HD$8HL$@LH@HHD$(HL$0H$H@HHCH$H\$ HHHDŽ$HH$LHD$HD$H9HT$xLHH$LU`u\E1AH$H$HH$HHHH9tLJH$HHHH9>tLJH$HHHH9tLJH$HHHH9tLJHH;HH$LyIHH$H$7ox)$fDH$`LP1j1@@LHHHIEH H9NML1LHU`u\HHAąt3fHE1E1H1HHI9uH@LHAI9tH;HI9uIEHH H9lMLLE4L$LH5LHH5H$H5HH藰H$HH$H$H9tLH$H¾LH1H$H$H9tLLH1Bf.H$Lҋ$H$H$LЋ$ƅLILIH=HHHHHHHHHHHff.ATIUSHH HPdH%(HD$1HnHHH9trHHƃHC.z=u;HD$dH+%(H []A\fDI$PHfDLHtHH-HHH H9@HHHHHHH H9Hf(((HHHH H9HHD$dH+%(H @[]A\HD$ H`HXHHu4@LHtDJ HJLBExHHHuH9tF ~HD$ HT$HPHD$(HHv0HfDH9fDHAWAVAUATUHSHHdH%(H$HG.z/u-H$dH+%(Hĸ[]A\A]A^A_@HGLPHI$H H9EI$L|$@Lt$`LHHLHHD$L$H5L脫LLLH$H$HD$H9tH|$`HD$pH$H9tHHt$LH5LLLLH$H;|$tH|$`H;<$tLIHLHHD$HT$@LL$HT$HT$Ht$`E1LHD$LHH|$`H;<$tH$H;|$tH|$@HD$PH9t-&fLH1HHHHOI$H5H H9$M$HEHKTHS`HHs\LCXK\SXLDC`sT LALq LHt\1HHH.fDHHHH9uEf.z'u%HHH8H9u)8fHH|$H|$HHHf.AWAVAUATUSHHH<$H\$hHt$8dH%(H$81D$hHD$pH\$xH$HDŽ$1HHD$Hl$pHHfHt+HHD] HEHUExHtHf.HH9DU EHD$HE(HHD$@IH$Ll$`DŽ$HLHD$ TL8HHD$(Ld$pMHِA|$ IT$ID$~HIHD0ILHP H|$`H@ H@(IH H9t H HHH$HtLI`II9A|$ HD$(ID$(H$HHPH|$H H|$HIHHH5LPtH<$LLIL$DŽ$HDŽ$L$L$HDŽ$HLZHHHRHuH$HfHHRHuIH$H$H$L9|L$fHHL9t`}DtLD$pMlM@HfDIPI@A;H ~HIIPI@A;H HLIH4$D$\H`HXHHf.DB HzHJEyHHIfD0L@ HLIH@(HP HHNH9t HpHLH$fHHtH`H9gF \H~(D@`HL$LHT$8H<$H$L$L9u OHHL94}DLD$puMM@Hf.IPI@A;H ~Ht%IIPI@A;H HtLIII9tA;H }y0MM@LHP LH@(H L$HD$LD$HIH9t HL$LHLD$LD$H$I@(H$ H$HPhHp`H|$LHE}MhHu HUHLLD$pMM@HDIPI@A;H ~Ht%IIPI@A;H HtLIII9tA;H }y0MM@LHP LH@(H L$0HD$LD$HIH9t HL$0LHLD$LD$H$Ix(LH$H;|$HHL9H$H|$pH$HHHELH$DŽ$HDŽ$H$HDŽ$Hte蹂HfDHHRHuH$HfHHRHuH$H$H$H$H$HHt$ 1HAHxH$舀H$HHxHt%HHHH9u H|$HP H|$@HP H|$(HP H$HHH$HgH}}H}HHEXH]H9tH} HE0H9&HH!HE1HD$\HT$ H$H$HPHzfDII9tA;H }y0MM@LHP LH@(H L$0HD$LD$HIHu H9ӋL$0LHLD$LD$H$I@(H$ LHt$H$HPhHp`HmyMhHu HUHLLD$pMM@HDIPI@A;H ~Ht%IIPI@A;H HtLIII9tA;H }y0MM@LHP LH@(H L$LHD$0LD$0HIH9t HL$LLHLD$0LD$0H$Ix(LH$H;|$bXHHH|$p}H$8dH+%(:HH[]A\A]A^A_@LM_LM_LM_LMgHLYLIx1;J @DJ 1E@1z @IVI^HxHt$ DŽ$HPH@HD$,I8IH1;J @U1;J @_1;J @aH\$ HH4$H$HHPHHHH5H$H$ HD$H9tH|$ H5H5HzH$HH$H;|$tH\$ HH $H$H¾ HH1H$H$H9tH|$ HHHHHHHHHfAWAVAUATUSHHdH%(H$HLPMIEHHH9uIMMtLHu9H$dH+%()HĨ[]A\A]A^A_LIfDLHD$~E1L|$0fDAD9d$tDLHE1LHHHHHxHEutLHD$pHHHHL$HPHt$LHH5H|$pH$HD$H9tH5LHHD$H|$HHl$H5H xH|$PHH|$pH;|$tLH|$PHHپLH1H|$PHD$`H9tLDHxD$,H`HXHHu4@LHtDJ HJLBExHHHuH9tF ~HD$,HT$0HPHD$05HLn0HHHH@HIAVIHAUIATIULSHHH9IxpLHEHHH9uwH}hLHEHHH9udH}xLHLLLHHPt[]A\A]A^[]A\A]A^HHHHfDLH=f.AWAVAUATIUHSHHHHH$H`dH%(HD$81HXLJHHD$Hu LHtDJ HJLBExHHHuH9V Lv0ILXLIIIHHH5LPmuuILH;`SL=H $HH8L9ЉEDH}11L0LH4fHUL0HIHH}HHH9LHH`H}LtM$PMIH5LPIL-wH L9#IT$ H\$0q H H߈D$!D H߈D$"HT$$E H߈D$#HT$r HD$|$q HD$(AHߺ HHD H1HHEvu,IH L9IM\UXuTDE`LHHHx1HxH}eHHHLxH5LH}H$MLHxHtt LHH1H11|$ THD$8dH+%(CHH[]A\A]A^A_ÐHD$HT$ HPHD$ HUDE1H}HH;`H $L=HH8L99UDHhH9HBH9mLH9;I$HH9I$HH9H<$HH;XLHfT$LT$Hf.t$$H|$0T$#H|$0D H|$0A|$"thT$!H|$0q |$(EH|$01DLHLHH)fDH|$0 LHH9EDHhH9HCH9aHff.AWAVAUATIUHSHHHhdH%(HD$X1HIHH5LPHL=H`L9?0HM$PMIEH5LPvH0H HHPH9xHWI9twHt H<$PH<$LoMt^IH|$ MHL DHHtHPHHH9x rHHHuI9vH9~ l@IEHHPH9HHHvM $HHTHP`LHp\L@XAHHPH9@HuHEHPH9UE`HH8HHH5HH$HEPt#H~HE11HLHPHHLu*HD$XdH+%(Hh[]A\A]A^A_HLHHLHLHHPsI$PHBHH|$H5PH|$#HHT$HT$HLHHteIEHDwH H9MD|$ Ll$0EPLAuA}HEHHI;wZI}HIH8I;w:L=L9OAA;EDLE1LL=IH8L9GAAEDLHHEHHHPHH5HP8HL0HHxHILLHHxHLHttHPH1H11|$ =t$$H|$0T$#H|$0D H|$0A|$"T$!H|$0q |$(H|$0fDHEHXHH|fDLHt$@ HfoL$@HT~1fHH`L950HH $LLfHD$XdH+%(Hh[]A\A]A^A_fHfDHPLHyfDLq L D$!LD D$"HT$$LE D$#HT$Lr D$|$Lq D$(ALL LLD 1LfHt$ Ixf.1fHILLHHxHLL9fDHfDLfDLLIH|$0 @HfDLfDL_IhH $H9HCI;CI$HI;%I$LIILI9"IIx1HHeHHxLHAUATUHSHHLl$ T$ LHH5HI@LL%LHLH H5HHHHLHH[]A\A]HGX9wPtHwPGPGhHGpHG`HH1HHH1HHGxH9w`tHHw`fH119tHD9,tH,DH (,ff90tH0D0f.8f(fzuf.@zuH8H88@FO1H9HtHH@1Hf.PfD(f(f(fDffzHuFf.Xz<2@DAHALHD$HG`hH`Hp>t2x|AAHD$@HPGPGxH1HHG|HHHGXHcO`HHHHHHp1HtHBPHH@H@XHxHtHRPHHRHBXHHtHRPHHRHBXHHtHRPHHRHBX9tHDHHHH8HGhGlGTHGPHGXHGhHGpHGxf.Gpf(fzuf.Oxzuf.zuDH_pGpGxFFf.f(fz"u f.zuf.z uHFFG\G`9tHD9tHD9tHD9tHD9tHDGtGh48<$AUATIUL(HMtuHtXLtiLLLhLLLH(HHEH]A\A]HfDLHDž(Hu]A\A]vtkGPUVolumeRayCastMappervtkVolumeMappervtkAbstractVolumeMappervtkAbstractMapper3DvtkAbstractMappervtkAlgorithmvtkObjectUH=HA1Eu]HH=AEtHH=AEtHH=AEtHH=AEtHH=AEnHH=AENHH=AE.H]HHHHPH9uDHHH(H9u.FFHNHVHHHH9u68<F@FDF HFLFHLFHNAPHVLNLF HHHHH9u6ptFxF|F FFHLFHNAPHVLNLF HHHHH9u.@HFPFHNHVHHHH9uGhGlFf.HVHHHH9u.48F<FHNHVbasic_string::_M_construct null not valid //Transform vertex (data coordinates) to clip coordinates // p_clip = T_ProjViewModel * T_dataToWorld * p_data vec4 pos = in_projectionMatrix * in_modelViewMatrix * in_volumeMatrix[0] * vec4(in_vertexPos.xyz, 1.0); gl_Position = pos; // Transform vertex (data coordinates) to texture coordinates. // p_texture = T_dataToTex * p_data vec3 uvx = sign(in_cellSpacing[0]) * (in_inverseTextureDatasetMatrix[0] * vec4(in_vertexPos, 1.0)).xyz; // For point dataset, we offset the texture coordinate // to account for OpenGL treating voxel at the center of the cell. // Transform cell tex-coordinates to point tex-coordinates (cellToPoint // is an identity matrix in the case of cell data). ip_textureCoords = (in_cellToPoint[0] * vec4(uvx, 1.0)).xyz; ip_inverseTextureDataAdjusted = in_cellToPoint[0] * in_inverseTextureDatasetMatrix[0]; // Check whether the neighboring points/cells are blank. // Note the half cellStep because texels are point centered. vec3 xvec = vec3(in_cellStep[0].x/2.0, 0.0, 0.0); vec3 yvec = vec3(0.0, in_cellStep[0].y/2.0, 0.0); vec3 zvec = vec3(0.0, 0.0, in_cellStep[0].z/2.0); vec3 texPosPVec[3]; texPosPVec[0] = g_dataPos + xvec; texPosPVec[1] = g_dataPos + yvec; texPosPVec[2] = g_dataPos + zvec; vec3 texPosNVec[3]; texPosNVec[0] = g_dataPos - xvec; texPosNVec[1] = g_dataPos - yvec; texPosNVec[2] = g_dataPos - zvec; vec4 blankValue = texture3D(in_blanking, g_dataPos); vec4 blankValueXP = texture3D(in_blanking, texPosPVec[0]); vec4 blankValueYP = texture3D(in_blanking, texPosPVec[1]); vec4 blankValueZP = texture3D(in_blanking, texPosPVec[2]); vec4 blankValueXN = texture3D(in_blanking, texPosNVec[0]); vec4 blankValueYN = texture3D(in_blanking, texPosNVec[1]); vec4 blankValueZN = texture3D(in_blanking, texPosNVec[2]); vec3 blankValuePx; blankValuePx[0] = blankValueXP.x; blankValuePx[1] = blankValueYP.x; blankValuePx[2] = blankValueZP.x; vec3 blankValuePy; blankValuePy[0] = blankValueXP.y; blankValuePy[1] = blankValueYP.y; blankValuePy[2] = blankValueZP.y; vec3 blankValueNx; blankValueNx[0] = blankValueXN.x; blankValueNx[1] = blankValueYN.x; blankValueNx[2] = blankValueZN.x; vec3 blankValueNy; blankValueNy[0] = blankValueXN.y; blankValueNy[1] = blankValueYN.y; blankValueNy[2] = blankValueZN.y; // If the current or neighboring points // (that belong to cells that share this texel) are blanked, // skip the texel. In other words, if point 1 were blank, // texels 0, 1 and 2 would have to be skipped. if (blankValue.x > 0.0 || any(greaterThan(blankValueNx, vec3(0.0))) || any(greaterThan(blankValuePx, vec3(0.0)))) { // skip this texel g_skip = true; } // If the current or previous cells (that share this texel) // are blanked, skip the texel. In other words, if cell 1 // is blanked, texels 1 and 2 would have to be skipped. else if (blankValue.y > 0.0 || any(greaterThan(blankValuePy, vec3(0.0))) || any(greaterThan(blankValueNy, vec3(0.0)))) { // skip this texel g_skip = true; } // If the current or previous cells (that share this texel) // are blanked, skip the texel. In other words, if cell 1 // is blanked, texels 1 and 2 would have to be skipped. if (blankValue.x > 0.0 || any(greaterThan(blankValueNx, vec3(0.0))) || any(greaterThan(blankValuePx, vec3(0.0)))) { // skip this texel g_skip = true; } g_dataPos = g_intersection; // c is short for component vec4 computeGradient(in vec3 texPos, in int c, in sampler3D volume,in int index) { // Approximate Nabla(F) derivatives with central differences. vec3 g1; // F_front vec3 g2; // F_back vec3 xvec = vec3(in_cellStep[index].x, 0.0, 0.0); vec3 yvec = vec3(0.0, in_cellStep[index].y, 0.0); vec3 zvec = vec3(0.0, 0.0, in_cellStep[index].z); vec3 texPosPvec[3]; texPosPvec[0] = texPos + xvec; texPosPvec[1] = texPos + yvec; texPosPvec[2] = texPos + zvec; vec3 texPosNvec[3]; texPosNvec[0] = texPos - xvec; texPosNvec[1] = texPos - yvec; texPosNvec[2] = texPos - zvec; g1.x = texture3D(volume, vec3(texPosPvec[0]))[c]; g1.y = texture3D(volume, vec3(texPosPvec[1]))[c]; g1.z = texture3D(volume, vec3(texPosPvec[2]))[c]; g2.x = texture3D(volume, vec3(texPosNvec[0]))[c]; g2.y = texture3D(volume, vec3(texPosNvec[1]))[c]; g2.z = texture3D(volume, vec3(texPosNvec[2]))[c]; vec4 g1ObjDataPos[3], g2ObjDataPos[3]; for (int i = 0; i < 3; ++i) { g1ObjDataPos[i] = clip_texToObjMat * vec4(texPosPvec[i], 1.0); if (g1ObjDataPos[i].w != 0.0) { g1ObjDataPos[i] /= g1ObjDataPos[i].w; } g2ObjDataPos[i] = clip_texToObjMat * vec4(texPosNvec[i], 1.0); if (g2ObjDataPos[i].w != 0.0) { g2ObjDataPos[i] /= g2ObjDataPos[i].w; } } for (int i = 0; i < clip_numPlanes && !g_skip; i = i + 6) { vec3 planeOrigin = vec3(in_clippingPlanes[i + 1], in_clippingPlanes[i + 2], in_clippingPlanes[i + 3]); vec3 planeNormal = normalize(vec3(in_clippingPlanes[i + 4], in_clippingPlanes[i + 5], in_clippingPlanes[i + 6])); for (int j = 0; j < 3; ++j) { if (dot(vec3(planeOrigin - g1ObjDataPos[j].xyz), planeNormal) > 0) { g1[j] = in_clippedVoxelIntensity; } if (dot(vec3(planeOrigin - g2ObjDataPos[j].xyz), planeNormal) > 0) { g2[j] = in_clippedVoxelIntensity; } } } // Central differences: (F_front - F_back) / 2h // This version of computeGradient() is only used for lighting // calculations (only direction matters), hence the difference is // not scaled by 2h and a dummy gradient mag is returned (-1.). return vec4((g1 - g2) / in_cellSpacing[index], -1.0); } // Scale values the actual scalar range. float range = in_scalarsRange[4*index+c][1] - in_scalarsRange[4*index+c][0]; g1 = in_scalarsRange[4*index+c][0] + range * g1; g2 = in_scalarsRange[4*index+c][0] + range * g2; // Central differences: (F_front - F_back) / 2h g2 = g1 - g2; float avgSpacing = (in_cellSpacing[index].x + in_cellSpacing[index].y + in_cellSpacing[index].z) / 3.0; vec3 aspect = in_cellSpacing[index] * 2.0 / avgSpacing; g2 /= aspect; float grad_mag = length(g2); // Handle normalizing with grad_mag == 0.0 g2 = grad_mag > 0.0 ? normalize(g2) : vec3(0.0); // Since the actual range of the gradient magnitude is unknown, // assume it is in the range [0, 0.25 * dataRange]. range = range != 0 ? range : 1.0; grad_mag = grad_mag / (0.25 * range); grad_mag = clamp(grad_mag, 0.0, 1.0); return vec4(g2.xyz, grad_mag); } for(int i=0; i 0.0) { normal = normalize(normal); } else { normal = vec3(0.0, 0.0, 0.0); } // normal is oriented inside the volume (because normal = gradient, oriented inside the volume) // thus we have to take minus everything float nDotL = dot(normal, -g_ldir[volIdx]); vec3 r = normalize(2.0 * nDotL * normal + g_ldir[volIdx]); float vDotR = dot(r, -g_vdir[volIdx]); if (nDotL < 0.0 && in_twoSidedLighting) { nDotL = -nDotL; } if (nDotL > 0.0) { diffuse = nDotL * in_diffuse[component] * in_lightDiffuseColor[0] * color.rgb; vDotR = max(vDotR, 0.0); specular = pow(vDotR, in_shininess[component]) * in_specular[component] * in_lightSpecularColor[0]; } finalColor.xyz = in_ambient[component] * color.rgb * in_lightAmbientColor[0] + diffuse + specular; finalColor = vec4(color.rgb, 0.0); if (gradient.w >= 0.0) { color.a = color.a * computeGradientOpacity(gradient, gradientTF); } bool l_firstValue; vec4 l_minValue; uvec4 l_numSamples; vec4 l_avgValue; int l_initialIndex = 0; float l_normValues[NUMBER_OF_CONTOURS + 2]; //We get data between 0.0 - 1.0 range l_firstValue = true; l_minValue = vec4(1.0); //We get data between 0.0 - 1.0 range l_avgValue = vec4(0.0); // Keep track of number of samples l_numSamples = uvec4(0); //We get data between 0.0 - 1.0 range l_sumValue = vec4(0.0); #if NUMBER_OF_CONTOURS l_normValues[0] = -1e20; //-infinity l_normValues[NUMBER_OF_CONTOURS+1] = +1e20; //+infinity for (int i = 0; i < NUMBER_OF_CONTOURS; i++) { l_normValues[i+1] = (in_isosurfacesValues[i] - in_scalarsRange[0].x) / (in_scalarsRange[0].y - in_scalarsRange[0].x); } #endif // Special coloring mode which renders the Prop Id in fragments that // have accumulated certain level of opacity. Used during the selection // pass vtkHardwareSelection::ACTOR_PASS. if (g_fragColor.a > 3.0/ 255.0) { gl_FragData[0] = vec4(in_propId, 1.0); } else { gl_FragData[0] = vec4(0.0); } return; // Special coloring mode which renders the voxel index in fragments that // have accumulated certain level of opacity. Used during the selection // pass vtkHardwareSelection::ID_LOW24. if (g_fragColor.a > 3.0/ 255.0) { uvec3 volumeDim = uvec3(in_textureExtentsMax - in_textureExtentsMin); uvec3 voxelCoords = uvec3(volumeDim * g_dataPos); // vtkHardwareSelector assumes index 0 to be empty space, so add uint(1). uint idx = volumeDim.x * volumeDim.y * voxelCoords.z + volumeDim.x * voxelCoords.y + voxelCoords.x + uint(1); gl_FragData[0] = vec4(float(idx % uint(256)) / 255.0, float((idx / uint(256)) % uint(256)) / 255.0, float((idx / uint(65536)) % uint(256)) / 255.0, 1.0); } else { gl_FragData[0] = vec4(0.0); } return; // Special coloring mode which renders the voxel index in fragments that // have accumulated certain level of opacity. Used during the selection // pass vtkHardwareSelection::ID_MID24. if (g_fragColor.a > 3.0/ 255.0) { uvec3 volumeDim = uvec3(in_textureExtentsMax - in_textureExtentsMin); uvec3 voxelCoords = uvec3(volumeDim * g_dataPos); // vtkHardwareSelector assumes index 0 to be empty space, so add uint(1). uint idx = volumeDim.x * volumeDim.y * voxelCoords.z + volumeDim.x * voxelCoords.y + voxelCoords.x + uint(1); idx = ((idx & 0xff000000) >> 24); gl_FragData[0] = vec4(float(idx % uint(256)) / 255.0, float((idx / uint(256)) % uint(256)) / 255.0, float(idx / uint(65536)) / 255.0, 1.0); } else { gl_FragData[0] = vec4(0.0); } return; g_srcColor = vec4(0); for (int i = 0; i < in_noOfComponents; ++i) { vec4 tmp = computeColor(l_maxValue, computeOpacity(l_maxValue, i), i); g_srcColor[0] += tmp[0] * tmp[3] * in_componentWeight[i]; g_srcColor[1] += tmp[1] * tmp[3] * in_componentWeight[i]; g_srcColor[2] += tmp[2] * tmp[3] * in_componentWeight[i]; g_srcColor[3] += tmp[3] * in_componentWeight[i]; } g_fragColor = g_srcColor; g_srcColor = computeColor(l_maxValue, computeOpacity(l_maxValue)); g_fragColor.rgb = g_srcColor.rgb * g_srcColor.a; g_fragColor.a = g_srcColor.a; g_srcColor = vec4(0); for (int i = 0; i < in_noOfComponents; ++i) { vec4 tmp = computeColor(l_minValue, computeOpacity(l_minValue, i), i); g_srcColor[0] += tmp[0] * tmp[3] * in_componentWeight[i]; g_srcColor[1] += tmp[1] * tmp[3] * in_componentWeight[i]; g_srcColor[2] += tmp[2] * tmp[3] * in_componentWeight[i]; g_srcColor[2] += tmp[3] * tmp[3] * in_componentWeight[i]; } g_fragColor = g_srcColor; g_srcColor = computeColor(l_minValue, computeOpacity(l_minValue)); g_fragColor.rgb = g_srcColor.rgb * g_srcColor.a; g_fragColor.a = g_srcColor.a; for (int i = 0; i < in_noOfComponents; ++i) { if (l_numSamples[i] == uint(0)) { continue; } l_avgValue[i] = l_avgValue[i] * in_componentWeight[i] / l_numSamples[i]; if (i > 0) { l_avgValue[0] += l_avgValue[i]; } } l_avgValue[0] = clamp(l_avgValue[0], 0.0, 1.0); g_fragColor = vec4(vec3(l_avgValue[0]), 1.0); if (l_numSamples.x == uint(0)) { discard; } else { l_avgValue.x /= l_numSamples.x; l_avgValue.x = clamp(l_avgValue.x, 0.0, 1.0); g_fragColor = vec4(vec3(l_avgValue.x), 1.0); } l_sumValue.x *= in_componentWeight.x; for (int i = 1; i < in_noOfComponents; ++i) { l_sumValue.x += l_sumValue[i] * in_componentWeight[i]; } l_sumValue.x = clamp(l_sumValue.x, 0.0, 1.0); g_fragColor = vec4(vec3(l_sumValue.x), 1.0); l_sumValue.x = clamp(l_sumValue.x, 0.0, 1.0); g_fragColor = vec4(vec3(l_sumValue.x), 1.0); if(any(greaterThan(max(g_dirStep, vec3(0.0))*(g_dataPos - in_texMax[0]),vec3(0.0))) || any(greaterThan(min(g_dirStep, vec3(0.0))*(g_dataPos - in_texMin[0]),vec3(0.0)))) { break; } // Early ray termination // if the currently composited colour alpha is already fully saturated // we terminated the loop or if we have hit an obstacle in the // direction of they ray (using depth buffer) we terminate as well. if((g_fragColor.a > g_opacityThreshold) || g_currentT >= g_terminatePointMax) { break; } ++g_currentT; uniform float in_croppingPlanes[6]; uniform int in_croppingFlags [32]; float croppingPlanesTexture[6]; // X: axis = 0, Y: axis = 1, Z: axis = 2 // cp Cropping plane bounds (minX, maxX, minY, maxY, minZ, maxZ) int computeRegionCoord(float cp[6], vec3 pos, int axis) { int cpmin = axis * 2; int cpmax = cpmin + 1; if (pos[axis] < cp[cpmin]) { return 1; } else if (pos[axis] >= cp[cpmin] && pos[axis] < cp[cpmax]) { return 2; } else if (pos[axis] >= cp[cpmax]) { return 3; } return 0; } int computeRegion(float cp[6], vec3 pos) { return (computeRegionCoord(cp, pos, 0) + (computeRegionCoord(cp, pos, 1) - 1) * 3 + (computeRegionCoord(cp, pos, 2) - 1) * 9); } // Convert cropping region to texture space mat4 datasetToTextureMat = in_inverseTextureDatasetMatrix[0]; vec4 tempCrop = vec4(in_croppingPlanes[0], 0.0, 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[0] /= tempCrop[3]; } croppingPlanesTexture[0] = tempCrop[0]; tempCrop = vec4(in_croppingPlanes[1], 0.0, 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[0] /= tempCrop[3]; } croppingPlanesTexture[1] = tempCrop[0]; tempCrop = vec4(0.0, in_croppingPlanes[2], 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[1] /= tempCrop[3]; } croppingPlanesTexture[2] = tempCrop[1]; tempCrop = vec4(0.0, in_croppingPlanes[3], 0.0, 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[1] /= tempCrop[3]; } croppingPlanesTexture[3] = tempCrop[1]; tempCrop = vec4(0.0, 0.0, in_croppingPlanes[4], 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[2] /= tempCrop[3]; } croppingPlanesTexture[4] = tempCrop[2]; tempCrop = vec4(0.0, 0.0, in_croppingPlanes[5], 1.0); tempCrop = datasetToTextureMat * tempCrop; if (tempCrop[3] != 0.0) { tempCrop[2] /= tempCrop[3]; } croppingPlanesTexture[5] = tempCrop[2]; // Determine region int regionNo = computeRegion(croppingPlanesTexture, g_dataPos); // Do & operation with cropping flags // Pass the flag that its Ok to sample or not to sample if (in_croppingFlags[regionNo] == 0) { // Skip this voxel g_skip = true; } /// We support only 8 clipping planes for now /// The first value is the size of the data array for clipping /// planes (origin, normal) uniform float in_clippingPlanes[49]; uniform float in_clippedVoxelIntensity; int clip_numPlanes; vec3 clip_rayDirObj; mat4 clip_texToObjMat; mat4 clip_objToTexMat; // Tighten the sample range as needed to account for clip planes. // Arguments are in texture coordinates. // Returns true if the range is at all valid after clipping. If not, // the fragment should be discarded. bool AdjustSampleRangeForClipping(inout vec3 startPosTex, inout vec3 stopPosTex) { vec4 startPosObj = vec4(0.0); { startPosObj = clip_texToObjMat * vec4(startPosTex - g_rayJitter, 1.0); startPosObj = startPosObj / startPosObj.w; startPosObj.w = 1.0; } vec4 stopPosObj = vec4(0.0); { stopPosObj = clip_texToObjMat * vec4(stopPosTex, 1.0); stopPosObj = stopPosObj / stopPosObj.w; stopPosObj.w = 1.0; } for (int i = 0; i < clip_numPlanes; i = i + 6) { vec3 planeOrigin = vec3(in_clippingPlanes[i + 1], in_clippingPlanes[i + 2], in_clippingPlanes[i + 3]); vec3 planeNormal = normalize(vec3(in_clippingPlanes[i + 4], in_clippingPlanes[i + 5], in_clippingPlanes[i + 6])); // Abort if the entire segment is clipped: // (We can do this before adjusting the term point, since it'll // only move further into the clipped area) float startDistance = dot(planeNormal, planeOrigin - startPosObj.xyz); float stopDistance = dot(planeNormal, planeOrigin - stopPosObj.xyz); bool startClipped = startDistance > 0.0; bool stopClipped = stopDistance > 0.0; if (startClipped && stopClipped) { return false; } float rayDotNormal = dot(clip_rayDirObj, planeNormal); bool frontFace = rayDotNormal > 0.0; // Move the start position further from the eye if needed: if (frontFace && // Observing from the clipped side (plane's front face) startDistance > 0.0) // Ray-entry lies on the clipped side. { // Scale the point-plane distance to the ray direction and update the // entry point. float rayScaledDist = startDistance / rayDotNormal; startPosObj = vec4(startPosObj.xyz + rayScaledDist * clip_rayDirObj, 1.0); vec4 newStartPosTex = clip_objToTexMat * vec4(startPosObj.xyz, 1.0); newStartPosTex /= newStartPosTex.w; startPosTex = newStartPosTex.xyz; startPosTex += g_rayJitter; } // Move the end position closer to the eye if needed: if (!frontFace && // Observing from the unclipped side (plane's back face) stopDistance > 0.0) // Ray-entry lies on the unclipped side. { // Scale the point-plane distance to the ray direction and update the // termination point. float rayScaledDist = stopDistance / rayDotNormal; stopPosObj = vec4(stopPosObj.xyz + rayScaledDist * clip_rayDirObj, 1.0); vec4 newStopPosTex = clip_objToTexMat * vec4(stopPosObj.xyz, 1.0); newStopPosTex /= newStopPosTex.w; stopPosTex = newStopPosTex.xyz; } } if (any(greaterThan(startPosTex, in_texMax[0])) || any(lessThan(startPosTex, in_texMin[0]))) { return false; } return true; } vec4 tempClip = in_volumeMatrix[0] * vec4(rayDir, 0.0); if (tempClip.w != 0.0) { tempClip = tempClip/tempClip.w; tempClip.w = 1.0; } clip_rayDirObj = normalize(tempClip.xyz); clip_rayDirObj = normalize(in_projectionDirection); clip_numPlanes = int(in_clippingPlanes[0]); clip_texToObjMat = in_volumeMatrix[0] * in_textureDatasetMatrix[0]; clip_objToTexMat = in_inverseTextureDatasetMatrix[0] * in_inverseVolumeMatrix[0]; // Adjust for clipping. if (!AdjustSampleRangeForClipping(g_rayOrigin, g_rayTermination)) { // entire ray is clipped. discard; } // Update the segment post-clip: g_dataPos = g_rayOrigin; g_terminatePos = g_rayTermination; g_terminatePointMax = length(g_terminatePos.xyz - g_dataPos.xyz) / length(g_dirStep); vec4 scalar = texture3D(in_volume[0], g_dataPos); scalar.r = scalar.r * in_volume_scale[0].r + in_volume_bias[0].r; scalar = vec4(scalar.r); scalar = scalar * in_volume_scale[0] + in_volume_bias[0]; if (in_maskBlendFactor == 0.0) { g_srcColor.a = computeOpacity(scalar); if (g_srcColor.a > 0) { g_srcColor = computeColor(scalar, g_srcColor.a); } } else { float opacity = computeOpacity(scalar); // Get the mask value at this same location vec4 maskValue = texture3D(in_mask, g_dataPos); maskValue.r = maskValue.r * in_mask_scale + in_mask_bias; // Quantize the height of the labelmap texture over number of labels if (in_labelMapNumLabels > 0) { maskValue.r = floor(maskValue.r * in_labelMapNumLabels) / in_labelMapNumLabels; } else { maskValue.r = 0.0; } if(maskValue.r == 0.0) { g_srcColor.a = opacity; if (g_srcColor.a > 0) { g_srcColor = computeColor(scalar, g_srcColor.a); } } else { g_srcColor = texture2D(in_labelMapTransfer, vec2(scalar.r, maskValue.r)); if (g_srcColor.a > 0) { g_srcColor = computeLighting(g_srcColor, 0, maskValue.r); } if (in_maskBlendFactor < 1.0) { vec4 color = opacity > 0 ? computeColor(scalar, opacity) : vec4(0); g_srcColor = (1.0 - in_maskBlendFactor) * color + in_maskBlendFactor * g_srcColor; } } } if (l_opaqueFragPos == vec3(-1.0)) { gl_FragData[1] = vec4(1.0); } else { vec4 depthValue = in_projectionMatrix * in_modelViewMatrix * in_volumeMatrix[0] * in_textureDatasetMatrix[0] * vec4(l_opaqueFragPos, 1.0); depthValue /= depthValue.w; gl_FragData[1] = vec4(vec3(0.5 * (gl_DepthRange.far - gl_DepthRange.near) * depthValue.z + 0.5 * (gl_DepthRange.far + gl_DepthRange.near)), 1.0); } vec4 depthValue = in_projectionMatrix * in_modelViewMatrix * in_volumeMatrix[0] * in_textureDatasetMatrix[0] * vec4(l_isoPos, 1.0); gl_FragData[0] = vec4(l_isoPos, 1.0); gl_FragData[1] = vec4(vec3((depthValue.z/depthValue.w) * 0.5 + 0.5), 1.0);]; uniform mat4 in_modelViewMatrix; uniform mat4 in_projectionMatrix; ]; uniform mat4 in_inverseTextureDatasetMatrix[]; uniform mat4 in_cellToPoint[]; //This variable could be 'invariant varying' but it is declared //as 'varying' to avoid compiler compatibility issues. out mat4 ip_inverseTextureDataAdjusted; // vec2 fragTexCoord2 = (gl_FragCoord.xy - in_windowLowerLeftCorner) * in_inverseWindowSize; vec4 depthValue = texture2D(in_depthPassSampler, fragTexCoord2); vec4 rayOrigin = WindowToNDC(gl_FragCoord.x, gl_FragCoord.y, depthValue.x); // From normalized device coordinates to eye coordinates. // in_projectionMatrix is inversed because of way VT // From eye coordinates to texture coordinates rayOrigin = in_inverseTextureDatasetMatrix[0] * in_inverseVolumeMatrix[0] * in_inverseModelViewMatrix * in_inverseProjectionMatrix * rayOrigin; rayOrigin /= rayOrigin.w; g_rayOrigin = rayOrigin.xyz; // Eye position in dataset space g_eyePosObj = in_inverseVolumeMatrix[0] * vec4(in_cameraPos, 1.0); // Get the 3D texture coordinates for lookup into the in_volume dataset g_rayOrigin = ip_textureCoords.xyz; // Getting the ray marching direction (in dataset space) vec3 rayDir = computeRayDirection(); // 2D Texture fragment coordinates [0,1] from fragment coordinates. // The frame buffer texture has the size of the plain buffer but // we use a fraction of it. The texture coordinate is less than 1 if // the reduction factor is less than 1. // Device coordinates are between -1 and 1. We need texture // coordinates between 0 and 1. The in_depthSampler // buffer has the original size buffer. vec2 fragTexCoord = (gl_FragCoord.xy - in_windowLowerLeftCorner) * in_inverseWindowSize; // Multiply the raymarching direction with the step size to get the // sub-step size we need to take at each raymarching step g_dirStep = (ip_inverseTextureDataAdjusted * vec4(rayDir, 0.0)).xyz * in_sampleDistance; g_lengthStep = length(g_dirStep); float jitterValue = 0.0; // Flag to determine if voxel should be considered for the rendering g_skip = false; jitterValue = texture2D(in_noiseSampler, gl_FragCoord.xy / vec2(textureSize(in_noiseSampler, 0))).x; g_rayJitter = g_dirStep * jitterValue; g_rayOrigin += g_rayJitter; g_rayJitter = g_dirStep; // Light position in dataset space] * vec4(in_cameraPos, 1.0)); g_ldir[].xyz - ip_vertexPos); g_vdir[].xyz - ip_vertexPos); g_h[g_gradients_0[0] = computeGradient(g_dataPos, 0, in_volume[0], 0); for (int comp = 0; comp < in_noOfComponents; comp++) { g_gradients_0[comp] = computeGradient(g_dataPos, comp, in_volume[0], 0); } float computeOpacity(vec4 scalar, const in sampler2D opacityTF) { return texture2D(opacityTF, vec2(scalar.w, 0)).r; } float computeGradientOpacity(vec4 grad, const in sampler2D gradientTF) { return texture2D(gradientTF, vec2(grad.w, 0.0)).r; } if (!g_skip) { vec3 texPos; texPos = (in_cellToPoint[] * in_inverseTextureDatasetMatrix[] * in_volumeMatrix[0] * in_textureDatasetMatrix[0] * vec4(g_dataPos.xyz, 1.0)).xyz; if ((all(lessThanEqual(texPos, vec3(1.0))) && all(greaterThanEqual(texPos, vec3(0.0))))) { vec4 scalar = texture3D(in_volume[], texPos); scalar = scalar * in_volume_scale[]; scalar = vec4(scalar.r); g_srcColor = vec4(0.0); g_srcColor.a = computeOpacity(scalar,); if (g_srcColor.a > 0.0) { g_srcColor = computeColor(texPos, scalar, g_srcColor.a, [0] = computeGradient(texPos, 0, [0].w >= 0.0) { g_srcColor.a *= computeGradientOpacity(); g_srcColor = texture2D([0].w)); if (g_srcColor.a > 0.0) { g_srcColor.rgb *= g_srcColor.a; g_fragColor = (1.0f - g_fragColor.a) * g_srcColor + g_fragColor; } } vec4 computeColor(vec4 scalar, const in sampler2D colorTF) { return clamp(computeLighting(vec4(texture2D(colorTF, vec2(scalar.w, 0.0)).xyz, opacity), 0), 0.0, 1.0); } vec4 computeColor(vec3 texPos, vec4 scalar, float opacity, const in sampler2D colorTF, const in sampler2D gradientTF, const in sampler3D volume, const in sampler2D opacityTF, const int volIdx) { return clamp(computeLighting(texPos, vec4(texture2D(colorTF, vec2(scalar.w, 0.0)).xyz, opacity), gradientTF, volume, opacityTF,volIdx, 0), 0.0, 1.0); } vec4 computeColor(vec3 texPos, vec4 scalar, float opacity, const in sampler2D colorTF, const in sampler3D volume, const in sampler2D opacityTF, const int volIdx) { return clamp(computeLighting(texPos, vec4(texture2D(colorTF, vec2(scalar.w, 0.0)).xyz, opacity), volume, opacityTF,volIdx, 0), 0.0, 1.0); } vec4 computeColor(vec4 scalar, float opacity) { vec4 yscalar = texture3D(in_transfer2DYAxis, g_dataPos); yscalar.r = yscalar.r * in_transfer2DYAxis_scale.r + in_transfer2DYAxis_bias.r; yscalar = vec4(yscalar.r); vec4 color = texture2D(, vec2(scalar.w, yscalar.w)); return computeLighting(color, 0, 0); } if (!g_skip) { vec4 scalar; // Compute IJK vertex position for current sample in the rectilinear grid vec4 dataPosWorld = in_volumeMatrix[0] * in_textureDatasetMatrix[0] * vec4(g_dataPos, 1.0); dataPosWorld = dataPosWorld / dataPosWorld.w; dataPosWorld.w = 1.0; ivec3 ijk = ivec3(0); vec3 ijkTexCoord = vec3(0.0); vec3 pCoords = vec3(0.0); vec3 xPrev, xNext, tmp; int sz = textureSize(in_coordTexs, 0); vec4 dataPosWorldScaled = dataPosWorld * vec4(in_coordsScale, 1.0) + vec4(in_coordsBias, 1.0); for (int j = 0; j < 3; ++j) { xPrev = texture1D(in_coordTexs, 0.0).xyz; xNext = texture1D(in_coordTexs, (in_coordTexSizes[j] - 1) / sz).xyz; if (xNext[j] < xPrev[j]) { tmp = xNext; xNext = xPrev; xPrev = tmp; } for (int i = 0; i < int(in_coordTexSizes[j]); i++) { xNext = texture1D(in_coordTexs, (i + 0.5) / sz).xyz; if (dataPosWorldScaled[j] >= xPrev[j] && dataPosWorldScaled[j] < xNext[j]) { ijk[j] = i - 1; pCoords[j] = (dataPosWorldScaled[j] - xPrev[j]) / (xNext[j] - xPrev[j]); break; } else if (dataPosWorldScaled[j] == xNext[j]) { ijk[j] = i - 1; pCoords[j] = 1.0; break; } xPrev = xNext; } ijkTexCoord[j] = (ijk[j] + pCoords[j]) / in_coordTexSizes[j]; } scalar = texture3D(in_volume[0], sign(in_cellSpacing[0]) * ijkTexCoord); scalar = texture3D(in_volume[0], g_dataPos); scalar.r = scalar.r * in_volume_scale[0].r + in_volume_bias[0].r; scalar = vec4(scalar.r); scalar = scalar * in_volume_scale[0] + in_volume_bias[0]; if (l_maxValue.w < scalar.w || l_firstValue) { l_maxValue = scalar; } if (l_firstValue) { l_firstValue = false; } for (int i = 0; i < in_noOfComponents; ++i) { if (l_maxValue[i] < scalar[i] || l_firstValue) { l_maxValue[i] = scalar[i]; } } if (l_firstValue) { l_firstValue = false; } if (l_maxValue.w < scalar.x || l_firstValue) { l_maxValue.w = scalar.x; } if (l_firstValue) { l_firstValue = false; } if (l_minValue.w > scalar.w || l_firstValue) { l_minValue = scalar; } if (l_firstValue) { l_firstValue = false; } for (int i = 0; i < in_noOfComponents; ++i) { if (l_minValue[i] < scalar[i] || l_firstValue) { l_minValue[i] = scalar[i]; } } if (l_firstValue) { l_firstValue = false; } if (l_minValue.w > scalar.x || l_firstValue) { l_minValue.w = scalar.x; } if (l_firstValue) { l_firstValue = false; } for (int i = 0; i < in_noOfComponents; ++i) { // Get the intensity in volume scalar range float intensity = in_scalarsRange[i][0] + (in_scalarsRange[i][1] - in_scalarsRange[i][0]) * scalar[i]; if (in_averageIPRange.x <= intensity && intensity <= in_averageIPRange.y) { l_avgValue[i] += computeOpacity(scalar, i) * scalar[i]; ++l_numSamples[i]; } } // Get the intensity in volume scalar range float intensity = in_scalarsRange[0][0] + (in_scalarsRange[0][1] - in_scalarsRange[0][0]) * scalar.x; if (in_averageIPRange.x <= intensity && intensity <= in_averageIPRange.y) { l_avgValue.x += computeOpacity(scalar) * scalar.x; ++l_numSamples.x; } for (int i = 0; i < in_noOfComponents; ++i) { float opacity = computeOpacity(scalar, i); l_sumValue[i] = l_sumValue[i] + opacity * scalar[i]; } float opacity = computeOpacity(scalar); l_sumValue.x = l_sumValue.x + opacity * scalar.x; #if NUMBER_OF_CONTOURS int maxComp = 0; for (int i = 1; i < in_noOfComponents; ++i) { if (in_componentWeight[i] > in_componentWeight[maxComp]) maxComp = i; } if (g_currentT == 0) { l_initialIndex = findIsoSurfaceIndex(scalar[maxComp], l_normValues); } else { float s; bool shade = false; l_initialIndex = clamp(l_initialIndex, 0, NUMBER_OF_CONTOURS); if (scalar[maxComp] < l_normValues[l_initialIndex]) { s = l_normValues[l_initialIndex]; l_initialIndex--; shade = true; } if (scalar[maxComp] > l_normValues[l_initialIndex+1]) { s = l_normValues[l_initialIndex+1]; l_initialIndex++; shade = true; } if (shade == true) { vec4 vs = vec4(s); g_srcColor.a = computeOpacity(vs ); g_srcColor = computeColor(vs, g_srcColor.a ); g_srcColor.rgb *= g_srcColor.a; g_fragColor = (1.0f - g_fragColor.a) * g_srcColor + g_fragColor; } } #endif // test if the intersection is inside the volume bounds if (any(greaterThan(g_dataPos, vec3(1.0))) || any(lessThan(g_dataPos, vec3(0.0)))) { discard; } float opacity = computeOpacity(scalar); g_fragColor = computeColor(scalar, opacity); g_fragColor.rgb *= opacity; g_exit = true; vec4 color[4]; vec4 tmp = vec4(0.0); float totalAlpha = 0.0; for (int i = 0; i < in_noOfComponents; ++i) { // Data fetching from the red channel of volume texture float opacity = computeOpacity(scalar, i); if (opacity > 0.0) { g_srcColor.a = opacity; } } // Data fetching from the red channel of volume texture color[i][3] = computeOpacity(scalar, i); color[i] = computeColor(scalar, color[i][3], i); totalAlpha += color[i][3] * in_componentWeight[i]; } if (totalAlpha > 0.0) { for (int i = 0; i < in_noOfComponents; ++i) { // Only let visible components contribute to the final color if (in_componentWeight[i] <= 0) continue; tmp.x += color[i].x * color[i].w * in_componentWeight[i]; tmp.y += color[i].y * color[i].w * in_componentWeight[i]; tmp.z += color[i].z * color[i].w * in_componentWeight[i]; tmp.w += ((color[i].w * color[i].w)/totalAlpha); } } g_fragColor = (1.0f - g_fragColor.a) * tmp + g_fragColor; g_srcColor = vec4(0.0); g_srcColor.a = computeOpacity(scalar); g_srcColor = vec4(0.0); g_srcColor.a = computeOpacity(scalar); if (g_srcColor.a > 0.0) { g_srcColor = computeColor(scalar, g_srcColor.a); // Opacity calculation using compositing: // Here we use front to back compositing scheme whereby // the current sample value is multiplied to the // currently accumulated alpha and then this product // is subtracted from the sample value to get the // alpha from the previous steps. Next, this alpha is // multiplied with the current sample colour // and accumulated to the composited colour. The alpha // value from the previous steps is then accumulated // to the composited colour alpha. g_srcColor.rgb *= g_srcColor.a; g_fragColor = (1.0f - g_fragColor.a) * g_srcColor + g_fragColor; vol_shadow = volumeShadow(g_dataPos, tex_light.xyz, 0.0, component, in_volume[0], 0, label); float vol_shadow = 1.0; vec4 tex_light = vec4(0.0); 2.0 * in_volumetricScatteringBlending * exp( - 2.0 * in_volumetricScatteringBlending * shading_gradient.w * color.a)2.0 * (1.0 - in_volumetricScatteringBlending) * exp( - 2.0 * in_volumetricScatteringBlending * shading_gradient.w * color.a) + 2.0 * in_volumetricScatteringBlending - 1.0 vec4 shading_gradient = computeDensityGradient(g_dataPos, component, in_volume[0], 0, label); vec4 shading_gradient = computeGradient(g_dataPos, component, in_volume[0], 0); vec4 gradient = computeGradient(g_dataPos, component, in_volume[0], 0); vec3 diffuse = vec3(0.0); vec3 specular = vec3(0.0); vec3 normal = shading_gradient.xyz; float normalLength = length(normal); if (normalLength > 0.0) { normal = normalize(normal); } else { normal = vec3(0.0, 0.0, 0.0); } // XXX: normal is oriented inside the volume, so we take -g_ldir/-g_vdir float nDotL = dot(normal, -g_ldir[0]); vec3 r = normalize(2.0 * nDotL * normal + g_ldir[0]); float vDotR = dot(r, -g_vdir[0]); if (nDotL < 0.0 && in_twoSidedLighting) { nDotL = -nDotL; } if (nDotL > 0.0) { diffuse = nDotL * in_diffuse[component] * in_lightDiffuseColor[0] * color.rgb; vDotR = max(vDotR, 0.0); specular = pow(vDotR, in_shininess[component]) * in_specular[component] * in_lightSpecularColor[0]; } // For the headlight, ignore the light's ambient color // for now as it is causing the old mapper tests to fail finalColor.xyz = in_ambient[component] * color.rgb + diffuse + specular; g_fragWorldPos = g_texToView * vec4(g_dataPos, 1.0); if (g_fragWorldPos.w != 0.0) { g_fragWorldPos /= g_fragWorldPos.w; } vec3 viewDirection = normalize(-g_fragWorldPos.xyz); vec3 ambient = vec3(0,0,0); vec3 diffuse = vec3(0,0,0); vec3 specular = vec3(0,0,0); vec3 vertLightDirection; vec3 normal = normalize((in_textureToEye[0] * vec4(shading_gradient.xyz, 0.0)).xyz); vec3 lightDir; for (int posNum = 0; posNum < NUMBER_POS_LIGHTS; posNum++) { float attenuation = 1.0; lightDir = in_lightDirection[posNum]; vertLightDirection = (g_fragWorldPos.xyz - in_lightPosition[posNum]); float distance = length(vertLightDirection); vertLightDirection = normalize(vertLightDirection); attenuation = 1.0 / (in_lightAttenuation[posNum].x + in_lightAttenuation[posNum].y * distance + in_lightAttenuation[posNum].z * distance * distance); // per OpenGL standard cone angle is 90 or less for a spot light if (in_lightConeAngle[posNum] <= 90.0) { float coneDot = dot(vertLightDirection, lightDir); // if inside the cone if (coneDot >= cos(radians(in_lightConeAngle[posNum]))) { attenuation = attenuation * pow(coneDot, in_lightExponent[posNum]); } else { attenuation = 0.0; } } float nDotL = dot(normal, vertLightDirection); if (nDotL < 0.0 && in_twoSidedLighting) { nDotL = -nDotL; } if (nDotL > 0.0) { float df = max(0.0, attenuation * nDotL); diffuse += (df * in_lightDiffuseColor[posNum]); vec3 r = normalize(2.0 * nDotL * normal - vertLightDirection); float rDotV = dot(-viewDirection, r); if (rDotV < 0.0 && in_twoSidedLighting) { rDotV = -rDotV; } if (rDotV > 0.0) { float sf = attenuation * pow(rDotV, in_shininess[component]); specular += (sf * in_lightSpecularColor[posNum]); } } ambient += in_lightAmbientColor[posNum]; } for (int dirNum = NUMBER_POS_LIGHTS; dirNum < TOTAL_NUMBER_LIGHTS; dirNum++) { vertLightDirection = in_lightDirection[dirNum]; float nDotL = dot(normal, vertLightDirection); if (nDotL < 0.0 && in_twoSidedLighting) { nDotL = -nDotL; } if (nDotL > 0.0) { float df = max(0.0, nDotL); diffuse += (df * in_lightDiffuseColor[dirNum]); vec3 r = normalize(2.0 * nDotL * normal - vertLightDirection); float rDotV = dot(-viewDirection, r); if (rDotV > 0.0) { float sf = pow(rDotV, in_shininess[component]); specular += (sf * in_lightSpecularColor[dirNum]); } } ambient += in_lightAmbientColor[dirNum]; } finalColor.xyz = in_ambient[component] * ambient + in_diffuse[component] * diffuse * color.rgb + in_specular[component] * specular; vec3 view_tdir = normalize((g_eyeToTexture * vec4(viewDirection, 0.0)).xyz); vec3 secondary_contrib = vec3(0.0); vec3 tex_light = vec3(0.0); shading_gradient.w = length(shading_gradient.xyz); vec3 diffuse_light = vec3(0.0); float attenuation = 0.0; float vol_shadow = 0.0; float phase = 1.0; tex_light = (in_inverseTextureDatasetMatrix[0] * in_inverseVolumeMatrix[0] * vec4(in_cameraPos, 1.0)).xyz; phase = phase_function(-1); // always angle of pi vol_shadow = volumeShadow(g_dataPos, tex_light, 1.0, component, in_volume[0], 0, label); secondary_contrib += vol_shadow * phase * color.rgb * in_diffuse[component] * in_lightDiffuseColor[0]; secondary_contrib += in_ambient[component] * in_lightAmbientColor[0]; float dist_light = 0.0; for(int posNum = 0; posNum < NUMBER_POS_LIGHTS; posNum++) { tex_light = g_lightPositionTex[posNum]; vec3 light_vert = g_fragWorldPos.xyz - in_lightPosition[posNum]; dist_light = length(light_vert); float light_angle = dot(normalize(light_vert), normalize(in_lightDirection[posNum])); phase = phase_function(dot(normalize(g_dataPos - tex_light), view_tdir)); attenuation = 1.0 / (in_lightAttenuation[posNum].x + in_lightAttenuation[posNum].y * dist_light + in_lightAttenuation[posNum].z * dist_light * dist_light); attenuation *= max(0.0, sign(light_angle - cos(radians(in_lightConeAngle[posNum])))) * pow(light_angle, in_lightExponent[posNum]); vol_shadow = volumeShadow(g_dataPos, tex_light, 1.0, component, in_volume[0], 0, label); secondary_contrib += vol_shadow * phase * attenuation * color.rgb * in_diffuse[component] * in_lightDiffuseColor[posNum]; secondary_contrib += in_ambient[component] * in_lightAmbientColor[posNum]; } for(int dirNum = NUMBER_POS_LIGHTS; dirNum < TOTAL_NUMBER_LIGHTS; dirNum++) { tex_light = g_lightDirectionTex[dirNum]; phase = phase_function(dot(normalize(-tex_light), view_tdir)); vol_shadow = volumeShadow(g_dataPos, tex_light, 0.0, component, in_volume[0], 0, label); secondary_contrib += vol_shadow * phase * color.rgb * in_diffuse[component] * in_lightDiffuseColor[dirNum]; secondary_contrib += in_ambient[component] * in_lightAmbientColor[dirNum]; } finalColor.xyz = (1.0 - vol_coef) * finalColor.xyz + vol_coef * secondary_contrib; if (gradient.w >= 0.0 && label == 0.0) { color.a *= computeGradientOpacity(gradient); } if (gradient.w >= 0.0 && label > 0.0) { color.a *= computeGradientOpacityForLabel(gradient, label); } if (gradient.w >= 0.0) { for (int i = 0; i < in_noOfComponents; ++i) { color.a = color.a * computeGradientOpacity(gradient, i) * in_componentWeight[i]; } }uniform sampler2D in_labelMapGradientOpacity; float computeGradientOpacity(vec4 grad) { return texture2D(, vec2(grad.w, 0.0)).r; } float computeGradientOpacity(vec4 grad, int component) { if (component == { return texture2D(, vec2(grad.w, 0.0)).r; } float computeGradientOpacityForLabel(vec4 grad, float label) { return texture2D(in_labelMapGradientOpacity, vec2(grad.w, label)).r; }vec4 computeRGBAWithGrad(vec4 scalar, vec4 grad, int component) vec4 computeRGBAWithGrad(vec4 scalar, vec4 grad) vec4 yscalar = texture3D(in_transfer2DYAxis, g_dataPos); for (int i = 0; i < 4; ++i) { yscalar[i] = yscalar[i] * in_transfer2DYAxis_scale[i] + in_transfer2DYAxis_bias[i]; } , vec2(scalar.a, grad.w)); vec4 yscalar = texture3D(in_transfer2DYAxis, g_dataPos); yscalar.r = yscalar.r * in_transfer2DYAxis_scale.r + in_transfer2DYAxis_bias.r; yscalar = vec4(yscalar.r); return texture2D(, vec2(scalar.a, yscalar.w)); vec4 computeColor(vec4 scalar, float opacity) { return clamp(computeLighting(vec4(texture2D(, vec2(scalar.w, 0.0)).xyz, opacity), 0, 0.0), 0.0, 1.0); } vec4 computeColor(vec4 scalar, float opacity, int component) { { return clamp(computeLighting(vec4(texture2D( , vec2( scalar[],0.0)).xyz, opacity),, 0.0), 0.0, 1.0); }, vec2(scalar.x, 0.0)).xyz, opacity), 0, 0.0), 0.0, 1.0); } vec4 computeColor(vec4 scalar, float opacity) { return clamp(computeLighting(vec4(scalar.xyz, opacity), 0, 0.0), 0.0, 1.0); } float computeOpacity(vec4 scalar, int component) { if (component == { return texture2D( float computeOpacity(vec4 scalar) { return texture2D(, vec2(scalar.y, 0)).r; }, vec2(scalar.w, 0)).r; }float computeOpacity(vec4 scalar, int component) { float computeOpacity(vec4 scalar) { return texture2D(, vec2(scalar.y, g_gradients_0[0].w)).a; } , vec2(scalar.y, yscalar.y)).a; } , vec2(scalar.a, g_gradients_0[0].w)).a; } float computeOpacity(vec4 scalar) { vec4 yscalar = texture3D(in_transfer2DYAxis, g_dataPos); yscalar.r = yscalar.r * in_transfer2DYAxis_scale.r + in_transfer2DYAxis_bias.r; yscalar = vec4(yscalar.r); return texture2D(, vec2(scalar.a, yscalar.w)).a; } vec4 computeColor(vec4 scalar, float opacity) { vec4 color = texture2D(, vec2(scalar.w, g_gradients_0[0].w)); return computeLighting(color, 0, 0); } vec4 computeColor(vec4 scalar, float opacity, int component) { ) { vec4 color = texture2D(].w)); return computeLighting(color, , vec2(scalar.x, g_gradients_0[0].w)); return computeLighting(color, 0, 0.0); } vec4 computeColor(vec4 scalar, float opacity) { return computeLighting(vec4(scalar.xyz, opacity), 0, 0.0); } in_inverseTextureDatasetMatrixin_volumetricScatteringBlending]; uniform vec4 in_volume_bias[uniform sampler1D in_coordTexs; uniform vec3 in_coordTexSizes; uniform sampler3D in_blanking; uniform int in_noOfComponents; uniform sampler2D in_depthSampler; // Camera position uniform vec3 in_cameraPos; uniform sampler2D in_noiseSampler; ]; uniform mat4 in_inverseVolumeMatrix[]; uniform mat4 in_textureDatasetMatrix[]; uniform mat4 in_textureToEye[// view and model matrices uniform mat4 in_projectionMatrix; uniform mat4 in_inverseProjectionMatrix; uniform mat4 in_modelViewMatrix; uniform mat4 in_inverseModelViewMatrix; in mat4 ip_inverseTextureDataAdjusted; // Ray step size uniform vec3 in_cellStep[mat4 g_eyeToTexture = in_inverseTextureDatasetMatrix[0] * in_inverseVolumeMatrix[0] * in_inverseModelViewMatrix; mat4 g_texToView = in_modelViewMatrix * in_volumeMatrix[0] *in_textureDatasetMatrix[0]; ]; uniform vec3 in_cellSpacing[]; // Sample distance uniform float in_sampleDistance; // Scales uniform vec2 in_windowLowerLeftCorner; uniform vec2 in_inverseOriginalWindowSize; uniform vec2 in_inverseWindowSize; uniform vec3 in_textureExtentsMax; uniform vec3 in_textureExtentsMin; // Material and lighting uniform vec3 in_diffuse[4]; uniform vec3 in_ambient[4]; uniform vec3 in_specular[4]; uniform float in_shininess[4]; // Others vec3 g_rayJitter = vec3(0.0); uniform vec2 in_averageIPRange; uniform bool in_twoSidedLighting; uniform float in_giReach; uniform float in_anisotropy; uniform float in_volumetricScatteringBlending; vec4 g_fragWorldPos; uniform vec3 in_lightAmbientColor[TOTAL_NUMBER_LIGHTS]; uniform vec3 in_lightDiffuseColor[TOTAL_NUMBER_LIGHTS]; uniform vec3 in_lightSpecularColor[TOTAL_NUMBER_LIGHTS]; uniform vec3 in_lightDirection[TOTAL_NUMBER_LIGHTS]; uniform vec3 in_lightPosition[NUMBER_POS_LIGHTS]; uniform vec3 in_lightAttenuation[NUMBER_POS_LIGHTS]; uniform float in_lightConeAngle[NUMBER_POS_LIGHTS]; uniform float in_lightExponent[NUMBER_POS_LIGHTS]; vec3 g_lightDirectionTex[TOTAL_NUMBER_LIGHTS];vec3 g_lightPositionTex[NUMBER_POS_LIGHTS];uniform vec3 in_lightAmbientColor[1]; uniform vec3 in_lightDiffuseColor[1]; uniform vec3 in_lightSpecularColor[1]; vec4 g_lightPosObj[uniform vec4 in_componentWeight; uniform sampler2D in_depthPassSampler; #if NUMBER_OF_CONTOURS uniform float in_isosurfacesValues[NUMBER_OF_CONTOURS]; int findIsoSurfaceIndex(float scalar, float array[NUMBER_OF_CONTOURS+2]) { int index = NUMBER_OF_CONTOURS >> 1; while (scalar > array[index]) ++index; while (scalar < array[index]) --index; return index; } #endif uniform vec3 in_slicePlaneOrigin; uniform vec3 in_slicePlaneNormal; vec3 g_intersection; float intersectRayPlane(vec3 rayOrigin, vec3 rayDir) { vec4 planeNormal = in_inverseVolumeMatrix[0] * vec4(in_slicePlaneNormal, 0.0); float denom = dot(planeNormal.xyz, rayDir); if (abs(denom) > 1e-6) { vec4 planeOrigin = in_inverseVolumeMatrix[0] * vec4(in_slicePlaneOrigin, 1.0); return dot(planeOrigin.xyz - rayOrigin, planeNormal.xyz) / denom; } return -1.0; } uniform bool in_clampDepthToBackface; vec3 l_opaqueFragPos; bool l_updateDepth; l_opaqueFragPos = vec3(-1.0); if(in_clampDepthToBackface) { l_opaqueFragPos = g_dataPos; } l_updateDepth = true; if(!g_skip && g_srcColor.a > 0.0 && l_updateDepth) { l_opaqueFragPos = g_dataPos; l_updateDepth = false; } uniform vec3 in_propId; vec4 maskValue = texture3D(in_mask, g_dataPos); if(maskValue.r <= 0.0) { g_skip = true; } uniform float in_maskBlendFactor; uniform sampler2D in_labelMapTransfer; uniform float in_mask_scale; uniform float in_mask_bias; uniform int in_labelMapNumLabels; opacity = computeOpacity(vec4(scalar), opacityTF); opacity *= computeGradientOpacity(gradient, gradTF); ComputeOpacityEvaluationCall was called with requestColor, but MultiVolume does not support this option yet./mnt/storage/workspace/med-ubuntu-weekly/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkVolumeShaderComposer.h opacity = computeOpacity(vec4(scalar) opacity *= computeGradientOpacityForLabel(gradient, label); opacity *= computeGradientOpacity(gradient, c, volume, index); if(gradient.w >= 0.0) { vec4 lutRes = computeRGBAWithGrad(vec4(scalar), gradientvec4 computeDensityGradient(in vec3 texPos, in int c, in sampler3D volume, const in sampler2D opacityTF, const in sampler2D gradTF, in int index, float label) vec4 computeDensityGradient(in vec3 texPos, in int c, in sampler3D volume, const in sampler2D opacityTF, in int index, float label) vec4 computeDensityGradient(in vec3 texPos, in int c, in sampler3D volume, in int index, float label) { // Approximate Nabla(F) derivatives with central differences. vec3 g1; // F_front vec3 g2; // F_back vec3 xvec = vec3(in_cellStep[index].x, 0.0, 0.0); vec3 yvec = vec3(0.0, in_cellStep[index].y, 0.0); vec3 zvec = vec3(0.0, 0.0, in_cellStep[index].z); vec3 texPosPvec[3]; texPosPvec[0] = texPos + xvec; texPosPvec[1] = texPos + yvec; texPosPvec[2] = texPos + zvec; vec3 texPosNvec[3]; texPosNvec[0] = texPos - xvec; texPosNvec[1] = texPos - yvec; texPosNvec[2] = texPos - zvec; float scalar; float opacity; vec4 gradient; float volumeShadow(vec3 sample_position, vec3 light_pos_dir, float is_Pos, in int c, in sampler3D volume, float shadow = 1.0; vec3 direction = vec3(0.0); vec3 norm_dir = vec3(0.0); float maxdist = 0.0; float scalar; vec4 gradient; float opacity = 0.0; vec3 color; Ray ray; Hit hit; float sampled_dist = 0.0; vec3 sampled_point = vec3(0.0); // direction is light_pos_dir when light is directional // and light_pos_dir - sample_position when positional direction = light_pos_dir - is_Pos * sample_position; norm_dir = normalize(direction); // introduce little offset to avoid sampling shadows at the exact // sample position sample_position += g_lengthStep * norm_dir; direction = light_pos_dir - is_Pos * sample_position; ray.origin = sample_position; ray.dir = norm_dir; safe_0_vector(ray); ray.invDir = 1.0/ray.dir; if(!BBoxIntersect(vec3(0.0), vec3(1.0), ray, hit)) { // it can happen around the bounding box return 1.0; } if(hit.tmax < g_lengthStep) { // if we're too close to the bounding box return 1.0; } // in case of directional light, we want direction not to be normalized but to go // all the way to the bbox direction *= pow(hit.tmax / length(direction), 1.0 - is_Pos); maxdist = min(hit.tmax, length(direction)); maxdist = min(in_giReach, maxdist); if(maxdist < EPSILON) return 1.0; scalar = texture3D(volume, sampled_point)[c]; scalar = scalar * in_volume_scale[index][c] + in_volume_bias[index][c]; float current_dist = 0.0; float current_step = g_lengthStep; float clamped_step = 0.0; while(current_dist < maxdist) { clamped_step = min(maxdist - current_dist, current_step); sampled_dist = current_dist + clamped_step * g_jitterValue; sampled_point = sample_position + sampled_dist * norm_dir; shadow *= 1.0 - opacity; current_dist += current_step; } return shadow; } //VTK::ComputeDensityGradient::Dec//VTK::ComputeVolumetricShadow::Dec//VTK::ComputeGradientOpacity1D::Dec//VTK::ComputeRGBA2DWithGradient::Dec//VTK::PreComputeGradients::Impl vec3 computeRayDirection() { return normalize(ip_vertexPos.xyz - g_eyePosObj.xyz); } uniform vec3 in_projectionDirection; vec3 computeRayDirection() { return normalize((in_inverseVolumeMatrix[0] * vec4(in_projectionDirection, 0.0)).xyz); }//VTK::ComputeRayDirection::Dec // Flag to indicate if the raymarch loop should terminate bool stop = false; g_terminatePointMax = 0.0; vec4 l_depthValue = texture2D(in_depthSampler, fragTexCoord); // Depth test if(gl_FragCoord.z >= l_depthValue.x) { discard; } // color buffer or max scalar buffer have a reduced size. fragTexCoord = (gl_FragCoord.xy - in_windowLowerLeftCorner) * in_inverseOriginalWindowSize; // Intersection with plane float t = intersectRayPlane(ip_vertexPos, rayDir); vec4 intersection = vec4(ip_vertexPos + t * rayDir, 1.0); g_intersection = (in_inverseTextureDatasetMatrix[0] * intersection).xyz; vec4 intersDC = in_projectionMatrix * in_modelViewMatrix * in_volumeMatrix[0] * intersection; intersDC.xyz /= intersDC.w; vec4 intersWin = NDCToWindow(intersDC.x, intersDC.y, intersDC.z); if(intersWin.z >= l_depthValue.x) { discard; } Implicit function type is not supported by this mapper. // Compute max number of iterations it will take before we hit // the termination point // Abscissa of the point on the depth buffer along the ray. // point in texture coordinates vec4 rayTermination = WindowToNDC(gl_FragCoord.x, gl_FragCoord.y, l_depthValue.x); // From normalized device coordinates to eye coordinates. // in_projectionMatrix is inversed because of way VT // From eye coordinates to texture coordinates rayTermination = ip_inverseTextureDataAdjusted * in_inverseVolumeMatrix[0] * in_inverseModelViewMatrix * in_inverseProjectionMatrix * rayTermination; g_rayTermination = rayTermination.xyz / rayTermination.w; // Setup the current segment: g_dataPos = g_rayOrigin; g_terminatePos = g_rayTermination; g_terminatePointMax = length(g_terminatePos.xyz - g_dataPos.xyz) / length(g_dirStep); g_currentT = 0.0;Failed to attach ImageSampleFBO!/mnt/storage/workspace/med-ubuntu-weekly/ExtProjs/VTK/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxxFailed to initialize ImageSampleProgram!3 dependent components (e.g. RGB) are not supported.Only 2 (LA) and 4 (RGBA) supported.Current implementation of vtkOpenGLGPUVolumeRayCastMapper does not support MultiVolume where some volumes have a gradient opacity function and some others don't. Rendering of the MultiVolume is disabled.vtkOpenGLRenderPass::PreReplaceShaderValues failed for vtkOpenGLRenderPass::PostReplaceShaderValues failed for RenderPass::SetShaderParameters failed for renderpass: HH HH9u&HtLJH@1HH HH9u&HtLJHDHH H H9u&tLJDHH H H9u&tLJ@1HH HPH9u&tLJDHH HPH9u&tLJ@1HH HH9u&tLJDHH HH9u&tLJ@1HH HH9u&tLJDHH HH9u&tLJ@1HH HH9u&0tLJ0DHH HH9u&0tLJ0@1HH H0H9u&tLJDHH H`H9u&tLJ@1HH H0H9u&tLJ@1HH H`H9u&tLJDHH HH9u4u Ƈ4HH HH9u4t Ƈ41HH HH9uPtGPHH HH9uWPtGPf1HfH Vf(H0ff(H9uAf.zuf.zuf.zu@HfH Vf(Hff(H9u9f.Gpzuf.gxzuf.zufGpfDHwHUSHHHH{HH CHH9HPHH9HC H{(tHHDHkHHHtiHf.HPHHH9X rHHt"HHPHHH9X sHt HH9tH9_ wHHHkHEHHH9u=HCCH[]f.HH{HsfDHfHH{HsUH=Hu]ÐHH=tHH=tHH=tHH=tHH=tHH=tHH=oH]f>HH fvfF f(Hff(f(ff(f(f(ff(H9upf.PzFuDf.Xz:u8f.`z.u,f.hz"u f.pzuf.xz uP`pDf(HLHHLLHHHHHHHHHLHHHHLLHHHHHH$H$H$H|$`LLLLIHLH} H9<$uMHHI|$ I9tHLHHHHLHHH|$ H;<$tLI<$L9tHH|$ HD$0H9uH|$0L9tI<$H;|$tHI<$H9tLI<$H9tHH|$0HD$@H9tI<$H9|$tHH|$0L9uH% H|$PH9tH|$H9tLH|$ HD$0H9tH<$HD$H9tHH|$ H9uH|$@H;<$tH|$ L9tI?H;|$tHLHHLHLHLH|$t H|$HP HH<$HD$H9tHH1H% H1H% LHHLH$8H$H$H$LH|$0H|$(H|$ H|$HH|$HLHLHLLt$(HxHtH`HtHHHtH0HtHHtHHtHHtHHtHHtHHtHHtHpHtHXHtH@HtHDž@HP H8HtHDž8HP H0HtHDž0HP HHHHD$(H9\$(tH;HSH9tH HHtHHHD$(H9\$(tHHHHtLLH(HtHDž(HP LH HtHDž HP HHtHDžHP HHtHDžHP H|$ H<$H|$9LHCHH$LHLHHHI$`I$8HtIDŽ$8HP LHLHI<$H9uQHLHLH\$@HCH\$H\@HLHH$HLHD$(HL$0HD$pH@HLpHH|$8HH$HHD$H8H9tHLI>H9tLHHHH$HL$HD$@H@HL@HH|$ HH$HI<$I9tH|$0HLHCHT$H\$@HT@HHHH$LHD$H8H9tLHHHHD$ HL$(H$H@HHH|$0HH$HH|$`H9tHD$H8H9tLHHHHD$ Ht$(H$H@HHH|$0HH$HH|$`H9tH|$`H9tH$H9tLLHHHHD$ HL$(H$H@HHH|$0HH$HH$H9tHD$(H8H9tHLHH|$`H;|$ tH$L9tH|$PH$H|$(HHHHD$Ht$H$H@HHH|$ HH$HI>H9tH|$HD$ H9tHH$H9tH$H$H9tH|$`HD$pH9tH|$@HD$PH9tH|$ HD$0H9tI<$I9tHH$H$H9uH$H9uH$H9tH$H$H9tH|$`HD$pH9tH|$@HD$PH9tHI<$H;|$(tHH$H$H9tH$H$H9uH$H9tHH$H;|$tH$H$H9EEH$H9tHH$H9tHH$H9tHH$H$H9tH$H$H9tI<$H;$tH|$pHH$H9tHH$L9tH$H;|$0tH|$(H$H$H9vvH$H9tHH$L9tH$H;$22LHEHT$@H$HHLHH$H$H;$I<$H9$H$H;|$0 H$PL9tH$0H9LH$H9tH$H;|$HtH$H;|$@tH$L9tH$pH;|$8tH$PH;|$0tH$0H;|$(tH$H;|$ tH$H;|$tH$H;|$tH$H;|$PtH$H$H9tH$H;|$htHD$`H8H9|$ptHH$PH$`H9tH$0H$@H9tH$PH$`H9tH$0H$@H9MCH$0H9tLH$H9H$PH$`H9tH$0H$@H9tH$H$ H9tH$H$H9tH$H$H9H$H9wmH$PH$`H9t|$uHDH$H$ H9t|$tH$0H9t*H$H9HH|$8I<$IL9tH|$HHH$H9LH$L9tH$L9tH$H;|$tH|$`H;|$tH$H9dZH$H$H9tH$H$H91'RH$H9u#LH$L9xxH$H$H9H$H$H9tH$H$H9H$H$H9^H$H9tHH|$HI<$IL9tH$HLHEHt$H$HHD$LHH$H$H;|$tzH$H;|$xtH$H$H9WMH$H;|$0&H$H9uqHH$L9tH$H;|$H$H9u9HH$L9tH$H;|$H$H;|$xH$H;|$xoH$H;|$xH$H$H9tH|$pH$H9tHLH$H$H9tH$H$H9tH$H$H9tI<$H9tMLHD$(H\$0H$H@HHLHH$ HH$`H;|$htH$@L9MH$ L9tH$H9LH$H;|$`tH$H;|$XtH$H;|$PtH$H;|$@tH$`H;|$8tH$@H$PH9tH$ H;|$0tH|$ H$H;$tHH$H$H9tHH$H;$tH$HH$ H;|$0`VH$H$H9tHHLH$HCH\$(HHLHH$H$H$H94H$ H;|$0tH$L9tH$H;|$@tH$L9tH$L9tH$HD$pH8H;$tHLHD$ Ht$(H@H@HD$Ht$H$PH@HPHCH$@H\$H@LHDŽ$HHHHHH$ZHCH$@H\$H@HHDŽ$HH$L9HtHH|$0t H|$0H$HtH$HtH|$t H|$H|$ t H|$ H|$t H|$MtLHH|$pH|$(t H|$(HP HMt ILP Mt I$LP H|$Ht H|$HHP HH$L9tH$L9tH$L9tH|$`HD$pH9tH|$@H9tH$H;<$H$H$H9tH$H$H9tH$H$H9tH|$`HD$pH9tH|$@H9tH$H$H9tI}H9|$tHH$H;|$(tH$HH|$(HD$@Ht$HH@HHD$0Ht$8H$H@HHD$Ht$ H$H@HHDŽ$HH|$HH$pHHD$Ht$ H$H@HHDŽ$H$H;|$(H% H|$`HD$pH9tH|$@HD$PH9tHLHD$H8I9tIMt ILP Mu6I$LP HpHP Hxu.H@HP HIELP HHP HxHP HhHP Hxt HxHP H@uMsdHpm[LH|$ HtHMtLHH|$`H9tH|$@H;|$tHH|$`H9tH|$@H;|$tHH|$`H9tH|$@H;|$tHH|$`H9tH|$@H;|$tHH|$`H9tH|$@H;|$tHH|$`H9tH|$@H;|$tHH|$ L9tH<$H9tHH|$ L9tH<$H9tHH|$ L9tH<$H9tHH|$ HD$0H9tH<$HD$H9tHH|$ HD$0H9tH<$HD$H9tHH|$ HD$0H9tH<$HD$H9tHH|$ HD$0H9tH<$HD$H9tHH|$ L9tH<$H9tHH|$`H9tH|$@L9tHH|$`H9tH|$@L9tHH|$`H9tH|$@L9tHH|$`H9tH|$@L9tHH|$`H9tH|$@L9tHH|$`H9tH|$@L9tHH|$`H9tH|$@L9tHH|$`H9tH|$@L9tHH|$PH9tH|$0H;<$tHH|$PH9tH|$0H;<$tHH|$PH9tH|$0H;<$tHH|$PH9tH|$0H;<$tHH|$HD$ H9tHH|$HD$ H9tHH|$HD$ H9tHH|$HD$ H9tHH|$HD$ H9tHH|$PL9tH|$0HD$@H9tHH|$PL9tH|$0H;<$tHH|$PL9tH|$0H;<$tHH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH|$@H9tH|$ L9tHH|$@H9tH|$ L9tHH|$@H9tH|$ L9tHH|$@H9tH|$ L9tHH|$@H9tH|$ L9tHH$H$H9tH$H$H9tH$`H$pH9tI<$H9|$tHH$H;|$@tH$`H;|$ptH$ H;|$htH$`H$pH9tH$ H$0H9tH$H$H9tH$@H$PH9tH$H;|$Pn|$ H$H$H9t$L$ ȄtH$H$H9t$tH$H$H9t|$ tH$H$H9tH$@H;|$XtHH$H;|$8tH$H;|$tH$H;|$I?$$$L$ 11$1H$H$H9tH|$0Ƅ$11H$H$H9tH$H$H9tH$`H$pH9tH$ H$0H9tH$H$H9tH$@H$PH9H$H$H9tH$`H$pH9tH$@H$PH9tH$H$H9qgH$H$H9tH$H$H9tH$`H$pH9H$H$H9XNH$H;|$@tHH}L9tHH;tHH;tI?H;tHH;tHH}HEH9tH`HpH9tH@HPH9tH}HEH9UKH}H;h:0H}L9tH}H;htH`H;@tH@H;8tHL9tHH;0tH H;PH}L9tH}HEH9H}L9lbH}L9UKH}H9tH}H;xtLH`H;`tH@H;ptH H;htHL9tHH;0tHH;8tHH;PtHH;(tI<$H9tHH}HEH9tH@H;ptH H;htH`H;`B8H}H9tH}H;xtLHL9H}H;(tH}H;0tH`HH}H;(tH}H;0tH`HH}H;(tH}H;0tHH}H;(tH}H;0tH`HH}H;(tH}H;0tHH}H;(tH}H;0tH`HH}H;(tH}H;0tHH}H;(tH}H;0tH`HH}H;(tH}H;0tH`HH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}HEH9tH}HEH9tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH}H;(tH}H;0tHH|$PH9tI<$H9|$tHH|$0HD$@H9tLH|$PH9tH|$PH9tԐH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH|$PH9tH|$0L9tHH$H$H9tLHH$H$H9tH$L9u$H|$HLHH% H$H;|$tHCH$H\$ HHDŽ$HLHHH$H$H;|$g]LHD$8HT$@H@HHD$(HT$0H$H@HHCH$H\$ HHDŽ$]H$H$H9tH|$`HD$pH9tH|$@HD$PH9tHH|$`HD$pH9tHLH$H$H9tH|$`H;<$tH$H;|$t{H$H;|$tH|$`H;<$XNH|$@HD$PH9tHLH|$ HD$0H9tH$H$H9tLHH|$pH$H9tH|$H|$HLH$H$H9uQH|$ H$H;|$@tH$H;|$8tHH$H;|$0tHH$H;|$PtH$H$H9yoH$H$H9tH|$ PH$H;|$PtH$H$H9t뿐H|$`HD$pH9tH|$@HD$PH9tLHH$H$H9tH$H;|$tH|$ H$H$H|$pHH$H;|$tH$H;|$tH$H$ H9tH|$PHD$`H9tLHH|$pH;|$tH|$pH$H9tH% H|$ HH|$ H5(y,}1% iz@Rd$} O] !!)Oz?}!F/ZAUi}7A]n_1')Hx?}!^>CRz}G:=5)W[        \     "2c)SY  k  u    (     'm!)*:1h '7IY &y  1H{"v>  '   <]   M g. <S) W%9               3# u C0z <@'lL C7   ;   1   S7   <   .   SC<   < /S6>R! 7         $S BN>N.5                y_I  7      n>G3X:"<      fT**+* * * + +,,,+++,,+++,, ,!,"+",",#,#+%,%*%*'),'*(*),)+)+),),)+*+**Sc"        /+"=Vj|<      At  n  <   "    Z      `   )HGj ) t!SP---N--- ---(-*-+Sw      O?j     =$P^r b =P(' '' ':((I(('(''' 3'!($$h(%*(%'&'& 'DD   l             #E ~Dw*n            z!;        "z=Q Q      u9      &SQ          !G          !k<. ,            6/ra/     fap        YZ"!!!!!!!!"""(""""? " ! # # "  # #  ! ! Y   R       #### 3Mka1"U          !r     5.,%HWw`         +  ) +E)1()5p s)%:l\:   3  636a;,  @ x3^`  5c(c31)     ). 3B AVAAUAIATUSH cHځ'HKY8m4$c'HHHȃH HwD`IEA4-LIEAIMH5fDHiQH%kd)DD@FDAT$A'wwO0L@)[]A\A]A^@AIUA4LIU-AIMc_H5E,.@)AL[]A\A]A^HD`@HD`HGAv-HAIMLAXAAvtkDataSetbasic_string::append vec4 l_sumValue;uniform sampler2D ; in_croppingPlanesin_croppingFlagsin_propIdvtkImageDatavtkRectilinearGridvtkOpenGLRenderWindowin_depthSamplerin_noiseSamplerin_noOfComponentsin_sampleDistancein_scalein_biasin_transfer2DYAxisin_transfer2DYAxis_scalein_transfer2DYAxis_biasin_projectionMatrixin_inverseProjectionMatrixin_modelViewMatrixin_inverseModelViewMatrixin_projectionDirectionin_cameraPosin_windowLowerLeftCornerin_inverseOriginalWindowSizein_inverseWindowSizein_maskin_labelMapTransferin_labelMapGradientOpacityin_maskBlendFactorin_mask_scalein_mask_biasin_labelMapNumLabelsin_clampDepthToBackfaceuniform vec3 in_cellSpacing[uniform mat4 in_volumeMatrix[ g_eyePosObjs[] = in_inverseVolumeMatrix[] * vec4(in_cameraPos, 1.0); g_lightPosObj[] = (in_inverseVolumeMatrix[] = normalize(g_lightPosObj[] = normalize(g_eyePosObjs[] = normalize(g_ldir[] + g_vdir[]);vec4 []; } ] * in_inverseVolumeMatrix[] + in_volume_bias[, in_volume[], ); ); if ([0], ); } , vec2(scalar.r, , maxComp } } float vol_coef = ) }grad.wyscalar.y] if(component == ) { return texture2D(, vec2(scalar[)) } return texture2D(, vec2(scalar.y, )); { } },vec2(scalar[], 0)).r; } } if (component == , vec2(scalar[], g_gradients_0[].w)).a; } ], yscalar[])).a; } , 0.0); } gl_FragData[] = texture2D(, texCoord); return; in_ambientin_diffusein_specularin_shininessin_twoSidedLightingin_giReachin_lightAmbientColorin_lightDiffuseColorin_lightSpecularColorin_lightDirectionin_lightAttenuationin_lightPositionin_lightExponentin_lightConeAnglein_volumeMatrixin_coordTexsin_coordTexSizesin_coordsScalein_coordsBiasin_blankingin_inverseVolumeMatrixin_textureDatasetMatrixin_textureToEyein_cellToPointin_texMinin_texMaxin_volume_scalein_volume_biasin_scalarsRangein_cellStepin_cellSpacingin_anisotropyuniform sampler3D in_volume[uniform vec4 in_volume_scale[uniform vec3 in_coordsScale; uniform vec3 in_coordsBias; ]; uniform vec3 in_texMin[]; uniform vec3 in_texMax[uniform vec2 in_scalarsRange[vec4 g_eyePosObjs[#define TOTAL_NUMBER_LIGHTS #define NUMBER_POS_LIGHTS ]; vec3 g_ldir[]; vec3 g_vdir[]; vec3 g_h[vtkPlanein_vertexPosin_clippingPlanesin_clippedVoxelIntensityin_textureExtentsMinin_textureExtentsMaxin_componentWeightin_averageIPRangein_isosurfacesValuesin_slicePlaneOriginin_slicePlaneNormal//VTK::Shading::Impl//VTK::RenderToImage::Dec//VTK::RenderToImage::Init//VTK::RenderToImage::Impl//VTK::RenderToImage::Exit//VTK::Picking::Exit//VTK::Picking::Dec//VTK::Base::Impluniform sampler3D in_mask; gradient = computeGradient(, c, volume, index); , c * in_componentWeight[c] color = texture2D(, vec2(scalar, 0.0)).xyz; opacity = lutRes.a; color = lutRes.xyz // c is short for component = opacity; { return vec4(0.0); } in sampler2D gradTF, in sampler2D opacityTF, int index, float label) //VTK::ComputeGradient::Dec//VTK::PhaseFunction::Dec//VTK::Matrices::Init//VTK::ComputeColor::Unif//VTK::GradientCache::Dec//VTK::Transfer2D::Dec//VTK::ComputeOpacity::Dec//VTK::ComputeColor::Dec//VTK::ComputeLighting::Dec: renderedTex_//VTK::FSQ::Decl//VTK::FSQ::ImplvtkOpenGLShaderPropertyNUMBER_OF_CONTOURSShader failed to compilein_depthPassSamplervtkOpenGLCameravtkMultiVolumeReductionFactor: CurrentPass: g1.xtexPosPvec[0] g1.ytexPosPvec[1] g1.ztexPosPvec[2] g2.xtexPosNvec[0] g2.ytexPosNvec[1] g2.ztexPosNvec[2]USH1HHH-1U1U;tH[]ÐsH{SH{D H{A{t.SH{q {tH{H[]ÐH{ AVAUATUSHH L%H dH%(HD$1HIT$HfHnfHnfl)$HtHP HC HHtHP HǃHHtHP HǃHHtHP HǃHHtHP HǃHHtHP HǃHLI9taLl$@1LHt$HHLI9uLLM9tLfHHL9uLLLM9t+LfH}HEH9H I9uLHHtHP HǃHHxHǃHtH`HtHHHtH0HtHHtHHtHHtHHtHHtHHtHHtHpHtHXHtH@HtHǃ@HP H8HtHǃ8HP H0HtHǃ0HP H LHI9t-H}HEH9H L9uHHtHLHI9t"f.HHI9uHHtHH8H0H(HtHǃ(HP H HtHǃ HP HHtHǃHP HHtHǃHP HHID$@fo$HHHH9tHHHHHHPH@HHRHHHHHD$dH+%(uGH H[]A\A]A^DH I9+EfDH I9c}ATIUI$SHH9tI$HtDH}H}(HE8H]H9tHHtHfDHHuI$HtCH}H}(HE8H]H9tHHtHDHHuIl$xHt>H}H}(HE8H]H9tHHtHHHuIl$HHtFH}H}(HE8H]H9tHHtHHHuI|$0I|$(I|$ I|$[L]A\ATILFIHRHHHIH9LWI1L9vMQL9MQL9vKIT$I$HHPH9tiI $HHIL$HHIL$HH@@LA\fD11LIT$I$HHPH9uoHAL$f.o@AD$ADDAMHSHHHHHHCXH9tHH{8HH[HUHHHHHHEXH9tHH}8HHEH]AVAUATIHUMt$HSHAD$LID$HsIM4$HH?I+D$I9w)LHLHSH3L[L]A\A]A^H=HI<$I9tHAUIATIHUHHH?H+EH9w]LHIT$I$HHPH9t0I $HHIL$HHHH@IL$@L]A\A]fo@AD$H=UHHwSHHGHGHwHw HG(H}Ht@H@HHRHuHKHDHHRHuHU(HK HCHS(H[]cannot create std::vector larger than max_size()H ATUSH9fL$vHHHGIHtkLfHnJ4 Hx HflHs@Ht*H9t%HHH HJHJH9uJ|'H{[]A\@HHG1H{[]A\H=vector::reserveAUHATUSHH:LHGHL)LHH9HIE1IHL)HtLLEH}ILL9t?L)LLHHHrHH H9tUHHJH H HHHJHHH9uMtLLfInMfHnLmflEH[]A\A]ÐoJHJH H HHHH9vH=AWAVLwAUIATUHSHLgMHfIIT$ ID$H9IBD$HuuVH9vhAM9uv(LLDHIEHHC HE(HHغ[]A\A]A^A_@L9etLH;X wIHL1[]A\A]A^A_DE1I;\$ AyML;wtHAYATUHSHHwdH%(HD$1H9HHHHH@H9HH{HH CHH9nHPHH9pHC H{(tHHDLcI$I$HHHPHHH9X rHHHHPHHH9X sHHHkHuHD$dH+%(H[]A\HH$HHt5H @HHtHPHHH9X rHHHuH9tH9^ vHHxH9t H9_ wHI$LcI$HHH9u(CHkHS1HH{HsLHH{Hs~vector::_M_realloc_insertAWAVAUATUHHHSH(LgL?H|$LL)HH9XHIHHEHM)HH LHD$AH$L9t5L,$M@IILIIULII9uLjL9t$HHHHIIUL9u~$fInflMtL)$fo$HD$HL$HHH([]A\A]A^A_fILHt$Ht$J<(H$H$ILhLt$HH9HGL4H=H HLH<$HHAWHHAVAUATUSH(LgL7LL)HH9 HHHHE1IHH@HD$L)HuHE1I|H1HQHGH<$HHHD$L9tHLLL)HJHpH HH9H HHH H HJHHHJH9uIt=H L9tELHH)fHPHKHHH9HHSH H HPHSHPL9uHfInfHnflMtL)$fo$Ll$AMoH([]A\A]A^A_fDoHHHH H JHJH9@foSHSH H PHPI9.`fHHD$HHL$H$H$HL$IfLHHH9HFHHD$HH=HMt LH$H8H9|$tHHvector::_M_fill_insertH3AWIAVAUIATUHSHHLgHGL)HH9AMII)LHH9HMLI)M9tHLLD$IED$HIEL9t LLHD$H)H)D$HtH9tnHHHHHHv3H(HHHHH9uHHLtH9t#IFAH9tIFAFH9tAFH[]A\A]A^A_ÐLH)t|HI<I9toHLHHHHv7H(HHLfDHH9uHHIH9t HPH9tHP@H9t@I}D$I9QLHLM}HH)D$HHHHHv?H(HHHfHH9uHHLtH9IFAI9IFAFI9DHL7M)IL)H9L9LHCHIL)H6MqI1HHAHsL HHHHHv4H(HHHHH9uHHHH9t HB I9tHBJI9tJLHL9LHLIUHHH)H9tMHHHHL$IHL$LMu-fHnfHnMeflAEH[]A\A]A^A_@HLHL$HL$뿐IUE1HH)H9u@ILHT$MuIHT$HIM)LI}HI9LGIH=AWAVLwAUATUHSHHL9*I9n }LHI9t_HIH9h LcMu +@IAL$ ID$9IOD$@HuL@19LOHNHL[]A\A]A^A_ú}H9w HH;h I|$IDALEDH(uILcMtpuIAL$ ID$9IOD$@HuL@uE19LOHN_HW E1B 9EK1HzLDIE2@ML9ct'LLuH IMM9uYfLE1DLcMu KDIAL$ ID$9ILD$@HuL@L9ctLLH IMvector::_M_default_appendH;HAWAVAUATIUSHHHWLHL)IIL)HHGH)HH9H9UL9LHCL6HIE1E1LHHEHt!H}H1LL$L$L$LL$MMLfInMt$IfHnflA$H[]A\A]A^A_@HHJHtHH1H)HXHHHIL$H[]A\A]A^A_DLLLL$L$L[HH9HGL4LM$ML$IIM)IH=UHSHcHO9G`t G`HHHHH)HH9w sHH9tHH[]HHH[H)]AWIHAVAUATUSHLgL7LL)HH9HHIHE1HHL)HH11AM)L|fHnK'fHnfl) $H,M?Mu/fo$H]]H[]A\A]A^A_fDLM LǐLLLMtHHH$H$HHRHH9HGHH=AWAVLwAUATUHSHHL9*I;n }LHI9t_HIH;h LcMu +@IAL$ ID$9ILD$@HuL@19LOHNHL[]A\A]A^A_ú~H9w HH;h I|$IDALEDH(uILcMtpuIAL$ ID$9IOD$@HuL@uE19LOHN_HW E1B 9EK1HzLDIE2@ML9ct'LLuH IMM9uYfLE1DLcMu KDIAL$ ID$9ILD$@HuL@L9ctLLH IMATL%UH-HHH=LHH-HH=LHH-HH=LHH-HH=LHH-HH=HLH]A\31vtkOpenGLGPUVolumeRayCastMapper36vtkGenericOpenGLResourceFreeCallback29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE0001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899=B?v~г?w? ??? g_ski // Apply scale and bias to the fetched values. g1 = g1 * in_volume_scale[index][c] + in_volume_bias[index][c]; g2 = g2 * in_volume_scale[index][c] + in_volume_bias[index]vec4 computeGradient(in vec3 texPos, in int c, in sampler3D volume, in int index) { return vec finalColor.a = color.a; return clamp(finalColor, 0.0, 1.0); vec3 computeRayDirection() { return normalize(ip_vertexPos.xyz - g_eyePosObj.xyz); uniform vec3 in_projectionDirection; vec3 computeRayDirection() { return normalize((in_inverseVolumeMatrix[0] * vec4(in_projectionDirection, 0.0)).xyz); bool l_firstValue; vec4 l_max // We get data between 0.0 - 1.0 range l_firstValue = true; l_maxValue = vec4(0.0 const float g_opacityThreshold = 1.0 - 1 uniform vec3 in_propId;uniform sampler3 vec4 maskValue = texture3D(in_mask, g_dataPos); if(maskValue.r <= 0.0) { g_skip = true; float in_maskBlendFactor; uniform sampler2D in_labelMapTransfer; uniform float in_mask_scale; uniform float in_mask_bias; uniform int in_labelMapNumLabels; uniform bool in_clampDepthToBackface; vec3 l_opaqueFragPos; bool l_updateDepth; l_opaqueFragPos = vec3(-1.0); if(in_clampDepthToBackface) { l_opaqueFragPos = g_dataPos; } l_updateDe if(!g_skip && g_srcColor.a > 0.0 && l_updateDepth) { l_opaqueFragPos = g_dataPos; l_updateDepth = false; vec3 l_isoPos = g_dataPosr.a > 0.0) { l_isoPos = g_dataPos; g_exit = true; g_skip = true; initializeRayCast(); castRay(-1.0, -1.0); fin????D in_transfer2DYAxis; uniform vec4 in_transfer2DYAxis_scale; uniform vec4 in_transfer2DYAxis_biavec4 computeColor(vec4 scalar, float opacity) { return vec4(0, vec4 computeLighting(vec4 color, int component, float label) { vec4 finalColor = vec4(0.0);finalColor; //VTK::Shading:://VTK::ComputeCl//VTK::ComputeTextureCoords::Imp//VTK::Base::Dec//VTK::CallWorke//VTK::Base::Ini//VTK::Base::Exi//VTK::BinaryMas//VTK::Composite//VTK::CustomUni//VTK::Clipping://VTK::Cropping:)[c]; scalar = scalar * in_volume_scale[index][c] + in_volume_bias[index][c]; scalar = textu//VTK::Terminati//VTK::Terminate{Gz?$@@@@???Q?z?9~@?MbP?GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GNUzRx 0 D Xl        !4 H \p! !     $ 8 L!` t8 1   (< Pd!x 1  1  ,1@T h |1  1  !0 DZX l  Z   Z     4!H \!p ! I   ! $ 8!L `Mt   M   ] ( < P!d x! ! ! !  !, @ T h | 1        0 D X l )    ?     ?4 )H \ p         $ 8 L ` st !        ( < P d x       E%P,+@T h|  !!!!!0D)X l  4FBD Y BBO ^BBEZ A " E G P88BED A(G0(A ABB(tYFDD CAAE(ADK G AAG eBP F RqTJ RqTJ R8RL6`R0tBDD G0^  AABE 4BAA  FBD ACBDGGD0GDDXGlDGDGDGDD G ?4<H?\<prj0rRAG  AAKH EY B zPLRx L$BBB E(A0D8G@ 8D0A(B BBBG t@8BBE A(D@a (A ABBK HBBB B(A0A8D`8A0A(B BBB< BBA D(L0 (D ABBA `&0H|BBB B(A0A8D`8A0A(B BBBHBEB B(A0I8GP 8D0A(B BBBA LBBB B(A0D8L`3 8D0A(B BBBG hnA`PuBBB B(A0A8N 8C0A(B BBBA dHBEB B(A0I8GP 8D0A(B BBBA LD t H LlBBB B(A0D8L` 8D0A(B BBBI `PFEI A(E0  (A BBBE P (A BBBI 0FI  EA TFI  EA P|FBB B(D0D8DI 8D0A(B BBBB ?PFBB B(D0D8H 8D0A(B BBBE \'LFID E(K0\ (D ABBH o (D ABBA 0<FPA  ABF ` ABE 0 PPFBB E(D0D8DZ 8D0A(B BBBF 8 ,FJ  EI 0*FDD K0  DABF 00RFDD K0  DABF dFI  EA FI  EA FI  EA FBB A(A0 (D BBBB b (D BBBD r (D BBBD p (D BBBF P (D BBBF X 0x FI  EA FI p EA FI  EA   FJ b EI DFJ b EI hFJ b EI  FJ  EI @ FEG A(GY (D ABBD  &<P dFG D EJ FK Q EI eFK Q EI < FBD A(DZ (D ABBD  ; 0FI  EA TFI  EA xFI  EA FI  EA FI t EA FI  EA  FI  EA , FI  EA PT FEB B(A0A8D 8D0A(B BBBK 68 EAI m AAB l AAB < yFBA A(DP (D ABBE H P0d!GEDG a DAJ DAA4 FCA G0i  AABA  04 FAA G@S  HABK ,@DL'FBB A(A0GP 0H(A BBBJ P`FBB E(D0D8G 8D0A(B BBBC H#9FBB B(D0A8Dp 8A0A(B BBBA <T#)FED K(G4 (A ABBE 8#FIA D(G0s (A ABBD @#EHG Z AAH Z AAD s AAC $RHo I A G (8$FHG@ ABE Xd$FIA A(GPa (A ABBI X (A ABBJ XF`jXBP$ \FHD GPbXN`EhApFxIMPo  AABJ   AABK 8P$T%GEEL dJA|%E`%JFBB B(A0A8GfDPAIQ 8A0A(B BBBD %&8$&NHD [AAIP VCA,`&aAG  AAO (&EAG d IAE (&NDJ AAD\&jBB B(A0D8G@@8F0A(B BBBM@H'@4h'NDJ  AAG DDAH'FBB B(A0D8G@ 8I0A(B BBBE '@$ ([EDG HAAD8FBB A(A0D@Y 0A(A BBBG @dFBA A(D@  (A AIBK d (A ABBF  (D ABBB  @0()kEAG J AAG HAA\)p))$)HEAD {AA()FDI sDBL)`KBB B(D0A8D`:8A0A(B BBBA<@FBD A(D0: (D ABBL |*ELh) FBB B(A0A8G 8A0A(B BBBH r 8A0A(B BBBE ~h,FBB B(A0A8J 8H0A(B BBBK w 8A0A(B BBBG 0+FDA G0e  DABA \FEE D(D0Gp 0M(A BBBL l 0A(A BBBD PpDp,XFBB G(D0J; 0A(A BBBF L,|FBE D(C0C (A BBBB  (D EIBK -TEn M MH(-FEA A(G0 (A ABBB G(A ABBt-!H-FIB E(A0A8DP 8D0A(B BBBE -F G -@Lo.ILxP0uFBB B(D0A8D 8A0A(B BBBA ,?FFD \ DBA  . PFBB B(D0A8GB 8D0A(B BBBI \aPFBB B(A0A8J 8A0A(B BBBG gPFBE B(A0A8J3 8D0A(B BBBE LdPp FBB B(D0A8G 8D0A(B BBBD ^PqFBB B(A0A8Jx 8A0A(B BBBF <P`FEB B(A0A8G 8A0A(B BBBE PFEB B(A0A8G  8A0A(B BBBA ,PP2 FBB B(A0D8J 8A0A(B BBBE LPFBE B(A0A8J 8D0A(B BBBI @@FBB G(I0_ (D BBBA ,FDD` DBK `,3FEG g BBC P E FBB B(D0D8G 8D0A(B BBBB T Px FBE B(D0D8GV 8D0A(B BBBG P FBB B(G0C8GQ 8D0A(B BBBE D!Ph!FIB B(A0A8J` 8A0A(B BBBG !P!I FBE B(D0A8J 8D0A(B BBBJ 4"PX"H FBB B(D0A8J 8D0A(B BBBB "P"XFBB B(D0A8J 8D0A(B BBBG $#PH#FBB B(A0A8G 8A0A(B BBBH #$7EHG lAAP#FGB B(A0A8G  8A0A(B BBBA <$V8\8PAA  ABE V ABA P$vFBE B(A0A8GF 8A0A(B BBBH $89FEA A(D0 (A ABBB `L9 FBF E(A0D8D@u 8I0A(B BBBE [ 8F0A(B BBBF 09"FAD D0,  AABA L%FBB B(A0Q8D`  8A0A(B BBBJ L8&FOB B(A0A8D`P 8A0A(B BBBG x:_OEB E(A0D8GP 8A0A(B BBBBHPq 8A0A(B BBBE P'FBB E(A0A8GM 8A0A(B BBBA X'XHx; FBF B(A0D8G@ 8D0A(B BBBA L;5BBE A(D0 (A BBBJ T (D BBBB L<5BBE A(D0 (A BBBJ T (D BBBB d<D t H P(> FBB E(D0A8G: 8D0A(B BBBF (h( FBB B(G0D8I 8A0A(B BBBA  8H0A(B BBBE h)H=FBB E(A0G8F 8C0A(B BBBG (=^FBD IBBd>/FDB A(A0Jo 0A(A BBBA FPEdIPEHh>wFBB E(A0D8Dp 8A0A(B BBBD P* FBB B(D0A8G 8A0A(B BBBC +Yt,?YBB B(D0A8GP 8A0A(B BBBE x8A0A(B BBBFHP0?EIG I AAH GHD8+AEC P@ H  .V. , H8@GFOB B(A0A8DP 8A0A(B BBBG h,8FBB E(K0A8J4 8D0A(B BBBJ  8A0A(B BBBK ,P-8FEE E(K0G8J 8A0A(B BBBD l-LAFEB B(D0D8Go 8A0A(B BBBI LAFBE E(D0D8D 8A0A(B BBBH H,B FBF B(A0D8G@ 8D0A(B BBBA HxBBBB F(D0D8G@ 8E0A(B BBBK HBBBB F(D0D8G@ 8E0A(B BBBJ d/FFE E(D0D8G 8A0A(B BBBA l\EHN |/D/FBF D(D0G| 0A(A BBBG /D 0FBF D(D0G 0A(A BBBB T0dx00FBF E(D0D8GT_IAg  8A0A(B BBBD 00`1HFBB F(D0D8JIcA 8A0A(B BBBJ h1D1FBB E(D0Gp 0A(A BBBE 1pP1FBB B(E0G8Jl 8A0A(B BBBH L2yPp2FBB B(E0D8J] 8A0A(B BBBJ 2P2FBB E(E0D8G 8A0A(B BBBD <3$\GFHN GBL3FBB B(D0D8G 8D0A(B BBBF 3+83%EC BJ.. G 84 8\44 EC FEK .R.x G 4} X4EC BGP D .V.Z.U..U..V. .Z. 5< P<5FBB E(D0F8G 8D0A(B BBBD 5gP5FBB F(D0D8G 8A0A(B BBBB 6P,6B FJB B(A0A8Gi 8A0A(B BBBH 6\@JOFDA G@s  AABG   FABL L6xFBB B(A0D8JF 8A0A(B BBBE 87<\7FIA A(GW (D ABBH 7:P7 FBB B(A0A8J3 8A0A(B BBBK 8id0LFBB E(A0D8GP 8G0A(B BBBE  8C0A(B BBBA P8 FBE B(E0G8Gg 8A0A(B BBBE 8P9FBE E(D0G8J 8J0C(B BBBH h98P9 FBB B(A0A8G 8A0A(B BBBE 9L:FBB B(A0A8J} 8A0A(B BBBA T:P`tNRLE D(D0 (A BBBF A(A BBBP0P:dFBB B(D0D8G 8A0A(B BBBB 0;hT;p FBB B(D0D8Jh 8A0A(B BBBH  8A0A(B BBBN ;4OFBA D(G@(A ABBP .  !"#$%&')*,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSUWYZ\^`aceghijklmnprtuvwxyz|}    Y @ e2  @   "$&(*,.024 64     G4& `   ~ 4nU  u- 4Jd       pU479/4A?4'4q448<4  4&4;;l4v6:444 4<4=44$4<J4T4d>  `4t~4E4@BD44F4 aw4kg4d{46 ^4 A4 4 )4, L4x H4 J4 -4 4 ,44z40U 4 !4L!4VO?"4RRTVY[^"4X`0# 5$ 5% 0V%48%4PO&4OYce&4g`'4t'4i{( P( @#)4)4Q*40 *4 0+4",4",4:#yO-4#-4r$k.k.../=/]/40%+%0`04[)p14+}24,<240g34@1341\44Z3V44:4:44t4i#5445458I646646P647H7447o7P7P7777778707P7707(77797 78 8 808X8 80$8@*8P08`68p<8B8H8N8T8Z8h`8f8l8r8x8~8 888889 8808p8(!8H 8!8#8(8@8P8`8p88@#8#8`"9"9(999 9&9,92989>9D9 J90P9@V9P\9`b9ph9n9t9z9999999)9)99 9*99 909@9P9`9p9*9p*9+:+ :-:/:X2:5%:8,:>3:7:::A:;H:=O:@@V:]:d:k:r:y:@:hC: G:M: O:p^:p_:_:::::: :0:@:P:`:p:; ;;;!;(;/;6;=;D;@bK;cR;PcY;b`; g;0n;@u;P|;`;p;;;;;;;;;;; ;0;@;P;`;p;<i<<<<$<+<2<9<@<lG<N< U<0\<@c<9<j<9Oq<9Rx<9d<9u<9<9<9<<(< <0<8<<9<9<9<9<<9<9 <9<96=9 =9N=9b=9} =9'=9.=95=9<=9C=9J=9Q=9!X=9P_=9cf=9qm=9~t=95{=9=`==9=`m=9=m=m=m=Xr=q=9=9=9=r=v=x=Xx=w=pw>n >x>x>9m!>8y(>96/>9P6>9=>hyD>9K>9R>9Y>9`>9g>9n>yu>y|>`z>z>p>>>>>>h{>{>{>9>{>|>9>}>~>X}>}?9?9?9?9!?9%$?}+?902? ~9?9B@?9HG?9N?9XU?p~\?9ac?~j?q?@x?`???????h????8?(?9~??9??8? ?@H @X@@Б @Ȗ'@.@5@<@C@9sJ@XQ@9tX@ _@f@Ȟm@t@ئ{@@@ @0@@@P@`@p@`@ȫ@9@0@@@@9@@@AAA@AA#AH*A1AP8A?AȽFAPMATAP[AbA9iA0pAwA~A(AAA9AA(A9A9A9A9A9"A9&A9ZA9]A9A9A9A9+A9?B9U B0BB`B&B-BH4B;BBB`IBPBWB ^B9`eBlBsBzBB9eB9sB9B8BBBBPBB9B9BBB9B9B9B9BBC C(CC"C)C0C97C8>C9 EC9LC9SC9'ZC91aC9<hC9GoC9SvC9`}C CC@C9tCHC9C9C9C9C9C9C9C9CNC9dC9)C96C9GC9VD9 D9pD9DD9%D9,D93D9:D9AD9HD9OD9VD9 ]D9dDkDrDPyDDD9*D9GD0DPDxD9eD9DDDXDDD9D9DDD9DE E9EEX!E (E0/E9 6E9$ =EHDEKE@REYE`E9m gExnEpuE9@ |E9P E9` EHE@EEEEEEE E E E9v E0 EXE`E9 E9 F9 F9 F9 F9 F9 $F9& +F9 2F@ 9F9: @FXGF9O NFUF9i \FPcF9 jF9 qF9 xFF9 FP F` Fp F F F F9 F F F F9 FFF F F FF9 G9. GG9 G G`'G.G5G9D AS"? xS"@ S"A1S"B-T"C tT"D T"E1T"FGU"G U"H U"I1 V"JGV"K V"L V"M1V"NW"O YW"P W"Q!W"R W"SZ,X"U mX"W X"Y X"ZZ'Y"\ oY"^ Y"` Y"aZ7Z"c Z"e Z"g ["h!=["i s["j!["k ["l!\"m I\"nI\"p \"r \"t 5]"u!i]"v ]"w ]"x!]"y (^"zM]^"| ^"} ^" _"MI_" _" _" `"]R`" `" `" (a"![a" a"!a" b"!n" rn"En"%n"Pn"+n"o" 5o"Vo"xo" o" o"!o"! p"!.p"!]p"!p"p"p")&q" Qq" q"q"1r" {rr"rrrrrr")sds""ss"Rs"q#t"qBt"Rct"6t"Rtu#u4udu"Du"Gu"Gu"D(v" Gmv" Dv"Gv"Dw"GGw"Dyw"Gw"Dw"Gx"D=x"Dpx" Gx""?x"$<y"&?4y"(<Yy"*rty",jy".ryz"0Iziz"2z!zzzzzzz,{n{{{"7{ |"|Z| p|  }  o}}}} #0~ $~~ )0N ) *P `0,ր 21 2* 4R܁ @73 7 8 P96 P< p< 0=T = p> >^ > ?  @d A B  Bm 0C PG pGd G߈ PH] pIe Je L pMe NË O @Pg P Q pRh @S܍":8N_ڎ$":@ `UyÏ/Yu  VGd 0W WFw"<'-i  "<'V X`̔ @]9 ^)< aR bڗ cR) dx e& g  gNvȚ$U0QwJf~ nGǝݝ n7Kd poJԞ5j q& qj rƠD rӡ EsȢ s  t u֣/fפ# | |ե8 [   :z `k Ї> v  ЉH+">I">g !|H٩  p+ ) } 0  0*Rzˬ( СXʭ$T 0|#U T 4b ! @G"@"B@б"B@ "DIJ @usò6Ro!z0ɳ  @u3 ?^"F ƴ OY   `  pqUn  L @2 Ǹ y"Hȹ R"J E   |   p ˼ #I y @0H  =X^ E"L"L  pT>"Ol"O P\v<a)V]b"R"T V"V""YV"["^_;C k "`  Ї> 8~p  +[  ^) @/ pw2w  ?"ci"e pA1@Wo*FevBi;i"gG 85 8-Z{ @?e 0"i ~ 0z    0/ @H T   z p4LYw0Yu  T}8l %i (4  P2 0DOm G MB ` ZO `\xV4|Gm aP c P Pp  s n @|% P fz  ` d#_ p hv  "o Jp!q"!r!t'0!u[!wC!x=YzL5Npj*\G FuMx9d'g+]Q*[_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPfSt6vectorIfSaIfEEEElfNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.isra.0_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPfSt6vectorIfSaIfEEEElNS0_5__ops15_Iter_less_iterEEvT_S9_T0_T1_.isra.0_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_.isra.0_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag.constprop.0_ZN12_GLOBAL__N_118HasGradientOpacityERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEE_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EE7_M_copyILb0ENSE_20_Reuse_or_alloc_nodeEEEPSt13_Rb_tree_nodeIS8_ESJ_PSt18_Rb_tree_node_baseRT0_.isra.0_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EE7_M_copyILb0ENSE_20_Reuse_or_alloc_nodeEEEPSt13_Rb_tree_nodeIS8_ESJ_PSt18_Rb_tree_node_baseRT0_.isra.0.cold_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_.constprop.0_ZNSt8_Rb_treeIN9vtkShader4TypeESt4pairIKS1_PS0_ESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0_ZNSt8_Rb_treeIN9vtkShader4TypeESt4pairIKS1_PS0_ESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE7_M_copyILb0ENSB_11_Alloc_nodeEEEPSt13_Rb_tree_nodeIS5_ESG_PSt18_Rb_tree_node_baseRT0_.isra.0_ZNSt8_Rb_treeIN9vtkShader4TypeESt4pairIKS1_PS0_ESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE7_M_copyILb0ENSB_11_Alloc_nodeEEEPSt13_Rb_tree_nodeIS5_ESG_PSt18_Rb_tree_node_baseRT0_.isra.0.cold_ZNSt8_Rb_treeIN9vtkShader15ReplacementSpecESt4pairIKS1_NS0_16ReplacementValueEESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS1_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_.isra.0_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EE7_M_copyILb0ENSE_11_Alloc_nodeEEEPSt13_Rb_tree_nodeIS8_ESJ_PSt18_Rb_tree_node_baseRT0_.isra.0_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EE7_M_copyILb0ENSE_11_Alloc_nodeEEEPSt13_Rb_tree_nodeIS8_ESJ_PSt18_Rb_tree_node_baseRT0_.isra.0.cold_ZN9__gnu_cxx5__ops10_Iter_predIZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24IsGeometryUpdateRequiredEP11vtkRendererP9vtkVolumePdEUlRKSt4pairIi20vtkVolumeInputHelperEE_EclISt17_Rb_tree_iteratorIS9_IKiSA_EEEEbT__ZN9__gnu_cxx5__ops10_Iter_predIZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24IsGeometryUpdateRequiredEP11vtkRendererP9vtkVolumePdEUlRKSt4pairIi20vtkVolumeInputHelperEE_EclISt17_Rb_tree_iteratorIS9_IKiSA_EEEEbT_.cold_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJOiEESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_.isra.0_ZNSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS5_EEEixEOi.constprop.0_ZNSt8_Rb_treeIN9vtkShader15ReplacementSpecESt4pairIKS1_NS0_16ReplacementValueEESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE7_M_copyILb0ENSB_11_Alloc_nodeEEEPSt13_Rb_tree_nodeIS5_ESG_PSt18_Rb_tree_node_baseRT0_.isra.0_ZNSt8_Rb_treeIN9vtkShader15ReplacementSpecESt4pairIKS1_NS0_16ReplacementValueEESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE7_M_copyILb0ENSB_11_Alloc_nodeEEEPSt13_Rb_tree_nodeIS5_ESG_PSt18_Rb_tree_node_baseRT0_.isra.0.cold_ZN9vtkvolume18BaseImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume.cold_ZN9vtkvolume26ComputeGradientDeclarationB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEE.cold_ZN9vtkvolume19ComputeMatricesInitB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperi.cold_ZN9vtkvolume24PhaseFunctionDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume.cold_ZN9vtkvolume31ComputeLightingMultiDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiib.cold_ZN9vtkvolume11ShadingExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeii.cold_ZN9vtkvolume12ClippingInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume.cold_ZN9vtkvolume27CompositeMaskImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTextureii.cold_ZN9vtkvolume26ImageSampleDeclarationFragERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEm.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal8LoadMaskEP11vtkRenderer.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18DeleteMaskTransferEv.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17SetupMaskTransferEP11vtkRenderer.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14IsCameraInsideEP11vtkRendererP9vtkVolumePd.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19CaptureDepthTextureEP11vtkRenderer.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal20SetupRenderToTextureEP11vtkRenderer.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14SetupDepthPassEP11vtkRenderer.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal35ReleaseImageSampleGraphicsResourcesEP9vtkWindow.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper24ReleaseGraphicsResourcesEP9vtkWindow.cold_ZNSt8_Rb_treeIiSt4pairIKi20vtkVolumeInputHelperESt10_Select1stIS3_ESt4lessIiESaIS3_EE8_M_eraseEPSt13_Rb_tree_nodeIS3_E.isra.0_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18ClearRemovedInputsEP9vtkWindow.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal26UpdateTransfer2DYAxisArrayEP11vtkRendererP9vtkVolume.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25SetMapperShaderParametersEP16vtkShaderProgramP11vtkRendererii.cold_ZN31vtkOpenGLGPUVolumeRayCastMapperC2Ev.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper3NewEv.cold_ZN9vtkvolume21BaseDeclarationVertexB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeb.cold_ZN9vtkvolume8BaseInitB5cxx11EP11vtkRendererP15vtkVolumeMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEb.cold_ZN9vtkvolume16GradientCacheDecB5cxx11EP11vtkRendererP9vtkVolumeRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEi.cold_ZN9vtkvolume23PreComputeGradientsImplB5cxx11EP11vtkRendererP9vtkVolumeii.cold_ZN9vtkvolume30ComputeOpacityMultiDeclarationB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEE.cold_ZN9vtkvolume33ComputeGradientOpacityMulti1DDeclB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEE.cold_ZN9vtkvolume21Transfer2DDeclarationB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEE.cold_ZN9vtkvolume21ShadingMultipleInputsB5cxx11EP15vtkVolumeMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEE.cold_ZN9vtkvolume28ComputeColorMultiDeclarationB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEEb.cold_ZN9vtkvolume30ComputeColor2DYAxisDeclarationEiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS6_EEE.cold_ZN9vtkvolume18ShadingSingleInputB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTextureiii.cold_ZN9vtkvolume26ComputeLightingDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiiib.cold_ZN9vtkvolume28ComputeGradientOpacity1DDeclEP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS8_EEE.cold_ZN9vtkvolume36ComputeRGBA2DWithGradientDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEEi.cold_ZN9vtkvolume23ComputeColorDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEE.cold_ZN9vtkvolume25ComputeOpacityDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEE.cold_ZN9vtkvolume27ComputeOpacity2DDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEEi.cold_ZN9vtkvolume25ComputeColor2DDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEEi.cold_ZN9vtkvolume29ImageSampleImplementationFragERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEm.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal27SetLightingShaderParametersEP11vtkRendererP16vtkShaderProgramP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19BindTransformationsEP16vtkShaderProgramP12vtkMatrix4x4.cold_ZNSt8_Rb_treeIiSt4pairIKi20vtkVolumeInputHelperESt10_Select1stIS3_ESt4lessIiESaIS3_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS1_EESE_IJEEEEESt17_Rb_tree_iteratorIS3_ESt23_Rb_tree_const_iteratorIS3_EDpOT_.isra.0_ZNSt8_Rb_treeIiSt4pairIKi20vtkVolumeInputHelperESt10_Select1stIS3_ESt4lessIiESaIS3_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJOiEESE_IJEEEEESt17_Rb_tree_iteratorIS3_ESt23_Rb_tree_const_iteratorIS3_EDpOT_.isra.0_ZNSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS0_EEEixEOi.constprop.0_ZN9vtkvolume20ComputeColorUniformsB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEEiP17vtkVolumeProperty.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25SetVolumeShaderParametersEP16vtkShaderProgramiiP12vtkMatrix4x4.cold_ZN9vtkvolume23BaseDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEiibii.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal20RenderVolumeGeometryEP11vtkRendererP16vtkShaderProgramP9vtkVolumePd.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17SetClippingPlanesEP11vtkRendererP16vtkShaderProgramP9vtkVolume.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal27SetAdvancedShaderParametersEP11vtkRendererP16vtkShaderProgramP9vtkVolumePN16vtkVolumeTexture11VolumeBlockEi.cold_ZNSt3mapIN9vtkShader4TypeEPS0_St4lessIS1_ESaISt4pairIKS1_S2_EEEixEOS1_.constprop.0_ZNSt3mapIN9vtkShader4TypeEPS0_St4lessIS1_ESaISt4pairIKS1_S2_EEEixEOS1_.constprop.2_ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderShadingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper16ReplaceShaderRTTERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderPickingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper17ReplaceShaderBaseERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderMaskingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper17GetShaderTemplateERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP23vtkOpenGLShaderProperty.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper27ReplaceShaderCustomUniformsERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP23vtkOpenGLShaderProperty.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper21ReplaceShaderClippingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper21ReplaceShaderCroppingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_GLOBAL__sub_I_vtkOpenGLGPUVolumeRayCastMapper.cxx_ZStL8__ioinit_ZL28vtkDebugLeaksManagerInstance_ZN6vtksysL26SystemToolsManagerInstanceE_ZL39vtkObjectFactoryRegistryCleanupInstance_ZL26vtkTimerLogCleanupInstance_ZN9vtkvolume28ComputeOpacityEvaluationCallEP31vtkOpenGLGPUVolumeRayCastMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEEiiiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb.cold_ZZN9vtkvolume33ComputeDensityGradientDeclarationB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEEiiiE14results_texPos_ZN9vtkvolume33ComputeDensityGradientDeclarationB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEEiii.cold_ZN9vtkvolume26ComputeVolumetricShadowDecB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperP9vtkVolumeiiRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEi.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderComputeERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN9vtkvolume15TerminationInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper24ReplaceShaderTerminationERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24InitializeImageSampleFBOEP11vtkRenderer.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14EndImageSampleEP11vtkRenderer.cold_ZNK31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal16GetComponentModeEP17vtkVolumePropertyP12vtkDataArray.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal12UpdateInputsEP11vtkRendererP9vtkVolume.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper23ReplaceShaderRenderPassERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP9vtkVolumeb.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper19ReplaceShaderValuesERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11BuildShaderEP11vtkRenderer.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper29SetShaderParametersRenderPassEv.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19RenderWithDepthPassEP11vtkRendererP15vtkOpenGLCameram.cold_ZN31vtkOpenGLGPUVolumeRayCastMapper9GPURenderEP11vtkRendererP9vtkVolume.cold.LC0.LC242.LC1.LC7.LC4.LC227.LC6.LC212.LC57.LC520.LC15.LC21.LC22.LC5.LC29.LC23.LC28.LC24.LC25.LC26.LC27.LC31.LC35.LC36.LC37.LC38.LC39.LC40.LC41.LC42.LC43.LC44.LC45.LC33.LC46.LC47.LC48.LC49.LC50.LC51.LC32.LC34.LC53.LC55.LC54.LC58.LC59.LC60.LC63.LC62.LC64.LC67.LC70.LC72.LC73.LC74.LC75.LC76.LC68.LC69.LC65.LC66.LC71.LC78.LC79.LC80.LC81.LC82.LC83.LC84.LC85.LC86.LC87.LC88.LC89.LC90.LC91.LC92.LC93.LC94.LC95.LC96.LC97.LC98.LC103.LC104.LC105.LC100.LC99.LC101.LC102.LC110.LC111.LC112.LC113.LC114.LC115.LC116.LC107.LC106.LC108.LC109.LC117.LC118.LC119.LC120.LC122.LC126.LC121.LC123.LC124.LC125.LC127.LC129.LC130.LC131.LC132.LC133.LC134.LC135.LC136.LC137.LC138.LC139.LC140.LC141.LC143.LC144.LC145.LC146.LC147.LC148.LC149.LC150.LC151.LC152.LC153.LC154.LC155.LC156.LC157.LC158.LC159.LC160.LC161.LC162.LC163.LC164.LC166.LC167.LC165.LC169.LC170.LC171.LC172.LC173.LC174.LC175.LC176.LC177.LC178.LC179.LC180.LC181.LC182.LC183.LC184.LC185.LC186.LC187.LC188.LC189.LC190.LC191.LC192.LC193.LC194.LC195.LC196.LC197.LC198.LC199.LC200.LC201.LC202.LC203.LC204.LC205.LC206.LC207.LC214.LC215.LC216.LC217.LC218.LC219.LC225.LC229.LC228.LC230.LC231.LC226.LC234.LC236.LC237.LC238.LC239.LC240.LC241.LC243.LC244.LC235.LC246.LC247.LC248.LC249.LC251.LC252.LC253.LC254.LC250.LC255.LC256.LC258.LC259.LC260.LC261.LC257.LC262.LC263.LC8.LC266.LC267.LC268.LC269.LC270.LC271.LC275.LC274.LC276.LC278.LC277.LC279.LC280.LC284.LC283.LC281.LC282.LC273.LC285.LC288.LC289.LC290.LC286.LC287.LC291.LC292.LC293.LC294.LC295.LC299.LC297.LC298.LC302.LC301.LC304.LC306.LC308.LC309.LC310.LC311.LC312.LC313.LC315.LC317.LC318.LC319.LC320.LC321.LC322.LC323.LC340.LC324.LC325.LC326.LC327.LC328.LC329.LC330.LC331.LC332.LC333.LC334.LC335.LC316.LC336.LC337.LC338.LC339.LC344.LC343.LC342.LC348.LC349.LC350.LC351.LC346.LC347.LC353.LC354.LC355.LC357.LC380.LC381.LC382.LC361.LC383.LC358.LC356.LC359.LC366.LC363.LC364.LC360.LC362.LC365.LC376.LC378.LC367.LC368.LC369.LC370.LC371.LC372.LC373.LC374.LC375.LC379.LC377.LC407.LC408.LC409.LC410.LC411.LC412.LC413.LC385.LC386.LC387.LC390.LC392.LC388.LC389.LC397.LC399.LC401.LC402.LC403.LC414.LC393.LC406.LC391.LC394.LC395.LC396.LC400.LC398.LC404.LC405.LC419.LC420.LC421.LC425.LC416.LC417.LC418.LC422.LC423.LC424.LC427.LC428.LC433.LC434.LC435.LC436.LC437.LC438.LC445.LC446.LC432.LC429.LC430.LC439.LC440.LC441.LC443.LC444.LC431.LC442.LC448.LC456.LC450.LC457.LC451.LC452.LC453.LC454.LC455.LC449.LC459.LC460.LC461.LC462.LC463.LC464.LC465.LC466.LC467.LC476.LC477.LC469.LC471.LC470.LC480.LC481.LC472.LC473.LC474.LC475.LC479.LC478.LC483.LC489.LC485.LC490.LC486.LC487.LC488.LC484.LC493.LC494.LC492.LC495.LC499.LC500.LC501.LC502.LC503.LC498.LC504.LC505.LC507.LC506.LC508.LC509.LC510.LC511.LC512.LC513.LC514.LC515.LC497.LC526.LC522.LC523.LC524.LC525.LC521.LC527.LC528.LC529.LC530.LC531.LC532.LC533.LC536.LC537.LC538.LC539.LC540.LC541.LC542.LC547.LC544.LC545.LC546.LC548.LC549.LC550.LC551.LC552.LC553.LC554.LC555.LC556.LC558.LC559.LC560.LC561.LC562.LC563.LC564.LC566.LC567.LC568.LC569.LC582.LC565.LC583.LC557.LC572.LC573.LC574.LC576.LC577.LC571.LC570.LC585.LC586.LC578.LC579.LC580.LC581.LC584.LC575.LC590.LC591.LC592.LC593.LC594.LC595.LC596.LC597.LC598.LC601.LC599.LC589.LC600.LC603.LC604.LC606.LC607.LC608.LC609.LC611.LC612.LC610.LC615.LC614.LC617.LC618.LC619.LC620.LC621.LC622.LC623.LC625.LC626.LC627.LC630.LC631.LC632.LC633.LC634.LC635.LC629.LC636.LC641.LC642.LC638.LC639.LC640.LC645.LC647.LC649.LC651.LC652.LC653.LC665.LC666.LC655.LC656.LC654.LC659.LC657.LC667.LC658.LC663.LC664.LC661.LC662.LC660.LC669.LC672.LC673.LC676.LC677.LC678.LC679.LC680.LC681.LC674.LC670.LC675.LC671.LC685.LC686.LC687.LC688.LC689.LC690.LC691.LC683.LC684.LC693.LC698.LC699.LC700.LC701.LC702.LC703.LC704.LC707.LC709.LC708.LC695.LC696.LC697.LC705.LC706.LC694.LC711.LC713.LC714.LC715.LC712.LC717.LC718.LC720.LC721.LC722.LC517.LC724.LC725.LC726.LC728.LC730.LC733.LC732.LC735.LC736.LC738.LC740.LC742.LC744.LC745.LC747.LC748.LC2.LC3.LC9.LC10.LC11.LC12.LC13.LC14.LC518.LC519.LC588_ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperED5Ev_ZN18vtkVolumeStateRAIID5Ev_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternalD5Ev_ZN20vtkVolumeInputHelperD5Ev_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED5Ev_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EEC5ERKSE__ZNSt6vectorISt5arrayIfLm3EESaIS1_EEC5EmRKS2__ZNKSt5ctypeIcE8do_widenEc_ZN12vtkAlgorithm14GetInformationEv_ZNK12vtkAlgorithm20UsesGarbageCollectorEv_ZN12vtkAlgorithm15SetAbortExecuteEi_ZN12vtkAlgorithm15GetAbortExecuteEv_ZN12vtkAlgorithm11GetProgressEv_ZN12vtkAlgorithm16GetProgressShiftEv_ZN12vtkAlgorithm16GetProgressScaleEv_ZN12vtkAlgorithm15GetProgressTextEv_ZN12vtkAlgorithm12GetErrorCodeEv_ZN12vtkAlgorithm18SetInputDataObjectEP13vtkDataObject_ZN12vtkAlgorithm18AddInputDataObjectEP13vtkDataObject_ZN12vtkAlgorithm19GetProgressObserverEv_ZN12vtkAlgorithm12SetErrorCodeEm_ZN17vtkAbstractMapper13GetTimeToDrawEv_ZN17vtkAbstractMapper17GetClippingPlanesEv_ZN19vtkAbstractMapper3D16IsARayCastMapperEv_ZN19vtkAbstractMapper3D24IsARenderIntoImageMapperEv_ZN23vtkAbstractVolumeMapper13SetScalarModeEi_ZN23vtkAbstractVolumeMapper13GetScalarModeEv_ZN23vtkAbstractVolumeMapper18SetArrayAccessModeEi_ZN23vtkAbstractVolumeMapper12GetArrayNameEv_ZN23vtkAbstractVolumeMapper10GetArrayIdEv_ZN23vtkAbstractVolumeMapper18GetArrayAccessModeEv_ZN23vtkAbstractVolumeMapper25GetGradientMagnitudeScaleEv_ZN23vtkAbstractVolumeMapper24GetGradientMagnitudeBiasEv_ZN23vtkAbstractVolumeMapper25GetGradientMagnitudeScaleEi_ZN23vtkAbstractVolumeMapper24GetGradientMagnitudeBiasEi_ZN15vtkVolumeMapper12SetBlendModeEi_ZN15vtkVolumeMapper12GetBlendModeEv_ZN15vtkVolumeMapper23SetAverageIPScalarRangeEdd_ZN15vtkVolumeMapper23GetAverageIPScalarRangeEv_ZN15vtkVolumeMapper23GetAverageIPScalarRangeEPd_ZN15vtkVolumeMapper11SetCroppingEi_ZN15vtkVolumeMapper19GetCroppingMinValueEv_ZN15vtkVolumeMapper19GetCroppingMaxValueEv_ZN15vtkVolumeMapper11GetCroppingEv_ZN15vtkVolumeMapper23SetCroppingRegionPlanesEdddddd_ZN15vtkVolumeMapper23GetCroppingRegionPlanesEv_ZN15vtkVolumeMapper23GetCroppingRegionPlanesEPd_ZN15vtkVolumeMapper28GetVoxelCroppingRegionPlanesEv_ZN15vtkVolumeMapper28GetVoxelCroppingRegionPlanesEPd_ZN15vtkVolumeMapper27SetComputeNormalFromOpacityEb_ZN15vtkVolumeMapper27GetComputeNormalFromOpacityEv_ZN15vtkVolumeMapper22SetCroppingRegionFlagsEi_ZN15vtkVolumeMapper30GetCroppingRegionFlagsMinValueEv_ZN15vtkVolumeMapper30GetCroppingRegionFlagsMaxValueEv_ZN15vtkVolumeMapper22GetCroppingRegionFlagsEv_ZN25vtkGPUVolumeRayCastMapper28SetAutoAdjustSampleDistancesEi_ZN25vtkGPUVolumeRayCastMapper36GetAutoAdjustSampleDistancesMinValueEv_ZN25vtkGPUVolumeRayCastMapper36GetAutoAdjustSampleDistancesMaxValueEv_ZN25vtkGPUVolumeRayCastMapper28GetAutoAdjustSampleDistancesEv_ZN25vtkGPUVolumeRayCastMapper35SetLockSampleDistanceToInputSpacingEi_ZN25vtkGPUVolumeRayCastMapper43GetLockSampleDistanceToInputSpacingMinValueEv_ZN25vtkGPUVolumeRayCastMapper43GetLockSampleDistanceToInputSpacingMaxValueEv_ZN25vtkGPUVolumeRayCastMapper35GetLockSampleDistanceToInputSpacingEv_ZN25vtkGPUVolumeRayCastMapper15SetUseJitteringEi_ZN25vtkGPUVolumeRayCastMapper23GetUseJitteringMinValueEv_ZN25vtkGPUVolumeRayCastMapper23GetUseJitteringMaxValueEv_ZN25vtkGPUVolumeRayCastMapper15GetUseJitteringEv_ZN25vtkGPUVolumeRayCastMapper15SetUseDepthPassEi_ZN25vtkGPUVolumeRayCastMapper23GetUseDepthPassMinValueEv_ZN25vtkGPUVolumeRayCastMapper23GetUseDepthPassMaxValueEv_ZN25vtkGPUVolumeRayCastMapper15GetUseDepthPassEv_ZN25vtkGPUVolumeRayCastMapper17SetSampleDistanceEf_ZN25vtkGPUVolumeRayCastMapper17GetSampleDistanceEv_ZN25vtkGPUVolumeRayCastMapper22SetImageSampleDistanceEf_ZN25vtkGPUVolumeRayCastMapper30GetImageSampleDistanceMinValueEv_ZN25vtkGPUVolumeRayCastMapper30GetImageSampleDistanceMaxValueEv_ZN25vtkGPUVolumeRayCastMapper22GetImageSampleDistanceEv_ZN25vtkGPUVolumeRayCastMapper29SetMinimumImageSampleDistanceEf_ZN25vtkGPUVolumeRayCastMapper37GetMinimumImageSampleDistanceMinValueEv_ZN25vtkGPUVolumeRayCastMapper37GetMinimumImageSampleDistanceMaxValueEv_ZN25vtkGPUVolumeRayCastMapper29GetMinimumImageSampleDistanceEv_ZN25vtkGPUVolumeRayCastMapper29SetMaximumImageSampleDistanceEf_ZN25vtkGPUVolumeRayCastMapper37GetMaximumImageSampleDistanceMinValueEv_ZN25vtkGPUVolumeRayCastMapper37GetMaximumImageSampleDistanceMaxValueEv_ZN25vtkGPUVolumeRayCastMapper29GetMaximumImageSampleDistanceEv_ZN25vtkGPUVolumeRayCastMapper19SetFinalColorWindowEf_ZN25vtkGPUVolumeRayCastMapper19GetFinalColorWindowEv_ZN25vtkGPUVolumeRayCastMapper18SetFinalColorLevelEf_ZN25vtkGPUVolumeRayCastMapper18GetFinalColorLevelEv_ZN25vtkGPUVolumeRayCastMapper19SetMaxMemoryInBytesEx_ZN25vtkGPUVolumeRayCastMapper19GetMaxMemoryInBytesEv_ZN25vtkGPUVolumeRayCastMapper20SetMaxMemoryFractionEf_ZN25vtkGPUVolumeRayCastMapper28GetMaxMemoryFractionMinValueEv_ZN25vtkGPUVolumeRayCastMapper28GetMaxMemoryFractionMaxValueEv_ZN25vtkGPUVolumeRayCastMapper20GetMaxMemoryFractionEv_ZN25vtkGPUVolumeRayCastMapper17SetReportProgressEb_ZN25vtkGPUVolumeRayCastMapper17GetReportProgressEv_ZN25vtkGPUVolumeRayCastMapper12GetMaskInputEv_ZN25vtkGPUVolumeRayCastMapper11SetMaskTypeEi_ZN25vtkGPUVolumeRayCastMapper11GetMaskTypeEv_ZN25vtkGPUVolumeRayCastMapper18SetMaskBlendFactorEf_ZN25vtkGPUVolumeRayCastMapper26GetMaskBlendFactorMinValueEv_ZN25vtkGPUVolumeRayCastMapper26GetMaskBlendFactorMaxValueEv_ZN25vtkGPUVolumeRayCastMapper18GetMaskBlendFactorEv_ZN25vtkGPUVolumeRayCastMapper26SetGlobalIlluminationReachEf_ZN25vtkGPUVolumeRayCastMapper34GetGlobalIlluminationReachMinValueEv_ZN25vtkGPUVolumeRayCastMapper34GetGlobalIlluminationReachMaxValueEv_ZN25vtkGPUVolumeRayCastMapper26GetGlobalIlluminationReachEv_ZN25vtkGPUVolumeRayCastMapper31SetVolumetricScatteringBlendingEf_ZN25vtkGPUVolumeRayCastMapper39GetVolumetricScatteringBlendingMinValueEv_ZN25vtkGPUVolumeRayCastMapper39GetVolumetricScatteringBlendingMaxValueEv_ZN25vtkGPUVolumeRayCastMapper31GetVolumetricScatteringBlendingEv_ZN25vtkGPUVolumeRayCastMapper16SetRenderToImageEi_ZN25vtkGPUVolumeRayCastMapper16GetRenderToImageEv_ZN25vtkGPUVolumeRayCastMapper23SetDepthImageScalarTypeEi_ZN25vtkGPUVolumeRayCastMapper23GetDepthImageScalarTypeEv_ZN25vtkGPUVolumeRayCastMapper23SetClampDepthToBackfaceEi_ZN25vtkGPUVolumeRayCastMapper23GetClampDepthToBackfaceEv_ZN25vtkGPUVolumeRayCastMapper17SetColorRangeTypeEi_ZN25vtkGPUVolumeRayCastMapper17GetColorRangeTypeEv_ZN25vtkGPUVolumeRayCastMapper25SetScalarOpacityRangeTypeEi_ZN25vtkGPUVolumeRayCastMapper25GetScalarOpacityRangeTypeEv_ZN25vtkGPUVolumeRayCastMapper27SetGradientOpacityRangeTypeEi_ZN25vtkGPUVolumeRayCastMapper27GetGradientOpacityRangeTypeEv_ZN25vtkGPUVolumeRayCastMapper8GetInputEv_ZN25vtkGPUVolumeRayCastMapper18SetInputConnectionEP18vtkAlgorithmOutput_ZN25vtkGPUVolumeRayCastMapper23GetTransfer2DYAxisArrayEv_ZN25vtkGPUVolumeRayCastMapper10SetAMRModeEi_ZN25vtkGPUVolumeRayCastMapper18GetAMRModeMinValueEv_ZN25vtkGPUVolumeRayCastMapper18GetAMRModeMaxValueEv_ZN25vtkGPUVolumeRayCastMapper10GetAMRModeEv_ZNK31vtkOpenGLGPUVolumeRayCastMapper20GetClassNameInternalEv_ZN31vtkOpenGLGPUVolumeRayCastMapper14GetCurrentPassEv_ZN31vtkOpenGLGPUVolumeRayCastMapper9PreRenderEP11vtkRendererP9vtkVolumePdS4_ij_ZN31vtkOpenGLGPUVolumeRayCastMapper11RenderBlockEP11vtkRendererP9vtkVolumej_ZN31vtkOpenGLGPUVolumeRayCastMapper10PostRenderEP11vtkRendereri_ZN31vtkOpenGLGPUVolumeRayCastMapper17GetReductionRatioEPd_ZN31vtkOpenGLGPUVolumeRayCastMapper17IsRenderSupportedEP15vtkRenderWindowP17vtkVolumeProperty_ZN9vtkCamera11GetPositionEv_ZN9vtkCamera24GetDirectionOfProjectionERdS0_S0__ZN9vtkCamera21GetParallelProjectionEv_ZN9vtkCamera16GetClippingRangeEv_ZN18vtkRectilinearGrid13GetDimensionsEPi_ZN18vtkRectilinearGrid9GetExtentERiS0_S0_S0_S0_S0__ZN7vtkProp15GetPropertyKeysEv_ZN7vtkProp22GetAllocatedRenderTimeEv_ZN11vtkRenderer19GetTwoSidedLightingEv_ZN11vtkRenderer11GetSelectorEv_ZN12vtkImageData9GetExtentERiS0_S0_S0_S0_S0__ZN12vtkImageData10GetSpacingERdS0_S0__ZN9vtkWindow11MakeCurrentEv_ZN17vtkVolumeProperty24GetIndependentComponentsEv_ZN17vtkVolumeProperty20GetInterpolationTypeEv_ZN17vtkVolumeProperty23GetTransferFunctionModeEv_ZN17vtkVolumeProperty25GetDisableGradientOpacityEv_ZN17vtkVolumeProperty16GetSliceFunctionEv_ZN17vtkVolumeProperty23GetScatteringAnisotropyEv_ZN17vtkVolumeProperty27GetUseClippedVoxelIntensityEv_ZN17vtkVolumeProperty24GetClippedVoxelIntensityEv_ZN15vtkRenderWindow17GetStencilCapableEv_ZN21vtkOpenGLRenderWindow10PopContextEv_ZN21vtkOpenGLRenderWindow8GetStateEv_ZNK16vtkAbstractArray11GetDataSizeEv_ZN11vtkPointSet9GetPointsEv_ZN11vtkPolyData16GetNumberOfCellsEv_ZN18vtkDensifyPolyData23SetNumberOfSubdivisionsEj_ZN8vtkLight15GetAmbientColorEv_ZN8vtkLight15GetDiffuseColorEv_ZN8vtkLight16GetSpecularColorEv_ZN8vtkLight12GetIntensityEv_ZN8vtkLight9GetSwitchEv_ZN8vtkLight13GetPositionalEv_ZN8vtkLight11GetExponentEv_ZN8vtkLight12GetConeAngleEv_ZN8vtkLight20GetAttenuationValuesEv_ZN8vtkLight12GetLightTypeEv_ZN14vtkMultiVolume9GetMatrixEv_ZN26vtkOpenGLFramebufferObject11GetLastSizeERiS0__ZN19vtkOpenGLRenderPass20GetActiveDrawBuffersEv_ZN17vtkShaderProperty19GetVertexShaderCodeEv_ZN17vtkShaderProperty21GetFragmentShaderCodeEv_ZN17vtkShaderProperty25GetFragmentCustomUniformsEv_ZN17vtkShaderProperty23GetVertexCustomUniformsEv_ZN17vtkShaderProperty25GetGeometryCustomUniformsEv_ZN8vtkPlane9SetNormalEddd_ZN8vtkPlane9GetNormalEPd_ZN8vtkPlane9SetOriginEddd_ZN8vtkPlane9GetOriginEPd_ZN9vtkMapper24ReleaseGraphicsResourcesEP9vtkWindow_ZN16vtkShaderProgram11GetCompiledEv_ZN16vtkTextureObject8GetWidthEv_ZN16vtkTextureObject9GetHeightEv_ZN16vtkTextureObject13GetComponentsEv_ZN16vtkTextureObject9GetHandleEv_ZN16vtkTextureObject17SetAutoParametersEi_ZN16vtkTextureObject8SetWrapSEi_ZN16vtkTextureObject8SetWrapTEi_ZN16vtkTextureObject21SetMinificationFilterEi_ZN16vtkTextureObject22SetMagnificationFilterEi_ZN26vtkOpenGLVolumeLookupTable16GetTextureHeightEv_ZN19vtkHardwareSelector19GetFieldAssociationEv_ZN19vtkHardwareSelector17GetPropColorValueERfS0_S0__ZN19vtkHardwareSelector14GetCurrentPassEv_ZNK19vtkGenericDataArrayI23vtkAOSDataArrayTemplateIjEjE15GetDataTypeSizeEv_ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperED2Ev_ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperED1Ev_ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperED0Ev_ZdlPv_ZN25vtkGPUVolumeRayCastMapper23SetTransfer2DYAxisArrayEPKcstrcmp_ZdaPvstrlen_Znammemcpy_ZN31vtkOpenGLGPUVolumeRayCastMapper30GetNumberOfGenerationsFromBaseEPKc_ZN13vtkObjectBase34GetNumberOfGenerationsFromBaseTypeEPKc_ZN21vtkOpenGLRenderWindow11PushContextEv_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm_ZN9vtkCamera24GetDirectionOfProjectionEPd_ZN18vtkRectilinearGrid9GetExtentEPi_ZN12vtkImageData9GetExtentEPi_ZN12vtkImageData10GetSpacingEPd_ZN26vtkOpenGLFramebufferObject11GetLastSizeEPi_ZN19vtkHardwareSelector17GetPropColorValueEPf_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm_ZSt19__throw_logic_errorPKc__stack_chk_fail_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base_ZN15vtkVolumeMapper11CroppingOffEv_ZN15vtkVolumeMapper10CroppingOnEv_ZN25vtkGPUVolumeRayCastMapper27AutoAdjustSampleDistancesOnEv_ZN25vtkGPUVolumeRayCastMapper28AutoAdjustSampleDistancesOffEv_ZN25vtkGPUVolumeRayCastMapper34LockSampleDistanceToInputSpacingOnEv_ZN25vtkGPUVolumeRayCastMapper35LockSampleDistanceToInputSpacingOffEv_ZN25vtkGPUVolumeRayCastMapper14UseJitteringOnEv_ZN25vtkGPUVolumeRayCastMapper15UseJitteringOffEv_ZN25vtkGPUVolumeRayCastMapper14UseDepthPassOnEv_ZN25vtkGPUVolumeRayCastMapper15UseDepthPassOffEv_ZN25vtkGPUVolumeRayCastMapper9AMRModeOnEv_ZN25vtkGPUVolumeRayCastMapper10AMRModeOffEv_ZN25vtkGPUVolumeRayCastMapper15RenderToImageOnEv_ZN25vtkGPUVolumeRayCastMapper23ClampDepthToBackfaceOffEv_ZN25vtkGPUVolumeRayCastMapper16RenderToImageOffEv_ZN25vtkGPUVolumeRayCastMapper22ClampDepthToBackfaceOnEv_ZN15vtkVolumeMapper26ComputeNormalFromOpacityOnEv_ZN15vtkVolumeMapper27ComputeNormalFromOpacityOffEv_ZN12vtkAlgorithm14AbortExecuteOnEv_ZN12vtkAlgorithm15AbortExecuteOffEv_ZN8vtkPlane9SetOriginEPKd_ZN8vtkPlane9SetNormalEPKd_ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE7ReleaseEv_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS__ZN31vtkOpenGLGPUVolumeRayCastMapper3IsAEPKc_ZN13vtkObjectBase8IsTypeOfEPKc_ZN15vtkVolumeMapper23SetCroppingRegionPlanesEPKdDW.ref.__gxx_personality_v0_Znwm__cxa_begin_catch__cxa_rethrow__cxa_end_catch_Unwind_Resume_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS__ZN19vtkSmartPointerBaseC2ERKS__ZN19vtkSmartPointerBaseD2Ev_ZNSt7__cxx119to_stringEi_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEmc_GLOBAL_OFFSET_TABLE__ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits_ZN9vtkvolume33ComputeClipPositionImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume25ComputeTextureCoordinatesB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume18BaseImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN19vtkSmartPointerBaseC2EP13vtkObjectBase_ZN10vtkDataSet17GetCellGhostArrayEv_ZN10vtkDataSet18GetPointGhostArrayEv_ZN9vtkvolume8BaseExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume26ComputeGradientDeclarationB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEE_ZN17vtkVolumeProperty8GetShadeEi_ZN9vtkvolume19ComputeMatricesInitB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperi_ZSt20__throw_length_errorPKc_ZN9vtkvolume24PhaseFunctionDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume31ComputeLightingMultiDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiib_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc_ZN9vtkvolume30ComputeRayDirectionDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumei_ZN11vtkRenderer15GetActiveCameraEv_ZN9vtkvolume24ShadingDeclarationVertexB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume26ShadingDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume11ShadingInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume20PickingActorPassExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume22PickingIdLow24PassExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume23PickingIdHigh24PassExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume11ShadingExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeii_ZN9vtkvolume28TerminationDeclarationVertexB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume30TerminationDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume27PickingActorPassDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume25TerminationImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume15TerminationExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume25CroppingDeclarationVertexB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume27CroppingDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume12CroppingInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume22CroppingImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume12CroppingExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume25ClippingDeclarationVertexB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume27ClippingDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume12ClippingInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume22ClippingImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume12ClippingExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume21BinaryMaskDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTexturei_ZN9vtkvolume24BinaryMaskImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTexturei_ZN9vtkvolume32CompositeMaskDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTexturei_ZN9vtkvolume27CompositeMaskImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTextureii_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm_ZN9vtkvolume32RenderToImageDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume17RenderToImageInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume27RenderToImageImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume17RenderToImageExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume13DepthPassInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume23DepthPassImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume13DepthPassExitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume20WorkerImplementationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN9vtkvolume26ImageSampleDeclarationFragERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEm_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm_ZN18vtkVolumeStateRAIID2Ev__glewBindVertexArray__glewBindBuffer_ZN14vtkOpenGLState13vtkglCullFaceEj_ZN14vtkOpenGLState12SetEnumStateEjb_ZN14vtkOpenGLState22vtkglBlendFuncSeparateEjjjj_ZN14vtkOpenGLState14vtkglDepthMaskEh_ZN14vtkOpenGLState12vtkglDisableEj_ZN18vtkVolumeStateRAIID1Ev_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal8LoadMaskEP11vtkRenderer_ZN17vtkAbstractMapper10GetScalarsEP10vtkDataSetiiiPKcRi_ZN16vtkVolumeTexture10LoadVolumeEP11vtkRendererP10vtkDataSetP12vtkDataArrayii_ZN12vtkTimeStamp8ModifiedEv_ZN16vtkVolumeTexture16GetLoadedScalarsEv_ZN16vtkVolumeTexture3NewEv_ZN19vtkSmartPointerBaseC2EP13vtkObjectBaseRKNS_11NoReferenceE_ZN19vtkSmartPointerBaseaSEP13vtkObjectBase_ZN16vtkVolumeTexture13SetPartitionsEiii_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal27ReleaseGraphicsMaskTransferEP9vtkWindow_ZN26vtkOpenGLVolumeLookupTable24ReleaseGraphicsResourcesEP9vtkWindow_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18DeleteMaskTransferEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17SetupMaskTransferEP11vtkRenderer_ZN37vtkOpenGLVolumeMaskTransferFunction2D3NewEv_ZN52vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D3NewEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternalD2Ev_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE_ZTVSt15basic_streambufIcSt11char_traitsIcEE_ZNSt6localeD1Ev_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE_ZTVSt9basic_iosIcSt11char_traitsIcEE_ZNSt8ios_baseD2Ev_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternalD1Ev_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14IsCameraInsideEP11vtkRendererP9vtkVolumePd_ZN12vtkMatrix4x43NewEv_ZN11vtkRenderer19GetTiledAspectRatioEv_ZN12vtkMatrix4x413MultiplyPointEPKdS1_Pd_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24IsGeometryUpdateRequiredEP11vtkRendererP9vtkVolumePd_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18SetCroppingRegionsEP16vtkShaderProgramPd_ZN16vtkShaderProgram13SetUniform1fvEPKciPKf_ZN16vtkShaderProgram13SetUniform1ivEPKciPKi_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17CheckPropertyKeysEP9vtkVolume_ZN14vtkOpenGLActor19GLDepthMaskOverrideEv_ZN14vtkInformation3HasEP24vtkInformationIntegerKey_ZN19vtkOpenGLRenderPass12RenderPassesEv_ZN14vtkInformation3HasEP33vtkInformationObjectBaseVectorKey_ZN14vtkInformation3GetEP24vtkInformationIntegerKey_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17CheckPickingStateEP11vtkRenderer_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal12BeginPickingEP11vtkRenderer_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal12SetPickingIdEP11vtkRenderer_ZN16vtkShaderProgram12SetUniform3fEPKcPKf_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal10EndPickingEP11vtkRenderer_ZN25vtkGPUVolumeRayCastMapper19GetTransformedInputEi_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal33LoadRequireDepthTextureExtensionsEP15vtkRenderWindow_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19CaptureDepthTextureEP11vtkRenderer_ZN16vtkTextureObject10SetContextEP21vtkOpenGLRenderWindow_ZN16vtkTextureObject20AllocateDepthStencilEjj_ZN16vtkTextureObject10Allocate2DEjjiii_ZN16vtkTextureObject6ResizeEjj_ZN14vtkOpenGLState26PushDrawFramebufferBindingEv_ZN26vtkOpenGLFramebufferObject4BindEj_ZN14vtkOpenGLState20vtkglBlitFramebufferEiiiiiiiijj_ZN14vtkOpenGLState25PopDrawFramebufferBindingEv_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv_ZSt4cerr_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l_ZNSo3putEc_ZNSo5flushEv_ZN16vtkTextureObject13AllocateDepthEjji_ZNKSt5ctypeIcE13_M_widen_initEv_ZN26vtkOpenGLFramebufferObject3NewEv_ZN26vtkOpenGLFramebufferObject10SetContextEP15vtkRenderWindow_ZN26vtkOpenGLFramebufferObject18AddDepthAttachmentEP16vtkTextureObject_ZN26vtkOpenGLFramebufferObject18AddColorAttachmentEjP16vtkTextureObjectjjj_ZN16vtkTextureObject3NewEv_ZSt16__throw_bad_castv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19CreateBufferObjectsEv__glewGenVertexArrays__glewGenBuffers_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19DeleteBufferObjectsEv__glewDeleteBuffers__glewDeleteVertexArrays_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25ConvertTextureToImageDataEP16vtkTextureObjectP12vtkImageData_ZN16vtkTextureObject14GetVTKDataTypeEv_ZN12vtkImageData3NewEv_ZN16vtkTextureObject8DownloadEv_ZN20vtkPixelBufferObject9MapBufferENS_10BufferTypeE_ZN16vtkPixelTransfer4BlitERK14vtkPixelExtentS2_S2_S2_iiPviiS3__ZN20vtkPixelBufferObject11UnmapBufferENS_10BufferTypeE_ZN31vtkOpenGLGPUVolumeRayCastMapper13GetDepthImageEP12vtkImageData_ZN31vtkOpenGLGPUVolumeRayCastMapper13GetColorImageEP12vtkImageData_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal28GetNumImageSampleDrawBuffersEP9vtkVolume_ZN14vtkInformation6LengthEP33vtkInformationObjectBaseVectorKey_ZN14vtkInformation3GetEP33vtkInformationObjectBaseVectorKeyi_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19ExitRenderToTextureEP11vtkRenderer_ZN26vtkOpenGLFramebufferObject21RemoveDepthAttachmentEv_ZN26vtkOpenGLFramebufferObject21RemoveColorAttachmentEj_ZN26vtkOpenGLFramebufferObject21DeactivateDrawBuffersEv_ZN26vtkOpenGLFramebufferObject10GetContextEv_ZN14vtkOpenGLState25PopReadFramebufferBindingEv_ZN16vtkTextureObject10DeactivateEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal13ExitDepthPassEP11vtkRenderer_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal39ReleaseRenderToTextureGraphicsResourcesEP9vtkWindow_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal20SetupRenderToTextureEP11vtkRenderer_ZN14vtkOpenGLState26PushReadFramebufferBindingEv_ZN26vtkOpenGLFramebufferObject4BindEv_ZN26vtkOpenGLFramebufferObject18InitializeViewportEii_ZN26vtkOpenGLFramebufferObject19ActivateDrawBuffersEj_ZN26vtkOpenGLFramebufferObject22CheckFrameBufferStatusEj_ZN14vtkOpenGLState15vtkglClearColorEffff_ZN14vtkOpenGLState10vtkglClearEj_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal33ReleaseDepthPassGraphicsResourcesEP9vtkWindow_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14SetupDepthPassEP11vtkRenderer_ZN12vtkAlgorithm13GetOutputPortEi_ZN14vtkOpenGLState11vtkglEnableEj_ZN16vtkTextureObject4BindEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17RenderContourPassEP11vtkRenderer_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal35ReleaseImageSampleGraphicsResourcesEP9vtkWindow_ZN31vtkOpenGLGPUVolumeRayCastMapper24ReleaseGraphicsResourcesEP9vtkWindow_ZN20vtkVolumeInputHelper24ReleaseGraphicsResourcesEP9vtkWindow_ZN16vtkVolumeTexture24ReleaseGraphicsResourcesEP9vtkWindow_ZN31vtkOpenGLGPUVolumeRayCastMapper21SetSharedDepthTextureEP16vtkTextureObject_ZN31vtkOpenGLGPUVolumeRayCastMapper15GetDepthTextureEv_ZN31vtkOpenGLGPUVolumeRayCastMapper15GetColorTextureEv_ZN31vtkOpenGLGPUVolumeRayCastMapper22ComputeReductionFactorEd_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17ForceTransferInitEv_ZN20vtkVolumeInputHelper17ForceTransferInitEv_ZN20vtkVolumeInputHelperD2Ev_ZN20vtkVolumeInputHelperD1Ev_ZN31vtkOpenGLGPUVolumeRayCastMapperD2Ev_ZTV31vtkOpenGLGPUVolumeRayCastMapper_ZN25vtkGPUVolumeRayCastMapperD2Ev_ZN31vtkOpenGLGPUVolumeRayCastMapperD1Ev_ZN31vtkOpenGLGPUVolumeRayCastMapperD0Ev_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18ClearRemovedInputsEP9vtkWindow_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal26UpdateTransfer2DYAxisArrayEP11vtkRendererP9vtkVolume_ZN12vtkFieldData16GetAbstractArrayEPKcRi_ZN12vtkFieldData8GetArrayEPKcRi_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal21LastModifiedLightTimeEP18vtkLightCollection_ZN18vtkLightCollection12GetNextLightERPv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25SetMapperShaderParametersEP16vtkShaderProgramP11vtkRendererii_ZN16vtkTextureObject14GetTextureUnitEv_ZN16vtkShaderProgram11SetUniformiEPKci_ZN16vtkShaderProgram11SetUniformfEPKcf_ZN16vtkVolumeTexture15GetCurrentBlockEv_ZN16vtkShaderProgram12SetUniform4fEPKcPKf_ZN21vtkOpenGLRenderWindow19GetNoiseTextureUnitEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25SetCameraShaderParametersEP16vtkShaderProgramP11vtkRendererP15vtkOpenGLCamera_ZN12vtkMatrix4x48DeepCopyEPdPKd_ZN12vtkMatrix4x46InvertEPKdPd_ZN16vtkShaderProgram16SetUniformMatrixEPKcP12vtkMatrix4x4_ZN16vtkShaderProgram13SetUniform3fvEPKciPA3_Kf_ZN16vtkShaderProgram13SetUniform2fvEPKciPA2_Kf_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal23SetMaskShaderParametersEP16vtkShaderProgramP17vtkVolumePropertyi_ZN26vtkOpenGLVolumeLookupTable8ActivateEv_ZN26vtkOpenGLVolumeLookupTable14GetTextureUnitEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal26SetRenderToImageParametersEP16vtkShaderProgram_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal15FinishRenderingEi_ZN20vtkVolumeInputHelper26DeactivateTransferFunctionEi_ZN26vtkOpenGLVolumeLookupTable10DeactivateEv_ZN31vtkOpenGLGPUVolumeRayCastMapper13SetPartitionsEttt_ZN31vtkOpenGLGPUVolumeRayCastMapper23GetRenderPassStageMTimeEP9vtkVolume_ZN14vtkInformation5ClearEv_ZN14vtkInformation9CopyEntryEPS_P33vtkInformationObjectBaseVectorKeyi_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9__ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev_ZN31vtkOpenGLGPUVolumeRayCastMapperC2Ev_ZN25vtkGPUVolumeRayCastMapperC2Ev_ZN14vtkInformation3NewEv_ZNSt8ios_baseC2Ev_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E_ZNSt6localeC1Ev_ZN19vtkSmartPointerBaseC2Ev_ZN16vtkContourFilter3NewEv_ZN17vtkPolyDataMapper3NewEv_ZN8vtkActor3NewEv_ZTV29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev_ZN31vtkOpenGLGPUVolumeRayCastMapperC1Ev_ZN31vtkOpenGLGPUVolumeRayCastMapper3NewEv_ZN13vtkObjectBase20InitializeObjectBaseEv_ZNK31vtkOpenGLGPUVolumeRayCastMapper19NewInstanceInternalEv_ZN9vtkvolume21BaseDeclarationVertexB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeb_ZN25vtkGPUVolumeRayCastMapper13GetInputCountEv_ZNSolsEi_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4__ZN9vtkvolume8BaseInitB5cxx11EP11vtkRendererP15vtkVolumeMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEb_ZN9vtkvolume16GradientCacheDecB5cxx11EP11vtkRendererP9vtkVolumeRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEi_ZN9vtkvolume23PreComputeGradientsImplB5cxx11EP11vtkRendererP9vtkVolumeii_ZN9vtkvolume30ComputeOpacityMultiDeclarationB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEE_ZNSo9_M_insertImEERSoT__ZN9vtkvolume33ComputeGradientOpacityMulti1DDeclB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEE_ZN9vtkvolume21Transfer2DDeclarationB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEE_ZN9vtkvolume21ShadingMultipleInputsB5cxx11EP15vtkVolumeMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEE_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev_ZN9vtkvolume28ComputeColorMultiDeclarationB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEEb_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8__ZN9vtkvolume30ComputeColor2DYAxisDeclarationEiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS6_EEE_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5__ZN9vtkvolume18ShadingSingleInputB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeP12vtkImageDataP16vtkVolumeTextureiii_ZN9vtkvolume26ComputeLightingDeclarationB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiiib_ZN9vtkvolume28ComputeGradientOpacity1DDeclEP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS8_EEE_ZN9vtkvolume36ComputeRGBA2DWithGradientDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEEi_ZN9vtkvolume23ComputeColorDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEE_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate_ZN9vtkvolume25ComputeOpacityDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEE_ZN9vtkvolume27ComputeOpacity2DDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEEi_ZN9vtkvolume25ComputeColor2DDeclarationEP11vtkRendererP15vtkVolumeMapperP9vtkVolumeiiSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiSC_EEEi_ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EEC2ERKSE__ZNSt8_Rb_treeIiSt4pairIKiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stIS8_ESt4lessIiESaIS8_EEC1ERKSE__ZN9vtkvolume29ImageSampleImplementationFragERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EEm_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev_ZNSt6vectorISt5arrayIfLm3EESaIS1_EEC2EmRKS2__ZNSt6vectorISt5arrayIfLm3EESaIS1_EEC1EmRKS2__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal27SetLightingShaderParametersEP11vtkRendererP16vtkShaderProgramP9vtkVolumei_ZN17vtkVolumeProperty10GetAmbientEi_ZN17vtkVolumeProperty10GetDiffuseEi_ZN17vtkVolumeProperty11GetSpecularEi_ZN17vtkVolumeProperty16GetSpecularPowerEipow_ZN8vtkLight24GetTransformedFocalPointEv_ZN8vtkLight22GetTransformedPositionEv_ZN20vtkAbstractTransform6UpdateEv_ZN16vtkShaderProgram13SetUniform3fvEPKciPKfmemsetsqrt_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE7reserveEm_ZNSt8_Rb_treeIP36vtkGenericOpenGLResourceFreeCallbackS1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE16_M_insert_uniqueIRKS1_EESt4pairISt17_Rb_tree_iteratorIS1_EbEOT__ZN29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE25RegisterGraphicsResourcesEP21vtkOpenGLRenderWindow_ZNSt6vectorI15vtkSmartPointerI16vtkTextureObjectESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT__ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT__ZNSt6vectorIfSaIfEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPfS1_EEmRKfmemmove_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19BindTransformationsEP16vtkShaderProgramP12vtkMatrix4x4_ZN12vtkMatrix4x48IdentityEPd_ZN12vtkMatrix4x49TransposeEPKdPd_ZN16vtkShaderProgram20SetUniformMatrix4x4vEPKciPf_ZNSt8_Rb_treeIiSt4pairIKi20vtkVolumeInputHelperESt10_Select1stIS3_ESt4lessIiESaIS3_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS3_ERS1__ZN9vtkvolume20ComputeColorUniformsB5cxx11ERSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS1_EEEiP17vtkVolumeProperty_ZZNSt8__detail18__to_chars_10_implImEEvPcjT_E8__digits_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal25SetVolumeShaderParametersEP16vtkShaderProgramiiP12vtkMatrix4x4_ZN20vtkVolumeInputHelper24ActivateTransferFunctionEP16vtkShaderProgrami_ZN16vtkShaderProgram13SetUniform4fvEPKciPA4_Kf_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal18UpdateMaskTransferEP11vtkRendererP9vtkVolumej_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19RefreshMaskTransferEP11vtkRendererR20vtkVolumeInputHelper_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal22UpdateSamplingDistanceEP11vtkRenderer_ZN10vtkDataSet9GetBoundsEPd_ZN15vtkVolumeMapper29SpacingAdjustedSampleDistanceEPdPi_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal23UpdateTransferFunctionsEP11vtkRenderer_ZN20vtkVolumeInputHelper23RefreshTransferFunctionEP11vtkRendereriif_ZN9vtkvolume23BaseDeclarationFragmentB5cxx11EP11vtkRendererP15vtkVolumeMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEiibii_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc_ZNSt6vectorIdSaIdEE17_M_default_appendEm_ZN19vtkGenericDataArrayI23vtkAOSDataArrayTemplateIjEjE21SetNumberOfComponentsEi_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal20RenderVolumeGeometryEP11vtkRendererP16vtkShaderProgramP9vtkVolumePdglDrawElements_ZN11vtkPolyData3NewEv_ZN12vtkCellArray3NewEv_ZN9vtkPoints3NewEv_ZN11vtkPolyData8SetPolysEP12vtkCellArray_ZN18vtkDensifyPolyData3NewEv_ZN20vtkPolyDataAlgorithm12SetInputDataEP13vtkDataObject_ZN20vtkPolyDataAlgorithm9GetOutputEv_ZN11vtkPolyData8GetPolysEv_ZN19vtkUnsignedIntArray3NewEv__glewBufferData_ZN16vtkShaderProgram20EnableAttributeArrayEPKc_ZN16vtkShaderProgram17UseAttributeArrayEPKcimiiNS_15NormalizeOptionE_ZN8vtkPlane3NewEv_ZN18vtkPlaneCollection3NewEv_ZN13vtkCollection14RemoveAllItemsEv_ZN13vtkCollection7AddItemEP9vtkObject_ZN21vtkClipConvexPolyData3NewEv_ZN21vtkClipConvexPolyData9SetPlanesEP18vtkPlaneCollection_ZN23vtkAOSDataArrayTemplateIiE10GetPointerEx_ZN9vtkIdList14SetNumberOfIdsEx_ZN12vtkDataArray16InsertNextTuple3Eddd_ZN23vtkAOSDataArrayTemplateIxE10GetPointerEx_ZNSt6vectorIfSaIfEE17_M_realloc_insertIJfEEEvN9__gnu_cxx17__normal_iteratorIPfS1_EEDpOT__ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17SetClippingPlanesEP11vtkRendererP16vtkShaderProgramP9vtkVolume_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal27SetAdvancedShaderParametersEP11vtkRendererP16vtkShaderProgramP9vtkVolumePN16vtkVolumeTexture11VolumeBlockEi_ZN16vtkShaderProgram12SetUniform3fEPKcPKd_ZN17vtkVolumeProperty19GetIsoSurfaceValuesEv_ZN16vtkContourValues19GetNumberOfContoursEv_ZN16vtkContourValues8GetValueEi_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal17RenderSingleInputEP11vtkRendererP15vtkOpenGLCameraP16vtkShaderProgram_ZN16vtkVolumeTexture21SortBlocksBackToFrontEP11vtkRendererP12vtkMatrix4x4_ZN16vtkVolumeTexture12GetNextBlockEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal20RenderMultipleInputsEP11vtkRendererP15vtkOpenGLCameraP16vtkShaderProgram_ZNSt8_Rb_treeIN9vtkShader4TypeESt4pairIKS1_PS0_ESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS3__ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderShadingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN16vtkShaderProgram10SubstituteEP9vtkShaderRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_b_ZN31vtkOpenGLGPUVolumeRayCastMapper16ReplaceShaderRTTERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderPickingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN31vtkOpenGLGPUVolumeRayCastMapper17ReplaceShaderBaseERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderMaskingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN31vtkOpenGLGPUVolumeRayCastMapper17GetShaderTemplateERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP23vtkOpenGLShaderProperty_ZN17vtkShaderProperty19HasVertexShaderCodeEv_ZN9vtkShader9SetSourceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE_ZN17vtkShaderProperty21HasFragmentShaderCodeEvraycastervsraycasterfs_ZN31vtkOpenGLGPUVolumeRayCastMapper27ReplaceShaderCustomUniformsERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP23vtkOpenGLShaderProperty_ZN17vtkOpenGLUniforms15GetDeclarationsB5cxx11Ev_ZN31vtkOpenGLGPUVolumeRayCastMapper21ReplaceShaderClippingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN31vtkOpenGLGPUVolumeRayCastMapper21ReplaceShaderCroppingERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei__dso_handle_ZNSt8ios_base4InitC1Ev_ZNSt8ios_base4InitD1Ev__cxa_atexit_ZN20vtkDebugLeaksManagerC1Ev_ZN20vtkDebugLeaksManagerD1Ev_Z38vtkRenderingOpenGL2_AutoInit_Constructv_ZN6vtksys18SystemToolsManagerC1Ev_ZN6vtksys18SystemToolsManagerD1Ev_ZN31vtkObjectFactoryRegistryCleanupC1Ev_ZN31vtkObjectFactoryRegistryCleanupD1Ev_ZN18vtkTimerLogCleanupC1Ev_ZN18vtkTimerLogCleanupD1Ev_ZN9vtkvolume28ComputeOpacityEvaluationCallEP31vtkOpenGLGPUVolumeRayCastMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEEiiiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb_ZN9vtkObject23GetGlobalWarningDisplayEv_ZN20vtkOStrStreamWrapperC1Ev_ZN17vtkOStreamWrapperlsEPKc_ZN6vtksys11SystemTools15GetFilenameNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE_ZN20vtkOStrStreamWrapper3strEv_Z40vtkOutputWindowDisplayGenericWarningTextPKciS0__ZN20vtkOStrStreamWrapper5rdbufEv_ZN20vtkOStrStreamWrapper6freezeEi_ZN20vtkOStrStreamWrapperD1Ev_ZN9vtkvolume33ComputeDensityGradientDeclarationB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS3_EEEiii_ZN9vtkvolume26ComputeVolumetricShadowDecB5cxx11EP31vtkOpenGLGPUVolumeRayCastMapperP9vtkVolumeiiRSt3mapIi20vtkVolumeInputHelperSt4lessIiESaISt4pairIKiS5_EEEi_ZN31vtkOpenGLGPUVolumeRayCastMapper20ReplaceShaderComputeERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN9vtkvolume15TerminationInitB5cxx11EP11vtkRendererP15vtkVolumeMapperP9vtkVolume_ZN17vtkOStreamWrapperlsERKNS_10std_stringE_Z31vtkOutputWindowDisplayErrorTextPKciS0_P9vtkObject_ZN9vtkObject12BreakOnErrorEv_ZN31vtkOpenGLGPUVolumeRayCastMapper24ReplaceShaderTerminationERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal24InitializeImageSampleFBOEP11vtkRenderer_ZN14vtkOpenGLState13vtkglViewportEiiii_ZN26vtkOpenGLFramebufferObject6ResizeEii_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal16BeginImageSampleEP11vtkRenderer_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal14EndImageSampleEP11vtkRenderer_ZN24vtkOpenGLRenderUtilities39GetFullScreenQuadFragmentShaderTemplateB5cxx11Ev_ZN16vtkShaderProgram10SubstituteERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS5_S8_b_ZN21vtkOpenGLRenderWindow14GetShaderCacheEv_ZN24vtkOpenGLRenderUtilities31GetFullScreenQuadGeometryShaderB5cxx11Ev_ZN24vtkOpenGLRenderUtilities29GetFullScreenQuadVertexShaderB5cxx11Ev_ZN26vtkOpenGLVertexArrayObject4BindEv_ZN24vtkOpenGLRenderUtilities18DrawFullScreenQuadEv_ZN26vtkOpenGLVertexArrayObject7ReleaseEv_ZN26vtkOpenGLVertexArrayObject3NewEv_ZN24vtkOpenGLRenderUtilities17PrepFullScreenVAOEP21vtkOpenGLRenderWindowP26vtkOpenGLVertexArrayObjectP16vtkShaderProgram_ZNK31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal16GetComponentModeEP17vtkVolumePropertyP12vtkDataArray_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal12UpdateInputsEP11vtkRendererP9vtkVolume_ZN14vtkMultiVolume9GetVolumeEi_ZN20vtkVolumeInputHelperC1E15vtkSmartPointerI16vtkVolumeTextureEP9vtkVolume_ZN16vtkVolumeTexture12UpdateVolumeEP17vtkVolumeProperty_ZN31vtkOpenGLGPUVolumeRayCastMapper11PreLoadDataEP11vtkRendererP9vtkVolume_ZN25vtkGPUVolumeRayCastMapper14ValidateRenderEP11vtkRendererP9vtkVolume_ZN31vtkOpenGLGPUVolumeRayCastMapper23ReplaceShaderRenderPassERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP9vtkVolumeb_ZNK13vtkObjectBase12GetClassNameEv_ZN31vtkOpenGLGPUVolumeRayCastMapper19ReplaceShaderValuesERSt3mapIN9vtkShader4TypeEPS1_St4lessIS2_ESaISt4pairIKS2_S3_EEEP11vtkRendererP9vtkVolumei_ZN31vtkOpenGLGPUVolumeRayCastMapper11BuildShaderEP11vtkRenderer_ZN9vtkShader3NewEv_ZN9vtkShader7SetTypeENS_4TypeE_ZN31vtkOpenGLGPUVolumeRayCastMapper29SetShaderParametersRenderPassEv_ZN31vtkOpenGLGPUVolumeRayCastMapper11DoGPURenderEP11vtkRendererP15vtkOpenGLCameraP16vtkShaderProgramP23vtkOpenGLShaderProperty_ZN17vtkOpenGLUniforms11SetUniformsEP16vtkShaderProgram_ZN31vtkOpenGLGPUVolumeRayCastMapper11vtkInternal19RenderWithDepthPassEP11vtkRendererP15vtkOpenGLCameram_ZN16vtkContourValues8SetValueEid_ZN25vtkGPUVolumeRayCastMapper25GetDepthPassContourValuesEv_ZN14vtkOpenGLState12GetEnumStateEj_ZN14vtkOpenGLState16vtkglGetIntegervEjPi_ZN14vtkOpenGLState16vtkglGetBooleanvEjPh_ZN9vtkObject11InvokeEventEmPv_ZN17vtkShaderProperty14GetShaderMTimeEv_ZN31vtkOpenGLGPUVolumeRayCastMapper9GPURenderEP11vtkRendererP9vtkVolumeglGetIntegervglFinish_ZN31vtkOpenGLGPUVolumeRayCastMapper9PrintSelfERSo9vtkIndent_ZN25vtkGPUVolumeRayCastMapper9PrintSelfERSo9vtkIndent_ZlsRSoRK9vtkIndent_ZNSo9_M_insertIdEERSoT__ZN23vtkAbstractVolumeMapper9GetBoundsEPd_ZN19vtkAbstractMapper3D9GetBoundsEPd_ZTS31vtkOpenGLGPUVolumeRayCastMapper_ZTI31vtkOpenGLGPUVolumeRayCastMapper_ZTVN10__cxxabiv120__si_class_type_infoE_ZTI25vtkGPUVolumeRayCastMapper_ZTS36vtkGenericOpenGLResourceFreeCallback_ZTI36vtkGenericOpenGLResourceFreeCallback_ZTVN10__cxxabiv117__class_type_infoE_ZTS29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE_ZTI29vtkOpenGLResourceFreeCallbackI31vtkOpenGLGPUVolumeRayCastMapperE_ZNK9vtkObject20GetObjectDescriptionB5cxx11Ev_ZN13vtkObjectBase6DeleteEv_ZN13vtkObjectBase10FastDeleteEv_ZN13vtkObjectBase11PrintHeaderERSo9vtkIndent_ZN13vtkObjectBase12PrintTrailerERSo9vtkIndent_ZN13vtkObjectBase8RegisterEPS__ZN13vtkObjectBase10UnRegisterEPS__ZN9vtkObject16RegisterInternalEP13vtkObjectBasei_ZN9vtkObject18UnRegisterInternalEP13vtkObjectBasei_ZN12vtkAlgorithm16ReportReferencesEP19vtkGarbageCollector_ZN9vtkObject14ObjectFinalizeEv_ZNK13vtkObjectBase17GetDebugClassNameEv_ZN9vtkObject7DebugOnEv_ZN9vtkObject8DebugOffEv_ZN9vtkObject8ModifiedEv_ZN17vtkAbstractMapper8GetMTimeEv_ZN9vtkObject13SetObjectNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE_ZNK9vtkObject13GetObjectNameB5cxx11Ev_ZN12vtkAlgorithm12SetExecutiveEP12vtkExecutive_ZN12vtkAlgorithm14ProcessRequestEP14vtkInformationPP20vtkInformationVectorS3__ZN12vtkAlgorithm20ComputePipelineMTimeEP14vtkInformationPP20vtkInformationVectorS3_iPm_ZN12vtkAlgorithm13ModifyRequestEP14vtkInformationi_ZN12vtkAlgorithm14SetInformationEP14vtkInformation_ZN12vtkAlgorithm22SetInputArrayToProcessEiiiiPKc_ZN12vtkAlgorithm22SetInputArrayToProcessEiiiii_ZN12vtkAlgorithm22SetInputArrayToProcessEiP14vtkInformation_ZN12vtkAlgorithm22SetInputArrayToProcessEiiiPKcS1__ZN25vtkGPUVolumeRayCastMapper18SetInputConnectionEiP18vtkAlgorithmOutput_ZN12vtkAlgorithm18AddInputConnectionEiP18vtkAlgorithmOutput_ZN12vtkAlgorithm18AddInputConnectionEP18vtkAlgorithmOutput_ZN25vtkGPUVolumeRayCastMapper21RemoveInputConnectionEiP18vtkAlgorithmOutput_ZN25vtkGPUVolumeRayCastMapper21RemoveInputConnectionEii_ZN12vtkAlgorithm25RemoveAllInputConnectionsEi_ZN12vtkAlgorithm18SetInputDataObjectEiP13vtkDataObject_ZN12vtkAlgorithm18AddInputDataObjectEiP13vtkDataObject_ZN12vtkAlgorithm6UpdateEi_ZN12vtkAlgorithm6UpdateEv_ZN12vtkAlgorithm6UpdateEiP20vtkInformationVector_ZN12vtkAlgorithm6UpdateEP14vtkInformation_ZN12vtkAlgorithm11UpdatePieceEiiiPKi_ZN12vtkAlgorithm12UpdateExtentEPKi_ZN12vtkAlgorithm14UpdateTimeStepEdiiiPKi_ZN12vtkAlgorithm17UpdateInformationEv_ZN12vtkAlgorithm16UpdateDataObjectEv_ZN12vtkAlgorithm21PropagateUpdateExtentEv_ZN12vtkAlgorithm17UpdateWholeExtentEv_ZN12vtkAlgorithm18SetReleaseDataFlagEi_ZN12vtkAlgorithm18GetReleaseDataFlagEv_ZN25vtkGPUVolumeRayCastMapper24FillInputPortInformationEiP14vtkInformation_ZN12vtkAlgorithm25FillOutputPortInformationEiP14vtkInformation_ZN12vtkAlgorithm21SetNumberOfInputPortsEi_ZN12vtkAlgorithm22SetNumberOfOutputPortsEi_ZN12vtkAlgorithm22CreateDefaultExecutiveEv_ZN12vtkAlgorithm21SetNthInputConnectionEiiP18vtkAlgorithmOutput_ZN12vtkAlgorithm27SetNumberOfInputConnectionsEii_ZN17vtkAbstractMapper17SetClippingPlanesEP18vtkPlaneCollection_ZN17vtkAbstractMapper11ShallowCopyEPS__ZN23vtkAbstractVolumeMapper9GetBoundsEv_ZN23vtkAbstractVolumeMapper15GetDataSetInputEv_ZN23vtkAbstractVolumeMapper18GetDataObjectInputEv_ZN23vtkAbstractVolumeMapper17SelectScalarArrayEi_ZN23vtkAbstractVolumeMapper17SelectScalarArrayEPKc_ZN25vtkGPUVolumeRayCastMapper6RenderEP11vtkRendererP9vtkVolume_ZN15vtkVolumeMapper12SetInputDataEP12vtkImageData_ZN15vtkVolumeMapper12SetInputDataEP10vtkDataSet_ZN15vtkVolumeMapper12SetInputDataEP18vtkRectilinearGrid_ZN25vtkGPUVolumeRayCastMapper8GetInputEi_ZN25vtkGPUVolumeRayCastMapper24ClipCroppingRegionPlanesEv $ "27<XHh$      n       5 P   ! = G Y x       19Tr08On-~*yDf<Wjqv 1 Yaiqy=:TbL%* R ] q  ^ !C!P!!!'!(!)!:"X"o""""""" # #7#K#p###T$w$,$$$%B%Q%\%%%%%%%%& &&'&6&_&n&&&&'-'='M'Y'e''''(,>(X(k({((( )3)o)w))).)* *7*?*`*h***.**.*P+j+~++,+:+,,E,H,,1,H,,1, --k-x-------`.h....:1/9/1//1//////.030000 11)151A111111111222-2<2K2Z222:3333344444:55555666S6k666 7r7}777w7"8-8A8O8488888NI9w99\9:99:X:::;6;;;;<<<<=b=n=====>>i>>AA?L?`?n???AQ@\@p@~@@@AaAlAAAZADB,BBBB< C^C,C3CCUDD;EXEmE}EEEECF{F'GG HEHHHH II#I/I;IGIfIIIJ$J7JCJOJ[JgJsJJJ J J J^K K KKKKNL6LCL]LLLLMM*M6MjMMMMMM NN"N.N:NqNNNNN O!O"&O#2O$>O%JO&OOO'O'O'.9PrP~P(P)PQQ1QDQ*WQ+cQ,oQ-{Q.Q/QQQ0R0R0CiRRR1R2R3R40SSXT5 TT9T6ATTTTUU.&U+U.0UUcUdVe@VfqVgVhViVVjVVlXW'hWipWzW'WiWWWkWmSXokXh|XiXXpXhXiXXY{2Y3GY|XYY}0]]-^zu^^A^L_Dr_7)``8`aaaa b+bibtbbbce0ce;cc diddd9deeee: f fsf;fggg?h<[h`hlhhhiKixiiijMjjjjjjk!kokkkk*k*l2lEllllm mm7mEmRmimymmvn{nn*n*n*[o* o*[.o*No*ooopapppqqqqr1rvvvvvwTwwwwwxx+xPxy_xkxyKykyyy zAzYzkzzzz {"|<|}yY}}<}}}}}}~-~M~b~~~ .1 )сeU<'i͂5'I2APq{'ikmF<i=~><?L@YAa=B~Њي#+IQpx֋ '/7dŌ1;EOW_*Ȏy:py yؑ Klڕ $T\tĖ"+4=GOp =E\ǘјۘ7lgl˙*8=:-Y֛'Odg&h7i?`jfm wCXDƟҟEڟFy GH,NlsI}zf٠JK&IHOLYpJxK0PiMqN٢OP8_Q|R|S٣|TBYU$TlsV}ĥ˥WեX Y*Z4Be[\ۦ]]ENaiIĨϨ!1Q\xѩީfm*zȪҪ*r٪*t*wA*vq*s"2{>{J{V{z   'i)^î  ѯܯ 1*r<*tn_*wհ*v *rMT*s`ɱaαbc)d4>H*sZeq²Nɲ*r*tu+*w<x*r!*tS*wƴ*v*rT[*sӵ\fg,h3iLVbjmzklƶ:Xm+n3?oG_,u*sN*r *t3uW*whxƸҸjݸp&:QqYprxstuvƹwѹ2<HxS]iyt~z{Ϻ|Ժeϻ*r*t*wJ*v{*rƼͼ*s-}E~Mcozؽ*sPNW*r*tu*wоx&{*s*rʿ*t*w$*vY`*r"sNz*r*tu*wx,6*r*t*w *vU\*r*s6`5oeq|}*sMNT*r*tu*wx=Z)*r4*tdt*w*v*r.5*s5 '},;DW*slN*r*t/uY*wjxFW\a*r*t$4*w`*v*r*s@d5}\sKN*s")*rV]*tsu*wx;\N:  ,7AMXcoz-5eq|Yep{)5@Vbm(7<QN#*r**s1XN*tu*v9*wJx |>*r*t*w?*vjq*r*s&+2*sN*r*tu'*w8x5:D J.(Qk; *<G:\7Wip0FMm +#Pp#3Sc\Ggs!EewN!!4H\#U %,3:(H\|H7gy!6!6it!1110B\*>R1LP11&.1ks13S4\5a*6E}Jah*rs*tN]*v*wAH*r*suNN x#*sXu*r*tu*v*w,xmr # 2 : !R l      g    *r  *t u *w- xT q    9 o t y   .  .y  n!*#*#7!R*#*#N\aPU&8L`rhp!v!*#&*#(:PNU\!!1Ke   # !@ Z t  &!+!1G!O!^!f!!!&"+".2"7".>"C".J"O".V"[".b"g".n"s".x""".D$T$$$$ $!$$%%*r5%*sd%k%*t%u%*v%*w%x& & E&_&&&N' 'N'''((*(( ()  )!)3))N)N * *N**E+++,/,A,S,g,x,,,N,',-(/-L-^-h- <.T.l..N....!. //.//!/.(/-/.005011111}112)2*r02@2*t222*v2*w2?333*s34u4N44N 55}5555h6m6666N77N7778/8C8v88u8x899j99u9x|::::::!;);C;J;*v^;*rj;*tv;*w;*s;;;;!; <1<]<b<.g<n<s<<<.=*r=*t >>*w<>*vy>>*r>>*s%?x????!????@@+@7@B@@ @@!@!A A;AIAUAaAlABB!B-B"8BDBSB#XBxBBB*sBNB*r,C3C*tICuqC*wCxCC DD$ D,D;D%@DlDDDD&D!DDDD'D!EBEJETEF(FF)F!FG G*rG*H*tHHH*vHI*wQIXI*rII*sJJJNJ+BKJKkK,sKKYL^LLLM"QMM:N-?NN#O.(OOO*sOOOPP0PDPXPlPPPP*rPP*tPuQ*w#QxJQlQQRR(SS/S!5S:S.?SFSKS.RSWS.^ScS.jSoS.T*/T*tU*0U0UVV1VVW*s0WBWVWhWzWW*/W*/WW*tWu:X*wWXxmXtX*wXX*0Y*0#Y*Y*01Y*0hY*/Y*/YY*sZZZNZ2ZN<[n[3s[[[.[[.[[.[=]5_]6]7]8]4]]5^^6^*^7/^G^,k^^8^^^_"_9B_:\_h_;m_9z_<_=__3_h``Waaa+bSbbbbc:c;Md<{dd>d=d?d=e@e='eA/e=Xeje|eeOf3hf3ff>g)g>gggBh=hCh=,hD4hChEKhXhjh|hhhhhCipi;i<jjFj.jFj.jFk.kF k.kFk.)k?EkFJk.n{!n{)n{1n{Annno4oHgoI"pFppIqrIEs`ssss~~G IWH\}IJ=K=LJ.M@JQNYJjOrJPJQJR΀SրyEEEցEEE3ERE\ǂ&0tK6R\fpK҆‡V.!M*M*M5ߊ}ˌڌp NX ӏ5!&}.!F`zՐ 38?D.KP.W\nI*/T*t{G(*0?*0ޕO*/*/+2*tTu*wϖxؖ*w~*0*0—ɗ*0З*0*/%*/V]*sØ˘טzN*sƙљzy,HTZPnUsPVWXĚɚ{jYԛGZE/ENEjEE4<<ܞ%np:;.LT[/\@^U]ţ^2?#?:[O?f[Ap¦W٧RO[_cnu}`aƨ֨;bc$0d8DeLa)vf~gXb h!,8iCNZcep|jkl˪֪dm'7Bqny!,5o=LXpcn}qr)T\:*s*r&NY`*tyu*v*wxs OtWhupvѯ(  w-9xDVeyjzYð{˰Y|}Nx~Yȱб۱ +6AQe}Y<~׳*Z*[*]Ѵ^ݴ_`Gd~еߵab@z[ct^ڻhid+QeYfm[vѽٽ*Z*[*g+dhþiݾ*gC{¿3׿|QIhI}jcJkUl`menwco9pKpdqMrssZ?,ItU'tGtgttttEVutckPv='N~cwwxyI~>xz#F&FF.|'|;bfN!74Hav~\}},fvN4u\C'O\5@O`s69F:#2Cy "3Gl3Nbu|''BQcw)Jt$FZu(4IW !DQs<KZu1234YhwX(7Xs&.\i<W|.V\k{1@PM Yz$=p <P VwFg8*Np*BDi=bLl9Z@y.Vw:IXc,+GF^(7Ft7Y6W-<GAARkA-`o~  F g      w  s } 1 e    !7 Q k      -Gahp118@JO^y4<!Tn1i6! ?^}#1C !+?Wc!96>!Yx"6Jd~5Ia Ln, = *Ibmx)<HT",   !!c!q!!!!!!!!x\"?"","""" ##/#Z####N4$B$T$i$$x\$$%%N?&z&&&&.&&.&&.&''))N*@*H**++++@+p+u+++++8,J,X,j,,,,A---$...... //4/E/Z/o/////1F1K1.R1W1.^1c1.j1o1.v1{1.11.11.122+ 303I3b3{33{3L3344F4T4p4444444445"545F5Q5_5{55555566M60\6x66663666 77/7[77/777788,8>8P8o8-}88888:**:H:Z:l:;%;;;;'<-W<+f<<<<<<< ==<=J=f=x======='>#9>T>>>>>>@)(@E@W@i@@-@$@@@@A-;A&KAhAzAAADDDD EE$E:]EE~EEEEEEEEE FF#F8F@FJFOFcFkFFFFFEFGCG]GpGGHH2IAIPIkIxIIIII`a`v`}```````````aa9aRa\aabbbbbbbbbb ccc3c;cTccddgdhdddpec.fj>f|fdff_ggQhixhihihihijj klmm4m|mmmmmmmmmnf8nn+o2o:oIoao{oooooooo|ppBpq*qqkrArrrs1tRt|t1uXuduuuvHvvv)wKw_wswwww!x-xdxrxxxxxx yyy*y7yCy[yoy|yyyyyyyy z'z7zGzyzzzzzzzz{{{2{F{S{m{u{{{{{||,7}m}}}}~'~;~O~c~w~~~~~:<FxNyXmy*r*s*r3:*tSuZ*v*wxҀ3HxтQrمfņK݇/GOeʼne wՊ#4|nj׌Íȍ+8QYchWt̏2>dnsĐِ2:ȑFQitٓFQcuzye”<>O`v^Εە\_9AkŖٖ*Z*[ȗ5j\~]^]Ҙ_`d3řݙ:<4BϚ<dԛ#S5DVy<Iy1Dcr*Z*[͞\]^]9_Yxay|Rqנ^\%_=Aaԡb`,~̢% 0BGWbn y/ASO  FSm`w<HT`l#=#=#=#U#k#M#k(|(|(|(|(|((|)*00&020>0J0V0a993G?G L7LKLfL7XeXX<]knqqrs t`u u xw}8}8~PeR`Տ%IpUa}mye5̡n ,82DPO\hux<Yʳ"ֳ=q}g2>JV B@ Nm ZR f2      m y# \ 3      , 8 J( VM b= n` Pt \~ h t   q }~            ( B % 1 = I U a m y    V   j     E  \ & 2 > J V b n zq     +    D  Y .  I k   2! - 9 E Q ] i `"?""""""+"g""S#8# #h,#8#MD#P#}\#/h#t########(##{#9/E/Q/]/i/u/J/0/v/v//w///v/// 00#050<,<r<<A<<<+<<j=Z =|==$=]0=<=H=T=`=l=x==K`ElExE:EEVEErEEE*EE{StSSSSSBSSSWSStS TT#T/T$;T`GT8STL_TkT[ [c[[V\\ \&\D2\3>\J\2VkbknkzkkSkkkNkmkcht zX j‘ΑڑF~4 4`u̜؜.L:QKH}Ti`Ul)"5AMYEeq}Sf9'p(4x%>Mfu @ , o [       !!*!9!P!_!v!!! !!$!0!<!0"<5"HD"T"`\"lk"x""N"Z"f"r"~#:6#Fp#Ra#^#jE#v## ##!#-#9 $E1$Q"$]W$iH$ }$ n$ $ $ $ $ $ $ % %,%#F%/T&;;'Gc'S]'_o'kz%w''F(`(%%%%%&&6&'(((+ '7'C'O;)[(g)sz(`%&&'('(('W))')5')A'e)M')Y'*e'*q'*}'j*'*'U*')'*'*')'*')'C*'5*(+1(+1+1=+17,1c,1U,1},1R+2 ,2",2+(2+42|+@2g+A,A,A,A,A,A-BX-B-B4-+B-7B~-CB-OB,[B-gBl-sB-BF-B-B-B.B .B4.BF.BX.Bl.B~.B.C.C.C.'C/3C./?CH/KC/WCt/cC/oCZ/{C.C/C/C/C/C/C$0C60C 0Cb0CP0C0 D|0D0#D0G0G0G0G0G0G1G*1G1LM<1XMK1dMb1pMq1|M1M1M1M1M1M1ZNg2vNg2Y1Y$2Y2Y@2YW2Yx2Y2YM2Y2Y2Y2[hap3ta3a3a3a3a 4a4aV3a3a3`cJ4lcZ4xc64pp4p4p4(p44p4@p4q{4{$5{ 5{G5{]5{4|5|5|5)|55|4*665B5606P6͎D6َ]66|66 j6ԑ6666~ɒ{77p7#07yy  T     T     T    y yyyyy}L}}|$08DY|&_+B G^cz        > > M M Q Q U U Y Y       G G    7Y&_+9 >LQ_drwB  ,4<AFNSX`eq  *2>FS`mw$\ )5=MUck /7K^f.FX`hp},=N_pWclv *wx "*D*wXx`eo*wx   *w* x2 @ J  R Z t *w x       *w x  # +  3 > c *wy x         *w x & : E  M ^ r ~       *w x    ( B V j ~       # + E n     2< DVk *w)xx+?Sg{3Jc (Qjq  +Jhr >K ]j rzx=U|*2 :Tp*wx$L`t  ,3=OWo*wx 2DVc1z*wxI[m4FXj~ 4DL`m1u*wxFi} n%6>M^fu $ , @ S [ o           !!"!*!9!H!P!_!n!v!!!!!!!!!!!"""-"5"D"T"\"k"{"""""""""""##.#6#E#Y#a#p############ $$"$1$@$H$W$f$n$}$$$$$$$$$$$%%$%,%F%`%z%%%%%%%&&6&n&&&&& ''6''''''(((`(z(((((()6)O)e)z))))))))*0*C*U*j********+(+:+R+g+|++++++++ ,",7,P,c,u,,,,,,,,---,-4-F-X-d-l-~----------. .,.4.F.X.d.l.~.........///./@/H/Z/l/t////////// 00$060H0P0b0t0|000000000011(191K1Z1b1q11111111111122$2>2W21_2g2v222*w2x22p3333333334414J4R4Z4n4444444444 5!585@5E5[5{5555556 6 6.6D6N6]6 j6\ t6 |666666667(7a07:7aB7!*#M!e*#!*Z*[H\Z]x^]_`*r1*s''i/Xm'8IZk|B_9Eu|*tu*v*w#x 6LTl2:TcmwNN*s$+*t<u*s$+*t<uECXet.7.=AF.U .h>lAuSe.|UEJ.Vch{~FFFeF V[.F}>%>^Fj.|ZF >C.F} $*16>E*RW\dk*x}**_ (B (08@HPX`hpx !  ( 0"8#@$H%P&X`hpx ' (    (08)@HPX`h*px+, !-."#/01$%2345 6(7088&@'H(P)X`*h9p:x;<=>?@ABCDEFGH  IJ K(L0M8N@OHPPX`QhRpSxTUVWXYZ[\]^_`ab c(d0e8f@gHhPiXj`khlpmxnopqrstuvwxyz{|}~ (08@HPX`hpx  (08+@  )(00>8E@SHZPhXo 4H\p     $8L`t(<P d!x"#$%&'()*,+@,T-h.|/0123456708D9X:l;<=>?@AB C D4EHF\GpHIJKLMNOP$Q8RLS`TtUVWXYZ[\](^<_P`daxbcdefghij,k@lTmhn|opqrstu v w0 xD yX zl { | } ~      4 H \ p         $ 8 L ` t         ( < P d x         , @ T h |       0DXl  4H\p< x@ <Pdx@  4H\p$8L`t$-t}8  )l`i` !hqJ Plpu T4pX | xA#$\e&).7)?09IP*YQ`02244h@778P9\ |P<p<0==p>>$>H?l@AB B0C )@PGTpGhGPHpIJ;4LXpM|NO@PP Q0 pRT @S]  v *  2!`U!6H!Q!Jh!V!0W!R!!h!W!p,"5"L"U""X""" #@]X#^#a#b$c<$dh$e$g$g$8%A%X%n%n%po&q&q(&rd&r&s& t&uL'$l'|'|'<(8( A((T((( )d) ,)``)Їt)))Љ)) @*I**p**+t+p,+5+x++++0+P,Y,t,С,0 -,-x--@-!-".#0.@9..... ..0.&//8\/ e/Z//b/k//0L0U0p0`y006 00p0<1 E1#`1i1+1 1f11n,2 52P2@Y22, 2223x %3:@30I3B33P3 3j324 4rT4 ]4x444 4 44 D5 M5 h5p q5 55 5#5 46z=6z X6@0a6 606J 6=6R $7-7 H7EQ7 777;7pT7<8E8`8=8P\88R89?P9@9A9B98:CA::D;k ;X;a;@|;F;<h<0<Ї<H<8<<=h=Pq===>@l>p>>' ?O?{0?M?N?p?@!@<@P@@@t@4A!A<lAuA\A@A00BS|BPB@C0Cd|CCCCCC& DD.TD0 ]DvxDDD D E@ EhE"qETEE\E"EEFLF:#UFpFyFF#F?FpFHVCX?VC`@VChAVCpBVCxCVCDVCEVCFVCGVCHVCIVCJVCKVCLVCMVCNVCOVCPVCQVCRVCSVCTVCUVCVVCWVC XVC(YVC0ZVC8[VC@\VCH]VCP^VCX _VCd `VCp aVC|bVC cVC dVC eVCfVC gVC hVC iVCjVCkVClVCmVCnVCoVCpVC  qVC rVC$ sVC0tVC8uVC@vVCHwVCPxVCXyVC` zVCl{VCt |VC}VC ~VCVC VCVC VCVC VCVCVCVCVCVCVCVCVCVCVC VC(VC0VC8VC@VCHVCPVCXVC`VChVCp VC|VCVCVCVC VCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVC VC(VC0VC8VC@VCHVCPVCXVC`VChVCpVCxVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVC VC(VC0VC8VC@VCHVCPVCXVC`VChVCpVCxVCVCVCVCVCVCVCVCVCVC VC VC VC VC VC  VC VC$ VC0 VC< VCH VCT VC` VCl VCx VC VC VC VC VC VC VC VC VC VC  VC  VC  VC  VC   VC, VC8 VCD VCP VC\ VCh  VCt VC VC VC VCVC VC VC !VC VC VC @VC AVC BVC CVC$ DVC0 EVC< KVCH ZVCT [VC` tVCl VCx VC VC VC VC VC VC VC  VC VC MVC #VC   @xl` &,1R |Э  *  V0 @ P `O ~!  9t !P `! H y  @1'Я ; 6@1*{ !0 @8G }1 B l  P O`!  014 pq     1( u     1S P `  p G 1  д   7 1o 0 @  P '`!a Z@2HS @P2U0 +@h2Ww  0Z@2HZ @2\Y T@2^ Z@2Ha=  8@@3c0 @X3e@ $P!` ! з!N I@p30n` @3pp @3r` ! и F!z  M@3zp 6 1@3}y M@4 L G@4  ]@040' | w@`4 !M !  0!F` p! !< ~!  06Pp 13м n 2  @x47  t0@Pi`d@40   2 )i н     ?(!P M!` y!p ! !?"о)."Q"" "0 "@1#` b#p # # $ ?$n$ $п$ $s%!M% s% % % % & && H&  k&0 &@ &P &`'pO' ' ' ' +( e(E( %(PP(+(!) L)s)) )  )0!!*`!H*!o*!*!* +0J+@)+p + ,], X,@4,,@4,2KQ-L-@h5-"-@7-R-@7.`q .@07@.q;.@H7j.`Re.@`7.6.@x7.R.@7/2X8/D/@7I/GD/@7w/0Gr/@7/D/@7 0G0@8 Z0 DU0@ 8 0pG0@880D0@P8$1G1@h8`1`D[1@81G1@81D1@8 2PG2@8H2DC2@82D2@82@G2@9 3? 3@(9"M3<H3@@9$3?3@X9&3P<3@p9(3r3@9*4j 4@9,74r24@9x.44@0:044@;25F75@;J45 -5*(5@x7M52,}a5;\5@:5;'5@x<5@5@0>5B5@@0@I6C@D6@p`B6CI6@ЍxD6 D 6@HF!70D7@`H{7Dv7@ `J7E7@LW82F18@F8@HO82G59 G09@`R90H 9@@HT?:@I"::@V:2bKY;KT;@HhY;pM;@[<2P< P_<@^D=T ?=@``=2V#>V>@cX>XS>@e>YG>@g?PZ ?@@`i?`\?@k?(]?@m?0] ?@Șo@@]" H@h]C@@Hr{@]' @]@@(0u@]C ?A^:A@XHxA ^0A@xzAP^HA@|*Be jBf B`g` B@د BgBg BprhBrB@C0r,$C s4Cs LC0s(PGC@x?X  xo]C