RIVEäΡÄÌ®ß�ÁòÔ¶ïìì�ΰá’Ã¥éËË­­��æ—ªîÐà†Ê–Çϱ¦êÌÌ�Áç˜�¾ ì’šËñµŒî”ëœàÂó虿å¼í@ D& @$H‚jÔglowinkemissive‘Ë gfx/targets’jÔ´ canvasviewwidthheight beginFramesaveMat2D withScale transformdrawrestoreendFrameimage GPUTexturenewformat renderTarget sampleCountlabeltexture sampleViewaspect depth-only artTexture drawArtboarddepthcolor66÷Übb÷Üÿÿÿÿÿÿÿÿÿÿÿÿ  )4b«OE @€Á´Ž ´bÞ ` M €bÉ ` `  ð?@€       ' €6 ÷Ü�Mã 6/ ` ` O€6 ` Ú ÷ÜM€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ð?=   €6 ÷Ü�Mã 6 / ` ` ÷Ü�M€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ZA5@@Ï@@D‘Ëaudio’jÔ˜ù€statedebugprint[audio] warned sampleRateAudio playAtFrame timeFrameframes playAtTimetime4[audio] no Audio.playAtFrame in this runtime: using playclockgrouploop musicbox_darkxfadegain proximity_a proximity_btremblemathmaxmastervolumestopfloorsoundfromt0t1tableinsertvoicesrate nextStartperiodperiodFlengthlengthFstartactivetickssrcno audio engine: loop name not scheduledenginemissing:no audio asset named stringformat,loop %s start frame %.0f gain %.3f voices %dstop %s fade %.2f completedcloneremovestoppedendFsincosatan2widthclampnearlogfarrolloff behindDullfarDbsqrtbehindDbhallreflrgazeworldazimuthdistancetrimmidmidDbbeyondnmfabssoundsslotscurno spatial sound named tierno audio engine: not played:"#@€ßI €I   €J €?€@ €A€ì 5I €I   €J € (*G G *G  ÷ # D. 4€') I   €I €?€@ €A€-DTû!ù?-DTû! @-DTû!ù¿-DTû! Àà?BC4€ô'K € $I €  $I €$  ü©ñÒMbP?€DE€Fƒ  ‡3$K  0€#*&4@G@E0€ˆŠK € $I €  $I €$    #!  ) I   (€) I  0€ ,  `3 * &)  I  (€  )  I   0€# ## ! # ##! $ I  @€  ¨3# * & # # # #     ‡3 $ K €# * & ü©ñÒMbP?€DE€FH-DTû!ù?@(€?0€$@IJ@€4@KG@’£  M€I  €I    € J €  ( * G  G * G   ÷ #   D. 4€ ' ) I   €  I  €  S# ½  ‡3 $ K P€# * &  ¨3 # * & # ##     # # # # # # ##    ½  ‡3 $ K P€# * &  ¨3 # * & # ##    # # ?€@ €A€-DTû!ù?-DTû! @-DTû!ù¿-DTû! Àà?BC4€LM4@G@EP€KDF£ƒM€+O€1DF@ð?NO¼ "PÄ  ZoZ "uV5### # 70QRPSTÈ I  Á  r$I @€#$I @€$ r  `  r" $ I  @€ # $ I  @€$! ` ¸$ K   @€#" DUFVE@€IW@ÒNK €I €55    7 5   Á  r 7 5     `7 7L I  € "  I  <€     :ðÿ   " * &ü©ñÒMbP?€E€XðDYUVZFI[<€4@â‚% L †     ñ ñ " # !  ñ  k#  9#  k:åÿ\]^ð( 5 LE,   L 8  :úÿJ4   @€:ãÿ =>\:"#@€ý EEL   kñ†  #  9# :îÿ=\^]�?  MÙ  Zu½5   "  78    M €  + O €  1     9çÿ RSMPDF@ð?NO› LÙ :ùÿ¬ ‚‚‚ã  M€  1   1        0@  1    S M   Á   P € P  €Á       L Z ' M € : ÷ÿ          �  <�        ) ! 6 Z oZuM0!k55†57ñ ,« VS  8�  M€+"O €#$1h % e  M€1&1  U  0@1I   M€'(1 †): †) 0@1-ñ k # 9*#kJ4 -°°‚†J4 -°°‚  �.J 1Àð‚9ÿ4O2€'3# ! , J4 -°°‚ 6Ô@ƒ7 8"I  :äð‚;<k4  6Ô@ƒ=02 >   ? 0@1@3_0@LUXDYF0ð?{®Gáz”?<�pç@ü©ñÒMbp?QRS\]^>=`T ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@NO-Cëâ6?4ab2"#°°‚)Àð‚Ð?56Ô@ƒcPdäð‚efg9· £ Z  Z  ZZu½k  Z  M€  0 4 % '      MM€1 1           @  1  M€  Z 1    †    †   @  1 kMk0  9# k 6  N Z Z k�'     � d �# !   ,J4  xÐ� 0RSMð?34 @ab2>=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐ?)d �pç@"#xÐ�‰e 4O€   �  €#!5 L@ ¦ 0  À ,   À  �  €)! J  $€€   ¦(  ¦ À  !  ÀÌÿ ¦  J4   8Ѐ :¿ÿ  €pç@hiü©ñÒMbp?$€€ð?j"#8Ѐ£3 LÙ :ùÿ LE L †   ñ k# 9#  k:ïÿ:âÿ =\]^€„.A¸ ƒ Nƒ Vš M/€ @ õMƒM€¦ äMjM€j ¦ p@ j 1 L1   M€ ò      ' ' ä   ä  M€5  ä  <à€    J4   Dà€  Là€  :Îÿ Ï \`�   � h€     p@1 Ï@    p@ kð?"l<à€#Dà€mLà€n56\`�oh€pç@Æ‚ö           IÙ Ù           Z u ½   M€        Ù Ù        M€ 0 4 % '        MM€  1   1        °@  1          L Z' M € : ÷ÿ  >  <   E N k 9#   � PP�)I  d€� Ú 6 N Û Œ ¢ Œ 'ƒJ4 #ˆ‚    �  PP�         M  0$ 0$ ) %! M€&'1  †(  †(  °@ 1 9# k 6+NZ k�-'%',# ! ,)J4 #ˆ‚   0¼à‚1   2  °@ 1 3-RSM\ð?34°@0={®Gáz”?PP�pç@d€� !"#ˆ‚ü©ñÒMbp?ab2>ÿÿÿÿÿÿÿÿÿÿÿÿ)ÿÿÿÿ*Ð?)56¼à‚pë ‚ƒ ŠÅ  6Ù3  5M L  :ýÿ 4  Ù11    @@ 1    .  LM :ûÿ Ù    M€11    @@ 1 Ù Ž M      ä   ä  57L    ã  :øÿ     �   4à€        ) ! L   :ûÿ  3q@@4,ü©ñÒMbp?4à€pç@Á  fk  -Ù* L#Z Ek     L †  ñk# 9# k: ïÿ:Üÿ  MÙN  M€    57L  :ýÿ  LZ kN  9#   k:ñÿ 0=\]^ý  ‚ƒ @²P€  5 L ZJ4   0€:ôÿ   MÙN  M€+     ä  ä  57L  M  :÷ÿ M  ! L Z     :÷ÿ    , €   ð@1  L Z  E   E  N  k  9#  :êÿ   , €   ð@1rs0"#0€333333ã?š™™™™™©?56, €8ð@=›  ‚G  LãÑ4   M:îÿM LEE N  k  9# :îÿ  L  :ûÿ  5  ,$333333ã?š™™™™™©?=Æ ƒƒ'  00 . ç ) ) I  `€ ) ) I  $`€  tuà?-DTû! @@`€?$`€á  @ J €9  L Nk  9# k:õÿ LE  L †  ñ   k# 9# k:ïÿ:âÿ €=\]^í  R LZ:ùÿ   Ù  LZ:ùÿ    L ¼:÷ÿ  ã   LZ:ùÿ0v,ú ƒ¡¥ ÁØ ' Œ!ŒK P€3*I   P€G LÙ  :ùÿ 4 %K P€3 ù K  P€$I   P€G LE    :øÿ   L1ã+   0" I  DP€    I  DP€      0# !  0 Ñ  L  N0k: ùÿ  :Îÿ  4 =5  L3 Œ ƒ N  kNÚ!  Œ ¢"  ƒ ¢" K   P€ $  N ÛG #  kJ4   xÐ� :Ìÿ  + O€    !-ð?{®Gáz´?P€w P€xü©ñÒMbP?=š™™™™™¹?,[DP€-Cëâ6?ü©ñÒMb`?$! �íµ ÷ư>"#xÐ�>@¤ )  ã0  M€L   ã  0 0# ! :óÿI  €,J €Ø  X5 Lã €   0 Ñ4 D4  p€:íÿ  (p€  4   0p€ €   � D �$ 4 4  I  \`�  ç  ,56€y$"# p€m(p€z0p€{|}D �pç@Pd\`�uì  ‚'   Ù  ! Ù     ~Pƒ  ‚$   Ù  Ù     ~“ ‚&ZMu O€ L †    ñ  k#  9#  k:ïÿ RS-\]^¡   P­  P²  6Zu  RS¹  ‚V'I  €K €O€  �  €€  6Z ¦  ) !  À #  kJ4 L � XP�     A  1    ( #!à?€€€€pç@0hij ü©ñÒMbp?"#L �56XP� A-š™™™™™¹?€„.Að?Ä ‚ 0Õ  Ü I €#3I   €#?€@ €´ 3J €##!I  €A€J €¸ -557575 75  7 5   7 5   7 7 ޱÐ77²ÀoPŽ¡È뿇s ~:¶¿�Œ‹ƒß?333333Àš™™™™™Ù?š™™™™™ Àš™™™™™ù?333333û¿333333û?333333ã¿ÍÌÌÌÌÌð?¼ #„ù50I   €K  €Ç 548  (  "  (  " # # ! I  $ € J4   0°€ ! 9äÿÇ0J @ € 0  «0 5   (  8  ( ($"#!J4    0°€! 9 ìÿ  " $  Ó0 C0 í5 58v  (  # !J @ €4 4 L'4"  $D. x € '" !" ! "!"" !#! '" !" ! "!"" !#!":Øÿ3J !€ €##!I  $ €O€ã#0" "  (($#! 6'Z$u% 0(!—&J4  0°€9Šÿ)(@€ €ð? €�J$ €"#0°€ffffffÖ?‚ƒ@ €è?„…@ô?†ffffff@‡ˆš™™™™™ù?š™™™™™@ÍÌÌÌÌÌ@Cx €A€ €ffffff@‰RSŠ$%&Ç  “)+““*ÀÿÿÿßAÀiÐ@‹ú ƒVA4O4€  €¿ 4ÿÿ8 “ ) +  “  “ * # I   0°€'  9ìÿ4  4 44 A < €AA4  < €AAJ4 D €Œ"; €�\ð?ÀÿÿÿßAÀiÐ@‹0°€Ž<< €#D €€J4 €¿×"#€���–   1 �DFN)ŸO¿¿Œ‹<0Z Õ 0 u a 4 a —Ü�0P  Z u 5K4 P0�¿×�‘’“”‡DçJWö¿•R@–S—Š˜™9š"#P0���¦û LPP€¿5 <.  `€Œ !Œ P P< €ï 0  Z" I  <`€ I  D`€ J  L`€  I  T`€ ¿ ) <0 !  <  ¿ Ü A0 J  t`€  ÜK4   !€ð�   " ¿ ×#        ¿K4   !€ð�   " ¿ ×#      ¿ v Ü"  Ü Ü  m  a$4 O %€ &  *&0 ' ÜK4(  ( !€ð�  ( " ¿ ×#   (     )'  ) a$ )  Z u* Z u*   ) a$4      "0 + N,  P -   )a$4(  å/0.“3)2+1“3“3*1)0(#    4  Z u*05k60# * 7&# &*&0'ÜK4(( !€ð�("¿×#Ô(Ïê908“3)2+1“3“3*1)0(#Üa$)' —:!#!ÜK4;; !€ð�;"¿×#¡;œP6&€Ü"ÜÜ‘Õ=0ÜK4=  = !€ð�="¿×#j  =  ePd=€Ü"ÜÜZ‹@@‹@Ü Õ=0 <    A  B    C1  �D  ?0 >" K % % t`€!ÜK4? ? !€ð�?"¿×# ? K4  !€ð�"¿×#  E›œ��Ð?C`€‘žö[ŠA5Œã?ŸR?<`€@D`€AL`€[T`€“‡DçJW¶? ˜ð?¡t`€"#€ð���—¢ÍÌÌÌÌÌ@£’S¤9333333ó?¥@ÀÿÿÿßAÀiÐ@‹š4@{®Gáz´?¦Š§¨©ffffffþ?ª”DFN)· A¿¿ŒÜ‹< 0 Z Õ 0 u L Ú :ùÿ Ú�0 ÚÕ0�œ’“˜”�‡DçJWö¿•R@–S\333333Ó?™‘¨©‰ „956<0ZÕ0ua  Ùa ¿ »0I  !€ð�+J #ˆð�“5A ü Æ Ÿ$œ’“RS˜�—�‹ŒŽ9”+«¬ÿÿÿÿÿÿÿÿ  ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡DçJWö¿•@–­€ÿÿÿßA�@®€ð�ˆð�› "   ) + *#!ÀÿÿÿßAÀiÐ@‹  #)G#@@� ƒl    MM€1 1        0@  1  M€  1   †   † 0@  1  9 #k 6  N .  Z  k  �'   � L@�  # !   , J4 `p�340@ab20>= ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÐ?)L@�pç@"#`p�– L 6 ZZ uu:òÿRS©  Zu   RS¯² Z uRS¹ ‚4 ÁI( @P€ P€ P€    Z u     Œ Ö !Ù  U°@±DF²RS³´À ¾ J > M€ Ü<. @€"Ü Ü  ¦�5šY 7"    ) +    * #! ‰ "I 8@€ <Y š" 4Y š" ‰ šY !) š)    ) +    * #!Y )    ) +    * #"     ‰ " I 8@€ X$I P@€ÿÿD. @€¦ ‰   ‰ " ¦$!‰ ¦(¦    å    ) +     * )(#  Z u 0   k#  * & #    ‰  t 't Z!  Œ"  Ö#!Ù$  ÜK% % '˜@€  ¦   †(   "    ) +   *  # !  >)   "    ) +   *  # ! !Ü*µ¶˜Ð?C@€h·¸ÀÿÿÿßAÀiÐ@¹[8@€à?333333Ó?º»¼P@€žð?²¥@RS4@½0³´п˜@€§¾Ò‘I  € > > J M€ ¦ `€     °@ 1 J M@€ 5šY7  "  ) +    * # !‰  ‰  ¦ U  "  ) +    * # !Ü ¦  ÜUJ \€Ü `€ ‰    °@ 1€¶µh56`€¿°@·¸ÀÿÿÿßAÀiÐ@¹ºÀ˜ƒ\€Áö A  A"  #!ÂÖ (     G#*& Ð$  #)G##4@Äð?Å@@›y ñ        G  # *& Ð$  #) G  # # å   ) +     * ) ( # *&# ì " ì G$  #)G# Ý -    0#       0# #  E'E^4@Äð?Å@@¥ÀÿÿÿßAÀiÐ@ÆÇÈü©ñÒMbP?ÉŸs À    �  € À#!P M'  À)!J  p€  ÀJ  p€  ñ  A  A "    # ! H #    m  )+ *)( # ! # !Àªÿi €pç@ð?ü©ñÒMbp? p€N@^ÂÃÊ@ÀÿÿÿßAÀiÐ@® ‚`    M ùù $ À + ñ     � `€  )!À M   ñ ÿÿÀ  (�€  ù   à@1 ºxi^ü©ñÒMbp?`€pç@56(�€Ëà@ÀK <M ãÑ4O€ÖÑL   L  ü#! M +O: ïÿ:éÿÑL   L  ü#!  : öÿ:ðÿÌ,$%ðÿ+@Ý 8 C  M€ ´  0    ñG  # * &# Z u ½     E 'E  ÍÎÏÐ4@Äð?^RSMÉü h À    �  € À#!E B'  À)!J  p€     "  ñ # ! C  G !#  ÀJ   p€#!À  C 2C µÿi €pç@ð?ü©ñÒMbp? p€ÑÒ^ÍÓˆ ƒ Œ°  � €  C À #")! 9 6'  À)!J  $€€  ÀJ  $€€   C    G      ! # #!À  C2C¹ÿ À #" ÿÿÀ ñ   § ÿÿ  <  <  ä  ä   5 7 L    :ûÿ T@�   �A1€pç@Íiü©ñÒMbp?ð?$€€ÑÓ^ºÔÕÐÌ56T@�Ö�Aœ t     H § À H  �  @€  )!M € ) ! À C  À C   – # !  J    0°€ ñ À § D�  PA1 ºÔi @€pç@¸…ëQ¸¾?ü©ñÒMbp?Í×0°€Õ^56D�ØPA¸ Y Ì �" ¿ �"$  #)G# Ì ó&   ~ × 0 #) I   0°€#  0 #) I  8°€#~ 0  ×#×ÙÚÛ@@Ü-DTû!ù?@0°€?8°€Ô  Mã,Ý ‚k   Ì M  "  Ì Î" ÎG$   &×  Ì × ! ò  Mã Ù ×Mã Ù  ÙÝð?Þœ,è‚,MI  € ' K €  Ž I?   @1 €ð?€@ƒ€ßà @ý ‚�‚Q0  �  € )!N õ   0  6À #   kJ4 D�    \`� #   °A  1  #@ €pç@ü©ñÒMbp?á0âh(@ij ÿÿÿÿ ÿÿÿÿÿÿÿÿ"#D�-š™™™™™¹?€„.A56\`�ã°A� ‚‚‚DM%   ) + * ÿÿ  ) +    * )'I `€#M   ) +  *) '     ÀÿÿÿßAÀiÐ@à?@Z@@P@ä`€š™™™™™é?333333ó?šå£ I  €+J €5 5 €ÿÿÿßA€€ª  ƒ ž…K €  Œ Ù  $*&  À; ñ  ñ "3   ù K   € $ I  8€G #!ñ   ñ Ù   ñ ÿÿÀ  ) Àh ñ  ñ "3   ù K   € $ I  8€G #!ñ 2   +  <  < ä   ä  57L   :ûÿ ÿÿ § ñ      )  Mã ×Mã* Ì% × ò!ò ò ò Ú ç Ú ç€´4@æi^ºð?xü©ñÒMbP?w8€çèÕÌ{®Gáz¤?Ô¸…ëQ¸ž?,Ùœu²ƒ1M      ññ    ñ + < < ä ä 57L :ûÿ ÿÿ º^ÕÌ{®Gáz¤?Ù ‚ˆMPP-€   ÿÿ ñÀ LZPZP€EE  N  k  9 # :æÿP P P( €       ÿÿ ÿÿ   ñ À  § L ZP ZP €   :óÿP€  >¦ LSM   :÷ÿP €  Ì×  š™™™™™©?ÇȺ^i0=ÐÏÎÕÔ²¶hLéÙæ ?  >¦Ü   ÿÿ ñÀ     ÿÿÿÿ  ñÀ §    ÿÿÌ× ò Ù   ¶h˜º^iÕÔÙœ´„3P € ÀPP € ÀP € J > M€P €  Mã  ÇiÏêëµ¶é,Œ {5 J > M  € > ‰D4  p€ À '  € ñ ñ A    A "        # ! D4  p€ À    € ñ D4  p€  Mã   € ÌD4  p€4   Tp€1µ¶56 €ì¹"# p€ií^ÂÃØ,îÙïzTp€9™h6 > ª ‰ S t‰ À ñÛ À ñ A  A"  #! EE À ñ6 E ÌR × × v ëLðñòÉê-éó  ¶¹½i^ÂÃÙ€« 5 L6 • • Ö Ö ] ]J4 @€:ìÿôõö"#@€±‚t0I  €K € Z uI  $€#3I   ,€# " , " , ! I @€J  L€5   8 ="( #(K €$! K €$ "# !"# !3J X€ ##!I @€O €6 Zu—J4 tÀ�9 Ãÿ@€ð?€RS?$€@,€Ÿ1¼‡DÆ¿Ì\¾),Îó¿@J@€333333ã?ƒL€�íµ ÷ư>AX€ffffff@ÍÌÌÌÌÌð?Š"#tÀ�»&4O 48  (    "  "  #   " $ ! 9ëÿ4 ð?Ë “)+““*ÀÿÿÿßAÀiÐ@‹Ø J4 €1  `@1¿ ×  "#€�÷`@��Ý„‚ÑÖ¿P €]>>#P€]µµ]  Z u  P1 € “ ) + “ “ *  ÿÿ “ ) +   “  “ * ) ' I  L � # “ )  +  “  “ * ) ' ÙP€M57 ƒ    0 0 # ºP€ ޲P0€ “ ) + “ “ *  ÿÿ j“ )  +  “  “ * ) ' I  L �# “ ) +  “  “ * ) !' �P"€ Ž#yP$€ Ù%&qP'€ Ž(iP)€)*> ª+ Ý, Ú-./ Ú-&IPH0€*P€> ª+ Ý, Ú-./ Ú-&0* 400201õ3NŒ4†5 67ÿÿÿÿÈ89Œ4! Ò;0 :!ã<J4 ?øÐƒ@A1 B D0DE 1 ¿×FGõ�¶öøùšúRSûÀÿÿÿßAÀiÐ@‹à?üN@€[@äL �@ýö[ŠA5Œã?ø?þÿå@Z@@P@š™™™™™é?333333ó?€â�¯‚ƒ„ëÇК™™™™™©?…@†á‡ˆ‰Š‹ffffffæ?Œ�"#øÐƒ�÷0D�ç\  l!6 cc õ!õl ! G!G ÷!÷ Ô!Ô Ô!Ô  !  ! š !š 5t Ô Ù"´š !Ž£��‘’“”•ª–—½  ˜™�£ ‚ 6K P€•Ö]J4  $€€ ôõöP€"#$€€¸æ¿E 5F6J4  (�€ g 6 K   <à€•J4  (�€NP £6K   <à€•J4  (�€ {  6K   <à€•J4  (�€ ¼6K   <à€•J4  (�€t5L6 K  <à€  • ]J4   (�€ :íÿ 6 K   <à€•J4  (�€õ! #""6$K   <à€•J4  (�€õ!6%K   <à€•J4  (�€l&6'K   <à€•J4  (�€(6)K   <à€•J4  (�€÷* ƒ+"6-K   <à€•J4  (�€÷*6.K   <à€•J4  (�€Ô/60K   <à€•J4  (�€1 „2! K3"65K   <à€•J4  (�€´667K   <à€•J4  (�€Ô869K   <à€•J4  (�€16:K   <à€•J4  (�€NPº;€<6=K   <à€•J4  (�€Û?0>)Û?6@K   <à€•J4  (�€Û? 0A!6CK   <à€•J4  (�€«D0>1«D ›E!6GK   <à€•J4  (�€«D ›E! $H!6JK   <à€•J4  (�€MK nL"6NK   <à€•J4  (�€IO ºP"6RK   <à€•J4  (�€S }T!6VK   <à€•J4  (�€NPj€BX0WI  Zdá€D. \lá€G]D. \lá€Ü^¸_" ž`    Ìa#  (W#! $ J  <à€( W# "   ( W 8 4¸_# ! ' W6cK   <à€•]J4  (�€¸_# ! Jd# ! ' W6fK   <à€•]J4  (�€9 Ìÿ Wg6 iK   <à€ •J4   (�€  Wg j kWg"# ! 6 iK   <à€ •J4   (�€  Êl6 nK   <à€ •J4   (�€  o6 qK   <à€ •J4   (�€  Xr6 =K   <à€ •J4   (�€  ‡s6 uK   <à€ •J4   (�€  «D  ›E! 6 GK   <à€ •J4   (�€  «D  ›E!  $H! 6 JK   <à€ •J4   (�€  Ov6 RK   <à€ •J4   (�€  S6 VK   <à€ •J4   (�€  Sw6 yK   <à€ •J4   (�€  öz6 |K   <à€ •J4   (�€  €}6 K   <à€ •J4   (�€ €6�K   <à€•J4  (�€š‚6„K   <à€•J4  (�€…6†K   <à€•J4  (�€48 (W    • •  ' W   (Wñÿ' W 9ìÿ‡�ÉôõŒö"#(�€šÿÿÿÿ <à€›œ�ÿÿÿÿžŸ ÿÿÿÿ¡ñÿÿÿÿ½§ÿÿÿÿÿÿÿÿŽÿÿÿÿ�¢£ÿÿÿÿ#ÿÿÿÿ!£ÿÿÿÿ&‘ÿÿÿÿ(“¤¥ÿÿÿÿ,ÿÿÿÿ*”ÿÿÿÿ/ª¦§©ÿÿÿÿ4™ÿÿÿÿ6•ÿÿÿÿ8ÿÿÿÿ1¨©ÿÿÿÿ<ð¿ªÿÿÿÿ?«¬ÿÿÿÿB­®¯ÿÿÿÿF°±ÿÿÿÿIý²³ÿÿÿÿM´µ¶ÿÿÿÿQ·¸¹ÿÿÿÿUð?ºdá€Clá€@»¼½¾¿ÿÿÿÿbÿÿÿÿÀÁÿÿÿÿeÿÿÿÿÂÃÿÿÿÿhš™™™™™á?ÄÅÆÿÿÿÿmÇÈÿÿÿÿpÉÊËÿÿÿÿtÌÍÎÿÿÿÿxÏÐÿÿÿÿ{ÑÒÿÿÿÿ~–ÿÿÿÿ€—Óÿÿÿÿƒ�ÿÿÿÿ…yµ *566 •6 Ú•6 , •6 c •6 p •6 •7ôõÔ�ÿÿÿÿÿÿÿÿ„ÿÿÿÿ �ÿÿÿÿ Õÿÿÿÿ �ÿÿÿÿ“ ^)lÖרŸ ÚÖPÌ€P;€ ª õL  Ú   :ùÿ Ý Ú   Ú   R  Ž Z uZuøP€ ŽðP€ f Ž0  {# ÜP € Ý ÛÑP&€¿5]0 ]tt¼ZuZu  !Z uªPY"€¿E#5N$P6%€ —&  &Zu 0   '# 7( ) � Ž*  *Z u 0   )# ø+h Ž*  *Zu 0   b,# 7(PP-€7( .7( Ž/>P0€12Zu5P'3€¿E#5N$P%€45Zuø+  *6ø+ Ú *6 P7€ 8 Ž8 0   ¾9#  :]0 ( # G  # ñP;€ Ý< Ž< 0   =#  :]0 ( # G  # ÕP>€ j? öB0 A+ @OA€çÿI E1„'45 7FöB0A'öB¶PG€ !H ŽH0  ‘I# ¢PJ€ —&  &KL 0   ˜M# 7(ŠPN€7(  îO7({PP€ —&  & Z u 0   yQ# aPR€ ïS  S Z u 0   T# GPU€ ŽV?PW€  XZ }Y }Yu-PZ€ Ž[%P\€ Ú]^P_€ ÝP`€ Ý Pa€ Ž*  *KL 0   9b# 7(òPc€7(  "d7(ãP0e€¿E#5N$P%€ �f Žf0  ùg# Ä ›h Žh0  ùi# ²Pj€¿E#5N$P¦% -k Žk0  l# “Pm€ Žn‹Po€ ŽHƒPp€ ·q Žq0  }r# oPns€siPft€P3u€v (v  t ! íw  w Z u 0 ) x   ‰z) y  ’{J  }ð1„  ª1P€ Ý  Ý~ 6 Ú  Ú€�P‚€ Žƒ P„€ Ž…Ps€sJ4 ˆbˆu‰1 Š Œ°H�1¿׎�õÙŒë²{®Gáz´?ÇК™™™™™©?¯333333Ó?éÚRS�Û Üžñš™™™™™Ù?§�Ýð?ö½šÞŽÉ›œßàáâãä壸…ëQ¸ž?æ�9�R¢FßÁ¿ô?£9�R¢Fß±¿ffffffò?ç¿èéìQ¸…ë±?ÁêëÃå@ìä1„íÆîïÈ.˜1“Ø?ÍÌÌÌÌÌÜ?ðËñÎòÐóô¥õ©ö÷•øªù¸…ëQ¸®?–©ªú¬û¯üýþÿ±€�³‚¶¹ÿƒ�Ô�‰„š™™™™™ñ?š™™™™™é?¹…ð1„†êâ@�‡Õˆ"#bˆ÷°H�¦F•Œk>5 ÿÿÿÿÈ  t F • Z uZu v ¼ ÙÆô‰¶Šˆ‰Š‹½‹ŒRSóvЫ˹PP€¿<. P€5Œ!ŒP P’ €•  ¤ 0 K     t/'  t/   Z? Z? .'  . .t/ Œp@!  ÈA|ÿÈA Œ ÈA ÿÿÈA B C  Z6 jD "  E   †$ # !  ùF! EE 0Œ E *Œ ã0 $ GE Ž  HK4F  F '˜P‚F( ) + B I¿×-  F  Œ ã0    J ^K  )L  lMPJPNN€ lM!lM• !• )L^K4%^K)L • lM'#PJPN€^K)L )L' )L   ÕÿøO7PMM EQ ×R  Z6 u7Sœ��Ð?CP€„ôð?�ü©ñÒMbP?‡"#˜P‚� B��‰½�‘…’²RS“”³´¹0ÕŠšü•‹‚ðƒ–ÙÖרÔäá=—à_P PP5'¿È0J  (�€5 v 55K4  8Ѐ    A¿× 5¿È0 R ^)l „…ð?Š@�˜ƒ(�€ó"#8Ѐ� A™�éÔÖרÄ$P PP€ R ^)l ÙÔ�éÖרÓ&P PP€ Ú ^)l  ÙÔ�âà?ÖרÜz•Œk> tÿÿÿÿÈ  5^ ) l  ª Ý 6 R v5      !"#7$%&'( ) * + , -./07L Ú12:ùÿ73ø45œô‰¶ˆ½‰Š‹Öר�ëÇêéó¯âÚÛöõ‡ˆš›œ�žŸÿþƒáãæøúüßóèêüÜ333333Ó?áäå „ž56&5ù ZZ uu5^»)0(I  ,¬ ‚+'J .´ ‚“¿ ü Æ! v" ¢#  $ Ÿ%5ù  L6 1 • • Ö/ Ö/ ]0 ]0J4   4Ì ƒ :ìÿµ55L6 7 •¤80K99 .´ ‚$  • ]0J4   4Ì ƒ :èÿ48 (    • •  '    (ñÿ'  9ìÿù ») »)»):œô¶Šˆ‰Šð¿‹ŽáäRS½�‰ð?ØÖׇ�ð‹Œ‹�+«óÔÙ¬  ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!ÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿ$ÿÿÿÿ%ÿÿÿÿ€ÿÿÿßAY±@®¬ ‚´ ‚õö/0"#Ì ƒùøÿÿÿÿ/60ÿÿÿÿ�ü©ñÒMbP?û »  À „ƒ ‘ƒ ˜­ 5 5 5 5 5ÐC 5 5 5 5  5  5  5  5  5 5  ï  Zu       ‰ t  Z   ù E ù E  9 ç  Œ . L  :ýÿ Lä  ä  5  ä XP�   J4   `P� hP� :àÿt‡DçJWö¿RS9¹º½0xÉ€u-P"lXP�#`P�mhP�È 5  ÑL üJ4    €:÷ÿ$+"# €ù  ))I   €))I  €à?-DTû! @@ €? €„‰£ A5 66q 6 5 6 N6ç6Ü6í6…6�6õ6"#6"´$6/<06/õ164·568Ï968u:6<Ñ=6<†>6AÍB6EpF6JýK6M³N6MVO6R©S6RõT6W­X6WAY6\•]6\0^6aeb6ac6e7f6e�g6jfk6nÆo6n.p6sRt6su6w*x6w€y6{Æ|6{†}6¦€6�6ƒÑ„6ƒÁ…6‡rˆ6‡´‰6‹ÂŒ6��6�6‘6“È”6“¶•6˜—™6œŽ�6 „¡6¤(¥6¨a©6¬¤­6¬S®6°h±6°²6µ@¶6¸ȹ6¼D½6¼1¾6¼ ¿6¼‹À6¼iÁ6¼åÂ6ħÅ6ÄnÆ6ÄfÇ6ÄÈ6ĶÉ6ÄéÊ6ÌÍ6ÌyÎ6ÌBÏ6ÌKÐ6ÌÃÑ6ÌÇÒ6ÔvÕ6ÔnÖ6Ô#×6ÔxØ6ÔqÙ6ÔÏÚ6ÝkÞ6Ý%ß6âÝã6æ-ç6íÕî6íï6òŠó6ö>÷6úçû6Ð6C6v6 6 Ý 6 6~6Q696!6Û 6"$#6&'6*Á+6*:,6.5/6.n062362­466Û766Ô86;ã<6;B=6?™@6?sA6D¸E6DGF6H}I6HóJ6M\N6MlO6QŒR6QS6VhW6VÄX6Zƒ[6Z \6]à^6_‹`6_-a6_›b6eîf6e°g6i¦j6iÙk6n×o6q»r6qãs6v*w6vx6zò{6zü|6~°6‚@ƒ56‰ƒŠ6Œs�6�ˆ�6’´.6•—–6™¿š6œº�6Ÿ® 6¢ï£6¦§6©²ª6­®6±޲6µÙ¶6¹’º6½޾6ÄšÅ6ÉÒÊ6ΫÏ6ÓíÔ6ÖZ×6ÙHì6ÜñÝ6àÛá6ä¬å6è(é6ì"í6ðßñ6ówô6ö¿÷6ùèú6üý6ÿÅ6 6665`a b7‹`65Å Ê Ï Ô7õ5® ² ¶7$5ú ý 7j555 5 5   Ð  C5 5 55555555565 ×š�ì76!@"F6-5,60@1F@ 2F!F@"3F#FFF$FF@%4&FF' FF( FF FF FF) FF F@*5+ FF#FFF$,FFFFF(F F+F-F F#F)F@.6@/7@08@19@2:@3;@4<5FF.F0F F(F+F 6FF7FFFF8F9F#F @:=@;>F@AF@?BFFF>@@C@ADF@BEF?F@CFF@DGFFC@EHFBFF(F#F@GIF)FH*FFF?FF@IJFFHJ,FFFFDFFFFGFF#FBFF$FFK-FFFJFFFFFF$F FL.FF#FFK./FFHFFBFFLM0FFFFFFF#FMKM1FFFF7FFFFJF5FFFFF9F FF F#F$MŽLM2FFF FHFFFF F#FF,F5MÙ%M3FFFBFFFF F5F M=MM4FF1FFFF-F5FFFGFFF F)FF9MÚNM5F2F F-F F)FF9FFGFFFMOM6FF F5MŒPM7FF5F FFBM¶QM8FF3FFFFFFF F9F M¼RM9FFFHFFFEFLF/F F(F+F F9FFMÆSM:F FM0M;F F9FFF#FF FFF4MÌT@MUF7FFFFJF5MýV@MWF7FFFJF5MX@MYFFBM×Z@M[FF5ML\@M]FM+MAFFHF5M^MBFFF#FFLFM�_?ë`;oa@MbF>M†cŒd@MeFM=f5MNÝOáPåQéRíSñ7MN@Ng@Oh@Pi@QjFPQÙk@Ql@RmFM@Sn@ToFF@UpF@VqFFRFF@WrFMF@XsFFUFVFWXt6Xy5Y6Z�5[\]7[\[Zÿ}5[\Š]‚7[\[Z†~5[\]7[\[Z>5[\H]ƒ7[\[ZU€ZY6Z„5[\]7[\[Zÿ}5[\…]Š7[\[Z†~5[\†]‡7[\[Z>5[\ù]7[\[ZU€ZY6Z‰5[\]7[\[Zÿ}5[\ˆ]Š7[\[Z†~5[\]‹7[\[Z>5[\ù]7[\[ZU€ZY6ZŒ5[\]7[\[Zÿ}5[\º]†7[\[Z†~5[\ƒ]7[\[Z>5[\]†7[\[ZU€ZYYXJx6Y•6Z£6[¨6\°5]^é_±`†a²7]^6^¶6_Ã6`Æ6aÈ@bÉF@cÊdSFFFF$F FeTFFF@fËFFeFHF5fíÌ@fÍFf�Î@fÏFF7FJFF`FF_F5fÃÐ@fÑFXFYFF7FFJFF`FF_@gÒFYFXFFgªÓ@gÔFZ@hÕFZ@iÖF[FZFFFdj]F[F#FFiFZFk^F[FZF#FFF5kÝãk_F F]l`F^FFF\FJmaF^F#FFlF\nbFF#F^F]FlF\FHFFF,FocF^FF#FkF\FF5o6×odF`F_FF peF qfF`F_FoF FF5qR@qØFaFqvÙqhFF#FFdFFLFFq4Ú@qÛFFqjqjFFFq»Ü/kFfFFF`F_F[FZFjF^F\F#FFF-FnFmF F0lF[FjF^FFF-Fm1mF[F F)FF^FFGFYF`Fo2nFYF[F^F`F3oF[F^FXFYF 4pFXFYF[FZF^F F`@qÝFYF[FZF^F`FaqøÞCßDŽàg­áhTâ5q6ræ6sè6tê6uì6vî6wð6xò6yô6zö6{ù6|û6}ý6~ÿ66€6�7qr6r7qr6r5s5tudv7tu5uvŒw 7uv5vw¯x7vw7st5t5uv–w7uv5vw®x7vw7tu6u=6vK6w_6xe6ykXyªÓZyÛ5\y(_yîfySÃuy gxy¢hvyàiwyˆjyrlfm@ynFqyÍo@ypFy=q@yr@zs@{tF@|uFF@}vFu@~wF}FuFwFFv@xFx@€y@�zFFFFFwFuFFGFvFrFJFYFx@‚{FF@ƒ|F|FyFsFFtFrF7FFJFFXF`FF_FYF~F�@„}FFFƒ@…~FFFƒ@†FF~Fƒ@‡€F@ˆ�FF‚FƒF„F…F†F‡FqFˆ]‚ˆeˆ@ˆƒFˆ„ˆ…FFFˆ£…ˆ†FF F F F F FFFFFFFFFFFFFeF2FYF[FZF^FaFFˆZ†ˆ‡F ˆc‡@ˆˆˆ݉ Š)ô?333333ã? ÎQÚ@Ý$�•Cë?õ†ZÓ¼ã@ð?  ¡¢ÌîÉÃB­þ? £¤¼¿ @Ñ"Ûù~jà?¥¦;pΈÒÞð?�•C‹l×?ü#@è?áV-²�/!@ÇK7‰A`Ý? !§¨'@©333333Ó?333333@;ßO�—nÚ?Ð%&'()*+,-.̪ffffff@{®GázÄ?23ÿ à-� @ú~j¼t“Ø?67«¬ê46< @;7­®(@*@%&'?) @ ù333333÷?ffffffæ?CDÕ0@ø?€1@%&'G)HI ¯£’:M@L °±Ãõ(\�B@yé&1¬Ô?PQ²³òAÏf•@�Âõ(\�Ò?UV´µˆc]ÜFƒ@çû©ñÒMÚ?Z[¶·tF”ö_ @ÍÌÌÌÌÌÌ?_`¸¹TR' ‰0@d`º»@F¶óýÔxÙ?hiÜ�•C‹l@B`åÐ"Ûé?lm¼½—�z6«@h‘í|?5î?qr¾¿‰A`åÐ"û?vrÀÁ[±¿ìž¼@z ÂÃX¨5Í;Ný?~ ÄÅÉå?¤@‚ ÆÇ¡Ö4ï8Å@† ÈÉffffffö?ŠÊ±Pkšwœ@¸…ëQ¸Ö?�ŽËÌF%ušÿ?’ŽÍα¿ìž<¬@ÙÎ÷SãÕ?–—Ï–C‹lçû@R¸…ëQà?š›Ð¥½Á&@ffffffÞ?žŸÑÏ÷Sã¥@sh‘í|?á?¢£ÒòAÏfÕ§@h‘í|?5Þ?¦§Ó?ÆÜµ„|@+‡ÙÎß?ª«ÔÕçŒ(í ¾@¯«Ö×ffffffþ?yé&1¬à?³´æ333333@·DØ333333û?+‡ÙÎï?º»ÙÚÛÜÝÞX9´Èvî?ºÃßàáâãä\�Âõ(\ï?ºËåæçèéêôýÔxé&í?ºÓëìíîïðY†8ÖÅm@Ð?ÛÜñò�•C‹lé?yé&1¬Ü?àáÇd]ÜFxé?ƒÀÊ¡E¶Ó?äåÈ@à?@Ûù~j¼t£?¯%&'è)éêë-ìóôB@€C@%&'ð)hñ õ@þÔxé&1è?ôõÛ×£p= W@š™™™™™é?øùöA@ÍÌÌÌÌLA@J +‡á?÷%&'ü)ýþ-ÿtÇK7‰A`@ù‚š™™™™™Ù?ö(\�ÂõÐ?è/Ý$�Ý? ê @!@P�—nƒÐ?é%&' )é-%&' )éV-A‚âǘ»@Dø8@;@%&')h eóÒo_ù?Dîèù“:M„ õ?! úq à-�ø?˜nƒÀÊá?$%øý‡ôÛ×@¤p= ×£ì?()ûüåa¡Ö4ïú?-)ýþ¾Á&S…@1 ÿ€]ÜFx @5 �‚rùé·¯ý?çû©ñÒMê?9:ƒ„œ3¢´7øø?>:…†Ø�sF”ö@²�ï§ÆKë?BC‡ˆÃõ(\�Âý?GC‰Š¸@‚âǘ@333333ë?KL‹Œxœ¢#¹üÿ?PL�Ž0*©ÐDý?‰A`åÐ"ï?TU��¾Á&Sø?YU‘’“3销þÃõ(\�Âé?ƒÀÊ¡E¶ã?cd•–ôýÔxé&á?ch—˜š™™™™™@Å °rh‘Õ?%&'()lm h"lxz@pÜ™šé·¯ç @òÒMbXÑ?tu›œ9EGrù @y�žš™™™™™á?º}Ÿ333333!@‡ÙÎ÷SÛ?€�‡D F¡M„…†‡ˆé þ¢„‹ˆé¨£„Žˆh!⤄‘ˆh,%&¥¦„“†”ˆé7ß§@†—ˆ˜ Ú¨†›ˆ˜Qˆ©†žˆ˜V™ª†¡ˆ˜[󫬄¤†¥ˆé`ú­„¨ˆémö®¯„«†¬ˆér�°±„¯†°ˆé ž²³„³†´ˆé Ÿ´µ„·†¸ˆéŽü¶·„»†¼ˆé«ã¸U¹ºL„¿ÀÁ†Âˆ˜»Ã&»¼½¾„ÆÀdžȈ˜ÃÃ&¿ÀÁ„ËÀ͈̆˜ËÃ&ÃÄÅÆ„ÐÀц҈˜ÓÃ&„džՈ˜ÜƒÈ†Øˆ˜ë%&Éʄچۈé)ËÌ̈́ކ߈é ÎÏЄâ†ãˆé:ÑÒÓ„æ†çˆéCÔÕÖ„ê†ëˆéL¤×Ø„î†ïˆéUÙÚ„òˆhdÏÛ„õˆhhÎÜ„øˆéܚ݄ûˆéu›Þ„þˆéœIG@HKBx¸…ëQ¸ž?�ê„醘‚„*…H† ‡¤ÍÌÌÌÌÌÜ?ßàìQ¸…ëÑ?Š Œ�VÀ$ÀW„ Àh† ��“hà²Þå–—˜R‡DçJWö¿S›�˜ï¾@Ÿ nu-P£$¥ ¦'¨'©$ª'«'¬ÿÿÿÿ  ®&¯&  !"#$%&')+áâsãäv«å<æ=š>—?›@~çèéCêëDìEFGH­IJKLMNOPí»¥µõö ÷ øÿÿÿÿ·@¸ž§¾Àú{üýÿÿÿÿþÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÍÌÌÌÌÌü? @úhüèýÿÿÿÿþÿÿÿÿÿÿÿÿÿ€ÿÿÿÿš™™™™™ñ?@@333333ó?úˆüƒýÿÿÿÿþÿÿÿÿÿÿÿÿÿ€ÿÿÿÿš™™™™™ù?@úDüHýÿÿÿÿþÿÿÿÿÿÿÿÿÿ€ÿÿÿÿ¶¹ºh˜½09�'Ž � �'‘'’'“”ÂO@À_@Ä4ÀÅš™™™™™¹?ÆÊ{®Gáz”?èç –—˜™š›œ�ž*‡†Ÿ öù¡�¢ ^ið¿É�'¤'¥¦§'‡†ÑÒÓú~j¼t“ˆ?À×áz®GáÚ?© ªé«¬š­‡¡�®¯þÔxé&1ø?j¼t“ @ÍÕÔ�'¤'¥¦³$§'´¦µ$ÜÚÛffffffî?ÝffffffÖ?ÞÍÌÌÌÌÌô?œæÀ³ ·Š¸é¹º»¼½¾¿h¦ÀÁÂéÙ´Ä'ï'¿'Ŧ€Ç'QRUîV‘WïXYëZ[\êgó…i®qðñòóôôõöã'ä�å ûãäçD@ãéä�åJ@ãëäçýã—äíS@ãïäç€V@ãñä�åh@W@ãóä5ÀY@ãõä\@€ã÷äø@^@ãúä`@ãüäç `@ãþä€a@ãä�å(c@ãäçàe@„ãä€f@ãäÚ&@‘…’š™™™™™õ?“”•‚ ’ Š ‹?ŒD��ù�¾F¯‘³’}¸…ëQ¸¾?�333333Ã?ŽÍÌÌÌÌÌì?õö�£‘×£p= ×ã?’…ëQ¸…ó?¥“¸…ëQ¸ú?”\�Âõ(\@˜ ×£p= Ç?•ffffff@ªÍÌÌÌÌÌ@–Ház®G@—Ház®G@�šš™™™™™©?�¡ñq= ×£pí?÷§…ëQ¸…û?¦å¢•—™š…›œ�Ÿ ¡¾¢#¤%¦'¨)ª+¬-®/°±2³´*µ6·¸9º¼» ¼'²µ¸ƒ«úû{®Gáz´?®¸…ëQ¸Î?°ÿ� ¾�¿ºÀ'Á ÃùÄEÆGÈ}É}ÊŸžâç¾)\�Âõ(¼?½Àéëàíïðñ)\�Âõ(Ì?ýòôÌÍ Î ÏéÐQÒ3ÓùÔ Õ Ö ×Ø ÙùÚÆ[È}Ü Ý}Þ �†ÍÌÌÌÌÌ@ÍÌÌÌÌÌ@-@àùÎˆá …b•cF€°d÷ÙÔ¨œ Óµ¨æÃçèéêøùrúsûtuvwxz{|}~€�‚ƒ„ü…\ýþÿ‰€‰  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~€�‚ƒ„…†‡ˆ‰Š‘Ëui/match’jÔÛ)instanceinststrikestrikingtalphawantswinglastXlastYvxStrike animationHotspotnodexyHOT_XHOT_YadvancesetTimemathexpclamp FADE_AFTER FADE_TIMEmaxvisibleSCALEsavemodulateOpacityMat2DwithTranslation withRotation withScale transformdrawrestorenewreset strikeNow!6ªÓ0.M  ™˜¡AÒð?    ÿÿÿÿÿÿÿÿ      ¤•60MzªÒ5¤•0Mz@  jn ˜"$^ ^" 3 * I  @€ G  # !^˜¹^3)  D.  ,@€   " 3 * I  @€ G  # ! ¤/•!•0MÒ• N  •  N"  �$ G J T@€66¤ªÒ  ð?{®Gáz´?@€ ’ËH¿}=?ÍÌÌÌÌÌÜ¿ÍÌÌÌÌÌÜ?,@€¸…ëQ¸¾?T@€J¤6 ü©ñÒMbP?b  :A   ,E6 6\ P€    P€   # ,P€   # P€  ¡ 3  A3  # Áª´Ž !P€" P€#,P€$%&j(A5,&¡&AN�@Fï @ Ÿ @ ‰ @FÒ@ @F´š™™™™™é?š™™™™™á?ffffffÖ?'()%�ËIM Fell EnglishÌŽŒ‚jÔ”ì €PGSUBÇ‘¸¹´¸ZOS/2E}ØV  `cmapAíã* €|gaspÿÿ´°glyf�P^ Ü�theadû7êžä6hhea” IŸü$hmtxÍ ·Ÿàkern'™++ ü¾locaB³ÈžprmaxpÝ\žP name&L=Ѳ¼ÒpostÿeT´� aT 74632#.a4?   #;+Ž7>?>7>5>5>7>5>?>7>7>7>323#'#."'#.#"+"&'&5764547>=.54&'5.#"#"&+"#'#""#".32767267;254.'4/4&/.#""#  0  E 0(.,           /$ !Uw )Y2 .* $7+@+4   /.!0&W$&#1'  �D / !!&  &/-    A@B"¾(Y+'K+1(* $ #B!!#$(&  ;/ $     ;  = 98+ =-F  '´  > !$F <6&4PaXERÿðørŒÅò75>7>7>54&54654.54>5'465'54.5465'.'.54>;2%7"#&#".#"#".32632>7>7>54.'.'#.#7>3:>75'.'".#.#"W$($    86'(( $*%CR)$FA;   %&$/- -!&#%+(# #5V5-":p=0c6%)!£  '.  )# ='3)B": 9#M$/%  -=)   ! 579*5   f@ (Ÿ     %" //6&G     8;?"%B !),%   /'+     ,YSK Œ>"¦=BF!$H<)   )P##!Az_ÿêp­D4.5&45467'767>7>76547>7>7>7>7>?>?267>3223>:3326;>32##".'5.'.'.#'4.'&##"5./.#"##26323267267267>3>72>7>7>7>7>7>32#.#.'./.#&+.'4&#.'.'./4&'4&'&'&'m   !  "4$  f+4<    ;       @   'y "0!"!&       *+04!  "    $ # 2(5( > :J     È8&7% ,    ¦0e0  !  .       !@: f170`-               &  &# ^š¼.74>5'4>5'7654&547>54/.54674&'74.5>54&'.54>3327>7>32323:7223230"#'""#"#"&'"#.##"&'.#".3267>7>?>74>5>5.5465.5.5465.'./.'.'.#"j+2+   $)#1=2'V$ f ;l9  /A N#     U9A'4  ""  -U*,R+$r  •;>7654'7.54>7676567>54&#>54&'.57'4.'#'.#.54>32>;22>3232632326322#"'.'.'.'&#"#"&#"&#"&'.#"27>327>7>32#".5</5.#"3:>?>7>32#*".#'"&#'"#".5)*Q   H# 2 0g+9   '.´     " ,*  ¡'    ,BOK=  !.4G@((*P.-&   @"   @!šI’N€Z" (#;3f1    !C "A" ;k        ).("F"" -(!  "U-h #.,)   66*\ !'35% &   1  !%OšW.& */. ?4k7    +ÿãë‡+'.#"*1##"3267>32>7>32#"&/.'#"&/"23:7623:23+#"&/.#"#"&'.#+.'47>54.54>54&4&1'54.5467>54&'4.'.=>;23267>32;267327627>323267>322#.'4.'.h1+*+ M$&'   @  ><2       #-#J== &*        *--1-   &!MH5   >>-/ "$( $+()%S-)   " ¸3  *?.•   "'(! *0,#9/-. ,'#  !J�H"%       $25MHO8!!! ,M""!)'#        �12 ZÿöKŽ 4654&'&=467>5'74&54>?>7>7>7>7;:32>32#"./.'.'.#"32?2>72>75'46='5.'5'>;26?32+"#&#"&'".'.#'"&#.'4&/.5'.m   @,!1==60 4;6  a  ,20    ,$ !  $)*+G.RIB    0ƒN %*% "!I*¶ '31 ;  6%'#  $!¦,1. @/3+    ý J  .;    5R'+*("   j  .2    .?H" #-//#)"86d0   FI ;$2    I o 4/$   ! *44  @ Kÿö™h_7#&5467>7>?'467.5467'4.5'74&'.546?>32373+""326737232637>70?>54&54>54&'.54>7332573232+*/#"&5467>;>7>5'467>54&'54.#"#'"#.+"##.#'"2372#.'&+"#'#""'.j ,,'    *-&  -\-ÎO -  3   0¸G%b,  5'",/' 9‡ [ $& (   I> .a6% |q$G   ($  &)  L !   `7  "  aL,*&   ï:&P*%J&.9:7-   (*d!    (+)!)'%4@    (0[0PU aEW+Ax'      >&I#   Œ   <   9   (4   D6~¬%"#'"+"&'&5467>7>5'7'7'&54>54&574.'4654&54&#'".546323267>7>32"32632#"".'".#"'"&«- I &361   @ 9;.$*R* @ 274 @ & 98*   ,    (11/ (   Q0*æh /G   ;    “  =J= { &<"     ÿDý»£ä##&'.'4>7632227>75467'7'74&'&=467>54&5465'7&57'4>57.='4>54.57.'.54>326726373#"L :$  I"*&         34( � e ZÖB  k        " K!&S ýÀ221&    '+E4O*u \  DC@ÇN&            %)+  7‰   L    !"  6& ),(  F @$N XÿæÜXe"#"./.'.'./.'.'./.#"32#".#"#'".5>7>54&'?.=4>7654767'5.5437.4574&/74&57.54.#*'.546737232?62;232>7>7>7>7>50.'".54>3>32##""2323#".L &,' $   :!  ^     " >.//"B&4L (       \U   .  ($#   %&# %&    Z BNH"#$#  +<%   ')$      &'# %(   )    ;& * Z   H#&9!7  <    A! d( 1'I -; &&    %,)  - M  7,51       !" "M+ +%$       (ÿò¯‰í74637>7>5474&'&454674&547'.5>5.'.546754.'.#.54>32327>323>732##37232633>?65>7>7>32#'#.#"+/#.#"##".(S0-(      !()" "H$"?& -A6271#1:8  $&     *,,  @752       C2O m(šZ  ¡@GB 2$   )  '"$” 6 0589         #  M@#FÊ  1    )    32    EÿïK8£7467>7>=<7>5?4&'74&'.=7'465'4>5.'4.##.54>?32326332>7467>74>7>?>74&54>5>574>5>32372+".'&+'"".547>326767>546?>54&/&45<.'64='74.14.#"#".'4&5.'.'./.'./.#"+'#".#"#"#"&'&R 02.    S% !D|B 67  0   -#" Z$7&$6>6$ &-.%" 4/* l]$  %C ) "    0@      N#_'')  6   'X. % 7  ND.'$%' (%  D7  %&&7p90   9=>&@"&S     '()^È k&@=D>    .7  #¤y  ""E/#F" H !&    H& (-* -Z-FAq< t0"A"AD % !2X      ÿݰ¹|?>74&5?>5'467>7546757>5.'"'&/./.#.'4>32;722#354674>54&574&'4.=476?.57'46754.'"./.#.'.'>322372#".'.'.'.'.'.'.'././.'.'"2+'.+"#.54>7Û   (4  ! () ')) I !%&0    .)!dH+        ?m=˜ %46 0   +--,($" #F.         &$! #(W(D   !(f &ï&v  ]y; ?4  11,     -12_+:(     9D   \  _c     !-   =){  (L)$252 "2*54./"%& 0M     * "'  !   ?;4     XÿßS²¨465'467>5>?>7>767>3>3?>32"##".'.#"&/.'./.'.32>7>3>?>?4&574./74./.'.#'.#"d   79oB 1%-U,AG< /        o BG  "! ,&F"   Ó #INV0  G43+ 4      8FH4#'& ?B8  '0 ö oH9939 )F!   8      %*);  + 1 658!  !&   (.+"  "  0     '34) &i "" Š!-/- 1KH7     R`e+G GrxÉ74>732>?>5'4654&54>5'75'&'.'74.'.5432>377>3232".54?>7>5.'4&5.'./#;2#'"#'#"#".G +'#   <;, P¡!486+.:=3  #+) F, "t #<, #-/YO !  +61   %,.L  S +V1;8(>  & ƒ :B" G_'( /@D8      %,677 (*$ && )+$   ;HQ* K #(' t &4t š  :%I&;;9    MýÇ ‰¶‹4674>7>74>5>7>7>7>3>3>;>;3>7>32223;122233232;267373267>7>32+.'"&+.'"&'#"#"&'.'+".'".'"&'.'.'.#.'".'+".'.'.'".#.'".'+"&#.+".'.#.'.#.'".#.'.'".'.'.'.'.'=4&5.'333230232632>7>7>72>7>7>7>3>7>5>7>5>54>5>=>5"=&54&'.'.'.'4.'.'.#.'.'.#.'.+"+M f;      @ B"      *F      "&'"#$  9$%.. #"! 5;3 "FHG#_ �"#%!!" *U.  K�KS,,+32       &  $/     (+$  "#    ÓJ3    (           "M!'$   70-    ñ2 Dm-         0[59=:L*'( &#!                 ! "*            #       '( 0#)% 6m3K„?           #S< *+&     "(.$$)K&TÿÜEšÌ %././.#"#".'.'"#'"#'&54>7647>3>=4&57/54>7>5'7465'57'5.'&54>3726372+.'.';>7>?>54.5>=4&'.#""”=\ K3EI   /,11'" $G- G £ /=9      *07$%0. ;?X4SU2^07(A-  / && %;&- &A#+'#“<& ýP'$5A?(!>KW2$2~F$  $R7,  & Ÿ         ) <+´a>6@˜&    +5G5+  0d,4*    "   %?8    ,;# 6g6 U¹¦Û%.=7>32;27>7>37267674>=4./.'.'"&'.'.'".#'.'.'.'.54>7>7>3232>32##".'.#"+.#]:;6*  &9!#083) ) 4  &7#  +M&+!    044!0$ $75>5'5.=>54&575.#"&'#*.54>757>7>3232>;232>32;2>7232>7>323#".'.'''#4372#"&'.#"&'"+#.#"+"&'4&`"B3-  731B64#   ,-+ -3,  $)OSW1    %$ì"2 ‚     28Z$# +!,5,O*+æ ¶  t  0- @&  '$     c l $#  hÇKz 6" 2 2 +47.!!    #$Ϊ%.'4&'&'5'5.5&45<75'7'57&'&5.'.'.54>37327267>3232633:>72>7>?2>7>74&5'74&'57'4&5./.#.'.=?>732;>32#+'.'./.'.'.Œ&   !#   !4 ;8   -- '1/;   9 .G$         !!$%&$+#?'9&U- ),     ), !. +B3M  ) 6ã4k0aI   ‹L-E        , (dP  €(* ;  0t)&"   (1-" /552&Br_&    ;  ?EEê&{ $%U-  $   (ÿøÿÇr± '.'.'./.'".5463263273267>32672#'"326?65&454?>7>7&=4674>?5>5>=.'&#".54>327>3;:7#'"#".'.'.'./.5.5x    !"  ; Er"9  !    !   !     " ±,,(/  9    #      '$     ¹%<&  3^032    7  (Q! 2365<9 &%  6 $&' %&"  01*l3     057*  $. W?  "!#6    +/*# .62 2Y0  Z$ ÿÓ䣶/.'.54632;27>;3>32#'"32>?>5>7>7>5>572>7>?>54&'.#'*.'.54>32723267>32##*'"##"'./4.5.'4&'.'4&'4&'#"#".'.'.'.'4&=.'4&'.'.'.'.5'47>3;2677#3267>74>?>54.5ž2 #'&#.@#  )/(          & 1 &X&W   C     ) &                !      $   (W'O=m a    .    ( ñ�';      %"" " 676,  "$!   %,,! ,I         2_695 !///-;13-  +2-#\'J$  ((  4 $784%!$**,  533 4    <<=!  !@<9      +-- #lA  "F$ { ('($ÿáftZ74>7>70>7>7>726?>7654.'&5.1./././.+".54>3233722>7>54.##"&'.5463>32>32#+".#"#'#"&'##".54>54&'&'4.'.'.'5.'.#"+"&#&'.#"#.#.$1=<6./'        )!9  /%•  #) • j+7=2!'-$ 3 $'(%    I-2s>+T' ($5# &  /%/)) ( $,2,-,    2= 2À &-&   %2%= $! #D"w--( %   #,-     "!   E)7 #   %" (B  ,@LI=   4 ""  ) $ /-=9. K#4 (,+        "!#&Z-:l:    6ÿû½—%4>3>7574&'5754'&'4.'5'.'"&5.'.'.54>32337232>7>5463>7>7>?4.'#"#".5463232632672>72"#"&'.#"+"&'.1"" ( ! ,   # 86( )E0].\ #)#  !    ž$:# E !+ D J!($  &4:2   -7h3-J;99( L   _m)@831  + 674       )7=5& &)$!$ ,**$  "    E  P 4r‰*+)       "Gÿýffš74&4&=467>7>7>7>7>7>7>7>7>7>7>1>7>74>57>74>3>7>7>7>54.'#"#"'"'"&#"#"#"&'#"'.54>74>5>7>7>23232632;>32;26;;2>323:7>;2"#20;>72626323>32;>36;>767>7>7>7>7>32+"!#".'++"&d!            (.' š"! "      C1 A     -X2  7    /E&L   #($ %13  %F'##?    $" 43  ý¶ FC   "'" !#$2             #" 23#      3q:+L+$+1- -=@        #'"  ).*$B4" Hs²ç%####".'4&'&'&5'.57'54>7>7265765>7>7>;2767>37>7>=4&5/.'.#"&#"#".54>767>?>?>72>7>3232;2>32#"&/./#'326?>72>7>5.546?54&#""ê&    _      !         L  F   !       ,:""@&ë  [ ! v  1       /3      " .   >BC   ""   54.546='4654&'7'7'&6'.'./>?232>7>32'.'32>7>?4>74&574./".##""µ        &+q  699   &"#! *! ,<*ûU!%'S    Y)'"   V "#Z2   � J" 'L < pE“-&  ! 2\ž    AHM%0`01B4.   œ&04,     ;!  +#-0,!U S TFÿèFØ�µ%+"&'.'./4.5>5'?>7>?>7>3232>7>54&54654.'.'.5467>73232632#'"#"&'32>76454&547>54&5'4675/.'"+"¥446 1Nl' '   9AM0;   "     *+% t   &%  )<; -. þC*D2<%03* %% f":1&=  N6#J /'  & " *4!  4r7%       ,M&Z\*#UEjÀ‡J9- .'®5>7>7>32>3203###'"#"&#"#'"2>732'".'.37267>54.#"@#6G*  (Z   -1+  G+ L  RA!FB;   k KT†iM º…U#&9C!# ¶!0d]N   R+3.   '9F -$ 6 0Y|K9/#4#  - ÿë.á47476?>7>75'74&54>1'46754654&'.5'.57./&'.'&45467>72>7267>72>?3>321#+"&##'"&'.=4637>7>5647>5'5.=>54&'&'&=.'"./.'#"#"&+'.#"#.    6   #C)    G"F$ !        !<{L      œ     " (X. 7    +@  c3%   0/*    ¨  U   E$ „ &j-        0'W(-   #Î   7/''-.    *ÿûU¾*7&457467>7>7>7645'465'4>7>54&'>='4>5'74&574&/"&5&5&5467>;27>32;>7>7>54.=467>33:?2>;#'"###"&'.=4>54.'.'.'.'.#"+'#&"#  8     D 8    %     P Z  '$& 0X. +1.  S{B<8          NjBQ/     m  .()# 4+ H 9r%(# D   n_ E$ &              + :o*      !  #" 0,   &1   ÿô+Õ¶*'#'57>32673>=467./.5467.5467.54654&'&4'.'.'467>72>7>72323:7&"#"&/".#'"'"&##.#9      ! , ! #        1#5 /$ $$o#C5h/^0 2#*    1/04E @! 'H'##"%&     " 5ÿð¦A7#"'.5467>3267>5'./465'4675'754./.'>;2>767673>7676232"326?61267>7>3>;2222631+#"&'.#".#"&+"&546?>?>?'5'7.5467>5.5.'.'4&#.'.'#"#"+.#Ü4       !1 2 -        *   %"  !+  B   :W+       *[.    6  1! E*4-&      $,    jZ  Q 4+       96.!#   &   *G2@   C ¦f¨>?67>?>?37>;>3232"##".#/.'.'.5'326726?6?'>54&57./.5'./.+K* ; 6f :& 0 '4,  < f@ c   Ö$&$(2 0#E  3 $1(=a 5a3!* ' €  H™9#E '  !N5   !H$1  &mh& ! ; $q  ) ýÀ•Ã#".546?67>72767>54>=4&/57'467.=7<.'<?.5467'.'&'.'.'&5<7>?67>3?>323?>?2+*./#37332.#332>7>7>?575.'.'.'./4./#'#"Z9Ë  G  3.+ Z#$%;_* "" (-N  7  Z+   +4 "     2!'2!  ýØ  6;&) 6g5  ':;     (   e N% ?p70  %*.^03    4      ;@($3      *  1#; .*=ÿöÕ˜À7467>7>?267&45<?54>75.5.5.'"&5'7>7>3>;3:5>?>72>72>;2#".'.#'33#"#"&#"#'#'"&'"'.'&==    ;0     )     +$          2-@ =  š 71 !  !0K   H4Z" "%   Oÿû…»å74>3237>3>7>7>=4&'.'././467>7>5>52>726726323726322#'.'./.'.#"330"##.'#.#.#.#'.'.546X  ! (25: =        @P9    75'   +7# ;         "    ° /."0  '4  %).0 .    .+   !   %  "*+(    %ÿæ“Gv'75>54&'.54>7>7>3232>32#''"32>32#'.'5.5¥ %$')  $  /*%#&&B20    &*'%   (,) €*' €dh=  0-!  t * Kt  .    "E"=!*ÿ÷ýÉÌ%"""#"&'.'4654&54.'574&5467'5.'.54>;2632332>7467>7'4>54&'.=.5467>;32>32+.’      $7)    (Q&%  !.! ",0)P,/.%     )9:)6 f   (*     2 L»   !*:9;]° #;B  %%I    #N($#>t   %$ÿÝž¾¸4&'4&'.'4.'.'.54>3327>3232>7>7>7467>=>5'&5<7.54672326767>32#".'4&'.'.5   ,)  :9s;          &(  !A  &#           » $$'        ',-$ *23* '#$0      ! 4 <*,"%35#$& _¨&%./50./54.'.'.'.546?33263232>7467>?4&4&1'.'.'.'5467>;23726323267467>7>5>?>=./4?>3:26732372#".'6454./.#"#"&'f      4@'    !      (!PW  "/0        !,6  !&"  !        # "$•!=<;T' 4  =       !++,;++( )        @1DMB,''&  -        777 $$G   *()K +,! .E&    6. ÿìÿð¾—â7623627>3>3>7>5>5>74674>1>5>74>5>7>7>7>7>54&'>=4&'"#*'.54>72!;>32>;2>732+.'.'.'.+"+;>;>76323267>32+".'.#"#";23267>74>5>7>32##"&#"+.+"#"&#"#".546?>54&54674>754.54>754.'#"#"'"'".+"##"&'547&5467>3323263:'0.54>54>75.#       8 H“K A | +   &   +22 8"   "       %  £ D 3232>54&574&5467'"./".'.5467>5>54&/.#"#"&'.#"#"#'.54>7>75654.54654&/".546?>=74>7>7>72>7>326322+'.' !  )# 7!!M  !"" W!  5 +  B     4 ('   S @  % "#  ! 7:+'4 /2/   77>7467>72>7>54&546=.#'#".5<747>7>7267>;;>3>7>7>32223267>;>7>32""##".'.'.%33232632>;>7>54.#"32>73>54.'4.#"'&#"#N 6 @5"E' IA-  V  ! 3!03C5K%$(  &J*   -% 'OQT,--0  %P*, C     #'" $% þ¡   +    2:<0Ë (%&    ""v   3>5 $D'(   *      # )1#  -69$ '!  $   '       ©   #%  "} (/, ' UÿÖ ö¯vã465'467>5>?>7>767>3>3?>327'4.'#&'.#.54>32>;22>32326323263232#"'.'.'.'.#"#"&#"'.#"27>327>7>32#".5</5.#"3:>?>7>32#*".#'"&#'"#".'+#".'.#"&/.'./.'.32>7>3>?>?4&574./74./.'.#'.#""6;>7>54&'7&a   79oB 1%-U,AG< /  I" 1 0f+9   (.´   4   +)   ¡(    ,BPK=  /4G@((*O.-&    "   @!šI“N€Z" $!o BG  "! ,&F"   Ó #INV0  G43+ 4      8FH4#'& ?B8  '0 Ë     Q í nH9939 )G  7       1k         *-("F"" ,)!   "V,h #/,)   67*\ !'35% &   0  "% PšV.& */. >4l6  &   ).+" !  0      '34) %i "" ‹!-/, 0KH7!     S`d+G þ¾/ +     @ÿö“ãQØ54>7>1>7>7>7>7>7>7>7>3>72632632;2632;>3>7>7>72674>1>3:2032!"23267>32#*&5".'+'.'.#.'.#.'#"&'+#"#"&'.#.'.'.'.'4.'.'.73267267>3467>7>7=>7>54&5&5.5.5.'.'.'.#.'.#"'&#"#"&#"#%:3:672>;>7>754.'4&'.#"@        !     #%$ !%!  )03þ€ !&B-8p0  $#,+0! "  K , Ð    4-L0      "&" ('   9#52* ‚ DFC                  &+   1$931$         &+'ž4t2      -_- ).(         %# Ÿ  ' ,ÿïÔ„"&'#"&54>5'74&574.'.546723267>7>72674>7>?>?#'&'###'".#¼4 *1*  12& 1 ,  "/3:"G´%0)^k    B" M\    !-{  ™GI=  Aw>+" *$/&@(0/  GKK!'³ï%(%" >ÑÕM4>7>7>75>54.##"&'.54>32+.i $B  & /;9:2      =FJ# æ  8c9   !# 9+    6"21% :ÿíó6ˆ74>7>56454&5>75&'&'.'.=46?5>7>7>74>7>7>3232>7>7>32732;22#!".54747>7>72>7>=>=4.'46=4646=.#"#3+".+"&54>74>=4.5<>7=4.=4.'.'.#."#*"&+.5:"%  -V  DPZ./b2'     T'      "þÌ     93 Yrt? $,&      %) ^¯]   �Œ   9·&?.(2HŽH¢---      '`0C`Á`      7'' 3'C.@(! ! 9!'#L   HF4©¨!ÞX.4.     ( L DME\ >l£v   &ÿíêR.546267>54&5'4654.'.'&'&'467>7>54.=7&'&54>54.'.#"#'"!"&54>7>574&546754674&54654&'74&'&'4.'.54>='4>7>7>7>72>;2;>?>32#".'.'&'.#"#'""#"&'é ,/ !   ""!(D ., M  þ· !! ,*.%$*$   /46 $'!-$2-1$+ �$2,*3   $D"     48+e-   %! V "   O   6sD 71 j  #Lc8@    8-- &  $  9-*  !(($    "/%     0 >u<:  :  é  +n       2ÿöý3.=>7>57.5467<74&=.546=<7"&=&'&#.54>7>7>7>7>7>7>7>7>3>7>322+.+"#"&54>7>54.5>7.54>5464654&4&14.=4&=4.'.'#""&#"&'< $$  !""   L!+    ‡ :%   &  *%$/-    ß$"   +b+#C!/-)    /99 >) )5= =5( F]i]F ª     1x|x1    83]3450*    72W-þÉ� -1,   :    &ÿæäô03+.54>7>5'7>54&'4.=46=4.'4.'.54654>7>54&=>7&546?>7>?2;>7>32#"#".#".#"?2#"'#.'.'54&'746465'74&'4.+"&54>54&5>54.#"1##".#¤  A !"  " !    %,,  á7 +!     !/— 1…?îAªDVGG³H JKÆM4Nº9ó£_<õ À²?ȸÄþ¡ý´²>Nö¿·ahÿáKR¸_l^‹5+\ZßKqDEÿDÉX°(†Eì¡X GŽM TUÓ Æ$;ÿø¡ y$p6�GuHGDF¬@BH1C5PCVð=ÐO¿%&*ŽAýÿì ?CB 0UÙ@S,D>:–&;2&>ý‚þ¡úv²8B�UUUUÀd€ @ ïýƒº>è‰ h .Zbehlpw ÿÿ .Aadhknr ÿÿÿáÿÔÿÂÿ¼ÿ»ÿ¹ÿ·ÿ¶ÿµàºò ¬'ÿÚ ÿØ ÿÅ ÿòÿÚÿÛÿ±ÿªÿ—ÿ›ÿÍ"#+ÿË,ÿÈ+ÿæ ÿã ÿÕÿçÿãÿÊÿ°ÿ¥ÿ§ÿã+ÿÔ,ÿÏ3ÿÊÿïÿíÿñ ÿñ ÿö ÿà ÿëÿñÿõÿïÿàÿàÿàÿË,ÿóÿóÿö$ÿø'ÿø,ÿõÿÛÿ×ÿæÿèÿèÿæ ÿé ÿê ÿà ÿìÿæÿïÿßÿêÿäÿèÿçÿéÿØÿÁ"ÿø-ÿè ÿåÿçÿòÿïÿé+ÿï,ÿâ3ÿîÿ¤ÿÉÿâÿî ÿñ$ÿå%ÿî&ÿï'ÿå(ÿé)ÿõ*ÿô,ÿô-ÿÌ/ÿâ ÿã ÿô ÿô ÿò ÿõ ÿõ ÿè ÿó ÿô ÿô ÿè ÿñ ÿñ ÿï ÿî ÿØ ÿð ÿî ÿé ÿë ÿê ÿè ÿä %ÿß &ÿð )ÿì *ÿä +ÿÙ ,ÿÍ ÿí ÿè ÿê ÿè ÿï ÿê %ÿæ &ÿó )ÿï *ÿæ +ÿÐ ,ÿÍ ÿÀ ÿÍ ÿä ÿß ÿâ ÿÞ ÿì ÿÉ ÿÉ ÿÍ $ÿÉ %ÿÈ &ÿÍ 'ÿÈ (ÿÊ )ÿÍ *ÿÈ +ÿË ,ÿÈ -ÿÕ /ÿÊ  ÿÝ ÿÔ ÿí ÿÚ ÿÔ ÿó ÿâ ÿõ ÿð ÿö %ÿø *ÿø +ÿÌ ,ÿË 3ÿèÿö ÿÒ ÿñÿðÿ±ÿÊÿÈÿÉÿÈ %+ÿé,ÿè-3ÿ€ÿí ÿé ÿòÿëÿêÿöÿò ÿî%ÿê&ÿö)ÿò*ÿé+ÿÐ,ÿÃÿÅÿÕÿê ÿäÿæÿåÿìÿÇÿÇ ÿÊ$ÿÈ%ÿÆ&ÿÍ'ÿÈ(ÿÊ)ÿÎ*ÿÈ+ÿ×,ÿÇ-ÿÝ/ÿÈ0ÿæÿÑÿÔÿèÿêÿéÿè ÿê ÿì ÿá ÿîÿçÿñÿäÿëÿèÿêÿëÿìÿÛÿÇ"ÿø-ÿåÿ¤ÿÊ ÿöÿóÿØ ÿå%ÿØ+ -ÿË/ÿñÿÌÿÐÿäÿåÿãÿâ ÿæ ÿç ÿÝ ÿëÿàÿìÿÜÿæÿãÿæÿäÿæÿÌÿ½"ÿøÿÞ ÿÚ ÿÙÿßÿÚÿäÿ»ÿ¶ÿµÿê+ÿÔ,ÿÀ3ÿ¾+ÿì,ÿåÿ°ÿÊ! &ÿfÿJ ÿO! $ÿg%ÿI&ÿO'ÿd(ÿe)ÿÌ*ÿO+ÿÂ,ÿY-ÿÐ/ÿu3ÿ¦ÿ§ÿð ÿêÿëÿéÿôÿÌ<ÿÌ ÿÌ!#$ÿÌ%ÿÌ&ÿÎ'ÿÌ(ÿÍ)ÿÎ*ÿÏ+ÿá,ÿÐ-ÿÉ.ÿÏ/ÿÌ3ÿ�ÿžÿô ÿéÿëÿè''ÿ~cÿ” ÿ˜!O"#=$ÿ—%ÿ”&ÿœ'ÿ‘(ÿ”)ÿÏ*ÿÌ+ÿÕ,ÿÍ-ÿÊ/ÿ„38ÿ�ÿ¢ÿö ÿíÿïÿì&%ÿ€aÿ” ÿ™!Y"#D$ÿ¬%ÿ”&ÿ²'ÿ’(ÿ—)ÿÍ*ÿÍ+ÿá,ÿÏ-ÿÌ/ÿ„32ÿá ÿÒÿÙÿÒÿï ÿè%ÿã)ÿõ*ÿê+ÿÉ,ÿ¥ÿÎÿÔ%"'& ÿï  ' & #$%!ÿò'ÿï#5&'"ÿȃÿ„ ÿŠ!W"0#P$ÿÙ%ÿƒ&ÿŠ'ÿÑ(ÿ¶)ÿ¦*ÿ¨+ÿÕ,ÿœ-ÿí3G+ÿå,ÿÚ ÿÇÿ¯ÿÂÿ ÿ¢ÿÍ+ÿè,ÿäÿØÿÛÿéÿ× ÿà ÿç ÿÀ ÿÒÿîÿÝÿÖÿæÿáÿAÿÌÿšÿ�ÿ×ÿ|ÿç!ÿõ"ÿö#ÿö$ÿø'ÿù*ÿö+ÿç,ÿç ÿø +ÿó,ÿì ÿï ÿñ ÿï ÿõ ÿø ÿ ÿâ ÿò ÿê ÿø ÿô ÿn ÿÎ ÿµ ÿÉ ÿô ÿ• ÿø! ÿÀ! ÿ÷!ÿ�!ÿ¹!ÿ˜!ÿ›!ÿÌ!ÿú! ÿú!%ÿø!)ÿú!*ÿó!+ÿß!,ÿß"" ÿÆ"ÿË"ÿ¿"ÿž"ÿ¨"ÿÏ"ÿö" ÿò"%ÿî"+ÿù",ÿñ"3ÿõ#ÿø# ÿø# ÿè#ÿø#ÿì#ÿø#ÿô#ÿø# ÿö#%ÿô#*ÿõ#+ÿå#,ÿÖ$ ÿÁ$ ÿì$ÿj$ÿÂ$ÿ $ÿ¢$ÿ±$ÿú$)ÿú$*ÿò$+ÿè$,ÿè%ÿÛ%ÿÞ%ÿë%ÿØ% ÿã% ÿé% ÿÂ% ÿÒ%ÿð%ÿß%ÿÖ%ÿé%ÿä%ÿA%ÿÌ%ÿž%ÿ¡%ÿÝ%ÿ~%ÿë%!ÿö%"ÿ÷%#ÿø%$ÿù%'ÿú%*ÿø%+ÿë%,ÿê&ÿÙ&ÿÝ&ÿë&ÿØ& ÿã& ÿé& ÿÁ& ÿÒ&ÿð&ÿÞ&ÿÖ&ÿç&ÿâ&ÿA&ÿÌ&ÿœ&ÿŸ&ÿÝ&ÿ}&ÿç&!ÿö&"ÿ÷&#ÿ÷&$ÿø&'ÿù&*ÿö&+ÿä&,ÿæ'ÿê'ÿÞ'ÿÚ'ÿã'ÿ×' ÿã' ÿã' ÿÁ' ÿÓ'ÿê'ÿÝ'ÿÐ'ÿã'ÿã'ÿH'ÿÔ'ÿÍ'ÿÎ'ÿÔ'ÿ‡'ÿó'!ÿù'"ÿø(ÿð(ÿò(ÿñ( ÿ÷( ÿÃ( ÿß(ÿô(ÿì(ÿö(ÿ‰(ÿÍ(ÿÁ(ÿÌ(ÿª) ÿÊ) ÿó)ÿŸ)ÿÏ)ÿÌ)ÿÎ)ÿÌ)%ÿú* ÿÂ* ÿò*ÿ“*ÿÂ*ÿž*ÿ¡*ÿË*%ÿù+ÿÇ+ÿÐ+ÿÚ+ÿá+ÿÐ+ÿÐ+ ÿÛ+ ÿÓ+ ÿÉ+ ÿß+ÿÒ+ÿÏ+ÿÍ+ÿÜ+ÿÜ+ÿÏ+ÿì+ÿè+ÿì+ÿ�+ÿË+ÿù+ÿë+ ÿõ+!ÿô+"ÿë+#ÿô+%ÿí+/ÿø,ÿÄ,ÿÏ,ÿ×,,ÿà,ÿÏ,ÿÐ, , ÿØ, ÿÒ, ÿË, ÿá,ÿÑ,ÿÐ,ÿÍ, ,ÿÙ,,ÿÛ,ÿÌ,ÿí,ÿç,ÿê,ÿk,ÿÌ,ÿï, ÿù,!ÿö,"ÿî,#ÿö,%ÿò- ÿë-ÿí-ÿõ-ÿï-+ÿï.*ÿ÷.+ÿÑ.,ÿÆ0ÿë3ÿ²33!3ÿð33ÿí3 ÿë3%ÿèZ ® ® Ì BÚ * F *N© 2007 Igino Marini (www.iginomarini.com) With Reserved Font Name IM FELL English RomanIM FELL EnglishRegularIgino Marini's FELL English RomanIM FELL English Roman3.00IM_FELL_English_RomanÿbTÿÿ (llatnÿÿaalt&dlig,hist8liga2ss018ss02>Ú>ˆºÚÒ,//116",-0/ 1 %D 4!6#7)52.(2 (�ËIM Fell English ItalicÌ�Œ‚jÔˆ¤ €PGSUBñüX�HÀOS/2†Ý�ó´`cmap;îô„gaspÿÿ@glyf÷î5âÜð6headùÄ!Éñì6hhea¸(ó�$hmtxwàì{ò$lkerne±`×ô˜®locaûC9ñ4¸maxp_ñ name&”>… HØpostÿST [þ#T�©+.'4.'.1.'54.=46747&45&5&54>=.54>'>7>7>7>5>7>7>7>7>32T .4n4   63'     "         '+  (!E"6\92 AJI( "V[X" %!2 2/)    $$!I  A  )('& ///FKJ      #$ÿEþ#>�¦4>7>7>7467>7>7>75>7>54654.'5'6454&'.'.=4>;2##".» /4o4  53'   !&  "          (*  ( þm"5^83 AII( "VZW# $!2 0b     $$" I B  )((& //1FJJ    0   ##ÿNþÌ6É(>7>54.54>732+.#".'²/YE*!'!&BWL 6@By % ë #>9 # S^+S#<4$ ÿûÿù'>32#".5#*&9-#7E"#Ã+7*3 %59ÿ×ÿ½«²­'>?>?4>?>7>7>3>?>?>7>7>7>7>32#.(      *<  .                    ;  /+  )/&!X%V+2#+\- " #4)    ,  !     "'"    oÿ÷‚/@~7.546?>3326732#".32>7>7>74>5>54&'.54.'.'#"ª E 5>< 2$8!@&    2E\ID#+EIH      &%)_<1 ´;JHy1o)%? $'' ##!" ()$  1FHKA     5 !  @MPCÿö‚Wj74>7>5'4>5'467.'.54>32673267>322.#&"+""&Q#+(  -($j (%"'' !.1  &( Ž  -0e-/$  ƒ ¸        ¼Ž #    =ÿí[—7>7>7>7>54.##"#"&'54>?>?2#"";23267>7>7##".#""'"#".5= %&%C8$!+&&       L1AC<         !+26l0  +  'L&  3\ !#%     NY^,(  %"   3s       3#$&    þ-gBš4>7>3232>7>5>=4.'.'4.#"#"&54>7>7>?>54.'.##'.54?>7>32#"&'.  -'   #')   "-.  / -  &$3 / #`-!#, %+(   ]ji' þ¯  & d !    ,\2     "."  782    " '$)! *.(!B8%þ!Éa Á7'467>54&/"#'"".#*.5467>?>7>5>?>746374674>?>323267>32#".##"#"&'.'32>54.5'&454.#"¥ r&&& .P'   6   !$ '' (   %   ! Ü =@2 !B þÊ6>#(  ?B& $7 ! 0>< /G´ 0%Q   "" #   (' ')* …gþJµ•�467>7>546?4654>5'74.'././.54>7.54>757>3232>32#".+#".g *G  !   #/0/+$   &C@A"//$  "  &2996 þ‰8 &K' 3  *6 $#  !!      &4$+&' +a :BE7# c |‡žÖ467>7>7>7>?>7672>7>7>7>32""#".'".#.'.'.'.7;>7>7>54.'5.'.'"c    /      2  "    #    !,* "     #!!  t  ( @    BQ'Q$ )*, *        !  !    ,2,  $ 6   %" &-'  */7 ! €  9þ52ž'7&547'>?>7>7>54&5?67>?>754>74.+.+'#"#"574>7>332676232327>3232#"Ó     (J*P+ ¡ $ #*&  )$D"  m        þ- 19,"4#   F..2 +4+  #(*!      $>C994S""  &%# %&(tÿ÷·»In›#"&'.54>7>7>54.'.54>3232>54&547>74.#"32674>74>7>7>54&'.'.'#"â  7>I/F~,    %?cF0X-' $+µ>"* ,3(-   %3   &+„ 5<6 *,' !1!78= -*(# !"  7@: @tX4 1;>JIAýó$&/?;+,@H8PM7  $'$  (=Fÿàÿtt«74>5>7>7>?>54.'.54>7>7>32#"#'>7>5<'.57.+  &y 44(.;7 ->%*6  ., ;)$      (a01)(,.9) #& !84!  ß     $7'*+  #>FW=#F?6  %-/, $ !    9[.    ¨  #&&'  (,F1  !$$- ÿýÿòó9)>32#".5>32#".5Õ$*'9,$9F!# Ø#*&:,#8E""ã,7*4 &6:ýû+7*3 %58O ¼r4`467>73>3263232632>32#'"#"&>73>323772632#'*#".5O2+4 ?&  &  ?jF’J"D#¡ 2+ /{v'$ >jLOJ!F  D    #áQ  ÿNÿäß…ò'4>7>3>7>7>3>7>7>7>7>7>7>754>7>3>7>7>7>7632""#.#"#".54>7>7>7>54.+&#"#'"#".'"#'"#".3267>?>7>74&#"²  @>:    -  "   578&E!!$   !    (& &L&*T+ !&32      I (+%2 - 02&!)! $="f   9   L 5  !    #  '    3/.&K'+420 6n4B" )  &"&"  #  384 7I% 4;8     à%  "*Ï—¨ê7".'"&'"/546767>3>7>7>7>7>7>7>54.'.54>;3:7332632632"1#''"#"&%;2>37>7>7>7>50.#./.#"32>7>='.#"º!&      + 2JT"  Ê  S   -.'/$  !"B'%   âc)N&F   $'*$    4"$   À 552-033    4 -$LMK$< I”K'('2/         )1  --("*& , ;=K:    µ   !5 /*) 7b0$!$ “  P][a .@$&((2  Žÿû¨šÅ4>7>?>7>7>7>7>7>3232#".'.'54654.'#.#"32>?>32+#".#".#.'4.5.Ž(4*  &**BG> |     "  0 !   .9 Q8;9  "  "    /29C‰‡‚=@-,(  %$    250 0* #$  "! G: -,.    G*I@+(CD4  -+'    3AH! #ÿöœ„­;.'4.#.5467630>3>232>320#"##".#.#"#".5<>767>7>764>7>7>7>7>52332>72>3>7>7>7>7>7>5>54&'.'.'&'&'5.'.'&+.#"    % 7>;/(  „    'A  #$$H1N>!-?…F&*%(&$ 06(4"    -   $" ""    + #   /  ß   B +X;    !$ 1/.10-*V+    "0CK 3  "O  00/569ü        #)\* :,  &)/&'     > TŸT@  ,*/"ÿþÿêr{"'4>72>7>7>7>7>7>74>5>7>7>54&'.#.54>323267>3263732#".'.'.''"3267>7>32#.#.#0.'"3%3>7>7>7>72'.#"#'"+##.!.1    "    $]5  5f32b0   “2/($   3É_ " 8#9" %  ! j  +.7!       (1(('R#-  1m1(''      � $"    +444   /+&HIK)/ $&'!,+    2/3. '#     M  0'  ÿ÷vŒï7>7>7>7>7467>5>1>7>5>74>7>54.5>32;>32!;732#".'#"&'#"&#"0#3267>7>32#".'.'".#'.+"372+.##".'.&37  L    /6//! ,<==$$'5   s„'$   ,5 3        #*/ F+   j   X�  vév  "# $)* 8     7,#-(#)   (  0/"  ;JK7!+*   2IQ<@? %  Äÿö˜¹ %.'.'.5<>7>7>7>7>?>7>726?>3>7>;:32632#".'.+#;2>7>7>=>54.'.54>723326326323>32#".'".'.†!     43#&"R"    &% 4AF @&(%  %'  !&" V ,/'    ; / ..    #D„D&D$#!  Z!  JœO01.)))+V*     !  #5>2&!!   KUL-[/+BiS "&!$'$& !" !      -3/ G.,% 7 ÿÍÿÕ“€r'4>7>7>7>7>?5>7>7>7>7>7>54&'&'.'54632;2#377332>3232>7>5>54&5>757>54.".54>;22326;373232632#'#.54>73267>7>7>74.##"&##".'##"&'##".3!/4      #    " 'ù  f     N7P" !B€?"   *1*  2 2#•','       !  + #'_þþX  R  .)  ! *0,  )!R 14. !   (.(  r—!   '&   !  #&  3l6/[/!? " !   .  4;6 #    *.  2(C    !   )$$ ?2 /1, \4)       4_2?|<  &,+*“     ÿÚÿÕ¸h¯67>7>75>7>=4>74>5>54.546373326726;1"&'.#"++.54>7>7467>7>5>7>&    !(!&•g* g)54    '+  &"& B#@""  $+)   ê0*  ; --/   5?8  $"> BI!;:;        &   #BÿÅýÜ6v©./.'.'.'.'4&'.'.'.'4&'4&5.#"372#'.#""".54>7>7>747>7>5654&5>?>7>5>?>54.54>32>323725>7>373746?>5'.'>7>;2>32372;>7;2#"33265<.'4&'4>32#".'.òW    "  1 #A%5 5<6 % '%-;9         !!$ U:98,"    ! ?NK !(   4&  h   !! ! f  F-"      ##!    &/+$( 4B% 3E_C'%# þI ‡ "%' 5?=)   @9(   &(( #!      (-,*(    02898D         (M- GQ.87&        h     E./)-)s(-.  $&$ "%*  %$&  ,""2H-@K'  ÿøÿèîkê4.#"&'.'7636?32673720:7>3273>7>7>32#'".'.#"#".54>7>?5>7>7>7>7>76?5>7>5467>7   H5c43g4 !       * M~ %$ '.2  )�{ jÍh,Y. ! 2A=  !    ¦!&          !#(#W( 5 #&%   ;9*   '       ')%'$A{B$$$@ÿß�€»7467>74674>5>7>7>?>7>7>5<7'.+.'467323267332>7>7>7>?>7>7>7>;232632##"&'#"#".54>7>3>3265>7>37>7>7>74>54>7>5>?4&#"#".'.5.'5&'&'4&'74.1.#""#".'.+#"."3+( B   x  'B0`-8 &)      *-(  /.1 ?"63 75   /+      >D5#"$ á  #$            (4"-11!.1           E"  : =4 $    ,S*ž&J&  'l  *   &/(= "D#4 ! 2A= )897) =&&=*    " *Q-%OOO& (L)6        (A 33/%  .# ,_/431==.v" K]cS5#6B>3 - #   "DB     ZÿôI‚†%"+".5'467>7>7>7>?>5'467546?>=4.5.'54>74>320032>7>7'<74?>7>=<74>7>=0.5.'.+"#".54632326323>32#".'.'.'.'.'./4&'./.'.#"32#"&'".'[(&/)  *     ,263- ! $B><      $   !  !       ˆ "$#  '67           +]6  &      4   > <   -11/Q+, & 922/           ?$#   0.!#/0  3(3,.  A        !%" &'' 5  .11*I* +,+NœH$&06    . ;S"B °//3!  ™ÿýž8a¸%.5467>7>7>7>7>3>7#"&'"&5.32>7>726?>7>7>?>7>4674>5'.#"'4: 8‹P7#%"      ?8 3PQ`C=    "E>! "  "TYWJ9   >+eoy@(A%+_-&%%De  h<   0// ;a%#D6!   )13)  CK[((+..0+    0,0L^\P(b0&     ýûa€y§"#"'##".54>7>7>767467>7>=46?>7>7>=467>7>754&5"45<7>7>54.#"#".54>32232632"326332>7>754>32+'#".'.'4&'4.5.5.'.#.'4.'.'4.'.=.'.'.'.'.'32>;>7>7>7>54./#"¦    &3g7T' %$    4!*    #'"F +/#-1 =%0YYZ1 )./'(              5*5EKK!9P ,$   2      G*3/  %-/<$ Ñ *  !&C      GŽE#J$#          "! $@;6    *02!    """  E @5(?0# "'  E 3{<   7   %#m  )0/1.( -9E&;A?%ÿíkÅÈ%.'.#.'.54>74>3223267>54.'.'.'.54>7>7>7>7>32372.'.'".'4.'."#".ƒ0f3#'!    .;#S7  *J    '-' '[&""$J   +1*Z)'(  ".    ,,.%  *35+!# (" PK; G; %+.->32" % 0W06:7   T#%-7%;8-    1:9?BA"$''*XUP$*("   Èÿíö%4>7>75>7>7>750>7>54.'".'"&'.#"##"&54>75>?>74>37>7>3:2;;723267>3:23>7>32&".#"#'"372#"&#"&'#"#".µ%/ "  ' # & * 6;=  %  "# FŽD  P n=$   4., $ +/A&%# y      B#-$F"6  ”!! S   9 K¡MI”B} 7  !&! !*    03+'  ,,- /777,     &   Ðÿíž6%.'.'.5467>7>54&'.#"#"""#".'4>5>7>7>7>;>3>32326372233267>?>?>74>5>54&'4./.'.54>32#"&'#".'.Š +-' (42$    #,         ;  .]8)  $L%(*  ,-/J ,32 ,0.-K‹H&DEI,  #)$"(9= Q‰9      *\el:&  &c(R"*A   !*7&!!$'   #*]+0Y- #+.2(   - B=! -S% #@  4e0     ˜ÿòŸ²74>72>5>7>7467>74>5>7>7>?>74>5>54>7>5.'.'.'.5>726?2"#"32>7>7>?>7>7>7>54.54>32372#".˜          �MŸ! !        & )6 G&!/%'( )ó*998!!&]0  (-QNP+   r  %'"      ! !/ F##C& $     AIF& E$)!    ^ %Y,/K&"!  /5<$& ! #122-Z+   5'UWV) "%# h  Á\d%7'46?4>757'4>5'467>7>754674&'.54>3327;723263232>?>7>7>?>7>?>7>7>54.54>3232637232>7>7467>7>?>5'".54>372>32"#"&54>7>7>54&'#+"&5     -&  671 >  #  #*       0 $%#& "   !! $&%9(\ ')& !  &$ :  '*% o '% (EF "!   @ 2" #$1 Y0$0/.T(1651 # /Y)#!27 7 i G  !.F•I=#&#     #  "'U  -V-9546   2  $&&:  *    &0  X5 ;„;,$139!&"'%(o     +*)  A3U*468J7@C5")))0211fij5 &V-7,00"B 6#.-  ÿýÿÜh�4"#"&'.5467>7>5#4.'.'.'.#"+"&'##".54>?>7467>54.'.'4654&'5.'4.'.'.54>32>37232>74>5.54>3237232>3232#"&'.# *.  !6==1/7 Œ  $--(^$"U4CE4   "(+#!-. I  }/&' 75/!(! !o ,-- I"3            m(( # $&()*' D ,DTPA !!    B&-T 'F@< $'$  &    #$         & 24)'792/& %'!           (8 !  ,   Þÿæø!ö%"#".54>7>7>7>74>=>7&454654&'.'"54"5&5.#"3263+.'.5467>3232>7>7>7>7>32".#"#".##".'ù&N'*&  !*'"   !"   *   )!  !L\ A?<   ! +/001. % B<1   !  !  -5-$))),    #4??8)'& & 2( (,*     $J _�-  ,/,  !!      & $6>   % H":     ((,#    ÿóÿöRW—Í%54>5"#.'4>74>76&7>7647>?>7647>7>5>7>32>32372>72#"&'%32>7>7>54.#± &,* 08;&      "$! ,,.m     "*5# " !#2þÚ  @D=  "    436  #  $    #     @  38/   (.# "  »  &479*,1 .."     4ÿí ïšñ74>7>74>7>?4&5>7>7>5>7>54.'.54>732#32>3"#"&'732>7>7>7>74>7>5>54.#"4  !     0 &( {    (03)?+    ;CA=aŽ  "+0)        3£ 7CJ@/9q3 !2  @{@   =?  //+"; $<."  7    >  "@6b   %-'      %T'%       -X-    ÿ߆cu74>7>57>7>7>754>7>32#".#"32>7>?4632#".'.5 #=>D*!# &  1'      T   $+((#Ì" ! "'!,.%7;B&+8C   R"(!ÿñÿæ2¸Ê%>54&#"#"&'.'.54>7>7>5767>7>7>7>5>323732>75>7>54.=7>?32;7>32#".5%;>3>7>7>7>5'4654.#"#â  "% EQS    )2 !& 4N& #$!   Š 83#  )/, :@5 ";  )#3CC1  /0.'    #P!t   "1 79; % %)(   � CLJ$&'+  0`9/02ÿý W—'>7>7>?>7467>5>7>;2#"3:>7>3>7>;"###"&#"#".532>7>=.#" " 4   16+  076,@"$ 7  /  6' A<2+0/&É $! "G <   X?,      .) !  !5@2$48 ,762þcýä Éí4>3232>74>7>?>754674>75>5'4>7574>?54.'.54>3267>7467>?>?>3263#".#"32>323#"&##"'0#".þc B     "+  4   4767>7>54&'.54>767>7>54.'.5<'.'5>5>7>7>?>32#"&#"3+.#'".'"&/.732267>?4>?&'&574&/.'.#"#"32>7>7>54.#&"#"þã !(9        29B*544½ 6"-6< !$#! !  ?G<' L\g6DaZ-!%" @µ (-,/9m6 S  4”N--*  "? .0-(     #  þ/*)0    $)#$!    š9/   4%UYVM> U    0>I'  3>!  './ %  =F  NÀ '=LJ@. J" *,3"   "ÿÜ6ØÕ74>7>5>7>?>?>7>5>54.54>323>7>72>72#"&54>7>7>7>?>54&#"0#"'.     '& 67)      $%#    $ &17$6)+    #4,''       B &(& # :=?(577M > AAB    -"!!X    0=   "%% &@:8 +")*  #J#"=B@0: <@@ !$! .' !ÿí³mw‘74>7>5>7>7>7>7>54&#"#>7>7>7>3232>3#".4>32#".   !    "        *.6 ž2a9 «))   +(&"!  4    H   ,+& !   *ï%%$ %1þ”ý\²q…–4>32>7>765'2>7>?>7467>7>7>54&5>7>54.#"#"&'>?>32#".4>32#'&'þ”!&O&        $+4  ,4:&%V>     4   $6E*'N*3'"o").#-ý˜  !(6 '''C(.*!!"8  )  1;1#93-/*   U ;KQ  \¹[N 5nh]$ {* $',#ÿîÿêBÆâ#"&5>7>5>7>7>?5>74>7>54.54>7>;"32>7>32"#"#2>32#"'5.5'.7>;26?>54&#"ß  !%<    1 %    $" #)/"     !! *'"! -870}  ‚  B&C /6/ - 70 +&BzB 1b0-0., W""&    &!<;: #MQP%'.)!"  (  $ &   $ ƒ21 ¦  G $#,) ÿím‡�74>5'463>?63>5>7>7>7467>56?>7>54.54>37232>3##"&'     '! )f       (  &&,  $$) .J ‡$##- *-,!2 u}$   ",   "A  A   ,+J 4 <  *3*  )*(9+&ÿß"W4%4>76?>7>5>5>7>7>5'.#"".54>7>7>7>54&'&'#"#"&'67>?>7>7>7323267>332>7>3>3232>3#"&'54>7>7>74>7>54.#""#"&5Î    &  3)#$!   "      L  .6:0  (&/%1)     !+ !4  4  ( %B9',$";97   !!*+   -*)  + 0ÿëdIÚ74>7>7>7265>7>5'.#"#"&54>7>32;2>?232>32##".54672>5>7>7>346765>754&'.#"###"&0     +- "'! v3&   %  "  %     !$    . 522  ++*%#*# 00(#, K".   5;8%  # @    ;#(.  9#F'%6¦j\·7467>5>7>7>7>3>7>32#""&'.73>?>37>74>3>7465>5>54654&5467>54&'&'.'4#"6   .% +%    ! V, ,#“#      $#    ÐH¡E    %  !)-   !122  !.;<53/! - @      !@B   'þ°ýƒDÂø.54>7>7>?>7>?>5>?67>7>7>7>7>54.#"#"&54>7>7>32372###"&32>?>7>7>7>74&'.'.#"þà &'  /         ) ,62)  V>:.'   -3/%"'#    JILŸÔ S   & . *     ý¤   L&('$$#B 8::   ;><     A@7 )%%!/5 "NMG     !)l195  ð O   ? -3//X   /;<9,B#9ÿðq‚7>7>?>54.#"&54>7>547>7>7>732>?>;2632>34232#"&#"##".Z,    ))) &3   9    6#     ( 03  9Do8%&%N"*, $.*-#      ='!  " 4$$%P$?-ÿÅ Z7l'>3267>5'4>7>32#".#"#".'.5: $2! ( -QD'#'      Ì  ,5,5,ÉHqYD  #  .X3  ,  ;%ÿßЃ74>7>7'4>?4.54>32>7>7>32#"&#"032>3#". 6% +  #'-$)""B#&%$@@C&'0 /4:$*]663$ l     $ + &$"    V   ! ,4,,)% ,&#.ÿíS/Ü74>7>57>?4&'>75>54&'#"#"&/4>32;>7>7>7>7>7>=>7>3232>7>32##"&'.'#'." #     &=KJB  &(  %#8#(  %     ..+ 0<=    ' /!Z::8  "1.' ,., 984    =# F$  !,$ )$!  C##'#    30(  ! !  '> ¹U”7./>7>7>54.#"#"&54>7>7267>;>322>7>7>54&54>7>732#".Ø     -,R   +! $+,& 4-  %# ,V4%*& 1-'t$H" 27/%  $"#  EOP )  @EK(&L# "$ $(NKG :d:    &Zÿý_‡ªí)%467574.#""##".'.5.5467>7>5>5>7>?>54.'0.#"+.54>7>3232>32;>7>3:#"&"2>7>7>54&'.32>7>5>=4&/.'&'""«    238#             F$3- (7'<"  0r?  + *EX\W"  J! 1       62"  "Ï!441(; ""$ &5D&  *)    !  4#EIM+   /1&(  '.' #" '3.7<-inl^L Ý $  N #&"    "'LRY5,&ýþ0;;60 '  $%\ þóý– yÌ4>7>3237>7>7>7>74>7>75>54.'.5.'.#"#"&'>?>7>?:3267>7>7>32###"&'.þó  !;^,  !     (            ! "    57>7>7>7>7276754'6.+"##"&#"+.'7>5>7>7>7>7>7>?>5>7>7>7>7>74>5>5>7>7>7>73221263>;;2#"#".'.#"#"&+#3267>7>7>;+.'".#.#".'".#"'"&#"#>72674>7>;232>7>7>7&6'54&4&5#"” #[/%  n#A#=  7"2     # -20 $   N3$47  ,;/+"! 5     /: +], û   $3*& ,2- +   'U#         !  !+(.TQR, +2-$#ü    _ *')&  !       EJ@ $'&    4'   % *3>C"  69- " :      /G%5:  + 9 02.C    !  %%'/& &%!    )2Q     !%&è    "  a þ{ýf=Gh5>7>7>3423232>7>74>5>7>7>7>5>7>54>5>7>7465>7>7>7>7>322#+.'.54673232>54.'4.'.'.'5>54&5>74>7>7>754&'.'+##".þ{   )-       !!!$ 9>:  2:<%    "&¦   #      8;: <> 0H9/          &,.%ýÇ   -: 8 .4. ;h>O"&% -;8  ,/ 00/    ! ! -&# (/2  0    8(1+( "# "$  #(%%    =O $     E5 4CM) .,%   '-&/1.  B…B/ # 0    ÿïÿßìa²è32#"&'./.##"&'.'.'.45467>7>7>7>7>73>7>7>7>7267>#67>72>727>7>323232>7>32>767>7267>7>54&5&45'.'%32>54.#"c   C  '$>  >$"=  $          /0`0KO       )!  #ý˜*%        ‡ :8)  1)   6& #$ "%    7j6   !5  TH%'#        *     $&*      $#   %þ '46.ADýo  8463232>7>7>7>4=4.++.'.=>74>5>54>54#"#*.=>7>7>7>3232>7>72>34?>7>320"#"+"&'.'.52#".=4765>4>32#".2+"# 3*!      *0,")-  "#$    :     BA5   $*0     2 = /  Ž=74; "! ýô'.  (2%þ); .54Y326+! "   $% a   BCAC  .  1  $ ,+,,<=%$#  ),*($%#   ) @ ' ),-   ·E;8J { H)'4    +–ÿö|Œð=%.5467>7>7>7>7>37>32!>37732#"./.''"32672>3>32+.#.+""&'"3%:>7>?>72%"&#"+##.'#"&'"&5.32>?2>3>7>?>7>7>7>7>7>?4&5.#"'5; "4 6ŠQt  •  �l.(#   90Èa !  5":$ $%    -  'ZE  C    (1þôŸ"¢ %? %  h ' W   "TYWJ8Bm+doy@'B'+\-&I)Ah#    -##4 9Q  .444  0,( (KKK(    $(&E 9 1 /1+ 4>$   IO+2'     II6 $-^k#H  2g2/,0K]\P*b/‘   ÿÇû¡èü.'.#"#".'5'5>5<7>7>7>323267>7>32+"##32>7>3#"&%32>?>767>7>7>7>5>746547>54.#"%3267>54&#" "&  - !"( '* +0>-+#! . #$$1-$  !      +$) !  hþ´         ¹C-#4,-    D�4  PUK . %+     ,63 %  ›    <#(     &&     ô%-''",=Cþ@þwèß4>32232>7>7>7>75>75>7>7>74>7>74>7>5.56?>?>7>74672#".#"#".þ@ !"           h  ,61   &)#  '       P+52P6(þœ#  U# /]/‚ '))(  JLJ8rD 0 g      ' "&013‡;  !%$ 5$18/  783  &!   G )6 ÿòàñm74.54>7>7>54674>767>7>7>7>?>54.'.'.'5>7>7>32;263>732>32#"&#";>7>32#".'.'&54654>7>7>54.54>7465>7>7>54.'.'.'".'#"32>32#".32>32#"#".#   ! ''    6=E*   NVU$"%  &"   '-'")8  886F     !  %00 @ # ),#I   +-) +$80  %?0     *168:'. +    &y +-%  &Q  '++    #$ {7%4& & '! )@;:$<=; $#  0NKO1    /.0     ,;A9)199   8p7I$$  8<.'.87?8  0 -0/ $$6>6$3,&   *.þýUA¥ÏW4>73267>7>54>5>5>?>7>74&543>767>5>7>7>=.54&#.#""+"#"+".=463>73232>7>7>7>7>754>7465>54&5>7>7>7>54654>7>7>7>7>7>7>7>32;2>732>;2;26;23326320#".'.'.5.#"0##".6322#".'4&5465465>7>7>7>57#*'.54>7265>3>72>32>732>7' "C        $    ""( "        9    ( + A  (   !( "            #7:9  :98#        !  0.'         '. "$+A;)G  ;&     !    .1      !ý¾  "FD;   ,f%,*   AQWM9 'J*<   ! I:JF& "" "L"  Ñ.  <H  $  =)&R$ + .45  &N& " ! /32 &-+  #   "+   (0[2"D&!! ! "/Q0  E" "# C??<3 %# )   -=   !!/*68:& &!    .#+&$$'#+(þ¦þøLÛ#".#"#".54>32332>7>7>54>5>7>7.54>7>7>7>3232>7>3233263232>7632"#+".=74>7>7>7>7>7>7>7>7>7>=46754.'#.#"%1332>7>7>7>7>74>5>54&54>7>7>7>74>5>7>54&'.'."'#"€   / #$" 9 $& ",.) !<.!+ " !    ! 7;?&,&432  )/*C""        &''#      -    )    t    þ@       Z ,       $    & %))" K)T*  S/BKC2h K–H     #    3&-# "!1Rjqp^C ?{?,2$!65/ # .(#   *  1 $ t (!5- #E%$#%%*%A     h  $%$#D" ?y?     g %%, 76;232>7>7>7467647>7>7>7>54>5>74&5467>7>74>54>7>767>3212>7>7>32&#"#".5463233267>7>7>7>70>3>54.'"&##".54>7&6?>74637>76&>?>7>54.#""#".5ý¾ #       %     +5;  = (R'      2+% #=:+!('"  * <-     % 3" (  &$         '4% #    )./++,.<;+þ  (!   / "4b: 6p0   *5;2$  '*.-174 LN@  #!$a6 %I"]-3   "-Â;HOE7   (1,* <95 ),*  &  (--. !#8/! :s242 • })*):B# #OU]14f5$@>>"9o;7:;  B 7>@7*  þ‡þ¯ ƒ4>3232>7>7465>54>7>74>5>574>7>5>7>7>7>7>7>7>7>3>73>2323267>7>74672#".'#"&"&#.'54>3232>7>7>?>7>5>7467>7>1>=.'.++.þ‡  "        8  +&& .**+ ,/)   % @+G9-   $       .�P     9 !  (    '                "% ;3"þt          % €  @D�D 7" +R‰D=4!      ' '% 8$gw€<  ?[   }#%%1/0 "?E h  !.2',)"… 35;)4m>,51&  ? %% ) "1/3$   !%# !  //Q-  9=;    )þ(ýv ^ÞX54>7>323267>7>7>7>5>507674>52>764>7>7>7265>7=467>7>7>7>32;2.'.#""&#"##".<74>=>7>7>7>7>=4&#"#"=>?463>32";2>3"#".þ(  2<&     6)    2-36 -2-  /3 .&3.& %0     Y9.(&=    "*#   #  #4<  $ýÇ5 /@?L<  '# !!&)$[¹R++*#   !/F !#$,6r9"Q“W"3;6(  "B+*+ /  .8. 0  +*% !!!   2-    $:=:    %4("  þýÏ7¡‰Ž4>3232>7>3>7>7>7>75>7>7>7>5>7>7>7>7265>7>7>?>320"#1;>32#".54654654&5>7>74767>7>75>7>5>4>7&>5>54.#""+".'.3þ !                 I'& 4a;         !&(  "$"    '        +2      %!  I)).  )# Ž þB##   LNK  5:0K$,* 22. #Q&  <!'!   % (  #"  %;   --*!"$     ", !$$ !:$ 0.# (("...")'92"  61-   &,**   9v91%  175&'% +-&G   -ÿøý» À/'>7>7>7>5>7>74>7>7>5>7>454&'"#".54>7>7632>763>7>3232>7>767>5>32+".'.#&'.#.'&'&1.'.'.#"#".5>767>74>54.#"#32>      !  (9>               /  -.# ! %  0j6 !&+     #  K-.+   /37>7>7>74>5>7>7>7267>7>7>7>72"#"&'.#"+#"'.#"&#"#.54>3232>54&'4&'.'.#"""".'.'.#"#"&'.5467>7<7>5>7>7>7>7>7>7>7>72326?>?>7>7">7>767>73267>767>7>7>7>?>7>7>767647>54.#"#5%647471        4 ($      %   $      %   #!     -&  " 7;=        4?M/"+)* #         ý '   &    ()"   hý+ß   "   ! !     9??:  .' $)#N             *  "&+      #$%RJ8   +U,)R- &%& (   ï  '(  4    % !"     E+GmÐç7467>7>7>7>=4&'"+"5"#"&54>763>3223263>7>7>7>7>=4&54>7>32#".#"#".54>3232>54&'4.#"'#".#".'.54>7>3272632G$  !!#/0 '*2)     (  :NZ.&!    $3:()$$   !   3<;( ð4*       %‡8W/"  466  ,+& &563&R'  !!"/   -A,!)&   $!))+'RMB  !+%  *. 54&$  //"#2D       9ÿØW}@74&5465>7>7>7>7>=4654&5'&##"&=>7463>;"6;2>7>7>7>7>7>7>7>3232>7>7>7>7>7>72634?>;#".#"+.'.54>3232>54.#"#".#""#".= 2   L  ;3>7>7>5>7>7>7>'>=.'.54>7>3:>5>752654>54.5.'.'#"'###"#"#&.54>3232>3>?>74>74>7>7>37570>7>7>7>7>7>7>72767>7>5>7>3>767672>7267463>;2332232>?>54>7>7>=4.#"¬ U ‚  2  %%    ''                   72!%        "          !& +/V     "=<+    �4    &;%  ,& .ñ&5JO@;+!*2 )Q* ,+$FþÖÑ„ã.'.'.=>47>7>1>7>72632#232573232672>7>72>737>54.'.54>32""##"/"&#"+.'>54.#"32>3?67™434Q¨ž‰3 I. ,,*  #N. '*0+))j  0;   PK7"'"6$*##&  & ))!    L0  *]`a.(ý2%     )þæ2HfM.--Š  ) ?k-    '--#    5<>6   &   %,+ & "'"!"# 'K @ K-  /24  ÿÿÿí³m1þøýí£ËPŠ46?2>72>3>7>7>7>?>7>54.#"#.546323267>7>7467>7>7>?>32>32326323267>3232+.'.#"32672#'#"##"&'&546;3267>7>7>7>7>7>7>54&'".###".32>7>7>54.#"þø         $ 8)   "  //0  0// 6- ' $  8/# )$% ${> '    !"#<3) $/ !"  ,  +()D      5-.- @ $QF. +!3?;0  !, .2* P þšþUÇG.5467>732;>7>7>7>7>7>7>7>54.5463232>7>7>7>;>72672>732+.'./.'"&#.'#"#32672>72>;22>32#".54>74>5>7>7>767>7>54.#"#"&þÓ  *!     ")")   +4A, ,  GG< # # -   $  %(%  6.   "($)*;A!#(    &2/ &     % 167;þ-   /j6 "! -^+ :A>" )4**6]RL&  +"-    " ,F@># !#    /j3# %9-&  ""'    "M&/]-:   '+)  5)  þ¦ýÜ!Ò`4>3232>7>7>7546746767>7>57>7>54.".5467>7>7>7>7>>32332326;3:732>32#".=>5>7>7>7>54.+.#""#".;>72>7;25>7>=4&5.+"þ¦$*(('       *#  !  -=\M        /74)$     p(#       D +00'($,    /.' )<   þ;& $!#"! h ! -L+=@@   %/+)U*)%%;P.  112  ##!g/ 4j2, % * #29:0! "*% )*& 6c2+  *2,RWP (/+      -  323>7>?>47467>7>?>74>74>754>7>54.+#+.54>32267>7>75>7>7>?>7>=.'#".'.546?2>7>7>?>7>3>3232>7>323723#".'.+#3723>32374>7>3#".57>7>754&'.+&#"1#".;2>7>7>54&'.#"Ž  % /      }   3?G#. ,.# ' **"    ¦+@L$= "%$  $%   +/, -& 2  *  '      “'  /a  "  ) ""     S,    $   ?",(p ×    9 !   þJ     -8#T&  $DBA!   ?IC(     4#.   4-"% % "E /!!4. þÛþKø%„Ê 4>32332>7>7>=.54>7>7.54>7>7>7>3232>7>3233263232>7632"#+".5>74>7>7>7>54&'.+"#".#"#".%32>7>7>7>7>74>5>54&54>7>=.#"12>3463>7>7>5>7>=46754.'"#.#"332>5>5>7>54&'.'.#""#"þÛ!+ "    *+!&-(.! 7;?&+'432  )/*C""       &''#       -    7>7     ;    ! 9 $& ",.* !=-9 /%       /62 !,      *û%(  +/       þ@  &    %))" þ‡-# "!1Rjqp^C ?{?)  $2;:4 # .(#   *  1 $ t (!5- #E%$#%%*%A     : $%$#D" $#  S/BKC2h K–H     #    3N $(&&         7>332>7>7>7>5>7>156765>7>54&5467>=<7>='4>7>5>7>754>7>7>?67>7>3272223263#".#"#".54>5>7>?5>54.5467>7>?'>54&57.#"#".þk               "<)$ ´   G    *'#  ! W   "  +  0   =<3    $ -  %J:%þ˜       #  ;"#$+ +G("   È?v@@µAØBŸD)E;GÊIŸK L NIO£PÍR¥U´X"Z8\7]þ` a¢d&e•g8iûkXk`mkopâs–v=xzø:Í_<õ À²¾È¸Àý¶ý(>F\¯P[”ÿEõÿNÌÿû7ÿ×oãC¬=þÚëgic¨9@t�ÿàÿýÈO¸ÿNû*ލ#Yÿþ‹�ÄïÿÍ+ÿÚZÿÅ4ÿøšZº™=(%&È#Ð0˜¤õÿý1ÞŽÿó4iÃÿñ©ÿýlþcþã`Mþ”5ÿîÞ|&À0ê60þ°¸9HÿÅ–ªÆ>_ZÿþóòÿlŒþ{üÿï[– ¹þ@Ð ýþÈþ¦{ý¶„þ‡dþ(çþÿø×ÿéOG09þ—ìFM&þøÚþš þ¦¤þÎýþÛÞþk>ýšý¶û(™[Ë�UUUUÀdimar yïýƒº>è�— p ),:=IOYpwyÿÿ (,.=AKRaryÿÿÿáÿÚÿØÿ×ÿÕÿÒÿÑÿÏÿÈÿÇÿƪ œ37!3#=$& '7( .+/¹8 ?iÿä ÿô ÿã ÿêÿtÿîÿàÿï ÿÒ ÿòÿ~ÿôÿâ7ÿÏÿ±ÿì ÿÉ#ÿœ$ÿ2%ÿØ&ÿ¶(ÿ¸.ÿó/ÿô2ÿå8ÿõ9ÿï=ÿÌ>ÿ×?ÿ° ÿáYÿî ÿù ÿúÿ÷72 ÿú ÿú 5 6 ÿö ÿô ÿú > * ÿõ ÿ½   ÿù ÿöÿíÿìÿðÿâÿôÿÜÿäÿÚÿëÿîÿæÿíÿàÿôÿí ÿð!ÿô"ÿç$ÿî%ÿä&ÿÖ'ÿö(ÿí)ÿÕ*ÿÖ+ÿÓ,ÿØ-ÿÍ.ÿØ/ÿ¸0ÿä1ÿÐ2ÿÓ3ÿä4ÿÜ5ÿÐ6ÿÖ7ÿ¶8ÿä9ÿÓ:ÿä;ÿÒ<ÿÐ=ÿ¾>ÿË?ÿÄAÿ»ÿÛÿîÿÙÿæÿ×ÿèÿîÿßÿèÿÞÿÜÿÕ ÿî!ÿä#ÿö$ÿÜ%ÿÞ&ÿ×'ÿä(ÿã.ÿô8ÿö9ÿø=ÿó>ÿÝ?ÿôÿö#%ÿõ/ÿô1ÿê2ÿ×5ÿç6ÿã8ÿñ9ÿØ;ÿñ<ÿî=ÿÁ>ÿÁ?ÿ½ÿêÿõÿêÿÔÿÛÿßÿÙÿíÿâÿáÿàÿÒÿÖ!ÿÖ#ÿð$ÿî%ÿÞ&ÿÜ'ÿ½(ÿî2 ÿì$ÿó%ÿå&ÿä2ÿõ9ÿø=ÿç>ÿÝ?ÿÙÿ¦ÿ¦ÿÖÿŠ ÿö#()ÿÀ+ÿÄ,ÿ¿-ÿÃ/ÿÇ1ÿó2ÿñ5ÿÙ6ÿâ7ÿÆ8ÿí9ÿç:ÿ´;ÿÊ<ÿÕ=ÿä>ÿã?ÿå@ÿ½BÿÁÿóÿòÿñÿõÿôÿñ#ÿó$ÿÞ%ÿâ&ÿà'ÿó(ÿä2ÿðÿé ÿë%ÿå)ÿñ+ÿì,ÿñ-ÿê.ÿë/ÿÕ1ÿé2ÿé5ÿé6ÿë7ÿ×8ÿî9ÿä;ÿé<ÿê=ÿÐ>ÿ×?ÿÒBÿòÿõÿõÿìÿôÿõÿãÿö ÿç"ÿõ$ÿò%ÿÛ&ÿð(ÿì)ÿë*ÿõ+ÿç,ÿì-ÿã.ÿå/ÿÔ1ÿä2ÿä3ÿö4ÿö5ÿâ6ÿæ7ÿÓ8ÿì9ÿß:ÿô;ÿä<ÿä=ÿÇ>ÿÐ?ÿÉAÿÙBÿìÊÿÚÿâ ÿÃ#%)ÿî+ÿç,ÿï-ÿâ.ÿï/ÿÎ1ÿ÷2ÿÍ5ÿÖ6ÿØ7ÿÃ8ÿÝ9ÿÁ;ÿà<ÿÜ=ÿ…>ÿ„?ÿtBÿî<ÿõÿóÿÅÿôÿÛ ÿð#ÿ9$þÌ%ÿß&ÿ»(ÿ¹)+ ,-: =ÿì>ÿä?ÿ½@%BÿôÿäÿöÿÝÿö ÿâ"ÿö$ÿð%ÿ×&ÿé(ÿö*ÿõ+ÿö-ÿò.ÿí/ÿæ1ÿô2ÿÖ5ÿò6ÿó7ÿÝ8ÿë9ÿß;ÿô<ÿó=ÿÆ>ÿÇ?ÿÃÿèÿëÿòÿôÿîÿöÿöÿó ÿð%ÿé)ÿæ+ÿã,ÿè-ÿá.ÿí/ÿ×1ÿë2ÿî5ÿã6ÿç7ÿÚ8ÿî9ÿè:ÿí;ÿÞ<ÿâ=ÿß>ÿà?ÿâBÿëDÿï ÿá ÿï ÿÝ ÿ× ÿß ÿá ÿÝ ÿì ÿå ÿã ÿä ÿÔ ÿÙ !ÿØ #ÿõ $ÿï %ÿå &ÿÞ 'ÿÁ (ÿï @ÿð!@!ÿâ!ÿÜ!ÿô! ÿæ!$ÿò!%ÿÙ!&ÿÍ!*ÿø!2ÿï!7ÿñ!9ÿô!=ÿÐ!>ÿî!?ÿ×!@/"ÿõ"ÿó"ÿð"ÿö"ÿö"$ÿö"%ÿá"&ÿè">ÿí#A#ÿÖ#ÿÔ#ÿÔ#ÿÝ##ÿã#ÿâ###$# ÿÌ#!####'$#)ÿ[#+ÿb#,ÿW#-ÿ^#.ÿÖ#/ÿT#1ÿå#2ÿÐ#5ÿQ#6ÿS#7ÿA#8ÿP#9ÿN#:ÿj#;ÿX#<ÿT#=ÿ #>ÿ!#?ÿ#@ÿÞ#BÿO$ÿ×$ÿç$ÿÎ$ÿÞ$ÿä$ÿå$ÿâ$ÿî$ÿè$ÿç$ÿè$ÿß$ÿà$!ÿà$%ÿé$&ÿâ$'ÿÎ$@ÿé%r%ÿL%ÿY%ÿ£%þÃ%ÿÚ%ÿð% ÿ»%#%)ÿ %*M%+ÿ-%,ÿ'%-ÿ+%.ÿñ%/ÿ%%0j%1ÿö%2ÿâ%4=%5ÿ%6ÿ%7ÿ*%8ÿI%9ÿ*%:ÿ%;ÿ %<ÿ%=ÿ %>ÿD%?ÿ0%@ÿC%Bÿ&9&ÿV&ÿ`&ÿª&þá&ÿî& ÿå&#)&(&)ÿ%&+ÿI&,ÿ?&-ÿD&.ÿø&/ÿ<&1ÿó&2ÿØ&3&5ÿ5&6ÿ4&7ÿC&8ÿz&9ÿ=&:ÿ&;ÿ6&<ÿ1&=ÿ3&>ÿe&?ÿI&@ÿX&Bÿ)'ÿÆ'ÿÁ' ÿÁ'"ÿö'$ÿÇ'%ÿì'&ÿè'(ÿâ'.ÿ÷'2ÿÒ'7ÿè'9ÿë'=ÿ—'>ÿÃ'?ÿj(ÿ¶(ÿµ(ÿ¸(ÿÒ(ÿî(ÿñ(ÿï(ÿî(ÿõ(ÿñ(ÿï(ÿò(#($"(%ÿä(( ()ÿh(+ÿq(,ÿf(-ÿl(/ÿd(1ÿÁ(2ÿ·(5ÿ_(6ÿa(7ÿ\(8ÿÒ(9ÿ\(:ÿY(;ÿe(<ÿa(=ÿI(>ÿ’(?ÿj(@ÿÑ)))ÿõ)ÿö)ÿñ)ÿç)ÿé)ÿß)!ÿö)#ÿ )$ÿj)%ÿÕ)&ÿ¼)'ÿö)(ÿ«)2ÿø)9ÿú)=ÿ÷)>ÿð)?ÿê*ÿÕ*ÿÕ*ÿç*ÿÔ*ÿô*ÿã*ÿî*ÿä*ÿÇ*ÿÎ*!ÿÔ*#ÿ>*$ÿœ*%ÿ¹*&ÿÃ*'ÿÄ*(ÿ˜+ÿç+ÿé+ÿõ+ÿæ+ÿñ+ÿó+ÿØ+ÿÎ+!ÿç+#þü+$ÿ¿+%ÿÇ+&ÿ½+'ÿÝ+(ÿÀ,0,.,,[,ÿô,ÿé, ÿô,$ÿñ,%ÿç,&ÿæ,2ÿø,=ÿô,>ÿð,?ÿÚ-ÿæ-ÿç-ÿô-ÿã-ÿï-ÿ÷-ÿñ-ÿÓ-ÿÌ-!ÿæ-#þí-$ÿw-%ÿÃ-&ÿ½-'ÿÙ-(ÿ‰.Ã.ÿØ.ÿ×.ÿí.¡.{.v.z.1.U.3.a.Ò.Ï.!Ì."#.#Á.$¡.%O.&£.'Ï.(~.)ÿî.,ÿó.:ÿõ.Bÿï/"/ÿÜ/ÿÂ/ÿÆ/ÿ×/ÿÉ/ÿì/ÿÒ/ÿÔ/ÿØ/ÿ¾/ÿÁ/!ÿÁ/#þï/$ÿ¿/%ÿÃ/&ÿÀ/'ÿg/(ÿ«/8/>0ÿÙ0ÿÛ0ÿì0ÿØ0ÿô0ÿ÷0ÿç0ÿó0ÿè0ÿË0ÿÒ0!ÿÜ0#ÿ-0$ÿa0%ÿ»0&ÿÅ0'ÿÐ0(ÿk111 11ÿõ1ÿô1ÿö1ÿê1ÿø1 ÿô1$ÿ÷1%ÿÚ1&ÿæ1(ÿ÷12ÿú1=ÿ÷1>ÿô1?ÿï2ÿõ2ÿ÷2ÿ÷2ÿô2 ÿö2%ÿ×2&ÿø2/ÿú27ÿú3 3`3ÿó3ÿø3ÿö3ÿö3ÿñ3ÿó3ÿß3!ÿø3#ÿ3$ÿC3%ÿÍ3&ÿ»3(ÿ†444ÿ÷4ÿø4ÿñ4 ÿ÷4# 4%ÿà4&ÿô42ÿõ49ÿø4=ÿõ4>ÿì4?ÿà555,5ÿ÷5ÿñ5ÿø5ÿô5ÿÝ5ÿï5ÿá5 ÿñ5!ÿø5#ÿ5$ÿ55%ÿÊ5&ÿ´5(ÿ�5.ÿú5/ÿù5=ÿø5>ÿõ5?ÿõ6#66676ÿø6ÿð6ÿô6ÿÙ6ÿí6ÿä6 ÿñ6#ÿ6$ÿ6%ÿÏ6&ÿ³6(ÿ…6.ÿú6/ÿù6=ÿ÷6>ÿñ6?ÿô7ÿÜ7ÿø7ÿÞ7ÿï7ÿØ7ÿì7ÿø7ÿç7ÿô7ÿé7ÿÈ7ÿÎ7!ÿß7#þâ7$ÿA7%ÿ¸7&ÿÀ7'ÿÚ7(ÿ`7.ÿú7>ÿø7Aÿú8ÿØ8ÿÙ8ÿë8ÿØ8ÿø8ÿö8ÿæ8ÿð8ÿç8ÿÈ8ÿÏ8!ÿÛ8#þ×8$ÿF8%ÿ½8&ÿÃ8'ÿÇ8(ÿ^9ÿÉ9ÿÊ9ÿè9ÿÂ9ÿÂ9ÿÔ9ÿÇ9ÿê9ÿÒ9ÿÊ9ÿØ9ÿ¾9ÿÀ9!ÿÁ9"ÿÝ9#ÿ9$ÿÝ9%ÿµ9&ÿÀ9'ÿˆ9(ÿç9)ÿï9,ÿó9-ÿú989:ÿô9>9Bÿï:ÿã:ÿå:ÿó:ÿâ:ÿî:ÿ÷:ÿñ:ÿÓ:ÿË:!ÿä:#þí:$ÿº:%ÿ¼:&ÿ¹:'ÿÜ:(ÿ¼;ÿâ;ÿä;ÿò;ÿà;ÿë;ÿò;ÿî;ÿÌ;ÿË;!ÿÞ;#þï;$ÿ°;%ÿÌ;&ÿ¾;'ÿÆ;(ÿ¬< <<&<ÿ÷<ÿô<ÿø<ÿó<ÿß<ÿî<ÿâ< ÿó<!ÿø<#ÿ <$ÿ,<%ÿÍ<&ÿ´<(ÿˆ</ÿú<=ÿø<>ÿö<?ÿô=ÿÐ=ÿÊ=ÿ×=ÿÎ=ÿë=ÿÒ=ÿÛ=ÿÔ=ÿÁ=ÿÊ=!ÿÍ=#þÌ=$ÿ£=%ÿ´=&ÿ½='ÿ¾=(ÿ�>ÿõ>ÿ÷>ÿË>ÿÆ>ÿÙ>ÿÊ>ÿì>ÿÔ>ÿÛ>ÿÕ>ÿ¾>ÿÅ>!ÿÉ>#þÖ>$ÿ¤>%ÿ¸>&ÿ»>'ÿœ>(ÿ”?ÿÓ?ÿÏ?ÿà?ÿÓ?ÿò?ÿß?ÿë?ÿÞ?ÿÇ?ÿÍ?!ÿÑ?#ÿ?$ÿÈ?%ÿ³?&ÿÁ?'ÿÈ?(ÿÇ?3ÿú?:ÿú@ÿö@ÿç@ÿó@ ÿö@$ÿï@%ÿá@&ÿÒ@(ÿõ@2ÿó@=ÿåA/ÿ÷A2ÿòA6ÿúA7ÿùA9ÿöA=ÿåA>ÿ÷A?ÿêD$ÿóZ ° °  Î DÚ , J ,R© 2007 Igino Marini (www.iginomarini.com) With Reserved Font Name IM FELL English ItalicIM FELL EnglishItalicIgino Marini's FELL English ItalicIM FELL English Italic3.00IM_FELL_English_ItalicÿîÿbTÿÿ NÄlatn TRK "ÿÿ  ÿÿ  aaltDdligJhist^ligaPligaXlocljsaltpss01^ss02dss04jswshp 6J€ÊnÎèSTNF-13:#1¤)?BCEEUY6",@DB-E- )7” X.1V1HF1L1Z &Y.4U.W4"(.IF4J0M4R8Z;KF.FJ$6@O:G; C2P:Q:A:)+1<F SN-3 :�ËNoto Sans RunicÌŠ”‚jÔ”FGDEF&"ÐGPOS "èGSUBlŒt…"øOS/2èét’�`cmapÎÏðÄcvt ô h4fpgmb.û{´ gasp"ÈglyfJ-Û÷head½±Fœ6hheal$hmtxP� Ô˜loca?Ç;áLNmaxp>, name+ÓD œ postÿŸ2"¨ prephFÈœÀ§ašÊ8@5…†iYaQ +33266553#2>553#aZ2I(_)H]4P‹i<_H‚¯fÊÂ4T0 7_H)o4bŠW j¨v>ùa³Õ (S@P€   † iiYaQ  ( ('&!    +"&546323266553#266553#ÂZ>T*_JRv¸k_I†¹peý›ÊÂ4T0 IwGo[©s j¨v>ùaUÊ&@#†WaQ!+332#4&&#a_J�uF]V�WÊ(U‡`þša^u7ý•aWÊ /@,…W_O +33#353ao‡iþÇPOÊý6RDþ¸¸acÊ #@ L…v +33''aZ¨#…¨#…ÊcMýŠaѱ5@2 LgW_O +7'573'375'#×vvdvvAWWWÑ~\ss\~K\UU#(Ê+@(  L…v+37'7'373#'77',ÀÉÉÁpŠ‹pÁÉÉÀpЉ‰ŒŒ‹¶¼®ªxxª®¼¶€€í…{{ayÊ (@% L…v +333#%3#37'#aSº½NN½ºsŽå‹‹ÊþÝ#ý6"þÞ�ÇãÞÞÝ& Ê &@# L…v +37'73#'7'&ÃÃÌ^ÐÃÃm���–˜”æçýýçæ¯¯±¹¹ nÊ )@& L J…v +!'5737'~‡ˆ}Z}ˆ‡~pttZtttt_toýš^Ê $@! L…v +13#'#5Zl–Z–pZþ¦þ�ììììayÊ 3@0 L…v +3373#'57'75'57'aSº½NN½ºwƒô€€º½½ºwƒô€€Ê‚‚ý6��Ŷ[XXXþZ‚"��"þû¶[XXX#VÊ "@ L…v+35'573üÙÙZZ�äÐTÂý6P‡ òÊW@TL…€~  †g W _ O +!5#53##53533#%33# ��þêZ��Z��Z��PO ÏUOKKOñÓþ�OP^ Ð @YaQ  +"&54632·%44%&33 /46--64/K®Ç. 0@-iYaQ     +"&54632"&54632ˆ$$%%$$%%¦ $&&$ ø $%%$ ‡Ê',@)$! L…v''+3>75.'3536673#&&'#5So::oS_LQ`QL_Sn;;nS_LQ`QLct6¦5tcOi Ãà iOct5¦6tcOi Ãà iO2(Ê#0@-#L………v+35.5466753'6654&'þ;]44]=Z=]45]Œ³*h¹ƒó) ì_<õèÕq·âßTµ þÿÀãX^©aÂa¬aWaŒaõaNa½aJ·aÛaü(`aç2Ëa_}&(ýaàaòa�aaL#ÛaF&y _Ûa·#ý n^K–Z2-þÛèþÿÀ&!�ŠXKŠX^2B €GOOGÀ ð-þÛ-%Ê °(  £¨³·º¾ÁÄÊÏÒ×Úàãåìðÿÿ  ¨±·¹¾ÁÃÈÏÒÖÚÜãåéïÿÿÿáébé^éVéSéRéOéMéLéIéEéCé@é>é=é;é:é7é5°, °UXEY K¸QK°SZX°4°(Y`f ŠUX°%a¹cc#b!!°Y°C#D²C`B-°,° `f-°,#!#!-°, d³BC°C ``B±CB±%C°CTx ° #°CCad°Px²C`B°!e!°CC²B °C#B²C`B#°PXeY²C`B-°,°+°CX#!#!°CC#°PXeY d °ÀP°&Z²( CEcE°EX!°%YR[X!#!ŠX °PPX!°@Y °8PX!°8YY ± CEcEad°(PX!± CEcE °0PX!°0Y °ÀPX f ŠŠa ° PX` ° PX!° ` °6PX!°6``YYY°%° Cc°RX°K° PX!° CK°PX!°Ka¸c° Cc¸bYYdaY°+YY#°PXeYY d°C#BY-°, E °%ad °CPX°#B°#B!!Y°`-°,#!#!°+ d±bB °#B°EX± CEc± C°`Ec°*! °C Ра+±0%°&QX`PaRYX#Y!Y °@SX°+!°@Y#°PXeY-°,° C+²C`B-°,° #B# °#Ba°bf°c°`°*-° , E °Cc¸b °PX°@`Yf°c`D°`-° ,² CEB*!²C`B-° ,°C#D²C`B-° , E °+#°C°%` EŠ#a d ° PX!°°0PX° °@YY#°PXeY°%#aDD°`-° , E °+#°C°%` EŠ#a d°$PX°°@Y#°PXeY°%#aDD°`-°, °#B³ EPX!#!Y*!-°,±E°daD-°,°` °CJ°PX °#BY°CJ°RX °#BY-°, °bf°c ¸cŠ#a°C` Š` °#B#-°,KTX±dDY$° e#x-°,KQXKSX±dDY!Y$°e#x-°,±CUX±C°aB°+Y°C°%B±%B±%B°# °%PX±C`°%BŠŠ Š#a°*!#°a Š#a°*!±C`°%B°%a°*!Y°CG°CG`°b °PX°@`Yf°c °Cc¸b °PX°@`Yf°c`±#D°C°>²C`B-°,±ETX°#B E°#B° #°`B `·BBBŠ` °#B°a±+°‹+"Y-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,±+-°,± +-°+,# °bf°c°`KTX# .°]!!Y-°,,# °bf°c°`KTX# .°q!!Y-°-,# °bf°c°&`KTX# .°r!!Y-° ,°+±ETX°#B E°#B° #°`B `°aµBBŠ`±+°‹+"Y-°!,± +-°",± +-°#,± +-°$,± +-°%,± +-°&,± +-°',± +-°(,± +-°),± +-°*,± +-°., <°`-°/, `°` C#°`C°%a°`°.*!-°0,°/+°/*-°1, G °Cc¸b °PX°@`Yf°c`#a8# ŠUX G °Cc¸b °PX°@`Yf°c`#a8!Y-°2,±ETX±EB°°1*±EX0Y"Y-°3,°+±ETX±EB°°1*±EX0Y"Y-°4, 5°`-°5,±EB°Ec¸b °PX°@`Yf°c°+°Cc¸b °PX°@`Yf°c°+°´D>#8±4*!-°6, < G °Cc¸b °PX°@`Yf°c`°Ca8-°7,.<-°8, < G °Cc¸b °PX°@`Yf°c`°Ca°Cc8-°9,±% . G°#B°%IŠŠG#G#a Xb!Y°#B²8*-°:,°°#B°%°%G#G#a± B° C+eŠ.# <Š8-°;,°°#B°%°% .G#G#a °#B± B° C+ °`PX °@QX³  ³&YBB# ° C Š#G#G#a#F`°C°b °PX°@`Yf°c` °+ ŠŠa °C`d#°CadPX°Ca°C`Y°%°b °PX°@`Yf°ca# °&#Fa8#° CF°%° CG#G#a` °C°b °PX°@`Yf°c`# °+#°C`°+°%a°%°b °PX°@`Yf°c°&a °%`d#°%`dPX!#!Y# °&#Fa8Y-°<,°°#B °& .G#G#a#<8-°=,°°#B ° #B F#G°+#a8-°>,°°#B°%°%G#G#a°TX. <#!°%°%G#G#a °%°%G#G#a°%°%I°%a¹cc# Xb!Yc¸b °PX°@`Yf°c`#.# <Š8#!Y-°?,°°#B ° C .G#G#a `° `f°b °PX°@`Yf°c# <Š8-°@,# .F°%F°CXPRYX +.±0+-°~,±>+°@+-°,±>+°A+-°€,±>+°B+-°�,±>+°@+-°‚,±>+°A+-°ƒ,±>+°B+-°„,±?+.±0+-°…,±?+°@+-°†,±?+°A+-°‡,±?+°B+-°ˆ,±?+°@+-°‰,±?+°A+-°Š,±?+°B+-°‹,² EPX°²EX#!!YYB+°e°$Px±EX0Y-K¸ÈRX±ŽY°¹cp±B²*±B³  *±B³ *±Bº@ *± Bº@ *¹D±$ˆQX°@ˆX¹dD±(ˆQX¸ˆX¹DY±'ˆQXº€@ˆcTX¹DYYYYY³*¸ÿ…°�±D³dDD[[IIÊìÿÕÿöì"ÿöÿZ ˜ ˜ ¶ @Ä . T2 *†Copyright 2022 The Noto Project Authors (https://github.com/notofonts/runic)Noto Sans RunicRegular2.002;GOOG;NotoSansRunic-RegularNoto Sans Runic RegularVersion 2.002; ttfautohint (v1.8.4.7-5d5b)NotoSansRunic-Regularÿœ2ÿÿ %  latn‘Ëfold’jÔâ´´name mechanismkindpagewidthheight transformglueclipartXartYlayerMat4identityaax0ay0ax1ay1bbx0by0bx1by1panelshingesvalueinfoposeerrorfold '': lefttransformPointtoLocalnxnydraycasttableinsertthetapagesleftPage PAGE_WIDTH PAGE_DEPTH rightPageright HALF_DEPTHalphabetacreasegammaAgammaBXnot flat-foldable: need alpha + gammaA = beta + gammaB or alpha - gammaA = beta - gammaB'give both gammaA and gammaB, or neither0the closed crease angle must be in (0, pi); got tostring]the crease must lie on the same side of both glue lines (the piece folds in half when closed)degenerate panel anglepsicreaseXcreaseYcreaseZ!alpha and beta must be in (0, pi)widthAwidthB%widthA, widthB and height must be > 0Gcannot open fully: need sin(gammaA) sin(gammaB) >= sin(alpha) sin(beta)mathminmaxvfold.A.Bcstraight creaseLengthartWidth artHeightz0ridgeXridgeYz10need left > 0, right > 0, height > 0 and z1 > z0box .leftWall .leftRoofnone .rightRoof .rightWallhostx0y0x1y1z footprintmultiplyAffinerotationacos requestedpushedxyleverangletpinXpinYpivotpinFrompinTo angleFromangleTo pinRadius1need |angleTo - angleFrom| < pi and pinRadius > 0;give pinFrom and pinTo, or angleFrom, angleTo and pinRadiusthe slot has zero length!the slot passes through the pivotmodeliftmode must be 'lever' or 'lift'liftAxisLAYERtabpiecepulltab.tab.piecepivotXpivotY slotLengthsweep clampToPagesradiusradius must be > 0centervolvelle.disccenterXcenterYbottomwidth and height must be > 0hingetop0hinge must be 'left', 'right', 'bottom' or 'top'flap.lidgluetabopen mechanismsbyNameduplicate mechanism name poseThetasincossqrtatan2absclampsetFrameleftDir rightNormal leftNormal pageFramepointpointXYZcornernormalquadpickoutline newSpreadaddVFoldaddBox addPullTab addVolvelleaddFlapaddTab3   Ê        #  # "  # #  "  # # "        Ú 6ZX]ö÷Ü @ð€Á5÷     ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  @ð€ù   6  € ³ Ò ú › ƒ ² Ó û š     ‘³6Z]5Æ5V5š@  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ« @1@ ·   #-DTû! @À I  I ÅË I I  3Î ‡V €P/€I  3I 33)) " )) "  ## "           €!Ô  Ái"ä Á##! !# # ! ! #  # ! !é   Á÷#Ü#i"ïÁ  ô‡4 €Á÷Ü##  ##    ##  ##   €ú !Á " "" #  # !  # !  #  # !  # !  #  # !   # ! ‰ gÁ    # # ! #  ! I          "# "# !"# ! $        Ý# !# !# !   ÷ Ü  Mf# G#!…!      ê-�™—q=# $%&’ �&     ÆL ]P ¢M      : æÿð'³p÷Ü5   7 M€58T) '   ) '   ' + ) ' ) ' f# G# !…!f# G# !…!J4   (�€J4   (�€"$" #! J4  (�€" #! J4  (�€9¬ÿ  ð?@@$%&()(�€Í WI  I  Á 33ÿÿ) ( ) G  ) ) "      Á ÿÿ      šð¿€*ý F    2   257Æ5 2 26€ ›ƒš7V åFFFFFF+,!-./0ð? ÿÿÿÿ  ÿÿÿÿÿÿÿÿ   ÿÿÿÿ1õ¬Z6¡äaôMXM=M;!"  ! "  I             "" I                * '  $ €@   1  M€M€!   ! ! ) ! ( )  €@    1    I?  A 1 €@   1   " I  " I   " " #   €@   1            €@   1   23456�íµ ÷ư>p Îú! @€@ 7-DTû! @à?89:A;<°#Ë)I )I    #  # "#  # #  I   ! J )I   I  #  #   #  #   # #!  #    # # !  I  # I # # # !# !#" #" #" ##!#!I $$$ Á   #    #!     ) # "## " # )"     Á # #  #!333    #!#"" !" #!#"" !"  #!#"" !"          ´    Ë  Æà?@=>?@›#ÒZ6¡      P@ 1 j   W  Ü   P@ 1  I    I    I   I  I   I  I   # $"#   P@1 ÿÿÜ j W $ $ #J D�3#J L�  1! 1"I   63 f3 G# …I   6 f3 G# …ð !ð 57Æ!J    L�$5# "# 33!#" ! !"#! 6-€"³#ú&›'ƒ(²) û+!š,7V.š/6š/¡š/‚0š/a1š/ô2š/!(3I  ¼4š/�5š/!6š/m7I  I   3I    ¤8!š/"FFFFF F FFFFFF FFFFFFF FFF!"9:23ü©ñÒMbP?ãΉ ï @P@ ABCDê-�™—q½EFGD�HL�IJ!K0•Ö&è .>$%&   "ÿÿÿÿ#ÿÿÿÿ$%&ÿÿÿÿ'ÿÿÿÿ(ÿÿÿÿ)ÿÿÿÿ*%+ÿÿÿÿ,ÿÿÿÿL56-DTû! @MNOPQã ½)I  )I I  I  Á # #              ) G   ) (   ) ) "            Á #  # ! #  # ! 3 3            ÿÿ   ) (  ) G    ) ) "            Á # #               ÿÿ                     Á       ÿÿ       ) G   ) (   ) ) "              #•  #¾à?ð?ð¿€RSèÁZ¦åܤ…     `@    1   "        1       1     1    1  56H ‡7 ÷56H ‡7÷ ð ð5   7 Æ56( €Ò  ú!›" ƒ# Ó%6) €³ú! ›" ƒ# š'6* €³ú! ›"ƒ#Ó% û&š'7 V+ š,J /¸Ð‚!N0 š,FFF FFF FFF FFF 1 2!0QT`@ UVWXYZ[\]^_`aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿ ÿÿÿÿ!ÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿ$%ÿÿÿÿ&' ÿÿÿÿÿÿÿÿ !ÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿ$%&'ÿÿÿÿ ÿÿÿÿÿÿÿÿ !ÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿ$%ÿÿÿÿ&ÿÿÿÿ'ÿÿÿÿFH¸Ð‚bÐ  &       #  # "  #  # "   #  # "           € ÁÁ  c€þM€d�- ôPI   I ÿÿ  4  8 #  '  '  '   ##! #!(J GJ   9 ÝÿO '   '   I  I   3 ## # 3# # "# # "I  I 333348K '$ !$'$ "$'$ #$$ $A"#( !'(#(#!&'(#%&#) !()#)#!'()#&'!$%&#(!#'(#)!#()!&'(#%"&#(#)!'()#&"'#)%%#*&&!()*I( ''( (#' $!'3,$$+,'++*ÿÿ ,ÿÿ +,*ÿÿ, ,+**+I* ) $€€)G()  ((J&%*&+% ))')9µÿ" ' + ( """!  J !  0€€J ! 8€€   ! !   !@@@ê-�™—q=-DTû! @ð?Fe$€€-DTû!@G0€€H8€€­ ## ! # # # ! # G # ! # # # " # G # ! # ##" # ! ð?î"Ö     g  #! "  #! " #  # " #  # ! J  I     ö   I   =   ÿÿ# I    # I    #   # " #  # ! #  # " I     #  # "3$           "Q  #!  #! " " #  # " #  # ! J      ™ # !  ˜ #!     3         ))" ))" ##"        p€Á  Á    ™ "  ˜ " P O €I     I    # !# "  # !# !  !I  I     3))"))" ##"        p€Á Á  Í ™I   I    I     ## !# )# !#G #! # )# "#G #!) # #"# ! I   I   ##!# )# !#G #!# )# "#G #!) ##"# !  3##!# )# !#G #!# )# "#G #!) ## " # !    ! ! !## " ## "  ## "       p€Á  Á !  Í  •    Ïfê-�™—q=ghi c p€jkð?lmnà= ÐZHþ™þ˜ ú ) è  F M M  ™ ˜ ™ ˜;M 1M /M -" I    °@ 1I  # !I  # !I  # !I  # !  °@ 1""##!I     °@ 1"#"#!#$   #!"#!"##!I     °@ 1-0P P   °@ 10õ0 ¸# ¸!àf   !1 ö" ÷#!Ü$ %1  ö"!÷#"Ü$õõ57Æ& ) p‚*M€I " !!!I!  "*M"€!!""""#I ' &&$&I& %%&š+&^,&Ê-&."'"(#+"(#,#'"*+,#,"'#-#(!+,-J*+ )))&Ô/5*3+%,$I !0! //-/I!/! ../÷#0Ü$515456745556/7756567/807675789077871423L1A8™:5#9-:!78995#8.9"6789˜;5#:.;!89::5#9-:!789":6#9:+";7#:;,!89:#<8+";6w-Cëâ6?xjyz{|ð? }~€�‚  p‚dƒ„…†()㇠• I !I  I   # " # !  # " # "    3             ) )"  ) )"  # # "          € ÁÁ    Í c€k¬XZHQ  0@ 1 Ê™ ʘ  0  õ0  ¸#      1    ö))  õ5  7  Æ š  š � d€�  š FFFFFFF FF FF  \ˆ0@ ‰Šhidð? }‹Œ@�Ž d€�"š¿      ö I  I       P €     + P€  #" #  3    P €        #" #     3      #!  #"   #!  #! !  #  # "  #  # !  #  # "  #  # !##"##" ##"     P€ÁÁ  "Q Í  -DTû! @!0� cP€fgkú!½ZH÷Ü   @@  1 J P P P P @@   1 õ0 ¸#0I     I    ™ ˜    1ö  õP €P € P €56ööH¦§‡†›7 ÷5 7 Æ 5P €5 7 3P €5 ÿÿÿÿ7 !P €5 7 5 ÿÿÿÿ7 548> ' '! '" '# # ! # " J4 &”@‚# ! # ! J4 &”@‚## " J4 &”@‚# # ! J4 &”@‚J4 &”@‚J4 &”@‚9Âÿm'N](P +¨�‚ š,FFFFFFFFFF FF FF F FF - .\@@ �‘!0�’“ð? }dhi”•]^_`a@@@()”@‚‡ ¨�‚$Ã7    ™ ˜    3            ) ) "  ) )"   #  # "           0€ ÁÁ hi c0€È [ Z ZZHö÷Üõ0 ¸ #õ   0 I  I 56 H ö ö H H ÷ ‡›7÷57Æ XP�H FFFFFFF ~–\ð? } d]^_`aÿÿÿÿÿÿÿÿ  ÿÿÿÿ ÿÿÿÿ XP�&¼ - 6 Æ æÆ VÎ576 α5Æ Æ 7Æ   —ð?*-DTû! @,/+˜™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÒ 6±Z M Z  @1±ZJ4  $€€Æ LÆ J4   $€€:÷ÿ  Ì™ @ š˜()$€€*â 7 Æ56 æ Hj ‡7÷ V²3Æ56VH3¦3 W! ‡7÷ !\]^_`aÿÿÿÿÿÿÿÿ ,B0ÿÿÿÿÿÿÿÿÿÿÿÿ /Cï   æV,/û   ÿ   ƒ   ‡   ‹ „„  (2   *vLM Z  M  Ì M Z  .   Ì :éÿ-DTû! @*—˜‘ „ 1 ›*£ ¼A52å¸  p€  (p€  0p€ 8p€ @p€@@î@@ @ @ @  @ FF @  ˜@ FF c!@ "FF #@ $ â%@ & ô'@ ( J)@ * ð+@ , V-@ . Ý/@ 0FF ¢1@ 2F ‡3@ 4 @5@ 6F FFFF@ 7F@8F FFF FFFF@9F FFF@:@;@<FFFF@=@>FFFFFF FFF@?FF FFF@@FFFF FF@AF FFFF@BF PC@D@EFFÏF@GFFºH@IFFµJ@KFFÎL@MFFèN@OFF°P@Q1R@SFTU-è?.Ø?1ü©ñÒMbP?}Fœ p€�(p€ž0p€Ÿ8p€ @p€¡¢*£ ¤ ¥ ¦ § ¨©ª«#'¬­!#%'(®)*¯+°,±-².³/´0›1* !#%'()*+,-./012‘Ë ui/motion’jÔÔopenveltargetdragging dragTargetcontacts contactVelmathclampmincosabsnewgrabdragreleaseslamsetstepmoving 6 v    ÿÿÿÿÿÿÿÿÿÿÿÿà?"ev & <. €  €+‚eM   v´)!  à?ìQ¸…ëÁ?2e ´J 0€´ 0€=e<. €v´v v    €à?D £K € ™J €"e  v ")´ ) "2  v # I  8€)   v   v G )'! ´ ) "v   v ( )'3! ´ ) "´ #!´ v ´ #!v v  v ´  4´  ´ 3)´ %v  !v ´  ´  ´ %'%´ Z´ 3)´ eÿš™™™™™¹? €•Ö&è .>q? Œ@N@33333³2À-DTû! @ 8€à?@€Q@@Ð?)\�Âõ(Ì?пð?Le´I  €v "I  €  €-Cëâ6?{A5@ï@D@…@<@$ @ S @ † @Ø ‘Ëui/gaze’jÔ¦9[glancepointerXpointerYpresentdwell dwellEdgefromyawpitchyawVelpitchVelyawTpitchT basePitchbaseYawlockedlockXlockYlockZ lockOmegaawayforceddireyebreathbob LOCK_OMEGAVectorxyzmathsincosclampsqrt BAND_BOTTOMBANDTOP onFootprint BOOK_MARGINreleaseEXITliftbandmaxDWELLxyzatan2YAW_LEFT YAW_RIGHT PITCH_TOP PITCH_LOW lookAnglesYAW_MAX PITCH_MAXradabs LEVEL_LEFT LEVEL_RIGHTOMEGA MAX_SPEEDceil AWAY_FROMAWAY_TOminexp INTERACT_OFFacosangleTo azimuthTo distanceTo UNITS_TO_MNECKnewpointleave dwellStephomeaimlookAtforcelockunlockstepabsPitchonBookwithin listenerYaw soundAzimuth soundDistance"6® %~  |à�I #ˆ‚I  %�‚3  |à�ü&          ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|à�ˆ‚ �‚M <. €#)G#!€@@l „XM€# # "!# # "!# # "!# # "!ÿÿ8'' + )' )' ) ' ) ' " " ##!I 0€  " #" #"#$3 9Ùÿ@ð?@"0€�íµ ÷ư>t  „2 Â#  Ü#ÿÿ ÜG#O€ †#O Ù   Ê#$ð?%&'Ž  � "N°Î <O  ‰#  <()  "ÓÆ® #*³  „M <OÓÆ" p°Î   O€ÓÆÓK    (�€!ÓÆÓ  Ý (  ÛÓÆ(+,(�€�íµ ÷ư>-¹ ÛÓÆÑ <Œ ¡‡(  × d¡ŒR�ü™"Éü˜"´ü›"33J  (�€  " I 4�€  "  I  <�€J  (�€  <.  L�€# #! I  X�€ J   (�€   D. L�€ ®" ‡O€‡./01(�€4�€ <�€и•ω¼Àи•ω¼@!L�€ "X�€‡DçJWö¿‡DçJWö? à  +$D. € ‰#$D. € ™  Î  ™" # ! æ  Õ  æ" # ! !€)2345ö 0Œ¡ ;°Î I3 I<. `€   ¿ <.  `€® "‡ 67!`€ �¯ÔÈõ¿8 ý ‚‚\M€M€¡¡MI €M I €®"‡*I  $€ I $(*<.  0€#)G#  § …®"#‡‡kà.�9€  à?¸…ëQ¸¾?:$€7!0€@@;<   ˆ ‚Œ�É´ %~�Œ¤Ñ y¡uŒ~ VŒ *I  p€J  (p€$ 8T#  k " # # .# "  .# !  .# ‡à"# #�# "  �# !  �..#��#! I  Hp€    .$ #  . �$ #  � k .#!  k  à�#!  à9¬ÿk k #àà#!I Hp€ ÷"   ÷" $D. Xp€QQQ#Q)G#Q.I lp€�I lp€!?* K   !€p€  ?" 3 * "I  $Œp€ G  # !?Õ%&=ð>�?? p€,(p€     "Hp€@A!Xp€@@:lp€@ð?B€p€Ð?CŒp€ª®à! È Q ìDÍ 8ü™"ü˜"ü›"# # ! # ! I @€  ™#  ˜# !  ›#  ! $  ÿÿ<.   $@€ I  ,@€   ./0"@€�íµ ÷ư>!$@€E,@€Ò     I €F9€Þ  -ü™"ü›"™›# # ! I @€ ÿÿ$$# # " # # ! J   @€ .0"@€�íµ ÷ư>1 @€å ü™"ü›"##!I 0€.0"0€ók!3û 63Gÿ è ½#HIƒ¡A5ÝÜÂʆ‰  ™  Î æÕVI¿§…÷ ì!"�#$%% ½&@'Fï(@)@*Ù+@,Fp-@.Fâ/@0#1@2FÈ3@4Fw5@6<7@8F 9@:×;@<F;=@>F-?@@F A@BFKC@D†E@FF†G@HqI@JFšK@LM@NF5O@P6Q@RèS@TÁU@VFéW@XFqYZ-¸…ëQ¸®?$Ãõ(\�Âå?#'š™™™™™©?%è?)‡DçJWæ?2es-8RÁð¿3.˜1“Ø?4$“œ»Fß¿5=:þýfÁ·þ?>7ö[ŠA5Œã?8$“œ»F¿¿;‡DçJW¶?<9�R¢Fß±?@‡DçJWÖ?AÐ?DÃõ(\�ÂÕ?J333333@IK&+L*MN( O P 6 Q RSTUVWFXGHYZ[ ‘Ë gfx/atlas’jÔñ(tableclonesortmathceilerroratlas:  does not fit in tostringx at scale nameywhscalemaxwidthheightbyNameorderusedcanvasviewlabel beginFrametilesaveMat2DwithTranslation withScale transformdrawartrestoreendFrameimagepacknewuvRect M M  6&   M M  #   M M  #>! „€FF €   €  FFF 5     L X M M #I P€#I P€! !  ! !  ! !)!   �@  I? Ð@I? Ð@I?  Ð@16Z ™ ˜–‰¤ !! J   \P€ : §ÿ6  ÷ Ü ± D! ! \ € €P€@�@ Ð@    \P€4 66÷Übb÷ÜãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZ„  BLU`b«L? ÓM Z   7 E  ¤O  p€ ™  ˜    0p€ ¤ ¤#  Á  p€ ™  ˜   Á  ´M   e   e  ´  Ž :ÀÿbÞ`M €bÉ`` ð? p€  0p€ !"#$%g  $¤$ ¤$"$"$™¤$!# !# ˜¤$!# "## # 3 ##  ˆA5@±@ï@´@É&'!(‘Ëstory/autoplay’jÔ·P[scriptwhichitstartedxyfromXfromYtoXtoYdownloopshxhzsxszseedheldarcFromarcTomathclamppointflamerelstagedispatchmoveminsqrtmaxsincoskinddurglidedragtoclickarcnamefromhuntwandercandleXcandleZdialTo clockMinutesahead bookMinutesraddialAtwaitwaitActacttimeoutwaitHoldholdingloseCardonBookawayupa1keyspotpathfreedblockedinZoneplayreadyuntilTgameTprintautoplay: loop coverlambtreecottagefencewardrobewinCardtitlepageWINLOSEnew pathPointstep  6  r¿ð?p’@à…@     @ÿÿÿÿÿÿÿÿ   ø? <. €#)G#€@@Ü »)+»»*ÀÿÿÿßAÀiÐ@á„-M€™˜P€âP€qP €™!˜!P€™˜æ  ™˜L÷ ‰[*K  @€  <.   @€# )  G # ""# # ! I  ,@€ K   8@€ 3 $ $  ))I L@€)G# »)*'# #!# ! #!# ! F(*<. @€#) G #G,)))'I  x@€#!<. @€#) G #G#$ ) ! I L@€#)!<. @€#) G #G#$ ) ! !×£p= ×ã?ð?@€@€@@,@€-Cëâ6? 8@€{®GázÄ?ø?-DTû! @!L@€ffffffæ?ÀÿÿÿßA333333Ó?R¸…ëQØ?333333³?333333ó?š™™™™™é?š™™™™™ @"x@€{®Gáz¤?ÿ  [   J  €  ! ! €› T    0(  [   J  P€  ! !'  [   J   P€    !  ! "K   $P€" $ " $  à?ð?P€ü©ñÒMbP? $P€¢% È4FFFFFFFFFF  [   J   €    !  !       [  J  €  !  !    (   '  [  J  € ! ! ' âÿ  [  J  € ! ! ' [ J  € !!"K  €"$D.  $ €   0  9([ J  € !!'[ J !  € !!"K  €"$"$'   0  9([ J   € !!'  [ J"# ! €! !! !!! !! " K !  €" $ " $ ###) ) " ') "!))!"#! ###"#! !"#!! !#!# !! #" #$##$!!"##"! !"#"#!"! ! €ð?ü©ñÒMbP?  €$ €à?@@À™ ‹]ò0Ó›Ó•ù™˜PÆ P P €  ’ C JP P €>L™ ˜lP€âZ0 Û0 ™˜L   >L   MPP€ D. xÐ�[ Ý!" #D. xÐ�$4P3%€L& )'0 ! Ô)" +(h ((*O+) ,I  .´Ð� G* Á/â 0 O+™ ˜ L      > L    •!••P1€P2€ƒ3 ƒ3  r50 4P6€z7 ƒ3P8 r50 4P9€Q: ;  r50 <P PD €K=  = ?øÐ� $   <.   xÐ� # ) AG @ #  P C  P" # !  Æ  JÆ " # ! ™ ˜ L    P €>L B ™ ˜PPK%€K=  = ?øÐ� $   <.   xÐ� # ) AG @ # P€ Û0 O+P€ ®C0  Á/ âP€ Z0  0" # !    ™ ˜ L       > L B       P€D>LB ™ ˜PŒ€JE00F     aGM      4    K== ?øÐ�$KHH J$Ñ�      )LI N4Ñ�)K! )O'HI N4Ñ�)K!  lP .QqR  ™˜L. vS›T¤Uù!ùùr50@ù!ùùr50VPn€) Y »[) Z! I  N4Ñ� ) X'W) _' ^I  N4Ñ� ) ]' \* `K H H J$Ñ�  <.   xÐ� # ) AG @#  [ [ " # !  $$"#  !  lP .Q ƒ3P a ƒ3P b€ qR    ™ ˜L   �c  Gd�c        ƒ3Paƒ3Pb€   e#$ %&'  ( )*+,-./ÍÌÌÌÌÌì¿ffffffî?xÐ�0ffffffÖ¿ffffffæ?123€†@4-DTû!ù?@5´Ð�6789$@:;<=>?¸…ëQ¸ž?@ü©ñÒMbP? øÐ�@@@A{®Gáz´?BCDð?$Ñ�ü©ñÒMb`?ffffff@!4Ñ�333333@EFG4@333333Ã?š™™™™™á?®Gáz®×?•Ö&è .>¸…ëQ¸¾?)\�Âõ(Ì?ÍÌÌÌÌÌô?ö(\�Âõà?ø?HIJKÆ )rˆ M€ˆX'Xr @@X1 ˆ'ˆÓ ð?L@@MÆÚA55665  7’6 66 665    7  ’6 6 !5 5  "#$7 5 %&'7 5()*75+),75-&.75/0175275347550675775877  a 6 :6 <5 5=>$75?@75A>B75C)975/0.75D75E/275FGH75I75J77   a 6 :6L55M&N75O)75P&Q75B75R&75ST75U77a 6:6W55X-$75Y/'75Z[75)\75,77a 6:76^55_&75Z75 Q75  `75 a G  7 5  /  T7 5    U7 7a 6d6f6 6i6j75 665  7’6 66 66 !5 5  " k$7 5  l&m7 5 n&\7 5o77  a 6 p5   _q7  ’6 t6 v6 w5 x7 ’6 6i7œyÉz@{FFï|@}@~@@€@�@‚Mƒ@ „FFF@ …F  ††‡#7$š™™™™™é?%'ð?ÿÿÿÿN( ø? 89H:@ÍÌÌÌÌÌô?ÿÿÿÿà?¸…ëQ¸®¿ffffffæ?-BO$@D ÿÿÿÿq= ×£pÝ?¸…ëQ¸®?333333ó?š™™™™™Ù?{®Gáz”¿š™™™™™@333333Ó?¸…ëQ¸ž¿š™™™™™ @š™™™™™É?ÍÌÌÌÌÌ@š™™™™™¹?ffffff@¸…ëQ¸ž?{®Gáz„¿š™™™™™@@¸…ëQ¸¾¿ffffff@R¸…ëQÈ¿333333@333333!@ffffff"@š™™™™™@9P; ÿÿÿÿÃõ(\�ÂÕ?š™™™™™©¿¤p= ×£Ð?ffffff@Ãõ(\�ÂÅ?333333 @ ×£p= ·?ffffff@q= ×£pÍ¿ìQ¸…뱿{®Gáz„?333333@š™™™™™@š™™™™™ @QK ÿÿÿÿáz®GáÚ¿š™™™™™ñ?)\�Âõ(Ì¿{®Gáz´¿ffffff@{®GázÄ?{®Gáz¤?ÍÌÌÌÌÌ@ÍÌÌÌÌÌ@RV ÿÿÿÿR¸…ëQØ? ×£p= Ç?{®GázÄ¿333333@ÍÌÌÌÌÌ @S] ÿÿÿÿ333333Ó¿ffffff @333333Ã?T€A@bc@eU@gh{®Gáz´?{®GázÔ?333333@ìQ¸…ëÁ?ffffff@ÿÿÿÿ è?;d@rs@uÿÿÿÿ$VWXYZ  [   ‘Ëvmx’jÔï getNumbervalue getString getBooleanmathabsgetEnumnumberstringbool setNumber setStringsetBoolenumsetEnum ‡M€éM€Ì‡ M€çM€Ì‡M€PMÌ!‡M€éM Ì"I  € Ì €ñh㈵øä>)‡M€çMÌÌ3‡M€PMÌÌ=‡ M€M€ÌH‡M€MÌÌSA5@`@A@p@Ý@ë @ ÿ @ ½ @*     ‘Ë gfx/glowmask’jÔùcanvasviewwidthheightglow propertyKeynumbersetColorModulationmathminmodulateOpacitydraw beginFramesaveMat2DwithTranslation withScale transformrestoreendFrameimageColorrgbanewkey drawPages66÷Übb÷Üÿÿÿÿÿÿÿÿÿÿÿÿþ$ `M  lK 0€\´ð?  0€  ( … C LWb« ÷) $  Ü$ 5 7  L *E `€( #   (`€  #Á  l  O €´MŽ: Õÿ b Þ  `M € b É `  `     à?`€ð?(`€ 4A5 € €ÿÿÿÿ@ï@J@F@FF—  €‘Ë story/tune’jÔÔtëFLARE_ATCATCH_AT MATCH_REST ROOM_MOON ROOM_ADAPTgiltrimbreathtau TITLE_GLOWattimeadaptWIN_RELIGHT_YOURSOPEN_ATCLOCK_TOMIDNIGHT GAME_SCALE CLOCK_FROMSTRIKEBURST GAME_SEEDrevealsurgeturnBackturnTimeformarrivereachgripcloseimpacttakedrawLeadpinchsnuff eyesCloseblackdone LOSE_KNOBSfirstpacecountspeed threshold rushSurgeRUSHcreak WIN_KNOBS DRAFT_PFFkeylambxzzoneholdneedstreecottagefencewardrobeSPOTS REVEAL_REST FOLD_TIME PAGE_TURN UNFOLD_PAUSE UNFOLD_TIMEPAGE_REDRAW_FRAMES CHAPTER_LIGHT CLOCK_MATCHBOOK_CLOCK_STARTMOON_UPTICK_DEG PROX_POWERfromboilsizewarpbiasdithereveryMORPHnearpowerGLOWriseWINDdelaymorpheaseflashfallglowwindRELEASE HOLD_DECAY HOLD_EDGEThe Cult of the Unseeing Sun. PAGE_TEXT THREAD_TRACE THREAD_REST THREAD_DECAY THREAD_DELAY QUIVER_DEG QUIVER_HZ TREMBLE_HOLDCANDLE_ON_BOOK TWIN_DREADfarbackzNearzFarzBackCANDLE_H FALL_TIME CLOUD_TIME CLOUD_DIM LIGHT_TIME DOOR_LIGHTliftknocksdropampknockflareRATTLE GUTTER_FROM GUTTER_EVERY GUTTER_TIME GUTTER_BREATH SHRINK_FROM SHRINK_TO SILENCE_FLAME DREAD_CURVE LUNGE_FROM LUNGE_EVERY WARDROBE_AT WARDROBE_OPEN WARDROBE_TIMEWARDROBE_LUNGEBURST_OPEN_DEG DOOR_MAX_DEG BURST_SWINGBURST_BOUNCE_DEG LANTERN_BURST LANTERN_ZHALL_BURST_LIGHT HALL_SWALLOWHALL_SWALLOW_TIME HALL_BEHIND FIG_HOVER FIG_HEAD_UP FIG_HEAD_RFIG_SHOULDER_R FIG_FOOT_RFIG_BOBFIG_DOOR FIG_DOOR_Z FIG_LUNGE FIG_STAND FIG_RISE_FROM FIG_RISE_TOFIG_LOOM FIG_STOOPFIG_DARK FIG_HUNCHFIG_EYES_FRONTFIG_EYES_SCALE FIG_EYES_DARK FIG_EYES_DOOR EYES_CLOSEsnapfollowdarkLOOKVIEW_DOOR_DROP VIEW_DESK VIEW_CANDLEVIEW_CANDLE_TIMEVIEW_FOLLOW_DROP VIEW_BINDING SWING_START FLAME_FLINCH SLAM_GUST DRAW_FLAME CANDLE_CLUTCHCANDLE_CLUTCH_TIMECANDLE_TREMBLEDARK_ADAPT_CAP BLACK_CUT SLAM_SHAKE FIG_EMISSIVE FIG_EYES_GAINFIG_STILL_PHASE FIG_TEXELSscale scaleCageopacitysoftnoiseflowtrailforearmwarmHANDresresLowresHighstepsstepsLow stepsHighbodyhemR shoulderRcorecoreSoft coreErode coreAlbedobankbankSoftbankBackbankVeilbankMinbankMax galleryMist surgeFromsurgeTo surgeTime surgeLife surgeTravel surgeFromX surgeDark smokeAlbedogathergatherRsleevesleeveRpourpourHpourFrom pourReachpourTau pourSpreadslamextalbedoerosion candleGaincandleGhallGainhallGeyesnightFOGWIN_SNUFF_TIME WIN_CLOSE_ATWIN_CLOSE_TIME WIN_LIGHT_ATWIN_LIGHT_TIMECREAK_OPEN_DEG CREAK_TIMEHALL_DIM HALL_DIM_Z WIN_LOOK_ATWIN_LOOK_OMEGAWIN_LOOK_SHIFT WIN_RETURN_AT RESTART_FADE WIN_CARD_DIMWIN_CARD_DIM_TAU BLACK_DOWNBLACK_UPSHAKE_PX SHAKE_TAUSLAM_FRAMING_TAU SLAM_MOON SLAM_MOON_TAUSLAM_RIMSLAM_RIM_WIDTH SLAM_LIFTLEAN_IN LEAN_IN_TAUhandTaubobglowFrom glowFromTopglowMaxglowTaucueMaxretractfadequietseep seepFlickerseepIn hintAfterhintFor doorHints doorHintY LOOKAROUND HINT_ALPHAHINT_Y INTRO_QUIETHINT_INHINT_OUTHINT_MOVE_AFTERHINT_MOVE_AGAINHINT_MOVE_LATERHINT_MOVE_UNTILHINT_CLOSE_FORHINT_STILL_AFTER HINT_CENTREHINT_CENTRE_AFTER HINT_NEED_FOR AFFORD_PERIOD AFFORD_TABAFFORD_DIAL_DEG AFFORD_MARKLIBRARYCRACKLEMUSICbindingFINALEeyesOuthushinhale inhaleTime inhaleReach inhalePower inhaleSwirl inhaleGlow inhaleLift inhaleHand emberLight inhaleRimlingerleave leaveTimedropFall dropSettlelandAtfallTimemoonUpmoonTimepeelpeelTotopslopeTop slopeLandhopscoveropenLead rustleLockcloudAt cloudGainchapterReaderboardz0alphawidthAwidthBheightarttabscardwindowcolorlevelpenumbramoonFilladaptOutomegapooleyetargetfovaimdropTodropDirdropTilt dropTurnssmouldersmoke smokeMoonVI. THE READERtitleNow the book reads you.mottoREADERlookUplookUpYgapLightgapTimedoorAtstartleglide glideTime rushGlide rushGlideTime reachTimeflipflipTime riffleGap riffleHopsigil sigilTimeveil drinkTimeveilLagveilTimeveilHoldveilFadecutglowAtglowTimedrinkDim drinkFlameringGlow ringColorinkDarkveilEdge veilFeather veilGrainveilFlowveilEasewrite writeTimecrawl crawlGrowpenpenGrowinkGlow inkGlowColorinkCoolveinGlowspell spellTime spellHoldbendbendTimebendMaxriseTimeriseSinkriseFoldleancarry carryTime closeTimemoonhallDimshutshutTimelinelineFadelineY closeFadecloseTau closeDragdriftbookfocusstrengthradiusdofbendTo reachFromhoversweepXsweepYsweepZwriteYrecedeTohand sigilSmoke sigilWidthinkVeins inkVeinWidthveinMinveinFadeboundAtboundPen paperSway paperBreathmotes moteCloud moteLightBINDINGClose the book to begin again. BINDING_LINE ­ A5 –/5œ¼7ºà657\ ]6RuÐ ´+ +#*") �!"c#Y³$6D»E6R÷S6XÄYZd[56i6m6o6s6w7"xyzŒ{|x}zŒ{!x}!~‡€��5‚ƒ‚„7„…Z†£Y‡ˆ�‰hŠ5k‹6™úš6žÕŸ6£¡¤6±ݲ³¹´Fþµ¶¥·(À¸¹Iº»¼F½»²¾5�¿7HÀ>ÁÝ‚;Ã6νϱÐÑ”Ò*ºÓÔ×ÕKÖ6à5 áâ7ÉØ?ã(©ä5 7.å,Àæç4èŒdéêòëìèí55î75( 75Zd75Œï75¯(75´ 77“ð_<ñ57|òyàóô«õö÷ˆ®øZäùZÿúzû …ü³&ýþþÿ€á…F׳,i¶å  ; ôÜ  Ú57H³õ57]57 5 7÷57ê5á7 5*!q7&"5d#7Ì$%&ô<'³#(³ä)dÜ*6/f0( 152347o556•7j7.8 Ò95**:7ò;*<(U=.’>áR?5 3Æ74@ �ABC¬Dc.ERF -G GHçÃI­J6V5¹&7ÙS¦W5 mXFGYFZt[ 2\S]ˆG^¿d_ôÜ`ÑØaùb.Jcïd.Ïe(™fgBhi‚j5kýÿl7qm5noÔ7Ðpgq5 '»3r>syt³wuv‹w"Òxˆ yz"{Æ|}ä~"'€ï~�a‚ˆ˜ƒ„�…, †F{‡$ˆ“!‰(BŠ‹ÑP(mŒ“’�穎“ �1³�‘x’5“”•7á–�—³«˜™|š<ý› œ�užV쟠L¡îТÄ*£°,¤5£¥¿Ǧ§v¨ þ©ªö«(c¬"­ï9® Ú¯ci°°8±* ²F³´tµ‘+¶¢±·FS¸(¹6ÐÑ¢¸ÒÇÓÔ–Õ(VÖßׄAØ[Ù dÚ  ÛÜwÝçöÞÄnß³Úà‡á<€â¹Yãiäˆ^壿øçHúèéhê5ØëçìÛí0î ûïÔžð³hñ“±òïïóÔÊô ‘õ‹ö÷¢Èøÿ'ùô«Ùz›ú $ûüM«ýœþÿ§(ÈšAçÃ.C6 55¹ 75  77Ä « náº}} “650� „ Ä7e55“i75ç77z{5 !n7"51È7D# �$%½”&H'(¤Æà)ö¦*6,51È7D#b-6354567ü.5ÄkF7 /5“H7#×5 787l/G^5¹¹79:;<Œ=°>d:?‹E@îÓABšCD•EÀF5 ¿GâH {I¼JK›L•c%FM ùNOÛPsQôÚRç0|S.TÜUVÌWžXF/YZVZB[_\ ¢]ïß^&_.w`‡a  bFkcÄÒd.‘eîf5H1g7)h5ijj7Îk/l 1månˆ×o?@ABC.(333333Ó?)ÍÌÌÌÌÌÜ?*®GázÎ?+(@,"@-ffffff@.%FGHIJKLMNOPQ/ÍÌÌÌÌÌ@0ffffff"@€2@%TUVCW1š™™™™™õ?23456{®GázÔ¿7ìQ¸…ëÁ?áz®GáÚ?8@9:\]^_`abc0defgh;š™™™™™Ù¿ìQ¸…ëÑ¿\j^k`lbc0defgh<\n^`abc0defgh=333333Ó¿¸…ëQ¸Þ¿\p^q`rbc0defgh>áz®GáÚ¿ÍÌÌÌÌÌ@\t^`ubc0devgh?š™™™™™ý?@AÍÌÌÌÌÌ@BCffffffÖ?DE{®Gázä?Ãõ(\�Âå?ìQ¸…ëá?FGHš™™™™™é?IJKLMú~j¼t“˜?N)\�Âõ(¬?ð?Oø?PпQR@Œ&�Ž��M‘’“”•–‘—˜STUffffffò?Œ›*œ�Vš™™™™™á?W333333ë?Œ› ¡¢XYZ[333333@\{®Gáz¤?])\�Âõ(Ì?^333333÷?_333333ó?¥¦“§¨©¡ª«¬­®¯°`š™™™™™ù?abcdeìQ¸…ë±?fffffffö?ghiffffffþ?jklmš™™™™™Ù?n�Âõ(\�â?oR¸…ëQè?pq ×£p= Ç¿rà¿›ÄÅÆÇÈÉ1ÊËÌÍst@uv@wxyz{ü?|@@},@~׬ØÿÿÿÿÙÚÛÜÝÞßffffffî?Ház®Gõ?€�‚Ð?ƒ„\�Âõ(\ï?…®Gázî?†{®Gáz´?ffffffæ?‡ˆ‰Šô?‹š™™™™™ @Œ�Ž��‘’“ÍÌÌÌÌÌ@”•–—{®GázÔ?˜333333@™…ëQ¸å?šÍÌÌÌÌÌð?›œš™™™™™©?�š™™™™!ÀÀžŸ š™™™™™¹¿ÍÌÌÌÌÌÀ¡š™™™™™©¿š™™™™™é¿ÍÌÌÌÌÌÀ¢ÍÌÌÌÌÌü¿£333333÷¿¤š™™™™™á¿¥R¸…ëQð?¦333333ë¿§= ×£p=ê?¨©ª«¬­®¯@«N¬Þ­.°±š™™™™™É¿q= ×£pÍ?ô¿²®GázÞ?³´µö(\�Âõè¿¶·¸¹º»¼ú~j¼t“x?½¾¿ÀÁÂÃÄÅÆö(\�Âõè?ÇÈÉ@ÊËÌÍ Ë�ÌMÎ(ϨÐQÒ(ÓÿÿÿÿÔdÕ‘ÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÍÌÌÌÌÌ!ÀÞìQ¸…ëÑ?ß'À333333û¿à333333À333333@áâãäåæš™™™™™@çè鸅ëQ¸Î?êëÍÌÌÌÌÌü?ìíîïðñ#@òóôõö÷333333û?øùúûüyé&1¬|?ý¸…ëQ¸ž?+‡ÙÎ÷£?¸…ëQ¸®?þÿ€š™™™™™@�‚ƒ@„…333333@†‡ˆ‰Š‹ÍÌÌÌÌÌ@Œ�)\�Âõ(ì?Ž��‘’“”•–ÍÌÌÌÌÌä?—˜™š›œ�žŸ€Q@ ¡¢£¤¥{®Gáz”?¦§¨©ª@«@¬€]@0yº*»F¼c½¾¿FÀÁ¢ÂÃFÄÅÆFÇ&ÈfɰÊËÌÍÎÏ­®¯š™™™™™!@°±²³´µ¶ÍÌÌÌÌÌ @·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕ333333@…ëQ¸õ?ÖÍÌÌÌÌÌø?×ØÙš™™™™™@ÚÛÜÝÞß„…ņ ‡1ˆá‰ÿÿÿÿú~j¼t“ˆ?ü©ñÒMbp?àáâãäåæçè{®GázÄ¿éY@êëìíî•—™iši›Äœÿÿÿÿ�ÿÿÿÿïffffff@š™™™™™@ðñòH¯¼šò×Ê>óôÃõ(\�ÂÕ?õöºI +‡†?0¨¤£ÿÿÿÿÏ+÷øùúC@û®ÿÿÿÿ¯ÿÿÿÿ°1×ÿÿÿÿ/ÿÿÿÿ²}š™™™™™Àš™™™™™@ÍÌÌÌÌÌ@ffffff濚™™™™™ù¿ü®Gázò?ýáz®GáÊ?þÿ€�‚ƒ„…†‡ˆ‰Š‹š™™™™™ÀŒ�Žffffffú?��‘’“”)\�Âõ(¼?•–—˜™š›œ�žŸ ¡¢£¤…ëQ¸…ë?¥{®Gáz„?ü©ñÒMb€?¦§¨©ª«¬­®¯°±²³´µ¶· ×£p= ×?¸¹º»ú¬û ½<»ÿ¾,¹ÿÿÿÿìQ¸…뱿¼)\�Âõ(Ü?½¾¿ÀÁÂÃÄÅÆÇÈÉÊ ×£p= ·?ËÌI@Í®ÿÿÿÿ¯ÿÿÿÿ°—˜ › Ãõ(\�µ?\�Âõ(\Ï?Îϸ…ëQ¸Þ?ÐÑ�žŸ‘ NÒé&1¬Ú?Tã¥›Ä °¿ÓÔÕÖר¸…ëQ¸¾¿ÙÚ¦ÿÿÿÿ§ÿÿÿÿ¨ÿÿÿÿ©ÿÿÿÿª«¬F­ÿÿÿÿš™™™™™õ¿¤p= ×£à?ÛÜœÄ °rh�?ÝÞßàáâãìQ¸…ë¡?äåæçèéêë‘Ëgfx/geom’jÔ»&.buffercreateipairswritef32 GPUBuffernewsizeusagevertexdata immutablelabel unit-quad grid-quad INST_STRIDEgpucapacitycountstride writeToBufferkindsideseedmapUcopywrite QUAD_VERTSGRID attributesformat float32x2slotoffsetstepModeinstance float32x4LAYOUTunitQuadgridQuad instancesresetpush pushFloatssetLooksetFlexupload 05     7  €4) @@; ( ) @?k@@A4BC @ÿÿÿÿ ! d@"# ÿÿÿÿ$ð?  @0@  @@@  @H@  @P@  @T@ !@X@ # $\@  &"@`@ ( )$@b@ + ,%&'()*+, - .   ‘Ë story/ink6’jÔ¯BSOURCELEFTRIGHT¨ A55˜%7�595Ò75Á75Á 75<   75<   75<   75 <   7 5     7 5  <  7 5    7 5  <!"#7 5 $%&'7 5<()*75+,-.75</01752ƒ34775&56+75<78975Ø:;<75Ø=> ?75@A B C75D E F G75 H I J K7 5  L M N O7 5  P Q RS7 5  T UVW7 5  XYZ[7 5 \]^[7 5_`a[75b`c[75dc”[75eYf[775g`h[75ijkl75mnop75qro s75tm u v75w x y z75 { | c }7 5  ~  € �7 5  ‚ ƒ „…7 5  ‚ †‡ˆ7 5  ‰Š‹Œ7 5 �ô Ž7 5�«�‘75’“”‘75•–°—75X“˜‘77!5™š›‘75œ–�—75�žŸ 75¡¢£ ¤75¥¦ § ¤75¨ © ª «75 ¬ © ­ ¤7 5  ® © ¯ ¤7 5 °ê±²7 7 1³5W5.´µ¶75·¸¹º75»T¼75½¾0 ¿75<£ À Á75Â Ã Ä Å75 Æ Ç 0 È7 5  < É Ê 7 5  Ë Ì Í�7 5  Î Ï0Ð7 5  <ÑÒÓ7 5 ÔÕÖ×7 5ØÙ0Ú75<ÛÜÝ758Þßà75á04775<âãä75Âåæç75Øè0Q75<éÆ ê758ë Ê H75ì í 0 î75 < ï Ò ð7 5  Ë ñ Ö ò7 5  ó ô 0õ7 5  < ö÷ø7 5  ùúLû7 5 [üÕ^7 5ýþÿR75L75º75 775 • 75  75¢75 75(  75¾  ¶ 75    7 5     !7 5   " #$7 5  ¸ %&'7 5  «(!)7 5 ˜*+,7 5’-./75O01275<34575<67877!5<®9:75<;<75<=>?75@@B A75B� C D75E F G H75 I J K L7 5  M N O L7 5  P J QL7 5  R JSL7 5  TJZL7 5 UJVL7 5WaXL75YZ[\75]^_`75ab_c7715dse™75fghi75jklX75fmn o75pq r s75p t r u75 v w x y7 5  z { | }7 5  ~  €�7 5  ‚ ƒ�7 5  8„…7 5 †‡�7 5ˆ‰Š�75n‰‹…75Œ�Ž�75H�£¦77A5‘à§’75Ê�ª¦75“�­¦75”௠ê75•� ± ¦75– + — a75˜e™š77QT›œš™™™™ùU@š™™™™A€@33333C`@�a@L†@š™™™™ e@fffffÖd@33333ë…@ÍÌÌÌÌt@33333{@fffff¦D@ Q@fffffÆ{@ÍÌÌÌÌ\�@fffff>…@Š@š™™™™ùT@š™™™™Y‹@š™™™™Y^@ÍÌÌÌÌÄŠ@333333X@fffff‹@ÍÌÌÌÌL[@33333³Š@š™™™™9X@ÍÌÌÌÌ‹@¤Š@33333óŠ@33333�Š@š™™™™áŠ@fffff~Š@33333oŠ@fffff¾Š@ÍÌÌÌÌ\Š@š™™™™­Š@33333kŠ@ Y@fffff‹@ÍÌÌÌÌLZ@33333gŠ@ÍÌÌÌÌ,Y@š™™™™ ‹@fffffæZ@š™™™™eŠ@ X@333333Z@ÍÌÌÌ̈Š@fffffêŠ@fffff¦Š@ÍÌÌÌÌl_@33333ËŠ@33333“`@fffffŠŠ@ÍÌÌÌÌ `@äŠ@š™™™™b@š™™™™ÉŠ@33333c@ì‰@š™™™™éa@„‹@333333c@fffffVa@ÍÌÌÌ̼b@33333;‰@}@ÍÌÌÌÌd‹@š™™™™�~@ÍÌÌÌÌ0‰@ÍÌÌÌÌœ~@33333o‹@ €@ÍÌÌÌÌœˆ@š™™™™)z@š™™™™ùˆ@ÍÌÌÌÌD|@33333/‰@š™™™™‰‰@š™™™™Š@fffffF|@33333OŠ@š™™™™©Š@ÍÌÌÌÌÜŠ@fffff&z@š™™™™9‹@š™™™™É‹@33333'‹@fffffžz@ÍÌÌÌÌŒ@fffff®{@š™™™™~@fffffŽx@š™™™™¡~@š™™™™U€@fffff^‚@ÍÌÌÌÌh„@33333£t@fffffî„@fffffVw@ÍÌÌÌÌ”ƒ@š™™™™i„@‘Ë gfx/env/build’jÔü=NdatacountcapacitylabelbuffercreateSTRIDEcopy GPUBuffernewsizeusagevertex immutablemathcossinuxuyuzvxvyvzwxwywzeulerfloorseedmaxrandprintenv: warning: instance list is full ()writef32readf32absfputIDENTITYsqrtWOODBOOKBRASSPAPERGLASSWAXFABRICPLASTERFLOORPANELIRONGLOBEDIALINKDARKWEBLEATHER HALL_WINDOWCURTAINEMITMATlistresetuploadyawframemulathexrngrangedetach putFloatsturnaabbrod6 `€ Î #&ã ÿÿÿÿÿÿÿÿÿÿÿÿ`€8< &O€ Î# 0€ 0€&  (�€6 &ãã0€0€  (�€    ÿÿÿÿ ÿÿÿÿÿÿÿÿA   # #" # #!Y  # #!3 # #!\iI  €I  €I  €I  €I   €  I   € FF FF#)"#)!##!  3##! 3#)"#)!##!3##!))"))!##!3##!6 Y ¸  ^ ¿  _ ¾€ €ð?  R Ûe 6 Y3_  ð? ÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿk + Y# ^#! _#! ¸# ¿#! ¾#! #  # ! #! r‹FY¸ Y#  ^# !  _# !  ¸#  ¿# !  ¾# !  #  # !  # !  ^ ¿ Y#  ^# ! _#  ! ¸#  ¿# ! ¾#  ! #  # ! #  !  _ ¾Y# ^# !_#! ¸# ¿# !¾#! # # !#! 6  Y ¸  ^ ¿  _ ¾    q % Y# !  ^# !  _# !  ¸# !   ¿# !  ¾# !  # !   # !  # !  | *'*,?ÆÜµ¤?×£p= ×)@333333@áz®Gáð?)\�Âõ(¬?ƒ ‚-0*I  @€+**I  @€+*+**'  * , #  *'  * , #  * '  * , #  ð?ào@p@ð@@€?ÆÜµ¤?×£p= ×)@333333@áz®Gáð?)\�Âõ(¬?‹6I  0€+J 0€»€ÿÿÿßA0€0€™ »)+»»*ÀÿÿÿßAÀiÐ@� " @#!¢‚‚‚‚ö  @ã1ÿÿ& Î #Y #  (à?¤NA5`Î6)’*@+F ,@-Ÿ.@/F406:;@<Û=@>Fk?@@½A@B™C@DøE@F@GH@I“J@K@L@MF&N@OFºP@QFR@SFNT@UFgV@WFBX@YFäZ[+,ð?-@.@/@0@1@2@3 @4"@5$@6&@7(@8*@9,@:.@;0@<3@=2@>1@  !"#$%&'(?@AB 123456789)CD E F  G HI(JKLMN ‘Ëgfx/cam’jÔä%VectorxyzyzxMat4valueslookAt perspectiveeyetargetfovYaspectnearfarviewprojviewProj invViewProjinvertidentitytransformPoint normalizedmathabs pixelToNdcndcRay transformVec4maxminfrustumcrossnew rayPlaneY rayFromPixelproject downwardLight % €˜›#›˜#"›™#™›#"™˜#˜ ™# "€  €)" $    ) "$  !"$!"$"$ÿÿ#"$€@ ‡2 €    0€     €    # 6  ü  ð        ` - £ .   P€  Õ €0€ €      P€, $)($)Gð?@? ii"Iû €€D˜I € ˜"˜$ #!€�íµ ÷ư>K   +  8Õ  W£   Û       $  ) ' # $ ) G  #   �íµ ÷ư>à?] w € 0€    " 0€   ÿÿ ˜) J  $€€      8 >+O € i›3™#$˜#$J D€€J    $€€ J   D€€ J    $€€ 9 Âÿ'   š     6` -# £ €0€@$€€ððÿD€€š™™™™™©?k!A5@[@š@ï@+@8 @ ¹ @ FZ @K@F< !"#$%  ‘Ëgfx/ubo’jÔ»bufferwritef32vec4xyzdatasize GPUBuffernewusageuniformlabelcreatewritevec3wblockflush   !7š‰üe·XÐxÁÕwbtµ5ÿÿ7Î ã!À" #€@$¨%€t&5'(7W)ÄÃ*m+,¨- Ã.¬/Çz0°1C^2ý34á56p7}89Ç:‰S;-<‰=ì>@?±y@@gA¼B@C;D‰EªFÇùUAø? š™™™™™É? lÁlÁ–?  š™™™™™é? à?333333ã?a2U0*©C?-Cëâ6J?Ǻ¸�ðV?ÍÌÌÌÌÌô?ð? @¢@ ! "#$#%#&'{®Gázô?@¬@®@)!*"#$#%+&,  ×£p= §?!ìQ¸…ë¡¿"\�Âõ(\@#I@23456789:;${®Gáz”?®Gáz®÷?€O@2436>8?:@%333333ë?&¸…ëQ¸®?'(š™™™™™@)yé&1¬l?*+,-.NO333333ÿ?\�Âõ(\ó?q= ×£pÍ¿/¤p= ×£Ð?333333Ó¿0{®Gáz¤?12333333@3ºI +‡†?4w‰ÉÂTru?5ú~j¼t“ˆ?6ffffff#@7'RãP|to?8ºI +‡–?9:ü?;�Âõ(\�â¿<ijklm =ü©ñÒMb�?>?@š™™™™™ñ?AÍÌÌÌÌÌä?Bš™™™™™á?CD×£p= ×ã?{®GázÔ?EÍÌÌÌÌÌ@F333333@GHffffff@I{®GázÄ?Ð?…ëQ¸…Û?J333333Ó?K/n£¼b?ú~j¼t“h?ºI +‡v?LM9´Èv¾Ÿz?N¸…ëQ¸¾?OìQ¸…ëÑ?PìQ¸…ë¡?Qš™™™™™©?RSTUffffffö?Vš™™™™™ @Wffffffò?XYZš™™™™™¹?[q= ×£pÝ?\)\�Âõ(Ì?]Ãõ(\�Âå?R¸…ëQØ?^’ËH¿}M?’ËH¿}]?_¸…ëQ¸ž?9´Èv¾ŸŠ?`aÍÌÌÌÌÌ@bš™™™™™Ù?cdefô¿ô?333333ã¿g ×£p= ç?{®Gázä¿h)\�Âõ(¬?Ãõ(\�µ? ×£p= Ç?iffffffÖ?jk{®Gáz„?lmnÃõ(\�Âí?ö(\�Âõè?opZd;ßO�§?V-²�?;ßO�—n’?qrú~j¼t“X¿st;ßO�—n²?u-Cëâ6Š?vw;ßO�—n‚?xyš™™™™™é¿z{|333333ó?};ßO�—n¢?~®Gáz®Ç?¸…ëQ¸Î?€ºI +‡¦?�‚kAƒ€FMaA„…†‡333333󿈉{®Gázd?Š‹Œ�Ž�ü©ñÒMbp?�‘’“”•–—˜™ÍÌÌÌÌÌÜ?šyé&1¬Œ?›œ�žŸ ¡¢£/n£¼R?¤ü©ñÒMbP?¥¦Ø¿Ø?§¨©ª«¬­”“““““ã?æ?®¯°¡?±²³´µ¶·š™™™™™ù?¸333333Ã?¹ºffffffæ?»¼½¾¿ÀÁÂÃÄÅÆÇ‘Ëgfx/hdr’jÔê $featurescolorBufferHalfFloat rgba16float rgba8unormwidthheightmsaafloatformatencode msaaColorscenedepthcolor scene-msaa scene-hdr depth32float scene-depth clearColorview resolveTargetloadOpclearstoreOpdiscardstore depthStencil depthLoadOp depthStoreOpdepthClearValuebeginRenderPassrequire gfx/targets pickFormatnew beginScene ›¼  86 ÷Ü:O ¬�$   D    � D    r          &$O€5*,*,*,757 ð?UUUUUUÕ?@5  ,6 ¡�M6``r `J¡ 6 r ``¡65  7  D 6   ` ` s q ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ð?ÿÿÿÿ >A @5@Â@Fï@¡@ Fº   @!"#$‘Ëgfx/leaf’jÔ•92mathclampPEELTOPLANDfaxawbxbwkapparigidsincossqrtabsLIFT HALF_DEPTHmodelbackx0w0dxdwMat4identityshapeRIGIDsetFrameCOLSROWS CANDLE_DROPatan2minmax CLEAR_SPLIT CLEAR_BANDCLEAR_Z CLEAR_LEAD CLEAR_RAMP CLEAR_LIFTrequirefold STACK_LIFT PAGE_WIDTH PAGE_DEPTHplacebuild CANDLE_RADIUS candleOffset ""$D. €#)G#€@@B ###))" ' # )"!# # ! ) )! # ! " # # ! ð?@@ÀG¢ R  R$ R###) ) " ' ) ) "  ! ) # ! ) ) ! ) !" ) #! † , R" † R"$ † R"###) ) " ' ) ) "  ! ) # ! ) ) ! ) !" ) #! ¢ , †" ¢ †"$ ¢ †"###) ) " ' ) ) "  ! ) # ! ) ) ! ) !" ) #! ¢ " L   $ # # G  # G   ":òÿ ð?@@ú~j¼t“ˆ?Àš™™™™™É?à?è?ffffffö?V„°6 ü‡( * D.  0°€#)G#)'u›)' #   # " #!jš R  R( ( $   D.  0°€#) G  # )Z  R" G $   D.  0°€# ) G  # )'D ¢ ( *   D.  0°€#) G  # )'0 ¢"( *   D.  0°€# ) G  # G)     !# $ I  #ˆ°€) $(*  D. 0°€ # ) G# G  # "( &* %  D.  0°€# ) G  # G#µ'    ¸…ëQ¸Î?{®Gáz´?0°€@@š™™™™™é?€®Gáz´¿ð?ìQ¸…ëÑ¿R¸…ëQØ?333333@š™™™™™Ù?ffffffÀ333333Ó?š™™™™™ù? Àš™™™™™É?áz®GáÚ?ffffffþ¿¤p= ×£À?-DTû! @ ˆ°€š™™™™™á?ðQ¸…ë¡?áz®Gáî?p ‚fI  €I  € j u"  š ›" # # ! I  $€ $ $  3   3 3 u"#  ›"# !   " µ I  0€ µ # I  €$I  €G$# "# ! # "# !# #" ˜# !#! å"€  €  $€ 0€•Ö&è .>ð?�   4" " " " "" # # "# # "# # "##!#!I €     $$$     €ê-�™—q=¨ M €6  (�€Û ÿÿÿÿ(�€·- ‚à ž  <.   €‡# ˜I    €  I  $ €   ‹ # '    M €6 \`�Û      Û  î  å ÿÿ  #    #   #    #   #    #   #    #     § ¦ ¡ h „'    M €6 \`�Û    Û  î # # ! å33 ÿÿ  #    #   #    #   #    #   #    #   3  § ¦ ¡ h „  ü    8 8' " #$ !  #$       9éÿ9äÿ' " $ $ ( 8Ó( 8Î#!' ' !' #! #'  M €6  !\`�!! Û    Û ! ! " !" # "# $ #$ % $% & %& ' &' ( '( ) () §¦¡h„'  M €6! "\`�""!Û  !    Û " !" # "# $ #$ % $% & %& ' &' ( '( ) () * )* ! !!3"3#§ ¦!¡"h#„'   ! M! €6" #\`�##"Û !"! ! !Û # "# $ #$ % $% & %& ' &' ( '( ) () * )* + *+  !!3" §!¦¡"h„' ! "!M" €6# $\`�$$#Û "#"! " ! " Û $ #$ % $% & %& ' &' ( '( ) () * )* + *+ , +,! !!"3#! § ¦" ¡ h# „92ÿ9-ÿ-DTû! @ € € $ €ð? ÿÿÿÿ\`�É ‡"J €'J €J €J €  !€¸…ëQ¸®?"€#€¦ &  ¢ ¢8!)   ü  # 9ñÿ!)à? Á ¾ÿÿ   �"   �! " " $   D. 0€# ) G  # ) ( # "# '  , ! I  ,0€I  40€    '   ‡"      ‡"  J   D0€ '  J   D0€ J    L0€  J    T0€  ('   <.  0€  F F          "  ê" " ""$D. 0€#)G#' '  ê)!""$D. 0€#)G#G # l##ÍÌÌÌÌÌô?$%0€@@&ð?¸…ëQ¸®?,0€40€¸…ëQ¸¾? !D0€"L0€#T0€ffffffÖ?-DTû! @'({®Gáz¤?š™™™™™ù?) ¯~A @5˜`‹ ü   2 @ @R†¢55 75  7 7@FFü@FFFFž@FF@@ 6 (5 5 5 @)FF FFFF F F FFo*+‡,-·.å0'/1234�56l789:ê;@<F@=FFô>?*@+ú~j¼t“X?-Cëâ6J?,333333ã?-.333333Ã?¤p= ×£à?š™™™™™é? ×£p= ·?ü©ñÒMb�?)\�Âõ(¬?ü©ñÒMbp? /   !"#"$"%"&"'"0333333Ó? ¸…ëQ¸®?1333333³?&{®Gáz¤¿${®Gáz¤?%ìQ¸…ë¡?){®GázÄ?'¸…ëQ¸¾?( 2   ‘Ë story/puzzles’jÔÇDamathclamppiecesbyKey freedCountrngtimemaxProx maxTrembleholdFraccentreholdRateglowwindnearestinZonefindsfoundfloormaxSPOTSkeyxzzonereachholdneedsspotindexproxtrembletruthmorphblockedfreedfreedTquiverseedvisits blockedVisitshoppedtableinsert UNFOLD_PAUSE UNFOLD_TIMEcurrent REVEAL_REST PAGE_TURNunfold presentationmoonmoonUpclock clockMatch HOLD_EDGEMORPHfromGLOWWINDnearpowerriseRELEASEdelayeaseflashfallexpsinsqrt PROX_POWERenteredgustrelease QUIVER_HZ QUIVER_DEGradactive proximityFIND HOLD_DECAYholdCapminapproachcharm TREMBLE_HOLD forceTruth forceTremblerequire story/tunenewresetfreeNow pageChaptersupdate <. €#)G#€@@_ ‚W65Õ50I  XP�+J `P�“5Y "L36"JJ™™››* * ¶!¶!640#$) 5+ ( »0 ÕJ4   8Ü`ƒ   J :Ìÿ9     ÿÿÿÿÿÿÿÿÿÿÿÿ     ÿÿÿÿ€ÿÿÿßA<¥@XP�`P� ! !"ð?#$%&ð¿'()*+#ÿÿÿÿ$ÿÿÿÿ%&'()    *+*,*-./0ÿÿÿÿ123*2:=ïÆã?,-Ü`ƒd ]ÕL0  îפ * ª¿A ÿÿ¤ › v  . ` oå :Ïÿ5ž·¤ fªA5Y !" # $%&')*+   •& M!vv .¤¿A× 5 ' 5  %&"# !+ð?£Õ( v. " ‡$D. `€ ð?%&./`€²ÕLv:ûÿÕ4'%ð?¹ ] áÿÿÕ4 Õ4ÿÿÕ( .  (ÿÿ   " x$<.  p€#) G # ( (  <.   p€#)  G #ÿÿ0ð?&1.2 p€@@à?3  ž  á((40ð?Ð0¶P€P€Å5678ÚK  €$D.  €#G##-Cëâ6? € €ð?ç  þ þG ª#!9ð? ð úÛ"G$<. 0€#)G#:;ð?0€@@öW Õ ¡<.  € Û"  ÛG  $   <.    € # ) G  # # G  ó &  # ! Û"  ÛG  $  <.    € # ) G # #  G   P $  <.   € # ) G# # ! <= €>;ð?@@?@€Q ݾ"¿$D. 0€GM&§P K   ,0€P $  P " 3  M $ I  80€#$D. 0€GG # ! A$   <.   0€ # ) G  # G  AB#0€ð?CD@,0€EF80€ @@‹))!I 0€)I  0€"PüsÑ]å@fffffÆ_@33333{s@G0€0€š.I  €"#)G#) )! I  $€ ) I  € " G # ' ) )!I $€ ) I  € " # ! )( €@@ð?PüsÑ]å@fffffÆ_@33333{s@G$€Ÿj)I  €"#)G#)  ' I  (€ ) I  € " G # ' ) 'I (€ ) I  € " # ! )() I  €"# ) G  # ) 'I  (€)I  €" G # ') 'I  (€)I  €"#  ! ) ( J <€, )')!D. X€ffffffæ?€@@ð?PüsÑ]å@™™™™ÙõÈ@fffffÆ_@G(€ø?š™™™™™ù?3333³‘É@<€333333ã?)\�Âõ(Ì?áz®GáÚ?Ð?ffffffò?X€¦ .™"›"##!I  €"  " K    €$  <.   ( € # ) G #  k& H €-Cëâ6? €( €@@I­$Œ˜ç6j!jž· ¤ f ª  A ßj3*I  P0�G áÕ Lõ 0 v k .!  .  < .  ¿G  ¤  A#  × î *  *  ª  ¤ H! H! ²"I $Œ0�##j)')&# »))(!I +¨0�)%j)')&# »))-!I +¨0�),!# `.J 0¼0�AJ 0¼0�A… 1ã2 3 (4 3  R5 ™6›7  î î" #! î îã2 8 0¶9P:€;P<€Å= ¤  o>' o> J?Š  å@' å@ J?› ¤ 2 ›Y J?  ²AY J?B'B J?Y ª   ª #"    * #! *  J 0¼0� ª  ª J 0¼0�ª  * ¹C#"J 0¼0� *  DM *  * KEE G1�#J G1� *  *  * $D. I 1� ¹J ¿ ¿G ¤ K  A f J 0¼0�f J 0¼0�AJ 0¼0�A >L#G# ›KMM 0¼0� × H! H! ²"I $Œ0�##"j)!"') !&# ! »)) !(! I +¨0�)%#j)"#')!"&# !" »))!"-! !I +¨0�),!# `. *  *  v .5N'5N J?vž ž J?·  ×J 0¼0� J?¤ : þØOñP.Õ L& v # ØO    ØOD. I 1�  ¤ ¤G   ¿ ñP   ñPD. I 1�  ×:ÙÿQ%$J     Kð?ìQ¸…ë±?FP0�0&L#"333333Ó?! MNOŒ0�333333ã?-DTû! @@333333@(G¨0�š™™™™™Ù?š™™™™1@'¼0�ðP3Q5678)*RST+‡ÙÎ÷ï?U1� 1�VWX333333ë?YZ´IA @5²@@Fï@Ÿ @ é @ F( @á@FFž@Fª@@ª@FF@F¹@F@F<@@ @!ß"@#FR$@%FFÆ&'[@\ÍÌÌÌÌÌÜ?R]^_304`     V W LKQa ‘Ë story/house’jÔÞ?hmathclamprnggameTfallTcloudTlightTlightOutrattleTgapTseepseepTstrikeTsilenceTburstTcreakTgutterT GUTTER_FROM nextGutter LUNGE_FROM nextLunge wardrobeTwardrobeLungeddoorDeglatchDeglanternlanternZhallCold doorLightfeetmoonDimbookFallbreathflamedread wardrobeDoorlunge wardrobeLunge creakSoundnewfallcloudlightrattlegapsilencestrikestrike1burststopcreakmax WARDROBE_AT BURST_SWINGBURST_OPEN_DEGBURST_BOUNCE_DEGexpsinabs CREAK_TIMECREAK_OPEN_DEGRATTLEdropliftampknocksknockflaremin FALL_TIME CLOUD_DIM CLOUD_TIME DOOR_LIGHT LIGHT_TIMEwinBINDINGgapLightgapTime LOOKAROUNDseepIn seepFlicker LANTERN_BURST LANTERN_ZHALL_DIM HALL_DIM_Z GUTTER_EVERY GUTTER_TIME GUTTER_BREATH SHRINK_FROM SHRINK_TO SILENCE_FLAMElose DREAD_CURVE LUNGE_EVERY WARDROBE_OPEN WARDROBE_TIMEWARDROBE_LUNGErequire story/tuneresetcueskipToupdate <. €#)G#€@@I “)+““*ÀÿÿÿßAÀiÐ@N " “) +““*#!ÀÿÿÿßAÀiÐ@Sp5Gÿÿ\ÿÿ`ÿÿ&ÿÿ^ÿÿvÿÿ8±;ÿÿ ÿÿê ÿÿø ÿÿ0 ÿÿõ ©­ <>ÿÿÐÍ“JÈäò—ÿ·»AÕq �!ÿÿµ"Á#Ž$ %&      ö@ !"#$%&'W ïL:þÿ(€MP€\P€`P€&P€vP€8 P €ê  (ê P P €P€øP€&^  ^P€0)*+, - ./0 123ˆ2>d\]d`¯dê­'J P€­>' J P€> à dÐ Í  @4P€@5§ * z $ ä###G#" ä …3 * I  `€#)  I   (`€I  0`€#"67š™™™™™ù?333333ã?8ffffffÖ?9`€#@:(`€;0`€º - L$D. €)))I €)" ì   <.  €  <.   €# ) G # , # <€ìQ¸…ë¡?@-DTû! @:€=ÍÌÌÌÌÌô?@Æh ?«' #$<. @€#)G#«"*   <.  @€#) G  # G #G #É L"      K) I @@€ # 3 * I  L@€ # ! :èÿ«"  G 3 )) I  @@€#3 * I  L@€#!>333333ã??@@€@@ð?Ð?ABffffffÖ?C€K@:@@€ ×£p= ·?9L@€š™™™™™á?,@ ×£p= Ç?Î . ?«' ÉL"    3 * I  P€ ! :ñÿÂK   (P€# >333333ã??B¸…ëQ¸¾?9P€D333333ó?E(P€å$48  (    "  "  #   " $ ! 9ëÿ4 ð?ô �ìGÁŽ 5           7 L    !  :ùÿ^^!^\\  ±$  D. D�A`  º `  ”$  <.   D� # ) G # # ) I  h� ) ' #»& K &  ×$   <.   D� # ) G  # #8;P9 í {! 8  í  ¼"$  <.   D� # ) G # # ø    ø * $ <.   D� # ) G # G# #J   &”�;'K(  ( &”�!;' )N€P*€  ±+K(( &”� ê,$ ! J  .´�±+±+±+ 7  #/;')1I h�) 0;')4'3I h�)2! # ! í {!±+# ±+<. D�#)G## # J   &”�  ^   ^*  <.   D� # ) G # G# # v     v* 5  <.   D� # ) G  # ·6v    v ' ##ÿ7 v    vÈ8ø   L ø  z9 $ ä:#  # 0# G ;# "  ä: …<3 *5I  >ô�#) ?I h�I A�# " JB  &C ø * D<.  D� # ) G# # äE þFòG—Hg0   K 0  LI$   D. D� ) )K)I h� ) J"  ìL<.  D�<. D�#)G#, M# JB  ÐN0 * PD. D� ) O' 5# äE *QòG—HJBäEòG 8    ±+  —H( ­R % õS   õS  .T   "“W)V+U“W“W*U#!  Œ  0 # !   ­R õS  .  õS!  õS õS  ÀX$  4YK<.  D�# I  h� # õS)\I h� ) [' Z#     ÿÿ õS        0   3* ]I  >ô� ) [J   &”�  Õ^ PI*€  d_   ò`G # d_" d_Ga$ <.  D�#)G# # G #  ê   )  ò` èb ò`"ê *c<. D�#)G##! J   .´�  Pd€  èb qe   “f   �gPd€  �gP€ h �g >i   Á  |j   "“W)V+U“W“W*U#! !   >i Ð   àk   Ð    Ð   * P(  «lÐ m$ <.  D�#)G# #  µn Ío   ®p   Ío  Ž ÿÿ µnq%&'   FD� GH@@à?áz®GáÊ?:h�IJKLMNð?333333Ã?4”� OP QE´�R333333ã?�Âõ(\�ê?š™™™™™Ù?333333û?�Âõ(\�þ?ffffffÖ?67š™™™™™ù?89ô�#@;�S¸…ëQ¸¾?T<ìQ¸…ë¡?-DTû! @=ÍÌÌÌÌÌô?UÍÌÌÌÌÌä?@VWÀÿÿÿßAÀiÐ@XYffffffæ?333333Ó?7@ ×£p= Ç?!Z[àe@\ø?]"^#Ð?_5`a$b… *A @5@@@@Fï@FŸ @ k @ Fø @F@F@F@F@ @ FFFF  Æc@d(efg    h   ‘Ë story/relief’jÔ“mathclamp WIN_CLOSE_ATWIN_CLOSE_TIMEwin WIN_LIGHT_ATWIN_LIGHT_TIME WIN_KNOBSrevealopengreensinrequire story/tunewarminkedgeframingambient ""$D. €#)G#€@@ ###) )" ' # )" ! # ! ) ) ! # ! " # ! ð?@@À W |" ý$D.  € *###) ) " ' ) ) "  ! ) ! )  ) ! ) !") ! (*###) ) " ' ) ) "  ! ) ! )  ) ! ) !")! ( *)G# (*)G# €×£p= ×ã?ð?@@à?À×£p= ×ã¿…ëQ¸…ë?¸…ëQ¸Î?¸…ëQ¸Î¿ ×£p= ç¿Ãõ(\�Âí?ìQ¸…ë±?ú~j¼t“¨?áz®Gáî?ìQ¸…ë¡?ú~j¼t“ˆ? P€   u!""$D. 0€#)G#0€@@! +P Äc Äc'"" $  D. @€#) G #( *  D. @€#) G #G#  ð?@€@@@&@$ #P Äc Äc'"" $  D. @€#) G # v #  š™™™™™é?@€@@ (  » | |'" " $   D. 0€#) G  # # š™™™™™ù?0€@@-P |(" ý'$D. P€ #I  (P€, 333333ã?333333ó?P€@-DTû! @ (P€05)')!)')!)')!7 a2U0*©C?¤p= ×£Ð?yé&1¬|?’ËH¿}M?R¸…ëQÈ?ìQ¸…ë¡?’ËH¿}]?¸…ëQ¸¾?ú~j¼t“ˆ?5'A @5@@@Fv@F4@ F» @ FF« @ FFÞ@F„@ @    ‘Ëgfx/ink’jÔÙ1KRIGHTBINDINGboundAtboundPenSOURCEmathclampsqrtcrawl crawlGrowpenpenGrowmininkCoolmaxPathnewmoveTolineToclosekeysclipsshownrevealglowveins veinPaint glowPaintpageClipageactiveglowedink propertyKeyPaintwithstylestroke thicknesscaproundjoincolor inkVeinWidthColorrgbafloorsinVectorxy writeTimeveinFadeabsresetveinMinpagenumberdrawsaveclipPathrestoresetColorModulationmodulateOpacityveinGlowdrawPathinkVeinsrequire story/tune story/ink6LEFTupdatedoneglowing drawGlowFacedrawFaceO€(ð?@�@2O T4(@ð?7` íO T4( ú ³    � � O€(   O€(  <.    $€€   <.   $€€ " , " ,! I  ,€€ 9 í$ !# $ 8¦$ !#  @ð?@�@$€€,€€    E      " # !  ' J €ð? €V $     '  " $!"   í ¹$ G J 0€ð?0€d–5555 L 5 5 5 5        4  8   €  ÿÿ      9 ðÿ:ßÿ €  Y Y Yƒ 65  þ   þ 7 ¬ x D c 5 €  € 7  p°�6 %  í& ñ' 8 *¤€‚ &  ÿ  D$Ç p°�6 %  í& ñ' 8 *¤€‚ ÿ ÿ ÿÿ  D$�A+€zDzD€;D€;Dð¿  ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!"#$p°�%&'()*+ ÿÿÿÿ!"#"$ÿÿÿÿ,-.¤€‚q t � �"" # # ! I  € K   € 3 $ $  * I   €J € O€è# ' I   €J €89$ ) I  0€))!I  0€)))!I  0€)!##!# !!# !# !O €J6 XP� J6 XP�Y9Çÿ€ð?€D@/ €à?-DTû! @00€"@&@333333û?@7@ÍÌÌÌÌÌì?12XP�™!³ í¬¹J @€!ã "I  $@€ ã L{ c   4  8  c     9 ïÿ   Ÿ  8 V  48O   "ÙEO T4(O1€ "$! %!  K @€$D. X@€  )!O€( ! )9±ÿ9 ªÿ:„ÿ34@€5$@€�íµ ÷ư>67@ð?š™™™™™©?X@€I@@�@à?®ã2Ñã í¬ í¹ íJ `€! 34`€Ö‚«ö¬ `M€´   M€ ´ c     ´ x    D  " I  $€€  9  D   Ÿ   ( ( J6  @ð€   ( J6   @ð€  Y ' J6   @ð€  Y  ( ' J6  @ð€  Y  ƒ  E   Æ   ´  Ž !89:5$€€Ð?6@ @12@ð€;<=ÛA«ö¬ `M€       MM c      E    x   Æ    l    \    ´   Ž  !89{®Gáz„?;<>?:=ƒ =K  «  ´ í  ¬"  $   D.  p€G ,E  A Æ  l� D� ÿ ÿ ÿÿÎ##' I  Tp€ D   �ÇŽ!:ð?34 p€{®Gáz„?;<>-.D�à?@/Tp€+A=  9G  «  ´ í  ¬"  $   D.  p€G (E  A Æ Ç @ð€ &  ÿœ##' I  Pp€ D   ÇÇŽ!:ð?34 p€{®Gáz„?;<-.@ð€à?B/Pp€+A=±bA @ @55T7@@F@FFF@ FFc @ FFF @ FFï@F@FFFFFFÆ@@FÉ@F5 6 6 7  |à� ÿ ÿ ÿÿ @ !FF 5 6 67 @ "F F FF  Ð#@ $F FF ¡%&C@DEFGH I !8ð?@-.|à�  J K ‘Ë gfx/env/lathe’jÔÆWEaroundrowsmathsqrtmaxcossinfirstcountTAPER_HITAPER_LOdetailtaperHitaperLochamberstickpuddle chamberLostickLopuddleLobuffercreatewritef32vertices GPUBuffernewsizeusagevertexdata immutablelabel candle-mesheshexcolorputxyzIDENTITYdiameterlength MAT_TAPERlightalphadripspanSTRIDEseedburntaperyaw MAT_METALMAT_WAXrequire gfx/env/buildbeeswaxivorytallowWAXfloorheightradiusfootHOLDERSbuildputTaper putHolder putPuddle  4'' '   '' '   ð?@@@@@`�HeLw( (  8 r($ ' ($ (8h#$'#$4''' '''4''' '''4''' '''4''' '''4''' '''4''' '''9˜ÿ9 Žÿ:ˆÿ ð?@-DTû!@@@@@j ,  OO      (   !!# # ! I  €K  €$$ ð?€•Ö&è .>€‰*Ì45(8 '     "   " # # !I € K  € 5 $ 3 $ 7  9áÿFFF(8� '        ' (8�#$'#$I   €I  (€I   €I  (€ #  # #  #! #! ! # !$ #!$" $ ##$#$ #% 4&''&'(& ')& '()''&'(&')&$' (%)#$ #% 4&''&'(& ')& !'"(#)''&'(&')&$'(%)#$ #% 4&''&'(& ')& '( )''&'(&')&$'(%)#$ #% 4&''&'(& ')& '()''&'(&')&$' (%)#$ #% 4&''&'(& ')& '( )''&'(&')&$'(%)#$ #% 4&''&'(& ')& '()''&'(&')&$' (%)9sÿ9cÿð?€•Ö&è .>€-DTû!@ €(€@@@@@)'I @€)') 'I @€)!) ' I @€) ! ð?{®GázÄ?ffffffæ?@@€ ×£p= ·?ÍÌÌÌÌÌ@@š™™™™™©?@"@« 0# $  ) ' I  P€ ) ')  ' I  P€ ) !)  ' I  P€) !#I  8P€#  I P€#-DTû!@ð?{®GázÄ?ffffffæ?@P€ ×£p= ·?ÍÌÌÌÌÌ@@š™™™™™©?@"@8P€®( # %!'ð?¶c# $   )' I  P€ ) ' ) '  I  P€ ) ! )  ' I  P€ ) ! #I  8P€#  I P€#( # % !'  ,   , !  , ! I DP€K PP€   $   $   $ 4 ' ' '   ' ' '     -DTû!@ð?{®GázÄ?ffffffæ?@P€ ×£p= ·?ÍÌÌÌÌÌ@@š™™™™™©?@"@8P€@DP€•Ö&è .>PP€@Ð-Ä5575757575 75  7 7@ FF4555 F   8 (  8 ( #%!' 9 ôÿ9 ïÿ (   8 Ì(  8 Ç #$  )' I @ð€) ' )'I @ð€)!)'I @ð€)!#I  `ð€#  I @ð€#'  #$  ) ' I @ð€) ' ) ' I @ð€)!)'I @ð€)!#I  `ð€#  I @ð€#'  #$ )#'"# I" !@ð€!) ! ' )#'"#I" !@ð€!) !! )"'!"I! @ð€ ) !#I  `ð€# I @ð€#""""""#"##""##"##" "##"##"!"#5"5%& '7%&5&' '( 7&'5''( )7'(5(') '* 7()7"%#$L"(&)&(,( #+,%,)!*+,''* ('!(((' ('!(( (' ('!((!(':"ïÿ9 9ÿ9 4ÿ FFFFFF (   8 ( 8   '  ' '    ' '   ' 9çÿ9 âÿìQ¸…ëÁ?ÍÌÌÌÌÌÜ?Ház®GÁ?ö(\�Âõè?q= ×£p½?Ãõ(\�Âí?{®Gáz´?¸…ëQ¸ž?R¸…ëQð?ð?-DTû!@{®GázÄ?ffffffæ?@@ð€ ×£p= ·?ÍÌÌÌÌÌ@@š™™™™™©?@"@`ð€©%^4"RR(8U)!'   '   '  '  '  '  ' ' ' " " " " "" ##"##"##"' ' !' !' ' !' !' ' !' !##!#! 8 ' ! '!! !'#!"# !"'$!#$ "#!" 9óÿ9«ÿ@ð?@2@@@ @"@*@,@.@@$@0@@&@1@(@ä  4R   ) 6U 4 R"@ �   d ùà?  Š  ù ‹   Œ   �  Ž  �  � ‘˜ ÿ55FFFFFF4R     d  ù6U4 R " R@ FF4R   ù6U4 R " ÿ FFF4R    ) 6U4 R " î FFF4R    ) 6U4 R "  FF4R   ) 6U4 R " æ @FF4R    ) 6U4 R " @FF4R    ) 6U4 R " ¯@F4R   ) 6U4 R " » T@�4)L ( )  ?7 5  @ A7 5  B C7 5  DE7 5 DF7 5F77 5"5G75HI75J 75K L75 ) 7 5  M .7 5  N O7 5  9 P7 5  Q7 5 R87 5ST75R/75%;75*+75UK75V775QW75PX75YZ75[ \75 ] ^7 5  6 _7 5   `7 5  : a7 5  Tb7 5 cd7 5ef75gh75ij75kl758j75Sl775Sm75m77!6p6uîn6v o¡w@x@y@z@{@|@ }FFFFFFF o~@ FF †€@ �FF :‚@ ƒFF D„…7@8+56 9@ÍÕjA:à—mA; s™kA <D@ÿÿÿÿ 2@ÿÿÿÿ š™™™™™¹?ÍÌÌÌÌÌô?{®Gáz´?ÍÌÌÌÌÌü?@\�Âõ(\@ ×£p= ·?ö(\�Âõ@š™™™™™É?�Âõ(\�@Ãõ(\�ÂÕ?×£p= ×@¸…ëQ¸Þ?R¸…ëQ@�Âõ(\�â?q= ×£på?áz®Gá@…ëQ¸å?š™™™™™@¤p= ×£à?ffffff@®Gáz®×?ü?333333Ó?®Gáz®÷?×£p= ×Ó?®Gázö?š™™™™™Ù?ø?q= ×£põ?{®Gázä?…ëQ¸…ó?= ×£p=ê?áz®Gáò?ffffffö?×£p= ×ó?�Âõ(\�ú?R¸…ëQø?Ãõ(\�Âý?ìQ¸…ëù?333333ÿ?¤p= ×£ø?= ×£p=@= ×£p=ò?…ëQ¸…ÿ?¤p= ×£ð?ffffffþ? ×£p= ç?¸…ëQ¸¾?ÍÌÌÌÌÌ@¸…ëQ¸®?×£p= ×@Ház®G@ìQ¸…ë±?)\�Âõ(@ffffff@q= ×£pÝ?®Gáz®ç?\�Âõ(\ï?áz®Gáê?ö(\�Âõð?…ëQ¸õ?×£p= ×ã?…ëQ¸…ë?®Gáz @)\�Âõ( @à?Ãõ(\� @ìQ¸…ëá?\�Âõ(\@q= ×£pí?R¸…ëQ@ÍÌÌÌÌÌ@®Gáz®@ ×£p= @= ×£p=@¸…ëQ¸þ?¤p= ×£@ìQ¸…ë@ ×£p= @= ×£p=@\�Âõ(\@q= ×£p@š™™™™™@333333û?q= ×£p@{®Gáz@no=>?@qFrAs$tqmrjs)t)A BCDE  ‘Ë gfx/env/books’jÔþ5'randmathfloorrangehexmuleuleratputBOOKabscossinminatan2tableinsertDEPTHSIDEWOODDARKPLINTHCORNICEROWBOARDclampbooksrowsunitssortframerngmaxrequire gfx/env/buildMATrunlowpile   @ 4 #I   € 4%'  &  ð? €×£p= ×ã?áz®Gáò?&1ò  @  4#I   € 4%'  &   @    &   @  @  @ )  1 ™  Û  ø)!)!) "  º ! "#$ %%%l&'()I  L € & ø)!)!) "  º !"# $$$l%&'( ™  Û  I  X €I  ` €  !  )3))#!#"#!#! ø !"#)% "$ %  º!"#$%&'( )*+ ,,,l-./0 ð? €×£p= ×ã?áz®Gáò? ×£p= ç?ffffffÖ?@X@-DTû!ù?à?   L €-Cëâ6? X € ` €0)  � & ! ((  @ ) ') [ & '  &   ! ! G @  ? &   J <à€ & J Là€)K <à€ !  !!!&" #$!" !!" #' !'! ¬! ª Y @ )I  dà€' &  ! ”8; & !!1 & " &    &! "# !  !"# %%%&& '(%"$ %%& '!' 9Åÿ'! O @    &  ! & " & #$J <à€ & %! #   & !"&"  !'  & '!! îþ (¸…ëQ¸®?š™™™™™¹?š™™™™™©?ð?@Ð?ffffffæ?¸…ëQ¸¾?)\�Âõ(Ì?š™™™™™á?333333ë?ô?<à€ ×£p= ç?ÍÌÌÌÌÌì?Là€áz®GáÚ?{®Gáz”?@@dà€š™™™™™É? ×£p= Ç?ffffffî?{®Gáz´?{®Gáz¤?¤p= ×£Ð?š™™™™™Ù?¸…ëQ¸Î?ö(\�Âõè?ÍÌÌÌÌÌô?R¸…ëQð?ìQ¸…ë±?ú~j¼t“ˆ?V‚‚‚‚ 5 0 0 0 0 7J4 €€™ )!)!à?¸2   ‚å  »     5F ÷)!))  ÷    � !!!@"!) !! "! ÷)"))  ÷    � !!!@"!) !! ")!) ÷#"  5  !"#$%&'(7J4 8Ѐ)! y)(  y � @)5 !"# $ %&'0()*7J4 8Ѐ)! £)"( ' £ � @)5 !"#$ % &'(0)*+7J4 8Ѐ ÷!! ÷" y £"' Z ¬!J p°�)! Â)") '  !!!÷# !" Â( ! " # $$$�% '''@(')&''('M  %(!* D. #ˆ°�  !"#"% &&&Â"$%&(% &'  "$! "$ e%' e%¤ÿ ·&' ·& (œÐ€@)L ø* !"#$% !!!º+"#$% &'()*+,- . / 0 1 !:àÿ,ŒRA 2Aà?I@Ð?{®Gáz¤?{®Gáz´?8Ѐ¸…ëQ¸¾?š™™™™™É?{®Gáz”?¸…ëQ¸®?ìQ¸…ëÑ?333333Ó?ÍÌÌÌÌÌì?p°�ð?@ @ˆ°�œÐ€ ‘   *  ½     “   *'I  @€J  @€ $  ( 8  #     9óÿ  à?ffffff @@€!@€ð?à     ½     “         Ï) ‚® “0   &       8 › &# &# &  # Û &  !   @ 4#I  @ð€ 4%'  &  @   & ™ Û  º &#!)!  & #! !" ###l %%%@&%)$%% &&&@'& '''@('! 9 eÿ  ð?…ëQ¸ À…ëQ¸ @ìQ¸…ëÁ?333333Ó?è?š™™™™™ñ?š™™™™™á?š™™™™™é?ffffffÖ¿ffffffÖ?@ð€×£p= ×ã?áz®Gáò?ffffffæ?š™™™™™Ù?-DTû!ù? š™™™™™©¿š™™™™™©?à? @X@ØZA @5»÷ ¬  y  £’5     7 !" # $ % &7 @'FF@(FFF@)FF@*FFFF@+FF6,@-FF˜.@/FFF×01"@#333333ó?¸…ëQ¸¾? ×£p= ·?¸…ëQ¸ö?š™™™™™á?à?$€…†VA‰[A€„…RABA%GA&3?A‡‹RA€ˆŽWA‹’ZA€HMaA@(?A¨EA:A AAŠŽ^A€‰‘RAMA)%OAÀKOaA€ŽWAMA€ŠÊZAFA%&' ‘Ë gfx/intobook’jÔÄBINDINGbookeyetargetdriftmathsinexeyeztxtytzfovradrollposefovYnewVectorxyzaspectnearfarrequiregfx/cam story/tunecamera   H  í W ü  ) I `€#) ) ' I `€#) ) ' I `€# ! ! !iH+ )! )! )!X¹ ûI \`€ûŠ®Gáz®×?`€à?š™™™™™ñ?ö(\�Âõà?333333ã?ffffff@�Âõ(\�Ò?  š™™™™™Ù?   \`€?     ÿÿ ð   ï 0€iH+ 0€X ¹   û   í W   0€   0€     %A @ @5@F6@FFFFy@          ‘Ë gfx/shadow’jÔÐC‹ downwardLightVectorxyzubodatalightpospcfGroupvsmGroup GPUBuffernewsizeusageuniformlabel shadow-light-buffercreatetableinsertwidthheightrectcutofftimeevilwindAwindB renderedPosrenderedTechniqueslots twinSamplertargetpipeline casterGroupcompareSamplervsm GPUSamplerminlinearmagcompare less-equalshaders/shadow_castshaderprint5shadow: shaders/shadow_cast unavailable, PCF disabled GPUPipelinevertexfragment vertexLayout depthStencilcullModenoneLAYOUTformat depth32floatlesswritedepth shadow-mapgetBindGroupLayout GPUBindGrouplayoutubosslotvsm-blurwritef32texturessamplersviewsamplershaders/shadow_momentsshaders/blur_vsmshadow: missing VSM shaderscolor rg16float vsm-momentsvsm-temp colorTargetsmomentstemp blurPipelineblurHblurV vsm-depthviewProj writeToBufferfarditherframeboiltravelStravelTsolidsdfRectsdfN sdfTexelPxsdfValidboilFreq boilSpeedboilWarpboilBiasunitEvil unitPaperloadOpclearstoreOpstore clearColor depthLoadOp depthStoreOpdiscarddepthClearValuebeginRenderPasscount setPipeline setBindGroupsetVertexBuffergpu QUAD_VERTSdrawfinishdistancerequire gfx/targetsgfx/camgfx/geom enableVSM bindTwinsupdatesetWindsetTimesetEvilsetLightrender isCurrentparams  <{®Gáz”?r ° € 5  8'6 4À€6 1ã ’ \`� & < ï J4   p°� 9Ùÿ61÷ÜÙ "!5     7  E%5     7  Ÿ&  <      ï†* 34 ƒ6 7  ¹+ 34 ƒ6 :  ~/ ; < M € >ÐC ?  A4„6 H šB ÉC  I ÌD6 O sE   P  KQ   , -  SR   L  T40…6W U56Y’±7V¾: ìÿZ€ÍÌÌÌÌÌÜ? ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   4À€ p@ ÿÿÿÿ\`�{®Gáz”?p°� !"#$%&ÿÿÿÿÿÿÿÿ ÿÿÿÿ!ÿÿÿÿ"#$ %ÿÿÿÿ&ÿÿÿÿÿÿÿÿ' ()*ÿÿÿÿ+ÿÿÿÿ, - . /ÿÿÿÿ0 '4 ƒ()*4565+,456589-./ÐC014„234567BÿÿÿÿCÿÿÿÿDÿÿÿÿEÿÿÿÿFG89:;<JK8LMN=>?@40…ABUVCX#ÿÿÿÿz P €6   , € $  ÷2 Ü3 *4 =5 6? 6 7 X:  ;  ¯< ò= ˆ@  AJ.K/0@LMNOP1 , €234Q567 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ89:+;< ',ð�()*!"#"? @,p‚AB)*C,-.ÿÿÿÿ RS=#$TUVI 2ÿÿÿÿ3ÿÿÿÿ4ÿÿÿÿ5ÿÿÿÿ6ÿÿÿÿ7ÿÿÿÿ89:ÿÿÿÿ;ÿÿÿÿ<ÿÿÿÿ=ÿÿÿÿW&²) €6S56 ` 6 ` 6 ` 756 ¹ò7�@ €AFG?CH ÿÿÿÿ@ ÿÿÿÿ@ ÿÿÿÿð?Iÿÿÿÿ!ð  FFFFMˆM#$&ï#ÌІ Ù <    ïï£&I&@ï H DK  0°€&D"DK  0°€&HjDK  0°€&…M6ïÙ L ñœP €ïH÷HÜH&ð?Z¥;A @ @ @5@F@FFFï@FFH @ ÷ @ FÆ @›@z@&@F¯@F€@K@Ÿ~@€� ‚ƒ„…† ‡ ˆ ‰ Š ‹  ‘Ëgfx/sdf’jÔŸ$T GPUTexturenewwidthheightformat renderTargetlabelviewNshaders/sdf_seedshadershaders/sdf_floodshaders/sdf_resolveprintIsdf: shaders unavailable (the shadow morph falls back to the silhouettes)nokseedPipe floodPipe resolvePipeaboutsampler tileBlock floodBlocks floodGroups seedGroup resolveGroup resultInBtileagerecttexelPx rgba16float sdf-seeds-a sdf-seeds-b rg16floatsdf-out GPUSamplerminlinearmagblocksdf-tile GPUPipelinevertexfragment vertexLayout colorTargetstableinsertgetBindGroupLayout sdf-flood-vec4dataflush GPUBindGrouplayoutubostexturesslotbuffersamplersmathmaxcolorloadOpclearstoreOpstore clearColorbeginRenderPass setPipeline setBindGroupdrawfinishrequiregfx/ubo bindAtlasesfreshcomputetick €6 ÷Ü�ã`  €ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ7 ‚ Ï´ oMMM€ P@6 � #ˆ‚6 , ÷$ Ü%  `-  € #ˆ‚6 / ÷$ Ü%  `-  ƒ #ˆ‚6 2 ÷$ Ü%  `-  » 4ˆ0ƒ6 8ò �9  :ù5”5$5    7 ÙMMM€ <ˆ°ƒ6 A š= É>5  Ì?5 6 B7  á@x <ˆ°ƒ6 A š= É>5  Ì?5 6 B7  á@Ù <ˆ°ƒ6 A š= É>5  Ì?5 6 C7  á@J 5R D  J4   GQ„ R DôÿK4   GQ„  Ù   SH    L S �9 I1 J&KЊ J&K uL”J4 GQ„$ NˆÐ„6R O56U±T±T7P56V+DO€€ƒ`-7QD4 GQ„: ¬ÿ4 + DO    ãW     P@ !"#ð?ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿˆ‚$%$ÿÿÿÿ%ÿÿÿÿ&'()*+&$ÿÿÿÿ%ÿÿÿÿ&'()*.'($ÿÿÿÿ%ÿÿÿÿ&0()*1)ˆ0ƒ*+,5676-./ˆ°ƒ0123=>?@&'&0@45Q„6789:;ˆÐ„<=>OPQ?@STÿÿÿÿS-ÿÿÿÿ<   GxxJMM€  €6  S 56 ù ±  ± 756`6  `756 ò ò7�+  €6  S 56 ù ±  ± 756 ã  ƒ € `6  `6  `756 ò ò7�Ò Ó!"; €<=>A6?@ ÿÿÿÿð? ÿÿÿÿ@ ÿÿÿÿ@ ÿÿÿÿ ÿÿÿÿ@ ÿÿÿÿ { Ó!�"   4ç x Ù J + ÒM M M M M €�J `€Ù Ù Ù Ù $$$$$î ù &  Ù Ù Ù Ù   $$Њ uù 656€`5ЊЊЊЊ7¡7Dq ñ †´ÿ$L/+O €ƒ!€656`5ЊЊ Њ!Њ7¡7Dq ñ†´ÿ:Ðÿ656»"`5@@7¡7Dq ñ †´ÿÓ#$%BC`€"#98:DEFGHIÿÿÿÿÿÿÿÿJKLMN@ð?!–'!ð?¿A @5o@@FFï@J@ | @ FÀ @ ‹O@P QRST‘Ë gfx/scene’jÔ“6„frame techniques albedoSamplerblock FRAME_SIZE paper-frame GPUSamplernewminlinearmagpcfvsmshaders/paper_shadername frameLayoutmaterialLayoutopaquecutout frameGroups materialsGPUBindGroupLayout groupIndexlabel paper-frame-paper-material-printscene: shaders/paper_ unavailable on this backend GPUPipelinevertexfragment vertexLayoutbindGroupLayouts colorTargets depthStencilcullMode sampleCountLAYOUTformatblend depth32floatcomparelesswritesrcColoronedstColorone-minus-src-alphacolorOpaddsrcAlphadstAlphaalphaOpbacknone GPUBindGrouplayouttexturessamplersslotviewsamplerpagespieces pcfShadowViewvsmViewpcfShadowSampler vsmSampler phosphorViewsubosbuffermaskViewaoView mapSamplertableinsertvec4dataviewProj writeToBuffer lightViewProjvec3wlightPos intensity lightColor lightSoftambienttimeshadowAcamPosencodepaperApaperBpaperCglowpageRectmoonDir moonColorbounceshadowB highlightrim moonshinehazeglowAircreasewindAwindBcharm charmColor charmLightfillgiltflushcount setPipeline setBindGroupsetVertexBuffergpu QUAD_VERTSdraw drawBoards drawCutoutsrequiregfx/geomgfx/ubobuildPipelines bindMaterials bindFrame writeFrame [6 � ô½54  p€6 ´57L:  1 M,46  Z   °�6   !1  ã    °�6 #  $1  ã  £5  "5  z  &PB '  (1 :Åÿ) p€      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ °�ÿÿÿÿÿÿÿÿð?ÿÿÿÿ"ÿÿÿÿPBV‡4 €6  š  É  Ì5  £7>56 �ö7á6sˆ M € !"#$%&' ()*+,-.{ 6 4 L FFFF           À:îÿ/0123456789q‡‡L4LDM!z  €6  £  5 6  ` 7  5 6  ´ ò7  �  ÎM!z  €6  £  5 6  ` 7  5 6  ´ ò7  �  Õ:»ÿ: €;<=>? ÿÿÿÿð?@ ÿÿÿÿAB� .d4L\P€«¼P€ 5  "MIMG ‹  L ?"  $€€6 56½±±7 56`6 `6«`6 `7 56#ò"6%R&ò"7�D4 ) p‚: Àÿ:£ÿ* CDEFG:$€€;H<= >Iÿÿÿÿð??ÿÿÿÿ@ÿÿÿÿ@ÿÿÿÿJ@ÿÿÿÿK@@!"ÿÿÿÿ@$"ÿÿÿÿLMN p‚­    0 OÇ é½&£I@I Ù€Þr �E E  E   í         j R °  0  ÙÀÈ$Ê Ð  0 ž à  0 â ð  0    0 (   0 `    0 m 0  0 ¼ @  0 & P  0 þ `  0 Î p  0 K €  0 " �  0 Ä    0 Ý °  0  À  0 þ! Ð  0 ä"57 à  0 E#57 ð  0 Ÿ$57   0 %57   0 L&57    0 €'57 0  0 O(57 @  0 \)57 P  0  u*½+PQRSTUVOWXYZ[\]^_`ab?cdefAMghijklmnopqrstË%4 M€" M MÀM zÎMzÕM€ABõ ^ 4  M€ " M   M  ÀM  z ÎM  z ÕM € MM€  z Î  & M$M "  ñ    †     †     d      d    g   ´    ABuvwxyz{� ‚` 4 M € " M  M  ÀM  z ÎM  z ÕM €  MM€   À z Õ  ( M &M $  ñ   †     †    d     d      g  ´    ABuvwxyz{•  h      ¶     |}©1A @ @5`ô@FFï@Fƒ@ 2 @ Ÿ @ F@Fi@@Fh@F¶@F´~@€�‚ƒ„| } {   ‘Ëgfx/contact_ao’jÔ™K GPUTexturenewwidthheightformat rgba8unorm renderTargetlabel contact-aoshaders/contact_aoshader GPUPipelinevertexfragment vertexLayout colorTargetsblendsrcColordstdstColorzerocolorOpaddsrcAlphadstAlphaonealphaOpprint*contact AO: shaders/contact_ao unavailableblockcontact-ao-mapvec4dataflushviewpipelinegroupsampler GPUSamplerminlinearmag GPUBindGrouplayoutubostexturessamplersgetBindGroupLayoutslotbuffercolorloadOpclearstoreOpstore clearColorbeginRenderPasscount setPipeline setBindGroupgpusetVertexBufferdrawfinishrequiregfx/ubogfx/geomstridestepModeinstance attributes float32x4offset bindAtlasrender [ €6 ÷Ü  M à€6šÉ  Ì5 6 6 ! ö7  á # B$ �% & ' &(   "H )"H) u* 60÷Ü `+  `+,�% 2ƒ6 6  ò/7€ ÿÿÿÿÿÿÿÿ    à€ ÿÿÿÿ  B !ð?"#$%&ÿÿÿÿÿÿÿÿ+ÿÿÿÿ,ÿÿÿÿ%ÿÿÿÿ-./ÿÿÿÿ'ƒ()*3454' 3M€ €6S 56 �± ± 756`756òò7�ä$+€,-./012 ÿÿÿÿð?# ÿÿÿÿ@& ÿÿÿÿ%I @656 ` `5     7  ¡7Dq  ä MM   ñ   †  d   ´ÿ3#45678ÿÿÿÿÿÿÿÿ9$%:;<=>?@W &A @ @556 56666 7J7@FFï@!@€A@BCDP@EFGÿÿÿÿH1I  ð?0@ @@@ @H@ JK‘Ë gfx/smoke’jÔû@�MAXSTRIDEgpudatacount GPUBuffernewsizeusagevertexlabelbuffercreatewritef32NSEG immutable smoke-strip shaders/smokeshaderprint:smoke: shaders/smoke unavailable on this backend (no hand)tableptsopacityfadeAfadeBfirmfirmFromseedwarmrootdepthnearpipelinepipeKeygroupblockstrip stripVertsstrandsnbackfrontUBO_SIZEsmoke smoke-back smoke-front| GPUPipelinefragment vertexLayout colorTargets depthStencilcullModenone sampleCountformatblend depth32floatcomparelesswrite GPUBindGrouplayoutubosgetBindGroupLayoutslotmathclampsqrtmaxmincossineyeflamexyzVEIL_RinsertsortviewProj writeToBuffervec3wencodelight intensityvec4 lightColor lightSoftambienttimerimsoftnoiseflowflush setPipeline setBindGroupsetVertexBufferdrawrequiregfx/ubostride attributes float32x2offsetstepModeinstance float32x4srcColoronedstColorone-minus-src-alphacolorOpaddsrcAlphadstAlphaalphaOp buildPipelinebegincurvelineinhalefinishdrawBack drawFront Þ Î#6  p€6 ã  @ð€&ÿÿÿÿÿÿÿÿ p€    ÿÿÿÿ ÿÿÿÿ  @ð€[  M€  @5 Þ#8 `€6v 9öÿ 6" � •#$�Õ]L %§ &z!' @ `€ ! ÿÿÿÿ        "#$%&'()*+, ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!ÿÿÿÿ-./0r   ;G1âM€â 0€6šÉ Ì56�  ö7á 6s M  ��6 S56 " �# ±! ±!7 ä$%1#20€ 3456789ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ:;<=>?"@��ABCD  !ÿÿÿÿ&%��§z*+,¤�L4�'�L� ú~j¼t“h?*)ð?ª   eÏÛ  <.   @€ - » 4 ”  ffffffî?EF@€²   H   �L4      �'  � L � M € v 8  ()''''     9 ðÿ e Ï  Û  <. 4À€  -  » 4 ”ú~j¼t“h?*)ð?@@@ffffffî?EF4À€¾K �L4 �'�L� M€v8(*()'''"#!"#!"#!'"#!9çÿ e Ï  Û -   »  4”ú~j¼t“h?*)ð?@@@Î3 ¥!) � 8™ L  v  8 �)'  '  '  3<.  $€€<.  $€€ 3",",!",!",",!",!  """ #$#%!#$%#$ !"#$I" ! ,€€!#&!!#%&!"$%K$% #<€€#,"# $ $!$#"!##'#!$'#'#!%'#' #!&'G)##()**"K*+ )L€€)#'()"($)&I '-' ,T€€,*,I',' +\€€+','-'.#1(*!01#1)+"/01#1(+#2)*!012/ ,% -0 .','/ . /*0"12D. / $€€/#-./- ,9 qÿ9gÿà?*)@ð?@@EF$€€G,€€UUUUUUÕ?H<€€�íµ ÷ư>333333ã?IL€€JT€€K\€€¸…ëQ¸¾?ä o Þ& Î#v8 ( ) !  @?@@A@BÉC@DÛE@FF@ GFFF ÿH@ I@ JF  (K@ LF  jMNh@i- ×£p= §?Qj @k ÿÿÿÿ:lDm \@no  ÿÿÿÿpð? @0@ @@@ @H@  !@P@ #$@T@ &'@X@ )*qrstuvwxy012345617385z{| } ~  €� ‘Ë gfx/figure’jÔï(�PADCROPscalewidthheightemiswmathceilhshaders/figureshaderprint2figure: shaders/figure unavailable on this backendcanvasviewtileslayout0layout1pipelinepipeKeyframegroup0group1samplereyesCarddrawn emissiveKeyGPUBindGroupLayoutnew groupIndexlabel figure-frame figure-artblock FRAME_SIZE GPUSamplerminlinearmag instancesfigure-eyes-card GPUBindGrouplayoutubosslotbuffer| GPUPipelinevertexfragment vertexLayoutbindGroupLayouts colorTargets depthStencilcullModenone sampleCountLAYOUTformatblend depth32floatcomparelesswriteemissive propertyKey beginFramesaveMat2DwithTranslationxy withScale transformsetColorModulation drawModulatedrestoreendFrameimagetexturessamplersDESK_PXEYE_PXresetpushkindsideseedmapUuploaddataviewProj writeToBuffervec3weyeencodevec4deskdeskTopwallXdoorZ0doorZ1doorTop wallThicktimeeyeQgloweyeClosedoor0door1flushcount setPipeline setBindGroupsetVertexBuffergpu QUAD_VERTSdrawrequiregfx/geomgfx/uboFIG_WFIG_HColorrgbasrcColoronedstColorone-minus-src-alphacolorOpaddsrcAlphadstAlphaalphaOp buildPipelinerendercardSizesetCard writeFramedrawEyeshide ( † U6¤–#I  $€€!!÷‰ #I  $€€!!Ü57u  $€€ ?   R^M€  @6 ²²M `p�6� M `p�6!@ �" ô#½ %`@‚6)ò Ç*+q� M -`À‚60.563 ½ ±2 ±27/w4    @ÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ  ÿÿÿÿÿÿÿÿÿÿÿÿ`p� !"ÿÿÿÿð?#ÿÿÿÿ $%&`@‚'()&'('*+,`À‚-..//012ÿÿÿÿJ @1�@âMMM€â P€6šÉ   Ì 5   7  > 5 6  �  ö7  á 6  s M1 2P€3456789:;ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿ<=>?@ABj‰²bM€6 ÷ ÷ Ü ÜbbM€þ¤ U «  M * E   4À€u™#"u˜#"  HÀ€#  Á   l    Ê  Ž  Þ   ‰ `M (€ É `  ` @M  xÐ�6 #  56& `7 !56)ò(ò(7 �"  *+CDEFGH4À€IJKHÀ€LMNOPQ,xÐ�-RS !"/$%ÿÿÿÿð?$'(ÿÿÿÿ€ JH U–# U‰#@T ¦ U ™"–$ ˜"‰$GUIð?J ¬‡G² ŸqM=¤ Uu÷$ u  ‰# ! Ü$ – #  ÷$  ‰3 #  Ü$  9  q   ÿÿ6   4 q V WXYZ[ð¿  \²q½&£I Ù@ü$ P     ` ? °  ©  pÞ kj  i € <  ðt  �            u½]^_`abcdefghijklmnopqÑ 8wqO M MM`M€ ñ  †  †  d    d   g  ´  rstuvwxá Ÿq‰Vð\A @ @5°ôXæxèÛJ5,ô76U† T@�ÿ@F²@FFFï6$@%FF“&@'FF€(@)F¨*@+Fi,@-FF .@/FFi0@1F 2@3Fï45y@z{%|}TUIÀg@JÀe@€k@ €a@ ~T@�€�‚ƒ„…†‡ˆ !"# ‰Š‹lŒ�Ž �   ‘Ë gfx/bloom’jÔñ L GPUTexturenewwidthheightformat renderTargetlabelviewmathmaxlogfloorclampshaders/bloom_downshadershaders/bloom_upprintbloom: shaders unavailabledownPipeupPipesampler GPUPipelinevertexfragment vertexLayout colorTargets GPUSamplerminlinearmagceil bloom-down-tableinsert bloom-up-block GPUBindGrouplayoutubostexturessamplersgetBindGroupLayoutslotbufferdownup downGroupsupGroups downBlocksupBlocksencodesrcWsrcHoutput lastThresholdlastKnee lastRadiusvec4dataflushcolorloadOpclearstoreOpstore clearColorbeginRenderPass setPipeline setBindGroupdrawfinishrequiregfx/ubo levelsFor pipelinesrender  €6 ÷Ü�ã6 ` ` ÷Ü €ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 5 %K €$K €'I   €þÿD.  (€!J €" &  ð?  €@ €à?  € (€= JMM€ 0@6  0°€6šÉ5Ì56� 7Ḡ 0°€6šÉ5Ì56� 7át 0@�6ò� 0@ 0°€ 0@�E Š �¸t ò5 5   87* I P€J  P€ * I P€J  P€     1J4   0°€    1J4   0°€9Éÿ558D �  1J4  0°€ D�6S56±±756O€(  ``756  ò7�D4  0°€9¼ÿ55(8K � 1J4  0°€(  '   D�6S56±±756``6"  ``756  ò7�D4  0°€9µÿ61 ># S$¸tÃ%]&r'ó($)™*†+ `7,2@ P€  P€ !"0°€#$%D�&'()*+,ÿÿÿÿð?ÿÿÿÿÿÿÿÿ@!ÿÿÿÿ-./01234567ð¿89#ÿÿÿÿ$ÿÿÿÿÿÿÿÿÿÿÿÿ%ÿÿÿÿ&ÿÿÿÿ'ÿÿÿÿ(ÿÿÿÿ)ÿÿÿÿ*ÿÿÿÿ+ÿÿÿÿ,ÿÿÿÿ-./.0.V ë>4 �î�î 8jO € ™ >(   ÷O € † >(   Ü r     & H H O €     & $    u  656>  ``57¡7D q ¸ ñà   † ´ ÿ9–ÿ( ÿÿ8_(    >  S'   ó     &  ÷H  ÜH      & $    u  656S  ``57¡7D q t! ñ ]"   †  ´  ÿ 9¡ÿ#-789ð?451:;à?3<=>?@ABÿÿÿÿÿÿÿÿCD/EFG.20— 6567 `5   7¡7Dq ÿ  =>?@ABÿÿÿÿÿÿÿÿ6CG¾A @5@@i@°@FFï @ F€ @ ° H@IJKL?‘Ë gfx/phosphor’jÔÊ&_steps CHARGE_RATE DECAY_RATEmathexpclamp rgba16float rgba8unorm GPUTexturenewwidthheightformat renderTargetlabel phosphor-viewtableinsertpcfvsmshaders/phosphor_shader GPUPipelinevertexfragment vertexLayout colorTargetsprintphosphor: shaders/phosphor_ unavailableMAX_CATCHUP_STEPSblockphosphor-step- LIGHT_SIZEpackedviewscurrent pipelinesgroupsblocks needsClearseedrecteRef softeningLIGHT_INTENSITY REF_HEIGHTgetBindGroupLayout GPUBindGrouplayoutubostexturessamplersslotbuffersampler intensityposVectordistanceopenabsdtcolorloadOpclearstoreOpstore clearColorbeginRenderPassfinishceilmaxMat4identitydata writeToBuffervec3wvec4cossinflush setPipeline setBindGroupdrawrequiregfx/ubo gfx/paramsnewLogcharge bindShadowrecordreset integrate 65t$  m# ¨! $" 3 # I  0€ # ! D. 0€�íµ ÷ư>0€0€* š5 8  €6  ÷ Ü �  1  ã    `  D4 <à€ 9èÿ55  7   L& 1  M   P�6 š É5Ì56�7á  ÐA  1:Ùÿ5   ¬"' ! 8   �#°$ 1D4 <à€ 9 òÿ  %  %# 6 3 ÷ Ü2  S& � X' °*5  + , Ù0  ø4 Ã5 Ã5#!  $  1 Õ2 6   €   ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ<à€ P�ÐA@ !"#$%&ð?'()*+,-.ÿÿÿÿÿÿÿÿ&ÿÿÿÿÿÿÿÿ'ÿÿÿÿ()*ÿÿÿÿ+ÿÿÿÿ,ÿÿÿÿ- ./0ÿÿÿÿ1ÿÿÿÿ2ÿÿÿÿ/0F ‡‡W° MMM€S5 8?5    L . 0€6 56± ± 756`6X  `756ò7� D4 d€�: ÑÿJ4   d€� 9Áÿ '1)2 0€3456 78 ÿÿÿÿð? ÿÿÿÿ@ ÿÿÿÿ%@9 ÿÿÿÿd€�(sXá %&Š `t4 MB r    2    Jõ   @€    v" I  (�€       4   ¬ '    ç! rç# #! $  r çv6  ç  r vJ4   D�ñh㈵øä>:;<=@€{®Gáz”?>?(�€@ @D��p*¨(XL6 5 6  `5  7  ¡7  Dq ÿ :åÿá p %ABCDEFÿÿÿÿÿÿÿÿGH&*¬* ‚·p    °     t5  tMM €   0  4 5  L +ç$ (I  p€J  (p€86ç$ç  r r vvJ4  D�9çÿ: Ôÿ Ù LÜ  ( 4%' 4Ïr  `p�   »'+»v D. tp€#  & !I  Ù! @! "r  " P!ç """m# ###¨$%%H$% " `! " $ % "#$%% & "$%& " p!"#$ " €!"#$ " �"S&"!!"»##$Õ' "  I " !) p€!I# "+¨p€"#$ u,á-G.6"05#6$7&X8 %&%$`15%&'()7%&%$¡67#$#"D/ q9 #! ñ:!# %  $%! †;!#! ´<!! ÿ=!á-':#ÿ>*'(�íµ ÷ư>@I p€J(p€;:> D�,ð?)ñh㈵øä>KL`p�°@+-DTû! @tp€MNOP-$.Q p€R¨p€S&@A/BCDEF1ÿÿÿÿ23456ÿÿÿÿ%GTUVH»,A @ @5@É@F¡@FFï @ µ @ ` @F@Ÿ@@FFFWW@XYZ[ \]^_  ‘Ë gfx/flicker’jÔ«fNmathsinfloorexptimeclocklevelbreath intensitybrightsizewidthleanXleanZbendswaygutterembersmokesmokeAgeflarewobbleXwobbleYwobbleZlit BREATH_DIRbreathXbreathZmotionXmotionZfeedbackfeedbackTarget feedbackTime agitationagitationTargetstrugglestruggleTarget agitationTaucoldcentre centreTargetgustgustXgustZ AGITATIONonsetfullclampcurve fightTake edgeStrugglemaxrelease setFeedbackabs RELIGHT_FLAREsqrt gustFluttergustLeandip struggleDipstretchthinpinchleanwobble centreTauedgeColdrequire gfx/paramsnew setAgitationsetGust feedbackPose setMotion extinguish setBreathDirstep))!I 0€)I  0€"PüsÑ]å@fffffÆ_@33333{s@0€0€n.I  €"#)G#) )! I  $€ ) I  € " G # ' ) )!I $€ ) I  € " # ! )( €@@ð?PüsÑ]å@fffffÆ_@33333{s@$€t  "3 $ I  €#!€|~5jŒ�Õr¶÷hm õ c û   EÄÂyÝŠß U+ UÖ0©˜êd¯“_ 2 !q"/#ª$=%ß&,'M()      !"#$%¸…ëQ¸®?&'()*+,ƒ ‚b <� _2q ´"  æ ´" $  D.  (�€# )  G #  & _M€  D.  (�€= ã$    D.  (�€) # )  G # '   îîG# ! #   2 _ “     q-{®Gáz”?¸…ëQ¸®?#%&./0(�€@@1)2ffffffÖ?�Âõ(\�â?3ð?"š™™™™™¹?333333Ó?¶ K €ß,M4€*+,É$ <<J 0€Â“_ 2 / ª =  -540€"#$%'()Ï# <. € ˜êd¯ê¯ê0€ü©ñÒMbP? !Ú "$D. €#I €,0€@-DTû! @€ìV˜ �¯¯F(*D.  p€ #I  0p€, (*D.  p€ #I  0p€, ˜) J  Dp€#˜)  ) ) I  0p€ #  ) () ) )' I  0p€ # ! #{®Gáz”?! ×£p= ç?�Âõ(\�Ò?0 p€@-DTû! @0p€áz®GáÚ?333333Ó?ö(\�Âõè?4Dp€333333@š™™™™™Ù?ffffff@é 13#D.  €3# D.  €K   € 3 * I   ( €G0  0 "  # ! 0 ©  © "  # ! © ÍÌÌÌÌÌÜ¿ÍÌÌÌÌÌÜ?0 €ð?¸…ëQ¸¾?4 €( €ú;�ß EdÄÂrû â “ _  2 /ª=ß  6"#$%'()*„+Ö•0 ѯK  €!¯˜êK   €" 3 * I  € # !˜j !j j <.  , €�  �     " 3 $ I  € # ! �  �  � Õ  <.    , €" 3 * I  € # ! ÕÕ� ) I  T € " #)G#) 'I t €)I  T €"G#' )'I t €)I  T €"#!)( ) )  I  T €" #)G#)'!I t €)I  T €"G#')'!I t €)I  T €"#!)( ) ! ) #I  T € " #)G#) '$I t €)I  T €"G#' )'$I t €)I  T €"#!)( ) "! ) &I  T € " #)G#) ''I t €)I  T €"G#' )''I t €)I  T €"#!)( ) %) )I  T €" #)G#)'*I t €)I  T €"G#')'*I t €)I  T €"#!)( ) (!  )-I  T €"#)G#)'.I t €)I  T €"G#')'.I t €)I  T €"#!)() ,( +J   € I  1À €)+'/# ) 2##!  D. , €  û3 û3G)4D.  , € # J   €  û3' ) 5#! ) %# "   P6Â7#! ,8# )G## J  €  r9):G# # J  €  ¶;,2)<') ('=#!) +#"#Â7)'#  >)+'/)?G#)%'#  ÷@ +AÖB# #!I D !€KEE  €$ $)FI  T €"#)G#) ' GI t €)I  T €"G#')"'!"GI! t € ) I ! T € " #!)()5'/#) :#!)II  T €"#)G#) ' JI t €)I  T €"G#')"'!"JI! t € ) I ! T € " #!)()H# !0K!hL)MI  T €"#)G#) ' NI t €)I  T €"G#')"'!"NI! t € ) I ! T € " #!)()#!©O!mPßQ QR N  #>#"#)$2)%!#$%#!"#! !!%# !" #!¥€# !)"('!"# !!#>÷@!l�# !)"%'!"%# !G#Ô‚#G#÷@hLƒ#)"…'!"„# !I " !T €!"" !#$"")&"G%&##$%)+!'*+†I* )t €))()I (*( )T €)"'()G(##&'(')!)-)',-†I, +t €+)*+I *,* +T €+"(*+#'(#!%&')$%($#)‡)!ˆI! t € # !!hLmPƒ#)‰)!…' !Š# I ! T € "! ##!!)%!G$%#"#$)* ')*‹I) (t €()'(I ')' (T €("&'(G'"#%&''( ),('+,‹I+ *t €*))*I )+) *T €*"')*#&'"!$%&)#$(##!mPõZõZ#)2) ! #!õZû3û3#I" !1À €!) !/' +#I" !1À €!) !' #D  €û3Œ^Œ^##!Œ^yd¯Œ#)�I ! T € "! ##!!)%!G$%#"#$)* ')*ŽI) (t €()'(I ')' (T €("&'(G'"#%&''( ),('+,ŽI+ *t €*))*I )+) *T €*"')*#&'"!$%&)#$(##!ydÝh¯Œ#)2)�I ! T € "! ##!!)%!G$%#"#$)* ')*�I) (t €()'(I ')' (T €("&'(G'"#%&''( ),('+,�I+ *t €*))*I )+) *T €*"')*#&'"!$%&)#$(##!ÝhŠj¯Œ#)‘I ! T € "! ##!!)%!G$%#"#$)* ')*’I) (t €()'(I ')' (T €("&'(G'"#%&''( ),('+,’I+ *t €*))*I )+) *T €*"')*#&'"!$%&)#$(##!Šjª“=”K   € •   "!3$$#$I # " €"# !"! ª“ )"–I "$" #T €#"$"##&$$)($G'(#%&')-#',-—I, +t €+)*+I *,* +T €+")*+G*%#()*'+#)/+'./—I. -t €-),-I ,., -T €-"*,-#)*%!'())&'(!&J !  €)+'/#]˜!]˜G !!ª“# !!#/™/™Â73*=I   €#Â7R ßšÂ7ßš ›EœÄ�ßš  ›EœÄ�ßš ›3*,I   €# ›Ä�!Ä�Ä�3*žI   €EœŸ!4 € )\�Âõ(¬? €0, € ×£p= ·?ffffffÖ?ü©ñÒMbp?¸…ëQ¸¾?{®Gáz¤?ÍÌÌÌÌÌô?T €@@ð?PüsÑ]å@33333{s@fffffÆ_@t €ú~j¼t“˜?333333@33333{ƒ@ú~j¼t“ˆ?ffffff#@ÌÌÌÌÌ8�@à?&@33333{“@Ð?1@Z˜@ÍÌÌÌÌÌÜ?š™™™™™ù?š™™™™™@ÌÌÌÌÌ8�@š™™™™™á?7À €333333ã?š™™™™™@)\�Âõ(Ì?8š™™™™™õ? š™™™™™É? š™™™™™é?333333Ó? áz®GáÚ? 9 !€�íµ ÷ư>ÍÌÌÌÌÌ@ÍÌÌÌÌ ¡@š™™™™™©?ffffffæ?33333{£@ ÍÌÌÌÌÌì?™™™™™ê¥@*{®Gáz”?-:333333@™™™™YßÂ@+;,333333@Z¨@333333ó?’ËH¿}]?ú~j¼t“x?ffffff@fffffɪ@a2U0*©S?ÍÌÌÌÌÌ@ÌÌÌÌÌ8­@33333¨¯@"#&$%333333Ã?-Cëâ6?@"@3333³‘¹@*@fffffɺ@™™™™¼@<333333û?š™™™™™ñ?=ffff¦§Á@…ëQ¸å?Ãõ(\�ÂÕ?š™™™™™Ù?>?@A@@ÌÌÌÌÌ8½@{®Gáz´?7@è?@€p¾@B333333"@33333¨¿@ffffff%@ÍÌÌÌÌ Á@š™™™™™ @3333óoÀ@()Cffffff@€CÂ@D'ÍÌÌÌÌÌ@›2A @56,<-@.@/@0@1Fï2@3F›4@5Ÿ6@7F< @8â9@:T;@<t=@>FÜ?@@ÚA@BFF†CDE@F.¸…ëQ¸¾?/ffffffî?1ffffffæ? Ãõ(\�ÂÅ?<áz®GáÚ? š™™™™™É?? ×£p= Ç?A333333ã?š™™™™™á?ÍÌÌÌÌÌü?B{®Gázd?>{®GázÔ?@ìQ¸…ëÑ?=à?5333333ë?3D333333Ã?C2333333Ó?;{®GázÄ?:ffffffÖ?   !"#$%&'()*+-GHI6 J K L M N  ‘Ëgfx/seat’jÔ«'WH SEAT_CLOSED SEAT_OPENeyetargetLEAN_INmathatan2sqrt basePitchbaseYawyaw BREATH_PERIODpitch BREATH_NODsinNECKcos BREATH_RISEBOBbobSWAY_X SWAY_X_PERIODROLLVectorxyzdirnewSEAT_FOVrad SEAT_NEARSEAT_FARrequire gfx/paramsgfx/camui/gaze story/tunecamera"#!+ ‚Å v i  R  K ü  ü " #!  ü  ü" #!  ü ü"#!   "#!!  "#!0!  "#!!  S#" #! " #! " #! " " " 33J  (�€##!I  0�€J  (�€®k!)) A$à! 0(I \�€#! �I \�€3I \�€!#! I  h�€3I  h�€!#!  [I \�€# 9?#"!  [)( I \�€#!  ­!)) ;"$I \�€#! I  h�€I  \�€3#I \�€I   h�€3# 5#)#)"# $$$A)#$$$!"#I! \�€ # I " !h�€!!I" !\�€!3 ! !'˜P‚I$ #\�€##"#I $ #h�€#I& %\�€%#$ %! "'˜P‚# $ % ""ü #'˜P‚$%&##( ###ï)$" %'˜P‚!& !' !( % '''¤*I' &,¬�€&$' (((- )))¸.*!#$#/-Cëâ6? (�€ 0�€   -DTû! @@š™™™™™Ù?\�€h�€à?333333ã?333333û?˜P‚¬�€ !A @ @ @ @5@@FFFFy "@#$%&'‘Ëgfx/post’jÔÊf shaders/postshaderprintpost: shaders/post unavailable GPUPipelinenewvertexfragment vertexLayout colorTargetsformatpipelinegroupblockwidthheightsamplernearest texSamplerpost ImageSamplerclampbilinear GPUSamplerminlinearmag GPUBindGrouplayoutubostexturessamplersgetBindGroupLayoutslotbufferviewdatavec4exposurebloomdreadtimegradegrainvignetteca sceneEncode bloomRangetonemapframeadaptGRAIN_REF_WIDTHmathmaxliftdither ditherLevels ditherGrainveilXveilYveildrinkinkDark ringColorveilTimeringAringBringGlowdrinkDimveilEdge veilFeather veilGrainveilFlowveilEaseveilGlowflushcolorloadOpclearstoreOpstore clearColorbeginRenderPass setPipeline setBindGroupdrawfinishsaveMat2DwithTranslation withScale transformimagesrcOver drawImagerestorerequiregfx/ubo gfx/paramsbindrender composite CM€  @ P€6 šÉ 5Ì 56� 7á 6 �À� °Aò °A·  ð�6$2% @P€       ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°Að�!"#"F  7 €6 S 56  � ±  ± 756`6  `756 2 ò7�ä÷Ü€  !"# ÿÿÿÿð?$ ÿÿÿÿ@ ÿÿÿÿ@ ÿÿÿÿ Y ä�& Wü � j –K ©  H   ¿ ²  ±  ` 0÷Ü ½ ÷ Ü$  @¤  g ÷K   XP� $  #  Pñ$ 0  `a! B 2Î )! p    ß" € A# `$ î% Ò& �    /'   1( å) ×* <+ ° ,    u-�ä.M€6 05 6 65  7  ¡57  D/q7 8ñ9  †: ´;ÿ<=%&'()*+,-./01$234ð?56XP�789:;<=>?@ABCDEFGHIJKL M/NOPQR12345ÿÿÿÿS TUVWe   ‚‚‚�C E 0 O €0 O €0 O  0€)0!)0! 0€  #  0€3)3)#  Á   0€÷ $ Ü $  Á   É  ·  ò   Ž Xð?YZ0€à?[0€\]^_`„A @ @5@Fï@j@FF€ @ à  a@bcdef‘Ë gfx/inspect’jÔËnumbercamFovVectorxyzcamXcamYcamZcamTXcamTYcamTZnewmathclampradWHSEAT_FARrequiregfx/cam gfx/paramsvmxcamera ‡Y `  € ` ` `   € `  `   `   ï  x<.   @ð€ I  Hð€  v  i$    ¸ €333333ÿ?\�Âõ(\ó?  q= ×£pÍ¿   @ð€Hð€{®Gáz„?A @ @ @5@FFFy@‘Ë gfx/outofbody’jÔÊ)READERbodyeyetargetliftarrivemathclampexeyezsqrtaimtxtytzfovradrollVector normalizedROLL BREATH_PERIODsinposexyzfovYatan2cosxyznewaspectnearfarrequiregfx/cam gfx/params story/tunecamera G# # # ) # # # ! ) # # # ! # # # !ð?@   ¥  À G ü  # l<.  `€ ! ! G ###) ###!) ###!###!i  ! ! G ###) ###!) ###!###!H  ! ! G ###) ###!) ###!###!+  " " "##!#!I 8`€G  ×&G #! "#"#!X#! "#"#!¹#! "#"#! ûI T`€"#!ûG #Š`€ð?@    8`€ T`€†ü "Iû  € 5) )   A ) $ I  , €#    ™ ˜ › ™ ˜›ð  X i"   +" 3 3 J  X € I  ` €  I  , € 3 h €ŠI  , €# ŠI  ` €ŠI  , €#    ï h €iH+ h €X¹û !"#   $ €-DTû! @@333333û?, €  X €` € h €! "#$6A @ @ @5@@F6@FFFFy%@&'(       )‘Ëlayout’jÔš•ËBOARDSShadowSIZESboardtwinx0y0x1y1whposepointXYZleftPage rightPage transformpanelskey mechanismrisetableinsertpanelpiecearttonecastsvisiblereceivesdiscroleclipToPageEdgepaperPAPERnamesupporttoLocalmathsqrtatan2gluehost poseThetawidthheightmin TAB_DEPTH PAGE_WIDTH PAGE_DEPTHaddTabxyrotationlayer.tabGUTTERscale newSpreadalphaaddVFoldz0betawidthAwidthBvfoldcreateneck.neckABtabsPXPLACElamb twinBoardtreecottageDOORhingeaddFlap cottageSealtostringleftrightConfessionShutterssealfencewardrobereaderREADERcardmoonMoonpxpyslotDropliftcossintabOut addPullTabpivotpinFrompinTotabmodeliftAxisPullTabClockclockbottomflat addVolvelle clockDialcenterradius ClockDialdialbyNamepagesspreadchapterSpreadspieces pieceByKeyvalueschapterturnmechanismAngles paperProxposeTime poseChapterleafU leafAngle turnClock readerSpreadfinaleriffleonfromnuqdrawcurrentfreedT REVEAL_REST PAGE_TURNBINDINGclampriseFoldriseSinkmaxbyKeyquivertheta presentationfloorsheetsrigid UNDER_SHEETtimeclearfreedprox cottageSeal1 cottageSeal2valueLIFTrequirefold story/puzzles story/tunegfx/leafradWitnessOath Confession Sacrifice Coronation WitnessShadowConfessionShadow OathShadowSacrificeShadowCoronationShadowPageLeft PageRightCover TurnFrontTurnBacklamb.Alamb.Btree.Atree.B cottage.A cottage.Bfence.Afence.B wardrobe.A wardrobe.BReaderreader.Areader.Bbuild ( M1A ƒ b 6 “S‡†–‰     ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿæ  ƒ6“S¦§‡†–‰    ë;   48. ô    '    8O €  æ  V Á " #  " #!  " # !     9áÿ9Òÿ  ð?÷ 1ÆFFFFFFF        8 ! )    9 öÿ     à?õ  ƒ6J“SXP5Æ J4  p€   p€ž  „+6pJfe9Y  Z  � J4  L �ÆJ4  L � Z ! ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ"#L �¥ ‚  0$ð?»  $ ô  ¦ #! § #! Ý   %Ë e $ ô  ¦ # !  § # !  Ý     $ ô   ¦ # !  § # !   Ý       ""# # ! I  @€$$ " 3 # " # !      33     J @€   %&'@€(@€Ø+ ‚‚‚ç÷H ‡ ¦"  † §" # # ! I  `€ 0  .   F FFFFF F 1   ô ÷) Ü)  Ý 1 " #J P`€F FFFFF FFF! " (8_ 5!5$%&7$%5%&'7%&5&' (((õ7&'5'( )))õ7'(7!$"#L!)%#()!'()%#()"&'(*%#)*!()*%#)*!'()(&( )))(()( &('( )))2(() (' :!àÿ "!#% "& #$%&J#$ "P`€"!"'(!"#!!"#$%&9¡ÿ °6"!Z"#1 !" ZH™˜÷  õ Ü 0 $ õ! !Æ% !!"&#$'()* &'`€+š™™™™™©? à?,-%-DTû! @ú~j¼t“ˆ?333333Ã?.P`€/ú~j¼t“x?01¸…ëQ¸ž?ü©ñÒMbp?2#3456 !7ð?$ Ä ƒ„Û © ¤0 PM€ J4  @€6I  Ï 6  Z  ¤  ¤  6 ¡  j #  j  W #  W  Ü#  Ü       e Æ  L 6        # #6“S¦§‡†–‰�MO t@€4L#:ýÿ�: Éÿ M A #  # ÆL4O€÷ "  °!6()O€*+1Z H"™# ÷  ÜÆ  ,-  ! :Ëÿ Æ L z.   ##: óÿ   /8ð?9:@€;<#=>?@-  A   !Bt@€C,2*346ð¿ ÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿ$% ÿÿÿÿÿÿÿÿ&'DEF$G€&� , Á P55555FF FFF F  FFF  FFFFFF F   (¢ å   (U å   (d å  æ÷ æJ Æ L6 è  6I? €A1Z HO€÷ ""™÷ O€J  Æ ())6*¦"‡%–(+:Éÿ , (, å,  - (›- å-  . À/“ À/{0 +1 b2 3#T#d4E5‹6"yÿ#7!I 68"™˜68I  ;è�ƒ#I =ð�ƒ$"™˜™(>¶?!" µ@6HVIH68™˜þAúB)C6K™(L˜÷ àD6M) N" ™˜÷ ÜfE13 1!D #*O !Æ  !G"P6!S"!¦"!–("D#$ÏT  "Æ !"#6"V#"‡%"–("‰)#W$% b2lX## è 6[æ\HŒY™™ŒY˜˜÷ ÜYXY] Æ  b2lX6^‡%†&–(‰)W9_ Î`6dÆ H68‚#™(e#˜ÊbR#Qc Æ ¤#¤#6j–(‰)klL ±mLPn±m:úÿ:óÿ ±mLPn±m:úÿ6ƒ.o¡pÆ Õq±m3r6„Âs5Šx5Áy «€6Œ5”‰5�Š5´‹é‚�HI:JKLMN,OP#*349´Èv¾Ÿª?-q= ×£pÍ?6@ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿQR€Að?STi@U €k@   !"ÿÿÿÿ#$%ÿÿÿÿ&'(ÿÿÿÿ)VWXYZ[\]^_`a&bè�ƒcð�ƒ{®Gáz„?defghijk 1ÿÿÿÿAÿÿÿÿBÿÿÿÿCÿÿÿÿDÿÿÿÿEÿÿÿÿF7G${®Gáz¤?ÿÿÿÿÿÿÿÿ ÿÿÿÿJ{®Gáz”? à?š™™™™™Ù?‰@lT@Q !"ÿÿÿÿ#$%P&R(ÿÿÿÿ)J @u@3 !"$#$%ÿÿÿÿ&U(ÿÿÿÿ)ÿÿÿÿmno Yÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ ZpX !"$#$%ÿÿÿÿ&ÿÿÿÿ(ÿÿÿÿ)ÿÿÿÿqrst aÿÿÿÿbÿÿÿÿcÿÿÿÿ@a@uH@L@€j@f !"g#h%i&'(ÿÿÿÿ)ÿÿÿÿvwxyz{|}~ð¿€�‚ƒ„…†"À‡ˆ‰oÿÿÿÿpÿÿÿÿ ÿÿÿÿqÿÿÿÿmÿÿÿÿrÿÿÿÿsÿÿÿÿtuvwxÿÿÿÿyÿÿÿÿz${|w}$~€ÿÿÿÿ�$‚ÿÿÿÿ1$Y$a$Š‹Œ�Ž�…†‡$ˆ$‰ÿÿÿÿŠÿÿÿÿ‹ÿÿÿÿ ”+I  €I  €ÆL Á   8 ) '  '  '##"##!  9 ñÿ !  :çÿ &b€c €ð?@¨# áÕ4 ÷ÿÕ( . " x$ ÷ÿ�{ð?‘’“ÍÌÌÌÌÌô?¸= í<. €#)G#(* D. €#) G  #  ¯ ¯G # ! #  1  «   " )        «  ¶3G #  ”&•€@@š™™™™™é?š™™™™™É?–ð?+‡à?�íµ ÷ư>+‡ÙÎ÷ï?—Ñ 6 Û" � O€  � ' � �' "K P€' �‹ŒŽð?&˜P€™""$D. €#)G#&•€@@´ Á 0�Ç M  `™šÈ. ‚„ž     ÿÿM  ž      M        ÿÿ éM é� ¶M� ¶}ÛI  `€D.  $`€� Û � �8M 0  ”  � ü<.  $`€#  '9áÿ �8. ”  ´ ! O ” (  �  ” ' 9Òÿ Û  O € ”  �  Û �!  NMP  À   3àÆL :ýÿ   1«  P g5 !"#$7M á%M% á%Õ&4 ÷ÿÕ&( .' (" x)$* ÷ÿ÷ÿÜ+ ¶÷ÿÜ+  ¶ Ü+D.  $`€ÿÿ™,™,  ü™,#’-F FLd  ¶5 Û" � !O € � ' � �' "K  /¸`€' � ‚0  ’- ‚0( ’- ‚0"3 ÆL :ýÿ:›ÿ5127L 3 ÆL :üÿ:òÿÂ3@4M j5á6"7D.  $`€Mj5á6Î8  ;è�ƒÁ< Î8L2M= v>.'(! * !?!"D.  $`€# )"AG!@"# !GîBÁ< 0 Á< C  " 3"*!"D*"ED.  $`€!:ÍÿFFÁ<d"0 +1Œ2lF 1.G( D* J !D.  $`€#)!AG @!# )I'HI M=d"`L)K!(!N* !M!"D.  $`€# )"AG!@"# !)I'HI M=d"`L)O"¡PLŒ !"# ¶#4' Û"&''&'' � '&#$%"O& €'( � '(&')&* �)*) �'*& ()*("*'(K* + )/¸`€)#)$(')&* �)*%% #!$"%## #’-($$" #!# # ãQR ###1$% &#O@€%#$8#'±S)TI?%+% *VPE*1()* &'( '()&* +&ÌW ,-X''&ÌW9#êÿ# ¶# " # $%! &&&˜Y### (## # $%! &&&˜Y#:sÿZ›œ‰ŒŠ‹&�`€•$`€ž�ŽŸð?�à?ˆZ~ü©ñÒMbP?|Y+‡ÙÎ÷ï?+‡JLMWX�{‘’“ÍÌÌÌÌÌô?†„…˜¸`€ \n}¡‚š™™™™™¹?ƒ¢è�ƒ�™£š™™™™™á?@@¤®Gáz®ï?333333Ó?333333ë?ry6@Y@q= ×£pÝ?333333ó?šR¸…ëQØ?áz®Gáâ?š™™™™™é?z¥¦wQRPE§ú~j¼t“h?¨àñA @ @ @ @5 `€ , 6(@Få6'5� ,7Á 5� ,7è5¤ ¤7#5¤ ¤7j5| ô7‚5| ô7/5 Ü7m5 Ü7â5à à7Ð5à à7K5ð |7 5 �7l5è î7Ô 5è î7¨!5è î7K"5è î7e#5è î7½$5  P7¥%5� Ü7_&b(6+66+)6:Œ*Á;55< = > ? @ =@ABCDCEF>G7H I J K < L7+M5 N O N O PQRSTUVWXYZ7[ \  ]7Ú^5_ ` a  b bcdefghAij7k j l m _ g7©n5  o  p qrstuvwxy[y7z { | }  ~7�5€ � ‚  ƒ „�„…†…‡ˆ‰Š7€ ‹70Œ5 � Ž � � ��‘’“”•–—˜7¿™5š › œ � ž oŸ ¡Ÿ¢š¢£¤¥7­¦5 § ¨ © ª «¬­®¯°±²³´µ7¶ µ · ¸ ¹ º»7 ؼ5½ ¾ ¿ À Á ÂÃÄÅÆÇÈÈÉ7Ê Ë Å Ì Í ÎÏпÑ7 �Ò5  Ó  Ô ÕÖרÙÚÛÜÝÚÞ7Ø ß à á Ô yâãä7 åæ6ç6ò5  F  J ,óï7 eð55  ô @7 5   õ7 7 zñ¢ 6û5    ^ ôüú7 eð55  ý ø7 5   þ7 7 zñU 65    ¤ ¤7 eð55   „7 5   7 7 zñd6 5     Ü 7 eð5 ô 7 65    à Ç 7 eð55   È7 5   7 7 zñ›©õ‚6æb(50 �7Àæ5     ¢¢7 "!æ5     ¢¢7 á"@#F@$@%F@ &FFFF o'@ (@ )FF5   æ÷æ÷@@7 @ *FFF @ +FFFFF FFFF F  ,­©@ª«¬­&®`€¼yªCn†K?HJ¯L°M±W²X³ K´µ¶·¸]m¹º»¼½lU  !"#$%&\n)*^�Âõ(\�ê?_)\�Âõ(Ü?`¤p= ×£À?aI@d¸…ëQ¸®?,-./0123453ìQ¸…ëÁ?47895IaÃÓ+e©?-Cëâ6z?>yX¨5Í»?a2U0*©s?q= ×£pÍ?ΪÏÕVìÛ?;pΈÒÞÈ?ÙÎ÷SãÝ?,Ôšæ§È?Õ h"lxÂ?%�•C‹Ü? µ¦yÇ)Ú?RI�€&¶?¡Ö4ï8E×?)\�Âõ(¬?±Pkšwœ²?MóŽSt$‡?¾ Òo_Îy?È?ü©ñÒMb�?io�ÅÇ?KÈ=›U¯?BÏfÕçjÃ?¡g³êsµÕ??5^ºI Â?‘~û:pÎØ?¼?Ƽ?9ÖÅm4€Û?˜nƒÀʱ?>èÙ¬ú\Ý?¹�ðH�?_˜LŒJÞ?EGrùéÛ?¿@¤ß¾œ³?¹ü‡ôÛ×Ù?ÐÕVì/»·?š™™™™™Á?vàœ¥½Õ?mV}®¶b¿?é&1¬Ú?Ÿ<,Ôšæ½?“:M„ Û?–² q¬‹»?ÐDØðôº?Tã¥›Ä Ü?¼?¶?†§WÊ2´?Ãdª`TRÛ?À“©‚QI�À?ºÚŠýe÷Ì?>èÙ¬ú\Ñ?^KÈ=›Å?¬‹ÛhoÙ?‰ÒÞà “¹?².n£¼Ý?ù g³êsµ?ŒJê4Þ?�St$—ÿ ?C­iÞqŠÞ?Ǻ¸�ðv?\ AñcÌÝ?ŒJê4a? ž^)ËÜ?�Å�1wÕ?ÁmÅþ²{ò ?/n£¼R?o�Å�¡?aÃÓ+e¹?Ð?ã¥›Ä °Þ?V-²�ïÏ?‘z6«>·?X9´Èv¾Û?MŒJê¤?­ú\mÅþÒ?_ÎQÚk?Â’ËH¿}M?æ?¤ß¾Ì?Kê46Ì?ü©ñÒMb`?/n£¼r?œ3¢´7øÊ?Wì/»'Ó?]ÜFx Ä?:#J{ƒ/Ü?ù1æ®%äÃ?lxz¥,CÜ?)í ¾0™Þ?Ãn£¼”?Ø�sF”öÆ?ŒJê4¡?§èH.ÿÁ?R¸…ëQ¨?aTR' ‰°? +‡Ù¾?‹ýe÷äaÉ?š™™™™™Ù?�1w-!Ô?kšwœ¢#©?;M„ OÏ?Än£¼„?ÛŠýe÷äÉ? q¬‹Ûh°?ŒJê4Õ?°çŒ(í½?jÞqŠŽäÖ?mÅþ²{òÀ?°rh‘í|×?vàœ¥½Á?¹�ðHØ?¶óýÔxéÆ?åÐ"Ûù~Ö?‘z6«>Ï?Õçj+ö—­?6«>W[±Ó?w-!ôl¦?z6«>W›?ðHPüÓ? “©‚QI�?U0*©ÐÐ?J +‡É?źI +‡†?( µ¦yÏ?M„ O¯”?A‚âǘ»Æ?gÕçj+ö§?ÿ!ýöuà¼?VŸ«­Ø_¶?2æ®%䃮?ÄB­iÞqÂ?ÞqŠŽäò�?Òo_ÎÉ?š™™™™™Ñ?Þ Šcà? ‰°áé•Ê?Tã¥›Ä à?_˜LŒÞ?-²�ï§¶?+‡ÙÎÛ?õ¹ÚŠýe§?¨ÆK7‰AØ?¨ÆK7‰AÔ?Ʊ¿ìž<,´?L7‰A`åÀ?X9´Èv¾�?ˆc]ÜFÈ?ïÉÃB­i®?¶„|гYÍ?§èH.ÿ!½?8øÂdª`Ð?¸…ëQ¸Æ?L7‰A`åÐ?ÒÞ ŠÏ?±¿ìž<,Ô?R¸…ëQØ?Grùé·Ç?¬Zd;ßÛ?ŒJê4±?�1w-!à?³{ò°Pkà?Ç" =Ñ"Ûù~j¼¿;Y@?@-¸…ëQ¸Þ?Gèéêëì@í@îïðÿÿÿÿñÿÿÿÿq= ×£pÝ? ×£p= §?R¸…ëQÈ? /Ý$Á¿[@3ı.n£Á?)ËǺ¸Í?¤p= ×£à?èöê÷ìøíùîúðÿÿÿÿñÿÿÿÿ®Gáz®×?+‡Ùη?P�—nƒÀ?!°rh‘í¼¿Z@\�Âõ(\ß?èÿêì„í„îðÿÿÿÿñÿÿÿÿà?¸…ëQ¸ž?Ñ"Ûù~jÌ?“V-²¿oƒÀÊ¡Õ?Cèêëì¢í¢îðÿÿÿÿˆÿÿÿÿš™™™™™é?yé&1¬¬?ìQ¸…ëÁ¿ïîîîî®à?9ÍÌÌÌÌÌì?è êëìÈíÈî ðÿÿÿÿñÿÿÿÿŽš™™™™™á?+‡ÙÎÇ? ×£p= ·?8{®Gáz”?/š™™™™™¹? O{®Gáz´?,‹lçû©ñ²?™›NÈìQ¸…ëÑ?ÉÊ Ë   ‘Ë gfx/holder’jÔ�=mathclampCANDLE_DIAMETERCARRIED_DIAMETER CANDLE_LENGTHCARRIED_LENGTH CANDLE_STUBmax CREST_GAPfloor waxLength waxDiametertopbasepanY panDiameterringXringY ringDiameterr0fullstubradiusresetcylspheretorustaperlathespillshapeyxzputTaperdiameterlengthseedburnspandriplightalphacolor CANDLE_WAX putHolder CANDLE_BRASS putPuddlehexputeuler MAT_METALaabbturnrequire gfx/env/build gfx/env/lathe gfx/paramsHOLDERSchamberwritet<. €(*D. € %  ý  %" #! æ    æ" # !  n # )  J  ,€"  <.   € # !  ò " " )  #  " #  6¹] ¸ N Ñ Q## ¸ Q'# å# ! ·# · ¼æ3 ¸…ëQ¸¾?€)\�Âõ(ì?333333ó?,€ à?     333333ë?ffffffò?," � Ÿ Ÿ™ ŸÇ™PàM  Ÿ  M  Ÿ  M  Ÿ        ž  ˜     ™  ›  ¼ M/  †6 ™  N˜  ›  ]\ ¹�<. "„‚• æ# 3$"¸6 ò%D M  :&  Ñ'  ( Š)*+ M  D,-# "  Ñ'.# !/# ! 0# 1# 2 ò%34   5 Š)  ·6 º7Ç å8!  ·9 Û:;  Î<= >! B? Q@(-# !  Ñ'=# !A# "  å8! B# " Ñ'C# !A# !   Î<=D M"5™Ç7LM gE™ ˜ › :ðÿFü©ñÒMbp?{®Gáz„? !"#$%ÍÌÌÌÌÌì?&33333³7@'()333333ë?*+, ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  „‚-.š™™™™™Ù?/×£p= ×ã?ÍÌÌÌÌÌ@0Ð?333333Ó?ffffffÖ?ffffffþ?š™™™™™¹?ÍÌÌÌÌÌô?ÍÌÌÌÌÌ@333333ã?123-DTû!ù?4à?333333@5{®GázÄ?ffffffæ?…ëQ¸å?ffffff @6D%A @ @ @5¡îò@ FFFž @ FFFFFÒ  7@89:;<;ßO�—nr? =‘Ë gfx/env/room’jÔ­kmDOORWAYDOORxz0oxnxaxoznzazmathfloorPENDULUM_PERIOD PENDULUM_AMPsin HALL_PATHclamp doorToWorldFLOOR FIGURE_PATHWINDOWx1x0MOONsqrtaabbminmaxdoorDirToWorldrodz1CEILX0X1Z0Z1WALLhexboxPLASTERWOOD windowRadiusspringdoorwayXPANELtopsillcosGLASSHALLceilFABRIC HALL_WINDOW LEFT_SHELVES DOOR_STOPy0reachy1runlow GRANDFATHERzwidthDEPTHcylBRASSbooksrowsunitsbuildrequire gfx/env/build gfx/env/booksMATunderDESKbartransomcentre azimuthDeggap worldToDoorworldDirToDooratan2degdepthdialdialRCLOCKCLOCK_UP CLOCK_NORMALpivotEYEyawseatbackCHAIR CHANDELIER secondAnglependulum FIGURE_STANDtableinsert BOOK_SLOT BOOK_LAND hallPoint figurePoint moonTraveldbox % Ä æ™" æ¤"g f# !  u# ! % $# !  7 # !    N % Äg"%" æ™ f#  !  $# !  æ ¤ u#  !  7 #  !    U  Äf#u#!$# 7# !  \  Äf#$#!u# 7# !  b )'I  0€+*#-DTû!@N@ñh㈵øä>  0€‹ $+ f#I @€#ð? -DTû!@ @€� y y4<. €  < v €´ £ £4<. €  v €¹ ̇¦")à?¿ š##!#!I €$$$ €Ä%‚‚‚‚F < < BJ  €J  €J  €J  €J  €J  €  ! " # $  € €Ú2‚‚‚‚. < < ‹    ä !"#$%&'()* + ,-./01ã$ æ <™¤ <™…J P€J  P€  P€ P€íFë v Ž Æ § Ä ¥ ^    B  ‡ " ( "!!  v        B ‡ ""!' !   ²  '(  B ‡ ((' �)!' !!"''ãÿ B ‡ (' � !" B ‡ (( � !"  Ì r!Â"! æ# $ B ‡ "" (! "#$%& '''÷%(&)'*( B ‡ ' " !¦)"#$%& '''÷%(&)'** B ‡ (  ¸+' " '! "#$%& '''÷%(&)'*, B ‡ ‡-" !!"#$%& '''÷%(&)'*. B ‡ ¦)" !‡-"º/#$%& '''÷%(&)'*0 B ‡ ¦)" !‡-"#$%& '''÷%(&)'*18V!3# !* 2"3'##!"#* !2#¦)!"#I % $6Ô@ƒ$##$"!"#$¦)!#$I & %6Ô@ƒ%#$%""#$$Â"I' &8Ü@ƒ&#%&!#$%%Â"I ( '8Ü@ƒ'#&'!$%&J#$&#'$ %:ä@ƒ% &&&B '‡ J!")!*" (<ì@ƒ()%"*J!",!-" +:ä@ƒ+,-./0 111÷%2&3'4=&9ªÿ B ‡ ¦)º/" !‡-""$'#$>$%& '''®?  @ B  ‡ "¦)(!"A"º/"#$¦)%Â"&'() ***�+B,C-D. B  ‡ !‡-"º/"#%‡-'$%A%Â"&'() ***�+B,E-D. B  ‡ "¦)(!"F#º/("#G"#%‡-'$%F%º/'&H'() ***�+I,J-F.  K """B #‡ %¦)($%L%º/&'¦)(Â"')D*+ ,! ---�.I/M0 1" """B #‡ $‡-%º/&(‡-''(L(Â"')D*+ ,! ---�.I/N0 1"$" #8"J'3#&'$*%&O(3')$#'()*&'O''P+¦)!*+I %-% ,6Ô@ƒ,#+',!(*+*Â"I%-% ,8Ü@ƒ,#+',!)*+-¦)!,-I &/& .6Ô@ƒ.#-'.!*,-,Â"I&/& .8Ü@ƒ.#-'.!+,- ,,,äQ-‡ .(/)'01*2+'34L5D6789: ;! <<<�=I'>$R? @,9"¶ÿ """B #‡ "$%"&'(!)*+, ---÷%.&/'0S" """B #‡ $%"&!'(!)*+, ---÷%.&/'0T" """B #‡ "$%&!'(!)*+, ---÷%.&/'0U" """QV ###$W# &&&'X& )))*Y) ,-‡ ."¦)(/ 0"¤Z1"‡-23"…[4#5$6% 777v8\9], ,-‡ ."¦)/"±^0"¤Z1"‡-3"±^'23 3"…[)4&)5')6( 777², 5,/ÿÿ07,/-.L,[2 021"¤Z1"…[ 23‡ 4"¦)5(61_7"‡-8_'91_:);*<+ ===÷%>?`Aa!@A02 23‡ 4"¦)5_(61P7"‡-8"±^'91P:&;'<( ===²2  23‡ 4"¦)5b(61c7"‡-8d'91c:#;$<% ===�>e?f@g2 23‡ 4"¦)5(61c7"‡-'8G'91c:#;$<% ===�>e?h@g2:,¤ÿ ,-‡ ."¦)'/i0j1"‡-'2k3l4m5n6o 777¶p8q9r,5,/s07,/-.L, 12‡ 3"¦)'4n(50t6"‡-'7t'80t9u:v;> <<<�=e>1:,ëÿ.,-8,È)0.xG/w0503ÿÿ470312L036y)74z!567 67‡ (8/g9(:5_';/g<{'=5_>#?$@% AAA²6  67‡ (8/|9}(:5d';/|<~'=5d>&?'@( AAA²6  67‡ (8/|9(:5d';/|'<F'=5d>#?$@% AAA²6 :0Ìÿ20 180553#452*3463'72#567*45 56‡ 7/I3;3 :8Ü@ƒ:)9:�'89€I 3<3 ;6Ô@ƒ;):;�'9:y:/I4>4 =8Ü@ƒ=)<=�';<€I 4?4 >6Ô@ƒ>)=>�'<=y=g>‚?@AB&C'D( EEE²590Ëÿ)1.xG0ƒ1 12‡ (30„46"…[(56g'60„7…9"…[(89P9d: ; <<<æ†'=.1 514ÿÿ571423L1 67‡ ):5‡!90:(899ˆ;"…[(:;‰)=5‡!<0=';<<Š>"…[(=>u>#?$@% AAA²6 :1çÿ 12‡ (30‹4Œ6"…[(56'60‹79"…['899#:$;% <<<²1 9,8ÿ ,-‡ /"¦)(./ /0"¤Z1"¦)2"±^3"…[)4&B)5'B)6(B 777²,  ,-‡ /"¦)'./k/F0�2"¦)'12Ž2�3�4d5 6 777æ†8, 5,/‘0’7,/-.L, 12‡ 3"¦)4|(50“7"¦)'67g7”'80“9#:$;% <<<²1 :,ìÿ ,,,-•,/™– 01‡ "2/35¤Z(45 '5/—7¸+'67 7¤Z8,9-:. ;;;�™?0 01‡ "2/34…['5/—7¸+'67 8…['78 8,9-:. ;;;�™?0 01‡ "2/3¸+5¤Z(45 '5/—7¸+'678…['78 8,9-:. ;;;�™?0 0001œ0 34‡ "5/67¤Z'8/D'9�:…[;0<1=2 >>>²3  333B 4‡ (5_678'9:;<= >>>�?B@žADB3 333B 4‡ 567'8D'9 ;;;-Ÿ(:;;<= >>>�?B@ ADB3 333Ü¡ 444B 5‡ 683§¢!7883¤Z:3£!9:;3†¤!:;;3…[<,=->. ???�@IA¥B C4¦ !"#$%&€�RA'333333Ó?×£p= ×ã?š™™™™™ @EA( MAð?à?333333ë?R¸…ëQØ?)ffffffæ?&@333333@{®Gáz´?ÍÌÌÌÌÌ @ÍÌÌÌÌÌÜ?ÍÌÌÌÌÌ@š™™™™™©?333333@ŒRA*+,-333333@š™™™™™ @ÍÌÌÌÌÌô?ffffffþ?.ÍÌÌÌÌÌ"@333333@/ffffff@ÍÌÌÌÌÌ@@-DTû! @ 0Ô@ƒÜ@ƒä@ƒì@ƒ333333@{®Gáz¤?1 OA{®Gáz”?š™™™™™é?š™™™™5@š™™™™™¹?33333³5@ffffffÖ? ×£p= Ç?áz®GáÚ?ÍÌÌÌÌÌì?€6@�SA¤p= ×£Ð?ÍÌÌÌÌL7@fffffæ8@(@¤p= ×£À?9@ÍÌÌÌÌÌ@333333%@ffffff&@2À�’SA€Ý^A€JA¸…ëQ¸Þ?333333"@3¸…ëQ¸¾?ÍÌÌÌÌÌ@ÍÌÌÌÌÌ(@¸…ëQ¸®?Ãõ(\�ÂÅ?š™™™™™É?ffffffö?333333*@333333Ã?333333,@ü©ñÒMb€?)\�Âõ(Ì¿ú~j¼t“ˆ?R¸…ëQð?ìQ¸…ë¡?9´Èv¾ŸŠ?ü©ñÒMb�?4ÍÌÌÌÌÌü?333333ã?š™™™™™É¿;ßO�—n’? ×£p= ·?¤p= ×£°? À@š™™™™™Ù?š™™™™™ý?ÍÌÌÌÌÌ@q= ×£pÍ?Ház®G@@,@¸…ëQ¸@{®Gázü?¸…ëQ¸Î?%À\�Âõ(\ç?ffffff@5ö(\�Âõè?®Gázî?áz®GáÊ?¸…ëQ¸@)\�Âõ(ì?áz®Gáê? ×£p= ï¿yé&1¬œ?ffffff@R¸…ëQü?ö(\�Âõð¿Ãõ(\�Âý?)\�Âõ(¬?®Gáz®@ÀŒQAìQ¸…ëÁ?€?@Ð?š™™™™@@33333ó@@EA¸…ëQ¸Ž?ÍÌÌÌÌŒD@6š™™™™ÙD@789:fffff&E@ô'ù v Ž" Æ § Ä ¥  Ì   '  ¦ ( " )  6 ‡   M  6 ‡ !  N  ˜‡  ¦ (  ‡'  ¦ ( " º("²  6 ‡  ‡'  ‡' "  6 ‡ (ÿÿ( -"|  Å›÷) "(›÷) !' 6 ‡  »! »!"F  6 ‡ ("«  6 ‡ »"ÿÿ »" »!"   ä'  »!' ¦ (  »!' !"# $$$v% & ! !"#$,333333Ó?à?ÍÌÌÌÌÌÜ?;'<š™™™™™É?/6=ffffffÖ?>?@&†NcAAš™™™™$@ ×£p= Ç?ìQ¸…ë±?BÍÌÌÌÌÌô?†6Mo  CDEF© A @ @5’ýÿv ŽÆ§  Ä  ¥ ^646*Ì+5,-7š.6857ª3æ96BÄCD-E6NÜO@PFìQ¸…ëÀM)\�Âõ(¬?Nffffffþ? !"#$%&'())\�Âõ(Ì¿Ãõ(\�Âí¿ffffffö¿š™™™™™@ffffff@OPQš™™™™™¹?/0123ÿÿÿÿ4567ÍÌÌÌÌÌÀ ð? :;< =5>?@?A5ÍÌÌÌÌÌÀ6ö(\�Âõ Àáz®Gá À8ffffffÖ?:è?9 ×£p= ×?FGHIJKLM7RSÍÌÌÌÌÌô?à?ÍÌÌÌÌÌü? Tp±…Ux±…ÍÌÌÌÌÌì¿\�Âõ(\ç¿VR¸…ëQÈ??Tã¥›Ä à?WXú~j¼t“È?/`$abcdefÿÿÿÿghHáz®GÑ?ÍÌÌÌÌÌä¿YË6ËD•è?©­þc|ä¿Z©­þc|ä?[ÍÌÌÌÌÌð?ffffffö?@\@š™™™™™é?/#br$sdtuÿÿÿÿvwfÿÿÿÿgxR¸…ëQ@š™™™™™@q= ×£p@ÍÌÌÌÌÌ@= àðœv/´?ü?]¸…ëQ¸ž?@^ffffffÖ¿_ffffffú?`@/„$…†‡ˆZdZb‰Š‹aš™™™™™@bcd€@ÀffffffÀš™™™™™ù¿3@”•–!—˜2€<À€7À€2À+Àš™™™™™&Àffffff#À!ÀffffffÀš™™™™™Ù?š™™™™™¹¿ÍÌÌÌÌÌÀe333333ã?š™™™™™©?@fg´ÂŠÍÌÌÌÌÌÜ?ÍÌÌÌÌÌÀhö(\�Âõè?ijk* l m  , F ‘Ë gfx/theft’jÔÀ¦MmathsqrtmaxclampcossinfutwitchsplayspreadcurlwristatsidelentableinsertcagecageMixfingersbasethumb thumbCurlminscaleCAGEtowardwickflamebackhightiltringliftfanabsbowalphawarmelbowshouldertimeoutwardinneredgedepth coverCentre pinchOpenpinchguidecarryclonepressswingrisegripexpwithdrawtapercurvewristRopacityrootFadefirmfirmFromTENDRILforearmrtipKtipslinerequire gfx/smokev3rigstrands57P5!!!7Q5"""7R 5###7S ##!#!T 5##"##"# # "7U##!#!I €€X  ##!#!I €K €5$$$7€•Ö&è .>€Y 5 " #!  " #!  " # !7]"#!` <. €#)G#€@@a9I  €I  €   #   # !   # ! G#5 #  # !  # !  #  # !  # !  # # !  # ! 7€ €ð?fg #   # ! # !I €K €5$$$7   #   # !   # ! I €K €5$$ $ 7   #  # !   # ! I  €K  €5 $  $  $ 7€•Ö&è .>€m"ä   ‡” ó µ .) ' # ) '# ) ! I  0°€ ) )! I  0°€ ) !  Z !   D. L°€  Mø#5###7ò#5###75 !!!7 5   !  !  !7       5 7 5) ) ) 78+ !   3< #5###75!!!7J4 tÀ�9ÕÿãM4„  /à! )#)!I  0°€)"8   (%#*$5 75! !  !! !7„ 9áÿ&  š™™™™™á?ÍÌÌÌÌÌì? š™™™™™©?ÍÌÌÌÌÌô?�Âõ(\�Ò?ffffffþ?0°€š™™™™™™?ÍÌÌÌÌÌ@ š™™™™™É¿ffffffò?L°€ ffffffî?ô?ÍÌÌÌÌÌð?tÀ�ú~j¼t“x?333333û?@ð?|"Ë ‡”  NM # 5  # #  # 7  # 5 #  # # 7 5   !   !   !7  # 5  # #  # 7 5  !   !   ! 7 5  !   !   ! 7   < #   < #   < #  ÛM Õ€5)))75)))75 !!!7 5)))75  ! ! !7   #  #!  #!I  (�€K  4�€ 5  $  $  $ 7      #  #!  #!I  (�€K  4�€5  $ $ $7  ù5 # # #75!!!7   ) 5###75!!!7   ) 5# # # 75!!!757 M 5###7 5###75!!!7 5###75 !!!7 5   !  !  !7 5  "  " "7   #  #!  #!I  (�€!! (D. P�€   #  #!  #!I  (�€K  4�€5 $ $ $7! ## !#"## $ÿÿD. P�€5)))75)))7##!#!5###75"""7##!#!I  (�€K  4�€5$$$7#GI  (�€#5###7#5###75!!!75!!!75 " " "7##!#!I  (�€K  4�€5$$$75###75!!!755# #  # 75! !  !! !77  ×£p= ç?×£p= ×ã?333333Ó¿(�€•Ö&è .>4�€š™™™™™á¿333333ó¿š™™™™™©?ü©ñÒMbP?P�€ð¿ð?£  ãM„ 8   Û   „9öÿÈ  5"" " 7  #   # !   # !I € ! !57) j  ! # #! # ! I  € K   € 5 $  $  $ 7 # #! # ! I  € K   € 5 $  $  $ 7     8 !  !  5###75!!!7J4 $€€ 9 ßÿ$G ) K   € I  €    8 &I  8€$ " I  @€# I  8€"# $K L€$ " D. \€ 9 Úÿ) $  H 5 # # # 7  # #! #!5 # # #75"""7##!#!I €K €5 $$$7 5)))75!!!7I  @€# 5 # # #75"""7   ##!#!I €K €5$$$75"""78 ! 3$ 5!!!7J4  $€€9äÿ€+‡ÙÎ÷ï?ñh㈵øä>•Ö&è .>€$€€@ð?�íµ ÷ư>8€@€-Cëâ6¿L€ü©ñÒMbP?×£p= ×÷?\€@à?ì*¹¤ N57ˆ ˆ  q) !  ˆ 5   7  §  § " # ! # # Å Å" #! #  # 5    7 5  !   !   ! 7  3 Q3 35   7   #  #!  #!I  (�€K  4�€ 5  $  $  $ 7   ##!#!I  (�€K  4�€5 $$$7    ##!#!I  (�€K  4�€5 $$$7     . ." #! ŽŽ"#! ##"#!½½"#!33  ##!I  (�€K 4�€$$58¡  ø#5 # # ! # !7ò#5 # ! # !" #!"75 !  !! !!"! !"75!! ! 7(G#*) '#I   h�€#I! p�€ # !I   h�€#I! p�€ # !#  (%I% $!€�€$)#$#"#"!"#" 5# $!%"7#5!"! !""#!!"##$!"#$7   !5"%<"$%##$&<"%&#$%'<"&'#%&7"#%®#5$&'%(7$&5#& '$!%&'' ($!&'(( )$!'()7#%9_ÿ N$#5 # # #7#5 # # # 75!! ! 7#5 # # #75!!!75!!!7# )%)&# )%575!!!7 5 <"#  <" # !!!<" !# 75ÿÿ 76,M' ‡( ”)à*Û+-ÍÌÌÌÌÌÜ? !(�€•Ö&è .>4�€ "#$�íµ ÷ư>ø?ð?333333ã?š™™™™™Ù?h�€p�€ú~j¼t“ˆ?@%€�€&ffffffö?¸…ëQ¸ž¿ '()*+“*° 6¤ 5766657M57‡”57Zjó 57h¤¤�5 )  )  ) 7 5 )  )  ) 7 5  !   !   ! 7  �5 )  )  ) 7 5  !   !   ! 7  # # !  # ! I  xÐ� K   "„Ð�5 $  $  $ 7       #  #!   #! I  xÐ� K   "„Ð� 5 $  $  $  7       #  #!   #! I  xÐ� K   "„Ð� 5 $  $  $  7 Þ# �5 ) $ ) $ ) $7 5  !   !   ! 7  5 ) % ) % ) %7  &5  ) ' ) ' ) '7 5  !   !   ! 7 5  !   !   ! 7 5 )  )  ) 7 & �5  ) ( )( )(7 5   !   !   !7   #  #!  #! I  xÐ� K   "„Ð� 5  $  $   $ 7       #  #!  #!I xÐ�K  "„Ð� 5  $  $  $ 7       #  #!  #!I xÐ�K  "„Ð� 5 $  $  $ 7 ¡)5 ) *)*)*7 5   !   !  !7 5  ) +) +)+7 5   !   !   !7  b,) -'  Ô.G/ #  !     501275  ! ! !7  573u4Mä5 M‡” 8Ü`ƒZ.ù ¶Ë9îä5é:JP;)"#<."#! AÑ� #! )# CG"B##!" )!?( !>#$<. #$" !AÑ�!#"!!)$!CG#B$#"##$#"#$$%##$%!!"##$#"#$! !"I  xÐ�K  "„Ð�5 $ !$ !"$!"7  !%&#$%&&'#%&'!#$%%&#$%&!"#$I" !xÐ�!K! " "„Ð� 5"$!" #$"# $$#$ 7!  !%&#$%&&'#%&'!#$%%&#$%&!"#$I" !xÐ�!K! " "„Ð� 5"$!" #$"# $$#$ 7!( * <.  AÑ�#) CGB #)$GGD5GE#!'FG /# !'GG!H# !! ' IG"J #!"! !7)K'E)'>^:(L*<. AÑ�#)CGB#      !# !!"# !"!  !# !!I xÐ�K  "„Ð�5$$$7 "##!"##$#"#$! !""##!"#! !I xÐ�K  "„Ð�5$ $ !$ !7 "##!"##$#"#$! !""##!"#! !I xÐ�K  "„Ð�5$ $ !$ !75)M'E)N'/)O'H)P'J7)Q'3)K'2Ää5MË93)SI  UPÑ�)R)VI X\Ñ�#35###75  ! ! !7 G/)G(*<. AÑ�#)CGB#)(5'I!'Y!'I!'(!7)$*(G/Zsä5)*[<. AÑ�#)CGB#MM M‡M”  M!"<.!"  AÑ�# )"CG!B"# !)\5 75 ! !  !! !7   ‡)!]$%<.!$%#! "AÑ�"##"")%"CG$B%# #$  ”)"]%&<."%&$" #AÑ�##$##)&#CG%B&#!$%%&#$%&&'#%&'!#$%%&#$%&!"#$I" !xÐ�!K! " "„Ð� 5"$!" #$"# $$#$ 7! !"#!'!(!#&'((!)!#'()!%&''!(!#&'(!$%&I$ #xÐ�#K# $ ""„Ð�"5 $!$#$"%!$$%"&!$%&"7 # !"# !'!(!#&'((!)!#'()!%&''!(!#&'(!$%&I$ #xÐ�#K# $ ""„Ð�"5$!$#$"%!$$%"&!$%&"7#53$37^ Š_ Œ)5 !7 ‡) O5"#!" ##"# $##$ 7!5 !! !!"! !""#!!"#7 5  !  !! !!"! !"7  à`L<#!5"%#&!$%&&#'!%&''#(!&'(7"$"!#!5"%#&!$%&&#'!%&''#(!&'(7"$"!#!5"%#&!$%&&#'!%&''#(!&'(7"$"!#!5"%#&!$%&&#'!%&''#(!&'(7"$"!:Ãÿ8 Û # Û "#5!$"%!#$%%"&!$%&&"'!%&'7!#! 9ìÿ M‡”Z.ù Û  ã„5)))7 5" "  !" !7 !# !!"# !"!  !# !!I xÐ�K  "„Ð�5$$$75)[)[)[75!!!7##!#!I xÐ�K  "„Ð�5$$$7 ¤)5###75!!!7hä5)C(/D. AÑ�Ô.)G/#Š_G/#4a'ü©ñÒMb`?   à?š™™™™™Ù? ()*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÍÌÌÌÌÌÜ?š™™™™™á?333333ã?+,ð¿-š™™™™™á¿xÐ�•Ö&è .>„Ð�.333333Ó?Ãõ(\�ÂÅ?/š™™™™™©¿ ×£p= Ç?0333333Ó¿ìQ¸…ë±?1ÍÌÌÌÌÌÜ¿2ð?ffffffÖ¿333333ÿè?ffffffÖ?345Ü`ƒ678@{®GázÔ?š™™™™™É?ô?Ñ�@@9ffffffî?š™™™™™©?{®Gáz´?R¸…ëQð?š™™™™™¹?ÍÌÌÌÌÌð?333333ã¿R¸…ëQØ?�Âõ(\�ê¿q= ×£pí¿ÍÌÌÌÌÌì¿433333ë¿ÍÌÌÌÌÌä?ú~j¼t“ˆ?@:PÑ�2@\Ñ�¸…ëQ¸®?333333Ã?š™™™™™é?ìQ¸…ëÑ?333333ó?ÍÌÌÌÌÌì?;º#¤ 5     « 6 ™  5     75  Ï #  #   #   #  ## 7    e#  ˜  -    <=>?@ABÜ, „Ф 6¤44#M Ò h 5   "  "  "7 5  )  ) )7 5   !   !   !7    5        7 5) ) ) ) )7ý#)  FFFFFFF  8    “#)‡9 ñÿ   “#‡) MD  ·   L782   """##!#! ) # !# É !"#$)%H'#&'(()#'()('* )+!!)*+*+9Îÿ :Èÿ"'( C)*ÍÌÌÌÌÌÜ?=à? ×£p= Ç?ìQ¸…ëÁ?š™™™™™¹?{®Gáz´?¸…ëQ¸®?Dffffff@333333Ó?EÍÌÌÌÌÌ@FHáz®Gñ?G’ËH¿}M?9´Èv¾Ÿš?ffffffæ?Hš™™™™™ù?¤p= ×£Ð?333333Ã?ð?ÍÌÌÌÌÌì??@@ÎÉA @556 5 7<657<65 7<6!5" # $7<76'5(()7N%5*+7<@,@-@.@/@0@ 1@ 2@ 3@ 4@ 5@6@7F @8F Ã9 FFF FF FF FF@:FF 6D5#E7§;5FG7Å<5H7Ž=5IH7#>5JK7½A5L7.CNM@NF F@OFF FFFFF FF wPFFF·Q6^5K_`7™SÒaFFFF FFFFLb cI@J333333Ó? ×£p= ·?Eyé&1¬œ? )\�Âõ(Ì?ÿÿÿÿ �Âõ(\�Ò?R¸…ëQÈ?�Âõ(\�Â?{®GázÔ?X9´Èv¾Ÿ?¸…ëQ¸ž?š™™™™™©?ÿÿÿÿ …ëQ¸Õ?áz®GáÊ?333333Ã?yé&1¬œ¿¤p= ×£À¿ÿÿÿÿ ö(\�ÂõÈ?ìQ¸…ëÁ?Ház®GÑ?Ë¡E¶óý´¿š™™™™™™?{®GázÔ¿ÿÿÿÿ Ð?{®GázÄ?¸…ëQ¸¾?V-²�?%ÿÿÿÿÿÿÿÿ&333333³?¸…ëQ¸ž¿ ×£p= Ç?)\�Âõ(¼?    K "#!š™™™™™É?$& ;ÿÿÿÿ<ÿÿÿÿ=ÿÿÿÿ>ÿÿÿÿ?@AÿÿÿÿBCÿÿÿÿš™™™™™¹?q= ×£pÝ? ×£p= ×?¸…ëQ¸Ž?ìQ¸…ë±?333333ó?333333ë?š™™™™™Ù?LG><Fè??ffffffî?@ÍÌÌÌÌÌÜ?Affffffæ?B333333ã?RSÿÿÿÿTUVWXYZ[\] ×£p= ç?�Âõ(\�â?CM ‘Ë gfx/candle’jÔ’/posheight hasPointerpointerXpointerYboundsflickerburn theftOriginbendTobendVectorxyz CANDLE_BOUNDSnewmathclamp rayFromPixel rayPlaneYxzstepleanXleanZ normalized FLAME_HEIGHTLIGHT_CENTROIDlengthsizemax flameHeightwickaxiswobbleXwobbleYwobbleZLIGHT_INTENSITY intensityrequiregfx/cam gfx/flicker gfx/paramssetBurn fromPointer setHeightsetBendlightPos 6 @ð€Ü 9 ïI @ð€�     ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÿÿÿÿ   @ð€ <. €•€+ 7ß°Î Z    ¹   ÜM€   9 p€ ™   D. 0°€  Ü›  D. 0°€        p€0°€0 Ü €™›  €A   †IF!$@I €hmIû €õ - € =  Ù # "� "Iú 4€ H #  "  õ  D. H� # !Iû €  €€  4€ñh㈵øä>ð?H�K  õ €�<. P€õ   € P€[  =IK @€#@€d  € = Ù#"  €j "I 5 ˆ g  Ù# #! P€yÝ Š !  !  P€"#$p  øIr#%&w;A @ @ @5@FFï@–@ F¾ @ ¥ @ F†@Fg@ô@F5@Fˆ@FFÞ@Fr'@()*+,-!.  / &   ‘Ëgfx/wind’jÔŸ$HwindAwindBcharm charmColor charmLightcardspoolonkeyFREE FLUTTER_HZGLOW_INK GLOW_EDGE GLOW_PAPERmathfloorabsminmaxclampsqrtSWAYFLUTTERSPECSbyNamevisiblepanelpointXYZwidthpinheighttableclearbasedraft FLICKER_GUST FLICKER_FLAME GLOW_GAINPOOL_YPOOLsidesweightglowx0y0x1y1requirefoldlayoutlambtreecottagefencewardrobelamb.Alamb.Btree.Atree.B cottage.A cottage.BcottageSeal1.lidcottageSeal2.lidfence.Afence.B wardrobe.A wardrobe.BnewFrameanchorboundframeG6 57E5 ¬ H  37Ÿ5 ò  757L57€5 5b   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ð?   X „'I   €+O €I  € J    $ €R + O €" I   € J    $ €R  + O €I   € J    $ €R  + O €" I   € J    $ €M8 4 #  #  # "  # " "# " # !# # !K < €$ D. D € "# "," # ",!I L €J $ €  ðà? €@ð? €$ €@ @à¿»½×Ùß|Û=< €D €L €h  ‚‚ ¬$K  €# # #    ö    ,#  ! # ffffffö? €{/ k ML ± M     p  ô  ÷) ! !':éÿO€$$ à?ð?‚  ""## ! I € $$€š™™™™™©?333333㿚™™™™™é¿™ p½M÷$Ü$÷$ Ü$ ÿÿÿÿÿÿÿÿ £&  º €     J  ¶  k M      E E E E      €  J  N   4  ŸŸŸŸ ¬H 3#E E E E ö ,¶ ù(#*K d€�#! E( #!J p€� K p€�#   ò  !L" ×##L"  ×##L"  ×##L"€ € € ¨$ € á% # # LZ±& MV 'Rp(½)M ÷*$  Ü+$  ÷*$  Ü+$ ÿÿÿÿÿÿÿÿ  0,0" !8 $&#$"Q%#+$%-O$€Q%#+$%-O$€!#9 ôÿ!b. !M €6!6 !!b. !"Ë/0!"#00"# ,! Ë/" 0 ¦1 §3 ‡4 †5!  !:¥ÿ7!"€  -Cëâ6?#$ð?  š™™™™™Ù?%ffffffæ?à?d€�&p€� '() *@+,-ð¿./0,/012324252± �A @ @5¬ö, 3  ò  ×á¨ùE655+ 5Ú!¢55©"5�#U56%5&' & (7½$0)6%5*' * (7½$¿+6.a/6.£0d562­362Ø455�556›k7@8F9@:L;@<F]=@>FFN?@@4A@B@CF½DE1@23ìQ¸…ëÑ? yé&1¬œ?9´Èv¾Ÿz? ffffff@ 333333@à?'¸…ëQ¸~?)š™™™™™É?()\�Âõ(Ì?%ÍÌÌÌÌÌÜ?&456789:;<$Ãõ(\�ÂÅ?9´Èv¾Ÿª??5^ºI Ò?={®Gáz´?>+ffffffæ?,-?@333333ë?,1ABCDEFG#$H‘Ëgfx/shadowforms’jÔ™)YSPOTSkey CHAPTER_LIGHTxzartpanelSIZESboardx0artXwx1y1artYhy0widthpointXYZSPECSlighttableclearpanelsinsert tileWorldprojectmathsqrtturnradcossinshear SHEAR_MINabssizestretchlxlylzinvcornerscasterstileWtileHimageWimageHunitWfootXfootZupXupZacrossXacrossZlengthbaseXbaseZcreatefootnamemaxfinsrequirefold story/tunelayoutTREMBLEGRAZElambtreecottagefencewardrobelamb.Alamb.Btree.Atree.B cottage.A cottage.Bfence.Afence.B wardrobe.A wardrobe.BtileOfframestoImagetoPagefin  "LJ „ 0™› :ðÿö(\�Âõè?b.ep b“ ¦ ð!  –$  ‡ ¦" # !† É !  ‰ $  † § " # "  $  $  G       ð?†X LM e p b “ #G# ‡ ¦" –$ ¦ ð #! ÷ #! " " " ¦"$ ð " † " †  § " ‰ $$ É" ô :²ÿð ð?    ‘  " $" # ! " # !  -Cëâ6?§2ë k M€ ï  € ÆL   M  eM €   J4    € :íÿ8&  A  ) '  ) '    K      M M € ) ' ) '   9Úÿ    "   " # # ! I  8Ѐ      $ $  g0 I  LЀ O I  TЀ I  \Ѐ # # "# # ! 3    "  "  "   "!# !# ! 3 3 --##!I 8Ѐ $$$## !# # ! #  # ÿÿ#G I 8Ѐ### ! # # ! # # !I tЀ# # !I tЀ!) e b“ –!#‡"¦#"$‰$#†%§&"$$# $I 8Ѐ'0 ##¥(0 O I 8Ѐ#$  M€6?J) A!€ !˜- A!€ !ö.5B/ `*A+",€B0# # "# # "# #! " ! ˜-#"$! "3##$$"#$#& #'"%&'#&$$%&G#$! " # 3" ##$!"###$" ##& #' "%&'3$%#%$#$%! " # !"#! " # !ö.#$ )#$""##% )$%"#$"!#!#$ )#$!"##% )$%!#$"!#!#!#$!"#$$!#% !#$%"!#!#!#$!"#$$!#% !#$%"!#! " €#B/""#$ %&'L%*)pC+B/,*ZD--+, +++ôE,*-.+ ...ôE/*0*÷<1.!1+.!""1!1-0!##1'$$ :%ãÿ0i1¢2â3 4n5×6£7 8 M9 C: �;÷<K$ '$( &GÑ€&$%"&K$ ($) 'GÑ€'$&#'%Á=&>H € €ð?@8Ѐ-Cëâ6?LЀ TЀ!\Ѐ"�íµ ÷ư>#à?$tЀ    %&'()*+,-./0123456789:)ÿÿÿÿ*+,-ÿÿÿÿ.ÿÿÿÿ/ÿÿÿÿ012345678 9 :;<=>;!€<=>Ñ€¹ ˜##!!# # !!*°¢âMC n( #  # !  £# # !  ×( #  # !  # # !  /0672à?435¶ k M:M€: ?½ÇA @ @ @5å#5  7¦ 6657Æ5:¢ 65 7Æ55!   7� :U 65"#7Æ55 $  7¿#:d6'5()7Æ55*   7­(:6-5./7Æ5:›k0@1Fï2@3FÙ4@5FFA6@7K855 ;è�ƒ 5      7 @<FFFFFFF¦=@>Þ?@@†A@BF³CD@@ABC;ßO�—nr?Dà?#ìQ¸…ë±?{®GázÄ?EFGHIJ ?%333333ã?&ÍÌÌÌÌÌì?"ÿÿÿÿÿÿÿÿKLffffffæ?ÿÿÿÿÿÿÿÿMNTã¥›Ä °?OP¤p= ×£°?<;ßO�—n¢?ÿÿÿÿÿÿÿÿ%&QRš™™™™™™?è?Ûù~j¼t“?ÿÿÿÿÿÿÿÿ+%,STU;è�ƒVWXY‘Ëgfx/drop’jÔœ&mathcossinuxuyuzvxvyvzwxwywzREADERdropFall dropSettletimesmaxdropTiltdropDir dropTurnsshapepanYFOOTr0leanclampdropTomulyawrequire gfx/env/build gfx/holder gfx/env/lathe story/tuneposeHOLDERSchamberCHAMBER  AI  €I  €G6# # ! Y# # # ! ¸# # # " # # # " ^ # # ! ¿ # # # !  # # # ! _ # # # " ¾ # # ! € €ð?      „  À››$! ,„N À {K 0€ K  0€$ Œ# #    # ! "" K   0€$ ŒG # G #   # ! #    # # # G #   !   0€-Cëâ6?-DTû!@ð?à?@2! ‚„† À0  ž     Ñ"   e ¼#  {  K p€    I  ,p€I  4p€K    p€$ D. @p€##!##!   ÑI  ,p€# ! Ñ"##!I  ,p€# ! 3^# !¿# !# ! ™ k   p€,p€4p€-Cëâ6?@p€ E/A @ @ @ @5e@@ F{ @ FF @ FFFFF¡î#@ !"@#$%&‘Ë gfx/ghostfog’jÔð7šrngtablecreaterandmathfloorbufferwriteu8shaders/ghostfogshadershaders/ghostfog_compprint6ghostfog: shaders unavailable on this backend (no fog)NOISE GPUTexturenewwidthheightformat rgba8unormlabel ghost-noisedataupload compShader marchPipemarchKeycompPipecompKeyblocknoise noiseView noiseSamplersamplertarget targetKey marchGroup compGroupactiveUBO_SIZE ghost-fogview GPUSamplerminlinearmagwrapUrepeatwrapV| GPUPipelinevertexfragment vertexLayout colorTargets depthStencil sampleCountblend depth32floatcomparealwayswrite GPUBindGrouplayoutubostexturessamplersgetBindGroupLayoutslotmaxxcolorvec4 invViewProj writeToBuffervec3weyetimeboxMinstepsboxMaxencodecandlecandleI candleColorhallhallI hallColoreyeLeyeGloweyeReyeSofteyeColorenvcore0core1core2core3bank0bank1surgegatherfogDsleeveAsleeveBpourpour2puffdeskroomdoorambientlookinhaleinhale2DOORWAYoxoznxnzaxazDOORz0flushloadOpclearstoreOpstore clearColorbeginRenderPass setPipeline setBindGroupdrawfinishrequiregfx/ubo gfx/targets gfx/env/build gfx/env/roomsrcColoronedstColorone-minus-src-alphacolorOpaddsrcAlphadstAlphaalphaOpbuildPipelinespreparerender composite l “#  €  €8  @  ) I   p€9ôÿ8  @  ) I   p€9ôÿ   €) ( 83' %  (  8 ,#!  # ' %!) ' ? '% ð?ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ  @‚ABCD"#$%EF()*ÿÿÿÿ+(-ÿÿÿÿ!@#(01ÿÿÿÿ"&¢ _# ' I  €J €# ' I  €J €    1 …  M M… D        • M # <à€6  S  5 6 ` `7  5 6 ò ò7  �   à?€G€H3%$'I*@<à€ACDEF+ÿÿÿÿð?#ÿÿÿÿÈ   ‚ 0 0  0      JÜ Î�&ÕI Ù@üjt  P 0  0  0      Ó $  ` 0  0  0       Ùpñ ­Ü  €0  0  0     Ù�S´   0  0  0     Ù°øˆ ÙÀ†Óä  Ð0  0  0    œ  à0  0  0    Y  ð0  0  0    ”  0  0  0    Ž  0  0  0    r   0  0  0    `  00  0  0    þ  @0  0  0       P0  0  0    Æ  `0  0  0    Î!  p0  0  0    "  €0  0  0    c#  �0  0  0    ~$   0  0  0    ‰%  °0  0  0    Q&  À0  0  0    '  Ð0  0  0    9(  à0  0  0    �)  ð0  0  0    *  0  0  0    M+  0  0  0    Û,57   0  0  0    á-57  00  0  0     Ä.  @g/%0 f1 $2  Pu374  æ5 ™6  æ5 ¤7 u8�9KLMNOPQJRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|H}~à‚F#6 ãMMM€0 K   P€  8*6 5 6 `  ` 57 ¡7  D q   ñ    †   ´  ÿ 9Öÿ&$(ð?GP€I+€�‚ƒ ÿÿÿÿ ÿÿÿÿ„…†‡ˆ‹•ãMM€ñ†´'(…†‡œ 8A @ @ @ @5`•±@F@ FFFï 6@Fƒ@Fµ@F@FFÒ@€@à ‰@Š‹Œ�)Ž��‘’“”•–  —˜?™š‘Ë story/binding’jÔézÑmathclampmaxBINDINGbindingfinalerushrevealglide0glide1arrivereachreach0 reachTimereach1flipflip0flipTimeflip1sigilsigil0 sigilTimesigil1veilveil0veilTimeveil1cutveilHoldveil2veilFadeveil3pull0pull1writewrite0 writeTimewrite1spellspell0 spellTimespell1bendbend0bendTimebend1knockdropdropFallriserise0riseTimerise1leanlean0carrycarry0 carryTimepinchdrawLeaddraw closeTimesnuffmoonmoonUpleaveaway0 leaveTimeaway1shutshut0shutTimeshut1holdlinesurgeswallowentryturnBackturnEndformgripcloseimpacttake eyesCloseblackdonehushinhalefalllandedflipFromfloor riffleHop riffleGapsheetsriffleSIGILxzrabovecossin doorToWorlddoorAt FIG_DOOR_ZdoorDirToWorldvisiblerushingFLOOR FIG_HOVERFIG_BOBmin FIG_STAND FIG_HEAD_UPDOORFIG_LOOM dropPointyheadXheadYheadZaimXaimYaimZdirXdirZsqrtspeeds FIG_HUNCHshXshYshZpresenceexpeyeseyeClose FIG_EYES_DOOReyeGainhandsweeppointtrace sigilFadehoverrecedeswingpress pinchOpenwithdrawopenCANDLE_CLUTCH_TIMEclutchtremblegustflamefogbank swallowAgeenvGlowpoursurgeAge gatherAgepuffSlamstartlewStartlewFollowwBookpull drinkTimedrinkveilLag drinkFlameglowAtglowTimeveilGlowLOOKsnapomegawDoorwDeskwCandledarkmoonTimeshownflipUsheetN riffleFromblankink readerRiseheldlineFade spellHolddropToDESKtoprequire story/tune gfx/env/roomspan smoother01schedule sigilPointposedoorway <. €#)G#€@@*<. €##)(#'#€$@.@@/ ""K €$D. €-Cëâ6?€€4"#!8 ½ íN7ccM!""l!‡ ‡ | !¥  !¸ ¸ Ü!ÜÜ/!WWV!  B!ß!XX‡!‡X!kkw!Ò‡š‡²‡Ò!Ê Ê ¬!!•"Wñ#!y$y$�%!& õ'!#(#()!Ö*XK+!«,›-"«,XP.!O/O/«0!ë1Ê 2!E3Ê ä4!55D6!Ô7Ô7Ù8"´9Ô7Ø:!;;+<!=;È>!S?S?'@!JAJA7B!öCöCD!€E€E*F!*F*FÉG!ÉG HIhJ'KdLIIIÝMiNõOIIII IGPƒQ÷R ÔSIIITšUVÿÿÿÿÿÿÿÿ ÿÿWÛXÈ>MY IZB\0[B\]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLðM333333Ã?NOPQRSTUVWXYZ[\ð?]A - íI   €GD.  €ž ÌÜ # (  #  ! $J  , €Ü (  # " @^ € €_`ð?, €�'B0I   €D.  € M 8  ¸"  ( # " $   9÷ÿ' 48   9ýÿ ð?]^ € €aŒ 2B0I   €D.  €¸ ÿÿ é ÿÿ8    ! (  9òÿÿÿ ð?]^ € €bœT ¬™›“’ <.  P€  * ) ) ! I   0P€ #  !  I  8P€ #  "    (* ) "  # # ! (* G # ) I   0P€ # !   #I 8P€# !  # "  cdefgP€333333ã?-DTû!ù?-DTû! @@h0P€i8P€ö(\�Âõè? ×£p= Ç?ô?@)\�Âõ(Ì?ð?ffffffî?áz®GáÚ?¸…ëQ¸¾?° * 7        < ›  ‹   jklmÑ9 Ì í ˆ7M× v  i!  Ú)  I  , € #   Ú# )' I  , € # !  FFFFFFFMJ  @ €  7         <›   ‹    ] ¶! M"""K h €$D. p €<. p €##) (#'#S!J"""K h €$D. p €<. p €##) (#'# < æ$™%(#  " #! "#! " #! "#!!  ê&M'!""M" !"# !"'(" ""K"# !h €!$ ! !D. p €<. p €##)! ( !# '#G)#"#!)*!"#!"#! ´+E,Ô-"""$K$% #h €#$!"#"#D. p €   !<. ! p €# # )# ("##!"' !# !/' !."S!'!" "$ "&! K&' %h €%$#$%$%D. "p €"""#<."#! p € #" #!" )% ($%## $'"##!"G)# W1( 0!W1' ! "#"% K%& $h €$$"#$#$D. !p €!!!"<.!"  p €#!# !)$ (#$#"#'!"# !"‡2'!".#‡2'"#3"%!"'"!K'( &h €&$$%&%&D. #p €# ##$<. #$" !p €!##!!#"#!)&! (%&#$!%'#$#"#G)# ¬4™%) )*"!# !! )5#G 6# !)*G 7# !)8" # !G9#!(:" # !™%˜;›<ó=~>n?M  M  ˜@ ñAB ÿÿ" "!" # !# ""# #!" ÐC!–D$ÐC%ÐC##$%%–D&–D#$%&!"#$I" !F¡€!K!G"G h € "ÐC$!" #–D$"# !ÐC"–D!!ÌH!!’I%M'5)"*M"()*#&'(!$%&&"'%&0"($"*%$K*+ )h €)$'()()D. &p €&#&&'<.#&'%# $p €$#%$$)'$KG&J'#"%&G#)#!"#!L """ÌM%"#$%!!#$#«N%"('%7#&'!'$&7!#$#¢O%"#$%!!#$#P&7&&cR(%&Q%'7''cR'&'0&S")%"+&%K+, *h €*$()*)*D. 'p €'$''(<.$'(&$ %p €%#&%%)(%KG'J(##&'(J"('(5)J"'()."+'"-('K-. ,h €,$*+,+,D. )p €)&))*<.&)*(& 'p €'#('')*'KG)J*#%()G$)%###$#T'cR"&'*%&U()<.%()'% &p €&#'&&))&KG(J)#$'(-cR",-(+,SK+V,V *h €*3)**()SI ( 'X\¡€')&'')cR'()Y*cR')*S",(".)(K./ -h €-$+,-,-D. *p €*'*#%&'!'$%,J"(+,*-J"',-Q"/+"1,+K12 0h €0$./0/0D. -p €-*--.<.*-.,* +p €+#,++).+KG-J.#),-G())#&'(&xZ&&<[ (((ä\+M-M',-]"/+"1,+K12 0h €0$./0/0D. -p €-*--.<.*-.,* +p €+#,++).+KG-J.#),-G+)(#*+)!'(* ***ä\()*)#()!&'(&r^+‡_"*+')*Q*() +,<.(+,*( )p €)#*))),)KG+J,#'*+,/'+,5-/',-"/+"1,+K12 0h €0$./0/0D. -p €-*--.<.*-.,* +p €+#,++).+KG-J.#),-G())#&'(&N`(‡_)¥a",(".)(K./ -h €-$+,-,-D. *p €*'**+<.'*+)' (p €(#*((#)*()-( (,-#+(,'*+#&)*&Pb'¸c' (Üd''(0 ''¸c"&'&ÿÿ&Ôe)Üd(()Y)W1",(".)(K./ -h €-$+,-,-D. *p €*'**+<.'*+)' (p €(#*((#)*()-( (,-#+(,'*+#&)*&âf(W1) g",(".)(K./ -h €-$+,-,-D. *p €*'**+<.'*+)' (p €(#*((#)*()-( (,-#+(,'*+#&)*&Mh(i)‡2",(".)(K./ -h €-$+,-,-D. *p €*'**+<.'*+)' (p €(#)(()+(KG*J+#&)*&Vj( g* g')*5",(".)(K./ -h €-$+,-,-D. *p €*'**+<.'*+)' (p €(#*((#)*()-( (,-#+(,'*+#&)*&°k(šl*šl')*6",(".)(K./ -h €-$+,-,-D. *p €*'**+<.'*+)' (p €(#*((#)*()-( (,-#+(,'*+#&)*&Õm&'(&Gn'o(Ëp(q)´r",(".)(K./ -h €-$+,-,-D. *p €*'**+<.'*+)' (p €(#*((#)*()-( (,-#+(,'*+#&)*&äs(/)Ô-"'()K't(t &h €&,´r"+,'*+S*)*0,-<.),-+) *p €*#+**)-*KG,J-#(+,-Ô-",-$+,&./<.+./-+ ,p €,#-,,)/,KG.J/#*-.G))*#'()'bu*Ô-")*$()&+,<.(+,*( )p €)#*))),)KG+J,#'*+'Ô-+/"*+()*'*()6+,<.(+,*( )p €)#+))#*+)).) (-.#,)-'+,#'*+'Šv'ÿÿ'vw*. +++�x!)*+(,.(.).K./ -h €-$+,-,-D. *p €*(*+,<.(+,*( )p €)#+))#*+)).) (-.#,)-'+,#'*+'>y+M"*+*)*5,-<.),-+) *p €*#+**)-*KG,J-#(+,-šl",-*+,0./<.+./-+ ,p €,#-,,)/,KG.J/#*-.G))*#'()'×z)y{*|"-)"/*)K/0 .h €.$,-.-.D. +p €+(++,<.(+,*( )p €)#+))#*+)).) (-.#,)-'+,#'*+'ñ}*#~+Ö".*"0+*K01 /h €/$-././D. ,p €,),,-<.),-+) *p €*#,**#+,*)/* (./#-*.',-#(+,-‡2(,-S-‡2"0,"2-,K23 1h €1$/0101D. .p €.+../<.+./-+ ,p €,#-,,)/,KG.J/#*-.G))*#'()'õ€''ß�+´r"*+-Ô-.´r",-.K,‚-‚ +h €+$)*+,-<.),-+) *p €*#+**)-*KG,J-#(+,-/",-*+,Q./<.+./-+ ,p €,#-,,)/,KG.J/#*-.G))*#'()'´r(Ô-))&:!'()+ƒ,Ô-#*+,G))*"-'0/"/0'K/t0t .h €.$,-./0<.,/0., -p €-#.--)0-KG/J0#+./G*)+#()*(q„)‡2))«…"()(ÿÿ(«…**ƒ-.<.*-.,* +p €+#,++).+KG-J.#),--ö†/€‡(./."1-"3.-K34 2h €2$01212D. /p €/,//0<.,/0., -p €-#.--)0-KG/J0#+./G*)+#()*(»ˆ)7)"+M(*+*+M".*"0+*K01 /h €/$-././D. ,p €,),,-<.),-+) *p €*#+**)-*KG,J-#(+,(+V**+‰+,D. )p €),-<.),-+) *p €*#+**)-*KG,J-#(+,/"1"'01Š"3/"50/K56 4h €4$23434D. 1p €1.112<..120. /p €/#0//)2/KG1J2#-01),-:G+),#*(+.ö†0ö†'/0*"2."4/.K45 3h €3$12323D. 0p €0-001<.-01/- .p €.#/..)1.KG0J1#,/0G+),#)*+)Ï‹)ÿÿ)óŒ*7*&/M(./00M'/0."2."4/.K45 3h €3$12323D. 0p €0-001<.-01/- .p €.#/..)1.KG0J1#,/0G+),)*+ ')*')')á�*7* ,M(+,6K+V,V *h €*")*))~Ž)ÿÿ)�)ÿÿ)Ò�)ÿÿ)ƒ‘,’-F“!+,-(.’(0+’K01 /h €/$-././D. ,p €,*,-.<.*-.,* +p €+#-++#,-+)0+ (/0#.+/'-.#),--M',-(."'-.ƒ"0,"2-,K23 1h €1$/0101D. .p €.+../<.+./-+ ,p €,#.,,#-.,)1, (01#/,0'./#*-.."(-../¥a'./."1-"3.-K34 2h €2$01212D. /p €/,//0<.,/0., -p €-#/--#./-)2- (12#0-1'/0#+./G-)*#,)-,Ò”G-)+#,*-,ó•+Z–-‡2-,,,ü—-‡2 %-.i0i1_˜!/01"2."4/.K45 3h €3$12323D. 0p €0-001<.-01/- .p €.#/..)1.KG0J1#,/0,,2™-kš -.i/¢›!-./.Xœ"1-"3.-K34 2h €2$01212D. /p €/,/!/kš0Ò�"3/"50/K56 4h €4$23434D. 1p €1.112<..120. /p €/#0//)2/KG1J2#-01G,)-,Bž,q„/‘Ÿ02™#./0G-).#,,-,q„-‡2-/-Ò� +-/‡20  !./01‡22  !0121k¡!/01"2."4/.K45 3h €3$12323D. 0p €0-001<.-01/- .p €.#/..)1.KG0J1#,/0,,¢ ,,,f£,,^¤,¦¥,-.,Q¦-Ч.D¨,,÷©,,šª.«0«1Ȭ!/01"2."4/.K45 3h €3$12323D. 0p €0-001<.-01/- .p €.#0..#/0.)3. (23#1.2'01#,/0,+­,-,Û®-ȯ ,,,°-.,,D±-B².G³ ///é´012Mµ//Õ¶2B²012)I 1 0¸Ü¢€012D. /p €//¿¹/0¸c00Üd0///é´/0¸c00ʺ0///õ»0ʺ00ʺ"/0/ÿÿ/«¼0«½1 1%01O¾2ë¿"51"721K78 6h €6$45656D. 3p €30334<.03420 1p €1#311#231)61 (56#415'34#/230O¾0///ˆÀ1ö†2€‡"51"721K78 6h €6$45656D. 3p €30334<.03420 1p €1#311#231)61 (56#415'34#/23/7Á0*Â00*Â"/0/ÿÿ/ùÃ1ÉÄ3ÉÄ4·Å!234"51"721K78 6h €6$45656D. 3p €30334<.03420 1p €1#211)41KG3J4#/23/ÉÄÆn opqrÍÌÌÌÌÌ@i, €š™™™™™Ù?ÍÌÌÌÌÌô?š™™™™™ @s@ €jklmtu -Cëâ6?h €p €$@.@@CEš™™™™™@vdwffffffÖ?333333Ã?ð?333333ã?x7;š™™™™™É??333333Ó?333333ó?cà?ÍÌÌÌÌÌì?ÍÌÌÌÌÌð¿è?ffffffî?š™™™™™á?yez{|}~€�‚¡€�íµ ÷ư>ƒ„@@6…†‡ˆš™™™™™¹?¸…ëQ¸¾?‰)\�Âõ(Ì?Š\¡€š™™™™™©?‹Œ�š™™™™™é?Ž �2�‘’“”!•R–—9=8{®Gáz”?˜™š›œ�(*',.+žü©ñÒMbP?Ð?Ÿ0GI  ×£p= Ç?ø?¡¢£¤¥¦§¸…ëQ¸ž?¨©ª«¬­®¯ °±²³´µ¶·¸¹ºWA»@ZB¼]½ba¾^Ü¢€¿$ÀÁ435ÂFJÃKÄ Å < í›  v i! ¶!jklpquí íÒ í«5! 4¸!7Å0ÆÇÈô >A @ @5@@@@¸œ @ F@ @ FM @Fé5@FF6¬@Fp@FFF@ FF«!@"FF´#$É@ÊËÌÍÎabdé&1¬Ú?eË¡E¶óý´¿fºI +‡¶?g)\�Âõ(¬?cÏ Ð Ñ x   ‘Ëui/door’jÔ³1idvalidxyageplaymathabs MAX_ANGLEsincos doorToWorldDOORz0VectorxyzFLOORtoppointz1MID_UmiddleprojectzMARGINtargeteye normalizedworldDirToDoor rayFromPixel worldToDoorcancelTRAVELmove CLICK_TIMEmaxrequiregfx/cam gfx/env/roomnewallowedhandlehitownsresetdownupstep6   P€ P€22 I 0€ Aš™™™™™é? 0€   *I €I   € <  æ ™( # ! # !   æ ¤ # ! # "  , €      €  € š™™™™™É?, €  æ v¸ v")!'×£p= ×Ó?ÍÌÌÌÌÌÜ?&  æ â…¤"( æ v ¸  v" ) !'  š™™™™™á?×£p= ×Ó?ÍÌÌÌÌÌÜ?333333Ó?, " æ â…¤" ›# æ v ¸  v" ) !'  ×£p= ×Ó?ÍÌÌÌÌÌÜ?Ð?5 [I € A  n K™˜ ›   I    "  "      ü " Iû  4À€   x ™ ˜ › I  @€# I H€# "    6  ™ ˜  € 4À€ @€ H€п<  ƒ      M€ Z    é ™ ˜ ›  x ™ ˜› I  p€I   (p€3 æ ™( )!¤)"# # !"#" #!$# !# ! # ! "#"#!…¤"(  ¸(   p€ (p€š™™™™™É?)\�Âõ(Ì?�íµ ÷ư¾š™™™™™¹?¸…ëQ¸¾?Hô]‚Môôa �!h ôMô™˜l  ô™", ˜" ,! í, @"t  $ô ’      ' � #$!y # �ôMJ 0€! ' !%0€$ƒWA @ @5í'A I @ ï @ F^ @Fâ@F@FFÌ›@FFn@FFF @FFFÛ@ƒ@�@FŸ @!>"@#F’$@%FS&@'F†()&@'("š™™™™™é?$¸…ëQ¸¾? )*+à?,- ! . / # 01 ‘Ëgfx/env/grandfather’jÔ™$, GRANDFATHERFLOORxdepthzhexaabbboxWOODDARKrodputcylIDENTITYBRASSspheredialdialRDIALtoruswebyawWEBmathcossinIRONpivotrequire gfx/env/build gfx/env/roomMATuxuyuzvxvyvzwxwywz DIAL_BASISbuilddynamic(Å Å v™›       B ‡ "( ( ' '  �    B ‡ "(' ('' �    B ‡ ('(''      B ‡ "''(( '( �    B ‡ "'''( '' �  "' "'  B‡  '( '( �  B‡  '' '' �   B‡  '( '!' � " B‡  '#( '' � $ B‡ "('(%'&'% � ' B‡ "(('&()'*') � + B‡ "(,'*(-'.'- � /ÿÿ8 ä0‡ )"'.)1!)"'2)3!4'   !!!� "'#5$%9àÿ 6ÿÿ88)7!O8€'9': º;<)"'  = 4  ! """v>#?'$@ º;™A)"'B =4C4 ! """v>#?'$D9ÈÿÀEÀEÀE F º;<(G åI)HJ åI) H !" ###€K$% º;ÇL( åI)H'!åI) !H'  !" ###v>$B%9 B‡ "( åI!'((M"(GåI!','M ! """� #$N%& B‡ "( åI"(,(M"(GåI"(('M ! """� #$O%& º;‡ ( G'P =GQ !" ###v>$?%; º;`R™"( v'S›'M kTUMV !" ###ÎW$7%7&X'YZ€‰RA,Aš™™™™™¹?ìQ¸…ëñ?333333ÿ? 333333ó?ÍÌÌÌÌŒI@à?ìQ¸…ëÁ?�Âõ(\�ò?ÍÌÌÌÌÌ@fffff¦I@¸…ëQ¸¾?…ëQ¸…ë?333333@ š™™™™™©?®Gáz®ç?ÀI@š™™™™ÙI@¤p= ×£À?ÍÌÌÌÌ J@š™™™™™á?fffff&J@ffffff@@J@ÍÌÌÌÌÌ@š™™™™YJ@R¸…ëQð?@ÍÌÌÌÌŒJ@{®Gáz´?\�Âõ(\ï?š™™™™™ @fffff¦J@{®GázÄ?ö(\�Âõð?ö(\�Âõ @ÀJ@ ð?fffffæ!@ffffffÖ?š™™™™™É?K@ÀNcAffffffî?ÍÌÌÌÌÌ!@333333!@  š™™™™™Ù?€K@333333Ó?¤p= ×£Ð?L@€Ô7iA{®Gáz”?@¸…ëQ¸®?ÍÌÌÌÌÌì?ÍÌÌÌÌ M@fffff&M@ÍÌÌÌÌÌ@ ×£p= Ç?333333 @-DTû!ù?{®Gáz„?ffffff"@ffffffæ? 5I  €I  € "  # " # " "  #!  #!   ä ‡        0   € € {®Gáz”?333333Ó?I'— Å  À (  À  À  F F F FFFFFF+ *#å )å )   + * #å ) å ) º(      vþI d€�I  l€�ä#"ä#! ä‡  !)"!)#!)$ ! %%%v&" º #$# !!!v"#%&(AÀNcA ×£p= ·?€†@-DTû!@à?š™™™™™¹?Ãõ(\�µ?N@…ëQ¸…ë?š™™™™™É?Ûù~j¼t£?š™™™™™™?   ×£p= §?ìQ¸…ë±?333333Ó?d€�l€� š™™™™™©?{®Gáz”?ffffffæ?333333ã?×£p= ×ã?¸…ëQ¸®?ffffff @BA @ @5’6æ@FFFFo@FFFFS@ !"#ð?$ð¿%&'()    *+,‘Ë gfx/flame’jÔ -{ shaders/flameshaderprint flame: shaders/flame unavailablepipelineblockgroupcomparenoDepthroomView boundViewcountflames GPUSamplernewminlinearmag less-equaldepth depth32float flame-no-roomsrcColoronedstColorcolorOpmaxsrcAlphadstAlphaalphaOpone-minus-src-alphaaddzero GPUPipelinevertexfragment vertexLayout colorTargets depthStencilcullModenone sampleCountformatblendlesswrite sampleView GPUBindGrouplayoutubostexturessamplersgetBindGroupLayoutslotbufferviewsamplerRECvec3wmathvec4clampVector normalizedcrosslengthxyzflickerwick feedbackPoseaxissmokescalebend flameHeighteyeFLAME_HALF_WIDTHwidthsizeleanXleanZdotdataviewProj writeToBufferclockFLAME_BRIGHTNESSbrightgutterlevelemberswaysmokeAge WICK_DROP FLAME_HALOcoldmoonMAXxyzheight halfWidthdrophaloseed CANDLE_DETAILflush setPipeline setBindGroupdrawrequiregfx/ubogfx/cam gfx/candle gfx/flicker gfx/targets gfx/paramsbuildPipelinesbindRoomupdate drawFixed drawPlayer 'M€  @6 � � H�6Z   @    ð? ÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ    H� 9  ,M€O€6 6 @ð€6šÉ5Ì56  � ö7 á6#sM$ä%&ð?  !    "@ð€#$%&'()*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+,-. !"P‡¢ f &HM€¢ÚäMM€ `€6 S 56�±±7 56`7 56Zò7� ä  / 0`€1234 567ÿÿÿÿð?8ÿÿÿÿ@9ÿÿÿÿj ‚‚Z` è#! Ù Ù'K @€ Ù'K @€  '      '     '   ' <. 8@€00:;0@-Cëâ6?<@€@@ñh㈵øä>=H@P@T@X@>8@€  "Iû € [Iú €  €Iû € ?@€AB€�íµ ÷ư>C€–6 „�„²°I  ˆ    T    g    @€) 3 )! Iû $@€  E M'ö D. 8Ѐ @€" #! Iû  $@€ E #J @Ѐ¤(#!õD. 8Ѐ 5# G# !#)'# ü" Iû  $@€ [Iú l@€   @€Iû  $@€ ¶÷# K!! @Ѐ#"# !## "#)$G# @€h%m&Jù (œ@€�)&*£+I,  Œ-   ‰.!¶/# !!#û0%1#$% !"#$J!" 3ÈЀ !�4" 5&õ((''ÿÿ#%&')$%6&7#%& !#$%$c8%&Ä9 '''æ:( )))Ž;*<+/=,M .+>0ö 12D. /8Ѐ/#-./-MLx Þ?v @€™@˜A›B @€h% !m&Iû  $@€ü"!Iû! $@€  !!!["# !Iú!#! "l@€"# " # "@€#$%""Iû!#! " $@€"" @€!h%"#m& Jù ! (œ@€ !"#$Œ-%&ÜC'(àD)¶/*û0+�4, 5.õ00//ÿÿ#-./.c8/E 0Ä91«E234F4»G5 ':‡ÿH ÙI@ü JP¢KM šL uM�) NDEFG?C@€¸…ëQ¸Î?)\�Âõ(¼?@$@€H,<>8Ѐ@Ѐð?IJK¸…ëQ¸¾?¤p= ×£°?ÍÌÌÌÌÌô?LABl@€�íµ ÷ư>MNOffffffÖ?¤p= ×£Ð?ìQ¸…ë±?333333Ó?PQRœ@€STUVWXY ×£p= Ç?ÈЀZ[333333ó?ÍÌÌÌÌÌä?\]^_®Gáz®×?`abcdefghij ;= kl£äMM ñ†)´ mn@o×  äMM ñ†()´ mn@ð?oä äMM ñ†´ mnoî OA @ @ @ @ @ @5 Þpè ` Þ è # ! @ FFFï @ ƒ @£@@ FF@ F@ FFFFF FFF Æ@  ´@  @  p@qrstuvb:wxyoz {   ‘Ë gfx/panels’jÔ¸TžxyhscalewbyNamewidthheightleftrightcoverfrontbackrifflePageLeft PageRightCover TurnFrontTurnBackmathabsclipnxnydfloortableclonechapterSpreadsspreadinsert readerSpread mechanismshingesaax0ay0ax1ay1bbx0by0bx1by1panelspanelgluex0y0x1y1 foldEdgesarttoneboarderrorpanels: no atlas tile for uvRectartXartYtwinpageinfou0v0dudvdiscreceiveslookmodeldepthevilUVfolds clipCreasekindsideseedmapUrolesealMat4identitypiece transformsetLookprexcossinvisiblehostmaxsqrtpointXYZCONTACT_AO_STRENGTHCONTACT_AO_REACH pushFloatsbuildtheta PAGE_WIDTH PAGE_DEPTHdxw0dwpushhiddencasterFntruthevilKeyresetquad rightPageleftPageBOARDsetFrame HALF_DEPTHleafUonndrawuclampLIFT STACK_LIFTeyezclearextrascentresortcastscopycountclipToPageEdgeflexnamesetFlexsidesweightglow evilCastersfinsupportrequirefoldlayoutgfx/geom gfx/atlasgfx/cam gfx/paramsgfx/shadowformsgfx/leaf AO_STRIDE preparePagesprepareevilRectcreate 5™$˜ ‰ ¤# !$– ¤# $ ‰3  ¤# $7W„C±÷Ü55L      :ùÿ6 Ô   ¦ ¨   å K   « e   z ½  §é     [ "I €€ú~j¼t“X?m ¦÷Ü@" I  0€ " I  0€ !     ( I  0€    ( I  0€     " I  0€    " I  0€     ( I  0€    ( I  0€     " I  0€    " I  0€      M& f # G # !  … ! I  0€    f # G # !  … ! I  0€         0€�íµ ÷ư>ú~j¼t“X?ú~j¼t“h?k  )     M €5  7     $ I  € + O€! @€€b5FF €¡.J4 €«J4 €L&   L  V L€ ³ Ò ú ›ƒ²Óûš:çÿ: àÿ:ÙÿÆL p ÷  L  ¦§‡†: ôÿ:ëÿ€€ !"#$%&'()*+,-./0123~µ5 øÆL¦ p e   M 1± “ M€ p@  “1 É ÷ Ü  ¦  § ‡ † – ‰ ð É ÷  Ü    ÿÿM  SM ± “ ÷ Ü  öP€ öP€ÿÿ  576'š £   Æ¥YY6- .P/€ÿÿ](ò))1+0»*M 4Ì ƒÛ!q$%K&J4 7ØPƒ:Yÿ84-.5678p@9:0123;<=>  ?@ABCDEFGHIJKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!ÿÿÿÿ"#$ÿÿÿÿ%ÿÿÿÿ&ÿÿÿÿLMNOð¿(ÿÿÿÿ)ÿÿÿÿ*ÿÿÿÿ+,PQð?2:=ïÆã?RSÌ ƒØPƒ¢ L šfqMq:òÿ?TIÉ6Á0 ÷! !  Ü! !    8   #   ' '  #  ' '   ' '    #"'  #" 9 èÿ$ $  ÷! $ Ü!$   U@ @(@ú  „! M M q     q    Vˆ H”  M€6 HWX˜   P€## ! 3 ¥)   ÎI  €I  €L¼ š   · š f   ± š p ÷  L ¦H ] P¡ € Á ö P€3H Á # #! #!†# #! #!#GJ D€I L€ o ÷ j ô ¦§ ô ‡† ö P €#"##!!"#3!"ö P"€#$#%!#$%3 #! ! """ "!"# Ü %%%·#$% %%%Ð'  ( '(&&#"$"%"&"# £!$  "% Æ#& ¥$#"$" %" &" $¦% ÷$#$%%‡& ÷$$%& &&&Ð)%&%&#" $" %"&" ###&$%"#: Yÿ:Cÿ'Y€Z €?[T./\L>U +‡ÙÎ÷ï?ð?]D€^L€š™™™™™©?�íµ ÷ư>_0123`a6@ABC333333ã?b­$ ‚� o     2   8 l       § §  ¦$G#! ¦#$! §3 h#$ h#$ ¡#$! „ #$ 9  Û ÿÿÿÿ !"ÿÿ # § 9  Û ÿÿÿÿ !" #9 ”ÿ cdef ð?0ghijG„J   „$˜$�1¢ÉM  –5 M  " M  ¤ M  ÷ Ÿ Ÿ Ÿ Ÿ.å VV 9 ÿÿ ¦ Væ  9 ÿÿ  I  8ЀI @Ѐ3  î## å !ÿÿ 8  #'  2#9òÿ« 9  !"#$%&ÿÿ 'FFFFFFFF™ ™z§é¶8�83é)! ( !  é)    ´!  %M$M" ”"   ! !!!  !$%<.$%# "$ŒÐ€"#$  %%%˜% %%%`&& !9Íÿü'™(˜)›* -°°‚   !LA$#š.$$ /$<$#š.$$p0 %%%V&$'#Û1% %%%ô2&$($÷4)'(3)$Ü5)()3%"(%")&"*'#-((#.))!,-.#-**!+,-+#6', . -.,M-€6.; / ./,+.+-,#6-,+6#+,8-+i: - J4-+.+ ,=ð°‚,:¾ÿM 2 N> !L*$#ª?($™("%(($˜)"&(($›*"'(') + *+)M*€6+; , +,)(+(*#+%%#,&&!*+,#+''!)*+*)(6*(,8#(i: * J4*(+( )=ð°‚):Õÿ A±‚ !    !L«$#i:M$= %%%9 &'$Û1($£B)$ C*$ÆD+$¥E,-./0123ÿÿ4$MF%&$9G&‹&&‰% &&& H'(%)&'I(&''$MF''»J( &(v (((qK)*&+,-'.(k%#,8M%h&%š.'&p0()*+,'L-&ÏM- ('÷4).'ÁN-. (*-+M,-,fO.'÷4#(-.-,GP.'Ü5#)-.*,…Q+/&fR . /N.--.&9G. .M . /&0%Û1 1 .0&ÏM0//%KSM 1 …TM11 …T2'ZU 0120-5 1119 23%Û14%£B5% C6%ÆD7%¥E8(9):*;+<%YV=>%W?%X@%MFA%YB/1M0 222kZ34150[60Ë\70]80¦^90§_:0‡`;0†a2 1&9G1â. 1 1%Û1 2229 3415%£B6% C7%ÆD8%¥E9(:);*<+=%YV>?%W@%XA%MFB%YC/2M0 333kZ45260[70Ë\890¦^:0§_;0‡`<0†a3 M 4&fR 3 434M 45&fR5 4M 45 èbM5 6 èb7'ZU 567N544M3^4\ 555qK6728393:%MF::»J;5 5 55³c6&fR7'ZU5M5q637d 6m7 67'85 96 :::9 ; <=%£B>% C?%ÆD@%¥EA6B7C8D9EFGH%XI%MF: ;;;qK<=:>3?3@%MF@@»JA;M0@ ;;;kZ<=:>0[?0Ë\@A0¦^B0§_C0‡`D0†a; +M3M 5&fR5 5& eP5f€ 555qK672839:%MF::»J;35 56729& eP9f€88 9&fR:%MF::»J5:Tþ  !"# gklmno pqj rdY8ЀZ@Ѐstue@f v  wxð?@yz{ŒÐ€|}~€°°‚?[.G_à?HWX6789:9ð°‚�‚ƒ±‚@ABCF„…†NV‡UTKˆ‰ED6JŠ‹Œ�0123Ž�+‡ÙÎ÷ï?P�ÓsA @ @ @ @ @ @ @ @ 56 5    @ "6 6 6 @@ F .!@"@#F ø$@%F FF µ&@' Ò(55 +¨�‚ .´À‚ .´À‚@/@0F@1@2F@3@4FFFF@5FFF F F F FFF FFFFFFFFF o6 7‘@’“”•–—˜™L@MNR¸…ëQà?Oð¿ ú~j¼t“x?sšð?×£p= ×Ó?à?  \�Âõ(\ç?   @Ãõ(\�ÂÅ?  ›4œ�ž¨�‚RS´À‚     c  ‘Ë gfx/bindhand’jÔå'"mathsqrtmaxclampBINDINGhandhoverrise reachFromsweepflipTimesweepXsweepYsinsweepZflipUpointrecede sigilPointtracewriteYSIGILaboverecedeTowristfucurlspread thumbCurlrequire story/tune story/bindingguide 575!!!75"""7 5###7 ##!#! 5##"##"# # "7  ##!#!I €K €5$$$7€•Ö&è .>€ 5 " #!  " #!  " # !7!"#!$ <. €#)G#€@@%      *)œ íN57°° ° 5   7 5   7                   5    7   P D. 4À€ ›üüü57)G# <. 4À€#)G#)575!!!75"""7     )(<. 4À€#)G#         (*<. 4À€#)G#)G5'''7 ÔÀ íÔÜ'$<. 4À€#)G#ÔÜ"*<. 4À€#)G#**"#!    !#I #ˆÀ€"#!k$575%&7     Ô*<. 4À€#)G#G#            !  G' !G'#I #ˆÀ€8)()"*)#+!!"#I! #ˆÀ€ ) ')#  ' ,)!-! !"!# !!  9ìÿ G#! â.D. 4À€Õ/D. 4À€G#57 Ì50127      p3M4°<. 4À€#)G#ù5 ¬6’7"#!57 )85# # !# !75" "  !" !7)95# # !# !75" "  !" !7<. 4À€#)G#    !  !" !  ! "#$ "! " #$ %!#""  )5)':G;G G!<7 8 " $ )(>!'( I' &#ˆÀ€&)%&=!#$%"%#"#$%!!"$! 9ñÿ ) 2' "!# !!   ) G "!# !!  Õ/D. 4À€ pA?A?A?57<. 4À€#)G# 5@A7                  GB#!  GC#!  GD#!  GE#!  G#! 6LMF ‡G ”H ZI .J ùKM)\�Âõ(Ì¿š™™™™™á¿š™™™™™é?ffffffÖ?š™™™™™Ù?q= ×£pÝ?¤p= ×£à?333333ë?4À€ @ð?@@š™™™™™É?ÍÌÌÌÌÌô?333333ã?Ð?333333Ó?š™™™™™©?{®Gáz´?š™™™™™¹? 333333Ã?   -DTû! @ˆÀ€333333㿚™™™™™á?áz®GáÚ?ffffffæ?"@333333û?)\�Âõ(Ì?¸…ëQ¸®?¸…ëQ¸¾¿…ëQ¸…ë¿à?š™™™™™í? ×£p= ·?ffffffî?ÍÌÌÌÌÌð?¸…ëQ¸ž?ÍÌÌÌÌÌ@à¿…ëQ¸…ë?433333ã?ÍÌÌÌÌÌä?gfffffæ?è?FGHIJK6!A @ @5@@@@@@ @ @ @ @ @ F F@FF FF Fu@ !   "   ‘Ë story/figure’jÔÿ�îmathclampmaxHALLx0x1 doorToWorldtableinsert FIGURE_PATH FIGURE_STANDabssqrtptscumlengthrush worldToDoorDOORxclone LOSE_KNOBSRUSHFINALEfinaleREADERcoverlandAtfallTimepeelpeelTotopslopeTop slopeLandhops coverOpenpath thresholdSfirstpacecountspeed threshold rushSurge FIG_LUNGEsurgearrivereachpinchblackrevealswallowentryturnBackturnTimeturnEndformgripcloseimpacttakedrawLeaddrawsnuff eyesClosedonesteps sThresholdkeyseyeshushinhaleleavedropfalllandedmoonUpglide0glide1reach0reach1flip0flip1sigil0sigil1write0write1spell0spell1bend0bend1pull0pull1veil0veil1cutveil2veil3rise0rise1lean0carry0away0away1shut0shut1holdlineflipFrombindingBINDINGschedule rushGlide rushGlideTimeglide glideTimereaderprint2figure: warning: book_close starts before the griptravelatazimuthdistancewaitatan2visiblepresenceyzheadXheadYheadZshXshYshZleanaimXaimYaimZsdirXdirZeyeCloseeyeGainhandriseswingpresscarry pinchOpenwithdrawopenclutchtrembleflamegustfogpourbank swallowAgeenvGlowsurgeAge gatherAgepuffSlamwDoorwDeskwCandleLOOKsnapomegadarkmoonrushingwStartlewFollowwBookpullshownflipUriffle riffleFromsheetNsheetsblankink readerRisesweeppointtrace sigilFadehoverrecedespellbendshutheldveildrinkveilGlowFIG_DOOR FIG_DOOR_ZdoorDirToWorldexpnewPoseposeFLOOR FIG_HOVERFIG_BOBsingatherAtmin FIG_HEAD_UP FIG_STAND FIG_RISE_FROM FIG_RISE_TOFIG_LOOM FIG_STOOPFIG_DARK FIG_HUNCHeyesOut EYES_CLOSE FIG_EYES_DOOR inhaleTime SWING_STARTCANDLE_CLUTCH_TIMEVIEW_CANDLE_TIMEfollowmoonTimefade inhalePower leaveTimerequire story/tune gfx/env/room story/bindingknobscoverAt audioSteps <. €#)G#€@@Ú<. €##)(#'#€$@.@@ß ""K €$D. €-Cëâ6?€€ä"#!è�•5(5 Q¦' Q‡(7L <  5   7 J4   p€ :ìÿ £ L 5   7 J4   p€:óÿ _ 4 M"I 4À€ " I 4À€!  57J4  p€5748  (    "  (    " (   ## ! I  DÀ€ !  9èÿ6vj4 �N7@ffffffæ?š™™™™™Ù?  p€   4À€�íµ ÷ư>ð? DÀ€ïGvj4   'ùÿ(   (   " K   @€  " $   " $ ( " $  D. @€    # ! # !     "# ! "# !     ð?�íµ ÷ư>@€@€Š é Lv æ™@F é 480(    é       é     " " K   p€ $  j (  j j ( " # !  9Ðÿ ð?�íµ ÷ư> p€��ƒ € » ÷L:þÿ hN€¶ ###))" ' # )"!# # ! ) )! # ! " # # ! ð?@@Àß À«œ§$— œ—$—## # ) ) "' ) )" !)# ! ) ) ! # ! " ) # ! ¸ +œ›  —"  ¸  —" $  ¸  —" # # # ) ) "'# ) " !) #! ) ) !) ! " # # !  '›  ¸ "  ¸ "  $  ¸ " # # # ) ) "') ) " !##! ) ) !) ! " # # ! "ÄL     $  # # G #G  " :òÿð?@@ÀffffffÖ? !à?"#Ë  Àœ§$(8 !) ¤  9óÿ§#à?$åT"K €"$D. €### #  # ))"'#)"!# ! ) )!#! "#  ! ) ) "#)) "'# !) ) !#!))"# ! $ ) ( #) ( # !)' #!) (# !#$  -Cëâ6?€€ð?@@À@@À(@(Àð„¿ a ¡557WU k  (  8 # !J4 p€ 9 ÷ÿ Ì  X (  5 7J4 p€ 5' )  7J4 p€ 5  7J4 p€  s! 5'" # ! õ)!7J4 p€   l!  !   Ô!   š!  5  7 7 c c 7X ( (  h'  dÝ!  ÝÝ!q!  i õ!!  õ! l G"!  G"ƒ#!  ƒ#÷$!  ÷$Ô%!  Ô%Ù&"  ´' Ô(!  ()!  ) š*!  * t+ Ê, ¬- . N/ ÿÿ 0 ÿÿ Û1 ÿÿ È2 ÿÿ «3 ÿÿ M4 ÿÿ I5 ÿÿ 6 ÿÿ M7 ÿÿ "8 ÿÿ ‡9 ÿÿ ¥: ÿÿ ¸; ÿÿ Ü< ÿÿ W= ÿÿ > ÿÿ Ê? ÿÿ •@ ÿÿ yA ÿÿ B ÿÿ #C ÿÿ ÖD ÿÿ šE ÿÿ ²F ÿÿ G ÿÿ XH ÿÿ ‡I ÿÿ kJ ÿÿ ÒK ÿÿ OL ÿÿ ëM ÿÿ EN ÿÿ O ÿÿ SP ÿÿ JQ ÿÿ öR ÿÿ €S ÿÿ *T ÿÿ ÉU  BV N/P W€  íX7 @Y X  sZ! Ú[  @Y  ù\ Û]  N/P <^€  À_ (^ N/ ) 0! 0 Û1! Û1 È2! È2 «3! «3 M4! M4 M4 œ`! I5 6! 6 š! š š *! * ÷$"  G"(  bFc  d%&'(ð?)  p€*+333333Ã?à?Ház®GÑ?,ÍÌÌÌÌÌÜ?ffffffö?-./0123333333Ó?š™™™™™©?4¸…ëQ¸¾?56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvFwþ '¬4O€48   (    9ôÿ4 Eð?é 85tL-  v     ø   " )" )63J  $€€Z##!I  ,€€u" —J4 8Ѐ :ÒÿCxyÐ?z{|}$€€ ,€€ 8Ѐ€‡5 ™˜›ó~n«¢   ˜ ñ ’ЖÌx<rNPGËäbÔŠÿÿv> ×!q"´#ß$»%ÿÿ~&Ï'ÿÿó()á*ÿÿ+ÿÿÒ,ÿÿƒ-Q.Ð/D0 f1^2¦3÷4š5+6Û7È8ÿÿ«9×:ˆ;Ò<ó=Z>ü?D@BAÿÿGBéC¿DÕE5MFõGÿÿ«HˆIÿÿÔJâKMLVM°NÕOñPõQ7RÿÿùSÉTBU2VWX~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž*F��‘’:“”•–1—˜™š›?œ�žŸ ffffffÖ?¡¢£¤¥¦§¨©ª«2¬HIJ­n®¯°±²m³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄlÅÆÇ� ! ÿÿ"  õ( 'J @€à?9Ãõ(\�ÂÕ?.@€©ª 7 v  ø      c  '"" K    p€$D.  (p€<.  (p€##)( #' #  (  '"" K   p€ $  D.  (p€<.  (p€#)G#  "#! õ#!      "    c" K    p€$G#  õ* ) #G#! <  ‹        xy3š™™™™™©?.-Cëâ6? p€(p€$@.@@š™™™™™Ù?@@È-š™™™™™¹?ð?@ÍÌÌÌÌÌÜ?ÉÊ "#!  "#!  "#! à5 "*<. €#)G# " ( K   $€3*I   ,€) ' '" " K   $€ $   D. €#!)\�Âõ(Ì?€@@ffffffÖ?¸…ëQ¸¾?$€Ë,€š™™™™™©?-Cëâ6?Œ) Ð   L :þÿNP€   ø  v 7 × v i ! Ú )  I  <à€#   Ú # ) ' I  <à€ # ! lFFFFF  ’ Ð – ÌJ dà€ ¶!˜ñ ¶!!   ] ] FFF   ÷!l#'"""K$$ &”à€$D. (œà€<. (œà€##)+(*#')#"#!"#!"#! ê,l#.'-""K$ $ &”à€$D. (œà€<. (œà€##)+(*#')#"#!"#!"#!Ô/Ô1'0""K$$ &”à€$D. (œà€<. (œà€##)+(*#')# 2"#!"#!"#! &345"" K $!$ &”à€$D. (œà€<. (œà€##)+(*#')#"#!"#!"#!)7G6#!'8l#'9""K$$ &”à€$D. (œà€<. (œà€#);G:#™<˜= ›>ó?~@nAB ÌC#!«D(E#'E!¢F#!G7cH(0I7cH'9""K$$ &”à€$D. (œà€<. (œà€#);G:# 'J 'K""K$ $ &”à€$D. (œà€<. (œà€#);G:#G6#l'LõM'9""K$$ &”à€$D. (œà€<. (œà€#);G:#44'N"" K $!$ &”à€$D. (œà€<. (œà€#);G:#)-G6#NP$O€44'P""K$ $ &”à€$D. (œà€<. (œà€#);G:#G6#QFcH"*R<. (œà€#);G:#""(!""K!T"T &”à€ 3 *"I  VTá€)S'L'""""$K$$%$ #&”à€#$!"#"#D. (œà€  #! 'J '9" ""K"$#$ !&”à€!$ ! !D. (œà€<. (œà€#);G:#G6#õM(LbõM"*R<. (œà€#);G:#"!( !"K T!T &”à€3*"I  VTá€)S'L'""!"#K#$$$ "&”à€"$ !"!"D. (œà€#!NP+O€4 ÀXØY"'W4'W""!K!$"$ &”à€ $  D. (œà€<. (œà€#);G:#G6#xZ5" Ü[$<. (œà€##)+(*#')#<\ ä]r^."G_."K`` &”à€$<. (œà€##)+(*#')#PaG_"'I*"<. (œà€#);G:#G_ƒb÷c""K$ $ &”à€$D. (œà€d÷c"*J<. (œà€#);G:#Ô/"*e <.  (œà€#) ;G: #G6#ËfÔ/"´gÔ/"K`` &”à€$<. (œà€##)+(*#')#äh4Ô1"Kii &”à€´g"'"*9<. (œà€#);G:#Ô1"$ !<. ! (œà€#)!;G :!# G6#bjÔ1"$<. (œà€#);G:#Ô14"(S*k<. (œà€##) +( *#')#Šl."'"*<. (œà€#);G:# 4" (7*N !<. ! (œà€#)!;G :!# G6#NmNPCO€ ÀXŠl."'"* <.  (œà€#) ;G: # Ûn"0p)!"o! !!Ûn"0p! !""#"% K%$&$ $&”à€$$"#$#$D. !(œà€!!!"<.!"  (œà€# )";G!:"# !G6#NmG_ ÿÿvqgƒb $ rG_"!ƒb"G_" !"K `!` &”à€$ !<. ! (œà€#)!;G :!# #G6vq@÷c "ƒb÷c"" K $!$ &”à€$D. (œà€ rG6#) s' S#G6#vqNPO€Mt ¤uMt" ÀX§v$vqvqÝwÝw �x!""!K!$"$ &”à€ $  D. (œà€<. (œà€##) +( *#')#>y."*7<. (œà€#);G:#4"*9 !<. ! (œà€#)!;G :!# G6#×z÷c"KTT &”à€3*9I  VTá€÷c"*{ <.  (œà€#) ;G: ##ß|´g"Ô1 ´g" K`` &”à€$<. (œà€#);G:#4"*0 !<. ! (œà€#)!;G :!# G6#´gÔ1)-!Ô1)}G6""4"!"K!i"i &”à€ $ !"<.!"  (œà€# )";G!:"# !G6#q~*} <.  (œà€#) ;G: #!š€" !' 9*!"<.!"  (œà€# )";G!:"# !G6#»�NP8O€Ûn ÀX0p!*} !<. ! (œà€#)!;G :!# ( J'!{"$ "&! K&$'$ %&”à€%$#$%$%D. "(œà€"""#<."#! (œà€ #! )# ;G":##!"G6#»�7"hƒ(‚ " ""K"$#$ !&”à€!$ ! !D. (œà€<. (œà€#);G:#(T*eD. (œà€<. (œà€#);G:#! ' !8" '!"…"$ "&! K&$'$ %&”à€%$#$%$%D. "(œà€"""#<."#! (œà€ #! )# ;G":##!")„G6#φhƒhƒ"ÿÿó‡7&! ( !9" '!"8"$ "&! K&$'$ %&”à€%$#$%$%D. "(œà€"""#<."#! (œà€ #! )# ;G":##!"G6)'SSáˆ7  (kKTT &”à€"~‰ '+ ÿÿ"Š'‹ ÿÿ"ÒŒ÷c'… ÿÿ"ƒ�ÝwiŽ"!"#K#$$$ "&”à€"$ !"!"D. (œà€ <.  (œà€##)"+(!"*# !' )#Ô/(‚!Ô/( !‚ !!!�! !"""$K$$%$ #&”à€#$!"#"#D. (œà€   !<. ! (œà€# # )#+("#*#!"' !)# G6Q�G6#Б#D’ f“Ýw ^”¦• 4 %–¦•÷—¦•!4" !* 8"#<."#! (œà€ #! )# ;G":##!"÷—"5"!"( !8$š€%5"#$%("#8K"L#L !&”à€!$ !"#<."#! (œà€ #! )# ;G":##!"š€+˜ ÿÿÛnÈ™ «šNP¨O€ ÀX4¦•¦•!›#›$Èœ!"#$"%!"'"!K'$($ &&”à€&$$%&%&D. #(œà€# ##$<. #$" !(œà€!##!!#"#!)&!+(%&*#$!%'#$)#"#+˜"š€#ç�"!"#"š€"%!"'"!K'$($ &&”à€&$$%&%&D. #(œà€# ##$<. #$" !(œà€!#"!!)$!;G#:$#"#š€!Ûn#Ûn$0p!"#$"%!"'"!K'$($ &&”à€&$$%&%&D. #(œà€# #!žž& !Ûn!È™#È™$'Ÿ!"#$"%!"'"!K'$($ &&”à€&$$%&%&D. #(œà€# ##$<. #$" !(œà€!##!!#"#!)&!+(%&*#$!%'#$)#"#È™ «š  «š" ÿÿ«š  ÌnÍyx~.­ÎÏÐÍÌÌÌÌÌ@Ñ<à€š™™™™™Ù?ÍÌÌÌÌÌô?š™™™™™ @ÒŒ�Ž*Ódà€Ô‰Š‹ÕÖ׸…ëQ¸¾?/-Cëâ6?”à€œà€$@.@@Øš™™™™™á?0=š™™™™™¹?1ÙÚ@Að?à?š™™™™™É?333333Ó?@@€�‚ƒ„ˆÛ…ÍÌÌÌÌÌ𿆇3¸…ëQ¸®?{®Gáz´?{®GázÔ?š™™™™™©?9š™™™™™é?uÍÌÌÌÌÌÜ?)\�Âõ(Ì?ffffffÖ?ËTး…ëQ¸ž?ÜFÝ�Þ�:ü©ñÒMbP?’;<“ ×£p= Ç?”?•{®Gáz”?–ÍÌÌÌÌÌì?—‘H333333ë?ߘàÍÌÌÌÌÌä?K$6ᙚ{®Gáz¤?œÐ?›333333ã?2�333333Ã?4ffffffæ?š™™™™™ù?Ÿ ¡ž¢>@£¤8⥦§¨©ªã«¬IJMäåæç® KA @ @ @5@@@@@ Fa @ ø @ F¡@Fr@@ F ¤@ FF ã@ @ FFF @@ F  v@ F f@ F @ @  l!@ "FFFF #$è@éêë%y&ì  $ í  pxîÌÒÍ ‘Ë gfx/env/props’jÔàÕemathsqrtabsuxuyuzvxvyvzwxwywzpileboxhexputyawPAPERcylIDENTITYINKsphereBRASStorusrodDESKFLOORaabbtopLEATHERx0underz0x1z1WOODCLOCKdialxzdialRDIALatFABRICmuleulercossinGLOBEZ0IRON CHANDELIERCEILrngrangeWAXrandwebWEBX0X1WINDOWspringclampCHAIRMATwidthdepthseatbackatan2build doorToWorldresetdynamic secondAngleDOORgapdoorDirToWorldframedboxEMITrad putFloatsfallPosef BOOK_LANDminmaxrequire gfx/env/build gfx/env/books gfx/env/roomgfx/env/grandfatheraxisCLOCK_UP CLOCK_NORMAL DIAL_BASISchairtablecreateN##!#!I €$$$I  € # # ! # ! # " # "  # "  ## ! # ! I  € $ $ $ # # " # #" ## "6Y ¸ ^ ¿   _  ¾ € €ÍÌÌÌÌÌì?      %Ž ×‡1  º‡   k         º‡   k      ) ))   º       !"! m#  º™$  "     !%! m#  &  º   '  ()( v*+,   º Ç-  .  /"/ v*+0 5  1  27 5  3 457    6  ä7      88    9!   "):!   "):!   "):! ä7™$   ");!   ");!   ");! <) =) =)!= """# $> 333333Àø¿ÍÌÌÌÌÌä?eAÍÌÌÌÌÌÀü©ñÒMbp?¸…ëQ¸¾?R¸…ëQØ?333333ã?ú~j¼t“x?= ×£p=ê?333333û?ÍÌÌÌÌÌì?333333ÿ?š™™™™™á¿¤p= ×£à¿×£p= ×ã?áz®Gáê?ffffffî?Ãõ(\�Âí?333333@ (A…ëQ¸…û?š™™™™™¹?)\�Âõ(Ì? ×£p= ×?š™™™™™É?ìQ¸…ëÁ?ÀNcA= ×£p=Ò?333333Ã?ìQ¸…ë±?Ð?š™™™™™ñ?{®GázÔ?Ãõ(\�ÂÅ?ffffffö?×£p= ×û?áz®GáÊ?{®Gáz@…ëQ¸…ë?z®Gáz´¿€ŽQcA;ßO�—n’?333333Ó?áz®GáÚ?¸…ëQ¸ž?ú~j¼t“ˆ?333333ë?4(µ 4 v     B ‡  ¸ (   ¸   Ò    B ‡ ¦ à ¤‡¸ (… �       B ‡¦'¤'‡(Ã…(   � ÿÿ  8 � ¦' ‡( B‡' ¤'…( �'!  B‡("¤''"' …(   �'#$ %8EO&€'( B‡'"…((("…(  !!!�"'$))%*!#$%$+% , º-™.!)/)/"(0…(" 12 2!"#$ %%%v3&4''""9»ÿ9 qÿ  B ‡5¤'¤'4 �64   B ‡78…(9:;…(2 �<+ =NAŠ MAš™™™™™ù¿;ßO�—nr?\�Âõ(\ᅳ™™™™™ù?ÍÌÌÌÌÌì?š™™™™™¹?ffffff @ !"#$ÍÌÌÌÌÌ@š™™™™™á?€ BA{®Gáz´?)\�Âõ(Ü¿333333 @ffffffÖ?333333Ã?ø?ø¿Ð?š™™™™™"@š™™™™™©?333333$@š™™™™™É?à¿ð?×£p= ×ã?333333ë?(@@ÍÌÌÌÌÌÜ?€„LaAà?{®Gáz”?¸…ëQ¸¾?333333Ó?ffffffÀ33333³1@333333÷¿ffffffî¿)\�Âõ(Ì?333333÷?q= ×£pÝ¿3333332@S ›À)!  #   # ! )!  #   # ! ) !%&333333ã?~&ˆ ›      º ‡ ™›      �   º ‡ ™›   v  ›À'  ) )!)!  ) )!)!  º‡    � 5ÿÿ7L©)! ›À)! ) )"!)! ) )"!)!    º‡   ## v $)% ›À' # )"!)! # )"!)!    º‡   &'# v $5ÿÿ7L7)()) ›À)! #"##!" $#$)"#*! !") ! #"##!" $#$)"#*! !") !    º™+    ## #!"# $$$v%,:Èÿ:Vÿ ›À' ) )!)! ) )!)!    º-   å/).*å/).  €0  ›À' ) )1!)! ) )1!)!    ºÇ2   å/).'34å/).'3 v55ÿÿ7L4)6 ›À)! )7 )8!)! )7 )8!)!    º-   #9# v :Ëÿ ›À' ): )8!)! ): )8!)!    ºÇ2   ;<= v >%Ž’IAàIeAà–lA'{®Gáz¤?(?5^ºI â?{®Gáz´?+‡ÙÎ×?$333333ó?ÍÌÌÌÌŒI@Ð?Ãõ(\�µ?Tã¥›Ä à?ú~j¼t“ˆ?#Ûù~j¼Ô?š™™™™™á?&333333ã?333333ÿ°rh‘í|ß?/Ý$�Å?š™™™™™ù?ÍÌÌÌÌ J@š™™™™™Ù?Ház®GÙ?ú~j¼t“x?{®Gáz”?R¸…ëQØ?ìQ¸…ëÙ?¸…ëQ¸Þ?;ßO�—n’? +‡ÙÖ?-²�ï§Ö?š™™™™™™?ffffffÖ?@)*¸…ëQ¸ž?;ßO�—n¢?¤p= ×£À?333333Ó?R¸…ëQÈ?Ãõ(\�ÂÝ?{®Gáz´¿Ûù~j¼t³?{®Gázà?ÁÊ¡E¶óÍ?j¼t“¶?sh‘í|?µ?ƒ  ø    +ffffff@ÍÌÌÌÌÌÀ®  5!)!)!) ø    º ‡ "I `€"I `€"I `€     à?+ffffff@ÍÌÌÌÌÌÀ`€±+ë v k   FFF FFFF ÿÿ  8 1ÿÿ8,) ) ø    º     �!'# )$!"#$#$9Ôÿ9 Ïÿ  ¶ ø     º ‡   ) ) )  ¶ ø   º ‡    ! "  ™#   Û$%   ø  &'   º ‡   ()* ¶)+ÿÿ81), ø  -. º ‡ ™# Û$3)/0  !!!¶'"1#9Ïÿÿÿ8g)3(2)3' ¶'4!) ø   5!6 º ‡" I  9àpƒ 0!:"#$%&';)< ø  =ÿÿ)< ø  = > ä?  @!@"#$)%)&)' (((¶')A*9™ÿB= ×£p=ê¿€…SA€ BAìQ¸…ëñ?ÍÌÌÌÌÌð?+ffffff@ÍÌÌÌÌÌÀÐ?š™™™™™É?à?$ø?N@@š™™™™™Ù?, ™™™™™™?@š™™™™™ñ?š™™™™™@¤p= ×£ü? ×£p= Ç?R¸…ëQ@P¸…ëQØ?š™™™™™@ffffff@ÍÌÌÌÌÌì?-.{®GázÄ¿š™™™™™ @333333ó¿333333@š™™™™™ @ÍÌÌÌÌÌÜ?333333ã?Ház®Gõ?333333@š™™™™™é¿)\�Âõ(Ì?ÍÌÌÌÌÌ@ffffff@ìQ¸…ëÁ?ô?333333@ÍÌÌÌÌÌø?033333³?àpƒÍÌÌÌÌÌ@š™™™™™é?ÍÌÌÌÌÌô?Ãõ(\�Â@®Gázö?áz®GáÚ?ffffff@§$³ v'     8 L) )* ' I   (�€ I   0�€ ä‡) ')') '()'3  � '! "# ä‡) '')''3  � '! "#9 ´ÿ  º Ç     !  �L   "  #   º Ç   $%$)&)&)& v'(M   Û)   *    +  º™, ---   4./0ö(\�Âõ@ FA€„LaAš™™™™™Ù?@-DTû! @@/(�€00�€š™™™™™@R¸…ëQð?ÍÌÌÌÌÌÀìQ¸…ëñ?{®Gáz”?ìQ¸…ëÁ?$ffffffö?€Q@à?ÍÌÌÌÌÌì?š™™™™™¹?@R@¸…ëQ¸@š™™™™™á?¼‹y©áÅé?ðKtè®Þ?ÍÌÌÌÌÌ@ÍÌÌÌÌÌÜ?ÍÌÌÌÌÌô?š™™™™™É?.‰ŸeMW#Ú?‹�cAq= ×£pý?1š™™™™™ @Ô$Œ v Ä' ''  ÿÿ  8 Q) '   ä ‡       � '  !     º ' '   0 º‡  (   09 ¯ÿ   8 #* G# ! "# ! ä    !!)")")" �  #'! $"%#9 Ýÿ&333333ó?2)\�Âõ(Ì?333333÷? MAš™™™™™õ?333333ã?¤p= ×£À?¸…ëQ¸Î?$T@š™™™™™Ù?6A{®Gáz”?¤p= ×£Ð?{®Gáz´?3à?)\�Âõ($@¸…ëQ¸¾? ×£p= ·?š™™™™™É?(@$@è?433333ÿ?)\�Âõ(¼?š™™™™™ñ?š™™™™™ù?€V@333333Ó?î-»         ä Ž'   0  8&' ) ! ºÇ +O€+O€ 0  9Úÿ º'   0   º™(   v[ º™(   v\ ºÇ'  !  0   “"­&8ª))%*$'#I  (œ`‚I *¤`‚)!)!)+!)+!),!),! ä'- (!"#.$.3%&'()* +++0 ,  ä( '!"#.$.3%&'()* +++0 ,  º'/  !0"1#0$% & '''v(2')3 º'4  !5"#5$% & '''v(2')6O/7 &89: &8; º'!0)":! !"! """Û<#$%"#=$%=& ' ( )))À> ***@?+*9Vÿ83)))%*$'#'@I  (œ`‚I *¤`‚)A!)A! º`B' Û<'C,2D !" ###ÎE$:%A'&F'29Íÿ º`B''G Û<HH D ÎE HI J47A€ˆ–^APeA5ð?š™™™™™©?3333333ã?š™™™™™ñ?ìQ¸…ëÑ?@š™™™™™É?Ãõ(\�ÂÕ?ÍÌÌÌÌÌÜ? ×£p= Ç?š™™™™™¹? ×£p= ç?è?¤p= ×£à?¸…ëQ¸Î?333333Ó?¸…ëQ¸¾?š™™™™™@ffffffÖ?6¤p= ×£Ð?@-DTû! @/œ`‚0¤`‚q= ×£pí?333333ó?{®Gáz´? ×£p= ·?{®GázÔ?)\�Âõ(Ü?¸…ëQ¸ž?š™™™™™é?@W@R¸…ëQØ?)\�Âõ(Ì?ÀX@@7ìQ¸…ëÁ?à?š™™™™™¹¿.333333Ã?89es-8RÁà?ffffffî?:-DTû!ù?{®Gáz„?;@ÍÌÌÌÌÌ@ÍÌÌÌÌÌì?š™™™™™ @‰µ Ž Æ § Ä Ì' º`' ( (        Î º` ‡' ( (       Î º` ¦'  Â' '       Î  º`'  (  !  k" #  $%  Î& º`(  (  '  k" (  )  Î* º` + ,' -  Û. /    Î-0125<=2>333333ó?:ð?š™™™™™©?š™™™™™@š™™™™™ù?{®Gáz„?;{®Gáz´?q= ×£pí?ÍÌÌÌÌÌô?ÍÌÌÌÌÌì?"ÍÌÌÌÌÌð?ffffffö?š™™™™™@š™™™™™é?ÍÌÌÌÌÌÜ??ìQ¸…ëÁ?š™™™™™ñ?š™™™™™¹?333333@ffffffæ?ô?š™™™™™ @-DTû!ù?333333@333333û?š™™™™™@À-DTû!ù¿ø?ffffff@š™™™™™À€"@à?.333333Ó¿ffffffî?ffffff@º @ v ׇ}  ׇ~  ׇ   ׇ  €  ׇ �  ffffffÀ333333û¿ÍÌÌÌÌÌð?ffffffÀÍÌÌÌÌÌÀÍÌÌÌÌÌ@š™™™™™É?š™™™™™ñ?ÍÌÌÌÌÌ@š™™™™™ÀÍÌÌÌÌÌô?ÍÌÌÌÌÌ ÀÍ  ø ™  ›   +'(ê$‚‚‚‚' ø ™  ›  º    ! "#+'(í/‚‚‚U ø ™  ›  ø ™  ›   ^ Y  ¿ ¸    ä  !"#$%&' ( ) * +,-. +'( ô   "  " $D. €)!¤p= ×£Ð?@€‚7¨ % v kk    ’ � FFFF FFFF FFFF÷ ) )ô ( 3' ( §#)!FFFÿÿ8N#  !"#$%& ' (')*+  !"#$%& ' (')*+ ™ !"#$%& ' (')*+ ( !" #$%& ' (')*+9²ÿÿÿ84# ‡  !"#!$!%&'() *"'+#,$ ‡  !"&"'$%&'&'D. $(œ`‚$)#$%!"##!$!%&'() *"'+),$9Ìÿÿÿ8K3### 8@#+#"# *!"*#$I !&! %-°`‚%##$%!"#I!&! %/¸`‚%#$%!#$$ %‡ &')"-)".$,-.-.D. +(œ`‚+)*+%!(*)"*#"/#"0$./0/0D. -(œ`‚-),-%!+,,0-1./012 3")6*'562!45 5$$"#9Àÿ9µÿ""$D. (œ`‚)%! ™'30 3!"# $ %&`'$( '3 4 !"# $ %&a'$( '5% !"# $ %&b'$( '678 7!"# $ %&c'$( ™'9:: :!"# $ %&d'$( ‡ (:÷    !"#$ %;&e'<( 3(:3(:3 1!1"#$%& ';(f)< ‡ (3':÷ (=3 :!"#$ %&g'(ÿÿ8 ‡ (:#( !:"3$ (#$=$%&' (')>*+9éÿ 3?? @!@"#$% & '(jÿÿ8 #A# !A"#@$@%&'( ) *'+B9ìÿ 3AA 4!4"#$% & '(m'A(C ‡ 3"""#$!"#"#D. (œ`‚ ) %! "%"&$$%&%&D. #(œ`‚#)"#%!!""0#D$%&'( )"*n+$ ‡ 3"""#$!"#"#D. (œ`‚ ) %! "%"&$$%&%&D. #(œ`‚#)"#%!!"" #@$%&'( )"*o+$ÿÿ8Q ‡ )E "%"&$$%&%&D. #(œ`‚#)"#%!!")"E#"(")$'()()D. &(œ`‚&)%&%!$%%@&'()*+ ,"'-F.$ )  "%"&$$%&%&D. #(œ`‚#)"#%!!")" #"(")$'()()D. &(œ`‚&)%&%!$%%:&:'()* + ,'-G.9¯ÿ'H%"J J$a‚^KI! /¸`‚ 3 #_LI ! -°`‚ # !¿MI" !/¸`‚!3 !#  ¾NI " !-°`‚!# !! OI# "/¸`‚"3!"# !!PI # "-°`‚"# !"!  !" !ÇQ"#"(")$'()()D. &(œ`‚&)%&%!$%%&R'S(R)*+, -".t/$0 " !8 .)%"U)$%'#$TI #'# &-°`‚&)$&3I#'# &/¸`‚&)%&3& 'ÇQ($!)%!+%"/+"0$./0/0D. -(œ`‚-),-%!*,+,E-.E/012 3"'4"V5$6&9 Òÿ !‡ "#"(")$'()()D. &(œ`‚&)%&%!$%%(&A((A",("-$+,-,-D. *(œ`‚*))*%!')():*+,-. /"0y1$  !‡ "'#A'%A")%"*$()*)*D. '(œ`‚')&'%!$&%(&W((W",("-$+,-,-D. *(œ`‚*))*%!')():*+,-. /"0z1$ XA‰�SA MAB$à?CDE¸…ëQ¸¾?)\�Âõ(¼?FªLXèz¶ë?ìQ¸…ë±?)\�Âõ(Ì?ìQ¸…ëÁ?ø?@T@…ëQ¸…ë?×£p= ×Ã?€T@\�Âõ(\ï?Ð?ÀT@š™™™™™á?áz®GáÊ?U@{®GázÄ?333333ó?@U@333333ã?¤p= ×£Ð?@œ`‚€U@@es-8RÁð?/°`‚0¸`‚333333Ã?¤p= ×£À?ÀU@Ãõ(\�ÂÅ?{®Gáz´?…ëQ¸Õ?ö(\�Âõà?{®Gáz¤? ×£p= Ç?{®Gázä?¸…ëQ¸®?ÍÌÌÌÌÌì?ffffffæ?¸…ëQ¸Î?Z@ÍÌÌÌÌÌÜ? ×£p= ·? ×£p= ×?ÀZ@×£p= ×ã?š™™™™™¹?Ãõ(\�ÂÕ?\@€\@R¸…ëQØ?G$a‚    ®Gáz®ç?ÍÌÌÌÌÌä?-DTû!é?-DTû! @@]@š™™™™™©? ã    o      HÏ# vI €I   €3 # * 3# *   › À ) !  # #!)!   # #!)! #*#* ›À)!  # #!)!  # #!)!       ä ‡           !!!0 "0€/ €333333ã?%&àäcAü©ñÒMb€?3333333Ó?ô% ‚‚‚‚?!)!)!) <  #! #! v!  #! #! º ‡  "I P€"I P€"I P€ ! " # $ à?IP€“w   ‚‚ƒ  Ÿ ‡   Ÿ    Ÿ Ç   S      ›     FFFF F F FFF+  #*  å )  å )  +#* å ) å ) – å ) å ) ›À' ) )!)! ) )!)! º   ! """v!#" æ#™%($¤&…'¤&"¸( v)"–*I -°°‚I  /¸°‚3  ‹0!"#  ###½1$ %"# $$$%2$'FFFFFFFFFF#(')*+,-.3/$0%1& 222�435465$6( ((()7(5+.8(/97+.,-L+0'1)2:3/'4/536;7(8)9* :::0<; 0 :+ðÿ+'(,=(->).?)0?'/0@031;2(3)4* 5550<6 + (+A).?',.B-"#0+!/0)0"!./0#1+!01)1"!/01I 3 2/¸°‚202I2 1-°°‚1#21330#41)92C)89 !5.8 999v)!89,):3C)9: !689)94C)89 !7/8#83#;4#<2"9;<3;3#:; ;;;7; >>>‹0?8@9A:> AAAºBÇC;D<E= FG>H?I@FGCHCICJ(K)L* MMM0<N A AAA7PSQRLPI WWWv)!VW([NM \\\v)"Z[\"YZ(ZSF#XYZ*WXY!UVW XXXv)!WX(\NM ]]]v)"[\]"Z[#YZS*XYY!VWX WWWÆPX‡YLZU\¤&([\Z\M]V_¤&'^__F`GaH bbb|S#cTOW  WWWÆPX‡YLZU\…'([\[\M]V_…''^_Z_F`GaH bbb|S#cTOW :P¶ÿ5PS?T\U7PSQRLP(V¤&Z…'[¤&"YZ[(ZSF#XYZ*WX]!UVWW¤&[…'\¤&"Z[\#YZS*XY]!VWX WWWÆPX‡YL(ZN^[U\M']N_^V_F`GaH bbb|S#cTOW :P×ÿ PPP‹0QRSPSTUXVW8VN)[Xa'Z[`IZ Ycˆ±‚YI Y]Y \/¸°‚\Z\IY\Y [-°°‚[ \\\K ( ( *¤`€#Ü.q>)?)@'%#) AG#) B'#, KAA *¤`€#à/I  D a€# )F'I   0`€"#)G#) )!! !I P`€)I   0`€"G#')")#!!"#I! P`€ ) I ! 0`€ " #!)()E!h0I  P`€# ) )'GI   0`€"#)G#) )!! !I P`€)I   0`€"G#')")#!!"#I! P`€ ) I ! 0`€ " #!)()!m1) 'H) G#¶2) GA)ID. `€J #!D. `€û3<. `€� 4D. `€ 4) Fõ5)K)L'MI   0`€"#)G#) )!! !I P`€)I   0`€"G#')")#!!"#I! P`€ ) I ! 0`€ " #!)()!c6E7D. `€E7Ä8) N'#Œ9 +O4;»<»<P%0&ÍÌÌÌÌÌì?+ffffffò?`€ffffff+@š™™™™™©?š™™™™™ñ?!0`€@@ð?PüsÑ]å@fffffÆ_@33333{s@)P`€š™™™™™™?š™™™™™ @"@ú~j¼t“ˆ?š™™™™™"@1@š™™™™™É?,1x`€333333ã?Ð?š™™™™™é?¤p= ×£À??@š™™™™™á?š™™™™™¹?/'¤`€234567.89-:;<=+ÿÿÿÿ,ÿÿÿÿ-ÿÿÿÿ.ÿÿÿÿ/ÿÿÿÿ0ÿÿÿÿ1ÿÿÿÿ2ÿÿÿÿ3ÿÿÿÿÿÿÿÿ4ÿÿÿÿ5ÿÿÿÿ6ÿÿÿÿ7ÿÿÿÿ8ÿÿÿÿ9ÿÿÿÿ:;ÿÿÿÿ<ÿÿÿÿbX9´ÈÆ?ÍÌÌÌÌÌÜ?ffffffÖ?š™™™™™Ù?> a€¸…ëQ¸ž?ffffffæ?@ffffffî?š™™™™™@{®Gáz”?ffffff@à?@ø??Ÿ5)')!)')!)')!7ü©ñÒMb@?š™™™™™™?ú~j¼t“x?ú~j¼t“H?yé&1¬Œ?”ö_˜LU?yé&1¬|?;ßO�—n‚?Ã) Ç™›¼ # # ! I  @€   i    † ÿ  ™ 6  ™ ˜  ›)  \  �  �  » » ¸ ¸ J J ï î D  öP .€  :    ˜  k]¡ »   D! æ") #!  ) $!  )%" )&)'»î»% .  : î(  ˜  k]¡ »   D! æ") )"   ˜ ))! )*! )+),»î»%   -   öP G(€ ¡/î(Q0'.#kI  2Ä@€# !  ¡/î(Q0'.#kI 4Ì@€#"  º5Ç6 ˜ )7! Û8k9)))   Î:]¡ » §; \< ¥M ¤   ÿÿ) =! ˜ (> B?‡@(A(,(='A'B'=   Î:]¡ »'C) D" I FA€#!  äGH'CII ! " ###Î:$]%¡ &»' äGH˜ 'JII ! " ###Î:$]%¡ &»' º5™K LMMM   Î: ]!¡ "»# º5™K(N LOOO   Î: ]!¡ "»# NP\<¥M ¤ ÿÿ)=! ˜ (> B?‡@(=(,(A'='B'A   Î:]¡ » )D" I FA€#! 'C äGH'CII ! " # $$$Î:%]&¡ '»( äGH˜ 'JII ! " # $$$Î:%]&¡ '»( º5™K LMMM    Î:!]"¡ #»$ º5™K(N LOOO    Î:!]"¡ #»$Q#@@€ABCDE ÍÌÌÌÌÌì?Fð?GHI ÿÿÿÿ ÿÿÿÿÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ J   KL333333ã?ffffffæ?à?ÍÌÌÌÌÌø? ×£p= ·?"333333Ó?š™™™™™Ù?ffffff@)\�Âõ(¼?M333333ë? N>Ä@€)Ì@€OPffffffò?Q-DTû!ù?RSú~j¼t“ˆ?)\�Âõ(Ì?TU)\�Âõ(¬?¤p= ×£À?{®Gáz”?š™™™™™á?1A€VWºI +‡–?ü©ñÒMbp?XY¥½Á&£?À?¸…ëQ¸ž?Í € I RJ4 €Z[€%\]€�± R¼ :›  k   » ÿÿ  † ™ 6™™˜  ¡ î # ! ˜››#\ ��» » îD Dæ™ # !˜ !# !  › !# "  #  "#  »  î » ÿÿ  # ¡îQ%'$ º& Ç' ™# kI  *¤€‚# !  ˜+# !  ›#kI -°€‚#"   Û.k/ ### Î0 » ÿÿ1\J" 333333ã?BDE ¸…ëQ¸î?Fð?{®Gáz”?ÍÌÌÌÌÌì?Gð¿HI ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿ  ÿÿÿÿÿÿÿÿ ! KLš™™™™™Ù?333333Ó?š™™™™™¹?M333333ë?NOP>¤€‚ffffffò?)°€‚Q-DTû!ù?R–  IL    :ùÿ %¥5 ½Lu ˆ     öP €  ¡   ¡ î6 Z Z ™ ˜ ' ˜  ›  ܼ#( ‰  Q¼# “ J4  P0� 6 Z Z ™  ˜  › "  ‰ ¼) “ J4  P0�  q  6 Z Z ™  ˜  › q) ‰ q) “ J4  P0� :Šÿ^0# "_`aÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿú~j¼t“h?2NZ]P0� ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿÍÌÌÌÌÌô?ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿš™™™™™õ?ÍÌÌÌÌÌÜ?´æ5§\FME› ÿÿ˜(55  7 5   7 5   7 5   7 5  7 7L5 ™  !  !) "7 J4   0°€ :íÿN\FME™ ÿÿ˜(55   7 5   7 5   7 5  7 5 7 7 L5 ) " !› !7 J4   0°€ :íÿöP€ ¡  ¡î€¼#)5 ™  ˜(  ›7 J4  0°€8#* ) ) 5 ™ I  h��#! ˜( ›I  p��#!7 J4   0°€ 9ÝÿS)\�Âõ(Ì?š™™™™™©¿š™™™™™¹¿š™™™™™©?¸…ëQ¸¾?-Cëâ6:?Z]0°€ " ×£p= ï?b-DTû! @@ @>h��)p��ÅÏA @ @ @ @ @5@F@F56 1 2 ' 0Ì5¦6(4" )3!  ™  À7 é8 î6 I À7 é8 î  J KLMÀ7iNO PTQ   RSTUÀ7iNVBW:X  YZL[À7é8 \#Q ]^T_À7iN`BaX 7 Ib@cFdeòf[Ùgh+iÝj¡k@l@ mF n@ oF ˆp@ qFF r@ s@ t@ uF q#@ v w  ix@ yFFF6 ‡ À7 é8 î Rˆ@ ‰F ½Š@ ‹FFF@ ŒFF F  o�@ ŽFF O�@ �F †‘’c@defghi…ëQ¸…ë?Àš™™™™™™? Ãõ(\�ÂÕ?  @†ÍaA  è?ð?š™™™™™©?ÍÌÌÌÌÌD@š™™™™™¹?H@333333@333333@S333333À333333Ó? ÿÿÿÿ ÿÿÿÿ !"#$%&'()*+,-./0à?ÍÌÌÌÌÌÜ?jkl@333333@q= ×£pÀú~j¼t“˜?€GOcAÍÌÌÌÌÌä?333333ë?{®Gáz¤?š™™™™™J@R¸…ëQ¸?Q@@š™™™™™ñ? 9 : ;<=>0ÿÿÿÿ?@AB!C#D%E'F)*+G/HmÍÌÌÌÌÌ"À\�Âõ(\ï?áz®GáÚ?nÍÌÌÌÌÌì?33333³N@ @offffff-Àö(\�Âõð?¸…ëQ¸Þ?ffffffæ?ÍÌÌÌÌìP@ffffff@pš™™™™4Àš™™™™™Ù?fffffFR@q€9Àq= ×£pÝ?š™™™™™é?š™™™™ùS@%r;ßO�—nr?$sš™™™™™@?&t#0u  vA w@ú~j¼t“x¿¸…ëQ¸ö¿"9´Èv¾Ÿª?)\�Âõ(¬?ÀNcA333333ã?{®Gáz”?33333ÓV@ð¿ÍÌÌÌÌÌ@ z { |}~€ÿÿÿÿ�‚Oƒ!„#%…')3+G/†\ ^ xyz ‘Ë ui/interact’jÔî?rLmotioncontrolsdragdownXdownY startValuespangrab lastAngle unwrapped pressedBoard pressedInfo pressedHit pressedPx pressedPy hoverBoardtappedlastHithidden bookLockedstartedkindnoneinfotlxlypxpymathabsartpanelx0artXwx1y1artYhy0 rayFromPixelxyzspreadpanelsvisiblerolesealpieceraycasttabdoordialplainartPxthetacossinBOARD HALF_DEPTH PAGE_WIDTH PAGE_DEPTHbookleftPagepage rightPageatan2byNamewardrobe wardrobeDoor transform clockDialclockpointXYZcenterXcenterY rayPlaneYpointerDownInnerpickopenproject OPEN_DRAGclampmoonTboarddownmoon slotLengthDOOR_MAXmoveexitvel CLICK_SLOP FLICK_MIN FLICK_VELrelease releaseTargetupcancelrequirefoldlayoutgfx/cam gfx/panels ui/motionnew pointerDown pointerMove pointerUp pointerExit6m÷p6$V5–% ð?    ÿÿÿÿÿÿÿÿÿÿÿÿ   ÿÿÿÿÿÿÿÿ !"#N W# # "# # "# # "##!#!I € "#"#!"#!$#!"#!"#!"# # !# !# # !#!  !€ê-�™—q=k (eM€p¦ ð!  –$  ‡ ¦" # !† É!  ‰$  † § " # " "#$%&'()*+†*"*ïV]š• Z     ™ ˜ ›  ™ ˜› m . m Æ L!   P–f  ¢p      M :ÞÿM%•š`A PPPP€]] ÆdEI   |à�I "„à� Â#      3 # #  !!!å$"#$%&'ÿÿ (((% )))2&B'M •  (]š• ¢æ)      M• B'*(]š• ¢V+  ! " # $M •  *]š•,ð,-./0123456#789:;< =|à�>„à�?@ABCDEF‘[ Z# # "# # "# # "™#˜#!›#!I @€ ™"#˜"#!›"#!$™™#!"˜˜#!"››#!"# # !# !## !# !J  @€ ,-./ !@€•Ö&è .>G @€Ô 6m.±›Æm.±µÆÁ Á D     # !  # ! # !        0HI1JK ê 3m.±lm.±ŒÆ ô  š  š �  Á             0HLM1NOPKô   Z   ¹  M€™,Qü©ñÒMbP?-ý" ( ' !   -DTû! @-DTû!@-DTû! À †         … ÓR’  èàß ‡      ]P B€  … ÷ v ¬  å )  K         K    3  " I @ð€)È ##D. Lð€  ¸  D÷   P &€  Z     ¹   M €  ™M   … D p ¦ ¬   P € A D     M   …    ! p � ¬   P "€     M  " …    ! p À" ¬   P )#€ š$M  e% M M  “& .' —( d) E* �+ š,  “&-d)E*  !.  P /€   0SCT333333Ó?@UA×£p= ×ã? !@ð€VWLð€  7,Qü©ñÒMbP?-X8  95"Y Z˜  /Ž…P€  … ÷ ¬à"¸$ !    P8€  Z      ¹    M €  ™  m  .  ±  +M  p¬D"  š$! D. P0�  ¦  P1€      M % p ¬"  ( '  !  !  AD. P0�  �  P)€      M  p ¬"  ( '  !  !  À   . — M $M "  ‡!    š  d" E# �$ š%  &�$š%     ‡!    šM  ]'P(€ e) M  “*ÿ+M ,ÿÿÿÿÿ+M & d" E#M€-C 7,Qü©ñÒMbP?-0H[ \ WP0�X8 -DTû! @-DTû!@-DTû! À ]9 S^5"Y_Õ  Bà"à"I € ß" I €!÷´¬  ô   # Ÿ  X   3  #   !€`à?aVbcŒ l…  …P€  < ÷  Ì      P   . —  .  —M DM B  ‡    š       d  E  � š   � š  à"I D�ß"I D�! O !O  f  Cde Sf !D�5ž …:…P€ <÷…ÿM Mÿÿÿÿ ÿ.M Mÿÿ ÿÿ .—! Ó   Cd_ ¼ �gÏ fA @ @ @ @ @5Aô    X Ÿ@ï@@Æ@FFFFF‡@F@F@ FF@ F@ @ F e@ FFFFFF  @ FFFFF  ’ @ !F Ì"@ #FF S$@ %F �&@ 'F ß()h@ijklmÒ!3|Ù@]aHáz®GÑ?VÍÌÌÌÌÌÜ?cbn;S o R p e qgr ‘Ë gfx/env/pass’jÔ÷¹ÓlistgpurangerangeLo GPUBuffernewsizeusagevertexlabelSTRIDE candleDetail CANDLE_MOTES BEAM_MOTESbuffercreate MOTE_STRIDErngrandwritef32data immutablemotesbuildboxcylspheretoruswebenv-boxenv-cyl env-sphere env-torusenv-web CANDLE_DETAILtapertaperLochamberstickpuddle candle-tapercandle-taper-locandle-chamber candle-stick candle-spillcountuploadstickLo chamberLopuddleLotaperHi BOOK_SLOTdetachMATBOOKhexf env-curtainsWINDOWx0x1putzIDENTITYCURTAINrodBRASScurtain chair-box chair-cyl chair-sphere chair-toruschairprintstringformathenv: your chair: %d instances (%d boxes, %d cylinders, %d spheres, %d tori), drawn once you have left it shaders/roomshader shaders/motesshaders/room_blitshaders/room_mask-env: shaders/room unavailable on this backend.env: shaders/motes unavailable on this backend2env: shaders/room_blit unavailable on this backendmeshes motesShader blitShaderGPUBindGroupLayout groupIndex room-frame roomLayoutopaqueblendedheld motesPipeblitPipe blitGroup maskShadermaskPipeblock room-mask maskBlock maskGroupmaskQuad maskBoards maskCountlayer GPUSamplerminlinearmag layerSamplerroomKeymainKey FRAME_SIZEframe MOTES_SIZE motesBlockgroup motesGroupstaticswebs candleMeshes candleStaticsflames env-dyn-box env-dyn-cyl env-dyn-torusdynenv-heldheld_env-held-drips heldSphereenv-held-brass heldTorusenv-held-taper heldTaperenv-held-chamber heldLatheenv-held-spill heldSpill room-blit blitBlockdof heldInRoom moteCountstats instancesdiscsfallBook GPUBindGrouplayoutubosslotŠenv: %d books on %d rows in %d units; %d room instances (%d boxes, %d cylinders, %d spheres, %d tori, %d webs); %d motes; %d mesh verticesbooksrowsunitsverticesLAYOUT GPUPipelinefragment vertexLayout colorTargets depthStencilcullModeback sampleCountblendsrcColorzerodstColoronecolorOpaddsrcAlphadstAlphaalphaOp depth32floatcomparelesswritegetBindGroupLayoutbindGroupLayoutsone-minus-src-alpha|maxnonealwaysmathfloorwidthheightcolordepth room-layerroom-layer-depth bindLayertexturessamplersviewsamplervec4viewProj writeToBuffer MASK_INSETflushvec3weyetimelight intensity lightColor lightSoft roomLight moonTravel moonColorambientencodesillspringbartransomFLOORhazeglowshaftDESKz0z1top deskPenumbrabookX0X1Z0Z1 highlightdreadskyDist windowRadiusDOORlantern lanternLevel doorLight doorAnglexWALLhallColdDOORWAYoxoznxnzaxaztableclearsourcessamplegameTimeendingendTentryAgewarmflameleanXLIGHT_CENTROIDyleanZlevelpowerreachsmokeemberinsertSLOTSpool poolColorrightfocalup candleColorcloudfocusaspectminPxdynamiclathespillsetVertexBufferfirstdrawloadOpstoreOpstore clearColor depthLoadOp depthStoreOpdepthClearValuebeginRenderPass setPipeline setBindGroup QUAD_VERTSfinishrequire gfx/env/mesh gfx/env/build gfx/env/room gfx/env/propsgfx/ubo gfx/targets gfx/holdergfx/env/candles gfx/env/lathe gfx/flamegfx/geom gfx/paramsstridestepModeinstance attributes float32x4offsetsetCandleDetailbuildPipelines buildLayer setBookMask writeFrame writeMotes updateDynamic renderRoomsetDof drawLayerdrawHeld drawChair drawMotes  6   P€6 Î #ã &ñP€  ÿÿÿÿ ÿÿÿÿ ” "à? Ÿ " M à?££ … !  € ß# “’(8~ ß# …   @  ? ›5'4 ‡1'>? ›5'4@@  !!!’&!!vA"B5 ¦0(C ‡1'C7L º2™? ›5'4 6DDD ! """’&""vA#B:åÿ56# 4 ± ¡E&6# 4‡±‡‡&6# 4±&6# 4™±™™&6# 4DZÇÇ&7‡!™!Ç!`!6F   G‡   H   I™  JÇ ÀK MÀD P<á„Q‡!™!Ç!‡™Ç56# 4‡±‡‡&6# 4±&6# 4™±™™&6# 4DZÇÇ&7RSTSUSVSM€ MÀDWM€ MÀDXM€ MÀDY 5±ZS'[°\M _xÑ…6cS@d efùg_hÇiáj^k=l �mPn!oÂp-qtrÆsõt vxQ‡6z{|}|t~ �m  ôb½€ �m  ª�‚çƒä„…§†6# 4`±`‡&Œ‡þˆ š B"‰QŠ5~‹6Œ   � ‡‡  Ž   � ÇÇ¥�  ‘’’  “™�”  •Ç–  —R" ÿ˜  ™î  Èš  ›æ »!”œÀK �m�*ž5 7àŸÊ ~‚ó¡A¢Ç£  O¤ž¥@dM §xaŠ6ª¨56 ¬!½€!!±! ±7 ©ä„ MÀD P<á„­ "®!e¯"·°#$‡$$%%%&™&&'Ç''(`(()*ر ² !"#$%&'()*+,-./012345678@MQcA9:;àŽaA¸…ëQ¸®?<=>333333@q= ×£pÝ??@…ëQ¸…ó?š™™™™™@Aš™™™™™@333333Ó?€hNaABš™™™™™é?)\�Âõ(#@333333³?Cà?333333ë?)\�Âõ(Ì?DEFGHIJÀDKL<á„MNOPQRSTUVWXYxÑ…Z [Sÿÿÿÿ`.ab\]^_`abcdefghijklmxQ‡nopwxyxqrstuvwxyz{|} ~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™xaŠš›¨©œ«.ÿÿÿÿ�žŸ ¡À J‡¶@5  7‡M…Mƒ^M< P€6  š É   Ì 5 6  �6  ö7  á 6 $ s =%=%M '`‚6 *  S+  (5 6 / !0 ±. ±.7  )  Â1 P€6 3 š É  Ì 5  7  >25 6 4 �7  á 6 $ s  5 P€6 3 š É  Ì 5  7  >25 6  �6 7 ö7  á 6 9 s : ;  ; 1 t<t<M'M% P€6 = š É  Ì 5  7  >25 6  �  ö7  á 6 $ s  Mù>'?MDO€6 A6 B P€6 D š É 5  7  Ì 5 6  � ö7  á 6 9 s  M  _E _EM  '`‚6 * S+  (5 6/çF±.±.7  )  G °HM P€6 I š É 5  Ì 5 6 4 �7  á 6 K s  M  ÇL  áMNO\¢sc£P€ ¤¥¦§¨©ªð?ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ L«¬­®¯°±²³´µ¶·¸ !"#d™`‚š›()¹œ,-.ÿÿÿÿghºÿÿÿÿ ÿÿÿÿ ÿÿÿÿ2ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ]»6 !"8^¼tÿÿÿÿ ÿÿÿÿ ÿÿÿÿ2ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ_W½@@¾ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ ÿÿÿÿ Cÿÿÿÿ`xzX ¿ J"8abÝ O' I  €J €'I  €J €õM÷ ÜD � !6 D      D        ÷Üõá ìà?ÀÁ€½€lÂÃÄLŠƵÇbȳ 2>ÇõM8M6áM2€ 0€6 S 56D``756ò7�56*±±7 áalb™0€šÉÊ› ¹œË ÿÿÿÿÄð?Ì ÿÿÿÿq@ ÿÿÿÿ‘    0 Íô ‡‡-tÆijkû�½&£I£!&I !&@ Î  u! Ù@ü j  ÙPï r  `E E  E   í! p  0 G €  0 ¼ �  0      $ Ì °¦‡ º  À› '  v Ð   0  à   0 K ð   0  4! ¦ ‡ ¤" …# ¸$ 3%  W&      0  0 Æ'  §(  Ä)  ¥*"+ @    0  P`, �- æ.   r/ !  æ0 Ù  ä1 ±2 0 ÿ3 à4 ¤" …# @ ™5  ^7) 6"  ¸$ ™5( 8 …#¤""  P —9 ": à;  à;  Ä<  € g= %> f? $@  � uA 7B ™5 ¤"~C FA„  IG  Ld  H j îI0IK0JTL0¡M4N0  qO  j  `( Q)P!™5hRÜS# ÙT#!˜UÜS ÙT#!›mVÜS# ÙT#! �W óX# à( Q)P! �W Y EZ  [J4 ]pA„:›ÿ  IG4 ' Q ¡^ 8   ( Q)P' _œÿ    ( Q)P' `6 9çÿOa   8 !) b' b4   ) P'c' Q ' d ' e ' b    ) P'c 9 ßÿ bf gM M     `    0     p    0     `     p   u ½ hvÎÏgÍÐÑÒÓÔÕÖרÙÚÛÜÝ;<=Þß?àáâãäåæçèéêëìíîïðËñòóôõö÷øùà?úš™™™™™É?û ’üýþÿ€�‚ƒ„A„…†‡rˆ‰Š‹Œ0@ð?�ÃŽ��‘’“”•–pA„—ƒ@‡@—@v@@@˜™ÿéç&£I Ù@üj ÙPåQ Ù`S Ü  Ùpï r Ü €  0 ¼ �  0  G       Ì  ° ¦ ‡ º   À ›  '  v·   Ð   0  r !  v"  3 K   |à� $  ¦ ¦#! J  #ˆà� ( ! ‡‡#! J  |à� ' ! ›#! ' !   à v›«$    ð" v"›"     $%&'   u( ç )xÎÏÒÓÔš›œÃÕÖ�ÍÛÚ;<=Þß?àáâžóš™™™™™¹?À½|à�333333Ó?nˆà�ŸÝ ¡ÑÜ‚‚‚§¥ S6‡ ‡ Ç Çž   5‡Ç7L    &   Î #Ò :åÿ’ � Ò 6  ™ Ç ™È P” à 0  5È”7L    &   Î #Ò :åÿƒ¢˜. ¸…‡‰$£¤‹��ú  ‡Mdd U´¥.¦§’. d h€´Ú€¦Ú»õ äM€65 6  D ` ` ¡ 7  D6   ` ` sq= - tM'M%M #M ! Æ    ñ   †    d    d   gÆ ´ MáMß  ñ   †  ± ± þ  ± Q!L *±"&#ñ$"%& MM dd"U'´: Õÿ §(L ±"&#M dd"U'´: áÿ5 ¥)‡*¥)+¥)Ç,7 L - ."&#M dd"U'´: ßÿ Ê/  È0 -È0 ."È0&#È0ñ$"%& MM  d d"U'´ ’1 -’1 ."’1&#M  d d"U'´ �2 -�2 ."�2&#M  d d"U'´ 3 -3 ."3&#M  d d"U'´ ”4 -”4 ."”4&#”4ñ$"%& MM  d d"U'´ 5 -5 ."5&#5ñ$"%& MM  d d"U'´ 6M . ñ†Œ7±Œ7"Œ7&#M dd"U'´ ÿ8 9l]yħ˨„©ª«ÿÿÿÿ ÿÿÿÿ¬­®ð?ÿÿÿÿ  ůdhijk°±¥²§V}~. à?¦{ƒ“�…‡‰�‹^|³� .BàK    €K   €   Ê  * &        u  * ’À½ €ü©ñÒMbP?“Í‘Ñ×ÇáMM€ñ†´ab°±§ä; '7;EyŸÅëŸÌùäM&M$Ê ’ O€� O€ O €  O€ñ † ± ± þ± ÈÈ  È & È ñ "   M   M     d    d    U ´ ’’ ’&M     d    d    U ´ �� �&M     d    d    U ´  &M     d    d    U ´ ””  ” & ” ñ "   M   M     d    d    U ´       &   ñ "   M   M     d    d    U ´ _y“….‡‰‹°±V}� à?¥¦§�ñ <ùäMM€ñ†±±ÀL ±  &M     d    d     U  ´  :áÿ _y°±VI.¥¦§ˆ "_~MMM€ñ†dó´`z°±¥”§– ïA @ @ @ @ @ @ @ @  @  @   @   @  5    ô  ª  ß „ … Ü   Î6 56!6$6'6*6-607 J61562647J5456789:;<=>?@ABCB7DECFGHIEJKLMNOPQ7RSTUVWXUYZ[U\]^U7!M_`71@aF@b Äc@d@eF F@fFFFFFF FFFF FF ïg6q@rFF F FF ƒs@tFF  (u@v ìw@xF@y Ãz@{FF FF i|@}FF ~@FFF j€@�@‚F  +ƒ@„F w…@† ȇ@ˆ ò‰@Š Ú‹@Œ \� Ž´@µ¶·¸¹º»¼½¾¿Àuw ü©ñÒMb€?ÐÁX@ÂÃÄÿÿÿÿLÅœ@Æ @0@"#@@@%&@H@()@P@+,@T@./&ÿÿÿÿ  ð?3#333333Àø¿q= ×£pÝ?š™™™™™á?…ëQ¸…û?)\�Âõ(Ì?333333Ó?333333ã?@¸…ëQ¸ö¿Ð?ÍÌÌÌÌÌÜ?ÍÌÌÌÌÌÀ¸…ëQ¸¾?š™™™™™Ù?333333ÿ?š™™™™™á¿š™™™™™¹?ffffff@ÍÌÌÌÌÌÀffffffþ?š™™™™™@ÍÌÌÌÌÌÀÍÌÌÌÌÌô?š™™™™™Ù¿ÍÌÌÌÌÌì¿\�Âõ(\ç¿Ház®GÑ?à?ÍÌÌÌÌÌ@ffffffö?š™™™™™õ?à¿ffffffÀ333333û¿ÍÌÌÌÌÌì?ÍÌÌÌÌÌ@š™™™™™É?š™™™™™é?ÍÌÌÌÌÌ@š™™™™™Àè?333333@333333ã¿Ç¬¯®»°±²³´hijklmniokpmÈÉÈ Ê Ë Ì Í ÎÏÐÑÒÓ ‘Ëtypes’jÔ”requirelayoutgfx/cam gfx/candlegfx/geom gfx/atlas gfx/shadowgfx/hdr gfx/scene gfx/glowmask gfx/phosphorgfx/contact_ao gfx/flame gfx/bloomgfx/post gfx/panels gfx/figure gfx/ghostfog gfx/smokegfx/sdf gfx/env/pass gfx/env/build ui/motion ui/interactui/matchui/gazeui/doorstory/autoplay story/puzzles story/house story/figure|A @ @ @ @ @ @ @ @  @  @   @   @   @   @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @5 @     ‘Ërender’jÔݱðmathclampsurfacedbgdither ditherWidth DITHER_WIDTHfloormaxMSAA pixelRatiopxPerPtMIN_PIXEL_RATIOresScale RES_SCALE stageScalequalitymaxMP MAX_PIXELSsqrtfeaturesmaxTextureSize2D MIN_WIDTH MSAA_MAX_Q MSAA_HIGHSIZESPageLeft ATLAS_PADbyNamewscalehminnamexyRiffletostringceiltableinsert riffleFaces riffleSetFaceadvancedrawinstsstaticserrorno artboard instance for ATLAS_TIERScloneClock ClockDialpack PIECE_TILESpieceWpieceHpiece PAGE_BOARDSpageWpageHpageCovercovernewpieces pieceAtlastwins twinAtlaspages pageAtlasclear pieceItems twinItems pageItemstileartLpanelscastsboardtwin riffleTiles TurnFrontTurnBack pieceTilesprepareprepared preparePages pageRectsmoonrole moonPanel atlasTier pagesDirtyinkcontextsceneshadowflame pickFormathdrcanvassizeT RESIZE_SETTLE internalW internalHmsaa| builtFormatbuildPipelinesfigGfx buildPipelineghostFogsmokeenvphosphorpacked PHOSPHOR_W PHOSPHOR_HMAP_RECTtarget bindShadowpcf sampleViewcompareSamplervsmmomentsviewsampler frameBound bloomPipesformat pipelines builtSizewidthheight gpuCanvasresize levelsFor BLOOM_LEVELSBLOOM_REF_WIDTH BLOOM_RADIUS bloomRadiusbloompostbindoutputbuildAgeprintstringTbook: build %s (surface %dx%d pt @%gx, stage x%.3f at %g,%g; bloom %d levels r %.2f)boxWboxHstageXstageYroomResROOM_RES buildLayerlayerbindRoomdepth ATLAS_HI_Qbook: atlases tier maskao mapSampler bindFrame pcfShadowViewpcfShadowSamplervsmView vsmSampler phosphorViewsmaskViewaoViewviews bindMaterials bindAtlassdf bindAtlases bindTwinsout techniquespipeline shadowModePathmoveTolineToVectorxyPaintwithcolorstylestroke thicknesscaproundjoinColorrgbadrawPathgame hintAlpha HINT_ALPHAhintKeycameraspread AFFORD_MARKpointXYZprojectclock clockDialinfocenterXcenterY transformcossineyeheadXheadYzheadZ FIG_HEAD_RFIG_EYES_FRONTcardSizeFIG_EYES_SCALEeyeQMat4valueshooksendinglosepose swallowAgeHALL_SWALLOW_TIME HALL_SWALLOWDOORschedrushvisible worldToDoor HALL_BEHIND doorToWorldlanternZlanternHALL_BURST_LIGHTbindingendTsnuffaway1BINDINGhallDimxyzhallColdHALLx0x1DOORWAYoxoznxnzaxazz0 LIGHT_COLORREADERwindowlevelpoolreachsoftfigInsteyeseyeClosehiderendersetCardDESK writeFrameviewProjencodedeskdeskTopwallX wallThickdoorZ0doorZ1doorTopdoor0door1timeglowz1topWALL FIG_EMISSIVE FIG_EYES_GAIN FIG_EYES_DARKdarkeyeGaincandlewickcarryHAND scaleCageguidealpharisegripswingpress pinchOpenpinchwithdrawshoulderedgeoutwardinner coverCentretowardhandshXshYshZ FLAME_HEIGHTflickersizerigtipswristleftPagenormaldrop CANDLE_CLUTCHLIGHT_CENTROIDleavegazebegintrailpathstrandsforearmwarmtrace sigilFade sigilSmoke sigilWidth sigilPointcurveinhale inhaleReach PAGE_WIDTH HALF_DEPTH inhaleSwirl MOON_DIRECTfinalereader inhaleGlow inhaleHand emberLightemberfinishlight intensity lightColor lightSoftambientrimopacitynoiseflow LIGHT_SIZE NIGHT_AMBIENTFOGfogactivefogCapresLowresresHighstepsLowsteps stepsHighFLOORpresencecoreSoft coreErode coreAlbedolingercorebodyhemR shoulderRbankSoftsurgeAge galleryMistbankbankMinbankMax surgeTime surgeFromsurgeTo surgeTravel surgeFromXsurge surgeLife gatherAge FIG_STANDgatherRgatherfsleeveRsleevepourpourFrom pourReachpourTauexppourH pourSpreadpuffSlamslam inhaleLiftwrite invViewProjboxMinboxMaxcandleI candleGain candleColorhallhallIhallGainhallG hallColoreyeLeyeReyeGloweyeSoftcandleGeyeColor smokeAlbedo FIG_FOOT_Rcore0FIG_SHOULDER_Rcore1core2core3bank0bank1 surgeDarkfogDsleeveAsleeveBpour2puffwarpbankBackbankVeilroomenvGlowdoornightextalbedoerosionlookinhale2 benchPass benchRepeatSPOTSchapterturnkeyframesbaseXbaseZtruthevilRectlxlylzinvframerectTREMBLEimageWtravelSimageHtravelTsolidMORPH PIECE_BOARDsdfValidsdfEveryeveryfreshcomputesdfRectnsdfNtexelPx sdfTexelPxtileW unitPaperunitWunitEvilboilboilFreqspeed boilSpeedboilWarpbiasboilBias morphDithercasters THREAD_TRACE THREAD_REST THREAD_DECAYpanelfoldscharmwindpuzzlesposgustbrightdrawFace drawGlowFace isCurrentslotsupdateparamsSHADOW_RADIUS_TEXELSVSM_DEPTH_BIASVSM_BLEED_REDUCTIONquadpageList pieceList casterListaoCards visibleTilesatlasAllmotionopen PageRightleafU pageFaces pageStatic pageShownglowingglowed drawPagesglowKeyLglowKeyR panelOptsquiverticklightPosevilKey evilCasterssetEvilcardsflexsetWindwindAwindBgridon gridVertshiddentbyKeyfreedfreedT THREAD_DELAYmapUbuildscratchupload pcfGrowthSHADOW_RADIUS_GROWTH SHADOW_BIASSHADOW_NORMAL_OFFSETSHADOW_CONTACT renderedPossetTime integrate phosphorLog phosphorStepnewLogdtsetLightGLOW_COLOR_SRGB GLOW_STRENGTH inkGlowColorinkGlowMOON_DIR moonLevelmoonFillMOON_RISE_BOOSTmoonDim MOONSHINEMOONSHINE_TINT MOON_COLORBOUNCEgreenEXPOSUREexposure DARK_ADAPTadaptblackout GAZE_ADAPT gazeAdaptROOM_MOON_DARKhazeHAZEHAZE_EXTINCTIONGLOW_AIR GLOW_AIR_SOFTpenumbraSLAM_RIM TITLE_GLOWbookGlowbreathgilt inhaleTime inhaleRim lightViewProjshadowAcamPosGRAINpaperBUMPWRAP GRAIN_SCALEpaperA TRANSLUCENCY translucencyFORWARD_SCATTER FORWARD_POWERCARD_GROUND_AOpaperB CONTACT_AO EDGE_DARKEN GUTTER_AOCARD_AO_RADIUSpaperCpageRect GLOW_BOUNCEaa MOON_WRAPmoonDir MOON_FALLOFF moonColor BOUNCE_RADIUSbounceshadowB TABLE_ALBEDO TABLE_CONTACTHIGHLIGHT_KNEEHIGHLIGHT_ROLLOFFHIGHLIGHT_LUMA_KNEEHIGHLIGHT_LUMA_ROLLOFF highlightSLAM_RIM_WIDTH moonshineglowAircrease CREASE_WIDTH CUT_THICKNESS CUT_LIGHT charmColor charmLight CARD_BOUNCE PAPER_THROUGHCARD_BOUNCE_REACHfill roomFramedropFallblendsmoulder smokeMoonflamesmainPass moonTravel ROOM_LIGHTROOM_LIGHT_GAINshaftsSHAFTdofpullradiussetDofstrengthfocus poolColorROOM_LIGHT_SOFT roomLightMOON_TRAVEL_FILL MOON_PHASE_GgameTgameTimeentryentryAgeshaft DESK_PENUMBRA deskPenumbrabookDETAIL_THRESHOLDdread MOON_SKY_DISTskyDist lanternLevel doorLight doorAnglependulumlit heldBlend updateDynamic roomMinuteslatchbookFallfeetburn dropBasismotesfovYtandir MOTE_CANDLE MOTE_CLOUD moteLight moteCloud writeMotesrightupfocalaspectcloudminPx MOTE_MOON MOTE_MIN_PX setBookMaskroomMaskgpucount renderRoom clearColorCLEAR beginScene drawLayerflameFx drawFixed composite drawBoardscurrent drawCutouts chairShown drawChairdrawEyesdrawBackdrawHeld drawMotes drawPlayer drawFrontBLOOM_THRESHOLDBLOOM_DARK_THRESHOLD BLOOM_KNEEveildrinkveilGlowSIGILrveilXveilYringAringBveilTimeinkDark ringColorringGlowdrinkDimveilEdge veilFeather veilGrainveilFlowveilEaseBLOOM_INTENSITYgrade GRAIN_AMOUNTgrainVIGNETTEvignetteCAca sceneEncode bloomRangetonemap SLAM_LIFT GAZE_LIFTlift ditherLevels DITHER_LEVELS DITHER_GRAIN ditherGrainsaveMat2DwithTranslation withScaleshakeSHAKE_PXcursor hasPointerpointerX MATCH_RESTpointerYrestorerequirefoldlayout gfx/paramsgfx/cam gfx/candle gfx/atlas gfx/shadowgfx/hdr gfx/scene gfx/glowmask gfx/phosphorgfx/contact_ao gfx/flame gfx/bloomgfx/post gfx/panelsgfx/geom gfx/figure gfx/env/passgfx/env/candles gfx/env/roomui/match story/tune story/relieftypes gfx/theft gfx/smoke gfx/ghostfog story/figuregfx/shadowformsgfx/sdfgfx/wind story/puzzles gfx/bindhandgfx/ink story/bindingWHWitness ConfessionOath Sacrifice CoronationMoonConfessionShuttersPullTabReaderBOARDSeyePoint doorFrame hallLight coldLight poolLightnewPosecreatenewFrame windFrame,""$D. €#)G#€@@F"#!K *'*,?ÆÜµ¤?×£p= ×)@333333@áz®Gáð?)\�Âõ(¬?O¼Anñ,í í Ý 'I  `€J  $`€Z #  $ ' I  `€J  $`€  R F  F  û êJ  $`€  e # #Ï#a a) &  # # #     # $  I  X`€›À  #   $  x $ J   $`€    # ' I  `€ J  $`€   #' I  `€ J  $`€  $  Ü  Ï    R    & à?`€ $`€    €„.AX`€]o5 bÔ bÔ ¬ LW ±  – ¤#  ‰ ¤# " )$" )$J $€€ ) I   0€€*  858064'I? @A1Z ™# I X€€!#!™ ˜# I X€€!#!˜–‰ ¤J4 d€�9Ðÿ9Ëÿ:¨ÿ à?!$€€@�@0€€"#$%ð?&@A'X€€()d€��   M€ª+ O   Ò´*+@ð?,-– Á  § M€  @1./0 @1®    M€ª+ O   Ò´*+@ð?,-ÒÆ é  € blL ± äê  ‚  f  ¬  ± Œ  ² x ö  ¬ 6 « K ï ê  ‚  l ï ê  ‚  ÿ ï ² x ÛF l€ A l€ Z l€ e ä  LA6"±#  Ó Á$  §%  M€ '`B( 1e!J4 *¤€ :àÿ5 m+ Æ,  L  e! 9- M “.S/“.: ðÿ  ä  L "  M Z6"±#  Ó Á$ §% M€ '`B(1e!J4 *¤€: Ýÿ  Œ   L e6"±#  Ó Î  e!J4 *¤€: íÿ    ç0   L + 1O2€Îe3ν4e66Ó e!FF ´5J4 *¤€: âÿ×7  µ8 m+   ¶9  .:    X; m+ Æ,  L f P<€ =P!€ >: õÿû?  Õ@  «AB2(3€456789:;<=>?@ABCDEFGHl€IJKLM !./0`B1)¤€NOPQRS@ð?TU- !5VWXYZ[\]^_`¤'Ñ®r!qMMMM€n  K       bM  A    ¶  î  ð  :   1  0   0  ƒ     ƒ    �M   “     M  ƒ  EM “ œM ƒ «M SO€9  ï   @O Ϋ   µ MÚ!~"ˆ#M  µ#*$`%ò&%'2(M�)   °*2(+,-  1,ž,bM €60÷. Ü/1b÷.Ü/  .2 ï  K  i3 }4 5 ì6#É7M  ïr`% ü8P9M €  ï�)P9P9ü8MM  j:r`%7; î  ð  :U<A >ÐC @¤ðƒA!ØB' !I  E1„"!F'!"I ! E1„ !ûG"H#2I$(J%& M-K  KLD. N41„ `O (Pî #ð #õQ £RMSÚ!  $ ‡TûU    >ÐCV1P9Mü8M€Wabcdefà?ghijklmnopqrstuvAwxyz{|}~€�‚ƒ„…†‡ˆ#‰Š./‹Œ�Ž��‘’“”•–—ÐC˜¤ðƒ™š1„› œ�žš™™™™™É?41„Ÿ ¡¢£¤^¥æYr!…�«RM M MMMM€`M%%ˆ   Ÿ  6 M  Ú  «  ~  M * `  ¼ M ò   X ‹ « `  R bc¦§u¨�ƒz©ª«¬­®¯° }~€‚±ÔFr!�lÿÛM M MMMM€` 2  ` M !  `  MMM   J       ÷     »   bc§CEG�²³´µ¶·õ1r!MM€4ýMM€4ˆMˆM€ n� bc|¸¹ºø?Ž\ €48 Y9ûÿ4( 4 ™™"˜˜"# # ! I  $€€ 3$$ ™) ) "# "  ˜) ) !#" J6  <à€  Y ™) ) !# "  ˜) ) "#" J6  <à€ Y»A€¼½ð?#$$€€�íµ ÷ư>P}[(ì?ðKtè®Þ?¾¿<à€¡+ €6 4À€   ) I  D� DÇ €6 4À€ ï æ Ò) I  D� DÇÀÁ€ÂÃÄÅffffff@ÆÇÈÿÿÿÿ ÉÊ4À€€a@D�Ëffffffþ?ÿÿÿÿ ào@´ ¿]ã ¸$  ym. ^#P< € ±  +  Æ  5    8 %  ô ÷' ) !Ü)  K   J6 P0�J4  \`�9 Ûÿ        Ph€± l ±  Œ Æ   ô   š  š �  ÁÆ ÷))588)"*!' I  %�0‚I '˜0‚ K # #!#!  # #!#!  # #!#!   J6 P0�J4 \`�9Èÿ  (ÌÍÎ{®Gáz„?ÏÐNÑÒ[OÓyé&1¬Œ?‰Zd;ßO�§?à?ŠÔ¾¿P0�()\`�ÕÖרÙÚÍÌÌÌÌÌô??Ð8Ʀñ@0@B9Öu™ÀÛ�0‚ܘ0‚» 7yü™ó"˜~"›n"# # ! # ! I  $€€K   0€€  å  # $ ó# !  ~# !  n# ! ÐÝ#Þ$ßàá$€€�íµ ÷ư> 0€€âãç(myü  ™"  ˜"  ›" # #! # ! I  P€ K   $P€ $ $ $  3 # # !I P€ K  $P€ $ $ #  # # "3# ¨  < # < # i # #"# #"##"# #"##" <à€# # # ## !"#$%&'ÐÝ#$àP€�íµ ÷ư> $P€äåæçè<à€ó²(]IPŠ€]ó  ×$D.  p€ … ##) G #] æ™( ]j7  é™  ›  ,"  J   Xp€ <  ò ä  €# G #  ˆ ) ] j]T  " J!  "K"" $Œp€$ D. p€  í%Š&# # ) G #G # ) p‚       <—*+  Q-¦.', Q-‡0(/1ò ) p‚2éÌêëìíî p€ï@@ÍÌÌÌÌÌ@ð#ñòóôàõ!Xp€ö333333@÷øùð?úûüýš™™™™™¹? Œp€þÿ¾€ p‚�à?@‚ƒš™™™™™ù?„ÍÌÌÌÌÌô?�" Ä5g%f$75u7 æ™ æ¤ 7 …†‡ˆ‰Š‹ð#Œ° (]+IP€ Ï À  p€   � #D  Ìì[êë�޾€ p€��¼ :]+IP€ Àb5 #   #   #  � # 75 D   D   D   å 7 Ìì[êëŽ�‘’�“̫�®§]MMM€]IP€  x <   ï  €        4   i 6  y  £ £ y  ü ü $5  ¦!‡"¤#…$7   ¸%   æ& ™' ?  ^( k  æ& ¤# °  æ& …$ ©  æ& ¸% Þ ð t j j -) G*#x# #+÷,#!# r-#   <  <  .pa”Ììêëó•ü©ñÒMb`?–+‡ÙÎ÷ï?—˜™š›œÝ�žŸ ¡¢£¤¥¦§¨ Ѓ„Œ©ªð#«¬­®¯°Üõñ ˆyü™™"››"# # ! I  `€K   (`€ ä   D. 4`€# ) G  #  ¦ ¤  ¦ c " #  !  u  j  6 (j jN) 6 ¤ä  ä b bÔ ÔŠ Š5«*¢+,7  57 Þ!57 �"57 #57 $57 ¡%5™˜-›7 ˆ =.I/0K11  (`€# q&5$$7 ' u w2 M/ , ä ' ·3 M45 "# ! "# ! "# !7 M4 w2 5±²ÐÝ#à`€�íµ ÷ư> (`€³4`€@@´µ¶§·¸ð?¹º»¼½¾¿ÀÁ£ÃdÄÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!ÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿ$ÿÿÿÿ%ÿÿÿÿÿÿÿÿ&ÿÿÿÿ'ÿÿÿÿÿÿÿÿÅÆÇÈ$ÉÊËš™™™™™É?ÌÍÎ�2ú]IP€Nˆ m.æ÷ Ü ô )  ô   )  # #! ## !                  " " "##!#!I 8ЀK DЀ ð ô )  ô ) "" "!#&#' !%&'#&!!!$%&I$ #8Ѐ#K#$ "DЀ"# !#33 3!!#ñ $$$ˆ%#$%«&&% %%%4 &d€�'%)% +++= ,,,Ù#*+,"()*)%&$&&È' '&%%%ü%y %%ü($™!)%™!"&()($›")%›""'()#+&&#,''!*+,I* )8Ѐ)K)* (DЀ(*ä#+,D. )%�Ѐ)#*))),)'G+&,#)*+ ***w(6+;,j),+j),N,+6* ---¦<--¤+ ...¦<..c=/)"1.-#01/!,-0,+¤+,P,,+P,,G-,+G-,.,+.,Ë/,+Ë/,ä#,+ä#,b0,+b0,Ô1,+Ô1,Š2,+Š25,-«>.¢?/@7,-,+35,- . /7,-,+Þ45,$-$.$/7,-,+�55,-./7,-,+ 65,$-"$. "$/!"7,-,+75,!. )-. !/ )./ !0)/0 7,-,+¡85,-$™!.$˜A/$›"7,-,+ˆ ---=/#IB//CK/D0D .DЀ.#,-.,+q95,$-&(.$/'(7,-,+:**EÌêëÅü©ñÒMb`?úNÑωŠÓà?8Ѐ�íµ ÷ư> DЀб²ÑÒ¾€d€�ÉÓÔÕÝÐ#à³�Ѐ@@̧·¸¹º»¼½¾¿ÀÁ£ÃdÄ)*+,-./#0123456789:´µÆÇÈ$ÊËš™™™™™É?¥ ]Ììà" ‘EM€ ˜]  ] MÒ ¦5  Ù  L "  ajT"K   , €  M  · D4 <à€: Ýÿ  L  6 ý ý4 44 Ù4    ˆ c M _  V  Z  í  VG#  ì M5 74(8< ' J "„ €258 p#"#*$!'5% 79îÿ &5    ) '7 ()) +' * ! 9Äÿ Û,   À- û. Û,#   Û, / å0 42¸3'1# #  h4   ‘5) (5  #  # #  7    j N6P 7 j N6P ?€ Tj87  À- ±9 Ê:#; +<#!#5  D=#!  D=#!  D=#!7  ‘>ñ?I@ A#J  , €   ÿB6RyS£C£CySüDüD$EïF rG  ÏTEH  U  U#íI  `VJ ÄKjLjL ¦eMeM ¦åNåN ¦ÑOÑO ¦PPqQ WsÖÌì´×Øñû , €Í()<à€ÙÚÛúÜÝþÞð?ß333333Ã?333333Ó?ÍÌÌÌÌÌÜ?333333ã?ö(\�Âõè?!„ €à@ü©ñÒMbp?áš™™™™™é?š™™™™™©?Ð?€D@ffffff@âŽãä帅ëQ¸Ž?šªæçèéüêëš™™™™™Ù?[Âì±ÊíîœÝ�ïðñòóô§õ“ö÷dCDEFGHIJKLMNOPQÐ�øùè  =     " J €  " J  €  " J  €       ! J  €  ! J   €  ! J   €  !€  €Õ <. €#)G#€@@Ù   <    ö¶G É  KMM€] n  �  IP €     »    »       ã  ã   »  ‡ J  8Ѐ     G    m F  2  t S µîð�  vyü575   7FF@!"5 ù# J$ ï%7j&N'P(€T)j&* À+, J .´Ð€ 1 Ø/# G0#2÷3##G1#™4˜5›6 d8'7«9¢:; Ü<'7ó=~>n? åA)@575 ™B7j&7CDD*E!"<.!"  GÑ€# )"IG!H"# ! gJG1#ÏK  m qL ÐM   QN ¦O' 1  ?@ AAAÏž@AA Ÿ#?@A BBBÏžABB Ÿ#@ABA]7=>=<Ü 6?@ A@AA £#?@A BABB £#@ABA ³¤7=>=<´¥ =¨œbŠ)@3~ AAA<©#?@A">-??.)B4~ CCC<©#ABC"@/A==<øª =¨œbŠ)@3~ AAA<©#?@A!>-??.)B4~ CCC<©#ABC!@/A==<†«@ x¬Bx¬KBjCj A8ЀA#?@A#>?5@ BBB#­C÷3#ABC!?@A#=>?=<ˆ®=n=<Ó¯5= ? >? @ ?@ A @AA ©°7=>=<ä±5=> d8? Ü<@A "²7=>=<œ³5=>™4?˜5@›6 AAAÜ´7=>=«9?¢:@; AAA;¶7=>=<”·5=>ó=?~>@n?A97=>=<ޏ ?"@)A ¼7=>=<ν#<¾$?R?™4@A {|7=>=<‰À(8¦O?8‡Â@8¤SA8…T7=>=<Ã5=>8¸�? Ä@ BÅA ‚Æ7=>=<9Ç5=>¸�?¤S@…TAáÈ7=>=<�É5=A áÊ@ACËD÷3#BCDGA1B#?@A BBBÀ+BBDÌAB#@,A!>?@B áÊABDËE÷3#CDEGB1C#@AB CCCÀ+CCDÌBC#A,B!?@AC áÊBCEËF÷3#DEFGC1D#ABC DDDÀ+DDDÌCD#B,C!@ABA» 7=>=<Í5=> !Î? BÏ@ ÑÐA mÑ7=>= NÕO>Ö€> ß×'=>1=:ØrfÌìúêëóûü©ñÒMb`?üý!8Ѐè?þø?ÿ€�‚ƒWjk…„ÐÝððÿ…†‡ˆñèéûüމ ´Ð€Š‹ð?333333ë?¯#$àš™™™™™Ù?ŒÆÇÈ�ÞßáÍÌÌÌÌÌü?âŽò�333333ã?Ñ€@@�‘’“‚ƒöðà?Œ©”•–—ffffffÖ?˜ÍÌÌÌÌÌ @{®Gáz´?™šffffffö?›œ�š™™™™™á?ÍÌÌÌÌÌÜ?š™™™™™é?333333ó?žffffffæ?ÍÌÌÌÌÌô?333333Ó?Ο¸…ëQ¸®? ¡·¾¢£¤¥¦ÜÑ€§Ð?@¨ @š™™™™™¹?©š™™™™™ù?ffffffò?Ò€ªš™™™™™©?333333÷?ê[ãâä帅ëQ¸Ž?šªæ«ð¿333333ó¿�íµ ÷ư>–¬­§®¯�±°�±²³´µ¶·¾€œbŠå¸¹•®º»¼½¾t¿ÀÁÂÃÄÅÆÇÈÉÊËÌ„žÍÎÏÐÑÒÓq= ×£pí?ÂóÔÕöÖר˜Ù$@Ú¿ ± M ó©¶m "  gM€J ¦FM€  Á ™" ,    › " , ! I  0°€ ] ¤    Ò ¶  M    M €     n  ï ï ï`A"   ˜ ½ Ù  å¢K x°€$  Ô  åâ!K x°€$  î" ½' #I  %�°€ O &O '€   X(  ú)*×+ z,  t-M‡M…Mƒ *#~±.  F/  F/ Ä0M" |1 À2™˜3–4¤5#‰6¤5#÷7Ü8 MLÓ9H t-Ù R:�; ø<î= Ó>î= b? ¤5#K&& x°€$@# ºA B# ÙC åD åD åD åD EH& éF ÌG gH I VJ ½K $L ÙM ÙM ñN ñNBOPNÛÜÝÞß@à#áà0°€ÌâãX+‡ÙÎ÷ï?ïäåæçèéêëü©ñÒMbP? x°€ìíîà?�°€ð?@ïð´Vñòóôõö$ ‰ŠL÷øùúûüýþÿ€Ë�‚ƒÍ„…†‡ˆ¢ ( ÿÿ À  À$G À" I IG3   $ I  `€#!G ‰ÀÀŠð?‹¦`€æum]n ¶¶  @€ ¶L  š p Z    :õÿ g    "   MJ MMP   A  AÈj ñ   ½    ß ™ ›ñI¶     NÌX(H@€×Œ"�‡ÝÛÜÞŽ��§±‘è’#àÊ“ø ã ¡ ´ü”-â  ã ¡ ´ü”-æ  Ð •Ž  ? K   ' †4J 0€  Æ   €        Ÿ   ž õ Z  ï £ –ð?—!0€˜˜™š›œïœã k‘ bKr!«�… q ü P  V  l ÿ Û X×;‹M%M#M!MMMMM M M M M M M M MMMM€½'½n]r!MM€&4ýMM€4ˆMˆM€ n�ñy2 "„‚m#Æ$L  e%! &!M ! “'""!:ôÿ() ´* A+ ´*Z,÷-v.I/P 0€1ˆ21«3ÿÿ«3M1€. ï4 Î5 Ô6!Î5!!¨7«3 e8!"L %$Ó9%%Z:P%6€%FF%$´* %$Ó9%%Z:P%7€%FF%$´*: èÿM  Æ;!"   Õ<2   Õ<!=4 !$m#$$™?%%$# #'"#>$@ $##!!"#" " )" A'!">"(#)#"!"B!"!B""Õ<"Õ<""wC#) "‚#"ªD+$!EO$##R&!E+%&EO%$$#"Ô6$"¨7R%!F+$%EO$##R&!G+%&EO%$$#"eH$"½IR%!J+$%EO$###"KK#çL$%L#('Z:& )))"(:#øÿ ###´*$%e8&"###$M# $$$ÉM%#$ %`NM%$M#)%#€O%% %%%—P&'Î5''Ô6(Î5((¨7)6Q*YR ,,,bS,,Ô6+, ---bS--Ô6,-$M#-FF#-% M#$#€O%%Õ< "#" "#""NTO"%U€$"ßV#8"9 %%%—P&'Î5''Ô6(Î5((¨7)6Q*YR ,,,bS,,Ô6+, ---bS--Ô6,-%9"âÿ"NTO"G€$"ßV#8" %%%´*& 'A+(% %%%´*&'Z,(%9"ïÿ"+W#¤X#"¤X#`Y#"`Y#ZM# $$$‹[%#$ $%& ' ''Þ\('$$"÷]&"è^ ' ''&_(M$ ) )' ' (')'J`P)a(' b(("…c ( ((›d)*'Ee+'Ÿf(( )*'g+'¶h+M*(*)i+½,,+M$+"–j,,+$-m#--.l--±m--+n--šo--•p0,-k-.D. +sȇ+,¶t-.L,G2Èu22v30šo33fw 123M1=20šo22 xP27%€20My41vz4.51.{ 6 66|"4565 453ÿÿ$ 5 55À} 45 6 66À}$546G3~5 6 66À}"546 7 77I€ : ::I€G9:3<5 = ==�$;<=I ; :ƒ‡:#89:!678G363ÿÿ32Ë„:,¸ÿ-¶t.… ,-.M,-,MyG.†+.-Ë„ ---o‡.m#/¶t0123456Šˆ7"-  ---4‰.- ---4‰.- ---4‰.- ---4‰.-.�/)/.-- ...€Š/012-..NTO.‹€0.ßV/8. 111€Š2345-19.÷ÿ/�0)0/..0ØŒ110/ØŒ ///L�50 111KŽ 222d�3/ 555ª�#4%570111=‘ 1 11z’23j“112F FFF1FF(FF)F 333W”45}•678.92:0;g–3  3 33Þ\434NTO4-F€64ßV584' 777É—797t˜6:�3:› ; ;;rœ<;;:rœ;÷-;;v.;:v.J49: 8Ÿx‚8 888W”9:7;<=.>2?0894Ùÿ7]87188+n97I/P90€98945 666Ï  9 99À¡ :¤Œ"Š<9¥;<=9¥<=>9¥=>:4::9�¦#5:869D§.743.@ 8 88K¨9:7;88'91;†©4:;J9: 8«¨‡818 8 88Æ;9:7;18 8 88€Š9:;(<=>1?)88NTO8¬€:8ßV988 ; ;;€Š<=>(?@K1B1C A®´‡AB);98îÿ 8 88¯¯9:788I° 9 99Ÿ±:; <<<ž² ===õ³ >>>Z´9 <<?«3@I/P@'0€@1@@ˆ2@!M? @@@ÉMA?@@ @ @@í·A@(¸C@I¹*BCF5CEA#DEBFA#EFBGA#FGBHSºHGG7CD>C @@@λ AAAC¼FAGA#EFGGAHA#FGH!DEFFAGA#EFG!CDEIC B¾ô‡BC(¿GÜÀIÁJ)JIHH#FGHH JJJ¹Â#IJ+!GHI#EFGHÃIC»Ä#GHIGFG#DEF FFF—ÅGÜÀ#EFG FFF¸Æ GGGÄÇIÈJ÷-JJv.#HIJ IIIÃÉ JJJ4ÊKI/LTËJ KKK»ÌLI/MTËK LLLÞÍMI/NTËL MMMÎNJ)OKÏMPI HRH QÑ@‡QJPQ O«¨‡OIHSH RÓH‡R(URÕ*TUÔUVD. SsȇS#TSS)VSEGU>V#QTUGPQ#NOP SSS^ÖUVW×&TUV#RSTT WWWýØ(VWW¤Ù#UVW!STU#QRSR#Ú#PQRR UUU—Û(TUUÜ#STU!QRS#OPQTÜÀ UUUæÝJTU S®´‡SUÁV)VUTT#RST)T+)'ST#QRSTÞUC»Ä#STUGRS#PQRRßS)SRQQ RRRÏ  S SSrœTS TTT1à5UWT#VWPXT#WXPYT#XYPQ YYYóáY7UVQ WWW$â#VWSV5WYR#XYVZR#YZV[R#Z[V \\\ªã ]]]ªã#[\]7WXQXYZXUYUZUX0M45Y Z ZZÀ¡ZZ½ä [[[d� \ \\À¡\\å]7YZXY Z ZZtæ[Äç#YZ[ Z ZZ]è[àé]ZÄç#\][!YY\^`ZÕêcj“)bcëIb aÓH‡a#_`a!]^_#\[]5]`Z\ì_`#^_\aZ\ì`a#_`\bZ\ìab#`a\a7]^^I/P^/0€^jí^^NîP^)ï€^TË_jí__Ûð_!^ ^ ^^À¡bTËcjíccÛð"abcb^0ñ$`ababD. _sȇ_ac^‹ògÈ#fg_If eÓH‡e,deE#bcd!`ab#YY` ^^^ió_5`a£ôa`£ôaïõaa£ôa`ö.a43a`Þ\M4a5aSa`rœM4a6 aaaÏ a`E÷ bbbø cccø#abca`íùM`Îaj“a`j“5ab9c:d;.ee7aba`Rúaüûa`Èüa$ýa`$ý5a cccÓþe�ÿf)fedd#bcd ccc–e�ÿf)fe dddîd eeeÜ7aba`Ê5a ccc9d‹#bcd ccc} ddd‰ fff¿g�#efg7aba`ž 5a ccce d�#bcd dddÁ e�#cde eeeÕ f�#def eeeÞ 7aba`âa>a45ad<edee$cdeg!fdgg$efgf&cef#bc=e<feff$defh!gehh$fghg&dfg#cd=f<gfgg$efgi!hfii$ghih&egh#de=fSºfee7aba`5ab@c@f@g@"efgHdeg@h@"fghHef7aba`(5ab`Nde)edcc dddzfJg)gfee7aba``N5acA$bcBdA$cdBeA$deB eeeH7aba`m5acG#bcDdG#cdDeG#deD eeeÝ7aba`¼5acId8rœ#bcddIe8rœ#cdeeIf8rœ#def eee87aba`&X`þ5aIHcH bÓH‡bI HeH dÑ@‡d3cdd÷-ddv.eN7aba`Î55a ccc½bc ddd½cd eee½de eeeë 7aba`K 5a bbbA! cccV" dddü# eee‘$7aba`"%5adG#cdYe&#dLe!bcdeG#deYf'#eLf!cdefG#efYg(#fLg!def e ee+)7aba`Äç5acF#bcEdF#cdEeF#deEM>e eee«3fI/gTËe7aba`Ý*U`ßW`þ+5acä,deD. bsȇb cccw- dddb. eeeµ/7aba`ä,a'Eea`Eea'Ÿfa`Ÿfa'0a`0a'L1a`L1a'€2a`€25ac�ÿd)dc bbb3b dddü4e‹#cde eeeš5de fffš5ef7aba`O6]`\ì^ ^^^Ð7_`$ýa3bScUdWePfO^  ^_`$ý^ ^_`a$ýb3cS^ ^_`$ýa3bScP^^_œ8M__99`)`_^^_`I/P`70€`1``«:aa0``1``ˆ2`* ` ``À¡c1cc«:d`›;$bcdcdD. asȇa6b?c`:@cbE<c`E<cb¤=d`ÓAe1ee+n#cdecb+n#daa)faEGe>f#cdecbö>_b<`I/P`90€`1``ˆ2`3`TËajíaaBa,` ` ``í·dTËejíeeB"cdedC$bcdcdD. asȇa6b?c`:@cbE<c`E<cb¤=d`ÓAe1ee+n#cdecb+n#daa)faEGe>f#cdecbö>_b ```Æ;a bcd$ý gggö)fgÏhi)ihgg#efg^ gœ8Mgfœ8ff~Dfg^h_`  ```)Eabcdefg hij `  ```ÿFabcd e fOg$ý` (Çgfbcu§¦d’“�CEGZžŸ ¡èð?Ì|¸¹ºø?±Ð¢(H„‚NOMóQ£à?-IJ¤¥êëìú`AF¦KL"˜_*@§×£p= ×ï?@@¨©ª@@ @TU0@?S«�¬­®¯Ù@Ú°â±´²³´µ¶Þ‡·¸¹º»¼½¾¿Ñ[×ÀȇX�Á:\×ÂÃĉÀÀŠ‹¦‡Å]ð¿ÆÇȘ@ÉÊËÌÍÎϧÐÑÒÓ‚Ô•Ö&è .>‘𙚛ÿÿÿÿœÿÿÿÿ.ÿÿÿÿ)x‚�޾€Œ"Š��–—!¨‡@ ´‡ÕÊ™š›œÖ×þØÙvyÚô‡éÛÜÝ333333ã?Þßàá-DTû! @âÛûãÀóÐ?Û@‡ÜH‡ ×£p= ·?¸…ëQ¸ž?äåæçèéêë)\�Âõ(ì?ìíîïð…ñòôóôõÍÌÌÌÌÌð?öñèéâ÷ø›œïùñøòúÝû�üýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ?ÆÜµ¤?×£p= ×)@333333@áz®Gáð?)\�Âõ(¬?¨�Ž��‘’“”•–—˜™š›œ�ºI +‡–?ìQ¸…ëÁ?j¼t“¦?žŸ ¡¢£¤Ž¥¦§¨©ª«tÐѬs­¼½n¾®¯üš™™™™™Ù?°±î#$%&œ = �œ nM 9          ( ñ y G ‘ C t Ï  Ê   ò#j)I P0�)'j)'I P0�)j)I P0�#! —G#!  ]IP€ˆ  à! ü" í#à! Q%* $  w&!#ö'#"##«( &#%& &$$%&%   i)!5"# £*#"£*# ü+#"ü+#j#"j"ï,"r-"b."/"E0 $$$1 %%%1##$%#"í25#%#$%&#%&'#&' (((‚3 )))‚3#'()7#$#"!45#$%& (((¬5#'(7#$#"G5#%#$%&#%&'#&' '''½67#$#"¼7 ###8 $ $$49%]%%I&]&&T:$ & &&»<']''I(]((T:&)%&;##"8#]##G=#"î>#]##I#"I#]##T:#"T:$]$$IP$ €$]$$T:%]%%j?%%d@"#$%##"¡A # ##49$]$$I%]%%T:##"49"$B""C5#%#$%&#%&'#&'( (''7#$#"KD ###ªE#"3F5#%(G)÷H))vI#'()I ' &K(1�&J%& $M01�$%&N '''ëO7#$#"WP5# $$$AQ %%%VR &&&·S'7#$#""T# `U#"`U#�V#"�V ###W#"æX"äY"±Z# ÿ[#"ÿ[# à\#"à\# —#"—   °]!j "]""ß^"!!$Á_('$a*&'`'(D. %cˆ1�%#&%%)(%eG'd(##&')$#g'"$f ###jh$%ti& ' à\( æj) ÿ[* Ak + ++ˆl, +,!-". ·m/ •n0�o1 —## ~p$$A##îq$ðr)&$) ðs)()I( 'uÐ1�'$%&'&v'&w*'›x3(*)'™y#-((#.))!,-.I, +{è1�+K+|,| *~ô1�*+,5-/ 000Ó#./00 111Ó#/011 222Ó#0121€7-.5./ �//™y0 �00˜‚1 �11›x 222{ƒ7./0Á_)10…'/1„0]10IP1l€1011ˆ 1f1011ü"2 2`1 111í#5]6566+†75IP7€76723 444Ï  777À‡ 8Š$‚ˆ:7‹9:;7‹:;<7‹;<82887�Œ#38647D�M261æŽ#536 5+251æŽ#,355574 888Ó#67884 999Ó#78994 :::Ó#89:9€756-55571~p6781~p7891~p8991ý�756.551à!/5«( 111 �263™4 £*43£*4 ü+43ü+4j43j 4Š$‚ˆ$5(*6$7)*443å‘ 4Š$‚ˆ567443S’%3Q“$3Ü” 5 6$45643•+3ï,,3r--3Ü–548#78 888øš#6789›:]::::÷œ#89:G78#5679#89 999øš#789:›;];;;;÷œ#9:;G89#678:#9: :::øš#89:;›<]<<<<÷œ#:; ô1�ß{®Gáz”?‘$àÍÌÌÌÌÌ@ffffffþ?[޾€$‚ˆ��ÂáâãäåæŠç²èé*+‘’“”•,-–7—(B˜ê333333ë?¯è?ë� "   » n œ M  9      ~  �EM @ > à V P   K  8Ѐ +  ¡  NO€ ß8 +  ¡ 9ñÿ NO€ ß'8Ñ º M   È  Mã]IP€ˆ ü M  …! "  à# h$á%'& ¶'M ¶(á% !) ¶(á% M  Ò* Ú+   …! " M à#M  ,M (-M  ò.   \/  …! 0  ´1 M j2ÿ39/ÿ4tÐà?Ûpsì�íîï@!8ЀðñòÙ"@Úð?óôrüÌêëìú¸õö÷øù¼½ú¾ûüýþÿ€�-‚î‡ & în] ü      8  Ç  S(¤#! #  NO  € ß '    8 $ € K  8Ѐ$  -# K  8Ѐ$É9 ãÿ  °       IP²€ˆ¬B2 Ÿ B 2  ¬yü q K™ !›" x  K™ “#!!›" K™ “#"!›" K™ !›" “#!   K™ !!›""“#" !"!""#,"# "$,#$ !!"#I! %�Ѐ ) K& & 8Ѐ"#,"# "$,#$ !!"#I! %�Ѐ ) K& & 8Ѐñ'( K™ ˜)›"   í*5 B 2  a+!,A-`.j/ß0Î1Î1)2)2î3î3Ò4Ò4/5/51616å7å7×8×8<9<9W:  ;ü�<�<j/j/–=–= y>K?#K? ¼@©A#©A @BHC#HC¿D²E±F±F`G`G½H½H¤¤ ±IÄJ# ÚKL#�<#J 8Ѐ#MñNñN$O $O qP$O pQ0RNOS€ß '8 € 9øÿATEU X\a…2Y(Z \la…]]#Á^¬_` - Úa#j/)bI dŒÑ€#j/)eI  g˜Ñ€#h#! ài   !"$ñN%%$##  ài   ñN!!   FjMñ'ßk°l ºmßkÎn ºm  ´oŽpqÌ’à?ƒð?„çÙ@Ú˜-Cëâ6? 8Ѐ…‘Hš™™™™™©?¸…ëQ¸ž?êëìú†‡ˆ‰Ð¸Ô#ü©ñÒMbp?àŠ�Ѐ{®Gázt?±‘$þ‹Œ�ާ��‘’“”•–—˜å™Ëš›œ�žŸ ¡¢£�è¤ô¥ê¦§¨©ª@«¬­\a…œ�®la…Ú¯{®Gáz„?°33333ÓQ@܌рÍÌÌÌÌŒL@ۘрú~j¼t“ˆ?÷±²³´µ-¶Ø RòA @ @ @ @ @ @ @ @  @  @   @   @   @   @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @  @ ! @!"  !@"#! "@#$" #@$%#5$%v&&i'5' (())**++,,--..//0011227'( '$ä35'(4)5*6+7,87'('$Œ9'(:'$z;@'<@(=@)>@*?FF&F%5+,6-7.87+,@,@FFF+@-A@.BFFFF$F,F@/CFF*FFF FFFFF F FF%F.@0DF@1EFF FF@2F@3G@4H@5IFFFF%F&F4F3@6JF6$•K@7LF6FF589M:N;O789@9PFF@:QF:$ÊR9$S@;TFF;$pU@YFFF!FF@?ZF>FFFFF@@[F?A\A@B]FF?FFFAFF#FFF5CD^E_F7CD@D`FFFF?FF6F9FF8FC6Ev5FGHI7FGFEïa Fyàq‡G HFFE½b5FGHIJ7FGFEÙc5FGHIJ7FGFERm@FzFFFFEF$FF@G{FH|H5IJ5KNW}MNN~MN*LM'OM‚*NO�,LN€OW}NOO~NO*MN'PN‚*OP�,MO€PW}OPP~OP*NO'QO‚*PQ�,NP€7KLLFJFIFFFHF FKH$tƒ@M„F/FF"F FF1F0FFFFFFEFLFFFF FF FFF$F=FDFBF M$´…@M†FFF9F<FFF&F%FFFM$Ї@MˆFFFF FFFHFFM$)‰@MŠFF F#FFFF%F&F5FM$ÿ‹ J$Œ·@¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâã45äåæ7¦TU?;çñ     èÃõ(\�ÂÕ?áz®GáÚ?×£p= ×ã?éêëìíš™™™™™á?®Gáz®ç?ïèéìîï€�ƒ„†÷ùp@ûð?òÿýaÿÿÿÿbÿÿÿÿcÿÿÿÿdefegeheiejekelemÿÿÿÿnopqreseteuq(îàq‡ !ïÖ?ÆÜµ¤?×£p= ×)@333333@áz®Gáð?)\�Âõ(¬?ð'-(«)±*î!  !"'()*+‘Ë story/game’jÔ‹¹¤mathexpclampEYE UNITS_TO_Matan2sqrtdegTICK_DEGrad LOSE_KNOBSknobslose WIN_KNOBSwinreaderREADERbindingBINDING riffleGap riffleHopdropdropFall dropSettletitleactactTimestartedlitstrikeTflaredcaughtdirectorgameT CLOCK_FROM clockMinutesendingendTFINALEfinaleeventsnewpuzzlestruthquivercharmmoonUp clockMatchBOOK_CLOCK_START bookMinutes lastMinutematchWasmoonWashousepathscheduletiming bookCloseHitschednewPosepose burstFired nextBlinklockOndreadblackoutblackshakerimframingleanrestartTmusicOnlastOpenwinSnuffhintKey hintAlphaidleTcloseT closeShownneedKeyneedT stillShownmoveToffT centreShownglanceTreaderUp outLogged dropLoggedcloseIdcloseXcloseYclosingbindLoglookedUpDOORcentresetDoor GRANDFATHERdialplace clock_tick clock_chimelooplibraryLIBRARYgame crossfademusicMUSICstopprint game: act  (from ) at stringformat%.2ftimesetEnumbookuiready bookLockedsetBoolendCardwinCardloseCardsend pointerExittableinsert BOOK_SLOTsourcesoffinRoomwicktazimuthdistance DRAFT_PFFmaxscalemidnightstrikeburstchimefalldraftsfigurebeatsseedonEvent GAME_SCALEMIDNIGHTSTRIKEBURST audioSteps GAME_SEED setMasterceilminupdateclearskipTo"game: skipped to %.1f s (stage %d)stagecancelreleasemotionstartplaydbggameAtcursor strikeNowmatch game: strikegame: restart requestedcurrentunfold setNumber introAlphasetcontrolsmoonTdoorhidden panelOptsflamebreathfreedgameTime extinguishcandleflickerphosphorreset phosphorLogstepscrackle proximitylookHeldunlockgazehome setVolume audioInitfloorpiecesvmvaluetwinVmfigVmwalkeyesclose game: resetCRACKLEnumberfreeNow freedCountcuesilence setBreathDirturnrattledoorwaygapOgame: binding: the view goes up to the door at the handle’s try (%.1f game s)impact SLAM_SHAKErevealdoneopenstate presentationflipFromoptsxyzacossin finaleWantedenum applyPresetopenForbiddenDoorFLARE_ATflareCATCH_ATOPEN_ATcloneseqTCLOCK_TO bindingBeatsstopAllrushsnuffaimXaimZaim WIN_CLOSE_ATrustleWIN_SNUFF_TIMEcreakT WIN_RETURN_AT WIN_LOOK_ATeyeaimYVIEW_DOOR_DROP VIEW_DESK VIEW_CANDLEheadXheadYVIEW_FOLLOW_DROPheadZ VIEW_BINDINGwFollowwBookwCandlewDesklockomegalookUpYlookUp doorToWorldHALLx0WIN_LOOK_OMEGAholding closeFade book_closeIgame: the book is closed (its cover dragged shut) at %.2f s into the loseHgame: the cover comes down over you at %.2f s into the lose: begin again RESTART_FADEresetAll BLACK_CUT BLACK_DOWNBLACK_UPcloseTau WIN_CARD_DIMWIN_CARD_DIM_TAU SHAKE_TAUwarm)book: binding: %s at %.2f s into the loseglide0glide&he glides from the doorway to the deskarrivehe stops across the bookflipflip02the pages riffle over by themselves from spread %dblankshownchapterflipUthe sixth page lies open, blanksigil0sigilhis finger traces the sigilwrite0write7the ink crawls out of the sigil: the page writes itselfwrite1writtenthe sixth page is writtenpull0pullyou are pulled into the bookpull1inside)inside the book: the view low on page sixrise1risen the paper you stands on page six1he pinches out your fallen candle: moonlight onlyaway1awayhe is gone through the doorshut1shutthe door is shuthold(the scene holds until you close the bookheldheldNtostringthe scene still holds (%d s)grab closeDragWdragabs CLICK_SLOP5game: the book is closed (%s) at %.2f s into the losea clickits cover dragged shutLgame: the cover falls open again (a drag of %.0f px) at %.2f s into the lose riffleFromsheetNsheetsfromnriffle readerRiseriseinkBLANKdraw DRAW_FLAMEgust SLAM_GUSTpos BREATH_DIR FLAME_FLINCH CHAPTER_LIGHTeyePointvisibleFIG_STILL_PHASEtakeblinkfireMOON_UP CLOCK_MATCH clockAngletick pieceByKeycottagehopfencetick_cCANDLE_ON_BOOKglanceactive forceTruth forceTrembleholdCaptremblespotkeyglowwindmaxProx maxTrembletab/game: freed %s at %.2f s (game %.1f s, %d of 5)found INTRO_QUIETHINT_CLOSE_FORblockedbyKeyneeds HINT_NEED_FORgame: needs its LpanelsroleartpanelpointXYZwidthlookUsedHINT_MOVE_UNTIL glanceHintsfreedT UNFOLD_PAUSE UNFOLD_TIME LOOKAROUND hintAfterline doorOpenable doorGlances doorHintsonBookinZoneHINT_CENTRE_AFTERHINT_STILL_AFTER HINT_CENTREstillHINT_MOVE_AFTERHINT_MOVE_LATERmoveChapternodescaleXscaleY BrokenSealmottoTHE UNSEEING SUNYou have given it sight.+The vow is broken. Another page is waiting.textriddle turnPageVm pageChapters TurnFrontTurnBack finaleChapter riffleFacesPAGE_REDRAW_FRAMES pagesDirtypagesDirtyFramesPageLeft PageRightpages pageChapterBbook: the sixth page shows (the %s finale) at %.2f s into the losepageVm HINT_ALPHAHINT_OUT setStringhinthintY doorHintYlineYHINT_YHINT_INhintForHINT_MOVE_AGAINrequirefold gfx/params gfx/flicker gfx/phosphor gfx/env/roomgfx/env/candles ui/motion ui/interactui/matchui/gaze story/tune story/relief story/puzzles story/house story/figure story/bindingrenderaudiovmxtypeslambtreewardrobeDCarry the flame where the riddle asks. Hold it when the paper stirs.8Hold the flame at the edge of your sight to look around.!The door will open at your touch.#the shadow trembles: you’re close Hold still…$closer… where the flame burns coldmoon%the house sleeps until the moon is upclock(set the book’s clock by the tall clock BINDING_LINE9Light the witness from behind. Hold still until it burns.@Raise the flame behind the hand, far to its left. Hold it still.?Light the confessional from behind, on its right. Let it speak.7Carry the flame low, far behind the heart, to its left.;Hold the flame low, far behind the crown. Reveal who waits. I. WITNESSII. OATHIII. CONFESSION IV. SACRIFICE V. CORONATIONsetAct pointerDown closeDown closeMovecloseUp finaleFlip forcedOpen flameMods candleHeight leanTarget holdsGazeeyeWorldfigureVm updatePuzzlespivots riffleFace pageLines updateHintsinvite7  "3 $ I  €#!€X <. €#)G#€@@_  Ú" ½#" ½#3J  €## ! I  € € €e ÆI  €3 h$!€ l ( h#I  €30†@   €p"+h (€†@u  2Ü »L r :ùÿ ÄL r¢:ùÿ ràM ÀL M:ûÿ rˆM! íÌ íž Ì ž í« › í« $ › $ 5ƒ-Óßÿÿ�mñG )LIÿÿT hN5: ï È!5¤"5`#5$%Å& Y'Ô(Ò)¤*×+ ï ¸, a-a- @. r f/ƒ0j1 23ï45„6ý7�8#9š:¬;Ä<„=>ÿÿÑ?,@+AêB CãD,E¿F\G�HIñJDKZLÞMÊN¨OÿPGQ7R�SNTüU5(VìW L¤"5   7  `#5    7  $5   7  :ãÿX    !"#$%&'()*+,-./0123456789:;<=>? @@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a}n æª Ú "   ½#  "   ½# 3 J   @€  # # ! I  @€  í  Å À   Ú "   ½#  "   ½# 3 J  @€  # # ! I  @€           Ù  £ Ù bc@€@€defghijklá],, Œ Ù úmJnjopí], , ÚmJqoö Q]ƒ  @ƒ  p€  j  1 ƒ- * WTPP€B ÿWPPPPPP €ÄM ßmr @stuvw p€xyz{|}~€�‚ ƒ„� :J4 €*…†€´¾] Ú ú Ú "   ½#  "   ½# 3 J   @€  # # ! I  @€  5 I  LH Ù  ô D      =  ˆ    Ú"  ½#" ½#3J @€##!I @€6 Ù d"J H@€• ZuJ4 T@�:·ÿ6$ %¤ 4 È +&4 �'0 c(Ò5   )7 Mµ f* a+ j,   j,E! ³-»"F×# ] .m‡@€@€ˆ‰Š‹Œ�Ž ��H@€…†T@�‘,’“”•–—˜™š› ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ!ÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿœ�žŸø? 8<¡ ˜G]ñM ¶*I @€8  •"  J  @€ Æ •(   9îÿ ¶ 4À€: ø¸  A T@�• >m!¢Ð?£@€Œ¤ @€¥�íµ ÷ư>…¦4À€*§7r AvwT@�¨©½p �TÄ <÷]],, Œ Ù ú  ñ ü G ]ƒP€+ A ƒ  XP�  j 1 ƒ- *WTB ÿWn ×!  "ª|ƒ«¬mJnjop!­"®rAstuvwXP�xyz{~€¯°Ñ!]ß�mFM ‰ Ž  �@  m ±²®³r�@´ã]Ñ Ñ  @mIr @µñ g]ƒÑ PPP€ áÈ 4 (È áÈ P& €ß "]ß  � m FM ‰ Ž APP€]Ñ Ñ AmI ®¶,· ±²³rA´�‚µúÒ]W Ý S÷p¦� Y (  h # I 4À€3ÀT5–B �Ä+–– Ý Ý Ý Ý Ý ÿ ÿ ÜñI «!M Ÿ"}#5t$ñ%MŸ"ñ% Ú&' ( R) Ÿ"È* ÿ +  Ÿ"¸,  -.  a/a/  @0  r1  N2  f3 ƒ4j5ï67„89ý:  †;<   =<],> ,> Ú& ? @ =AB  £C  Dÿÿ  ßEF �G mH )I 9 ÿÿGJLK IL TM P<á„:Q  ÅR ¤S ×T Y ÔUÔUI  WXÁ€ÒX    �šY ¬Z Ä[ \ ê]  9   ,^¿_ \` �a b ñc Dd  ZeÞf Êg ¨hÿiGj7kül5(mìn   L ¤o    `p   q  :ìÿÕr L .s �  Ìt uM  � Ìt:ïÿ~vMÿw \ xx ƒy   Ìt Ìt Ìt ÌtFzM  Ÿ"   |°G } ~m{¸¹º¬»¼½20†@  4À€f|¾~ªƒ¿ÀÁBÂÃ0€ÄÅÆÇÈÉÊ!qËš™™™™™Ù?Ì,Í7=>89 ):;<? @@%AÎÏÐJo333333Ó?ÑklÒ #"$&'…¦<á„*1563ÓXÁ€4DEFHLOPQRSTUVWXYZ[\_`a-./ÔÕÖרÙÚÛ±r°GÜŽ] ÝWÿÿßm Ù ø  m¸{À jËÝè £]np Y(   h# I `€3À YÔ Ô I   ,`€Ò PN€ `W:ßm]ƒP€ pA  ƒ  tÀ� j  1 ƒ-! *"WT#B$ ÿ%W&  Ü'ñ(I)] Ý*Wÿÿßm+ Ù,- ø.P4€]ƒP€ pA  ƒ  tÀ� j  1 ƒ-! *"WT#B$ ÿ%W&  S/÷0+1v2P3P4€  L   $  I  ,`€ + 5O 6€  é7 È8  :îÿ  Ý*W9ñ:MÈ85;8  5;' 6 4 J  =ð`€  5;9óÿP3P4€M¢3P>P?€M >@m¯»20†@  `€f3Ó,`€4Þ{Àà? }rpAstuvwtÀ�xyz|~€ÄÅÆ¸jËݺ¬KÂ�@ð?ß,¹!à¤ð`€ ‚ï”] k¸PPP€], , Ú P€ I  ï R  ÚñIP€ýP €I P€NP€ýì k¸ ÐA !€ð�"G#P$€ R%¬&P€I 'ý  R P(€)ê*P+€I P € ,I P€ -.má7â”Jqo333333ó? &?ÌãÅÆÍÌÌÌÌÌì?š™™™™™É¿ä˜Aå%)æaçrÐAvw€ð�è"éêE{ë+‡ÙÎ÷ï?Lì‚�¨ }]ñƒP€IP €÷vM€ P  P  P  a a @ rN fƒa jj žÈD. XP�B Ú¿ fa j ¿jE �TÄ  ÿ!W"# $%m!®&%¬íš™™™™™é?îâ’89 ):;<ï,XP�ðñ ˜™ª|ƒ{Í Ó  ™" ˜" ›"# # ! # ! I 0€K 0€$$$  òóô0€�íµ ÷ư>�0€÷ 5# # ! # !  ÿÿ D. €I   €   G # I  € I  € $ # I  € I  € $ # #  ! #  # ! # # !   €õ €-Cëâ6?ð?ö€‚/þ ]WnÓfÓ ˆN @ rN fƒ a j ½  ƒ *   TI [&I ñM IñM  L  é È  :øÿ¢-!-ƒ {!� – � Ž m!` /"Zm! Ý#$  Ù%& ø'],(,( Œ) Ù%*  ú+]ƒ P,€+ .ÐB / , 0 ƒ  1 4Ì ƒ5j61 ,ƒ - *W  ,T7B8 ÿ9 W : P,€÷;v< u= ƒ ñMB Æ>:?4  B„:? D „ :?  L   :ûÿƒ •E  +G' FJ J$�„GKLP LPLP M€LPMlNTOM •E  +GJ J$�„  )P  Q  )P" +G$ D. SH�„ # ! LT Ý#  TLT)U' I  WX�„ * U Ý#  X)U' I  WX�„ * UP€M  LP  LP Y  Æ> ¸Z  +GJ  J$�„  IP  IP [€  ž\ È  j  <.   SH�„  B] IP n€ TO  i  ^ ^ a  j  TO  ^ ˆ_   `   TO j  ša  ša   ša  b c M 7d M C TO j  e ;  ^ ˜f ^ g  Úh"   ½i#"   ½i#3J k¨�„ ##!I m°�„   ×n      ^ ^ a  j  ÿÿ  IP o€ TO  |o   ÷; v<   ÷; v<    v< TO     Ž p  êq  ,   êq «r$ " J  tÌ�„  êq êq    `u  $     Ý#  $    Úv & w  ¸Z 0x  vy    ýz 0x  ,{   ýzP | | ýz } ýzP ~€ ^ ü F  ˜f ñ€  �" g ™‚" ˜ƒ" ›„"##!#!I m°�„K…… tÌ�„$ $$ o† j‡ ™‚" ˜ƒ" ›„"## ! #!I m°�„K…… tÌ�„$$$ ™‚" ˜ƒ" ›„"#"##!!"##"! !"I  m°�„K… … tÌ�„$$$@ˆ ˆ_j ó‰! ~Š """Ò‹" !"! nŒ% ™‚""%% ˜ƒ"# %% ›„"$!%#)""#*##!()*#)$$!'()I' &m°�„&K&…'… %tÌ�„%$"%$#%$$% ò�#$%) ™‚"&#)) ˜ƒ"'$)) ›„"(%)#-&&#.''!,-.#-((!+,-I+ *m°�„*K*…+… )tÌ�„)$ &)$!')$"()#$ %&'(), óŽ- Z�!+,-,-D. *SH�„*##$%#$%&' (!)"* Z�##$%  D�  !"# D�   !"# Б  K’  ™‚) “!  ˜ƒ)!“! !! ›„)"“! !"! ¦”K ýzP •€  «•   K’  í–â— í–¿˜ 1 ýzP |€  <™  Q› ¦œ' š � ž   K’    £Ÿ  ýzP €  K’   „¡ITO)  ¢   IP € ^ šaG £  ša   z¤   D ü¥ A ÷; v<  í– p¦ 7   ü¥ 7§M   7§  <¨ ÷;    Ž ©  .ÐB 4Ì ƒ ªTO   .ÐB 4Ì ƒ «TO   ] Ѭ    Ѭ .ÐB ­  Ѭ  H  Ѭ!  Ѭ  Ѭ  þ® ;  ÿÿ Ѭ  j¯   ] ƒ P €+ .ÐB/0 ƒ 1 4Ì ƒ5j61    ƒ   -  * W   T7  B8  ÿ9W:  #°   ša  IP €  .±  "²  9³ ü¥  Ѭ    í– 3´ ƒ P µ€ Ѭ  ö¶J  J$�„   c· #°    " 3$I  ¹à‚„#!  #° ¬º3 i»$I  ¹à‚„ #  ¬º ļIP €^v<" 3*½I  ¹à‚„#!  ļPP,€  ¸Z �¾¿ÀÈ5Á#!J  tÌ�„  IP €  4ÂITOG £#  �¾ �¾D. SH�„  �¾ �¾  w  "3$I  ¹à‚„#!  �¾  Ý#¾�¾  ƒ P ?€ IP ;[€ GK¯ 6  Œ)GK(Ä*Ã<. SH�„#)šG“#�¾(¿*Å<. SH�„#)šG“#J tÌ�„   =Æ*ÇÇ�¾#!  GK¯  IP [ ] ,(  ,( Úv*�IP[€GK¯ ÈÉ�¾#!  =ÆÊ £Ë# Ìm{¯÷)9 :;8<øzù&@úø?! à?ß,û®ü ý¸ÀjËÝJnop}rÐBstuvwÌ ƒxy|~€¬íþ¥*…ÿ„¦ „ŒN@�¤$�„"îì€'#�H�„$Y@ÓX�„Ãâ7%ïð>‚Dƒ¸…ëQ¸¾?„…†‡¨�„°�„ˆ‰ŠL‹�Ì�„Þqš™™™™™é?Œ�AŽ½Ï˜��‘òóô�íµ ÷ư>’“”•–—˜™š›œ�@žæŸ ¡@¢£333333ó?š™™™™™Ù?¤ffffffÖ?Gffffff@ð?¥_¦\«§¨©Iµª«C¬­®¯�°±à‚„E²Fš™™™™™É?B{®Gáz´?{®GázÄ?à³€a@6@333333ã?Ñ ×£p= Ç?ÍÌÌÌÌÌä?333333û?klènNPPP€ hP hP€ h¯)Ú(ð     @  € r@vw €´ýë]jT(FFMù ù p@ (�€    ll l p@ (�€    !¸¸  (�€  BI  T@�      p@ (�€     õ!D À G ¸õ õ p@ (�€    W/ / p@ (�€    Ê Ò! Ò! p@ (�€  "  •#1$ 1$ p@ (�€  %  š&ü' ü' p@ (�€  (  ²)Ç* Ç* p@ (�€  +  ë,4- 4- p@ (�€  .  // / p@ (�€  0  J1Q2 Q2 p@ (�€  3  €475 75 p@ (�€  6  *7*7 *7 p@ (�€  8  ù9- ù9* :I  T@�¼;"¼; 9I?  =ÀC 1  *7) :! (�€ >) :       p@ (�€    ?m<>'`µ¶rp@vw(�€´·¸¹º»¼ðÓT@�½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓ…ÔÕÖרÙÚÛÜÝ>@ÞßÀCàù]IP€ˆùÑm& >ÝI¢ $] z  7M€÷v 7�N D÷ m¥\¬íffffffî?]^á©  $]7 íÃ# v# …÷ �"  K   , € $ G  m\âãä¬ð?]�, €³  ]]77�"I 0€ N" I 0€! ô �"  í à  v #   <  ÷    Ž   ð@ H�    T  ð@ H�  �"   T m\]å0€^æâ㫬®§rð@vwH�çèé'ê½4]IP€jNP€Tj÷' À  IP€jNP €Tj¸  Dm& <)'š™™™™™©?é¿»>¾Ó 3]IP,€jNP&€Tj¸   ¿ Õ M Û � M  éˆéP m& <)'»>ëìíîïðñòâ À  õ«  8¿½óôð]IP€vIP€ vTÿÿm& >í'ø»]¸´ R#ß ’#Õ<  $€€Õ  ñ  Úñ I  ó ™"   n ›" 2Õ  ñ  Úñ I ™(  ›Õ IP€ Úñ I  U  U IP.€T)T $  UT3 * I  t€€ #  T* <.  !€€€ # ) #G"# # J  $€€q$IP %€ê& ê&#IP€q$#'m7>õö÷øÁ�$€€{®Gáz„?ÅùãÆ”ò—ôà?&%ú '333333ó?ûffffffÖ?t€€š™™™™™©?€€€@@ÀL„ 7]ƒP ƒP (I P€  ž È  á È   „ (  0  „ 0 " # !     „  0 m}R¸…ëQØ?åP€ü©ñÒMbP?ï,¶ö(\�Âõè?üð?¤-]ƒPƒP€ýPƒP ƒP€¸0  ýP € Q G  m�A{®7Œ%ð?ÏÖ¶]ÑIP€¸0 êmI&7ŒLÁ •]ým>Ê ]]~M€ ïïT'„ÿ à Ì  Ì x x K  <à€Ì ƒÌ T„"Tjl TjÔ y½T' T) + # !„mØ>þ?ffffff@'@ÙÿÖHÚð?¤<à€Û<¸€�‚ÍÌÌÌÌÌ@333333@= ×£p=@ÎÊ]np¦ �ÀÆI   $€€ 3  h $ !Ô Ô  L "  +  h  (  I <€€ ZÅÅ ÿW ÝWÀI  $€€ 3 ) ' I  `€€ * Ô 'I  `€€Ò ÒƒP€ ŽƒP× 3d M .! Œ" ½# Ť$3%M .! Œ" ½#   Ž & '  Å× ¤$ñ(  & ß) #  `* W +       , Q-  Ý.    I/P 0€ , 1O 2    Æ3 È4 6 ;<™5 ™5<›6 ›6 ã7 ŠŤ= Ø8×> ñ9 : :  È4 Õ?  L 0@JA¤= ¤=×>`B `BC DAE: ãÿ  Ý W FÈ45G   È4 žH  RI È4 žH È4 J  vFP ;0  Ž K '  3 vF M  .! Œ" ½#   Ý WL  NÐD Q@ñ„R vFjSGTÈ45G   ñUM  vF   ,V  ¿W YXP 0  ,V \Y    -Z  –\( [  \Y' ] \Y  w^ ¿W ›_P 0 È4 ` ›_  0@ ¶a �b  ‡c d NÐDe ›_f ¶a1  gm¯»¼ƒ0à?f$€€ 3$€†@å<€€„1{¸…$@Ó`€€4®†6‡ˆÕ‰‚5Ћ𙙙™™é?ÅÞÀÏÖŒ&%�¥,òôŽ��‘56789:ù-’Ô“”./•–Âà—̘™¹rÐDvw@ñ„šy"!OP›Q@œð?�žŸ R¡S¢£î4] L+m3    Æ  L  P€p ô÷ )!! ' : íÿ   ` $  $   :Ôÿ m¤‡¥¦§¨©à?ªð?.Í T]È:5 4 G  ž”O €”O € 5  Õ L  v   .J   @ð€  :óÿ   ‡! i!m,«à"¬—333333Ó?­ð?ðÔ®¤@ð€¯°±²é ¶]IP€ˆ É üƒP€Ñ  - –  ÿ  ° e š È �¤P5 ¤ ›vZ ÚÞ ›v* ö ª n!ñ" #¿$ % &5'O(€ A) d*5' 4 G+  ,  ,-ž./ 0 1m& >³_®I%œ´µ±¶½·Ï,SR¸ŸžÂV¹WcÛº»T¼PÛ�ཾ"¬O—333333Ó?¿ü $ À 8I?  0@ 1 .MIÀ9åÿ¿Àß0@ÁÂî NÈÕ M€v .*   <.   p€ # ) G # )'I   0p€*  M€5  M € I?  A 1 .0 I" I Pp€ IÀ,ÔÂ@à?š™™™™™Ù?® p€@@Ó0p€ÄßAÁÂåPp€ü©ñÒMbP?ù MM€      0 8& À   Àš À•È5 4  ÈÕ v  Õ ÌÕ ÌkÌkÌ%ô¿Å,àÆÇÔÂÈÉÖÊÖ  ]   ܪÿÿmËÌÍÎê ¬] žÈ ªÈ šM? j NP 4€   À    õ   «    8       é ¿  À    õ   «   8    Q   Õ#  Õ 8 F ¿!( À    õ  «   8  ¿! À    õ  «   8 )(  )  )()   �Õf9 ºÿ4 '  ÿÿ8  Õ9 úÿ6  Ô ¨ e ½   e ½  L Î ª ª  �Õf Õ: ßÿ '2 ' «M   Ÿ «  "„‚ }# t$  ƒ%P &€  Ž& '(   À   *�B -°°‚.jNT/    *0   Ü1 2mï,ÌÏ<)>¿½óôðëÐìð?@ÑÒÓÔÕÍÎÖ×ÇÈ…¦„‚ÉÊ®Š333333ã?r�Bvw°°‚Ø'ÙËô Ž]ƒP€,!,¿"J P€¿"J P€È  ¤ M› v  ª n Z!Z M ª n'Z  Wã  ã  ¸#   ß$ " J P€ãšã P€ñ'ñ  P€Þ'Þ  ëW  0  ÝW P!€  " Y# P$€  í% ƒ&  Ç']P\ ¸ ã  ¸#   V($ ! J *¤P€ãP+€ã ¸Ê,!Ê,Ê, "C- Ê,”.'”.P&/€ã ¸D0!D0D01D0È 52O 3€ A4 [5", ÝW ã6m®OP�P€S,Ÿ¸žÂc»V333333Ã?MNü©ñÒMbP?ÚÛ¼Tð?WÜ{Ý%¸Þ½±ßàá⤤P€�Xã­¿U@à½ä¼  ]ã ¸$ mNÚMó 3ûA @ @ @ @ @ @ @ @  @  @   @   @   @   @  @ @ @ @ @ @5576 62 s3ˆ1695:;<=>7@?@@@AFF @BF @CF @D@ EF FF F FF ïF@ GFF FF  H@ IFF @!JF@"KFF"HL@#MFF FF FFF@$NFF @%OFFFF F#FF$@&PFF@'Q@(RF FFF(eS@(TFFF FFFFF F FF FFF(jU@(VFFF @)WF FFFFFFF F%)TX@)YF FF"FF @*ZFFF FFF*[[@*\FFFFFF F F%F)F FF F FF*Æ]@*^F *ˆ_@*`F * a@*b*zc@*dFF*ne@*fF FF*¨g@*hFF FFF*i@*jF *šk6*s5++*Mo@+tF*+°u++8v@+wF F@,xF ,hy@,zF FF,I{@,|F F ,Â}@,~,´@,€,¨�@,‚F,ƒ@,„F ,û…@,†F FFF ,‡@,ˆFF,»‰@,ŠFF @-‹F F F,F5.@/ŒF @0�F.@1ŽFFFFF @2�F/F0F12K�@2‘F FF F/F0FFF12–’@2“F F-FF2 ”@2•F 23–—å@æçèéêëìíîïðñòóôõö÷øùúûˆŠüð?@@ @0@¿ý�þ½ÿÛ€¼�c‚ƒ„…† !"#$%&'()*+,-./01ÿÿÿÿ‡ˆ‰Š‹Œ45678�Ž��‘+Ò  ’  “«ùú¥÷‚¥”• –!Ïîïíðòlmnmoÿÿÿÿpqr"—ô#$˜%™&š'›(œ)�*ž+Ÿ, -./012¡3¢4£5¤2  !"#$%&'()*+,-./0123456‘ËmainjÔ½Ÿðmathexpclamp CAM_EASE_ENDHELDabsPitchcossinHELD_BOBeyeVectorxyzxfwduprightyz rayFromPixel LOOKAROUNDbobreachnodescaleXscaleYprintwarning: node not foundpanelsroleartpanelpointXYZwidthheightWitness WitnessShadow ConfessionConfessionShadowOath OathShadow SacrificeSacrificeShadow CoronationCoronationShadowMoonClockReaderwitness witnessShadow confessionconfessionShadowoath oathShadow sacrificesacrificeShadow coronationcoronationShadowmoonclockreaderLpiecesDataPiecenewpopvaluedefvmtwinVmlookdreadtwinLook twinDreadtableinsert pieceByKeykeyinstsinstanceVolvelle warning: node Volvelle not found MinuteHand"warning: node MinuteHand not foundHourHand warning: node HourHand not foundHubwarning: node Hub not founddialVm ClockDialrotationhourRestpagespageLeftPageLeftPagetext PAGE_TEXTpageVm pageRight PageRightcoverCoverTurnBack turnPageVm TurnFrontstaticsconfessionShuttersConfessionShutterspullTabPullTabmatchcursorFigureeyesfigVmfigurefigInst figureHandhandInstunitQuadquadgridQuadGRIDgrid gridVertsCOLSROWS instancesboardspageListcutouts pieceListcasters casterListcontact-ao-cards AO_STRIDEaoCardsSHADOW_WSHADOW_H RECEIVER_RECTMAX_CATCHUP_STEPS ALPHA_CUTOFF enableVSMVSM_WVSM_HshadowsceneMASK_WMASK_HmaskglowKeyLglowKeyRAO_WAO_HMAP_RECTaoflame GPUSamplerminlinearmag mapSamplerenv FIG_TEXELSfigGfxghostFogsmokesdfbook: paper pcf= techniquespcfpipelinetostring vsm=vsm halfFloat=featurescolorBufferHalfFloatpendingRelightcontextbook viewModeldebug getViewModellookVmstagestageVmroomroomVm relightHookedrelight getTrigger addListener PointerEventxydown pointerDown pointerUpexit pointerExit pointerMoveready panelOptsuihiddensendboxWboxH stageScalepxPerPtfloorstageXstageYsurfacemaxsizeTdbg slowFramesbuildAgedtAvgDEGRADE_SETTLEquality DEGRADE_MIN DEGRADE_FRAMEslowT DEGRADE_AFTER DEGRADE_STEPstringformatJbook: slow frames (%.1f ms): internal scale x%.2f; candles coarse, fog lowsetCandleDetail candleDetail CANDLE_DETAIL DEGRADE_FOGfogCapopendoordial shadowModeaaautoplayaudiohdrresScale pixelRatiomaxMPresizeAtpaper translucencyflameFxbloomgradegrainvignettecatonemapglowmoonFilldriftviewsnuffAtsnuffDur relightAtexposure benchPass benchRepeat phosphorStep pageStatic pcfGrowthdither ditherWidth ditherLevelshazeshaftsmotesroomResfogcreaseatlasAllroomMaskdofyawpitchtruthtremblefreedgameAtendingmoonUp clockMatchproxholdCapframecoldboilsdfEvery morphDithercharmwindfinalespreadbyName mechanismrisevfoldinfocreaseYflapangletabt transformsqrt LOOK_GAINcandleX getNumbercandleZcandleposprojectcameradialAt clockDialcenterXcenterYlambpage candleHeight CANDLE_HEIGHTpointerXpointerYpuzzlesbyKeyspotinZoneautoplay: on ( a losing run a winning run)gameactpointdispatch bookMinutes clockMinutesawaygameTholdingmotioncontrolsgazestepvisibleloseposebinding readerRisetimeBINDING paperSway paperBreathhouselungeLOOK_TAU DREAD_TAUreaderUp;book: the reader stands (rise %.2f) at %.2f s into the loseendTtitle TWIN_DREADfireplaygrowl wardrobeLungewardrobe creakSoundcreakglanceallowedlockedlockOnbool touchPausedhooks doorAngle holdsGazeforcedpressId pressEarlymaxProxquietglowMaxcueMaxfaderetractglowTau lookPadAlpha lookTextAlpha setStringlookHinttarget doorInput doorOpenable doorGlanceslookUsed hasPointerlookingdwellDWELL dwellEdgeglanceAt BAND_BOTTOMglowFromBAND glowFromTopTOP edgeGlowL edgeFillLfrom edgeGlowR edgeFillR edgeGlowT edgeFillThitpickkindnonepointerarrowwinCardloseCardosCursorlocklockXlockYlockZunlockforce dwellStepbookQuadaimlookAtframinglean leanTarget LEAN_IN_TAU heldBlend SEAT_OPENDRIFT DRIFT_MAXdriftX DRIFT_TAUdriftZ presentationleave outLoggedUbook: you have left your body: the view at (%.2f, %.2f, %.2f) at %.2f s into the losepullbindLogQbook: binding: the view in the book at (%.2f, %.2f, %.2f) at %.2f s into the losecamFov chairShownplacedQbook: binding: the paper you is placed in the dark (%.3f) at %.2f s into the loseveillookedUpstartleDOORtopFLOORz0z1 doorToWorldcentreŠbook: binding: the door on view from your seat (%d of 4 corners, its top %d of 2, its middle at (%.0f, %.0f) px) at %.2f s into the lose%s (up before it burst)homeGaze PAGE_WIDTH PAGE_DEPTH setHeight fromPointer candleOffsettheta turnClockCANDLE_ON_BOOKclutchlookHandhandTauwin WIN_KNOBSreveal WIN_CLOSE_ATshapeburnDESKpanY FLAME_HEIGHTLIGHT_CENTROID CANDLE_CLUTCHCANDLE_TREMBLE spellHolddropspellbendTosetBendbendMaxbend dropBasistimes dropLoggedMbook: your candle settles on the desk at (%.2f, %.2f) at %.2f s into the lose lastCandle setMotionflicker HELD_LEANWINDOWsillspring windowRadiusangleTox0x1GAZE_ADAPT_WINDOW gazeAdaptGAZE_ADAPT_TIMEgazeYawdeg gazePitchgazeAwaysetGaze listenerYawpendulum pendulumPhase pendulumTickscandleSXcandleSYdoorDeg DOOR_MAX_DEGradshutlatchlatchDeglanternlanternZHALL doorLighthallColdmoonDimbookFallfeetmoonTDOOR_MAX wardrobeDoorinvite AFFORD_PERIOD AFFORD_TABAFFORD_DIAL_DEG finaleChapter finaleFlippivots skipInstsclearadvance pagesDirtypagesDirtyFrameslitrestartTwant MATCH_RESTresetupdate resizeTested'book: resize test (internal scale x0.5)scale audioReadyinit audioInit forcedOpensetlastOpenrustle roomMinutessetBurnMIDNIGHT flameModsWIN_RELIGHT_YOURSatsnuffCancelledbreathlevel updatePuzzlesblocked setFeedback setAgitationholdFracturnSPOTSchapterbasedraftsetGustgustfreedTrelease updateHints pageLinescaughtbookGlow TITLE_GLOWtau ROOM_ADAPTwinSnuffadaptwarmdarkREADERadaptOutDARK_ADAPT_CAPDARK_ADAPT_TIMELIGHT_ADAPT_TIME MOON_DARK ROOM_MOON SLAM_MOON moonLevelMOON_TAUlightPosrecord phosphorLog intensityfigureVmliftedlastXlastY closeDownonBookupIdupXabsupYupTliftownsmovevalid closeMoveopenForbiddenDoorcloseUpcancelpositioniddrawbuildlate pageChapters pieceAtlas twinAtlas pieceTiles pageAtlas pieceItems visibleTiles twinItems pageItemsprepared pageRectsMat4identityscratchcasterFnextrasquiver builtFormat builtSize internalW internalHMSAAmsaa atlasTier moonPanelcanvas bloomPipes BLOOM_RADIUS bloomRadiuspostphosphornewLog frameBound pageChapter pageFaces pageShown relightFired glanceHintsink riffleFaces riffleTiles riffleFace riffleSetFace CLOCK_FROMresizerequirefoldlayout gfx/paramsgfx/cam gfx/candle gfx/holdergfx/leaf gfx/flickergfx/geom gfx/shadow gfx/scene gfx/glowmask gfx/phosphorgfx/contact_ao gfx/flame gfx/panels gfx/figure gfx/ghostfog gfx/smokegfx/sdf ui/motion ui/interactui/matchstory/autoplay story/tune story/relief story/game story/puzzles gfx/env/pass gfx/env/roomui/gazegfx/seat gfx/outofbodygfx/drop gfx/intobookui/doorrendervmx gfx/inspectgfx/windtypesWHBOARDSShadownumber setNumberSmoke from the dead wickSmoke from the dead wick nib Smoke wisp=  "3 $ I  €#!€…""$D. €#)G#€@@Œ<. €##)(#'#€$@.@@‘  q$<. €##)(#'#€$@.@@—� q qD. @€I  @€I  $@€ 3 # I  $@€  I   @€ 3 # I   @€  I  $@€ 3 3 # # # " #  [ )) * I  $@€# [ #)) *I  $@€#! [ #)) *I  $@€#ü T@�™Ö#!S!# !å!# !˜Ö#!S!# !›Ö#!S!# !å!# !Öë{óéÎÚ¿9�R¢FßÑ?@€@€$@€ ffffffþ?-DTû! @@š™™™™™Ù?�Âõ(\�ê?à?š™™™™™@   T@� ¥ 4 Z   ?  [# ) ) * I  p€ )) * I  p€ ) ! # ü    #  ! <à€    !  ffffffþ?-DTû! @@ p€š™™™™™Ù?�Âõ(\�ê?   <à€¸.MIÀ 0@10@¾,ÆL P € p  ô  ÷)  Ü) ! ! ! ':êÿO €$$$  !à?"#ð?ÉD 7a {Öë�Š“£¬µÏ×Ý6 áÁÈèÃ#Jjb‚O/ m‚âðЫK + Œl àÀ mÕLC  xÐÁ´!  Ì"6,³#.$ ÕJ4   /¸Ð‚  30 J1  J1   L Á2  3 : ÷ÿ  J1 M  xÐÁ  ´!  Ì" % Á2    3  :¼ÿÁ2l 4.5MI6À7 9€C:;.5MI6À7 9€C<=.5MI6À7 9€C>?.5MI6À7 9€C@  xÐÁ´!Ì"‡AŒ3Á2LB=.5MC‹DÎEôF3ÔG I ÑÁÕJ ¥KÌ"*LÎEˆM 3¨NÎE«O3KPÎEôF3½Q I ÑÁÜRÎEˆM ÜR3eS§T?U3_V§T…W3¥X ïçYFZ \lÑÁx]  Ì"~^_ 3§`ƒa 3Èbc$%&'()*+,-./0  123456789:;<=>?@ABxÐÁCDEFGHIJK#ÿÿÿÿ$ÿÿÿÿ%&'()(*(+(LM¸Ð‚NOPQR€CSTUVWXYZ[\]^_`a ÑÁbcdefghijklmnopqrslÑÁtuvwxyÞ — dV = £'mÆ4 ü#  #! Ç  # !'  × Ç '; Ç '   ü#    # ! # ! Ç ) "‹ ï � „ i  ¬'   „ H Ó  S! ïr! ï ã"  À#…$ J%Î&Ô'6( J%Î&¨)Y* ï ¨+  t,  Î-�. ïq/ 1\ƒ65R6  ïœ7  ï  ­8�9  ï :  ïE; ï< >ÐC?  4@ ýAM  BM €  I?  D0D  E  4@ ˆFM  ˆFM €  I?  D0D  G›H¼II? D0D 1 Jz{|}~>€�‚ @ƒ„@…†@‡ˆ‰Š‹BŒ�Ž��‘’“”•–—˜O^`™fš›œ�žŸ \ƒ¡¢£2343¤¥¦§¨©ªÐC«¬­®¯0D°±²³´¢µÂ µæ O®M€WM1€+M€WÖMÌÖM̵ÖMÌ8  ÖMÌ• WM¨  ¾M FЍ ¶·¸¹ºDH»¼½¾¿ÀÁÂÃ Æ  - Á M€ €J6   @€P€ eP € S P € ß  ’ PÄB€ Å@€ÆÇÈÉÊË�#Ï®M€Ï  +T––FÄ̶ÍÎÏÐ õ®¶“ 0Ø $! $J  €û Ø # " )#'I   €$2  ! # " )#'I   €$(  ÑÒ¡ €ÓÔà?Õ €Ö×› 2A™K 0€˜K 0€ Ø !û  Ø!û   Ø ð?Ù0€ÑÒÔÚ£A™2"$˜("$Ø ÖÓ×®   y nïK P€*!U!U "3 * I   ,P€#! U 5  Ï ¯' ­ Á!Á Á"J P€ÁÁ ) # ¯Ï ð#J P€ÏÁU PA `p� )Ïš™™™™™¹?@�@ÛÜÙP€ÝÞà?,P€ßà�íµ ÷ư>áâãäåPAæç`p�è¸ )nÏœM Ä"" š ㇠Ûà+‡ÙÎ÷ï?¥éêëìíÑ Áµn ÿÿv ÿÿ+ ÿÿ� ÿÿÀ þÿM �  J  P  ÿÿ�  ò  K   <. D�  K T�F  K T�a  � ‹ � … ü – K  © !H! "±" ## $ %% &`& 'B' ( )K** T�î( +n+ ,W, -N-  . K T�I  0¼�ß. 1 K T�g1 2w2 3ÿÿØ3 4ñ4 5í5 6$6 797 88 9Ê9 :~: ;; <»< =ä= >> ?ÿÿ"? @ï@ APA BàB CükC DüàD Eÿÿ¤E Fÿÿ×F GÿÿvG H×H III JJ KÅK LÿÿîL Mÿÿ M N½N Oÿÿ/O PÿÿåP QQ RFR SÿÿÙS TÿÿT UÿÿAU AVWXNW ò YZ¹»Ûî;ïðHñòóIôõöÐ?D�÷ÙT�øùúûžüýþÿ€�‚ƒ„…†‡ˆ333333ã?{®Gáz„?‰Š‹ŒÕ¼��Ž��‘’¾“”•–—˜™êÜš›œ�žŸ ¡¢£¤¥¦§¨©ªª«¬­æ®¯à?Þ ?m.±X PP €šË0D.  (�€PP €šÍ 0I 8�€D.  (�€PP €š•0D.  (�€>°±²³´µ¶(�€·¸8�€¹º³g Æ  L  P€ pÁ!!! ô÷)Ü)!!!' : âÿO €  $$$# # ! # ! I  0°€  ™"  ˜"  ›" # # !# !I 0°€   # # !# !# $ ;#ÿÿD. L°€ »!à?"#ð?¼0°€ �íµ ÷ư>½L°€À )WM%ééMMñÌ™™ÌÌ››Ì ·¾¿ÀÁÂD Þ  K   Ãów‘ym.FFFFP€ P€±+Æ  ô   ÷ (  Ü )       PE€±l±ŒÆ  ô   š  š � ÁÆ ÷ ) ) I  \`� I d`� #  #!# ! #  #!# !  #  #!# ! P€m3¢       P€  ) )!Ä>°gà?{®Gáz„?¹±;!š™™™™™™?"#ÅÆ<µÇÈ»ffffffæ?\`�d`�ÉNÊÍÌÌÌÌÌÜ?ú~j¼t“h?333333Ã?ð . W o oD. @€ Ky      ñ °  Î  ·ËR¸…ëQØ?Ì@€ÃÄ�íµ ÷ư>ÁÍÎ’  ­  °P€  P€    Ƴ È M€0™0›ÏÐÑ ¼ È MvÏÐ Ã È M¤ÏÐÒÇ + 4_eks{ŽPM#€nP  ïnPP @@nP  1PM€] 6ƒ ƒ ÷v v FFâFFqFFFFLF0FvF¤ÔÔLLpÀÀQQñ !™"ñ !›#Ý] GG zz †$%óÛà?B@@Óø?ÔÕÖרîÙŸÚÑ ÒÛÜðݾÀÞß àáâÁ ã !�   nm3 M€ÆL :úÿÛ™à?>NäÚ ÁÀM€]IP €ˆˆ    M€5 L   . M J4   (�€ :òÿ ]IP€ˆ ˆj  í c) I  D� ) ' I  D� ) ! #  í  â) ' I  D� # ! I   d�  I  D�      L À# # # "" ™# ## !" ˜: íÿP0×¢åæçèLM(�€éêë�Âõ(\�ê?D�à?ÍÌÌÌÌÌô?�Âõ(\�@ìš™™™™™Ù?R¸…ëQô?d�\ ð+©²­¶ ç 𠪲n]¸Á'5ÈÕ  L  v  0J J4 , € :òÿ4  G) 4 % I  D� ' Õ L$ ³M  M    M   " 3$I  \�#!  MÈ J Mv ��) ª "3$I  \�#! � .M J P J P€ MÌ � �Ì  ´!Ì  J P5"€#2¨$.n%m&3'à"M€ Æ(L ):úÿ ¨$ + B .´À‚/T0 1M‚ƒ2P3ƒ2P4€� ;5�J 7Ø� Û8 M  "3$I  \�#! Û8 �9"3*:I  \�#! �9M Û8Ì � �9Ì ´!Ì  J 2 J n%m&3' M€ Æ(L ):úÿÁ½; J P€ Ž<=>:ÛþŽ?23'›@M% n %     m& 3' ›@M €   Æ(  L  ) : úÿ  1M Á ½;  A Ž<B :ÁCLDM E.FM  ‹G pJ ÀK) I* H!  LMÛ×í¯îÏ? ÑOLM, €ð?= ×£p½*@ÞÕD�EHø¿ï\�ÐIà?ðF<ÉDC=ffffffî?ñ™>Nä Bæç´À‚òóGØôÌõÙØ�JK333333ã?ö÷øš™™™™™Ù?ùúûüP[V](@&@áð\š " /3Ï/O) ^]ƒ÷v]I Œ ]ý P € p W(àÌâýþרàî¢ÿ€¯�·‚ƒ„æ (?]Ï7ƒP3€IP.€ýP)€ ¨2!Œ 2¡ 2÷ v  ‡MC2 pW2×âÌØ÷¢¯€…ÿ†àîš™™™™™é?‡ˆ�·‚ï O€]Èž Œâý×ωŠú Q é#  é2é" # ! J   0€# ç    ( 3$  I  0€ # '      ƒ $  "  J  0€  K      " 3$ I  0€ # !   ‹ŒÙ0€� 0€{®Gáz„?Ž��)'I   €*@�@à?Õ €�  %œ¢Ñ�]ñW        ë    y   (  à   M€  † U    M€    ÿ  °'  °ÿ O  Q     : ß  ° ÿÿ ß  Î ÿÿ       Ó Ý$)'I  !€ð�*    "Æ"        #ÿÿ  O €   ß 2       O€]È$ž% Œ&  2  Â'#  Â'#'(" "$D. *¤ð�#),G+#G   Z-#  Ü.#" "$D. *¤ð�#),G+##   Z-G#  Ü.G#" "$D. *¤ð�#),G+##  ï/  †0#" "$D. *¤ð�#),G+#Ó Ý$  r1•2Æ"O3€ Û4O3r1•2  ú5­6Æ"O€ Û4Oú5­6  A7^8Æ"O,€ Û4O,A7^8QG 1r1#)'I  !€ð�* 5ú5#)'I  !€ð�* 7A7#)'I  !€ð�* 2•2)'I  !€ð�* 6­6)'I  !€ð�* 8^8)'I  !€ð�*ß Û9y    ( à   z:ß  ‡;T<y    ]=P>€?@ ƒAPBƒAPC€@D~E ~E ëFG×âÁ·�‘’“¯”ă„ã•–—ð?ýÝà?˜™ÍΚ›œ@�@Õ€ð��žÏ‰ŠŸN@¤ð�@@ ¡¢£¤¥ð¿¦§¨©ª«ß¬Î­®¯°Ø±²Ï³r–/lrÿ…ü® n]ñ•ýP&€       K               Œ †  k |ü   à |ü      k |ü   k  à|ü   à          w       O€]Èž Œ  2  ä   ×    O   -      †   j   q $   <.   #ˆ‚ # # ) &(%# ' $#  I'P (€ ) v*    „+ „+ ,  ´-    .   " 3$ I  0¼‚#!  , 1    Á3G 2 #   K4 56™7 " ˜8# 6›9 " ˜8# # # !I ;è‚ l<   l<# $  l<# $ 4=# > "3$I  0¼‚#!4=À?# > "3$I  0¼‚#!À? ž@È C#I E‚,B)A  „+I'TFD H‚   4=À?j,G2#)II'P(€)ÈJ (  yKjÿLÿL NÐD Q@ñ„RüS™7üS˜TüS›9TFI'P(€)üU ,  yKj (VyK(VyK NÐD Q@ñ„WüS™7üS˜TüS›9TF  yKXyKY  XZÒ[I'P$(€)ˆ\)ˆ] (Vˆ^(Vˆ^ NÐD Q@ñ„_)B`TFìab ídFe'cI'P¤(€)ˆ\ž(V�f™TF–(V�f æg¸h vi"55 ¤j"¸h$k##$"!"#7 5 !…l#¸h%k#$%""#$7 !5!"¤j $$$vi&k#%&!#$%7!"5"#…l %%%vi'k#&'!$%&7"#7L* !!!ŽJ H‚Á3?�ßy  e� "3"$!"I ! 0¼‚ # !?�Á3‘ % j?�‘  °| Î}!j"?�#!66"Á3#!6I'PF’€ Ä“c” |•TF" "!$ ! !D. #ˆ‚#)!BG �!# ž–—•˜ 4š¸h Ñ›" '™ =œ  Ù�# !6 ‚ˆ!ž"#Ÿ !6" !#!6Á3G2#Á3I'PÃ(€ 4 )>Ž ¡)×¢#j6 "‚ˆ#$%"#6"!"## !! 66 ‚ˆ)"£I" !E‚!# !#¤#"#)%¦'$%¥I$ #E‚##!"#)%¨'$%§I$ #E‚##"#!6 íd !)!!ˆ\!,Ò© «ª!)!!ñ«" "!"6 %‚ˆ&'(%&6"$%&##$!!""#"6"�¬ ###ô­$%"&"'")æ®*)**õ¯#()*# !!!ô­"#$%&!!!�°!)!!«ª""H! ###=œ $$$Ù�#"#$ ###)$!%'"&'"'(•˜ )))4š))¸h* # '‚ˆ(#!)$"*%''6&�° '''{±( '(!)G²)))G² )NÐD *Q@ñ„+³,#-%.TF*) �° ô­ßy ¦´M!  tµI¶6™7 ™7" $ 6 ›9!›9" !$  —·!Á3# ! 6¦´ ̸º¹ º! r»!) ¼ #¦½$‡¾!"#$)!""#›9("À*!"¿"#D. #ˆ‚ #! )# BG"�##!"G2QŒ """¹Á#!"G 2!#  Â" " !!!gÃ!Ä"!" "# 3&$%&!I % $0¼‚$#"#$!"  !Å'kI ' &Ç‚&)%&$'$%I $ #É ‚#*"#$  !Ê '''qË('I ' &Ç‚&)%&$'$%I $ #É ‚#*"#$  !Ì&QŒ)%&Í'$%I $ #É ‚#*"#Í LÎ  ÁÏ!  °Ð j!»Ñ"Ò !"!Ò! !»Ñ"Ó ! "!Ó! !CÔ'!!2!CÔ »Ñ !!!Kn"yK#6##™7$6$$˜T%6%%›9 & '! $%&Õ( ( #)*!$')*I ) (É ‚(*'($'ÿÿ$ $%&Ö( ( #)*"$')*I ) (É ‚(*'($'ÿÿ$×Û×Áâ¿€¯´à?µš™™™™™À¶š™™™™™ù?·ffffffÀÿ¸œ�¹ºýÏ‰Š»¼½ã鈂$@.@@¢åæî¾¿ÀÁ¼‚…ð?ÂÔ ļè‚ÅÆÇÈÉffffffæ?@-DTû! @‚óÙ‚š™™™™™á?ÊÄËÐDæç@ñ„Ì ÍÎϹü©ñÒMbP?ÐÑçèÒÓÔÕš™™™™™©?š™™™™™É?êÖïרÙÚš™™™™™¹?ÛÜÃÝÞßàáâ·ËR¸…ëQØ?Ì™ãäÍÎÀ)\�Âõ(Ü?  ˆ¾{®GázÔ?#å>°æçèÝ@éêë-Cëâ6?ìíîïð¸…ëQ¸¾?ñ{®Gázt?òóôõ333333÷?ffffffÖ?ö÷Ÿš™™™™7@333333ã?š™™™™™ñ?33333³?@ffffff@ÍÌÌÌÌL3@øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ê…¯«)ªä?àðœv/Ô?Ž��ÍÌÌÌÌÌÜ?‘’‚Õ ‚“”Y@•–—˜Ð?è?™š›Û  Ú•(]¸   JJ `€ ÿ D.  (`€I  0`€à]IP€ˆ7 7à#  # G  # G#à     È! Äÿ <D.  (`€I  0`€æ  äJ  `€ D.  (`€ää ò     Q ¤'   Q …( D.  (`€òäÿ ——     ÿJ `€ D.  (`€ÿ     »J `€ D.  (`€»     A J `€ D.  (`€A ·!·!"¿ƒ×턜Ù`€�(`€ž0`€¢åæçŸð?@ ¡¢£à?¤ÚÛ¥¦§¨©Ò    "#"$I €#-DTû! @€ÿ Ûn]p+ +D. @€¦�� D. @€ A #�À  À #À ¦�À ¸  µ    µ J   8@€   3    o  j €%   €$  F P 3€ Y#    ( #*I `@€#   ( #*I `@€#)!#!D. @€  .P -€ ( *D. @€#) G# !   ( !*#D. @€#) G#G " i$I &”@€# # "  ' m( È) š* °+   »,  -Û×á;@€ªï«ð-DTû!Àí¬Ù8@€­ü©ñÒMbP?鮯ìQ¸…ëÁ?-DTû! @`@€ffffffæ? ×£p= Ç?{®GázÔ?<¸…ëQ¸®?@@)\�Âõ(Ì?ð?ö(\�Âõà?°ž”@€æ>ϱ²³.ê   ½]]  €ÕL8 ³ J n       m  3 M €   Æ  L   : úÿ     L : ýÿ  M    P €  L:ÇÿÁL    Ò :ùÿÎL  Ò    Õ:÷ÿf  f(fÕ§L  Ò :ûÿ §MÒFM1ñƒP €ß2Ñ ß!°" º#ß!Î$ º# Ò    %×´Lµ €?EOÛ™à?>Nä<[P¶^·¸ð?læwrÁØô¹º»™Í¼Î– "%àæ�–Ûá®   pW ŸU Æ<.  p€j !j  n Ï  œM Ä "   " š ã‡Wn ]A! ;j ;Ï )Ï   A8     2     (!    " #$$®%M  &    '    Æ      ÷(  h)      S*    v+   S*  v+   †,    v+ ƒ-P . +/ 0  0   Ž1 +   +/ 2  2   Ž1 3  +/   +       L4 t5     –6 ñ7G8 +9$        ñ7 :   :  ;   I<   ;D.  p€# I=P!>€ R?ø@ø@j !TA""$D.  p€#)CGB#J Eq€BF 5GBFBFîI!j ""$D.  p€#)CGB#GH# JD.  p€J  Eq€ †, /K  IL/KD.  p€/K IL�M  NÈOPÈO¤Q M ¤Q›R2vS2 âT ILƒ-P1€I=PU€VWO X€VQY ÝZÈO ›[ ILî\î\ž]f^ƒ-P1€I=PU€VWO X€VQY ÝZ¤QPUª_m`ga  "b c MdJe MAfMAfƒ-P1€I=PU€VWO X€VQY ÝZ*g (M& NhJe 4i j™ j›k Ÿl IL  ßm!j  #  ! Ÿl ILÕnL vS .oOX€ €ê R?¤€GH){KHH }ðq€#GH 4�I=TAGH#I=P-.€‚÷ƒ & À„¤€à…¤€"‚Ȇ#! ‡ ‡"‚+ˆ#!J }ðq€"I=P.€‚ˆ‰ íŠ ‡¤€ ‡"‚+ˆ#!J }ðq€¤€  á‹ pŒ¤€ "3$I  zäq€#!¤€ 3� 3�GH(X*Ž D.  p€#) CGB ##! �J Eq€I=P$.€‚v+  �J Eq€ À„‘‚+ˆ#J Eq€I=P.€‚ˆ‰ 튑‚+ˆ#J Eq€)’J Eq€Ü“ Ô” "3!$ !I  zäq€#!Ü“�•�• Þ–  —}˜ r™      ûš ›�·‚½•¾š™™™™™¹? p€éÛà+‡ÙÎ÷ï?¥éêëìíרÚù¿à? AÀ½ Ö×ÁÓ¶ÃÄàÅÆîãØåÇ{®Gáz´?÷š™™™™™á?ÈÜÉÊÁÞ˵ŸÌ¢ìÍÎó@@Ùq€‡Ïð?ˆÐ¨…ÑÒÏÐÒÓ Ô¯âýÝèÕ¥‰ÖÝ>×ØÙ¬O­ü©ñÒMbP?ÚÛÂÜÝ?Þßàáôâ{®Gáz”?ãäåäq€@¡ðq€æçèéæêëìÊí;çêîïð333333ã?ñò„ÍÌÌÌÌÌä?óôIõö÷øùË  ¾ñy   äÁÄŽ  7“³ pW ŸU©˜¹] ƒ P €‡ C >U   Û y    (à     â      2  ¾ñy     OÏ!  z  n    ‡ Ty    ]P €  Ï  e ] ƒ P š Ä!M  eTy     Ä! "�·‚½•âúûüר÷‡ˆÆ«Äƒ„ÙäÁýÌßý¬Î­®ÇþЛ  Y_‰¦ pW ŸU¥'£"I  p€ ª "I  p€ j m " © #˜¹ ƒU ’U   Û y    (à U â     2  ¾ñy     ¨ ]ƒ P!P"P#€Ä$M  ’%T&y     Ä$ '�·‚½•ÿ€� p€à?‚郚™™™™™¹?ú„âûü…†«Äƒ„‡ÙäÁˆ×Ø÷ìåÐËα  ;Yp’ pW ŸUj¥£ªm ‡ ‡ ƒ U' S U  Û  y    (à     ŸU [ O ¾ñy   ]ƒP € �TÄÄM STy    Ä �·‚½•éÿ€‚ƒ‡…«Äƒ„‰ŠâýäÁר÷‹ÎÐÈÉ ÛA™2"$˜("$ ôÛ ŒØ ÖÓ×�«á ÛA™2"$˜("$ ôÛ ŒØ ÖÓ×�«ç ÛA™2"$˜("$ ôÛ ŒØ ÖÓ×�«í pÛA™2"$˜("$ô �U ‡ ‡   ¥ !£ "I <à€ ª"I <à€  jm" © # ÈÄM ßT ô ŒØ ÖÓ×�‹•‡Šÿ€�<à€à?‚郚™™™™™¹?ú„âÊÐÊÎó  pW ´�·‚ŽŒî o ï ï   65  €@á  €@È  €@à  €@J  €@b  €@O  €@   €@‚  €@ð  €@«  €@+  €@Œ  €@ô  €@ˆ  €@«  €@…  €@?  €@ç  €@  €@ƒ  €@à®W !µ"Ï#m$5Á%5Î&*'Ü(5ª)5§*5Õ+53,‡-‹.F/0~1~2§3È4�5 6E7V8'9:l;ÿ<×=>Û?5A@52A5]B5ZC5eD5¶EXF×G;HI‹J M0±„ŠN6U5–O5NR+V!WrX…Y6ZY[�\q]R^00_0`îaðb Rc:dûe6n Øf !gAop8q;rÏs‡tu vÁwUxbyKz2{ü| ì}É~P«€ É�}‚%ƒÕ„'…f†ÿÿ‡5ªˆy‰4ŠÀ‹ ïŒ � Žñ�÷�p‘  ï  T’j“¤”Ü•�–½—5ÿÿv˜ÿÿ+ÿÿ�ÿÿÀþÿM™�šJ›Pœÿÿ�–ò�KzžFŸa ¡�¢‹£�\…¤ü|–¥K¦©§H¨±©ª«¬`­B®¯î°n±W²N³ß´gµw¶ÿÿØ·ñ¸í¹$º9»¼ʽ~¾¿»ÀäÁÂÿÿ"ÃïÄPÅàÆükÇüàÈÿÿ¤Sÿÿ×ÉÿÿvÊ×ËIÌÍÅÎÿÿîÏÿÿ н—ÿÿ/ÑÿÿåÒ>FÓÿÿÙÔÿÿÕÿÿAÖ0N×nØ5ÙõÚ¨ÛÜÄÝ  ï]ÞPœßœàá ïòâ5     7 äã  ïUäÿå°æ:ç”èréúêAë•ì­í^î?ïàðñ˜òñ¹ó©ô¥õ£öª÷ÿÿmø‡ùCúÁû�üÒý«þ5ÿ5ç  Kª¦»C  )t• 6(..ÒÒ´´  e ’ S ßž�B Çw ;ý⿪ïð�€@123456789:;<_egomqvx=¶·¹»Ì>P^dj‘l?NZ]r¯³uwy§¨©{~’“”ª•–—´˜™š›„†ˆ‹œ�0±„žÏŸ ž¡OÿÿÿÿPQRÿÿÿÿSQTQÍ”•˜™šžŸ¤¢£¤¥¦§¨ÑÒÔð?ÓÖ×ÚfÿÿÿÿgÿÿÿÿhijiklmØ©½¿àí‘?Þãݪõ«ý¬­®¯°÷±·²¸³´ÄÆÈ{®GázÔ?)\�Âõ(Ü?R¸…ëQØ?ÁàáÎéèóI§îHñòóôö÷øùúûüþÿ€�‚ƒ„…†‡333333ã?ˆ‰Š‹Œ�Ž��‘’¾“”•–—˜™êÜš›œ�Ÿ ¡¢£¤¥¦¨©ª«¬­®ÛϵÀµÐ×Â¥â໕–—˜¶¤§©¥¨ªê〄.Áûüúÿ€‚ƒ‡ˆÂÿÑ·¸¹º»�ƒ˜™¼É¿„ ¢£@¦¥§¨© Š‹Œ���‘’“ƒÃ½¶ŽÇËÈÊ‘d�A @ @ @ @ @ @ @ @  @  @   @   @   @   @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @  @ ! @!"  !@"#! "@#$" #@$%# $@%&$ %@&'% &@'(& '@()' (@)*( )@*+)*v,+i-6,15-.27-.-,+.5-.37-.-,Œ/5-.47-.-,à05-.(5/0L. 53427343,1425613453-1:.õÿ.&`7/&Ý8@09@1:@2;@3<F4 y=55567ÿÿ8ÿÿ7675789ÿÿ778589:78959:ÿÿ;79:756@6>FF@7?FF*F+FF@8@@9AF@:BF,F-FF@;CFFFF FF F F FFFFFFF@?@@AFF:F;@BGBH@BIF*F+@CJFBC.K@CL@DMF@ENFF@FOF.F&F@GP@HQFF@IR@JSFF*F+FF9@KTF.FFFF*F+LFFJFKF>F@F?F@MU5NOVPWQX7NO5OPYQs7OPPQRFQFPFNFFO@SZFHFFGFF@T[F$F&@U\FF&@V]F@W^F@X_@Y`FF/F&F$F*F+FTFFUFWFF@ZaF.FFUFF*F+FFFFF4F!F#F'FFF FF5FYFFF6F7FF"FIFF/F@[bF.FF@\cFFFF@]dF,F-FF@^eFAF=F&F$FFFFDFFF/FFLFF\F[FFFZF.FF(FFF FSFRF]^Òf@^gFF*F+FI@>hF&F$F*F+FTFFUFFIFF@?iF&F$FF*F+FUFFIFF@@jF&F$F*F+FTFFFIF_,F>`-F?a.F@@bkF$FFF@clF&F%c´m@cnFFFF4FF*F+F FFFF$FF_F`FaFb >co¾@¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚôÛÜÝÞßàáâãäåæçèé;<=./0./0êëìíÄ   ý#îïðÈv@%&'()*+,-/01¶23459:Ž;2 "#$%&'()*+,-/0123456789:;<ÊËshaders/bloom_downjÔÞÃBTSR ggK²4( æAK1B4B5iBf" ÏdKeà ÝuK(v²Úv3* ¡Kvs_mainvs_mainfs_mainfs_main<struct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct Bloom { texel: vec4, params: vec4, } const HDR_RANGE: f32 = 4f; @group(0) @binding(0) var bl: Bloom; @group(0) @binding(1) var srcTex: texture_2d; @group(0) @binding(2) var srcSamp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_2 = floor(p_1); let f = (p_1 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_3 = floor(p_2); let f_1 = (p_2 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn prefilter(c_4: vec3) -> vec3 { var rq: f32; let br = max(c_4.x, max(c_4.y, c_4.z)); let _e9 = bl.params.y; let knee = max(_e9, 0.0001f); let _e15 = bl.params.x; rq = clamp(((br - _e15) + knee), 0f, (2f * knee)); let _e23 = rq; let _e24 = rq; rq = ((_e23 * _e24) / (4f * knee)); let _e29 = rq; let _e33 = bl.params.x; let contrib = (max(_e29, (br - _e33)) / max(br, 0.0001f)); return (c_4 * contrib); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p_4 = pos[vi]; out.position = vec4(p_4, 0f, 1f); out.uv = vec2(((p_4.x * 0.5f) + 0.5f), (0.5f - (p_4.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { var sum: vec3 = vec3(0f); let _e3 = bl.texel; let _e8 = bl.texel.z; let o = (_e3.xy * _e8); let _e13 = textureSample(srcTex, srcSamp, in.uv); let s0_ = _e13.xyz; let _e19 = textureSample(srcTex, srcSamp, (in.uv - o)); let s1_ = _e19.xyz; let _e25 = textureSample(srcTex, srcSamp, (in.uv + o)); let s2_ = _e25.xyz; let _e35 = textureSample(srcTex, srcSamp, (in.uv + vec2(o.x, -(o.y)))); let s3_ = _e35.xyz; let _e45 = textureSample(srcTex, srcSamp, (in.uv - vec2(o.x, -(o.y)))); let s4_ = _e45.xyz; let mode_2 = bl.params.z; let _e51 = decodeHdr(s0_, mode_2); let _e52 = decodeHdr(s1_, mode_2); let _e53 = decodeHdr(s2_, mode_2); let _e54 = decodeHdr(s3_, mode_2); let _e55 = decodeHdr(s4_, mode_2); let _e62 = bl.texel.w; if (_e62 > 0.5f) { let _e65 = prefilter(_e51); let _e66 = prefilter(_e52); let _e67 = prefilter(_e53); let _e68 = prefilter(_e54); let _e69 = prefilter(_e55); let _e70 = luma(_e65); let w0_ = (4f / (1f + _e70)); let _e75 = luma(_e66); let w1_ = (1f / (1f + _e75)); let _e80 = luma(_e67); let w2_ = (1f / (1f + _e80)); let _e85 = luma(_e68); let w3_ = (1f / (1f + _e85)); let _e90 = luma(_e69); let w4_ = (1f / (1f + _e90)); sum = ((((((_e65 * w0_) + (_e66 * w1_)) + (_e67 * w2_)) + (_e68 * w3_)) + (_e69 * w4_)) / vec3(((((w0_ + w1_) + w2_) + w3_) + w4_))); } else { sum = ((((((_e51 * 4f) + _e52) + _e53) + _e54) + _e55) * 0.125f); } let _e118 = sum; let _e119 = encodeHdr(_e118, mode_2); sum = _e119; let _e120 = sum; return vec4(_e120, 1f); }   —-ë2<‹vs_mainmain¹#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Bloom { vec4 texel; vec4 params; }; const float HDR_RANGE = 4.0; smooth out vec2 _vs2fs_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p_4 = pos[vi]; out_.position = vec4(p_4, 0.0, 1.0); out_.uv = vec2(((p_4.x * 0.5) + 0.5), (0.5 - (p_4.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainR#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Bloom { vec4 texel; vec4 params; }; const float HDR_RANGE = 4.0; layout(std140) uniform Bloom_block_0Fragment { Bloom _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec3 prefilter(vec3 c_4) { float rq = 0.0; float br = max(c_4.x, max(c_4.y, c_4.z)); float _e9 = _group_0_binding_0_fs.params.y; float knee = max(_e9, 0.0001); float _e15 = _group_0_binding_0_fs.params.x; rq = clamp(((br - _e15) + knee), 0.0, (2.0 * knee)); float _e23 = rq; float _e24 = rq; rq = ((_e23 * _e24) / (4.0 * knee)); float _e29 = rq; float _e33 = _group_0_binding_0_fs.params.x; float contrib = (max(_e29, (br - _e33)) / max(br, 0.0001)); return (c_4 * contrib); } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); vec3 sum = vec3(0.0); vec4 _e3 = _group_0_binding_0_fs.texel; float _e8 = _group_0_binding_0_fs.texel.z; vec2 o = (_e3.xy * _e8); vec4 _e13 = texture(_group_0_binding_1_fs, vec2(in_.uv)); vec3 s0_ = _e13.xyz; vec4 _e19 = texture(_group_0_binding_1_fs, vec2((in_.uv - o))); vec3 s1_ = _e19.xyz; vec4 _e25 = texture(_group_0_binding_1_fs, vec2((in_.uv + o))); vec3 s2_ = _e25.xyz; vec4 _e35 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2(o.x, -(o.y))))); vec3 s3_ = _e35.xyz; vec4 _e45 = texture(_group_0_binding_1_fs, vec2((in_.uv - vec2(o.x, -(o.y))))); vec3 s4_ = _e45.xyz; float mode_2 = _group_0_binding_0_fs.params.z; vec3 _e51 = decodeHdr(s0_, mode_2); vec3 _e52 = decodeHdr(s1_, mode_2); vec3 _e53 = decodeHdr(s2_, mode_2); vec3 _e54 = decodeHdr(s3_, mode_2); vec3 _e55 = decodeHdr(s4_, mode_2); float _e62 = _group_0_binding_0_fs.texel.w; if ((_e62 > 0.5)) { vec3 _e65 = prefilter(_e51); vec3 _e66 = prefilter(_e52); vec3 _e67 = prefilter(_e53); vec3 _e68 = prefilter(_e54); vec3 _e69 = prefilter(_e55); float _e70 = luma(_e65); float w0_ = (4.0 / (1.0 + _e70)); float _e75 = luma(_e66); float w1_ = (1.0 / (1.0 + _e75)); float _e80 = luma(_e67); float w2_ = (1.0 / (1.0 + _e80)); float _e85 = luma(_e68); float w3_ = (1.0 / (1.0 + _e85)); float _e90 = luma(_e69); float w4_ = (1.0 / (1.0 + _e90)); sum = ((((((_e65 * w0_) + (_e66 * w1_)) + (_e67 * w2_)) + (_e68 * w3_)) + (_e69 * w4_)) / vec3(((((w0_ + w1_) + w2_) + w3_) + w4_))); } else { sum = ((((((_e51 * 4.0) + _e52) + _e53) + _e54) + _e55) * 0.125); } vec3 _e118 = sum; vec3 _e119 = encodeHdr(_e118, mode_2); sum = _e119; vec3 _e120 = sum; _fs2p_location0 = vec4(_e120, 1.0); return; }   *W.ùN“fBloom_block_0Fragment_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_main;"// language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_7 { metal::float2 inner[3]; }; struct Bloom { metal::float4 texel; metal::float4 params; }; constant float HDR_RANGE = 4.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_2 = metal::floor(p_1); metal::float2 f = p_1 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } metal::float3 prefilter( metal::float3 c_4, constant Bloom& bl ) { float rq = {}; float br = metal::max(c_4.x, metal::max(c_4.y, c_4.z)); float _e9 = bl.params.y; float knee = metal::max(_e9, 0.0001); float _e15 = bl.params.x; rq = metal::clamp((br - _e15) + knee, 0.0, 2.0 * knee); float _e23 = rq; float _e24 = rq; rq = (_e23 * _e24) / (4.0 * knee); float _e29 = rq; float _e33 = bl.params.x; float contrib = metal::max(_e29, br - _e33) / metal::max(br, 0.0001); return c_4 * contrib; } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_7 pos = type_7 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p_4 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p_4, 0.0, 1.0); out.uv = metal::float2((p_4.x * 0.5) + 0.5, 0.5 - (p_4.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Bloom& bl [[buffer(0)]] , metal::texture2d srcTex [[texture(0)]] , metal::sampler srcSamp [[sampler(0)]] ) { const FsOut in = { position, varyings_1.uv }; metal::float3 sum = metal::float3(0.0); metal::float4 _e3 = bl.texel; float _e8 = bl.texel.z; metal::float2 o = _e3.xy * _e8; metal::float4 _e13 = srcTex.sample(srcSamp, in.uv); metal::float3 s0_ = _e13.xyz; metal::float4 _e19 = srcTex.sample(srcSamp, in.uv - o); metal::float3 s1_ = _e19.xyz; metal::float4 _e25 = srcTex.sample(srcSamp, in.uv + o); metal::float3 s2_ = _e25.xyz; metal::float4 _e35 = srcTex.sample(srcSamp, in.uv + metal::float2(o.x, -(o.y))); metal::float3 s3_ = _e35.xyz; metal::float4 _e45 = srcTex.sample(srcSamp, in.uv - metal::float2(o.x, -(o.y))); metal::float3 s4_ = _e45.xyz; float mode_2 = bl.params.z; metal::float3 _e51 = decodeHdr(s0_, mode_2); metal::float3 _e52 = decodeHdr(s1_, mode_2); metal::float3 _e53 = decodeHdr(s2_, mode_2); metal::float3 _e54 = decodeHdr(s3_, mode_2); metal::float3 _e55 = decodeHdr(s4_, mode_2); float _e62 = bl.texel.w; if (_e62 > 0.5) { metal::float3 _e65 = prefilter(_e51, bl); metal::float3 _e66 = prefilter(_e52, bl); metal::float3 _e67 = prefilter(_e53, bl); metal::float3 _e68 = prefilter(_e54, bl); metal::float3 _e69 = prefilter(_e55, bl); float _e70 = luma(_e65); float w0_ = 4.0 / (1.0 + _e70); float _e75 = luma(_e66); float w1_ = 1.0 / (1.0 + _e75); float _e80 = luma(_e67); float w2_ = 1.0 / (1.0 + _e80); float _e85 = luma(_e68); float w3_ = 1.0 / (1.0 + _e85); float _e90 = luma(_e69); float w4_ = 1.0 / (1.0 + _e90); sum = (((((_e65 * w0_) + (_e66 * w1_)) + (_e67 * w2_)) + (_e68 * w3_)) + (_e69 * w4_)) / metal::float3((((w0_ + w1_) + w2_) + w3_) + w4_); } else { sum = (((((_e51 * 4.0) + _e52) + _e53) + _e54) + _e55) * 0.125; } metal::float3 _e118 = sum; metal::float3 _e119 = encodeHdr(_e118, mode_2); sum = _e119; metal::float3 _e120 = sum; return fs_mainOutput { metal::float4(_e120, 1.0) }; }   *W.ùN“fvs_mainmain/struct FsOut { float4 position; float2 uv; }; struct Bloom { float4 texel; float4 params; }; static const float2 _338[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _343 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _343; uint _347 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_338[_347], 0.0f, 1.0f); _out.uv = float2((_338[_347].x * 0.5f) + 0.5f, 0.5f - (_338[_347].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmaink struct FsOut { float4 position; float2 uv; }; struct Bloom { float4 texel; float4 params; }; cbuffer bl : register(b0) { Bloom bl_1_m0 : packoffset(c0); }; Texture2D srcTex : register(t0); SamplerState srcSamp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _377; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _377 : SV_Target0; }; float3 decodeHdr(float3 e, float mode) { if (mode > 0.5f) { return ((e * e) * e) * 4.0f; } return e; } float3 prefilter(float3 c) { float rq = 0.0f; float _344 = max(c.x, max(c.y, c.z)); float _349 = max(bl_1_m0.params.y, 9.9999997473787516355514526367188e-05f); rq = clamp((_344 - bl_1_m0.params.x) + _349, 0.0f, 2.0f * _349); rq = (rq * rq) / (4.0f * _349); return c * (max(rq, _344 - bl_1_m0.params.x) / max(_344, 9.9999997473787516355514526367188e-05f)); } float luma(float3 c) { return dot(c, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)); } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { float3 sum = float3(0.0f, 0.0f, 0.0f); FsOut _370 = { gl_FragCoord, uv }; float2 _394 = bl_1_m0.texel.xy * bl_1_m0.texel.z; float3 _430 = decodeHdr(srcTex.Sample(srcSamp, _370.uv).xyz, bl_1_m0.params.z); float3 _431 = decodeHdr(srcTex.Sample(srcSamp, _370.uv - _394).xyz, bl_1_m0.params.z); float3 _432 = decodeHdr(srcTex.Sample(srcSamp, _370.uv + _394).xyz, bl_1_m0.params.z); float3 _433 = decodeHdr(srcTex.Sample(srcSamp, _370.uv + float2(_394.x, -_394.y)).xyz, bl_1_m0.params.z); float3 _434 = decodeHdr(srcTex.Sample(srcSamp, _370.uv - float2(_394.x, -_394.y)).xyz, bl_1_m0.params.z); if (bl_1_m0.texel.w > 0.5f) { float3 _441 = prefilter(_430); float3 _442 = prefilter(_431); float3 _443 = prefilter(_432); float3 _444 = prefilter(_433); float3 _445 = prefilter(_434); float _448 = 4.0f / (1.0f + luma(_441)); float _451 = 1.0f / (1.0f + luma(_442)); float _454 = 1.0f / (1.0f + luma(_443)); float _457 = 1.0f / (1.0f + luma(_444)); float _460 = 1.0f / (1.0f + luma(_445)); float _473 = (((_448 + _451) + _454) + _457) + _460; sum = (((((_441 * _448) + (_442 * _451)) + (_443 * _454)) + (_444 * _457)) + (_445 * _460)) / float3(_473, _473, _473); } else { sum = (((((_430 * 4.0f) + _431) + _432) + _433) + _434) * 0.125f; } sum = encodeHdr(sum, bl_1_m0.params.z); _377 = float4(sum, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._377 = _377; return stage_output; }   *W.ùN“fHSLTBloom texelÿÿÿÿparamsÿÿÿÿbl_block blsrcTexÿÿÿÿsrcSampÿÿÿÿvs_mainvs_mainfs_mainfs_main*# GLSL.std.450yvs_mainruw¦fs_mainŸ¢¥¦H #H #G H#H#G"G!GH#G"G!G"G!Gr *Gu GwGŸ G¢G¥      +    +€@ ; ; ;!+,+‘ƒž=+ ®Ga=,! +"n§r?+#š™@,$###+%æ®%=,&%%%.-.+4R¸NA+5UUÕ>,6555+7= ‡?+8.M;,9888!E+FгY>+GY7?+H˜Ý“=,IFGH!P+Q?+R€>+S€?,TSSS+U«ªª>,VUUU!l+m f+n_ón<,onn+p,qpp s.t y+z+}!¤+¥€,¦¥¥+§+¨€3!´ !Ä +ÅCq‰=+Æ�E¿;, ÇÅÆ+È‚îSB+Ñ@@, ÒÑÑ+Ó@+Ô+Õ,ÖÔÕ,×ÕÔ,ØÔÔ+àÏ, áàà+âÿÿÿN, ãââ!ø +ùÀ@, úSS+-…ë?+.…ë@+/Í̈A+0ÍÌl@, 1/0+2áz”>+3q=‚@+4š™©@+533ïA, 645+7)\> 9.: N+P·Ñ8.R Y Z s;sr v ;vu x ;xw!z+{€¿, |{{, }Ñ{, ~{Ñ, |}~ � ƒ . „ † +‡ ‹ ˜   ; Ÿ £ ;£¢;v¥+ª> ¬µ67øù'ø' ((Ž)(�*(!Ž+*" ,+$¼-/(&©0/),þ086372ø1ù:ø: ;(2Ž<;4 =;6Ž>=7ƒ?>!¼-@;9©A@<?þA86DE7CøBùJøJ”KCIþK86OP7M7NøLùWøWº.XNQ÷YúXZYøZŽ[MR \+[T ]\Vþ]øYþM86aP7_7`ø^ùbøbº.c`Q÷dúcedøe…f__…gf_Žhgþhødþ_86kl7jøi;srtùuøuPwmm„vjw€xvo>rxAy{rz=|{Ay~r}=~„€m€�|€Ay‚rz>‚�Ayƒr}=„ƒAy…rz=†…„‡†m€ˆ„‡Ay‰r}>‰ˆ=Šr=‹rÂŒ‹qÆ�ŠŒ>r�AyŽrz=�ŽAy�r}=‘�„’‘m€“�’Ay”rz>”“Ay•r}=–•Ay—rz=˜—„™˜m€š–™Ay›r}>›š=œr=�rž�qÆŸœž>rŸ= rþ 86£¤7¢ø¡ù©ø©€ª¢¦|«ª9¬k«Q­¬Â®­§p¯®…°¯¨þ°86 ³´7²ø±ùµøµ€¶²¦|·¶9¸k·Q¹¸Âº¹§p»ºQ¼¸Â½¼§p¾½P ¿»¾Ž À¿¨þÀ86ÃÄ7 ÂøÁùÉøÉ”ÊÂÇ Ë Ê…ÌÈË Í ÌþÍ86ÐÄ7 ÏøÎùÙøÙ  Úσ ÛÏÚ… ÜÛÛŽ ÝÛÓƒ ÞÒÝ… ßÜÞ  ä+Úáãnåä9æ£å€çåÖ9è£ç€éå×9ê£é€ëåØ9ì£ëQíß î.æèíQïß ð.êìïQñß ò.îðñ…óòÓƒôóSþô86÷ø7 öøõùûøû  üöƒ ýöü… þýýŽ ÿýÓƒ Òÿ… þŽ ýùƒ úý…   +üáãn9£€Ö9 £€ ×9 £ € Ø9 £ ƒ ƒ ƒ ƒ � Q…�Q…�Q…Q…�Q…� Q!…"!�#"P $ #… %$…&Óƒ'&SŽ (%ÓP)'(þ)86,Ä7 +ø*;98:ù;ø;9<Ð+…=<->8==>8Ž ?+.� @?19AÐ@…BA2�C>B>8C=D8Ž E+3� FE69GÐF…HG7�IDH>8I=J8þJ86M7LøK;9QRANOzùSøSQTLQULQVL W(UV X(TWAZ[O}}=\[ ](\PAZ^O}z=_^ƒ`X_�a`]…bÓ] c+ab>Qc=dQ=eQ…fde…g]ˆhfg>Qh=iQAZjO}z=kjƒlXk m(il n(XPˆomnŽpLoþp86yzøq;�€;ƒ‚„=trù…ø… ˆ&t‡A†‰€ˆ= ЉP ŒŠSA‹�‚z>�ŒQŽŠ…�ŽQ���QQ‘Š…’‘Qƒ“Q’P ”�“A†•‚}>•”= –‚Q —–>u—A˜™u}=š™›š>™›Q œ–>wœý86¦zø�;¬«= ¡Ÿ= ¤¢P ž¡¤AN§z=¨=©ù­ø­AY®§z= ¯®O °¯¯AZ±§z‡=²±Ž ³°²Q ´žVµ¶¨©W ·¶´O¸··Q ¹žƒ º¹³Vµ»¨©W ¼»ºO½¼¼Q ¾ž� ¿¾³VµÀ¨©W ÁÀ¿OÂÁÁQ ÞQijQųÆÅP ÇÄÆ� ÈÃÇVµÉ¨©W ÊÉÈOËÊÊQ ÌžQͳQγÏÎP ÐÍσ ÑÌÐVµÒ¨©W ÓÒÑOÔÓÓAZÕ§}‡=ÖÕ9×a¸Ö9Øa½Ö9ÙaÂÖ9ÚaËÖ9ÛaÔÖAZܧz =Ýܺ.ÞÝQ÷ßúÞàáøà9âM×9ãMØ9äMÙ9åMÚ9æMÛ9çDâ�èSçˆéè9êDã�ëSêˆìSë9íDä�îSíˆïSî9ðDå�ñSðˆòSñ9óDæ�ôSóˆõSôŽöâéŽ÷ãì�øö÷Žùäï�úøùŽûåò�üúûŽýæõ�þüý�ÿéì�ÿï�ò�õPˆþ>«ùßøáŽ×�Ø�Ù�Ú� ÛŽ  ª>« ùßøß= «9 O Ö>« = «P  S>¥ý8  —-ë2<‹ÊËshaders/bloom_upjÔÒ±BTSR ËË](9& a>]¾>Á>N?f u_]Ò_½ �m]ìmİn;) ë—] vs_mainvs_mainfs_mainfs_main struct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct Bloom { texel: vec4, params: vec4, } const HDR_RANGE: f32 = 4f; @group(0) @binding(0) var bl: Bloom; @group(0) @binding(1) var srcTex: texture_2d; @group(0) @binding(2) var srcSamp: sampler; @group(0) @binding(3) var baseTex: texture_2d; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_2 = floor(p_1); let f = (p_1 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_3 = floor(p_2); let f_1 = (p_2 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p_4 = pos[vi]; out.position = vec4(p_4, 0f, 1f); out.uv = vec2(((p_4.x * 0.5f) + 0.5f), (0.5f - (p_4.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { var sum: vec3; let mode_2 = bl.params.z; let _e7 = bl.texel; let _e12 = bl.texel.z; let o = (_e7.xy * _e12); let _e23 = textureSample(srcTex, srcSamp, (in.uv + vec2((-2f * o.x), 0f))); let _e25 = decodeHdr(_e23.xyz, mode_2); sum = _e25; let _e27 = sum; let _e36 = textureSample(srcTex, srcSamp, (in.uv + vec2(-(o.x), o.y))); let _e38 = decodeHdr(_e36.xyz, mode_2); sum = (_e27 + (_e38 * 2f)); let _e42 = sum; let _e52 = textureSample(srcTex, srcSamp, (in.uv + vec2(0f, (2f * o.y)))); let _e54 = decodeHdr(_e52.xyz, mode_2); sum = (_e42 + _e54); let _e56 = sum; let _e64 = textureSample(srcTex, srcSamp, (in.uv + vec2(o.x, o.y))); let _e66 = decodeHdr(_e64.xyz, mode_2); sum = (_e56 + (_e66 * 2f)); let _e70 = sum; let _e80 = textureSample(srcTex, srcSamp, (in.uv + vec2((2f * o.x), 0f))); let _e82 = decodeHdr(_e80.xyz, mode_2); sum = (_e70 + _e82); let _e84 = sum; let _e93 = textureSample(srcTex, srcSamp, (in.uv + vec2(o.x, -(o.y)))); let _e95 = decodeHdr(_e93.xyz, mode_2); sum = (_e84 + (_e95 * 2f)); let _e99 = sum; let _e109 = textureSample(srcTex, srcSamp, (in.uv + vec2(0f, (-2f * o.y)))); let _e111 = decodeHdr(_e109.xyz, mode_2); sum = (_e99 + _e111); let _e113 = sum; let _e123 = textureSample(srcTex, srcSamp, (in.uv + vec2(-(o.x), -(o.y)))); let _e125 = decodeHdr(_e123.xyz, mode_2); sum = (_e113 + (_e125 * 2f)); let _e132 = textureSample(baseTex, srcSamp, in.uv); let _e134 = decodeHdr(_e132.xyz, mode_2); let _e135 = sum; let _e139 = encodeHdr(((_e135 * 0.083333336f) + _e134), mode_2); return vec4(_e139, 1f); }   ì§®u]X*vs_mainmain¹#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Bloom { vec4 texel; vec4 params; }; const float HDR_RANGE = 4.0; smooth out vec2 _vs2fs_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p_4 = pos[vi]; out_.position = vec4(p_4, 0.0, 1.0); out_.uv = vec2(((p_4.x * 0.5) + 0.5), (0.5 - (p_4.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainW#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Bloom { vec4 texel; vec4 params; }; const float HDR_RANGE = 4.0; layout(std140) uniform Bloom_block_0Fragment { Bloom _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_3_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); vec3 sum = vec3(0.0); float mode_2 = _group_0_binding_0_fs.params.z; vec4 _e7 = _group_0_binding_0_fs.texel; float _e12 = _group_0_binding_0_fs.texel.z; vec2 o = (_e7.xy * _e12); vec4 _e23 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2((-2.0 * o.x), 0.0)))); vec3 _e25 = decodeHdr(_e23.xyz, mode_2); sum = _e25; vec3 _e27 = sum; vec4 _e36 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2(-(o.x), o.y)))); vec3 _e38 = decodeHdr(_e36.xyz, mode_2); sum = (_e27 + (_e38 * 2.0)); vec3 _e42 = sum; vec4 _e52 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2(0.0, (2.0 * o.y))))); vec3 _e54 = decodeHdr(_e52.xyz, mode_2); sum = (_e42 + _e54); vec3 _e56 = sum; vec4 _e64 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2(o.x, o.y)))); vec3 _e66 = decodeHdr(_e64.xyz, mode_2); sum = (_e56 + (_e66 * 2.0)); vec3 _e70 = sum; vec4 _e80 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2((2.0 * o.x), 0.0)))); vec3 _e82 = decodeHdr(_e80.xyz, mode_2); sum = (_e70 + _e82); vec3 _e84 = sum; vec4 _e93 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2(o.x, -(o.y))))); vec3 _e95 = decodeHdr(_e93.xyz, mode_2); sum = (_e84 + (_e95 * 2.0)); vec3 _e99 = sum; vec4 _e109 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2(0.0, (-2.0 * o.y))))); vec3 _e111 = decodeHdr(_e109.xyz, mode_2); sum = (_e99 + _e111); vec3 _e113 = sum; vec4 _e123 = texture(_group_0_binding_1_fs, vec2((in_.uv + vec2(-(o.x), -(o.y))))); vec3 _e125 = decodeHdr(_e123.xyz, mode_2); sum = (_e113 + (_e125 * 2.0)); vec4 _e132 = texture(_group_0_binding_3_fs, vec2(in_.uv)); vec3 _e134 = decodeHdr(_e132.xyz, mode_2); vec3 _e135 = sum; vec3 _e139 = encodeHdr(((_e135 * 0.083333336) + _e134), mode_2); _fs2p_location0 = vec4(_e139, 1.0); return; }   K–�ÏBloom_block_0Fragment_group_0_binding_3_fs_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_main; // language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_7 { metal::float2 inner[3]; }; struct Bloom { metal::float4 texel; metal::float4 params; }; constant float HDR_RANGE = 4.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_2 = metal::floor(p_1); metal::float2 f = p_1 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_7 pos = type_7 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p_4 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p_4, 0.0, 1.0); out.uv = metal::float2((p_4.x * 0.5) + 0.5, 0.5 - (p_4.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Bloom& bl [[buffer(0)]] , metal::texture2d srcTex [[texture(0)]] , metal::sampler srcSamp [[sampler(0)]] , metal::texture2d baseTex [[texture(1)]] ) { const FsOut in = { position, varyings_1.uv }; metal::float3 sum = {}; float mode_2 = bl.params.z; metal::float4 _e7 = bl.texel; float _e12 = bl.texel.z; metal::float2 o = _e7.xy * _e12; metal::float4 _e23 = srcTex.sample(srcSamp, in.uv + metal::float2(-2.0 * o.x, 0.0)); metal::float3 _e25 = decodeHdr(_e23.xyz, mode_2); sum = _e25; metal::float3 _e27 = sum; metal::float4 _e36 = srcTex.sample(srcSamp, in.uv + metal::float2(-(o.x), o.y)); metal::float3 _e38 = decodeHdr(_e36.xyz, mode_2); sum = _e27 + (_e38 * 2.0); metal::float3 _e42 = sum; metal::float4 _e52 = srcTex.sample(srcSamp, in.uv + metal::float2(0.0, 2.0 * o.y)); metal::float3 _e54 = decodeHdr(_e52.xyz, mode_2); sum = _e42 + _e54; metal::float3 _e56 = sum; metal::float4 _e64 = srcTex.sample(srcSamp, in.uv + metal::float2(o.x, o.y)); metal::float3 _e66 = decodeHdr(_e64.xyz, mode_2); sum = _e56 + (_e66 * 2.0); metal::float3 _e70 = sum; metal::float4 _e80 = srcTex.sample(srcSamp, in.uv + metal::float2(2.0 * o.x, 0.0)); metal::float3 _e82 = decodeHdr(_e80.xyz, mode_2); sum = _e70 + _e82; metal::float3 _e84 = sum; metal::float4 _e93 = srcTex.sample(srcSamp, in.uv + metal::float2(o.x, -(o.y))); metal::float3 _e95 = decodeHdr(_e93.xyz, mode_2); sum = _e84 + (_e95 * 2.0); metal::float3 _e99 = sum; metal::float4 _e109 = srcTex.sample(srcSamp, in.uv + metal::float2(0.0, -2.0 * o.y)); metal::float3 _e111 = decodeHdr(_e109.xyz, mode_2); sum = _e99 + _e111; metal::float3 _e113 = sum; metal::float4 _e123 = srcTex.sample(srcSamp, in.uv + metal::float2(-(o.x), -(o.y))); metal::float3 _e125 = decodeHdr(_e123.xyz, mode_2); sum = _e113 + (_e125 * 2.0); metal::float4 _e132 = baseTex.sample(srcSamp, in.uv); metal::float3 _e134 = decodeHdr(_e132.xyz, mode_2); metal::float3 _e135 = sum; metal::float3 _e139 = encodeHdr((_e135 * 0.083333336) + _e134, mode_2); return fs_mainOutput { metal::float4(_e139, 1.0) }; }   K–�Ïvs_mainmain/struct FsOut { float4 position; float2 uv; }; struct Bloom { float4 texel; float4 params; }; static const float2 _338[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _343 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _343; uint _347 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_338[_347], 0.0f, 1.0f); _out.uv = float2((_338[_347].x * 0.5f) + 0.5f, 0.5f - (_338[_347].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmaine struct FsOut { float4 position; float2 uv; }; struct Bloom { float4 texel; float4 params; }; cbuffer bl : register(b0) { Bloom bl_1_m0 : packoffset(c0); }; Texture2D srcTex : register(t0); SamplerState srcSamp : register(s0); Texture2D baseTex : register(t1); static float4 gl_FragCoord; static float2 uv; static float4 _340; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _340 : SV_Target0; }; float3 decodeHdr(float3 e, float mode) { if (mode > 0.5f) { return ((e * e) * e) * 4.0f; } return e; } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { float3 sum = float3(0.0f, 0.0f, 0.0f); FsOut _333 = { gl_FragCoord, uv }; float2 _365 = bl_1_m0.texel.xy * bl_1_m0.texel.z; sum = decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2((-2.0f) * _365.x, 0.0f)).xyz, bl_1_m0.params.z); sum += (decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2(-_365.x, _365.y)).xyz, bl_1_m0.params.z) * 2.0f); sum += decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2(0.0f, 2.0f * _365.y)).xyz, bl_1_m0.params.z); sum += (decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2(_365)).xyz, bl_1_m0.params.z) * 2.0f); sum += decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2(2.0f * _365.x, 0.0f)).xyz, bl_1_m0.params.z); sum += (decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2(_365.x, -_365.y)).xyz, bl_1_m0.params.z) * 2.0f); sum += decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2(0.0f, (-2.0f) * _365.y)).xyz, bl_1_m0.params.z); sum += (decodeHdr(srcTex.Sample(srcSamp, _333.uv + float2(-_365.x, -_365.y)).xyz, bl_1_m0.params.z) * 2.0f); _340 = float4(encodeHdr((sum * 0.083333335816860198974609375f) + decodeHdr(baseTex.Sample(srcSamp, _333.uv).xyz, bl_1_m0.params.z), bl_1_m0.params.z), 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._340 = _340; return stage_output; }   K–�ÏHSLTBloom texelÿÿÿÿparamsÿÿÿÿbl_block blsrcTexÿÿÿÿbaseTexÿÿÿÿsrcSampÿÿÿÿvs_mainvs_mainfs_mainfs_main)# GLSL.std.450Tvs_mainMPR�fs_mainz}€�H #H #G H#H#G"G!GH#G"G!G"G!G"G!GM *GP GRGz G}G€      +    +€@ ; ; ;;!+,+ ‘ƒž=+!®Ga=,"!!!+#n§r?+$š™@,%$$$+&æ®%=,'&&&/./+5R¸NA+6UUÕ>,7666+8= ‡?+9.M;,:999!F+GгY>+HY7?+I˜Ý“=,JGHI!Q+R?+S€>+T€?,UTTT+V«ªª>,WVVV!m+n f+o_ón<,poo+q,rqq t.u z+{+~!¥+¦€,§¦¦+¨+©€3!µ !Å +ÆCq‰=+Ç�E¿;, ÈÆÇ+É‚îSB+Ò@@, ÓÒÒ+Ô@+Õ+Ö,×ÕÖ,ØÖÕ,ÙÕÕ+áÏ, âáá+ãÿÿÿN, äãã!ù +úÀ@, ûTT+.…ë?+/…ë@+0Í̈A+1ÍÌl@, 201+3áz”>+4q=‚@+5š™©@+633ïA, 756+8)\> :.; N;NM Q ;QP S ;SR!U+V€¿, WVV, XÒV, YVÒ, ZWXY \ ^ . _ a +b f s { ;{z ~ ;~};Q€ ‚+‡À+ˆ«ªª= Š.‹ � Žœ67øù(ø( )(Ž*) �+)"Ž,+# -,%¼.0)'©10*-þ186473ø2ù;ø; <(3Ž=<5 ><7Ž?>8ƒ@?"¼.A<:©BA=@þB86EF7DøCùKøK”LDJþL86PQ7N7OøMùXøXº/YOR÷ZúY[Zø[Ž\NS ]+\U ^]Wþ^øZþN86bQ7`7aø_ùcøcº/daR÷eúdfeøf…g``…hg`Žihþiøeþ`86lm7køj;tsuùvøvPxnn„wkx€ywp>syAz|s{=}|Azs~=€„�€n€‚}�Azƒs{>ƒ‚Az„s~=…„Az†s{=‡†„ˆ‡n€‰…ˆAzŠs~>Љ=‹s=ŒsÂ�ŒrÆŽ‹�>sŽAz�s{=��Az‘s~=’‘„“’n€”�“Az•s{>•”Az–s~=—–Az˜s{=™˜„š™n€›—šAzœs~>œ›=�s=žsŸžrÆ �Ÿ>s =¡sþ¡86¤¥7£ø¢ùªøª€«£§|¬«9­l¬Q®­Â¯®¨p°¯…±°©þ±86 ´µ7³ø²ù¶ø¶€·³§|¸·9¹l¸Qº¹Â»º¨p¼»Q½¹Â¾½¨p¿¾P À¼¿Ž ÁÀ©þÁ86ÄÅ7 ÃøÂùÊøÊ”ËÃÈ Ì Ë…ÍÉÌ Î ÍþÎ86ÑÅ7 ÐøÏùÚøÚ  ÛЃ ÜÐÛ… ÝÜÜŽ ÞÜÔƒ ßÓÞ… àÝß  å+Ûâänæå9ç¤æ€èæ×9é¤è€êæØ9ë¤ê€ìæÙ9í¤ìQîà ï.çéîQðà ñ.ëíðQòà ó.ïñò…ôóÔƒõôTþõ86øù7 ÷øöùüøü  ý÷ƒ þ÷ý… ÿþþŽ þÔƒ Ó… ÿŽ þúƒ ûþ…   +ýâän9¤€ ×9 ¤ € Ø9 ¤ € Ù9¤ ƒ ƒ ƒ ƒ �Q…�Q…�Q…Q…�Q… �! Q"…#"�$#P %!$… &%…'Ôƒ('TŽ )&ÔP*()þ*86-Å7 ,ø+;:9;ù<ø<9=Ñ,…>=.>9>=?9Ž @,/� A@29BÑA…CB3�D?C>9D=E9Ž F,4� GF79HÑG…IH8�JEI>9J=K9þK86TUøL;\[Z;^]_=OMù`ø` c&ObAad[c= edP geTAfh]{>hgQie…jiR�kjRQle…mlRƒnRmP oknAap]~>po= q]Q rq>PrAstP~=utvu>tvQ wq>Rwý86�Uøx;Љ‹= |z= }P y|A‚ƒ{=„=…=†ùŒøŒAŽ�ƒ~b=��A�‘ƒ{= ’‘O “’’AŽ”ƒ{b=•”Ž –“•Q —yQ˜–…™‡˜P š™� ›—šVœ�„…W ž�›OŸžž9 bŸ�>‰ =¡‰Q ¢yQ£–¤£Q¥–P ¦¤¥� §¢¦Vœ¨„…W ©¨§Oª©©9«bª�ެ«Ô�­¡¬>‰­=®‰Q ¯yQ°–…±Ô°P ²±� ³¯²Vœ´„…W µ´³O¶µµ9·b¶��¸®·>‰¸=¹‰Q ºyQ»–Q¼–P ½»¼� ¾º½Vœ¿„…W À¿¾OÁÀÀ9ÂbÁ�ŽÃÂÔ�ĹÃ>‰Ä=ʼnQ ÆyQÇ–…ÈÔÇP ÉÈ� ÊÆÉVœË„…W ÌËÊOÍÌÌ9ÎbÍ��ÏÅÎ>‰Ï=ЉQ ÑyQÒ–QÓ–ÔÓP ÕÒÔ� ÖÑÕVœ×„…W Ø×ÖOÙØØ9ÚbÙ�ŽÛÚÔ�ÜÐÛ>‰Ü=݉Q ÞyQß–…à‡ßP áà� âÞáVœã„…W äãâOåää9æbå��çÝæ>‰ç=è‰Q éyQê–ëêQì–íìP îëí� ïéîVœð„…W ñðïOòññ9óbò�ŽôóÔ�õèô>‰õQ öyVœ÷†…W ø÷öOùøø9úbù�=û‰Žüûˆ�ýüú9þPý�P ÿþT>€ÿý8  ì§®u]X*ÊËshaders/blur_vsmjÔ§rBTSR BBK�1 ¾K  4@” ÔK2 Q(Kœ(“/)' V8Kvs_mainvs_mainfs_mainfs_mainstruct Blur { dir: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } @group(0) @binding(0) var blur: Blur; @group(0) @binding(1) var srcTex: texture_2d; @group(0) @binding(2) var srcSamp: sampler; @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> VsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: VsOut; let p = pos[vi]; out.position = vec4(p, 0f, 1f); out.uv = vec2(((p.x * 0.5f) + 0.5f), (0.5f - (p.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: VsOut) -> @location(0) vec4 { var w: array = array(0.227027f, 0.1945946f, 0.1216216f, 0.0540541f, 0.0162162f); var acc: vec2; var i: i32 = 1i; let _e10 = blur.dir; let _e15 = blur.dir.z; let stepUv = (_e10.xy * _e15); let _e21 = textureSampleLevel(srcTex, srcSamp, in.uv, 0f); let _e24 = w[0]; acc = (_e21.xy * _e24); loop { let _e29 = i; if (_e29 < 5i) { } else { break; } { let _e32 = i; let o = (stepUv * f32(_e32)); let _e35 = acc; let _e41 = textureSampleLevel(srcTex, srcSamp, (in.uv + o), 0f); let _e43 = i; let _e45 = w[_e43]; acc = (_e35 + (_e41.xy * _e45)); let _e48 = acc; let _e54 = textureSampleLevel(srcTex, srcSamp, (in.uv - o), 0f); let _e56 = i; let _e58 = w[_e56]; acc = (_e48 + (_e54.xy * _e58)); } continuing { let _e61 = i; i = (_e61 + 1i); } } let _e64 = acc; return vec4(_e64, 0f, 1f); }  §~Ï‹Çývs_mainmain�#version 300 es precision highp float; precision highp int; struct Blur { vec4 dir; }; struct VsOut { vec4 position; vec2 uv; }; smooth out vec2 _vs2fs_location0; void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); VsOut out_ = VsOut(vec4(0.0), vec2(0.0)); vec2 p = pos[vi]; out_.position = vec4(p, 0.0, 1.0); out_.uv = vec2(((p.x * 0.5) + 0.5), (0.5 - (p.y * 0.5))); VsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainx#version 300 es precision highp float; precision highp int; struct Blur { vec4 dir; }; struct VsOut { vec4 position; vec2 uv; }; layout(std140) uniform Blur_block_0Fragment { Blur _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; void main() { VsOut in_ = VsOut(gl_FragCoord, _vs2fs_location0); float w[5] = float[5](0.227027, 0.1945946, 0.1216216, 0.0540541, 0.0162162); vec2 acc = vec2(0.0); int i = 1; vec4 _e10 = _group_0_binding_0_fs.dir; float _e15 = _group_0_binding_0_fs.dir.z; vec2 stepUv = (_e10.xy * _e15); vec4 _e21 = textureLod(_group_0_binding_1_fs, vec2(in_.uv), 0.0); float _e24 = w[0]; acc = (_e21.xy * _e24); bool loop_init = true; while(true) { if (!loop_init) { int _e61 = i; i = (_e61 + 1); } loop_init = false; int _e29 = i; if ((_e29 < 5)) { } else { break; } { int _e32 = i; vec2 o = (stepUv * float(_e32)); vec2 _e35 = acc; vec4 _e41 = textureLod(_group_0_binding_1_fs, vec2((in_.uv + o)), 0.0); int _e43 = i; float _e45 = w[_e43]; acc = (_e35 + (_e41.xy * _e45)); vec2 _e48 = acc; vec4 _e54 = textureLod(_group_0_binding_1_fs, vec2((in_.uv - o)), 0.0); int _e56 = i; float _e58 = w[_e56]; acc = (_e48 + (_e54.xy * _e58)); } } vec2 _e64 = acc; _fs2p_location0 = vec4(_e64, 0.0, 1.0); return; }  :¨þ†Öþ�ØBlur_block_0Fragment_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_maini // language: metal1.0 #include #include using metal::uint; struct Blur { metal::float4 dir; }; struct VsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_6 { metal::float2 inner[3]; }; struct type_7 { float inner[5]; }; struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_6 pos = type_6 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; VsOut out = {}; metal::float2 p = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p, 0.0, 1.0); out.uv = metal::float2((p.x * 0.5) + 0.5, 0.5 - (p.y * 0.5)); VsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Blur& blur [[buffer(0)]] , metal::texture2d srcTex [[texture(0)]] , metal::sampler srcSamp [[sampler(0)]] ) { const VsOut in = { position, varyings_1.uv }; type_7 w = type_7 {{0.227027, 0.1945946, 0.1216216, 0.0540541, 0.0162162}}; metal::float2 acc = {}; int i = 1; metal::float4 _e10 = blur.dir; float _e15 = blur.dir.z; metal::float2 stepUv = _e10.xy * _e15; metal::float4 _e21 = srcTex.sample(srcSamp, in.uv, metal::level(0.0)); float _e24 = w.inner[0]; acc = _e21.xy * _e24; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e61 = i; i = as_type(as_type(_e61) + as_type(1)); } loop_init = false; int _e29 = i; if (_e29 < 5) { } else { break; } { int _e32 = i; metal::float2 o = stepUv * static_cast(_e32); metal::float2 _e35 = acc; metal::float4 _e41 = srcTex.sample(srcSamp, in.uv + o, metal::level(0.0)); int _e43 = i; float _e45 = w.inner[metal::min(unsigned(_e43), 4u)]; acc = _e35 + (_e41.xy * _e45); metal::float2 _e48 = acc; metal::float4 _e54 = srcTex.sample(srcSamp, in.uv - o, metal::level(0.0)); int _e56 = i; float _e58 = w.inner[metal::min(unsigned(_e56), 4u)]; acc = _e48 + (_e54.xy * _e58); } } metal::float2 _e64 = acc; return fs_mainOutput { metal::float4(_e64, 0.0, 1.0) }; }  :¨þ†Öþ�Øvs_mainmainstruct Blur { float4 dir; }; struct VsOut { float4 position; float2 uv; }; static const float2 _31[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const VsOut _39 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { VsOut _out = _39; uint _43 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_31[_43], 0.0f, 1.0f); _out.uv = float2((_31[_43].x * 0.5f) + 0.5f, 0.5f - (_31[_43].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmainústruct Blur { float4 dir; }; struct VsOut { float4 position; float2 uv; }; static const float _45[5] = { 0.227026998996734619140625f, 0.19459460675716400146484375f, 0.121621601283550262451171875f, 0.0540541000664234161376953125f, 0.0162161998450756072998046875f }; cbuffer blur : register(b0) { Blur blur_1_m0 : packoffset(c0); }; Texture2D srcTex : register(t0); SamplerState srcSamp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _31; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _31 : SV_Target0; }; void frag_main() { float2 acc = float2(0.0f, 0.0f); int i = 1; uint2 loop_bound = uint2(4294967295u, 4294967295u); VsOut _24 = { gl_FragCoord, uv }; float2 _66 = blur_1_m0.dir.xy * blur_1_m0.dir.z; acc = srcTex.SampleLevel(srcSamp, _24.uv, 0.0f).xy * _45[0u]; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 5)) { break; } float2 _107 = _66 * float(i); acc += (srcTex.SampleLevel(srcSamp, _24.uv + _107, 0.0f).xy * _45[min(uint(i), 4u)]); acc += (srcTex.SampleLevel(srcSamp, _24.uv - _107, 0.0f).xy * _45[min(uint(i), 4u)]); i++; continue; } _31 = float4(acc, 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._31 = _31; return stage_output; }  :¨þ†Öþ�ØHSLTBlurdirÿÿÿÿ blur_blockblursrcTexÿÿÿÿsrcSampÿÿÿÿvs_mainvs_mainfs_mainfs_mainü#³ GLSL.std.450vs_mainRfs_mainKNQRH#H #H #G G G"G!GH#G"G!G"G!G *G GGK GNGQ    +   +    ; ; ;  ; ; ;! +!€¿,"!!+#@@,$#!,%!#, &"$%+'+(€?+)? + - . . 0+ 1 5+ 7+ @ D L;LK O;ON;Q S+WÄyh>+XÏCG>+Y¿ù=+ZÕg]=+[Öׄ<, \WXYZ[+]+^ ` .b d f jo s{  |{}~},{77+ €ÿÿÿÿ,{�€€+ �6 ø;+*&;-,.= ù/ø/  2&1A03*2=43P64'(A58,7>86Q94…:9)�;:)Q<4…=<)ƒ>)=P?;>A0A,@>A?= B,QCB>CADE@=FEGF>EGQHB>Hý86R øI;`_\;0ab;dc];|‚�=MK=PNP JMPAST7=U=VùeøeAfgT7=hgOihhAjkT71=lkŽmilQnJVopUVXqpn'OrqqAst_7=utŽvru>avùwøwöxzùƒøƒ={„‚ª~…„›}†…÷‡ú†x‡ø‡Q ˆ„ª}‰ˆ7© Љ@7P{‹Š@‚{Œ„‹>‚Œùyøy=�c±}Ž�^÷�úŽ��ø�ùxø�ù‘ø‘=“co”“Ž•m”=–aQ—J�˜—•Vo™UVXš™˜'O›šš=œc  ž&œ�AsŸ_ž= ŸŽ¡› �¢–¡>a¢=£aQ¤Jƒ¥¤•Vo¦UVX§¦¥'O¨§§=©c  ª&©�As«_ª=¬«Ž­¨¬�®£­>a®ù’ø’ùzøz=¯c€°¯]>c°ùwøx=±aP²±'(>Q²ý8 §~Ï‹ÇýÊËshaders/contact_aojÔ€ëBTSR   KW„ Û#K&$@$\$ì H;K“;Y ìTK7U™ÐUß ¯tKvs_mainvs_mainfs_mainfs_mainástruct AoMap { rect: vec4, } struct AoIn { @builtin(vertex_index) vi: u32, @location(0) foot: vec4, @location(1) card: vec4, @location(2) uvRect: vec4, @location(3) span: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) along: f32, @location(1) across: f32, @location(2) @interpolate(flat) card: vec4, @location(3) @interpolate(flat) uvRect: vec4, @location(4) @interpolate(flat) span: vec4, @location(5) @interpolate(flat) len: f32, } @group(0) @binding(0) var aomap: AoMap; @group(0) @binding(1) var cardTex: texture_2d; @group(0) @binding(2) var cardSamp: sampler; @vertex fn vs_main(in: AoIn) -> VsOut { var corners: array, 6> = array, 6>(vec2(0f, -1f), vec2(1f, -1f), vec2(1f, 1f), vec2(0f, -1f), vec2(1f, 1f), vec2(0f, 1f)); var out: VsOut; let c = corners[in.vi]; let a = in.foot.xy; let seg = (in.foot.zw - a); let len = max(length(seg), 0.0001f); let m = (in.span.z / len); let t = mix(-(m), (1f + m), c.x); let n = (vec2(-(seg.y), seg.x) / vec2(len)); let s = (c.y * in.card.z); let p = ((a + (seg * t)) + (n * s)); let _e58 = aomap.rect.x; let _e63 = aomap.rect.z; let _e69 = aomap.rect.y; let _e74 = aomap.rect.w; let uv = vec2(((p.x - _e58) * _e63), ((p.y - _e69) * _e74)); out.position = vec4(((uv.x * 2f) - 1f), (1f - (uv.y * 2f)), 0f, 1f); out.along = t; out.across = s; out.card = in.card; out.uvRect = in.uvRect; out.span = in.span; out.len = len; let _e101 = out; return _e101; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { var occ: f32 = 0f; var i: i32 = 0i; var aL: f32; var aC: f32; var aR: f32; let d = abs(in_1.across); let R = in_1.card.z; let len_1 = in_1.len; let beyond = (max(max(-(in_1.along), (in_1.along - 1f)), 0f) * len_1); let qx = mix(in_1.span.x, in_1.span.y, clamp(in_1.along, 0f, 1f)); let hN = max(in_1.card.x, 0.0001f); let dq = ((((0.8f * d) + 0.002f) / max(len_1, 0.0001f)) * abs((in_1.span.y - in_1.span.x))); let hs = vec3(((0.3f * d) + 0.0015f), ((1f * d) + 0.004f), ((2.2f * d) + 0.01f)); let hw = vec3(0.5f, 0.3f, 0.2f); loop { let _e63 = i; if (_e63 < 3i) { } else { break; } { let _e66 = i; let qy = min((hs[_e66] / hN), 1f); let uvL = (in_1.uvRect.xy + (vec2((qx - dq), qy) * in_1.uvRect.zw)); let uvC = (in_1.uvRect.xy + (vec2(qx, qy) * in_1.uvRect.zw)); let uvR = (in_1.uvRect.xy + (vec2((qx + dq), qy) * in_1.uvRect.zw)); let _e97 = textureSampleLevel(cardTex, cardSamp, uvL, 0f); aL = _e97.w; let _e103 = textureSampleLevel(cardTex, cardSamp, uvC, 0f); aC = _e103.w; let _e109 = textureSampleLevel(cardTex, cardSamp, uvR, 0f); aR = _e109.w; if (in_1.card.w < 0.5f) { aL = 1f; aC = 1f; aR = 1f; } let _e119 = occ; let _e120 = aL; let _e121 = aC; let _e125 = aR; let _e129 = i; occ = (_e119 + ((((_e120 + (_e121 * 2f)) + _e125) * 0.25f) * hw[_e129])); } continuing { let _e133 = i; i = (_e133 + 1i); } } let dist = sqrt(((d * d) + (beyond * beyond))); let fall = (1f - smoothstep(0f, R, dist)); let _e144 = occ; occ = ((_e144 * fall) * fall); let _e149 = occ; let ao = (1f - (in_1.card.y * _e149)); return vec4(ao, ao, ao, 1f); }  §~Ï‹Çývs_mainmain÷#version 300 es precision highp float; precision highp int; struct AoMap { vec4 rect; }; struct AoIn { uint vi; vec4 foot; vec4 card; vec4 uvRect; vec4 span; }; struct VsOut { vec4 position; float along; float across; vec4 card; vec4 uvRect; vec4 span; float len; }; layout(std140) uniform AoMap_block_0Vertex { AoMap _group_0_binding_0_vs; }; layout(location = 0) in vec4 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; smooth out float _vs2fs_location0; smooth out float _vs2fs_location1; flat out vec4 _vs2fs_location2; flat out vec4 _vs2fs_location3; flat out vec4 _vs2fs_location4; flat out float _vs2fs_location5; void main() { AoIn in_ = AoIn(uint(gl_VertexID), _p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3); vec2 corners[6] = vec2[6](vec2(0.0, -1.0), vec2(1.0, -1.0), vec2(1.0, 1.0), vec2(0.0, -1.0), vec2(1.0, 1.0), vec2(0.0, 1.0)); VsOut out_ = VsOut(vec4(0.0), 0.0, 0.0, vec4(0.0), vec4(0.0), vec4(0.0), 0.0); vec2 c = corners[in_.vi]; vec2 a = in_.foot.xy; vec2 seg = (in_.foot.zw - a); float len = max(length(seg), 0.0001); float m = (in_.span.z / len); float t = mix(-(m), (1.0 + m), c.x); vec2 n = (vec2(-(seg.y), seg.x) / vec2(len)); float s = (c.y * in_.card.z); vec2 p = ((a + (seg * t)) + (n * s)); float _e58 = _group_0_binding_0_vs.rect.x; float _e63 = _group_0_binding_0_vs.rect.z; float _e69 = _group_0_binding_0_vs.rect.y; float _e74 = _group_0_binding_0_vs.rect.w; vec2 uv = vec2(((p.x - _e58) * _e63), ((p.y - _e69) * _e74)); out_.position = vec4(((uv.x * 2.0) - 1.0), (1.0 - (uv.y * 2.0)), 0.0, 1.0); out_.along = t; out_.across = s; out_.card = in_.card; out_.uvRect = in_.uvRect; out_.span = in_.span; out_.len = len; VsOut _e101 = out_; gl_Position = _e101.position; _vs2fs_location0 = _e101.along; _vs2fs_location1 = _e101.across; _vs2fs_location2 = _e101.card; _vs2fs_location3 = _e101.uvRect; _vs2fs_location4 = _e101.span; _vs2fs_location5 = _e101.len; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmaind #version 300 es precision highp float; precision highp int; struct AoMap { vec4 rect; }; struct AoIn { uint vi; vec4 foot; vec4 card; vec4 uvRect; vec4 span; }; struct VsOut { vec4 position; float along; float across; vec4 card; vec4 uvRect; vec4 span; float len; }; uniform highp sampler2D _group_0_binding_1_fs; smooth in float _vs2fs_location0; smooth in float _vs2fs_location1; flat in vec4 _vs2fs_location2; flat in vec4 _vs2fs_location3; flat in vec4 _vs2fs_location4; flat in float _vs2fs_location5; layout(location = 0) out vec4 _fs2p_location0; void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5); float occ = 0.0; int i = 0; float aL = 0.0; float aC = 0.0; float aR = 0.0; float d = abs(in_1.across); float R = in_1.card.z; float len = in_1.len; float beyond = (max(max(-(in_1.along), (in_1.along - 1.0)), 0.0) * len); float qx = mix(in_1.span.x, in_1.span.y, clamp(in_1.along, 0.0, 1.0)); float hN = max(in_1.card.x, 0.0001); float dq = ((((0.8 * d) + 0.002) / max(len, 0.0001)) * abs((in_1.span.y - in_1.span.x))); vec3 hs = vec3(((0.3 * d) + 0.0015), ((1.0 * d) + 0.004), ((2.2 * d) + 0.01)); vec3 hw = vec3(0.5, 0.3, 0.2); bool loop_init = true; while(true) { if (!loop_init) { int _e133 = i; i = (_e133 + 1); } loop_init = false; int _e63 = i; if ((_e63 < 3)) { } else { break; } { int _e66 = i; float qy = min((hs[_e66] / hN), 1.0); vec2 uvL = (in_1.uvRect.xy + (vec2((qx - dq), qy) * in_1.uvRect.zw)); vec2 uvC = (in_1.uvRect.xy + (vec2(qx, qy) * in_1.uvRect.zw)); vec2 uvR = (in_1.uvRect.xy + (vec2((qx + dq), qy) * in_1.uvRect.zw)); vec4 _e97 = textureLod(_group_0_binding_1_fs, vec2(uvL), 0.0); aL = _e97.w; vec4 _e103 = textureLod(_group_0_binding_1_fs, vec2(uvC), 0.0); aC = _e103.w; vec4 _e109 = textureLod(_group_0_binding_1_fs, vec2(uvR), 0.0); aR = _e109.w; if ((in_1.card.w < 0.5)) { aL = 1.0; aC = 1.0; aR = 1.0; } float _e119 = occ; float _e120 = aL; float _e121 = aC; float _e125 = aR; int _e129 = i; occ = (_e119 + ((((_e120 + (_e121 * 2.0)) + _e125) * 0.25) * hw[_e129])); } } float dist = sqrt(((d * d) + (beyond * beyond))); float fall = (1.0 - smoothstep(0.0, R, dist)); float _e144 = occ; occ = ((_e144 * fall) * fall); float _e149 = occ; float ao = (1.0 - (in_1.card.y * _e149)); _fs2p_location0 = vec4(ao, ao, ao, 1.0); return; }  :¨þ†Öþ�ØAoMap_block_0Vertex_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_mainÁ// language: metal1.0 #include #include using metal::uint; struct AoMap { metal::float4 rect; }; struct AoIn { uint vi; char _pad1[12]; metal::float4 foot; metal::float4 card; metal::float4 uvRect; metal::float4 span; }; struct VsOut { metal::float4 position; float along; float across; char _pad3[8]; metal::float4 card; metal::float4 uvRect; metal::float4 span; float len; char _pad7[12]; }; struct type_6 { metal::float2 inner[6]; }; struct vs_mainInput { metal::float4 foot [[attribute(0)]]; metal::float4 card [[attribute(1)]]; metal::float4 uvRect [[attribute(2)]]; metal::float4 span [[attribute(3)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; float along [[user(loc0), center_perspective]]; float across [[user(loc1), center_perspective]]; metal::float4 card [[user(loc2), flat]]; metal::float4 uvRect [[user(loc3), flat]]; metal::float4 span [[user(loc4), flat]]; float len [[user(loc5), flat]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , uint vi [[vertex_id]] , constant AoMap& aomap [[buffer(0)]] ) { const AoIn in = { vi, {}, varyings.foot, varyings.card, varyings.uvRect, varyings.span }; type_6 corners = type_6 {{metal::float2(0.0, -1.0), metal::float2(1.0, -1.0), metal::float2(1.0, 1.0), metal::float2(0.0, -1.0), metal::float2(1.0, 1.0), metal::float2(0.0, 1.0)}}; VsOut out = {}; metal::float2 c = corners.inner[metal::min(unsigned(in.vi), 5u)]; metal::float2 a = in.foot.xy; metal::float2 seg = in.foot.zw - a; float len = metal::max(metal::length(seg), 0.0001); float m = in.span.z / len; float t = metal::mix(-(m), 1.0 + m, c.x); metal::float2 n = metal::float2(-(seg.y), seg.x) / metal::float2(len); float s = c.y * in.card.z; metal::float2 p = (a + (seg * t)) + (n * s); float _e58 = aomap.rect.x; float _e63 = aomap.rect.z; float _e69 = aomap.rect.y; float _e74 = aomap.rect.w; metal::float2 uv = metal::float2((p.x - _e58) * _e63, (p.y - _e69) * _e74); out.position = metal::float4((uv.x * 2.0) - 1.0, 1.0 - (uv.y * 2.0), 0.0, 1.0); out.along = t; out.across = s; out.card = in.card; out.uvRect = in.uvRect; out.span = in.span; out.len = len; VsOut _e101 = out; const auto _tmp = _e101; return vs_mainOutput { _tmp.position, _tmp.along, _tmp.across, _tmp.card, _tmp.uvRect, _tmp.span, _tmp.len }; } struct fs_mainInput { float along [[user(loc0), center_perspective]]; float across [[user(loc1), center_perspective]]; metal::float4 card [[user(loc2), flat]]; metal::float4 uvRect [[user(loc3), flat]]; metal::float4 span [[user(loc4), flat]]; float len [[user(loc5), flat]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , metal::texture2d cardTex [[texture(0)]] , metal::sampler cardSamp [[sampler(0)]] ) { const VsOut in_1 = { position, varyings_1.along, varyings_1.across, {}, varyings_1.card, varyings_1.uvRect, varyings_1.span, varyings_1.len }; float occ = 0.0; int i = 0; float aL = {}; float aC = {}; float aR = {}; float d = metal::abs(in_1.across); float R = in_1.card.z; float len_1 = in_1.len; float beyond = metal::max(metal::max(-(in_1.along), in_1.along - 1.0), 0.0) * len_1; float qx = metal::mix(in_1.span.x, in_1.span.y, metal::clamp(in_1.along, 0.0, 1.0)); float hN = metal::max(in_1.card.x, 0.0001); float dq = (((0.8 * d) + 0.002) / metal::max(len_1, 0.0001)) * metal::abs(in_1.span.y - in_1.span.x); metal::float3 hs = metal::float3((0.3 * d) + 0.0015, (1.0 * d) + 0.004, (2.2 * d) + 0.01); metal::float3 hw = metal::float3(0.5, 0.3, 0.2); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e133 = i; i = as_type(as_type(_e133) + as_type(1)); } loop_init = false; int _e63 = i; if (_e63 < 3) { } else { break; } { int _e66 = i; float qy = metal::min(hs[metal::min(unsigned(_e66), 2u)] / hN, 1.0); metal::float2 uvL = in_1.uvRect.xy + (metal::float2(qx - dq, qy) * in_1.uvRect.zw); metal::float2 uvC = in_1.uvRect.xy + (metal::float2(qx, qy) * in_1.uvRect.zw); metal::float2 uvR = in_1.uvRect.xy + (metal::float2(qx + dq, qy) * in_1.uvRect.zw); metal::float4 _e97 = cardTex.sample(cardSamp, uvL, metal::level(0.0)); aL = _e97.w; metal::float4 _e103 = cardTex.sample(cardSamp, uvC, metal::level(0.0)); aC = _e103.w; metal::float4 _e109 = cardTex.sample(cardSamp, uvR, metal::level(0.0)); aR = _e109.w; if (in_1.card.w < 0.5) { aL = 1.0; aC = 1.0; aR = 1.0; } float _e119 = occ; float _e120 = aL; float _e121 = aC; float _e125 = aR; int _e129 = i; occ = _e119 + ((((_e120 + (_e121 * 2.0)) + _e125) * 0.25) * hw[metal::min(unsigned(_e129), 2u)]); } } float dist = metal::sqrt((d * d) + (beyond * beyond)); float fall = 1.0 - metal::smoothstep(0.0, R, dist); float _e144 = occ; occ = (_e144 * fall) * fall; float _e149 = occ; float ao = 1.0 - (in_1.card.y * _e149); return fs_mainOutput { metal::float4(ao, ao, ao, 1.0) }; }  :¨þ†Öþ�Øvs_mainmainÛ struct AoMap { float4 rect; }; struct AoIn { uint vi; float4 foot; float4 card; float4 uvRect; float4 span; }; struct VsOut { float4 position; float along; float across; float4 card; float4 uvRect; float4 span; float len; }; static const float2 _54[6] = { float2(0.0f, -1.0f), float2(1.0f, -1.0f), float2(1.0f, 1.0f), float2(0.0f, -1.0f), float2(1.0f, 1.0f), float2(0.0f, 1.0f) }; static const VsOut _61 = { float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f }; cbuffer aomap : register(b0) { AoMap aomap_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float4 foot; static float4 card; static float4 uvRect; static float4 span; static float along; static float across; static float4 card_1; static float4 uvRect_1; static float4 span_1; static float len; struct SPIRV_Cross_Input { float4 foot : TEXCOORD0; float4 card : TEXCOORD1; float4 uvRect : TEXCOORD2; float4 span : TEXCOORD3; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float along : TEXCOORD0; float across : TEXCOORD1; nointerpolation float4 card_1 : TEXCOORD2; nointerpolation float4 uvRect_1 : TEXCOORD3; nointerpolation float4 span_1 : TEXCOORD4; nointerpolation float len : TEXCOORD5; float4 gl_Position : SV_Position; }; void vert_main() { VsOut _out = _61; AoIn _20 = { uint(gl_VertexIndex), foot, card, uvRect, span }; uint _66 = min(_20.vi, 5u); float2 _73 = _20.foot.zw - _20.foot.xy; float _75 = max(length(_73), 9.9999997473787516355514526367188e-05f); float _78 = _20.span.z / _75; float _82 = lerp(-_78, 1.0f + _78, _54[_66].x); float _92 = _54[_66].y * _20.card.z; float2 _96 = (_20.foot.xy + (_73 * _82)) + ((float2(-_73.y, _73.x) / float2(_75, _75)) * _92); float2 _116 = float2((_96.x - aomap_1_m0.rect.x) * aomap_1_m0.rect.z, (_96.y - aomap_1_m0.rect.y) * aomap_1_m0.rect.w); _out.position = float4((_116.x * 2.0f) - 1.0f, 1.0f - (_116.y * 2.0f), 0.0f, 1.0f); _out.along = _82; _out.across = _92; _out.card = _20.card; _out.uvRect = _20.uvRect; _out.span = _20.span; _out.len = _75; gl_Position = _out.position; along = _out.along; across = _out.across; card_1 = _out.card; uvRect_1 = _out.uvRect; span_1 = _out.span; len = _out.len; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); foot = stage_input.foot; card = stage_input.card; uvRect = stage_input.uvRect; span = stage_input.span; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.along = along; stage_output.across = across; stage_output.card_1 = card_1; stage_output.uvRect_1 = uvRect_1; stage_output.span_1 = span_1; stage_output.len = len; return stage_output; } fs_mainmainU struct AoMap { float4 rect; }; struct AoIn { uint vi; float4 foot; float4 card; float4 uvRect; float4 span; }; struct VsOut { float4 position; float along; float across; float4 card; float4 uvRect; float4 span; float len; }; Texture2D cardTex : register(t0); SamplerState cardSamp : register(s0); static float4 gl_FragCoord; static float along; static float across; static float4 card; static float4 uvRect; static float4 span; static float len; static float4 _38; struct SPIRV_Cross_Input { float along : TEXCOORD0; float across : TEXCOORD1; nointerpolation float4 card : TEXCOORD2; nointerpolation float4 uvRect : TEXCOORD3; nointerpolation float4 span : TEXCOORD4; nointerpolation float len : TEXCOORD5; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _38 : SV_Target0; }; void frag_main() { float aR = 0.0f; int i = 0; float aC = 0.0f; float occ = 0.0f; float aL = 0.0f; uint2 loop_bound = uint2(4294967295u, 4294967295u); VsOut _21 = { gl_FragCoord, along, across, card, uvRect, span, len }; float _74 = abs(_21.across); float _84 = max(max(-_21.along, _21.along - 1.0f), 0.0f) * _21.len; float _91 = lerp(_21.span.x, _21.span.y, clamp(_21.along, 0.0f, 1.0f)); float _94 = max(_21.card.x, 9.9999997473787516355514526367188e-05f); float _105 = (((0.800000011920928955078125f * _74) + 0.00200000009499490261077880859375f) / max(_21.len, 9.9999997473787516355514526367188e-05f)) * abs(_21.span.y - _21.span.x); float3 _112 = float3((0.300000011920928955078125f * _74) + 0.00150000001303851604461669921875f, (1.0f * _74) + 0.0040000001899898052215576171875f, (2.2000000476837158203125f * _74) + 0.00999999977648258209228515625f); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 3)) { break; } float _148 = min(_112[min(uint(i), 2u)] / _94, 1.0f); aL = cardTex.SampleLevel(cardSamp, _21.uvRect.xy + (float2(_91 - _105, _148) * _21.uvRect.zw), 0.0f).w; aC = cardTex.SampleLevel(cardSamp, _21.uvRect.xy + (float2(_91, _148) * _21.uvRect.zw), 0.0f).w; aR = cardTex.SampleLevel(cardSamp, _21.uvRect.xy + (float2(_91 + _105, _148) * _21.uvRect.zw), 0.0f).w; if (_21.card.w < 0.5f) { aL = 1.0f; aC = 1.0f; aR = 1.0f; } occ += ((((aL + (aC * 2.0f)) + aR) * 0.25f) * float3(0.5f, 0.300000011920928955078125f, 0.20000000298023223876953125f)[min(uint(i), 2u)]); i++; continue; } float _207 = 1.0f - smoothstep(0.0f, _21.card.z, sqrt((_74 * _74) + (_84 * _84))); occ = (occ * _207) * _207; float _215 = 1.0f - (_21.card.y * occ); _38 = float4(_215, _215, _215, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; along = stage_input.along; across = stage_input.across; card = stage_input.card; uvRect = stage_input.uvRect; span = stage_input.span; len = stage_input.len; frag_main(); SPIRV_Cross_Output stage_output; stage_output._38 = _38; return stage_output; }  :¨þ†Öþ�ØHSLTAoMaprectÿÿÿÿ aomap_blockaomapcardTexÿÿÿÿcardSampÿÿÿÿvs_mainvs_mainfs_mainfs_main´#R GLSL.std.450.vs_main!#%')*+,- ªfs_mainšœŸ¡£¥§©ªH#H #H #H # H #0H #@H #H #H #H # H #0H #@H #PG G"G!GH#G"G!G"G!G *GGG!G#G% G'G)G*G*G+G+G,G,G-G-Gš GœGŸG¡G¡G£G£G¥G¥G§G§G©      +    ; ; ; ; ;;;!;# &;&% (;(';();&*;&+;&,;(-!/ 0+1+3+4€¿, 534+6€?, 764, 866, 936, :578589+;·Ñ8+<@ > @ . A D +E f g+k+p+t y ‚+ˆ;š �;�œ;�Ÿ;¡;£;¥;�§;&©+­ÍÌL?+®o;+¯š™™>+°¦›Ä:+±oƒ;+²ÍÌ @+³ ×#<+´?+µÍÌL>,¶´¯µ+·+¸+¹€>+º ½.¿.Á.Ãñ òñóôó,ñõ11+öÿÿÿÿ,ñ÷öö%6./ø;>=:;@?A=== ="!=$#P  "$A021ùBøBQC F&CEADG=F= HGQIO JIIQKO LKKƒ MLJ NBM O(N;QPQQPˆRQOSR�T6RQUH V.STUQWMXWQYMP ZXYP [OOˆ \Z[Q]HQ^Q_^…`]_Ž aMV� bJaŽ c\`� dbcQedAgh211=ihƒjeiAgl21k=ml…njmQodAgq21p=rqƒsorAgu21t=vu…wsvP xnwQzx…{z<ƒ|{6Q}x…~}<ƒ6~P€|36Ay�?1>�€A‚ƒ?p>ƒVA‚„?k>„`Q…Ay†?t>†…Q‡Ay‰?ˆ>‰‡QŠAy‹?E>‹ŠA‚Œ? >ŒO= �?QŽ�>%ŽA(�%p=��‘�>�‘Q’�>'’Q“�>)“Q”�>*”Q•�>+•Q–�>,–Q—�>-—ý86ª/ø˜;‚ÂÃ;½¼·;‚ÀÁ;‚»3;‚¾¿;òø÷=›š=žœ= Ÿ=¢¡=¤£=¦¥=¨§P ™›ž ¢¤¦¨=«=¬ùÄøÄQÅ™ ÆÅQÇ™QÈÇQÉ™QÊ™ËÊQÌ™ƒÍÌ6 Î(ËÍ Ï(Î3…ÐÏÉQÑ™QÒÑQÓ™QÔÓQÕ™ Ö+Õ36 ×.ÒÔÖQØ™QÙØ Ú(Ù;…Û­Æ�ÜÛ® Ý(É;ˆÞÜÝQß™QàßQá™Qâáƒãàâ äã…åÞä…æ¯Æ�çæ°…è6Æ�éè±…ê²Æ�ëê³Pìçéëùíøíöîðùùøù=ñúøªôûõú›óüû÷ýúüîýøýQþúªóÿþ1©ÿp1Pñp‚ñú>øùïøï=¼±ó¸÷úøùîøùø= ¼  & kM ì ˆ  Ú  % 6Q™O ƒ×åP  Q™O … � Q™O P × Q™O … � Q™O �×åP  Q!™O "!!… # "� $#V%&«¬X'&3Q('>¾(V%)«¬X*)3Q+*>À+V%,«¬X-,$3Q.->Â.Q/™Q0/¸ó10´÷2ú132ø3>¾6>À6>Â6ù2ø2=4»=5¾=6À…76<�857=9Â�:89…;:¹=<¼ =&<kM>¶=…?;>�@4?>»@ùøùðøð=A¼€BAº>¼Bùíøî…CÆÆ…DÐÐ�ECD FE G13ÈFƒH6G=I»…JIH…KJH>»KQL™QML=N»…OMNƒP6OPQPPP6>©Qý8 §~Ï‹ÇýÊËshaders/figurejÔûóBTSR M#M#T¡#´E UiT©iÆi8þiõ/ ó™TGš ! R»T¦»l½< !ùTvs_mainvs_mainfs_mainfs_main"#struct VsIn { @location(0) q: vec2, @location(1) m0_: vec4, @location(2) m1_: vec4, @location(3) m2_: vec4, @location(4) m3_: vec4, @location(5) uvRect: vec4, @location(6) clip: vec4, @location(7) params: vec4, @location(8) look: vec4, @location(9) edges: vec4, @location(10) pin: vec4, } struct FigFrame { viewProj: mat4x4, eye: vec4, desk: vec4, walls: vec4, door: vec4, eyes: vec4, door0_: vec4, door1_: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) world: vec3, @location(1) q: vec2, @location(2) @interpolate(flat) uvRect: vec4, } const HDR_RANGE: f32 = 4f; @group(0) @binding(0) var fr: FigFrame; @group(1) @binding(0) var figTex: texture_2d; @group(1) @binding(1) var figSamp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_2 = floor(p_1); let f = (p_1 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_3 = floor(p_2); let f_1 = (p_2 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn deskHides(p_4: vec3) -> bool { var local_2: bool; var local_3: bool; var local_4: bool; var local_5: bool; let _e3 = fr.eye; let e_1 = _e3.xyz; let dy = (p_4.y - e_1.y); if (dy > -0.00001f) { return false; } let _e14 = fr.walls.x; let t = ((_e14 - e_1.y) / dy); if !((t <= 0f)) { local_2 = (t >= 1f); } else { local_2 = true; } let _e26 = local_2; if _e26 { return false; } let c_4 = (e_1 + ((p_4 - e_1) * t)); let _e35 = fr.desk.x; if (c_4.x > _e35) { let _e43 = fr.desk.y; local_3 = (c_4.x < _e43); } else { local_3 = false; } let _e46 = local_3; if _e46 { let _e53 = fr.desk.z; local_4 = (c_4.z > _e53); } else { local_4 = false; } let _e56 = local_4; if _e56 { let _e63 = fr.desk.w; local_5 = (c_4.z < _e63); } else { local_5 = false; } let _e66 = local_5; return _e66; } fn doorSpace(p_5: vec3) -> vec3 { let _e4 = fr.door0_; let r = (p_5.xz - _e4.xy); let _e10 = fr.door1_.z; let _e13 = fr.door0_; let _e21 = fr.door1_.w; let _e24 = fr.door1_; return vec3((_e10 + dot(r, _e13.zw)), p_5.y, (_e21 + dot(r, _e24.xy))); } fn wallHides(pw: vec3) -> bool { var local_6: bool; var local_7: bool; var local_8: bool; var open: bool; var local_9: bool; var local_10: bool; var local_11: bool; let _e3 = fr.eye; let _e5 = doorSpace(_e3.xyz); let _e6 = doorSpace(pw); let wx = fr.walls.y; if !((_e6.x >= wx)) { local_6 = (_e5.x <= wx); } else { local_6 = true; } let _e19 = local_6; if _e19 { return false; } let _e24 = fr.door.y; let wallBack = (wx - _e24); let t0_ = ((wx - _e5.x) / (_e6.x - _e5.x)); let c0_ = (_e5 + ((_e6 - _e5) * t0_)); let _e39 = fr.walls.z; if (c0_.z > _e39) { let _e47 = fr.walls.w; local_7 = (c0_.z < _e47); } else { local_7 = false; } let _e50 = local_7; if _e50 { let _e57 = fr.door.x; local_8 = (c0_.y < _e57); } else { local_8 = false; } let _e60 = local_8; open = _e60; if (_e6.x < wallBack) { let t1_ = ((wallBack - _e5.x) / (_e6.x - _e5.x)); let c1_ = (_e5 + ((_e6 - _e5) * t1_)); let _e73 = open; if _e73 { let _e80 = fr.walls.z; local_9 = (c1_.z > _e80); } else { local_9 = false; } let _e83 = local_9; if _e83 { let _e90 = fr.walls.w; local_10 = (c1_.z < _e90); } else { local_10 = false; } let _e93 = local_10; if _e93 { let _e100 = fr.door.x; local_11 = (c1_.y < _e100); } else { local_11 = false; } let _e103 = local_11; open = _e103; } let _e104 = open; return !(_e104); } @vertex fn vs_main(in: VsIn) -> VsOut { var out: VsOut; let model = mat4x4(in.m0_, in.m1_, in.m2_, in.m3_); let world = (model * vec4(in.q, 0f, 1f)); let _e15 = fr.viewProj; out.position = (_e15 * world); out.world = world.xyz; out.q = in.q; out.uvRect = in.uvRect; let _e23 = out; return _e23; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { var local: bool; var local_1: bool; let q = in_1.q; let _e4 = fr.eyes; let eyeC = _e4.zw; let _e9 = fr.eyes.y; let closeK = (1f / max((1f - (0.985f * clamp(_e9, 0f, 1f))), 0.015f)); let qE = vec2(q.x, (eyeC.y + ((q.y - eyeC.y) * closeK))); let _e37 = textureSample(figTex, figSamp, (in_1.uvRect.xy + (qE * in_1.uvRect.zw))); let emis = _e37.xyz; let _e42 = fr.eyes.y; let open_1 = (1f - smoothstep(0.75f, 1f, _e42)); let _e48 = srgbToLinear(emis); let _e52 = fr.eyes.x; let glow = (_e48 * (_e52 * open_1)); let peak = max(max(glow.x, glow.y), glow.z); if !((peak < 0.002f)) { let _e66 = deskHides(in_1.world); local = _e66; } else { local = true; } let _e68 = local; if !(_e68) { let _e73 = wallHides(in_1.world); local_1 = _e73; } else { local_1 = true; } let _e75 = local_1; if _e75 { discard; } let cover = clamp((peak * 2f), 0f, 1f); let _e84 = fr.eye.w; let _e85 = encodeHdr(glow, _e84); return vec4(_e85, cover); }  °€QÖë‰5BÇpŒÆÁÅe%vs_mainmain€"#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct FigFrame { mat4x4 viewProj; vec4 eye; vec4 desk; vec4 walls; vec4 door; vec4 eyes; vec4 door0_; vec4 door1_; }; struct VsOut { vec4 position; vec3 world; vec2 q; vec4 uvRect; }; const float HDR_RANGE = 4.0; layout(std140) uniform FigFrame_block_0Vertex { FigFrame _group_0_binding_0_vs; }; layout(location = 0) in vec2 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec4 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec2 _vs2fs_location1; flat out vec4 _vs2fs_location2; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } bool deskHides(vec3 p_4) { bool local_2 = false; bool local_3 = false; bool local_4 = false; bool local_5 = false; vec4 _e3 = _group_0_binding_0_vs.eye; vec3 e_1 = _e3.xyz; float dy = (p_4.y - e_1.y); if ((dy > -1e-5)) { return false; } float _e14 = _group_0_binding_0_vs.walls.x; float t = ((_e14 - e_1.y) / dy); if (!((t <= 0.0))) { local_2 = (t >= 1.0); } else { local_2 = true; } bool _e26 = local_2; if (_e26) { return false; } vec3 c_4 = (e_1 + ((p_4 - e_1) * t)); float _e35 = _group_0_binding_0_vs.desk.x; if ((c_4.x > _e35)) { float _e43 = _group_0_binding_0_vs.desk.y; local_3 = (c_4.x < _e43); } else { local_3 = false; } bool _e46 = local_3; if (_e46) { float _e53 = _group_0_binding_0_vs.desk.z; local_4 = (c_4.z > _e53); } else { local_4 = false; } bool _e56 = local_4; if (_e56) { float _e63 = _group_0_binding_0_vs.desk.w; local_5 = (c_4.z < _e63); } else { local_5 = false; } bool _e66 = local_5; return _e66; } vec3 doorSpace(vec3 p_5) { vec4 _e4 = _group_0_binding_0_vs.door0_; vec2 r = (p_5.xz - _e4.xy); float _e10 = _group_0_binding_0_vs.door1_.z; vec4 _e13 = _group_0_binding_0_vs.door0_; float _e21 = _group_0_binding_0_vs.door1_.w; vec4 _e24 = _group_0_binding_0_vs.door1_; return vec3((_e10 + dot(r, _e13.zw)), p_5.y, (_e21 + dot(r, _e24.xy))); } bool wallHides(vec3 pw) { bool local_6 = false; bool local_7 = false; bool local_8 = false; bool open = false; bool local_9 = false; bool local_10 = false; bool local_11 = false; vec4 _e3 = _group_0_binding_0_vs.eye; vec3 _e5 = doorSpace(_e3.xyz); vec3 _e6 = doorSpace(pw); float wx = _group_0_binding_0_vs.walls.y; if (!((_e6.x >= wx))) { local_6 = (_e5.x <= wx); } else { local_6 = true; } bool _e19 = local_6; if (_e19) { return false; } float _e24 = _group_0_binding_0_vs.door.y; float wallBack = (wx - _e24); float t0_ = ((wx - _e5.x) / (_e6.x - _e5.x)); vec3 c0_ = (_e5 + ((_e6 - _e5) * t0_)); float _e39 = _group_0_binding_0_vs.walls.z; if ((c0_.z > _e39)) { float _e47 = _group_0_binding_0_vs.walls.w; local_7 = (c0_.z < _e47); } else { local_7 = false; } bool _e50 = local_7; if (_e50) { float _e57 = _group_0_binding_0_vs.door.x; local_8 = (c0_.y < _e57); } else { local_8 = false; } bool _e60 = local_8; open = _e60; if ((_e6.x < wallBack)) { float t1_ = ((wallBack - _e5.x) / (_e6.x - _e5.x)); vec3 c1_ = (_e5 + ((_e6 - _e5) * t1_)); bool _e73 = open; if (_e73) { float _e80 = _group_0_binding_0_vs.walls.z; local_9 = (c1_.z > _e80); } else { local_9 = false; } bool _e83 = local_9; if (_e83) { float _e90 = _group_0_binding_0_vs.walls.w; local_10 = (c1_.z < _e90); } else { local_10 = false; } bool _e93 = local_10; if (_e93) { float _e100 = _group_0_binding_0_vs.door.x; local_11 = (c1_.y < _e100); } else { local_11 = false; } bool _e103 = local_11; open = _e103; } bool _e104 = open; return !(_e104); } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9, _p2vs_location10); VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec2(0.0), vec4(0.0)); mat4x4 model = mat4x4(in_.m0_, in_.m1_, in_.m2_, in_.m3_); vec4 world = (model * vec4(in_.q, 0.0, 1.0)); mat4x4 _e15 = _group_0_binding_0_vs.viewProj; out_.position = (_e15 * world); out_.world = world.xyz; out_.q = in_.q; out_.uvRect = in_.uvRect; VsOut _e23 = out_; gl_Position = _e23.position; _vs2fs_location0 = _e23.world; _vs2fs_location1 = _e23.q; _vs2fs_location2 = _e23.uvRect; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain ##version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct FigFrame { mat4x4 viewProj; vec4 eye; vec4 desk; vec4 walls; vec4 door; vec4 eyes; vec4 door0_; vec4 door1_; }; struct VsOut { vec4 position; vec3 world; vec2 q; vec4 uvRect; }; const float HDR_RANGE = 4.0; layout(std140) uniform FigFrame_block_0Fragment { FigFrame _group_0_binding_0_fs; }; uniform highp sampler2D _group_1_binding_0_fs; smooth in vec3 _vs2fs_location0; smooth in vec2 _vs2fs_location1; flat in vec4 _vs2fs_location2; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } bool deskHides(vec3 p_4) { bool local_2 = false; bool local_3 = false; bool local_4 = false; bool local_5 = false; vec4 _e3 = _group_0_binding_0_fs.eye; vec3 e_1 = _e3.xyz; float dy = (p_4.y - e_1.y); if ((dy > -1e-5)) { return false; } float _e14 = _group_0_binding_0_fs.walls.x; float t = ((_e14 - e_1.y) / dy); if (!((t <= 0.0))) { local_2 = (t >= 1.0); } else { local_2 = true; } bool _e26 = local_2; if (_e26) { return false; } vec3 c_4 = (e_1 + ((p_4 - e_1) * t)); float _e35 = _group_0_binding_0_fs.desk.x; if ((c_4.x > _e35)) { float _e43 = _group_0_binding_0_fs.desk.y; local_3 = (c_4.x < _e43); } else { local_3 = false; } bool _e46 = local_3; if (_e46) { float _e53 = _group_0_binding_0_fs.desk.z; local_4 = (c_4.z > _e53); } else { local_4 = false; } bool _e56 = local_4; if (_e56) { float _e63 = _group_0_binding_0_fs.desk.w; local_5 = (c_4.z < _e63); } else { local_5 = false; } bool _e66 = local_5; return _e66; } vec3 doorSpace(vec3 p_5) { vec4 _e4 = _group_0_binding_0_fs.door0_; vec2 r = (p_5.xz - _e4.xy); float _e10 = _group_0_binding_0_fs.door1_.z; vec4 _e13 = _group_0_binding_0_fs.door0_; float _e21 = _group_0_binding_0_fs.door1_.w; vec4 _e24 = _group_0_binding_0_fs.door1_; return vec3((_e10 + dot(r, _e13.zw)), p_5.y, (_e21 + dot(r, _e24.xy))); } bool wallHides(vec3 pw) { bool local_6 = false; bool local_7 = false; bool local_8 = false; bool open = false; bool local_9 = false; bool local_10 = false; bool local_11 = false; vec4 _e3 = _group_0_binding_0_fs.eye; vec3 _e5 = doorSpace(_e3.xyz); vec3 _e6 = doorSpace(pw); float wx = _group_0_binding_0_fs.walls.y; if (!((_e6.x >= wx))) { local_6 = (_e5.x <= wx); } else { local_6 = true; } bool _e19 = local_6; if (_e19) { return false; } float _e24 = _group_0_binding_0_fs.door.y; float wallBack = (wx - _e24); float t0_ = ((wx - _e5.x) / (_e6.x - _e5.x)); vec3 c0_ = (_e5 + ((_e6 - _e5) * t0_)); float _e39 = _group_0_binding_0_fs.walls.z; if ((c0_.z > _e39)) { float _e47 = _group_0_binding_0_fs.walls.w; local_7 = (c0_.z < _e47); } else { local_7 = false; } bool _e50 = local_7; if (_e50) { float _e57 = _group_0_binding_0_fs.door.x; local_8 = (c0_.y < _e57); } else { local_8 = false; } bool _e60 = local_8; open = _e60; if ((_e6.x < wallBack)) { float t1_ = ((wallBack - _e5.x) / (_e6.x - _e5.x)); vec3 c1_ = (_e5 + ((_e6 - _e5) * t1_)); bool _e73 = open; if (_e73) { float _e80 = _group_0_binding_0_fs.walls.z; local_9 = (c1_.z > _e80); } else { local_9 = false; } bool _e83 = local_9; if (_e83) { float _e90 = _group_0_binding_0_fs.walls.w; local_10 = (c1_.z < _e90); } else { local_10 = false; } bool _e93 = local_10; if (_e93) { float _e100 = _group_0_binding_0_fs.door.x; local_11 = (c1_.y < _e100); } else { local_11 = false; } bool _e103 = local_11; open = _e103; } bool _e104 = open; return !(_e104); } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2); bool local = false; bool local_1 = false; vec2 q = in_1.q; vec4 _e4 = _group_0_binding_0_fs.eyes; vec2 eyeC = _e4.zw; float _e9 = _group_0_binding_0_fs.eyes.y; float closeK = (1.0 / max((1.0 - (0.985 * clamp(_e9, 0.0, 1.0))), 0.015)); vec2 qE = vec2(q.x, (eyeC.y + ((q.y - eyeC.y) * closeK))); vec4 _e37 = texture(_group_1_binding_0_fs, vec2((in_1.uvRect.xy + (qE * in_1.uvRect.zw)))); vec3 emis = _e37.xyz; float _e42 = _group_0_binding_0_fs.eyes.y; float open_1 = (1.0 - smoothstep(0.75, 1.0, _e42)); vec3 _e48 = srgbToLinear(emis); float _e52 = _group_0_binding_0_fs.eyes.x; vec3 glow = (_e48 * (_e52 * open_1)); float peak = max(max(glow.x, glow.y), glow.z); if (!((peak < 0.002))) { bool _e66 = deskHides(in_1.world); local = _e66; } else { local = true; } bool _e68 = local; if (!(_e68)) { bool _e73 = wallHides(in_1.world); local_1 = _e73; } else { local_1 = true; } bool _e75 = local_1; if (_e75) { discard; } float cover = clamp((peak * 2.0), 0.0, 1.0); float _e84 = _group_0_binding_0_fs.eye.w; vec3 _e85 = encodeHdr(glow, _e84); _fs2p_location0 = vec4(_e85, cover); return; }  °€QÖë‰5Büg±âwÃ2FigFrame_block_0VertexFigFrame_block_0Fragment_group_1_binding_0_fsvs_mainvs_mainfs_mainfs_mainÊ/// language: metal1.0 #include #include using metal::uint; struct VsIn { metal::float2 q; char _pad1[8]; metal::float4 m0_; metal::float4 m1_; metal::float4 m2_; metal::float4 m3_; metal::float4 uvRect; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float4 pin; }; struct FigFrame { metal::float4x4 viewProj; metal::float4 eye; metal::float4 desk; metal::float4 walls; metal::float4 door; metal::float4 eyes; metal::float4 door0_; metal::float4 door1_; }; struct VsOut { metal::float4 position; metal::float3 world; metal::float2 q; char _pad3[8]; metal::float4 uvRect; }; constant float HDR_RANGE = 4.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_2 = metal::floor(p_1); metal::float2 f = p_1 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } bool deskHides( metal::float3 p_4, constant FigFrame& fr ) { bool local_2 = {}; bool local_3 = {}; bool local_4 = {}; bool local_5 = {}; metal::float4 _e3 = fr.eye; metal::float3 e_1 = _e3.xyz; float dy = p_4.y - e_1.y; if (dy > -0.00001) { return false; } float _e14 = fr.walls.x; float t = (_e14 - e_1.y) / dy; if (!((t <= 0.0))) { local_2 = t >= 1.0; } else { local_2 = true; } bool _e26 = local_2; if (_e26) { return false; } metal::float3 c_4 = e_1 + ((p_4 - e_1) * t); float _e35 = fr.desk.x; if (c_4.x > _e35) { float _e43 = fr.desk.y; local_3 = c_4.x < _e43; } else { local_3 = false; } bool _e46 = local_3; if (_e46) { float _e53 = fr.desk.z; local_4 = c_4.z > _e53; } else { local_4 = false; } bool _e56 = local_4; if (_e56) { float _e63 = fr.desk.w; local_5 = c_4.z < _e63; } else { local_5 = false; } bool _e66 = local_5; return _e66; } metal::float3 doorSpace( metal::float3 p_5, constant FigFrame& fr ) { metal::float4 _e4 = fr.door0_; metal::float2 r = p_5.xz - _e4.xy; float _e10 = fr.door1_.z; metal::float4 _e13 = fr.door0_; float _e21 = fr.door1_.w; metal::float4 _e24 = fr.door1_; return metal::float3(_e10 + metal::dot(r, _e13.zw), p_5.y, _e21 + metal::dot(r, _e24.xy)); } bool wallHides( metal::float3 pw, constant FigFrame& fr ) { bool local_6 = {}; bool local_7 = {}; bool local_8 = {}; bool open = {}; bool local_9 = {}; bool local_10 = {}; bool local_11 = {}; metal::float4 _e3 = fr.eye; metal::float3 _e5 = doorSpace(_e3.xyz, fr); metal::float3 _e6 = doorSpace(pw, fr); float wx = fr.walls.y; if (!((_e6.x >= wx))) { local_6 = _e5.x <= wx; } else { local_6 = true; } bool _e19 = local_6; if (_e19) { return false; } float _e24 = fr.door.y; float wallBack = wx - _e24; float t0_ = (wx - _e5.x) / (_e6.x - _e5.x); metal::float3 c0_ = _e5 + ((_e6 - _e5) * t0_); float _e39 = fr.walls.z; if (c0_.z > _e39) { float _e47 = fr.walls.w; local_7 = c0_.z < _e47; } else { local_7 = false; } bool _e50 = local_7; if (_e50) { float _e57 = fr.door.x; local_8 = c0_.y < _e57; } else { local_8 = false; } bool _e60 = local_8; open = _e60; if (_e6.x < wallBack) { float t1_ = (wallBack - _e5.x) / (_e6.x - _e5.x); metal::float3 c1_ = _e5 + ((_e6 - _e5) * t1_); bool _e73 = open; if (_e73) { float _e80 = fr.walls.z; local_9 = c1_.z > _e80; } else { local_9 = false; } bool _e83 = local_9; if (_e83) { float _e90 = fr.walls.w; local_10 = c1_.z < _e90; } else { local_10 = false; } bool _e93 = local_10; if (_e93) { float _e100 = fr.door.x; local_11 = c1_.y < _e100; } else { local_11 = false; } bool _e103 = local_11; open = _e103; } bool _e104 = open; return !(_e104); } struct vs_mainInput { metal::float2 q [[attribute(0)]]; metal::float4 m0_ [[attribute(1)]]; metal::float4 m1_ [[attribute(2)]]; metal::float4 m2_ [[attribute(3)]]; metal::float4 m3_ [[attribute(4)]]; metal::float4 uvRect [[attribute(5)]]; metal::float4 clip [[attribute(6)]]; metal::float4 params [[attribute(7)]]; metal::float4 look [[attribute(8)]]; metal::float4 edges [[attribute(9)]]; metal::float4 pin [[attribute(10)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float2 q [[user(loc1), center_perspective]]; metal::float4 uvRect [[user(loc2), flat]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant FigFrame& fr [[buffer(0)]] ) { const VsIn in = { varyings.q, {}, varyings.m0_, varyings.m1_, varyings.m2_, varyings.m3_, varyings.uvRect, varyings.clip, varyings.params, varyings.look, varyings.edges, varyings.pin }; VsOut out = {}; metal::float4x4 model = metal::float4x4(in.m0_, in.m1_, in.m2_, in.m3_); metal::float4 world = model * metal::float4(in.q, 0.0, 1.0); metal::float4x4 _e15 = fr.viewProj; out.position = _e15 * world; out.world = world.xyz; out.q = in.q; out.uvRect = in.uvRect; VsOut _e23 = out; const auto _tmp = _e23; return vs_mainOutput { _tmp.position, _tmp.world, _tmp.q, _tmp.uvRect }; } struct fs_mainInput { metal::float3 world [[user(loc0), center_perspective]]; metal::float2 q [[user(loc1), center_perspective]]; metal::float4 uvRect [[user(loc2), flat]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant FigFrame& fr [[buffer(0)]] , metal::texture2d figTex [[texture(0)]] , metal::sampler figSamp [[sampler(0)]] ) { const VsOut in_1 = { position, varyings_1.world, varyings_1.q, {}, varyings_1.uvRect }; bool local = {}; bool local_1 = {}; metal::float2 q = in_1.q; metal::float4 _e4 = fr.eyes; metal::float2 eyeC = _e4.zw; float _e9 = fr.eyes.y; float closeK = 1.0 / metal::max(1.0 - (0.985 * metal::clamp(_e9, 0.0, 1.0)), 0.015); metal::float2 qE = metal::float2(in_1.q.x, eyeC.y + ((in_1.q.y - eyeC.y) * closeK)); metal::float4 _e37 = figTex.sample(figSamp, in_1.uvRect.xy + (qE * in_1.uvRect.zw)); metal::float3 emis = _e37.xyz; float _e42 = fr.eyes.y; float open_1 = 1.0 - metal::smoothstep(0.75, 1.0, _e42); metal::float3 _e48 = srgbToLinear(emis); float _e52 = fr.eyes.x; metal::float3 glow = _e48 * (_e52 * open_1); float peak = metal::max(metal::max(glow.x, glow.y), glow.z); if (!((peak < 0.002))) { bool _e66 = deskHides(in_1.world, fr); local = _e66; } else { local = true; } bool _e68 = local; if (!(_e68)) { bool _e73 = wallHides(in_1.world, fr); local_1 = _e73; } else { local_1 = true; } bool _e75 = local_1; if (_e75) { metal::discard_fragment(); } float cover = metal::clamp(peak * 2.0, 0.0, 1.0); float _e84 = fr.eye.w; metal::float3 _e85 = encodeHdr(glow, _e84); return fs_mainOutput { metal::float4(_e85, cover) }; }  °€QÖë‰5Büg±âwÃ2vs_mainmainí struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct FigFrame { row_major float4x4 viewProj; float4 eye; float4 desk; float4 walls; float4 door; float4 eyes; float4 door0; float4 door1; }; struct VsOut { float4 position; float3 world; float2 q; float4 uvRect; }; static const VsOut _580 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer fr : register(b0) { FigFrame fr_1_m0 : packoffset(c0); }; static float4 gl_Position; static float2 q; static float4 m0; static float4 m1; static float4 m2; static float4 m3; static float4 uvRect; static float4 clip; static float4 params; static float4 look; static float4 edges; static float4 pin; static float3 world; static float2 q_1; static float4 uvRect_1; struct SPIRV_Cross_Input { float2 q : TEXCOORD0; float4 m0 : TEXCOORD1; float4 m1 : TEXCOORD2; float4 m2 : TEXCOORD3; float4 m3 : TEXCOORD4; float4 uvRect : TEXCOORD5; float4 clip : TEXCOORD6; float4 params : TEXCOORD7; float4 look : TEXCOORD8; float4 edges : TEXCOORD9; float4 pin : TEXCOORD10; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float2 q_1 : TEXCOORD1; nointerpolation float4 uvRect_1 : TEXCOORD2; float4 gl_Position : SV_Position; }; void vert_main() { VsOut _out = _580; VsIn _543 = { q, m0, m1, m2, m3, uvRect, clip, params, look, edges, pin }; float4 _589 = mul(float4(_543.q, 0.0f, 1.0f), float4x4(_543.m0, _543.m1, _543.m2, _543.m3)); _out.position = mul(_589, fr_1_m0.viewProj); _out.world = _589.xyz; _out.q = _543.q; _out.uvRect = _543.uvRect; gl_Position = _out.position; world = _out.world; q_1 = _out.q; uvRect_1 = _out.uvRect; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { q = stage_input.q; m0 = stage_input.m0; m1 = stage_input.m1; m2 = stage_input.m2; m3 = stage_input.m3; uvRect = stage_input.uvRect; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; pin = stage_input.pin; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.q_1 = q_1; stage_output.uvRect_1 = uvRect_1; return stage_output; } fs_mainmainõstruct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct FigFrame { row_major float4x4 viewProj; float4 eye; float4 desk; float4 walls; float4 door; float4 eyes; float4 door0; float4 door1; }; struct VsOut { float4 position; float3 world; float2 q; float4 uvRect; }; cbuffer fr : register(b0) { FigFrame fr_1_m0 : packoffset(c0); }; Texture2D figTex : register(t0); SamplerState figSamp : register(s0); static float4 gl_FragCoord; static float3 world; static float2 q; static float4 uvRect; static float4 _559; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float2 q : TEXCOORD1; nointerpolation float4 uvRect : TEXCOORD2; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _559 : SV_Target0; }; float3 srgbToLinear(float3 c) { float3 _41 = max(c, float3(0.0f, 0.0f, 0.0f)); float3 _42 = _41 * 0.077399380505084991455078125f; float3 _45 = pow((_41 + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) * 0.94786727428436279296875f, float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _47 = bool3(_41.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, _41.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, _41.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_47.x ? _42.x : _45.x, _47.y ? _42.y : _45.y, _47.z ? _42.z : _45.z); } bool deskHides(float3 p) { bool _343 = false; bool _347 = false; bool _340 = false; bool _345 = false; float _356 = p.y - fr_1_m0.eye.xyz.y; if (_356 > (-9.9999997473787516355514526367188e-06f)) { return false; } float _366 = (fr_1_m0.walls.x - fr_1_m0.eye.xyz.y) / _356; if (!(_366 <= 0.0f)) { _340 = _366 >= 1.0f; } else { _340 = true; } if (_340) { return false; } float3 _378 = fr_1_m0.eye.xyz + ((p - fr_1_m0.eye.xyz) * _366); if (_378.x > fr_1_m0.desk.x) { _343 = _378.x < fr_1_m0.desk.y; } else { _343 = false; } if (_343) { _345 = _378.z > fr_1_m0.desk.z; } else { _345 = false; } if (_345) { _347 = _378.z < fr_1_m0.desk.w; } else { _347 = false; } return _347; } float3 doorSpace(float3 p) { float2 _418 = p.xz - fr_1_m0.door0.xy; return float3(fr_1_m0.door1.z + dot(_418, fr_1_m0.door0.zw), p.y, fr_1_m0.door1.w + dot(_418, fr_1_m0.door1.xy)); } bool wallHides(float3 pw) { bool _448 = false; bool _442 = false; bool _452 = false; bool open = false; bool _440 = false; bool _450 = false; bool _444 = false; float3 _458 = doorSpace(fr_1_m0.eye.xyz); float3 _459 = doorSpace(pw); if (!(_459.x >= fr_1_m0.walls.y)) { _440 = _458.x <= fr_1_m0.walls.y; } else { _440 = true; } if (_440) { return false; } float _476 = fr_1_m0.walls.y - fr_1_m0.door.y; float3 _485 = _458 + ((_459 - _458) * ((fr_1_m0.walls.y - _458.x) / (_459.x - _458.x))); if (_485.z > fr_1_m0.walls.z) { _442 = _485.z < fr_1_m0.walls.w; } else { _442 = false; } if (_442) { _444 = _485.y < fr_1_m0.door.x; } else { _444 = false; } open = _444; if (_459.x < _476) { float3 _518 = _458 + ((_459 - _458) * ((_476 - _458.x) / (_459.x - _458.x))); if (open) { _448 = _518.z > fr_1_m0.walls.z; } else { _448 = false; } if (_448) { _450 = _518.z < fr_1_m0.walls.w; } else { _450 = false; } if (_450) { _452 = _518.y < fr_1_m0.door.x; } else { _452 = false; } open = _452; } return !open; } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { bool _570 = false; bool _572 = false; VsOut _547 = { gl_FragCoord, world, q, uvRect }; float3 _613 = srgbToLinear(figTex.Sample(figSamp, _547.uvRect.xy + (float2(_547.q.x, fr_1_m0.eyes.zw.y + ((_547.q.y - fr_1_m0.eyes.zw.y) * (1.0f / max(1.0f - (0.98500001430511474609375f * clamp(fr_1_m0.eyes.y, 0.0f, 1.0f)), 0.014999999664723873138427734375f)))) * _547.uvRect.zw)).xyz) * (fr_1_m0.eyes.x * (1.0f - smoothstep(0.75f, 1.0f, fr_1_m0.eyes.y))); float _618 = max(max(_613.x, _613.y), _613.z); if (!(_618 < 0.00200000009499490261077880859375f)) { _570 = deskHides(_547.world); } else { _570 = true; } if (!_570) { _572 = wallHides(_547.world); } else { _572 = true; } if (_572) { discard; } _559 = float4(encodeHdr(_613, fr_1_m0.eye.w), clamp(_618 * 2.0f, 0.0f, 1.0f)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; q = stage_input.q; uvRect = stage_input.uvRect; frag_main(); SPIRV_Cross_Output stage_output; stage_output._559 = _559; return stage_output; }  °€QÖë‰5Büg±âwÃ2HSLTFigFrame°viewProjÿÿÿÿeye@ÿÿÿÿdeskPÿÿÿÿwalls`ÿÿÿÿdoorpÿÿÿÿeyes€ÿÿÿÿdoor0�ÿÿÿÿdoor1 ÿÿÿÿfr_block°frfigTexÿÿÿÿfigSampÿÿÿÿvs_mainvs_mainfs_mainfs_mainä;#Å GLSL.std.450Cvs_main$'*,.02468:<>@B ufs_mainkmprtuH #H #H # H #0H #@H #PH #`H #pH #€H #�H # H #H H H #@H #PH #`H #pH #€H #�H # H#H#H# H#0G"G!GH#G"G!G"G!G$G'G*G,G.G0G2G4G6G8 G: G< G>G@GBGBGk GmGpGrGrGt           +€@ ; ; ;!+,+ ‘ƒž=+!®Ga=,"!!!+#n§r?+$š™@,%$$$+&æ®%=,'&&&.+4R¸NA+5UUÕ>,6555+7= ‡?+8.M;,9888!E+FгY>+GY7?+H˜Ý“=,IFGH!P+Q?+R€>+S€?,TSSS+U«ªª>,VUUU!l+m f+n_ón<,onn+p,qpp s.t y+z+}!¤+¥€,¦¥¥+§+¨€3!´ !Ä +ÅCq‰=+Æ�E¿;, ÇÅÆ+È‚îSB+Ñ@@, ÒÑÑ+Ó@+Ô+Õ,ÖÔÕ,×ÕÔ,ØÔÔ+àÏ, áàà+âÿÿÿN, ãââ!ø +ùÀ@, úSS+-…ë?+.…ë@+/Í̈A+0ÍÌl@, 1/0+2áz”>+3q=‚@+4š™©@+533ïA, 645+7)\> 9.:!N O +Q¬Å'·*R)S U.V.X.Z.\ ^ h+i+|+ž+£.¹.».½.¿.Á.Ã.Å+Ù % ;%$ ( ;(';(*;(,;(.;(0;(2;(4;(6;(8;(: = ;=< ?;?> A ;A@;=B!D G.H R S X [ b;(k n;nm;%p;(r;=t+yö(|?+z�Âu<+{@?+|o;.~.€+ƒœ67øù(ø( )(Ž*) �+)"Ž,+# -,%¼./)'©0/*-þ086372ø1ù:ø: ;(2Ž<;4 =;6Ž>=7ƒ?>"¼.@;9©A@<?þA86DE7CøBùJøJ”KCIþK86OP7M7NøLùWøWºXNQ÷YúXZYøZŽ[MR \+[T ]\Vþ]øYþM86aP7_7`ø^ùbøbºc`Q÷dúcedøe…f__…gf_Žhgþhødþ_86kl7jøi;srtùuøuPwmm„vjw€xvo>rxAy{rz=|{Ay~r}=~„€m€�|€Ay‚rz>‚�Ayƒr}=„ƒAy…rz=†…„‡†m€ˆ„‡Ay‰r}>‰ˆ=Šr=‹rÂŒ‹qÆ�ŠŒ>r�AyŽrz=�ŽAy�r}=‘�„’‘m€“�’Ay”rz>”“Ay•r}=–•Ay—rz=˜—„™˜m€š–™Ay›r}>›š=œr=�rž�qÆŸœž>rŸ= rþ 86£¤7¢ø¡ù©ø©€ª¢¦|«ª9¬k«Q­¬Â®­§p¯®…°¯¨þ°86 ³´7²ø±ùµøµ€¶²¦|·¶9¸k·Q¹¸Âº¹§p»ºQ¼¸Â½¼§p¾½P ¿»¾Ž À¿¨þÀ86ÃÄ7 ÂøÁùÉøÉ”ÊÂÇ Ë Ê…ÌÈË Í ÌþÍ86ÐÄ7 ÏøÎùÙøÙ  Úσ ÛÏÚ… ÜÛÛŽ ÝÛÓƒ ÞÒÝ… ßÜÞ  ä+Úáãnåä9æ£å€çåÖ9è£ç€éå×9ê£é€ëåØ9ì£ëQíß î.æèíQïß ð.êìïQñß ò.îðñ…óòÓƒôóSþô86÷ø7 öøõùûøû  üöƒ ýöü… þýýŽ ÿýÓƒ Òÿ… þŽ ýùƒ úý…   +üáãn9£€Ö9 £€ ×9 £ € Ø9 £ ƒ ƒ ƒ ƒ � Q…�Q…�Q…Q…�Q…� Q!…"!�#"P $ #… %$…&Óƒ'&SŽ (%ÓP)'(þ)86,Ä7 +ø*;98:ù;ø;9<Ð+…=<->8==>8Ž ?+.� @?19AÐ@…BA2�C>B>8C=D8Ž E+3� FE69GÐF…HG7�IDH>8I=J8þJ86MN7LøK;UWX;U[\;UTV;UYZAOPzù]ø]A^_P}= `_Oa``QbLQcaƒdbcºedQ÷fúegføgþRøfAhjPiz=kjQlaƒmklˆnmd¼on¨po÷qúprsør¾tnS>Ttùqøs>TSùqøq=uT÷vúuwvøwþRøvƒxLaŽyxn�zayQ{zAh}P|z=~}º{~÷€ú�‚ø�QƒzAh„P|}=…„¸†ƒ…>W†ù€ø‚>WRù€ø€=‡W÷ˆú‡‰Šø‰Q‹zAhŒP||=�ŒºŽ‹�>YŽùˆøŠ>YRùˆøˆ=�Y÷�ú�‘’ø‘Q“zAh”P|i=•”¸–“•>[–ù�ø’>[Rù�ø�=—[þ—86š7™ø˜AO›zùœøœO �™™A^Ÿ›ž=  ŸO ¡  ƒ ¢�¡Ah¤›£|=¥¤A^¦›ž= §¦O ¨§§”©¢¨�ª¥©Q«™Ah¬›£i=­¬A^®›£= ¯®O °¯¯”±¢°�²­±P³ª«²þ³86¶N7µø´;UÀÁ;Uº»;UÄÅ;U¾¿;U¸¹;UÂÃ;U¼½AO·zùÆøÆA^Ç·}= ÈÇOÉÈÈ9ÊšÉ9ËšµAhÌ·i}=ÍÌQÎ˾ÏÎͨÐÏ÷ÑúÐÒÓøÒQÔʼÕÔÍ>¸ÕùÑøÓ>¸SùÑøÑ=Ö¸÷×ú֨׸ØþRø×AhÚ·Ù}=ÛÚƒÜÍÛQÝʃÞÍÝQßËQàʃáßàˆâÞáƒãËÊŽäãâ�åÊäQæåAhç·i|=èçºéæè÷êúéëìøëQíåAhî·ii=ïî¸ðíï>ºðùêøì>ºRùêøê=ñº÷òúñóôøóQõåAhö·Ùz=÷ö¸øõ÷>¼øùòøô>¼Rùòøò=ù¼>¾ùQú˸ûúÜ÷üúûýüøýQþʃÿÜþQËQʃˆÿƒËÊŽ�Ê=¾÷ú  ø Q Ah ·i|=  º  >Àùø >ÀRùø=À÷úøQAh·ii=¸>Âùø>ÂRùø=Â÷úøQAh·Ùz=¸>Äùø>ÄRùø=Ä>¾ùüøü= ¾¨! þ!86CDø";GFH= &$= )'= +*= -,= /.= 10= 32= 54= 76= 98= ;:P #&)+-/13579;AOEzùIøIQ J#Q K#Q L#Q M#P NJKLMQ O#P POS‘ QNPASTEz= UT‘ VUQARWFz>WVOYQQAXZF}>ZYQ \#A[]F|>]\Q ^#AR_Fi>_^=`FQ a`><aAbc<}=dced>ceQf`>>fQ g`>@gQ h`>Bhý86uDøi;U}~;U€= lk=om= qp= srPjloqsAOvz=w=xù�ø�Q ‚jA^„vƒ= …„O †……Ah‡vƒ}=ˆ‡ ‰+ˆS…Šy‰ƒ‹SŠ Œ(‹zˆ�SŒQŽ‚Q�†Q�‚Q‘†ƒ’�‘…“’��”�“P •Ž”Q –jO —––Q ˜jO ™˜˜… š•™� ›—šVœ�wxW ž�›OŸžžAh vƒ}=¡  ¢1{S¡ƒ£S¢9¤ŸAh¥vƒz=¦¥…§¦£Ž¨¤§Q©¨Qª¨ «(©ªQ¬¨ ­(«¬¸®­|¨¯®÷°ú¯±²ø±Q³j9´M³>}´ù°ø²>}Sù°ø°=µ}¨¶µ÷·ú¶¸¹ø¸Qºj9»¶º>»ù·ø¹>Sù·ø·=¼÷½ú¼¾½ø¾üø½…¿­Ó À+¿SAhÁv}i=ÂÁ9ÃO¨ÂP ÄÃÀ>tÄý8 °€QÖë‰5BÇpŒÆÁÅe%ÊË shaders/flamejÔéBTSR „<„<KÏ<ŸQ nŽK¹ŽÔŽ6 �rL |ÛKÇÛ+N ò)K=*Ò,ãg ò“Kvs_mainvs_mainfs_mainfs_mainY<struct FlameRec { base: vec4, axis: vec4, right: vec4, shape: vec4, fx: vec4, extra: vec4, cold: vec4, } struct Flames { viewProj: mat4x4, eye: vec4, misc: vec4, f: array, } struct VsOut { @builtin(position) position: vec4, @location(0) local: vec2, @location(1) clip: vec4, @location(2) @interpolate(flat) idx: f32, @location(3) world: vec3, } const HDR_RANGE: f32 = 4f; const WICK_HALF: f32 = 0.0013f; const WICK_TIP: f32 = 0.0068f; const WICK_CURL: f32 = 0.0072f; @group(0) @binding(0) var fl: Flames; @group(0) @binding(1) var roomDepth: texture_depth_2d; @group(0) @binding(2) var roomCmp: sampler_comparison; fn srgbToLinear(c_1: vec3) -> vec3 { let x = max(c_1, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_2: vec3) -> vec3 { let x_1 = max(c_2, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_3: vec3) -> f32 { return dot(c_3, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_4: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_4 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_4; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p_1: vec2) -> f32 { return fract((52.982918f * fract(dot(p_1, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_2: vec2) -> f32 { let i_2 = floor(p_2); let f = (p_2 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_3: vec2) -> vec3 { let i_3 = floor(p_3); let f_1 = (p_3 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g * 2f)); } fn fbm3_(p_4: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_4); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_4 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_4 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn smokeTop(r: FlameRec) -> f32 { return ((min((0.012f + (r.fx.w * 0.07f)), 0.3f) * step(0.001f, r.fx.z)) * max(r.cold.y, 1f)); } fn haloRadius(r_1: FlameRec) -> f32 { return (r_1.extra.z * max(r_1.axis.w, 0.02f)); } fn extents(r_2: FlameRec) -> vec3 { let h = r_2.axis.w; let hw = r_2.right.w; let _e5 = smokeTop(r_2); let _e6 = haloRadius(r_2); let hr = (_e6 * step(0.001f, r_2.shape.z)); let alive = step(0.0005f, ((r_2.shape.z + r_2.shape.w) + r_2.fx.z)); let halfX = max((max(max((2.6f * hw), 0.01f), max((0.03f + (_e5 * 0.25f)), (hr * 2.4f))) * alive), 0.016f); let y0_ = -(((r_2.extra.x + 0.008f) + (hr * 1.6f))); let y1_ = max((max(max((1.5f * h), 0.014f), max(_e5, ((0.4f * h) + (hr * 2.6f)))) * alive), 0.012800001f); return vec3(halfX, y0_, y1_); } fn tear(p_5: vec2) -> f32 { let above = step(0.26f, p_5.y); let ry = mix(0.3f, (1f - 0.26f), above); let s_1 = (max((p_5.y - 0.26f), 0f) / (1f - 0.26f)); let taper = (1f + (above * ((1.5f * s_1) + (((1.9f * s_1) * s_1) * s_1)))); return length(vec2((p_5.x * taper), ((p_5.y - 0.26f) / ry))); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> VsOut { var corners: array, 6> = array, 6>(vec2(-1f, 0f), vec2(1f, 0f), vec2(1f, 1f), vec2(-1f, 0f), vec2(1f, 1f), vec2(-1f, 1f)); var out: VsOut; let idx = (vi / 6u); let r_3 = fl.f[idx]; let c_5 = corners[(vi % 6u)]; let _e31 = extents(r_3); let lx = (c_5.x * _e31.x); let ly = mix(_e31.y, _e31.z, c_5.y); let world = ((r_3.base.xyz + (r_3.right.xyz * lx)) + (r_3.axis.xyz * ly)); let _e53 = fl.viewProj; out.position = (_e53 * vec4(world, 1f)); out.local = vec2(lx, ly); let _e61 = out.position; out.clip = _e61; out.idx = f32(idx); out.world = world; let _e65 = out; return _e65; } @fragment fn fs_main(in: VsOut) -> @location(0) vec4 { var col: vec3 = vec3(0f); var local: bool; var local_1: bool; var local_2: bool; var p: vec2; var c: vec3; var local_3: bool; var smokeRgb: vec3 = vec3(0f); var smokeA: f32 = 0f; var dens: f32; let r_4 = fl.f[u32((in.idx + 0.5f))]; let ndc = (in.clip.xyz / vec3(in.clip.w)); let uv = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let roomSeen = textureSampleCompareLevel(roomDepth, roomCmp, uv, ndc.z); let _e33 = fl.misc.y; let vis = select(1f, roomSeen, (_e33 > 0.5f)); let t = r_4.base.w; let gutter = r_4.shape.y; let level = r_4.shape.z; let ember = r_4.shape.w; let h_1 = max(r_4.axis.w, 0.0001f); let hw_1 = max(r_4.right.w, 0.0001f); let w_1 = in.local; let seed = r_4.extra.w; let _e57 = extents(r_4); let drop = r_4.extra.x; let wb = r_4.base.xyz; let _e64 = fl.eye; let eye = _e64.xyz; let toEye = (eye - wb); let hz = normalize((vec3(toEye.x, 0f, toEye.z) + vec3(0.000001f, 0f, 0f))); let wr = vec3(hz.z, 0f, -(hz.x)); let ray = (in.world - eye); let den = dot(ray, hz); let tRay = (dot((wb - eye), hz) / select(den, -0.000001f, (abs(den) < 0.000001f))); let P = (eye + (ray * tRay)); let wl = vec2(dot((P - wb), wr), (P.y - wb.y)); let curlA = (seed * 6.2831855f); let curlX = (dot(vec3(cos(curlA), 0f, sin(curlA)), wr) * WICK_CURL); let kw = clamp(((wl.y + drop) / max((drop + WICK_TIP), 0.0001f)), 0f, 1f); let wx = (wl.x - (((curlX * kw) * kw) * kw)); let wickBody = (((1f - smoothstep(0.6f, 1f, (abs(wx) / WICK_HALF))) * step((-(drop) - 0.004f), wl.y)) * (1f - smoothstep((WICK_TIP - 0.0004f), (WICK_TIP + 0.0006f), wl.y))); let tipP = vec2(curlX, WICK_TIP); let tq = (wl - tipP); let tipD2_ = dot(tq, tq); let tipGlow = exp((-(tipD2_) / ((WICK_HALF * WICK_HALF) * 2.2f))); let tipHalo = exp((-(tipD2_) / 0.00002025f)); let emberCol = (vec3(1f, 0.24f, 0.035f) * ((tipGlow * ((0.5f * smoothstep(0.05f, 0.4f, level)) + (10f * ember))) + ((tipHalo * 0.9f) * ember))); let p0_ = vec2((w_1.x / hw_1), (w_1.y / h_1)); if (level > 0.001f) { local = (abs(p0_.x) < 2.6f); } else { local = false; } let _e196 = local; if _e196 { local_1 = (p0_.y > -0.4f); } else { local_1 = false; } let _e203 = local_1; if _e203 { local_2 = (p0_.y < 1.5f); } else { local_2 = false; } let _e210 = local_2; if _e210 { let rise = (t * (2.3f + (2f * gutter))); let _e227 = fbm3_(vec2((((p0_.x * 0.9f) + 1.3f) + seed), ((p0_.y * 1.7f) - rise))); let _e241 = vnoise(vec2(((p0_.x * 1.9f) + 7.1f), (((p0_.y * 3.3f) - (rise * 1.6f)) + seed))); let tipW = smoothstep(0.08f, 1f, p0_.y); let bend = ((r_4.fx.x * p0_.y) * p0_.y); let sway = ((0.08f * sin(r_4.fx.y)) * tipW); let amp = (((0.22f + (1.1f * gutter)) * tipW) * tipW); p = vec2((((p0_.x - bend) - sway) - (((_e227 * 0.8f) + (_e241 * 0.3f)) * amp)), (p0_.y + ((_e241 * 0.07f) * tipW))); let _e283 = p.y; p.y = (_e283 * (1f + (((0.07f + (gutter * 0.5f)) * max(_e227, 0f)) * tipW))); let _e295 = p; let _e296 = tear(_e295); let _e298 = p.y; let hgt = clamp(_e298, 0f, 1f); let mantle = (1f - smoothstep(0.62f, 1.04f, _e296)); let edgeBand = (smoothstep(0.55f, 0.92f, _e296) * mantle); let _e317 = p.y; let _e323 = p.y; let body = (((1f - smoothstep(0.2f, 0.86f, _e296)) * smoothstep(0.04f, 0.24f, _e317)) * (1f - smoothstep(0.55f, 0.98f, _e323))); let _e331 = p.x; let _e335 = p.y; let coreD = length(vec2((_e331 * 2.3f), ((_e335 - 0.36f) / 0.26f))); let _e348 = p.y; let core = ((1f - smoothstep(0.05f, 1f, coreD)) * smoothstep(0.1f, 0.24f, _e348)); let _e354 = p.x; let _e358 = p.y; let coneD = length(vec2((_e354 * 2.5f), ((_e358 - 0.07f) / 0.15f))); let cone = (1f - smoothstep(0.3f, 1f, coneD)); let _e371 = p.y; let _e383 = p.y; let blue = ((((1f - smoothstep(0f, 0.24f, _e371)) * smoothstep(0.25f, 0.95f, _e296)) * mantle) + (((1f - smoothstep(-0.06f, 0.12f, _e383)) * mantle) * 0.35f)); let mantleCol = mix(vec3(1f, 0.46f, 0.11f), vec3(0.92f, 0.24f, 0.05f), smoothstep(0.45f, 1f, hgt)); let bodyCol = mix(vec3(1f, 0.74f, 0.32f), vec3(1f, 0.56f, 0.18f), smoothstep(0.5f, 0.95f, hgt)); let coreCol = vec3(1f, 0.9f, 0.7f); c = (((mantleCol * (mantle * (0.75f - (0.3f * edgeBand)))) + (bodyCol * (body * 1.55f))) + (coreCol * (core * 3.4f))); let _e436 = c; c = ((_e436 * (1f - (0.82f * cone))) + ((vec3(0.22f, 0.07f, 0.015f) * cone) * mantle)); let _e449 = c; c = (_e449 + (vec3(0.1f, 0.26f, 1f) * (blue * 0.6f))); let cold = clamp(r_4.cold.x, 0f, 1f); if (cold > 0.001f) { let rise_1 = (0.16f + (0.36f * cold)); let _e470 = p.x; let _e472 = p.y; let hx = (_e470 * (2.2f - (0.5f * smoothstep(0f, rise_1, _e472)))); let _e481 = p.y; let heartD = length(vec2(hx, ((_e481 - (0.5f * rise_1)) / ((0.55f * rise_1) + 0.05f)))); let heart = ((smoothstep(0f, 1f, cold) * (1f - smoothstep(0.25f, 1f, heartD))) * mantle); let _e502 = c; let _e503 = luma(_e502); let heartCol = (vec3(0.22f, 0.47f, 1f) * (0.38f + (0.45f * min(_e503, 1.6f)))); let _e515 = c; c = mix(_e515, heartCol, (heart * 0.9f)); let _e524 = p.y; let cup = (((1f - smoothstep(0f, (0.24f + (0.2f * cold)), _e524)) * smoothstep(0.3f, 0.95f, _e296)) * mantle); let _e534 = c; c = (_e534 + (vec3(0.1f, 0.28f, 1f) * ((cup * 0.45f) * cold))); let _e544 = c; let _e545 = luma(_e544); let _e546 = c; c = (mix(_e546, (vec3(_e545) * vec3(0.95f, 0.97f, 1.06f)), ((0.16f * cold) * (1f - heart))) * (1f - (0.08f * cold))); } let yellow = smoothstep(0.05f, 0.45f, level); let _e571 = c; let _e572 = luma(_e571); let _e576 = c; c = mix(((vec3(0.2f, 0.35f, 1f) * _e572) * 0.6f), _e576, yellow); let _e578 = c; col = (_e578 * r_4.shape.x); } let _e582 = haloRadius(r_4); if (_e582 > 0f) { local_3 = (level > 0.001f); } else { local_3 = false; } let _e590 = local_3; if _e590 { let hc = (w_1 - vec2(0f, (0.38f * h_1))); let q = (dot(hc, hc) / (_e582 * _e582)); let halo = ((1f / ((1f + q) * (1f + q))) - 0.04f); let _e608 = col; col = (_e608 + (vec3(1f, 0.55f, 0.22f) * (((max(halo, 0f) * 0.11f) * r_4.shape.x) * smoothstep(0f, 0.3f, level)))); } let _e631 = smokeTop(r_4); if (r_4.fx.z > 0.001f) { let age = r_4.fx.w; let sc = max(r_4.cold.y, 1f); let yw = max(w_1.y, 0f); let yn = (yw / sc); let u_2 = clamp((yw / max(_e631, 0.0001f)), 0f, 1f); let turb = (u_2 * u_2); let _e664 = fbm3_(vec2(((yn * 26f) - (age * 1.1f)), ((3.7f + seed) + (age * 0.15f)))); let cx = ((tipP.x * (1f - smoothstep(0f, 0.02f, yn))) + ((((_e664 * 0.03f) * turb) + ((sin((((yn * 62f) - (age * 2.4f)) + seed)) * 0.0035f) * (0.3f + turb))) * sc)); let width = ((0.0008f + (yn * 0.085f)) * sc); let dx = ((w_1.x - cx) / width); dens = ((exp((-(dx) * dx)) * smoothstep(0f, 0.004f, yn)) * (1f - smoothstep(0.6f, 1f, u_2))); let _e712 = dens; let _e723 = fbm3_(vec2(((w_1.x / sc) * 160f), ((yn * 80f) - (age * 3f)))); dens = (_e712 * mix(1f, smoothstep(-0.3f, 0.5f, _e723), turb)); let _e730 = dens; dens = clamp(((_e730 * r_4.fx.z) * 0.75f), 0f, 1f); let emberLit = (vec3(1f, 0.3f, 0.06f) * ((ember * 1.8f) * exp((-(yn) / 0.02f)))); let glowLit = (vec3(0.33f, 1f, 0.43f) * (r_4.extra.y * (0.6f + (0.4f * u_2)))); let moonLit = (vec3(0.62f, 0.76f, 1f) * r_4.cold.z); let _e777 = dens; smokeRgb = ((((vec3(0.11f, 0.104f, 0.098f) + emberLit) + glowLit) + moonLit) * _e777); let _e779 = dens; smokeA = (_e779 * 0.55f); } let win = (((1f - smoothstep(0.75f, 1f, (abs(w_1.x) / _e57.x))) * smoothstep(0f, 0.12f, ((w_1.y - _e57.y) / (_e57.z - _e57.y)))) * (1f - smoothstep(0.8f, 1f, ((w_1.y - _e57.y) / (_e57.z - _e57.y))))); let _e818 = fl.misc.x; if (_e818 > 0.5f) { let _e821 = col; let _e826 = encodeHdr((((_e821 + emberCol) * win) * vis), 1f); return vec4(_e826, 0f); } let wickCol = vec3(0.012f, 0.01f, 0.009f); let wickA = (wickBody * vis); let _e834 = smokeA; let a = max(wickA, ((_e834 * win) * vis)); let _e838 = col; let _e840 = smokeRgb; let rgb = (((((_e838 + emberCol) + _e840) * win) + (wickCol * wickBody)) * vis); return vec4(rgb, a); }  Ph\#ÂG vs_mainmainA#version 300 es precision highp float; precision highp int; struct FlameRec { vec4 base; vec4 axis; vec4 right; vec4 shape; vec4 fx; vec4 extra; vec4 cold; }; struct Flames { mat4x4 viewProj; vec4 eye; vec4 misc; FlameRec f[9]; }; struct VsOut { vec4 position; vec2 local; vec4 clip; float idx; vec3 world; }; const float HDR_RANGE = 4.0; const float WICK_HALF = 0.0013; const float WICK_TIP = 0.0068; const float WICK_CURL = 0.0072; layout(std140) uniform Flames_block_0Vertex { Flames _group_0_binding_0_vs; }; smooth out vec2 _vs2fs_location0; smooth out vec4 _vs2fs_location1; flat out float _vs2fs_location2; smooth out vec3 _vs2fs_location3; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p_1) { return fract((52.982918 * fract(dot(p_1, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_2) { vec2 i_2 = floor(p_2); vec2 f = (p_2 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_3) { vec2 i_3 = floor(p_3); vec2 f_1 = (p_3 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_4) { float s = 0.0; float _e1 = vnoise(p_4); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_4 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_4 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float smokeTop(FlameRec r) { return ((min((0.012 + (r.fx.w * 0.07)), 0.3) * step(0.001, r.fx.z)) * max(r.cold.y, 1.0)); } float haloRadius(FlameRec r_1) { return (r_1.extra.z * max(r_1.axis.w, 0.02)); } vec3 extents(FlameRec r_2) { float h = r_2.axis.w; float hw = r_2.right.w; float _e5 = smokeTop(r_2); float _e6 = haloRadius(r_2); float hr = (_e6 * step(0.001, r_2.shape.z)); float alive = step(0.0005, ((r_2.shape.z + r_2.shape.w) + r_2.fx.z)); float halfX = max((max(max((2.6 * hw), 0.01), max((0.03 + (_e5 * 0.25)), (hr * 2.4))) * alive), 0.016); float y0_ = -(((r_2.extra.x + 0.008) + (hr * 1.6))); float y1_ = max((max(max((1.5 * h), 0.014), max(_e5, ((0.4 * h) + (hr * 2.6)))) * alive), 0.012800001); return vec3(halfX, y0_, y1_); } float tear(vec2 p_5) { float above = step(0.26, p_5.y); float ry = mix(0.3, (1.0 - 0.26), above); float s_1 = (max((p_5.y - 0.26), 0.0) / (1.0 - 0.26)); float taper = (1.0 + (above * ((1.5 * s_1) + (((1.9 * s_1) * s_1) * s_1)))); return length(vec2((p_5.x * taper), ((p_5.y - 0.26) / ry))); } void main() { uint vi = uint(gl_VertexID); vec2 corners[6] = vec2[6](vec2(-1.0, 0.0), vec2(1.0, 0.0), vec2(1.0, 1.0), vec2(-1.0, 0.0), vec2(1.0, 1.0), vec2(-1.0, 1.0)); VsOut out_ = VsOut(vec4(0.0), vec2(0.0), vec4(0.0), 0.0, vec3(0.0)); uint idx = (vi / 6u); FlameRec r_3 = _group_0_binding_0_vs.f[idx]; vec2 c_5 = corners[(vi % 6u)]; vec3 _e31 = extents(r_3); float lx = (c_5.x * _e31.x); float ly = mix(_e31.y, _e31.z, c_5.y); vec3 world = ((r_3.base.xyz + (r_3.right.xyz * lx)) + (r_3.axis.xyz * ly)); mat4x4 _e53 = _group_0_binding_0_vs.viewProj; out_.position = (_e53 * vec4(world, 1.0)); out_.local = vec2(lx, ly); vec4 _e61 = out_.position; out_.clip = _e61; out_.idx = float(idx); out_.world = world; VsOut _e65 = out_; gl_Position = _e65.position; _vs2fs_location0 = _e65.local; _vs2fs_location1 = _e65.clip; _vs2fs_location2 = _e65.idx; _vs2fs_location3 = _e65.world; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain59#version 300 es precision highp float; precision highp int; struct FlameRec { vec4 base; vec4 axis; vec4 right; vec4 shape; vec4 fx; vec4 extra; vec4 cold; }; struct Flames { mat4x4 viewProj; vec4 eye; vec4 misc; FlameRec f[9]; }; struct VsOut { vec4 position; vec2 local; vec4 clip; float idx; vec3 world; }; const float HDR_RANGE = 4.0; const float WICK_HALF = 0.0013; const float WICK_TIP = 0.0068; const float WICK_CURL = 0.0072; layout(std140) uniform Flames_block_0Fragment { Flames _group_0_binding_0_fs; }; uniform highp sampler2DShadow _group_0_binding_1_fs; smooth in vec2 _vs2fs_location0; smooth in vec4 _vs2fs_location1; flat in float _vs2fs_location2; smooth in vec3 _vs2fs_location3; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p_1) { return fract((52.982918 * fract(dot(p_1, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_2) { vec2 i_2 = floor(p_2); vec2 f = (p_2 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_3) { vec2 i_3 = floor(p_3); vec2 f_1 = (p_3 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_4) { float s = 0.0; float _e1 = vnoise(p_4); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_4 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_4 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float smokeTop(FlameRec r) { return ((min((0.012 + (r.fx.w * 0.07)), 0.3) * step(0.001, r.fx.z)) * max(r.cold.y, 1.0)); } float haloRadius(FlameRec r_1) { return (r_1.extra.z * max(r_1.axis.w, 0.02)); } vec3 extents(FlameRec r_2) { float h = r_2.axis.w; float hw = r_2.right.w; float _e5 = smokeTop(r_2); float _e6 = haloRadius(r_2); float hr = (_e6 * step(0.001, r_2.shape.z)); float alive = step(0.0005, ((r_2.shape.z + r_2.shape.w) + r_2.fx.z)); float halfX = max((max(max((2.6 * hw), 0.01), max((0.03 + (_e5 * 0.25)), (hr * 2.4))) * alive), 0.016); float y0_ = -(((r_2.extra.x + 0.008) + (hr * 1.6))); float y1_ = max((max(max((1.5 * h), 0.014), max(_e5, ((0.4 * h) + (hr * 2.6)))) * alive), 0.012800001); return vec3(halfX, y0_, y1_); } float tear(vec2 p_5) { float above = step(0.26, p_5.y); float ry = mix(0.3, (1.0 - 0.26), above); float s_1 = (max((p_5.y - 0.26), 0.0) / (1.0 - 0.26)); float taper = (1.0 + (above * ((1.5 * s_1) + (((1.9 * s_1) * s_1) * s_1)))); return length(vec2((p_5.x * taper), ((p_5.y - 0.26) / ry))); } void main() { VsOut in_ = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3); vec3 col = vec3(0.0); bool local = false; bool local_1 = false; bool local_2 = false; vec2 p = vec2(0.0); vec3 c = vec3(0.0); bool local_3 = false; vec3 smokeRgb = vec3(0.0); float smokeA = 0.0; float dens = 0.0; FlameRec r_3 = _group_0_binding_0_fs.f[uint((in_.idx + 0.5))]; vec3 ndc = (in_.clip.xyz / vec3(in_.clip.w)); vec2 uv = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); float roomSeen = textureLod(_group_0_binding_1_fs, vec3(uv, ndc.z), 0.0); float _e33 = _group_0_binding_0_fs.misc.y; float vis = ((_e33 > 0.5) ? roomSeen : 1.0); float t = r_3.base.w; float gutter = r_3.shape.y; float level = r_3.shape.z; float ember = r_3.shape.w; float h_1 = max(r_3.axis.w, 0.0001); float hw_1 = max(r_3.right.w, 0.0001); vec2 w_1 = in_.local; float seed = r_3.extra.w; vec3 _e57 = extents(r_3); float drop = r_3.extra.x; vec3 wb = r_3.base.xyz; vec4 _e64 = _group_0_binding_0_fs.eye; vec3 eye = _e64.xyz; vec3 toEye = (eye - wb); vec3 hz = normalize((vec3(toEye.x, 0.0, toEye.z) + vec3(1e-6, 0.0, 0.0))); vec3 wr = vec3(hz.z, 0.0, -(hz.x)); vec3 ray = (in_.world - eye); float den = dot(ray, hz); float tRay = (dot((wb - eye), hz) / ((abs(den) < 1e-6) ? -1e-6 : den)); vec3 P = (eye + (ray * tRay)); vec2 wl = vec2(dot((P - wb), wr), (P.y - wb.y)); float curlA = (seed * 6.2831855); float curlX = (dot(vec3(cos(curlA), 0.0, sin(curlA)), wr) * WICK_CURL); float kw = clamp(((wl.y + drop) / max((drop + WICK_TIP), 0.0001)), 0.0, 1.0); float wx = (wl.x - (((curlX * kw) * kw) * kw)); float wickBody = (((1.0 - smoothstep(0.6, 1.0, (abs(wx) / WICK_HALF))) * step((-(drop) - 0.004), wl.y)) * (1.0 - smoothstep((WICK_TIP - 0.0004), (WICK_TIP + 0.0006), wl.y))); vec2 tipP = vec2(curlX, WICK_TIP); vec2 tq = (wl - tipP); float tipD2_ = dot(tq, tq); float tipGlow = exp((-(tipD2_) / ((WICK_HALF * WICK_HALF) * 2.2))); float tipHalo = exp((-(tipD2_) / 2.025e-5)); vec3 emberCol = (vec3(1.0, 0.24, 0.035) * ((tipGlow * ((0.5 * smoothstep(0.05, 0.4, level)) + (10.0 * ember))) + ((tipHalo * 0.9) * ember))); vec2 p0_ = vec2((w_1.x / hw_1), (w_1.y / h_1)); if ((level > 0.001)) { local = (abs(p0_.x) < 2.6); } else { local = false; } bool _e196 = local; if (_e196) { local_1 = (p0_.y > -0.4); } else { local_1 = false; } bool _e203 = local_1; if (_e203) { local_2 = (p0_.y < 1.5); } else { local_2 = false; } bool _e210 = local_2; if (_e210) { float rise = (t * (2.3 + (2.0 * gutter))); float _e227 = fbm3_(vec2((((p0_.x * 0.9) + 1.3) + seed), ((p0_.y * 1.7) - rise))); float _e241 = vnoise(vec2(((p0_.x * 1.9) + 7.1), (((p0_.y * 3.3) - (rise * 1.6)) + seed))); float tipW = smoothstep(0.08, 1.0, p0_.y); float bend = ((r_3.fx.x * p0_.y) * p0_.y); float sway = ((0.08 * sin(r_3.fx.y)) * tipW); float amp = (((0.22 + (1.1 * gutter)) * tipW) * tipW); p = vec2((((p0_.x - bend) - sway) - (((_e227 * 0.8) + (_e241 * 0.3)) * amp)), (p0_.y + ((_e241 * 0.07) * tipW))); float _e283 = p.y; p.y = (_e283 * (1.0 + (((0.07 + (gutter * 0.5)) * max(_e227, 0.0)) * tipW))); vec2 _e295 = p; float _e296 = tear(_e295); float _e298 = p.y; float hgt = clamp(_e298, 0.0, 1.0); float mantle = (1.0 - smoothstep(0.62, 1.04, _e296)); float edgeBand = (smoothstep(0.55, 0.92, _e296) * mantle); float _e317 = p.y; float _e323 = p.y; float body = (((1.0 - smoothstep(0.2, 0.86, _e296)) * smoothstep(0.04, 0.24, _e317)) * (1.0 - smoothstep(0.55, 0.98, _e323))); float _e331 = p.x; float _e335 = p.y; float coreD = length(vec2((_e331 * 2.3), ((_e335 - 0.36) / 0.26))); float _e348 = p.y; float core = ((1.0 - smoothstep(0.05, 1.0, coreD)) * smoothstep(0.1, 0.24, _e348)); float _e354 = p.x; float _e358 = p.y; float coneD = length(vec2((_e354 * 2.5), ((_e358 - 0.07) / 0.15))); float cone = (1.0 - smoothstep(0.3, 1.0, coneD)); float _e371 = p.y; float _e383 = p.y; float blue = ((((1.0 - smoothstep(0.0, 0.24, _e371)) * smoothstep(0.25, 0.95, _e296)) * mantle) + (((1.0 - smoothstep(-0.06, 0.12, _e383)) * mantle) * 0.35)); vec3 mantleCol = mix(vec3(1.0, 0.46, 0.11), vec3(0.92, 0.24, 0.05), smoothstep(0.45, 1.0, hgt)); vec3 bodyCol = mix(vec3(1.0, 0.74, 0.32), vec3(1.0, 0.56, 0.18), smoothstep(0.5, 0.95, hgt)); vec3 coreCol = vec3(1.0, 0.9, 0.7); c = (((mantleCol * (mantle * (0.75 - (0.3 * edgeBand)))) + (bodyCol * (body * 1.55))) + (coreCol * (core * 3.4))); vec3 _e436 = c; c = ((_e436 * (1.0 - (0.82 * cone))) + ((vec3(0.22, 0.07, 0.015) * cone) * mantle)); vec3 _e449 = c; c = (_e449 + (vec3(0.1, 0.26, 1.0) * (blue * 0.6))); float cold = clamp(r_3.cold.x, 0.0, 1.0); if ((cold > 0.001)) { float rise_1 = (0.16 + (0.36 * cold)); float _e470 = p.x; float _e472 = p.y; float hx = (_e470 * (2.2 - (0.5 * smoothstep(0.0, rise_1, _e472)))); float _e481 = p.y; float heartD = length(vec2(hx, ((_e481 - (0.5 * rise_1)) / ((0.55 * rise_1) + 0.05)))); float heart = ((smoothstep(0.0, 1.0, cold) * (1.0 - smoothstep(0.25, 1.0, heartD))) * mantle); vec3 _e502 = c; float _e503 = luma(_e502); vec3 heartCol = (vec3(0.22, 0.47, 1.0) * (0.38 + (0.45 * min(_e503, 1.6)))); vec3 _e515 = c; c = mix(_e515, heartCol, (heart * 0.9)); float _e524 = p.y; float cup = (((1.0 - smoothstep(0.0, (0.24 + (0.2 * cold)), _e524)) * smoothstep(0.3, 0.95, _e296)) * mantle); vec3 _e534 = c; c = (_e534 + (vec3(0.1, 0.28, 1.0) * ((cup * 0.45) * cold))); vec3 _e544 = c; float _e545 = luma(_e544); vec3 _e546 = c; c = (mix(_e546, (vec3(_e545) * vec3(0.95, 0.97, 1.06)), ((0.16 * cold) * (1.0 - heart))) * (1.0 - (0.08 * cold))); } float yellow = smoothstep(0.05, 0.45, level); vec3 _e571 = c; float _e572 = luma(_e571); vec3 _e576 = c; c = mix(((vec3(0.2, 0.35, 1.0) * _e572) * 0.6), _e576, yellow); vec3 _e578 = c; col = (_e578 * r_3.shape.x); } float _e582 = haloRadius(r_3); if ((_e582 > 0.0)) { local_3 = (level > 0.001); } else { local_3 = false; } bool _e590 = local_3; if (_e590) { vec2 hc = (w_1 - vec2(0.0, (0.38 * h_1))); float q = (dot(hc, hc) / (_e582 * _e582)); float halo = ((1.0 / ((1.0 + q) * (1.0 + q))) - 0.04); vec3 _e608 = col; col = (_e608 + (vec3(1.0, 0.55, 0.22) * (((max(halo, 0.0) * 0.11) * r_3.shape.x) * smoothstep(0.0, 0.3, level)))); } float _e631 = smokeTop(r_3); if ((r_3.fx.z > 0.001)) { float age = r_3.fx.w; float sc = max(r_3.cold.y, 1.0); float yw = max(w_1.y, 0.0); float yn = (yw / sc); float u_2 = clamp((yw / max(_e631, 0.0001)), 0.0, 1.0); float turb = (u_2 * u_2); float _e664 = fbm3_(vec2(((yn * 26.0) - (age * 1.1)), ((3.7 + seed) + (age * 0.15)))); float cx = ((tipP.x * (1.0 - smoothstep(0.0, 0.02, yn))) + ((((_e664 * 0.03) * turb) + ((sin((((yn * 62.0) - (age * 2.4)) + seed)) * 0.0035) * (0.3 + turb))) * sc)); float width = ((0.0008 + (yn * 0.085)) * sc); float dx = ((w_1.x - cx) / width); dens = ((exp((-(dx) * dx)) * smoothstep(0.0, 0.004, yn)) * (1.0 - smoothstep(0.6, 1.0, u_2))); float _e712 = dens; float _e723 = fbm3_(vec2(((w_1.x / sc) * 160.0), ((yn * 80.0) - (age * 3.0)))); dens = (_e712 * mix(1.0, smoothstep(-0.3, 0.5, _e723), turb)); float _e730 = dens; dens = clamp(((_e730 * r_3.fx.z) * 0.75), 0.0, 1.0); vec3 emberLit = (vec3(1.0, 0.3, 0.06) * ((ember * 1.8) * exp((-(yn) / 0.02)))); vec3 glowLit = (vec3(0.33, 1.0, 0.43) * (r_3.extra.y * (0.6 + (0.4 * u_2)))); vec3 moonLit = (vec3(0.62, 0.76, 1.0) * r_3.cold.z); float _e777 = dens; smokeRgb = ((((vec3(0.11, 0.104, 0.098) + emberLit) + glowLit) + moonLit) * _e777); float _e779 = dens; smokeA = (_e779 * 0.55); } float win = (((1.0 - smoothstep(0.75, 1.0, (abs(w_1.x) / _e57.x))) * smoothstep(0.0, 0.12, ((w_1.y - _e57.y) / (_e57.z - _e57.y)))) * (1.0 - smoothstep(0.8, 1.0, ((w_1.y - _e57.y) / (_e57.z - _e57.y))))); float _e818 = _group_0_binding_0_fs.misc.x; if ((_e818 > 0.5)) { vec3 _e821 = col; vec3 _e826 = encodeHdr((((_e821 + emberCol) * win) * vis), 1.0); _fs2p_location0 = vec4(_e826, 0.0); return; } vec3 wickCol = vec3(0.012, 0.01, 0.009); float wickA = (wickBody * vis); float _e834 = smokeA; float a = max(wickA, ((_e834 * win) * vis)); vec3 _e838 = col; vec3 _e840 = smokeRgb; vec3 rgb = (((((_e838 + emberCol) + _e840) * win) + (wickCol * wickBody)) * vis); _fs2p_location0 = vec4(rgb, a); return; }  P�0xQ*‰sÂFlames_block_0VertexFlames_block_0Fragment_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_mainGL// language: metal1.0 #include #include using metal::uint; struct FlameRec { metal::float4 base; metal::float4 axis; metal::float4 right; metal::float4 shape; metal::float4 fx; metal::float4 extra; metal::float4 cold; }; struct type_8 { FlameRec inner[9]; }; struct Flames { metal::float4x4 viewProj; metal::float4 eye; metal::float4 misc; type_8 f; }; struct VsOut { metal::float4 position; metal::float2 local; char _pad2[8]; metal::float4 clip; float idx; char _pad4[12]; metal::float3 world; }; struct type_11 { metal::float2 inner[6]; }; constant float HDR_RANGE = 4.0; constant float WICK_HALF = 0.0013; constant float WICK_TIP = 0.0068; constant float WICK_CURL = 0.0072; metal::float3 srgbToLinear( metal::float3 c_1 ) { metal::float3 x = metal::max(c_1, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_2 ) { metal::float3 x_1 = metal::max(c_2, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_3 ) { return metal::dot(c_3, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_4, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_4 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_4; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p_1 ) { return metal::fract(52.982918 * metal::fract(metal::dot(p_1, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_2 ) { metal::float2 i_2 = metal::floor(p_2); metal::float2 f = p_2 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_3 ) { metal::float2 i_3 = metal::floor(p_3); metal::float2 f_1 = p_3 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_4 ) { float s = {}; float _e1 = vnoise(p_4); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_4 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_4 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float smokeTop( FlameRec r ) { return (metal::min(0.012 + (r.fx.w * 0.07), 0.3) * metal::step(0.001, r.fx.z)) * metal::max(r.cold.y, 1.0); } float haloRadius( FlameRec r_1 ) { return r_1.extra.z * metal::max(r_1.axis.w, 0.02); } metal::float3 extents( FlameRec r_2 ) { float h = r_2.axis.w; float hw = r_2.right.w; float _e5 = smokeTop(r_2); float _e6 = haloRadius(r_2); float hr = _e6 * metal::step(0.001, r_2.shape.z); float alive = metal::step(0.0005, (r_2.shape.z + r_2.shape.w) + r_2.fx.z); float halfX = metal::max(metal::max(metal::max(2.6 * hw, 0.01), metal::max(0.03 + (_e5 * 0.25), hr * 2.4)) * alive, 0.016); float y0_ = -(((r_2.extra.x + 0.008) + (hr * 1.6))); float y1_ = metal::max(metal::max(metal::max(1.5 * h, 0.014), metal::max(_e5, (0.4 * h) + (hr * 2.6))) * alive, 0.012800001); return metal::float3(halfX, y0_, y1_); } float tear( metal::float2 p_5 ) { float above = metal::step(0.26, p_5.y); float ry = metal::mix(0.3, 1.0 - 0.26, above); float s_1 = metal::max(p_5.y - 0.26, 0.0) / (1.0 - 0.26); float taper = 1.0 + (above * ((1.5 * s_1) + (((1.9 * s_1) * s_1) * s_1))); return metal::length(metal::float2(p_5.x * taper, (p_5.y - 0.26) / ry)); } uint naga_div(uint lhs, uint rhs) { return lhs / metal::select(rhs, 1u, rhs == 0u); } uint naga_mod(uint lhs, uint rhs) { return lhs % metal::select(rhs, 1u, rhs == 0u); } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 local [[user(loc0), center_perspective]]; metal::float4 clip [[user(loc1), center_perspective]]; float idx [[user(loc2), flat]]; metal::float3 world [[user(loc3), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] , constant Flames& fl [[buffer(0)]] ) { type_11 corners = type_11 {{metal::float2(-1.0, 0.0), metal::float2(1.0, 0.0), metal::float2(1.0, 1.0), metal::float2(-1.0, 0.0), metal::float2(1.0, 1.0), metal::float2(-1.0, 1.0)}}; VsOut out = {}; uint idx = naga_div(vi, 6u); FlameRec r_3 = fl.f.inner[metal::min(unsigned(idx), 8u)]; metal::float2 c_5 = corners.inner[metal::min(unsigned(naga_mod(vi, 6u)), 5u)]; metal::float3 _e31 = extents(r_3); float lx = c_5.x * _e31.x; float ly = metal::mix(_e31.y, _e31.z, c_5.y); metal::float3 world = (r_3.base.xyz + (r_3.right.xyz * lx)) + (r_3.axis.xyz * ly); metal::float4x4 _e53 = fl.viewProj; out.position = _e53 * metal::float4(world, 1.0); out.local = metal::float2(lx, ly); metal::float4 _e61 = out.position; out.clip = _e61; out.idx = static_cast(idx); out.world = world; VsOut _e65 = out; const auto _tmp = _e65; return vs_mainOutput { _tmp.position, _tmp.local, _tmp.clip, _tmp.idx, _tmp.world }; } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } struct fs_mainInput { metal::float2 local_4 [[user(loc0), center_perspective]]; metal::float4 clip [[user(loc1), center_perspective]]; float idx [[user(loc2), flat]]; metal::float3 world [[user(loc3), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Flames& fl [[buffer(0)]] , metal::depth2d roomDepth [[texture(0)]] , metal::sampler roomCmp [[sampler(0)]] ) { const VsOut in = { position, varyings_1.local_4, {}, varyings_1.clip, varyings_1.idx, {}, varyings_1.world }; metal::float3 col = metal::float3(0.0); bool local = {}; bool local_1 = {}; bool local_2 = {}; metal::float2 p = {}; metal::float3 c = {}; bool local_3 = {}; metal::float3 smokeRgb = metal::float3(0.0); float smokeA = 0.0; float dens = {}; FlameRec r_4 = fl.f.inner[metal::min(unsigned(naga_f2u32(in.idx + 0.5)), 8u)]; metal::float3 ndc = in.clip.xyz / metal::float3(in.clip.w); metal::float2 uv = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); float roomSeen = roomDepth.sample_compare(roomCmp, uv, ndc.z); float _e33 = fl.misc.y; float vis = (_e33 > 0.5) ? roomSeen : 1.0; float t = r_4.base.w; float gutter = r_4.shape.y; float level = r_4.shape.z; float ember = r_4.shape.w; float h_1 = metal::max(r_4.axis.w, 0.0001); float hw_1 = metal::max(r_4.right.w, 0.0001); metal::float2 w_1 = in.local; float seed = r_4.extra.w; metal::float3 _e57 = extents(r_4); float drop = r_4.extra.x; metal::float3 wb = r_4.base.xyz; metal::float4 _e64 = fl.eye; metal::float3 eye = _e64.xyz; metal::float3 toEye = eye - wb; metal::float3 hz = metal::normalize(metal::float3(toEye.x, 0.0, toEye.z) + metal::float3(0.000001, 0.0, 0.0)); metal::float3 wr = metal::float3(hz.z, 0.0, -(hz.x)); metal::float3 ray = in.world - eye; float den = metal::dot(ray, hz); float tRay = metal::dot(wb - eye, hz) / ((metal::abs(den) < 0.000001) ? -0.000001 : den); metal::float3 P = eye + (ray * tRay); metal::float2 wl = metal::float2(metal::dot(P - wb, wr), P.y - wb.y); float curlA = seed * 6.2831855; float curlX = metal::dot(metal::float3(metal::cos(curlA), 0.0, metal::sin(curlA)), wr) * WICK_CURL; float kw = metal::clamp((wl.y + drop) / metal::max(drop + WICK_TIP, 0.0001), 0.0, 1.0); float wx = wl.x - (((curlX * kw) * kw) * kw); float wickBody = ((1.0 - metal::smoothstep(0.6, 1.0, metal::abs(wx) / WICK_HALF)) * metal::step(-(drop) - 0.004, wl.y)) * (1.0 - metal::smoothstep(WICK_TIP - 0.0004, WICK_TIP + 0.0006, wl.y)); metal::float2 tipP = metal::float2(curlX, WICK_TIP); metal::float2 tq = wl - tipP; float tipD2_ = metal::dot(tq, tq); float tipGlow = metal::exp(-(tipD2_) / ((WICK_HALF * WICK_HALF) * 2.2)); float tipHalo = metal::exp(-(tipD2_) / 0.00002025); metal::float3 emberCol = metal::float3(1.0, 0.24, 0.035) * ((tipGlow * ((0.5 * metal::smoothstep(0.05, 0.4, level)) + (10.0 * ember))) + ((tipHalo * 0.9) * ember)); metal::float2 p0_ = metal::float2(in.local.x / hw_1, in.local.y / h_1); if (level > 0.001) { local = metal::abs(p0_.x) < 2.6; } else { local = false; } bool _e196 = local; if (_e196) { local_1 = p0_.y > -0.4; } else { local_1 = false; } bool _e203 = local_1; if (_e203) { local_2 = p0_.y < 1.5; } else { local_2 = false; } bool _e210 = local_2; if (_e210) { float rise = t * (2.3 + (2.0 * gutter)); float _e227 = fbm3_(metal::float2(((p0_.x * 0.9) + 1.3) + seed, (p0_.y * 1.7) - rise)); float _e241 = vnoise(metal::float2((p0_.x * 1.9) + 7.1, ((p0_.y * 3.3) - (rise * 1.6)) + seed)); float tipW = metal::smoothstep(0.08, 1.0, p0_.y); float bend = (r_4.fx.x * p0_.y) * p0_.y; float sway = (0.08 * metal::sin(r_4.fx.y)) * tipW; float amp = ((0.22 + (1.1 * gutter)) * tipW) * tipW; p = metal::float2(((p0_.x - bend) - sway) - (((_e227 * 0.8) + (_e241 * 0.3)) * amp), p0_.y + ((_e241 * 0.07) * tipW)); float _e283 = p.y; p.y = _e283 * (1.0 + (((0.07 + (gutter * 0.5)) * metal::max(_e227, 0.0)) * tipW)); metal::float2 _e295 = p; float _e296 = tear(_e295); float _e298 = p.y; float hgt = metal::clamp(_e298, 0.0, 1.0); float mantle = 1.0 - metal::smoothstep(0.62, 1.04, _e296); float edgeBand = metal::smoothstep(0.55, 0.92, _e296) * mantle; float _e317 = p.y; float _e323 = p.y; float body = ((1.0 - metal::smoothstep(0.2, 0.86, _e296)) * metal::smoothstep(0.04, 0.24, _e317)) * (1.0 - metal::smoothstep(0.55, 0.98, _e323)); float _e331 = p.x; float _e335 = p.y; float coreD = metal::length(metal::float2(_e331 * 2.3, (_e335 - 0.36) / 0.26)); float _e348 = p.y; float core = (1.0 - metal::smoothstep(0.05, 1.0, coreD)) * metal::smoothstep(0.1, 0.24, _e348); float _e354 = p.x; float _e358 = p.y; float coneD = metal::length(metal::float2(_e354 * 2.5, (_e358 - 0.07) / 0.15)); float cone = 1.0 - metal::smoothstep(0.3, 1.0, coneD); float _e371 = p.y; float _e383 = p.y; float blue = (((1.0 - metal::smoothstep(0.0, 0.24, _e371)) * metal::smoothstep(0.25, 0.95, _e296)) * mantle) + (((1.0 - metal::smoothstep(-0.06, 0.12, _e383)) * mantle) * 0.35); metal::float3 mantleCol = metal::mix(metal::float3(1.0, 0.46, 0.11), metal::float3(0.92, 0.24, 0.05), metal::smoothstep(0.45, 1.0, hgt)); metal::float3 bodyCol = metal::mix(metal::float3(1.0, 0.74, 0.32), metal::float3(1.0, 0.56, 0.18), metal::smoothstep(0.5, 0.95, hgt)); metal::float3 coreCol = metal::float3(1.0, 0.9, 0.7); c = ((mantleCol * (mantle * (0.75 - (0.3 * edgeBand)))) + (bodyCol * (body * 1.55))) + (coreCol * (core * 3.4)); metal::float3 _e436 = c; c = (_e436 * (1.0 - (0.82 * cone))) + ((metal::float3(0.22, 0.07, 0.015) * cone) * mantle); metal::float3 _e449 = c; c = _e449 + (metal::float3(0.1, 0.26, 1.0) * (blue * 0.6)); float cold = metal::clamp(r_4.cold.x, 0.0, 1.0); if (cold > 0.001) { float rise_1 = 0.16 + (0.36 * cold); float _e470 = p.x; float _e472 = p.y; float hx = _e470 * (2.2 - (0.5 * metal::smoothstep(0.0, rise_1, _e472))); float _e481 = p.y; float heartD = metal::length(metal::float2(hx, (_e481 - (0.5 * rise_1)) / ((0.55 * rise_1) + 0.05))); float heart = (metal::smoothstep(0.0, 1.0, cold) * (1.0 - metal::smoothstep(0.25, 1.0, heartD))) * mantle; metal::float3 _e502 = c; float _e503 = luma(_e502); metal::float3 heartCol = metal::float3(0.22, 0.47, 1.0) * (0.38 + (0.45 * metal::min(_e503, 1.6))); metal::float3 _e515 = c; c = metal::mix(_e515, heartCol, heart * 0.9); float _e524 = p.y; float cup = ((1.0 - metal::smoothstep(0.0, 0.24 + (0.2 * cold), _e524)) * metal::smoothstep(0.3, 0.95, _e296)) * mantle; metal::float3 _e534 = c; c = _e534 + (metal::float3(0.1, 0.28, 1.0) * ((cup * 0.45) * cold)); metal::float3 _e544 = c; float _e545 = luma(_e544); metal::float3 _e546 = c; c = metal::mix(_e546, metal::float3(_e545) * metal::float3(0.95, 0.97, 1.06), (0.16 * cold) * (1.0 - heart)) * (1.0 - (0.08 * cold)); } float yellow = metal::smoothstep(0.05, 0.45, level); metal::float3 _e571 = c; float _e572 = luma(_e571); metal::float3 _e576 = c; c = metal::mix((metal::float3(0.2, 0.35, 1.0) * _e572) * 0.6, _e576, yellow); metal::float3 _e578 = c; col = _e578 * r_4.shape.x; } float _e582 = haloRadius(r_4); if (_e582 > 0.0) { local_3 = level > 0.001; } else { local_3 = false; } bool _e590 = local_3; if (_e590) { metal::float2 hc = w_1 - metal::float2(0.0, 0.38 * h_1); float q = metal::dot(hc, hc) / (_e582 * _e582); float halo = (1.0 / ((1.0 + q) * (1.0 + q))) - 0.04; metal::float3 _e608 = col; col = _e608 + (metal::float3(1.0, 0.55, 0.22) * (((metal::max(halo, 0.0) * 0.11) * r_4.shape.x) * metal::smoothstep(0.0, 0.3, level))); } float _e631 = smokeTop(r_4); if (r_4.fx.z > 0.001) { float age = r_4.fx.w; float sc = metal::max(r_4.cold.y, 1.0); float yw = metal::max(in.local.y, 0.0); float yn = yw / sc; float u_2 = metal::clamp(yw / metal::max(_e631, 0.0001), 0.0, 1.0); float turb = u_2 * u_2; float _e664 = fbm3_(metal::float2((yn * 26.0) - (age * 1.1), (3.7 + seed) + (age * 0.15))); float cx = (tipP.x * (1.0 - metal::smoothstep(0.0, 0.02, yn))) + ((((_e664 * 0.03) * turb) + ((metal::sin(((yn * 62.0) - (age * 2.4)) + seed) * 0.0035) * (0.3 + turb))) * sc); float width = (0.0008 + (yn * 0.085)) * sc; float dx = (in.local.x - cx) / width; dens = (metal::exp(-(dx) * dx) * metal::smoothstep(0.0, 0.004, yn)) * (1.0 - metal::smoothstep(0.6, 1.0, u_2)); float _e712 = dens; float _e723 = fbm3_(metal::float2((in.local.x / sc) * 160.0, (yn * 80.0) - (age * 3.0))); dens = _e712 * metal::mix(1.0, metal::smoothstep(-0.3, 0.5, _e723), turb); float _e730 = dens; dens = metal::clamp((_e730 * r_4.fx.z) * 0.75, 0.0, 1.0); metal::float3 emberLit = metal::float3(1.0, 0.3, 0.06) * ((ember * 1.8) * metal::exp(-(yn) / 0.02)); metal::float3 glowLit = metal::float3(0.33, 1.0, 0.43) * (r_4.extra.y * (0.6 + (0.4 * u_2))); metal::float3 moonLit = metal::float3(0.62, 0.76, 1.0) * r_4.cold.z; float _e777 = dens; smokeRgb = (((metal::float3(0.11, 0.104, 0.098) + emberLit) + glowLit) + moonLit) * _e777; float _e779 = dens; smokeA = _e779 * 0.55; } float win = ((1.0 - metal::smoothstep(0.75, 1.0, metal::abs(in.local.x) / _e57.x)) * metal::smoothstep(0.0, 0.12, (in.local.y - _e57.y) / (_e57.z - _e57.y))) * (1.0 - metal::smoothstep(0.8, 1.0, (in.local.y - _e57.y) / (_e57.z - _e57.y))); float _e818 = fl.misc.x; if (_e818 > 0.5) { metal::float3 _e821 = col; metal::float3 _e826 = encodeHdr(((_e821 + emberCol) * win) * vis, 1.0); return fs_mainOutput { metal::float4(_e826, 0.0) }; } metal::float3 wickCol = metal::float3(0.012, 0.01, 0.009); float wickA = wickBody * vis; float _e834 = smokeA; float a = metal::max(wickA, (_e834 * win) * vis); metal::float3 _e838 = col; metal::float3 _e840 = smokeRgb; metal::float3 rgb = ((((_e838 + emberCol) + _e840) * win) + (wickCol * wickBody)) * vis; return fs_mainOutput { metal::float4(rgb, a) }; }  P�0xQ*‰sÂvs_mainmain¸ struct FlameRec { float4 base; float4 axis; float4 right; float4 shape; float4 fx; float4 extra; float4 cold; }; struct Flames { row_major float4x4 viewProj; float4 eye; float4 misc; FlameRec f[9]; }; struct VsOut { float4 position; float2 local; float4 clip; float idx; float3 world; }; static const float2 _493[6] = { float2(-1.0f, 0.0f), float2(1.0f, 0.0f), float2(1.0f, 1.0f), float2(-1.0f, 0.0f), float2(1.0f, 1.0f), float2(-1.0f, 1.0f) }; static const VsOut _498 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f) }; cbuffer fl : register(b0) { Flames fl_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float2 local; static float4 clip; static float idx; static float3 world; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 local : TEXCOORD0; float4 clip : TEXCOORD1; nointerpolation float idx : TEXCOORD2; float3 world : TEXCOORD3; float4 gl_Position : SV_Position; }; uint naga_div(uint lhs, uint rhs) { return lhs / ((rhs == 0u) ? 1u : rhs); } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float smokeTop(FlameRec r) { return (min(0.01200000010430812835693359375f + (r.fx.w * 0.070000000298023223876953125f), 0.300000011920928955078125f) * step(0.001000000047497451305389404296875f, r.fx.z)) * max(r.cold.y, 1.0f); } float haloRadius(FlameRec r) { return r.extra.z * max(r.axis.w, 0.0199999995529651641845703125f); } float3 extents(FlameRec r) { float _387 = smokeTop(r); float _392 = haloRadius(r) * step(0.001000000047497451305389404296875f, r.shape.z); float _401 = step(0.0005000000237487256526947021484375f, (r.shape.z + r.shape.w) + r.fx.z); return float3(max(max(max(2.599999904632568359375f * r.right.w, 0.00999999977648258209228515625f), max(0.02999999932944774627685546875f + (_387 * 0.25f), _392 * 2.400000095367431640625f)) * _401, 0.01600000075995922088623046875f), -((r.extra.x + 0.008000000379979610443115234375f) + (_392 * 1.60000002384185791015625f)), max(max(max(1.5f * r.axis.w, 0.01400000043213367462158203125f), max(_387, (0.4000000059604644775390625f * r.axis.w) + (_392 * 2.599999904632568359375f))) * _401, 0.012800000607967376708984375f)); } void vert_main() { VsOut _out = _498; uint _500 = naga_div(uint(gl_VertexIndex), 6u); uint _503 = min(_500, 8u); uint _510 = min(naga_mod(uint(gl_VertexIndex), 6u), 5u); float3 _513 = extents(fl_1_m0.f[_503]); float _516 = _493[_510].x * _513.x; float _520 = lerp(_513.y, _513.z, _493[_510].y); float3 _530 = (fl_1_m0.f[_503].base.xyz + (fl_1_m0.f[_503].right.xyz * _516)) + (fl_1_m0.f[_503].axis.xyz * _520); _out.position = mul(float4(_530, 1.0f), fl_1_m0.viewProj); _out.local = float2(_516, _520); _out.clip = _out.position; _out.idx = float(_500); _out.world = _530; gl_Position = _out.position; local = _out.local; clip = _out.clip; idx = _out.idx; world = _out.world; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.local = local; stage_output.clip = clip; stage_output.idx = idx; stage_output.world = world; return stage_output; } fs_mainmainJ@struct FlameRec { float4 base; float4 axis; float4 right; float4 shape; float4 fx; float4 extra; float4 cold; }; struct Flames { row_major float4x4 viewProj; float4 eye; float4 misc; FlameRec f[9]; }; struct VsOut { float4 position; float2 local; float4 clip; float idx; float3 world; }; cbuffer fl : register(b0) { Flames fl_1_m0 : packoffset(c0); }; Texture2D roomDepth : register(t0); SamplerComparisonState roomCmp : register(s0); static float4 gl_FragCoord; static float2 local; static float4 clip; static float idx; static float3 world; static float4 _476; struct SPIRV_Cross_Input { float2 local : TEXCOORD0; float4 clip : TEXCOORD1; nointerpolation float idx : TEXCOORD2; float3 world : TEXCOORD3; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _476 : SV_Target0; }; float smokeTop(FlameRec r) { return (min(0.01200000010430812835693359375f + (r.fx.w * 0.070000000298023223876953125f), 0.300000011920928955078125f) * step(0.001000000047497451305389404296875f, r.fx.z)) * max(r.cold.y, 1.0f); } float haloRadius(FlameRec r) { return r.extra.z * max(r.axis.w, 0.0199999995529651641845703125f); } float3 extents(FlameRec r) { float _391 = smokeTop(r); float _396 = haloRadius(r) * step(0.001000000047497451305389404296875f, r.shape.z); float _405 = step(0.0005000000237487256526947021484375f, (r.shape.z + r.shape.w) + r.fx.z); return float3(max(max(max(2.599999904632568359375f * r.right.w, 0.00999999977648258209228515625f), max(0.02999999932944774627685546875f + (_391 * 0.25f), _396 * 2.400000095367431640625f)) * _405, 0.01600000075995922088623046875f), -((r.extra.x + 0.008000000379979610443115234375f) + (_396 * 1.60000002384185791015625f)), max(max(max(1.5f * r.axis.w, 0.01400000043213367462158203125f), max(_391, (0.4000000059604644775390625f * r.axis.w) + (_396 * 2.599999904632568359375f))) * _405, 0.012800000607967376708984375f)); } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _225 = floor(p); float2 _226 = p - _225; float2 _230 = (_226 * _226) * (float2(3.0f, 3.0f) - (_226 * 2.0f)); int2 _236 = int2(clamp(_225, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_236), hashCell(_236 + int2(1, 0)), _230.x), lerp(hashCell(_236 + int2(0, 1)), hashCell(_236 + int2(1, 1)), _230.x), _230.y) * 2.0f) - 1.0f; } float fbm3(float2 p) { float s = 0.0f; s = vnoise(p) * 0.569999992847442626953125f; s += (vnoise((p * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 3.7000000476837158203125f)) * 0.2899999916553497314453125f); s += (vnoise((p * 4.070000171661376953125f) + float2(5.30000019073486328125f, 29.8999996185302734375f)) * 0.14000000059604644775390625f); return s; } float tear(float2 p) { float _438 = step(0.2599999904632568359375f, p.y); float _445 = max(p.y - 0.2599999904632568359375f, 0.0f) / (1.0f - 0.2599999904632568359375f); return length(float2(p.x * (1.0f + (_438 * ((1.5f * _445) + (((1.89999997615814208984375f * _445) * _445) * _445)))), (p.y - 0.2599999904632568359375f) / lerp(0.300000011920928955078125f, 1.0f - 0.2599999904632568359375f, _438))); } float luma(float3 c) { return dot(c, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)); } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { float dens = 0.0f; bool _594 = false; bool _587 = false; float3 col = float3(0.0f, 0.0f, 0.0f); float3 smokeRgb = float3(0.0f, 0.0f, 0.0f); float2 p = float2(0.0f, 0.0f); bool _582 = false; float smokeA = 0.0f; float3 c = float3(0.0f, 0.0f, 0.0f); bool _585 = false; VsOut _461 = { gl_FragCoord, local, clip, idx, world }; uint _608 = min(uint(clamp(_461.idx + 0.5f, 0.0f, 4294967040.0f)), 8u); float3 _617 = _461.clip.xyz / float3(_461.clip.www); float _635 = (fl_1_m0.misc.y > 0.5f) ? roomDepth.SampleCmpLevelZero(roomCmp, float2((_617.x * 0.5f) + 0.5f, 0.5f - (_617.y * 0.5f)), _617.z) : 1.0f; float _646 = max(fl_1_m0.f[_608].axis.w, 9.9999997473787516355514526367188e-05f); float3 _653 = extents(fl_1_m0.f[_608]); float3 _661 = fl_1_m0.eye.xyz - fl_1_m0.f[_608].base.xyz; float3 _666 = normalize(float3(_661.x, 0.0f, _661.z) + float3(9.9999999747524270787835121154785e-07f, 0.0f, 0.0f)); float3 _670 = float3(_666.z, 0.0f, -_666.x); float3 _672 = _461.world - fl_1_m0.eye.xyz; float _673 = dot(_672, _666); float3 _681 = fl_1_m0.eye.xyz + (_672 * (dot(fl_1_m0.f[_608].base.xyz - fl_1_m0.eye.xyz, _666) / ((abs(_673) < 9.9999999747524270787835121154785e-07f) ? (-9.9999999747524270787835121154785e-07f) : _673))); float2 _687 = float2(dot(_681 - fl_1_m0.f[_608].base.xyz, _670), _681.y - fl_1_m0.f[_608].base.xyz.y); float _688 = fl_1_m0.f[_608].extra.w * 6.283185482025146484375f; float _693 = dot(float3(cos(_688), 0.0f, sin(_688)), _670) * 0.007199999876320362091064453125f; float _699 = clamp((_687.y + fl_1_m0.f[_608].extra.x) / max(fl_1_m0.f[_608].extra.x + 0.0068000000901520252227783203125f, 9.9999997473787516355514526367188e-05f), 0.0f, 1.0f); float _719 = ((1.0f - smoothstep(0.60000002384185791015625f, 1.0f, abs(_687.x - (((_693 * _699) * _699) * _699)) / 0.001300000003539025783538818359375f)) * step((-fl_1_m0.f[_608].extra.x) - 0.0040000001899898052215576171875f, _687.y)) * (1.0f - smoothstep(0.0068000000901520252227783203125f - 0.00039999998989515006542205810546875f, 0.0068000000901520252227783203125f + 0.000600000028498470783233642578125f, _687.y)); float2 _720 = float2(_693, 0.0068000000901520252227783203125f); float2 _721 = _687 - _720; float _722 = dot(_721, _721); float3 _739 = float3(1.0f, 0.23999999463558197021484375f, 0.0350000001490116119384765625f) * ((exp((-_722) / ((0.001300000003539025783538818359375f * 0.001300000003539025783538818359375f) * 2.2000000476837158203125f)) * ((0.5f * smoothstep(0.0500000007450580596923828125f, 0.4000000059604644775390625f, fl_1_m0.f[_608].shape.z)) + (10.0f * fl_1_m0.f[_608].shape.w))) + ((exp((-_722) / 2.0249999579391442239284515380859e-05f) * 0.89999997615814208984375f) * fl_1_m0.f[_608].shape.w)); float2 _744 = float2(_461.local.x / max(fl_1_m0.f[_608].right.w, 9.9999997473787516355514526367188e-05f), _461.local.y / _646); if (fl_1_m0.f[_608].shape.z > 0.001000000047497451305389404296875f) { _582 = abs(_744.x) < 2.599999904632568359375f; } else { _582 = false; } if (_582) { _585 = _744.y > (-0.4000000059604644775390625f); } else { _585 = false; } if (_585) { _587 = _744.y < 1.5f; } else { _587 = false; } if (_587) { float _769 = fl_1_m0.f[_608].base.w * (2.2999999523162841796875f + (2.0f * fl_1_m0.f[_608].shape.y)); float _778 = fbm3(float2(((_744.x * 0.89999997615814208984375f) + 1.2999999523162841796875f) + fl_1_m0.f[_608].extra.w, (_744.y * 1.7000000476837158203125f) - _769)); float _788 = vnoise(float2((_744.x * 1.89999997615814208984375f) + 7.099999904632568359375f, ((_744.y * 3.2999999523162841796875f) - (_769 * 1.60000002384185791015625f)) + fl_1_m0.f[_608].extra.w)); float _790 = smoothstep(0.07999999821186065673828125f, 1.0f, _744.y); p = float2(((_744.x - ((fl_1_m0.f[_608].fx.x * _744.y) * _744.y)) - ((0.07999999821186065673828125f * sin(fl_1_m0.f[_608].fx.y)) * _790)) - (((_778 * 0.800000011920928955078125f) + (_788 * 0.300000011920928955078125f)) * (((0.2199999988079071044921875f + (1.10000002384185791015625f * fl_1_m0.f[_608].shape.y)) * _790) * _790)), _744.y + ((_788 * 0.070000000298023223876953125f) * _790)); p.y *= (1.0f + (((0.070000000298023223876953125f + (fl_1_m0.f[_608].shape.y * 0.5f)) * max(_778, 0.0f)) * _790)); float _830 = tear(p); float _833 = clamp(p.y, 0.0f, 1.0f); float _835 = 1.0f - smoothstep(0.62000000476837158203125f, 1.03999996185302734375f, _830); float _874 = 1.0f - smoothstep(0.300000011920928955078125f, 1.0f, length(float2(p.x * 2.5f, (p.y - 0.070000000298023223876953125f) / 0.1500000059604644775390625f))); float _889 = smoothstep(0.449999988079071044921875f, 1.0f, _833); float _892 = smoothstep(0.5f, 0.949999988079071044921875f, _833); c = ((lerp(float3(1.0f, 0.4600000083446502685546875f, 0.10999999940395355224609375f), float3(0.920000016689300537109375f, 0.23999999463558197021484375f, 0.0500000007450580596923828125f), float3(_889, _889, _889)) * (_835 * (0.75f - (0.300000011920928955078125f * (smoothstep(0.550000011920928955078125f, 0.920000016689300537109375f, _830) * _835))))) + (lerp(float3(1.0f, 0.7400000095367431640625f, 0.319999992847442626953125f), float3(1.0f, 0.560000002384185791015625f, 0.180000007152557373046875f), float3(_892, _892, _892)) * ((((1.0f - smoothstep(0.20000000298023223876953125f, 0.86000001430511474609375f, _830)) * smoothstep(0.039999999105930328369140625f, 0.23999999463558197021484375f, p.y)) * (1.0f - smoothstep(0.550000011920928955078125f, 0.980000019073486328125f, p.y))) * 1.5499999523162841796875f))) + (float3(1.0f, 0.89999997615814208984375f, 0.699999988079071044921875f) * (((1.0f - smoothstep(0.0500000007450580596923828125f, 1.0f, length(float2(p.x * 2.2999999523162841796875f, (p.y - 0.36000001430511474609375f) / 0.2599999904632568359375f)))) * smoothstep(0.100000001490116119384765625f, 0.23999999463558197021484375f, p.y)) * 3.400000095367431640625f)); c = (c * (1.0f - (0.819999992847442626953125f * _874))) + ((float3(0.2199999988079071044921875f, 0.070000000298023223876953125f, 0.014999999664723873138427734375f) * _874) * _835); c += (float3(0.100000001490116119384765625f, 0.2599999904632568359375f, 1.0f) * (((((1.0f - smoothstep(0.0f, 0.23999999463558197021484375f, p.y)) * smoothstep(0.25f, 0.949999988079071044921875f, _830)) * _835) + (((1.0f - smoothstep(-0.0599999986588954925537109375f, 0.119999997317790985107421875f, p.y)) * _835) * 0.3499999940395355224609375f)) * 0.60000002384185791015625f)); float _918 = clamp(fl_1_m0.f[_608].cold.x, 0.0f, 1.0f); if (_918 > 0.001000000047497451305389404296875f) { float _923 = 0.1599999964237213134765625f + (0.36000001430511474609375f * _918); float _945 = (smoothstep(0.0f, 1.0f, _918) * (1.0f - smoothstep(0.25f, 1.0f, length(float2(p.x * (2.2000000476837158203125f - (0.5f * smoothstep(0.0f, _923, p.y))), (p.y - (0.5f * _923)) / ((0.550000011920928955078125f * _923) + 0.0500000007450580596923828125f)))))) * _835; float _953 = _945 * 0.89999997615814208984375f; c = lerp(c, float3(0.2199999988079071044921875f, 0.4699999988079071044921875f, 1.0f) * (0.37999999523162841796875f + (0.449999988079071044921875f * min(luma(c), 1.60000002384185791015625f))), float3(_953, _953, _953)); c += (float3(0.100000001490116119384765625f, 0.2800000011920928955078125f, 1.0f) * (((((1.0f - smoothstep(0.0f, 0.23999999463558197021484375f + (0.20000000298023223876953125f * _918), p.y)) * smoothstep(0.300000011920928955078125f, 0.949999988079071044921875f, _830)) * _835) * 0.449999988079071044921875f) * _918)); float _971 = luma(c); float _977 = (0.1599999964237213134765625f * _918) * (1.0f - _945); c = lerp(c, float3(_971, _971, _971) * float3(0.949999988079071044921875f, 0.9700000286102294921875f, 1.059999942779541015625f), float3(_977, _977, _977)) * (1.0f - (0.07999999821186065673828125f * _918)); } float _983 = smoothstep(0.0500000007450580596923828125f, 0.449999988079071044921875f, fl_1_m0.f[_608].shape.z); c = lerp((float3(0.20000000298023223876953125f, 0.3499999940395355224609375f, 1.0f) * luma(c)) * 0.60000002384185791015625f, c, float3(_983, _983, _983)); col = c * fl_1_m0.f[_608].shape.x; } float _995 = haloRadius(fl_1_m0.f[_608]); if (_995 > 0.0f) { _594 = fl_1_m0.f[_608].shape.z > 0.001000000047497451305389404296875f; } else { _594 = false; } if (_594) { float2 _1006 = _461.local - float2(0.0f, 0.37999999523162841796875f * _646); float _1009 = dot(_1006, _1006) / (_995 * _995); col += (float3(1.0f, 0.550000011920928955078125f, 0.2199999988079071044921875f) * (((max((1.0f / ((1.0f + _1009) * (1.0f + _1009))) - 0.039999999105930328369140625f, 0.0f) * 0.10999999940395355224609375f) * fl_1_m0.f[_608].shape.x) * smoothstep(0.0f, 0.300000011920928955078125f, fl_1_m0.f[_608].shape.z))); } if (fl_1_m0.f[_608].fx.z > 0.001000000047497451305389404296875f) { float _1035 = max(fl_1_m0.f[_608].cold.y, 1.0f); float _1037 = max(_461.local.y, 0.0f); float _1038 = _1037 / _1035; float _1041 = clamp(_1037 / max(smokeTop(fl_1_m0.f[_608]), 9.9999997473787516355514526367188e-05f), 0.0f, 1.0f); float _1042 = _1041 * _1041; float _1073 = (_461.local.x - ((_720.x * (1.0f - smoothstep(0.0f, 0.0199999995529651641845703125f, _1038))) + ((((fbm3(float2((_1038 * 26.0f) - (fl_1_m0.f[_608].fx.w * 1.10000002384185791015625f), (3.7000000476837158203125f + fl_1_m0.f[_608].extra.w) + (fl_1_m0.f[_608].fx.w * 0.1500000059604644775390625f))) * 0.02999999932944774627685546875f) * _1042) + ((sin(((_1038 * 62.0f) - (fl_1_m0.f[_608].fx.w * 2.400000095367431640625f)) + fl_1_m0.f[_608].extra.w) * 0.0035000001080334186553955078125f) * (0.300000011920928955078125f + _1042))) * _1035))) / ((0.0007999999797903001308441162109375f + (_1038 * 0.085000000894069671630859375f)) * _1035); dens = (exp((-_1073) * _1073) * smoothstep(0.0f, 0.0040000001899898052215576171875f, _1038)) * (1.0f - smoothstep(0.60000002384185791015625f, 1.0f, _1041)); dens *= lerp(1.0f, smoothstep(-0.300000011920928955078125f, 0.5f, fbm3(float2((_461.local.x / _1035) * 160.0f, (_1038 * 80.0f) - (fl_1_m0.f[_608].fx.w * 3.0f)))), _1042); dens = clamp((dens * fl_1_m0.f[_608].fx.z) * 0.75f, 0.0f, 1.0f); smokeRgb = (((float3(0.10999999940395355224609375f, 0.1040000021457672119140625f, 0.097999997437000274658203125f) + (float3(1.0f, 0.300000011920928955078125f, 0.0599999986588954925537109375f) * ((fl_1_m0.f[_608].shape.w * 1.7999999523162841796875f) * exp((-_1038) / 0.0199999995529651641845703125f)))) + (float3(0.3300000131130218505859375f, 1.0f, 0.430000007152557373046875f) * (fl_1_m0.f[_608].extra.y * (0.60000002384185791015625f + (0.4000000059604644775390625f * _1041))))) + (float3(0.62000000476837158203125f, 0.7599999904632568359375f, 1.0f) * fl_1_m0.f[_608].cold.z)) * dens; smokeA = dens * 0.550000011920928955078125f; } float _1146 = ((1.0f - smoothstep(0.75f, 1.0f, abs(_461.local.x) / _653.x)) * smoothstep(0.0f, 0.119999997317790985107421875f, (_461.local.y - _653.y) / (_653.z - _653.y))) * (1.0f - smoothstep(0.800000011920928955078125f, 1.0f, (_461.local.y - _653.y) / (_653.z - _653.y))); if (fl_1_m0.misc.x > 0.5f) { _476 = float4(encodeHdr(((col + _739) * _1146) * _635, 1.0f), 0.0f); return; } _476 = float4(((((col + _739) + smokeRgb) * _1146) + (float3(0.01200000010430812835693359375f, 0.00999999977648258209228515625f, 0.0089999996125698089599609375f) * _719)) * _635, max(_719 * _635, (smokeA * _1146) * _635)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; local = stage_input.local; clip = stage_input.clip; idx = stage_input.idx; world = stage_input.world; frag_main(); SPIRV_Cross_Output stage_output; stage_output._476 = _476; return stage_output; }  P�0xQ*‰sÂHSLTFlameRecpbaseÿÿÿÿaxisÿÿÿÿright ÿÿÿÿshape0ÿÿÿÿfx@ÿÿÿÿextraPÿÿÿÿcold`ÿÿÿÿFlamesPviewProjÿÿÿÿeye@ÿÿÿÿmiscPÿÿÿÿf` pfl_blockPfl roomDepthÿÿÿÿroomCmpÿÿÿÿvs_mainvs_mainfs_mainfs_main¸g#ñ GLSL.std.450 èvs_mainÜßáãäæ Cfs_main47:<?BCH #H #H # H #0H #@H #PH #`G pH#HHH#@H#PH#`H#H#H# H#0H#@GG"G!GH#G"G!G"G!GÜ *Gß GáGãGäGäGæG4 G7G:G<G<G?GB       +     + +€@+Ãdª:+‰ÒÞ;+úíë; ; ;  ; !$+%,&%%%+'‘ƒž=+(®Ga=,)(((+*n§r?++š™@,,++++-æ®%=,.---5+;R¸NA+<UUÕ>,=<<<+>= ‡?+?.M;,@???!L+MгY>+NY7?+O˜Ý“=,PMNO!W+X?+Y€>+Z€?,[ZZZ+\«ªª>,]\\\!s+t f+u_ón<,vuu+w,xww z.{ €+�+„!«+¬€,­¬¬+®+¯€3!» !Ë +ÌCq‰=+Í�E¿;, ÎÌÍ+Ï‚îSB+Ø@@, ÙØØ+Ú@+Û+Ü,ÝÛÜ,ÞÜÛ,ßÛÛ+çÏ, èçç+éÿÿÿN, êéé!ÿ +À@, ZZ+4…ë?+5…ë@+6Í̈A+7ÍÌl@, 867+9áz”>+:q=‚@+;š™©@+<33ïA, =;<+>)\> @.A!U +V)\�=+W¦›D<+Xš™™>+Yoƒ:+k ×£+�·Q<+²¸…>+³33ó?!Í Ý;ÝÜ à ;àß â ;âá;àã å;åä ç;çæ!é ê+쀿, íì%, îZ%, ïZZ, ðìZ, ñíîïíïð ó õ.ö ù ú +ü  +   +" &+' 5 ;54 8 ;87;5: =;=< @;@?;àB+G·Ñ8+H½7†5,IH%%+J½7†µ+KÛÉ@+Lš™?+Moƒ;+N·Ñ9+ORI:+PÍÌ @+Q‹Þ©7+R�Âu>+S)\=,TZRS+UÍÌL=+V A+Wfff?*X+YÍÌ̾+Z33@+[ff¦?+\š™Ù?+]33ã@+^33S@+_ ×£=+`ÍÌŒ?+a®Ga>+bÍÌL?+cR¸?+d¸…?+eÍÌ ?+f…k?+gÍÌL>+hö(\?+i ×#=+jHáz?+kìQ¸>+lÍÌÌ=+m @+nš™>+o33s?+p�Âu½+q�Âõ=+r33³>+s…ë>+t®Gá=,uZst,vfRU+wffæ>+x¤p=?+y ×£>,zZxy+{)\?+|ìQ8>,}Z{|+~333?,ZW~+€@?+�ffÆ?+‚š™Y@+ƒ…ëQ?+„�Âu<,…aV„,†l²Z+‡ ×#>+ˆ×£ð>,‰aˆZ+Š\�Â>+‹)\�>,Œl‹Z+�ìQx?+Ž®‡?,�o�Ž,�grZ,‘Zea+’ÐA+“xB+”B`e;+•{®=+–·Q:+— C+˜ B+™š™™¾+š�Âu=,›ZXš+œffæ?+�Ãõ¨>+žö(Ü>,Ÿ�Zž+ \�B?,¡c Z+¢ôýÔ=+£9´È=,¤t¢£+¥¼t<,¦Wy¥ ©.ª.¬.®. °.².´.¸+¼ÿÿOÐ Ó Ô6#$7"ø!ù/ø/ 0("&Ž10'�20)Ž32* 43,¼560.©7614þ786:$79ø8ùAøA B(9&ŽCB; DB=ŽED>ƒFE)¼5GB@©HGCFþH86KL7JøIùQøQ”RJPþR86VW7T7UøSù^ø^º_UX÷`ú_a`øaŽbTY c+b&[ dc]þdø`þT86hW7f7gøeùiøiºjgX÷kújlkøl…mff…nmfŽonþoøkþf86rs7qøp;zy{ù|ø|P~tt„}q~€}v>yA€‚y�=ƒ‚A€…y„=†…„‡†t€ˆƒ‡A€‰y�>‰ˆA€Šy„=‹ŠA€Œy�=�Œ„Ž�t€�‹ŽA€�y„>��=‘y=’y“’xÆ”‘“>y”A€•y�=–•A€—y„=˜—„™˜t€š–™A€›y�>›šA€œy„=�œA€žy�=Ÿž„ Ÿt€¡� A€¢y„>¢¡=£y=¤yÂ¥¤xƦ£¥>y¦=§yþ§86ª«7©ø¨ù°ø°€±©­|²±9³r²Q´³Âµ´®p¶µ…·¶¯þ·86 º»7¹ø¸ù¼ø¼€½¹­|¾½9¿r¾QÀ¿ÂÁÀ®pÂÁQÿÂÄîpÅÄP ÆÂÅŽ ÇÆ¯þÇ86ÊË7 ÉøÈùÐøДÑÉÎ Ò Ñ…ÓÏÒ Ô ÓþÔ86×Ë7 ÖøÕùàøà  áÖƒ âÖá… ãâ⎠äâÚƒ åÙä… æãå  ë+áèênìë9íªì€îìÝ9ïªî€ðìÞ9ñªð€òìß9óªòQôæ õ.íïôQöæ ÷.ñóöQøæ ù.õ÷ø…úùÚƒûúZþû86þÿ7 ýøüùø  ýƒ ý… Ž Úƒ Ù… Ž ƒ …     +èên  9ª € Ý9ª€ Þ9ª€ ß9ªƒƒƒƒ�Q…�Q…�Q …! Q"…#!"�$#Q%…&%�'&Q(…)(�*)P +'*… , +…-$Úƒ.-ZŽ /,ÚP0./þ0863Ë7 2ø1;@?AùBøB9C×2…DC4>?D=E?Ž F25� GF89H×G…IH9�JEI>?J=K?Ž L2:� ML=9N×M…ON>�PKO>?P=Q?þQ86TU7 SøRùZøZQ [SQ\[…]\V�^W] _%^XQ `SQa` b0Ya…c_bQ dSQed f(eZ…gcfþg86jU7 iøhùlølQ miQnmQ oiQpo q(pk…rnqþr86uv7 tøsù‚ø‚Q ƒtQ„ƒQ …tQ†…9‡Tt9ˆjtQ ‰tQЉ ‹0YŠ…Œˆ‹Q �tQŽ�Q �tQ���‘Ž�Q ’tQ“’�”‘“ •0w”…–x† —(–y…˜‡Y�™z˜…šŒ+ ›(™š œ(—›…�œ• ž(�{Q ŸtQ Ÿ�¡ |…¢Œ}�£¡¢¤£…¥~„ ¦(¥…§€„…¨Œx�©§¨ ª(‡© «(¦ª…¬«• ­(¬�P®ž¤­þ®86±Ë7 °ø¯ù´ø´Qµ° ¶0²µƒ·Z² ¸.X·¶Q¹°ƒº¹² »(º%ƒ¼Z²ˆ½»¼…¾~½…¿³½…À¿½…ÁÀ½�¾Á…öÂ�ÄZÃQŰ…ÆÅÄQǰƒÈDzˆÉȸP ÊÆÉ ËBÊþË86ÌÍ7Î7ÏøÐªÑÏ�©ÒфφÓÎÒþÓ86ÔÍ7Õ7Öø×ªØÖ�©Ù؄։ÚÕÙþÚ86èéøÛ;óòñ;õôö=ÞÜAêë�ù÷ø÷9øÌÞ û&ø®Aúýëüû= þý9ÿÔÞ &ÿAò= 9uþQQ…Q Q Q   .   Q þO  Q þOŽ�Q þOŽ �Aë�= P Z‘ Aô�>P  Aô„>A ô�= ! A#ô">#!p$øA@%ôü>%$A&(ô'>(=)ôQ *)>ß*Aå+ß„=,+-,>+-Q .)>á.Q /)>ã/Q0)>ä0Q1)>æ1ý86Céø2;@·¸;©³´;©­®;&§&;&µ&;¯°;©¨ª;@¶%;&±²;©«¬= 64= 97= ;:=><=A?P369;>AAêD�=E=Fù¹ø¹Qº3�»ºX ½+»%¼m¾½ ¿&¾®AúÀDü¿= ÁÀQ Â3OÃÂÂQ Ä3QÅÄPÆÅÅňÇÃÆQÈÇ…ÉÈX�ÊÉXQËÇ…ÌËXƒÍXÌP ÎÊÍQÏÇVÐÑEFZÒÑÎÏ%AÔÕD"„=ÖÕº×ÖX©Ø×ÒZQ ÙÁQÚÙQ ÛÁQÜÛQ ÝÁQÞÝQ ßÁQàßQ áÁQâá ã(âGQ äÁQåä æ(åGQ ç3Q èÁQéè9êuÁQ ëÁQìëQ íÁOîííAÓïD„= ðïOñððƒòñîQóòQôòPõó%ô�öõI ÷EöQø÷Qù÷úùPûø%úQü3ƒýüñ”þý÷ƒÿîñ”ÿ÷ þ¸H©JþˆŽý�ñƒî”ûQ Q îƒ   P  … éK    P%”û…Q �ì�ì (Gˆ +%ZQ ………ƒ ˆ  1LZƒ!Z "ìƒ#"MQ$  %0#$…&!%ƒ'N�(OQ)  *1'()ƒ+Z*…,&+P -ƒ . -”/..0/…1…21Pˆ302 435/ˆ65Q 76 81U€Þ…9X8…:Và�;9:…<4;…=7W…>=à�?<>Ž@T?QAçˆBAæQCçˆDCãP EBDºFÞY÷GúFHIøHQJE KJ¸LKx>¨LùGøI>¨XùGøG=M¨÷NúMOPøOQQEºRQY>«RùNøP>«XùNøN=S«÷TúSUVøUQWE¸XW~>­XùTøV>­XùTøT=Y­÷ZúY[Zø[…\ÚÜ�]Z\…^Ú]Q_E…`_W�a`[�baéQcE…dc\ƒed^P fbe9g3fQhE…ih³�ji]QkE…lk^…m^}ƒnlm�onéP pjo9q×pQrE s1_ZrQ tÁQutQvE…wuvQxE…ywxQ zÁQ{z | {…}_|…~}s…`Ü�€a…�€s…‚�sQƒEƒ„ƒyƒ…„~…†gb…‡qX�ˆ†‡…‰ˆ‚ƒŠ…‰Q‹E…ŒqV…�Œs�Ž‹�P �ŠŽ>¯�A@�¯„=‘�…’ÜX�“V’ ”(g%…•“”…–•s�—Z–…˜‘—A@™¯„>™˜= š¯9›±šA@œ¯„=�œ ž+�%Z Ÿ1cd›ƒ ZŸ ¡1ef›…¢¡  £1gh›ƒ¤Z£A@¥¯„=¦¥ §1iR¦…¨¤§A@©¯„=ª© «1ejªƒ¬Z«…­¨¬A@®¯�=¯®…°¯ZA@±¯„=²±ƒ³²kˆ´³²P µ°´ ¶Bµ ·1UZ¶ƒ¸Z·A@¹¯„=º¹ »1lRº…¼¸»A@½¯�=¾½…¿¾mA@À¯„=ÁÀƒÂÁVˆÃÂnP Ŀà ÅBÄ Æ1XZŃÇZÆA@ȯ„=ÉÈ Ê1%RɃËZÊ Ì1Yo›…ÍËÌ…ÎÍ A@ϯ„=ÐÏ Ñ1pqЃÒZÑ…ÓÒ …ÔÓr�ÕÎÔ Ö1wZžPØÖÖÖ ×.uvØ Ù1XožPÛÙÙÙ Ú.z}Û…ÜX¢ƒÝ€Ü…Þ ÝŽß×Þ…à­�ŽáÚà�âßá…㼂Žäã�åâä>±å=æ±…çƒÇƒèZçŽéæèŽê…ÇŽëê �ìéë>±ì=í±…îÕLŽï†î�ðíï>±ðQ ñÁQòñ ó+ò%ZºôóY÷õúôöõøö…÷kó�ø‡÷A@ù¯�=úùA@û¯„=üû ý1%øü…þXýƒÿPþ…úÿA@¯„=…Xøƒ…eø�UˆP   B  1%Zó  1YZ ƒ Z …   …  =±9K %}…w�ŠŽ‰=±…WP .>±…gó�RA@¯„= 1%ƒZ 1Xo›… …!  ="±…#!w…$#óŽ%Œ$�&"%>±&='±9(K'=)±P*(((…+*�…,‡óƒ-Z….,-P0... /.)+0…1_óƒ2Z1Ž3/2>±3ùõøõ 41UwÞ=5±96K5Ž7�6Ž87L=9±P;444 :.89;>±:=<±Q =ÁQ>=Ž?<>>§?ùZøZ9@jÁºA@%÷BúACDøCºEÞY>³EùBøD>³XùBøB=F³÷GúFHGøH…IŠãP J%Iƒ KçJ”LKK…M@@ˆNLM�OZN�PZN…QOPˆRZQƒSRi=T§ U(S%…VUtQ WÁQXW…YVX Z1%XÞ…[YZŽ\‘[�]T\>§]ùGøG9^TÁQ _ÁQ`_ºa`Y÷búacbøcQ dÁQedQ fÁQgf h(gZQiç j(i%ˆkjh l(^Gˆmjl n+m%Z…onn…pk’…qe`ƒrpq�s7é…ten�ustP vru9w3vQx- y1%kkƒzZy…{xz…|wz…}|o…~k“…e+ƒ€~��€é ‚ �…ƒ‚”�„Xo……ƒ„�†}……‡†h�ˆ{‡…‰k•�Š–‰…‹ŠhQŒçƒ�ŒˆˆŽ�‹�Ž…��Ž ‘� ’1%Mk…“‘’ ”1LZnƒ•Z”…–“•>·–=—·Q˜çˆ™˜h…š™—…›k˜…œe؃�›œP žš�9Ÿ3ž  1™XŸ ¡.Z o…¢—¡>·¢=£·Q ¤ÁQ¥¤…¦£¥…§¦€ ¨+§%Z>·¨…©àœªkˆ«ªk ¬«…­©¬Ž®›­Q ¯ÁQ°¯…±€n�²L±…³°²Ž´Ÿ³Q µÁQ¶µŽ·¡¶�¸¤®�¹¸´�º¹·=»·Ž¼º»>µ¼=½·…¾½e>¶¾ùbøbQ¿ç À¿QÁêˆÂÀÁ Ã1€ZƒÄZÃQÅçQÆêƒÇÅÆQÈêQÉêƒÊÈɈËÇÊ Ì1%qË…ÍÄÌQÎçQÏêƒÐÎÏQÑêQÒêƒÓÑÒˆÔÐÓ Õ1bZÔƒÖZÕ…×ÍÖAÔØD"�=ÙØºÚÙX÷ÛúÚÜÛøÜ=ݧ�ÞÝ@ŽßÞ׎àߨ9áVàZP âá%>BâýøÛ…ã,Ø=ä¶…åä×…æåØ ç(ãæ=è§�éè@=êµ�ëéêŽìë׎í¦,�îìíŽïîØP ðïç>Bðý8 Ph\#ÂG ÊËshaders/ghostfogjÔ¢³ BTSR è�è�K3‘ÐÍ _KN_Q_3„_'­ « Kö ÷m ízK8{ÆþÓØ ÑXKvs_mainvs_mainfs_mainfs_main½�struct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct Fog { invViewProj: mat4x4, eye: vec4, boxMin: vec4, boxMax: vec4, candle: vec4, candleColor: vec4, hall: vec4, hallColor: vec4, eyeL: vec4, eyeR: vec4, eyeColor: vec4, env: vec4, core0_: vec4, core1_: vec4, core2_: vec4, core3_: vec4, bank0_: vec4, bank1_: vec4, surge: vec4, gather: vec4, fogD: vec4, sleeveA: vec4, sleeveB: vec4, pour: vec4, pour2_: vec4, puff: vec4, desk: vec4, room: vec4, door: vec4, ambient: vec4, look: vec4, inhale: vec4, inhale2_: vec4, door0_: vec4, door1_: vec4, } struct Core { tau: f32, t: f32, col: vec3, tShadow: f32, } const HDR_RANGE: f32 = 4f; const HAZE_START: f32 = 2.8f; @group(0) @binding(0) var fog: Fog; @group(0) @binding(1) var noiseTex: texture_2d; @group(0) @binding(2) var noiseSamp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo_2 = (x * 0.07739938f); let hi_2 = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi_2, lo_2, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_3 = (x_1 * 12.92f); let hi_3 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_3, lo_3, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i_1: vec2) -> f32 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_2: vec2) -> vec2 { let _e5 = hash2u(vec2((i_2 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_4 = floor(p_1); let f_1 = (p_1 - i_4); let u = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let ii = vec2(i_4); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_5 = floor(p_2); let f_2 = (p_2 - i_5); let u_1 = ((f_2 * f_2) * (vec2(3f) - (2f * f_2))); let du = ((6f * f_2) * (vec2(1f) - f_2)); let ii_1 = vec2(i_5); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_2 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g_2 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn pointGlow(eye: vec3, dir: vec3, dist: f32, light: vec3, s2_: f32) -> f32 { let toL = (light - eye); let t0_ = dot(toL, dir); let h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0f); let k_1 = sqrt((h2_ + max(s2_, 0.000001f))); return ((atan(((dist - t0_) / k_1)) + atan((t0_ / k_1))) / k_1); } fn atmosphere(col_1: vec3, world: vec3, eye_1: vec3, light_1: vec3, haze: vec4, glow: vec4) -> vec3 { let dv = (world - eye_1); let dist_2 = length(dv); let dir_6 = (dv / vec3(max(dist_2, 0.00001f))); let T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0f))); let _e21 = pointGlow(eye_1, dir_6, dist_2, light_1, glow.w); return (((col_1 * T_1) + (haze.xyz * (1f - T_1))) + (glow.xyz * _e21)); } fn windowMask(q: vec2, win: vec4, win2_: vec4, soft: f32, lattice: f32) -> f32 { var local_4: bool; var local_5: bool; var local_6: bool; var bars: f32; let x0_ = win.x; let x1_ = win.y; let sill = win.z; let spring = win.w; let r = ((x1_ - x0_) * 0.5f); let cx = (x0_ + r); let s_2 = max(soft, 0.0001f); if !((q.x < (x0_ - s_2))) { local_4 = (q.x > (x1_ + s_2)); } else { local_4 = true; } let _e25 = local_4; if !(_e25) { local_5 = (q.y < (sill - s_2)); } else { local_5 = true; } let _e33 = local_5; if !(_e33) { local_6 = (q.y > ((spring + r) + s_2)); } else { local_6 = true; } let _e42 = local_6; if _e42 { return 0f; } let inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); let dArch = (r - length((q - vec2(cx, spring)))); let inArch = smoothstep(-(s_2), s_2, dArch); let open = (inRect * select(inArch, 1f, (q.y < spring))); let bw = win2_.y; bars = (1f - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); let ty = ((q.y - sill) / win2_.z); let tf = (abs((fract((ty + 0.5f)) - 0.5f)) * win2_.z); let _e89 = bars; bars = max(_e89, ((1f - smoothstep(((bw * 0.8f) - s_2), ((bw * 0.8f) + s_2), tf)) * step(q.y, spring))); let a_2 = atan2((q.y - spring), (q.x - cx)); let spoke = ((abs((fract(((a_2 / 0.7853982f) + 0.5f)) - 0.5f)) * 0.7853982f) * length((q - vec2(cx, spring)))); let _e122 = bars; bars = max(_e122, ((1f - smoothstep(((bw * 0.7f) - s_2), ((bw * 0.7f) + s_2), spoke)) * step(spring, q.y))); if (lattice > 0.5f) { let fade = (1f - smoothstep(0.02f, 0.09f, s_2)); let dq = (q * 2.6f); let l1_ = (abs((fract((((dq.x + dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let l2_ = (abs((fract((((dq.x - dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let _e172 = bars; bars = max(_e172, (((1f - smoothstep((0.012f - s_2), (0.012f + s_2), min(l1_, l2_))) * fade) * 0.85f)); } let _e183 = bars; return (open * (1f - _e183)); } fn backProject(p_4: vec3, d: vec3, planeZ: f32) -> vec3 { let s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001f)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } fn moonPatch(p_5: vec3, d_1: vec3, win_1: vec4, win2_1: vec4) -> f32 { if (p_5.z < win2_1.x) { return 0f; } let _e9 = backProject(p_5, d_1, win2_1.x); let _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006f + (_e9.z * 0.011f)), 1f); return _e17; } fn hgPhase(cosT: f32, g: f32) -> f32 { let gg = (g * g); return ((1f - gg) / pow(max(((1f + gg) - ((2f * g) * cosT)), 0.0001f), 1.5f)); } fn shaftScatter(eye_2: vec3, dir_1: vec3, dist_1: f32, d_2: vec3, win_2: vec4, win2_2: vec4, jitter: f32, top: f32) -> f32 { var ta: f32 = 0f; var tb: f32; var sum: f32 = 0f; var i_3: i32 = 0i; let zw = win2_2.x; let invdz = (1f / max(d_2.z, 0.0001f)); let qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); let qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if (dir_1.z < 0f) { let _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if (dir_1.y < 0f) { let _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } let lo_4 = vec2(win_2.x, win_2.z); let hi_4 = vec2(win_2.y, top); let inv = (vec2(1f) / select(qd, vec2(0.000001f), (abs(qd) < vec2(0.000001f)))); let t1_ = ((lo_4 - qa) * inv); let t2_ = ((hi_4 - qa) * inv); let tmin = min(t1_, t2_); let tmax = max(t1_, t2_); let _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); let _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); let _e80 = tb; let _e81 = ta; if (_e80 <= _e81) { return 0f; } let _e84 = tb; let _e85 = ta; let dt = ((_e84 - _e85) / 5f); loop { let _e93 = i_3; if (_e93 < 5i) { } else { break; } { let _e96 = ta; let _e97 = i_3; let t_2 = (_e96 + ((f32(_e97) + jitter) * dt)); let q_1 = (qa + (t_2 * qd)); let s_4 = (((eye_2.z + (t_2 * dir_1.z)) - zw) * invdz); let _e110 = sum; let _e116 = windowMask(q_1, win_2, win2_2, (0.008f + (s_4 * 0.003f)), 0f); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035f)))); } continuing { let _e123 = i_3; i_3 = (_e123 + 1i); } } let _e126 = ta; let _e127 = tb; let qm = (qa + (((_e126 + _e127) * 0.5f) * qd)); let _e141 = vnoise(((qm * vec2(3.1f, 0.9f)) + vec2(7.1f, 3.3f))); let _e146 = vnoise((qm * vec2(9f, 2.2f))); let dust = (0.45f + (0.55f * smoothstep(-0.6f, 0.8f, (_e141 + (0.5f * _e146))))); let _e157 = sum; return ((_e157 * dt) * dust); } fn noise2_(p_6: vec3) -> vec2 { var f: vec3; let i_6 = floor(p_6); f = (p_6 - i_6); let _e4 = f; let _e5 = f; let _e7 = f; f = ((_e4 * _e5) * (vec3(3f) - (2f * _e7))); let _e21 = f; let uv = ((((i_6.xy + (vec2(37f, 17f) * i_6.z)) + _e21.xy) + vec2(0.5f)) * 0.00390625f); let t_3 = textureSampleLevel(noiseTex, noiseSamp, uv, 0f); let _e36 = f.z; let _e41 = f.z; return vec2(mix(t_3.x, t_3.y, _e36), mix(t_3.z, t_3.w, _e41)); } fn segPoint(p_7: vec3, a: vec3, b: vec3) -> vec2 { let pa = (p_7 - a); let ba = (b - a); let h = clamp((dot(pa, ba) / max(dot(ba, ba), 0.000001f)), 0f, 1f); return vec2(length((pa - (ba * h))), h); } fn segSeg(p0_: vec3, p1_: vec3, q0_: vec3, q1_: vec3) -> vec2 { var s_1: f32 = 0f; var t: f32; let d1_ = (p1_ - p0_); let d2_ = (q1_ - q0_); let r_1 = (p0_ - q0_); let a_3 = dot(d1_, d1_); let e_1 = max(dot(d2_, d2_), 0.000001f); let f_3 = dot(d2_, r_1); let c_6 = dot(d1_, r_1); let b_2 = dot(d1_, d2_); let den = ((a_3 * e_1) - (b_2 * b_2)); if (den > 0.000001f) { s_1 = clamp((((b_2 * f_3) - (c_6 * e_1)) / den), 0f, 1f); } let _e28 = s_1; t = (((b_2 * _e28) + f_3) / e_1); let _e33 = t; if (_e33 < 0f) { t = 0f; s_1 = clamp((-(c_6) / max(a_3, 0.000001f)), 0f, 1f); } else { let _e44 = t; if (_e44 > 1f) { t = 1f; s_1 = clamp(((b_2 - c_6) / max(a_3, 0.000001f)), 0f, 1f); } } let _e55 = s_1; let _e59 = t; let _e63 = t; return vec2(length((((p0_ + (d1_ * _e55)) - q0_) - (d2_ * _e59))), _e63); } fn softBox(p_8: vec3, lo: vec3, hi: vec3, soft_1: f32) -> f32 { let q_2 = max(max((lo - p_8), (p_8 - hi)), vec3(0f)); return (1f - smoothstep(0f, soft_1, length(q_2))); } fn blob(p_9: vec3, c_4: vec4, dens: f32, squash: f32) -> f32 { var v_1: vec3; if (dens <= 0.001f) { return 0f; } v_1 = (p_9 - c_4.xyz); let _e12 = v_1.y; v_1.y = (_e12 / max(squash, 0.05f)); let _e16 = v_1; let dist_3 = (length(_e16) / max(c_4.w, 0.001f)); return (dens * (1f - smoothstep(0.35f, 1f, dist_3))); } fn doorSpace(p_10: vec3) -> vec3 { let _e4 = fog.door0_; let r_2 = (p_10.xz - _e4.xy); let _e10 = fog.door1_.z; let _e13 = fog.door0_; let _e21 = fog.door1_.w; let _e24 = fog.door1_; return vec3((_e10 + dot(r_2, _e13.zw)), p_10.y, (_e21 + dot(r_2, _e24.xy))); } fn doorVec(v_2: vec3) -> vec3 { let _e4 = fog.door0_; let _e11 = fog.door1_; return vec3(dot(v_2.xz, _e4.zw), v_2.y, dot(v_2.xz, _e11.xy)); } fn shape(p_11: vec3) -> vec2 { var d_3: f32 = 0f; var k: f32 = 0f; let _e5 = doorSpace(p_11); let _e9 = fog.env.z; if (_e9 > 0.001f) { let _e14 = fog.core0_; let _e18 = fog.core1_; let _e20 = segPoint(p_11, _e14.xyz, _e18.xyz); let _e24 = fog.env.x; let _e28 = fog.env.y; let R = mix(_e24, _e28, _e20.y); let profile = mix(1f, 0.3f, smoothstep(0.05f, 0.8f, _e20.y)); let _e41 = fog.env.z; let e_2 = ((_e41 * profile) * (1f - smoothstep((0.25f * R), R, _e20.x))); let _e50 = d_3; let _e54 = fog.door.w; d_3 = (_e50 + (_e54 * e_2)); let _e57 = k; let _e61 = fog.door.w; k = (_e57 + ((1f - _e61) * e_2)); } let _e69 = fog.bank0_.w; if (_e69 > 0.001f) { let _e75 = fog.room.w; let _e79 = fog.room.z; let _e83 = fog.room.z; let front = mix(1f, _e75, smoothstep(_e79, (_e83 + 1.4f), _e5.x)); let _e90 = d_3; let _e94 = fog.bank0_.w; let _e98 = fog.bank0_; let _e102 = fog.bank1_; let _e107 = fog.bank1_.w; let _e108 = softBox(p_11, _e98.xyz, _e102.xyz, _e107); d_3 = (_e90 + ((_e94 * front) * _e108)); } let _e113 = fog.surge; let _e117 = fog.fogD.x; let _e119 = blob(p_11, _e113, _e117, 0.75f); let _e120 = d_3; let _e124 = fog.fogD.w; d_3 = (_e120 + (_e119 * (1f - _e124))); let _e129 = k; let _e133 = fog.fogD.w; k = (_e129 + (_e119 * _e133)); let _e136 = k; let _e139 = fog.gather; let _e143 = fog.fogD.y; let _e145 = blob(p_11, _e139, _e143, 0.8f); k = (_e136 + _e145); let _e150 = fog.sleeveB.w; if (_e150 > 0.001f) { let _e155 = fog.sleeveB; let _e159 = fog.sleeveA; let _e161 = segPoint(p_11, _e155.xyz, _e159.xyz); let _e165 = fog.sleeveA.w; let rad = (_e165 * (0.7f + (1.2f * _e161.y))); let _e172 = k; let _e176 = fog.sleeveB.w; k = (_e172 + ((_e176 * (1f - (0.6f * _e161.y))) * (1f - smoothstep((0.1f * rad), rad, _e161.x)))); } let _e194 = fog.pour.z; if (_e194 > 0.001f) { let _e201 = fog.pour2_.y; let into = (_e5.x - _e201); let _e207 = fog.pour2_.z; let h_1 = (p_11.y - _e207); let _e212 = fog.pour2_.x; let _e218 = fog.pour2_.w; let width = (_e212 + (max(into, 0f) * _e218)); let _e225 = fog.pour.w; let side = (abs((_e5.z - _e225)) - width); let _e232 = fog.pour.x; let _e238 = fog.pour.x; let front_1 = (1f - smoothstep((_e232 - 1.8f), _e238, into)); let _e248 = fog.pour.y; let layer = exp((-(max(h_1, 0f)) / max((_e248 * (1f + (0.25f * max(into, 0f)))), 0.001f))); let _e260 = d_3; let _e264 = fog.pour.z; d_3 = (_e260 + (((((_e264 * front_1) * layer) * (1f - smoothstep(-0.6f, 0.9f, side))) * smoothstep(-4f, -2.5f, into)) * (1f - smoothstep(0f, 0.25f, -(h_1))))); } let _e285 = d_3; let _e288 = fog.puff; let _e292 = fog.fogD.z; let _e294 = blob(p_11, _e288, _e292, 0.55f); d_3 = (_e285 + _e294); let _e296 = d_3; let _e297 = k; return vec2(_e296, _e297); } fn edgePoint(p_12: vec3) -> vec3 { let x0_1 = fog.inhale.x; let x1_1 = fog.inhale.y; let hz = fog.inhale.z; let _e16 = fog.inhale.w; let fore = vec3(x1_1, _e16, clamp(p_12.z, -(hz), hz)); let _e26 = fog.inhale.w; let side_1 = vec3(clamp(p_12.x, x0_1, x1_1), _e26, select(-(hz), hz, (p_12.z > 0f))); let df = dot((p_12 - fore), (p_12 - fore)); let ds = dot((p_12 - side_1), (p_12 - side_1)); return select(side_1, fore, (df < ds)); } fn drawnFrom(p_13: vec3) -> vec3 { let V = fog.inhale2_.x; if (V <= 0f) { return p_13; } let _e7 = edgePoint(p_13); let v_3 = (p_13 - _e7); let e_3 = length(v_3); let _e13 = fog.inhale.x; let _e17 = fog.inhale.y; let mid = vec2(((_e13 + _e17) * 0.5f), 0f); let away = normalize(vec3((p_13.x - mid.x), 0.4f, (p_13.z - mid.y))); let dir_7 = select((v_3 / vec3(max(e_3, 0.00001f))), away, (e_3 < 0.0001f)); let e0_ = pow((((e_3 * e_3) * e_3) + V), 0.33333334f); let q_3 = (_e7 + (dir_7 * e0_)); let _e49 = fog.inhale2_.y; let a_4 = ((-(_e49) * (1f - (e_3 / max(e0_, 0.0001f)))) * min((e_3 / 0.6f), 1f)); let r_3 = (q_3.xz - mid); let ca = cos(a_4); let sa = sin(a_4); return vec3(((mid.x + (r_3.x * ca)) - (r_3.y * sa)), q_3.y, ((mid.y + (r_3.x * sa)) + (r_3.y * ca))); } fn nearFog(p_14: vec3, g_1: f32) -> bool { var local_7: bool; var local_8: bool; var local_9: bool; var local_10: bool; var local_11: bool; var local_12: bool; var local_13: bool; var local_14: bool; var local_15: bool; let _e5 = fog.env.z; if (_e5 > 0.001f) { let _e12 = fog.core0_; let _e16 = fog.core1_; let _e18 = segPoint(p_14, _e12.xyz, _e16.xyz); let _e23 = fog.env.x; local_7 = (_e18.x < (_e23 + g_1)); } else { local_7 = false; } let _e27 = local_7; if _e27 { return true; } let _e32 = fog.bank0_.w; if (_e32 > 0.001f) { let _e39 = fog.bank0_; let _e44 = fog.bank1_.w; local_8 = all((p_14 > (_e39.xyz - vec3((_e44 + g_1))))); } else { local_8 = false; } let _e51 = local_8; if _e51 { let _e56 = fog.bank1_; let _e61 = fog.bank1_.w; local_9 = all((p_14 < (_e56.xyz + vec3((_e61 + g_1))))); } else { local_9 = false; } let _e68 = local_9; if _e68 { return true; } let _e73 = fog.fogD.x; if (_e73 > 0.001f) { let _e80 = fog.surge; let _e87 = fog.surge.w; local_10 = (length((p_14 - _e80.xyz)) < ((_e87 * 1.35f) + g_1)); } else { local_10 = false; } let _e93 = local_10; if _e93 { return true; } let _e98 = fog.fogD.y; if (_e98 > 0.001f) { let _e105 = fog.gather; let _e112 = fog.gather.w; local_11 = (length((p_14 - _e105.xyz)) < ((_e112 * 1.25f) + g_1)); } else { local_11 = false; } let _e118 = local_11; if _e118 { return true; } let _e123 = fog.sleeveB.w; if (_e123 > 0.001f) { let _e130 = fog.sleeveA; let _e134 = fog.sleeveB; let _e136 = segPoint(p_14, _e130.xyz, _e134.xyz); let _e141 = fog.sleeveA.w; local_12 = (_e136.x < ((_e141 * 2f) + g_1)); } else { local_12 = false; } let _e147 = local_12; if _e147 { return true; } let _e152 = fog.pour.z; if (_e152 > 0.001f) { let _e161 = fog.pour2_.z; let _e166 = fog.pour.y; local_13 = ((p_14.y - _e161) < ((_e166 * 5f) + g_1)); } else { local_13 = false; } let _e172 = local_13; if _e172 { let _e175 = doorSpace(p_14); let _e180 = fog.pour2_.y; let _e185 = fog.pour.x; local_14 = ((_e175.x - _e180) < (_e185 + g_1)); } else { local_14 = false; } let _e189 = local_14; if _e189 { return true; } let _e194 = fog.fogD.z; if (_e194 > 0.001f) { let _e201 = fog.puff; let _e208 = fog.puff.w; local_15 = (length((p_14 - _e201.xyz)) < ((_e208 * 1.4f) + g_1)); } else { local_15 = false; } let _e214 = local_15; if _e214 { return true; } return false; } fn throughDoor(pw: vec3) -> f32 { let wx = fog.pour2_.y; let _e5 = doorSpace(pw); let _e8 = fog.hall; let _e10 = doorSpace(_e8.xyz); if (_e5.x <= wx) { return 1f; } let s_5 = ((wx - _e10.x) / max((_e5.x - _e10.x), 0.0001f)); let c_7 = (_e10 + ((_e5 - _e10) * s_5)); let _e29 = fog.door.y; let _e34 = fog.door.y; let _e41 = fog.door.z; let _e46 = fog.door.z; let inZ = (smoothstep((_e29 - 0.25f), (_e34 + 0.25f), c_7.z) * (1f - smoothstep((_e41 - 0.25f), (_e46 + 0.25f), c_7.z))); let _e56 = fog.door.x; let _e61 = fog.door.x; let inY = (1f - smoothstep((_e56 - 0.25f), (_e61 + 0.25f), c_7.y)); return (inZ * inY); } fn coreShadow(p_15: vec3, light_2: vec3) -> f32 { let _e5 = fog.core3_.x; let k_2 = clamp((_e5 * 0.6f), 0f, 0.92f); if (k_2 <= 0.001f) { return 1f; } let _e16 = fog.core0_; let _e20 = fog.core1_; let _e22 = segSeg(p_15, light_2, _e16.xyz, _e20.xyz); let _e26 = fog.core0_.w; let _e30 = fog.core1_.w; let rb_1 = mix(_e26, _e30, _e22.y); let _e35 = fog.core2_; let _e37 = segPoint(_e35.xyz, p_15, light_2); let hd = _e37.x; let rh = fog.core2_.w; let block = max((1f - smoothstep((0.5f * rb_1), (1.2f * rb_1), _e22.x)), (1f - smoothstep((0.5f * rh), (1.25f * rh), hd))); return (1f - (k_2 * block)); } fn boxRay(o: vec3, dir_2: vec3, lo_1: vec3, hi_1: vec3) -> vec2 { let inv_1 = (vec3(1f) / select(dir_2, vec3(0.000001f), (abs(dir_2) < vec3(0.000001f)))); let ta_1 = ((lo_1 - o) * inv_1); let tb_1 = ((hi_1 - o) * inv_1); let tmin_1 = min(ta_1, tb_1); let tmax_1 = max(ta_1, tb_1); return vec2(max(max(tmin_1.x, tmin_1.y), max(tmin_1.z, 0f)), min(min(tmax_1.x, tmax_1.y), tmax_1.z)); } fn sceneHit(o_1: vec3, dir_3: vec3, tMax: f32) -> f32 { var t_1: f32; var local_16: bool; var local_17: bool; var local_18: bool; t_1 = tMax; if (dir_3.y < 0f) { let _e7 = t_1; let _e11 = fog.pour2_.z; t_1 = min(_e7, ((_e11 - o_1.y) / dir_3.y)); } let _e20 = fog.desk.x; let _e24 = fog.pour2_.z; let _e28 = fog.desk.z; let _e33 = fog.desk.y; let _e37 = fog.room.x; let _e41 = fog.desk.w; let _e43 = boxRay(o_1, dir_3, vec3(_e20, _e24, _e28), vec3(_e33, _e37, _e41)); if (_e43.x < _e43.y) { let _e47 = t_1; t_1 = min(_e47, _e43.x); } let _e50 = doorSpace(o_1); let _e51 = doorVec(dir_3); if (_e51.x < 0f) { let _e61 = fog.pour2_.y; local_16 = (_e50.x > _e61); } else { local_16 = false; } let _e64 = local_16; if _e64 { let _e68 = fog.pour2_.y; let tw = ((_e68 - _e50.x) / _e51.x); let c_8 = (_e50 + (_e51 * tw)); let _e79 = fog.door.y; if (c_8.z > _e79) { let _e87 = fog.door.z; local_17 = (c_8.z < _e87); } else { local_17 = false; } let _e90 = local_17; if _e90 { let _e97 = fog.door.x; local_18 = (c_8.y < _e97); } else { local_18 = false; } let open_1 = local_18; if !(open_1) { let _e102 = t_1; t_1 = min(_e102, tw); } } let _e104 = t_1; return _e104; } fn corePart(o_2: vec3, dir_4: vec3, a_1: vec3, ra: f32, b_1: vec3, rb: f32, far: f32, nz: f32) -> vec4 { let _e12 = segSeg(o_2, (o_2 + (dir_4 * (far + 4f))), a_1, b_1); let s_6 = _e12.y; let r_4 = max(mix(ra, rb, s_6), 0.001f); let q0_1 = mix(a_1, b_1, s_6); let t_4 = max(dot((q0_1 - o_2), dir_4), 0f); let q_4 = (_e12.x / r_4); let _e27 = fog.core3_.z; let qe = (q_4 + ((_e27 * (nz - 0.5f)) * 2f)); let _e37 = fog.core3_.y; let edge = (1f - smoothstep((1f - _e37), 1f, qe)); let ax = normalize(((b_1 - a_1) + vec3(0.000001f))); let sinA = sqrt(max((1f - (dot(ax, dir_4) * dot(ax, dir_4))), 0.09f)); let half = ((r_4 * sqrt(max((1f - (0.7f * min((q_4 * q_4), 1f))), 0f))) / sinA); let seen = clamp(((far - (t_4 - half)) / max((2f * half), 0.001f)), 0f, 1f); return vec4((((2f * half) * edge) * seen), min(t_4, far), q_4, s_6); } fn coreOf(o_3: vec3, dir_5: vec3, far_1: f32, time: f32) -> Core { var c_5: Core; var L: vec3; c_5.tau = 0f; c_5.t = 1000000000f; c_5.col = vec3(0f); c_5.tShadow = -1f; let ext = fog.core3_.x; if (ext <= 0.001f) { let _e20 = c_5; return _e20; } let _e25 = fog.core0_; let _e29 = fog.core2_; let _e31 = segSeg(o_3, (o_3 + (dir_5 * far_1)), _e25.xyz, _e29.xyz); let _e34 = fog.core0_; let _e38 = fog.core2_; let tn = max(dot((mix(_e34.xyz, _e38.xyz, _e31.y) - o_3), dir_5), 0f); let _e50 = fog.core0_.w; c_5.tShadow = (tn + _e50); let pn = (o_3 + (dir_5 * tn)); let _e57 = fog.look.z; let ns = (_e57 * 0.9f); let _e69 = noise2_(((pn * ns) + vec3(0f, (-(time) * 0.8f), (time * 0.27f)))); let _e84 = noise2_((((pn * ns) * 3.4f) + vec3((_e69.y * 1.7f), (-(time) * 1.6f), (_e69.x * 1.3f)))); let lod = clamp((7f / max(tn, 0.001f)), 0f, 1f); let nz_1 = ((_e69.x * (1f - (0.45f * lod))) + ((_e84.x * 0.45f) * lod)); let rh_1 = fog.core2_.w; let _e109 = fog.core0_; let _e114 = fog.core0_.w; let _e117 = fog.core1_; let _e122 = fog.core1_.w; let _e123 = corePart(o_3, dir_5, _e109.xyz, _e114, _e117.xyz, _e122, far_1, nz_1); let _e126 = fog.core1_; let _e131 = fog.core1_.w; let _e136 = fog.core2_; let _e140 = corePart(o_3, dir_5, _e126.xyz, (_e131 * 0.62f), _e136.xyz, (rh_1 * 0.9f), far_1, nz_1); let _e143 = fog.core2_; let hoodTop = (_e143.xyz + vec3(0f, (rh_1 * 0.55f), 0f)); let _e153 = fog.core2_; let _e163 = corePart(o_3, dir_5, (_e153.xyz - vec3(0f, (rh_1 * 0.25f), 0f)), rh_1, hoodTop, (rh_1 * 0.62f), far_1, nz_1); let fray = (smoothstep(0f, 0.55f, _e123.w) * (0.55f + (0.45f * _e84.y))); let tb_2 = (_e123.x * fray); let tau = (((tb_2 + _e140.x) + _e163.x) * ext); if (tau <= 0.002f) { let _e183 = c_5; return _e183; } let wsum = max(((tb_2 + _e140.x) + _e163.x), 0.00001f); let t_5 = ((((_e123.y * tb_2) + (_e140.y * _e140.x)) + (_e163.y * _e163.x)) / wsum); let q_5 = ((((_e123.z * tb_2) + (_e140.z * _e140.x)) + (_e163.z * _e163.x)) / wsum); let p_16 = (o_3 + (dir_5 * t_5)); let _e216 = fog.candle; let toC = (_e216.xyz - p_16); let dc2_ = dot(toC, toC); let Lc = (toC * inverseSqrt(max(dc2_, 0.00000001f))); let _e227 = fog.candle.w; let _e231 = fog.candleColor.w; let Ec = (_e227 / ((dc2_ + _e231) + 0.35f)); let front_2 = (0.35f + (0.65f * max(dot(Lc, -(dir_5)), 0f))); let _e246 = fog.candleColor; L = (_e246.xyz * (Ec * front_2)); let _e254 = fog.hall.w; if (_e254 > 0f) { let _e259 = fog.hall; let toH = (_e259.xyz - p_16); let dh2_ = dot(toH, toH); let _e266 = fog.hall.w; let _e270 = throughDoor(p_16); let Eh_1 = ((_e266 / (dh2_ + 1f)) * _e270); let cosH = dot((-(toH) * inverseSqrt(max(dh2_, 0.00000001f))), -(dir_5)); let _e279 = L; let _e282 = fog.hallColor; let _e287 = fog.hallColor.w; let _e288 = hgPhase(cosH, _e287); L = (_e279 + (_e282.xyz * (((Eh_1 * _e288) * smoothstep(0.45f, 1f, q_5)) * 0.9f))); } let _e298 = L; let _e301 = fog.ambient; L = (_e298 + _e301.xyz); c_5.tau = tau; c_5.t = t_5; let _e307 = L; let _e311 = fog.core3_.w; c_5.col = (_e307 * _e311); let _e313 = c_5; return _e313; } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p_17 = pos[vi]; out.position = vec4(p_17, 0f, 1f); out.uv = vec2(((p_17.x * 0.5f) + 0.5f), (0.5f - (p_17.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { var core: Core; var local: bool; var coreLeft: bool; var T: f32 = 1f; var col: vec3 = vec3(0f); var i: i32 = 0i; var local_1: bool; var local_2: bool; var Eh: f32; var local_3: bool; let _e4 = fog.ambient.w; if (_e4 < 0.002f) { return vec4(0f); } let ndc = vec2(((in.uv.x * 2f) - 1f), (1f - (in.uv.y * 2f))); let _e24 = fog.invViewProj; let pn_1 = (_e24 * vec4(ndc, 0f, 1f)); let _e31 = fog.invViewProj; let pf = (_e31 * vec4(ndc, 1f, 1f)); let _e38 = fog.eye; let o_4 = _e38.xyz; let dir_8 = normalize(((pf.xyz / vec3(pf.w)) - (pn_1.xyz / vec3(pn_1.w)))); let _e52 = fog.boxMin; let _e56 = fog.boxMax; let _e58 = boxRay(o_4, dir_8, _e52.xyz, _e56.xyz); if (_e58.x >= _e58.y) { return vec4(0f); } let _e66 = sceneHit(o_4, dir_8, _e58.y); let t1_1 = min(_e58.y, _e66); let t0_1 = _e58.x; if (t1_1 <= t0_1) { return vec4(0f); } let time_1 = fog.eye.w; let _e76 = coreOf(o_4, dir_8, t1_1, time_1); core = _e76; let _e79 = core.tau; if (_e79 > 0.002f) { let _e85 = core.t; local = (_e85 <= t1_1); } else { local = false; } let _e88 = local; coreLeft = _e88; let _e93 = fog.boxMin.w; let steps = max(_e93, 4f); let dt_1 = ((t1_1 - t0_1) / steps); let _e100 = ign(in.position.xy); let jit = fract((_e100 + (time_1 * 0.61803f))); let gH = fog.hallColor.w; let gC = fog.eyeColor.w; let ext_1 = fog.look.x; let albedo = fog.look.y; let ns_1 = fog.look.z; let ero = fog.look.w; let _e132 = fog.room.y; let reach = (0.9f * _e132); loop { let _e142 = i; if (_e142 < 48i) { } else { break; } { let _e145 = i; if !((f32(_e145) >= steps)) { let _e151 = T; local_1 = (_e151 < 0.015f); } else { local_1 = true; } let _e155 = local_1; if _e155 { break; } let _e156 = i; let t_6 = (t0_1 + ((f32(_e156) + jit) * dt_1)); let _e161 = coreLeft; if _e161 { let _e165 = core.t; local_2 = (t_6 > _e165); } else { local_2 = false; } let _e168 = local_2; if _e168 { let _e170 = core.tau; let a_5 = exp(-(_e170)); let _e173 = col; let _e174 = T; let _e176 = core.col; col = (_e173 + ((_e174 * _e176) * (1f - a_5))); let _e182 = T; T = (_e182 * a_5); coreLeft = false; } let p_18 = (o_4 + (dir_8 * t_6)); let _e187 = drawnFrom(p_18); let _e188 = nearFog(_e187, reach); if !(_e188) { continue; } let pw_1 = ((_e187 * ns_1) + vec3(0f, (-(time_1) * 0.45f), (time_1 * 0.13f))); let _e207 = noise2_(((pw_1 * 0.42f) + vec3(0f, (time_1 * 0.1f), 0f))); let _e218 = noise2_(((pw_1 * 0.42f) + vec3(19.1f, (7.3f + (time_1 * 0.08f)), 3.7f))); let _e229 = fog.room.y; let _e239 = fog.room.y; let warp = (((vec3(_e207.x, _e218.x, _e207.y) - vec3(0.5f)) * _e229) + vec3(0f, (((_e218.y - 0.5f) * 0.4f) * _e239), 0f)); let _e246 = shape((_e187 + warp)); let _e250 = fog.ambient.w; let media = (_e246 * _e250); let base = (media.x + media.y); if (base > 0.003f) { let q_6 = (pw_1 + (warp * ns_1)); let _e259 = noise2_(q_6); let _e279 = noise2_((((q_6 * 2.31f) + vec3((_e259.y * 1.3f), 4.1f, (_e259.x * 1.1f))) + vec3((time_1 * 0.17f), (-(time_1) * 0.55f), 0f))); let detail = ((_e259.x * 0.6f) + (_e279.x * 0.4f)); let wisp = smoothstep((0.34f + (0.3f * ero)), 0.82f, (detail + (0.25f * min(base, 1f)))); let dens_1 = ((base * mix(1f, wisp, ero)) * (0.7f + (0.6f * _e279.y))); let _e313 = fog.env.w; let _e320 = fog.inhale2_.z; let alb = mix((((media.x * albedo) + (media.y * _e313)) / base), albedo, _e320); if (dens_1 > 0f) { let sigma = (dens_1 * ext_1); let _e327 = fog.candle; let toC_1 = (_e327.xyz - p_18); let dc2_1 = dot(toC_1, toC_1); let lift = (1f + ((3f * dc2_1) / (dc2_1 + 3f))); let _e341 = fog.candle.w; let _e346 = fog.candleColor.w; let Ec_1 = ((_e341 * lift) / ((dc2_1 + _e346) + 0.35f)); let cosC = dot((-(toC_1) * inverseSqrt(max(dc2_1, 0.00000001f))), -(dir_8)); let _e360 = fog.hall; let toH_1 = (_e360.xyz - p_18); let dh2_1 = dot(toH_1, toH_1); Eh = 0f; let _e369 = fog.hall.w; if (_e369 > 0f) { let _e375 = fog.hall.w; let _e381 = throughDoor(p_18); Eh = (((_e375 * 1.3f) / (dh2_1 + 3f)) * _e381); let _e383 = Eh; if (_e383 > 0.002f) { let _e389 = core.tShadow; local_3 = (t_6 < _e389); } else { local_3 = false; } let _e392 = local_3; if _e392 { let _e393 = Eh; let _e396 = fog.hall; let _e398 = coreShadow(p_18, _e396.xyz); Eh = (_e393 * _e398); } } let cosH_1 = dot((-(toH_1) * inverseSqrt(max(dh2_1, 0.00000001f))), -(dir_8)); let _e409 = fog.eyeL; let el = (p_18 - _e409.xyz); let _e414 = fog.eyeR; let er = (p_18 - _e414.xyz); let _e420 = fog.eyeL.w; let _e425 = fog.eyeR.w; let _e433 = fog.eyeR.w; let Ee = (_e420 * ((1f / (dot(el, el) + _e425)) + (1f / (dot(er, er) + _e433)))); let _e441 = fog.candleColor; let _e443 = hgPhase(cosC, gC); let _e450 = fog.hallColor; let _e452 = Eh; let _e453 = hgPhase(cosH_1, gH); let _e461 = fog.eyeColor; let _e467 = fog.ambient; let L_1 = ((((_e441.xyz * ((Ec_1 * _e443) * 1.3f)) + (_e450.xyz * ((_e452 * _e453) * 0.35f))) + (_e461.xyz * Ee)) + _e467.xyz); let a_6 = exp((-(sigma) * dt_1)); let _e473 = col; let _e474 = T; col = (_e473 + ((_e474 * (L_1 * alb)) * (1f - a_6))); let _e481 = T; T = (_e481 * a_6); } } } continuing { let _e483 = i; i = (_e483 + 1i); } } let _e486 = coreLeft; if _e486 { let _e488 = core.tau; let a_7 = exp(-(_e488)); let _e491 = col; let _e492 = T; let _e494 = core.col; col = (_e491 + ((_e492 * _e494) * (1f - a_7))); let _e500 = T; T = (_e500 * a_7); } let _e502 = T; let alpha = (1f - _e502); let _e505 = col; let _e509 = fog.boxMax.w; let _e510 = encodeHdr(_e505, _e509); return vec4(_e510, alpha); }  `‰ŒÙ•æqvvs_mainmainY1#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Fog { mat4x4 invViewProj; vec4 eye; vec4 boxMin; vec4 boxMax; vec4 candle; vec4 candleColor; vec4 hall; vec4 hallColor; vec4 eyeL; vec4 eyeR; vec4 eyeColor; vec4 env; vec4 core0_; vec4 core1_; vec4 core2_; vec4 core3_; vec4 bank0_; vec4 bank1_; vec4 surge; vec4 gather; vec4 fogD; vec4 sleeveA; vec4 sleeveB; vec4 pour; vec4 pour2_; vec4 puff; vec4 desk; vec4 room; vec4 door; vec4 ambient; vec4 look; vec4 inhale; vec4 inhale2_; vec4 door0_; vec4 door1_; }; struct Core { float tau; float t; vec3 col; float tShadow; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; smooth out vec2 _vs2fs_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo_2 = (x * 0.07739938); vec3 hi_2 = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi_2, lo_2, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_3 = (x_1 * 12.92); vec3 hi_3 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_3, lo_3, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_2) { uvec2 _e5 = hash2u(uvec2((i_2 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_4 = floor(p_1); vec2 f_1 = (p_1 - i_4); vec2 u = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_5 = floor(p_2); vec2 f_2 = (p_2 - i_5); vec2 u_1 = ((f_2 * f_2) * (vec2(3.0) - (2.0 * f_2))); vec2 du = ((6.0 * f_2) * (vec2(1.0) - f_2)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_2 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_2 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k_1 = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k_1)) + atan((t0_ / k_1))) / k_1); } vec3 atmosphere(vec3 col_1, vec3 world, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world - eye_1); float dist_2 = length(dv); vec3 dir_6 = (dv / vec3(max(dist_2, 1e-5))); float T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_6, dist_2, light_1, glow.w); return (((col_1 * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_4 = false; bool local_5 = false; bool local_6 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r = ((x1_ - x0_) * 0.5); float cx = (x0_ + r); float s_2 = max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_4 = (q.x > (x1_ + s_2)); } else { local_4 = true; } bool _e25 = local_4; if (!(_e25)) { local_5 = (q.y < (sill - s_2)); } else { local_5 = true; } bool _e33 = local_5; if (!(_e33)) { local_6 = (q.y > ((spring + r) + s_2)); } else { local_6 = true; } bool _e42 = local_6; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); float dArch = (r - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_2), s_2, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_2), ((bw * 0.8) + s_2), tf)) * step(q.y, spring))); float a_2 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_2 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_2), ((bw * 0.7) + s_2), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_2)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_2), (0.012 + s_2), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_3 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_4 = vec2(win_2.x, win_2.z); vec2 hi_4 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_4 - qa) * inv); vec2 t2_ = ((hi_4 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_3; i_3 = (_e123 + 1); } loop_init = false; int _e93 = i_3; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_3; float t_2 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_1 = (qa + (t_2 * qd)); float s_4 = (((eye_2.z + (t_2 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_1, win_2, win2_2, (0.008 + (s_4 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } vec2 segPoint(vec3 p_7, vec3 a, vec3 b) { vec3 pa = (p_7 - a); vec3 ba = (b - a); float h = clamp((dot(pa, ba) / max(dot(ba, ba), 1e-6)), 0.0, 1.0); return vec2(length((pa - (ba * h))), h); } vec2 segSeg(vec3 p0_, vec3 p1_, vec3 q0_, vec3 q1_) { float s_1 = 0.0; float t = 0.0; vec3 d1_ = (p1_ - p0_); vec3 d2_ = (q1_ - q0_); vec3 r_1 = (p0_ - q0_); float a_3 = dot(d1_, d1_); float e_1 = max(dot(d2_, d2_), 1e-6); float f_3 = dot(d2_, r_1); float c_6 = dot(d1_, r_1); float b_2 = dot(d1_, d2_); float den = ((a_3 * e_1) - (b_2 * b_2)); if ((den > 1e-6)) { s_1 = clamp((((b_2 * f_3) - (c_6 * e_1)) / den), 0.0, 1.0); } float _e28 = s_1; t = (((b_2 * _e28) + f_3) / e_1); float _e33 = t; if ((_e33 < 0.0)) { t = 0.0; s_1 = clamp((-(c_6) / max(a_3, 1e-6)), 0.0, 1.0); } else { float _e44 = t; if ((_e44 > 1.0)) { t = 1.0; s_1 = clamp(((b_2 - c_6) / max(a_3, 1e-6)), 0.0, 1.0); } } float _e55 = s_1; float _e59 = t; float _e63 = t; return vec2(length((((p0_ + (d1_ * _e55)) - q0_) - (d2_ * _e59))), _e63); } float softBox(vec3 p_8, vec3 lo, vec3 hi, float soft_1) { vec3 q_2 = max(max((lo - p_8), (p_8 - hi)), vec3(0.0)); return (1.0 - smoothstep(0.0, soft_1, length(q_2))); } float blob(vec3 p_9, vec4 c_4, float dens, float squash) { vec3 v_1 = vec3(0.0); if ((dens <= 0.001)) { return 0.0; } v_1 = (p_9 - c_4.xyz); float _e12 = v_1.y; v_1.y = (_e12 / max(squash, 0.05)); vec3 _e16 = v_1; float dist_3 = (length(_e16) / max(c_4.w, 0.001)); return (dens * (1.0 - smoothstep(0.35, 1.0, dist_3))); } vec2 boxRay(vec3 o, vec3 dir_2, vec3 lo_1, vec3 hi_1) { vec3 inv_1 = (vec3(1.0) / mix(dir_2, vec3(1e-6), lessThan(abs(dir_2), vec3(1e-6)))); vec3 ta_1 = ((lo_1 - o) * inv_1); vec3 tb_1 = ((hi_1 - o) * inv_1); vec3 tmin_1 = min(ta_1, tb_1); vec3 tmax_1 = max(ta_1, tb_1); return vec2(max(max(tmin_1.x, tmin_1.y), max(tmin_1.z, 0.0)), min(min(tmax_1.x, tmax_1.y), tmax_1.z)); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p_16 = pos[vi]; out_.position = vec4(p_16, 0.0, 1.0); out_.uv = vec2(((p_16.x * 0.5) + 0.5), (0.5 - (p_16.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainNœ#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Fog { mat4x4 invViewProj; vec4 eye; vec4 boxMin; vec4 boxMax; vec4 candle; vec4 candleColor; vec4 hall; vec4 hallColor; vec4 eyeL; vec4 eyeR; vec4 eyeColor; vec4 env; vec4 core0_; vec4 core1_; vec4 core2_; vec4 core3_; vec4 bank0_; vec4 bank1_; vec4 surge; vec4 gather; vec4 fogD; vec4 sleeveA; vec4 sleeveB; vec4 pour; vec4 pour2_; vec4 puff; vec4 desk; vec4 room; vec4 door; vec4 ambient; vec4 look; vec4 inhale; vec4 inhale2_; vec4 door0_; vec4 door1_; }; struct Core { float tau; float t; vec3 col; float tShadow; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; layout(std140) uniform Fog_block_0Fragment { Fog _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo_2 = (x * 0.07739938); vec3 hi_2 = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi_2, lo_2, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_3 = (x_1 * 12.92); vec3 hi_3 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_3, lo_3, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_2) { uvec2 _e5 = hash2u(uvec2((i_2 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_4 = floor(p_1); vec2 f_1 = (p_1 - i_4); vec2 u = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_5 = floor(p_2); vec2 f_2 = (p_2 - i_5); vec2 u_1 = ((f_2 * f_2) * (vec2(3.0) - (2.0 * f_2))); vec2 du = ((6.0 * f_2) * (vec2(1.0) - f_2)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_2 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_2 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k_1 = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k_1)) + atan((t0_ / k_1))) / k_1); } vec3 atmosphere(vec3 col_1, vec3 world, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world - eye_1); float dist_2 = length(dv); vec3 dir_6 = (dv / vec3(max(dist_2, 1e-5))); float T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_6, dist_2, light_1, glow.w); return (((col_1 * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_4 = false; bool local_5 = false; bool local_6 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r = ((x1_ - x0_) * 0.5); float cx = (x0_ + r); float s_2 = max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_4 = (q.x > (x1_ + s_2)); } else { local_4 = true; } bool _e25 = local_4; if (!(_e25)) { local_5 = (q.y < (sill - s_2)); } else { local_5 = true; } bool _e33 = local_5; if (!(_e33)) { local_6 = (q.y > ((spring + r) + s_2)); } else { local_6 = true; } bool _e42 = local_6; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); float dArch = (r - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_2), s_2, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_2), ((bw * 0.8) + s_2), tf)) * step(q.y, spring))); float a_2 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_2 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_2), ((bw * 0.7) + s_2), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_2)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_2), (0.012 + s_2), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_3 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_4 = vec2(win_2.x, win_2.z); vec2 hi_4 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_4 - qa) * inv); vec2 t2_ = ((hi_4 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_3; i_3 = (_e123 + 1); } loop_init = false; int _e93 = i_3; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_3; float t_2 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_1 = (qa + (t_2 * qd)); float s_4 = (((eye_2.z + (t_2 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_1, win_2, win2_2, (0.008 + (s_4 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } vec2 noise2_(vec3 p_6) { vec3 f = vec3(0.0); vec3 i_6 = floor(p_6); f = (p_6 - i_6); vec3 _e4 = f; vec3 _e5 = f; vec3 _e7 = f; f = ((_e4 * _e5) * (vec3(3.0) - (2.0 * _e7))); vec3 _e21 = f; vec2 uv = ((((i_6.xy + (vec2(37.0, 17.0) * i_6.z)) + _e21.xy) + vec2(0.5)) * 0.00390625); vec4 t_3 = textureLod(_group_0_binding_1_fs, vec2(uv), 0.0); float _e36 = f.z; float _e41 = f.z; return vec2(mix(t_3.x, t_3.y, _e36), mix(t_3.z, t_3.w, _e41)); } vec2 segPoint(vec3 p_7, vec3 a, vec3 b) { vec3 pa = (p_7 - a); vec3 ba = (b - a); float h = clamp((dot(pa, ba) / max(dot(ba, ba), 1e-6)), 0.0, 1.0); return vec2(length((pa - (ba * h))), h); } vec2 segSeg(vec3 p0_, vec3 p1_, vec3 q0_, vec3 q1_) { float s_1 = 0.0; float t = 0.0; vec3 d1_ = (p1_ - p0_); vec3 d2_ = (q1_ - q0_); vec3 r_1 = (p0_ - q0_); float a_3 = dot(d1_, d1_); float e_1 = max(dot(d2_, d2_), 1e-6); float f_3 = dot(d2_, r_1); float c_6 = dot(d1_, r_1); float b_2 = dot(d1_, d2_); float den = ((a_3 * e_1) - (b_2 * b_2)); if ((den > 1e-6)) { s_1 = clamp((((b_2 * f_3) - (c_6 * e_1)) / den), 0.0, 1.0); } float _e28 = s_1; t = (((b_2 * _e28) + f_3) / e_1); float _e33 = t; if ((_e33 < 0.0)) { t = 0.0; s_1 = clamp((-(c_6) / max(a_3, 1e-6)), 0.0, 1.0); } else { float _e44 = t; if ((_e44 > 1.0)) { t = 1.0; s_1 = clamp(((b_2 - c_6) / max(a_3, 1e-6)), 0.0, 1.0); } } float _e55 = s_1; float _e59 = t; float _e63 = t; return vec2(length((((p0_ + (d1_ * _e55)) - q0_) - (d2_ * _e59))), _e63); } float softBox(vec3 p_8, vec3 lo, vec3 hi, float soft_1) { vec3 q_2 = max(max((lo - p_8), (p_8 - hi)), vec3(0.0)); return (1.0 - smoothstep(0.0, soft_1, length(q_2))); } float blob(vec3 p_9, vec4 c_4, float dens, float squash) { vec3 v_1 = vec3(0.0); if ((dens <= 0.001)) { return 0.0; } v_1 = (p_9 - c_4.xyz); float _e12 = v_1.y; v_1.y = (_e12 / max(squash, 0.05)); vec3 _e16 = v_1; float dist_3 = (length(_e16) / max(c_4.w, 0.001)); return (dens * (1.0 - smoothstep(0.35, 1.0, dist_3))); } vec3 doorSpace(vec3 p_10) { vec4 _e4 = _group_0_binding_0_fs.door0_; vec2 r_2 = (p_10.xz - _e4.xy); float _e10 = _group_0_binding_0_fs.door1_.z; vec4 _e13 = _group_0_binding_0_fs.door0_; float _e21 = _group_0_binding_0_fs.door1_.w; vec4 _e24 = _group_0_binding_0_fs.door1_; return vec3((_e10 + dot(r_2, _e13.zw)), p_10.y, (_e21 + dot(r_2, _e24.xy))); } vec3 doorVec(vec3 v_2) { vec4 _e4 = _group_0_binding_0_fs.door0_; vec4 _e11 = _group_0_binding_0_fs.door1_; return vec3(dot(v_2.xz, _e4.zw), v_2.y, dot(v_2.xz, _e11.xy)); } vec2 shape(vec3 p_11) { float d_3 = 0.0; float k = 0.0; vec3 _e5 = doorSpace(p_11); float _e9 = _group_0_binding_0_fs.env.z; if ((_e9 > 0.001)) { vec4 _e14 = _group_0_binding_0_fs.core0_; vec4 _e18 = _group_0_binding_0_fs.core1_; vec2 _e20 = segPoint(p_11, _e14.xyz, _e18.xyz); float _e24 = _group_0_binding_0_fs.env.x; float _e28 = _group_0_binding_0_fs.env.y; float R = mix(_e24, _e28, _e20.y); float profile = mix(1.0, 0.3, smoothstep(0.05, 0.8, _e20.y)); float _e41 = _group_0_binding_0_fs.env.z; float e_2 = ((_e41 * profile) * (1.0 - smoothstep((0.25 * R), R, _e20.x))); float _e50 = d_3; float _e54 = _group_0_binding_0_fs.door.w; d_3 = (_e50 + (_e54 * e_2)); float _e57 = k; float _e61 = _group_0_binding_0_fs.door.w; k = (_e57 + ((1.0 - _e61) * e_2)); } float _e69 = _group_0_binding_0_fs.bank0_.w; if ((_e69 > 0.001)) { float _e75 = _group_0_binding_0_fs.room.w; float _e79 = _group_0_binding_0_fs.room.z; float _e83 = _group_0_binding_0_fs.room.z; float front = mix(1.0, _e75, smoothstep(_e79, (_e83 + 1.4), _e5.x)); float _e90 = d_3; float _e94 = _group_0_binding_0_fs.bank0_.w; vec4 _e98 = _group_0_binding_0_fs.bank0_; vec4 _e102 = _group_0_binding_0_fs.bank1_; float _e107 = _group_0_binding_0_fs.bank1_.w; float _e108 = softBox(p_11, _e98.xyz, _e102.xyz, _e107); d_3 = (_e90 + ((_e94 * front) * _e108)); } vec4 _e113 = _group_0_binding_0_fs.surge; float _e117 = _group_0_binding_0_fs.fogD.x; float _e119 = blob(p_11, _e113, _e117, 0.75); float _e120 = d_3; float _e124 = _group_0_binding_0_fs.fogD.w; d_3 = (_e120 + (_e119 * (1.0 - _e124))); float _e129 = k; float _e133 = _group_0_binding_0_fs.fogD.w; k = (_e129 + (_e119 * _e133)); float _e136 = k; vec4 _e139 = _group_0_binding_0_fs.gather; float _e143 = _group_0_binding_0_fs.fogD.y; float _e145 = blob(p_11, _e139, _e143, 0.8); k = (_e136 + _e145); float _e150 = _group_0_binding_0_fs.sleeveB.w; if ((_e150 > 0.001)) { vec4 _e155 = _group_0_binding_0_fs.sleeveB; vec4 _e159 = _group_0_binding_0_fs.sleeveA; vec2 _e161 = segPoint(p_11, _e155.xyz, _e159.xyz); float _e165 = _group_0_binding_0_fs.sleeveA.w; float rad = (_e165 * (0.7 + (1.2 * _e161.y))); float _e172 = k; float _e176 = _group_0_binding_0_fs.sleeveB.w; k = (_e172 + ((_e176 * (1.0 - (0.6 * _e161.y))) * (1.0 - smoothstep((0.1 * rad), rad, _e161.x)))); } float _e194 = _group_0_binding_0_fs.pour.z; if ((_e194 > 0.001)) { float _e201 = _group_0_binding_0_fs.pour2_.y; float into = (_e5.x - _e201); float _e207 = _group_0_binding_0_fs.pour2_.z; float h_1 = (p_11.y - _e207); float _e212 = _group_0_binding_0_fs.pour2_.x; float _e218 = _group_0_binding_0_fs.pour2_.w; float width = (_e212 + (max(into, 0.0) * _e218)); float _e225 = _group_0_binding_0_fs.pour.w; float side = (abs((_e5.z - _e225)) - width); float _e232 = _group_0_binding_0_fs.pour.x; float _e238 = _group_0_binding_0_fs.pour.x; float front_1 = (1.0 - smoothstep((_e232 - 1.8), _e238, into)); float _e248 = _group_0_binding_0_fs.pour.y; float layer = exp((-(max(h_1, 0.0)) / max((_e248 * (1.0 + (0.25 * max(into, 0.0)))), 0.001))); float _e260 = d_3; float _e264 = _group_0_binding_0_fs.pour.z; d_3 = (_e260 + (((((_e264 * front_1) * layer) * (1.0 - smoothstep(-0.6, 0.9, side))) * smoothstep(-4.0, -2.5, into)) * (1.0 - smoothstep(0.0, 0.25, -(h_1))))); } float _e285 = d_3; vec4 _e288 = _group_0_binding_0_fs.puff; float _e292 = _group_0_binding_0_fs.fogD.z; float _e294 = blob(p_11, _e288, _e292, 0.55); d_3 = (_e285 + _e294); float _e296 = d_3; float _e297 = k; return vec2(_e296, _e297); } vec3 edgePoint(vec3 p_12) { float x0_1 = _group_0_binding_0_fs.inhale.x; float x1_1 = _group_0_binding_0_fs.inhale.y; float hz = _group_0_binding_0_fs.inhale.z; float _e16 = _group_0_binding_0_fs.inhale.w; vec3 fore = vec3(x1_1, _e16, clamp(p_12.z, -(hz), hz)); float _e26 = _group_0_binding_0_fs.inhale.w; vec3 side_1 = vec3(clamp(p_12.x, x0_1, x1_1), _e26, ((p_12.z > 0.0) ? hz : -(hz))); float df = dot((p_12 - fore), (p_12 - fore)); float ds = dot((p_12 - side_1), (p_12 - side_1)); return ((df < ds) ? fore : side_1); } vec3 drawnFrom(vec3 p_13) { float V = _group_0_binding_0_fs.inhale2_.x; if ((V <= 0.0)) { return p_13; } vec3 _e7 = edgePoint(p_13); vec3 v_3 = (p_13 - _e7); float e_3 = length(v_3); float _e13 = _group_0_binding_0_fs.inhale.x; float _e17 = _group_0_binding_0_fs.inhale.y; vec2 mid = vec2(((_e13 + _e17) * 0.5), 0.0); vec3 away = normalize(vec3((p_13.x - mid.x), 0.4, (p_13.z - mid.y))); vec3 dir_7 = ((e_3 < 0.0001) ? away : (v_3 / vec3(max(e_3, 1e-5)))); float e0_ = pow((((e_3 * e_3) * e_3) + V), 0.33333334); vec3 q_3 = (_e7 + (dir_7 * e0_)); float _e49 = _group_0_binding_0_fs.inhale2_.y; float a_4 = ((-(_e49) * (1.0 - (e_3 / max(e0_, 0.0001)))) * min((e_3 / 0.6), 1.0)); vec2 r_3 = (q_3.xz - mid); float ca = cos(a_4); float sa = sin(a_4); return vec3(((mid.x + (r_3.x * ca)) - (r_3.y * sa)), q_3.y, ((mid.y + (r_3.x * sa)) + (r_3.y * ca))); } bool nearFog(vec3 p_14, float g_1) { bool local_7 = false; bool local_8 = false; bool local_9 = false; bool local_10 = false; bool local_11 = false; bool local_12 = false; bool local_13 = false; bool local_14 = false; bool local_15 = false; float _e5 = _group_0_binding_0_fs.env.z; if ((_e5 > 0.001)) { vec4 _e12 = _group_0_binding_0_fs.core0_; vec4 _e16 = _group_0_binding_0_fs.core1_; vec2 _e18 = segPoint(p_14, _e12.xyz, _e16.xyz); float _e23 = _group_0_binding_0_fs.env.x; local_7 = (_e18.x < (_e23 + g_1)); } else { local_7 = false; } bool _e27 = local_7; if (_e27) { return true; } float _e32 = _group_0_binding_0_fs.bank0_.w; if ((_e32 > 0.001)) { vec4 _e39 = _group_0_binding_0_fs.bank0_; float _e44 = _group_0_binding_0_fs.bank1_.w; local_8 = all(greaterThan(p_14, (_e39.xyz - vec3((_e44 + g_1))))); } else { local_8 = false; } bool _e51 = local_8; if (_e51) { vec4 _e56 = _group_0_binding_0_fs.bank1_; float _e61 = _group_0_binding_0_fs.bank1_.w; local_9 = all(lessThan(p_14, (_e56.xyz + vec3((_e61 + g_1))))); } else { local_9 = false; } bool _e68 = local_9; if (_e68) { return true; } float _e73 = _group_0_binding_0_fs.fogD.x; if ((_e73 > 0.001)) { vec4 _e80 = _group_0_binding_0_fs.surge; float _e87 = _group_0_binding_0_fs.surge.w; local_10 = (length((p_14 - _e80.xyz)) < ((_e87 * 1.35) + g_1)); } else { local_10 = false; } bool _e93 = local_10; if (_e93) { return true; } float _e98 = _group_0_binding_0_fs.fogD.y; if ((_e98 > 0.001)) { vec4 _e105 = _group_0_binding_0_fs.gather; float _e112 = _group_0_binding_0_fs.gather.w; local_11 = (length((p_14 - _e105.xyz)) < ((_e112 * 1.25) + g_1)); } else { local_11 = false; } bool _e118 = local_11; if (_e118) { return true; } float _e123 = _group_0_binding_0_fs.sleeveB.w; if ((_e123 > 0.001)) { vec4 _e130 = _group_0_binding_0_fs.sleeveA; vec4 _e134 = _group_0_binding_0_fs.sleeveB; vec2 _e136 = segPoint(p_14, _e130.xyz, _e134.xyz); float _e141 = _group_0_binding_0_fs.sleeveA.w; local_12 = (_e136.x < ((_e141 * 2.0) + g_1)); } else { local_12 = false; } bool _e147 = local_12; if (_e147) { return true; } float _e152 = _group_0_binding_0_fs.pour.z; if ((_e152 > 0.001)) { float _e161 = _group_0_binding_0_fs.pour2_.z; float _e166 = _group_0_binding_0_fs.pour.y; local_13 = ((p_14.y - _e161) < ((_e166 * 5.0) + g_1)); } else { local_13 = false; } bool _e172 = local_13; if (_e172) { vec3 _e175 = doorSpace(p_14); float _e180 = _group_0_binding_0_fs.pour2_.y; float _e185 = _group_0_binding_0_fs.pour.x; local_14 = ((_e175.x - _e180) < (_e185 + g_1)); } else { local_14 = false; } bool _e189 = local_14; if (_e189) { return true; } float _e194 = _group_0_binding_0_fs.fogD.z; if ((_e194 > 0.001)) { vec4 _e201 = _group_0_binding_0_fs.puff; float _e208 = _group_0_binding_0_fs.puff.w; local_15 = (length((p_14 - _e201.xyz)) < ((_e208 * 1.4) + g_1)); } else { local_15 = false; } bool _e214 = local_15; if (_e214) { return true; } return false; } float throughDoor(vec3 pw) { float wx = _group_0_binding_0_fs.pour2_.y; vec3 _e5 = doorSpace(pw); vec4 _e8 = _group_0_binding_0_fs.hall; vec3 _e10 = doorSpace(_e8.xyz); if ((_e5.x <= wx)) { return 1.0; } float s_5 = ((wx - _e10.x) / max((_e5.x - _e10.x), 0.0001)); vec3 c_7 = (_e10 + ((_e5 - _e10) * s_5)); float _e29 = _group_0_binding_0_fs.door.y; float _e34 = _group_0_binding_0_fs.door.y; float _e41 = _group_0_binding_0_fs.door.z; float _e46 = _group_0_binding_0_fs.door.z; float inZ = (smoothstep((_e29 - 0.25), (_e34 + 0.25), c_7.z) * (1.0 - smoothstep((_e41 - 0.25), (_e46 + 0.25), c_7.z))); float _e56 = _group_0_binding_0_fs.door.x; float _e61 = _group_0_binding_0_fs.door.x; float inY = (1.0 - smoothstep((_e56 - 0.25), (_e61 + 0.25), c_7.y)); return (inZ * inY); } float coreShadow(vec3 p_15, vec3 light_2) { float _e5 = _group_0_binding_0_fs.core3_.x; float k_2 = clamp((_e5 * 0.6), 0.0, 0.92); if ((k_2 <= 0.001)) { return 1.0; } vec4 _e16 = _group_0_binding_0_fs.core0_; vec4 _e20 = _group_0_binding_0_fs.core1_; vec2 _e22 = segSeg(p_15, light_2, _e16.xyz, _e20.xyz); float _e26 = _group_0_binding_0_fs.core0_.w; float _e30 = _group_0_binding_0_fs.core1_.w; float rb_1 = mix(_e26, _e30, _e22.y); vec4 _e35 = _group_0_binding_0_fs.core2_; vec2 _e37 = segPoint(_e35.xyz, p_15, light_2); float hd = _e37.x; float rh = _group_0_binding_0_fs.core2_.w; float block = max((1.0 - smoothstep((0.5 * rb_1), (1.2 * rb_1), _e22.x)), (1.0 - smoothstep((0.5 * rh), (1.25 * rh), hd))); return (1.0 - (k_2 * block)); } vec2 boxRay(vec3 o, vec3 dir_2, vec3 lo_1, vec3 hi_1) { vec3 inv_1 = (vec3(1.0) / mix(dir_2, vec3(1e-6), lessThan(abs(dir_2), vec3(1e-6)))); vec3 ta_1 = ((lo_1 - o) * inv_1); vec3 tb_1 = ((hi_1 - o) * inv_1); vec3 tmin_1 = min(ta_1, tb_1); vec3 tmax_1 = max(ta_1, tb_1); return vec2(max(max(tmin_1.x, tmin_1.y), max(tmin_1.z, 0.0)), min(min(tmax_1.x, tmax_1.y), tmax_1.z)); } float sceneHit(vec3 o_1, vec3 dir_3, float tMax) { float t_1 = 0.0; bool local_16 = false; bool local_17 = false; bool local_18 = false; t_1 = tMax; if ((dir_3.y < 0.0)) { float _e7 = t_1; float _e11 = _group_0_binding_0_fs.pour2_.z; t_1 = min(_e7, ((_e11 - o_1.y) / dir_3.y)); } float _e20 = _group_0_binding_0_fs.desk.x; float _e24 = _group_0_binding_0_fs.pour2_.z; float _e28 = _group_0_binding_0_fs.desk.z; float _e33 = _group_0_binding_0_fs.desk.y; float _e37 = _group_0_binding_0_fs.room.x; float _e41 = _group_0_binding_0_fs.desk.w; vec2 _e43 = boxRay(o_1, dir_3, vec3(_e20, _e24, _e28), vec3(_e33, _e37, _e41)); if ((_e43.x < _e43.y)) { float _e47 = t_1; t_1 = min(_e47, _e43.x); } vec3 _e50 = doorSpace(o_1); vec3 _e51 = doorVec(dir_3); if ((_e51.x < 0.0)) { float _e61 = _group_0_binding_0_fs.pour2_.y; local_16 = (_e50.x > _e61); } else { local_16 = false; } bool _e64 = local_16; if (_e64) { float _e68 = _group_0_binding_0_fs.pour2_.y; float tw = ((_e68 - _e50.x) / _e51.x); vec3 c_8 = (_e50 + (_e51 * tw)); float _e79 = _group_0_binding_0_fs.door.y; if ((c_8.z > _e79)) { float _e87 = _group_0_binding_0_fs.door.z; local_17 = (c_8.z < _e87); } else { local_17 = false; } bool _e90 = local_17; if (_e90) { float _e97 = _group_0_binding_0_fs.door.x; local_18 = (c_8.y < _e97); } else { local_18 = false; } bool open_1 = local_18; if (!(open_1)) { float _e102 = t_1; t_1 = min(_e102, tw); } } float _e104 = t_1; return _e104; } vec4 corePart(vec3 o_2, vec3 dir_4, vec3 a_1, float ra, vec3 b_1, float rb, float far, float nz) { vec2 _e12 = segSeg(o_2, (o_2 + (dir_4 * (far + 4.0))), a_1, b_1); float s_6 = _e12.y; float r_4 = max(mix(ra, rb, s_6), 0.001); vec3 q0_1 = mix(a_1, b_1, s_6); float t_4 = max(dot((q0_1 - o_2), dir_4), 0.0); float q_4 = (_e12.x / r_4); float _e27 = _group_0_binding_0_fs.core3_.z; float qe = (q_4 + ((_e27 * (nz - 0.5)) * 2.0)); float _e37 = _group_0_binding_0_fs.core3_.y; float edge = (1.0 - smoothstep((1.0 - _e37), 1.0, qe)); vec3 ax = normalize(((b_1 - a_1) + vec3(1e-6))); float sinA = sqrt(max((1.0 - (dot(ax, dir_4) * dot(ax, dir_4))), 0.09)); float half_ = ((r_4 * sqrt(max((1.0 - (0.7 * min((q_4 * q_4), 1.0))), 0.0))) / sinA); float seen = clamp(((far - (t_4 - half_)) / max((2.0 * half_), 0.001)), 0.0, 1.0); return vec4((((2.0 * half_) * edge) * seen), min(t_4, far), q_4, s_6); } Core coreOf(vec3 o_3, vec3 dir_5, float far_1, float time) { Core c_5 = Core(0.0, 0.0, vec3(0.0), 0.0); vec3 L = vec3(0.0); c_5.tau = 0.0; c_5.t = 1000000000.0; c_5.col = vec3(0.0); c_5.tShadow = -1.0; float ext = _group_0_binding_0_fs.core3_.x; if ((ext <= 0.001)) { Core _e20 = c_5; return _e20; } vec4 _e25 = _group_0_binding_0_fs.core0_; vec4 _e29 = _group_0_binding_0_fs.core2_; vec2 _e31 = segSeg(o_3, (o_3 + (dir_5 * far_1)), _e25.xyz, _e29.xyz); vec4 _e34 = _group_0_binding_0_fs.core0_; vec4 _e38 = _group_0_binding_0_fs.core2_; float tn = max(dot((mix(_e34.xyz, _e38.xyz, _e31.y) - o_3), dir_5), 0.0); float _e50 = _group_0_binding_0_fs.core0_.w; c_5.tShadow = (tn + _e50); vec3 pn = (o_3 + (dir_5 * tn)); float _e57 = _group_0_binding_0_fs.look.z; float ns = (_e57 * 0.9); vec2 _e69 = noise2_(((pn * ns) + vec3(0.0, (-(time) * 0.8), (time * 0.27)))); vec2 _e84 = noise2_((((pn * ns) * 3.4) + vec3((_e69.y * 1.7), (-(time) * 1.6), (_e69.x * 1.3)))); float lod = clamp((7.0 / max(tn, 0.001)), 0.0, 1.0); float nz_1 = ((_e69.x * (1.0 - (0.45 * lod))) + ((_e84.x * 0.45) * lod)); float rh_1 = _group_0_binding_0_fs.core2_.w; vec4 _e109 = _group_0_binding_0_fs.core0_; float _e114 = _group_0_binding_0_fs.core0_.w; vec4 _e117 = _group_0_binding_0_fs.core1_; float _e122 = _group_0_binding_0_fs.core1_.w; vec4 _e123 = corePart(o_3, dir_5, _e109.xyz, _e114, _e117.xyz, _e122, far_1, nz_1); vec4 _e126 = _group_0_binding_0_fs.core1_; float _e131 = _group_0_binding_0_fs.core1_.w; vec4 _e136 = _group_0_binding_0_fs.core2_; vec4 _e140 = corePart(o_3, dir_5, _e126.xyz, (_e131 * 0.62), _e136.xyz, (rh_1 * 0.9), far_1, nz_1); vec4 _e143 = _group_0_binding_0_fs.core2_; vec3 hoodTop = (_e143.xyz + vec3(0.0, (rh_1 * 0.55), 0.0)); vec4 _e153 = _group_0_binding_0_fs.core2_; vec4 _e163 = corePart(o_3, dir_5, (_e153.xyz - vec3(0.0, (rh_1 * 0.25), 0.0)), rh_1, hoodTop, (rh_1 * 0.62), far_1, nz_1); float fray = (smoothstep(0.0, 0.55, _e123.w) * (0.55 + (0.45 * _e84.y))); float tb_2 = (_e123.x * fray); float tau = (((tb_2 + _e140.x) + _e163.x) * ext); if ((tau <= 0.002)) { Core _e183 = c_5; return _e183; } float wsum = max(((tb_2 + _e140.x) + _e163.x), 1e-5); float t_5 = ((((_e123.y * tb_2) + (_e140.y * _e140.x)) + (_e163.y * _e163.x)) / wsum); float q_5 = ((((_e123.z * tb_2) + (_e140.z * _e140.x)) + (_e163.z * _e163.x)) / wsum); vec3 p_16 = (o_3 + (dir_5 * t_5)); vec4 _e216 = _group_0_binding_0_fs.candle; vec3 toC = (_e216.xyz - p_16); float dc2_ = dot(toC, toC); vec3 Lc = (toC * inversesqrt(max(dc2_, 1e-8))); float _e227 = _group_0_binding_0_fs.candle.w; float _e231 = _group_0_binding_0_fs.candleColor.w; float Ec = (_e227 / ((dc2_ + _e231) + 0.35)); float front_2 = (0.35 + (0.65 * max(dot(Lc, -(dir_5)), 0.0))); vec4 _e246 = _group_0_binding_0_fs.candleColor; L = (_e246.xyz * (Ec * front_2)); float _e254 = _group_0_binding_0_fs.hall.w; if ((_e254 > 0.0)) { vec4 _e259 = _group_0_binding_0_fs.hall; vec3 toH = (_e259.xyz - p_16); float dh2_ = dot(toH, toH); float _e266 = _group_0_binding_0_fs.hall.w; float _e270 = throughDoor(p_16); float Eh_1 = ((_e266 / (dh2_ + 1.0)) * _e270); float cosH = dot((-(toH) * inversesqrt(max(dh2_, 1e-8))), -(dir_5)); vec3 _e279 = L; vec4 _e282 = _group_0_binding_0_fs.hallColor; float _e287 = _group_0_binding_0_fs.hallColor.w; float _e288 = hgPhase(cosH, _e287); L = (_e279 + (_e282.xyz * (((Eh_1 * _e288) * smoothstep(0.45, 1.0, q_5)) * 0.9))); } vec3 _e298 = L; vec4 _e301 = _group_0_binding_0_fs.ambient; L = (_e298 + _e301.xyz); c_5.tau = tau; c_5.t = t_5; vec3 _e307 = L; float _e311 = _group_0_binding_0_fs.core3_.w; c_5.col = (_e307 * _e311); Core _e313 = c_5; return _e313; } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); Core core = Core(0.0, 0.0, vec3(0.0), 0.0); bool local = false; bool coreLeft = false; float T = 1.0; vec3 col = vec3(0.0); int i = 0; bool local_1 = false; bool local_2 = false; float Eh = 0.0; bool local_3 = false; float _e4 = _group_0_binding_0_fs.ambient.w; if ((_e4 < 0.002)) { _fs2p_location0 = vec4(0.0); return; } vec2 ndc = vec2(((in_.uv.x * 2.0) - 1.0), (1.0 - (in_.uv.y * 2.0))); mat4x4 _e24 = _group_0_binding_0_fs.invViewProj; vec4 pn_1 = (_e24 * vec4(ndc, 0.0, 1.0)); mat4x4 _e31 = _group_0_binding_0_fs.invViewProj; vec4 pf = (_e31 * vec4(ndc, 1.0, 1.0)); vec4 _e38 = _group_0_binding_0_fs.eye; vec3 o_4 = _e38.xyz; vec3 dir_8 = normalize(((pf.xyz / vec3(pf.w)) - (pn_1.xyz / vec3(pn_1.w)))); vec4 _e52 = _group_0_binding_0_fs.boxMin; vec4 _e56 = _group_0_binding_0_fs.boxMax; vec2 _e58 = boxRay(o_4, dir_8, _e52.xyz, _e56.xyz); if ((_e58.x >= _e58.y)) { _fs2p_location0 = vec4(0.0); return; } float _e66 = sceneHit(o_4, dir_8, _e58.y); float t1_1 = min(_e58.y, _e66); float t0_1 = _e58.x; if ((t1_1 <= t0_1)) { _fs2p_location0 = vec4(0.0); return; } float time_1 = _group_0_binding_0_fs.eye.w; Core _e76 = coreOf(o_4, dir_8, t1_1, time_1); core = _e76; float _e79 = core.tau; if ((_e79 > 0.002)) { float _e85 = core.t; local = (_e85 <= t1_1); } else { local = false; } bool _e88 = local; coreLeft = _e88; float _e93 = _group_0_binding_0_fs.boxMin.w; float steps = max(_e93, 4.0); float dt_1 = ((t1_1 - t0_1) / steps); float _e100 = ign(in_.position.xy); float jit = fract((_e100 + (time_1 * 0.61803))); float gH = _group_0_binding_0_fs.hallColor.w; float gC = _group_0_binding_0_fs.eyeColor.w; float ext_1 = _group_0_binding_0_fs.look.x; float albedo = _group_0_binding_0_fs.look.y; float ns_1 = _group_0_binding_0_fs.look.z; float ero = _group_0_binding_0_fs.look.w; float _e132 = _group_0_binding_0_fs.room.y; float reach = (0.9 * _e132); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e483 = i; i = (_e483 + 1); } loop_init_1 = false; int _e142 = i; if ((_e142 < 48)) { } else { break; } { int _e145 = i; if (!((float(_e145) >= steps))) { float _e151 = T; local_1 = (_e151 < 0.015); } else { local_1 = true; } bool _e155 = local_1; if (_e155) { break; } int _e156 = i; float t_6 = (t0_1 + ((float(_e156) + jit) * dt_1)); bool _e161 = coreLeft; if (_e161) { float _e165 = core.t; local_2 = (t_6 > _e165); } else { local_2 = false; } bool _e168 = local_2; if (_e168) { float _e170 = core.tau; float a_5 = exp(-(_e170)); vec3 _e173 = col; float _e174 = T; vec3 _e176 = core.col; col = (_e173 + ((_e174 * _e176) * (1.0 - a_5))); float _e182 = T; T = (_e182 * a_5); coreLeft = false; } vec3 p_17 = (o_4 + (dir_8 * t_6)); vec3 _e187 = drawnFrom(p_17); bool _e188 = nearFog(_e187, reach); if (!(_e188)) { continue; } vec3 pw_1 = ((_e187 * ns_1) + vec3(0.0, (-(time_1) * 0.45), (time_1 * 0.13))); vec2 _e207 = noise2_(((pw_1 * 0.42) + vec3(0.0, (time_1 * 0.1), 0.0))); vec2 _e218 = noise2_(((pw_1 * 0.42) + vec3(19.1, (7.3 + (time_1 * 0.08)), 3.7))); float _e229 = _group_0_binding_0_fs.room.y; float _e239 = _group_0_binding_0_fs.room.y; vec3 warp = (((vec3(_e207.x, _e218.x, _e207.y) - vec3(0.5)) * _e229) + vec3(0.0, (((_e218.y - 0.5) * 0.4) * _e239), 0.0)); vec2 _e246 = shape((_e187 + warp)); float _e250 = _group_0_binding_0_fs.ambient.w; vec2 media = (_e246 * _e250); float base = (media.x + media.y); if ((base > 0.003)) { vec3 q_6 = (pw_1 + (warp * ns_1)); vec2 _e259 = noise2_(q_6); vec2 _e279 = noise2_((((q_6 * 2.31) + vec3((_e259.y * 1.3), 4.1, (_e259.x * 1.1))) + vec3((time_1 * 0.17), (-(time_1) * 0.55), 0.0))); float detail = ((_e259.x * 0.6) + (_e279.x * 0.4)); float wisp = smoothstep((0.34 + (0.3 * ero)), 0.82, (detail + (0.25 * min(base, 1.0)))); float dens_1 = ((base * mix(1.0, wisp, ero)) * (0.7 + (0.6 * _e279.y))); float _e313 = _group_0_binding_0_fs.env.w; float _e320 = _group_0_binding_0_fs.inhale2_.z; float alb = mix((((media.x * albedo) + (media.y * _e313)) / base), albedo, _e320); if ((dens_1 > 0.0)) { float sigma = (dens_1 * ext_1); vec4 _e327 = _group_0_binding_0_fs.candle; vec3 toC_1 = (_e327.xyz - p_17); float dc2_1 = dot(toC_1, toC_1); float lift = (1.0 + ((3.0 * dc2_1) / (dc2_1 + 3.0))); float _e341 = _group_0_binding_0_fs.candle.w; float _e346 = _group_0_binding_0_fs.candleColor.w; float Ec_1 = ((_e341 * lift) / ((dc2_1 + _e346) + 0.35)); float cosC = dot((-(toC_1) * inversesqrt(max(dc2_1, 1e-8))), -(dir_8)); vec4 _e360 = _group_0_binding_0_fs.hall; vec3 toH_1 = (_e360.xyz - p_17); float dh2_1 = dot(toH_1, toH_1); Eh = 0.0; float _e369 = _group_0_binding_0_fs.hall.w; if ((_e369 > 0.0)) { float _e375 = _group_0_binding_0_fs.hall.w; float _e381 = throughDoor(p_17); Eh = (((_e375 * 1.3) / (dh2_1 + 3.0)) * _e381); float _e383 = Eh; if ((_e383 > 0.002)) { float _e389 = core.tShadow; local_3 = (t_6 < _e389); } else { local_3 = false; } bool _e392 = local_3; if (_e392) { float _e393 = Eh; vec4 _e396 = _group_0_binding_0_fs.hall; float _e398 = coreShadow(p_17, _e396.xyz); Eh = (_e393 * _e398); } } float cosH_1 = dot((-(toH_1) * inversesqrt(max(dh2_1, 1e-8))), -(dir_8)); vec4 _e409 = _group_0_binding_0_fs.eyeL; vec3 el = (p_17 - _e409.xyz); vec4 _e414 = _group_0_binding_0_fs.eyeR; vec3 er = (p_17 - _e414.xyz); float _e420 = _group_0_binding_0_fs.eyeL.w; float _e425 = _group_0_binding_0_fs.eyeR.w; float _e433 = _group_0_binding_0_fs.eyeR.w; float Ee = (_e420 * ((1.0 / (dot(el, el) + _e425)) + (1.0 / (dot(er, er) + _e433)))); vec4 _e441 = _group_0_binding_0_fs.candleColor; float _e443 = hgPhase(cosC, gC); vec4 _e450 = _group_0_binding_0_fs.hallColor; float _e452 = Eh; float _e453 = hgPhase(cosH_1, gH); vec4 _e461 = _group_0_binding_0_fs.eyeColor; vec4 _e467 = _group_0_binding_0_fs.ambient; vec3 L_1 = ((((_e441.xyz * ((Ec_1 * _e443) * 1.3)) + (_e450.xyz * ((_e452 * _e453) * 0.35))) + (_e461.xyz * Ee)) + _e467.xyz); float a_6 = exp((-(sigma) * dt_1)); vec3 _e473 = col; float _e474 = T; col = (_e473 + ((_e474 * (L_1 * alb)) * (1.0 - a_6))); float _e481 = T; T = (_e481 * a_6); } } } } bool _e486 = coreLeft; if (_e486) { float _e488 = core.tau; float a_7 = exp(-(_e488)); vec3 _e491 = col; float _e492 = T; vec3 _e494 = core.col; col = (_e491 + ((_e492 * _e494) * (1.0 - a_7))); float _e500 = T; T = (_e500 * a_7); } float _e502 = T; float alpha = (1.0 - _e502); vec3 _e505 = col; float _e509 = _group_0_binding_0_fs.boxMax.w; vec3 _e510 = encodeHdr(_e505, _e509); _fs2p_location0 = vec4(_e510, alpha); return; }  `dͦ<“8vFog_block_0Fragment_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_mainü¬// language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_9 { metal::float2 inner[3]; }; struct Fog { metal::float4x4 invViewProj; metal::float4 eye; metal::float4 boxMin; metal::float4 boxMax; metal::float4 candle; metal::float4 candleColor; metal::float4 hall; metal::float4 hallColor; metal::float4 eyeL; metal::float4 eyeR; metal::float4 eyeColor; metal::float4 env; metal::float4 core0_; metal::float4 core1_; metal::float4 core2_; metal::float4 core3_; metal::float4 bank0_; metal::float4 bank1_; metal::float4 surge; metal::float4 gather; metal::float4 fogD; metal::float4 sleeveA; metal::float4 sleeveB; metal::float4 pour; metal::float4 pour2_; metal::float4 puff; metal::float4 desk; metal::float4 room; metal::float4 door; metal::float4 ambient; metal::float4 look; metal::float4 inhale; metal::float4 inhale2_; metal::float4 door0_; metal::float4 door1_; }; struct Core { float tau; float t; char _pad2[8]; metal::packed_float3 col; float tShadow; }; constant float HDR_RANGE = 4.0; constant float HAZE_START = 2.8; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo_2 = x * 0.07739938; metal::float3 hi_2 = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi_2, lo_2, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_3 = x_1 * 12.92; metal::float3 hi_3 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_3, lo_3, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_2 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_2) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_4 = metal::floor(p_1); metal::float2 f_1 = p_1 - i_4; metal::float2 u = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::int2 ii = naga_f2i32(i_4); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_5 = metal::floor(p_2); metal::float2 f_2 = p_2 - i_5; metal::float2 u_1 = (f_2 * f_2) * (metal::float2(3.0) - (2.0 * f_2)); metal::float2 du = (6.0 * f_2) * (metal::float2(1.0) - f_2); metal::int2 ii_1 = naga_f2i32(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_2 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g_2 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float pointGlow( metal::float3 eye, metal::float3 dir, float dist, metal::float3 light, float s2_ ) { metal::float3 toL = light - eye; float t0_ = metal::dot(toL, dir); float h2_ = metal::max(metal::dot(toL, toL) - (t0_ * t0_), 0.0); float k_1 = metal::sqrt(h2_ + metal::max(s2_, 0.000001)); return (metal::atan((dist - t0_) / k_1) + metal::atan(t0_ / k_1)) / k_1; } metal::float3 atmosphere( metal::float3 col_1, metal::float3 world, metal::float3 eye_1, metal::float3 light_1, metal::float4 haze, metal::float4 glow ) { metal::float3 dv = world - eye_1; float dist_2 = metal::length(dv); metal::float3 dir_6 = dv / metal::float3(metal::max(dist_2, 0.00001)); float T_1 = metal::exp(-(haze.w) * metal::max(dist_2 - HAZE_START, 0.0)); float _e21 = pointGlow(eye_1, dir_6, dist_2, light_1, glow.w); return ((col_1 * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21); } float windowMask( metal::float2 q, metal::float4 win, metal::float4 win2_, float soft, float lattice ) { bool local_4 = {}; bool local_5 = {}; bool local_6 = {}; float bars = {}; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r = (x1_ - x0_) * 0.5; float cx = x0_ + r; float s_2 = metal::max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_4 = q.x > (x1_ + s_2); } else { local_4 = true; } bool _e25 = local_4; if (!(_e25)) { local_5 = q.y < (sill - s_2); } else { local_5 = true; } bool _e33 = local_5; if (!(_e33)) { local_6 = q.y > ((spring + r) + s_2); } else { local_6 = true; } bool _e42 = local_6; if (_e42) { return 0.0; } float inRect = metal::smoothstep(-(s_2), s_2, metal::min(q.x - x0_, x1_ - q.x)) * metal::smoothstep(-(s_2), s_2, q.y - sill); float dArch = r - metal::length(q - metal::float2(cx, spring)); float inArch = metal::smoothstep(-(s_2), s_2, dArch); float open = inRect * ((q.y < spring) ? 1.0 : inArch); float bw = win2_.y; bars = 1.0 - metal::smoothstep(bw - s_2, bw + s_2, metal::abs(q.x - cx)); float ty = (q.y - sill) / win2_.z; float tf = metal::abs(metal::fract(ty + 0.5) - 0.5) * win2_.z; float _e89 = bars; bars = metal::max(_e89, (1.0 - metal::smoothstep((bw * 0.8) - s_2, (bw * 0.8) + s_2, tf)) * metal::step(q.y, spring)); float a_2 = metal::atan2(q.y - spring, q.x - cx); float spoke = (metal::abs(metal::fract((a_2 / 0.7853982) + 0.5) - 0.5) * 0.7853982) * metal::length(q - metal::float2(cx, spring)); float _e122 = bars; bars = metal::max(_e122, (1.0 - metal::smoothstep((bw * 0.7) - s_2, (bw * 0.7) + s_2, spoke)) * metal::step(spring, q.y)); if (lattice > 0.5) { float fade = 1.0 - metal::smoothstep(0.02, 0.09, s_2); metal::float2 dq = q * 2.6; float l1_ = metal::abs(metal::fract(((dq.x + dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float l2_ = metal::abs(metal::fract(((dq.x - dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float _e172 = bars; bars = metal::max(_e172, ((1.0 - metal::smoothstep(0.012 - s_2, 0.012 + s_2, metal::min(l1_, l2_))) * fade) * 0.85); } float _e183 = bars; return open * (1.0 - _e183); } metal::float3 backProject( metal::float3 p_4, metal::float3 d, float planeZ ) { float s_3 = (p_4.z - planeZ) / metal::max(d.z, 0.0001); return metal::float3(p_4.xy - (d.xy * s_3), s_3); } float moonPatch( metal::float3 p_5, metal::float3 d_1, metal::float4 win_1, metal::float4 win2_1 ) { if (p_5.z < win2_1.x) { return 0.0; } metal::float3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, 0.006 + (_e9.z * 0.011), 1.0); return _e17; } float hgPhase( float cosT, float g ) { float gg = g * g; return (1.0 - gg) / metal::pow(metal::max((1.0 + gg) - ((2.0 * g) * cosT), 0.0001), 1.5); } float shaftScatter( metal::float3 eye_2, metal::float3 dir_1, float dist_1, metal::float3 d_2, metal::float4 win_2, metal::float4 win2_2, float jitter, float top ) { float ta = 0.0; float tb = {}; float sum = 0.0; int i_3 = 0; float zw = win2_2.x; float invdz = 1.0 / metal::max(d_2.z, 0.0001); metal::float2 qa = eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy); metal::float2 qd = dir_1.xy - ((dir_1.z * invdz) * d_2.xy); tb = dist_1; if (dir_1.z < 0.0) { float _e33 = tb; tb = metal::min(_e33, (zw - eye_2.z) / dir_1.z); } if (dir_1.y < 0.0) { float _e42 = tb; tb = metal::min(_e42, (win2_2.w - eye_2.y) / dir_1.y); } metal::float2 lo_4 = metal::float2(win_2.x, win_2.z); metal::float2 hi_4 = metal::float2(win_2.y, top); metal::float2 inv = metal::float2(1.0) / metal::select(qd, metal::float2(0.000001), metal::abs(qd) < metal::float2(0.000001)); metal::float2 t1_ = (lo_4 - qa) * inv; metal::float2 t2_ = (hi_4 - qa) * inv; metal::float2 tmin = metal::min(t1_, t2_); metal::float2 tmax = metal::max(t1_, t2_); float _e70 = ta; ta = metal::max(_e70, metal::max(tmin.x, tmin.y)); float _e75 = tb; tb = metal::min(_e75, metal::min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if (_e80 <= _e81) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = (_e84 - _e85) / 5.0; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e123 = i_3; i_3 = as_type(as_type(_e123) + as_type(1)); } loop_init = false; int _e93 = i_3; if (_e93 < 5) { } else { break; } { float _e96 = ta; int _e97 = i_3; float t_2 = _e96 + ((static_cast(_e97) + jitter) * dt); metal::float2 q_1 = qa + (t_2 * qd); float s_4 = ((eye_2.z + (t_2 * dir_1.z)) - zw) * invdz; float _e110 = sum; float _e116 = windowMask(q_1, win_2, win2_2, 0.008 + (s_4 * 0.003), 0.0); sum = _e110 + (_e116 * metal::exp(-(s_4) * 0.035)); } } float _e126 = ta; float _e127 = tb; metal::float2 qm = qa + (((_e126 + _e127) * 0.5) * qd); float _e141 = vnoise((qm * metal::float2(3.1, 0.9)) + metal::float2(7.1, 3.3)); float _e146 = vnoise(qm * metal::float2(9.0, 2.2)); float dust = 0.45 + (0.55 * metal::smoothstep(-0.6, 0.8, _e141 + (0.5 * _e146))); float _e157 = sum; return (_e157 * dt) * dust; } metal::float2 noise2_( metal::float3 p_6, metal::texture2d noiseTex, metal::sampler noiseSamp ) { metal::float3 f = {}; metal::float3 i_6 = metal::floor(p_6); f = p_6 - i_6; metal::float3 _e4 = f; metal::float3 _e5 = f; metal::float3 _e7 = f; f = (_e4 * _e5) * (metal::float3(3.0) - (2.0 * _e7)); metal::float3 _e21 = f; metal::float2 uv = (((i_6.xy + (metal::float2(37.0, 17.0) * i_6.z)) + _e21.xy) + metal::float2(0.5)) * 0.00390625; metal::float4 t_3 = noiseTex.sample(noiseSamp, uv, metal::level(0.0)); float _e36 = f.z; float _e41 = f.z; return metal::float2(metal::mix(t_3.x, t_3.y, _e36), metal::mix(t_3.z, t_3.w, _e41)); } metal::float2 segPoint( metal::float3 p_7, metal::float3 a, metal::float3 b ) { metal::float3 pa = p_7 - a; metal::float3 ba = b - a; float h = metal::clamp(metal::dot(pa, ba) / metal::max(metal::dot(ba, ba), 0.000001), 0.0, 1.0); return metal::float2(metal::length(pa - (ba * h)), h); } metal::float2 segSeg( metal::float3 p0_, metal::float3 p1_, metal::float3 q0_, metal::float3 q1_ ) { float s_1 = 0.0; float t = {}; metal::float3 d1_ = p1_ - p0_; metal::float3 d2_ = q1_ - q0_; metal::float3 r_1 = p0_ - q0_; float a_3 = metal::dot(d1_, d1_); float e_1 = metal::max(metal::dot(d2_, d2_), 0.000001); float f_3 = metal::dot(d2_, r_1); float c_6 = metal::dot(d1_, r_1); float b_2 = metal::dot(d1_, d2_); float den = (a_3 * e_1) - (b_2 * b_2); if (den > 0.000001) { s_1 = metal::clamp(((b_2 * f_3) - (c_6 * e_1)) / den, 0.0, 1.0); } float _e28 = s_1; t = ((b_2 * _e28) + f_3) / e_1; float _e33 = t; if (_e33 < 0.0) { t = 0.0; s_1 = metal::clamp(-(c_6) / metal::max(a_3, 0.000001), 0.0, 1.0); } else { float _e44 = t; if (_e44 > 1.0) { t = 1.0; s_1 = metal::clamp((b_2 - c_6) / metal::max(a_3, 0.000001), 0.0, 1.0); } } float _e55 = s_1; float _e59 = t; float _e63 = t; return metal::float2(metal::length(((p0_ + (d1_ * _e55)) - q0_) - (d2_ * _e59)), _e63); } float softBox( metal::float3 p_8, metal::float3 lo, metal::float3 hi, float soft_1 ) { metal::float3 q_2 = metal::max(metal::max(lo - p_8, p_8 - hi), metal::float3(0.0)); return 1.0 - metal::smoothstep(0.0, soft_1, metal::length(q_2)); } float blob( metal::float3 p_9, metal::float4 c_4, float dens, float squash ) { metal::float3 v_1 = {}; if (dens <= 0.001) { return 0.0; } v_1 = p_9 - c_4.xyz; float _e12 = v_1.y; v_1.y = _e12 / metal::max(squash, 0.05); metal::float3 _e16 = v_1; float dist_3 = metal::length(_e16) / metal::max(c_4.w, 0.001); return dens * (1.0 - metal::smoothstep(0.35, 1.0, dist_3)); } metal::float3 doorSpace( metal::float3 p_10, constant Fog& fog ) { metal::float4 _e4 = fog.door0_; metal::float2 r_2 = p_10.xz - _e4.xy; float _e10 = fog.door1_.z; metal::float4 _e13 = fog.door0_; float _e21 = fog.door1_.w; metal::float4 _e24 = fog.door1_; return metal::float3(_e10 + metal::dot(r_2, _e13.zw), p_10.y, _e21 + metal::dot(r_2, _e24.xy)); } metal::float3 doorVec( metal::float3 v_2, constant Fog& fog ) { metal::float4 _e4 = fog.door0_; metal::float4 _e11 = fog.door1_; return metal::float3(metal::dot(v_2.xz, _e4.zw), v_2.y, metal::dot(v_2.xz, _e11.xy)); } metal::float2 shape( metal::float3 p_11, constant Fog& fog ) { float d_3 = 0.0; float k = 0.0; metal::float3 _e5 = doorSpace(p_11, fog); float _e9 = fog.env.z; if (_e9 > 0.001) { metal::float4 _e14 = fog.core0_; metal::float4 _e18 = fog.core1_; metal::float2 _e20 = segPoint(p_11, _e14.xyz, _e18.xyz); float _e24 = fog.env.x; float _e28 = fog.env.y; float R = metal::mix(_e24, _e28, _e20.y); float profile = metal::mix(1.0, 0.3, metal::smoothstep(0.05, 0.8, _e20.y)); float _e41 = fog.env.z; float e_2 = (_e41 * profile) * (1.0 - metal::smoothstep(0.25 * R, R, _e20.x)); float _e50 = d_3; float _e54 = fog.door.w; d_3 = _e50 + (_e54 * e_2); float _e57 = k; float _e61 = fog.door.w; k = _e57 + ((1.0 - _e61) * e_2); } float _e69 = fog.bank0_.w; if (_e69 > 0.001) { float _e75 = fog.room.w; float _e79 = fog.room.z; float _e83 = fog.room.z; float front = metal::mix(1.0, _e75, metal::smoothstep(_e79, _e83 + 1.4, _e5.x)); float _e90 = d_3; float _e94 = fog.bank0_.w; metal::float4 _e98 = fog.bank0_; metal::float4 _e102 = fog.bank1_; float _e107 = fog.bank1_.w; float _e108 = softBox(p_11, _e98.xyz, _e102.xyz, _e107); d_3 = _e90 + ((_e94 * front) * _e108); } metal::float4 _e113 = fog.surge; float _e117 = fog.fogD.x; float _e119 = blob(p_11, _e113, _e117, 0.75); float _e120 = d_3; float _e124 = fog.fogD.w; d_3 = _e120 + (_e119 * (1.0 - _e124)); float _e129 = k; float _e133 = fog.fogD.w; k = _e129 + (_e119 * _e133); float _e136 = k; metal::float4 _e139 = fog.gather; float _e143 = fog.fogD.y; float _e145 = blob(p_11, _e139, _e143, 0.8); k = _e136 + _e145; float _e150 = fog.sleeveB.w; if (_e150 > 0.001) { metal::float4 _e155 = fog.sleeveB; metal::float4 _e159 = fog.sleeveA; metal::float2 _e161 = segPoint(p_11, _e155.xyz, _e159.xyz); float _e165 = fog.sleeveA.w; float rad = _e165 * (0.7 + (1.2 * _e161.y)); float _e172 = k; float _e176 = fog.sleeveB.w; k = _e172 + ((_e176 * (1.0 - (0.6 * _e161.y))) * (1.0 - metal::smoothstep(0.1 * rad, rad, _e161.x))); } float _e194 = fog.pour.z; if (_e194 > 0.001) { float _e201 = fog.pour2_.y; float into = _e5.x - _e201; float _e207 = fog.pour2_.z; float h_1 = p_11.y - _e207; float _e212 = fog.pour2_.x; float _e218 = fog.pour2_.w; float width = _e212 + (metal::max(into, 0.0) * _e218); float _e225 = fog.pour.w; float side = metal::abs(_e5.z - _e225) - width; float _e232 = fog.pour.x; float _e238 = fog.pour.x; float front_1 = 1.0 - metal::smoothstep(_e232 - 1.8, _e238, into); float _e248 = fog.pour.y; float layer = metal::exp(-(metal::max(h_1, 0.0)) / metal::max(_e248 * (1.0 + (0.25 * metal::max(into, 0.0))), 0.001)); float _e260 = d_3; float _e264 = fog.pour.z; d_3 = _e260 + (((((_e264 * front_1) * layer) * (1.0 - metal::smoothstep(-0.6, 0.9, side))) * metal::smoothstep(-4.0, -2.5, into)) * (1.0 - metal::smoothstep(0.0, 0.25, -(h_1)))); } float _e285 = d_3; metal::float4 _e288 = fog.puff; float _e292 = fog.fogD.z; float _e294 = blob(p_11, _e288, _e292, 0.55); d_3 = _e285 + _e294; float _e296 = d_3; float _e297 = k; return metal::float2(_e296, _e297); } metal::float3 edgePoint( metal::float3 p_12, constant Fog& fog ) { float x0_1 = fog.inhale.x; float x1_1 = fog.inhale.y; float hz = fog.inhale.z; float _e16 = fog.inhale.w; metal::float3 fore = metal::float3(x1_1, _e16, metal::clamp(p_12.z, -(hz), hz)); float _e26 = fog.inhale.w; metal::float3 side_1 = metal::float3(metal::clamp(p_12.x, x0_1, x1_1), _e26, (p_12.z > 0.0) ? hz : -(hz)); float df = metal::dot(p_12 - fore, p_12 - fore); float ds = metal::dot(p_12 - side_1, p_12 - side_1); return (df < ds) ? fore : side_1; } metal::float3 drawnFrom( metal::float3 p_13, constant Fog& fog ) { float V = fog.inhale2_.x; if (V <= 0.0) { return p_13; } metal::float3 _e7 = edgePoint(p_13, fog); metal::float3 v_3 = p_13 - _e7; float e_3 = metal::length(v_3); float _e13 = fog.inhale.x; float _e17 = fog.inhale.y; metal::float2 mid = metal::float2((_e13 + _e17) * 0.5, 0.0); metal::float3 away = metal::normalize(metal::float3(p_13.x - mid.x, 0.4, p_13.z - mid.y)); metal::float3 dir_7 = (e_3 < 0.0001) ? away : (v_3 / metal::float3(metal::max(e_3, 0.00001))); float e0_ = metal::pow(((e_3 * e_3) * e_3) + V, 0.33333334); metal::float3 q_3 = _e7 + (dir_7 * e0_); float _e49 = fog.inhale2_.y; float a_4 = (-(_e49) * (1.0 - (e_3 / metal::max(e0_, 0.0001)))) * metal::min(e_3 / 0.6, 1.0); metal::float2 r_3 = q_3.xz - mid; float ca = metal::cos(a_4); float sa = metal::sin(a_4); return metal::float3((mid.x + (r_3.x * ca)) - (r_3.y * sa), q_3.y, (mid.y + (r_3.x * sa)) + (r_3.y * ca)); } bool nearFog( metal::float3 p_14, float g_1, constant Fog& fog ) { bool local_7 = {}; bool local_8 = {}; bool local_9 = {}; bool local_10 = {}; bool local_11 = {}; bool local_12 = {}; bool local_13 = {}; bool local_14 = {}; bool local_15 = {}; float _e5 = fog.env.z; if (_e5 > 0.001) { metal::float4 _e12 = fog.core0_; metal::float4 _e16 = fog.core1_; metal::float2 _e18 = segPoint(p_14, _e12.xyz, _e16.xyz); float _e23 = fog.env.x; local_7 = _e18.x < (_e23 + g_1); } else { local_7 = false; } bool _e27 = local_7; if (_e27) { return true; } float _e32 = fog.bank0_.w; if (_e32 > 0.001) { metal::float4 _e39 = fog.bank0_; float _e44 = fog.bank1_.w; local_8 = metal::all(p_14 > (_e39.xyz - metal::float3(_e44 + g_1))); } else { local_8 = false; } bool _e51 = local_8; if (_e51) { metal::float4 _e56 = fog.bank1_; float _e61 = fog.bank1_.w; local_9 = metal::all(p_14 < (_e56.xyz + metal::float3(_e61 + g_1))); } else { local_9 = false; } bool _e68 = local_9; if (_e68) { return true; } float _e73 = fog.fogD.x; if (_e73 > 0.001) { metal::float4 _e80 = fog.surge; float _e87 = fog.surge.w; local_10 = metal::length(p_14 - _e80.xyz) < ((_e87 * 1.35) + g_1); } else { local_10 = false; } bool _e93 = local_10; if (_e93) { return true; } float _e98 = fog.fogD.y; if (_e98 > 0.001) { metal::float4 _e105 = fog.gather; float _e112 = fog.gather.w; local_11 = metal::length(p_14 - _e105.xyz) < ((_e112 * 1.25) + g_1); } else { local_11 = false; } bool _e118 = local_11; if (_e118) { return true; } float _e123 = fog.sleeveB.w; if (_e123 > 0.001) { metal::float4 _e130 = fog.sleeveA; metal::float4 _e134 = fog.sleeveB; metal::float2 _e136 = segPoint(p_14, _e130.xyz, _e134.xyz); float _e141 = fog.sleeveA.w; local_12 = _e136.x < ((_e141 * 2.0) + g_1); } else { local_12 = false; } bool _e147 = local_12; if (_e147) { return true; } float _e152 = fog.pour.z; if (_e152 > 0.001) { float _e161 = fog.pour2_.z; float _e166 = fog.pour.y; local_13 = (p_14.y - _e161) < ((_e166 * 5.0) + g_1); } else { local_13 = false; } bool _e172 = local_13; if (_e172) { metal::float3 _e175 = doorSpace(p_14, fog); float _e180 = fog.pour2_.y; float _e185 = fog.pour.x; local_14 = (_e175.x - _e180) < (_e185 + g_1); } else { local_14 = false; } bool _e189 = local_14; if (_e189) { return true; } float _e194 = fog.fogD.z; if (_e194 > 0.001) { metal::float4 _e201 = fog.puff; float _e208 = fog.puff.w; local_15 = metal::length(p_14 - _e201.xyz) < ((_e208 * 1.4) + g_1); } else { local_15 = false; } bool _e214 = local_15; if (_e214) { return true; } return false; } float throughDoor( metal::float3 pw, constant Fog& fog ) { float wx = fog.pour2_.y; metal::float3 _e5 = doorSpace(pw, fog); metal::float4 _e8 = fog.hall; metal::float3 _e10 = doorSpace(_e8.xyz, fog); if (_e5.x <= wx) { return 1.0; } float s_5 = (wx - _e10.x) / metal::max(_e5.x - _e10.x, 0.0001); metal::float3 c_7 = _e10 + ((_e5 - _e10) * s_5); float _e29 = fog.door.y; float _e34 = fog.door.y; float _e41 = fog.door.z; float _e46 = fog.door.z; float inZ = metal::smoothstep(_e29 - 0.25, _e34 + 0.25, c_7.z) * (1.0 - metal::smoothstep(_e41 - 0.25, _e46 + 0.25, c_7.z)); float _e56 = fog.door.x; float _e61 = fog.door.x; float inY = 1.0 - metal::smoothstep(_e56 - 0.25, _e61 + 0.25, c_7.y); return inZ * inY; } float coreShadow( metal::float3 p_15, metal::float3 light_2, constant Fog& fog ) { float _e5 = fog.core3_.x; float k_2 = metal::clamp(_e5 * 0.6, 0.0, 0.92); if (k_2 <= 0.001) { return 1.0; } metal::float4 _e16 = fog.core0_; metal::float4 _e20 = fog.core1_; metal::float2 _e22 = segSeg(p_15, light_2, _e16.xyz, _e20.xyz); float _e26 = fog.core0_.w; float _e30 = fog.core1_.w; float rb_1 = metal::mix(_e26, _e30, _e22.y); metal::float4 _e35 = fog.core2_; metal::float2 _e37 = segPoint(_e35.xyz, p_15, light_2); float hd = _e37.x; float rh = fog.core2_.w; float block = metal::max(1.0 - metal::smoothstep(0.5 * rb_1, 1.2 * rb_1, _e22.x), 1.0 - metal::smoothstep(0.5 * rh, 1.25 * rh, hd)); return 1.0 - (k_2 * block); } metal::float2 boxRay( metal::float3 o, metal::float3 dir_2, metal::float3 lo_1, metal::float3 hi_1 ) { metal::float3 inv_1 = metal::float3(1.0) / metal::select(dir_2, metal::float3(0.000001), metal::abs(dir_2) < metal::float3(0.000001)); metal::float3 ta_1 = (lo_1 - o) * inv_1; metal::float3 tb_1 = (hi_1 - o) * inv_1; metal::float3 tmin_1 = metal::min(ta_1, tb_1); metal::float3 tmax_1 = metal::max(ta_1, tb_1); return metal::float2(metal::max(metal::max(tmin_1.x, tmin_1.y), metal::max(tmin_1.z, 0.0)), metal::min(metal::min(tmax_1.x, tmax_1.y), tmax_1.z)); } float sceneHit( metal::float3 o_1, metal::float3 dir_3, float tMax, constant Fog& fog ) { float t_1 = {}; bool local_16 = {}; bool local_17 = {}; bool local_18 = {}; t_1 = tMax; if (dir_3.y < 0.0) { float _e7 = t_1; float _e11 = fog.pour2_.z; t_1 = metal::min(_e7, (_e11 - o_1.y) / dir_3.y); } float _e20 = fog.desk.x; float _e24 = fog.pour2_.z; float _e28 = fog.desk.z; float _e33 = fog.desk.y; float _e37 = fog.room.x; float _e41 = fog.desk.w; metal::float2 _e43 = boxRay(o_1, dir_3, metal::float3(_e20, _e24, _e28), metal::float3(_e33, _e37, _e41)); if (_e43.x < _e43.y) { float _e47 = t_1; t_1 = metal::min(_e47, _e43.x); } metal::float3 _e50 = doorSpace(o_1, fog); metal::float3 _e51 = doorVec(dir_3, fog); if (_e51.x < 0.0) { float _e61 = fog.pour2_.y; local_16 = _e50.x > _e61; } else { local_16 = false; } bool _e64 = local_16; if (_e64) { float _e68 = fog.pour2_.y; float tw = (_e68 - _e50.x) / _e51.x; metal::float3 c_8 = _e50 + (_e51 * tw); float _e79 = fog.door.y; if (c_8.z > _e79) { float _e87 = fog.door.z; local_17 = c_8.z < _e87; } else { local_17 = false; } bool _e90 = local_17; if (_e90) { float _e97 = fog.door.x; local_18 = c_8.y < _e97; } else { local_18 = false; } bool open_1 = local_18; if (!(open_1)) { float _e102 = t_1; t_1 = metal::min(_e102, tw); } } float _e104 = t_1; return _e104; } metal::float4 corePart( metal::float3 o_2, metal::float3 dir_4, metal::float3 a_1, float ra, metal::float3 b_1, float rb, float far, float nz, constant Fog& fog ) { metal::float2 _e12 = segSeg(o_2, o_2 + (dir_4 * (far + 4.0)), a_1, b_1); float s_6 = _e12.y; float r_4 = metal::max(metal::mix(ra, rb, s_6), 0.001); metal::float3 q0_1 = metal::mix(a_1, b_1, s_6); float t_4 = metal::max(metal::dot(q0_1 - o_2, dir_4), 0.0); float q_4 = _e12.x / r_4; float _e27 = fog.core3_.z; float qe = q_4 + ((_e27 * (nz - 0.5)) * 2.0); float _e37 = fog.core3_.y; float edge = 1.0 - metal::smoothstep(1.0 - _e37, 1.0, qe); metal::float3 ax = metal::normalize((b_1 - a_1) + metal::float3(0.000001)); float sinA = metal::sqrt(metal::max(1.0 - (metal::dot(ax, dir_4) * metal::dot(ax, dir_4)), 0.09)); float half_ = (r_4 * metal::sqrt(metal::max(1.0 - (0.7 * metal::min(q_4 * q_4, 1.0)), 0.0))) / sinA; float seen = metal::clamp((far - (t_4 - half_)) / metal::max(2.0 * half_, 0.001), 0.0, 1.0); return metal::float4(((2.0 * half_) * edge) * seen, metal::min(t_4, far), q_4, s_6); } Core coreOf( metal::float3 o_3, metal::float3 dir_5, float far_1, float time, constant Fog& fog, metal::texture2d noiseTex, metal::sampler noiseSamp ) { Core c_5 = {}; metal::float3 L = {}; c_5.tau = 0.0; c_5.t = 1000000000.0; c_5.col = metal::float3(0.0); c_5.tShadow = -1.0; float ext = fog.core3_.x; if (ext <= 0.001) { Core _e20 = c_5; return _e20; } metal::float4 _e25 = fog.core0_; metal::float4 _e29 = fog.core2_; metal::float2 _e31 = segSeg(o_3, o_3 + (dir_5 * far_1), _e25.xyz, _e29.xyz); metal::float4 _e34 = fog.core0_; metal::float4 _e38 = fog.core2_; float tn = metal::max(metal::dot(metal::mix(_e34.xyz, _e38.xyz, _e31.y) - o_3, dir_5), 0.0); float _e50 = fog.core0_.w; c_5.tShadow = tn + _e50; metal::float3 pn = o_3 + (dir_5 * tn); float _e57 = fog.look.z; float ns = _e57 * 0.9; metal::float2 _e69 = noise2_((pn * ns) + metal::float3(0.0, -(time) * 0.8, time * 0.27), noiseTex, noiseSamp); metal::float2 _e84 = noise2_(((pn * ns) * 3.4) + metal::float3(_e69.y * 1.7, -(time) * 1.6, _e69.x * 1.3), noiseTex, noiseSamp); float lod = metal::clamp(7.0 / metal::max(tn, 0.001), 0.0, 1.0); float nz_1 = (_e69.x * (1.0 - (0.45 * lod))) + ((_e84.x * 0.45) * lod); float rh_1 = fog.core2_.w; metal::float4 _e109 = fog.core0_; float _e114 = fog.core0_.w; metal::float4 _e117 = fog.core1_; float _e122 = fog.core1_.w; metal::float4 _e123 = corePart(o_3, dir_5, _e109.xyz, _e114, _e117.xyz, _e122, far_1, nz_1, fog); metal::float4 _e126 = fog.core1_; float _e131 = fog.core1_.w; metal::float4 _e136 = fog.core2_; metal::float4 _e140 = corePart(o_3, dir_5, _e126.xyz, _e131 * 0.62, _e136.xyz, rh_1 * 0.9, far_1, nz_1, fog); metal::float4 _e143 = fog.core2_; metal::float3 hoodTop = _e143.xyz + metal::float3(0.0, rh_1 * 0.55, 0.0); metal::float4 _e153 = fog.core2_; metal::float4 _e163 = corePart(o_3, dir_5, _e153.xyz - metal::float3(0.0, rh_1 * 0.25, 0.0), rh_1, hoodTop, rh_1 * 0.62, far_1, nz_1, fog); float fray = metal::smoothstep(0.0, 0.55, _e123.w) * (0.55 + (0.45 * _e84.y)); float tb_2 = _e123.x * fray; float tau = ((tb_2 + _e140.x) + _e163.x) * ext; if (tau <= 0.002) { Core _e183 = c_5; return _e183; } float wsum = metal::max((tb_2 + _e140.x) + _e163.x, 0.00001); float t_5 = (((_e123.y * tb_2) + (_e140.y * _e140.x)) + (_e163.y * _e163.x)) / wsum; float q_5 = (((_e123.z * tb_2) + (_e140.z * _e140.x)) + (_e163.z * _e163.x)) / wsum; metal::float3 p_16 = o_3 + (dir_5 * t_5); metal::float4 _e216 = fog.candle; metal::float3 toC = _e216.xyz - p_16; float dc2_ = metal::dot(toC, toC); metal::float3 Lc = toC * metal::rsqrt(metal::max(dc2_, 0.00000001)); float _e227 = fog.candle.w; float _e231 = fog.candleColor.w; float Ec = _e227 / ((dc2_ + _e231) + 0.35); float front_2 = 0.35 + (0.65 * metal::max(metal::dot(Lc, -(dir_5)), 0.0)); metal::float4 _e246 = fog.candleColor; L = _e246.xyz * (Ec * front_2); float _e254 = fog.hall.w; if (_e254 > 0.0) { metal::float4 _e259 = fog.hall; metal::float3 toH = _e259.xyz - p_16; float dh2_ = metal::dot(toH, toH); float _e266 = fog.hall.w; float _e270 = throughDoor(p_16, fog); float Eh_1 = (_e266 / (dh2_ + 1.0)) * _e270; float cosH = metal::dot(-(toH) * metal::rsqrt(metal::max(dh2_, 0.00000001)), -(dir_5)); metal::float3 _e279 = L; metal::float4 _e282 = fog.hallColor; float _e287 = fog.hallColor.w; float _e288 = hgPhase(cosH, _e287); L = _e279 + (_e282.xyz * (((Eh_1 * _e288) * metal::smoothstep(0.45, 1.0, q_5)) * 0.9)); } metal::float3 _e298 = L; metal::float4 _e301 = fog.ambient; L = _e298 + _e301.xyz; c_5.tau = tau; c_5.t = t_5; metal::float3 _e307 = L; float _e311 = fog.core3_.w; c_5.col = _e307 * _e311; Core _e313 = c_5; return _e313; } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_9 pos = type_9 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p_17 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p_17, 0.0, 1.0); out.uv = metal::float2((p_17.x * 0.5) + 0.5, 0.5 - (p_17.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Fog& fog [[buffer(0)]] , metal::texture2d noiseTex [[texture(0)]] , metal::sampler noiseSamp [[sampler(0)]] ) { const FsOut in = { position, varyings_1.uv }; Core core = {}; bool local = {}; bool coreLeft = {}; float T = 1.0; metal::float3 col = metal::float3(0.0); int i = 0; bool local_1 = {}; bool local_2 = {}; float Eh = {}; bool local_3 = {}; float _e4 = fog.ambient.w; if (_e4 < 0.002) { return fs_mainOutput { metal::float4(0.0) }; } metal::float2 ndc = metal::float2((in.uv.x * 2.0) - 1.0, 1.0 - (in.uv.y * 2.0)); metal::float4x4 _e24 = fog.invViewProj; metal::float4 pn_1 = _e24 * metal::float4(ndc, 0.0, 1.0); metal::float4x4 _e31 = fog.invViewProj; metal::float4 pf = _e31 * metal::float4(ndc, 1.0, 1.0); metal::float4 _e38 = fog.eye; metal::float3 o_4 = _e38.xyz; metal::float3 dir_8 = metal::normalize((pf.xyz / metal::float3(pf.w)) - (pn_1.xyz / metal::float3(pn_1.w))); metal::float4 _e52 = fog.boxMin; metal::float4 _e56 = fog.boxMax; metal::float2 _e58 = boxRay(o_4, dir_8, _e52.xyz, _e56.xyz); if (_e58.x >= _e58.y) { return fs_mainOutput { metal::float4(0.0) }; } float _e66 = sceneHit(o_4, dir_8, _e58.y, fog); float t1_1 = metal::min(_e58.y, _e66); float t0_1 = _e58.x; if (t1_1 <= t0_1) { return fs_mainOutput { metal::float4(0.0) }; } float time_1 = fog.eye.w; Core _e76 = coreOf(o_4, dir_8, t1_1, time_1, fog, noiseTex, noiseSamp); core = _e76; float _e79 = core.tau; if (_e79 > 0.002) { float _e85 = core.t; local = _e85 <= t1_1; } else { local = false; } bool _e88 = local; coreLeft = _e88; float _e93 = fog.boxMin.w; float steps = metal::max(_e93, 4.0); float dt_1 = (t1_1 - t0_1) / steps; float _e100 = ign(in.position.xy); float jit = metal::fract(_e100 + (time_1 * 0.61803)); float gH = fog.hallColor.w; float gC = fog.eyeColor.w; float ext_1 = fog.look.x; float albedo = fog.look.y; float ns_1 = fog.look.z; float ero = fog.look.w; float _e132 = fog.room.y; float reach = 0.9 * _e132; uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e483 = i; i = as_type(as_type(_e483) + as_type(1)); } loop_init_1 = false; int _e142 = i; if (_e142 < 48) { } else { break; } { int _e145 = i; if (!((static_cast(_e145) >= steps))) { float _e151 = T; local_1 = _e151 < 0.015; } else { local_1 = true; } bool _e155 = local_1; if (_e155) { break; } int _e156 = i; float t_6 = t0_1 + ((static_cast(_e156) + jit) * dt_1); bool _e161 = coreLeft; if (_e161) { float _e165 = core.t; local_2 = t_6 > _e165; } else { local_2 = false; } bool _e168 = local_2; if (_e168) { float _e170 = core.tau; float a_5 = metal::exp(-(_e170)); metal::float3 _e173 = col; float _e174 = T; metal::float3 _e176 = core.col; col = _e173 + ((_e174 * _e176) * (1.0 - a_5)); float _e182 = T; T = _e182 * a_5; coreLeft = false; } metal::float3 p_18 = o_4 + (dir_8 * t_6); metal::float3 _e187 = drawnFrom(p_18, fog); bool _e188 = nearFog(_e187, reach, fog); if (!(_e188)) { continue; } metal::float3 pw_1 = (_e187 * ns_1) + metal::float3(0.0, -(time_1) * 0.45, time_1 * 0.13); metal::float2 _e207 = noise2_((pw_1 * 0.42) + metal::float3(0.0, time_1 * 0.1, 0.0), noiseTex, noiseSamp); metal::float2 _e218 = noise2_((pw_1 * 0.42) + metal::float3(19.1, 7.3 + (time_1 * 0.08), 3.7), noiseTex, noiseSamp); float _e229 = fog.room.y; float _e239 = fog.room.y; metal::float3 warp = ((metal::float3(_e207.x, _e218.x, _e207.y) - metal::float3(0.5)) * _e229) + metal::float3(0.0, ((_e218.y - 0.5) * 0.4) * _e239, 0.0); metal::float2 _e246 = shape(_e187 + warp, fog); float _e250 = fog.ambient.w; metal::float2 media = _e246 * _e250; float base = media.x + media.y; if (base > 0.003) { metal::float3 q_6 = pw_1 + (warp * ns_1); metal::float2 _e259 = noise2_(q_6, noiseTex, noiseSamp); metal::float2 _e279 = noise2_(((q_6 * 2.31) + metal::float3(_e259.y * 1.3, 4.1, _e259.x * 1.1)) + metal::float3(time_1 * 0.17, -(time_1) * 0.55, 0.0), noiseTex, noiseSamp); float detail = (_e259.x * 0.6) + (_e279.x * 0.4); float wisp = metal::smoothstep(0.34 + (0.3 * ero), 0.82, detail + (0.25 * metal::min(base, 1.0))); float dens_1 = (base * metal::mix(1.0, wisp, ero)) * (0.7 + (0.6 * _e279.y)); float _e313 = fog.env.w; float _e320 = fog.inhale2_.z; float alb = metal::mix(((media.x * albedo) + (media.y * _e313)) / base, albedo, _e320); if (dens_1 > 0.0) { float sigma = dens_1 * ext_1; metal::float4 _e327 = fog.candle; metal::float3 toC_1 = _e327.xyz - p_18; float dc2_1 = metal::dot(toC_1, toC_1); float lift = 1.0 + ((3.0 * dc2_1) / (dc2_1 + 3.0)); float _e341 = fog.candle.w; float _e346 = fog.candleColor.w; float Ec_1 = (_e341 * lift) / ((dc2_1 + _e346) + 0.35); float cosC = metal::dot(-(toC_1) * metal::rsqrt(metal::max(dc2_1, 0.00000001)), -(dir_8)); metal::float4 _e360 = fog.hall; metal::float3 toH_1 = _e360.xyz - p_18; float dh2_1 = metal::dot(toH_1, toH_1); Eh = 0.0; float _e369 = fog.hall.w; if (_e369 > 0.0) { float _e375 = fog.hall.w; float _e381 = throughDoor(p_18, fog); Eh = ((_e375 * 1.3) / (dh2_1 + 3.0)) * _e381; float _e383 = Eh; if (_e383 > 0.002) { float _e389 = core.tShadow; local_3 = t_6 < _e389; } else { local_3 = false; } bool _e392 = local_3; if (_e392) { float _e393 = Eh; metal::float4 _e396 = fog.hall; float _e398 = coreShadow(p_18, _e396.xyz, fog); Eh = _e393 * _e398; } } float cosH_1 = metal::dot(-(toH_1) * metal::rsqrt(metal::max(dh2_1, 0.00000001)), -(dir_8)); metal::float4 _e409 = fog.eyeL; metal::float3 el = p_18 - _e409.xyz; metal::float4 _e414 = fog.eyeR; metal::float3 er = p_18 - _e414.xyz; float _e420 = fog.eyeL.w; float _e425 = fog.eyeR.w; float _e433 = fog.eyeR.w; float Ee = _e420 * ((1.0 / (metal::dot(el, el) + _e425)) + (1.0 / (metal::dot(er, er) + _e433))); metal::float4 _e441 = fog.candleColor; float _e443 = hgPhase(cosC, gC); metal::float4 _e450 = fog.hallColor; float _e452 = Eh; float _e453 = hgPhase(cosH_1, gH); metal::float4 _e461 = fog.eyeColor; metal::float4 _e467 = fog.ambient; metal::float3 L_1 = (((_e441.xyz * ((Ec_1 * _e443) * 1.3)) + (_e450.xyz * ((_e452 * _e453) * 0.35))) + (_e461.xyz * Ee)) + _e467.xyz; float a_6 = metal::exp(-(sigma) * dt_1); metal::float3 _e473 = col; float _e474 = T; col = _e473 + ((_e474 * (L_1 * alb)) * (1.0 - a_6)); float _e481 = T; T = _e481 * a_6; } } } } bool _e486 = coreLeft; if (_e486) { float _e488 = core.tau; float a_7 = metal::exp(-(_e488)); metal::float3 _e491 = col; float _e492 = T; metal::float3 _e494 = core.col; col = _e491 + ((_e492 * _e494) * (1.0 - a_7)); float _e500 = T; T = _e500 * a_7; } float _e502 = T; float alpha = 1.0 - _e502; metal::float3 _e505 = col; float _e509 = fog.boxMax.w; metal::float3 _e510 = encodeHdr(_e505, _e509); return fs_mainOutput { metal::float4(_e510, alpha) }; }  `dͦ<“8vvs_mainmainístruct FsOut { float4 position; float2 uv; }; struct Fog { row_major float4x4 invViewProj; float4 eye; float4 boxMin; float4 boxMax; float4 candle; float4 candleColor; float4 hall; float4 hallColor; float4 eyeL; float4 eyeR; float4 eyeColor; float4 env; float4 core0; float4 core1; float4 core2; float4 core3; float4 bank0; float4 bank1; float4 surge; float4 gather; float4 fogD; float4 sleeveA; float4 sleeveB; float4 pour; float4 pour2; float4 puff; float4 desk; float4 room; float4 door; float4 ambient; float4 look; float4 inhale; float4 inhale2; float4 door0; float4 door1; }; struct Core { float tau; float t; float3 col; float tShadow; }; static const float2 _968[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _973 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _973; uint _977 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_968[_977], 0.0f, 1.0f); _out.uv = float2((_968[_977].x * 0.5f) + 0.5f, 0.5f - (_968[_977].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmaináfstruct FsOut { float4 position; float2 uv; }; struct Fog { row_major float4x4 invViewProj; float4 eye; float4 boxMin; float4 boxMax; float4 candle; float4 candleColor; float4 hall; float4 hallColor; float4 eyeL; float4 eyeR; float4 eyeColor; float4 env; float4 core0; float4 core1; float4 core2; float4 core3; float4 bank0; float4 bank1; float4 surge; float4 gather; float4 fogD; float4 sleeveA; float4 sleeveB; float4 pour; float4 pour2; float4 puff; float4 desk; float4 room; float4 door; float4 ambient; float4 look; float4 inhale; float4 inhale2; float4 door0; float4 door1; }; struct Core { float tau; float t; float3 col; float tShadow; }; static const Core _1874 = { 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Core _2141 = { 0.0f, 0.0f, float3(0.0f, 0.0f, 0.0f), 0.0f }; cbuffer fog : register(b0) { Fog fog_1_m0 : packoffset(c0); }; Texture2D noiseTex : register(t0); SamplerState noiseSamp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _2117; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _2117 : SV_Target0; }; float2 boxRay(float3 o, float3 dir, float3 lo, float3 hi) { float3 _1663 = abs(dir); bool3 _1664 = bool3(_1663.x < float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).x, _1663.y < float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).y, _1663.z < float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).z); float3 _1666 = float3(1.0f, 1.0f, 1.0f) / float3(_1664.x ? float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).x : dir.x, _1664.y ? float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).y : dir.y, _1664.z ? float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).z : dir.z); float3 _1668 = (lo - o) * _1666; float3 _1670 = (hi - o) * _1666; float3 _1671 = min(_1668, _1670); float3 _1672 = max(_1668, _1670); return float2(max(max(_1671.x, _1671.y), max(_1671.z, 0.0f)), min(min(_1672.x, _1672.y), _1672.z)); } float3 doorSpace(float3 p) { float2 _991 = p.xz - fog_1_m0.door0.xy; return float3(fog_1_m0.door1.z + dot(_991, fog_1_m0.door0.zw), p.y, fog_1_m0.door1.w + dot(_991, fog_1_m0.door1.xy)); } float3 doorVec(float3 v) { return float3(dot(v.xz, fog_1_m0.door0.zw), v.y, dot(v.xz, fog_1_m0.door1.xy)); } float sceneHit(float3 o, float3 dir, float tMax) { bool _1694 = false; bool _1698 = false; float t = 0.0f; bool _1696 = false; t = tMax; if (dir.y < 0.0f) { t = min(t, (fog_1_m0.pour2.z - o.y) / dir.y); } float2 _1728 = boxRay(o, dir, float3(fog_1_m0.desk.x, fog_1_m0.pour2.z, fog_1_m0.desk.z), float3(fog_1_m0.desk.y, fog_1_m0.room.x, fog_1_m0.desk.w)); if (_1728.x < _1728.y) { t = min(t, _1728.x); } float3 _1737 = doorSpace(o); float3 _1738 = doorVec(dir); if (_1738.x < 0.0f) { _1694 = _1737.x > fog_1_m0.pour2.y; } else { _1694 = false; } if (_1694) { float _1756 = (fog_1_m0.pour2.y - _1737.x) / _1738.x; float3 _1758 = _1737 + (_1738 * _1756); if (_1758.z > fog_1_m0.door.y) { _1696 = _1758.z < fog_1_m0.door.z; } else { _1696 = false; } if (_1696) { _1698 = _1758.y < fog_1_m0.door.x; } else { _1698 = false; } if (!_1698) { t = min(t, _1756); } } return t; } float2 segSeg(float3 p0, float3 p1, float3 q0, float3 q1) { float s = 0.0f; float t = 0.0f; float3 _882 = p1 - p0; float3 _883 = q1 - q0; float3 _884 = p0 - q0; float _885 = dot(_882, _882); float _887 = max(dot(_883, _883), 9.9999999747524270787835121154785e-07f); float _888 = dot(_883, _884); float _889 = dot(_882, _884); float _890 = dot(_882, _883); float _893 = (_885 * _887) - (_890 * _890); if (_893 > 9.9999999747524270787835121154785e-07f) { s = clamp(((_890 * _888) - (_889 * _887)) / _893, 0.0f, 1.0f); } t = ((_890 * s) + _888) / _887; if (t < 0.0f) { t = 0.0f; s = clamp((-_889) / max(_885, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f); } else { if (t > 1.0f) { t = 1.0f; s = clamp((_890 - _889) / max(_885, 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f); } } return float2(length(((p0 + (_882 * s)) - q0) - (_883 * t)), t); } float2 _noise2(float3 p) { float3 f = float3(0.0f, 0.0f, 0.0f); float3 _820 = floor(p); f = p - _820; f = (f * f) * (float3(3.0f, 3.0f, 3.0f) - (f * 2.0f)); float4 _840 = noiseTex.SampleLevel(noiseSamp, (((_820.xy + (float2(37.0f, 17.0f) * _820.z)) + f.xy) + float2(0.5f, 0.5f)) * 0.00390625f, 0.0f); return float2(lerp(_840.x, _840.y, f.z), lerp(_840.z, _840.w, f.z)); } float4 corePart(float3 o, float3 dir, float3 a, float ra, float3 b, float rb, float far, float nz) { float2 _1801 = segSeg(o, o + (dir * (far + 4.0f)), a, b); float _1802 = _1801.y; float _1804 = max(lerp(ra, rb, _1802), 0.001000000047497451305389404296875f); float _1809 = max(dot(lerp(a, b, float3(_1802, _1802, _1802)) - o, dir), 0.0f); float _1811 = _1801.x / _1804; float3 _1825 = normalize((b - a) + float3(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f)); float _1839 = (_1804 * sqrt(max(1.0f - (0.699999988079071044921875f * min(_1811 * _1811, 1.0f)), 0.0f))) / sqrt(max(1.0f - (dot(_1825, dir) * dot(_1825, dir)), 0.0900000035762786865234375f)); return float4(((2.0f * _1839) * (1.0f - smoothstep(1.0f - fog_1_m0.core3.y, 1.0f, _1811 + ((fog_1_m0.core3.z * (nz - 0.5f)) * 2.0f)))) * clamp((far - (_1809 - _1839)) / max(2.0f * _1839, 0.001000000047497451305389404296875f), 0.0f, 1.0f), min(_1809, far), _1811, _1802); } float throughDoor(float3 pw) { float3 _1558 = doorSpace(pw); float3 _1563 = doorSpace(fog_1_m0.hall.xyz); if (_1558.x <= fog_1_m0.pour2.y) { return 1.0f; } float3 _1577 = _1563 + ((_1558 - _1563) * ((fog_1_m0.pour2.y - _1563.x) / max(_1558.x - _1563.x, 9.9999997473787516355514526367188e-05f))); return (smoothstep(fog_1_m0.door.y - 0.25f, fog_1_m0.door.y + 0.25f, _1577.z) * (1.0f - smoothstep(fog_1_m0.door.z - 0.25f, fog_1_m0.door.z + 0.25f, _1577.z))) * (1.0f - smoothstep(fog_1_m0.door.x - 0.25f, fog_1_m0.door.x + 0.25f, _1577.y)); } float hgPhase(float cosT, float g) { float _618 = g * g; return (1.0f - _618) / pow(max((1.0f + _618) - ((2.0f * g) * cosT), 9.9999997473787516355514526367188e-05f), 1.5f); } Core coreOf(float3 o, float3 dir, float far, float time) { Core c = _1874; float3 L = float3(0.0f, 0.0f, 0.0f); c.tau = 0.0f; c.t = 1000000000.0f; c.col = float3(0.0f, 0.0f, 0.0f); c.tShadow = -1.0f; if (fog_1_m0.core3.x <= 0.001000000047497451305389404296875f) { return c; } float _1908 = max(dot(lerp(fog_1_m0.core0.xyz, fog_1_m0.core2.xyz, float3(segSeg(o, o + (dir * far), fog_1_m0.core0.xyz, fog_1_m0.core2.xyz).yyy)) - o, dir), 0.0f); c.tShadow = _1908 + fog_1_m0.core0.w; float3 _1914 = o + (dir * _1908); float _1918 = fog_1_m0.look.z * 0.89999997615814208984375f; float2 _1925 = _noise2((_1914 * _1918) + float3(0.0f, (-time) * 0.800000011920928955078125f, time * 0.2700000107288360595703125f)); float2 _1936 = _noise2(((_1914 * _1918) * 3.400000095367431640625f) + float3(_1925.y * 1.7000000476837158203125f, (-time) * 1.60000002384185791015625f, _1925.x * 1.2999999523162841796875f)); float _1939 = clamp(7.0f / max(_1908, 0.001000000047497451305389404296875f), 0.0f, 1.0f); float _1947 = (_1925.x * (1.0f - (0.449999988079071044921875f * _1939))) + ((_1936.x * 0.449999988079071044921875f) * _1939); float4 _1960 = corePart(o, dir, fog_1_m0.core0.xyz, fog_1_m0.core0.w, fog_1_m0.core1.xyz, fog_1_m0.core1.w, far, _1947); float4 _1971 = corePart(o, dir, fog_1_m0.core1.xyz, fog_1_m0.core1.w * 0.62000000476837158203125f, fog_1_m0.core2.xyz, fog_1_m0.core2.w * 0.89999997615814208984375f, far, _1947); float4 _1985 = corePart(o, dir, fog_1_m0.core2.xyz - float3(0.0f, fog_1_m0.core2.w * 0.25f, 0.0f), fog_1_m0.core2.w, fog_1_m0.core2.xyz + float3(0.0f, fog_1_m0.core2.w * 0.550000011920928955078125f, 0.0f), fog_1_m0.core2.w * 0.62000000476837158203125f, far, _1947); float _1993 = _1960.x * (smoothstep(0.0f, 0.550000011920928955078125f, _1960.w) * (0.550000011920928955078125f + (0.449999988079071044921875f * _1936.y))); float _1998 = ((_1993 + _1971.x) + _1985.x) * fog_1_m0.core3.x; if (_1998 <= 0.00200000009499490261077880859375f) { return c; } float _2007 = max((_1993 + _1971.x) + _1985.x, 9.9999997473787516355514526367188e-06f); float _2018 = (((_1960.y * _1993) + (_1971.y * _1971.x)) + (_1985.y * _1985.x)) / _2007; float3 _2031 = o + (dir * _2018); float3 _2036 = fog_1_m0.candle.xyz - _2031; float _2037 = dot(_2036, _2036); L = fog_1_m0.candleColor.xyz * ((fog_1_m0.candle.w / ((_2037 + fog_1_m0.candleColor.w) + 0.3499999940395355224609375f)) * (0.3499999940395355224609375f + (0.64999997615814208984375f * max(dot(_2036 * rsqrt(max(_2037, 9.9999999392252902907785028219223e-09f)), -dir), 0.0f)))); if (fog_1_m0.hall.w > 0.0f) { float3 _2067 = fog_1_m0.hall.xyz - _2031; float _2068 = dot(_2067, _2067); L += (fog_1_m0.hallColor.xyz * (((((fog_1_m0.hall.w / (_2068 + 1.0f)) * throughDoor(_2031)) * hgPhase(dot((-_2067) * rsqrt(max(_2068, 9.9999999392252902907785028219223e-09f)), -dir), fog_1_m0.hallColor.w)) * smoothstep(0.449999988079071044921875f, 1.0f, (((_1960.z * _1993) + (_1971.z * _1971.x)) + (_1985.z * _1985.x)) / _2007)) * 0.89999997615814208984375f)); } L += fog_1_m0.ambient.xyz; c.tau = _1998; c.t = _2018; c.col = L * fog_1_m0.core3.w; return c; } float ign(float2 p) { return frac(52.98291778564453125f * frac(dot(p, float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))); } float3 edgePoint(float3 p) { float3 _1268 = float3(fog_1_m0.inhale.y, fog_1_m0.inhale.w, clamp(p.z, -fog_1_m0.inhale.z, fog_1_m0.inhale.z)); float3 _1277 = float3(clamp(p.x, fog_1_m0.inhale.x, fog_1_m0.inhale.y), fog_1_m0.inhale.w, (p.z > 0.0f) ? fog_1_m0.inhale.z : (-fog_1_m0.inhale.z)); bool _1284 = dot(p - _1268, p - _1268) < dot(p - _1277, p - _1277); bool3 _1286 = bool3(_1284, _1284, _1284); return float3(_1286.x ? _1268.x : _1277.x, _1286.y ? _1268.y : _1277.y, _1286.z ? _1268.z : _1277.z); } float3 drawnFrom(float3 p) { if (fog_1_m0.inhale2.x <= 0.0f) { return p; } float3 _1299 = edgePoint(p); float3 _1300 = p - _1299; float _1301 = length(_1300); float2 _1308 = float2((fog_1_m0.inhale.x + fog_1_m0.inhale.y) * 0.5f, 0.0f); float3 _1316 = normalize(float3(p.x - _1308.x, 0.4000000059604644775390625f, p.z - _1308.y)); float _1317 = max(_1301, 9.9999997473787516355514526367188e-06f); float3 _1319 = _1300 / float3(_1317, _1317, _1317); bool _1320 = _1301 < 9.9999997473787516355514526367188e-05f; bool3 _1322 = bool3(_1320, _1320, _1320); float _1326 = pow(((_1301 * _1301) * _1301) + fog_1_m0.inhale2.x, 0.3333333432674407958984375f); float3 _1328 = _1299 + (float3(_1322.x ? _1316.x : _1319.x, _1322.y ? _1316.y : _1319.y, _1322.z ? _1316.z : _1319.z) * _1326); float _1338 = ((-fog_1_m0.inhale2.y) * (1.0f - (_1301 / max(_1326, 9.9999997473787516355514526367188e-05f)))) * min(_1301 / 0.60000002384185791015625f, 1.0f); float2 _1340 = _1328.xz - _1308; float _1341 = cos(_1338); float _1342 = sin(_1338); return float3((_1308.x + (_1340.x * _1341)) - (_1340.y * _1342), _1328.y, (_1308.y + (_1340.x * _1342)) + (_1340.y * _1341)); } float2 segPoint(float3 p, float3 a, float3 b) { float3 _860 = p - a; float3 _861 = b - a; float _866 = clamp(dot(_860, _861) / max(dot(_861, _861), 9.9999999747524270787835121154785e-07f), 0.0f, 1.0f); return float2(length(_860 - (_861 * _866)), _866); } bool nearFog(float3 p, float g) { bool _1380 = false; bool _1374 = false; bool _1368 = false; bool _1382 = false; bool _1376 = false; bool _1370 = false; bool _1384 = false; bool _1378 = false; bool _1372 = false; if (fog_1_m0.env.z > 0.001000000047497451305389404296875f) { _1368 = segPoint(p, fog_1_m0.core0.xyz, fog_1_m0.core1.xyz).x < (fog_1_m0.env.x + g); } else { _1368 = false; } if (_1368) { return true; } if (fog_1_m0.bank0.w > 0.001000000047497451305389404296875f) { float _1419 = fog_1_m0.bank1.w + g; float3 _1421 = fog_1_m0.bank0.xyz - float3(_1419, _1419, _1419); _1370 = all(bool3(p.x > _1421.x, p.y > _1421.y, p.z > _1421.z)); } else { _1370 = false; } if (_1370) { float _1433 = fog_1_m0.bank1.w + g; float3 _1435 = fog_1_m0.bank1.xyz + float3(_1433, _1433, _1433); _1372 = all(bool3(p.x < _1435.x, p.y < _1435.y, p.z < _1435.z)); } else { _1372 = false; } if (_1372) { return true; } if (fog_1_m0.fogD.x > 0.001000000047497451305389404296875f) { _1374 = length(p - fog_1_m0.surge.xyz) < ((fog_1_m0.surge.w * 1.35000002384185791015625f) + g); } else { _1374 = false; } if (_1374) { return true; } if (fog_1_m0.fogD.y > 0.001000000047497451305389404296875f) { _1376 = length(p - fog_1_m0.gather.xyz) < ((fog_1_m0.gather.w * 1.25f) + g); } else { _1376 = false; } if (_1376) { return true; } if (fog_1_m0.sleeveB.w > 0.001000000047497451305389404296875f) { _1378 = segPoint(p, fog_1_m0.sleeveA.xyz, fog_1_m0.sleeveB.xyz).x < ((fog_1_m0.sleeveA.w * 2.0f) + g); } else { _1378 = false; } if (_1378) { return true; } if (fog_1_m0.pour.z > 0.001000000047497451305389404296875f) { _1380 = (p.y - fog_1_m0.pour2.z) < ((fog_1_m0.pour.y * 5.0f) + g); } else { _1380 = false; } if (_1380) { _1382 = (doorSpace(p).x - fog_1_m0.pour2.y) < (fog_1_m0.pour.x + g); } else { _1382 = false; } if (_1382) { return true; } if (fog_1_m0.fogD.z > 0.001000000047497451305389404296875f) { _1384 = length(p - fog_1_m0.puff.xyz) < ((fog_1_m0.puff.w * 1.39999997615814208984375f) + g); } else { _1384 = false; } if (_1384) { return true; } return false; } float softBox(float3 p, float3 lo, float3 hi, float soft) { return 1.0f - smoothstep(0.0f, soft, length(max(max(lo - p, p - hi), float3(0.0f, 0.0f, 0.0f)))); } float blob(float3 p, float4 c, float dens, float squash) { float3 v = float3(0.0f, 0.0f, 0.0f); if (dens <= 0.001000000047497451305389404296875f) { return 0.0f; } v = p - c.xyz; v.y /= max(squash, 0.0500000007450580596923828125f); return dens * (1.0f - smoothstep(0.3499999940395355224609375f, 1.0f, length(v) / max(c.w, 0.001000000047497451305389404296875f))); } float2 shape(float3 p) { float d = 0.0f; float k = 0.0f; float3 _1043 = doorSpace(p); if (fog_1_m0.env.z > 0.001000000047497451305389404296875f) { float2 _1058 = segPoint(p, fog_1_m0.core0.xyz, fog_1_m0.core1.xyz); float _1064 = lerp(fog_1_m0.env.x, fog_1_m0.env.y, _1058.y); float _1075 = (fog_1_m0.env.z * lerp(1.0f, 0.300000011920928955078125f, smoothstep(0.0500000007450580596923828125f, 0.800000011920928955078125f, _1058.y))) * (1.0f - smoothstep(0.25f * _1064, _1064, _1058.x)); d += (fog_1_m0.door.w * _1075); k += ((1.0f - fog_1_m0.door.w) * _1075); } if (fog_1_m0.bank0.w > 0.001000000047497451305389404296875f) { d += ((fog_1_m0.bank0.w * lerp(1.0f, fog_1_m0.room.w, smoothstep(fog_1_m0.room.z, fog_1_m0.room.z + 1.39999997615814208984375f, _1043.x))) * softBox(p, fog_1_m0.bank0.xyz, fog_1_m0.bank1.xyz, fog_1_m0.bank1.w)); } float _1126 = blob(p, fog_1_m0.surge, fog_1_m0.fogD.x, 0.75f); d += (_1126 * (1.0f - fog_1_m0.fogD.w)); k += (_1126 * fog_1_m0.fogD.w); k += blob(p, fog_1_m0.gather, fog_1_m0.fogD.y, 0.800000011920928955078125f); if (fog_1_m0.sleeveB.w > 0.001000000047497451305389404296875f) { float2 _1159 = segPoint(p, fog_1_m0.sleeveB.xyz, fog_1_m0.sleeveA.xyz); float _1165 = fog_1_m0.sleeveA.w * (0.699999988079071044921875f + (1.2000000476837158203125f * _1159.y)); k += ((fog_1_m0.sleeveB.w * (1.0f - (0.60000002384185791015625f * _1159.y))) * (1.0f - smoothstep(0.100000001490116119384765625f * _1165, _1165, _1159.x))); } if (fog_1_m0.pour.z > 0.001000000047497451305389404296875f) { float _1189 = _1043.x - fog_1_m0.pour2.y; float _1193 = p.y - fog_1_m0.pour2.z; d += (((((fog_1_m0.pour.z * (1.0f - smoothstep(fog_1_m0.pour.x - 1.7999999523162841796875f, fog_1_m0.pour.x, _1189))) * exp((-max(_1193, 0.0f)) / max(fog_1_m0.pour.y * (1.0f + (0.25f * max(_1189, 0.0f))), 0.001000000047497451305389404296875f))) * (1.0f - smoothstep(-0.60000002384185791015625f, 0.89999997615814208984375f, abs(_1043.z - fog_1_m0.pour.w) - (fog_1_m0.pour2.x + (max(_1189, 0.0f) * fog_1_m0.pour2.w))))) * smoothstep(-4.0f, -2.5f, _1189)) * (1.0f - smoothstep(0.0f, 0.25f, -_1193))); } d += blob(p, fog_1_m0.puff, fog_1_m0.fogD.z, 0.550000011920928955078125f); return float2(d, k); } float coreShadow(float3 p, float3 light) { float _1618 = clamp(fog_1_m0.core3.x * 0.60000002384185791015625f, 0.0f, 0.920000016689300537109375f); if (_1618 <= 0.001000000047497451305389404296875f) { return 1.0f; } float2 _1628 = segSeg(p, light, fog_1_m0.core0.xyz, fog_1_m0.core1.xyz); float _1634 = lerp(fog_1_m0.core0.w, fog_1_m0.core1.w, _1628.y); return 1.0f - (_1618 * max(1.0f - smoothstep(0.5f * _1634, 1.2000000476837158203125f * _1634, _1628.x), 1.0f - smoothstep(0.5f * fog_1_m0.core2.w, 1.25f * fog_1_m0.core2.w, segPoint(fog_1_m0.core2.xyz, p, light).x))); } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { bool _2155 = false; bool _2149 = false; float T = 1.0f; Core core = _2141; bool _2151 = false; float3 col = float3(0.0f, 0.0f, 0.0f); bool _2142 = false; float Eh = 0.0f; int i = 0; bool coreLeft = false; uint2 loop_bound = uint2(4294967295u, 4294967295u); FsOut _2110 = { gl_FragCoord, uv }; if (fog_1_m0.ambient.w < 0.00200000009499490261077880859375f) { _2117 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } float2 _2171 = float2((_2110.uv.x * 2.0f) - 1.0f, 1.0f - (_2110.uv.y * 2.0f)); float4 _2176 = mul(float4(_2171, 0.0f, 1.0f), fog_1_m0.invViewProj); float4 _2180 = mul(float4(_2171, 1.0f, 1.0f), fog_1_m0.invViewProj); float3 _2193 = normalize((_2180.xyz / float3(_2180.www)) - (_2176.xyz / float3(_2176.www))); float2 _2200 = boxRay(fog_1_m0.eye.xyz, _2193, fog_1_m0.boxMin.xyz, fog_1_m0.boxMax.xyz); if (_2200.x >= _2200.y) { _2117 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } float _2209 = min(_2200.y, sceneHit(fog_1_m0.eye.xyz, _2193, _2200.y)); float _2210 = _2200.x; if (_2209 <= _2210) { _2117 = float4(0.0f, 0.0f, 0.0f, 0.0f); return; } core = coreOf(fog_1_m0.eye.xyz, _2193, _2209, fog_1_m0.eye.w); if (core.tau > 0.00200000009499490261077880859375f) { _2142 = core.t <= _2209; } else { _2142 = false; } coreLeft = _2142; float _2229 = max(fog_1_m0.boxMin.w, 4.0f); float _2231 = (_2209 - _2210) / _2229; float _2237 = frac(ign(_2110.position.xy) + (fog_1_m0.eye.w * 0.618030011653900146484375f)); float _2253 = 0.89999997615814208984375f * fog_1_m0.room.y; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 48)) { break; } if (!(float(i) >= _2229)) { _2149 = T < 0.014999999664723873138427734375f; } else { _2149 = true; } if (_2149) { break; } int _2287 = i; float _2291 = _2210 + ((float(_2287) + _2237) * _2231); if (coreLeft) { _2151 = _2291 > core.t; } else { _2151 = false; } if (_2151) { float _2305 = exp(-core.tau); col += ((core.col * T) * (1.0f - _2305)); T *= _2305; coreLeft = false; } float3 _2317 = fog_1_m0.eye.xyz + (_2193 * _2291); float3 _2318 = drawnFrom(_2317); if (!nearFog(_2318, _2253)) { int _2538 = i; i = _2538 + 1; continue; } float3 _2328 = (_2318 * fog_1_m0.look.z) + float3(0.0f, (-fog_1_m0.eye.w) * 0.449999988079071044921875f, fog_1_m0.eye.w * 0.12999999523162841796875f); float2 _2333 = _noise2((_2328 * 0.4199999868869781494140625f) + float3(0.0f, fog_1_m0.eye.w * 0.100000001490116119384765625f, 0.0f)); float2 _2339 = _noise2((_2328 * 0.4199999868869781494140625f) + float3(19.1000003814697265625f, 7.30000019073486328125f + (fog_1_m0.eye.w * 0.07999999821186065673828125f), 3.7000000476837158203125f)); float3 _2355 = ((float3(_2333.x, _2339.x, _2333.y) - float3(0.5f, 0.5f, 0.5f)) * fog_1_m0.room.y) + float3(0.0f, ((_2339.y - 0.5f) * 0.4000000059604644775390625f) * fog_1_m0.room.y, 0.0f); float2 _2360 = shape(_2318 + _2355) * fog_1_m0.ambient.w; float _2363 = _2360.x + _2360.y; if (_2363 > 0.0030000000260770320892333984375f) { float3 _2368 = _2328 + (_2355 * fog_1_m0.look.z); float2 _2369 = _noise2(_2368); float2 _2382 = _noise2(((_2368 * 2.309999942779541015625f) + float3(_2369.y * 1.2999999523162841796875f, 4.099999904632568359375f, _2369.x * 1.10000002384185791015625f)) + float3(fog_1_m0.eye.w * 0.17000000178813934326171875f, (-fog_1_m0.eye.w) * 0.550000011920928955078125f, 0.0f)); float _2399 = (_2363 * lerp(1.0f, smoothstep(0.3400000035762786865234375f + (0.300000011920928955078125f * fog_1_m0.look.w), 0.819999992847442626953125f, ((_2369.x * 0.60000002384185791015625f) + (_2382.x * 0.4000000059604644775390625f)) + (0.25f * min(_2363, 1.0f))), fog_1_m0.look.w)) * (0.699999988079071044921875f + (0.60000002384185791015625f * _2382.y)); if (_2399 > 0.0f) { float3 _2418 = fog_1_m0.candle.xyz - _2317; float _2419 = dot(_2418, _2418); float3 _2441 = fog_1_m0.hall.xyz - _2317; float _2442 = dot(_2441, _2441); Eh = 0.0f; if (fog_1_m0.hall.w > 0.0f) { Eh = ((fog_1_m0.hall.w * 1.2999999523162841796875f) / (_2442 + 3.0f)) * throughDoor(_2317); if (Eh > 0.00200000009499490261077880859375f) { _2155 = _2291 < core.tShadow; } else { _2155 = false; } if (_2155) { Eh *= coreShadow(_2317, fog_1_m0.hall.xyz); } } float3 _2481 = _2317 - fog_1_m0.eyeL.xyz; float3 _2486 = _2317 - fog_1_m0.eyeR.xyz; float _2528 = exp((-(_2399 * fog_1_m0.look.x)) * _2231); float3 _2532 = (((((fog_1_m0.candleColor.xyz * ((((fog_1_m0.candle.w * (1.0f + ((3.0f * _2419) / (_2419 + 3.0f)))) / ((_2419 + fog_1_m0.candleColor.w) + 0.3499999940395355224609375f)) * hgPhase(dot((-_2418) * rsqrt(max(_2419, 9.9999999392252902907785028219223e-09f)), -_2193), fog_1_m0.eyeColor.w)) * 1.2999999523162841796875f)) + (fog_1_m0.hallColor.xyz * ((Eh * hgPhase(dot((-_2441) * rsqrt(max(_2442, 9.9999999392252902907785028219223e-09f)), -_2193), fog_1_m0.hallColor.w)) * 0.3499999940395355224609375f))) + (fog_1_m0.eyeColor.xyz * (fog_1_m0.eyeL.w * ((1.0f / (dot(_2481, _2481) + fog_1_m0.eyeR.w)) + (1.0f / (dot(_2486, _2486) + fog_1_m0.eyeR.w)))))) + fog_1_m0.ambient.xyz) * lerp(((_2360.x * fog_1_m0.look.y) + (_2360.y * fog_1_m0.env.w)) / _2363, fog_1_m0.look.y, fog_1_m0.inhale2.z)) * T; col += (_2532 * (1.0f - _2528)); T *= _2528; } } int _2538 = i; i = _2538 + 1; continue; } if (coreLeft) { float _2546 = exp(-core.tau); col += ((core.col * T) * (1.0f - _2546)); T *= _2546; } _2117 = float4(encodeHdr(col, fog_1_m0.boxMax.w), 1.0f - T); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._2117 = _2117; return stage_output; }  `dͦ<“8vHSLTFog`# invViewProjÿÿÿÿeye@ÿÿÿÿboxMinPÿÿÿÿboxMax`ÿÿÿÿcandlepÿÿÿÿ candleColor€ÿÿÿÿhall�ÿÿÿÿ hallColor ÿÿÿÿeyeL°ÿÿÿÿeyeRÀÿÿÿÿeyeColorÐÿÿÿÿenvàÿÿÿÿcore0ðÿÿÿÿcore1ÿÿÿÿcore2ÿÿÿÿcore3 ÿÿÿÿbank00ÿÿÿÿbank1@ÿÿÿÿsurgePÿÿÿÿgather`ÿÿÿÿfogDpÿÿÿÿsleeveA€ÿÿÿÿsleeveB�ÿÿÿÿpour ÿÿÿÿpour2°ÿÿÿÿpuffÀÿÿÿÿdeskÐÿÿÿÿroomàÿÿÿÿdoorðÿÿÿÿambientÿÿÿÿlookÿÿÿÿinhale ÿÿÿÿinhale20ÿÿÿÿdoor0@ÿÿÿÿdoor1Pÿÿÿÿ fog_block`fognoiseTexÿÿÿÿ noiseSampÿÿÿÿvs_mainvs_mainfs_mainfs_main¨Ø#,  GLSL.std.450Evs_main>ACpfs_mainilopH #H #G H#HHH#@H#PH#`H#pH#€H#�H# H#°H #ÀH #ÐH #àH #ðH #H#H# H#0H#@H#PH#`H#pH#€H#�H# H#°H#ÀH#ÐH#àH#ðH#H#H# H #0H!#@H"#PH#H#H#H#G"G!GH#G"G!G"G!G> *GA GCGi GlGo       +  %  +€@+333@ ; ; ;! +!,"!!!+#‘ƒž=+$®Ga=,%$$$+&n§r?+'š™@,('''+)æ®%=,*)))1 +7R¸NA+8UUÕ>,9888+:= ‡?+;.M;,<;;;!H+IгY>+JY7?+K˜Ý“=,LIJK!S+T?+U€>+V€?,WVVV+X«ªª>,YXXX!o+p f+q_ón<,rqq+s,tss v.w |+}+€!§+¨€,©¨¨+ª+«€3!· !Ç +ÈCq‰=+É�E¿;, ÊÈÉ+Ë‚îSB+Ô@@, ÕÔÔ+Ö@+×+Ø,Ùר,ÚØ×,Û××+ãÏ, äãã+åÿÿÿN, æåå!û +üÀ@, ýVV+0…ë?+1…ë@+2Í̈A+3ÍÌl@, 423+5áz”>+6q=‚@+7š™©@+833ïA, 978+:)\> <.=!U+V½7†5! p +q¬Å'7!� +�·Ñ8) ‘+’ÍÌL?+“ÛI?+”333?+•¦›D<+– ×£<+—ìQ¸=+˜ff&@+™ff¦?+šš™Y? œ . �. Ÿ. ¡.£!A!S +TX94<+U¦›Ä;!g+hÀ?! } , ~VV+ @+€+�¦›D;+‚o<+ƒ)\=+„ffF@+…fff?, †„…+‡33ã@+ˆ33S@, ‰‡ˆ+ŠA+‹ÍÌ @, ŒŠ‹+�š™¿+ŽÍÌ ?+�ffæ>.’ •à ,ä}}+åÿÿÿÿ,æåå!' ,*ÔÔÔ++B+,ˆA, -+,, .TT+/€; 1.2F+K!Z !m .p!«!º +»oƒ:+¼ÍÌL=+½33³>.¿ Ö Ú +Û! à+á"+š™™>+33³?+ @?+ š™™?+ š™?+ ÍÌÌ=+ ffæ?+€À+ À+ + + +5+E+W+`+c+s+z+ƒ+›+¢+Ù+è+ ÍÌÌ>+  !S * U+VÍ̬?+W ?. Y. [. ]. _. a. c. e. g. i+!J+L…k?+N+c,}VVV!š.�. Ÿ. ¡. £+±!  !A+E(knN+F€¿+Gq=Š>+Hš™Y@+Iš™Ù?+JÍÌÌ?+Kà@+LR¸?+Mo;+NwÌ+2+Off&? Q.R.T+{+ð+û+"+0 ?;?> B ;BA D ;DC!F, GFF, HÔF, IFÔ, JGHI L N . O Q U b j ;ji m ;ml;Bo, t!!!!+u77?+v0+w�Âu<+x¸>+y= ×>+z ×£=+{š™é@+|Í̘A,}TTT+~ ×@+ÍÌŒ?+€33ƒ@+�{.>+‚{®>+ƒ…ëQ?.…. ‡. ‰. Ž. �.’. ” ¤+è +Ú 6 7øù+ø+ ,("Ž-,#�.,%Ž/.& 0/(¼12,*©32-0þ3866 75ø4ù=ø= >(5"Ž?>7 @>9ŽA@:ƒBA%¼1C><©DC?BþD86GH7FøEùMøM”NFLþN86RS7P7QøOùZøZº [QT÷\ú[]\ø]Ž^PU _+^"W `_Yþ`ø\þP86dS7b7cøaùeøeº fcT÷gúfhgøh…ibb…jibŽkjþkøgþb86no7møl;vuwùxøxPzpp„ymz€{yr>u{A|~u}=~A|�u€=‚�„ƒ‚p€„ƒA|…u}>…„A|†u€=‡†A|ˆu}=‰ˆ„Љp€‹‡ŠA|Œu€>Œ‹=�u=ŽuÂ�ŽtÆ���>u�A|‘u}=’‘A|“u€=”“„•”p€–’•A|—u}>—–A|˜u€=™˜A|šu}=›š„œ›p€�™œA|žu€>ž�=Ÿu= u¡ tÆ¢Ÿ¡>u¢=£uþ£86¦§7¥ø¤ù¬ø¬€­¥©|®­9¯n®Q°¯Â±°ªp²±…³²«þ³86 ¶·7µø´ù¸ø¸€¹µ©|º¹9»nºQ¼»Â½¼ªp¾½Q¿»ÂÀ¿ªpÁÀP ¾ÁŽ ëþÃ86ÆÇ7 ÅøÄùÌøÌ”ÍÅÊ Î Í…ÏËÎ Ð ÏþÐ86ÓÇ7 ÒøÑùÜøÜ  ÝÒƒ ÞÒÝ… ßÞÞŽ àÞÖƒ áÕà… âßá  ç+Ýäænèç9é¦è€êèÙ9ë¦ê€ìèÚ9í¦ì€îèÛ9ï¦îQðâ ñ.éëðQòâ ó.íïòQôâ õ.ñóô…öõÖƒ÷öVþ÷86úû7 ùøøùþøþ  ÿùƒ ùÿ… Ž Öƒ Õ… Ž üƒ ý…   +ÿäæn 9 ¦ €  Ù9 ¦ €  Ú9¦ € Û9¦ƒ  ƒ ƒ  ƒ�Q…� Q…�Q…Q…� Q!…"!�#"Q$…%$�&%P '#&… ('…) Öƒ*)VŽ +(ÖP,*+þ,86/Ç7 .ø-;<;=ù>ø>9?Ó.…@?0>;@=A;Ž B.1� CB49DÓC…ED5�FAE>;F=G;Ž H.6� IH99JÓI…KJ:�LGK>;L=M;þM86TU7O7P7Q7R7SøNùWøWƒXRO”YXP”ZXX…[YYƒ\Z[ ](\! ^(SV�_]^ `_ƒaQYˆba` cbˆdY` ed�fceˆgf`þg86op7i7j7k7l7 m7 nøhùrørƒsjk tBs u(tqPvuuuˆwsvQxmyxƒzt {(z!…|y{ }|Q~n9 Tkwtl~Ž€i}O�mmƒ‚V}Žƒ�‚�„€ƒO…nnކ…�‡„†þ‡86Ž�7 ‰7 Š7 ‹7Œ7�øˆ;œžŸ;<¢£;œ›�;œ ¡ù¤ø¤Q¥ŠQ¦ŠQ§ŠQ¨Šƒ©¦¥…ª©T�«¥ª ¬(Œ�Q­‰ƒ®¥¬¸ ¯­®¨ °¯÷±ú°²³ø²Q´‰�µ¦¬º ¶´µ>›¶ù±ø³>›‘ù±ø±= ·›¨ ¸·÷¹ú¸º»øºQ¼‰ƒ½§¬¸ ¾¼½>ž¾ù¹ø»>ž‘ù¹ø¹= ¿ž¨ À¿÷ÁúÀÂÃøÂQĉ�Ũª�ÆÅ¬º ÇÄÆ> ÇùÁøÃ> ‘ùÁøÁ= È ÷ÉúÈÊÉøÊþ!øÉˬQ̉ƒÍÌ¥QΉƒÏ¦Î Ð%ÍÏ Ñ1ˬÐÒ¬QÓ‰ƒÔÓ§ Õ1Ò¬Ô…ÖÑÕP ׫¨ƒ Ø‰× ÙB؃ڪÙÛ¬ Ü1Û¬ÚQ݉¸ Þݨ©ßÞVÜ…àÖßQዃâá¬�ãá¬Q䉃åä« æå ç1âãæƒèVç>¢èQ鉃êé§Q니ìêë�íìT î íƒïîT ðïQñ‹…òðñ=ó¢…ôá’ƒõô¬…öá’�÷ö¬ ø1õ÷òƒùVøQú‰ û0ú¨…üùû ý(óü>¢ýQþ‰ƒÿþ¨Q‰ƒ« ÿˆ“�T  ƒT …“P «¨ƒ ‰   B …  = ¢…ᔃ¬…á”�¬ 1 ƒVQ‰ 0¨… ( >¢º �T÷úø 1–—¬ƒVŽ ‰˜QQ� …! T�"!T # "ƒ$#T %$ˆ&%™Q'Q(ƒ)'(…*)T�+*T , +ƒ-,T .-ˆ/.™=0¢ƒ1•¬�2•¬ 3%&/ 41123ƒ5V4…65…76š 8(07>¢8ùø=9¢ƒ:V9…;à:þ;86@A7=7>7?ø<ùBøBQC=ƒDC?QE> F(E�ˆGDFO H==O I>>Ž JIGƒ KHJPLKGþL86RS7N7O7 P7 QøMùVøVQWNQXQ¸ YWX÷ZúY[Zø[þ!øZQ\Q9]@NO\O ^]]Q_]…`_T�aU`9 bŽ^PQaVþb86fg7d7eøcùiøi…jeeƒkVj�lVj…mÖe…nmdƒoln p(o� qphˆrkqþr86|}7t7u7v7w7 x7 y7z7{øs;<‘’;•”Ø;<�!;<“!;vçæù–ø–Q—yQ˜w ™(˜�ˆšV™O ›ttQœtƒ�œ—…ž�šO ŸwwŽ  Ÿžƒ ¡› O ¢uuQ£u…¤£šO ¥wwŽ ¦¥¤ƒ §¢¦>‘vQ¨u¸ ©¨!÷ªú©«ªø«=¬‘Q­tƒ®—­Q¯uˆ°®¯ ±%¬°>‘±ùªøªQ²u¸ ³²!÷´ú³µ´øµ=¶‘Q·yQ¸tƒ¹·¸Qºuˆ»¹º ¼%¶»>‘¼ù´ø´Q½xQ¾xP ¿½¾QÀxP ÁÀ{  §¸ÃÄÂ~© ÅÄ~§ˆ ÆýŃ Ç¿¡… ÈÇÆƒ ÉÁ¡… ÊÉÆ  Ë%ÈÊ  Ì(ÈÊ=Í�QÎËQÏË Ð(ÎÏ Ñ(ÍÐ>�Ñ=Ò‘QÓÌQÔÌ Õ%ÓÔ Ö%ÒÕ>‘Ö=ב=Ø�¼ Ùר÷ÚúÙÛÚøÛþ!øÚ=Ü‘=Ý�ƒÞÜ݈ßÞùàøàöáãùèøè=éçªÃêäé› ëê÷ìúëáìøìQíéª îí}©ïî€}Pðñéð>çñùâøâ=ò”± óò€÷ôúóôõøõùáøôùöøö=ø�=ù”oúù�ûúz…üûß�ýøüŽ þ§ý� ÿ¡þQtQu…ý�ƒ—…š=“…��‚9  Žÿxy! …  ƒ   …   � >“ù÷ø÷ùãøã=”€×>”ùàøá=�=‘�…TŽ §� ¡… †� ‰9Ó… Œ9Ó…T� 1�’…Ž� �=!“…"!ß…#" þ#86 &'7%ø$;102=(=)ù3ø3 4%ƒ5%4>05=60=70…867=90Ž:9Öƒ;*:…<8;>0<O =44Q>4Ž ?->� @=?=A0O BAA� C@B� DC.Ž ED/VFG()X HGE!QIHQJHA<L0K=ML N.IJMQOHQPHA<Q0K=RQ S.OPRP TNSþT86 YZ7V7W7XøUù[ø[ƒ\VWƒ]XW”^\]”_]] `(_Vˆa^` b+a!VŽc]bƒd\c eBdP febþf86 lm7h7i7j7køg;<n!;<opùqøqƒrihƒskjƒthj”urr”vss w(vV”xst”yrt”zrs…{uw…|zzƒ}{|º ~}V÷ú~€ø€…�zx…‚ywƒƒ�‚ˆ„ƒ} …+„!V>n…ùø=†n…‡z†�ˆ‡xˆ‰ˆw>o‰=Šo¸ ‹Š!÷Œú‹�Žø�>o!�y �(uVˆ‘�� ’+‘!V>n’ùŒøŽ=“oº ”“V÷•ú”–•ø–>oVƒ—zy ˜(uVˆ™—˜ š+™!V>nšù•ø•ùŒøŒ=›nŽœr›��hœƒž�j=ŸoŽ sŸƒ¡ž  ¢B¡=£oP ¤¢£þ¤86ª«7¦7§7¨7©ø¥ù¬ø¬ƒ­§¦ƒ®¦¨ ¯(­® °(¯" ±B° ²1!©±ƒ³V²þ³86¹º7µ7 ¶7·7¸ø´;1¾¿ùÀøÀ¼ Á·»÷ÂúÁÃÂøÃþ!øÂOͶƒÅµÄ>¾ÅA<ƾ€=ÇÆ È(¸¼ˆÉÇÈA<ʾ€>ÊÉ=˾ ÌBËQͶ Î(Í»ˆÏÌÎ Ð1½VσÑVÐ…Ò·ÑþÒ86Õ 7ÔøÓAÖ×}ùØøØO ÙÔÔAÚÜ×Û= ÝÜO ÞÝ݃ ßÙÞAàâ×áK=ãâAÚä×Û= åäO æåå”çßæ�èãçQéÔAàê×á=ëêAÚì×á= íìO îíí”ïßî�ðëïPñèéðþñ86ô 7óøòAÖõ}ùöøöO ÷óóAÚøõÛ= ùøO úùù”û÷úQüóO ýóóAÚþõá= ÿþO ÿÿ”ýPûüþ86 '7ø;<!;<!AÖ}ùø9ÕAàK=º »÷úøAÚ= OAÚ= O!  9 "Y!Aà#}=$#Aà%€=&%Q'" (.$&'Q)" *1¼’) +.V*Aà,K=-,….-+…/U(Q0" 11/(0ƒ2V1…3.2=4Aà65=76…873�948>9=:Aà;5=<;ƒ=V<…>=3�?:>>?ùøAà@s=A@º BA»÷CúBDCøDAàFE=GFAàHEK=IHAàJEK=KJ�LKQM N1ILM O.VGN=PAàQs=RQ…SROAÚTs= UTOVUUAÚXW= YXOZYYAà[W=\[9]ªVZ\…^S]�_P^>_ùCøCAÚa`= baAàdc}=ed9f¹be =gAàhc=ihƒjVi…kfj�lgk>l=mAànc=on…pfo�qmp>q=rAÚts= utAàvc€=wv9x¹uw’�yrx>yAà{z=|{º }|»÷~ú}~øAÚ€z= �€O‚��AÚ„ƒ= …„O†……9 ‡Y‚†Aàˆƒ=‰ˆQЇ…‹ Š�Œ”‹…�‰Œ=ŽAà�z=��Q‘‡…’ ‘ƒ“V’…”�“…• �Q–‡ —1•�–ƒ˜V—…™”˜�šŽ™>šù~ø~Aàœ›K=�œº ž�»÷Ÿúž Ÿø Q¡A࣢€=¤£ƒ¥¡¤Q¦Aà§¢K=¨§ƒ©¦¨Aઢ}=«ª ¬(¥!Aà­¢=®­…¯¬®�°«¯Q±Aಛ=³²ƒ´±³ µ´ƒ¶µ°Aà·›}=¸·ƒ¹¸ Aປ}=»º ¼1¹»¥ƒ½V¼ ¾(©!¿¾AàÀ›€=ÁÀ Â(¥!…ÃUÂ�ÄVÃ…ÅÁÄ Æ(Å»ˆÇ¿Æ ÈÇ=ÉAàÊ›K=ËÊ…Ì˽…ÍÌÈ Î1�…¶ƒÏVÎ…ÐÍÏ Ñ1¥…ÒÐÑÓ© Ô1!UÓƒÕVÔ…ÖÒÕ�×ÉÖ>×ùŸøŸ=ØAÚÚÙ= ÛÚAàÜcK=ÝÜ9Þ¹ÛÝŽ�ߨÞ>ß=à=áP âàáþâ86å 7äøãAÖæ}ùçøçAàéæè}=êéAàëæè€=ìëAàíæèK=îíAàïæè=ðïQñäòî ó+ñòîPôìðóQõä ö+õêìAà÷æè=ø÷ùîQúäº ûú!©üûîùPýöøüƒþäôƒÿäô”þÿƒäýƒäý”¸ P1©ôýþ86  7øAÖ }ù ø Aà  }=¼ !÷úøþø9åƒ BAà è}=Aà è€=�…TP !QQƒQ Q!ƒ" !P# " $E# %(qP&%%%ˆ'&¸ (�P1*(((©)*$'…+…,+�-, .-XŽ/).�0/Aà1  €=2132 4(.�ˆ54ƒ6V5…736ˆ8  9%8V…:79O ;00ƒ <; =: > :Q?Q@<…A@=�B?AQC<…DC>ƒEBDQF0QGQH<…IH>�JGIQK<…LK=�MJLPNEFMþN86 RS7P7QøO;œde;œ^_;œXY;œfg;œ`a;œZ[;œhi;œbc;œ\]AÖT}ùjøjAàkTK=lkº ml»÷númopøoAÚqT= rqOsrrAÚtT= utOvuu9 wYPsvQxwAàyT}=zy�{zQ¸ |x{>X|ùnøp>XUùnøn= }X÷~ú}~øþ‘ø~Aà€Ts=�€º ‚�»÷ƒú‚„…ø„AÚ†Ts= ‡†Oˆ‡‡Aà‰TW=Љ�‹ŠQPŒ‹‹‹ƒ�ˆŒº1ŽP�› �Ž>Z�ùƒø…>ZUùƒøƒ= �Z÷‘ú�’“ø’AÚ”TW= •”O–••Aà—TW=˜—�™˜QPš™™™�›–š¸1œP›› �œ>\�ù‘ø“>\Uù‘ø‘= ž\÷Ÿúž Ÿø þ‘øŸAà¡Tc}=¢¡º £¢»÷¤ú£¥¦ø¥AÚ§T`= ¨§O©¨¨ƒªP© «BªAà¬T`=­¬…®­V�¯®Q¸ °«¯>^°ù¤ø¦>^Uù¤ø¤= ±^÷²ú±³²ø³þ‘ø²Aà´Tc€=µ´º ¶µ»÷·ú¶¸¹ø¸AÚºTs= »ºO¼»»ƒ½P¼ ¾B½Aà¿Ts=À¿…ÁÀW�ÂÁQ¸ þÂ>`Ãù·ø¹>`Uù·ø·= Ä`÷ÅúÄÆÅøÆþ‘øÅAàÇTz=ÈǺ ÉÈ»÷ÊúÉËÌøËAÚÍTƒ= ÎÍOÏÎÎAÚÐTz= ÑÐOÒÑÑ9 ÓYPÏÒQÔÓAàÕTƒ=ÖÕ…×ÖÖ�Ø×Q¸ ÙÔØ>bÙùÊøÌ>bUùÊøÊ= Úb÷ÛúÚÜÛøÜþ‘øÛAàÝT›K=Þݺ ßÞ»÷àúßáâøáQãPAàäT¢K=åäƒæãåAàçT›€=èç…éè�êéQ¸ ëæê>dëùàøâ>dUùàøà= ìd÷íúìîïøî9ðÕPQñðAàòT¢€=óòƒôñóAàõT›}=öõ�÷öQ¸ øô÷>føùíøï>fUùíøí= ùf÷úúùûúøûþ‘øúAàüTcK=ýüº þý»÷ÿúþøAÚTÙ= OƒP BAàTÙ=… �  Q¸  >h ùÿø>hUùÿøÿ= h÷ ú  øþ‘ø þU86H7øAÖ}ùøAࢀ=9ÕAÚ= O9ÕQ¼ ÷úøþVøQ ƒ! Q"Q#ƒ$"# %($�ˆ&!%ƒ'Ž('&�)(Aà*5€=+*ƒ,+UAà-5€=.-�/.UQ0) 11,/0Aà25K=32ƒ43UAà55K=65�76UQ8) 91478ƒ:V9…;1:Aà<5}==<ƒ>=UAà?5}=@?�A@UQB) C1>ABƒDVC…E;DþE86IJ7G7HøFAÖK}ùMøMAàOKN}=PO…QP  R+Q!L¼ SR»÷TúSUTøUþVøTAÚVK= WVOXWWAÚYK= ZYO[ZZ9 \lGHX[Aà]K=^]Aà_K=`_Qa\ b.^`aAÚdKc= edOfee9 gYfGHQhgAàiKc=ji…kTb…l bQm\ n1klmƒoVn…pTj…qWj r1pqhƒsVr t(os…uRtƒvVuþv86 |m7x7y7z7{øwù~ø~ y¸1€}©�€}yˆ‚W�ƒƒzx…„ƒ‚ƒ…{x…†…‚ ‡%„† ˆ(„†Q‰‡QЇ ‹(‰ŠQŒ‡ �(Œ! Ž(‹�Q�ˆQ�ˆ ‘%��Q’ˆ “%‘’P ”Ž“þ”86™š7–7—7˜ø•;œžŸ;œ¢£;<œ�;œ ¡AÖ›}ù¤ø¤>œ˜Q¥—¸ ¦¥!÷§ú¦¨§ø¨=©œAછ¢K=«ªQ¬–ƒ­«¬Q®—ˆ¯­® °%©¯>œ°ù§ø§Aಛ±}=³²Aà´›¢K=µ´Aà¶›±K=·¶P¸³µ·A๛±€=º¹Aà»›E}=¼»Aཛ±=¾½P¿º¼¾9 À|–—¸¿QÁÀQÂÀ¸ ÃÁÂ÷ÄúÃÅÄøÅ=ÆœQÇÀ È%ÆÇ>œÈùÄøÄ9ÉÕ–9Êô—QËʸ ÌË!÷ÍúÌÎÏøÎQÐÉAàÑ›¢€=ÒѺ ÓÐÒ>žÓùÍøÏ>žUùÍøÍ= Ôž÷ÕúÔÖÕøÖAà×›¢€=Ø×QÙÉƒÚØÙQÛʈÜÚÛŽÝÊÜ�ÞÉÝQßÞAàà›5€=áຠâßá÷ãúâäåøäQæÞAàç›5K=èç¸ éæè> éùãøå> Uùãøã= ê ÷ëúêìíøìQîÞAàï›5}=ðï¸ ñîð>¢ñùëøí>¢Uùëøë= ò¢¨ óò÷ôúóõôøõ=öœ ÷%öÜ>œ÷ùôøôùÕøÕ=øœþø86 7ú7û7ü7ý7þ7ÿ77øùAÖ}ùø�Žû�ú9 lúüþQ    .ýÿ   ( »P     .üþƒ ú”û (!Q ˆ AàNK=ƒT……Ö�AàN€=ƒV 1VƒVƒþü� } !E ”"!û”#!û…$"#ƒ%V$ &(%— '&…( )%(V…*”)ƒ+V* ,(+! -,…. -ˆ/.'ƒ0/ƒ10…2Ö/ 3(2»ˆ413 5+4!V…6Ö/…76…875 9%P :89 þ:86@A7<7=7>7?ø;;QPR;1STAÖB}=C=DùUøUA<VP}>V!A<WP€>WEA1XPK>X"A<YP>YFAàZBN}=[Z¼ \[»÷]ú\^]ø^=_Pþ_ø]Ž`=>�a<`AÚbB= cbOdccAÚeBc= feOgff9 hl<adgAÚiB= jiOkjjAÚlBc= mlOnmmQohPqooo p.knqƒrp<”sr= t(s!AàuB=vu�wtvA<xP>xwŽy=t�z<yAà|B{K=}|…~}…Žz~€?…�€’…‚?GPƒ!�‚�„ƒ9 …&„ކz~އ†HQˆ……‰ˆIŠ?…‹ŠJQŒ……�Œ™Pމ‹���‡Ž9 �&� ‘(t»ˆ’K‘ “+’!VQ”……•�“ƒ–V•…—”–Q˜�…™˜�…š™“�›—šAàœBc=�œAÚžB= ŸžO ŸŸAà¡B=¢¡AÚ£B= ¤£O¥¤¤Aà¦B=§¦9 ¨<= ¢¥§>›AÚ©B= ª©O«ªªAà¬B=­¬…®­LAÚ¯Bc= °¯O±°°…²�…9 ³<=«®±²>›AÚ´Bc= µ´O¶µµ…·�ŽP¸!·!�¹¶¸AÚºBc= »ºO¼»»…½�UP¾!½!ƒ¿¼¾…À�L9 Á<=¿�¹À>›Q¨ Ã1!ŽÂQÄ�…Å�Ä�ÆŽÅ…ÇÃÆQȨ…ÉÈÇQʳ�ËÉÊQÌÁ�ÍËÌ…ÎÍ[¼ ÏÎM÷ÐúÏÑÐøÑ=ÒPþÒøÐQÓ³�ÔÉÓQÕÁ�ÖÔÕ ×(ÖqQب…ÙØÉQÚ³QÛ³…ÜÚÛ�ÝÙÜQÞÁQßÁ…àÞß�áÝàˆâá×Q㨅äãÉQå³Qæ³…çåæ�èäçQéÁQêÁ…ëéê�ìèëˆíì׎î=â�ï<îAÚñBð= òñOóòòƒôóï”õôô ö(õN ÷ öŽøô÷AàùBð=úùAàüBû=ýü�þõý�ÿþ½ˆúÿ=”ø (!…O�½AÚBû= O… Ž  >S Aà B=  º  !÷ú øAÚB= Oƒï”AàB=�Vˆ9ï… (N  Ž=” =!SAÚ#B"= $#O%$$Aà&B"='&9(f '…)( *1�Ví…+)*…,+…Ž-%,�.!->S.ùø=/SAÚ1B0= 21O322�4/3>S4A<5P}>5ÎA<6P€>6â=7SAà8BN=98Ž:79A1;PK>;:=<Pþ<86EFø=;LKJ;NMO=@>ùPøP R&@KAQSKR= TSP VT!VAUWM}>WVQXT…YXT�ZYTQ[T…\[Tƒ]T\P ^Z]AQ_M€>_^= `MQ a`>AaAbcA€=dced>ceQ f`>Cfý86pFøg;œ“”;œ�Ž;<ŠV;Q„…;œ��;1‹";œ†‡;<‘’;•ŒØ;œˆ‰;vúæ= ki= nlP hknAÖq}=r=sù•ø•Aà–q0=—–¸ ˜—M÷™ú˜š™øš>otýø™Q ›hQœ›…�œÖƒž�VQ ŸhQ Ÿ…¡ Öƒ¢V¡P £ž¢A¤¥q}=¦¥P §£!V‘ ¨¦§A¤©q}=ª©P «£VV‘ ¬ª«AÚ­q€= ®­O¯®®O°¬¬Q±¬P²±±±ˆ³°²O´¨¨Qµ¨P¶µµµˆ·´¶ƒ¸³· ¹E¸AÚºqK= »ºO¼»»AÚ½q= ¾½O¿¾¾9 À|¯¹¼¿QÁÀQÂÀ¾ ÃÁÂ÷ÄúÃÅÄøÅ>otýøÄQÆÀQÇÀ9È™¯¹Ç É%ÆÈQÊÀ¼ ËÉÊ÷ÌúËÍÌøÍ>otýøÌAàÎq€=ÏÎ9Ð@¯¹ÉÏ>„ÐA<Ñ„}=ÒѺ ÓÒM÷ÔúÓÕÖøÕA<ׄ€=Ø×¼ ÙØÉ>†ÙùÔøÖ>†UùÔøÔ= Ú†>ˆÚAàÛqK=ÜÛ Ý(܃ÞÉʈßÞÝQ àhO áàà9âÆá…ãÏu�äâã å äAàæq"=çæAàéqè=êéAàëq{}=ìëAàíq{€=îíAàïq{K=ðïAàñq{=òñAàóqE€=ôó…õ…ôùöøöö÷ùùûøû=üúªÃýäü› þý÷ÿúþ÷ÿøÿQ üª  }©  €}P  €‚ ü >ú ùøøø= Œ±   v÷ ú   ø ù÷ø ù ø = Œo ¾ ݨ  ÷ ú   ø = Џ   w>� ù ø >�‘ù ø =  �÷ ú   ø ù÷ø = Œo  �  å…  ß� Ê =  ˆ÷ ú   ø A< „€=! º "  ! >�" ù ø >�Uù ø = # �÷$ ú# % $ ø% A<& „}=' & ( ' ) ( =* ‹=+ ŠA1, „K=- , Ž. - + ƒ/ V) Ž0 . / �1 * 0 >‹1 =2 Š…3 2 ) >Š3 >ˆUù$ ø$ Ž4 ¹ �5 ¯4 96 5 9 7 R6 õ¨ 8 7 ÷9 ú8 : 9 ø: ùùø9 Ž; 6 ð< Ï…= < �…> ÏxP? != > �@ ; ? ŽA @ y…B Ï PC !B !�D A C 9 E &D ŽF @ y…G Ïz�H {G PI |H 3�J F I 9 K &J QL E QM K QN E PO L M N ƒP O }AàQ qE€=R Q ŽS P R QT K ƒU T T…V U AàW qE€=X W …Y V X PZ !Y !�[ S Z �\ 6 [ 9 ] \ Aà^ q0=_ ^ Ž ` ] _ Qa ` Qb ` �c a b º d c �÷e úd f e øf Žg [ ð�h @ g 9 i &h Žj h ~Qk i …l k ™Qm i …n m Po l €n �p j o …q Ï�r Ï…s r ŽPt q s !�u p t 9 v &u Qw i …x w Qy v …z y �{ x z …| ò�} ‚| ~ %c V… U~ �€ {  � 1} ƒ€ ‚ .V� ò…ƒ c ‚ Q„ v …… „ �† ”… …‡ ƒ † Qˆ ` …‰ ˆ îQŠ ` Aà‹ q=Œ ‹ …� Š Œ �Ž ‰ � ˆ� Ž c Aà� q K=‘ � ’ .� î‘ º “ ‡ !÷” ú“ • ” ø• …– ‡ ìAÚ— qð= ˜ — O™ ˜ ˜ ƒš ™ 5 ”› š š …œ Ô› �� › Ôˆž œ � �Ÿ Vž Aà  qð=¡   …¢ ¡ Ÿ A࣠qû=¤ £ �¥ › ¤ �¦ ¥ ½ˆ§ ¢ ¦ ¨ š © (› N ª  © Ž« ¨ ª ¬ ¹”­ « ¬ AÚ® q= ¯ ® O° ¯ ¯ ƒ± ° 5 ”² ± ± >‘!Aà³ q=´ ³ º µ ´ !÷¶ úµ · ¶ ø· Aภq=¹ ¸ …º ¹ ™�» ² Ôˆ¼ º » 9½ 5 …¾ ¼ ½ >‘¾ =¿ ‘º À ¿ M÷Á úÀ  à ø A<Ä „=Å Ä ¸ Æ  Å >“Æ ùÁ øà >“UùÁ øÁ = Ç “÷È úÇ É È øÉ =Ê ‘AÚË q= Ì Ë OÍ Ì Ì 9Î I5 Í …Ï Ê Î >‘Ï ùÈ øÈ ù¶ ø¶ Ð ± Ñ (² N Ò  Ñ ŽÓ Ð Ò Ô ¹”Õ Ó Ô AÚÖ qª= × Ö OØ × × ƒÙ 5 Ø AÚÛ qÚ = Ü Û OÝ Ü Ü ƒÞ 5 Ý Aàß qª=à ß ”á Ù Ù Aàâ qÚ =ã â �ä á ã ˆå Vä ”æ Þ Þ Aàç qÚ =è ç �é æ è ˆê Vé �ë å ê …ì à ë AÚí qû= î í Oï î î 9ð f­ ê…ñ § ð …ò ñ ™Žó ï ò AÚô q"= õ ô Oö õ õ =÷ ‘9ø fÕ ç…ù ÷ ø …ú ù ½Žû ö ú �ü ó û AÚý qè= þ ý Oÿ þ þ Ž ÿ ì � ü AÚ q0=   O   �    – …  ß   = ‹= ŠŽ  ’ Ž ƒ V Ž �  >‹ = Š…   >Š ù” ø” ùe øe ù ø ùùøù= Œ€  ×>Œ ùöø÷=  ˆ÷ ú   ø A< „}=      = ‹= ŠA1 „K=  Ž   ƒ V Ž!  �"  ! >‹" =# Š…$ #  >Š$ ù ø =% Šƒ& V% =' ‹Aà( q=) ( 9* R' ) P + * & >o+ ý8 `‰ŒÙ•æqvÊËshaders/ghostfog_compjÔëTBTSR 9@b ¢ 9Û Þ ú ò ì9%à 9>/m? ¬)9vs_mainvs_mainfs_mainfs_mainÜstruct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } @group(0) @binding(0) var fogTex: texture_2d; @group(0) @binding(1) var fogSamp: sampler; @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p = pos[vi]; out.position = vec4(p, 0f, 1f); out.uv = vec2(((p.x * 0.5f) + 0.5f), (0.5f - (p.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { let _e2 = textureDimensions(fogTex); let size = vec2(_e2); let o = (vec2(0.7f) / max(size, vec2(1f))); let _e13 = textureSample(fogTex, fogSamp, in.uv); let _e23 = textureSample(fogTex, fogSamp, (in.uv + vec2(o.x, o.y))); let _e35 = textureSample(fogTex, fogSamp, (in.uv + vec2(-(o.x), o.y))); let _e47 = textureSample(fogTex, fogSamp, (in.uv + vec2(o.x, -(o.y)))); let _e60 = textureSample(fogTex, fogSamp, (in.uv + vec2(-(o.x), -(o.y)))); let c = (((((_e13 * 0.36f) + (_e23 * 0.16f)) + (_e35 * 0.16f)) + (_e47 * 0.16f)) + (_e60 * 0.16f)); return c; }  4!7ŒŠÈ®Ovs_mainmainq#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; smooth out vec2 _vs2fs_location0; void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p = pos[vi]; out_.position = vec4(p, 0.0, 1.0); out_.uv = vec2(((p.x * 0.5) + 0.5), (0.5 - (p.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainÈ#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; uniform highp sampler2D _group_0_binding_0_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); vec2 size = vec2(uvec2(textureSize(_group_0_binding_0_fs, 0).xy)); vec2 o = (vec2(0.7) / max(size, vec2(1.0))); vec4 _e13 = texture(_group_0_binding_0_fs, vec2(in_.uv)); vec4 _e23 = texture(_group_0_binding_0_fs, vec2((in_.uv + vec2(o.x, o.y)))); vec4 _e35 = texture(_group_0_binding_0_fs, vec2((in_.uv + vec2(-(o.x), o.y)))); vec4 _e47 = texture(_group_0_binding_0_fs, vec2((in_.uv + vec2(o.x, -(o.y))))); vec4 _e60 = texture(_group_0_binding_0_fs, vec2((in_.uv + vec2(-(o.x), -(o.y))))); vec4 c = (((((_e13 * 0.36) + (_e23 * 0.16)) + (_e35 * 0.16)) + (_e47 * 0.16)) + (_e60 * 0.16)); _fs2p_location0 = c; return; }  ÿ)LjQB_group_0_binding_0_fsvs_mainvs_mainfs_mainfs_mainÇ// language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_3 { metal::float2 inner[3]; }; struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_3 pos = type_3 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p, 0.0, 1.0); out.uv = metal::float2((p.x * 0.5) + 0.5, 0.5 - (p.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , metal::texture2d fogTex [[texture(0)]] , metal::sampler fogSamp [[sampler(0)]] ) { const FsOut in = { position, varyings_1.uv }; metal::float2 size = static_cast(metal::uint2(fogTex.get_width(), fogTex.get_height())); metal::float2 o = metal::float2(0.7) / metal::max(size, metal::float2(1.0)); metal::float4 _e13 = fogTex.sample(fogSamp, in.uv); metal::float4 _e23 = fogTex.sample(fogSamp, in.uv + metal::float2(o.x, o.y)); metal::float4 _e35 = fogTex.sample(fogSamp, in.uv + metal::float2(-(o.x), o.y)); metal::float4 _e47 = fogTex.sample(fogSamp, in.uv + metal::float2(o.x, -(o.y))); metal::float4 _e60 = fogTex.sample(fogSamp, in.uv + metal::float2(-(o.x), -(o.y))); metal::float4 c = ((((_e13 * 0.36) + (_e23 * 0.16)) + (_e35 * 0.16)) + (_e47 * 0.16)) + (_e60 * 0.16); return fs_mainOutput { c }; }  ÿ)LjQBvs_mainmainístruct FsOut { float4 position; float2 uv; }; static const float2 _27[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _35 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _35; uint _39 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_27[_39], 0.0f, 1.0f); _out.uv = float2((_27[_39].x * 0.5f) + 0.5f, 0.5f - (_27[_39].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmainÊstruct FsOut { float4 position; float2 uv; }; Texture2D fogTex : register(t0); SamplerState fogSamp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _24; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _24 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } void frag_main() { FsOut _17 = { gl_FragCoord, uv }; uint _39_dummy_parameter; float2 _42 = float2(0.699999988079071044921875f, 0.699999988079071044921875f) / max(float2(spvTextureSize(fogTex, 0u, _39_dummy_parameter)), float2(1.0f, 1.0f)); _24 = ((((fogTex.Sample(fogSamp, _17.uv) * 0.36000001430511474609375f) + (fogTex.Sample(fogSamp, _17.uv + float2(_42)) * 0.1599999964237213134765625f)) + (fogTex.Sample(fogSamp, _17.uv + float2(-_42.x, _42.y)) * 0.1599999964237213134765625f)) + (fogTex.Sample(fogSamp, _17.uv + float2(_42.x, -_42.y)) * 0.1599999964237213134765625f)) + (fogTex.Sample(fogSamp, _17.uv + float2(-_42.x, -_42.y)) * 0.1599999964237213134765625f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._24 = _24; return stage_output; }  ÿ)LjQBHSLTfogTexÿÿÿÿfogSampÿÿÿÿvs_mainvs_mainfs_mainfs_main #†2 GLSL.std.450vs_mainKfs_mainDGJKH#H#GG "G !G"G!G *G GGD GGGJ  +     ;  ; ; ; ;!+€¿,+@@,,,+ +!€?+"? $ &.' )+* .+0+9 = E;ED H;HG;J+N333?,ONN,P!!+QìQ¸>+R ×#>TZ 6ø;$#;&%'=ù(ø( +&*A),#+=-,P/- !A.1%0>1/Q2-…32"�43"Q5-…65"ƒ7"6P847A):%9>:8=;%Q<;><A=>9=?>@?>>@QA;>Aý86KøB=FD=IGPCFI= L = MùSøSgTUL0pVU W(VPˆXOWQYCVZ[LMW\[YŽ]\QQ^CQ_XQ`XPa_`�b^aVZcLMWdcbŽedR�f]eQgCQhXihQjXPkij�lgkVZmLMWnmlŽonR�pfoQqCQrXQsXtsPurt�vquVZwLMWxwvŽyxR�zpyQ{CQ|X}|Q~X~P€}��{€VZ‚LMWƒ‚�Ž„ƒR�…z„>J…ý8 4!7ŒŠÈ®OÊË shaders/motesjÔ¨·BTSR ¶5¶5'Ý5Ÿ^ |”'£”½”Ù”E ÚÙ'Ú`" aü'ˆü ”þo\ ['vs_mainvs_mainfs_mainfs_main‹5struct Motes { viewProj: mat4x4, eye: vec4, right: vec4, up: vec4, light: vec4, lightColor: vec4, moonColor: vec4, moonTravel: vec4, win: vec4, win2_: vec4, cloud: vec4, beamLo: vec4, beamSize: vec4, misc: vec4, } struct MoteIn { @builtin(vertex_index) vi: u32, @location(0) base: vec4, @location(1) params: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) uv: vec2, @location(1) @interpolate(flat) color: vec3, } const HDR_RANGE: f32 = 4f; const HAZE_START: f32 = 2.8f; @group(0) @binding(0) var u: Motes; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p_1: vec2) -> f32 { return fract((52.982918f * fract(dot(p_1, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_2: vec2) -> f32 { let i_3 = floor(p_2); let f = (p_2 - i_3); let u_1 = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_3); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u_1.x), mix(_e21, _e26, u_1.x), u_1.y) * 2f) - 1f); } fn vnoiseD(p_3: vec2) -> vec3 { let i_4 = floor(p_3); let f_1 = (p_3 - i_4); let u_2 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_4); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_2.x)) + (k2_ * u_2.y)) + ((k4_ * u_2.x) * u_2.y)); let g_1 = (du * vec2((k1_ + (k4_ * u_2.y)), (k2_ + (k4_ * u_2.x)))); return vec3(((n * 2f) - 1f), (g_1 * 2f)); } fn fbm3_(p_4: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_4); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_4 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_4 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn pointGlow(eye: vec3, dir: vec3, dist: f32, light: vec3, s2_: f32) -> f32 { let toL = (light - eye); let t0_ = dot(toL, dir); let h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0f); let k = sqrt((h2_ + max(s2_, 0.000001f))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } fn atmosphere(col: vec3, world: vec3, eye_1: vec3, light_1: vec3, haze: vec4, glow: vec4) -> vec3 { let dv = (world - eye_1); let dist_2 = length(dv); let dir_2 = (dv / vec3(max(dist_2, 0.00001f))); let T = exp((-(haze.w) * max((dist_2 - HAZE_START), 0f))); let _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T) + (haze.xyz * (1f - T))) + (glow.xyz * _e21)); } fn windowMask(q: vec2, win: vec4, win2_: vec4, soft: f32, lattice: f32) -> f32 { var local: bool; var local_1: bool; var local_2: bool; var bars: f32; let x0_ = win.x; let x1_ = win.y; let sill = win.z; let spring = win.w; let r = ((x1_ - x0_) * 0.5f); let cx = (x0_ + r); let s_1 = max(soft, 0.0001f); if !((q.x < (x0_ - s_1))) { local = (q.x > (x1_ + s_1)); } else { local = true; } let _e25 = local; if !(_e25) { local_1 = (q.y < (sill - s_1)); } else { local_1 = true; } let _e33 = local_1; if !(_e33) { local_2 = (q.y > ((spring + r) + s_1)); } else { local_2 = true; } let _e42 = local_2; if _e42 { return 0f; } let inRect = (smoothstep(-(s_1), s_1, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_1), s_1, (q.y - sill))); let dArch = (r - length((q - vec2(cx, spring)))); let inArch = smoothstep(-(s_1), s_1, dArch); let open = (inRect * select(inArch, 1f, (q.y < spring))); let bw = win2_.y; bars = (1f - smoothstep((bw - s_1), (bw + s_1), abs((q.x - cx)))); let ty = ((q.y - sill) / win2_.z); let tf = (abs((fract((ty + 0.5f)) - 0.5f)) * win2_.z); let _e89 = bars; bars = max(_e89, ((1f - smoothstep(((bw * 0.8f) - s_1), ((bw * 0.8f) + s_1), tf)) * step(q.y, spring))); let a = atan2((q.y - spring), (q.x - cx)); let spoke = ((abs((fract(((a / 0.7853982f) + 0.5f)) - 0.5f)) * 0.7853982f) * length((q - vec2(cx, spring)))); let _e122 = bars; bars = max(_e122, ((1f - smoothstep(((bw * 0.7f) - s_1), ((bw * 0.7f) + s_1), spoke)) * step(spring, q.y))); if (lattice > 0.5f) { let fade_1 = (1f - smoothstep(0.02f, 0.09f, s_1)); let dq = (q * 2.6f); let l1_ = (abs((fract((((dq.x + dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let l2_ = (abs((fract((((dq.x - dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let _e172 = bars; bars = max(_e172, (((1f - smoothstep((0.012f - s_1), (0.012f + s_1), min(l1_, l2_))) * fade_1) * 0.85f)); } let _e183 = bars; return (open * (1f - _e183)); } fn backProject(p_5: vec3, d: vec3, planeZ: f32) -> vec3 { let s_2 = ((p_5.z - planeZ) / max(d.z, 0.0001f)); return vec3((p_5.xy - (d.xy * s_2)), s_2); } fn moonPatch(p_6: vec3, d_1: vec3, win_1: vec4, win2_1: vec4) -> f32 { if (p_6.z < win2_1.x) { return 0f; } let _e9 = backProject(p_6, d_1, win2_1.x); let _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006f + (_e9.z * 0.011f)), 1f); return _e17; } fn hgPhase(cosT: f32, g: f32) -> f32 { let gg = (g * g); return ((1f - gg) / pow(max(((1f + gg) - ((2f * g) * cosT)), 0.0001f), 1.5f)); } fn shaftScatter(eye_2: vec3, dir_1: vec3, dist_1: f32, d_2: vec3, win_2: vec4, win2_2: vec4, jitter: f32, top: f32) -> f32 { var ta: f32 = 0f; var tb: f32; var sum: f32 = 0f; var i_2: i32 = 0i; let zw = win2_2.x; let invdz = (1f / max(d_2.z, 0.0001f)); let qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); let qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if (dir_1.z < 0f) { let _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if (dir_1.y < 0f) { let _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } let lo_2 = vec2(win_2.x, win_2.z); let hi_2 = vec2(win_2.y, top); let inv = (vec2(1f) / select(qd, vec2(0.000001f), (abs(qd) < vec2(0.000001f)))); let t1_ = ((lo_2 - qa) * inv); let t2_ = ((hi_2 - qa) * inv); let tmin = min(t1_, t2_); let tmax = max(t1_, t2_); let _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); let _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); let _e80 = tb; let _e81 = ta; if (_e80 <= _e81) { return 0f; } let _e84 = tb; let _e85 = ta; let dt = ((_e84 - _e85) / 5f); loop { let _e93 = i_2; if (_e93 < 5i) { } else { break; } { let _e96 = ta; let _e97 = i_2; let t = (_e96 + ((f32(_e97) + jitter) * dt)); let q_1 = (qa + (t * qd)); let s_3 = (((eye_2.z + (t * dir_1.z)) - zw) * invdz); let _e110 = sum; let _e116 = windowMask(q_1, win_2, win2_2, (0.008f + (s_3 * 0.003f)), 0f); sum = (_e110 + (_e116 * exp((-(s_3) * 0.035f)))); } continuing { let _e123 = i_2; i_2 = (_e123 + 1i); } } let _e126 = ta; let _e127 = tb; let qm = (qa + (((_e126 + _e127) * 0.5f) * qd)); let _e141 = vnoise(((qm * vec2(3.1f, 0.9f)) + vec2(7.1f, 3.3f))); let _e146 = vnoise((qm * vec2(9f, 2.2f))); let dust = (0.45f + (0.55f * smoothstep(-0.6f, 0.8f, (_e141 + (0.5f * _e146))))); let _e157 = sum; return ((_e157 * dt) * dust); } @vertex fn vs_main(in: MoteIn) -> VsOut { var p: vec3 = vec3(0f); var fade: f32 = 1f; var out: VsOut; var corners: array, 6> = array, 6>(vec2(-1f, -1f), vec2(1f, -1f), vec2(1f, 1f), vec2(-1f, -1f), vec2(1f, 1f), vec2(-1f, 1f)); let t_1 = u.eye.w; let ph = (in.params.w * 6.2831855f); let sp = in.params.z; let drift = vec3(((sin((((t_1 * 0.19f) * sp) + ph)) * 0.3f) + (t_1 * 0.011f)), ((sin((((t_1 * 0.13f) * sp) + (ph * 1.7f))) * 0.22f) - (t_1 * 0.006f)), (cos((((t_1 * 0.16f) * sp) + (ph * 2.3f))) * 0.3f)); if (in.base.w < 0.5f) { let edge = u.cloud.w; let q_2 = ((in.base.xyz * edge) + drift); let _e62 = u.cloud; let rel = (q_2 - _e62.xyz); let w_1 = (rel - (edge * floor(((rel / vec3(edge)) + vec3(0.5f))))); let _e75 = u.cloud; p = (_e75.xyz + w_1); let e_1 = (max(max(abs(w_1.x), abs(w_1.y)), abs(w_1.z)) / (0.5f * edge)); fade = (1f - smoothstep(0.55f, 1f, e_1)); } else { let _e96 = u.beamSize; let sz = _e96.xyz; let q_3 = fract((in.base.xyz + (drift / sz))); let _e105 = u.beamLo; p = (_e105.xyz + (q_3 * sz)); let e_2 = (max(max(abs((q_3.x - 0.5f)), abs((q_3.y - 0.5f))), abs((q_3.z - 0.5f))) * 2f); fade = (1f - smoothstep(0.85f, 1f, e_2)); } let _e132 = u.eye; let _e134 = p; let V = normalize((_e132.xyz - _e134)); let _e139 = u.light; let _e141 = p; let toL_1 = (_e139.xyz - _e141); let d2_ = dot(toL_1, toL_1); let Lc = (toL_1 * inverseSqrt(max(d2_, 0.00000001f))); let _e150 = u.lightColor; let _e155 = u.light.w; let _e159 = u.lightColor.w; let _e166 = hgPhase(dot(-(Lc), V), 0.5f); let candle = ((_e150.xyz * (_e155 / (d2_ + _e159))) * _e166); let _e170 = u.moonTravel; let d_3 = _e170.xyz; let _e172 = p; let _e175 = u.win; let _e178 = u.win2_; let _e179 = moonPatch(_e172, d_3, _e175, _e178); let _e183 = u.win2_.w; let _e185 = p.y; let m = (_e179 * step(_e183, _e185)); let _e190 = u.moonColor; let _e196 = u.moonColor.w; let _e197 = hgPhase(dot(d_3, V), _e196); let moon = (_e190.xyz * (m * _e197)); let _e202 = u.eye; let _e204 = p; let dist_3 = max(length((_e202.xyz - _e204)), 0.05f); let _e214 = u.right.w; let px = ((in.params.y * _e214) / dist_3); let _e220 = u.misc.z; let sharp = max(px, _e220); let _e225 = u.beamLo.w; let _e232 = u.right.w; let _e239 = u.up.w; let coc = min((((abs((dist_3 - _e225)) / dist_3) * _e232) * 0.0045f), (_e239 * 0.009f)); let r_1 = (sharp + coc); let energy = ((sharp * sharp) / (r_1 * r_1)); let _e250 = fade; out.color = ((candle + moon) * ((_e250 * energy) * smoothstep(0.25f, 0.45f, dist_3))); let c_4 = corners[in.vi]; let _e282 = u.viewProj; let _e283 = p; let clip = (_e282 * vec4(_e283, 1f)); let _e292 = u.up.w; let _e298 = u.misc.y; let ndc = ((c_4 * ((r_1 * 2f) / _e292)) * vec2((1f / _e298), 1f)); let _e306 = out.color.x; let _e309 = out.color.y; let _e313 = out.color.z; let lum = max(max(_e306, _e309), _e313); let keep = step(0.00001f, lum); out.position = vec4((clip.xy + ((ndc * clip.w) * keep)), clip.z, clip.w); out.uv = c_4; let _e327 = out; return _e327; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { let r2_ = dot(in_1.uv, in_1.uv); let a_1 = (exp((-(r2_) * 2.8f)) * (1f - smoothstep(0.75f, 1f, r2_))); let _e19 = u.misc.x; let _e20 = encodeHdr((in_1.color * a_1), _e19); return vec4(_e20, 0f); }  Ë™Á†Ë�ÞLvs_mainmainÝ6#version 300 es precision highp float; precision highp int; struct Motes { mat4x4 viewProj; vec4 eye; vec4 right; vec4 up; vec4 light; vec4 lightColor; vec4 moonColor; vec4 moonTravel; vec4 win; vec4 win2_; vec4 cloud; vec4 beamLo; vec4 beamSize; vec4 misc; }; struct MoteIn { uint vi; vec4 base; vec4 params; }; struct VsOut { vec4 position; vec2 uv; vec3 color; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; layout(std140) uniform Motes_block_0Vertex { Motes _group_0_binding_0_vs; }; layout(location = 0) in vec4 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; smooth out vec2 _vs2fs_location0; flat out vec3 _vs2fs_location1; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p_1) { return fract((52.982918 * fract(dot(p_1, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f = (p_2 - i_3); vec2 u_1 = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u_1.x), mix(_e21, _e26, u_1.x), u_1.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_3) { vec2 i_4 = floor(p_3); vec2 f_1 = (p_3 - i_4); vec2 u_2 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_2.x)) + (k2_ * u_2.y)) + ((k4_ * u_2.x) * u_2.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_2.y)), (k2_ + (k4_ * u_2.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_4) { float s = 0.0; float _e1 = vnoise(p_4); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_4 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_4 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } vec3 atmosphere(vec3 col, vec3 world, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world - eye_1); float dist_2 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_2, 1e-5))); float T = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T) + (haze.xyz * (1.0 - T))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local = false; bool local_1 = false; bool local_2 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r = ((x1_ - x0_) * 0.5); float cx = (x0_ + r); float s_1 = max(soft, 0.0001); if (!((q.x < (x0_ - s_1)))) { local = (q.x > (x1_ + s_1)); } else { local = true; } bool _e25 = local; if (!(_e25)) { local_1 = (q.y < (sill - s_1)); } else { local_1 = true; } bool _e33 = local_1; if (!(_e33)) { local_2 = (q.y > ((spring + r) + s_1)); } else { local_2 = true; } bool _e42 = local_2; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_1), s_1, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_1), s_1, (q.y - sill))); float dArch = (r - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_1), s_1, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_1), (bw + s_1), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_1), ((bw * 0.8) + s_1), tf)) * step(q.y, spring))); float a = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_1), ((bw * 0.7) + s_1), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade_1 = (1.0 - smoothstep(0.02, 0.09, s_1)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_1), (0.012 + s_1), min(l1_, l2_))) * fade_1) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_5, vec3 d, float planeZ) { float s_2 = ((p_5.z - planeZ) / max(d.z, 0.0001)); return vec3((p_5.xy - (d.xy * s_2)), s_2); } float moonPatch(vec3 p_6, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_6.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_6, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_1 = (qa + (t * qd)); float s_3 = (((eye_2.z + (t * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_1, win_2, win2_2, (0.008 + (s_3 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_3) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } void main() { MoteIn in_ = MoteIn(uint(gl_VertexID), _p2vs_location0, _p2vs_location1); vec3 p = vec3(0.0); float fade = 1.0; VsOut out_ = VsOut(vec4(0.0), vec2(0.0), vec3(0.0)); vec2 corners[6] = vec2[6](vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0), vec2(1.0, 1.0), vec2(-1.0, 1.0)); float t_1 = _group_0_binding_0_vs.eye.w; float ph = (in_.params.w * 6.2831855); float sp = in_.params.z; vec3 drift = vec3(((sin((((t_1 * 0.19) * sp) + ph)) * 0.3) + (t_1 * 0.011)), ((sin((((t_1 * 0.13) * sp) + (ph * 1.7))) * 0.22) - (t_1 * 0.006)), (cos((((t_1 * 0.16) * sp) + (ph * 2.3))) * 0.3)); if ((in_.base.w < 0.5)) { float edge = _group_0_binding_0_vs.cloud.w; vec3 q_2 = ((in_.base.xyz * edge) + drift); vec4 _e62 = _group_0_binding_0_vs.cloud; vec3 rel = (q_2 - _e62.xyz); vec3 w_1 = (rel - (edge * floor(((rel / vec3(edge)) + vec3(0.5))))); vec4 _e75 = _group_0_binding_0_vs.cloud; p = (_e75.xyz + w_1); float e_1 = (max(max(abs(w_1.x), abs(w_1.y)), abs(w_1.z)) / (0.5 * edge)); fade = (1.0 - smoothstep(0.55, 1.0, e_1)); } else { vec4 _e96 = _group_0_binding_0_vs.beamSize; vec3 sz = _e96.xyz; vec3 q_3 = fract((in_.base.xyz + (drift / sz))); vec4 _e105 = _group_0_binding_0_vs.beamLo; p = (_e105.xyz + (q_3 * sz)); float e_2 = (max(max(abs((q_3.x - 0.5)), abs((q_3.y - 0.5))), abs((q_3.z - 0.5))) * 2.0); fade = (1.0 - smoothstep(0.85, 1.0, e_2)); } vec4 _e132 = _group_0_binding_0_vs.eye; vec3 _e134 = p; vec3 V = normalize((_e132.xyz - _e134)); vec4 _e139 = _group_0_binding_0_vs.light; vec3 _e141 = p; vec3 toL_1 = (_e139.xyz - _e141); float d2_ = dot(toL_1, toL_1); vec3 Lc = (toL_1 * inversesqrt(max(d2_, 1e-8))); vec4 _e150 = _group_0_binding_0_vs.lightColor; float _e155 = _group_0_binding_0_vs.light.w; float _e159 = _group_0_binding_0_vs.lightColor.w; float _e166 = hgPhase(dot(-(Lc), V), 0.5); vec3 candle = ((_e150.xyz * (_e155 / (d2_ + _e159))) * _e166); vec4 _e170 = _group_0_binding_0_vs.moonTravel; vec3 d_3 = _e170.xyz; vec3 _e172 = p; vec4 _e175 = _group_0_binding_0_vs.win; vec4 _e178 = _group_0_binding_0_vs.win2_; float _e179 = moonPatch(_e172, d_3, _e175, _e178); float _e183 = _group_0_binding_0_vs.win2_.w; float _e185 = p.y; float m = (_e179 * step(_e183, _e185)); vec4 _e190 = _group_0_binding_0_vs.moonColor; float _e196 = _group_0_binding_0_vs.moonColor.w; float _e197 = hgPhase(dot(d_3, V), _e196); vec3 moon = (_e190.xyz * (m * _e197)); vec4 _e202 = _group_0_binding_0_vs.eye; vec3 _e204 = p; float dist_3 = max(length((_e202.xyz - _e204)), 0.05); float _e214 = _group_0_binding_0_vs.right.w; float px = ((in_.params.y * _e214) / dist_3); float _e220 = _group_0_binding_0_vs.misc.z; float sharp = max(px, _e220); float _e225 = _group_0_binding_0_vs.beamLo.w; float _e232 = _group_0_binding_0_vs.right.w; float _e239 = _group_0_binding_0_vs.up.w; float coc = min((((abs((dist_3 - _e225)) / dist_3) * _e232) * 0.0045), (_e239 * 0.009)); float r_1 = (sharp + coc); float energy = ((sharp * sharp) / (r_1 * r_1)); float _e250 = fade; out_.color = ((candle + moon) * ((_e250 * energy) * smoothstep(0.25, 0.45, dist_3))); vec2 c_4 = corners[in_.vi]; mat4x4 _e282 = _group_0_binding_0_vs.viewProj; vec3 _e283 = p; vec4 clip = (_e282 * vec4(_e283, 1.0)); float _e292 = _group_0_binding_0_vs.up.w; float _e298 = _group_0_binding_0_vs.misc.y; vec2 ndc = ((c_4 * ((r_1 * 2.0) / _e292)) * vec2((1.0 / _e298), 1.0)); float _e306 = out_.color.x; float _e309 = out_.color.y; float _e313 = out_.color.z; float lum = max(max(_e306, _e309), _e313); float keep = step(1e-5, lum); out_.position = vec4((clip.xy + ((ndc * clip.w) * keep)), clip.z, clip.w); out_.uv = c_4; VsOut _e327 = out_; gl_Position = _e327.position; _vs2fs_location0 = _e327.uv; _vs2fs_location1 = _e327.color; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain™'#version 300 es precision highp float; precision highp int; struct Motes { mat4x4 viewProj; vec4 eye; vec4 right; vec4 up; vec4 light; vec4 lightColor; vec4 moonColor; vec4 moonTravel; vec4 win; vec4 win2_; vec4 cloud; vec4 beamLo; vec4 beamSize; vec4 misc; }; struct MoteIn { uint vi; vec4 base; vec4 params; }; struct VsOut { vec4 position; vec2 uv; vec3 color; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; layout(std140) uniform Motes_block_0Fragment { Motes _group_0_binding_0_fs; }; smooth in vec2 _vs2fs_location0; flat in vec3 _vs2fs_location1; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p_1) { return fract((52.982918 * fract(dot(p_1, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f = (p_2 - i_3); vec2 u_1 = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u_1.x), mix(_e21, _e26, u_1.x), u_1.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_3) { vec2 i_4 = floor(p_3); vec2 f_1 = (p_3 - i_4); vec2 u_2 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_2.x)) + (k2_ * u_2.y)) + ((k4_ * u_2.x) * u_2.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_2.y)), (k2_ + (k4_ * u_2.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_4) { float s = 0.0; float _e1 = vnoise(p_4); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_4 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_4 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } vec3 atmosphere(vec3 col, vec3 world, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world - eye_1); float dist_2 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_2, 1e-5))); float T = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T) + (haze.xyz * (1.0 - T))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local = false; bool local_1 = false; bool local_2 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r = ((x1_ - x0_) * 0.5); float cx = (x0_ + r); float s_1 = max(soft, 0.0001); if (!((q.x < (x0_ - s_1)))) { local = (q.x > (x1_ + s_1)); } else { local = true; } bool _e25 = local; if (!(_e25)) { local_1 = (q.y < (sill - s_1)); } else { local_1 = true; } bool _e33 = local_1; if (!(_e33)) { local_2 = (q.y > ((spring + r) + s_1)); } else { local_2 = true; } bool _e42 = local_2; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_1), s_1, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_1), s_1, (q.y - sill))); float dArch = (r - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_1), s_1, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_1), (bw + s_1), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_1), ((bw * 0.8) + s_1), tf)) * step(q.y, spring))); float a = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_1), ((bw * 0.7) + s_1), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade_1 = (1.0 - smoothstep(0.02, 0.09, s_1)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_1), (0.012 + s_1), min(l1_, l2_))) * fade_1) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_5, vec3 d, float planeZ) { float s_2 = ((p_5.z - planeZ) / max(d.z, 0.0001)); return vec3((p_5.xy - (d.xy * s_2)), s_2); } float moonPatch(vec3 p_6, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_6.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_6, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_1 = (qa + (t * qd)); float s_3 = (((eye_2.z + (t * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_1, win_2, win2_2, (0.008 + (s_3 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_3) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1); float r2_ = dot(in_1.uv, in_1.uv); float a_1 = (exp((-(r2_) * 2.8)) * (1.0 - smoothstep(0.75, 1.0, r2_))); float _e19 = _group_0_binding_0_fs.misc.x; vec3 _e20 = encodeHdr((in_1.color * a_1), _e19); _fs2p_location0 = vec4(_e20, 0.0); return; }  Ë™Á†Ë�ÞLMotes_block_0VertexMotes_block_0Fragmentvs_mainvs_mainfs_mainfs_mainÖD// language: metal1.0 #include #include using metal::uint; struct Motes { metal::float4x4 viewProj; metal::float4 eye; metal::float4 right; metal::float4 up; metal::float4 light; metal::float4 lightColor; metal::float4 moonColor; metal::float4 moonTravel; metal::float4 win; metal::float4 win2_; metal::float4 cloud; metal::float4 beamLo; metal::float4 beamSize; metal::float4 misc; }; struct MoteIn { uint vi; char _pad1[12]; metal::float4 base; metal::float4 params; }; struct VsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; metal::float3 color; }; struct type_10 { metal::float2 inner[6]; }; constant float HDR_RANGE = 4.0; constant float HAZE_START = 2.8; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p_1 ) { return metal::fract(52.982918 * metal::fract(metal::dot(p_1, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f = p_2 - i_3; metal::float2 u_1 = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_3); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u_1.x), metal::mix(_e21, _e26, u_1.x), u_1.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_3 ) { metal::float2 i_4 = metal::floor(p_3); metal::float2 f_1 = p_3 - i_4; metal::float2 u_2 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_2.x)) + (k2_ * u_2.y)) + ((k4_ * u_2.x) * u_2.y); metal::float2 g_1 = du * metal::float2(k1_ + (k4_ * u_2.y), k2_ + (k4_ * u_2.x)); return metal::float3((n * 2.0) - 1.0, g_1 * 2.0); } float fbm3_( metal::float2 p_4 ) { float s = {}; float _e1 = vnoise(p_4); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_4 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_4 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float pointGlow( metal::float3 eye, metal::float3 dir, float dist, metal::float3 light, float s2_ ) { metal::float3 toL = light - eye; float t0_ = metal::dot(toL, dir); float h2_ = metal::max(metal::dot(toL, toL) - (t0_ * t0_), 0.0); float k = metal::sqrt(h2_ + metal::max(s2_, 0.000001)); return (metal::atan((dist - t0_) / k) + metal::atan(t0_ / k)) / k; } metal::float3 atmosphere( metal::float3 col, metal::float3 world, metal::float3 eye_1, metal::float3 light_1, metal::float4 haze, metal::float4 glow ) { metal::float3 dv = world - eye_1; float dist_2 = metal::length(dv); metal::float3 dir_2 = dv / metal::float3(metal::max(dist_2, 0.00001)); float T = metal::exp(-(haze.w) * metal::max(dist_2 - HAZE_START, 0.0)); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return ((col * T) + (haze.xyz * (1.0 - T))) + (glow.xyz * _e21); } float windowMask( metal::float2 q, metal::float4 win, metal::float4 win2_, float soft, float lattice ) { bool local = {}; bool local_1 = {}; bool local_2 = {}; float bars = {}; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r = (x1_ - x0_) * 0.5; float cx = x0_ + r; float s_1 = metal::max(soft, 0.0001); if (!((q.x < (x0_ - s_1)))) { local = q.x > (x1_ + s_1); } else { local = true; } bool _e25 = local; if (!(_e25)) { local_1 = q.y < (sill - s_1); } else { local_1 = true; } bool _e33 = local_1; if (!(_e33)) { local_2 = q.y > ((spring + r) + s_1); } else { local_2 = true; } bool _e42 = local_2; if (_e42) { return 0.0; } float inRect = metal::smoothstep(-(s_1), s_1, metal::min(q.x - x0_, x1_ - q.x)) * metal::smoothstep(-(s_1), s_1, q.y - sill); float dArch = r - metal::length(q - metal::float2(cx, spring)); float inArch = metal::smoothstep(-(s_1), s_1, dArch); float open = inRect * ((q.y < spring) ? 1.0 : inArch); float bw = win2_.y; bars = 1.0 - metal::smoothstep(bw - s_1, bw + s_1, metal::abs(q.x - cx)); float ty = (q.y - sill) / win2_.z; float tf = metal::abs(metal::fract(ty + 0.5) - 0.5) * win2_.z; float _e89 = bars; bars = metal::max(_e89, (1.0 - metal::smoothstep((bw * 0.8) - s_1, (bw * 0.8) + s_1, tf)) * metal::step(q.y, spring)); float a = metal::atan2(q.y - spring, q.x - cx); float spoke = (metal::abs(metal::fract((a / 0.7853982) + 0.5) - 0.5) * 0.7853982) * metal::length(q - metal::float2(cx, spring)); float _e122 = bars; bars = metal::max(_e122, (1.0 - metal::smoothstep((bw * 0.7) - s_1, (bw * 0.7) + s_1, spoke)) * metal::step(spring, q.y)); if (lattice > 0.5) { float fade_1 = 1.0 - metal::smoothstep(0.02, 0.09, s_1); metal::float2 dq = q * 2.6; float l1_ = metal::abs(metal::fract(((dq.x + dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float l2_ = metal::abs(metal::fract(((dq.x - dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float _e172 = bars; bars = metal::max(_e172, ((1.0 - metal::smoothstep(0.012 - s_1, 0.012 + s_1, metal::min(l1_, l2_))) * fade_1) * 0.85); } float _e183 = bars; return open * (1.0 - _e183); } metal::float3 backProject( metal::float3 p_5, metal::float3 d, float planeZ ) { float s_2 = (p_5.z - planeZ) / metal::max(d.z, 0.0001); return metal::float3(p_5.xy - (d.xy * s_2), s_2); } float moonPatch( metal::float3 p_6, metal::float3 d_1, metal::float4 win_1, metal::float4 win2_1 ) { if (p_6.z < win2_1.x) { return 0.0; } metal::float3 _e9 = backProject(p_6, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, 0.006 + (_e9.z * 0.011), 1.0); return _e17; } float hgPhase( float cosT, float g ) { float gg = g * g; return (1.0 - gg) / metal::pow(metal::max((1.0 + gg) - ((2.0 * g) * cosT), 0.0001), 1.5); } float shaftScatter( metal::float3 eye_2, metal::float3 dir_1, float dist_1, metal::float3 d_2, metal::float4 win_2, metal::float4 win2_2, float jitter, float top ) { float ta = 0.0; float tb = {}; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = 1.0 / metal::max(d_2.z, 0.0001); metal::float2 qa = eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy); metal::float2 qd = dir_1.xy - ((dir_1.z * invdz) * d_2.xy); tb = dist_1; if (dir_1.z < 0.0) { float _e33 = tb; tb = metal::min(_e33, (zw - eye_2.z) / dir_1.z); } if (dir_1.y < 0.0) { float _e42 = tb; tb = metal::min(_e42, (win2_2.w - eye_2.y) / dir_1.y); } metal::float2 lo_2 = metal::float2(win_2.x, win_2.z); metal::float2 hi_2 = metal::float2(win_2.y, top); metal::float2 inv = metal::float2(1.0) / metal::select(qd, metal::float2(0.000001), metal::abs(qd) < metal::float2(0.000001)); metal::float2 t1_ = (lo_2 - qa) * inv; metal::float2 t2_ = (hi_2 - qa) * inv; metal::float2 tmin = metal::min(t1_, t2_); metal::float2 tmax = metal::max(t1_, t2_); float _e70 = ta; ta = metal::max(_e70, metal::max(tmin.x, tmin.y)); float _e75 = tb; tb = metal::min(_e75, metal::min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if (_e80 <= _e81) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = (_e84 - _e85) / 5.0; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e123 = i_2; i_2 = as_type(as_type(_e123) + as_type(1)); } loop_init = false; int _e93 = i_2; if (_e93 < 5) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t = _e96 + ((static_cast(_e97) + jitter) * dt); metal::float2 q_1 = qa + (t * qd); float s_3 = ((eye_2.z + (t * dir_1.z)) - zw) * invdz; float _e110 = sum; float _e116 = windowMask(q_1, win_2, win2_2, 0.008 + (s_3 * 0.003), 0.0); sum = _e110 + (_e116 * metal::exp(-(s_3) * 0.035)); } } float _e126 = ta; float _e127 = tb; metal::float2 qm = qa + (((_e126 + _e127) * 0.5) * qd); float _e141 = vnoise((qm * metal::float2(3.1, 0.9)) + metal::float2(7.1, 3.3)); float _e146 = vnoise(qm * metal::float2(9.0, 2.2)); float dust = 0.45 + (0.55 * metal::smoothstep(-0.6, 0.8, _e141 + (0.5 * _e146))); float _e157 = sum; return (_e157 * dt) * dust; } struct vs_mainInput { metal::float4 base [[attribute(0)]]; metal::float4 params [[attribute(1)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; metal::float3 color [[user(loc1), flat]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , uint vi [[vertex_id]] , constant Motes& u [[buffer(0)]] ) { const MoteIn in = { vi, {}, varyings.base, varyings.params }; metal::float3 p = metal::float3(0.0); float fade = 1.0; VsOut out = {}; type_10 corners = type_10 {{metal::float2(-1.0, -1.0), metal::float2(1.0, -1.0), metal::float2(1.0, 1.0), metal::float2(-1.0, -1.0), metal::float2(1.0, 1.0), metal::float2(-1.0, 1.0)}}; float t_1 = u.eye.w; float ph = in.params.w * 6.2831855; float sp = in.params.z; metal::float3 drift = metal::float3((metal::sin(((t_1 * 0.19) * sp) + ph) * 0.3) + (t_1 * 0.011), (metal::sin(((t_1 * 0.13) * sp) + (ph * 1.7)) * 0.22) - (t_1 * 0.006), metal::cos(((t_1 * 0.16) * sp) + (ph * 2.3)) * 0.3); if (in.base.w < 0.5) { float edge = u.cloud.w; metal::float3 q_2 = (in.base.xyz * edge) + drift; metal::float4 _e62 = u.cloud; metal::float3 rel = q_2 - _e62.xyz; metal::float3 w_1 = rel - (edge * metal::floor((rel / metal::float3(edge)) + metal::float3(0.5))); metal::float4 _e75 = u.cloud; p = _e75.xyz + w_1; float e_1 = metal::max(metal::max(metal::abs(w_1.x), metal::abs(w_1.y)), metal::abs(w_1.z)) / (0.5 * edge); fade = 1.0 - metal::smoothstep(0.55, 1.0, e_1); } else { metal::float4 _e96 = u.beamSize; metal::float3 sz = _e96.xyz; metal::float3 q_3 = metal::fract(in.base.xyz + (drift / sz)); metal::float4 _e105 = u.beamLo; p = _e105.xyz + (q_3 * sz); float e_2 = metal::max(metal::max(metal::abs(q_3.x - 0.5), metal::abs(q_3.y - 0.5)), metal::abs(q_3.z - 0.5)) * 2.0; fade = 1.0 - metal::smoothstep(0.85, 1.0, e_2); } metal::float4 _e132 = u.eye; metal::float3 _e134 = p; metal::float3 V = metal::normalize(_e132.xyz - _e134); metal::float4 _e139 = u.light; metal::float3 _e141 = p; metal::float3 toL_1 = _e139.xyz - _e141; float d2_ = metal::dot(toL_1, toL_1); metal::float3 Lc = toL_1 * metal::rsqrt(metal::max(d2_, 0.00000001)); metal::float4 _e150 = u.lightColor; float _e155 = u.light.w; float _e159 = u.lightColor.w; float _e166 = hgPhase(metal::dot(-(Lc), V), 0.5); metal::float3 candle = (_e150.xyz * (_e155 / (d2_ + _e159))) * _e166; metal::float4 _e170 = u.moonTravel; metal::float3 d_3 = _e170.xyz; metal::float3 _e172 = p; metal::float4 _e175 = u.win; metal::float4 _e178 = u.win2_; float _e179 = moonPatch(_e172, d_3, _e175, _e178); float _e183 = u.win2_.w; float _e185 = p.y; float m = _e179 * metal::step(_e183, _e185); metal::float4 _e190 = u.moonColor; float _e196 = u.moonColor.w; float _e197 = hgPhase(metal::dot(d_3, V), _e196); metal::float3 moon = _e190.xyz * (m * _e197); metal::float4 _e202 = u.eye; metal::float3 _e204 = p; float dist_3 = metal::max(metal::length(_e202.xyz - _e204), 0.05); float _e214 = u.right.w; float px = (in.params.y * _e214) / dist_3; float _e220 = u.misc.z; float sharp = metal::max(px, _e220); float _e225 = u.beamLo.w; float _e232 = u.right.w; float _e239 = u.up.w; float coc = metal::min(((metal::abs(dist_3 - _e225) / dist_3) * _e232) * 0.0045, _e239 * 0.009); float r_1 = sharp + coc; float energy = (sharp * sharp) / (r_1 * r_1); float _e250 = fade; out.color = (candle + moon) * ((_e250 * energy) * metal::smoothstep(0.25, 0.45, dist_3)); metal::float2 c_4 = corners.inner[metal::min(unsigned(in.vi), 5u)]; metal::float4x4 _e282 = u.viewProj; metal::float3 _e283 = p; metal::float4 clip = _e282 * metal::float4(_e283, 1.0); float _e292 = u.up.w; float _e298 = u.misc.y; metal::float2 ndc = (c_4 * ((r_1 * 2.0) / _e292)) * metal::float2(1.0 / _e298, 1.0); float _e306 = out.color.x; float _e309 = out.color.y; float _e313 = out.color.z; float lum = metal::max(metal::max(_e306, _e309), _e313); float keep = metal::step(0.00001, lum); out.position = metal::float4(clip.xy + ((ndc * clip.w) * keep), clip.z, clip.w); out.uv = c_4; VsOut _e327 = out; const auto _tmp = _e327; return vs_mainOutput { _tmp.position, _tmp.uv, _tmp.color }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; metal::float3 color [[user(loc1), flat]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Motes& u [[buffer(0)]] ) { const VsOut in_1 = { position, varyings_1.uv, {}, varyings_1.color }; float r2_ = metal::dot(in_1.uv, in_1.uv); float a_1 = metal::exp(-(r2_) * 2.8) * (1.0 - metal::smoothstep(0.75, 1.0, r2_)); float _e19 = u.misc.x; metal::float3 _e20 = encodeHdr(in_1.color * a_1, _e19); return fs_mainOutput { metal::float4(_e20, 0.0) }; }  Ë™Á†Ë�ÞLvs_mainmainÊstruct Motes { row_major float4x4 viewProj; float4 eye; float4 right; float4 up; float4 light; float4 lightColor; float4 moonColor; float4 moonTravel; float4 win; float4 win2; float4 cloud; float4 beamLo; float4 beamSize; float4 misc; }; struct MoteIn { uint vi; float4 base; float4 params; }; struct VsOut { float4 position; float2 uv; float3 color; }; static const float2 _836[6] = { float2(-1.0f, -1.0f), float2(1.0f, -1.0f), float2(1.0f, 1.0f), float2(-1.0f, -1.0f), float2(1.0f, 1.0f), float2(-1.0f, 1.0f) }; static const VsOut _842 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer u : register(b0) { Motes u_1_m0 : packoffset(c0); }; static float4 gl_Position; static int gl_VertexIndex; static float4 base; static float4 params; static float2 uv; static float3 color; struct SPIRV_Cross_Input { float4 base : TEXCOORD0; float4 params : TEXCOORD1; uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; nointerpolation float3 color : TEXCOORD1; float4 gl_Position : SV_Position; }; float hgPhase(float cosT, float g) { float _612 = g * g; return (1.0f - _612) / pow(max((1.0f + _612) - ((2.0f * g) * cosT), 9.9999997473787516355514526367188e-05f), 1.5f); } float3 backProject(float3 p, float3 d, float planeZ) { float _577 = (p.z - planeZ) / max(d.z, 9.9999997473787516355514526367188e-05f); return float3(p.xy - (d.xy * _577), _577); } float windowMask(float2 q, float4 win, float4 win2, float soft, float lattice) { bool _408 = false; float bars = 0.0f; bool _405 = false; bool _410 = false; float _420 = (win.y - win.x) * 0.5f; float _421 = win.x + _420; float _422 = max(soft, 9.9999997473787516355514526367188e-05f); if (!(q.x < (win.x - _422))) { _405 = q.x > (win.y + _422); } else { _405 = true; } if (!_405) { _408 = q.y < (win.z - _422); } else { _408 = true; } if (!_408) { _410 = q.y > ((win.w + _420) + _422); } else { _410 = true; } if (_410) { return 0.0f; } bars = 1.0f - smoothstep(win2.y - _422, win2.y + _422, abs(q.x - _421)); bars = max(bars, (1.0f - smoothstep((win2.y * 0.800000011920928955078125f) - _422, (win2.y * 0.800000011920928955078125f) + _422, abs(frac(((q.y - win.z) / win2.z) + 0.5f) - 0.5f) * win2.z)) * step(q.y, win.w)); bars = max(bars, (1.0f - smoothstep((win2.y * 0.699999988079071044921875f) - _422, (win2.y * 0.699999988079071044921875f) + _422, (abs(frac((atan2(q.y - win.w, q.x - _421) / 0.785398185253143310546875f) + 0.5f) - 0.5f) * 0.785398185253143310546875f) * length(q - float2(_421, win.w)))) * step(win.w, q.y)); if (lattice > 0.5f) { float2 _535 = q * 2.599999904632568359375f; bars = max(bars, ((1.0f - smoothstep(0.01200000010430812835693359375f - _422, 0.01200000010430812835693359375f + _422, min(abs(frac(((_535.x + _535.y) * 0.5f) + 0.5f) - 0.5f) / 1.2999999523162841796875f, abs(frac(((_535.x - _535.y) * 0.5f) + 0.5f) - 0.5f) / 1.2999999523162841796875f))) * (1.0f - smoothstep(0.0199999995529651641845703125f, 0.0900000035762786865234375f, _422))) * 0.85000002384185791015625f); } return ((smoothstep(-_422, _422, min(q.x - win.x, win.y - q.x)) * smoothstep(-_422, _422, q.y - win.z)) * ((q.y < win.w) ? 1.0f : smoothstep(-_422, _422, _420 - length(q - float2(_421, win.w))))) * (1.0f - bars); } float moonPatch(float3 p, float3 d, float4 win, float4 win2) { if (p.z < win2.x) { return 0.0f; } float3 _599 = backProject(p, d, win2.x); return windowMask(_599.xy, win, win2, 0.006000000052154064178466796875f + (_599.z * 0.010999999940395355224609375f), 1.0f); } void vert_main() { float fade = 1.0f; float3 p = float3(0.0f, 0.0f, 0.0f); VsOut _out = _842; MoteIn _799 = { uint(gl_VertexIndex), base, params }; float _853 = _799.params.w * 6.283185482025146484375f; float3 _877 = float3((sin(((u_1_m0.eye.w * 0.189999997615814208984375f) * _799.params.z) + _853) * 0.300000011920928955078125f) + (u_1_m0.eye.w * 0.010999999940395355224609375f), (sin(((u_1_m0.eye.w * 0.12999999523162841796875f) * _799.params.z) + (_853 * 1.7000000476837158203125f)) * 0.2199999988079071044921875f) - (u_1_m0.eye.w * 0.006000000052154064178466796875f), cos(((u_1_m0.eye.w * 0.1599999964237213134765625f) * _799.params.z) + (_853 * 2.2999999523162841796875f)) * 0.300000011920928955078125f); if (_799.base.w < 0.5f) { float3 _894 = ((_799.base.xyz * u_1_m0.cloud.w) + _877) - u_1_m0.cloud.xyz; float3 _900 = _894 - (floor((_894 / float3(u_1_m0.cloud.w, u_1_m0.cloud.w, u_1_m0.cloud.w)) + float3(0.5f, 0.5f, 0.5f)) * u_1_m0.cloud.w); p = u_1_m0.cloud.xyz + _900; fade = 1.0f - smoothstep(0.550000011920928955078125f, 1.0f, max(max(abs(_900.x), abs(_900.y)), abs(_900.z)) / (0.5f * u_1_m0.cloud.w)); } else { float3 _925 = frac(_799.base.xyz + (_877 / u_1_m0.beamSize.xyz)); p = u_1_m0.beamLo.xyz + (_925 * u_1_m0.beamSize.xyz); fade = 1.0f - smoothstep(0.85000002384185791015625f, 1.0f, max(max(abs(_925.x - 0.5f), abs(_925.y - 0.5f)), abs(_925.z - 0.5f)) * 2.0f); } float3 _951 = normalize(u_1_m0.eye.xyz - p); float3 _957 = u_1_m0.light.xyz - p; float _958 = dot(_957, _957); float _1009 = max(length(u_1_m0.eye.xyz - p), 0.0500000007450580596923828125f); float _1020 = max((_799.params.y * u_1_m0.right.w) / _1009, u_1_m0.misc.z); float _1034 = _1020 + min(((abs(_1009 - u_1_m0.beamLo.w) / _1009) * u_1_m0.right.w) * 0.00449999980628490447998046875f, u_1_m0.up.w * 0.0089999996125698089599609375f); _out.color = (((u_1_m0.lightColor.xyz * (u_1_m0.light.w / (_958 + u_1_m0.lightColor.w))) * hgPhase(dot(-(_957 * rsqrt(max(_958, 9.9999999392252902907785028219223e-09f))), _951), 0.5f)) + (u_1_m0.moonColor.xyz * ((moonPatch(p, u_1_m0.moonTravel.xyz, u_1_m0.win, u_1_m0.win2) * step(u_1_m0.win2.w, p.y)) * hgPhase(dot(u_1_m0.moonTravel.xyz, _951), u_1_m0.moonColor.w)))) * ((fade * ((_1020 * _1020) / (_1034 * _1034))) * smoothstep(0.25f, 0.449999988079071044921875f, _1009)); uint _1047 = min(_799.vi, 5u); float4 _1055 = mul(float4(p, 1.0f), u_1_m0.viewProj); _out.position = float4(_1055.xy + ((((_836[_1047] * ((_1034 * 2.0f) / u_1_m0.up.w)) * float2(1.0f / u_1_m0.misc.y, 1.0f)) * _1055.w) * step(9.9999997473787516355514526367188e-06f, max(max(_out.color.x, _out.color.y), _out.color.z))), _1055.zw); _out.uv = _836[_1047]; gl_Position = _out.position; uv = _out.uv; color = _out.color; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); base = stage_input.base; params = stage_input.params; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; stage_output.color = color; return stage_output; } fs_mainmainmstruct Motes { row_major float4x4 viewProj; float4 eye; float4 right; float4 up; float4 light; float4 lightColor; float4 moonColor; float4 moonTravel; float4 win; float4 win2; float4 cloud; float4 beamLo; float4 beamSize; float4 misc; }; struct MoteIn { uint vi; float4 base; float4 params; }; struct VsOut { float4 position; float2 uv; float3 color; }; cbuffer u : register(b0) { Motes u_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static float2 uv; static float3 color; static float4 _809; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; nointerpolation float3 color : TEXCOORD1; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _809 : SV_Target0; }; float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { VsOut _799 = { gl_FragCoord, uv, color }; float _819 = dot(_799.uv, _799.uv); _809 = float4(encodeHdr(_799.color * (exp((-_819) * 2.7999999523162841796875f) * (1.0f - smoothstep(0.75f, 1.0f, _819))), u_1_m0.misc.x), 0.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; color = stage_input.color; frag_main(); SPIRV_Cross_Output stage_output; stage_output._809 = _809; return stage_output; }  Ë™Á†Ë�ÞLHSLTMotesviewProjÿÿÿÿeye@ÿÿÿÿrightPÿÿÿÿup`ÿÿÿÿlightpÿÿÿÿ lightColor€ÿÿÿÿ moonColor�ÿÿÿÿ moonTravel ÿÿÿÿwin°ÿÿÿÿwin2ÀÿÿÿÿcloudÐÿÿÿÿbeamLoàÿÿÿÿbeamSizeðÿÿÿÿmiscÿÿÿÿu_blockuvs_mainvs_mainfs_mainfs_mainD\#d GLSL.std.450 .vs_main #&(*, Qfs_mainHJMPQH #H H H #@H #PH #`H #pH #€H #�H # H #°H #ÀH #ÐH #àH #ðH #H#H#H# H#H#H# GG"G!GH#G  *G#G&G( G*G,G,GH GJGMGMGP          + +€@+333@ ;!+,+‘ƒž=+®Ga=,+ n§r?+!š™@,"!!!+#æ®%=,$###+ +1R¸NA+2UUÕ>,3222+4= ‡?+5.M;,6555!B+CгY>+DY7?+E˜Ý“=,FCDE!M+N?+O€>+P€?,QPPP+R«ªª>,SRRR!i+j f+k_ón<,lkk+m,nmm p.q v+w+z!¡+¢€,£¢¢+¤+¥€3!± !Á +ÂCq‰=+Ã�E¿;, ÄÂÃ+Å‚îSB+Î@@, ÏÎÎ+Ð@+Ñ+Ò,ÓÑÒ,ÔÒÑ,ÕÑÑ+ÝÏ, ÞÝÝ+ßÿÿÿN, àßß!õ +öÀ@, ÷PP+*…ë?++…ë@+,Í̈A+-ÍÌl@, .,-+/áz”>+0q=‚@+1š™©@+233ïA, 312+4)\> 6.7!O+P½7†5! j +k¬Å'7!‰ +Š·Ñ8) ‹+ŒÍÌL?+�ÛI?+Ž333?+�¦›D<+� ×£<+‘ìQ¸=+’ff&@+“ff¦?+”š™Y? – . —. ™. ›.�!;!M +NX94<+O¦›Ä;!a+bÀ?! w , xPP+y @+z+{¦›D;+|o<+})\=+~ffF@+fff?, €~+�33ã@+‚33S@, ƒ�‚+„A+…ÍÌ @, †„…+‡š™¿+ˆÍÌ ?+‰ffæ>.Œ �½ ,Þww+ßÿÿÿÿ,àßß !;!  $ ;$#;$& ) ;)( + ;+* -;-,!/ 0 +2ÛÉ@+3\�B>+4š™™>+5¸>+6š™Ù?+7®Ga>+8 ×#>+933@,:NNN+;wÌ+2+<ÍÌL=+=¼t“;+>¼t<+?€¿, @??, AP?, BPP, C?P, D@AB@BC F I.J L N O+P+t +• +ž +¸+Â+Ñ+Ø +ô+ù   3 @;$H K ;KJ N;NM;)P+S@?67øù%ø% &(Ž'&�(&Ž)( *)"¼+,&$©-,'*þ-8607/ø.ù7ø7 8(/Ž981 :83Ž;:4ƒ<;¼+=86©>=9<þ>86AB7@ø?ùGøG”H@FþH86LM7J7KøIùTøTº UKN÷VúUWVøWŽXJO Y+XQ ZYSþZøVþJ86^M7\7]ø[ù_ø_º `]N÷aú`baøb…c\\…dc\Žedþeøaþ\86hi7gøf;poqùrørPtjj„sgt€usl>ouAvxow=yxAv{oz=|{„}|j€~y}Avow>~Av€oz=�€Av‚ow=ƒ‚„„ƒj€…�„Av†oz>†…=‡o=ˆo‰ˆnÆЇ‰>oŠAv‹ow=Œ‹Av�oz=Ž�„�Žj€�Œ�Av‘ow>‘�Av’oz=“’Av”ow=•”„–•j€—“–Av˜oz>˜—=™o=šo›šnÆœ™›>oœ=�oþ�86 ¡7Ÿøžù¦ø¦€§Ÿ£|¨§9©h¨Qª©Â«ª¤p¬«…­¬¥þ­86 °±7¯ø®ù²ø²€³¯£|´³9µh´Q¶µÂ·¶¤p¸·Q¹µÂº¹¤p»ºP ¼¸»Ž ½¼¥þ½86ÀÁ7 ¿ø¾ùÆøÆ”Ç¿Ä È Ç…ÉÅÈ Ê ÉþÊ86ÍÁ7 ÌøËùÖøÖ  ×̃ ØÌ×… ÙØØŽ ÚØÐƒ ÛÏÚ… ÜÙÛ  á+×Þànâá9ã â€äâÓ9å ä€æâÔ9ç æ€èâÕ9é èQêÜ ë.ãåêQìÜ í.çéìQîÜ ï.ëíî…ðïЃñðPþñ86ôõ7 óøòùøøø  ùóƒ úóù… ûúúŽ üúЃ ýÏü… þûýŽ ÿúöƒ ÷ú… ÿ  +ùÞàn9 €Ó9 €Ô9 € Õ9   ƒ ƒ ƒ ƒ � Qþ… �Qþ… �Qþ…Qþ…�Qþ…� Qþ…�  P ! … "!…#Ѓ$#PŽ %"ÐP&$%þ&86)Á7 (ø';657ù8ø899Í(…:9*>5:=;5Ž <(+� =<.9>Í=…?>/�@;?>5@=A5Ž B(0� CB39DÍC…ED4�FAE>5F=G5þG86NO7I7J7K7L7MøHùQøQƒRLI”SRJ”TRR…USSƒVTU W(V X(MP�YWX ZYƒ[KSˆ\[Z ]\ˆ^SZ _^�`]_ˆa`Zþa86ij7c7d7e7f7 g7 høbùlølƒmde nBm o(nkPpoooˆqmpQrgsrƒtn u(t…vsu wvQxh9 yNeqnfxŽzcwO{ggƒ|PwŽ}{|�~z}OhhŽ€y��~€þ�86ˆ‰7 ƒ7 „7 …7†7‡ø‚;–˜™;6œ�;–•—;–š›ùžøžQŸ„Q „Q¡„Q¢„ƒ£ Ÿ…¤£N�¥Ÿ¤ ¦(†ŠQ§ƒƒ¨Ÿ¦¸ ©§¨¨ ª©÷«úª¬­ø¬Q®ƒ�¯ ¦º °®¯>•°ù«ø­>•‹ù«ø«= ±•¨ ²±÷³ú²´µø´Q¶ƒƒ·¡¦¸ ¸¶·>˜¸ù³øµ>˜‹ù³ø³= ¹˜¨ º¹÷»úº¼½ø¼Q¾ƒ�¿¢¤�À¿¦º Á¾À>šÁù»ø½>š‹ù»ø»= š÷ÃúÂÄÃøÄþøÃŦQƃƒÇÆŸQȃƒÉ È Ê%ÇÉ Ë1ŦÊ̦Q̓ƒÎÍ¡ Ï1̦΅ÐËÏP Ñ¥¢ƒ ÒƒÑ ÓBÒƒÔ¤ÓÕ¦ Ö1Õ¦ÔQ׃¸ Ø×¢©ÙØPÖ…ÚÐÙQÛ…ƒÜÛ¦�ÝÛ¦QÞƒƒßÞ¥ àß á1ÜÝàƒâPá>œâQッäã¡Qå…ˆæäå�çæN è çƒéèN êéQë……ìêë=휅îÛŒƒïðÛŒ�ñð¦ ò1ïñìƒóPòQôƒ õ0ô¢…öóõ ÷(íö>œ÷Qøƒƒùø¢Qúƒƒûú¥ üùûˆýü��þýN ÿ þƒÿN …�P ¥¢ƒ ƒ B…=œ…ÛŽƒ ¦… ÛŽ�  ¦  1  ƒ P Qƒ 0¢…  (>œº ‡N÷úø 1�‘¦ƒPŽ ƒ’QQ�…N�N  ƒN ˆ “Q!Q"ƒ#!"…$#N�%$N & %ƒ'&N ('ˆ)(“=*œƒ+�¦�,�¦ -% ) .1+,-ƒ/P.…0/…10” 2(*1>œ2ùø=3œƒ4P3…5Ú4þ586:;777879ø6ù<ø<Q=7ƒ>=9Q?8 @(?ŠˆA>@O B77O C88Ž DCAƒ EBDPFEAþF86LM7H7I7 J7 KøGùPøPQQHQRK¸ SQR÷TúSUTøUþøTQVK9W:HIVO XWWQYW…ZYN�[OZ9 \ˆXJK[Pþ\86`a7^7_ø]ùcøc…d__ƒePd�fPd…gÐ_…hg^ƒifh j(iŠ kjbˆlekþl86vw7n7o7p7q7 r7 s7t7uøm;6‹Œ;�ŽÒ;6Š;6�;páàù�ø�Q‘sQ’q “(’Šˆ”P“O •nnQ–nƒ—–‘…˜—”O ™qqŽ š™˜ƒ ›•šO œooQ�o…ž�”O ŸqqŽ  Ÿžƒ ¡œ >‹pQ¢o¸ £¢÷¤ú£¥¤ø¥=¦‹Q§nƒ¨‘§Q©oˆª¨© «%¦ª>‹«ù¤ø¤Q¬o¸ ­¬÷®ú­¯®ø¯=°‹Q±sQ²nƒ³±²Q´oˆµ³´ ¶%°µ>‹¶ù®ø®Q·rQ¸rP ¹·¸QºrP »ºu  ¼¡¸½¾¼x© ¿¾x¡ˆ À÷¿ƒ Á¹›… ÂÁÀƒ û›… ÄÃÀ  Å%ÂÄ  Æ(ÂÄ=ÇŠQÈÅQÉÅ Ê(ÈÉ Ë(ÇÊ>ŠË=Ì‹QÍÆQÎÆ Ï%ÍÎ Ð%ÌÏ>‹Ð=Ñ‹=ÒŠ¼ ÓÑÒ÷ÔúÓÕÔøÕþøÔ=Ö‹=׊ƒØÖ×ˆÙØyùÚøÚöÛÝùâøâ=ã᪽äÞã› åä÷æúåÛæøæQç㪠èçw©éèzwPêéz‚ëãê>áëùÜøÜ=쎱 íìz÷îúíîïøïùÛøîùðøð=òŠ=óŽoôó�õôt…öõÙ�÷òöŽ ø¡÷� ù›øQúnQûo…ü÷û�ýúüƒþý‘…ÿþ”=�…ÿ{�|9 ˆùrsÿ…} …�>�ùñøñùÝøÝ= Ž€  Ñ>Ž ùÚøÛ= Š= ‹�   … NŽ ¡� ›… €� ƒ9Í… †9Í…N� 1‡Œ…ˆ�‰=�…Ù…þ86./ø;6GP;LKD;FE;IHJ=" = %#= '&P"%'A01wùMøMAOQ1zP=RQQ SQTS…UT2Q VQWV…XR3…YXW�ZYU [ Z…\[4…]RN�^\]…_R5…`_W…aU6�b`a c b…dc7…eROƒfde…gR8…hgW…iU9�jhi kj…lk4Pm^flQ nQon¸ poN÷qúprsørAOu1tP=vuQ wOxwwŽyxv�zymAN{1t= |{O}||ƒ~z}Pvvvˆ€~��€: ‚�Žƒ‚vƒ„~ƒAN…1t= †…O‡††�ˆ‡„>EˆQ‰„ ЉQ‹„ Œ‹ �(ŠŒQŽ„ �Ž �(��…‘Nvˆ’�‘ “1ˆP’ƒ”P“>G”ùqøsAN–1•= —–O˜——Q ™Oš™™ˆ›m˜�œš› � œANŸ1ž=  ŸO¡  …¢�˜�£¡¢>E£Q¤�ƒ¥¤N ¦¥Q§�ƒ¨§N ©¨ ª(¦©Q«�ƒ¬«N ­¬ ®(ª­…¯®Ð °1”P¯ƒ±P°>G±ùqøqAN²1z= ³²O´³³=µEƒ¶´µ ·E¶AN¹1¸= º¹O»ºº=¼Eƒ½»¼”¾½½ ¿(¾; À ¿ŽÁ½ÀANÃ1Â= ÄÃOÅÄÄAOÆ1¸P=ÇÆAOÈ1ÂP=ÉÈ�ʾɈËÇÊŽÌÅËÍÁ”ÎÍ·9Ï`ÎNŽÐÌÏANÒ1Ñ= ÓÒOÔÓÓ=ÕEANÖ1¤= ×ÖANÙ1Ø= ÚÙ9ÛLÕÔ×ÚAOÜ1ØP=ÝÜA6ÞEz=ßÞ à0Ýß…áÛàANâ1= ãâOäãã”åÔ·AOæ1P=çæ9è`åç…éáèŽêäéANë1z= ìëOíìì=îEƒïíî ðBï ñ(ð<Q òQóòAOõ1ôP=öõ…÷óöˆø÷ñAOú1ùô=ûú ü(øûAOý1žP=þýƒÿñþ ÿˆñAO1ôP=……=AO1PP=…>  %� ü … üü…   ˆ   �Ðê=G…  1O‰ñ…ŽAFHô>Q &ÂAK= A1w= =EP P‘ …  ÐAO!1PP="!ˆ# "Ž $#AO%1ùz=&%ˆ'P&P ('P… )$(A6*Hôw=+*A6,Hôz=-, .(+-A6/Hôô=0/ 1(.0 20k1O 4Q5Ž 6)5Ž 762� 847Q9Q:P ;89:A3<Hw><;A=Hz>==>HQ ?>>(?A@A(z=BACB>ACQ D>>*DQE>>,Eý86Q/øF= IH= LJ=OMPGILOA0RwùTøTQ UGQ VG”WUVXW…YX ZY [1SPWƒ\P[…]Z\Q^GŽ_^]AO`Rùw=a`9bL_aP cb>Pcý8 Ë™Á†Ë�ÞLÊËshaders/paper_pcfjÔ¹¨BTSR §È§ÈÀgÉ2 ™âÀYãsã™ ä$õ 0ÙÀðÙ]Ë M¥À ¦«Ï' ãÒÀvs_mainvs_mainfs_mainfs_main|Èstruct VsIn { @location(0) q: vec2, @location(1) m0_: vec4, @location(2) m1_: vec4, @location(3) m2_: vec4, @location(4) m3_: vec4, @location(5) uvRect: vec4, @location(6) clip: vec4, @location(7) params: vec4, @location(8) look: vec4, @location(9) edges: vec4, @location(10) pin: vec4, } struct Frame { viewProj: mat4x4, lightViewProj: mat4x4, lightPos: vec4, lightColor: vec4, ambient: vec4, shadowA: vec4, camPos: vec4, paperA: vec4, paperB: vec4, paperC: vec4, glow: vec4, pageRect: vec4, view: vec4, moonDir: vec4, moonColor: vec4, bounce: vec4, shadowB: vec4, pages: vec4, table: vec4, highlight: vec4, rim: vec4, moonshine: vec4, haze: vec4, glowAir: vec4, crease: vec4, windA: vec4, windB: vec4, charm: vec4, charmColor: vec4, charmLight: vec4, fill: vec4, gilt: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) world: vec3, @location(1) uv: vec2, @location(2) q: vec2, @location(3) @interpolate(flat) normal: vec4, @location(4) @interpolate(flat) tangent: vec4, @location(5) @interpolate(flat) bitangent: vec4, @location(6) @interpolate(flat) clip: vec4, @location(7) @interpolate(flat) params: vec4, @location(8) @interpolate(flat) look: vec4, @location(9) @interpolate(flat) edges: vec4, @location(10) bent: vec3, } struct PaperSurf { slope: vec2, tone: f32, formation: f32, } const HDR_RANGE: f32 = 4f; const HAZE_START: f32 = 2.8f; const WIND_TAU: f32 = 6.2831855f; const CONTACT_MIN: f32 = 1f; const CONTACT_GROWTH: f32 = 3.2f; const CONTACT_MAX: f32 = 8f; const THREAD_GAIN: f32 = 9f; const THREAD_HEAD: f32 = 2.2f; const PAPER_LIN: vec3 = vec3(0.8631f, 0.7913f, 0.6445f); const SHADOW_PAPER_LIN: vec3 = vec3(0.6867f, 0.5972f, 0.4342f); const BOUNCE_REACH_MAX: f32 = 0.3f; const CREASE_DARK: f32 = 0.3f; const CUT_DARK: f32 = 0.18f; const GUTTER_DARK: f32 = 0.38f; @group(0) @binding(0) var frame: Frame; @group(0) @binding(1) var shadowMap: texture_depth_2d; @group(0) @binding(2) var shadowSamp: sampler_comparison; @group(0) @binding(3) var phosphorTex: texture_2d; @group(0) @binding(4) var maskTex: texture_2d; @group(0) @binding(5) var aoTex: texture_2d; @group(0) @binding(6) var mapSamp: sampler; @group(1) @binding(0) var albedoTex: texture_2d; @group(1) @binding(1) var albedoSamp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x_1 = max(c, vec3(0f)); let lo = (x_1 * 0.07739938f); let hi = pow(((x_1 + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x_1 <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_2 = max(c_1, vec3(0f)); let lo_1 = (x_2 * 12.92f); let hi_1 = ((1.055f * pow(x_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_2 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e_1: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_5 = floor(p_1); let f = (p_1 - i_5); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_5); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_6 = floor(p_2); let f_1 = (p_2 - i_6); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_6); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2f) - 1f), (g_1 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn pointGlow(eye: vec3, dir: vec3, dist: f32, light: vec3, s2_: f32) -> f32 { let toL = (light - eye); let t0_ = dot(toL, dir); let h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0f); let k = sqrt((h2_ + max(s2_, 0.000001f))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } fn atmosphere(col: vec3, world_1: vec3, eye_1: vec3, light_1: vec3, haze: vec4, glow: vec4) -> vec3 { let dv = (world_1 - eye_1); let dist_2 = length(dv); let dir_2 = (dv / vec3(max(dist_2, 0.00001f))); let T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0f))); let _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T_1) + (haze.xyz * (1f - T_1))) + (glow.xyz * _e21)); } fn windowMask(q: vec2, win: vec4, win2_: vec4, soft: f32, lattice: f32) -> f32 { var local_33: bool; var local_34: bool; var local_35: bool; var bars: f32; let x0_ = win.x; let x1_ = win.y; let sill = win.z; let spring = win.w; let r_3 = ((x1_ - x0_) * 0.5f); let cx = (x0_ + r_3); let s_2 = max(soft, 0.0001f); if !((q.x < (x0_ - s_2))) { local_33 = (q.x > (x1_ + s_2)); } else { local_33 = true; } let _e25 = local_33; if !(_e25) { local_34 = (q.y < (sill - s_2)); } else { local_34 = true; } let _e33 = local_34; if !(_e33) { local_35 = (q.y > ((spring + r_3) + s_2)); } else { local_35 = true; } let _e42 = local_35; if _e42 { return 0f; } let inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); let dArch = (r_3 - length((q - vec2(cx, spring)))); let inArch = smoothstep(-(s_2), s_2, dArch); let open = (inRect * select(inArch, 1f, (q.y < spring))); let bw = win2_.y; bars = (1f - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); let ty = ((q.y - sill) / win2_.z); let tf = (abs((fract((ty + 0.5f)) - 0.5f)) * win2_.z); let _e89 = bars; bars = max(_e89, ((1f - smoothstep(((bw * 0.8f) - s_2), ((bw * 0.8f) + s_2), tf)) * step(q.y, spring))); let a_1 = atan2((q.y - spring), (q.x - cx)); let spoke = ((abs((fract(((a_1 / 0.7853982f) + 0.5f)) - 0.5f)) * 0.7853982f) * length((q - vec2(cx, spring)))); let _e122 = bars; bars = max(_e122, ((1f - smoothstep(((bw * 0.7f) - s_2), ((bw * 0.7f) + s_2), spoke)) * step(spring, q.y))); if (lattice > 0.5f) { let fade = (1f - smoothstep(0.02f, 0.09f, s_2)); let dq = (q * 2.6f); let l1_ = (abs((fract((((dq.x + dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let l2_ = (abs((fract((((dq.x - dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let _e172 = bars; bars = max(_e172, (((1f - smoothstep((0.012f - s_2), (0.012f + s_2), min(l1_, l2_))) * fade) * 0.85f)); } let _e183 = bars; return (open * (1f - _e183)); } fn backProject(p_4: vec3, d: vec3, planeZ: f32) -> vec3 { let s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001f)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } fn moonPatch(p_5: vec3, d_1: vec3, win_1: vec4, win2_1: vec4) -> f32 { if (p_5.z < win2_1.x) { return 0f; } let _e9 = backProject(p_5, d_1, win2_1.x); let _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006f + (_e9.z * 0.011f)), 1f); return _e17; } fn hgPhase(cosT: f32, g: f32) -> f32 { let gg = (g * g); return ((1f - gg) / pow(max(((1f + gg) - ((2f * g) * cosT)), 0.0001f), 1.5f)); } fn shaftScatter(eye_2: vec3, dir_1: vec3, dist_1: f32, d_2: vec3, win_2: vec4, win2_2: vec4, jitter: f32, top: f32) -> f32 { var ta: f32 = 0f; var tb: f32; var sum: f32 = 0f; var i_2: i32 = 0i; let zw = win2_2.x; let invdz = (1f / max(d_2.z, 0.0001f)); let qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); let qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if (dir_1.z < 0f) { let _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if (dir_1.y < 0f) { let _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } let lo_2 = vec2(win_2.x, win_2.z); let hi_2 = vec2(win_2.y, top); let inv = (vec2(1f) / select(qd, vec2(0.000001f), (abs(qd) < vec2(0.000001f)))); let t1_ = ((lo_2 - qa) * inv); let t2_ = ((hi_2 - qa) * inv); let tmin = min(t1_, t2_); let tmax = max(t1_, t2_); let _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); let _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); let _e80 = tb; let _e81 = ta; if (_e80 <= _e81) { return 0f; } let _e84 = tb; let _e85 = ta; let dt = ((_e84 - _e85) / 5f); loop { let _e93 = i_2; if (_e93 < 5i) { } else { break; } { let _e96 = ta; let _e97 = i_2; let t_1 = (_e96 + ((f32(_e97) + jitter) * dt)); let q_2 = (qa + (t_1 * qd)); let s_4 = (((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz); let _e110 = sum; let _e116 = windowMask(q_2, win_2, win2_2, (0.008f + (s_4 * 0.003f)), 0f); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035f)))); } continuing { let _e123 = i_2; i_2 = (_e123 + 1i); } } let _e126 = ta; let _e127 = tb; let qm = (qa + (((_e126 + _e127) * 0.5f) * qd)); let _e141 = vnoise(((qm * vec2(3.1f, 0.9f)) + vec2(7.1f, 3.3f))); let _e146 = vnoise((qm * vec2(9f, 2.2f))); let dust = (0.45f + (0.55f * smoothstep(-0.6f, 0.8f, (_e141 + (0.5f * _e146))))); let _e157 = sum; return ((_e157 * dt) * dust); } fn windAnchor(sheet: vec2, size: vec2, mask: f32, pin: vec4) -> f32 { var d_3: f32 = 1000f; let m = u32((clamp(mask, 0f, 15f) + 0.5f)); if ((m & 1u) != 0u) { let _e16 = d_3; d_3 = min(_e16, abs(sheet.x)); } if ((m & 2u) != 0u) { let _e24 = d_3; d_3 = min(_e24, abs((size.x - sheet.x))); } if ((m & 4u) != 0u) { let _e34 = d_3; d_3 = min(_e34, abs(sheet.y)); } if ((m & 8u) != 0u) { let _e42 = d_3; d_3 = min(_e42, abs((size.y - sheet.y))); } if (pin.x > -0.5f) { let a_2 = (pin.xy * size); let ab = ((pin.zw * size) - a_2); let t_2 = clamp((dot((sheet - a_2), ab) / max(dot(ab, ab), 0.0000000001f)), 0f, 1f); let _e65 = d_3; d_3 = min(_e65, length((sheet - (a_2 + (ab * t_2))))); } let _e71 = d_3; return _e71; } fn windDisp(P0_: vec3, N_1: vec3, sheet_1: vec2, size_1: vec2, mask_1: f32, pin_1: vec4, seed: f32, wa: vec4, wb: vec4) -> f32 { let _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); let f_2 = min((_e9 * wb.z), 1.4f); let t_3 = wa.z; let dir_3 = wb.xy; let along = dot(P0_.xz, dir_3); let _e26 = vnoise(vec2(((along * 6f) - (t_3 * 2.2f)), (seed * 7.3f))); let front = (0.7f + (0.3f * _e26)); let g_2 = (wa.w * front); let push = dot(N_1.xz, dir_3); let _e54 = vnoise(vec2(((t_3 * 1.9f) + (seed * 13f)), (along * 3f))); let swing = ((0.65f * sin((((t_3 * 7.5f) + (seed * WIND_TAU)) + (along * 2.5f)))) + (0.35f * _e54)); let sway = ((wa.x * g_2) * ((0.55f * push) + (0.45f * swing))); let run = (((dot(sheet_1, vec2(0.6f, 0.8f)) * 41.8879f) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11f)); let _e92 = vnoise(vec2(((t_3 * 3.3f) + (seed * 5f)), (along * 5f))); let flutter = (((wa.y * g_2) * sin(run)) * (0.55f + (0.45f * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } fn windBend(P0_1: vec3, N_2: vec3, T: vec3, B: vec3, sheet_2: vec2, size_2: vec2, mask_2: f32, pin_2: vec4, seed_1: f32, weight: f32, wa_1: vec4, wb_1: vec4) -> vec4 { let _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let d0_ = (_e13 * weight); let _e20 = windDisp((P0_1 + (T * 0.006f)), N_2, (sheet_2 + vec2(0.006f, 0f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dx = (_e20 * weight); let _e27 = windDisp((P0_1 + (B * 0.006f)), N_2, (sheet_2 + vec2(0f, 0.006f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dy = (_e27 * weight); let n_2 = normalize(((N_2 - (T * ((dx - d0_) / 0.006f))) - (B * ((dy - d0_) / 0.006f)))); return vec4(n_2, d0_); } fn shadowVisibility(lvp: mat4x4, sa: vec4, sb: vec4, world_2: vec3, fragXY: vec2, lightXZ: vec2) -> f32 { var disk: array, 16> = array, 16>(vec2(-0.94201624f, -0.39906216f), vec2(0.9455861f, -0.76890725f), vec2(-0.0941841f, -0.9293887f), vec2(0.34495938f, 0.2938776f), vec2(-0.9158858f, 0.45771432f), vec2(-0.8154423f, -0.87912464f), vec2(-0.38277543f, 0.27676845f), vec2(0.974844f, 0.7564838f), vec2(0.44323325f, -0.97511554f), vec2(0.5374298f, -0.4737342f), vec2(-0.2649691f, -0.41893023f), vec2(0.79197514f, 0.19090188f), vec2(-0.2418884f, 0.99706507f), vec2(-0.81409955f, 0.9143759f), vec2(0.19984126f, 0.78641367f), vec2(0.14383161f, -0.1410079f)); var lit: f32 = 0f; var i_3: i32 = 0i; let lc = (lvp * vec4(world_2, 1f)); let ndc = (lc.xyz / vec3(lc.w)); let uv = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let depthRef = (ndc.z - sb.x); let _e77 = ign(fragXY); let angle = (6.2831855f * _e77); let cs = cos(angle); let sn = sin(angle); let reach = length((world_2.xz - lightXZ)); let contact = min((CONTACT_MIN + ((CONTACT_GROWTH * max((reach - sb.w), 0f)) / max(sb.w, 0.001f))), CONTACT_MAX); let radius = (sa.xy * select((sa.z * (1f + (sb.z * reach))), contact, (sb.w > 0f))); loop { let _e115 = i_3; if (_e115 < 16i) { } else { break; } { let _e118 = i_3; let d_4 = disk[_e118]; let o_1 = (vec2(((d_4.x * cs) - (d_4.y * sn)), ((d_4.x * sn) + (d_4.y * cs))) * radius); let _e133 = lit; let _e137 = textureSampleCompareLevel(shadowMap, shadowSamp, (uv + o_1), depthRef); lit = (_e133 + _e137); } continuing { let _e139 = i_3; i_3 = (_e139 + 1i); } } let _e142 = lit; lit = (_e142 / 16f); let inside = ((((step(0f, uv.x) * step(uv.x, 1f)) * step(0f, uv.y)) * step(uv.y, 1f)) * step(0f, lc.w)); let _e164 = lit; return mix(1f, _e164, inside); } fn shadowVisibilityWide(lvp_1: mat4x4, sa_1: vec4, sb_1: vec4, world_3: vec3, fragXY_1: vec2, r: f32) -> f32 { var ring: array, 4> = array, 4>(vec2(0.354f, 0f), vec2(-0.452f, 0.414f), vec2(0.069f, -0.788f), vec2(0.569f, 0.742f)); var lit_1: f32 = 0f; var i_4: i32 = 0i; let _e24 = ign((fragXY_1 + vec2(5f, 3f))); let angle_1 = (6.2831855f * _e24); let cs_1 = cos(angle_1); let sn_1 = sin(angle_1); loop { let _e33 = i_4; if (_e33 < 4i) { } else { break; } { let _e36 = i_4; let d_5 = ring[_e36]; let o_2 = (vec2(((d_5.x * cs_1) - (d_5.y * sn_1)), ((d_5.x * sn_1) + (d_5.y * cs_1))) * r); let lc_1 = (lvp_1 * vec4((world_3 + vec3(o_2.x, 0f, o_2.y)), 1f)); let ndc_1 = (lc_1.xyz / vec3(lc_1.w)); let uv_1 = vec2(((ndc_1.x * 0.5f) + 0.5f), (0.5f - (ndc_1.y * 0.5f))); let inside_1 = ((((step(0f, uv_1.x) * step(uv_1.x, 1f)) * step(0f, uv_1.y)) * step(uv_1.y, 1f)) * step(0f, lc_1.w)); let _e93 = lit_1; let _e99 = textureSampleCompareLevel(shadowMap, shadowSamp, uv_1, (ndc_1.z - sb_1.x)); lit_1 = (_e93 + mix(1f, _e99, inside_1)); } continuing { let _e103 = i_4; i_4 = (_e103 + 1i); } } let _e106 = lit_1; return (_e106 * 0.25f); } fn fibreLayer(n: vec3, r_1: mat2x2, a: vec2) -> vec3 { let k_1 = (1f - abs(n.x)); let k3_ = ((k_1 * k_1) * k_1); let ridge = (k3_ * k_1); let gN = (n.yz * ((-4f * k3_) * sign(n.x))); let g_3 = (transpose(r_1) * ((gN * a) / vec2(a.y))); return vec3(ridge, g_3); } fn paperSurface(q_1: vec2, fp: f32, scale: f32) -> PaperSurf { var s_1: PaperSurf; let _e10 = vnoise(((q_1 * (7f * scale)) + vec2(3.1f, 7.7f))); let _e18 = vnoise(((q_1 * (19f * scale)) + vec2(11.7f, 4.2f))); let t1f = (150f * scale); let t2f = (340f * scale); let _e28 = vnoiseD(((q_1 * t1f) + vec2(7.3f, 1.9f))); let _e34 = vnoiseD(((q_1 * t2f) + vec2(2.1f, 9.4f))); let ft1_ = clamp((1.5f - ((fp * t1f) * 1.3f)), 0f, 1f); let ft2_ = clamp((1.5f - ((fp * t2f) * 1.3f)), 0f, 1f); let r1_ = mat2x2(vec2(0.9063f, 0.4226f), vec2(-0.4226f, 0.9063f)); let r2_ = mat2x2(vec2(-0.342f, 0.9397f), vec2(-0.9397f, -0.342f)); let r3_ = mat2x2(vec2(0.5f, -0.866f), vec2(0.866f, 0.5f)); let a_3 = (vec2(95f, 280f) * scale); let _e78 = vnoiseD(((r1_ * q_1) * a_3)); let _e79 = fibreLayer(_e78, r1_, a_3); let _e86 = vnoiseD((((r2_ * q_1) * a_3) + vec2(31f, 17f))); let _e87 = fibreLayer(_e86, r2_, a_3); let _e94 = vnoiseD((((r3_ * q_1) * a_3) + vec2(5f, 43f))); let _e95 = fibreLayer(_e94, r3_, a_3); let fF = clamp((1.5f - ((fp * a_3.y) * 1.2f)), 0f, 1f); let fibres = (((_e79.x + _e87.x) + _e95.x) * fF); s_1.formation = clamp((((0.5f + (0.36f * _e10)) + (0.24f * _e18)) + (0.1f * fibres)), 0f, 1f); s_1.tone = ((((1f + (0.08f * ((0.36f * _e10) + (0.24f * _e18)))) + ((0.022f * _e28.x) * ft1_)) + ((0.012f * _e34.x) * ft2_)) + (0.03f * (fibres - 0.3f))); s_1.slope = (((_e28.yz * (0.9f * ft1_)) + (_e34.yz * (0.45f * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18f * fF))); let _e170 = s_1; return _e170; } fn unpack16_(t: vec4) -> f32 { return (((floor(((t.x * 255f) + 0.5f)) * 256f) + floor(((t.y * 255f) + 0.5f))) * 0.000015259022f); } fn phosphorPacked(puv: vec2) -> f32 { let _e2 = textureDimensions(phosphorTex); let dims = vec2(_e2); let st = ((clamp(puv, vec2(0f), vec2(1f)) * dims) - vec2(0.5f)); let i0_ = vec2(floor(st)); let fr = (st - floor(st)); let mx = (vec2(dims) - vec2(1i)); let _e26 = textureLoad(phosphorTex, clamp(i0_, vec2(0i), mx), 0i); let _e27 = unpack16_(_e26); let _e37 = textureLoad(phosphorTex, clamp((i0_ + vec2(1i, 0i)), vec2(0i), mx), 0i); let _e38 = unpack16_(_e37); let _e48 = textureLoad(phosphorTex, clamp((i0_ + vec2(0i, 1i)), vec2(0i), mx), 0i); let _e49 = unpack16_(_e48); let _e59 = textureLoad(phosphorTex, clamp((i0_ + vec2(1i, 1i)), vec2(0i), mx), 0i); let _e60 = unpack16_(_e59); return mix(mix(_e27, _e38, fr.x), mix(_e49, _e60, fr.x), fr.y); } fn shoulder(x: f32, knee: f32, r_2: f32) -> f32 { var local_36: bool; if !((x <= knee)) { local_36 = (r_2 <= 0f); } else { local_36 = true; } let _e10 = local_36; if _e10 { return x; } return (knee + (r_2 * log((1f + ((x - knee) / r_2))))); } fn sideDist(sheet_3: vec2, size_3: vec2, mask_3: f32) -> vec3 { var best: vec3 = vec3(1000f, 0f, 0f); var local_37: bool; var local_38: bool; var local_39: bool; var local_40: bool; let m_1 = u32((clamp(mask_3, 0f, 15f) + 0.5f)); if ((m_1 & 1u) != 0u) { let _e22 = best.x; local_37 = (sheet_3.x < _e22); } else { local_37 = false; } let _e25 = local_37; if _e25 { best = vec3(sheet_3.x, -1f, 0f); } if ((m_1 & 2u) != 0u) { let _e40 = best.x; local_38 = ((size_3.x - sheet_3.x) < _e40); } else { local_38 = false; } let _e43 = local_38; if _e43 { best = vec3((size_3.x - sheet_3.x), 1f, 0f); } if ((m_1 & 4u) != 0u) { let _e58 = best.x; local_39 = (sheet_3.y < _e58); } else { local_39 = false; } let _e61 = local_39; if _e61 { best = vec3(sheet_3.y, 0f, -1f); } if ((m_1 & 8u) != 0u) { let _e76 = best.x; local_40 = ((size_3.y - sheet_3.y) < _e76); } else { local_40 = false; } let _e79 = local_40; if _e79 { best = vec3((size_3.y - sheet_3.y), 0f, 1f); } let _e86 = best; return _e86; } fn inUnit(p_6: vec2) -> f32 { return (((step(0f, p_6.x) * step(p_6.x, 1f)) * step(0f, p_6.y)) * step(p_6.y, 1f)); } @vertex fn vs_main(in: VsIn) -> VsOut { var world: vec3; var bent: vec3; var local: bool; var out: VsOut; let model = mat4x4(in.m0_, in.m1_, in.m2_, in.m3_); world = (model * vec4(in.q, 0f, 1f)).xyz; let w_1 = length(in.m0_.xyz); let h = length(in.m1_.xyz); let N0_ = normalize(in.m2_.xyz); bent = N0_; if (in.edges.z > 0f) { let _e32 = frame.windA.w; local = (_e32 > 0f); } else { local = false; } let _e36 = local; if _e36 { let size_4 = vec2(w_1, h); let _e38 = world; let _e62 = frame.windA; let _e65 = frame.windB; let _e66 = windBend(_e38, N0_, (in.m0_.xyz / vec3(max(w_1, 0.000001f))), (in.m1_.xyz / vec3(max(h, 0.000001f))), (in.q * size_4), size_4, in.edges.x, in.pin, in.look.z, in.edges.z, _e62, _e65); let _e67 = world; world = (_e67 + (N0_ * _e66.w)); bent = _e66.xyz; } let _e76 = frame.viewProj; let _e77 = world; out.position = (_e76 * vec4(_e77, 1f)); let _e82 = world; out.world = _e82; out.uv = (in.uvRect.xy + (in.q * in.uvRect.zw)); out.q = in.q; out.normal = vec4(normalize(in.m2_.xyz), 0f); out.tangent = vec4((in.m0_.xyz / vec3(max(w_1, 0.000001f))), w_1); out.bitangent = vec4((in.m1_.xyz / vec3(max(h, 0.000001f))), h); out.clip = in.clip; out.params = in.params; out.look = in.look; out.edges = in.edges; let _e124 = bent; out.bent = _e124; let _e125 = out; return _e125; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { var cov: f32; var local_1: bool; var local_2: bool; var local_3: bool; var art: vec3; var local_4: bool; var Ng: vec3; var local_5: bool; var albedo: vec3; var local_6: bool; var N: vec3; var crease: f32 = 0f; var local_7: bool; var local_8: bool; var cutBand: f32 = 0f; var cutOut: vec3 = vec3(0f); var cutDist: f32 = 1000f; var local_9: bool; var fd: f32; var local_10: bool; var e: f32; var o: vec2; var local_11: bool; var vis: f32 = 1f; var local_12: bool; var trans: vec3 = vec3(0f); var local_13: bool; var ao: f32 = 1f; var visT: f32; var lift: vec3 = vec3(0f); var local_14: bool; var local_15: bool; var visQ: f32 = 1f; var color: vec3; var local_16: bool; var moonTrans: vec3 = vec3(0f); var local_17: bool; var local_18: bool; var local_19: bool; var local_20: bool; var local_21: bool; var local_22: bool; var local_23: bool; var local_24: bool; var thread: f32; var local_25: bool; var charge: f32; var local_26: bool; var local_27: bool; var c2_: f32; var local_28: bool; var local_29: bool; var local_30: bool; var local_31: bool; var local_32: bool; let texel = textureSample(albedoTex, albedoSamp, in_1.uv); let textured = (in_1.params.w < 0f); let a_4 = select(1f, texel.w, textured); let aWidth = fwidth(a_4); let _e19 = luma((texel.xyz / vec3(max(texel.w, 0.0001f)))); let _e20 = fwidth(_e19); let inkEdge = clamp((_e20 * 7f), 0f, 1f); let rd = (0.5f - length((in_1.q - vec2(0.5f, 0.5f)))); let rdWidth = fwidth(rd); let cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); let cdWidth = fwidth(cd); let sheetSize = vec2(in_1.tangent.w, in_1.bitangent.w); let sheet_4 = (in_1.q * sheetSize); let fw = fwidth(sheet_4); let fp_1 = max(max(fw.x, fw.y), 0.000001f); let dsx = dpdx(sheet_4); let dsy = dpdy(sheet_4); let dax = dpdx(a_4); let day = dpdy(a_4); let puvPage = vec2((in_1.look.w + (0.5f * in_1.q.x)), (1f - in_1.q.y)); let _e77 = frame.pageRect.x; let _e82 = frame.pageRect.z; let _e89 = frame.pageRect.y; let _e94 = frame.pageRect.w; let puvWorld = vec2(((in_1.world.x - _e77) * _e82), ((in_1.world.z - _e89) * _e94)); let puv_1 = select(puvWorld, puvPage, (in_1.look.w >= 0f)); let _e104 = textureSample(phosphorTex, mapSamp, puv_1); let phosF16_ = _e104.x; let _e108 = textureSample(maskTex, mapSamp, puv_1); let maskA = _e108.w; let _e112 = textureSample(aoTex, mapSamp, puv_1); let aoMap = _e112.x; let _e114 = inUnit(puv_1); let soft_1 = clamp((((a_4 - 0.5f) / max(aWidth, 0.0001f)) + 0.5f), 0f, 1f); let _e130 = frame.view.w; cov = select(step(0.5f, a_4), soft_1, (_e130 > 0.5f)); let _e135 = cov; cov = select(1f, _e135, (in_1.params.y > 0.5f)); let _e142 = cov; cov = (_e142 * select(1f, clamp(((rd / max(rdWidth, 0.000001f)) + 0.5f), 0f, 1f), (in_1.params.z > 0.5f))); let _e158 = cov; cov = (_e158 * select(1f, clamp(((cd / max(cdWidth, 0.000001f)) + 0.5f), 0f, 1f), (in_1.clip.w > 0.5f))); let _e174 = cov; if (_e174 <= 0f) { discard; } let kind = in_1.look.x; if (kind > 0.5f) { local_1 = (kind < 1.5f); } else { local_1 = false; } let isPage = local_1; if (kind > 1.5f) { local_2 = (kind < 2.5f); } else { local_2 = false; } let isBoard = local_2; let isCard = (kind < 0.5f); if (kind > 2.5f) { local_3 = (kind < 3.5f); } else { local_3 = false; } let isLeaf = local_3; let side = in_1.look.y; let viewMode = frame.view.x; let tone = select(PAPER_LIN, SHADOW_PAPER_LIN, (in_1.params.w > 0.5f)); let _e224 = srgbToLinear((texel.xyz / vec3(max(texel.w, 0.0001f)))); art = select(tone, _e224, textured); if (viewMode > 4.5f) { local_4 = (viewMode < 5.5f); } else { local_4 = false; } let _e234 = local_4; if _e234 { art = vec3(0.6f); } let _e239 = frame.camPos; let V = normalize((_e239.xyz - in_1.world)); Ng = normalize(in_1.bent); let _e247 = Ng; let facing = (dot(_e247, V) >= 0f); let _e251 = Ng; let _e253 = Ng; Ng = select(-(_e251), _e253, facing); let _e257 = art; let reverse = select(SHADOW_PAPER_LIN, mix(SHADOW_PAPER_LIN, _e257, 0.55f), (kind < -0.5f)); let _e263 = art; if !(facing) { local_5 = !(isCard); } else { local_5 = true; } let _e269 = local_5; albedo = select(reverse, _e263, _e269); if (viewMode > 4.5f) { local_6 = (viewMode < 5.5f); } else { local_6 = false; } let _e279 = local_6; if _e279 { albedo = vec3(0.6f); } let grainOn = frame.paperA.x; let _e299 = frame.paperA.w; let _e300 = paperSurface((sheet_4 + vec2((in_1.look.z * 13.7f), (in_1.look.z * 5.3f))), fp_1, _e299); let grainTone = mix(1f, _e300.tone, grainOn); let _e304 = albedo; albedo = (_e304 * grainTone); let _e306 = art; art = (_e306 * grainTone); let T_2 = in_1.tangent.xyz; let B_1 = in_1.bitangent.xyz; let _e312 = Ng; N = _e312; if isPage { local_7 = (abs(side) > 0.5f); } else { local_7 = false; } let _e322 = local_7; if _e322 { let _e328 = frame.paperC.z; local_8 = (_e328 > 0f); } else { local_8 = false; } let _e332 = local_8; if _e332 { let ds = select(sheet_4.x, (sheetSize.x - sheet_4.x), (side > 0f)); crease = (1f - smoothstep(0f, 0.075f, ds)); let _e345 = N; let _e348 = crease; let _e350 = crease; N = normalize((_e345 + (T_2 * (((side * 0.55f) * _e348) * _e350)))); let _e358 = frame.crease.x; if (_e358 > 0f) { let _e364 = frame.crease.y; let wG = (_e364 * 1.4f); let wGF = max(wG, fp_1); let _e368 = albedo; let _e373 = frame.crease.x; albedo = (_e368 * (1f - (((GUTTER_DARK * _e373) * (1f - smoothstep(0f, wGF, ds))) * (wG / wGF)))); } } let _e389 = frame.paperA.y; let slope = (_e300.slope * (_e389 * grainOn)); let _e392 = N; N = normalize(((_e392 - (T_2 * slope.x)) - (B_1 * slope.y))); if isCard { let _e412 = frame.crease.x; local_9 = (_e412 > 0f); } else { local_9 = false; } let _e416 = local_9; if _e416 { let _e419 = sideDist(sheet_4, sheetSize, in_1.edges.x); fd = _e419.x; if (in_1.edges.y > 0.5f) { local_10 = (in_1.clip.w > 0.5f); } else { local_10 = false; } let _e433 = local_10; if _e433 { let _e434 = fd; fd = min(_e434, abs(cd)); } let wC = frame.crease.y; let wCF = max(wC, fp_1); let _e442 = fd; let foldLine = ((1f - smoothstep(0f, wCF, _e442)) * (wC / wCF)); let _e449 = albedo; let _e454 = frame.crease.x; albedo = (_e449 * (1f - ((CREASE_DARK * _e454) * foldLine))); let _e464 = sideDist(sheet_4, sheetSize, (15f - in_1.edges.x)); e = _e464.x; o = _e464.yz; if textured { let det = ((dsx.x * dsy.y) - (dsx.y * dsy.x)); let g_4 = (vec2(((dsy.y * dax) - (dsx.y * day)), ((dsx.x * day) - (dsy.x * dax))) / vec2(select(det, 0.000000000001f, (abs(det) < 0.000000000001f)))); let gl = length(g_4); if (gl > 1f) { let ea = ((a_4 - 0.5f) / gl); let _e500 = e; if (ea < _e500) { e = ea; o = (-(g_4) / vec2(gl)); } } } if (in_1.params.z > 0.5f) { let rq = (in_1.q - vec2(0.5f, 0.5f)); let ed = (rd * sheetSize.x); let _e516 = e; if (ed < _e516) { e = ed; o = (rq / vec2(max(length(rq), 0.000001f))); } } let t_4 = frame.crease.z; let tF = max(t_4, fp_1); let _e528 = e; let _e540 = frame.crease.x; cutBand = (((1f - smoothstep(0f, tF, max(_e528, 0f))) * (t_4 / tF)) * _e540); let _e542 = e; cutDist = max(_e542, 0f); let _e546 = o.x; let _e549 = o.y; cutOut = ((T_2 * _e546) + (B_1 * _e549)); let _e552 = albedo; let _e554 = cutBand; albedo = (_e552 * (1f - (CUT_DARK * _e554))); } let _e562 = frame.pages.x; let _e566 = frame.pages.y; let hostN = select(vec3(_e562, _e566, 0f), vec3(0f, 1f, 0f), (side > 0f)); let hostH = max(dot(in_1.world, hostN), 0f); let _e580 = Ng; if isCard { local_11 = (abs(side) > 0.5f); } else { local_11 = false; } let _e591 = local_11; let upright = select(0f, (1f - abs(dot(_e580, hostN))), _e591); let _e596 = frame.lightPos; let toL_1 = (_e596.xyz - in_1.world); let d2_ = dot(toL_1, toL_1); let L = (toL_1 * inverseSqrt(max(d2_, 0.00000001f))); let _e608 = frame.lightPos.w; let _e612 = frame.lightColor.w; let atten = (_e608 / (d2_ + _e612)); let _e620 = frame.shadowA.w; if (_e620 > 0.5f) { local_12 = (in_1.params.x > 0.5f); } else { local_12 = false; } let _e630 = local_12; if _e630 { let _e631 = Ng; let _e632 = Ng; let _e642 = frame.shadowB.y; let offs = (_e631 * (select(-1f, 1f, (dot(_e632, L) >= 0f)) * _e642)); let _e647 = frame.lightViewProj; let _e650 = frame.shadowA; let _e653 = frame.shadowB; let _e660 = frame.lightPos; let _e662 = shadowVisibility(_e647, _e650, _e653, (in_1.world + offs), in_1.position.xy, _e660.xz); vis = _e662; } let wrap = frame.paperA.z; let _e667 = N; let front_1 = max(((dot(_e667, L) + wrap) / (1f + wrap)), 0f); let lookThrough = mix(0.45f, 1.45f, _e300.formation); let tint = vec3(1f, 0.74f, 0.46f); if !(isCard) { local_13 = isLeaf; } else { local_13 = true; } let _e690 = local_13; if _e690 { let _e691 = Ng; let back = max(-(dot(_e691, L)), 0f); let _e703 = frame.paperB.z; let _e708 = frame.paperB.y; let fwd = (pow(max(dot(V, -(L)), 0f), _e703) * _e708); let _e710 = art; let _e711 = art; let _e722 = frame.paperB.x; trans = (((((_e710 * _e711) * tint) * lookThrough) * (back * (1f + fwd))) * _e722); } if isPage { let _e729 = frame.paperC.x; let _e736 = frame.paperC.z; let _e737 = crease; let _e739 = crease; ao = (mix(1f, aoMap, (_e729 * _e114)) * (1f - ((_e736 * _e737) * _e739))); let ex = select(min(sheet_4.x, (sheetSize.x - sheet_4.x)), select((sheetSize.x - sheet_4.x), sheet_4.x, (side > 0f)), (abs(side) > 0.5f)); let ed_1 = min(ex, min(sheet_4.y, (sheetSize.y - sheet_4.y))); let _e768 = vnoise((sheet_4 * 38f)); let wob = (_e768 * 0.006f); let _e780 = frame.paperC.y; let edge = ((1f - smoothstep(0f, 0.04f, (ed_1 + wob))) * _e780); let _e782 = albedo; albedo = (_e782 * mix(vec3(1f), vec3(0.78f, 0.66f, 0.5f), edge)); } else { if isBoard { let ed_2 = min(min(sheet_4.x, (sheetSize.x - sheet_4.x)), min(sheet_4.y, (sheetSize.y - sheet_4.y))); let _e804 = vnoise((sheet_4 * 45f)); let wob_1 = (_e804 * 0.004f); let _e816 = frame.paperC.y; let edge_1 = ((1f - smoothstep(0f, 0.022f, (ed_2 + wob_1))) * _e816); let _e818 = albedo; let _e819 = albedo; albedo = mix(_e818, ((_e819 * 0.55f) + vec3(0.05f, 0.045f, 0.04f)), (edge_1 * 0.8f)); } else { let _e833 = frame.paperB.w; let _e838 = frame.paperC.w; ao = (1f - ((_e833 * exp((-(hostH) / max(_e838, 0.0001f)))) * upright)); } } let _e847 = vis; visT = _e847; if isCard { let _e857 = frame.fill.x; local_14 = (_e857 > 0f); } else { local_14 = false; } let _e861 = local_14; if _e861 { let _e865 = frame.fill.y; let _e866 = vis; visT = mix(_e865, 1f, _e866); let _e869 = Ng; let _e870 = Ng; let hdir = (_e869 - (hostN * dot(_e870, hostN))); let hl = length(hdir); let _e875 = vis; let _e879 = vis; let missed = ((1f - (front_1 * _e875)) * (1f - (front_1 * _e879))); let _e884 = Ng; let viewF = ((0.5f * (1f - dot(_e884, hostN))) * missed); if (hl > 0.001f) { local_15 = (viewF > 0.001f); } else { local_15 = false; } let _e898 = local_15; if _e898 { let _e902 = frame.fill.z; let _e907 = frame.fill.w; let reach_1 = min(((_e902 * hostH) + _e907), BOUNCE_REACH_MAX); let Q = ((in_1.world - (hostN * hostH)) + (hdir * (reach_1 / hl))); let _e919 = frame.lightPos; let toLQ = (_e919.xyz - Q); let dq2_ = dot(toLQ, toLQ); let cosQ = (max(dot(hostN, toLQ), 0f) * inverseSqrt(max(dq2_, 0.00000001f))); let _e935 = frame.shadowA.w; if (_e935 > 0.5f) { let _e940 = frame.lightViewProj; let _e943 = frame.shadowA; let _e946 = frame.shadowB; let _e950 = frame.shadowB.y; let _e957 = shadowVisibilityWide(_e940, _e943, _e946, (Q + (hostN * _e950)), in_1.position.xy, (0.5f * reach_1)); visQ = _e957; } let _e962 = frame.pageRect.x; let _e967 = frame.pageRect.z; let _e973 = frame.pageRect.y; let _e978 = frame.pageRect.w; let puvQ = vec2(((Q.x - _e962) * _e967), ((Q.z - _e973) * _e978)); let _e983 = frame.table; let _e986 = inUnit(puvQ); let ground = mix(_e983.xyz, PAPER_LIN, _e986); let _e991 = frame.lightPos.w; let _e995 = frame.lightColor.w; let _e1001 = frame.highlight.x; let _e1005 = frame.highlight.y; let _e1006 = shoulder((_e991 / (dq2_ + _e995)), _e1001, _e1005); let _e1008 = visQ; let eQ = ((_e1006 * cosQ) * _e1008); let _e1014 = frame.fill.x; lift = (ground * ((eQ * viewF) * _e1014)); } } let _e1019 = frame.lightColor; let _e1024 = frame.highlight.x; let _e1028 = frame.highlight.y; let _e1029 = shoulder(atten, _e1024, _e1028); let flameLit = (_e1019.xyz * _e1029); let _e1031 = vis; let light_2 = (flameLit * _e1031); let _e1033 = albedo; let _e1035 = ao; let _e1041 = trans; let _e1042 = visT; let _e1046 = albedo; let _e1049 = frame.lightColor; let _e1052 = lift; let _e1054 = ao; color = (((((_e1033 * front_1) * mix(1f, _e1035, 0.65f)) * light_2) + (_e1041 * (flameLit * _e1042))) + (((_e1046 * _e1049.xyz) * _e1052) * mix(1f, _e1054, 0.65f))); let _e1061 = cutBand; if (_e1061 > 0f) { let _e1064 = cutOut; let wallLit = max(dot(_e1064, L), 0f); let _e1068 = Ng; let graze = (0.35f + (0.65f * (1f - abs(dot(_e1068, V))))); let _e1077 = albedo; let core = mix(_e1077, (PAPER_LIN * grainTone), 0.3f); let _e1082 = color; let _e1087 = frame.crease.w; let _e1088 = cutBand; color = (_e1082 + ((core * light_2) * (((_e1087 * _e1088) * wallLit) * graze))); } let _e1094 = color; let _e1095 = luma(_e1094); let _e1096 = color; let _e1100 = frame.highlight.z; let _e1104 = frame.highlight.w; let _e1105 = shoulder(_e1095, _e1100, _e1104); color = (_e1096 * (_e1105 / max(_e1095, 0.000001f))); let _e1113 = frame.charmLight.w; if (_e1113 > 0f) { local_16 = (in_1.edges.w <= 0f); } else { local_16 = false; } let _e1123 = local_16; if _e1123 { let _e1126 = frame.charmLight; let toC = (_e1126.xyz - in_1.world); let dc2_ = dot(toC, toC); let Lc = (toC * inverseSqrt(max(dc2_, 0.00000001f))); let _e1135 = N; let wrapC = max(((dot(_e1135, Lc) + 0.6f) / 1.6f), 0f); let _e1143 = color; let _e1144 = albedo; let _e1147 = frame.charmColor; let _e1153 = frame.charmLight.w; let _e1159 = ao; color = (_e1143 + (((_e1144 * _e1147.xyz) * ((_e1153 * wrapC) / (dc2_ + 0.015f))) * mix(1f, _e1159, 0.5f))); } let _e1167 = frame.moonDir; let M = _e1167.xyz; let wrapM = frame.moonDir.w; let _e1173 = N; let moonFront = max(((dot(_e1173, M) + wrapM) / (1f + wrapM)), 0f); if !(isCard) { local_17 = isLeaf; } else { local_17 = true; } let _e1188 = local_17; if _e1188 { let _e1189 = art; let _e1190 = art; let _e1193 = Ng; let _e1201 = frame.paperB.x; moonTrans = (((_e1189 * _e1190) * lookThrough) * ((max(-(dot(_e1193, M)), 0f) * _e1201) * 0.5f)); } let _e1209 = frame.moonColor.w; let moonFall = (1f - (_e1209 * smoothstep(-0.45f, 0.45f, in_1.world.z))); let _e1218 = color; let _e1221 = frame.moonColor; let _e1223 = ao; let _e1226 = albedo; let _e1228 = moonTrans; color = (_e1218 + ((_e1221.xyz * (moonFall * _e1223)) * ((_e1226 * moonFront) + _e1228))); if !(isPage) { local_18 = isBoard; } else { local_18 = true; } let _e1236 = local_18; if _e1236 { let _e1242 = frame.rim.w; local_19 = (_e1242 > 0f); } else { local_19 = false; } let _e1246 = local_19; if _e1246 { let _e1252 = frame.rim.z; local_20 = (_e1252 > 0f); } else { local_20 = false; } let _e1256 = local_20; if _e1256 { let wR = frame.rim.w; let e0_ = ((1f - smoothstep(0f, wR, sheet_4.x)) * max(dot(-(T_2), M), 0f)); let e1_ = ((1f - smoothstep(0f, wR, (sheetSize.x - sheet_4.x))) * max(dot(T_2, M), 0f)); let e2_ = ((1f - smoothstep(0f, wR, sheet_4.y)) * max(dot(-(B_1), M), 0f)); let e3_ = ((1f - smoothstep(0f, wR, (sheetSize.y - sheet_4.y))) * max(dot(B_1, M), 0f)); let _e1303 = Ng; let _e1312 = Ng; let graze_1 = (pow((1f - min(abs(dot(_e1303, V)), 1f)), 3f) * (0.35f + (0.65f * max(dot(_e1312, M), 0f)))); let _e1321 = color; let _e1324 = frame.rim; color = (_e1321 + (_e1324.xyz * ((1.6f * (((e0_ + e1_) + e2_) + e3_)) + (0.6f * graze_1)))); } if isBoard { let _e1341 = frame.gilt.y; local_21 = (_e1341 > 0f); } else { local_21 = false; } let _e1345 = local_21; if _e1345 { let _e1346 = art; let gilt = smoothstep(0.05f, 0.22f, dot(_e1346, vec3(0.2126f, 0.7152f, 0.0722f))); let _e1355 = color; let _e1358 = frame.gilt; color = (_e1355 + (_e1358.xyz * gilt)); } let _e1365 = frame.bounce.w; let br = max(_e1365, 0.001f); let bounceK = (1f / (1f + (d2_ / (br * br)))); let _e1374 = color; let _e1375 = albedo; let _e1378 = frame.ambient; let _e1382 = frame.bounce; let _e1387 = ao; color = (_e1374 + ((_e1375 * (_e1378.xyz + (_e1382.xyz * bounceK))) * _e1387)); if isCard { local_22 = (in_1.look.w < -1f); } else { local_22 = false; } let _e1397 = local_22; if _e1397 { local_23 = (in_1.look.w > -2.5f); } else { local_23 = false; } let _e1405 = local_23; if _e1405 { let _e1406 = color; let _e1407 = art; let _e1408 = art; let _e1417 = frame.moonshine; color = (_e1406 + ((mix(_e1407, vec3(dot(_e1408, vec3(0.33f))), 0.35f) * _e1417.xyz) * (-1f - in_1.look.w))); } if isCard { local_24 = (in_1.look.w <= -2.5f); } else { local_24 = false; } let _e1433 = local_24; if _e1433 { let v_1 = (-3f - in_1.look.w); thread = clamp(v_1, 0f, 1f); if (v_1 > 1f) { let prog = clamp((v_1 - 1f), 0f, 1f); let d_6 = (in_1.q - vec2(0.5f, 0.5f)); let a_5 = fract(((atan2(d_6.x, d_6.y) * 0.15915494f) + 1f)); let behind = ((prog * 1.15f) - a_5); thread = (smoothstep(-0.015f, 0f, behind) * (1f + (THREAD_HEAD * exp((-(max(behind, 0f)) * 16f))))); } let _e1479 = art; let _e1480 = luma(_e1479); let ink = (1f - smoothstep(0.06f, 0.3f, _e1480)); let _e1486 = color; let _e1489 = frame.glow; let _e1492 = thread; color = (_e1486 + (_e1489.xyz * (((THREAD_GAIN * _e1492) * ink) * inkEdge))); } let _e1503 = frame.charm.x; let gw = (in_1.edges.w * _e1503); if isCard { local_25 = (gw > 0f); } else { local_25 = false; } let _e1510 = local_25; if _e1510 { let _e1511 = art; let _e1512 = luma(_e1511); let inkC = (1f - smoothstep(0.06f, 0.3f, _e1512)); let lines = (((inkC * inkEdge) * select(0f, 1f, facing)) * (0.75f + (0.25f * gw))); let _e1532 = cutDist; let rim = (1f - smoothstep(0f, max(0.006f, (fp_1 * 1.5f)), _e1532)); let blaze = smoothstep(0.65f, 1.5f, gw); let within = (((mix(0.5f, 1.3f, _e300.formation) * (1f - (0.85f * inkC))) * select(0.55f, 1f, facing)) * blaze); let _e1559 = frame.charmColor.w; let _e1568 = vnoise(((sheet_4 * 9f) + vec2((_e1559 * 1.1f), (in_1.look.z * 17f)))); let shimmer = (0.8f + (0.2f * _e1568)); let _e1576 = frame.charm.y; let _e1581 = frame.charm.z; let _e1587 = frame.charm.w; let lit_2 = (((_e1576 * lines) + (_e1581 * rim)) + (_e1587 * within)); let _e1590 = color; let _e1593 = frame.charmColor; color = (_e1590 + (_e1593.xyz * ((gw * shimmer) * lit_2))); } charge = phosF16_; let _e1603 = frame.glow.w; if (_e1603 > 0.5f) { let _e1606 = phosphorPacked(puv_1); charge = _e1606; } if isPage { let _e1612 = frame.view.y; local_26 = (_e1612 > 0.5f); } else { local_26 = false; } let _e1616 = local_26; if _e1616 { let pigment = mix(0.8f, 1.12f, _e300.formation); let _e1621 = color; let _e1624 = frame.glow; let _e1626 = charge; color = (_e1621 + (_e1624.xyz * (((_e1626 * maskA) * pigment) * _e114))); let _e1638 = frame.moonshine.w; let invocation = (smoothstep(0.3f, 0.75f, maskA) * _e1638); let _e1640 = color; let _e1643 = frame.glow; color = (_e1640 + (_e1643.xyz * (((invocation * pigment) * _e114) * 4f))); } if isCard { let _e1656 = frame.view.y; local_27 = (_e1656 > 0.5f); } else { local_27 = false; } let _e1660 = local_27; if _e1660 { let _e1663 = Ng; let probe = (in_1.world.xz + (_e1663.xz * 0.05f)); let _e1672 = frame.pageRect.x; let _e1677 = frame.pageRect.z; let _e1683 = frame.pageRect.y; let _e1688 = frame.pageRect.w; let puv2_ = vec2(((probe.x - _e1672) * _e1677), ((probe.y - _e1683) * _e1688)); let _e1694 = textureSampleLevel(phosphorTex, mapSamp, puv2_, 0f); c2_ = _e1694.x; let _e1700 = frame.glow.w; if (_e1700 > 0.5f) { let _e1703 = phosphorPacked(puv2_); c2_ = _e1703; } let lift_1 = exp((-(hostH) / 0.09f)); let _e1708 = color; let _e1709 = albedo; let _e1712 = frame.glow; let _e1715 = c2_; let _e1716 = inUnit(puv2_); let _e1722 = frame.view.z; color = (_e1708 + ((_e1709 * _e1712.xyz) * (((_e1715 * _e1716) * lift_1) * _e1722))); } if (viewMode > 0.5f) { local_28 = (viewMode < 1.5f); } else { local_28 = false; } let _e1733 = local_28; if _e1733 { let _e1734 = charge; let _e1737 = charge; let _e1738 = charge; color = (vec3((_e1734 * 0.35f), _e1737, (_e1738 * 0.5f)) * select(0.02f, 1f, isPage)); } else { if (viewMode > 1.5f) { local_29 = (viewMode < 2.5f); } else { local_29 = false; } let _e1753 = local_29; if _e1753 { color = (vec3(maskA) * select(0.02f, 1f, isPage)); } else { if (viewMode > 2.5f) { local_30 = (viewMode < 3.5f); } else { local_30 = false; } let _e1766 = local_30; if _e1766 { let _e1767 = ao; color = vec3(select(_e1767, aoMap, isPage)); } else { if (viewMode > 5.5f) { local_31 = (viewMode < 6.5f); } else { local_31 = false; } let _e1777 = local_31; if _e1777 { let _e1778 = vis; color = vec3(_e1778); } else { if (viewMode > 7.5f) { local_32 = (viewMode < 8.5f); } else { local_32 = false; } let _e1787 = local_32; if _e1787 { color = vec3(select(0f, 1f, isCard)); } } } } } let _e1792 = color; let _e1796 = frame.camPos; let _e1800 = frame.lightPos; let _e1804 = frame.haze; let _e1807 = frame.glowAir; let _e1808 = atmosphere(_e1792, in_1.world, _e1796.xyz, _e1800.xyz, _e1804, _e1807); color = _e1808; let _e1809 = color; let _e1813 = frame.camPos.w; let _e1814 = encodeHdr(_e1809, _e1813); let _e1815 = cov; let _e1817 = cov; return vec4((_e1814 * _e1815), _e1817); }  `·ÈÀŒ*ãÖqÇpŒÆÁÅe%vs_mainmain„P#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct Frame { mat4x4 viewProj; mat4x4 lightViewProj; vec4 lightPos; vec4 lightColor; vec4 ambient; vec4 shadowA; vec4 camPos; vec4 paperA; vec4 paperB; vec4 paperC; vec4 glow; vec4 pageRect; vec4 view; vec4 moonDir; vec4 moonColor; vec4 bounce; vec4 shadowB; vec4 pages; vec4 table; vec4 highlight; vec4 rim; vec4 moonshine; vec4 haze; vec4 glowAir; vec4 crease; vec4 windA; vec4 windB; vec4 charm; vec4 charmColor; vec4 charmLight; vec4 fill; vec4 gilt; }; struct VsOut { vec4 position; vec3 world; vec2 uv; vec2 q; vec4 normal; vec4 tangent; vec4 bitangent; vec4 clip; vec4 params; vec4 look; vec4 edges; vec3 bent; }; struct PaperSurf { vec2 slope; float tone; float formation; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; const float WIND_TAU = 6.2831855; const float CONTACT_MIN = 1.0; const float CONTACT_GROWTH = 3.2; const float CONTACT_MAX = 8.0; const float THREAD_GAIN = 9.0; const float THREAD_HEAD = 2.2; const vec3 PAPER_LIN = vec3(0.8631, 0.7913, 0.6445); const vec3 SHADOW_PAPER_LIN = vec3(0.6867, 0.5972, 0.4342); const float BOUNCE_REACH_MAX = 0.3; const float CREASE_DARK = 0.3; const float CUT_DARK = 0.18; const float GUTTER_DARK = 0.38; layout(std140) uniform Frame_block_0Vertex { Frame _group_0_binding_0_vs; }; layout(location = 0) in vec2 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec4 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec2 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out vec4 _vs2fs_location3; flat out vec4 _vs2fs_location4; flat out vec4 _vs2fs_location5; flat out vec4 _vs2fs_location6; flat out vec4 _vs2fs_location7; flat out vec4 _vs2fs_location8; flat out vec4 _vs2fs_location9; smooth out vec3 _vs2fs_location10; vec3 srgbToLinear(vec3 c) { vec3 x_1 = max(c, vec3(0.0)); vec3 lo = (x_1 * 0.07739938); vec3 hi = pow(((x_1 + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x_1, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_2 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_2 * 12.92); vec3 hi_1 = ((1.055 * pow(x_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_2, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_5 = floor(p_1); vec2 f = (p_1 - i_5); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_5); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_6 = floor(p_2); vec2 f_1 = (p_2 - i_6); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_6); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } vec3 atmosphere(vec3 col, vec3 world_1, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world_1 - eye_1); float dist_2 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_2, 1e-5))); float T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_33 = false; bool local_34 = false; bool local_35 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_3 = ((x1_ - x0_) * 0.5); float cx = (x0_ + r_3); float s_2 = max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_33 = (q.x > (x1_ + s_2)); } else { local_33 = true; } bool _e25 = local_33; if (!(_e25)) { local_34 = (q.y < (sill - s_2)); } else { local_34 = true; } bool _e33 = local_34; if (!(_e33)) { local_35 = (q.y > ((spring + r_3) + s_2)); } else { local_35 = true; } bool _e42 = local_35; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); float dArch = (r_3 - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_2), s_2, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_2), ((bw * 0.8) + s_2), tf)) * step(q.y, spring))); float a_1 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_1 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_2), ((bw * 0.7) + s_2), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_2)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_2), (0.012 + s_2), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_1 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_2 = (qa + (t_1 * qd)); float s_4 = (((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_2, win_2, win2_2, (0.008 + (s_4 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d_3 = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d_3; d_3 = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d_3; d_3 = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d_3; d_3 = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d_3; d_3 = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a_2 = (pin.xy * size); vec2 ab = ((pin.zw * size) - a_2); float t_2 = clamp((dot((sheet - a_2), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d_3; d_3 = min(_e65, length((sheet - (a_2 + (ab * t_2))))); } float _e71 = d_3; return _e71; } float windDisp(vec3 P0_, vec3 N_1, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_3 = wa.z; vec2 dir_3 = wb.xy; float along = dot(P0_.xz, dir_3); float _e26 = vnoise(vec2(((along * 6.0) - (t_3 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N_1.xz, dir_3); float _e54 = vnoise(vec2(((t_3 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_3 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_3 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_2, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_2, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_2, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_2 = normalize(((N_2 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_2, d0_); } vec3 fibreLayer(vec3 n, mat2x2 r_1, vec2 a) { float k_1 = (1.0 - abs(n.x)); float k3_ = ((k_1 * k_1) * k_1); float ridge = (k3_ * k_1); vec2 gN = (n.yz * ((-4.0 * k3_) * sign(n.x))); vec2 g_3 = (transpose(r_1) * ((gN * a) / vec2(a.y))); return vec3(ridge, g_3); } PaperSurf paperSurface(vec2 q_1, float fp, float scale) { PaperSurf s_1 = PaperSurf(vec2(0.0), 0.0, 0.0); float _e10 = vnoise(((q_1 * (7.0 * scale)) + vec2(3.1, 7.7))); float _e18 = vnoise(((q_1 * (19.0 * scale)) + vec2(11.7, 4.2))); float t1f = (150.0 * scale); float t2f = (340.0 * scale); vec3 _e28 = vnoiseD(((q_1 * t1f) + vec2(7.3, 1.9))); vec3 _e34 = vnoiseD(((q_1 * t2f) + vec2(2.1, 9.4))); float ft1_ = clamp((1.5 - ((fp * t1f) * 1.3)), 0.0, 1.0); float ft2_ = clamp((1.5 - ((fp * t2f) * 1.3)), 0.0, 1.0); mat2x2 r1_ = mat2x2(vec2(0.9063, 0.4226), vec2(-0.4226, 0.9063)); mat2x2 r2_ = mat2x2(vec2(-0.342, 0.9397), vec2(-0.9397, -0.342)); mat2x2 r3_ = mat2x2(vec2(0.5, -0.866), vec2(0.866, 0.5)); vec2 a_3 = (vec2(95.0, 280.0) * scale); vec3 _e78 = vnoiseD(((r1_ * q_1) * a_3)); vec3 _e79 = fibreLayer(_e78, r1_, a_3); vec3 _e86 = vnoiseD((((r2_ * q_1) * a_3) + vec2(31.0, 17.0))); vec3 _e87 = fibreLayer(_e86, r2_, a_3); vec3 _e94 = vnoiseD((((r3_ * q_1) * a_3) + vec2(5.0, 43.0))); vec3 _e95 = fibreLayer(_e94, r3_, a_3); float fF = clamp((1.5 - ((fp * a_3.y) * 1.2)), 0.0, 1.0); float fibres = (((_e79.x + _e87.x) + _e95.x) * fF); s_1.formation = clamp((((0.5 + (0.36 * _e10)) + (0.24 * _e18)) + (0.1 * fibres)), 0.0, 1.0); s_1.tone = ((((1.0 + (0.08 * ((0.36 * _e10) + (0.24 * _e18)))) + ((0.022 * _e28.x) * ft1_)) + ((0.012 * _e34.x) * ft2_)) + (0.03 * (fibres - 0.3))); s_1.slope = (((_e28.yz * (0.9 * ft1_)) + (_e34.yz * (0.45 * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18 * fF))); PaperSurf _e170 = s_1; return _e170; } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } float shoulder(float x, float knee, float r_2) { bool local_36 = false; if (!((x <= knee))) { local_36 = (r_2 <= 0.0); } else { local_36 = true; } bool _e10 = local_36; if (_e10) { return x; } return (knee + (r_2 * log((1.0 + ((x - knee) / r_2))))); } vec3 sideDist(vec2 sheet_3, vec2 size_3, float mask_3) { vec3 best = vec3(1000.0, 0.0, 0.0); bool local_37 = false; bool local_38 = false; bool local_39 = false; bool local_40 = false; uint m_1 = uint((clamp(mask_3, 0.0, 15.0) + 0.5)); if (((m_1 & 1u) != 0u)) { float _e22 = best.x; local_37 = (sheet_3.x < _e22); } else { local_37 = false; } bool _e25 = local_37; if (_e25) { best = vec3(sheet_3.x, -1.0, 0.0); } if (((m_1 & 2u) != 0u)) { float _e40 = best.x; local_38 = ((size_3.x - sheet_3.x) < _e40); } else { local_38 = false; } bool _e43 = local_38; if (_e43) { best = vec3((size_3.x - sheet_3.x), 1.0, 0.0); } if (((m_1 & 4u) != 0u)) { float _e58 = best.x; local_39 = (sheet_3.y < _e58); } else { local_39 = false; } bool _e61 = local_39; if (_e61) { best = vec3(sheet_3.y, 0.0, -1.0); } if (((m_1 & 8u) != 0u)) { float _e76 = best.x; local_40 = ((size_3.y - sheet_3.y) < _e76); } else { local_40 = false; } bool _e79 = local_40; if (_e79) { best = vec3((size_3.y - sheet_3.y), 0.0, 1.0); } vec3 _e86 = best; return _e86; } float inUnit(vec2 p_6) { return (((step(0.0, p_6.x) * step(p_6.x, 1.0)) * step(0.0, p_6.y)) * step(p_6.y, 1.0)); } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9, _p2vs_location10); vec3 world = vec3(0.0); vec3 bent = vec3(0.0); bool local = false; VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec2(0.0), vec2(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec3(0.0)); mat4x4 model = mat4x4(in_.m0_, in_.m1_, in_.m2_, in_.m3_); world = (model * vec4(in_.q, 0.0, 1.0)).xyz; float w_1 = length(in_.m0_.xyz); float h = length(in_.m1_.xyz); vec3 N0_ = normalize(in_.m2_.xyz); bent = N0_; if ((in_.edges.z > 0.0)) { float _e32 = _group_0_binding_0_vs.windA.w; local = (_e32 > 0.0); } else { local = false; } bool _e36 = local; if (_e36) { vec2 size_4 = vec2(w_1, h); vec3 _e38 = world; vec4 _e62 = _group_0_binding_0_vs.windA; vec4 _e65 = _group_0_binding_0_vs.windB; vec4 _e66 = windBend(_e38, N0_, (in_.m0_.xyz / vec3(max(w_1, 1e-6))), (in_.m1_.xyz / vec3(max(h, 1e-6))), (in_.q * size_4), size_4, in_.edges.x, in_.pin, in_.look.z, in_.edges.z, _e62, _e65); vec3 _e67 = world; world = (_e67 + (N0_ * _e66.w)); bent = _e66.xyz; } mat4x4 _e76 = _group_0_binding_0_vs.viewProj; vec3 _e77 = world; out_.position = (_e76 * vec4(_e77, 1.0)); vec3 _e82 = world; out_.world = _e82; out_.uv = (in_.uvRect.xy + (in_.q * in_.uvRect.zw)); out_.q = in_.q; out_.normal = vec4(normalize(in_.m2_.xyz), 0.0); out_.tangent = vec4((in_.m0_.xyz / vec3(max(w_1, 1e-6))), w_1); out_.bitangent = vec4((in_.m1_.xyz / vec3(max(h, 1e-6))), h); out_.clip = in_.clip; out_.params = in_.params; out_.look = in_.look; out_.edges = in_.edges; vec3 _e124 = bent; out_.bent = _e124; VsOut _e125 = out_; gl_Position = _e125.position; _vs2fs_location0 = _e125.world; _vs2fs_location1 = _e125.uv; _vs2fs_location2 = _e125.q; _vs2fs_location3 = _e125.normal; _vs2fs_location4 = _e125.tangent; _vs2fs_location5 = _e125.bitangent; _vs2fs_location6 = _e125.clip; _vs2fs_location7 = _e125.params; _vs2fs_location8 = _e125.look; _vs2fs_location9 = _e125.edges; _vs2fs_location10 = _e125.bent; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain…È#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct Frame { mat4x4 viewProj; mat4x4 lightViewProj; vec4 lightPos; vec4 lightColor; vec4 ambient; vec4 shadowA; vec4 camPos; vec4 paperA; vec4 paperB; vec4 paperC; vec4 glow; vec4 pageRect; vec4 view; vec4 moonDir; vec4 moonColor; vec4 bounce; vec4 shadowB; vec4 pages; vec4 table; vec4 highlight; vec4 rim; vec4 moonshine; vec4 haze; vec4 glowAir; vec4 crease; vec4 windA; vec4 windB; vec4 charm; vec4 charmColor; vec4 charmLight; vec4 fill; vec4 gilt; }; struct VsOut { vec4 position; vec3 world; vec2 uv; vec2 q; vec4 normal; vec4 tangent; vec4 bitangent; vec4 clip; vec4 params; vec4 look; vec4 edges; vec3 bent; }; struct PaperSurf { vec2 slope; float tone; float formation; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; const float WIND_TAU = 6.2831855; const float CONTACT_MIN = 1.0; const float CONTACT_GROWTH = 3.2; const float CONTACT_MAX = 8.0; const float THREAD_GAIN = 9.0; const float THREAD_HEAD = 2.2; const vec3 PAPER_LIN = vec3(0.8631, 0.7913, 0.6445); const vec3 SHADOW_PAPER_LIN = vec3(0.6867, 0.5972, 0.4342); const float BOUNCE_REACH_MAX = 0.3; const float CREASE_DARK = 0.3; const float CUT_DARK = 0.18; const float GUTTER_DARK = 0.38; layout(std140) uniform Frame_block_0Fragment { Frame _group_0_binding_0_fs; }; uniform highp sampler2DShadow _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_3_fs; uniform highp sampler2D _group_0_binding_4_fs; uniform highp sampler2D _group_0_binding_5_fs; uniform highp sampler2D _group_1_binding_0_fs; smooth in vec3 _vs2fs_location0; smooth in vec2 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in vec4 _vs2fs_location3; flat in vec4 _vs2fs_location4; flat in vec4 _vs2fs_location5; flat in vec4 _vs2fs_location6; flat in vec4 _vs2fs_location7; flat in vec4 _vs2fs_location8; flat in vec4 _vs2fs_location9; smooth in vec3 _vs2fs_location10; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x_1 = max(c, vec3(0.0)); vec3 lo = (x_1 * 0.07739938); vec3 hi = pow(((x_1 + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x_1, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_2 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_2 * 12.92); vec3 hi_1 = ((1.055 * pow(x_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_2, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_5 = floor(p_1); vec2 f = (p_1 - i_5); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_5); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_6 = floor(p_2); vec2 f_1 = (p_2 - i_6); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_6); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } vec3 atmosphere(vec3 col, vec3 world_1, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world_1 - eye_1); float dist_2 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_2, 1e-5))); float T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_33 = false; bool local_34 = false; bool local_35 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_3 = ((x1_ - x0_) * 0.5); float cx = (x0_ + r_3); float s_2 = max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_33 = (q.x > (x1_ + s_2)); } else { local_33 = true; } bool _e25 = local_33; if (!(_e25)) { local_34 = (q.y < (sill - s_2)); } else { local_34 = true; } bool _e33 = local_34; if (!(_e33)) { local_35 = (q.y > ((spring + r_3) + s_2)); } else { local_35 = true; } bool _e42 = local_35; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); float dArch = (r_3 - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_2), s_2, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_2), ((bw * 0.8) + s_2), tf)) * step(q.y, spring))); float a_1 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_1 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_2), ((bw * 0.7) + s_2), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_2)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_2), (0.012 + s_2), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_1 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_2 = (qa + (t_1 * qd)); float s_4 = (((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_2, win_2, win2_2, (0.008 + (s_4 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d_3 = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d_3; d_3 = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d_3; d_3 = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d_3; d_3 = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d_3; d_3 = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a_2 = (pin.xy * size); vec2 ab = ((pin.zw * size) - a_2); float t_2 = clamp((dot((sheet - a_2), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d_3; d_3 = min(_e65, length((sheet - (a_2 + (ab * t_2))))); } float _e71 = d_3; return _e71; } float windDisp(vec3 P0_, vec3 N_1, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_3 = wa.z; vec2 dir_3 = wb.xy; float along = dot(P0_.xz, dir_3); float _e26 = vnoise(vec2(((along * 6.0) - (t_3 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N_1.xz, dir_3); float _e54 = vnoise(vec2(((t_3 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_3 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_3 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_2, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_2, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_2, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_2 = normalize(((N_2 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_2, d0_); } float shadowVisibility(mat4x4 lvp, vec4 sa, vec4 sb, vec3 world_2, vec2 fragXY, vec2 lightXZ) { vec2 disk[16] = vec2[16](vec2(-0.94201624, -0.39906216), vec2(0.9455861, -0.76890725), vec2(-0.0941841, -0.9293887), vec2(0.34495938, 0.2938776), vec2(-0.9158858, 0.45771432), vec2(-0.8154423, -0.87912464), vec2(-0.38277543, 0.27676845), vec2(0.974844, 0.7564838), vec2(0.44323325, -0.97511554), vec2(0.5374298, -0.4737342), vec2(-0.2649691, -0.41893023), vec2(0.79197514, 0.19090188), vec2(-0.2418884, 0.99706507), vec2(-0.81409955, 0.9143759), vec2(0.19984126, 0.78641367), vec2(0.14383161, -0.1410079)); float lit = 0.0; int i_3 = 0; vec4 lc = (lvp * vec4(world_2, 1.0)); vec3 ndc = (lc.xyz / vec3(lc.w)); vec2 uv = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); float depthRef = (ndc.z - sb.x); float _e77 = ign(fragXY); float angle = (6.2831855 * _e77); float cs = cos(angle); float sn = sin(angle); float reach = length((world_2.xz - lightXZ)); float contact = min((CONTACT_MIN + ((CONTACT_GROWTH * max((reach - sb.w), 0.0)) / max(sb.w, 0.001))), CONTACT_MAX); vec2 radius = (sa.xy * ((sb.w > 0.0) ? contact : (sa.z * (1.0 + (sb.z * reach))))); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e139 = i_3; i_3 = (_e139 + 1); } loop_init_1 = false; int _e115 = i_3; if ((_e115 < 16)) { } else { break; } { int _e118 = i_3; vec2 d_4 = disk[_e118]; vec2 o_1 = (vec2(((d_4.x * cs) - (d_4.y * sn)), ((d_4.x * sn) + (d_4.y * cs))) * radius); float _e133 = lit; float _e137 = textureLod(_group_0_binding_1_fs, vec3((uv + o_1), depthRef), 0.0); lit = (_e133 + _e137); } } float _e142 = lit; lit = (_e142 / 16.0); float inside = ((((step(0.0, uv.x) * step(uv.x, 1.0)) * step(0.0, uv.y)) * step(uv.y, 1.0)) * step(0.0, lc.w)); float _e164 = lit; return mix(1.0, _e164, inside); } float shadowVisibilityWide(mat4x4 lvp_1, vec4 sa_1, vec4 sb_1, vec3 world_3, vec2 fragXY_1, float r) { vec2 ring[4] = vec2[4](vec2(0.354, 0.0), vec2(-0.452, 0.414), vec2(0.069, -0.788), vec2(0.569, 0.742)); float lit_1 = 0.0; int i_4 = 0; float _e24 = ign((fragXY_1 + vec2(5.0, 3.0))); float angle_1 = (6.2831855 * _e24); float cs_1 = cos(angle_1); float sn_1 = sin(angle_1); bool loop_init_2 = true; while(true) { if (!loop_init_2) { int _e103 = i_4; i_4 = (_e103 + 1); } loop_init_2 = false; int _e33 = i_4; if ((_e33 < 4)) { } else { break; } { int _e36 = i_4; vec2 d_5 = ring[_e36]; vec2 o_2 = (vec2(((d_5.x * cs_1) - (d_5.y * sn_1)), ((d_5.x * sn_1) + (d_5.y * cs_1))) * r); vec4 lc_1 = (lvp_1 * vec4((world_3 + vec3(o_2.x, 0.0, o_2.y)), 1.0)); vec3 ndc_1 = (lc_1.xyz / vec3(lc_1.w)); vec2 uv_1 = vec2(((ndc_1.x * 0.5) + 0.5), (0.5 - (ndc_1.y * 0.5))); float inside_1 = ((((step(0.0, uv_1.x) * step(uv_1.x, 1.0)) * step(0.0, uv_1.y)) * step(uv_1.y, 1.0)) * step(0.0, lc_1.w)); float _e93 = lit_1; float _e99 = textureLod(_group_0_binding_1_fs, vec3(uv_1, (ndc_1.z - sb_1.x)), 0.0); lit_1 = (_e93 + mix(1.0, _e99, inside_1)); } } float _e106 = lit_1; return (_e106 * 0.25); } vec3 fibreLayer(vec3 n, mat2x2 r_1, vec2 a) { float k_1 = (1.0 - abs(n.x)); float k3_ = ((k_1 * k_1) * k_1); float ridge = (k3_ * k_1); vec2 gN = (n.yz * ((-4.0 * k3_) * sign(n.x))); vec2 g_3 = (transpose(r_1) * ((gN * a) / vec2(a.y))); return vec3(ridge, g_3); } PaperSurf paperSurface(vec2 q_1, float fp, float scale) { PaperSurf s_1 = PaperSurf(vec2(0.0), 0.0, 0.0); float _e10 = vnoise(((q_1 * (7.0 * scale)) + vec2(3.1, 7.7))); float _e18 = vnoise(((q_1 * (19.0 * scale)) + vec2(11.7, 4.2))); float t1f = (150.0 * scale); float t2f = (340.0 * scale); vec3 _e28 = vnoiseD(((q_1 * t1f) + vec2(7.3, 1.9))); vec3 _e34 = vnoiseD(((q_1 * t2f) + vec2(2.1, 9.4))); float ft1_ = clamp((1.5 - ((fp * t1f) * 1.3)), 0.0, 1.0); float ft2_ = clamp((1.5 - ((fp * t2f) * 1.3)), 0.0, 1.0); mat2x2 r1_ = mat2x2(vec2(0.9063, 0.4226), vec2(-0.4226, 0.9063)); mat2x2 r2_ = mat2x2(vec2(-0.342, 0.9397), vec2(-0.9397, -0.342)); mat2x2 r3_ = mat2x2(vec2(0.5, -0.866), vec2(0.866, 0.5)); vec2 a_3 = (vec2(95.0, 280.0) * scale); vec3 _e78 = vnoiseD(((r1_ * q_1) * a_3)); vec3 _e79 = fibreLayer(_e78, r1_, a_3); vec3 _e86 = vnoiseD((((r2_ * q_1) * a_3) + vec2(31.0, 17.0))); vec3 _e87 = fibreLayer(_e86, r2_, a_3); vec3 _e94 = vnoiseD((((r3_ * q_1) * a_3) + vec2(5.0, 43.0))); vec3 _e95 = fibreLayer(_e94, r3_, a_3); float fF = clamp((1.5 - ((fp * a_3.y) * 1.2)), 0.0, 1.0); float fibres = (((_e79.x + _e87.x) + _e95.x) * fF); s_1.formation = clamp((((0.5 + (0.36 * _e10)) + (0.24 * _e18)) + (0.1 * fibres)), 0.0, 1.0); s_1.tone = ((((1.0 + (0.08 * ((0.36 * _e10) + (0.24 * _e18)))) + ((0.022 * _e28.x) * ft1_)) + ((0.012 * _e34.x) * ft2_)) + (0.03 * (fibres - 0.3))); s_1.slope = (((_e28.yz * (0.9 * ft1_)) + (_e34.yz * (0.45 * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18 * fF))); PaperSurf _e170 = s_1; return _e170; } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } float phosphorPacked(vec2 puv) { vec2 dims = vec2(uvec2(textureSize(_group_0_binding_3_fs, 0).xy)); vec2 st = ((clamp(puv, vec2(0.0), vec2(1.0)) * dims) - vec2(0.5)); ivec2 i0_ = ivec2(floor(st)); vec2 fr = (st - floor(st)); ivec2 mx = (ivec2(dims) - ivec2(1)); vec4 _e26 = texelFetch(_group_0_binding_3_fs, min(max(i0_, ivec2(0)), mx), 0); float _e27 = unpack16_(_e26); vec4 _e37 = texelFetch(_group_0_binding_3_fs, min(max((i0_ + ivec2(1, 0)), ivec2(0)), mx), 0); float _e38 = unpack16_(_e37); vec4 _e48 = texelFetch(_group_0_binding_3_fs, min(max((i0_ + ivec2(0, 1)), ivec2(0)), mx), 0); float _e49 = unpack16_(_e48); vec4 _e59 = texelFetch(_group_0_binding_3_fs, min(max((i0_ + ivec2(1, 1)), ivec2(0)), mx), 0); float _e60 = unpack16_(_e59); return mix(mix(_e27, _e38, fr.x), mix(_e49, _e60, fr.x), fr.y); } float shoulder(float x, float knee, float r_2) { bool local_36 = false; if (!((x <= knee))) { local_36 = (r_2 <= 0.0); } else { local_36 = true; } bool _e10 = local_36; if (_e10) { return x; } return (knee + (r_2 * log((1.0 + ((x - knee) / r_2))))); } vec3 sideDist(vec2 sheet_3, vec2 size_3, float mask_3) { vec3 best = vec3(1000.0, 0.0, 0.0); bool local_37 = false; bool local_38 = false; bool local_39 = false; bool local_40 = false; uint m_1 = uint((clamp(mask_3, 0.0, 15.0) + 0.5)); if (((m_1 & 1u) != 0u)) { float _e22 = best.x; local_37 = (sheet_3.x < _e22); } else { local_37 = false; } bool _e25 = local_37; if (_e25) { best = vec3(sheet_3.x, -1.0, 0.0); } if (((m_1 & 2u) != 0u)) { float _e40 = best.x; local_38 = ((size_3.x - sheet_3.x) < _e40); } else { local_38 = false; } bool _e43 = local_38; if (_e43) { best = vec3((size_3.x - sheet_3.x), 1.0, 0.0); } if (((m_1 & 4u) != 0u)) { float _e58 = best.x; local_39 = (sheet_3.y < _e58); } else { local_39 = false; } bool _e61 = local_39; if (_e61) { best = vec3(sheet_3.y, 0.0, -1.0); } if (((m_1 & 8u) != 0u)) { float _e76 = best.x; local_40 = ((size_3.y - sheet_3.y) < _e76); } else { local_40 = false; } bool _e79 = local_40; if (_e79) { best = vec3((size_3.y - sheet_3.y), 0.0, 1.0); } vec3 _e86 = best; return _e86; } float inUnit(vec2 p_6) { return (((step(0.0, p_6.x) * step(p_6.x, 1.0)) * step(0.0, p_6.y)) * step(p_6.y, 1.0)); } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10); float cov = 0.0; bool local_1 = false; bool local_2 = false; bool local_3 = false; vec3 art = vec3(0.0); bool local_4 = false; vec3 Ng = vec3(0.0); bool local_5 = false; vec3 albedo = vec3(0.0); bool local_6 = false; vec3 N = vec3(0.0); float crease = 0.0; bool local_7 = false; bool local_8 = false; float cutBand = 0.0; vec3 cutOut = vec3(0.0); float cutDist = 1000.0; bool local_9 = false; float fd = 0.0; bool local_10 = false; float e = 0.0; vec2 o = vec2(0.0); bool local_11 = false; float vis = 1.0; bool local_12 = false; vec3 trans = vec3(0.0); bool local_13 = false; float ao = 1.0; float visT = 0.0; vec3 lift = vec3(0.0); bool local_14 = false; bool local_15 = false; float visQ = 1.0; vec3 color = vec3(0.0); bool local_16 = false; vec3 moonTrans = vec3(0.0); bool local_17 = false; bool local_18 = false; bool local_19 = false; bool local_20 = false; bool local_21 = false; bool local_22 = false; bool local_23 = false; bool local_24 = false; float thread = 0.0; bool local_25 = false; float charge = 0.0; bool local_26 = false; bool local_27 = false; float c2_ = 0.0; bool local_28 = false; bool local_29 = false; bool local_30 = false; bool local_31 = false; bool local_32 = false; vec4 texel = texture(_group_1_binding_0_fs, vec2(in_1.uv)); bool textured = (in_1.params.w < 0.0); float a_4 = (textured ? texel.w : 1.0); float aWidth = fwidth(a_4); float _e19 = luma((texel.xyz / vec3(max(texel.w, 0.0001)))); float _e20 = fwidth(_e19); float inkEdge = clamp((_e20 * 7.0), 0.0, 1.0); float rd = (0.5 - length((in_1.q - vec2(0.5, 0.5)))); float rdWidth = fwidth(rd); float cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); float cdWidth = fwidth(cd); vec2 sheetSize = vec2(in_1.tangent.w, in_1.bitangent.w); vec2 sheet_4 = (in_1.q * sheetSize); vec2 fw = fwidth(sheet_4); float fp_1 = max(max(fw.x, fw.y), 1e-6); vec2 dsx = dFdx(sheet_4); vec2 dsy = dFdy(sheet_4); float dax = dFdx(a_4); float day = dFdy(a_4); vec2 puvPage = vec2((in_1.look.w + (0.5 * in_1.q.x)), (1.0 - in_1.q.y)); float _e77 = _group_0_binding_0_fs.pageRect.x; float _e82 = _group_0_binding_0_fs.pageRect.z; float _e89 = _group_0_binding_0_fs.pageRect.y; float _e94 = _group_0_binding_0_fs.pageRect.w; vec2 puvWorld = vec2(((in_1.world.x - _e77) * _e82), ((in_1.world.z - _e89) * _e94)); vec2 puv_1 = ((in_1.look.w >= 0.0) ? puvPage : puvWorld); vec4 _e104 = texture(_group_0_binding_3_fs, vec2(puv_1)); float phosF16_ = _e104.x; vec4 _e108 = texture(_group_0_binding_4_fs, vec2(puv_1)); float maskA = _e108.w; vec4 _e112 = texture(_group_0_binding_5_fs, vec2(puv_1)); float aoMap = _e112.x; float _e114 = inUnit(puv_1); float soft_1 = clamp((((a_4 - 0.5) / max(aWidth, 0.0001)) + 0.5), 0.0, 1.0); float _e130 = _group_0_binding_0_fs.view.w; cov = ((_e130 > 0.5) ? soft_1 : step(0.5, a_4)); float _e135 = cov; cov = ((in_1.params.y > 0.5) ? _e135 : 1.0); float _e142 = cov; cov = (_e142 * ((in_1.params.z > 0.5) ? clamp(((rd / max(rdWidth, 1e-6)) + 0.5), 0.0, 1.0) : 1.0)); float _e158 = cov; cov = (_e158 * ((in_1.clip.w > 0.5) ? clamp(((cd / max(cdWidth, 1e-6)) + 0.5), 0.0, 1.0) : 1.0)); float _e174 = cov; if ((_e174 <= 0.0)) { discard; } float kind = in_1.look.x; if ((kind > 0.5)) { local_1 = (kind < 1.5); } else { local_1 = false; } bool isPage = local_1; if ((kind > 1.5)) { local_2 = (kind < 2.5); } else { local_2 = false; } bool isBoard = local_2; bool isCard = (kind < 0.5); if ((kind > 2.5)) { local_3 = (kind < 3.5); } else { local_3 = false; } bool isLeaf = local_3; float side = in_1.look.y; float viewMode = _group_0_binding_0_fs.view.x; vec3 tone = ((in_1.params.w > 0.5) ? SHADOW_PAPER_LIN : PAPER_LIN); vec3 _e224 = srgbToLinear((texel.xyz / vec3(max(texel.w, 0.0001)))); art = (textured ? _e224 : tone); if ((viewMode > 4.5)) { local_4 = (viewMode < 5.5); } else { local_4 = false; } bool _e234 = local_4; if (_e234) { art = vec3(0.6); } vec4 _e239 = _group_0_binding_0_fs.camPos; vec3 V = normalize((_e239.xyz - in_1.world)); Ng = normalize(in_1.bent); vec3 _e247 = Ng; bool facing = (dot(_e247, V) >= 0.0); vec3 _e251 = Ng; vec3 _e253 = Ng; Ng = (facing ? _e253 : -(_e251)); vec3 _e257 = art; vec3 reverse = ((kind < -0.5) ? mix(SHADOW_PAPER_LIN, _e257, 0.55) : SHADOW_PAPER_LIN); vec3 _e263 = art; if (!(facing)) { local_5 = !(isCard); } else { local_5 = true; } bool _e269 = local_5; albedo = (_e269 ? _e263 : reverse); if ((viewMode > 4.5)) { local_6 = (viewMode < 5.5); } else { local_6 = false; } bool _e279 = local_6; if (_e279) { albedo = vec3(0.6); } float grainOn = _group_0_binding_0_fs.paperA.x; float _e299 = _group_0_binding_0_fs.paperA.w; PaperSurf _e300 = paperSurface((sheet_4 + vec2((in_1.look.z * 13.7), (in_1.look.z * 5.3))), fp_1, _e299); float grainTone = mix(1.0, _e300.tone, grainOn); vec3 _e304 = albedo; albedo = (_e304 * grainTone); vec3 _e306 = art; art = (_e306 * grainTone); vec3 T_2 = in_1.tangent.xyz; vec3 B_1 = in_1.bitangent.xyz; vec3 _e312 = Ng; N = _e312; if (isPage) { local_7 = (abs(side) > 0.5); } else { local_7 = false; } bool _e322 = local_7; if (_e322) { float _e328 = _group_0_binding_0_fs.paperC.z; local_8 = (_e328 > 0.0); } else { local_8 = false; } bool _e332 = local_8; if (_e332) { float ds = ((side > 0.0) ? (sheetSize.x - sheet_4.x) : sheet_4.x); crease = (1.0 - smoothstep(0.0, 0.075, ds)); vec3 _e345 = N; float _e348 = crease; float _e350 = crease; N = normalize((_e345 + (T_2 * (((side * 0.55) * _e348) * _e350)))); float _e358 = _group_0_binding_0_fs.crease.x; if ((_e358 > 0.0)) { float _e364 = _group_0_binding_0_fs.crease.y; float wG = (_e364 * 1.4); float wGF = max(wG, fp_1); vec3 _e368 = albedo; float _e373 = _group_0_binding_0_fs.crease.x; albedo = (_e368 * (1.0 - (((GUTTER_DARK * _e373) * (1.0 - smoothstep(0.0, wGF, ds))) * (wG / wGF)))); } } float _e389 = _group_0_binding_0_fs.paperA.y; vec2 slope = (_e300.slope * (_e389 * grainOn)); vec3 _e392 = N; N = normalize(((_e392 - (T_2 * slope.x)) - (B_1 * slope.y))); if (isCard) { float _e412 = _group_0_binding_0_fs.crease.x; local_9 = (_e412 > 0.0); } else { local_9 = false; } bool _e416 = local_9; if (_e416) { vec3 _e419 = sideDist(sheet_4, sheetSize, in_1.edges.x); fd = _e419.x; if ((in_1.edges.y > 0.5)) { local_10 = (in_1.clip.w > 0.5); } else { local_10 = false; } bool _e433 = local_10; if (_e433) { float _e434 = fd; fd = min(_e434, abs(cd)); } float wC = _group_0_binding_0_fs.crease.y; float wCF = max(wC, fp_1); float _e442 = fd; float foldLine = ((1.0 - smoothstep(0.0, wCF, _e442)) * (wC / wCF)); vec3 _e449 = albedo; float _e454 = _group_0_binding_0_fs.crease.x; albedo = (_e449 * (1.0 - ((CREASE_DARK * _e454) * foldLine))); vec3 _e464 = sideDist(sheet_4, sheetSize, (15.0 - in_1.edges.x)); e = _e464.x; o = _e464.yz; if (textured) { float det = ((dsx.x * dsy.y) - (dsx.y * dsy.x)); vec2 g_4 = (vec2(((dsy.y * dax) - (dsx.y * day)), ((dsx.x * day) - (dsy.x * dax))) / vec2(((abs(det) < 1e-12) ? 1e-12 : det))); float gl = length(g_4); if ((gl > 1.0)) { float ea = ((a_4 - 0.5) / gl); float _e500 = e; if ((ea < _e500)) { e = ea; o = (-(g_4) / vec2(gl)); } } } if ((in_1.params.z > 0.5)) { vec2 rq = (in_1.q - vec2(0.5, 0.5)); float ed = (rd * sheetSize.x); float _e516 = e; if ((ed < _e516)) { e = ed; o = (rq / vec2(max(length(rq), 1e-6))); } } float t_4 = _group_0_binding_0_fs.crease.z; float tF = max(t_4, fp_1); float _e528 = e; float _e540 = _group_0_binding_0_fs.crease.x; cutBand = (((1.0 - smoothstep(0.0, tF, max(_e528, 0.0))) * (t_4 / tF)) * _e540); float _e542 = e; cutDist = max(_e542, 0.0); float _e546 = o.x; float _e549 = o.y; cutOut = ((T_2 * _e546) + (B_1 * _e549)); vec3 _e552 = albedo; float _e554 = cutBand; albedo = (_e552 * (1.0 - (CUT_DARK * _e554))); } float _e562 = _group_0_binding_0_fs.pages.x; float _e566 = _group_0_binding_0_fs.pages.y; vec3 hostN = ((side > 0.0) ? vec3(0.0, 1.0, 0.0) : vec3(_e562, _e566, 0.0)); float hostH = max(dot(in_1.world, hostN), 0.0); vec3 _e580 = Ng; if (isCard) { local_11 = (abs(side) > 0.5); } else { local_11 = false; } bool _e591 = local_11; float upright = (_e591 ? (1.0 - abs(dot(_e580, hostN))) : 0.0); vec4 _e596 = _group_0_binding_0_fs.lightPos; vec3 toL_1 = (_e596.xyz - in_1.world); float d2_ = dot(toL_1, toL_1); vec3 L = (toL_1 * inversesqrt(max(d2_, 1e-8))); float _e608 = _group_0_binding_0_fs.lightPos.w; float _e612 = _group_0_binding_0_fs.lightColor.w; float atten = (_e608 / (d2_ + _e612)); float _e620 = _group_0_binding_0_fs.shadowA.w; if ((_e620 > 0.5)) { local_12 = (in_1.params.x > 0.5); } else { local_12 = false; } bool _e630 = local_12; if (_e630) { vec3 _e631 = Ng; vec3 _e632 = Ng; float _e642 = _group_0_binding_0_fs.shadowB.y; vec3 offs = (_e631 * (((dot(_e632, L) >= 0.0) ? 1.0 : -1.0) * _e642)); mat4x4 _e647 = _group_0_binding_0_fs.lightViewProj; vec4 _e650 = _group_0_binding_0_fs.shadowA; vec4 _e653 = _group_0_binding_0_fs.shadowB; vec4 _e660 = _group_0_binding_0_fs.lightPos; float _e662 = shadowVisibility(_e647, _e650, _e653, (in_1.world + offs), in_1.position.xy, _e660.xz); vis = _e662; } float wrap = _group_0_binding_0_fs.paperA.z; vec3 _e667 = N; float front_1 = max(((dot(_e667, L) + wrap) / (1.0 + wrap)), 0.0); float lookThrough = mix(0.45, 1.45, _e300.formation); vec3 tint = vec3(1.0, 0.74, 0.46); if (!(isCard)) { local_13 = isLeaf; } else { local_13 = true; } bool _e690 = local_13; if (_e690) { vec3 _e691 = Ng; float back = max(-(dot(_e691, L)), 0.0); float _e703 = _group_0_binding_0_fs.paperB.z; float _e708 = _group_0_binding_0_fs.paperB.y; float fwd = (pow(max(dot(V, -(L)), 0.0), _e703) * _e708); vec3 _e710 = art; vec3 _e711 = art; float _e722 = _group_0_binding_0_fs.paperB.x; trans = (((((_e710 * _e711) * tint) * lookThrough) * (back * (1.0 + fwd))) * _e722); } if (isPage) { float _e729 = _group_0_binding_0_fs.paperC.x; float _e736 = _group_0_binding_0_fs.paperC.z; float _e737 = crease; float _e739 = crease; ao = (mix(1.0, aoMap, (_e729 * _e114)) * (1.0 - ((_e736 * _e737) * _e739))); float ex = ((abs(side) > 0.5) ? ((side > 0.0) ? sheet_4.x : (sheetSize.x - sheet_4.x)) : min(sheet_4.x, (sheetSize.x - sheet_4.x))); float ed_1 = min(ex, min(sheet_4.y, (sheetSize.y - sheet_4.y))); float _e768 = vnoise((sheet_4 * 38.0)); float wob = (_e768 * 0.006); float _e780 = _group_0_binding_0_fs.paperC.y; float edge = ((1.0 - smoothstep(0.0, 0.04, (ed_1 + wob))) * _e780); vec3 _e782 = albedo; albedo = (_e782 * mix(vec3(1.0), vec3(0.78, 0.66, 0.5), edge)); } else { if (isBoard) { float ed_2 = min(min(sheet_4.x, (sheetSize.x - sheet_4.x)), min(sheet_4.y, (sheetSize.y - sheet_4.y))); float _e804 = vnoise((sheet_4 * 45.0)); float wob_1 = (_e804 * 0.004); float _e816 = _group_0_binding_0_fs.paperC.y; float edge_1 = ((1.0 - smoothstep(0.0, 0.022, (ed_2 + wob_1))) * _e816); vec3 _e818 = albedo; vec3 _e819 = albedo; albedo = mix(_e818, ((_e819 * 0.55) + vec3(0.05, 0.045, 0.04)), (edge_1 * 0.8)); } else { float _e833 = _group_0_binding_0_fs.paperB.w; float _e838 = _group_0_binding_0_fs.paperC.w; ao = (1.0 - ((_e833 * exp((-(hostH) / max(_e838, 0.0001)))) * upright)); } } float _e847 = vis; visT = _e847; if (isCard) { float _e857 = _group_0_binding_0_fs.fill.x; local_14 = (_e857 > 0.0); } else { local_14 = false; } bool _e861 = local_14; if (_e861) { float _e865 = _group_0_binding_0_fs.fill.y; float _e866 = vis; visT = mix(_e865, 1.0, _e866); vec3 _e869 = Ng; vec3 _e870 = Ng; vec3 hdir = (_e869 - (hostN * dot(_e870, hostN))); float hl = length(hdir); float _e875 = vis; float _e879 = vis; float missed = ((1.0 - (front_1 * _e875)) * (1.0 - (front_1 * _e879))); vec3 _e884 = Ng; float viewF = ((0.5 * (1.0 - dot(_e884, hostN))) * missed); if ((hl > 0.001)) { local_15 = (viewF > 0.001); } else { local_15 = false; } bool _e898 = local_15; if (_e898) { float _e902 = _group_0_binding_0_fs.fill.z; float _e907 = _group_0_binding_0_fs.fill.w; float reach_1 = min(((_e902 * hostH) + _e907), BOUNCE_REACH_MAX); vec3 Q = ((in_1.world - (hostN * hostH)) + (hdir * (reach_1 / hl))); vec4 _e919 = _group_0_binding_0_fs.lightPos; vec3 toLQ = (_e919.xyz - Q); float dq2_ = dot(toLQ, toLQ); float cosQ = (max(dot(hostN, toLQ), 0.0) * inversesqrt(max(dq2_, 1e-8))); float _e935 = _group_0_binding_0_fs.shadowA.w; if ((_e935 > 0.5)) { mat4x4 _e940 = _group_0_binding_0_fs.lightViewProj; vec4 _e943 = _group_0_binding_0_fs.shadowA; vec4 _e946 = _group_0_binding_0_fs.shadowB; float _e950 = _group_0_binding_0_fs.shadowB.y; float _e957 = shadowVisibilityWide(_e940, _e943, _e946, (Q + (hostN * _e950)), in_1.position.xy, (0.5 * reach_1)); visQ = _e957; } float _e962 = _group_0_binding_0_fs.pageRect.x; float _e967 = _group_0_binding_0_fs.pageRect.z; float _e973 = _group_0_binding_0_fs.pageRect.y; float _e978 = _group_0_binding_0_fs.pageRect.w; vec2 puvQ = vec2(((Q.x - _e962) * _e967), ((Q.z - _e973) * _e978)); vec4 _e983 = _group_0_binding_0_fs.table; float _e986 = inUnit(puvQ); vec3 ground = mix(_e983.xyz, PAPER_LIN, _e986); float _e991 = _group_0_binding_0_fs.lightPos.w; float _e995 = _group_0_binding_0_fs.lightColor.w; float _e1001 = _group_0_binding_0_fs.highlight.x; float _e1005 = _group_0_binding_0_fs.highlight.y; float _e1006 = shoulder((_e991 / (dq2_ + _e995)), _e1001, _e1005); float _e1008 = visQ; float eQ = ((_e1006 * cosQ) * _e1008); float _e1014 = _group_0_binding_0_fs.fill.x; lift = (ground * ((eQ * viewF) * _e1014)); } } vec4 _e1019 = _group_0_binding_0_fs.lightColor; float _e1024 = _group_0_binding_0_fs.highlight.x; float _e1028 = _group_0_binding_0_fs.highlight.y; float _e1029 = shoulder(atten, _e1024, _e1028); vec3 flameLit = (_e1019.xyz * _e1029); float _e1031 = vis; vec3 light_2 = (flameLit * _e1031); vec3 _e1033 = albedo; float _e1035 = ao; vec3 _e1041 = trans; float _e1042 = visT; vec3 _e1046 = albedo; vec4 _e1049 = _group_0_binding_0_fs.lightColor; vec3 _e1052 = lift; float _e1054 = ao; color = (((((_e1033 * front_1) * mix(1.0, _e1035, 0.65)) * light_2) + (_e1041 * (flameLit * _e1042))) + (((_e1046 * _e1049.xyz) * _e1052) * mix(1.0, _e1054, 0.65))); float _e1061 = cutBand; if ((_e1061 > 0.0)) { vec3 _e1064 = cutOut; float wallLit = max(dot(_e1064, L), 0.0); vec3 _e1068 = Ng; float graze = (0.35 + (0.65 * (1.0 - abs(dot(_e1068, V))))); vec3 _e1077 = albedo; vec3 core = mix(_e1077, (PAPER_LIN * grainTone), 0.3); vec3 _e1082 = color; float _e1087 = _group_0_binding_0_fs.crease.w; float _e1088 = cutBand; color = (_e1082 + ((core * light_2) * (((_e1087 * _e1088) * wallLit) * graze))); } vec3 _e1094 = color; float _e1095 = luma(_e1094); vec3 _e1096 = color; float _e1100 = _group_0_binding_0_fs.highlight.z; float _e1104 = _group_0_binding_0_fs.highlight.w; float _e1105 = shoulder(_e1095, _e1100, _e1104); color = (_e1096 * (_e1105 / max(_e1095, 1e-6))); float _e1113 = _group_0_binding_0_fs.charmLight.w; if ((_e1113 > 0.0)) { local_16 = (in_1.edges.w <= 0.0); } else { local_16 = false; } bool _e1123 = local_16; if (_e1123) { vec4 _e1126 = _group_0_binding_0_fs.charmLight; vec3 toC = (_e1126.xyz - in_1.world); float dc2_ = dot(toC, toC); vec3 Lc = (toC * inversesqrt(max(dc2_, 1e-8))); vec3 _e1135 = N; float wrapC = max(((dot(_e1135, Lc) + 0.6) / 1.6), 0.0); vec3 _e1143 = color; vec3 _e1144 = albedo; vec4 _e1147 = _group_0_binding_0_fs.charmColor; float _e1153 = _group_0_binding_0_fs.charmLight.w; float _e1159 = ao; color = (_e1143 + (((_e1144 * _e1147.xyz) * ((_e1153 * wrapC) / (dc2_ + 0.015))) * mix(1.0, _e1159, 0.5))); } vec4 _e1167 = _group_0_binding_0_fs.moonDir; vec3 M = _e1167.xyz; float wrapM = _group_0_binding_0_fs.moonDir.w; vec3 _e1173 = N; float moonFront = max(((dot(_e1173, M) + wrapM) / (1.0 + wrapM)), 0.0); if (!(isCard)) { local_17 = isLeaf; } else { local_17 = true; } bool _e1188 = local_17; if (_e1188) { vec3 _e1189 = art; vec3 _e1190 = art; vec3 _e1193 = Ng; float _e1201 = _group_0_binding_0_fs.paperB.x; moonTrans = (((_e1189 * _e1190) * lookThrough) * ((max(-(dot(_e1193, M)), 0.0) * _e1201) * 0.5)); } float _e1209 = _group_0_binding_0_fs.moonColor.w; float moonFall = (1.0 - (_e1209 * smoothstep(-0.45, 0.45, in_1.world.z))); vec3 _e1218 = color; vec4 _e1221 = _group_0_binding_0_fs.moonColor; float _e1223 = ao; vec3 _e1226 = albedo; vec3 _e1228 = moonTrans; color = (_e1218 + ((_e1221.xyz * (moonFall * _e1223)) * ((_e1226 * moonFront) + _e1228))); if (!(isPage)) { local_18 = isBoard; } else { local_18 = true; } bool _e1236 = local_18; if (_e1236) { float _e1242 = _group_0_binding_0_fs.rim.w; local_19 = (_e1242 > 0.0); } else { local_19 = false; } bool _e1246 = local_19; if (_e1246) { float _e1252 = _group_0_binding_0_fs.rim.z; local_20 = (_e1252 > 0.0); } else { local_20 = false; } bool _e1256 = local_20; if (_e1256) { float wR = _group_0_binding_0_fs.rim.w; float e0_ = ((1.0 - smoothstep(0.0, wR, sheet_4.x)) * max(dot(-(T_2), M), 0.0)); float e1_ = ((1.0 - smoothstep(0.0, wR, (sheetSize.x - sheet_4.x))) * max(dot(T_2, M), 0.0)); float e2_ = ((1.0 - smoothstep(0.0, wR, sheet_4.y)) * max(dot(-(B_1), M), 0.0)); float e3_ = ((1.0 - smoothstep(0.0, wR, (sheetSize.y - sheet_4.y))) * max(dot(B_1, M), 0.0)); vec3 _e1303 = Ng; vec3 _e1312 = Ng; float graze_1 = (pow((1.0 - min(abs(dot(_e1303, V)), 1.0)), 3.0) * (0.35 + (0.65 * max(dot(_e1312, M), 0.0)))); vec3 _e1321 = color; vec4 _e1324 = _group_0_binding_0_fs.rim; color = (_e1321 + (_e1324.xyz * ((1.6 * (((e0_ + e1_) + e2_) + e3_)) + (0.6 * graze_1)))); } if (isBoard) { float _e1341 = _group_0_binding_0_fs.gilt.y; local_21 = (_e1341 > 0.0); } else { local_21 = false; } bool _e1345 = local_21; if (_e1345) { vec3 _e1346 = art; float gilt = smoothstep(0.05, 0.22, dot(_e1346, vec3(0.2126, 0.7152, 0.0722))); vec3 _e1355 = color; vec4 _e1358 = _group_0_binding_0_fs.gilt; color = (_e1355 + (_e1358.xyz * gilt)); } float _e1365 = _group_0_binding_0_fs.bounce.w; float br = max(_e1365, 0.001); float bounceK = (1.0 / (1.0 + (d2_ / (br * br)))); vec3 _e1374 = color; vec3 _e1375 = albedo; vec4 _e1378 = _group_0_binding_0_fs.ambient; vec4 _e1382 = _group_0_binding_0_fs.bounce; float _e1387 = ao; color = (_e1374 + ((_e1375 * (_e1378.xyz + (_e1382.xyz * bounceK))) * _e1387)); if (isCard) { local_22 = (in_1.look.w < -1.0); } else { local_22 = false; } bool _e1397 = local_22; if (_e1397) { local_23 = (in_1.look.w > -2.5); } else { local_23 = false; } bool _e1405 = local_23; if (_e1405) { vec3 _e1406 = color; vec3 _e1407 = art; vec3 _e1408 = art; vec4 _e1417 = _group_0_binding_0_fs.moonshine; color = (_e1406 + ((mix(_e1407, vec3(dot(_e1408, vec3(0.33))), 0.35) * _e1417.xyz) * (-1.0 - in_1.look.w))); } if (isCard) { local_24 = (in_1.look.w <= -2.5); } else { local_24 = false; } bool _e1433 = local_24; if (_e1433) { float v_1 = (-3.0 - in_1.look.w); thread = clamp(v_1, 0.0, 1.0); if ((v_1 > 1.0)) { float prog = clamp((v_1 - 1.0), 0.0, 1.0); vec2 d_6 = (in_1.q - vec2(0.5, 0.5)); float a_5 = fract(((atan(d_6.x, d_6.y) * 0.15915494) + 1.0)); float behind = ((prog * 1.15) - a_5); thread = (smoothstep(-0.015, 0.0, behind) * (1.0 + (THREAD_HEAD * exp((-(max(behind, 0.0)) * 16.0))))); } vec3 _e1479 = art; float _e1480 = luma(_e1479); float ink = (1.0 - smoothstep(0.06, 0.3, _e1480)); vec3 _e1486 = color; vec4 _e1489 = _group_0_binding_0_fs.glow; float _e1492 = thread; color = (_e1486 + (_e1489.xyz * (((THREAD_GAIN * _e1492) * ink) * inkEdge))); } float _e1503 = _group_0_binding_0_fs.charm.x; float gw = (in_1.edges.w * _e1503); if (isCard) { local_25 = (gw > 0.0); } else { local_25 = false; } bool _e1510 = local_25; if (_e1510) { vec3 _e1511 = art; float _e1512 = luma(_e1511); float inkC = (1.0 - smoothstep(0.06, 0.3, _e1512)); float lines = (((inkC * inkEdge) * (facing ? 1.0 : 0.0)) * (0.75 + (0.25 * gw))); float _e1532 = cutDist; float rim = (1.0 - smoothstep(0.0, max(0.006, (fp_1 * 1.5)), _e1532)); float blaze = smoothstep(0.65, 1.5, gw); float within = (((mix(0.5, 1.3, _e300.formation) * (1.0 - (0.85 * inkC))) * (facing ? 1.0 : 0.55)) * blaze); float _e1559 = _group_0_binding_0_fs.charmColor.w; float _e1568 = vnoise(((sheet_4 * 9.0) + vec2((_e1559 * 1.1), (in_1.look.z * 17.0)))); float shimmer = (0.8 + (0.2 * _e1568)); float _e1576 = _group_0_binding_0_fs.charm.y; float _e1581 = _group_0_binding_0_fs.charm.z; float _e1587 = _group_0_binding_0_fs.charm.w; float lit_2 = (((_e1576 * lines) + (_e1581 * rim)) + (_e1587 * within)); vec3 _e1590 = color; vec4 _e1593 = _group_0_binding_0_fs.charmColor; color = (_e1590 + (_e1593.xyz * ((gw * shimmer) * lit_2))); } charge = phosF16_; float _e1603 = _group_0_binding_0_fs.glow.w; if ((_e1603 > 0.5)) { float _e1606 = phosphorPacked(puv_1); charge = _e1606; } if (isPage) { float _e1612 = _group_0_binding_0_fs.view.y; local_26 = (_e1612 > 0.5); } else { local_26 = false; } bool _e1616 = local_26; if (_e1616) { float pigment = mix(0.8, 1.12, _e300.formation); vec3 _e1621 = color; vec4 _e1624 = _group_0_binding_0_fs.glow; float _e1626 = charge; color = (_e1621 + (_e1624.xyz * (((_e1626 * maskA) * pigment) * _e114))); float _e1638 = _group_0_binding_0_fs.moonshine.w; float invocation = (smoothstep(0.3, 0.75, maskA) * _e1638); vec3 _e1640 = color; vec4 _e1643 = _group_0_binding_0_fs.glow; color = (_e1640 + (_e1643.xyz * (((invocation * pigment) * _e114) * 4.0))); } if (isCard) { float _e1656 = _group_0_binding_0_fs.view.y; local_27 = (_e1656 > 0.5); } else { local_27 = false; } bool _e1660 = local_27; if (_e1660) { vec3 _e1663 = Ng; vec2 probe = (in_1.world.xz + (_e1663.xz * 0.05)); float _e1672 = _group_0_binding_0_fs.pageRect.x; float _e1677 = _group_0_binding_0_fs.pageRect.z; float _e1683 = _group_0_binding_0_fs.pageRect.y; float _e1688 = _group_0_binding_0_fs.pageRect.w; vec2 puv2_ = vec2(((probe.x - _e1672) * _e1677), ((probe.y - _e1683) * _e1688)); vec4 _e1694 = textureLod(_group_0_binding_3_fs, vec2(puv2_), 0.0); c2_ = _e1694.x; float _e1700 = _group_0_binding_0_fs.glow.w; if ((_e1700 > 0.5)) { float _e1703 = phosphorPacked(puv2_); c2_ = _e1703; } float lift_1 = exp((-(hostH) / 0.09)); vec3 _e1708 = color; vec3 _e1709 = albedo; vec4 _e1712 = _group_0_binding_0_fs.glow; float _e1715 = c2_; float _e1716 = inUnit(puv2_); float _e1722 = _group_0_binding_0_fs.view.z; color = (_e1708 + ((_e1709 * _e1712.xyz) * (((_e1715 * _e1716) * lift_1) * _e1722))); } if ((viewMode > 0.5)) { local_28 = (viewMode < 1.5); } else { local_28 = false; } bool _e1733 = local_28; if (_e1733) { float _e1734 = charge; float _e1737 = charge; float _e1738 = charge; color = (vec3((_e1734 * 0.35), _e1737, (_e1738 * 0.5)) * (isPage ? 1.0 : 0.02)); } else { if ((viewMode > 1.5)) { local_29 = (viewMode < 2.5); } else { local_29 = false; } bool _e1753 = local_29; if (_e1753) { color = (vec3(maskA) * (isPage ? 1.0 : 0.02)); } else { if ((viewMode > 2.5)) { local_30 = (viewMode < 3.5); } else { local_30 = false; } bool _e1766 = local_30; if (_e1766) { float _e1767 = ao; color = vec3((isPage ? aoMap : _e1767)); } else { if ((viewMode > 5.5)) { local_31 = (viewMode < 6.5); } else { local_31 = false; } bool _e1777 = local_31; if (_e1777) { float _e1778 = vis; color = vec3(_e1778); } else { if ((viewMode > 7.5)) { local_32 = (viewMode < 8.5); } else { local_32 = false; } bool _e1787 = local_32; if (_e1787) { color = vec3((isCard ? 1.0 : 0.0)); } } } } } vec3 _e1792 = color; vec4 _e1796 = _group_0_binding_0_fs.camPos; vec4 _e1800 = _group_0_binding_0_fs.lightPos; vec4 _e1804 = _group_0_binding_0_fs.haze; vec4 _e1807 = _group_0_binding_0_fs.glowAir; vec3 _e1808 = atmosphere(_e1792, in_1.world, _e1796.xyz, _e1800.xyz, _e1804, _e1807); color = _e1808; vec3 _e1809 = color; float _e1813 = _group_0_binding_0_fs.camPos.w; vec3 _e1814 = encodeHdr(_e1809, _e1813); float _e1815 = cov; float _e1817 = cov; _fs2p_location0 = vec4((_e1814 * _e1815), _e1817); return; }  `uÜ"æu[“h $š?jyFrame_block_0VertexFrame_block_0Fragment_group_1_binding_0_fs_group_0_binding_3_fs_group_0_binding_5_fs_group_0_binding_4_fs_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_mainùô// language: metal1.0 #include #include using metal::uint; struct VsIn { metal::float2 q; char _pad1[8]; metal::float4 m0_; metal::float4 m1_; metal::float4 m2_; metal::float4 m3_; metal::float4 uvRect; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float4 pin; }; struct Frame { metal::float4x4 viewProj; metal::float4x4 lightViewProj; metal::float4 lightPos; metal::float4 lightColor; metal::float4 ambient; metal::float4 shadowA; metal::float4 camPos; metal::float4 paperA; metal::float4 paperB; metal::float4 paperC; metal::float4 glow; metal::float4 pageRect; metal::float4 view; metal::float4 moonDir; metal::float4 moonColor; metal::float4 bounce; metal::float4 shadowB; metal::float4 pages; metal::float4 table; metal::float4 highlight; metal::float4 rim; metal::float4 moonshine; metal::float4 haze; metal::float4 glowAir; metal::float4 crease; metal::float4 windA; metal::float4 windB; metal::float4 charm; metal::float4 charmColor; metal::float4 charmLight; metal::float4 fill; metal::float4 gilt; }; struct type_11 { metal::float2 inner[16]; }; struct type_12 { metal::float2 inner[4]; }; struct VsOut { metal::float4 position; metal::float3 world; metal::float2 uv; metal::float2 q; metal::float4 normal; metal::float4 tangent; metal::float4 bitangent; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float3 bent; }; struct PaperSurf { metal::float2 slope; float tone; float formation; }; constant float HDR_RANGE = 4.0; constant float HAZE_START = 2.8; constant float WIND_TAU = 6.2831855; constant float CONTACT_MIN = 1.0; constant float CONTACT_GROWTH = 3.2; constant float CONTACT_MAX = 8.0; constant float THREAD_GAIN = 9.0; constant float THREAD_HEAD = 2.2; constant metal::float3 PAPER_LIN = metal::float3(0.8631, 0.7913, 0.6445); constant metal::float3 SHADOW_PAPER_LIN = metal::float3(0.6867, 0.5972, 0.4342); constant float BOUNCE_REACH_MAX = 0.3; constant float CREASE_DARK = 0.3; constant float CUT_DARK = 0.18; constant float GUTTER_DARK = 0.38; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x_1 = metal::max(c, metal::float3(0.0)); metal::float3 lo = x_1 * 0.07739938; metal::float3 hi = metal::pow((x_1 + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x_1 <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_2 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_2 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e_1, float mode_1 ) { if (mode_1 > 0.5) { return ((e_1 * e_1) * e_1) * HDR_RANGE; } return e_1; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_5 = metal::floor(p_1); metal::float2 f = p_1 - i_5; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_5); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_6 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_6; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_6); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n_1 = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_1 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n_1 * 2.0) - 1.0, g_1 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float pointGlow( metal::float3 eye, metal::float3 dir, float dist, metal::float3 light, float s2_ ) { metal::float3 toL = light - eye; float t0_ = metal::dot(toL, dir); float h2_ = metal::max(metal::dot(toL, toL) - (t0_ * t0_), 0.0); float k = metal::sqrt(h2_ + metal::max(s2_, 0.000001)); return (metal::atan((dist - t0_) / k) + metal::atan(t0_ / k)) / k; } metal::float3 atmosphere( metal::float3 col, metal::float3 world_1, metal::float3 eye_1, metal::float3 light_1, metal::float4 haze, metal::float4 glow ) { metal::float3 dv = world_1 - eye_1; float dist_2 = metal::length(dv); metal::float3 dir_2 = dv / metal::float3(metal::max(dist_2, 0.00001)); float T_1 = metal::exp(-(haze.w) * metal::max(dist_2 - HAZE_START, 0.0)); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return ((col * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21); } float windowMask( metal::float2 q, metal::float4 win, metal::float4 win2_, float soft, float lattice ) { bool local_33 = {}; bool local_34 = {}; bool local_35 = {}; float bars = {}; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_3 = (x1_ - x0_) * 0.5; float cx = x0_ + r_3; float s_2 = metal::max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_33 = q.x > (x1_ + s_2); } else { local_33 = true; } bool _e25 = local_33; if (!(_e25)) { local_34 = q.y < (sill - s_2); } else { local_34 = true; } bool _e33 = local_34; if (!(_e33)) { local_35 = q.y > ((spring + r_3) + s_2); } else { local_35 = true; } bool _e42 = local_35; if (_e42) { return 0.0; } float inRect = metal::smoothstep(-(s_2), s_2, metal::min(q.x - x0_, x1_ - q.x)) * metal::smoothstep(-(s_2), s_2, q.y - sill); float dArch = r_3 - metal::length(q - metal::float2(cx, spring)); float inArch = metal::smoothstep(-(s_2), s_2, dArch); float open = inRect * ((q.y < spring) ? 1.0 : inArch); float bw = win2_.y; bars = 1.0 - metal::smoothstep(bw - s_2, bw + s_2, metal::abs(q.x - cx)); float ty = (q.y - sill) / win2_.z; float tf = metal::abs(metal::fract(ty + 0.5) - 0.5) * win2_.z; float _e89 = bars; bars = metal::max(_e89, (1.0 - metal::smoothstep((bw * 0.8) - s_2, (bw * 0.8) + s_2, tf)) * metal::step(q.y, spring)); float a_1 = metal::atan2(q.y - spring, q.x - cx); float spoke = (metal::abs(metal::fract((a_1 / 0.7853982) + 0.5) - 0.5) * 0.7853982) * metal::length(q - metal::float2(cx, spring)); float _e122 = bars; bars = metal::max(_e122, (1.0 - metal::smoothstep((bw * 0.7) - s_2, (bw * 0.7) + s_2, spoke)) * metal::step(spring, q.y)); if (lattice > 0.5) { float fade = 1.0 - metal::smoothstep(0.02, 0.09, s_2); metal::float2 dq = q * 2.6; float l1_ = metal::abs(metal::fract(((dq.x + dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float l2_ = metal::abs(metal::fract(((dq.x - dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float _e172 = bars; bars = metal::max(_e172, ((1.0 - metal::smoothstep(0.012 - s_2, 0.012 + s_2, metal::min(l1_, l2_))) * fade) * 0.85); } float _e183 = bars; return open * (1.0 - _e183); } metal::float3 backProject( metal::float3 p_4, metal::float3 d, float planeZ ) { float s_3 = (p_4.z - planeZ) / metal::max(d.z, 0.0001); return metal::float3(p_4.xy - (d.xy * s_3), s_3); } float moonPatch( metal::float3 p_5, metal::float3 d_1, metal::float4 win_1, metal::float4 win2_1 ) { if (p_5.z < win2_1.x) { return 0.0; } metal::float3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, 0.006 + (_e9.z * 0.011), 1.0); return _e17; } float hgPhase( float cosT, float g ) { float gg = g * g; return (1.0 - gg) / metal::pow(metal::max((1.0 + gg) - ((2.0 * g) * cosT), 0.0001), 1.5); } float shaftScatter( metal::float3 eye_2, metal::float3 dir_1, float dist_1, metal::float3 d_2, metal::float4 win_2, metal::float4 win2_2, float jitter, float top ) { float ta = 0.0; float tb = {}; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = 1.0 / metal::max(d_2.z, 0.0001); metal::float2 qa = eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy); metal::float2 qd = dir_1.xy - ((dir_1.z * invdz) * d_2.xy); tb = dist_1; if (dir_1.z < 0.0) { float _e33 = tb; tb = metal::min(_e33, (zw - eye_2.z) / dir_1.z); } if (dir_1.y < 0.0) { float _e42 = tb; tb = metal::min(_e42, (win2_2.w - eye_2.y) / dir_1.y); } metal::float2 lo_2 = metal::float2(win_2.x, win_2.z); metal::float2 hi_2 = metal::float2(win_2.y, top); metal::float2 inv = metal::float2(1.0) / metal::select(qd, metal::float2(0.000001), metal::abs(qd) < metal::float2(0.000001)); metal::float2 t1_ = (lo_2 - qa) * inv; metal::float2 t2_ = (hi_2 - qa) * inv; metal::float2 tmin = metal::min(t1_, t2_); metal::float2 tmax = metal::max(t1_, t2_); float _e70 = ta; ta = metal::max(_e70, metal::max(tmin.x, tmin.y)); float _e75 = tb; tb = metal::min(_e75, metal::min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if (_e80 <= _e81) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = (_e84 - _e85) / 5.0; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e123 = i_2; i_2 = as_type(as_type(_e123) + as_type(1)); } loop_init = false; int _e93 = i_2; if (_e93 < 5) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_1 = _e96 + ((static_cast(_e97) + jitter) * dt); metal::float2 q_2 = qa + (t_1 * qd); float s_4 = ((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz; float _e110 = sum; float _e116 = windowMask(q_2, win_2, win2_2, 0.008 + (s_4 * 0.003), 0.0); sum = _e110 + (_e116 * metal::exp(-(s_4) * 0.035)); } } float _e126 = ta; float _e127 = tb; metal::float2 qm = qa + (((_e126 + _e127) * 0.5) * qd); float _e141 = vnoise((qm * metal::float2(3.1, 0.9)) + metal::float2(7.1, 3.3)); float _e146 = vnoise(qm * metal::float2(9.0, 2.2)); float dust = 0.45 + (0.55 * metal::smoothstep(-0.6, 0.8, _e141 + (0.5 * _e146))); float _e157 = sum; return (_e157 * dt) * dust; } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } float windAnchor( metal::float2 sheet, metal::float2 size, float mask, metal::float4 pin ) { float d_3 = 1000.0; uint m = naga_f2u32(metal::clamp(mask, 0.0, 15.0) + 0.5); if ((m & 1u) != 0u) { float _e16 = d_3; d_3 = metal::min(_e16, metal::abs(sheet.x)); } if ((m & 2u) != 0u) { float _e24 = d_3; d_3 = metal::min(_e24, metal::abs(size.x - sheet.x)); } if ((m & 4u) != 0u) { float _e34 = d_3; d_3 = metal::min(_e34, metal::abs(sheet.y)); } if ((m & 8u) != 0u) { float _e42 = d_3; d_3 = metal::min(_e42, metal::abs(size.y - sheet.y)); } if (pin.x > -0.5) { metal::float2 a_2 = pin.xy * size; metal::float2 ab = (pin.zw * size) - a_2; float t_2 = metal::clamp(metal::dot(sheet - a_2, ab) / metal::max(metal::dot(ab, ab), 0.0000000001), 0.0, 1.0); float _e65 = d_3; d_3 = metal::min(_e65, metal::length(sheet - (a_2 + (ab * t_2)))); } float _e71 = d_3; return _e71; } float windDisp( metal::float3 P0_, metal::float3 N_1, metal::float2 sheet_1, metal::float2 size_1, float mask_1, metal::float4 pin_1, float seed, metal::float4 wa, metal::float4 wb ) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = metal::min(_e9 * wb.z, 1.4); float t_3 = wa.z; metal::float2 dir_3 = wb.xy; float along = metal::dot(P0_.xz, dir_3); float _e26 = vnoise(metal::float2((along * 6.0) - (t_3 * 2.2), seed * 7.3)); float front = 0.7 + (0.3 * _e26); float g_2 = wa.w * front; float push = metal::dot(N_1.xz, dir_3); float _e54 = vnoise(metal::float2((t_3 * 1.9) + (seed * 13.0), along * 3.0)); float swing = (0.65 * metal::sin(((t_3 * 7.5) + (seed * WIND_TAU)) + (along * 2.5))) + (0.35 * _e54); float sway = (wa.x * g_2) * ((0.55 * push) + (0.45 * swing)); float run = ((metal::dot(sheet_1, metal::float2(0.6, 0.8)) * 41.8879) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11.0); float _e92 = vnoise(metal::float2((t_3 * 3.3) + (seed * 5.0), along * 5.0)); float flutter = ((wa.y * g_2) * metal::sin(run)) * (0.55 + (0.45 * _e92)); return (f_2 * f_2) * (sway + (f_2 * flutter)); } metal::float4 windBend( metal::float3 P0_1, metal::float3 N_2, metal::float3 T, metal::float3 B, metal::float2 sheet_2, metal::float2 size_2, float mask_2, metal::float4 pin_2, float seed_1, float weight, metal::float4 wa_1, metal::float4 wb_1 ) { float _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = _e13 * weight; float _e20 = windDisp(P0_1 + (T * 0.006), N_2, sheet_2 + metal::float2(0.006, 0.0), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = _e20 * weight; float _e27 = windDisp(P0_1 + (B * 0.006), N_2, sheet_2 + metal::float2(0.0, 0.006), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = _e27 * weight; metal::float3 n_2 = metal::normalize((N_2 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006))); return metal::float4(n_2, d0_); } float shadowVisibility( metal::float4x4 lvp, metal::float4 sa, metal::float4 sb, metal::float3 world_2, metal::float2 fragXY, metal::float2 lightXZ, metal::depth2d shadowMap, metal::sampler shadowSamp ) { type_11 disk = type_11 {{metal::float2(-0.94201624, -0.39906216), metal::float2(0.9455861, -0.76890725), metal::float2(-0.0941841, -0.9293887), metal::float2(0.34495938, 0.2938776), metal::float2(-0.9158858, 0.45771432), metal::float2(-0.8154423, -0.87912464), metal::float2(-0.38277543, 0.27676845), metal::float2(0.974844, 0.7564838), metal::float2(0.44323325, -0.97511554), metal::float2(0.5374298, -0.4737342), metal::float2(-0.2649691, -0.41893023), metal::float2(0.79197514, 0.19090188), metal::float2(-0.2418884, 0.99706507), metal::float2(-0.81409955, 0.9143759), metal::float2(0.19984126, 0.78641367), metal::float2(0.14383161, -0.1410079)}}; float lit = 0.0; int i_3 = 0; metal::float4 lc = lvp * metal::float4(world_2, 1.0); metal::float3 ndc = lc.xyz / metal::float3(lc.w); metal::float2 uv = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); float depthRef = ndc.z - sb.x; float _e77 = ign(fragXY); float angle = 6.2831855 * _e77; float cs = metal::cos(angle); float sn = metal::sin(angle); float reach = metal::length(world_2.xz - lightXZ); float contact = metal::min(CONTACT_MIN + ((CONTACT_GROWTH * metal::max(reach - sb.w, 0.0)) / metal::max(sb.w, 0.001)), CONTACT_MAX); metal::float2 radius = sa.xy * ((sb.w > 0.0) ? contact : (sa.z * (1.0 + (sb.z * reach)))); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e139 = i_3; i_3 = as_type(as_type(_e139) + as_type(1)); } loop_init_1 = false; int _e115 = i_3; if (_e115 < 16) { } else { break; } { int _e118 = i_3; metal::float2 d_4 = disk.inner[metal::min(unsigned(_e118), 15u)]; metal::float2 o_1 = metal::float2((d_4.x * cs) - (d_4.y * sn), (d_4.x * sn) + (d_4.y * cs)) * radius; float _e133 = lit; float _e137 = shadowMap.sample_compare(shadowSamp, uv + o_1, depthRef); lit = _e133 + _e137; } } float _e142 = lit; lit = _e142 / 16.0; float inside = (((metal::step(0.0, uv.x) * metal::step(uv.x, 1.0)) * metal::step(0.0, uv.y)) * metal::step(uv.y, 1.0)) * metal::step(0.0, lc.w); float _e164 = lit; return metal::mix(1.0, _e164, inside); } float shadowVisibilityWide( metal::float4x4 lvp_1, metal::float4 sa_1, metal::float4 sb_1, metal::float3 world_3, metal::float2 fragXY_1, float r, metal::depth2d shadowMap, metal::sampler shadowSamp ) { type_12 ring = type_12 {{metal::float2(0.354, 0.0), metal::float2(-0.452, 0.414), metal::float2(0.069, -0.788), metal::float2(0.569, 0.742)}}; float lit_1 = 0.0; int i_4 = 0; float _e24 = ign(fragXY_1 + metal::float2(5.0, 3.0)); float angle_1 = 6.2831855 * _e24; float cs_1 = metal::cos(angle_1); float sn_1 = metal::sin(angle_1); uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { int _e103 = i_4; i_4 = as_type(as_type(_e103) + as_type(1)); } loop_init_2 = false; int _e33 = i_4; if (_e33 < 4) { } else { break; } { int _e36 = i_4; metal::float2 d_5 = ring.inner[metal::min(unsigned(_e36), 3u)]; metal::float2 o_2 = metal::float2((d_5.x * cs_1) - (d_5.y * sn_1), (d_5.x * sn_1) + (d_5.y * cs_1)) * r; metal::float4 lc_1 = lvp_1 * metal::float4(world_3 + metal::float3(o_2.x, 0.0, o_2.y), 1.0); metal::float3 ndc_1 = lc_1.xyz / metal::float3(lc_1.w); metal::float2 uv_1 = metal::float2((ndc_1.x * 0.5) + 0.5, 0.5 - (ndc_1.y * 0.5)); float inside_1 = (((metal::step(0.0, uv_1.x) * metal::step(uv_1.x, 1.0)) * metal::step(0.0, uv_1.y)) * metal::step(uv_1.y, 1.0)) * metal::step(0.0, lc_1.w); float _e93 = lit_1; float _e99 = shadowMap.sample_compare(shadowSamp, uv_1, ndc_1.z - sb_1.x); lit_1 = _e93 + metal::mix(1.0, _e99, inside_1); } } float _e106 = lit_1; return _e106 * 0.25; } metal::float3 fibreLayer( metal::float3 n, metal::float2x2 r_1, metal::float2 a ) { float k_1 = 1.0 - metal::abs(n.x); float k3_ = (k_1 * k_1) * k_1; float ridge = k3_ * k_1; metal::float2 gN = n.yz * ((-4.0 * k3_) * metal::sign(n.x)); metal::float2 g_3 = metal::transpose(r_1) * ((gN * a) / metal::float2(a.y)); return metal::float3(ridge, g_3); } PaperSurf paperSurface( metal::float2 q_1, float fp, float scale ) { PaperSurf s_1 = {}; float _e10 = vnoise((q_1 * (7.0 * scale)) + metal::float2(3.1, 7.7)); float _e18 = vnoise((q_1 * (19.0 * scale)) + metal::float2(11.7, 4.2)); float t1f = 150.0 * scale; float t2f = 340.0 * scale; metal::float3 _e28 = vnoiseD((q_1 * t1f) + metal::float2(7.3, 1.9)); metal::float3 _e34 = vnoiseD((q_1 * t2f) + metal::float2(2.1, 9.4)); float ft1_ = metal::clamp(1.5 - ((fp * t1f) * 1.3), 0.0, 1.0); float ft2_ = metal::clamp(1.5 - ((fp * t2f) * 1.3), 0.0, 1.0); metal::float2x2 r1_ = metal::float2x2(metal::float2(0.9063, 0.4226), metal::float2(-0.4226, 0.9063)); metal::float2x2 r2_ = metal::float2x2(metal::float2(-0.342, 0.9397), metal::float2(-0.9397, -0.342)); metal::float2x2 r3_ = metal::float2x2(metal::float2(0.5, -0.866), metal::float2(0.866, 0.5)); metal::float2 a_3 = metal::float2(95.0, 280.0) * scale; metal::float3 _e78 = vnoiseD((r1_ * q_1) * a_3); metal::float3 _e79 = fibreLayer(_e78, r1_, a_3); metal::float3 _e86 = vnoiseD(((r2_ * q_1) * a_3) + metal::float2(31.0, 17.0)); metal::float3 _e87 = fibreLayer(_e86, r2_, a_3); metal::float3 _e94 = vnoiseD(((r3_ * q_1) * a_3) + metal::float2(5.0, 43.0)); metal::float3 _e95 = fibreLayer(_e94, r3_, a_3); float fF = metal::clamp(1.5 - ((fp * a_3.y) * 1.2), 0.0, 1.0); float fibres = ((_e79.x + _e87.x) + _e95.x) * fF; s_1.formation = metal::clamp(((0.5 + (0.36 * _e10)) + (0.24 * _e18)) + (0.1 * fibres), 0.0, 1.0); s_1.tone = (((1.0 + (0.08 * ((0.36 * _e10) + (0.24 * _e18)))) + ((0.022 * _e28.x) * ft1_)) + ((0.012 * _e34.x) * ft2_)) + (0.03 * (fibres - 0.3)); s_1.slope = ((_e28.yz * (0.9 * ft1_)) + (_e34.yz * (0.45 * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18 * fF)); PaperSurf _e170 = s_1; return _e170; } float unpack16_( metal::float4 t ) { return ((metal::floor((t.x * 255.0) + 0.5) * 256.0) + metal::floor((t.y * 255.0) + 0.5)) * 0.000015259022; } float phosphorPacked( metal::float2 puv, metal::texture2d phosphorTex ) { metal::float2 dims = static_cast(metal::uint2(phosphorTex.get_width(), phosphorTex.get_height())); metal::float2 st = (metal::clamp(puv, metal::float2(0.0), metal::float2(1.0)) * dims) - metal::float2(0.5); metal::int2 i0_ = naga_f2i32(metal::floor(st)); metal::float2 fr = st - metal::floor(st); metal::int2 mx = as_type(as_type(naga_f2i32(dims)) - as_type(metal::int2(1))); uint clamped_lod_e26 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e26 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(i0_, metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e26), phosphorTex.get_height(clamped_lod_e26)) - 1), clamped_lod_e26); float _e27 = unpack16_(_e26); uint clamped_lod_e37 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e37 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(as_type(as_type(i0_) + as_type(metal::int2(1, 0))), metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e37), phosphorTex.get_height(clamped_lod_e37)) - 1), clamped_lod_e37); float _e38 = unpack16_(_e37); uint clamped_lod_e48 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e48 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(as_type(as_type(i0_) + as_type(metal::int2(0, 1))), metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e48), phosphorTex.get_height(clamped_lod_e48)) - 1), clamped_lod_e48); float _e49 = unpack16_(_e48); uint clamped_lod_e59 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e59 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(as_type(as_type(i0_) + as_type(metal::int2(1, 1))), metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e59), phosphorTex.get_height(clamped_lod_e59)) - 1), clamped_lod_e59); float _e60 = unpack16_(_e59); return metal::mix(metal::mix(_e27, _e38, fr.x), metal::mix(_e49, _e60, fr.x), fr.y); } float shoulder( float x, float knee, float r_2 ) { bool local_36 = {}; if (!((x <= knee))) { local_36 = r_2 <= 0.0; } else { local_36 = true; } bool _e10 = local_36; if (_e10) { return x; } return knee + (r_2 * metal::log(1.0 + ((x - knee) / r_2))); } metal::float3 sideDist( metal::float2 sheet_3, metal::float2 size_3, float mask_3 ) { metal::float3 best = metal::float3(1000.0, 0.0, 0.0); bool local_37 = {}; bool local_38 = {}; bool local_39 = {}; bool local_40 = {}; uint m_1 = naga_f2u32(metal::clamp(mask_3, 0.0, 15.0) + 0.5); if ((m_1 & 1u) != 0u) { float _e22 = best.x; local_37 = sheet_3.x < _e22; } else { local_37 = false; } bool _e25 = local_37; if (_e25) { best = metal::float3(sheet_3.x, -1.0, 0.0); } if ((m_1 & 2u) != 0u) { float _e40 = best.x; local_38 = (size_3.x - sheet_3.x) < _e40; } else { local_38 = false; } bool _e43 = local_38; if (_e43) { best = metal::float3(size_3.x - sheet_3.x, 1.0, 0.0); } if ((m_1 & 4u) != 0u) { float _e58 = best.x; local_39 = sheet_3.y < _e58; } else { local_39 = false; } bool _e61 = local_39; if (_e61) { best = metal::float3(sheet_3.y, 0.0, -1.0); } if ((m_1 & 8u) != 0u) { float _e76 = best.x; local_40 = (size_3.y - sheet_3.y) < _e76; } else { local_40 = false; } bool _e79 = local_40; if (_e79) { best = metal::float3(size_3.y - sheet_3.y, 0.0, 1.0); } metal::float3 _e86 = best; return _e86; } float inUnit( metal::float2 p_6 ) { return ((metal::step(0.0, p_6.x) * metal::step(p_6.x, 1.0)) * metal::step(0.0, p_6.y)) * metal::step(p_6.y, 1.0); } struct vs_mainInput { metal::float2 q_2 [[attribute(0)]]; metal::float4 m0_ [[attribute(1)]]; metal::float4 m1_ [[attribute(2)]]; metal::float4 m2_ [[attribute(3)]]; metal::float4 m3_ [[attribute(4)]]; metal::float4 uvRect [[attribute(5)]]; metal::float4 clip [[attribute(6)]]; metal::float4 params [[attribute(7)]]; metal::float4 look [[attribute(8)]]; metal::float4 edges [[attribute(9)]]; metal::float4 pin_3 [[attribute(10)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float2 uv [[user(loc1), center_perspective]]; metal::float2 q [[user(loc2), center_perspective]]; metal::float4 normal [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), flat]]; metal::float4 bitangent [[user(loc5), flat]]; metal::float4 clip [[user(loc6), flat]]; metal::float4 params [[user(loc7), flat]]; metal::float4 look [[user(loc8), flat]]; metal::float4 edges [[user(loc9), flat]]; metal::float3 bent [[user(loc10), center_perspective]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant Frame& frame [[buffer(0)]] ) { const VsIn in = { varyings.q_2, {}, varyings.m0_, varyings.m1_, varyings.m2_, varyings.m3_, varyings.uvRect, varyings.clip, varyings.params, varyings.look, varyings.edges, varyings.pin_3 }; metal::float3 world = {}; metal::float3 bent = {}; bool local = {}; VsOut out = {}; metal::float4x4 model = metal::float4x4(in.m0_, in.m1_, in.m2_, in.m3_); world = (model * metal::float4(in.q, 0.0, 1.0)).xyz; float w_1 = metal::length(in.m0_.xyz); float h = metal::length(in.m1_.xyz); metal::float3 N0_ = metal::normalize(in.m2_.xyz); bent = N0_; if (in.edges.z > 0.0) { float _e32 = frame.windA.w; local = _e32 > 0.0; } else { local = false; } bool _e36 = local; if (_e36) { metal::float2 size_4 = metal::float2(w_1, h); metal::float3 _e38 = world; metal::float4 _e62 = frame.windA; metal::float4 _e65 = frame.windB; metal::float4 _e66 = windBend(_e38, N0_, in.m0_.xyz / metal::float3(metal::max(w_1, 0.000001)), in.m1_.xyz / metal::float3(metal::max(h, 0.000001)), in.q * size_4, size_4, in.edges.x, in.pin, in.look.z, in.edges.z, _e62, _e65); metal::float3 _e67 = world; world = _e67 + (N0_ * _e66.w); bent = _e66.xyz; } metal::float4x4 _e76 = frame.viewProj; metal::float3 _e77 = world; out.position = _e76 * metal::float4(_e77, 1.0); metal::float3 _e82 = world; out.world = _e82; out.uv = in.uvRect.xy + (in.q * in.uvRect.zw); out.q = in.q; out.normal = metal::float4(metal::normalize(in.m2_.xyz), 0.0); out.tangent = metal::float4(in.m0_.xyz / metal::float3(metal::max(w_1, 0.000001)), w_1); out.bitangent = metal::float4(in.m1_.xyz / metal::float3(metal::max(h, 0.000001)), h); out.clip = in.clip; out.params = in.params; out.look = in.look; out.edges = in.edges; metal::float3 _e124 = bent; out.bent = _e124; VsOut _e125 = out; const auto _tmp = _e125; return vs_mainOutput { _tmp.position, _tmp.world, _tmp.uv, _tmp.q, _tmp.normal, _tmp.tangent, _tmp.bitangent, _tmp.clip, _tmp.params, _tmp.look, _tmp.edges, _tmp.bent }; } struct fs_mainInput { metal::float3 world_4 [[user(loc0), center_perspective]]; metal::float2 uv [[user(loc1), center_perspective]]; metal::float2 q_2 [[user(loc2), center_perspective]]; metal::float4 normal [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), flat]]; metal::float4 bitangent [[user(loc5), flat]]; metal::float4 clip [[user(loc6), flat]]; metal::float4 params [[user(loc7), flat]]; metal::float4 look [[user(loc8), flat]]; metal::float4 edges [[user(loc9), flat]]; metal::float3 bent_1 [[user(loc10), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Frame& frame [[buffer(0)]] , metal::depth2d shadowMap [[texture(0)]] , metal::sampler shadowSamp [[sampler(0)]] , metal::texture2d phosphorTex [[texture(1)]] , metal::texture2d maskTex [[texture(2)]] , metal::texture2d aoTex [[texture(3)]] , metal::sampler mapSamp [[sampler(1)]] , metal::texture2d albedoTex [[texture(4)]] , metal::sampler albedoSamp [[sampler(2)]] ) { const VsOut in_1 = { position, varyings_1.world_4, varyings_1.uv, varyings_1.q_2, varyings_1.normal, varyings_1.tangent, varyings_1.bitangent, varyings_1.clip, varyings_1.params, varyings_1.look, varyings_1.edges, varyings_1.bent_1 }; float cov = {}; bool local_1 = {}; bool local_2 = {}; bool local_3 = {}; metal::float3 art = {}; bool local_4 = {}; metal::float3 Ng = {}; bool local_5 = {}; metal::float3 albedo = {}; bool local_6 = {}; metal::float3 N = {}; float crease = 0.0; bool local_7 = {}; bool local_8 = {}; float cutBand = 0.0; metal::float3 cutOut = metal::float3(0.0); float cutDist = 1000.0; bool local_9 = {}; float fd = {}; bool local_10 = {}; float e = {}; metal::float2 o = {}; bool local_11 = {}; float vis = 1.0; bool local_12 = {}; metal::float3 trans = metal::float3(0.0); bool local_13 = {}; float ao = 1.0; float visT = {}; metal::float3 lift = metal::float3(0.0); bool local_14 = {}; bool local_15 = {}; float visQ = 1.0; metal::float3 color = {}; bool local_16 = {}; metal::float3 moonTrans = metal::float3(0.0); bool local_17 = {}; bool local_18 = {}; bool local_19 = {}; bool local_20 = {}; bool local_21 = {}; bool local_22 = {}; bool local_23 = {}; bool local_24 = {}; float thread_ = {}; bool local_25 = {}; float charge = {}; bool local_26 = {}; bool local_27 = {}; float c2_ = {}; bool local_28 = {}; bool local_29 = {}; bool local_30 = {}; bool local_31 = {}; bool local_32 = {}; metal::float4 texel = albedoTex.sample(albedoSamp, in_1.uv); bool textured = in_1.params.w < 0.0; float a_4 = textured ? texel.w : 1.0; float aWidth = metal::fwidth(a_4); float _e19 = luma(texel.xyz / metal::float3(metal::max(texel.w, 0.0001))); float _e20 = metal::fwidth(_e19); float inkEdge = metal::clamp(_e20 * 7.0, 0.0, 1.0); float rd = 0.5 - metal::length(in_1.q - metal::float2(0.5, 0.5)); float rdWidth = metal::fwidth(rd); float cd = metal::dot(in_1.clip.xy, in_1.q) + in_1.clip.z; float cdWidth = metal::fwidth(cd); metal::float2 sheetSize = metal::float2(in_1.tangent.w, in_1.bitangent.w); metal::float2 sheet_4 = in_1.q * sheetSize; metal::float2 fw = metal::fwidth(sheet_4); float fp_1 = metal::max(metal::max(fw.x, fw.y), 0.000001); metal::float2 dsx = metal::dfdx(sheet_4); metal::float2 dsy = metal::dfdy(sheet_4); float dax = metal::dfdx(a_4); float day = metal::dfdy(a_4); metal::float2 puvPage = metal::float2(in_1.look.w + (0.5 * in_1.q.x), 1.0 - in_1.q.y); float _e77 = frame.pageRect.x; float _e82 = frame.pageRect.z; float _e89 = frame.pageRect.y; float _e94 = frame.pageRect.w; metal::float2 puvWorld = metal::float2((in_1.world.x - _e77) * _e82, (in_1.world.z - _e89) * _e94); metal::float2 puv_1 = (in_1.look.w >= 0.0) ? puvPage : puvWorld; metal::float4 _e104 = phosphorTex.sample(mapSamp, puv_1); float phosF16_ = _e104.x; metal::float4 _e108 = maskTex.sample(mapSamp, puv_1); float maskA = _e108.w; metal::float4 _e112 = aoTex.sample(mapSamp, puv_1); float aoMap = _e112.x; float _e114 = inUnit(puv_1); float soft_1 = metal::clamp(((a_4 - 0.5) / metal::max(aWidth, 0.0001)) + 0.5, 0.0, 1.0); float _e130 = frame.view.w; cov = (_e130 > 0.5) ? soft_1 : metal::step(0.5, a_4); float _e135 = cov; cov = (in_1.params.y > 0.5) ? _e135 : 1.0; float _e142 = cov; cov = _e142 * ((in_1.params.z > 0.5) ? metal::clamp((rd / metal::max(rdWidth, 0.000001)) + 0.5, 0.0, 1.0) : 1.0); float _e158 = cov; cov = _e158 * ((in_1.clip.w > 0.5) ? metal::clamp((cd / metal::max(cdWidth, 0.000001)) + 0.5, 0.0, 1.0) : 1.0); float _e174 = cov; if (_e174 <= 0.0) { metal::discard_fragment(); } float kind = in_1.look.x; if (kind > 0.5) { local_1 = kind < 1.5; } else { local_1 = false; } bool isPage = local_1; if (kind > 1.5) { local_2 = kind < 2.5; } else { local_2 = false; } bool isBoard = local_2; bool isCard = kind < 0.5; if (kind > 2.5) { local_3 = kind < 3.5; } else { local_3 = false; } bool isLeaf = local_3; float side = in_1.look.y; float viewMode = frame.view.x; metal::float3 tone = (in_1.params.w > 0.5) ? SHADOW_PAPER_LIN : PAPER_LIN; metal::float3 _e224 = srgbToLinear(texel.xyz / metal::float3(metal::max(texel.w, 0.0001))); art = textured ? _e224 : tone; if (viewMode > 4.5) { local_4 = viewMode < 5.5; } else { local_4 = false; } bool _e234 = local_4; if (_e234) { art = metal::float3(0.6); } metal::float4 _e239 = frame.camPos; metal::float3 V = metal::normalize(_e239.xyz - in_1.world); Ng = metal::normalize(in_1.bent); metal::float3 _e247 = Ng; bool facing = metal::dot(_e247, V) >= 0.0; metal::float3 _e251 = Ng; metal::float3 _e253 = Ng; Ng = facing ? _e253 : -(_e251); metal::float3 _e257 = art; metal::float3 reverse = (kind < -0.5) ? metal::mix(SHADOW_PAPER_LIN, _e257, 0.55) : SHADOW_PAPER_LIN; metal::float3 _e263 = art; if (!(facing)) { local_5 = !(isCard); } else { local_5 = true; } bool _e269 = local_5; albedo = _e269 ? _e263 : reverse; if (viewMode > 4.5) { local_6 = viewMode < 5.5; } else { local_6 = false; } bool _e279 = local_6; if (_e279) { albedo = metal::float3(0.6); } float grainOn = frame.paperA.x; float _e299 = frame.paperA.w; PaperSurf _e300 = paperSurface(sheet_4 + metal::float2(in_1.look.z * 13.7, in_1.look.z * 5.3), fp_1, _e299); float grainTone = metal::mix(1.0, _e300.tone, grainOn); metal::float3 _e304 = albedo; albedo = _e304 * grainTone; metal::float3 _e306 = art; art = _e306 * grainTone; metal::float3 T_2 = in_1.tangent.xyz; metal::float3 B_1 = in_1.bitangent.xyz; metal::float3 _e312 = Ng; N = _e312; if (isPage) { local_7 = metal::abs(side) > 0.5; } else { local_7 = false; } bool _e322 = local_7; if (_e322) { float _e328 = frame.paperC.z; local_8 = _e328 > 0.0; } else { local_8 = false; } bool _e332 = local_8; if (_e332) { float ds = (side > 0.0) ? (sheetSize.x - sheet_4.x) : sheet_4.x; crease = 1.0 - metal::smoothstep(0.0, 0.075, ds); metal::float3 _e345 = N; float _e348 = crease; float _e350 = crease; N = metal::normalize(_e345 + (T_2 * (((side * 0.55) * _e348) * _e350))); float _e358 = frame.crease.x; if (_e358 > 0.0) { float _e364 = frame.crease.y; float wG = _e364 * 1.4; float wGF = metal::max(wG, fp_1); metal::float3 _e368 = albedo; float _e373 = frame.crease.x; albedo = _e368 * (1.0 - (((GUTTER_DARK * _e373) * (1.0 - metal::smoothstep(0.0, wGF, ds))) * (wG / wGF))); } } float _e389 = frame.paperA.y; metal::float2 slope = _e300.slope * (_e389 * grainOn); metal::float3 _e392 = N; N = metal::normalize((_e392 - (T_2 * slope.x)) - (B_1 * slope.y)); if (isCard) { float _e412 = frame.crease.x; local_9 = _e412 > 0.0; } else { local_9 = false; } bool _e416 = local_9; if (_e416) { metal::float3 _e419 = sideDist(sheet_4, sheetSize, in_1.edges.x); fd = _e419.x; if (in_1.edges.y > 0.5) { local_10 = in_1.clip.w > 0.5; } else { local_10 = false; } bool _e433 = local_10; if (_e433) { float _e434 = fd; fd = metal::min(_e434, metal::abs(cd)); } float wC = frame.crease.y; float wCF = metal::max(wC, fp_1); float _e442 = fd; float foldLine = (1.0 - metal::smoothstep(0.0, wCF, _e442)) * (wC / wCF); metal::float3 _e449 = albedo; float _e454 = frame.crease.x; albedo = _e449 * (1.0 - ((CREASE_DARK * _e454) * foldLine)); metal::float3 _e464 = sideDist(sheet_4, sheetSize, 15.0 - in_1.edges.x); e = _e464.x; o = _e464.yz; if (textured) { float det = (dsx.x * dsy.y) - (dsx.y * dsy.x); metal::float2 g_4 = metal::float2((dsy.y * dax) - (dsx.y * day), (dsx.x * day) - (dsy.x * dax)) / metal::float2((metal::abs(det) < 0.000000000001) ? 0.000000000001 : det); float gl = metal::length(g_4); if (gl > 1.0) { float ea = (a_4 - 0.5) / gl; float _e500 = e; if (ea < _e500) { e = ea; o = -(g_4) / metal::float2(gl); } } } if (in_1.params.z > 0.5) { metal::float2 rq = in_1.q - metal::float2(0.5, 0.5); float ed = rd * sheetSize.x; float _e516 = e; if (ed < _e516) { e = ed; o = rq / metal::float2(metal::max(metal::length(rq), 0.000001)); } } float t_4 = frame.crease.z; float tF = metal::max(t_4, fp_1); float _e528 = e; float _e540 = frame.crease.x; cutBand = ((1.0 - metal::smoothstep(0.0, tF, metal::max(_e528, 0.0))) * (t_4 / tF)) * _e540; float _e542 = e; cutDist = metal::max(_e542, 0.0); float _e546 = o.x; float _e549 = o.y; cutOut = (T_2 * _e546) + (B_1 * _e549); metal::float3 _e552 = albedo; float _e554 = cutBand; albedo = _e552 * (1.0 - (CUT_DARK * _e554)); } float _e562 = frame.pages.x; float _e566 = frame.pages.y; metal::float3 hostN = (side > 0.0) ? metal::float3(0.0, 1.0, 0.0) : metal::float3(_e562, _e566, 0.0); float hostH = metal::max(metal::dot(in_1.world, hostN), 0.0); metal::float3 _e580 = Ng; if (isCard) { local_11 = metal::abs(side) > 0.5; } else { local_11 = false; } bool _e591 = local_11; float upright = _e591 ? (1.0 - metal::abs(metal::dot(_e580, hostN))) : 0.0; metal::float4 _e596 = frame.lightPos; metal::float3 toL_1 = _e596.xyz - in_1.world; float d2_ = metal::dot(toL_1, toL_1); metal::float3 L = toL_1 * metal::rsqrt(metal::max(d2_, 0.00000001)); float _e608 = frame.lightPos.w; float _e612 = frame.lightColor.w; float atten = _e608 / (d2_ + _e612); float _e620 = frame.shadowA.w; if (_e620 > 0.5) { local_12 = in_1.params.x > 0.5; } else { local_12 = false; } bool _e630 = local_12; if (_e630) { metal::float3 _e631 = Ng; metal::float3 _e632 = Ng; float _e642 = frame.shadowB.y; metal::float3 offs = _e631 * (((metal::dot(_e632, L) >= 0.0) ? 1.0 : -1.0) * _e642); metal::float4x4 _e647 = frame.lightViewProj; metal::float4 _e650 = frame.shadowA; metal::float4 _e653 = frame.shadowB; metal::float4 _e660 = frame.lightPos; float _e662 = shadowVisibility(_e647, _e650, _e653, in_1.world + offs, in_1.position.xy, _e660.xz, shadowMap, shadowSamp); vis = _e662; } float wrap = frame.paperA.z; metal::float3 _e667 = N; float front_1 = metal::max((metal::dot(_e667, L) + wrap) / (1.0 + wrap), 0.0); float lookThrough = metal::mix(0.45, 1.45, _e300.formation); metal::float3 tint = metal::float3(1.0, 0.74, 0.46); if (!(isCard)) { local_13 = isLeaf; } else { local_13 = true; } bool _e690 = local_13; if (_e690) { metal::float3 _e691 = Ng; float back = metal::max(-(metal::dot(_e691, L)), 0.0); float _e703 = frame.paperB.z; float _e708 = frame.paperB.y; float fwd = metal::pow(metal::max(metal::dot(V, -(L)), 0.0), _e703) * _e708; metal::float3 _e710 = art; metal::float3 _e711 = art; float _e722 = frame.paperB.x; trans = ((((_e710 * _e711) * tint) * lookThrough) * (back * (1.0 + fwd))) * _e722; } if (isPage) { float _e729 = frame.paperC.x; float _e736 = frame.paperC.z; float _e737 = crease; float _e739 = crease; ao = metal::mix(1.0, aoMap, _e729 * _e114) * (1.0 - ((_e736 * _e737) * _e739)); float ex = (metal::abs(side) > 0.5) ? ((side > 0.0) ? sheet_4.x : (sheetSize.x - sheet_4.x)) : metal::min(sheet_4.x, sheetSize.x - sheet_4.x); float ed_1 = metal::min(ex, metal::min(sheet_4.y, sheetSize.y - sheet_4.y)); float _e768 = vnoise(sheet_4 * 38.0); float wob = _e768 * 0.006; float _e780 = frame.paperC.y; float edge = (1.0 - metal::smoothstep(0.0, 0.04, ed_1 + wob)) * _e780; metal::float3 _e782 = albedo; albedo = _e782 * metal::mix(metal::float3(1.0), metal::float3(0.78, 0.66, 0.5), edge); } else { if (isBoard) { float ed_2 = metal::min(metal::min(sheet_4.x, sheetSize.x - sheet_4.x), metal::min(sheet_4.y, sheetSize.y - sheet_4.y)); float _e804 = vnoise(sheet_4 * 45.0); float wob_1 = _e804 * 0.004; float _e816 = frame.paperC.y; float edge_1 = (1.0 - metal::smoothstep(0.0, 0.022, ed_2 + wob_1)) * _e816; metal::float3 _e818 = albedo; metal::float3 _e819 = albedo; albedo = metal::mix(_e818, (_e819 * 0.55) + metal::float3(0.05, 0.045, 0.04), edge_1 * 0.8); } else { float _e833 = frame.paperB.w; float _e838 = frame.paperC.w; ao = 1.0 - ((_e833 * metal::exp(-(hostH) / metal::max(_e838, 0.0001))) * upright); } } float _e847 = vis; visT = _e847; if (isCard) { float _e857 = frame.fill.x; local_14 = _e857 > 0.0; } else { local_14 = false; } bool _e861 = local_14; if (_e861) { float _e865 = frame.fill.y; float _e866 = vis; visT = metal::mix(_e865, 1.0, _e866); metal::float3 _e869 = Ng; metal::float3 _e870 = Ng; metal::float3 hdir = _e869 - (hostN * metal::dot(_e870, hostN)); float hl = metal::length(hdir); float _e875 = vis; float _e879 = vis; float missed = (1.0 - (front_1 * _e875)) * (1.0 - (front_1 * _e879)); metal::float3 _e884 = Ng; float viewF = (0.5 * (1.0 - metal::dot(_e884, hostN))) * missed; if (hl > 0.001) { local_15 = viewF > 0.001; } else { local_15 = false; } bool _e898 = local_15; if (_e898) { float _e902 = frame.fill.z; float _e907 = frame.fill.w; float reach_1 = metal::min((_e902 * hostH) + _e907, BOUNCE_REACH_MAX); metal::float3 Q = (in_1.world - (hostN * hostH)) + (hdir * (reach_1 / hl)); metal::float4 _e919 = frame.lightPos; metal::float3 toLQ = _e919.xyz - Q; float dq2_ = metal::dot(toLQ, toLQ); float cosQ = metal::max(metal::dot(hostN, toLQ), 0.0) * metal::rsqrt(metal::max(dq2_, 0.00000001)); float _e935 = frame.shadowA.w; if (_e935 > 0.5) { metal::float4x4 _e940 = frame.lightViewProj; metal::float4 _e943 = frame.shadowA; metal::float4 _e946 = frame.shadowB; float _e950 = frame.shadowB.y; float _e957 = shadowVisibilityWide(_e940, _e943, _e946, Q + (hostN * _e950), in_1.position.xy, 0.5 * reach_1, shadowMap, shadowSamp); visQ = _e957; } float _e962 = frame.pageRect.x; float _e967 = frame.pageRect.z; float _e973 = frame.pageRect.y; float _e978 = frame.pageRect.w; metal::float2 puvQ = metal::float2((Q.x - _e962) * _e967, (Q.z - _e973) * _e978); metal::float4 _e983 = frame.table; float _e986 = inUnit(puvQ); metal::float3 ground = metal::mix(_e983.xyz, PAPER_LIN, _e986); float _e991 = frame.lightPos.w; float _e995 = frame.lightColor.w; float _e1001 = frame.highlight.x; float _e1005 = frame.highlight.y; float _e1006 = shoulder(_e991 / (dq2_ + _e995), _e1001, _e1005); float _e1008 = visQ; float eQ = (_e1006 * cosQ) * _e1008; float _e1014 = frame.fill.x; lift = ground * ((eQ * viewF) * _e1014); } } metal::float4 _e1019 = frame.lightColor; float _e1024 = frame.highlight.x; float _e1028 = frame.highlight.y; float _e1029 = shoulder(atten, _e1024, _e1028); metal::float3 flameLit = _e1019.xyz * _e1029; float _e1031 = vis; metal::float3 light_2 = flameLit * _e1031; metal::float3 _e1033 = albedo; float _e1035 = ao; metal::float3 _e1041 = trans; float _e1042 = visT; metal::float3 _e1046 = albedo; metal::float4 _e1049 = frame.lightColor; metal::float3 _e1052 = lift; float _e1054 = ao; color = ((((_e1033 * front_1) * metal::mix(1.0, _e1035, 0.65)) * light_2) + (_e1041 * (flameLit * _e1042))) + (((_e1046 * _e1049.xyz) * _e1052) * metal::mix(1.0, _e1054, 0.65)); float _e1061 = cutBand; if (_e1061 > 0.0) { metal::float3 _e1064 = cutOut; float wallLit = metal::max(metal::dot(_e1064, L), 0.0); metal::float3 _e1068 = Ng; float graze = 0.35 + (0.65 * (1.0 - metal::abs(metal::dot(_e1068, V)))); metal::float3 _e1077 = albedo; metal::float3 core = metal::mix(_e1077, PAPER_LIN * grainTone, 0.3); metal::float3 _e1082 = color; float _e1087 = frame.crease.w; float _e1088 = cutBand; color = _e1082 + ((core * light_2) * (((_e1087 * _e1088) * wallLit) * graze)); } metal::float3 _e1094 = color; float _e1095 = luma(_e1094); metal::float3 _e1096 = color; float _e1100 = frame.highlight.z; float _e1104 = frame.highlight.w; float _e1105 = shoulder(_e1095, _e1100, _e1104); color = _e1096 * (_e1105 / metal::max(_e1095, 0.000001)); float _e1113 = frame.charmLight.w; if (_e1113 > 0.0) { local_16 = in_1.edges.w <= 0.0; } else { local_16 = false; } bool _e1123 = local_16; if (_e1123) { metal::float4 _e1126 = frame.charmLight; metal::float3 toC = _e1126.xyz - in_1.world; float dc2_ = metal::dot(toC, toC); metal::float3 Lc = toC * metal::rsqrt(metal::max(dc2_, 0.00000001)); metal::float3 _e1135 = N; float wrapC = metal::max((metal::dot(_e1135, Lc) + 0.6) / 1.6, 0.0); metal::float3 _e1143 = color; metal::float3 _e1144 = albedo; metal::float4 _e1147 = frame.charmColor; float _e1153 = frame.charmLight.w; float _e1159 = ao; color = _e1143 + (((_e1144 * _e1147.xyz) * ((_e1153 * wrapC) / (dc2_ + 0.015))) * metal::mix(1.0, _e1159, 0.5)); } metal::float4 _e1167 = frame.moonDir; metal::float3 M = _e1167.xyz; float wrapM = frame.moonDir.w; metal::float3 _e1173 = N; float moonFront = metal::max((metal::dot(_e1173, M) + wrapM) / (1.0 + wrapM), 0.0); if (!(isCard)) { local_17 = isLeaf; } else { local_17 = true; } bool _e1188 = local_17; if (_e1188) { metal::float3 _e1189 = art; metal::float3 _e1190 = art; metal::float3 _e1193 = Ng; float _e1201 = frame.paperB.x; moonTrans = ((_e1189 * _e1190) * lookThrough) * ((metal::max(-(metal::dot(_e1193, M)), 0.0) * _e1201) * 0.5); } float _e1209 = frame.moonColor.w; float moonFall = 1.0 - (_e1209 * metal::smoothstep(-0.45, 0.45, in_1.world.z)); metal::float3 _e1218 = color; metal::float4 _e1221 = frame.moonColor; float _e1223 = ao; metal::float3 _e1226 = albedo; metal::float3 _e1228 = moonTrans; color = _e1218 + ((_e1221.xyz * (moonFall * _e1223)) * ((_e1226 * moonFront) + _e1228)); if (!(isPage)) { local_18 = isBoard; } else { local_18 = true; } bool _e1236 = local_18; if (_e1236) { float _e1242 = frame.rim.w; local_19 = _e1242 > 0.0; } else { local_19 = false; } bool _e1246 = local_19; if (_e1246) { float _e1252 = frame.rim.z; local_20 = _e1252 > 0.0; } else { local_20 = false; } bool _e1256 = local_20; if (_e1256) { float wR = frame.rim.w; float e0_ = (1.0 - metal::smoothstep(0.0, wR, sheet_4.x)) * metal::max(metal::dot(-(T_2), M), 0.0); float e1_ = (1.0 - metal::smoothstep(0.0, wR, sheetSize.x - sheet_4.x)) * metal::max(metal::dot(T_2, M), 0.0); float e2_ = (1.0 - metal::smoothstep(0.0, wR, sheet_4.y)) * metal::max(metal::dot(-(B_1), M), 0.0); float e3_ = (1.0 - metal::smoothstep(0.0, wR, sheetSize.y - sheet_4.y)) * metal::max(metal::dot(B_1, M), 0.0); metal::float3 _e1303 = Ng; metal::float3 _e1312 = Ng; float graze_1 = metal::pow(1.0 - metal::min(metal::abs(metal::dot(_e1303, V)), 1.0), 3.0) * (0.35 + (0.65 * metal::max(metal::dot(_e1312, M), 0.0))); metal::float3 _e1321 = color; metal::float4 _e1324 = frame.rim; color = _e1321 + (_e1324.xyz * ((1.6 * (((e0_ + e1_) + e2_) + e3_)) + (0.6 * graze_1))); } if (isBoard) { float _e1341 = frame.gilt.y; local_21 = _e1341 > 0.0; } else { local_21 = false; } bool _e1345 = local_21; if (_e1345) { metal::float3 _e1346 = art; float gilt = metal::smoothstep(0.05, 0.22, metal::dot(_e1346, metal::float3(0.2126, 0.7152, 0.0722))); metal::float3 _e1355 = color; metal::float4 _e1358 = frame.gilt; color = _e1355 + (_e1358.xyz * gilt); } float _e1365 = frame.bounce.w; float br = metal::max(_e1365, 0.001); float bounceK = 1.0 / (1.0 + (d2_ / (br * br))); metal::float3 _e1374 = color; metal::float3 _e1375 = albedo; metal::float4 _e1378 = frame.ambient; metal::float4 _e1382 = frame.bounce; float _e1387 = ao; color = _e1374 + ((_e1375 * (_e1378.xyz + (_e1382.xyz * bounceK))) * _e1387); if (isCard) { local_22 = in_1.look.w < -1.0; } else { local_22 = false; } bool _e1397 = local_22; if (_e1397) { local_23 = in_1.look.w > -2.5; } else { local_23 = false; } bool _e1405 = local_23; if (_e1405) { metal::float3 _e1406 = color; metal::float3 _e1407 = art; metal::float3 _e1408 = art; metal::float4 _e1417 = frame.moonshine; color = _e1406 + ((metal::mix(_e1407, metal::float3(metal::dot(_e1408, metal::float3(0.33))), 0.35) * _e1417.xyz) * (-1.0 - in_1.look.w)); } if (isCard) { local_24 = in_1.look.w <= -2.5; } else { local_24 = false; } bool _e1433 = local_24; if (_e1433) { float v_1 = -3.0 - in_1.look.w; thread_ = metal::clamp(v_1, 0.0, 1.0); if (v_1 > 1.0) { float prog = metal::clamp(v_1 - 1.0, 0.0, 1.0); metal::float2 d_6 = in_1.q - metal::float2(0.5, 0.5); float a_5 = metal::fract((metal::atan2(d_6.x, d_6.y) * 0.15915494) + 1.0); float behind = (prog * 1.15) - a_5; thread_ = metal::smoothstep(-0.015, 0.0, behind) * (1.0 + (THREAD_HEAD * metal::exp(-(metal::max(behind, 0.0)) * 16.0))); } metal::float3 _e1479 = art; float _e1480 = luma(_e1479); float ink = 1.0 - metal::smoothstep(0.06, 0.3, _e1480); metal::float3 _e1486 = color; metal::float4 _e1489 = frame.glow; float _e1492 = thread_; color = _e1486 + (_e1489.xyz * (((THREAD_GAIN * _e1492) * ink) * inkEdge)); } float _e1503 = frame.charm.x; float gw = in_1.edges.w * _e1503; if (isCard) { local_25 = gw > 0.0; } else { local_25 = false; } bool _e1510 = local_25; if (_e1510) { metal::float3 _e1511 = art; float _e1512 = luma(_e1511); float inkC = 1.0 - metal::smoothstep(0.06, 0.3, _e1512); float lines = ((inkC * inkEdge) * (facing ? 1.0 : 0.0)) * (0.75 + (0.25 * gw)); float _e1532 = cutDist; float rim = 1.0 - metal::smoothstep(0.0, metal::max(0.006, fp_1 * 1.5), _e1532); float blaze = metal::smoothstep(0.65, 1.5, gw); float within = ((metal::mix(0.5, 1.3, _e300.formation) * (1.0 - (0.85 * inkC))) * (facing ? 1.0 : 0.55)) * blaze; float _e1559 = frame.charmColor.w; float _e1568 = vnoise((sheet_4 * 9.0) + metal::float2(_e1559 * 1.1, in_1.look.z * 17.0)); float shimmer = 0.8 + (0.2 * _e1568); float _e1576 = frame.charm.y; float _e1581 = frame.charm.z; float _e1587 = frame.charm.w; float lit_2 = ((_e1576 * lines) + (_e1581 * rim)) + (_e1587 * within); metal::float3 _e1590 = color; metal::float4 _e1593 = frame.charmColor; color = _e1590 + (_e1593.xyz * ((gw * shimmer) * lit_2)); } charge = phosF16_; float _e1603 = frame.glow.w; if (_e1603 > 0.5) { float _e1606 = phosphorPacked(puv_1, phosphorTex); charge = _e1606; } if (isPage) { float _e1612 = frame.view.y; local_26 = _e1612 > 0.5; } else { local_26 = false; } bool _e1616 = local_26; if (_e1616) { float pigment = metal::mix(0.8, 1.12, _e300.formation); metal::float3 _e1621 = color; metal::float4 _e1624 = frame.glow; float _e1626 = charge; color = _e1621 + (_e1624.xyz * (((_e1626 * maskA) * pigment) * _e114)); float _e1638 = frame.moonshine.w; float invocation = metal::smoothstep(0.3, 0.75, maskA) * _e1638; metal::float3 _e1640 = color; metal::float4 _e1643 = frame.glow; color = _e1640 + (_e1643.xyz * (((invocation * pigment) * _e114) * 4.0)); } if (isCard) { float _e1656 = frame.view.y; local_27 = _e1656 > 0.5; } else { local_27 = false; } bool _e1660 = local_27; if (_e1660) { metal::float3 _e1663 = Ng; metal::float2 probe = in_1.world.xz + (_e1663.xz * 0.05); float _e1672 = frame.pageRect.x; float _e1677 = frame.pageRect.z; float _e1683 = frame.pageRect.y; float _e1688 = frame.pageRect.w; metal::float2 puv2_ = metal::float2((probe.x - _e1672) * _e1677, (probe.y - _e1683) * _e1688); metal::float4 _e1694 = phosphorTex.sample(mapSamp, puv2_, metal::level(0.0)); c2_ = _e1694.x; float _e1700 = frame.glow.w; if (_e1700 > 0.5) { float _e1703 = phosphorPacked(puv2_, phosphorTex); c2_ = _e1703; } float lift_1 = metal::exp(-(hostH) / 0.09); metal::float3 _e1708 = color; metal::float3 _e1709 = albedo; metal::float4 _e1712 = frame.glow; float _e1715 = c2_; float _e1716 = inUnit(puv2_); float _e1722 = frame.view.z; color = _e1708 + ((_e1709 * _e1712.xyz) * (((_e1715 * _e1716) * lift_1) * _e1722)); } if (viewMode > 0.5) { local_28 = viewMode < 1.5; } else { local_28 = false; } bool _e1733 = local_28; if (_e1733) { float _e1734 = charge; float _e1737 = charge; float _e1738 = charge; color = metal::float3(_e1734 * 0.35, _e1737, _e1738 * 0.5) * (isPage ? 1.0 : 0.02); } else { if (viewMode > 1.5) { local_29 = viewMode < 2.5; } else { local_29 = false; } bool _e1753 = local_29; if (_e1753) { color = metal::float3(maskA) * (isPage ? 1.0 : 0.02); } else { if (viewMode > 2.5) { local_30 = viewMode < 3.5; } else { local_30 = false; } bool _e1766 = local_30; if (_e1766) { float _e1767 = ao; color = metal::float3(isPage ? aoMap : _e1767); } else { if (viewMode > 5.5) { local_31 = viewMode < 6.5; } else { local_31 = false; } bool _e1777 = local_31; if (_e1777) { float _e1778 = vis; color = metal::float3(_e1778); } else { if (viewMode > 7.5) { local_32 = viewMode < 8.5; } else { local_32 = false; } bool _e1787 = local_32; if (_e1787) { color = metal::float3(isCard ? 1.0 : 0.0); } } } } } metal::float3 _e1792 = color; metal::float4 _e1796 = frame.camPos; metal::float4 _e1800 = frame.lightPos; metal::float4 _e1804 = frame.haze; metal::float4 _e1807 = frame.glowAir; metal::float3 _e1808 = atmosphere(_e1792, in_1.world, _e1796.xyz, _e1800.xyz, _e1804, _e1807); color = _e1808; metal::float3 _e1809 = color; float _e1813 = frame.camPos.w; metal::float3 _e1814 = encodeHdr(_e1809, _e1813); float _e1815 = cov; float _e1817 = cov; return fs_mainOutput { metal::float4(_e1814 * _e1815, _e1817) }; }  `uÜ"æu[“hvN€Î4vs_mainmainu%struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct Frame { row_major float4x4 viewProj; row_major float4x4 lightViewProj; float4 lightPos; float4 lightColor; float4 ambient; float4 shadowA; float4 camPos; float4 paperA; float4 paperB; float4 paperC; float4 glow; float4 pageRect; float4 view; float4 moonDir; float4 moonColor; float4 bounce; float4 shadowB; float4 pages; float4 table; float4 highlight; float4 rim; float4 moonshine; float4 haze; float4 glowAir; float4 crease; float4 windA; float4 windB; float4 charm; float4 charmColor; float4 charmLight; float4 fill; float4 gilt; }; struct VsOut { float4 position; float3 world; float2 uv; float2 q; float4 normal; float4 tangent; float4 bitangent; float4 clip; float4 params; float4 look; float4 edges; float3 bent; }; struct PaperSurf { float2 slope; float tone; float formation; }; static const PaperSurf _1106 = { float2(0.0f, 0.0f), 0.0f, 0.0f }; static const VsOut _1401 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer frame : register(b0) { Frame frame_1_m0 : packoffset(c0); }; static float4 gl_Position; static float2 q; static float4 m0; static float4 m1; static float4 m2; static float4 m3; static float4 uvRect; static float4 clip; static float4 params; static float4 look; static float4 edges; static float4 pin; static float3 world; static float2 uv; static float2 q_1; static float4 normal; static float4 tangent; static float4 bitangent; static float4 clip_1; static float4 params_1; static float4 look_1; static float4 edges_1; static float3 bent; struct SPIRV_Cross_Input { float2 q : TEXCOORD0; float4 m0 : TEXCOORD1; float4 m1 : TEXCOORD2; float4 m2 : TEXCOORD3; float4 m3 : TEXCOORD4; float4 uvRect : TEXCOORD5; float4 clip : TEXCOORD6; float4 params : TEXCOORD7; float4 look : TEXCOORD8; float4 edges : TEXCOORD9; float4 pin : TEXCOORD10; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float2 uv : TEXCOORD1; float2 q_1 : TEXCOORD2; nointerpolation float4 normal : TEXCOORD3; nointerpolation float4 tangent : TEXCOORD4; nointerpolation float4 bitangent : TEXCOORD5; nointerpolation float4 clip_1 : TEXCOORD6; nointerpolation float4 params_1 : TEXCOORD7; nointerpolation float4 look_1 : TEXCOORD8; nointerpolation float4 edges_1 : TEXCOORD9; float3 bent : TEXCOORD10; float4 gl_Position : SV_Position; }; float windAnchor(float2 sheet, float2 size, float mask, float4 pin_1) { float d = 1000.0f; uint _836 = uint(clamp(clamp(mask, 0.0f, 15.0f) + 0.5f, 0.0f, 4294967040.0f)); if ((_836 & 1u) != 0u) { d = min(d, abs(sheet.x)); } if ((_836 & 2u) != 0u) { d = min(d, abs(size.x - sheet.x)); } if ((_836 & 4u) != 0u) { d = min(d, abs(sheet.y)); } if ((_836 & 8u) != 0u) { d = min(d, abs(size.y - sheet.y)); } if (pin_1.x > (-0.5f)) { float2 _878 = pin_1.xy * size; float2 _881 = (pin_1.zw * size) - _878; d = min(d, length(sheet - (_878 + (_881 * clamp(dot(sheet - _878, _881) / max(dot(_881, _881), 1.0000000133514319600180897396058e-10f), 0.0f, 1.0f))))); } return d; } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _237 = floor(p); float2 _238 = p - _237; float2 _242 = (_238 * _238) * (float2(3.0f, 3.0f) - (_238 * 2.0f)); int2 _248 = int2(clamp(_237, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_248), hashCell(_248 + int2(1, 0)), _242.x), lerp(hashCell(_248 + int2(0, 1)), hashCell(_248 + int2(1, 1)), _242.x), _242.y) * 2.0f) - 1.0f; } float windDisp(float3 P0, float3 N, float2 sheet, float2 size, float mask, float4 pin_1, float seed, float4 wa, float4 wb) { float _923 = min(windAnchor(sheet, size, mask, pin_1) * wb.z, 1.39999997615814208984375f); float _927 = dot(P0.xz, wb.xy); float _937 = wa.w * (0.699999988079071044921875f + (0.300000011920928955078125f * vnoise(float2((_927 * 6.0f) - (wa.z * 2.2000000476837158203125f), seed * 7.30000019073486328125f)))); return (_923 * _923) * (((wa.x * _937) * ((0.550000011920928955078125f * dot(N.xz, wb.xy)) + (0.449999988079071044921875f * ((0.64999997615814208984375f * sin(((wa.z * 7.5f) + (seed * 6.283185482025146484375f)) + (_927 * 2.5f))) + (0.3499999940395355224609375f * vnoise(float2((wa.z * 1.89999997615814208984375f) + (seed * 13.0f), _927 * 3.0f))))))) + (_923 * (((wa.y * _937) * sin(((dot(sheet, float2(0.60000002384185791015625f, 0.800000011920928955078125f)) * 41.88790130615234375f) - ((wa.z * 6.283185482025146484375f) * wb.w)) + (seed * 11.0f))) * (0.550000011920928955078125f + (0.449999988079071044921875f * vnoise(float2((wa.z * 3.2999999523162841796875f) + (seed * 5.0f), _927 * 5.0f))))))); } float4 windBend(float3 P0, float3 N, float3 T, float3 B, float2 sheet, float2 size, float mask, float4 pin_1, float seed, float weight, float4 wa, float4 wb) { float _1005 = windDisp(P0, N, sheet, size, mask, pin_1, seed, wa, wb) * weight; return float4(normalize((N - (T * (((windDisp(P0 + (T * 0.006000000052154064178466796875f), N, sheet + float2(0.006000000052154064178466796875f, 0.0f), size, mask, pin_1, seed, wa, wb) * weight) - _1005) / 0.006000000052154064178466796875f))) - (B * (((windDisp(P0 + (B * 0.006000000052154064178466796875f), N, sheet + float2(0.0f, 0.006000000052154064178466796875f), size, mask, pin_1, seed, wa, wb) * weight) - _1005) / 0.006000000052154064178466796875f))), _1005); } void vert_main() { float3 bent_1 = float3(0.0f, 0.0f, 0.0f); VsOut _out = _1401; float3 world_1 = float3(0.0f, 0.0f, 0.0f); bool _1397 = false; VsIn _1349 = { q, m0, m1, m2, m3, uvRect, clip, params, look, edges, pin }; world_1 = mul(float4(_1349.q, 0.0f, 1.0f), float4x4(_1349.m0, _1349.m1, _1349.m2, _1349.m3)).xyz; float _1414 = length(_1349.m0.xyz); float _1417 = length(_1349.m1.xyz); float3 _1420 = normalize(_1349.m2.xyz); bent_1 = _1420; if (_1349.edges.z > 0.0f) { _1397 = frame_1_m0.windA.w > 0.0f; } else { _1397 = false; } if (_1397) { float2 _1437 = float2(_1414, _1417); float _1441 = max(_1414, 9.9999999747524270787835121154785e-07f); float _1446 = max(_1417, 9.9999999747524270787835121154785e-07f); float4 _1463 = windBend(world_1, _1420, _1349.m0.xyz / float3(_1441, _1441, _1441), _1349.m1.xyz / float3(_1446, _1446, _1446), _1349.q * _1437, _1437, _1349.edges.x, _1349.pin, _1349.look.z, _1349.edges.z, frame_1_m0.windA, frame_1_m0.windB); world_1 += (_1420 * _1463.w); bent_1 = _1463.xyz; } _out.position = mul(float4(world_1, 1.0f), frame_1_m0.viewProj); _out.world = world_1; _out.uv = _1349.uvRect.xy + (_1349.q * _1349.uvRect.zw); _out.q = _1349.q; _out.normal = float4(normalize(_1349.m2.xyz), 0.0f); float _1496 = max(_1414, 9.9999999747524270787835121154785e-07f); _out.tangent = float4(_1349.m0.xyz / float3(_1496, _1496, _1496), _1414); float _1504 = max(_1417, 9.9999999747524270787835121154785e-07f); _out.bitangent = float4(_1349.m1.xyz / float3(_1504, _1504, _1504), _1417); _out.clip = _1349.clip; _out.params = _1349.params; _out.look = _1349.look; _out.edges = _1349.edges; _out.bent = bent_1; gl_Position = _out.position; world = _out.world; uv = _out.uv; q_1 = _out.q; normal = _out.normal; tangent = _out.tangent; bitangent = _out.bitangent; clip_1 = _out.clip; params_1 = _out.params; look_1 = _out.look; edges_1 = _out.edges; bent = _out.bent; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { q = stage_input.q; m0 = stage_input.m0; m1 = stage_input.m1; m2 = stage_input.m2; m3 = stage_input.m3; uvRect = stage_input.uvRect; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; pin = stage_input.pin; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.uv = uv; stage_output.q_1 = q_1; stage_output.normal = normal; stage_output.tangent = tangent; stage_output.bitangent = bitangent; stage_output.clip_1 = clip_1; stage_output.params_1 = params_1; stage_output.look_1 = look_1; stage_output.edges_1 = edges_1; stage_output.bent = bent; return stage_output; } fs_mainmain¿¥struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct Frame { row_major float4x4 viewProj; row_major float4x4 lightViewProj; float4 lightPos; float4 lightColor; float4 ambient; float4 shadowA; float4 camPos; float4 paperA; float4 paperB; float4 paperC; float4 glow; float4 pageRect; float4 view; float4 moonDir; float4 moonColor; float4 bounce; float4 shadowB; float4 pages; float4 table; float4 highlight; float4 rim; float4 moonshine; float4 haze; float4 glowAir; float4 crease; float4 windA; float4 windB; float4 charm; float4 charmColor; float4 charmLight; float4 fill; float4 gilt; }; struct VsOut { float4 position; float3 world; float2 uv; float2 q; float4 normal; float4 tangent; float4 bitangent; float4 clip; float4 params; float4 look; float4 edges; float3 bent; }; struct PaperSurf { float2 slope; float tone; float formation; }; static const float2 _1096[16] = { float2(-0.94201624393463134765625f, -0.39906215667724609375f), float2(0.94558608531951904296875f, -0.768907248973846435546875f), float2(-0.094184100627899169921875f, -0.929388701915740966796875f), float2(0.34495937824249267578125f, 0.29387760162353515625f), float2(-0.91588580608367919921875f, 0.4577143192291259765625f), float2(-0.8154423236846923828125f, -0.87912464141845703125f), float2(-0.38277542591094970703125f, 0.2767684459686279296875f), float2(0.9748439788818359375f, 0.7564837932586669921875f), float2(0.4432332515716552734375f, -0.9751155376434326171875f), float2(0.5374298095703125f, -0.473734200000762939453125f), float2(-0.2649691104888916015625f, -0.418930232524871826171875f), float2(0.79197514057159423828125f, 0.19090187549591064453125f), float2(-0.24188840389251708984375f, 0.997065067291259765625f), float2(-0.8140995502471923828125f, 0.91437590122222900390625f), float2(0.1998412609100341796875f, 0.786413669586181640625f), float2(0.14383161067962646484375f, -0.141007900238037109375f) }; static const float2 _1234[4] = { float2(0.3540000021457672119140625f, 0.0f), float2(-0.4519999921321868896484375f, 0.4140000045299530029296875f), float2(0.068999998271465301513671875f, -0.78799998760223388671875f), float2(0.5690000057220458984375f, 0.74199998378753662109375f) }; static const PaperSurf _1408 = { float2(0.0f, 0.0f), 0.0f, 0.0f }; cbuffer frame : register(b0) { Frame frame_1_m0 : packoffset(c0); }; Texture2D shadowMap : register(t0); SamplerComparisonState shadowSamp : register(s0); Texture2D phosphorTex : register(t1); Texture2D maskTex : register(t2); Texture2D aoTex : register(t3); SamplerState mapSamp : register(s1); Texture2D albedoTex : register(t4); SamplerState albedoSamp : register(s2); static float4 gl_FragCoord; static float3 world; static float2 uv; static float2 q; static float4 normal; static float4 tangent; static float4 bitangent; static float4 clip; static float4 params; static float4 look; static float4 edges; static float3 bent; static float4 _1753; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float2 uv : TEXCOORD1; float2 q : TEXCOORD2; nointerpolation float4 normal : TEXCOORD3; nointerpolation float4 tangent : TEXCOORD4; nointerpolation float4 bitangent : TEXCOORD5; nointerpolation float4 clip : TEXCOORD6; nointerpolation float4 params : TEXCOORD7; nointerpolation float4 look : TEXCOORD8; nointerpolation float4 edges : TEXCOORD9; float3 bent : TEXCOORD10; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _1753 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float luma(float3 c) { return dot(c, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)); } float inUnit(float2 p) { return ((step(0.0f, p.x) * step(p.x, 1.0f)) * step(0.0f, p.y)) * step(p.y, 1.0f); } float3 srgbToLinear(float3 c) { float3 _73 = max(c, float3(0.0f, 0.0f, 0.0f)); float3 _74 = _73 * 0.077399380505084991455078125f; float3 _77 = pow((_73 + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) * 0.94786727428436279296875f, float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _79 = bool3(_73.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, _73.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, _73.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_79.x ? _74.x : _77.x, _79.y ? _74.y : _77.y, _79.z ? _74.z : _77.z); } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _248 = floor(p); float2 _249 = p - _248; float2 _253 = (_249 * _249) * (float2(3.0f, 3.0f) - (_249 * 2.0f)); int2 _259 = int2(clamp(_248, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_259), hashCell(_259 + int2(1, 0)), _253.x), lerp(hashCell(_259 + int2(0, 1)), hashCell(_259 + int2(1, 1)), _253.x), _253.y) * 2.0f) - 1.0f; } float3 vnoiseD(float2 p) { float2 _282 = floor(p); float2 _283 = p - _282; float2 _287 = (_283 * _283) * (float2(3.0f, 3.0f) - (_283 * 2.0f)); int2 _292 = int2(clamp(_282, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float _293 = hashCell(_292); float _295 = hashCell(_292 + int2(1, 0)); float _297 = hashCell(_292 + int2(0, 1)); float _300 = _295 - _293; float _301 = _297 - _293; float _304 = ((_293 - _295) - _297) + hashCell(_292 + int2(1, 1)); return float3(((((_293 + (_300 * _287.x)) + (_301 * _287.y)) + ((_304 * _287.x) * _287.y)) * 2.0f) - 1.0f, (((_283 * 6.0f) * (float2(1.0f, 1.0f) - _283)) * float2(_300 + (_304 * _287.y), _301 + (_304 * _287.x))) * 2.0f); } float3 fibreLayer(float3 n, float2x2 r, float2 a) { float _1338 = 1.0f - abs(n.x); float _1340 = (_1338 * _1338) * _1338; return float3(_1340 * _1338, mul(((n.yz * (((-4.0f) * _1340) * sign(n.x))) * a) / float2(a.yy), transpose(r))); } PaperSurf paperSurface(float2 q_1, float fp, float scale) { PaperSurf s = _1408; float _1413 = vnoise((q_1 * (7.0f * scale)) + float2(3.099999904632568359375f, 7.69999980926513671875f)); float _1417 = vnoise((q_1 * (19.0f * scale)) + float2(11.69999980926513671875f, 4.19999980926513671875f)); float _1418 = 150.0f * scale; float _1419 = 340.0f * scale; float3 _1422 = vnoiseD((q_1 * _1418) + float2(7.30000019073486328125f, 1.89999997615814208984375f)); float3 _1425 = vnoiseD((q_1 * _1419) + float2(2.099999904632568359375f, 9.3999996185302734375f)); float _1429 = clamp(1.5f - ((fp * _1418) * 1.2999999523162841796875f), 0.0f, 1.0f); float _1433 = clamp(1.5f - ((fp * _1419) * 1.2999999523162841796875f), 0.0f, 1.0f); float2 _1434 = float2(95.0f, 280.0f) * scale; float3 _1438 = fibreLayer(vnoiseD(mul(q_1, float2x2(float2(0.906300008296966552734375f, 0.4226000010967254638671875f), float2(-0.4226000010967254638671875f, 0.906300008296966552734375f))) * _1434), float2x2(float2(0.906300008296966552734375f, 0.4226000010967254638671875f), float2(-0.4226000010967254638671875f, 0.906300008296966552734375f)), _1434); float3 _1443 = fibreLayer(vnoiseD((mul(q_1, float2x2(float2(-0.34200000762939453125f, 0.93970000743865966796875f), float2(-0.93970000743865966796875f, -0.34200000762939453125f))) * _1434) + float2(31.0f, 17.0f)), float2x2(float2(-0.34200000762939453125f, 0.93970000743865966796875f), float2(-0.93970000743865966796875f, -0.34200000762939453125f)), _1434); float3 _1448 = fibreLayer(vnoiseD((mul(q_1, float2x2(float2(0.5f, -0.865999996662139892578125f), float2(0.865999996662139892578125f, 0.5f))) * _1434) + float2(5.0f, 43.0f)), float2x2(float2(0.5f, -0.865999996662139892578125f), float2(0.865999996662139892578125f, 0.5f)), _1434); float _1453 = clamp(1.5f - ((fp * _1434.y) * 1.2000000476837158203125f), 0.0f, 1.0f); float _1459 = ((_1438.x + _1443.x) + _1448.x) * _1453; s.formation = clamp(((0.5f + (0.36000001430511474609375f * _1413)) + (0.23999999463558197021484375f * _1417)) + (0.100000001490116119384765625f * _1459), 0.0f, 1.0f); s.tone = (((1.0f + (0.07999999821186065673828125f * ((0.36000001430511474609375f * _1413) + (0.23999999463558197021484375f * _1417)))) + ((0.02199999988079071044921875f * _1422.x) * _1429)) + ((0.01200000010430812835693359375f * _1425.x) * _1433)) + (0.02999999932944774627685546875f * (_1459 - 0.300000011920928955078125f)); s.slope = ((_1422.yz * (0.89999997615814208984375f * _1429)) + (_1425.yz * (0.449999988079071044921875f * _1433))) + (((_1438.yz + _1443.yz) + _1448.yz) * (0.180000007152557373046875f * _1453)); return s; } float3 sideDist(float2 sheet, float2 size, float mask) { bool _1637 = false; bool _1631 = false; bool _1635 = false; float3 best = float3(1000.0f, 0.0f, 0.0f); bool _1633 = false; uint _1643 = uint(clamp(clamp(mask, 0.0f, 15.0f) + 0.5f, 0.0f, 4294967040.0f)); if ((_1643 & 1u) != 0u) { _1631 = sheet.x < best.x; } else { _1631 = false; } if (_1631) { best = float3(sheet.x, -1.0f, 0.0f); } if ((_1643 & 2u) != 0u) { _1633 = (size.x - sheet.x) < best.x; } else { _1633 = false; } if (_1633) { best = float3(size.x - sheet.x, 1.0f, 0.0f); } if ((_1643 & 4u) != 0u) { _1635 = sheet.y < best.x; } else { _1635 = false; } if (_1635) { best = float3(sheet.y, 0.0f, -1.0f); } if ((_1643 & 8u) != 0u) { _1637 = (size.y - sheet.y) < best.x; } else { _1637 = false; } if (_1637) { best = float3(size.y - sheet.y, 0.0f, 1.0f); } return best; } float ign(float2 p) { return frac(52.98291778564453125f * frac(dot(p, float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))); } float shadowVisibility(float4x4 lvp, float4 sa, float4 sb, float3 world_1, float2 fragXY, float2 lightXZ) { float lit = 0.0f; int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); float4 _1106 = mul(float4(world_1, 1.0f), lvp); float3 _1110 = _1106.xyz / float3(_1106.www); float2 _1117 = float2((_1110.x * 0.5f) + 0.5f, 0.5f - (_1110.y * 0.5f)); float _1120 = _1110.z - sb.x; float _1122 = 6.283185482025146484375f * ign(fragXY); float _1123 = cos(_1122); float _1124 = sin(_1122); float _1127 = length(world_1.xz - lightXZ); float2 _1146 = sa.xy * ((sb.w > 0.0f) ? min(1.0f + ((3.2000000476837158203125f * max(_1127 - sb.w, 0.0f)) / max(sb.w, 0.001000000047497451305389404296875f)), 8.0f) : (sa.z * (1.0f + (sb.z * _1127)))); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 16)) { break; } uint _1171 = min(uint(i), 15u); lit += shadowMap.SampleCmpLevelZero(shadowSamp, _1117 + (float2((_1096[_1171].x * _1123) - (_1096[_1171].y * _1124), (_1096[_1171].x * _1124) + (_1096[_1171].y * _1123)) * _1146), _1120); i++; continue; } lit /= 16.0f; return lerp(1.0f, lit, (((step(0.0f, _1117.x) * step(_1117.x, 1.0f)) * step(0.0f, _1117.y)) * step(_1117.y, 1.0f)) * step(0.0f, _1106.w)); } float shadowVisibilityWide(float4x4 lvp, float4 sa, float4 sb, float3 world_1, float2 fragXY, float r) { float lit = 0.0f; int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _1244 = 6.283185482025146484375f * ign(fragXY + float2(5.0f, 3.0f)); float _1245 = cos(_1244); float _1246 = sin(_1244); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 4)) { break; } uint _1270 = min(uint(i), 3u); float2 _1284 = float2((_1234[_1270].x * _1245) - (_1234[_1270].y * _1246), (_1234[_1270].x * _1246) + (_1234[_1270].y * _1245)) * r; float4 _1290 = mul(float4(world_1 + float3(_1284.x, 0.0f, _1284.y), 1.0f), lvp); float3 _1294 = _1290.xyz / float3(_1290.www); float2 _1301 = float2((_1294.x * 0.5f) + 0.5f, 0.5f - (_1294.y * 0.5f)); lit += lerp(1.0f, shadowMap.SampleCmpLevelZero(shadowSamp, _1301, _1294.z - sb.x), (((step(0.0f, _1301.x) * step(_1301.x, 1.0f)) * step(0.0f, _1301.y)) * step(_1301.y, 1.0f)) * step(0.0f, _1290.w)); i++; continue; } return lit * 0.25f; } float shoulder(float x, float knee, float r) { bool _1602 = false; if (!(x <= knee)) { _1602 = r <= 0.0f; } else { _1602 = true; } if (_1602) { return x; } return knee + (r * log(1.0f + ((x - knee) / r))); } float unpack16(float4 t) { return ((floor((t.x * 255.0f) + 0.5f) * 256.0f) + floor((t.y * 255.0f) + 0.5f)) * 1.525902189314365386962890625e-05f; } float phosphorPacked(float2 puv) { uint _1530_dummy_parameter; float2 _1531 = float2(spvTextureSize(phosphorTex, 0u, _1530_dummy_parameter)); float2 _1534 = (clamp(puv, float2(0.0f, 0.0f), float2(1.0f, 1.0f)) * _1531) - float2(0.5f, 0.5f); int2 _1537 = int2(clamp(floor(_1534), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float2 _1539 = _1534 - floor(_1534); int2 _1542 = int2(clamp(_1531, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) - int2(1, 1); int _1545; spvTextureSize(phosphorTex, 0u, _1545); int _1547 = int(min(uint(0), uint(int(_1545) - 1))); uint _1548_dummy_parameter; int _1557; spvTextureSize(phosphorTex, 0u, _1557); int _1559 = int(min(uint(0), uint(int(_1557) - 1))); uint _1560_dummy_parameter; int _1569; spvTextureSize(phosphorTex, 0u, _1569); int _1571 = int(min(uint(0), uint(int(_1569) - 1))); uint _1572_dummy_parameter; int _1581; spvTextureSize(phosphorTex, 0u, _1581); int _1583 = int(min(uint(0), uint(int(_1581) - 1))); uint _1584_dummy_parameter; return lerp(lerp(unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max(_1537, int2(0, 0)), _1542)), uint2(int2(spvTextureSize(phosphorTex, uint(_1547), _1548_dummy_parameter)) - int2(1, 1)))), _1547))), unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max((_1537 + int2(1, 0)), int2(0, 0)), _1542)), uint2(int2(spvTextureSize(phosphorTex, uint(_1559), _1560_dummy_parameter)) - int2(1, 1)))), _1559))), _1539.x), lerp(unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max((_1537 + int2(0, 1)), int2(0, 0)), _1542)), uint2(int2(spvTextureSize(phosphorTex, uint(_1571), _1572_dummy_parameter)) - int2(1, 1)))), _1571))), unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max((_1537 + int2(1, 1)), int2(0, 0)), _1542)), uint2(int2(spvTextureSize(phosphorTex, uint(_1583), _1584_dummy_parameter)) - int2(1, 1)))), _1583))), _1539.x), _1539.y); } float pointGlow(float3 eye, float3 dir, float dist, float3 light, float s2) { float3 _371 = light - eye; float _372 = dot(_371, dir); float _379 = sqrt(max(dot(_371, _371) - (_372 * _372), 0.0f) + max(s2, 9.9999999747524270787835121154785e-07f)); return (atan((dist - _372) / _379) + atan(_372 / _379)) / _379; } float3 atmosphere(float3 col, float3 world_1, float3 eye, float3 light, float4 haze, float4 glow) { float3 _398 = world_1 - eye; float _399 = length(_398); float _400 = max(_399, 9.9999997473787516355514526367188e-06f); float _408 = exp((-haze.w) * max(_399 - 2.7999999523162841796875f, 0.0f)); return ((col * _408) + (haze.xyz * (1.0f - _408))) + (glow.xyz * pointGlow(eye, _398 / float3(_400, _400, _400), _399, light, glow.w)); } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { bool _1907 = false; bool _1901 = false; bool _1895 = false; bool _1889 = false; bool _1883 = false; bool _1877 = false; bool _1871 = false; float3 color = float3(0.0f, 0.0f, 0.0f); bool _1861 = false; float ao = 1.0f; bool _1852 = false; float2 o = float2(0.0f, 0.0f); float fd = 0.0f; float3 cutOut = float3(0.0f, 0.0f, 0.0f); bool _1832 = false; bool _1827 = false; float3 Ng = float3(0.0f, 0.0f, 0.0f); bool _1815 = false; float cov = 0.0f; bool _1903 = false; float c2 = 0.0f; float charge = 0.0f; bool _1885 = false; bool _1879 = false; bool _1873 = false; bool _1868 = false; bool _1863 = false; float visT = 0.0f; float3 trans = float3(0.0f, 0.0f, 0.0f); bool _1849 = false; bool _1843 = false; float cutDist = 1000.0f; bool _1834 = false; float3 N = float3(0.0f, 0.0f, 0.0f); bool _1823 = false; float3 art = float3(0.0f, 0.0f, 0.0f); bool _1811 = false; bool _1905 = false; bool _1899 = false; bool _1893 = false; float thread = 0.0f; bool _1881 = false; bool _1875 = false; float3 moonTrans = float3(0.0f, 0.0f, 0.0f); float visQ = 1.0f; float3 lift = float3(0.0f, 0.0f, 0.0f); bool _1855 = false; float vis = 1.0f; float e = 0.0f; bool _1839 = false; float cutBand = 0.0f; float crease = 0.0f; float3 albedo = float3(0.0f, 0.0f, 0.0f); bool _1819 = false; bool _1813 = false; VsOut _1725 = { gl_FragCoord, world, uv, q, normal, tangent, bitangent, clip, params, look, edges, bent }; float4 _1913 = albedoTex.Sample(albedoSamp, _1725.uv); bool _1916 = _1725.params.w < 0.0f; float _1918 = _1916 ? _1913.w : 1.0f; float _1922 = max(_1913.w, 9.9999997473787516355514526367188e-05f); float _1926 = fwidth(luma(_1913.xyz / float3(_1922, _1922, _1922))); float _1928 = clamp(_1926 * 7.0f, 0.0f, 1.0f); float _1932 = 0.5f - length(_1725.q - float2(0.5f, 0.5f)); float _1940 = dot(_1725.clip.xy, _1725.q) + _1725.clip.z; float2 _1946 = float2(_1725.tangent.w, _1725.bitangent.w); float2 _1948 = _1725.q * _1946; float2 _1949 = fwidth(_1948); float _1953 = max(max(_1949.x, _1949.y), 9.9999999747524270787835121154785e-07f); float2 _1954 = ddx(_1948); float2 _1955 = ddy(_1948); float _1956 = ddx(_1918); float _1957 = ddy(_1918); float2 _1967 = float2(_1725.look.w + (0.5f * _1725.q.x), 1.0f - _1725.q.y); float2 _1987 = float2((_1725.world.x - frame_1_m0.pageRect.x) * frame_1_m0.pageRect.z, (_1725.world.z - frame_1_m0.pageRect.y) * frame_1_m0.pageRect.w); bool _1990 = _1725.look.w >= 0.0f; bool2 _1992 = bool2(_1990, _1990); float2 _1991 = float2(_1992.x ? _1967.x : _1987.x, _1992.y ? _1967.y : _1987.y); float4 _1994 = phosphorTex.Sample(mapSamp, _1991); float4 _1997 = maskTex.Sample(mapSamp, _1991); float _1998 = _1997.w; float4 _2000 = aoTex.Sample(mapSamp, _1991); float _2001 = _2000.x; float _2002 = inUnit(_1991); cov = (frame_1_m0.view.w > 0.5f) ? clamp(((_1918 - 0.5f) / max(fwidth(_1918), 9.9999997473787516355514526367188e-05f)) + 0.5f, 0.0f, 1.0f) : step(0.5f, _1918); cov = (_1725.params.y > 0.5f) ? cov : 1.0f; cov *= ((_1725.params.z > 0.5f) ? clamp((_1932 / max(fwidth(_1932), 9.9999999747524270787835121154785e-07f)) + 0.5f, 0.0f, 1.0f) : 1.0f); cov *= ((_1725.clip.w > 0.5f) ? clamp((_1940 / max(fwidth(_1940), 9.9999999747524270787835121154785e-07f)) + 0.5f, 0.0f, 1.0f) : 1.0f); if (cov <= 0.0f) { discard; } if (_1725.look.x > 0.5f) { _1811 = _1725.look.x < 1.5f; } else { _1811 = false; } if (_1725.look.x > 1.5f) { _1813 = _1725.look.x < 2.5f; } else { _1813 = false; } bool _2057 = _1725.look.x < 0.5f; if (_1725.look.x > 2.5f) { _1815 = _1725.look.x < 3.5f; } else { _1815 = false; } bool _2070 = _1725.params.w > 0.5f; bool3 _2072 = bool3(_2070, _2070, _2070); float3 _2071 = float3(_2072.x ? float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).x : float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f).x, _2072.y ? float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).y : float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f).y, _2072.z ? float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).z : float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f).z); float _2075 = max(_1913.w, 9.9999997473787516355514526367188e-05f); float3 _2078 = srgbToLinear(_1913.xyz / float3(_2075, _2075, _2075)); bool3 _2080 = bool3(_1916, _1916, _1916); art = float3(_2080.x ? _2078.x : _2071.x, _2080.y ? _2078.y : _2071.y, _2080.z ? _2078.z : _2071.z); if (frame_1_m0.view.x > 4.5f) { _1819 = frame_1_m0.view.x < 5.5f; } else { _1819 = false; } if (_1819) { art = float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f); } float3 _2095 = normalize(frame_1_m0.camPos.xyz - _1725.world); Ng = normalize(_1725.bent); float3 _2098 = Ng; bool _2100 = dot(_2098, _2095) >= 0.0f; float3 _2102 = -Ng; bool3 _2105 = bool3(_2100, _2100, _2100); Ng = float3(_2105.x ? Ng.x : _2102.x, _2105.y ? Ng.y : _2102.y, _2105.z ? Ng.z : _2102.z); float3 _2107 = lerp(float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f), art, float3(0.550000011920928955078125f, 0.550000011920928955078125f, 0.550000011920928955078125f)); bool _2109 = _1725.look.x < (-0.5f); bool3 _2111 = bool3(_2109, _2109, _2109); float3 _2110 = float3(_2111.x ? _2107.x : float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).x, _2111.y ? _2107.y : float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).y, _2111.z ? _2107.z : float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).z); if (!_2100) { _1823 = !_2057; } else { _1823 = true; } bool3 _2120 = bool3(_1823, _1823, _1823); albedo = float3(_2120.x ? art.x : _2110.x, _2120.y ? art.y : _2110.y, _2120.z ? art.z : _2110.z); if (frame_1_m0.view.x > 4.5f) { _1827 = frame_1_m0.view.x < 5.5f; } else { _1827 = false; } if (_1827) { albedo = float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f); } PaperSurf _2142 = paperSurface(_1948 + float2(_1725.look.z * 13.69999980926513671875f, _1725.look.z * 5.30000019073486328125f), _1953, frame_1_m0.paperA.w); float _2144 = lerp(1.0f, _2142.tone, frame_1_m0.paperA.x); albedo *= _2144; art *= _2144; N = Ng; if (_1811) { _1832 = abs(_1725.look.y) > 0.5f; } else { _1832 = false; } if (_1832) { _1834 = frame_1_m0.paperC.z > 0.0f; } else { _1834 = false; } if (_1834) { float _2175 = (_1725.look.y > 0.0f) ? (_1946.x - _1948.x) : _1948.x; crease = 1.0f - smoothstep(0.0f, 0.07500000298023223876953125f, _2175); N = normalize(N + (_1725.tangent.xyz * (((_1725.look.y * 0.550000011920928955078125f) * crease) * crease))); if (frame_1_m0.crease.x > 0.0f) { float _2195 = frame_1_m0.crease.y * 1.39999997615814208984375f; float _2196 = max(_2195, _1953); albedo *= (1.0f - (((0.37999999523162841796875f * frame_1_m0.crease.x) * (1.0f - smoothstep(0.0f, _2196, _2175))) * (_2195 / _2196))); } } float2 _2212 = _2142.slope * (frame_1_m0.paperA.y * frame_1_m0.paperA.x); N = normalize((N - (_1725.tangent.xyz * _2212.x)) - (_1725.bitangent.xyz * _2212.y)); if (_2057) { _1839 = frame_1_m0.crease.x > 0.0f; } else { _1839 = false; } if (_1839) { fd = sideDist(_1948, _1946, _1725.edges.x).x; if (_1725.edges.y > 0.5f) { _1843 = _1725.clip.w > 0.5f; } else { _1843 = false; } if (_1843) { fd = min(fd, abs(_1940)); } float _2251 = max(frame_1_m0.crease.y, _1953); albedo *= (1.0f - ((0.300000011920928955078125f * frame_1_m0.crease.x) * ((1.0f - smoothstep(0.0f, _2251, fd)) * (frame_1_m0.crease.y / _2251)))); float3 _2267 = sideDist(_1948, _1946, 15.0f - _1725.edges.x); e = _2267.x; o = _2267.yz; if (_1916) { float _2278 = (_1954.x * _1955.y) - (_1954.y * _1955.x); float _2292 = (abs(_2278) < 9.9999999600419720025001879548654e-13f) ? 9.9999999600419720025001879548654e-13f : _2278; float2 _2294 = float2((_1955.y * _1956) - (_1954.y * _1957), (_1954.x * _1957) - (_1955.x * _1956)) / float2(_2292, _2292); float _2295 = length(_2294); if (_2295 > 1.0f) { float _2300 = (_1918 - 0.5f) / _2295; if (_2300 < e) { e = _2300; o = (-_2294) / float2(_2295, _2295); } } } if (_1725.params.z > 0.5f) { float2 _2314 = _1725.q - float2(0.5f, 0.5f); float _2316 = _1932 * _1946.x; if (_2316 < e) { e = _2316; float _2322 = max(length(_2314), 9.9999999747524270787835121154785e-07f); o = _2314 / float2(_2322, _2322); } } float _2327 = max(frame_1_m0.crease.z, _1953); cutBand = ((1.0f - smoothstep(0.0f, _2327, max(e, 0.0f))) * (frame_1_m0.crease.z / _2327)) * frame_1_m0.crease.x; cutDist = max(e, 0.0f); cutOut = (_1725.tangent.xyz * o.x) + (_1725.bitangent.xyz * o.y); albedo *= (1.0f - (0.180000007152557373046875f * cutBand)); } float3 _2356 = float3(frame_1_m0.pages.x, frame_1_m0.pages.y, 0.0f); bool _2357 = _1725.look.y > 0.0f; bool3 _2359 = bool3(_2357, _2357, _2357); float3 _2358 = float3(_2359.x ? float3(0.0f, 1.0f, 0.0f).x : _2356.x, _2359.y ? float3(0.0f, 1.0f, 0.0f).y : _2356.y, _2359.z ? float3(0.0f, 1.0f, 0.0f).z : _2356.z); float _2362 = max(dot(_1725.world, _2358), 0.0f); if (_2057) { _1849 = abs(_1725.look.y) > 0.5f; } else { _1849 = false; } float3 _2378 = frame_1_m0.lightPos.xyz - _1725.world; float _2379 = dot(_2378, _2378); float3 _2382 = _2378 * rsqrt(max(_2379, 9.9999999392252902907785028219223e-09f)); if (frame_1_m0.shadowA.w > 0.5f) { _1852 = _1725.params.x > 0.5f; } else { _1852 = false; } if (_1852) { vis = shadowVisibility(frame_1_m0.lightViewProj, frame_1_m0.shadowA, frame_1_m0.shadowB, _1725.world + (Ng * (((dot(Ng, _2382) >= 0.0f) ? 1.0f : (-1.0f)) * frame_1_m0.shadowB.y)), _1725.position.xy, frame_1_m0.lightPos.xz); } float _2433 = max((dot(N, _2382) + frame_1_m0.paperA.z) / (1.0f + frame_1_m0.paperA.z), 0.0f); float _2435 = lerp(0.449999988079071044921875f, 1.4500000476837158203125f, _2142.formation); if (!_2057) { _1855 = _1815; } else { _1855 = true; } if (_1855) { trans = ((((art * art) * float3(1.0f, 0.7400000095367431640625f, 0.4600000083446502685546875f)) * _2435) * (max(-dot(Ng, _2382), 0.0f) * (1.0f + (pow(max(dot(_2095, -_2382), 0.0f), frame_1_m0.paperB.z) * frame_1_m0.paperB.y)))) * frame_1_m0.paperB.x; } if (_1811) { ao = lerp(1.0f, _2001, frame_1_m0.paperC.x * _2002) * (1.0f - ((frame_1_m0.paperC.z * crease) * crease)); float _2510 = (1.0f - smoothstep(0.0f, 0.039999999105930328369140625f, min((abs(_1725.look.y) > 0.5f) ? ((_1725.look.y > 0.0f) ? _1948.x : (_1946.x - _1948.x)) : min(_1948.x, _1946.x - _1948.x), min(_1948.y, _1946.y - _1948.y)) + (vnoise(_1948 * 38.0f) * 0.006000000052154064178466796875f))) * frame_1_m0.paperC.y; albedo *= lerp(float3(1.0f, 1.0f, 1.0f), float3(0.7799999713897705078125f, 0.660000026226043701171875f, 0.5f), float3(_2510, _2510, _2510)); } else { if (_1813) { float _2542 = ((1.0f - smoothstep(0.0f, 0.02199999988079071044921875f, min(min(_1948.x, _1946.x - _1948.x), min(_1948.y, _1946.y - _1948.y)) + (vnoise(_1948 * 45.0f) * 0.0040000001899898052215576171875f))) * frame_1_m0.paperC.y) * 0.800000011920928955078125f; albedo = lerp(albedo, (albedo * 0.550000011920928955078125f) + float3(0.0500000007450580596923828125f, 0.04500000178813934326171875f, 0.039999999105930328369140625f), float3(_2542, _2542, _2542)); } else { ao = 1.0f - ((frame_1_m0.paperB.w * exp((-_2362) / max(frame_1_m0.paperC.w, 9.9999997473787516355514526367188e-05f))) * (_1849 ? (1.0f - abs(dot(Ng, _2358))) : 0.0f)); } } visT = vis; if (_2057) { _1861 = frame_1_m0.fill.x > 0.0f; } else { _1861 = false; } if (_1861) { visT = lerp(frame_1_m0.fill.y, 1.0f, vis); float3 _2575 = Ng - (_2358 * dot(Ng, _2358)); float _2576 = length(_2575); float _2588 = (0.5f * (1.0f - dot(Ng, _2358))) * ((1.0f - (_2433 * vis)) * (1.0f - (_2433 * vis))); if (_2576 > 0.001000000047497451305389404296875f) { _1863 = _2588 > 0.001000000047497451305389404296875f; } else { _1863 = false; } if (_1863) { float _2603 = min((frame_1_m0.fill.z * _2362) + frame_1_m0.fill.w, 0.300000011920928955078125f); float3 _2609 = (_1725.world - (_2358 * _2362)) + (_2575 * (_2603 / _2576)); float3 _2613 = frame_1_m0.lightPos.xyz - _2609; float _2614 = dot(_2613, _2613); if (frame_1_m0.shadowA.w > 0.5f) { visQ = shadowVisibilityWide(frame_1_m0.lightViewProj, frame_1_m0.shadowA, frame_1_m0.shadowB, _2609 + (_2358 * frame_1_m0.shadowB.y), _1725.position.xy, 0.5f * _2603); } float _2658 = inUnit(float2((_2609.x - frame_1_m0.pageRect.x) * frame_1_m0.pageRect.z, (_2609.z - frame_1_m0.pageRect.y) * frame_1_m0.pageRect.w)); lift = lerp(frame_1_m0.table.xyz, float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f), float3(_2658, _2658, _2658)) * ((((shoulder(frame_1_m0.lightPos.w / (_2614 + frame_1_m0.lightColor.w), frame_1_m0.highlight.x, frame_1_m0.highlight.y) * (max(dot(_2358, _2613), 0.0f) * rsqrt(max(_2614, 9.9999999392252902907785028219223e-09f)))) * visQ) * _2588) * frame_1_m0.fill.x); } } float3 _2689 = frame_1_m0.lightColor.xyz * shoulder(frame_1_m0.lightPos.w / (_2379 + frame_1_m0.lightColor.w), frame_1_m0.highlight.x, frame_1_m0.highlight.y); float3 _2691 = _2689 * vis; color = ((((albedo * _2433) * lerp(1.0f, ao, 0.64999997615814208984375f)) * _2691) + (trans * (_2689 * visT))) + (((albedo * frame_1_m0.lightColor.xyz) * lift) * lerp(1.0f, ao, 0.64999997615814208984375f)); if (cutBand > 0.0f) { color += ((lerp(albedo, float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f) * _2144, float3(0.300000011920928955078125f, 0.300000011920928955078125f, 0.300000011920928955078125f)) * _2691) * (((frame_1_m0.crease.w * cutBand) * max(dot(cutOut, _2382), 0.0f)) * (0.3499999940395355224609375f + (0.64999997615814208984375f * (1.0f - abs(dot(Ng, _2095))))))); } float _2742 = luma(color); color *= (shoulder(_2742, frame_1_m0.highlight.z, frame_1_m0.highlight.w) / max(_2742, 9.9999999747524270787835121154785e-07f)); if (frame_1_m0.charmLight.w > 0.0f) { _1868 = _1725.edges.w <= 0.0f; } else { _1868 = false; } if (_1868) { float3 _2769 = frame_1_m0.charmLight.xyz - _1725.world; float _2770 = dot(_2769, _2769); color += (((albedo * frame_1_m0.charmColor.xyz) * ((frame_1_m0.charmLight.w * max((dot(N, _2769 * rsqrt(max(_2770, 9.9999999392252902907785028219223e-09f))) + 0.60000002384185791015625f) / 1.60000002384185791015625f, 0.0f)) / (_2770 + 0.014999999664723873138427734375f))) * lerp(1.0f, ao, 0.5f)); } if (!_2057) { _1871 = _1815; } else { _1871 = true; } if (_1871) { moonTrans = ((art * art) * _2435) * ((max(-dot(Ng, frame_1_m0.moonDir.xyz), 0.0f) * frame_1_m0.paperB.x) * 0.5f); } color += ((frame_1_m0.moonColor.xyz * ((1.0f - (frame_1_m0.moonColor.w * smoothstep(-0.449999988079071044921875f, 0.449999988079071044921875f, _1725.world.z))) * ao)) * ((albedo * max((dot(N, frame_1_m0.moonDir.xyz) + frame_1_m0.moonDir.w) / (1.0f + frame_1_m0.moonDir.w), 0.0f)) + moonTrans)); if (!_1811) { _1873 = _1813; } else { _1873 = true; } if (_1873) { _1875 = frame_1_m0.rim.w > 0.0f; } else { _1875 = false; } if (_1875) { _1877 = frame_1_m0.rim.z > 0.0f; } else { _1877 = false; } if (_1877) { float3 _2926 = color + (frame_1_m0.rim.xyz * ((1.60000002384185791015625f * (((((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1948.x)) * max(dot(-_1725.tangent.xyz, frame_1_m0.moonDir.xyz), 0.0f)) + ((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1946.x - _1948.x)) * max(dot(_1725.tangent.xyz, frame_1_m0.moonDir.xyz), 0.0f))) + ((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1948.y)) * max(dot(-_1725.bitangent.xyz, frame_1_m0.moonDir.xyz), 0.0f))) + ((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1946.y - _1948.y)) * max(dot(_1725.bitangent.xyz, frame_1_m0.moonDir.xyz), 0.0f)))) + (0.60000002384185791015625f * (pow(1.0f - min(abs(dot(Ng, _2095)), 1.0f), 3.0f) * (0.3499999940395355224609375f + (0.64999997615814208984375f * max(dot(Ng, frame_1_m0.moonDir.xyz), 0.0f))))))); color = _2926; } if (_1813) { _1879 = frame_1_m0.gilt.y > 0.0f; } else { _1879 = false; } if (_1879) { color += (frame_1_m0.gilt.xyz * smoothstep(0.0500000007450580596923828125f, 0.2199999988079071044921875f, dot(art, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)))); } float _2948 = max(frame_1_m0.bounce.w, 0.001000000047497451305389404296875f); color += ((albedo * (frame_1_m0.ambient.xyz + (frame_1_m0.bounce.xyz * (1.0f / (1.0f + (_2379 / (_2948 * _2948))))))) * ao); if (_2057) { _1881 = _1725.look.w < (-1.0f); } else { _1881 = false; } if (_1881) { _1883 = _1725.look.w > (-2.5f); } else { _1883 = false; } if (_1883) { float _2986 = dot(art, float3(0.3300000131130218505859375f, 0.3300000131130218505859375f, 0.3300000131130218505859375f)); color += ((lerp(art, float3(_2986, _2986, _2986), float3(0.3499999940395355224609375f, 0.3499999940395355224609375f, 0.3499999940395355224609375f)) * frame_1_m0.moonshine.xyz) * ((-1.0f) - _1725.look.w)); } if (_2057) { _1885 = _1725.look.w <= (-2.5f); } else { _1885 = false; } if (_1885) { float _3011 = (-3.0f) - _1725.look.w; thread = clamp(_3011, 0.0f, 1.0f); if (_3011 > 1.0f) { float2 _3019 = _1725.q - float2(0.5f, 0.5f); float _3027 = (clamp(_3011 - 1.0f, 0.0f, 1.0f) * 1.14999997615814208984375f) - frac((atan2(_3019.x, _3019.y) * 0.15915493667125701904296875f) + 1.0f); thread = smoothstep(-0.014999999664723873138427734375f, 0.0f, _3027) * (1.0f + (2.2000000476837158203125f * exp((-max(_3027, 0.0f)) * 16.0f))); } color += (frame_1_m0.glow.xyz * (((9.0f * thread) * (1.0f - smoothstep(0.0599999986588954925537109375f, 0.300000011920928955078125f, luma(art)))) * _1928)); } float _3056 = _1725.edges.w * frame_1_m0.charm.x; if (_2057) { _1889 = _3056 > 0.0f; } else { _1889 = false; } if (_1889) { float _3067 = 1.0f - smoothstep(0.0599999986588954925537109375f, 0.300000011920928955078125f, luma(art)); color += (frame_1_m0.charmColor.xyz * ((_3056 * (0.800000011920928955078125f + (0.20000000298023223876953125f * vnoise((_1948 * 9.0f) + float2(frame_1_m0.charmColor.w * 1.10000002384185791015625f, _1725.look.z * 17.0f))))) * (((frame_1_m0.charm.y * (((_3067 * _1928) * float(_2100)) * (0.75f + (0.25f * _3056)))) + (frame_1_m0.charm.z * (1.0f - smoothstep(0.0f, max(0.006000000052154064178466796875f, _1953 * 1.5f), cutDist)))) + (frame_1_m0.charm.w * (((lerp(0.5f, 1.2999999523162841796875f, _2142.formation) * (1.0f - (0.85000002384185791015625f * _3067))) * (_2100 ? 1.0f : 0.550000011920928955078125f)) * smoothstep(0.64999997615814208984375f, 1.5f, _3056)))))); } charge = _1994.x; if (frame_1_m0.glow.w > 0.5f) { charge = phosphorPacked(_1991); } if (_1811) { _1893 = frame_1_m0.view.y > 0.5f; } else { _1893 = false; } if (_1893) { float _3135 = lerp(0.800000011920928955078125f, 1.12000000476837158203125f, _2142.formation); color += (frame_1_m0.glow.xyz * (((charge * _1998) * _3135) * _2002)); color += (frame_1_m0.glow.xyz * ((((smoothstep(0.300000011920928955078125f, 0.75f, _1998) * frame_1_m0.moonshine.w) * _3135) * _2002) * 4.0f)); } if (_2057) { _1895 = frame_1_m0.view.y > 0.5f; } else { _1895 = false; } if (_1895) { float2 _3173 = _1725.world.xz + (Ng.xz * 0.0500000007450580596923828125f); float2 _3188 = float2((_3173.x - frame_1_m0.pageRect.x) * frame_1_m0.pageRect.z, (_3173.y - frame_1_m0.pageRect.y) * frame_1_m0.pageRect.w); c2 = phosphorTex.SampleLevel(mapSamp, _3188, 0.0f).x; if (frame_1_m0.glow.w > 0.5f) { c2 = phosphorPacked(_3188); } color += ((albedo * frame_1_m0.glow.xyz) * (((c2 * inUnit(_3188)) * exp((-_2362) / 0.0900000035762786865234375f)) * frame_1_m0.view.z)); } if (frame_1_m0.view.x > 0.5f) { _1899 = frame_1_m0.view.x < 1.5f; } else { _1899 = false; } if (_1899) { color = float3(charge * 0.3499999940395355224609375f, charge, charge * 0.5f) * (_1811 ? 1.0f : 0.0199999995529651641845703125f); } else { if (frame_1_m0.view.x > 1.5f) { _1901 = frame_1_m0.view.x < 2.5f; } else { _1901 = false; } if (_1901) { color = float3(_1998, _1998, _1998) * (_1811 ? 1.0f : 0.0199999995529651641845703125f); } else { if (frame_1_m0.view.x > 2.5f) { _1903 = frame_1_m0.view.x < 3.5f; } else { _1903 = false; } if (_1903) { float _3255 = _1811 ? _2001 : ao; color = float3(_3255, _3255, _3255); } else { if (frame_1_m0.view.x > 5.5f) { _1905 = frame_1_m0.view.x < 6.5f; } else { _1905 = false; } if (_1905) { color = float3(vis, vis, vis); } else { if (frame_1_m0.view.x > 7.5f) { _1907 = frame_1_m0.view.x < 8.5f; } else { _1907 = false; } if (_1907) { float _3276 = float(_2057); color = float3(_3276, _3276, _3276); } } } } } color = atmosphere(color, _1725.world, frame_1_m0.camPos.xyz, frame_1_m0.lightPos.xyz, frame_1_m0.haze, frame_1_m0.glowAir); _1753 = float4(encodeHdr(color, frame_1_m0.camPos.w) * cov, cov); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; uv = stage_input.uv; q = stage_input.q; normal = stage_input.normal; tangent = stage_input.tangent; bitangent = stage_input.bitangent; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; bent = stage_input.bent; frag_main(); SPIRV_Cross_Output stage_output; stage_output._1753 = _1753; return stage_output; }  `uÜ"æu[“hvN€Î4HSLT Frame` viewProjÿÿÿÿ lightViewProj@ÿÿÿÿlightPos€ÿÿÿÿ lightColor�ÿÿÿÿambient ÿÿÿÿshadowA°ÿÿÿÿcamPosÀÿÿÿÿpaperAÐÿÿÿÿpaperBàÿÿÿÿpaperCðÿÿÿÿglowÿÿÿÿpageRectÿÿÿÿview ÿÿÿÿmoonDir0ÿÿÿÿ moonColor@ÿÿÿÿbouncePÿÿÿÿshadowB`ÿÿÿÿpagespÿÿÿÿtable€ÿÿÿÿ highlight�ÿÿÿÿrim ÿÿÿÿ moonshine°ÿÿÿÿhazeÀÿÿÿÿglowAirÐÿÿÿÿcreaseàÿÿÿÿwindAðÿÿÿÿwindBÿÿÿÿcharmÿÿÿÿ charmColor ÿÿÿÿ charmLight0ÿÿÿÿfill@ÿÿÿÿgiltPÿÿÿÿ frame_block`frame shadowMapÿÿÿÿ phosphorTexÿÿÿÿmaskTexÿÿÿÿaoTexÿÿÿÿ albedoTexÿÿÿÿ shadowSampÿÿÿÿmapSampÿÿÿÿ albedoSampÿÿÿÿvs_mainvs_mainfs_mainfs_main¤'#— 2 GLSL.std.450åvs_main¾ÁÄÆÈÊÌÎÐÒÔÖØÚÜÝÞßàáâãä˜fs_main~€ƒ…‡‰‹��‘“•—˜H #H #H # H #0H #@H #PH #`H #pH #€H #�H # H#HHH#@HHH#€H#�H# H#°H#ÀH#ÐH#àH #ðH #H #H # H #0H#@H#PH#`H#pH#€H#�H# H#°H#ÀH#ÐH#àH#ðH#H#H# H#0H#@H#PGGH#H#H# H#(H#0H#@H#PH#`H#pH #€H #�H # H#H#H# G,"G,!G-H-#G/"G/!G1"G1!G3"G3!G5"G5!G6"G6!G7"G7!G8"G8!G9"G9!G¾GÁGÄGÆGÈGÊGÌGÎGÐGÒ GÔ GÖ GØGÚGÜGÝGÝGÞGÞGßGßGàGàGáGáGâGâGã GãGä G~ G€GƒG…G‡G‡G‰G‰G‹G‹G�G�G�G�G‘G‘G“ G“G• G—        "  + +      +€@+333@+ÛÉ@+€?+ÍÌL@+A+A+ ÍÌ @+!ô\?+"£’J?+#ôý$?,$!"#+%’Ë/?+&â?+'vOÞ>,(%&'+)š™™>+*ìQ8>++\�Â>- .-;., 0;0/ 2;21 4;43;45;46;27;48;29!=+>,?>>>+@‘ƒž=+A®Ga=,BAAA+Cn§r?+Dš™@,EDDD+Fæ®%=,GFFFN +TR¸NA+UUUÕ>,VUUU+W= ‡?+X.M;,YXXX!e+fгY>+gY7?+h˜Ý“=,ifgh!p+q?+r€>,s+t«ªª>,uttt!‹+Œ f+�_ón<,Ž��,� ‘.’ —+˜+›!Â+À,ÄÃÃ+Å+Æ€3!Ò !â +ãCq‰=+ä�E¿;, åãä+æ‚îSB+ï@@, ðïï+ñ@+ò+ó,ôòó,õóò,öòò+þÏ, ÿþþ+ÿÿÿN, ! +À@, +K…ë?+L…ë@+MÍ̈A+NÍÌl@, OMN+Páz”>+Qq=‚@+Rš™©@+S33ïA, TRS+U)\> W.X!p+q½7†5! ‹ +Œ¬Å'7!ª +«·Ñ8) ¬+­ÍÌL?+®ÛI?+¯333?+°¦›D<+± ×£<+²ìQ¸=+³ff&@+´ff¦?+µš™Y? · . ¸. º. ¼.¾!\!n +oX94<+p¦›Ä;!‚+ƒÀ?! ˜ , ™qq+š @+›+œ¦›D;+�o<+ž)\=+ŸffF@+ fff?, ¡Ÿ +¢33ã@+£33S@, ¤¢£, ¥ +¦š™¿+§ÍÌ ?+¨ffæ>.« ®Ü ,ý˜˜+þÿÿÿÿ,ÿþþ!C  +DpA+EzD+F+G¿+HÿæÛ.+MÿÿO! •   +–33³?+—š™é@+˜ð@+™ @+šff&?+›33ó?+œPA+�33³>+žš™?, Ÿž­+ 6�'B+¡0A!ó    , ôp>, õ>p!   +ú'q¿+àQ̾, +îr?+×D¿, +˜ãÀ½+kìm¿, +!„ž°>+" w–>, #!"+$~wj¿+%ˆYê>, &$%+'ÔÀP¿+(Pa¿, )'(+*$ûþ++˜´�>, ,*++-`�y?+.ì¨A?, /-.+0xïâ>+1,¡y¿, 201+3• ?+4J�ò¾, 534+6ª‡¾+7~Ö¾, 867+9â¾J?+:È{C>, ;9:+<˜±w¾+=¨??, ><=+?ÔhP¿+@Šj?, A?@+B0£L>+ChRI?, DBC+E˜H>+F`d¾, GEF,H #&),/258;>ADG+Ioƒ:+J+K€A M ‘ +’¤! Ä  +Ç}?µ>, ÈÇ>+É‹lç¾+ÊÏ÷Ó>, ËÉÊ+ÌßO�=+Í^ºI¿, ÎÌÍ+Ïü©?+жó=?, ÑÏÐ,ÒÈËÎÑ, Óšï+Ô Ö+õ!5 +6€À!P +Qà@+Rffö@, SŸR+T˜A+U33;A+Vff†@, WUV+XC+YªC, Z—›+[ff@+\ffA, ][\+^Gh?+__Ø>, `^_+a_ؾ, ba^,c`b+d ¯¾+e.�p?, fde+g.�p¿, hgd,ifh+j-²]¿, kqj+l-²]?, mlq,nkm+o¾B+pŒC, qop+røA+sˆA, trs+u,B, všu+wš™™?+xìQ¸>+y�Âu>+zÍÌÌ=+{ ×£=+|X9´<+}�Âõ< .€!á +âC+ã€C+䀀7, õ>>, öqq,÷òò,øóó, òò,òò,%òò,1òò!A. C!Y ,ZE>>* [+\€¿ ^. `. b. d. f ¿ ;¿¾  ;ÂÁ;ÂÄ;ÂÆ;ÂÈ;ÂÊ;ÂÌ;ÂÎ;ÂÐ;ÂÒ;ÂÔ × ;×Ö Ù;ÙØ Û ;ÛÚ;ÛÜ;×Ý;×Þ;×ß;×à;×á;×â;×ã;Ùä!æ ç.ê.ì. î ð.ñ    + ++ 4 5 +S+[+^+c +f +i m;Â~ �;�€;¿ƒ;¿…;‡;‰;‹;Â�;Â�;‘;“;�•;×—, ¢qq+£`@+¤�@+¥°@,¦žžž+§33[A+¨š™™=+©̼Œ+,ª>>+«wÌ+2+¬š™¹?+­¤p=?+®…ë>,¯­®+°B+± ×#=+²®G?+³Ãõ(?,´²³q+µ4B+¶oƒ;+·ÍÌL=+¸ìQ8=,¹·¸±+ºÍÌÌ?+»�Âu<+¼ffæ¾+½®Ga>+¾ À+¿Ãõ¨>,À¿¿¿+Á@À+ƒù">+Ã33“?+Ä�Âu¼+Å�Âu=+Æ@?+ÇÍÌŒ?+ÈÍÌL>+É)\�?+ÊÐ@+ËA.Í. Ï. Ñ. Ó.Õ. ×.Ù. Û.Ý. ß.á. ä. æ. ë.í. ï.ñ. ó. õ. ø. û.þ. . .. . . . . . . . . .. .. !. #.%. '. ). +. -. /2+‘ +@ +ä +³ + + +s +� +Ÿ +¿ +Ü +% +a +Ÿ +ˆ +‹ 6<=7;ø:ùHøH I(;?ŽJI@�KIBŽLKC MLE¼NOIG©POJMþP86S=7RøQùZøZ [(R?Ž\[T ][VŽ^]Wƒ_^B¼N`[Y©a`\_þa86de7cøbùjøj”kciþk86op7m7nølùvøvº wnq÷xúwyxøyŽzmr {+z?s |{uþ|øxþm86€p7~7ø}ù�ø�º ‚q÷ƒú‚„ƒø„……~~…†…~އ†þ‡øƒþ~86Š‹7‰øˆ;‘�’ù“ø“P•ŒŒ„”‰•€–”Ž>�–A—™�˜=š™A—œ�›=�œ„ž�Œ€ŸšžA— �˜> ŸA—¡�›=¢¡A—£�˜=¤£„¥¤Œ€¦¢¥A—§�›>§¦=¨�=©�ª©�Æ«¨ª>�«A—¬�˜=­¬A—®�›=¯®„°¯Œ€±­°A—²�˜>²±A—³�›=´³A—µ�˜=¶µ„·¶Œ€¸´·A—¹�›>¹¸=º�=»�¼»�ƽº¼>�½=¾�þ¾86ÁÂ7Àø¿ùÇøÇ€ÈÀÄ|ÉÈ9ÊŠÉQËÊÂÌËÅpÍÌ…ÎÍÆþÎ86 ÑÒ7ÐøÏùÓøÓ€ÔÐÄ|ÕÔ9ÖŠÕQ×ÖÂØ×ÅpÙØQÚÖÂÛÚÅpÜÛP ÝÙÜŽ ÞÝÆþÞ86áâ7 àøßùçøç”èàå é è…êæé ë êþë86îâ7 íøìù÷ø÷  øíƒ ùíø… úùùŽ ûùñƒ üðû… ýúü  +øÿn9Á€ô9Á€õ9Á€ ö9 Á Q ý  . Q ý .  Qý . …ñƒþ867 øùø  ƒ … Ž ñƒ ð… Ž ƒ !… " !  #+ÿn$#9%Á$€&$ô9'Á&€($õ9)Á(€*$ö9+Á*ƒ,'%ƒ-)%ƒ.%'ƒ/.)�0/+Q1…2,1�3%2Q4…5-4�635Q7…807Q9…:89�;6:Q<…=0<�>,=Q?…@0?�A-@P B>A… C"B…D;ñƒEDŽ FCñPGEFþG86Jâ7 IøH;WVXùYøY9ZîI…[ZK>V[=\VŽ ]IL� ^]O9_î^…`_P�a\`>Va=bVŽ cIQ� dcT9eîd…feU�gbf>Vg=hVþh86op7j7k7l7m7nøiùrørƒsmj”tsk”uss…vttƒwuv x(w> y(nq�zxy {zƒ|ltˆ}|{ ~}ˆt{ €��~€ˆ‚�{þ‚86Š‹7„7…7†7‡7 ˆ7 ‰øƒù�ø�ƒŽ…† �BŽ �(�ŒP‘���ˆ’Ž‘Q“ˆ”“ƒ•� –(•>…—”– ˜—Q™‰9 šo†’�‡™Ž›„˜Oœˆˆƒ�˜Žžœ��Ÿ›žO ‰‰Ž¡ š�¢Ÿ¡þ¢86©ª7 ¤7 ¥7 ¦7§7¨ø£;·¹º;W½¾;·¶¸;·»¼ù¿ø¿QÀ¥QÁ¥QÂ¥QÃ¥ƒÄÁÀ…ÅÄq�ÆÀÅ Ç(§«QȤƒÉÀǸ ÊÈɨ ËÊ÷ÌúËÍÎøÍQϤ�ÐÁǺ ÑÏÐ>¶ÑùÌøÎ>¶¬ùÌøÌ= Ò¶¨ ÓÒ÷ÔúÓÕÖøÕQפƒØÂǸ Ùר>¹ÙùÔøÖ>¹¬ùÔøÔ= Ú¹¨ ÛÚ÷ÜúÛÝÞøÝQߤ�àÃÅ�áàǺ âßá>»âùÜøÞ>»¬ùÜøÜ= ã»÷äúãåäøåþ>øäæÇQ礃èçÀQ餃êÁé ë%èê ì1æÇëíÇQïî ð1íÇï…ñìðP òÆÃƒ ó¤ò ôBóƒõÅôöÇ ÷1öÇõQø¤¸ ùøÃ©úù÷…ûñúQü¦ƒýüÇ�þüÇQÿ¤ƒÿÆ  1ýþƒ>½Q¤ƒÂQ¦ˆ�q   ƒ  q   Q ¦…   =½…ü­ƒÇ…ü­�Ç 1 ƒQ¤ 0Ã… (>½Q¤ƒÃQ¤ƒÆ ˆ®�q   ƒ! q "!…#"®P $ÆÃƒ %¤$ &B%…'#&=(½…)ü¯ƒ*)Ç…+ü¯�,+Ç -1*,'ƒ.-Q/¤ 00Ã/…1.0 2((1>½2º 3¨q÷4ú354ø5 61±²Çƒ76Ž 8¤³Q98Q:8�;9:…<;q�=<q > =ƒ?>q @?ˆA@´QB8QC8ƒDBC…EDq�FEq G FƒHGq IHˆJI´=K½ƒL°Ç�M°Ç N%AJ O1LMNƒPO…QP7…RQµ S(KR>½Sù4ø4=T½ƒUT…VûUþV86[\7X7Y7ZøWù]ø]Q^Xƒ_^ZQ`Y a(`«ˆb_aO cXXO dYYŽ edbƒ fcePgfbþg86mn7i7j7 k7 løhùqøqQriQsl¸ trs÷uútvuøvþ>øuQwl9x[ijwO yxxQzx…{zo�|p{9 }©ykl|þ}86�‚77€ø~ù„ø„……€€ƒ†…�‡……ˆñ€…‰ˆƒŠ‡‰ ‹(Š« Œ‹ƒˆ�†Œþ�86—˜7�7�7‘7’7 “7 ”7•7–øŽ;Wª«;®­ó;W©>;W¬>;‘ÿù¯ø¯Q°”Q±’ ²(±«ˆ³²O ´��Qµ�ƒ¶µ°…·¶³O ¸’’Ž ¹¸·ƒ º´¹O »��Q¼�…½¼³O ¾’’Ž ¿¾½ƒ À»¿>ª‘QÁ�¸ ÂÁ>÷ÃúÂÄÃøÄ=ŪQÆ�ƒÇ°ÆQÈ�ˆÉÇÈ Ê%ÅÉ>ªÊùÃøÃQË�¸ ÌË>÷ÍúÌÎÍøÎ=ϪQДQÑ�ƒÒÐÑQÓ�ˆÔÒÓ Õ%ÏÔ>ªÕùÍøÍQÖ“QדP ØÖ×QÙ“P ÚÙ–  ÛÀ¸ÜÝÛ™© ÞÝ™Àˆ ßÞƒ àØº… áà߃ âÚº… ãâß  ä%áã  å(áã=æ©QçäQèä é(çè ê(æé>©ê=ëªQìåQíå î%ìí ï%ëî>ªï=ðª=ñ©¼ òðñ÷óúòôóøôþ>øó=õª=ö©ƒ÷õöˆø÷šùùøùöúüùø=ªÜý› ÷úúøQª ˜©›˜P ›‚  > ùûøû= ­±  ›÷ ú  øùúø ùø=©=­o�•…ø�Ž À� ºQ�Q�…�ƒ°…³=¬… œ�!� 9 "©“”!>#…$#ž %$…&"%�'&>¬'ùøùüøü=(­€)(ò>­)ùùøú=*©=+ª�,*+…-,qŽ .À-� /º.… 0/¡� 10¤92î1… 3/¥94î3…5q4�625 71¦­6…8§7�9¨8=:¬…;:ø…<;9þ<86BC7 >7 ?7@7 Aø=;WIEùJøJ K+@>D�LKq N+L>MmONÇPO›« QP˜÷RúQSRøS=TIQU> VU W%TV>IWùRøRÇXOF« YX˜÷ZúY[Zø[=\IQ]?Q^>ƒ_]^ `_ a%\`>IaùZøZÇbO« cb˜÷dúcedøe=fIQg> hg i%fh>IiùdødÇjOÅ« kj˜÷lúkmløm=nIQo?Qp>ƒqop rq s%nr>IsùlølQtAº utG÷vúuwvøwO xAA… yx?O zAA… {z?ƒ |{yƒ }>y”~}|”|| €(Hˆ�~€ ‚+�>=ƒIŽ „|‚� …y„ƒ †>… ‡B† ˆ%ƒ‡>Iˆùvøv=‰Iþ‰86”•7‹7Œ7 �7 Ž7�7 �7‘7 ’7 “øŠù¢ø¢9£B�Ž��Q¤“…¥£¤ ¦%¥–Q§’O ¨““O ©‹‹”ª©¨…«ª…¬§ ƒ­«¬…®‘—P ¯­®9°î¯…±)°�²¯±Q³’…´³²O µŒŒ”¶µ¨…·§˜…¸‘�¹·¸…ºª™�»¹º ¼ »…½š¼…¾§›…¿‘œ�À¾¿…ÁªïP ÂÀÁ9ÃîÂ…Ä�Ã�ŽÄQÆ’…ÇÆ´…ȧ¶…ɨÅ�ÊÈÉ…ËÇÊ”Ì�Ÿ…ÍÌ …ΧQÏ“…ÐÎσÑÍÐ…Ò‘¡�ÓÑÒQÔ’…ÕÔ´ Ö Ó…×Õօا£…Ù‘š�ÚØÙ…ÛªšP ÜÚÛ9ÝîÜ…Þ¨Ý�ß§Þ…à×߅ᦦ…â¦à�ãËâ…äáãþä86 òó7æ7ç7è7é7 ê7 ë7ì7 í7î7ï7 ð7 ñøåùöøö9 ÷”æçêëìíîðñ…ø÷ïŽùèp�úæù� ûêô9 ü”úçûëìíîðñ…ýüïŽþép�ÿæþ� êõ9 ”ÿçëìíîðñ…ïƒýøˆpŽèƒçƒøˆpŽ éƒ    E P  øþ 867 7 7 77 7 ø ;MLH;WN>;®Oó;‘ÿ=/=1ùPøPP Q‘ RQOSRRQTRPUTTTˆVSUQWV…XWq�YXqQZV…[Zqƒ\q[P ]Y\Q^VQ_ƒ`^_9aá…ba cb d bO eƒ fe gBfQhƒigh j(i>…kjQl m(lIˆnkm�on p%oO qQrQs…tsg�ut…vruQwº xw>©yxpvŽ zqyù{ø{ö|~ù€ø€=�ªÜ‚ý�› ƒ‚÷„úƒ|„ø„Q…�ª †…˜©‡†›˜Pˆ‡›‚‰�ˆ>‰ù}ø}=ŠO± ‹ŠJ÷Œú‹Œ�ø�ù|øŒùŽøŽ=�O “&�’A‘”L“= •”Q–•…—–cQ˜•…™˜dƒš—™Q›•…œ›dQ�•…ž�c�ŸœžP  šŸ… ¡ z=¢N� £]¡V¤¥Z¦¥£`>�§¢¦>N§ù�ø�ù~ø~=¨O€©¨ò>O©ù{ø|=ªNˆ«ªK>N«Q¬] ­0>¬Q®] ¯0®…°­¯Q±] ²0>±…³°²Q´] µ0´…¶³µQ·R ¸0>·…¹¶¸=ºN ».º¹þ»86ÃÄ7 ½7 ¾7 ¿7À7 Á7Âø¼;ÖÕÒ;W×>;®Øó;‘ãÿ=Å/=Æ1ùÙøÙ� ÚÁÓ9ÛáÚ…ÜÛ ÝÜ Þ Üùßøßöàâùäøä=åãªÜæýå› çæ÷èúçàèøèQéåª ê阩ëꛘPì뛂íåì>ãíùáøá=îØ± ïîÔ÷ðúïðñøñùàøðùòøò=ôØ ö&ôõA‘÷Õö= ø÷Qùø…úùÝQûø…üûÞƒýúüQþø…ÿþÞQø…Ý�ÿP ýŽ ÂQQP>�ÀP ‘ ½ O   Q  P    ˆ  Q…q�qQ…qƒqP Q 0>Q 0…Q 0>…Q 0… Q!  "0>!…# "=$×Q%Q&¿ƒ'%&V¤(ÅÆZ)('> *.)#�+$*>×+ùóøóùâøâ=,Ø€-,ò>Ø-ùßøà=.×…/.rþ/864571727 3ø0ù7ø7Q81 98ƒ:9…;::…<;:…=<:O >11…?6<Q@1 A@…B?AŽ C>BTD2… EC3QF3P GFFˆ HEG‘ IDHPJ=IþJ86OP7 L7M7NøK;~€ù�ø�…‚QNŽ ƒL‚� „ƒS9…î„…†TNŽ ‡L†� ˆ‡W9‰îˆ…ŠXN…‹YNŽ ŒLŠ� �ŒZ9Ž�Ž �L‹� ��]9‘�…’MŠ…“’´ƒ”ƒ“ •+”>…–M‹…—–´ƒ˜ƒ— ™+˜>Ž šqN‘ ›cL… œ›š9�œ9ž4�cš‘ ŸiL…  Ÿš� ¡ t9¢¡9£4¢iš‘ ¤nL… ¥¤š� ¦¥v9§¦9¨4§nšQ©š…ªM©…«ªwƒ¬ƒ« ­+¬>Q®žQ¯£�°®¯Q±¨�²°±…³²­…´x…�µq´…¶y‰�·µ¶…¸z³�¹·¸ º+¹>AW»~F>»º…¼x……½y‰�¾¼½…¿{¾�À¿QÁŽ…Â|Á…Õ�ÄÀÃQÅ‘…Æ°Å…ÇÆ™�ÈÄǃɳ)…Ê}É�ËÈÊAWÌ~›>ÌËO ÍŽŽ…Î •Ž ÏÍÎO Б‘…Ѩ™Ž ÒÐÑ� ÓÏÒO ÔžžO Õ££� ÖÔÕO ר¨� ØÖ×…Ù*­Ž ÚØÙ� ÛÓÚA‘Ü~˜>ÜÛ=Ý~þÝ86àá7 ßøÞùåøåQæß…çæâ�èçq éè…êéãQëß…ìëâ�íìq îí�ïêî…ðïäþð86óâ7 òøñ=ô3ùùøùgúô˜p ûú  ü+òõ… ýüûƒ þýö  ÿþ  +ÿÿn  þƒ þ  +ûÿn‚÷ *ø 'j ô‚  ò  &ó g ô ‚   &_ ô 9à€ô *ø 'jô‚ò &ógô‚ &_ ô9à€õ  *ø ' j!ô‚"!ò #&ó"g$ô#‚&$% '&&_ (ô'#9)à(€*ö ,**ø +',j-ô‚.-ò /&ó.g0ô/‚201 3&+2_ 4ô3/95à4Q6 7.6Q8 9.)58Q: ;.79:þ;86@A7=7>7?ø<;·BCùDøD¼ E=>¨ FE÷GúFHIøH¼ J?>>BJùGøI>B¬ùGøG= KB÷LúKMLøMþ=øLƒN=>ˆON?�PO QP…R?Q�S>RþS86XY7 U7 V7WøT;·ef;·_`;·cd;^]Z;·abùgøg h+W>D�ihq j+i>MmkjÇlk›« ml˜÷númopøoQqUAWr]˜=sr¸ tqs>_tùnøp>_[ùnøn= u_÷vúuwvøwQxUPyx\>>]yùvøvÇzkF« {z˜÷|ú{}~ø}QVQ€Uƒ�€AW‚]˜=ƒ‚¸ „�ƒ>a„ù|ø~>a[ù|ø|= …a÷†ú…‡†ø‡QˆVQ‰UƒŠˆ‰P‹Š>>]‹ù†ø†ÇŒk« �Œ˜÷Žú���ø�Q‘UAW’]˜=“’¸ ”‘“>c”ùŽø�>c[ùŽøŽ= •c÷–ú•—–ø—Q˜UP™˜>\>]™ù–ø–ÇškÅ« ›š˜÷œú›�žø�QŸVQ Uƒ¡Ÿ AW¢]˜=£¢¸ ¤¡£>e¤ùœøž>e[ùœøœ= ¥e÷¦ú¥§¦ø§Q¨VQ©Uƒª¨©P«ª>>]«ù¦ø¦=¬]þ¬86¯â7 ®ø­ù°ø°Q±® ²0>±Q³® ´0³…µ²´Q¶® ·0>¶…¸µ·Q¹® º0¹…»¸ºþ»86åæø¼;^ëì;ðïñ;^éê;·íî= À¾= ÃÁ= ÅÄ= ÇÆ= ÉÈ= ËÊ= ÍÌ= ÏÎ= ÑÐ= ÓÒ= ÕÔP ½ÀÃÅÇÉËÍÏÑÓÕAçè,˜ùòøòQ ó½Q ô½Q õ½Q ö½P ÷óôõöQ ø½P ùø>‘ ú÷ùOûúú>éûQ ü½Oýüü þBýQ ÿ½Oÿÿ BQ ½O E>ëQ ½ Qº >÷ú  ø A è õ=º >>íùø >í[ùø= í÷úøP þ=éQ ½O (þqPˆQ ½O (qPˆQ ½… ! Q "½ Q#"Q $½ Q %½Q&%Q '½ Q('A )è = *)A ,è+= -,9 .ò!#$&(*-=/éQ0.Ž10�2/1>é2O3..>ë3ùøA56è˜= 76=8éP 98‘ :79A4;ï˜>;:=<éA^=ï›>=<Q >½O ?>>Q @½Q A½O BAA… C@B� D?CA‘EïF>EDQ F½A‘Gïõ>GFQ H½OIHH JEIP KJ>A4Lï>LKQ M½ONMM O(þqPPOOOˆQNPP RQþA4TïS>TRQ U½OVUU W(qPXWWWˆYVXP ZYA4\ï[>\ZQ ]½A4_ï^>_]Q `½A4aïÅ>a`Q b½A4dïc>dbQ e½ A4gïf>ge=hëA^jïi>jh=kïQ lk>ÖlAmnÖ›=onpo>npQqk>ØqQ rk>ÚrQ sk>ÜsQ tk>ÝtQ uk>ÞuQ vk>ßvQ wk>àwQ xk>áxQ yk >âyQ zk >ãzQ{k >ä{ý86˜æø|;·./;·();·"#;·;·;·;·  ;^;·;Wü;·÷ø;‘òó;Wìí;^è?;·ãä;·Þß;^ØÙ;·ÒÓ;WÌÍ;·*+;W$%;W;·;·;·  ;·;·;Wýþ;^ù?;·ôõ;·îï;WéE;·åæ;^àá;·ÚÛ;^ÔÕ;·ÎÏ;·,-;·&';· !;W;·;·;^ ?;W;^ÿ?;·úû;Wö;Wðñ;·êë;Wç>;Wâ>;^ÜÝ;·Ö×;·ÐÑ= ~=‚€= „ƒ= †…= ˆ‡= Љ= Œ‹= Ž�= ��= ’‘= ”“=–•P}‚„†ˆŠŒŽ�’”–Aç™,˜=š/=›1=œ3=�5=ž6=Ÿ7= 8=¡9ù0ø0Q 1}V23 ¡W 431Q 5}Q65¸ 76>Q84©978Ñ:9O;44Q<4 =(<«P>===ˆ?;>9@d?ÑA@…BAQ C+B>Q D}ƒ ED¢ FBEƒGqFÑHGQ I}O JIIQ K}”LJKQ M}QNM�OLNÑPOQ Q}QRQQ S}QTSP URTQ V}… WVUÑ XWQYXQZX [(YZ \([qÏ ]WÐ ^WÏ_9Ð`9Q a} QbaQ c}Qdc…eqd�fbeQ g}QhgƒihP jfiQk}QlkA m™i˜=nmƒolnA p™iF=qp…roqQs}QtsA u™i›=vuƒwtvA x™iõ=yx…zwyP {rzQ |} Q}|¾ ~}>PÜ€~~© €j{V2�œŸW ‚�Qƒ‚V2„�ŸW …„Q†…V2‡žŸW ˆ‡Q‰ˆ9Нƒ‹9q Œ(:«ˆ�‹Œ�Ž�q �+Ž> �0q9A ’™‘õ=“’º ”“q©•”��>Ì•=–ÌQ —}Q˜—º ™˜q©š™–>Ìš=›Ì œ(Hqˆ�Gœ�ž�q Ÿ+ž>Q  }Q¡ º ¢¡q©£¢Ÿ…¤›£>̤=¥Ì ¦(Pqˆ§O¦�¨§q ©+¨>Q ª}Q«ªº ¬«q©­¬©…®¥­>Ì®=¯Ì¼ °¯>÷±ú°²±ø²üø±Q ³} Q´³º µ´q÷¶úµ·¸ø·¸ ¹´ƒ>ιù¶ø¸>Î[ù¶ø¶= ºÎº »´ƒ÷¼ú»½¾ø½¸ ¿´™>пù¼ø¾>Ð[ù¼ø¼= Àи Á´qº ´™÷ÃúÂÄŸď Æ´£>ÒÆùÃøÅ>Ò[ùÃøÃ= ÇÒQ È} QÉÈA Ê™‘˜=ËÊQ Ì}QÍ̺ ÎÍqPNÐÎÎΩÏÐ($OÑ44QÒ4 Ó(Ò«PÔÓÓÓˆÕÑÔ9Ö<ÕPNØ777©×ØÖÏ>Ô׺ Ùˤ÷ÚúÙÛÜøÛ¸ ÝË¥>ÖÝùÚøÜ>Ö[ùÚøÚ= ÞÖ÷ßúÞàßøà>Ô¦ùßøßA á™[= âáOãââQä}ƒåãä æEåQç} èEç>Øè=騔êéæ¾ ëê>=ìØíì=îØPNðëëë©ïðîí>Øï=ñÔPó§§§ ò.(ñó¸ ô´GPNöôôô©õöò(=÷Ô¨ øë÷ùúøúûøú¨ üÁ>Úüùùøû>Ú¬ùùøù= ýÚPNÿýýý©þÿ÷õ>Üþº ˤ÷ ú   ø ¸  Ë¥>Þ ù ø >Þ[ù ø =  Þ÷ ú   ø >ܦù ø A  ™^˜=  Q } Q … §Q } Q …  RP   �  W A  ™^õ=  9 O \ Q    . = ÜŽ   >Ü = ÔŽ   >Ô Q  }O   Q  }O   = Ø>à ÷ úº! " ø! # ɺ $ # q>ã$ ù ø" >ã[ù ø = % ã÷& ú% ' ( ø' A ) ™cF=* ) º + * >>å+ ù& ø( >å[ù& ø& = , å÷- ú, . - ø. Q/ WQ0 UQ1 Wƒ2 0 1 º 3 É>©4 3 2 / 5 1>¨4 ƒ6 5 >â6 =7 à…8 ɧ=9 â…: 8 9 =; â…< : ; Ž=  < �> 7 = ? E> >à? A A ™@ ˜=B A º C B >÷D úC E D øE A F ™@ ›=G F …H G – I (H \=J ÜA K ™@ ˜=L K …M +L N 1>I 4 ƒO N …P M O ˆQ H I …R P Q ƒS R ŽT J S >ÜT ùD øD ù- ø- Q U  A V ™^›=W V …X W Ž Y U X =Z àQ[ Y Ž\  [ ƒ] Z \ Q^ Y Ž_  ^ ƒ` ] _ a E` >àa ÷b úÁc d øc A e ™@ ˜=f e º g f >>êg ùb ød >ê[ùb øb = h ê÷i úh j i øj Q k } Ql k 9m XWUl Qn m >ìn Q o } Qp o º q p q÷r úq s t øs Q u }Qv u º w v q>îw ùr øt >î[ùr ør = x î÷y úx z y øz ={ ì | O } %{ | >ì} ùy øy A ~ ™@ ›= ~ € ( \=� ì ‚ 1>€ � ƒƒ ‚ ˆ„  € …… ƒ „ =† ÜA ‡ ™@ ˜=ˆ ‡ …‰ )ˆ …Š ‰ … ƒ‹ Š ŽŒ † ‹ >ÜŒ Q � } QŽ � ƒ� DŽ 9� XWU� Q‘ � >ð‘ O ’ � � >ò’ ÷“ ú7” “ ø” Q• ]Q– ^…— • – Q˜ ]Q™ ^…š ˜ ™ ƒ› — š Qœ ^…� œ _Qž ]…Ÿ ž `ƒ  � Ÿ Q¡ ]…¢ ¡ `Q£ ^…¤ £ _ƒ¥ ¢ ¤ P ¦   ¥ § › ¸ ¨ § ©©© ¨ ©› P ª © © ˆ « ¦ ª ¬ B« º ­ ¬ ÷® ú­ ¯ ® ø¯ ƒ° 9qˆ± ° ¬ =² 𸠳 ± ² ÷´ ú³ µ ´ øµ >ð±  ¶ « P · ¬ ¬ ˆ ¸ ¶ · >ò¸ ù´ ø´ ù® ø® ù“ ø“ Q ¹ }Qº ¹ º » º q÷¼ ú» ½ ¼ ø½ Q ¾ }ƒ ¿ ¾ ¢QÀ U…Á GÀ = ð¸ à Á  ÷Ä úÃ Å Ä øÅ >ðÁ Æ B¿ Ç (Æ qP È Ç Ç ˆ É ¿ È >òÉ ùÄ øÄ ù¼ ø¼ A Ê ™@ F=Ë Ê Ì (Ë \=Í ð Î (Í > Ï 1>Ì Î ƒÐ Ï ˆÑ Ë Ì …Ò Ð Ñ A Ó ™@ ˜=Ô Ó …Õ Ò Ô >çÕ =Ö ð × (Ö >>é× AWØ ò˜=Ù Ø ŽÚ  Ù AWÛ ò›=Ü Û ŽÝ  Ü �Þ Ú Ý >èÞ =ß Ü=à ç…á *à ƒâ á Žã ß â >Üã ùi øi A å ™ä ˜=æ å A ç ™ä ›=è ç Pé æ è >º ê É>PNì ê ê ê ©ë ì ªé Qí }”î í ë ï (î >=ð Ø”ñ ð ë ò ñ ƒó ò ÷ô úÁõ ö øõ ÷ ɺ ø ÷ q>ôø ùô øö >ô[ùô øô = ù ô©ú ù ó >A û ™F= ü û Oý ü ü Qþ }ƒÿ ý þ ” ÿ ÿ  ( «    Ž ÿ  A  ™Fõ=  A  ™õõ=  �  ˆ   A  ™Sõ= º q÷ ú   ø Q  }Q  º   q>÷ ù ø >÷[ù ø =  ÷÷ ú   ø = Ø= Ø”   ¾   >©  \A  ™›=  …   Ž   A5 ™›=  A ! ™S= " ! A # ™= $ # Q% }�& %  Q ' }O ( ' ' A ) ™F= * ) O + * * 9 ,  " $ & ( + >ö, ù ø A - ™^F=. - =/ à”0 /  �1 0 . �2 . ˆ3 1 2 4 (3 >Q5   6 .¨¬5 ¨ 7 Á÷8 ú7 9 : ø9 >úÇù8 ø: >ú¬ù8 ø8 = ; ú÷< ú; = < ø= => Ø”? >  @ ? A (@ >B  ”C æB D (C >A E ™ÅF=F E G D F A H ™Å›=I H …J G I =K Ô=L Ô…M K L …N M ¯ŽO N 6 �P J …Q A P ŽR O Q A S ™Ř=T S ŽU R T >ùU ù< ø< ÷V úºW X øW A Y ™c˜=Z Y …[ Z Š \ .‰[ A ] ™cF=^ ] =_ â…` ^ _ =a â…b ` a ƒc b …d \ c >üd Qe WQf UQg Wƒh f g i %e h Qj UQk Wƒl j k Qm Wº n É>©o n m l p ɺ q p q©r q o i Qs WQt UQu Wƒv t u w %s v x %r w Ž y W°9z îy …{ z p�| x { } 1>±| ƒ~ } A  ™c›=€  …� ~ € =‚ ÜP„ � � � ƒ .s´„ …… ‚ ƒ >Ü… ùV øX ÷† úÀ‡ ˆ ø‡ Q‰ WQŠ UQ‹ WƒŒ Š ‹ � %‰ Œ QŽ WQ� UQ� Wƒ‘ � � ’ %Ž ‘ “ %� ’ Ž ” Wµ9• î” …– • ¶�— “ – ˜ 1>|— ƒ™ ˜ A š ™c›=› š …œ ™ › =� Ü=ž ÜŽŸ ž §�  Ÿ ¹…¡ œ ­P£ ¡ ¡ ¡ ¢ .�   £ >Ü¢ ù† øˆ A ¤ ™Åõ=¥ ¤ ¦ ï A § ™cõ=¨ § © (¨ «ˆª ¦ © « ª …¬ ¥ « …­ ¬ ú ƒ® ­ >ü® ù† ø† ùV øV =¯ ö>ý¯ ÷° úÁ± ² ø± A ´ ™³ ˜=µ ´ º ¶ µ >>¶ ù° ø² >[ù° ø° = · ÷¸ ú· ¹ ¸ ø¹ A º ™³ ›=» º =¼ ö ½ .» ¼ >ý½ =¾ Ø=¿ Ø”À ¿ ë ŽÁ ë À ƒ ¾ Á à B =Ä ö…Å 4 Ä ƒÆ Å =Ç ö…È 4 Ç ƒÉ È …Ê Æ É =Ë Ø”Ì Ë ë ƒÍ Ì …Î qÍ …Ï Î Ê º Ð Ã I÷Ñ úÐ Ò Ó øÒ º Ô Ï I>Ô ùÑ øÓ >[ùÑ øÑ = Õ ÷Ö úÕ × Ö ø× A Ø ™³ F=Ù Ø …Ú Ù ï A Û ™³ õ=Ü Û �Ý Ú Ü Þ %Ý )Qß }Žà ë ï ƒá ß à ˆâ Þ Ã Žã  â �ä á ã A å ™F= æ å Oç æ æ ƒè ç ä ”é è è ”ê ë è ë (ê > ì (é « í  ì …î ë í A ï ™Sõ=ð ï º ñ ð q÷ò úñ ó ò øó A5ô ™›= õ ô A ö ™S= ÷ ö A ø ™= ù ø A ú ™›=û ú Žü ë û �ý ä ü Q þ }O ÿ þ þ … qÞ 9  Ãõ ÷ ù ý ÿ > ùò øò Q ä A  ™i˜=  ƒ   A  ™iF=  …   Q ä A  ™i›= ƒ A  ™iõ= …  P    A  ™ =   O   9 ¯ P     . $ A  ™Fõ=  A  ™õõ=  � é  ˆ   A  ™ ˜=  A ! ™ ›=" ! 9# @ " …$ # î =% …& $ % …' & Ï A ( ™³ ˜=) ( …* ' ) Ž+  * >ÿ+ ùÖ øÖ ù¸ ø¸ A , ™õ= - , O. - - A / ™ ˜=0 / A 1 ™ ›=2 1 93 @ 0 2 Ž4 . 3 =5 öŽ6 4 5 =7 ÜŽ8 7 4 =9 ü : .9 šŽ; 8 : …< ; 6 == ù=> ýŽ? 4 > …@ = ? �A < @ =B ÜA C ™õ= D C OE D D …F B E =G ÿ…H F G =I ü J .I šŽK H J �L A K >L =M çº N M >÷O úN P O øP =Q è”R Q  S (R >=T Ø”U T æ V U ƒW V …X šW �Y �X =Z ÜŽ[ $ P] ))) \ .Z [ ] =^ …_ \ 6 A ` ™@ õ=a ` =b ç…c a b …d c S …e d Y Žf _ e �g ^ f >g ùO øO =h 9i dh =j A k ™ F=l k A m ™ õ=n m 9o @i l n p (i qˆq o p Žr j q >r A t ™s õ=u t º v u >÷w úv x y øx Q z } Q{ z ¼ | { >>| ùw øy >[ùw øw = } ÷~ ú}  ~ ø A € ™s = � € O‚ � � Qƒ }ƒ„ ‚ ƒ ”… „ „ † (… « ‡  † Žˆ „ ‡ =‰ à”Š ‰ ˆ �‹ Š žˆŒ ‹ º � (Œ >=Ž =� ÜA ‘ ™� = ’ ‘ O“ ’ ’ …” � “ A • ™s õ=– • …— – � �˜ … »ˆ™ — ˜ Žš ” ™ =› ü œ .› qŽ� š œ �ž Ž � >ž ù~ ø~ A   ™Ÿ = ¡   O¢ ¡ ¡ A £ ™Ÿ õ=¤ £ =¥ à”¦ ¥ ¢ �§ ¦ ¤ �¨ ¤ ˆ© § ¨ ª (© >¨ « Á÷¬ ú« ­ ® ø­ > Çù¬ ø® > ¬ù¬ ø¬ = ¯ ÷° ú¯ ± ° ø± =² Ô=³ Ô…´ ² ³ ޵ ´ 6 =¶ Ø”· ¶ ¢ ¸ · ¹ (¸ >A º ™Ř=» º …¼ ¹ » …½ ¼ q޾ µ ½ > ¾ ù° ø° A À ™¿ õ=Á À Q }Qà   Ä 1¼¨à …Å Á Ä ƒÆ Å =Ç A È ™¿ = É È OÊ É É =Ë ü…Ì Æ Ë ŽÍ Ê Ì =Î ÜŽÏ Î ª =Ð �Ñ Ï Ð …Ò Í Ñ �Ó Ç Ò >Ó ¨ Ô º÷Õ úÔ Ö × øÖ > ÀùÕ ø× > ¬ùÕ øÕ = Ø ÷Ù úØ Ú Û øÚ A Ý ™Ü õ=Þ Ý º ß Þ >>ß ùÙ øÛ >[ùÙ øÙ = à ÷á úà â ã øâ A ä ™Ü F=å ä º æ å >>æ ùá øã >[ùá øá = ç ÷è úç é è øé A ê ™Ü õ=ë ê Qì W í 1>ë ì ƒî í ï  ”ð ï ¢ ñ (ð >…ò î ñ Qó UQô Wƒõ ó ô ö 1>ë õ ƒ÷ ö ”ø  ¢ ù (ø >…ú ÷ ù Qû W ü 1>ë û ƒý ü þ  ”ÿ þ ¢  (ÿ >… ý Q UQ Wƒ    1>ë  ƒ  ”  ¢  ( >…   = Ø” æ    % ƒ    ï= Ø”  ¢  ( >… š � � …   = A  ™Ü =   O   � ò ú �   �  … º … ž �   Ž   �!  >! ùè øè ÷" úÀ# $ ø# A & ™% ›=' & º ( ' >>( ù" ø$ >[ù" ø" = ) ÷* ú) + * ø+ =, Ô”- , i . 1·½- =/ A 0 ™% = 1 0 O2 1 1 Ž3 2 . �4 / 3 >4 ù* ø* A 5 ™’õ=6 5 7 (6 I…8 7 7 ˆ9 8 �: 9 ˆ; : =< == ÜA > ™= ? > O@ ? ? A A ™’= B A OC B B ŽD C ; �E @ D …F = E =G üŽH F G �I < H >I ÷J úÁK L øK Q M } QN M ¸ O N \>O ùJ øL >[ùJ øJ = P ÷Q úP R S øR Q T } QU T º V U ¾>V ùQ øS >[ùQ øQ = W ÷X úW Y X øY =Z =[ Ô=\ Ô”] \ ÀP^ ] ] ] P` ��� _ .[ ^ ` A b ™a = c b Od c c …e _ d Q f } Qg f ƒh \g Ži e h �j Z i >j ùX øX ÷k úÁl m øl Q n } Qo n ¼ p o ¾>p ùk øm >[ùk øk = q ÷r úq s r øs Q t } Qu t ƒv Áu w +v >>w º x v ÷y úx z y øz ƒ{ v  | +{ >Q } }ƒ ~ } ¢Q ~ Q€ ~  �  € …‚ � Â�ƒ ‚  „  ƒ …… | Æ … „ ‡ 1Ä>† ˆ († >‰ ˆ …Š ‰ K ‹ Š …Œ ‹ �� Œ …Ž ‡ � >Ž ùy øy =� Ô9� d� ‘ 1Å)� ƒ’ ‘ =“ A ” ™f= • ” O– • • =— …˜ — …™ ˜ ’ …š ™ CŽ› – š �œ “ › >œ ùr ør Q � } Qž � A   ™Ÿ ˜=¡   …¢ ž ¡ ÷£ úÁ¤ ¥ ø¤ º ¦ ¢ >>¦ ù£ ø¥ >[ù£ ø£ = § ÷¨ ú§ © ¨ ø© =ª Ô9« dª ¬ 1Å)« ƒ­ ¬ …® ­ C©¯ ë>…° ® ¯ …± r¢ �² Ʊ …³ ° ² …´ \ƒ µ (p´ =¶ é · 1>µ ¶ ƒ¸ · ¹ 1šƒ¢ Qº   » .q´º …¼ µ­ ƒ½ ¼ …¾ » ½ ©¿ ë§…À ¾ ¿ …Á À ¹ Ž  WA à ™� õ=Ä Ã …Å Ä ÇQ Æ } QÇ Æ …È Ç sP É Å È � Ê Â É 9Ë îÊ …Ì ÈË �Í ­Ì A Î ™Ÿ ›=Ï Î …Ð Ï ³ A Ñ ™Ÿ F=Ò Ñ …Ó Ò ¸ �Ô Ð Ó A Õ ™Ÿ õ=Ö Õ …× Ö Á �Ø Ô × =Ù A Ú ™� = Û Ú OÜ Û Û …Ý ¢ Í …Þ Ý Ø Žß Ü Þ �à Ù ß >à ù¨ ø¨ >ƒA á ™fõ=â á º ã â q÷ä úã å ä øå 9æ ó>æ ùä øä ÷ç úºè é øè A ê ™‘›=ë ê º ì ë q> ì ùç øé > [ùç øç = í ÷î úí ï î øï Qð   ñ .­Éð =ò A ó ™f= ô ó Oõ ô ô =ö …÷ ö †…ø ÷ ñ …ù ø ŠŽú õ ù �û ò ú >û ü 1)ƆA ý ™a õ=þ ý …ÿ ü þ = A  ™f=   O   … ÿ ñ …  Š…  Ž   �  > ùî øî ÷ úÁ ø A  ™‘›= º  q>" ù ø >"[ù ø =  "÷ ú   ø Q }O    = ØO    Ž   ·�    Q  A  ™i˜=  ƒ   A  ™iF=  …   Q  A  ™i›=! ƒ"  ! A # ™iõ=$ # …% " $ P &  % V2' œŸX ( ' & >Q) ( >$) A * ™fõ=+ * º , + q÷- ú, . - ø. 9/ ó& >$/ ù- ø- 0 ï ˆ1 0 ² 2 1 =3 =4 ÜA 5 ™f= 6 5 O7 6 6 …8 4 7 =9 $9: ¯& …; 9 : …< ; 2 A = ™‘F=> = …? < > Ž@ 8 ? �A 3 @ >A ù ø º B Ëq÷C úB D E øD ¸ F ˃>&F ùC øE >&[ùC øC = G &÷H úG I J øI =K …L K �=M =N …O N qPP L M O ©Q º±ŽR P Q >R ùH øJ º S ˃÷T úS U V øU ¸ W Ë™>(W ùT øV >([ùT øT = X (÷Y úX Z [ øZ P\ †††©] º±Ž^ \ ] >^ ùY ø[ º _ Ë™÷` ú_ a b øa ¸ c Ë£>*c ù` øb >*[ù` ø` = d *÷e úd f g øf =h ü©i º‰h Pj i i i >j ùe øg º k Ë¥÷l úk m n øm ¸ o ËÊ>,o ùl øn >,[ùl øl = p ,÷q úp r s ør =t öPu t t t >u ùq øs º v ˘÷w úv x y øx ¸ z ËË>.z ùw øy >.[ùw øw = { .÷| ú{ } | ø} ©~ Á>P ~ ~ ~ > ù| ø| ùq øq ùe øe ùY øY ùH øH =€ Q� }A ‚ ™[= ƒ ‚ O„ ƒ ƒ A … ™F= † … O‡ † † A ‰ ™ˆ = Š ‰ A Œ ™‹ = � Œ 9 Ž Š€ � „ ‡ Š � >Ž =� A � ™[õ=‘ � 9’ o� ‘ =“ ÌŽ” ’ “ =• ÌP – ” • >—– ý8 `·ÈÀŒ*ãÖqÇpŒÆÁÅe%ÊËshaders/paper_vsmjÔ¼ÖBTSR ¥Á¥ÁÀeÂ8 �ÔÀ]ÕwÕ™ÖFì VÂÀÃ|Ä ’‡ÀRˆ [�‹ æ©Àvs_mainvs_mainfs_mainfs_mainzÁstruct VsIn { @location(0) q: vec2, @location(1) m0_: vec4, @location(2) m1_: vec4, @location(3) m2_: vec4, @location(4) m3_: vec4, @location(5) uvRect: vec4, @location(6) clip: vec4, @location(7) params: vec4, @location(8) look: vec4, @location(9) edges: vec4, @location(10) pin: vec4, } struct Frame { viewProj: mat4x4, lightViewProj: mat4x4, lightPos: vec4, lightColor: vec4, ambient: vec4, shadowA: vec4, camPos: vec4, paperA: vec4, paperB: vec4, paperC: vec4, glow: vec4, pageRect: vec4, view: vec4, moonDir: vec4, moonColor: vec4, bounce: vec4, shadowB: vec4, pages: vec4, table: vec4, highlight: vec4, rim: vec4, moonshine: vec4, haze: vec4, glowAir: vec4, crease: vec4, windA: vec4, windB: vec4, charm: vec4, charmColor: vec4, charmLight: vec4, fill: vec4, gilt: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) world: vec3, @location(1) uv: vec2, @location(2) q: vec2, @location(3) @interpolate(flat) normal: vec4, @location(4) @interpolate(flat) tangent: vec4, @location(5) @interpolate(flat) bitangent: vec4, @location(6) @interpolate(flat) clip: vec4, @location(7) @interpolate(flat) params: vec4, @location(8) @interpolate(flat) look: vec4, @location(9) @interpolate(flat) edges: vec4, @location(10) bent: vec3, } struct PaperSurf { slope: vec2, tone: f32, formation: f32, } const HDR_RANGE: f32 = 4f; const HAZE_START: f32 = 2.8f; const WIND_TAU: f32 = 6.2831855f; const THREAD_GAIN: f32 = 9f; const THREAD_HEAD: f32 = 2.2f; const PAPER_LIN: vec3 = vec3(0.8631f, 0.7913f, 0.6445f); const SHADOW_PAPER_LIN: vec3 = vec3(0.6867f, 0.5972f, 0.4342f); const BOUNCE_REACH_MAX: f32 = 0.3f; const CREASE_DARK: f32 = 0.3f; const CUT_DARK: f32 = 0.18f; const GUTTER_DARK: f32 = 0.38f; @group(0) @binding(0) var frame: Frame; @group(0) @binding(1) var momentsTex: texture_2d; @group(0) @binding(2) var momentsSamp: sampler; @group(0) @binding(3) var phosphorTex: texture_2d; @group(0) @binding(4) var maskTex: texture_2d; @group(0) @binding(5) var aoTex: texture_2d; @group(0) @binding(6) var mapSamp: sampler; @group(1) @binding(0) var albedoTex: texture_2d; @group(1) @binding(1) var albedoSamp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x_1 = max(c, vec3(0f)); let lo = (x_1 * 0.07739938f); let hi = pow(((x_1 + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x_1 <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_2 = max(c_1, vec3(0f)); let lo_1 = (x_2 * 12.92f); let hi_1 = ((1.055f * pow(x_2, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_2 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e_1: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_4 = floor(p_1); let f = (p_1 - i_4); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_4); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_5 = floor(p_2); let f_1 = (p_2 - i_5); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_5); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2f) - 1f), (g_1 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn pointGlow(eye: vec3, dir: vec3, dist: f32, light: vec3, s2_: f32) -> f32 { let toL = (light - eye); let t0_ = dot(toL, dir); let h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0f); let k = sqrt((h2_ + max(s2_, 0.000001f))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } fn atmosphere(col: vec3, world_1: vec3, eye_1: vec3, light_1: vec3, haze: vec4, glow: vec4) -> vec3 { let dv = (world_1 - eye_1); let dist_2 = length(dv); let dir_2 = (dv / vec3(max(dist_2, 0.00001f))); let T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0f))); let _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T_1) + (haze.xyz * (1f - T_1))) + (glow.xyz * _e21)); } fn windowMask(q: vec2, win: vec4, win2_: vec4, soft: f32, lattice: f32) -> f32 { var local_33: bool; var local_34: bool; var local_35: bool; var bars: f32; let x0_ = win.x; let x1_ = win.y; let sill = win.z; let spring = win.w; let r_3 = ((x1_ - x0_) * 0.5f); let cx = (x0_ + r_3); let s_2 = max(soft, 0.0001f); if !((q.x < (x0_ - s_2))) { local_33 = (q.x > (x1_ + s_2)); } else { local_33 = true; } let _e25 = local_33; if !(_e25) { local_34 = (q.y < (sill - s_2)); } else { local_34 = true; } let _e33 = local_34; if !(_e33) { local_35 = (q.y > ((spring + r_3) + s_2)); } else { local_35 = true; } let _e42 = local_35; if _e42 { return 0f; } let inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); let dArch = (r_3 - length((q - vec2(cx, spring)))); let inArch = smoothstep(-(s_2), s_2, dArch); let open = (inRect * select(inArch, 1f, (q.y < spring))); let bw = win2_.y; bars = (1f - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); let ty = ((q.y - sill) / win2_.z); let tf = (abs((fract((ty + 0.5f)) - 0.5f)) * win2_.z); let _e89 = bars; bars = max(_e89, ((1f - smoothstep(((bw * 0.8f) - s_2), ((bw * 0.8f) + s_2), tf)) * step(q.y, spring))); let a_1 = atan2((q.y - spring), (q.x - cx)); let spoke = ((abs((fract(((a_1 / 0.7853982f) + 0.5f)) - 0.5f)) * 0.7853982f) * length((q - vec2(cx, spring)))); let _e122 = bars; bars = max(_e122, ((1f - smoothstep(((bw * 0.7f) - s_2), ((bw * 0.7f) + s_2), spoke)) * step(spring, q.y))); if (lattice > 0.5f) { let fade = (1f - smoothstep(0.02f, 0.09f, s_2)); let dq = (q * 2.6f); let l1_ = (abs((fract((((dq.x + dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let l2_ = (abs((fract((((dq.x - dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let _e172 = bars; bars = max(_e172, (((1f - smoothstep((0.012f - s_2), (0.012f + s_2), min(l1_, l2_))) * fade) * 0.85f)); } let _e183 = bars; return (open * (1f - _e183)); } fn backProject(p_4: vec3, d: vec3, planeZ: f32) -> vec3 { let s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001f)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } fn moonPatch(p_5: vec3, d_1: vec3, win_1: vec4, win2_1: vec4) -> f32 { if (p_5.z < win2_1.x) { return 0f; } let _e9 = backProject(p_5, d_1, win2_1.x); let _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006f + (_e9.z * 0.011f)), 1f); return _e17; } fn hgPhase(cosT: f32, g: f32) -> f32 { let gg = (g * g); return ((1f - gg) / pow(max(((1f + gg) - ((2f * g) * cosT)), 0.0001f), 1.5f)); } fn shaftScatter(eye_2: vec3, dir_1: vec3, dist_1: f32, d_2: vec3, win_2: vec4, win2_2: vec4, jitter: f32, top: f32) -> f32 { var ta: f32 = 0f; var tb: f32; var sum: f32 = 0f; var i_2: i32 = 0i; let zw = win2_2.x; let invdz = (1f / max(d_2.z, 0.0001f)); let qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); let qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if (dir_1.z < 0f) { let _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if (dir_1.y < 0f) { let _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } let lo_2 = vec2(win_2.x, win_2.z); let hi_2 = vec2(win_2.y, top); let inv = (vec2(1f) / select(qd, vec2(0.000001f), (abs(qd) < vec2(0.000001f)))); let t1_ = ((lo_2 - qa) * inv); let t2_ = ((hi_2 - qa) * inv); let tmin = min(t1_, t2_); let tmax = max(t1_, t2_); let _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); let _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); let _e80 = tb; let _e81 = ta; if (_e80 <= _e81) { return 0f; } let _e84 = tb; let _e85 = ta; let dt = ((_e84 - _e85) / 5f); loop { let _e93 = i_2; if (_e93 < 5i) { } else { break; } { let _e96 = ta; let _e97 = i_2; let t_1 = (_e96 + ((f32(_e97) + jitter) * dt)); let q_2 = (qa + (t_1 * qd)); let s_4 = (((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz); let _e110 = sum; let _e116 = windowMask(q_2, win_2, win2_2, (0.008f + (s_4 * 0.003f)), 0f); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035f)))); } continuing { let _e123 = i_2; i_2 = (_e123 + 1i); } } let _e126 = ta; let _e127 = tb; let qm = (qa + (((_e126 + _e127) * 0.5f) * qd)); let _e141 = vnoise(((qm * vec2(3.1f, 0.9f)) + vec2(7.1f, 3.3f))); let _e146 = vnoise((qm * vec2(9f, 2.2f))); let dust = (0.45f + (0.55f * smoothstep(-0.6f, 0.8f, (_e141 + (0.5f * _e146))))); let _e157 = sum; return ((_e157 * dt) * dust); } fn windAnchor(sheet: vec2, size: vec2, mask: f32, pin: vec4) -> f32 { var d_3: f32 = 1000f; let m = u32((clamp(mask, 0f, 15f) + 0.5f)); if ((m & 1u) != 0u) { let _e16 = d_3; d_3 = min(_e16, abs(sheet.x)); } if ((m & 2u) != 0u) { let _e24 = d_3; d_3 = min(_e24, abs((size.x - sheet.x))); } if ((m & 4u) != 0u) { let _e34 = d_3; d_3 = min(_e34, abs(sheet.y)); } if ((m & 8u) != 0u) { let _e42 = d_3; d_3 = min(_e42, abs((size.y - sheet.y))); } if (pin.x > -0.5f) { let a_2 = (pin.xy * size); let ab = ((pin.zw * size) - a_2); let t_2 = clamp((dot((sheet - a_2), ab) / max(dot(ab, ab), 0.0000000001f)), 0f, 1f); let _e65 = d_3; d_3 = min(_e65, length((sheet - (a_2 + (ab * t_2))))); } let _e71 = d_3; return _e71; } fn windDisp(P0_: vec3, N_1: vec3, sheet_1: vec2, size_1: vec2, mask_1: f32, pin_1: vec4, seed: f32, wa: vec4, wb: vec4) -> f32 { let _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); let f_2 = min((_e9 * wb.z), 1.4f); let t_3 = wa.z; let dir_3 = wb.xy; let along = dot(P0_.xz, dir_3); let _e26 = vnoise(vec2(((along * 6f) - (t_3 * 2.2f)), (seed * 7.3f))); let front = (0.7f + (0.3f * _e26)); let g_2 = (wa.w * front); let push = dot(N_1.xz, dir_3); let _e54 = vnoise(vec2(((t_3 * 1.9f) + (seed * 13f)), (along * 3f))); let swing = ((0.65f * sin((((t_3 * 7.5f) + (seed * WIND_TAU)) + (along * 2.5f)))) + (0.35f * _e54)); let sway = ((wa.x * g_2) * ((0.55f * push) + (0.45f * swing))); let run = (((dot(sheet_1, vec2(0.6f, 0.8f)) * 41.8879f) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11f)); let _e92 = vnoise(vec2(((t_3 * 3.3f) + (seed * 5f)), (along * 5f))); let flutter = (((wa.y * g_2) * sin(run)) * (0.55f + (0.45f * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } fn windBend(P0_1: vec3, N_2: vec3, T: vec3, B: vec3, sheet_2: vec2, size_2: vec2, mask_2: f32, pin_2: vec4, seed_1: f32, weight: f32, wa_1: vec4, wb_1: vec4) -> vec4 { let _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let d0_ = (_e13 * weight); let _e20 = windDisp((P0_1 + (T * 0.006f)), N_2, (sheet_2 + vec2(0.006f, 0f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dx = (_e20 * weight); let _e27 = windDisp((P0_1 + (B * 0.006f)), N_2, (sheet_2 + vec2(0f, 0.006f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dy = (_e27 * weight); let n_2 = normalize(((N_2 - (T * ((dx - d0_) / 0.006f))) - (B * ((dy - d0_) / 0.006f)))); return vec4(n_2, d0_); } fn shadowVisibility(lvp: mat4x4, sa: vec4, sb: vec4, world_2: vec3, fragXY: vec2, lightXZ: vec2) -> f32 { var p_6: f32; let lc = (lvp * vec4(world_2, 1f)); let ndc = (lc.xyz / vec3(lc.w)); let uv = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let d_4 = ((lc.w * sa.x) - sa.y); let _e32 = textureSampleLevel(momentsTex, momentsSamp, uv, 0f); let m_1 = _e32.xy; let variance = max((m_1.y - (m_1.x * m_1.x)), 0.00002f); let delta = (d_4 - m_1.x); p_6 = (variance / (variance + (delta * delta))); let bleed = sa.z; let _e48 = p_6; p_6 = clamp(((_e48 - bleed) / (1f - bleed)), 0f, 1f); let _e56 = p_6; let lit_1 = select(_e56, 1f, (d_4 <= m_1.x)); let inside = ((((step(0f, uv.x) * step(uv.x, 1f)) * step(0f, uv.y)) * step(uv.y, 1f)) * step(0f, lc.w)); return mix(1f, lit_1, inside); } fn shadowVisibilityWide(lvp_1: mat4x4, sa_1: vec4, sb_1: vec4, world_3: vec3, fragXY_1: vec2, r: f32) -> f32 { var lit: f32 = 0f; var i_3: i32 = 0i; let _e10 = ign((fragXY_1 + vec2(5f, 3f))); let angle = (6.2831855f * _e10); let cs = ((cos(angle) * r) * 0.7f); let sn = ((sin(angle) * r) * 0.7f); loop { let _e25 = i_3; if (_e25 < 4i) { } else { break; } { let _e32 = i_3; let _e40 = i_3; let _e44 = i_3; let o_1 = select(select(vec2(-(sn), cs), vec2(sn, -(cs)), (_e32 == 3i)), select(vec2(cs, sn), vec2(-(cs), -(sn)), (_e40 == 1i)), (_e44 < 2i)); let _e48 = lit; let _e56 = shadowVisibility(lvp_1, sa_1, sb_1, (world_3 + vec3(o_1.x, 0f, o_1.y)), fragXY_1, vec2(0f)); lit = (_e48 + _e56); } continuing { let _e58 = i_3; i_3 = (_e58 + 1i); } } let _e61 = lit; return (_e61 * 0.25f); } fn fibreLayer(n: vec3, r_1: mat2x2, a: vec2) -> vec3 { let k_1 = (1f - abs(n.x)); let k3_ = ((k_1 * k_1) * k_1); let ridge = (k3_ * k_1); let gN = (n.yz * ((-4f * k3_) * sign(n.x))); let g_3 = (transpose(r_1) * ((gN * a) / vec2(a.y))); return vec3(ridge, g_3); } fn paperSurface(q_1: vec2, fp: f32, scale: f32) -> PaperSurf { var s_1: PaperSurf; let _e10 = vnoise(((q_1 * (7f * scale)) + vec2(3.1f, 7.7f))); let _e18 = vnoise(((q_1 * (19f * scale)) + vec2(11.7f, 4.2f))); let t1f = (150f * scale); let t2f = (340f * scale); let _e28 = vnoiseD(((q_1 * t1f) + vec2(7.3f, 1.9f))); let _e34 = vnoiseD(((q_1 * t2f) + vec2(2.1f, 9.4f))); let ft1_ = clamp((1.5f - ((fp * t1f) * 1.3f)), 0f, 1f); let ft2_ = clamp((1.5f - ((fp * t2f) * 1.3f)), 0f, 1f); let r1_ = mat2x2(vec2(0.9063f, 0.4226f), vec2(-0.4226f, 0.9063f)); let r2_ = mat2x2(vec2(-0.342f, 0.9397f), vec2(-0.9397f, -0.342f)); let r3_ = mat2x2(vec2(0.5f, -0.866f), vec2(0.866f, 0.5f)); let a_3 = (vec2(95f, 280f) * scale); let _e78 = vnoiseD(((r1_ * q_1) * a_3)); let _e79 = fibreLayer(_e78, r1_, a_3); let _e86 = vnoiseD((((r2_ * q_1) * a_3) + vec2(31f, 17f))); let _e87 = fibreLayer(_e86, r2_, a_3); let _e94 = vnoiseD((((r3_ * q_1) * a_3) + vec2(5f, 43f))); let _e95 = fibreLayer(_e94, r3_, a_3); let fF = clamp((1.5f - ((fp * a_3.y) * 1.2f)), 0f, 1f); let fibres = (((_e79.x + _e87.x) + _e95.x) * fF); s_1.formation = clamp((((0.5f + (0.36f * _e10)) + (0.24f * _e18)) + (0.1f * fibres)), 0f, 1f); s_1.tone = ((((1f + (0.08f * ((0.36f * _e10) + (0.24f * _e18)))) + ((0.022f * _e28.x) * ft1_)) + ((0.012f * _e34.x) * ft2_)) + (0.03f * (fibres - 0.3f))); s_1.slope = (((_e28.yz * (0.9f * ft1_)) + (_e34.yz * (0.45f * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18f * fF))); let _e170 = s_1; return _e170; } fn unpack16_(t: vec4) -> f32 { return (((floor(((t.x * 255f) + 0.5f)) * 256f) + floor(((t.y * 255f) + 0.5f))) * 0.000015259022f); } fn phosphorPacked(puv: vec2) -> f32 { let _e2 = textureDimensions(phosphorTex); let dims = vec2(_e2); let st = ((clamp(puv, vec2(0f), vec2(1f)) * dims) - vec2(0.5f)); let i0_ = vec2(floor(st)); let fr = (st - floor(st)); let mx = (vec2(dims) - vec2(1i)); let _e26 = textureLoad(phosphorTex, clamp(i0_, vec2(0i), mx), 0i); let _e27 = unpack16_(_e26); let _e37 = textureLoad(phosphorTex, clamp((i0_ + vec2(1i, 0i)), vec2(0i), mx), 0i); let _e38 = unpack16_(_e37); let _e48 = textureLoad(phosphorTex, clamp((i0_ + vec2(0i, 1i)), vec2(0i), mx), 0i); let _e49 = unpack16_(_e48); let _e59 = textureLoad(phosphorTex, clamp((i0_ + vec2(1i, 1i)), vec2(0i), mx), 0i); let _e60 = unpack16_(_e59); return mix(mix(_e27, _e38, fr.x), mix(_e49, _e60, fr.x), fr.y); } fn shoulder(x: f32, knee: f32, r_2: f32) -> f32 { var local_36: bool; if !((x <= knee)) { local_36 = (r_2 <= 0f); } else { local_36 = true; } let _e10 = local_36; if _e10 { return x; } return (knee + (r_2 * log((1f + ((x - knee) / r_2))))); } fn sideDist(sheet_3: vec2, size_3: vec2, mask_3: f32) -> vec3 { var best: vec3 = vec3(1000f, 0f, 0f); var local_37: bool; var local_38: bool; var local_39: bool; var local_40: bool; let m_2 = u32((clamp(mask_3, 0f, 15f) + 0.5f)); if ((m_2 & 1u) != 0u) { let _e22 = best.x; local_37 = (sheet_3.x < _e22); } else { local_37 = false; } let _e25 = local_37; if _e25 { best = vec3(sheet_3.x, -1f, 0f); } if ((m_2 & 2u) != 0u) { let _e40 = best.x; local_38 = ((size_3.x - sheet_3.x) < _e40); } else { local_38 = false; } let _e43 = local_38; if _e43 { best = vec3((size_3.x - sheet_3.x), 1f, 0f); } if ((m_2 & 4u) != 0u) { let _e58 = best.x; local_39 = (sheet_3.y < _e58); } else { local_39 = false; } let _e61 = local_39; if _e61 { best = vec3(sheet_3.y, 0f, -1f); } if ((m_2 & 8u) != 0u) { let _e76 = best.x; local_40 = ((size_3.y - sheet_3.y) < _e76); } else { local_40 = false; } let _e79 = local_40; if _e79 { best = vec3((size_3.y - sheet_3.y), 0f, 1f); } let _e86 = best; return _e86; } fn inUnit(p_7: vec2) -> f32 { return (((step(0f, p_7.x) * step(p_7.x, 1f)) * step(0f, p_7.y)) * step(p_7.y, 1f)); } @vertex fn vs_main(in: VsIn) -> VsOut { var world: vec3; var bent: vec3; var local: bool; var out: VsOut; let model = mat4x4(in.m0_, in.m1_, in.m2_, in.m3_); world = (model * vec4(in.q, 0f, 1f)).xyz; let w_1 = length(in.m0_.xyz); let h = length(in.m1_.xyz); let N0_ = normalize(in.m2_.xyz); bent = N0_; if (in.edges.z > 0f) { let _e32 = frame.windA.w; local = (_e32 > 0f); } else { local = false; } let _e36 = local; if _e36 { let size_4 = vec2(w_1, h); let _e38 = world; let _e62 = frame.windA; let _e65 = frame.windB; let _e66 = windBend(_e38, N0_, (in.m0_.xyz / vec3(max(w_1, 0.000001f))), (in.m1_.xyz / vec3(max(h, 0.000001f))), (in.q * size_4), size_4, in.edges.x, in.pin, in.look.z, in.edges.z, _e62, _e65); let _e67 = world; world = (_e67 + (N0_ * _e66.w)); bent = _e66.xyz; } let _e76 = frame.viewProj; let _e77 = world; out.position = (_e76 * vec4(_e77, 1f)); let _e82 = world; out.world = _e82; out.uv = (in.uvRect.xy + (in.q * in.uvRect.zw)); out.q = in.q; out.normal = vec4(normalize(in.m2_.xyz), 0f); out.tangent = vec4((in.m0_.xyz / vec3(max(w_1, 0.000001f))), w_1); out.bitangent = vec4((in.m1_.xyz / vec3(max(h, 0.000001f))), h); out.clip = in.clip; out.params = in.params; out.look = in.look; out.edges = in.edges; let _e124 = bent; out.bent = _e124; let _e125 = out; return _e125; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { var cov: f32; var local_1: bool; var local_2: bool; var local_3: bool; var art: vec3; var local_4: bool; var Ng: vec3; var local_5: bool; var albedo: vec3; var local_6: bool; var N: vec3; var crease: f32 = 0f; var local_7: bool; var local_8: bool; var cutBand: f32 = 0f; var cutOut: vec3 = vec3(0f); var cutDist: f32 = 1000f; var local_9: bool; var fd: f32; var local_10: bool; var e: f32; var o: vec2; var local_11: bool; var vis: f32 = 1f; var local_12: bool; var trans: vec3 = vec3(0f); var local_13: bool; var ao: f32 = 1f; var visT: f32; var lift: vec3 = vec3(0f); var local_14: bool; var local_15: bool; var visQ: f32 = 1f; var color: vec3; var local_16: bool; var moonTrans: vec3 = vec3(0f); var local_17: bool; var local_18: bool; var local_19: bool; var local_20: bool; var local_21: bool; var local_22: bool; var local_23: bool; var local_24: bool; var thread: f32; var local_25: bool; var charge: f32; var local_26: bool; var local_27: bool; var c2_: f32; var local_28: bool; var local_29: bool; var local_30: bool; var local_31: bool; var local_32: bool; let texel = textureSample(albedoTex, albedoSamp, in_1.uv); let textured = (in_1.params.w < 0f); let a_4 = select(1f, texel.w, textured); let aWidth = fwidth(a_4); let _e19 = luma((texel.xyz / vec3(max(texel.w, 0.0001f)))); let _e20 = fwidth(_e19); let inkEdge = clamp((_e20 * 7f), 0f, 1f); let rd = (0.5f - length((in_1.q - vec2(0.5f, 0.5f)))); let rdWidth = fwidth(rd); let cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); let cdWidth = fwidth(cd); let sheetSize = vec2(in_1.tangent.w, in_1.bitangent.w); let sheet_4 = (in_1.q * sheetSize); let fw = fwidth(sheet_4); let fp_1 = max(max(fw.x, fw.y), 0.000001f); let dsx = dpdx(sheet_4); let dsy = dpdy(sheet_4); let dax = dpdx(a_4); let day = dpdy(a_4); let puvPage = vec2((in_1.look.w + (0.5f * in_1.q.x)), (1f - in_1.q.y)); let _e77 = frame.pageRect.x; let _e82 = frame.pageRect.z; let _e89 = frame.pageRect.y; let _e94 = frame.pageRect.w; let puvWorld = vec2(((in_1.world.x - _e77) * _e82), ((in_1.world.z - _e89) * _e94)); let puv_1 = select(puvWorld, puvPage, (in_1.look.w >= 0f)); let _e104 = textureSample(phosphorTex, mapSamp, puv_1); let phosF16_ = _e104.x; let _e108 = textureSample(maskTex, mapSamp, puv_1); let maskA = _e108.w; let _e112 = textureSample(aoTex, mapSamp, puv_1); let aoMap = _e112.x; let _e114 = inUnit(puv_1); let soft_1 = clamp((((a_4 - 0.5f) / max(aWidth, 0.0001f)) + 0.5f), 0f, 1f); let _e130 = frame.view.w; cov = select(step(0.5f, a_4), soft_1, (_e130 > 0.5f)); let _e135 = cov; cov = select(1f, _e135, (in_1.params.y > 0.5f)); let _e142 = cov; cov = (_e142 * select(1f, clamp(((rd / max(rdWidth, 0.000001f)) + 0.5f), 0f, 1f), (in_1.params.z > 0.5f))); let _e158 = cov; cov = (_e158 * select(1f, clamp(((cd / max(cdWidth, 0.000001f)) + 0.5f), 0f, 1f), (in_1.clip.w > 0.5f))); let _e174 = cov; if (_e174 <= 0f) { discard; } let kind = in_1.look.x; if (kind > 0.5f) { local_1 = (kind < 1.5f); } else { local_1 = false; } let isPage = local_1; if (kind > 1.5f) { local_2 = (kind < 2.5f); } else { local_2 = false; } let isBoard = local_2; let isCard = (kind < 0.5f); if (kind > 2.5f) { local_3 = (kind < 3.5f); } else { local_3 = false; } let isLeaf = local_3; let side = in_1.look.y; let viewMode = frame.view.x; let tone = select(PAPER_LIN, SHADOW_PAPER_LIN, (in_1.params.w > 0.5f)); let _e224 = srgbToLinear((texel.xyz / vec3(max(texel.w, 0.0001f)))); art = select(tone, _e224, textured); if (viewMode > 4.5f) { local_4 = (viewMode < 5.5f); } else { local_4 = false; } let _e234 = local_4; if _e234 { art = vec3(0.6f); } let _e239 = frame.camPos; let V = normalize((_e239.xyz - in_1.world)); Ng = normalize(in_1.bent); let _e247 = Ng; let facing = (dot(_e247, V) >= 0f); let _e251 = Ng; let _e253 = Ng; Ng = select(-(_e251), _e253, facing); let _e257 = art; let reverse = select(SHADOW_PAPER_LIN, mix(SHADOW_PAPER_LIN, _e257, 0.55f), (kind < -0.5f)); let _e263 = art; if !(facing) { local_5 = !(isCard); } else { local_5 = true; } let _e269 = local_5; albedo = select(reverse, _e263, _e269); if (viewMode > 4.5f) { local_6 = (viewMode < 5.5f); } else { local_6 = false; } let _e279 = local_6; if _e279 { albedo = vec3(0.6f); } let grainOn = frame.paperA.x; let _e299 = frame.paperA.w; let _e300 = paperSurface((sheet_4 + vec2((in_1.look.z * 13.7f), (in_1.look.z * 5.3f))), fp_1, _e299); let grainTone = mix(1f, _e300.tone, grainOn); let _e304 = albedo; albedo = (_e304 * grainTone); let _e306 = art; art = (_e306 * grainTone); let T_2 = in_1.tangent.xyz; let B_1 = in_1.bitangent.xyz; let _e312 = Ng; N = _e312; if isPage { local_7 = (abs(side) > 0.5f); } else { local_7 = false; } let _e322 = local_7; if _e322 { let _e328 = frame.paperC.z; local_8 = (_e328 > 0f); } else { local_8 = false; } let _e332 = local_8; if _e332 { let ds = select(sheet_4.x, (sheetSize.x - sheet_4.x), (side > 0f)); crease = (1f - smoothstep(0f, 0.075f, ds)); let _e345 = N; let _e348 = crease; let _e350 = crease; N = normalize((_e345 + (T_2 * (((side * 0.55f) * _e348) * _e350)))); let _e358 = frame.crease.x; if (_e358 > 0f) { let _e364 = frame.crease.y; let wG = (_e364 * 1.4f); let wGF = max(wG, fp_1); let _e368 = albedo; let _e373 = frame.crease.x; albedo = (_e368 * (1f - (((GUTTER_DARK * _e373) * (1f - smoothstep(0f, wGF, ds))) * (wG / wGF)))); } } let _e389 = frame.paperA.y; let slope = (_e300.slope * (_e389 * grainOn)); let _e392 = N; N = normalize(((_e392 - (T_2 * slope.x)) - (B_1 * slope.y))); if isCard { let _e412 = frame.crease.x; local_9 = (_e412 > 0f); } else { local_9 = false; } let _e416 = local_9; if _e416 { let _e419 = sideDist(sheet_4, sheetSize, in_1.edges.x); fd = _e419.x; if (in_1.edges.y > 0.5f) { local_10 = (in_1.clip.w > 0.5f); } else { local_10 = false; } let _e433 = local_10; if _e433 { let _e434 = fd; fd = min(_e434, abs(cd)); } let wC = frame.crease.y; let wCF = max(wC, fp_1); let _e442 = fd; let foldLine = ((1f - smoothstep(0f, wCF, _e442)) * (wC / wCF)); let _e449 = albedo; let _e454 = frame.crease.x; albedo = (_e449 * (1f - ((CREASE_DARK * _e454) * foldLine))); let _e464 = sideDist(sheet_4, sheetSize, (15f - in_1.edges.x)); e = _e464.x; o = _e464.yz; if textured { let det = ((dsx.x * dsy.y) - (dsx.y * dsy.x)); let g_4 = (vec2(((dsy.y * dax) - (dsx.y * day)), ((dsx.x * day) - (dsy.x * dax))) / vec2(select(det, 0.000000000001f, (abs(det) < 0.000000000001f)))); let gl = length(g_4); if (gl > 1f) { let ea = ((a_4 - 0.5f) / gl); let _e500 = e; if (ea < _e500) { e = ea; o = (-(g_4) / vec2(gl)); } } } if (in_1.params.z > 0.5f) { let rq = (in_1.q - vec2(0.5f, 0.5f)); let ed = (rd * sheetSize.x); let _e516 = e; if (ed < _e516) { e = ed; o = (rq / vec2(max(length(rq), 0.000001f))); } } let t_4 = frame.crease.z; let tF = max(t_4, fp_1); let _e528 = e; let _e540 = frame.crease.x; cutBand = (((1f - smoothstep(0f, tF, max(_e528, 0f))) * (t_4 / tF)) * _e540); let _e542 = e; cutDist = max(_e542, 0f); let _e546 = o.x; let _e549 = o.y; cutOut = ((T_2 * _e546) + (B_1 * _e549)); let _e552 = albedo; let _e554 = cutBand; albedo = (_e552 * (1f - (CUT_DARK * _e554))); } let _e562 = frame.pages.x; let _e566 = frame.pages.y; let hostN = select(vec3(_e562, _e566, 0f), vec3(0f, 1f, 0f), (side > 0f)); let hostH = max(dot(in_1.world, hostN), 0f); let _e580 = Ng; if isCard { local_11 = (abs(side) > 0.5f); } else { local_11 = false; } let _e591 = local_11; let upright = select(0f, (1f - abs(dot(_e580, hostN))), _e591); let _e596 = frame.lightPos; let toL_1 = (_e596.xyz - in_1.world); let d2_ = dot(toL_1, toL_1); let L = (toL_1 * inverseSqrt(max(d2_, 0.00000001f))); let _e608 = frame.lightPos.w; let _e612 = frame.lightColor.w; let atten = (_e608 / (d2_ + _e612)); let _e620 = frame.shadowA.w; if (_e620 > 0.5f) { local_12 = (in_1.params.x > 0.5f); } else { local_12 = false; } let _e630 = local_12; if _e630 { let _e631 = Ng; let _e632 = Ng; let _e642 = frame.shadowB.y; let offs = (_e631 * (select(-1f, 1f, (dot(_e632, L) >= 0f)) * _e642)); let _e647 = frame.lightViewProj; let _e650 = frame.shadowA; let _e653 = frame.shadowB; let _e660 = frame.lightPos; let _e662 = shadowVisibility(_e647, _e650, _e653, (in_1.world + offs), in_1.position.xy, _e660.xz); vis = _e662; } let wrap = frame.paperA.z; let _e667 = N; let front_1 = max(((dot(_e667, L) + wrap) / (1f + wrap)), 0f); let lookThrough = mix(0.45f, 1.45f, _e300.formation); let tint = vec3(1f, 0.74f, 0.46f); if !(isCard) { local_13 = isLeaf; } else { local_13 = true; } let _e690 = local_13; if _e690 { let _e691 = Ng; let back = max(-(dot(_e691, L)), 0f); let _e703 = frame.paperB.z; let _e708 = frame.paperB.y; let fwd = (pow(max(dot(V, -(L)), 0f), _e703) * _e708); let _e710 = art; let _e711 = art; let _e722 = frame.paperB.x; trans = (((((_e710 * _e711) * tint) * lookThrough) * (back * (1f + fwd))) * _e722); } if isPage { let _e729 = frame.paperC.x; let _e736 = frame.paperC.z; let _e737 = crease; let _e739 = crease; ao = (mix(1f, aoMap, (_e729 * _e114)) * (1f - ((_e736 * _e737) * _e739))); let ex = select(min(sheet_4.x, (sheetSize.x - sheet_4.x)), select((sheetSize.x - sheet_4.x), sheet_4.x, (side > 0f)), (abs(side) > 0.5f)); let ed_1 = min(ex, min(sheet_4.y, (sheetSize.y - sheet_4.y))); let _e768 = vnoise((sheet_4 * 38f)); let wob = (_e768 * 0.006f); let _e780 = frame.paperC.y; let edge = ((1f - smoothstep(0f, 0.04f, (ed_1 + wob))) * _e780); let _e782 = albedo; albedo = (_e782 * mix(vec3(1f), vec3(0.78f, 0.66f, 0.5f), edge)); } else { if isBoard { let ed_2 = min(min(sheet_4.x, (sheetSize.x - sheet_4.x)), min(sheet_4.y, (sheetSize.y - sheet_4.y))); let _e804 = vnoise((sheet_4 * 45f)); let wob_1 = (_e804 * 0.004f); let _e816 = frame.paperC.y; let edge_1 = ((1f - smoothstep(0f, 0.022f, (ed_2 + wob_1))) * _e816); let _e818 = albedo; let _e819 = albedo; albedo = mix(_e818, ((_e819 * 0.55f) + vec3(0.05f, 0.045f, 0.04f)), (edge_1 * 0.8f)); } else { let _e833 = frame.paperB.w; let _e838 = frame.paperC.w; ao = (1f - ((_e833 * exp((-(hostH) / max(_e838, 0.0001f)))) * upright)); } } let _e847 = vis; visT = _e847; if isCard { let _e857 = frame.fill.x; local_14 = (_e857 > 0f); } else { local_14 = false; } let _e861 = local_14; if _e861 { let _e865 = frame.fill.y; let _e866 = vis; visT = mix(_e865, 1f, _e866); let _e869 = Ng; let _e870 = Ng; let hdir = (_e869 - (hostN * dot(_e870, hostN))); let hl = length(hdir); let _e875 = vis; let _e879 = vis; let missed = ((1f - (front_1 * _e875)) * (1f - (front_1 * _e879))); let _e884 = Ng; let viewF = ((0.5f * (1f - dot(_e884, hostN))) * missed); if (hl > 0.001f) { local_15 = (viewF > 0.001f); } else { local_15 = false; } let _e898 = local_15; if _e898 { let _e902 = frame.fill.z; let _e907 = frame.fill.w; let reach = min(((_e902 * hostH) + _e907), BOUNCE_REACH_MAX); let Q = ((in_1.world - (hostN * hostH)) + (hdir * (reach / hl))); let _e919 = frame.lightPos; let toLQ = (_e919.xyz - Q); let dq2_ = dot(toLQ, toLQ); let cosQ = (max(dot(hostN, toLQ), 0f) * inverseSqrt(max(dq2_, 0.00000001f))); let _e935 = frame.shadowA.w; if (_e935 > 0.5f) { let _e940 = frame.lightViewProj; let _e943 = frame.shadowA; let _e946 = frame.shadowB; let _e950 = frame.shadowB.y; let _e957 = shadowVisibilityWide(_e940, _e943, _e946, (Q + (hostN * _e950)), in_1.position.xy, (0.5f * reach)); visQ = _e957; } let _e962 = frame.pageRect.x; let _e967 = frame.pageRect.z; let _e973 = frame.pageRect.y; let _e978 = frame.pageRect.w; let puvQ = vec2(((Q.x - _e962) * _e967), ((Q.z - _e973) * _e978)); let _e983 = frame.table; let _e986 = inUnit(puvQ); let ground = mix(_e983.xyz, PAPER_LIN, _e986); let _e991 = frame.lightPos.w; let _e995 = frame.lightColor.w; let _e1001 = frame.highlight.x; let _e1005 = frame.highlight.y; let _e1006 = shoulder((_e991 / (dq2_ + _e995)), _e1001, _e1005); let _e1008 = visQ; let eQ = ((_e1006 * cosQ) * _e1008); let _e1014 = frame.fill.x; lift = (ground * ((eQ * viewF) * _e1014)); } } let _e1019 = frame.lightColor; let _e1024 = frame.highlight.x; let _e1028 = frame.highlight.y; let _e1029 = shoulder(atten, _e1024, _e1028); let flameLit = (_e1019.xyz * _e1029); let _e1031 = vis; let light_2 = (flameLit * _e1031); let _e1033 = albedo; let _e1035 = ao; let _e1041 = trans; let _e1042 = visT; let _e1046 = albedo; let _e1049 = frame.lightColor; let _e1052 = lift; let _e1054 = ao; color = (((((_e1033 * front_1) * mix(1f, _e1035, 0.65f)) * light_2) + (_e1041 * (flameLit * _e1042))) + (((_e1046 * _e1049.xyz) * _e1052) * mix(1f, _e1054, 0.65f))); let _e1061 = cutBand; if (_e1061 > 0f) { let _e1064 = cutOut; let wallLit = max(dot(_e1064, L), 0f); let _e1068 = Ng; let graze = (0.35f + (0.65f * (1f - abs(dot(_e1068, V))))); let _e1077 = albedo; let core = mix(_e1077, (PAPER_LIN * grainTone), 0.3f); let _e1082 = color; let _e1087 = frame.crease.w; let _e1088 = cutBand; color = (_e1082 + ((core * light_2) * (((_e1087 * _e1088) * wallLit) * graze))); } let _e1094 = color; let _e1095 = luma(_e1094); let _e1096 = color; let _e1100 = frame.highlight.z; let _e1104 = frame.highlight.w; let _e1105 = shoulder(_e1095, _e1100, _e1104); color = (_e1096 * (_e1105 / max(_e1095, 0.000001f))); let _e1113 = frame.charmLight.w; if (_e1113 > 0f) { local_16 = (in_1.edges.w <= 0f); } else { local_16 = false; } let _e1123 = local_16; if _e1123 { let _e1126 = frame.charmLight; let toC = (_e1126.xyz - in_1.world); let dc2_ = dot(toC, toC); let Lc = (toC * inverseSqrt(max(dc2_, 0.00000001f))); let _e1135 = N; let wrapC = max(((dot(_e1135, Lc) + 0.6f) / 1.6f), 0f); let _e1143 = color; let _e1144 = albedo; let _e1147 = frame.charmColor; let _e1153 = frame.charmLight.w; let _e1159 = ao; color = (_e1143 + (((_e1144 * _e1147.xyz) * ((_e1153 * wrapC) / (dc2_ + 0.015f))) * mix(1f, _e1159, 0.5f))); } let _e1167 = frame.moonDir; let M = _e1167.xyz; let wrapM = frame.moonDir.w; let _e1173 = N; let moonFront = max(((dot(_e1173, M) + wrapM) / (1f + wrapM)), 0f); if !(isCard) { local_17 = isLeaf; } else { local_17 = true; } let _e1188 = local_17; if _e1188 { let _e1189 = art; let _e1190 = art; let _e1193 = Ng; let _e1201 = frame.paperB.x; moonTrans = (((_e1189 * _e1190) * lookThrough) * ((max(-(dot(_e1193, M)), 0f) * _e1201) * 0.5f)); } let _e1209 = frame.moonColor.w; let moonFall = (1f - (_e1209 * smoothstep(-0.45f, 0.45f, in_1.world.z))); let _e1218 = color; let _e1221 = frame.moonColor; let _e1223 = ao; let _e1226 = albedo; let _e1228 = moonTrans; color = (_e1218 + ((_e1221.xyz * (moonFall * _e1223)) * ((_e1226 * moonFront) + _e1228))); if !(isPage) { local_18 = isBoard; } else { local_18 = true; } let _e1236 = local_18; if _e1236 { let _e1242 = frame.rim.w; local_19 = (_e1242 > 0f); } else { local_19 = false; } let _e1246 = local_19; if _e1246 { let _e1252 = frame.rim.z; local_20 = (_e1252 > 0f); } else { local_20 = false; } let _e1256 = local_20; if _e1256 { let wR = frame.rim.w; let e0_ = ((1f - smoothstep(0f, wR, sheet_4.x)) * max(dot(-(T_2), M), 0f)); let e1_ = ((1f - smoothstep(0f, wR, (sheetSize.x - sheet_4.x))) * max(dot(T_2, M), 0f)); let e2_ = ((1f - smoothstep(0f, wR, sheet_4.y)) * max(dot(-(B_1), M), 0f)); let e3_ = ((1f - smoothstep(0f, wR, (sheetSize.y - sheet_4.y))) * max(dot(B_1, M), 0f)); let _e1303 = Ng; let _e1312 = Ng; let graze_1 = (pow((1f - min(abs(dot(_e1303, V)), 1f)), 3f) * (0.35f + (0.65f * max(dot(_e1312, M), 0f)))); let _e1321 = color; let _e1324 = frame.rim; color = (_e1321 + (_e1324.xyz * ((1.6f * (((e0_ + e1_) + e2_) + e3_)) + (0.6f * graze_1)))); } if isBoard { let _e1341 = frame.gilt.y; local_21 = (_e1341 > 0f); } else { local_21 = false; } let _e1345 = local_21; if _e1345 { let _e1346 = art; let gilt = smoothstep(0.05f, 0.22f, dot(_e1346, vec3(0.2126f, 0.7152f, 0.0722f))); let _e1355 = color; let _e1358 = frame.gilt; color = (_e1355 + (_e1358.xyz * gilt)); } let _e1365 = frame.bounce.w; let br = max(_e1365, 0.001f); let bounceK = (1f / (1f + (d2_ / (br * br)))); let _e1374 = color; let _e1375 = albedo; let _e1378 = frame.ambient; let _e1382 = frame.bounce; let _e1387 = ao; color = (_e1374 + ((_e1375 * (_e1378.xyz + (_e1382.xyz * bounceK))) * _e1387)); if isCard { local_22 = (in_1.look.w < -1f); } else { local_22 = false; } let _e1397 = local_22; if _e1397 { local_23 = (in_1.look.w > -2.5f); } else { local_23 = false; } let _e1405 = local_23; if _e1405 { let _e1406 = color; let _e1407 = art; let _e1408 = art; let _e1417 = frame.moonshine; color = (_e1406 + ((mix(_e1407, vec3(dot(_e1408, vec3(0.33f))), 0.35f) * _e1417.xyz) * (-1f - in_1.look.w))); } if isCard { local_24 = (in_1.look.w <= -2.5f); } else { local_24 = false; } let _e1433 = local_24; if _e1433 { let v_1 = (-3f - in_1.look.w); thread = clamp(v_1, 0f, 1f); if (v_1 > 1f) { let prog = clamp((v_1 - 1f), 0f, 1f); let d_5 = (in_1.q - vec2(0.5f, 0.5f)); let a_5 = fract(((atan2(d_5.x, d_5.y) * 0.15915494f) + 1f)); let behind = ((prog * 1.15f) - a_5); thread = (smoothstep(-0.015f, 0f, behind) * (1f + (THREAD_HEAD * exp((-(max(behind, 0f)) * 16f))))); } let _e1479 = art; let _e1480 = luma(_e1479); let ink = (1f - smoothstep(0.06f, 0.3f, _e1480)); let _e1486 = color; let _e1489 = frame.glow; let _e1492 = thread; color = (_e1486 + (_e1489.xyz * (((THREAD_GAIN * _e1492) * ink) * inkEdge))); } let _e1503 = frame.charm.x; let gw = (in_1.edges.w * _e1503); if isCard { local_25 = (gw > 0f); } else { local_25 = false; } let _e1510 = local_25; if _e1510 { let _e1511 = art; let _e1512 = luma(_e1511); let inkC = (1f - smoothstep(0.06f, 0.3f, _e1512)); let lines = (((inkC * inkEdge) * select(0f, 1f, facing)) * (0.75f + (0.25f * gw))); let _e1532 = cutDist; let rim = (1f - smoothstep(0f, max(0.006f, (fp_1 * 1.5f)), _e1532)); let blaze = smoothstep(0.65f, 1.5f, gw); let within = (((mix(0.5f, 1.3f, _e300.formation) * (1f - (0.85f * inkC))) * select(0.55f, 1f, facing)) * blaze); let _e1559 = frame.charmColor.w; let _e1568 = vnoise(((sheet_4 * 9f) + vec2((_e1559 * 1.1f), (in_1.look.z * 17f)))); let shimmer = (0.8f + (0.2f * _e1568)); let _e1576 = frame.charm.y; let _e1581 = frame.charm.z; let _e1587 = frame.charm.w; let lit_2 = (((_e1576 * lines) + (_e1581 * rim)) + (_e1587 * within)); let _e1590 = color; let _e1593 = frame.charmColor; color = (_e1590 + (_e1593.xyz * ((gw * shimmer) * lit_2))); } charge = phosF16_; let _e1603 = frame.glow.w; if (_e1603 > 0.5f) { let _e1606 = phosphorPacked(puv_1); charge = _e1606; } if isPage { let _e1612 = frame.view.y; local_26 = (_e1612 > 0.5f); } else { local_26 = false; } let _e1616 = local_26; if _e1616 { let pigment = mix(0.8f, 1.12f, _e300.formation); let _e1621 = color; let _e1624 = frame.glow; let _e1626 = charge; color = (_e1621 + (_e1624.xyz * (((_e1626 * maskA) * pigment) * _e114))); let _e1638 = frame.moonshine.w; let invocation = (smoothstep(0.3f, 0.75f, maskA) * _e1638); let _e1640 = color; let _e1643 = frame.glow; color = (_e1640 + (_e1643.xyz * (((invocation * pigment) * _e114) * 4f))); } if isCard { let _e1656 = frame.view.y; local_27 = (_e1656 > 0.5f); } else { local_27 = false; } let _e1660 = local_27; if _e1660 { let _e1663 = Ng; let probe = (in_1.world.xz + (_e1663.xz * 0.05f)); let _e1672 = frame.pageRect.x; let _e1677 = frame.pageRect.z; let _e1683 = frame.pageRect.y; let _e1688 = frame.pageRect.w; let puv2_ = vec2(((probe.x - _e1672) * _e1677), ((probe.y - _e1683) * _e1688)); let _e1694 = textureSampleLevel(phosphorTex, mapSamp, puv2_, 0f); c2_ = _e1694.x; let _e1700 = frame.glow.w; if (_e1700 > 0.5f) { let _e1703 = phosphorPacked(puv2_); c2_ = _e1703; } let lift_1 = exp((-(hostH) / 0.09f)); let _e1708 = color; let _e1709 = albedo; let _e1712 = frame.glow; let _e1715 = c2_; let _e1716 = inUnit(puv2_); let _e1722 = frame.view.z; color = (_e1708 + ((_e1709 * _e1712.xyz) * (((_e1715 * _e1716) * lift_1) * _e1722))); } if (viewMode > 0.5f) { local_28 = (viewMode < 1.5f); } else { local_28 = false; } let _e1733 = local_28; if _e1733 { let _e1734 = charge; let _e1737 = charge; let _e1738 = charge; color = (vec3((_e1734 * 0.35f), _e1737, (_e1738 * 0.5f)) * select(0.02f, 1f, isPage)); } else { if (viewMode > 1.5f) { local_29 = (viewMode < 2.5f); } else { local_29 = false; } let _e1753 = local_29; if _e1753 { color = (vec3(maskA) * select(0.02f, 1f, isPage)); } else { if (viewMode > 2.5f) { local_30 = (viewMode < 3.5f); } else { local_30 = false; } let _e1766 = local_30; if _e1766 { let _e1767 = ao; color = vec3(select(_e1767, aoMap, isPage)); } else { if (viewMode > 5.5f) { local_31 = (viewMode < 6.5f); } else { local_31 = false; } let _e1777 = local_31; if _e1777 { let _e1778 = vis; color = vec3(_e1778); } else { if (viewMode > 7.5f) { local_32 = (viewMode < 8.5f); } else { local_32 = false; } let _e1787 = local_32; if _e1787 { color = vec3(select(0f, 1f, isCard)); } } } } } let _e1792 = color; let _e1796 = frame.camPos; let _e1800 = frame.lightPos; let _e1804 = frame.haze; let _e1807 = frame.glowAir; let _e1808 = atmosphere(_e1792, in_1.world, _e1796.xyz, _e1800.xyz, _e1804, _e1807); color = _e1808; let _e1809 = color; let _e1813 = frame.camPos.w; let _e1814 = encodeHdr(_e1809, _e1813); let _e1815 = cov; let _e1817 = cov; return vec4((_e1814 * _e1815), _e1817); }  ` -6`´FRÇpŒÆÁÅe%vs_mainmain$P#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct Frame { mat4x4 viewProj; mat4x4 lightViewProj; vec4 lightPos; vec4 lightColor; vec4 ambient; vec4 shadowA; vec4 camPos; vec4 paperA; vec4 paperB; vec4 paperC; vec4 glow; vec4 pageRect; vec4 view; vec4 moonDir; vec4 moonColor; vec4 bounce; vec4 shadowB; vec4 pages; vec4 table; vec4 highlight; vec4 rim; vec4 moonshine; vec4 haze; vec4 glowAir; vec4 crease; vec4 windA; vec4 windB; vec4 charm; vec4 charmColor; vec4 charmLight; vec4 fill; vec4 gilt; }; struct VsOut { vec4 position; vec3 world; vec2 uv; vec2 q; vec4 normal; vec4 tangent; vec4 bitangent; vec4 clip; vec4 params; vec4 look; vec4 edges; vec3 bent; }; struct PaperSurf { vec2 slope; float tone; float formation; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; const float WIND_TAU = 6.2831855; const float THREAD_GAIN = 9.0; const float THREAD_HEAD = 2.2; const vec3 PAPER_LIN = vec3(0.8631, 0.7913, 0.6445); const vec3 SHADOW_PAPER_LIN = vec3(0.6867, 0.5972, 0.4342); const float BOUNCE_REACH_MAX = 0.3; const float CREASE_DARK = 0.3; const float CUT_DARK = 0.18; const float GUTTER_DARK = 0.38; layout(std140) uniform Frame_block_0Vertex { Frame _group_0_binding_0_vs; }; layout(location = 0) in vec2 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec4 _p2vs_location10; smooth out vec3 _vs2fs_location0; smooth out vec2 _vs2fs_location1; smooth out vec2 _vs2fs_location2; flat out vec4 _vs2fs_location3; flat out vec4 _vs2fs_location4; flat out vec4 _vs2fs_location5; flat out vec4 _vs2fs_location6; flat out vec4 _vs2fs_location7; flat out vec4 _vs2fs_location8; flat out vec4 _vs2fs_location9; smooth out vec3 _vs2fs_location10; vec3 srgbToLinear(vec3 c) { vec3 x_1 = max(c, vec3(0.0)); vec3 lo = (x_1 * 0.07739938); vec3 hi = pow(((x_1 + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x_1, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_2 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_2 * 12.92); vec3 hi_1 = ((1.055 * pow(x_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_2, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_4 = floor(p_1); vec2 f = (p_1 - i_4); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_5 = floor(p_2); vec2 f_1 = (p_2 - i_5); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } vec3 atmosphere(vec3 col, vec3 world_1, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world_1 - eye_1); float dist_2 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_2, 1e-5))); float T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_33 = false; bool local_34 = false; bool local_35 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_3 = ((x1_ - x0_) * 0.5); float cx = (x0_ + r_3); float s_2 = max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_33 = (q.x > (x1_ + s_2)); } else { local_33 = true; } bool _e25 = local_33; if (!(_e25)) { local_34 = (q.y < (sill - s_2)); } else { local_34 = true; } bool _e33 = local_34; if (!(_e33)) { local_35 = (q.y > ((spring + r_3) + s_2)); } else { local_35 = true; } bool _e42 = local_35; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); float dArch = (r_3 - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_2), s_2, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_2), ((bw * 0.8) + s_2), tf)) * step(q.y, spring))); float a_1 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_1 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_2), ((bw * 0.7) + s_2), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_2)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_2), (0.012 + s_2), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_1 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_2 = (qa + (t_1 * qd)); float s_4 = (((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_2, win_2, win2_2, (0.008 + (s_4 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d_3 = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d_3; d_3 = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d_3; d_3 = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d_3; d_3 = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d_3; d_3 = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a_2 = (pin.xy * size); vec2 ab = ((pin.zw * size) - a_2); float t_2 = clamp((dot((sheet - a_2), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d_3; d_3 = min(_e65, length((sheet - (a_2 + (ab * t_2))))); } float _e71 = d_3; return _e71; } float windDisp(vec3 P0_, vec3 N_1, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_3 = wa.z; vec2 dir_3 = wb.xy; float along = dot(P0_.xz, dir_3); float _e26 = vnoise(vec2(((along * 6.0) - (t_3 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N_1.xz, dir_3); float _e54 = vnoise(vec2(((t_3 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_3 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_3 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_2, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_2, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_2, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_2 = normalize(((N_2 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_2, d0_); } vec3 fibreLayer(vec3 n, mat2x2 r_1, vec2 a) { float k_1 = (1.0 - abs(n.x)); float k3_ = ((k_1 * k_1) * k_1); float ridge = (k3_ * k_1); vec2 gN = (n.yz * ((-4.0 * k3_) * sign(n.x))); vec2 g_3 = (transpose(r_1) * ((gN * a) / vec2(a.y))); return vec3(ridge, g_3); } PaperSurf paperSurface(vec2 q_1, float fp, float scale) { PaperSurf s_1 = PaperSurf(vec2(0.0), 0.0, 0.0); float _e10 = vnoise(((q_1 * (7.0 * scale)) + vec2(3.1, 7.7))); float _e18 = vnoise(((q_1 * (19.0 * scale)) + vec2(11.7, 4.2))); float t1f = (150.0 * scale); float t2f = (340.0 * scale); vec3 _e28 = vnoiseD(((q_1 * t1f) + vec2(7.3, 1.9))); vec3 _e34 = vnoiseD(((q_1 * t2f) + vec2(2.1, 9.4))); float ft1_ = clamp((1.5 - ((fp * t1f) * 1.3)), 0.0, 1.0); float ft2_ = clamp((1.5 - ((fp * t2f) * 1.3)), 0.0, 1.0); mat2x2 r1_ = mat2x2(vec2(0.9063, 0.4226), vec2(-0.4226, 0.9063)); mat2x2 r2_ = mat2x2(vec2(-0.342, 0.9397), vec2(-0.9397, -0.342)); mat2x2 r3_ = mat2x2(vec2(0.5, -0.866), vec2(0.866, 0.5)); vec2 a_3 = (vec2(95.0, 280.0) * scale); vec3 _e78 = vnoiseD(((r1_ * q_1) * a_3)); vec3 _e79 = fibreLayer(_e78, r1_, a_3); vec3 _e86 = vnoiseD((((r2_ * q_1) * a_3) + vec2(31.0, 17.0))); vec3 _e87 = fibreLayer(_e86, r2_, a_3); vec3 _e94 = vnoiseD((((r3_ * q_1) * a_3) + vec2(5.0, 43.0))); vec3 _e95 = fibreLayer(_e94, r3_, a_3); float fF = clamp((1.5 - ((fp * a_3.y) * 1.2)), 0.0, 1.0); float fibres = (((_e79.x + _e87.x) + _e95.x) * fF); s_1.formation = clamp((((0.5 + (0.36 * _e10)) + (0.24 * _e18)) + (0.1 * fibres)), 0.0, 1.0); s_1.tone = ((((1.0 + (0.08 * ((0.36 * _e10) + (0.24 * _e18)))) + ((0.022 * _e28.x) * ft1_)) + ((0.012 * _e34.x) * ft2_)) + (0.03 * (fibres - 0.3))); s_1.slope = (((_e28.yz * (0.9 * ft1_)) + (_e34.yz * (0.45 * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18 * fF))); PaperSurf _e170 = s_1; return _e170; } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } float shoulder(float x, float knee, float r_2) { bool local_36 = false; if (!((x <= knee))) { local_36 = (r_2 <= 0.0); } else { local_36 = true; } bool _e10 = local_36; if (_e10) { return x; } return (knee + (r_2 * log((1.0 + ((x - knee) / r_2))))); } vec3 sideDist(vec2 sheet_3, vec2 size_3, float mask_3) { vec3 best = vec3(1000.0, 0.0, 0.0); bool local_37 = false; bool local_38 = false; bool local_39 = false; bool local_40 = false; uint m_1 = uint((clamp(mask_3, 0.0, 15.0) + 0.5)); if (((m_1 & 1u) != 0u)) { float _e22 = best.x; local_37 = (sheet_3.x < _e22); } else { local_37 = false; } bool _e25 = local_37; if (_e25) { best = vec3(sheet_3.x, -1.0, 0.0); } if (((m_1 & 2u) != 0u)) { float _e40 = best.x; local_38 = ((size_3.x - sheet_3.x) < _e40); } else { local_38 = false; } bool _e43 = local_38; if (_e43) { best = vec3((size_3.x - sheet_3.x), 1.0, 0.0); } if (((m_1 & 4u) != 0u)) { float _e58 = best.x; local_39 = (sheet_3.y < _e58); } else { local_39 = false; } bool _e61 = local_39; if (_e61) { best = vec3(sheet_3.y, 0.0, -1.0); } if (((m_1 & 8u) != 0u)) { float _e76 = best.x; local_40 = ((size_3.y - sheet_3.y) < _e76); } else { local_40 = false; } bool _e79 = local_40; if (_e79) { best = vec3((size_3.y - sheet_3.y), 0.0, 1.0); } vec3 _e86 = best; return _e86; } float inUnit(vec2 p_7) { return (((step(0.0, p_7.x) * step(p_7.x, 1.0)) * step(0.0, p_7.y)) * step(p_7.y, 1.0)); } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9, _p2vs_location10); vec3 world = vec3(0.0); vec3 bent = vec3(0.0); bool local = false; VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec2(0.0), vec2(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec3(0.0)); mat4x4 model = mat4x4(in_.m0_, in_.m1_, in_.m2_, in_.m3_); world = (model * vec4(in_.q, 0.0, 1.0)).xyz; float w_1 = length(in_.m0_.xyz); float h = length(in_.m1_.xyz); vec3 N0_ = normalize(in_.m2_.xyz); bent = N0_; if ((in_.edges.z > 0.0)) { float _e32 = _group_0_binding_0_vs.windA.w; local = (_e32 > 0.0); } else { local = false; } bool _e36 = local; if (_e36) { vec2 size_4 = vec2(w_1, h); vec3 _e38 = world; vec4 _e62 = _group_0_binding_0_vs.windA; vec4 _e65 = _group_0_binding_0_vs.windB; vec4 _e66 = windBend(_e38, N0_, (in_.m0_.xyz / vec3(max(w_1, 1e-6))), (in_.m1_.xyz / vec3(max(h, 1e-6))), (in_.q * size_4), size_4, in_.edges.x, in_.pin, in_.look.z, in_.edges.z, _e62, _e65); vec3 _e67 = world; world = (_e67 + (N0_ * _e66.w)); bent = _e66.xyz; } mat4x4 _e76 = _group_0_binding_0_vs.viewProj; vec3 _e77 = world; out_.position = (_e76 * vec4(_e77, 1.0)); vec3 _e82 = world; out_.world = _e82; out_.uv = (in_.uvRect.xy + (in_.q * in_.uvRect.zw)); out_.q = in_.q; out_.normal = vec4(normalize(in_.m2_.xyz), 0.0); out_.tangent = vec4((in_.m0_.xyz / vec3(max(w_1, 1e-6))), w_1); out_.bitangent = vec4((in_.m1_.xyz / vec3(max(h, 1e-6))), h); out_.clip = in_.clip; out_.params = in_.params; out_.look = in_.look; out_.edges = in_.edges; vec3 _e124 = bent; out_.bent = _e124; VsOut _e125 = out_; gl_Position = _e125.position; _vs2fs_location0 = _e125.world; _vs2fs_location1 = _e125.uv; _vs2fs_location2 = _e125.q; _vs2fs_location3 = _e125.normal; _vs2fs_location4 = _e125.tangent; _vs2fs_location5 = _e125.bitangent; _vs2fs_location6 = _e125.clip; _vs2fs_location7 = _e125.params; _vs2fs_location8 = _e125.look; _vs2fs_location9 = _e125.edges; _vs2fs_location10 = _e125.bent; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainëÁ#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct Frame { mat4x4 viewProj; mat4x4 lightViewProj; vec4 lightPos; vec4 lightColor; vec4 ambient; vec4 shadowA; vec4 camPos; vec4 paperA; vec4 paperB; vec4 paperC; vec4 glow; vec4 pageRect; vec4 view; vec4 moonDir; vec4 moonColor; vec4 bounce; vec4 shadowB; vec4 pages; vec4 table; vec4 highlight; vec4 rim; vec4 moonshine; vec4 haze; vec4 glowAir; vec4 crease; vec4 windA; vec4 windB; vec4 charm; vec4 charmColor; vec4 charmLight; vec4 fill; vec4 gilt; }; struct VsOut { vec4 position; vec3 world; vec2 uv; vec2 q; vec4 normal; vec4 tangent; vec4 bitangent; vec4 clip; vec4 params; vec4 look; vec4 edges; vec3 bent; }; struct PaperSurf { vec2 slope; float tone; float formation; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; const float WIND_TAU = 6.2831855; const float THREAD_GAIN = 9.0; const float THREAD_HEAD = 2.2; const vec3 PAPER_LIN = vec3(0.8631, 0.7913, 0.6445); const vec3 SHADOW_PAPER_LIN = vec3(0.6867, 0.5972, 0.4342); const float BOUNCE_REACH_MAX = 0.3; const float CREASE_DARK = 0.3; const float CUT_DARK = 0.18; const float GUTTER_DARK = 0.38; layout(std140) uniform Frame_block_0Fragment { Frame _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_3_fs; uniform highp sampler2D _group_0_binding_4_fs; uniform highp sampler2D _group_0_binding_5_fs; uniform highp sampler2D _group_1_binding_0_fs; smooth in vec3 _vs2fs_location0; smooth in vec2 _vs2fs_location1; smooth in vec2 _vs2fs_location2; flat in vec4 _vs2fs_location3; flat in vec4 _vs2fs_location4; flat in vec4 _vs2fs_location5; flat in vec4 _vs2fs_location6; flat in vec4 _vs2fs_location7; flat in vec4 _vs2fs_location8; flat in vec4 _vs2fs_location9; smooth in vec3 _vs2fs_location10; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x_1 = max(c, vec3(0.0)); vec3 lo = (x_1 * 0.07739938); vec3 hi = pow(((x_1 + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x_1, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_2 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_2 * 12.92); vec3 hi_1 = ((1.055 * pow(x_2, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_2, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_4 = floor(p_1); vec2 f = (p_1 - i_4); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_5 = floor(p_2); vec2 f_1 = (p_2 - i_5); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL = (light - eye); float t0_ = dot(toL, dir); float h2_ = max((dot(toL, toL) - (t0_ * t0_)), 0.0); float k = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k)) + atan((t0_ / k))) / k); } vec3 atmosphere(vec3 col, vec3 world_1, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world_1 - eye_1); float dist_2 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_2, 1e-5))); float T_1 = exp((-(haze.w) * max((dist_2 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return (((col * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_33 = false; bool local_34 = false; bool local_35 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_3 = ((x1_ - x0_) * 0.5); float cx = (x0_ + r_3); float s_2 = max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_33 = (q.x > (x1_ + s_2)); } else { local_33 = true; } bool _e25 = local_33; if (!(_e25)) { local_34 = (q.y < (sill - s_2)); } else { local_34 = true; } bool _e33 = local_34; if (!(_e33)) { local_35 = (q.y > ((spring + r_3) + s_2)); } else { local_35 = true; } bool _e42 = local_35; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_2), s_2, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_2), s_2, (q.y - sill))); float dArch = (r_3 - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_2), s_2, dArch); float open = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_2), (bw + s_2), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_2), ((bw * 0.8) + s_2), tf)) * step(q.y, spring))); float a_1 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_1 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_2), ((bw * 0.7) + s_2), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_2)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_2), (0.012 + s_2), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_3 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_3)), s_3); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g) { float gg = (g * g); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_1 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_2 = (qa + (t_1 * qd)); float s_4 = (((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_2, win_2, win2_2, (0.008 + (s_4 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_4) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d_3 = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d_3; d_3 = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d_3; d_3 = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d_3; d_3 = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d_3; d_3 = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a_2 = (pin.xy * size); vec2 ab = ((pin.zw * size) - a_2); float t_2 = clamp((dot((sheet - a_2), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d_3; d_3 = min(_e65, length((sheet - (a_2 + (ab * t_2))))); } float _e71 = d_3; return _e71; } float windDisp(vec3 P0_, vec3 N_1, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_3 = wa.z; vec2 dir_3 = wb.xy; float along = dot(P0_.xz, dir_3); float _e26 = vnoise(vec2(((along * 6.0) - (t_3 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N_1.xz, dir_3); float _e54 = vnoise(vec2(((t_3 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_3 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_3 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_2, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_2, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_2, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_2 = normalize(((N_2 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_2, d0_); } float shadowVisibility(mat4x4 lvp, vec4 sa, vec4 sb, vec3 world_2, vec2 fragXY, vec2 lightXZ) { float p_6 = 0.0; vec4 lc = (lvp * vec4(world_2, 1.0)); vec3 ndc = (lc.xyz / vec3(lc.w)); vec2 uv = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); float d_4 = ((lc.w * sa.x) - sa.y); vec4 _e32 = textureLod(_group_0_binding_1_fs, vec2(uv), 0.0); vec2 m_1 = _e32.xy; float variance = max((m_1.y - (m_1.x * m_1.x)), 2e-5); float delta = (d_4 - m_1.x); p_6 = (variance / (variance + (delta * delta))); float bleed = sa.z; float _e48 = p_6; p_6 = clamp(((_e48 - bleed) / (1.0 - bleed)), 0.0, 1.0); float _e56 = p_6; float lit_1 = ((d_4 <= m_1.x) ? 1.0 : _e56); float inside = ((((step(0.0, uv.x) * step(uv.x, 1.0)) * step(0.0, uv.y)) * step(uv.y, 1.0)) * step(0.0, lc.w)); return mix(1.0, lit_1, inside); } float shadowVisibilityWide(mat4x4 lvp_1, vec4 sa_1, vec4 sb_1, vec3 world_3, vec2 fragXY_1, float r) { float lit = 0.0; int i_3 = 0; float _e10 = ign((fragXY_1 + vec2(5.0, 3.0))); float angle = (6.2831855 * _e10); float cs = ((cos(angle) * r) * 0.7); float sn = ((sin(angle) * r) * 0.7); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e58 = i_3; i_3 = (_e58 + 1); } loop_init_1 = false; int _e25 = i_3; if ((_e25 < 4)) { } else { break; } { int _e32 = i_3; int _e40 = i_3; int _e44 = i_3; vec2 o_1 = ((_e44 < 2) ? ((_e40 == 1) ? vec2(-(cs), -(sn)) : vec2(cs, sn)) : ((_e32 == 3) ? vec2(sn, -(cs)) : vec2(-(sn), cs))); float _e48 = lit; float _e56 = shadowVisibility(lvp_1, sa_1, sb_1, (world_3 + vec3(o_1.x, 0.0, o_1.y)), fragXY_1, vec2(0.0)); lit = (_e48 + _e56); } } float _e61 = lit; return (_e61 * 0.25); } vec3 fibreLayer(vec3 n, mat2x2 r_1, vec2 a) { float k_1 = (1.0 - abs(n.x)); float k3_ = ((k_1 * k_1) * k_1); float ridge = (k3_ * k_1); vec2 gN = (n.yz * ((-4.0 * k3_) * sign(n.x))); vec2 g_3 = (transpose(r_1) * ((gN * a) / vec2(a.y))); return vec3(ridge, g_3); } PaperSurf paperSurface(vec2 q_1, float fp, float scale) { PaperSurf s_1 = PaperSurf(vec2(0.0), 0.0, 0.0); float _e10 = vnoise(((q_1 * (7.0 * scale)) + vec2(3.1, 7.7))); float _e18 = vnoise(((q_1 * (19.0 * scale)) + vec2(11.7, 4.2))); float t1f = (150.0 * scale); float t2f = (340.0 * scale); vec3 _e28 = vnoiseD(((q_1 * t1f) + vec2(7.3, 1.9))); vec3 _e34 = vnoiseD(((q_1 * t2f) + vec2(2.1, 9.4))); float ft1_ = clamp((1.5 - ((fp * t1f) * 1.3)), 0.0, 1.0); float ft2_ = clamp((1.5 - ((fp * t2f) * 1.3)), 0.0, 1.0); mat2x2 r1_ = mat2x2(vec2(0.9063, 0.4226), vec2(-0.4226, 0.9063)); mat2x2 r2_ = mat2x2(vec2(-0.342, 0.9397), vec2(-0.9397, -0.342)); mat2x2 r3_ = mat2x2(vec2(0.5, -0.866), vec2(0.866, 0.5)); vec2 a_3 = (vec2(95.0, 280.0) * scale); vec3 _e78 = vnoiseD(((r1_ * q_1) * a_3)); vec3 _e79 = fibreLayer(_e78, r1_, a_3); vec3 _e86 = vnoiseD((((r2_ * q_1) * a_3) + vec2(31.0, 17.0))); vec3 _e87 = fibreLayer(_e86, r2_, a_3); vec3 _e94 = vnoiseD((((r3_ * q_1) * a_3) + vec2(5.0, 43.0))); vec3 _e95 = fibreLayer(_e94, r3_, a_3); float fF = clamp((1.5 - ((fp * a_3.y) * 1.2)), 0.0, 1.0); float fibres = (((_e79.x + _e87.x) + _e95.x) * fF); s_1.formation = clamp((((0.5 + (0.36 * _e10)) + (0.24 * _e18)) + (0.1 * fibres)), 0.0, 1.0); s_1.tone = ((((1.0 + (0.08 * ((0.36 * _e10) + (0.24 * _e18)))) + ((0.022 * _e28.x) * ft1_)) + ((0.012 * _e34.x) * ft2_)) + (0.03 * (fibres - 0.3))); s_1.slope = (((_e28.yz * (0.9 * ft1_)) + (_e34.yz * (0.45 * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18 * fF))); PaperSurf _e170 = s_1; return _e170; } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } float phosphorPacked(vec2 puv) { vec2 dims = vec2(uvec2(textureSize(_group_0_binding_3_fs, 0).xy)); vec2 st = ((clamp(puv, vec2(0.0), vec2(1.0)) * dims) - vec2(0.5)); ivec2 i0_ = ivec2(floor(st)); vec2 fr = (st - floor(st)); ivec2 mx = (ivec2(dims) - ivec2(1)); vec4 _e26 = texelFetch(_group_0_binding_3_fs, min(max(i0_, ivec2(0)), mx), 0); float _e27 = unpack16_(_e26); vec4 _e37 = texelFetch(_group_0_binding_3_fs, min(max((i0_ + ivec2(1, 0)), ivec2(0)), mx), 0); float _e38 = unpack16_(_e37); vec4 _e48 = texelFetch(_group_0_binding_3_fs, min(max((i0_ + ivec2(0, 1)), ivec2(0)), mx), 0); float _e49 = unpack16_(_e48); vec4 _e59 = texelFetch(_group_0_binding_3_fs, min(max((i0_ + ivec2(1, 1)), ivec2(0)), mx), 0); float _e60 = unpack16_(_e59); return mix(mix(_e27, _e38, fr.x), mix(_e49, _e60, fr.x), fr.y); } float shoulder(float x, float knee, float r_2) { bool local_36 = false; if (!((x <= knee))) { local_36 = (r_2 <= 0.0); } else { local_36 = true; } bool _e10 = local_36; if (_e10) { return x; } return (knee + (r_2 * log((1.0 + ((x - knee) / r_2))))); } vec3 sideDist(vec2 sheet_3, vec2 size_3, float mask_3) { vec3 best = vec3(1000.0, 0.0, 0.0); bool local_37 = false; bool local_38 = false; bool local_39 = false; bool local_40 = false; uint m_2 = uint((clamp(mask_3, 0.0, 15.0) + 0.5)); if (((m_2 & 1u) != 0u)) { float _e22 = best.x; local_37 = (sheet_3.x < _e22); } else { local_37 = false; } bool _e25 = local_37; if (_e25) { best = vec3(sheet_3.x, -1.0, 0.0); } if (((m_2 & 2u) != 0u)) { float _e40 = best.x; local_38 = ((size_3.x - sheet_3.x) < _e40); } else { local_38 = false; } bool _e43 = local_38; if (_e43) { best = vec3((size_3.x - sheet_3.x), 1.0, 0.0); } if (((m_2 & 4u) != 0u)) { float _e58 = best.x; local_39 = (sheet_3.y < _e58); } else { local_39 = false; } bool _e61 = local_39; if (_e61) { best = vec3(sheet_3.y, 0.0, -1.0); } if (((m_2 & 8u) != 0u)) { float _e76 = best.x; local_40 = ((size_3.y - sheet_3.y) < _e76); } else { local_40 = false; } bool _e79 = local_40; if (_e79) { best = vec3((size_3.y - sheet_3.y), 0.0, 1.0); } vec3 _e86 = best; return _e86; } float inUnit(vec2 p_7) { return (((step(0.0, p_7.x) * step(p_7.x, 1.0)) * step(0.0, p_7.y)) * step(p_7.y, 1.0)); } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9, _vs2fs_location10); float cov = 0.0; bool local_1 = false; bool local_2 = false; bool local_3 = false; vec3 art = vec3(0.0); bool local_4 = false; vec3 Ng = vec3(0.0); bool local_5 = false; vec3 albedo = vec3(0.0); bool local_6 = false; vec3 N = vec3(0.0); float crease = 0.0; bool local_7 = false; bool local_8 = false; float cutBand = 0.0; vec3 cutOut = vec3(0.0); float cutDist = 1000.0; bool local_9 = false; float fd = 0.0; bool local_10 = false; float e = 0.0; vec2 o = vec2(0.0); bool local_11 = false; float vis = 1.0; bool local_12 = false; vec3 trans = vec3(0.0); bool local_13 = false; float ao = 1.0; float visT = 0.0; vec3 lift = vec3(0.0); bool local_14 = false; bool local_15 = false; float visQ = 1.0; vec3 color = vec3(0.0); bool local_16 = false; vec3 moonTrans = vec3(0.0); bool local_17 = false; bool local_18 = false; bool local_19 = false; bool local_20 = false; bool local_21 = false; bool local_22 = false; bool local_23 = false; bool local_24 = false; float thread = 0.0; bool local_25 = false; float charge = 0.0; bool local_26 = false; bool local_27 = false; float c2_ = 0.0; bool local_28 = false; bool local_29 = false; bool local_30 = false; bool local_31 = false; bool local_32 = false; vec4 texel = texture(_group_1_binding_0_fs, vec2(in_1.uv)); bool textured = (in_1.params.w < 0.0); float a_4 = (textured ? texel.w : 1.0); float aWidth = fwidth(a_4); float _e19 = luma((texel.xyz / vec3(max(texel.w, 0.0001)))); float _e20 = fwidth(_e19); float inkEdge = clamp((_e20 * 7.0), 0.0, 1.0); float rd = (0.5 - length((in_1.q - vec2(0.5, 0.5)))); float rdWidth = fwidth(rd); float cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); float cdWidth = fwidth(cd); vec2 sheetSize = vec2(in_1.tangent.w, in_1.bitangent.w); vec2 sheet_4 = (in_1.q * sheetSize); vec2 fw = fwidth(sheet_4); float fp_1 = max(max(fw.x, fw.y), 1e-6); vec2 dsx = dFdx(sheet_4); vec2 dsy = dFdy(sheet_4); float dax = dFdx(a_4); float day = dFdy(a_4); vec2 puvPage = vec2((in_1.look.w + (0.5 * in_1.q.x)), (1.0 - in_1.q.y)); float _e77 = _group_0_binding_0_fs.pageRect.x; float _e82 = _group_0_binding_0_fs.pageRect.z; float _e89 = _group_0_binding_0_fs.pageRect.y; float _e94 = _group_0_binding_0_fs.pageRect.w; vec2 puvWorld = vec2(((in_1.world.x - _e77) * _e82), ((in_1.world.z - _e89) * _e94)); vec2 puv_1 = ((in_1.look.w >= 0.0) ? puvPage : puvWorld); vec4 _e104 = texture(_group_0_binding_3_fs, vec2(puv_1)); float phosF16_ = _e104.x; vec4 _e108 = texture(_group_0_binding_4_fs, vec2(puv_1)); float maskA = _e108.w; vec4 _e112 = texture(_group_0_binding_5_fs, vec2(puv_1)); float aoMap = _e112.x; float _e114 = inUnit(puv_1); float soft_1 = clamp((((a_4 - 0.5) / max(aWidth, 0.0001)) + 0.5), 0.0, 1.0); float _e130 = _group_0_binding_0_fs.view.w; cov = ((_e130 > 0.5) ? soft_1 : step(0.5, a_4)); float _e135 = cov; cov = ((in_1.params.y > 0.5) ? _e135 : 1.0); float _e142 = cov; cov = (_e142 * ((in_1.params.z > 0.5) ? clamp(((rd / max(rdWidth, 1e-6)) + 0.5), 0.0, 1.0) : 1.0)); float _e158 = cov; cov = (_e158 * ((in_1.clip.w > 0.5) ? clamp(((cd / max(cdWidth, 1e-6)) + 0.5), 0.0, 1.0) : 1.0)); float _e174 = cov; if ((_e174 <= 0.0)) { discard; } float kind = in_1.look.x; if ((kind > 0.5)) { local_1 = (kind < 1.5); } else { local_1 = false; } bool isPage = local_1; if ((kind > 1.5)) { local_2 = (kind < 2.5); } else { local_2 = false; } bool isBoard = local_2; bool isCard = (kind < 0.5); if ((kind > 2.5)) { local_3 = (kind < 3.5); } else { local_3 = false; } bool isLeaf = local_3; float side = in_1.look.y; float viewMode = _group_0_binding_0_fs.view.x; vec3 tone = ((in_1.params.w > 0.5) ? SHADOW_PAPER_LIN : PAPER_LIN); vec3 _e224 = srgbToLinear((texel.xyz / vec3(max(texel.w, 0.0001)))); art = (textured ? _e224 : tone); if ((viewMode > 4.5)) { local_4 = (viewMode < 5.5); } else { local_4 = false; } bool _e234 = local_4; if (_e234) { art = vec3(0.6); } vec4 _e239 = _group_0_binding_0_fs.camPos; vec3 V = normalize((_e239.xyz - in_1.world)); Ng = normalize(in_1.bent); vec3 _e247 = Ng; bool facing = (dot(_e247, V) >= 0.0); vec3 _e251 = Ng; vec3 _e253 = Ng; Ng = (facing ? _e253 : -(_e251)); vec3 _e257 = art; vec3 reverse = ((kind < -0.5) ? mix(SHADOW_PAPER_LIN, _e257, 0.55) : SHADOW_PAPER_LIN); vec3 _e263 = art; if (!(facing)) { local_5 = !(isCard); } else { local_5 = true; } bool _e269 = local_5; albedo = (_e269 ? _e263 : reverse); if ((viewMode > 4.5)) { local_6 = (viewMode < 5.5); } else { local_6 = false; } bool _e279 = local_6; if (_e279) { albedo = vec3(0.6); } float grainOn = _group_0_binding_0_fs.paperA.x; float _e299 = _group_0_binding_0_fs.paperA.w; PaperSurf _e300 = paperSurface((sheet_4 + vec2((in_1.look.z * 13.7), (in_1.look.z * 5.3))), fp_1, _e299); float grainTone = mix(1.0, _e300.tone, grainOn); vec3 _e304 = albedo; albedo = (_e304 * grainTone); vec3 _e306 = art; art = (_e306 * grainTone); vec3 T_2 = in_1.tangent.xyz; vec3 B_1 = in_1.bitangent.xyz; vec3 _e312 = Ng; N = _e312; if (isPage) { local_7 = (abs(side) > 0.5); } else { local_7 = false; } bool _e322 = local_7; if (_e322) { float _e328 = _group_0_binding_0_fs.paperC.z; local_8 = (_e328 > 0.0); } else { local_8 = false; } bool _e332 = local_8; if (_e332) { float ds = ((side > 0.0) ? (sheetSize.x - sheet_4.x) : sheet_4.x); crease = (1.0 - smoothstep(0.0, 0.075, ds)); vec3 _e345 = N; float _e348 = crease; float _e350 = crease; N = normalize((_e345 + (T_2 * (((side * 0.55) * _e348) * _e350)))); float _e358 = _group_0_binding_0_fs.crease.x; if ((_e358 > 0.0)) { float _e364 = _group_0_binding_0_fs.crease.y; float wG = (_e364 * 1.4); float wGF = max(wG, fp_1); vec3 _e368 = albedo; float _e373 = _group_0_binding_0_fs.crease.x; albedo = (_e368 * (1.0 - (((GUTTER_DARK * _e373) * (1.0 - smoothstep(0.0, wGF, ds))) * (wG / wGF)))); } } float _e389 = _group_0_binding_0_fs.paperA.y; vec2 slope = (_e300.slope * (_e389 * grainOn)); vec3 _e392 = N; N = normalize(((_e392 - (T_2 * slope.x)) - (B_1 * slope.y))); if (isCard) { float _e412 = _group_0_binding_0_fs.crease.x; local_9 = (_e412 > 0.0); } else { local_9 = false; } bool _e416 = local_9; if (_e416) { vec3 _e419 = sideDist(sheet_4, sheetSize, in_1.edges.x); fd = _e419.x; if ((in_1.edges.y > 0.5)) { local_10 = (in_1.clip.w > 0.5); } else { local_10 = false; } bool _e433 = local_10; if (_e433) { float _e434 = fd; fd = min(_e434, abs(cd)); } float wC = _group_0_binding_0_fs.crease.y; float wCF = max(wC, fp_1); float _e442 = fd; float foldLine = ((1.0 - smoothstep(0.0, wCF, _e442)) * (wC / wCF)); vec3 _e449 = albedo; float _e454 = _group_0_binding_0_fs.crease.x; albedo = (_e449 * (1.0 - ((CREASE_DARK * _e454) * foldLine))); vec3 _e464 = sideDist(sheet_4, sheetSize, (15.0 - in_1.edges.x)); e = _e464.x; o = _e464.yz; if (textured) { float det = ((dsx.x * dsy.y) - (dsx.y * dsy.x)); vec2 g_4 = (vec2(((dsy.y * dax) - (dsx.y * day)), ((dsx.x * day) - (dsy.x * dax))) / vec2(((abs(det) < 1e-12) ? 1e-12 : det))); float gl = length(g_4); if ((gl > 1.0)) { float ea = ((a_4 - 0.5) / gl); float _e500 = e; if ((ea < _e500)) { e = ea; o = (-(g_4) / vec2(gl)); } } } if ((in_1.params.z > 0.5)) { vec2 rq = (in_1.q - vec2(0.5, 0.5)); float ed = (rd * sheetSize.x); float _e516 = e; if ((ed < _e516)) { e = ed; o = (rq / vec2(max(length(rq), 1e-6))); } } float t_4 = _group_0_binding_0_fs.crease.z; float tF = max(t_4, fp_1); float _e528 = e; float _e540 = _group_0_binding_0_fs.crease.x; cutBand = (((1.0 - smoothstep(0.0, tF, max(_e528, 0.0))) * (t_4 / tF)) * _e540); float _e542 = e; cutDist = max(_e542, 0.0); float _e546 = o.x; float _e549 = o.y; cutOut = ((T_2 * _e546) + (B_1 * _e549)); vec3 _e552 = albedo; float _e554 = cutBand; albedo = (_e552 * (1.0 - (CUT_DARK * _e554))); } float _e562 = _group_0_binding_0_fs.pages.x; float _e566 = _group_0_binding_0_fs.pages.y; vec3 hostN = ((side > 0.0) ? vec3(0.0, 1.0, 0.0) : vec3(_e562, _e566, 0.0)); float hostH = max(dot(in_1.world, hostN), 0.0); vec3 _e580 = Ng; if (isCard) { local_11 = (abs(side) > 0.5); } else { local_11 = false; } bool _e591 = local_11; float upright = (_e591 ? (1.0 - abs(dot(_e580, hostN))) : 0.0); vec4 _e596 = _group_0_binding_0_fs.lightPos; vec3 toL_1 = (_e596.xyz - in_1.world); float d2_ = dot(toL_1, toL_1); vec3 L = (toL_1 * inversesqrt(max(d2_, 1e-8))); float _e608 = _group_0_binding_0_fs.lightPos.w; float _e612 = _group_0_binding_0_fs.lightColor.w; float atten = (_e608 / (d2_ + _e612)); float _e620 = _group_0_binding_0_fs.shadowA.w; if ((_e620 > 0.5)) { local_12 = (in_1.params.x > 0.5); } else { local_12 = false; } bool _e630 = local_12; if (_e630) { vec3 _e631 = Ng; vec3 _e632 = Ng; float _e642 = _group_0_binding_0_fs.shadowB.y; vec3 offs = (_e631 * (((dot(_e632, L) >= 0.0) ? 1.0 : -1.0) * _e642)); mat4x4 _e647 = _group_0_binding_0_fs.lightViewProj; vec4 _e650 = _group_0_binding_0_fs.shadowA; vec4 _e653 = _group_0_binding_0_fs.shadowB; vec4 _e660 = _group_0_binding_0_fs.lightPos; float _e662 = shadowVisibility(_e647, _e650, _e653, (in_1.world + offs), in_1.position.xy, _e660.xz); vis = _e662; } float wrap = _group_0_binding_0_fs.paperA.z; vec3 _e667 = N; float front_1 = max(((dot(_e667, L) + wrap) / (1.0 + wrap)), 0.0); float lookThrough = mix(0.45, 1.45, _e300.formation); vec3 tint = vec3(1.0, 0.74, 0.46); if (!(isCard)) { local_13 = isLeaf; } else { local_13 = true; } bool _e690 = local_13; if (_e690) { vec3 _e691 = Ng; float back = max(-(dot(_e691, L)), 0.0); float _e703 = _group_0_binding_0_fs.paperB.z; float _e708 = _group_0_binding_0_fs.paperB.y; float fwd = (pow(max(dot(V, -(L)), 0.0), _e703) * _e708); vec3 _e710 = art; vec3 _e711 = art; float _e722 = _group_0_binding_0_fs.paperB.x; trans = (((((_e710 * _e711) * tint) * lookThrough) * (back * (1.0 + fwd))) * _e722); } if (isPage) { float _e729 = _group_0_binding_0_fs.paperC.x; float _e736 = _group_0_binding_0_fs.paperC.z; float _e737 = crease; float _e739 = crease; ao = (mix(1.0, aoMap, (_e729 * _e114)) * (1.0 - ((_e736 * _e737) * _e739))); float ex = ((abs(side) > 0.5) ? ((side > 0.0) ? sheet_4.x : (sheetSize.x - sheet_4.x)) : min(sheet_4.x, (sheetSize.x - sheet_4.x))); float ed_1 = min(ex, min(sheet_4.y, (sheetSize.y - sheet_4.y))); float _e768 = vnoise((sheet_4 * 38.0)); float wob = (_e768 * 0.006); float _e780 = _group_0_binding_0_fs.paperC.y; float edge = ((1.0 - smoothstep(0.0, 0.04, (ed_1 + wob))) * _e780); vec3 _e782 = albedo; albedo = (_e782 * mix(vec3(1.0), vec3(0.78, 0.66, 0.5), edge)); } else { if (isBoard) { float ed_2 = min(min(sheet_4.x, (sheetSize.x - sheet_4.x)), min(sheet_4.y, (sheetSize.y - sheet_4.y))); float _e804 = vnoise((sheet_4 * 45.0)); float wob_1 = (_e804 * 0.004); float _e816 = _group_0_binding_0_fs.paperC.y; float edge_1 = ((1.0 - smoothstep(0.0, 0.022, (ed_2 + wob_1))) * _e816); vec3 _e818 = albedo; vec3 _e819 = albedo; albedo = mix(_e818, ((_e819 * 0.55) + vec3(0.05, 0.045, 0.04)), (edge_1 * 0.8)); } else { float _e833 = _group_0_binding_0_fs.paperB.w; float _e838 = _group_0_binding_0_fs.paperC.w; ao = (1.0 - ((_e833 * exp((-(hostH) / max(_e838, 0.0001)))) * upright)); } } float _e847 = vis; visT = _e847; if (isCard) { float _e857 = _group_0_binding_0_fs.fill.x; local_14 = (_e857 > 0.0); } else { local_14 = false; } bool _e861 = local_14; if (_e861) { float _e865 = _group_0_binding_0_fs.fill.y; float _e866 = vis; visT = mix(_e865, 1.0, _e866); vec3 _e869 = Ng; vec3 _e870 = Ng; vec3 hdir = (_e869 - (hostN * dot(_e870, hostN))); float hl = length(hdir); float _e875 = vis; float _e879 = vis; float missed = ((1.0 - (front_1 * _e875)) * (1.0 - (front_1 * _e879))); vec3 _e884 = Ng; float viewF = ((0.5 * (1.0 - dot(_e884, hostN))) * missed); if ((hl > 0.001)) { local_15 = (viewF > 0.001); } else { local_15 = false; } bool _e898 = local_15; if (_e898) { float _e902 = _group_0_binding_0_fs.fill.z; float _e907 = _group_0_binding_0_fs.fill.w; float reach = min(((_e902 * hostH) + _e907), BOUNCE_REACH_MAX); vec3 Q = ((in_1.world - (hostN * hostH)) + (hdir * (reach / hl))); vec4 _e919 = _group_0_binding_0_fs.lightPos; vec3 toLQ = (_e919.xyz - Q); float dq2_ = dot(toLQ, toLQ); float cosQ = (max(dot(hostN, toLQ), 0.0) * inversesqrt(max(dq2_, 1e-8))); float _e935 = _group_0_binding_0_fs.shadowA.w; if ((_e935 > 0.5)) { mat4x4 _e940 = _group_0_binding_0_fs.lightViewProj; vec4 _e943 = _group_0_binding_0_fs.shadowA; vec4 _e946 = _group_0_binding_0_fs.shadowB; float _e950 = _group_0_binding_0_fs.shadowB.y; float _e957 = shadowVisibilityWide(_e940, _e943, _e946, (Q + (hostN * _e950)), in_1.position.xy, (0.5 * reach)); visQ = _e957; } float _e962 = _group_0_binding_0_fs.pageRect.x; float _e967 = _group_0_binding_0_fs.pageRect.z; float _e973 = _group_0_binding_0_fs.pageRect.y; float _e978 = _group_0_binding_0_fs.pageRect.w; vec2 puvQ = vec2(((Q.x - _e962) * _e967), ((Q.z - _e973) * _e978)); vec4 _e983 = _group_0_binding_0_fs.table; float _e986 = inUnit(puvQ); vec3 ground = mix(_e983.xyz, PAPER_LIN, _e986); float _e991 = _group_0_binding_0_fs.lightPos.w; float _e995 = _group_0_binding_0_fs.lightColor.w; float _e1001 = _group_0_binding_0_fs.highlight.x; float _e1005 = _group_0_binding_0_fs.highlight.y; float _e1006 = shoulder((_e991 / (dq2_ + _e995)), _e1001, _e1005); float _e1008 = visQ; float eQ = ((_e1006 * cosQ) * _e1008); float _e1014 = _group_0_binding_0_fs.fill.x; lift = (ground * ((eQ * viewF) * _e1014)); } } vec4 _e1019 = _group_0_binding_0_fs.lightColor; float _e1024 = _group_0_binding_0_fs.highlight.x; float _e1028 = _group_0_binding_0_fs.highlight.y; float _e1029 = shoulder(atten, _e1024, _e1028); vec3 flameLit = (_e1019.xyz * _e1029); float _e1031 = vis; vec3 light_2 = (flameLit * _e1031); vec3 _e1033 = albedo; float _e1035 = ao; vec3 _e1041 = trans; float _e1042 = visT; vec3 _e1046 = albedo; vec4 _e1049 = _group_0_binding_0_fs.lightColor; vec3 _e1052 = lift; float _e1054 = ao; color = (((((_e1033 * front_1) * mix(1.0, _e1035, 0.65)) * light_2) + (_e1041 * (flameLit * _e1042))) + (((_e1046 * _e1049.xyz) * _e1052) * mix(1.0, _e1054, 0.65))); float _e1061 = cutBand; if ((_e1061 > 0.0)) { vec3 _e1064 = cutOut; float wallLit = max(dot(_e1064, L), 0.0); vec3 _e1068 = Ng; float graze = (0.35 + (0.65 * (1.0 - abs(dot(_e1068, V))))); vec3 _e1077 = albedo; vec3 core = mix(_e1077, (PAPER_LIN * grainTone), 0.3); vec3 _e1082 = color; float _e1087 = _group_0_binding_0_fs.crease.w; float _e1088 = cutBand; color = (_e1082 + ((core * light_2) * (((_e1087 * _e1088) * wallLit) * graze))); } vec3 _e1094 = color; float _e1095 = luma(_e1094); vec3 _e1096 = color; float _e1100 = _group_0_binding_0_fs.highlight.z; float _e1104 = _group_0_binding_0_fs.highlight.w; float _e1105 = shoulder(_e1095, _e1100, _e1104); color = (_e1096 * (_e1105 / max(_e1095, 1e-6))); float _e1113 = _group_0_binding_0_fs.charmLight.w; if ((_e1113 > 0.0)) { local_16 = (in_1.edges.w <= 0.0); } else { local_16 = false; } bool _e1123 = local_16; if (_e1123) { vec4 _e1126 = _group_0_binding_0_fs.charmLight; vec3 toC = (_e1126.xyz - in_1.world); float dc2_ = dot(toC, toC); vec3 Lc = (toC * inversesqrt(max(dc2_, 1e-8))); vec3 _e1135 = N; float wrapC = max(((dot(_e1135, Lc) + 0.6) / 1.6), 0.0); vec3 _e1143 = color; vec3 _e1144 = albedo; vec4 _e1147 = _group_0_binding_0_fs.charmColor; float _e1153 = _group_0_binding_0_fs.charmLight.w; float _e1159 = ao; color = (_e1143 + (((_e1144 * _e1147.xyz) * ((_e1153 * wrapC) / (dc2_ + 0.015))) * mix(1.0, _e1159, 0.5))); } vec4 _e1167 = _group_0_binding_0_fs.moonDir; vec3 M = _e1167.xyz; float wrapM = _group_0_binding_0_fs.moonDir.w; vec3 _e1173 = N; float moonFront = max(((dot(_e1173, M) + wrapM) / (1.0 + wrapM)), 0.0); if (!(isCard)) { local_17 = isLeaf; } else { local_17 = true; } bool _e1188 = local_17; if (_e1188) { vec3 _e1189 = art; vec3 _e1190 = art; vec3 _e1193 = Ng; float _e1201 = _group_0_binding_0_fs.paperB.x; moonTrans = (((_e1189 * _e1190) * lookThrough) * ((max(-(dot(_e1193, M)), 0.0) * _e1201) * 0.5)); } float _e1209 = _group_0_binding_0_fs.moonColor.w; float moonFall = (1.0 - (_e1209 * smoothstep(-0.45, 0.45, in_1.world.z))); vec3 _e1218 = color; vec4 _e1221 = _group_0_binding_0_fs.moonColor; float _e1223 = ao; vec3 _e1226 = albedo; vec3 _e1228 = moonTrans; color = (_e1218 + ((_e1221.xyz * (moonFall * _e1223)) * ((_e1226 * moonFront) + _e1228))); if (!(isPage)) { local_18 = isBoard; } else { local_18 = true; } bool _e1236 = local_18; if (_e1236) { float _e1242 = _group_0_binding_0_fs.rim.w; local_19 = (_e1242 > 0.0); } else { local_19 = false; } bool _e1246 = local_19; if (_e1246) { float _e1252 = _group_0_binding_0_fs.rim.z; local_20 = (_e1252 > 0.0); } else { local_20 = false; } bool _e1256 = local_20; if (_e1256) { float wR = _group_0_binding_0_fs.rim.w; float e0_ = ((1.0 - smoothstep(0.0, wR, sheet_4.x)) * max(dot(-(T_2), M), 0.0)); float e1_ = ((1.0 - smoothstep(0.0, wR, (sheetSize.x - sheet_4.x))) * max(dot(T_2, M), 0.0)); float e2_ = ((1.0 - smoothstep(0.0, wR, sheet_4.y)) * max(dot(-(B_1), M), 0.0)); float e3_ = ((1.0 - smoothstep(0.0, wR, (sheetSize.y - sheet_4.y))) * max(dot(B_1, M), 0.0)); vec3 _e1303 = Ng; vec3 _e1312 = Ng; float graze_1 = (pow((1.0 - min(abs(dot(_e1303, V)), 1.0)), 3.0) * (0.35 + (0.65 * max(dot(_e1312, M), 0.0)))); vec3 _e1321 = color; vec4 _e1324 = _group_0_binding_0_fs.rim; color = (_e1321 + (_e1324.xyz * ((1.6 * (((e0_ + e1_) + e2_) + e3_)) + (0.6 * graze_1)))); } if (isBoard) { float _e1341 = _group_0_binding_0_fs.gilt.y; local_21 = (_e1341 > 0.0); } else { local_21 = false; } bool _e1345 = local_21; if (_e1345) { vec3 _e1346 = art; float gilt = smoothstep(0.05, 0.22, dot(_e1346, vec3(0.2126, 0.7152, 0.0722))); vec3 _e1355 = color; vec4 _e1358 = _group_0_binding_0_fs.gilt; color = (_e1355 + (_e1358.xyz * gilt)); } float _e1365 = _group_0_binding_0_fs.bounce.w; float br = max(_e1365, 0.001); float bounceK = (1.0 / (1.0 + (d2_ / (br * br)))); vec3 _e1374 = color; vec3 _e1375 = albedo; vec4 _e1378 = _group_0_binding_0_fs.ambient; vec4 _e1382 = _group_0_binding_0_fs.bounce; float _e1387 = ao; color = (_e1374 + ((_e1375 * (_e1378.xyz + (_e1382.xyz * bounceK))) * _e1387)); if (isCard) { local_22 = (in_1.look.w < -1.0); } else { local_22 = false; } bool _e1397 = local_22; if (_e1397) { local_23 = (in_1.look.w > -2.5); } else { local_23 = false; } bool _e1405 = local_23; if (_e1405) { vec3 _e1406 = color; vec3 _e1407 = art; vec3 _e1408 = art; vec4 _e1417 = _group_0_binding_0_fs.moonshine; color = (_e1406 + ((mix(_e1407, vec3(dot(_e1408, vec3(0.33))), 0.35) * _e1417.xyz) * (-1.0 - in_1.look.w))); } if (isCard) { local_24 = (in_1.look.w <= -2.5); } else { local_24 = false; } bool _e1433 = local_24; if (_e1433) { float v_1 = (-3.0 - in_1.look.w); thread = clamp(v_1, 0.0, 1.0); if ((v_1 > 1.0)) { float prog = clamp((v_1 - 1.0), 0.0, 1.0); vec2 d_5 = (in_1.q - vec2(0.5, 0.5)); float a_5 = fract(((atan(d_5.x, d_5.y) * 0.15915494) + 1.0)); float behind = ((prog * 1.15) - a_5); thread = (smoothstep(-0.015, 0.0, behind) * (1.0 + (THREAD_HEAD * exp((-(max(behind, 0.0)) * 16.0))))); } vec3 _e1479 = art; float _e1480 = luma(_e1479); float ink = (1.0 - smoothstep(0.06, 0.3, _e1480)); vec3 _e1486 = color; vec4 _e1489 = _group_0_binding_0_fs.glow; float _e1492 = thread; color = (_e1486 + (_e1489.xyz * (((THREAD_GAIN * _e1492) * ink) * inkEdge))); } float _e1503 = _group_0_binding_0_fs.charm.x; float gw = (in_1.edges.w * _e1503); if (isCard) { local_25 = (gw > 0.0); } else { local_25 = false; } bool _e1510 = local_25; if (_e1510) { vec3 _e1511 = art; float _e1512 = luma(_e1511); float inkC = (1.0 - smoothstep(0.06, 0.3, _e1512)); float lines = (((inkC * inkEdge) * (facing ? 1.0 : 0.0)) * (0.75 + (0.25 * gw))); float _e1532 = cutDist; float rim = (1.0 - smoothstep(0.0, max(0.006, (fp_1 * 1.5)), _e1532)); float blaze = smoothstep(0.65, 1.5, gw); float within = (((mix(0.5, 1.3, _e300.formation) * (1.0 - (0.85 * inkC))) * (facing ? 1.0 : 0.55)) * blaze); float _e1559 = _group_0_binding_0_fs.charmColor.w; float _e1568 = vnoise(((sheet_4 * 9.0) + vec2((_e1559 * 1.1), (in_1.look.z * 17.0)))); float shimmer = (0.8 + (0.2 * _e1568)); float _e1576 = _group_0_binding_0_fs.charm.y; float _e1581 = _group_0_binding_0_fs.charm.z; float _e1587 = _group_0_binding_0_fs.charm.w; float lit_2 = (((_e1576 * lines) + (_e1581 * rim)) + (_e1587 * within)); vec3 _e1590 = color; vec4 _e1593 = _group_0_binding_0_fs.charmColor; color = (_e1590 + (_e1593.xyz * ((gw * shimmer) * lit_2))); } charge = phosF16_; float _e1603 = _group_0_binding_0_fs.glow.w; if ((_e1603 > 0.5)) { float _e1606 = phosphorPacked(puv_1); charge = _e1606; } if (isPage) { float _e1612 = _group_0_binding_0_fs.view.y; local_26 = (_e1612 > 0.5); } else { local_26 = false; } bool _e1616 = local_26; if (_e1616) { float pigment = mix(0.8, 1.12, _e300.formation); vec3 _e1621 = color; vec4 _e1624 = _group_0_binding_0_fs.glow; float _e1626 = charge; color = (_e1621 + (_e1624.xyz * (((_e1626 * maskA) * pigment) * _e114))); float _e1638 = _group_0_binding_0_fs.moonshine.w; float invocation = (smoothstep(0.3, 0.75, maskA) * _e1638); vec3 _e1640 = color; vec4 _e1643 = _group_0_binding_0_fs.glow; color = (_e1640 + (_e1643.xyz * (((invocation * pigment) * _e114) * 4.0))); } if (isCard) { float _e1656 = _group_0_binding_0_fs.view.y; local_27 = (_e1656 > 0.5); } else { local_27 = false; } bool _e1660 = local_27; if (_e1660) { vec3 _e1663 = Ng; vec2 probe = (in_1.world.xz + (_e1663.xz * 0.05)); float _e1672 = _group_0_binding_0_fs.pageRect.x; float _e1677 = _group_0_binding_0_fs.pageRect.z; float _e1683 = _group_0_binding_0_fs.pageRect.y; float _e1688 = _group_0_binding_0_fs.pageRect.w; vec2 puv2_ = vec2(((probe.x - _e1672) * _e1677), ((probe.y - _e1683) * _e1688)); vec4 _e1694 = textureLod(_group_0_binding_3_fs, vec2(puv2_), 0.0); c2_ = _e1694.x; float _e1700 = _group_0_binding_0_fs.glow.w; if ((_e1700 > 0.5)) { float _e1703 = phosphorPacked(puv2_); c2_ = _e1703; } float lift_1 = exp((-(hostH) / 0.09)); vec3 _e1708 = color; vec3 _e1709 = albedo; vec4 _e1712 = _group_0_binding_0_fs.glow; float _e1715 = c2_; float _e1716 = inUnit(puv2_); float _e1722 = _group_0_binding_0_fs.view.z; color = (_e1708 + ((_e1709 * _e1712.xyz) * (((_e1715 * _e1716) * lift_1) * _e1722))); } if ((viewMode > 0.5)) { local_28 = (viewMode < 1.5); } else { local_28 = false; } bool _e1733 = local_28; if (_e1733) { float _e1734 = charge; float _e1737 = charge; float _e1738 = charge; color = (vec3((_e1734 * 0.35), _e1737, (_e1738 * 0.5)) * (isPage ? 1.0 : 0.02)); } else { if ((viewMode > 1.5)) { local_29 = (viewMode < 2.5); } else { local_29 = false; } bool _e1753 = local_29; if (_e1753) { color = (vec3(maskA) * (isPage ? 1.0 : 0.02)); } else { if ((viewMode > 2.5)) { local_30 = (viewMode < 3.5); } else { local_30 = false; } bool _e1766 = local_30; if (_e1766) { float _e1767 = ao; color = vec3((isPage ? aoMap : _e1767)); } else { if ((viewMode > 5.5)) { local_31 = (viewMode < 6.5); } else { local_31 = false; } bool _e1777 = local_31; if (_e1777) { float _e1778 = vis; color = vec3(_e1778); } else { if ((viewMode > 7.5)) { local_32 = (viewMode < 8.5); } else { local_32 = false; } bool _e1787 = local_32; if (_e1787) { color = vec3((isCard ? 1.0 : 0.0)); } } } } } vec3 _e1792 = color; vec4 _e1796 = _group_0_binding_0_fs.camPos; vec4 _e1800 = _group_0_binding_0_fs.lightPos; vec4 _e1804 = _group_0_binding_0_fs.haze; vec4 _e1807 = _group_0_binding_0_fs.glowAir; vec3 _e1808 = atmosphere(_e1792, in_1.world, _e1796.xyz, _e1800.xyz, _e1804, _e1807); color = _e1808; vec3 _e1809 = color; float _e1813 = _group_0_binding_0_fs.camPos.w; vec3 _e1814 = encodeHdr(_e1809, _e1813); float _e1815 = cov; float _e1817 = cov; _fs2p_location0 = vec4((_e1814 * _e1815), _e1817); return; }  `ºÛÅÝÈÚû§ $š?jyFrame_block_0VertexFrame_block_0Fragment_group_1_binding_0_fs_group_0_binding_3_fs_group_0_binding_5_fs_group_0_binding_4_fs_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_mainì// language: metal1.0 #include #include using metal::uint; struct VsIn { metal::float2 q; char _pad1[8]; metal::float4 m0_; metal::float4 m1_; metal::float4 m2_; metal::float4 m3_; metal::float4 uvRect; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float4 pin; }; struct Frame { metal::float4x4 viewProj; metal::float4x4 lightViewProj; metal::float4 lightPos; metal::float4 lightColor; metal::float4 ambient; metal::float4 shadowA; metal::float4 camPos; metal::float4 paperA; metal::float4 paperB; metal::float4 paperC; metal::float4 glow; metal::float4 pageRect; metal::float4 view; metal::float4 moonDir; metal::float4 moonColor; metal::float4 bounce; metal::float4 shadowB; metal::float4 pages; metal::float4 table; metal::float4 highlight; metal::float4 rim; metal::float4 moonshine; metal::float4 haze; metal::float4 glowAir; metal::float4 crease; metal::float4 windA; metal::float4 windB; metal::float4 charm; metal::float4 charmColor; metal::float4 charmLight; metal::float4 fill; metal::float4 gilt; }; struct VsOut { metal::float4 position; metal::float3 world; metal::float2 uv; metal::float2 q; metal::float4 normal; metal::float4 tangent; metal::float4 bitangent; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float3 bent; }; struct PaperSurf { metal::float2 slope; float tone; float formation; }; constant float HDR_RANGE = 4.0; constant float HAZE_START = 2.8; constant float WIND_TAU = 6.2831855; constant float THREAD_GAIN = 9.0; constant float THREAD_HEAD = 2.2; constant metal::float3 PAPER_LIN = metal::float3(0.8631, 0.7913, 0.6445); constant metal::float3 SHADOW_PAPER_LIN = metal::float3(0.6867, 0.5972, 0.4342); constant float BOUNCE_REACH_MAX = 0.3; constant float CREASE_DARK = 0.3; constant float CUT_DARK = 0.18; constant float GUTTER_DARK = 0.38; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x_1 = metal::max(c, metal::float3(0.0)); metal::float3 lo = x_1 * 0.07739938; metal::float3 hi = metal::pow((x_1 + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x_1 <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_2 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_2 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_2, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_2 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e_1, float mode_1 ) { if (mode_1 > 0.5) { return ((e_1 * e_1) * e_1) * HDR_RANGE; } return e_1; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_4 = metal::floor(p_1); metal::float2 f = p_1 - i_4; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_4); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_5 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_5; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n_1 = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_1 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n_1 * 2.0) - 1.0, g_1 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float pointGlow( metal::float3 eye, metal::float3 dir, float dist, metal::float3 light, float s2_ ) { metal::float3 toL = light - eye; float t0_ = metal::dot(toL, dir); float h2_ = metal::max(metal::dot(toL, toL) - (t0_ * t0_), 0.0); float k = metal::sqrt(h2_ + metal::max(s2_, 0.000001)); return (metal::atan((dist - t0_) / k) + metal::atan(t0_ / k)) / k; } metal::float3 atmosphere( metal::float3 col, metal::float3 world_1, metal::float3 eye_1, metal::float3 light_1, metal::float4 haze, metal::float4 glow ) { metal::float3 dv = world_1 - eye_1; float dist_2 = metal::length(dv); metal::float3 dir_2 = dv / metal::float3(metal::max(dist_2, 0.00001)); float T_1 = metal::exp(-(haze.w) * metal::max(dist_2 - HAZE_START, 0.0)); float _e21 = pointGlow(eye_1, dir_2, dist_2, light_1, glow.w); return ((col * T_1) + (haze.xyz * (1.0 - T_1))) + (glow.xyz * _e21); } float windowMask( metal::float2 q, metal::float4 win, metal::float4 win2_, float soft, float lattice ) { bool local_33 = {}; bool local_34 = {}; bool local_35 = {}; float bars = {}; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_3 = (x1_ - x0_) * 0.5; float cx = x0_ + r_3; float s_2 = metal::max(soft, 0.0001); if (!((q.x < (x0_ - s_2)))) { local_33 = q.x > (x1_ + s_2); } else { local_33 = true; } bool _e25 = local_33; if (!(_e25)) { local_34 = q.y < (sill - s_2); } else { local_34 = true; } bool _e33 = local_34; if (!(_e33)) { local_35 = q.y > ((spring + r_3) + s_2); } else { local_35 = true; } bool _e42 = local_35; if (_e42) { return 0.0; } float inRect = metal::smoothstep(-(s_2), s_2, metal::min(q.x - x0_, x1_ - q.x)) * metal::smoothstep(-(s_2), s_2, q.y - sill); float dArch = r_3 - metal::length(q - metal::float2(cx, spring)); float inArch = metal::smoothstep(-(s_2), s_2, dArch); float open = inRect * ((q.y < spring) ? 1.0 : inArch); float bw = win2_.y; bars = 1.0 - metal::smoothstep(bw - s_2, bw + s_2, metal::abs(q.x - cx)); float ty = (q.y - sill) / win2_.z; float tf = metal::abs(metal::fract(ty + 0.5) - 0.5) * win2_.z; float _e89 = bars; bars = metal::max(_e89, (1.0 - metal::smoothstep((bw * 0.8) - s_2, (bw * 0.8) + s_2, tf)) * metal::step(q.y, spring)); float a_1 = metal::atan2(q.y - spring, q.x - cx); float spoke = (metal::abs(metal::fract((a_1 / 0.7853982) + 0.5) - 0.5) * 0.7853982) * metal::length(q - metal::float2(cx, spring)); float _e122 = bars; bars = metal::max(_e122, (1.0 - metal::smoothstep((bw * 0.7) - s_2, (bw * 0.7) + s_2, spoke)) * metal::step(spring, q.y)); if (lattice > 0.5) { float fade = 1.0 - metal::smoothstep(0.02, 0.09, s_2); metal::float2 dq = q * 2.6; float l1_ = metal::abs(metal::fract(((dq.x + dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float l2_ = metal::abs(metal::fract(((dq.x - dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float _e172 = bars; bars = metal::max(_e172, ((1.0 - metal::smoothstep(0.012 - s_2, 0.012 + s_2, metal::min(l1_, l2_))) * fade) * 0.85); } float _e183 = bars; return open * (1.0 - _e183); } metal::float3 backProject( metal::float3 p_4, metal::float3 d, float planeZ ) { float s_3 = (p_4.z - planeZ) / metal::max(d.z, 0.0001); return metal::float3(p_4.xy - (d.xy * s_3), s_3); } float moonPatch( metal::float3 p_5, metal::float3 d_1, metal::float4 win_1, metal::float4 win2_1 ) { if (p_5.z < win2_1.x) { return 0.0; } metal::float3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, 0.006 + (_e9.z * 0.011), 1.0); return _e17; } float hgPhase( float cosT, float g ) { float gg = g * g; return (1.0 - gg) / metal::pow(metal::max((1.0 + gg) - ((2.0 * g) * cosT), 0.0001), 1.5); } float shaftScatter( metal::float3 eye_2, metal::float3 dir_1, float dist_1, metal::float3 d_2, metal::float4 win_2, metal::float4 win2_2, float jitter, float top ) { float ta = 0.0; float tb = {}; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = 1.0 / metal::max(d_2.z, 0.0001); metal::float2 qa = eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy); metal::float2 qd = dir_1.xy - ((dir_1.z * invdz) * d_2.xy); tb = dist_1; if (dir_1.z < 0.0) { float _e33 = tb; tb = metal::min(_e33, (zw - eye_2.z) / dir_1.z); } if (dir_1.y < 0.0) { float _e42 = tb; tb = metal::min(_e42, (win2_2.w - eye_2.y) / dir_1.y); } metal::float2 lo_2 = metal::float2(win_2.x, win_2.z); metal::float2 hi_2 = metal::float2(win_2.y, top); metal::float2 inv = metal::float2(1.0) / metal::select(qd, metal::float2(0.000001), metal::abs(qd) < metal::float2(0.000001)); metal::float2 t1_ = (lo_2 - qa) * inv; metal::float2 t2_ = (hi_2 - qa) * inv; metal::float2 tmin = metal::min(t1_, t2_); metal::float2 tmax = metal::max(t1_, t2_); float _e70 = ta; ta = metal::max(_e70, metal::max(tmin.x, tmin.y)); float _e75 = tb; tb = metal::min(_e75, metal::min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if (_e80 <= _e81) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = (_e84 - _e85) / 5.0; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e123 = i_2; i_2 = as_type(as_type(_e123) + as_type(1)); } loop_init = false; int _e93 = i_2; if (_e93 < 5) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_1 = _e96 + ((static_cast(_e97) + jitter) * dt); metal::float2 q_2 = qa + (t_1 * qd); float s_4 = ((eye_2.z + (t_1 * dir_1.z)) - zw) * invdz; float _e110 = sum; float _e116 = windowMask(q_2, win_2, win2_2, 0.008 + (s_4 * 0.003), 0.0); sum = _e110 + (_e116 * metal::exp(-(s_4) * 0.035)); } } float _e126 = ta; float _e127 = tb; metal::float2 qm = qa + (((_e126 + _e127) * 0.5) * qd); float _e141 = vnoise((qm * metal::float2(3.1, 0.9)) + metal::float2(7.1, 3.3)); float _e146 = vnoise(qm * metal::float2(9.0, 2.2)); float dust = 0.45 + (0.55 * metal::smoothstep(-0.6, 0.8, _e141 + (0.5 * _e146))); float _e157 = sum; return (_e157 * dt) * dust; } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } float windAnchor( metal::float2 sheet, metal::float2 size, float mask, metal::float4 pin ) { float d_3 = 1000.0; uint m = naga_f2u32(metal::clamp(mask, 0.0, 15.0) + 0.5); if ((m & 1u) != 0u) { float _e16 = d_3; d_3 = metal::min(_e16, metal::abs(sheet.x)); } if ((m & 2u) != 0u) { float _e24 = d_3; d_3 = metal::min(_e24, metal::abs(size.x - sheet.x)); } if ((m & 4u) != 0u) { float _e34 = d_3; d_3 = metal::min(_e34, metal::abs(sheet.y)); } if ((m & 8u) != 0u) { float _e42 = d_3; d_3 = metal::min(_e42, metal::abs(size.y - sheet.y)); } if (pin.x > -0.5) { metal::float2 a_2 = pin.xy * size; metal::float2 ab = (pin.zw * size) - a_2; float t_2 = metal::clamp(metal::dot(sheet - a_2, ab) / metal::max(metal::dot(ab, ab), 0.0000000001), 0.0, 1.0); float _e65 = d_3; d_3 = metal::min(_e65, metal::length(sheet - (a_2 + (ab * t_2)))); } float _e71 = d_3; return _e71; } float windDisp( metal::float3 P0_, metal::float3 N_1, metal::float2 sheet_1, metal::float2 size_1, float mask_1, metal::float4 pin_1, float seed, metal::float4 wa, metal::float4 wb ) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = metal::min(_e9 * wb.z, 1.4); float t_3 = wa.z; metal::float2 dir_3 = wb.xy; float along = metal::dot(P0_.xz, dir_3); float _e26 = vnoise(metal::float2((along * 6.0) - (t_3 * 2.2), seed * 7.3)); float front = 0.7 + (0.3 * _e26); float g_2 = wa.w * front; float push = metal::dot(N_1.xz, dir_3); float _e54 = vnoise(metal::float2((t_3 * 1.9) + (seed * 13.0), along * 3.0)); float swing = (0.65 * metal::sin(((t_3 * 7.5) + (seed * WIND_TAU)) + (along * 2.5))) + (0.35 * _e54); float sway = (wa.x * g_2) * ((0.55 * push) + (0.45 * swing)); float run = ((metal::dot(sheet_1, metal::float2(0.6, 0.8)) * 41.8879) - ((t_3 * WIND_TAU) * wb.w)) + (seed * 11.0); float _e92 = vnoise(metal::float2((t_3 * 3.3) + (seed * 5.0), along * 5.0)); float flutter = ((wa.y * g_2) * metal::sin(run)) * (0.55 + (0.45 * _e92)); return (f_2 * f_2) * (sway + (f_2 * flutter)); } metal::float4 windBend( metal::float3 P0_1, metal::float3 N_2, metal::float3 T, metal::float3 B, metal::float2 sheet_2, metal::float2 size_2, float mask_2, metal::float4 pin_2, float seed_1, float weight, metal::float4 wa_1, metal::float4 wb_1 ) { float _e13 = windDisp(P0_1, N_2, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = _e13 * weight; float _e20 = windDisp(P0_1 + (T * 0.006), N_2, sheet_2 + metal::float2(0.006, 0.0), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = _e20 * weight; float _e27 = windDisp(P0_1 + (B * 0.006), N_2, sheet_2 + metal::float2(0.0, 0.006), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = _e27 * weight; metal::float3 n_2 = metal::normalize((N_2 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006))); return metal::float4(n_2, d0_); } float shadowVisibility( metal::float4x4 lvp, metal::float4 sa, metal::float4 sb, metal::float3 world_2, metal::float2 fragXY, metal::float2 lightXZ, metal::texture2d momentsTex, metal::sampler momentsSamp ) { float p_6 = {}; metal::float4 lc = lvp * metal::float4(world_2, 1.0); metal::float3 ndc = lc.xyz / metal::float3(lc.w); metal::float2 uv = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); float d_4 = (lc.w * sa.x) - sa.y; metal::float4 _e32 = momentsTex.sample(momentsSamp, uv, metal::level(0.0)); metal::float2 m_1 = _e32.xy; float variance = metal::max(m_1.y - (m_1.x * m_1.x), 0.00002); float delta = d_4 - m_1.x; p_6 = variance / (variance + (delta * delta)); float bleed = sa.z; float _e48 = p_6; p_6 = metal::clamp((_e48 - bleed) / (1.0 - bleed), 0.0, 1.0); float _e56 = p_6; float lit_1 = (d_4 <= m_1.x) ? 1.0 : _e56; float inside = (((metal::step(0.0, uv.x) * metal::step(uv.x, 1.0)) * metal::step(0.0, uv.y)) * metal::step(uv.y, 1.0)) * metal::step(0.0, lc.w); return metal::mix(1.0, lit_1, inside); } float shadowVisibilityWide( metal::float4x4 lvp_1, metal::float4 sa_1, metal::float4 sb_1, metal::float3 world_3, metal::float2 fragXY_1, float r, metal::texture2d momentsTex, metal::sampler momentsSamp ) { float lit = 0.0; int i_3 = 0; float _e10 = ign(fragXY_1 + metal::float2(5.0, 3.0)); float angle = 6.2831855 * _e10; float cs = (metal::cos(angle) * r) * 0.7; float sn = (metal::sin(angle) * r) * 0.7; uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e58 = i_3; i_3 = as_type(as_type(_e58) + as_type(1)); } loop_init_1 = false; int _e25 = i_3; if (_e25 < 4) { } else { break; } { int _e32 = i_3; int _e40 = i_3; int _e44 = i_3; metal::float2 o_1 = (_e44 < 2) ? ((_e40 == 1) ? metal::float2(-(cs), -(sn)) : metal::float2(cs, sn)) : ((_e32 == 3) ? metal::float2(sn, -(cs)) : metal::float2(-(sn), cs)); float _e48 = lit; float _e56 = shadowVisibility(lvp_1, sa_1, sb_1, world_3 + metal::float3(o_1.x, 0.0, o_1.y), fragXY_1, metal::float2(0.0), momentsTex, momentsSamp); lit = _e48 + _e56; } } float _e61 = lit; return _e61 * 0.25; } metal::float3 fibreLayer( metal::float3 n, metal::float2x2 r_1, metal::float2 a ) { float k_1 = 1.0 - metal::abs(n.x); float k3_ = (k_1 * k_1) * k_1; float ridge = k3_ * k_1; metal::float2 gN = n.yz * ((-4.0 * k3_) * metal::sign(n.x)); metal::float2 g_3 = metal::transpose(r_1) * ((gN * a) / metal::float2(a.y)); return metal::float3(ridge, g_3); } PaperSurf paperSurface( metal::float2 q_1, float fp, float scale ) { PaperSurf s_1 = {}; float _e10 = vnoise((q_1 * (7.0 * scale)) + metal::float2(3.1, 7.7)); float _e18 = vnoise((q_1 * (19.0 * scale)) + metal::float2(11.7, 4.2)); float t1f = 150.0 * scale; float t2f = 340.0 * scale; metal::float3 _e28 = vnoiseD((q_1 * t1f) + metal::float2(7.3, 1.9)); metal::float3 _e34 = vnoiseD((q_1 * t2f) + metal::float2(2.1, 9.4)); float ft1_ = metal::clamp(1.5 - ((fp * t1f) * 1.3), 0.0, 1.0); float ft2_ = metal::clamp(1.5 - ((fp * t2f) * 1.3), 0.0, 1.0); metal::float2x2 r1_ = metal::float2x2(metal::float2(0.9063, 0.4226), metal::float2(-0.4226, 0.9063)); metal::float2x2 r2_ = metal::float2x2(metal::float2(-0.342, 0.9397), metal::float2(-0.9397, -0.342)); metal::float2x2 r3_ = metal::float2x2(metal::float2(0.5, -0.866), metal::float2(0.866, 0.5)); metal::float2 a_3 = metal::float2(95.0, 280.0) * scale; metal::float3 _e78 = vnoiseD((r1_ * q_1) * a_3); metal::float3 _e79 = fibreLayer(_e78, r1_, a_3); metal::float3 _e86 = vnoiseD(((r2_ * q_1) * a_3) + metal::float2(31.0, 17.0)); metal::float3 _e87 = fibreLayer(_e86, r2_, a_3); metal::float3 _e94 = vnoiseD(((r3_ * q_1) * a_3) + metal::float2(5.0, 43.0)); metal::float3 _e95 = fibreLayer(_e94, r3_, a_3); float fF = metal::clamp(1.5 - ((fp * a_3.y) * 1.2), 0.0, 1.0); float fibres = ((_e79.x + _e87.x) + _e95.x) * fF; s_1.formation = metal::clamp(((0.5 + (0.36 * _e10)) + (0.24 * _e18)) + (0.1 * fibres), 0.0, 1.0); s_1.tone = (((1.0 + (0.08 * ((0.36 * _e10) + (0.24 * _e18)))) + ((0.022 * _e28.x) * ft1_)) + ((0.012 * _e34.x) * ft2_)) + (0.03 * (fibres - 0.3)); s_1.slope = ((_e28.yz * (0.9 * ft1_)) + (_e34.yz * (0.45 * ft2_))) + (((_e79.yz + _e87.yz) + _e95.yz) * (0.18 * fF)); PaperSurf _e170 = s_1; return _e170; } float unpack16_( metal::float4 t ) { return ((metal::floor((t.x * 255.0) + 0.5) * 256.0) + metal::floor((t.y * 255.0) + 0.5)) * 0.000015259022; } float phosphorPacked( metal::float2 puv, metal::texture2d phosphorTex ) { metal::float2 dims = static_cast(metal::uint2(phosphorTex.get_width(), phosphorTex.get_height())); metal::float2 st = (metal::clamp(puv, metal::float2(0.0), metal::float2(1.0)) * dims) - metal::float2(0.5); metal::int2 i0_ = naga_f2i32(metal::floor(st)); metal::float2 fr = st - metal::floor(st); metal::int2 mx = as_type(as_type(naga_f2i32(dims)) - as_type(metal::int2(1))); uint clamped_lod_e26 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e26 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(i0_, metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e26), phosphorTex.get_height(clamped_lod_e26)) - 1), clamped_lod_e26); float _e27 = unpack16_(_e26); uint clamped_lod_e37 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e37 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(as_type(as_type(i0_) + as_type(metal::int2(1, 0))), metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e37), phosphorTex.get_height(clamped_lod_e37)) - 1), clamped_lod_e37); float _e38 = unpack16_(_e37); uint clamped_lod_e48 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e48 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(as_type(as_type(i0_) + as_type(metal::int2(0, 1))), metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e48), phosphorTex.get_height(clamped_lod_e48)) - 1), clamped_lod_e48); float _e49 = unpack16_(_e48); uint clamped_lod_e59 = metal::min(uint(0), phosphorTex.get_num_mip_levels() - 1); metal::float4 _e59 = phosphorTex.read(metal::min(metal::uint2(metal::clamp(as_type(as_type(i0_) + as_type(metal::int2(1, 1))), metal::int2(0), mx)), metal::uint2(phosphorTex.get_width(clamped_lod_e59), phosphorTex.get_height(clamped_lod_e59)) - 1), clamped_lod_e59); float _e60 = unpack16_(_e59); return metal::mix(metal::mix(_e27, _e38, fr.x), metal::mix(_e49, _e60, fr.x), fr.y); } float shoulder( float x, float knee, float r_2 ) { bool local_36 = {}; if (!((x <= knee))) { local_36 = r_2 <= 0.0; } else { local_36 = true; } bool _e10 = local_36; if (_e10) { return x; } return knee + (r_2 * metal::log(1.0 + ((x - knee) / r_2))); } metal::float3 sideDist( metal::float2 sheet_3, metal::float2 size_3, float mask_3 ) { metal::float3 best = metal::float3(1000.0, 0.0, 0.0); bool local_37 = {}; bool local_38 = {}; bool local_39 = {}; bool local_40 = {}; uint m_2 = naga_f2u32(metal::clamp(mask_3, 0.0, 15.0) + 0.5); if ((m_2 & 1u) != 0u) { float _e22 = best.x; local_37 = sheet_3.x < _e22; } else { local_37 = false; } bool _e25 = local_37; if (_e25) { best = metal::float3(sheet_3.x, -1.0, 0.0); } if ((m_2 & 2u) != 0u) { float _e40 = best.x; local_38 = (size_3.x - sheet_3.x) < _e40; } else { local_38 = false; } bool _e43 = local_38; if (_e43) { best = metal::float3(size_3.x - sheet_3.x, 1.0, 0.0); } if ((m_2 & 4u) != 0u) { float _e58 = best.x; local_39 = sheet_3.y < _e58; } else { local_39 = false; } bool _e61 = local_39; if (_e61) { best = metal::float3(sheet_3.y, 0.0, -1.0); } if ((m_2 & 8u) != 0u) { float _e76 = best.x; local_40 = (size_3.y - sheet_3.y) < _e76; } else { local_40 = false; } bool _e79 = local_40; if (_e79) { best = metal::float3(size_3.y - sheet_3.y, 0.0, 1.0); } metal::float3 _e86 = best; return _e86; } float inUnit( metal::float2 p_7 ) { return ((metal::step(0.0, p_7.x) * metal::step(p_7.x, 1.0)) * metal::step(0.0, p_7.y)) * metal::step(p_7.y, 1.0); } struct vs_mainInput { metal::float2 q_2 [[attribute(0)]]; metal::float4 m0_ [[attribute(1)]]; metal::float4 m1_ [[attribute(2)]]; metal::float4 m2_ [[attribute(3)]]; metal::float4 m3_ [[attribute(4)]]; metal::float4 uvRect [[attribute(5)]]; metal::float4 clip [[attribute(6)]]; metal::float4 params [[attribute(7)]]; metal::float4 look [[attribute(8)]]; metal::float4 edges [[attribute(9)]]; metal::float4 pin_3 [[attribute(10)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float2 uv [[user(loc1), center_perspective]]; metal::float2 q [[user(loc2), center_perspective]]; metal::float4 normal [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), flat]]; metal::float4 bitangent [[user(loc5), flat]]; metal::float4 clip [[user(loc6), flat]]; metal::float4 params [[user(loc7), flat]]; metal::float4 look [[user(loc8), flat]]; metal::float4 edges [[user(loc9), flat]]; metal::float3 bent [[user(loc10), center_perspective]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant Frame& frame [[buffer(0)]] ) { const VsIn in = { varyings.q_2, {}, varyings.m0_, varyings.m1_, varyings.m2_, varyings.m3_, varyings.uvRect, varyings.clip, varyings.params, varyings.look, varyings.edges, varyings.pin_3 }; metal::float3 world = {}; metal::float3 bent = {}; bool local = {}; VsOut out = {}; metal::float4x4 model = metal::float4x4(in.m0_, in.m1_, in.m2_, in.m3_); world = (model * metal::float4(in.q, 0.0, 1.0)).xyz; float w_1 = metal::length(in.m0_.xyz); float h = metal::length(in.m1_.xyz); metal::float3 N0_ = metal::normalize(in.m2_.xyz); bent = N0_; if (in.edges.z > 0.0) { float _e32 = frame.windA.w; local = _e32 > 0.0; } else { local = false; } bool _e36 = local; if (_e36) { metal::float2 size_4 = metal::float2(w_1, h); metal::float3 _e38 = world; metal::float4 _e62 = frame.windA; metal::float4 _e65 = frame.windB; metal::float4 _e66 = windBend(_e38, N0_, in.m0_.xyz / metal::float3(metal::max(w_1, 0.000001)), in.m1_.xyz / metal::float3(metal::max(h, 0.000001)), in.q * size_4, size_4, in.edges.x, in.pin, in.look.z, in.edges.z, _e62, _e65); metal::float3 _e67 = world; world = _e67 + (N0_ * _e66.w); bent = _e66.xyz; } metal::float4x4 _e76 = frame.viewProj; metal::float3 _e77 = world; out.position = _e76 * metal::float4(_e77, 1.0); metal::float3 _e82 = world; out.world = _e82; out.uv = in.uvRect.xy + (in.q * in.uvRect.zw); out.q = in.q; out.normal = metal::float4(metal::normalize(in.m2_.xyz), 0.0); out.tangent = metal::float4(in.m0_.xyz / metal::float3(metal::max(w_1, 0.000001)), w_1); out.bitangent = metal::float4(in.m1_.xyz / metal::float3(metal::max(h, 0.000001)), h); out.clip = in.clip; out.params = in.params; out.look = in.look; out.edges = in.edges; metal::float3 _e124 = bent; out.bent = _e124; VsOut _e125 = out; const auto _tmp = _e125; return vs_mainOutput { _tmp.position, _tmp.world, _tmp.uv, _tmp.q, _tmp.normal, _tmp.tangent, _tmp.bitangent, _tmp.clip, _tmp.params, _tmp.look, _tmp.edges, _tmp.bent }; } struct fs_mainInput { metal::float3 world_4 [[user(loc0), center_perspective]]; metal::float2 uv [[user(loc1), center_perspective]]; metal::float2 q_2 [[user(loc2), center_perspective]]; metal::float4 normal [[user(loc3), flat]]; metal::float4 tangent [[user(loc4), flat]]; metal::float4 bitangent [[user(loc5), flat]]; metal::float4 clip [[user(loc6), flat]]; metal::float4 params [[user(loc7), flat]]; metal::float4 look [[user(loc8), flat]]; metal::float4 edges [[user(loc9), flat]]; metal::float3 bent_1 [[user(loc10), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Frame& frame [[buffer(0)]] , metal::texture2d momentsTex [[texture(0)]] , metal::sampler momentsSamp [[sampler(0)]] , metal::texture2d phosphorTex [[texture(1)]] , metal::texture2d maskTex [[texture(2)]] , metal::texture2d aoTex [[texture(3)]] , metal::sampler mapSamp [[sampler(1)]] , metal::texture2d albedoTex [[texture(4)]] , metal::sampler albedoSamp [[sampler(2)]] ) { const VsOut in_1 = { position, varyings_1.world_4, varyings_1.uv, varyings_1.q_2, varyings_1.normal, varyings_1.tangent, varyings_1.bitangent, varyings_1.clip, varyings_1.params, varyings_1.look, varyings_1.edges, varyings_1.bent_1 }; float cov = {}; bool local_1 = {}; bool local_2 = {}; bool local_3 = {}; metal::float3 art = {}; bool local_4 = {}; metal::float3 Ng = {}; bool local_5 = {}; metal::float3 albedo = {}; bool local_6 = {}; metal::float3 N = {}; float crease = 0.0; bool local_7 = {}; bool local_8 = {}; float cutBand = 0.0; metal::float3 cutOut = metal::float3(0.0); float cutDist = 1000.0; bool local_9 = {}; float fd = {}; bool local_10 = {}; float e = {}; metal::float2 o = {}; bool local_11 = {}; float vis = 1.0; bool local_12 = {}; metal::float3 trans = metal::float3(0.0); bool local_13 = {}; float ao = 1.0; float visT = {}; metal::float3 lift = metal::float3(0.0); bool local_14 = {}; bool local_15 = {}; float visQ = 1.0; metal::float3 color = {}; bool local_16 = {}; metal::float3 moonTrans = metal::float3(0.0); bool local_17 = {}; bool local_18 = {}; bool local_19 = {}; bool local_20 = {}; bool local_21 = {}; bool local_22 = {}; bool local_23 = {}; bool local_24 = {}; float thread_ = {}; bool local_25 = {}; float charge = {}; bool local_26 = {}; bool local_27 = {}; float c2_ = {}; bool local_28 = {}; bool local_29 = {}; bool local_30 = {}; bool local_31 = {}; bool local_32 = {}; metal::float4 texel = albedoTex.sample(albedoSamp, in_1.uv); bool textured = in_1.params.w < 0.0; float a_4 = textured ? texel.w : 1.0; float aWidth = metal::fwidth(a_4); float _e19 = luma(texel.xyz / metal::float3(metal::max(texel.w, 0.0001))); float _e20 = metal::fwidth(_e19); float inkEdge = metal::clamp(_e20 * 7.0, 0.0, 1.0); float rd = 0.5 - metal::length(in_1.q - metal::float2(0.5, 0.5)); float rdWidth = metal::fwidth(rd); float cd = metal::dot(in_1.clip.xy, in_1.q) + in_1.clip.z; float cdWidth = metal::fwidth(cd); metal::float2 sheetSize = metal::float2(in_1.tangent.w, in_1.bitangent.w); metal::float2 sheet_4 = in_1.q * sheetSize; metal::float2 fw = metal::fwidth(sheet_4); float fp_1 = metal::max(metal::max(fw.x, fw.y), 0.000001); metal::float2 dsx = metal::dfdx(sheet_4); metal::float2 dsy = metal::dfdy(sheet_4); float dax = metal::dfdx(a_4); float day = metal::dfdy(a_4); metal::float2 puvPage = metal::float2(in_1.look.w + (0.5 * in_1.q.x), 1.0 - in_1.q.y); float _e77 = frame.pageRect.x; float _e82 = frame.pageRect.z; float _e89 = frame.pageRect.y; float _e94 = frame.pageRect.w; metal::float2 puvWorld = metal::float2((in_1.world.x - _e77) * _e82, (in_1.world.z - _e89) * _e94); metal::float2 puv_1 = (in_1.look.w >= 0.0) ? puvPage : puvWorld; metal::float4 _e104 = phosphorTex.sample(mapSamp, puv_1); float phosF16_ = _e104.x; metal::float4 _e108 = maskTex.sample(mapSamp, puv_1); float maskA = _e108.w; metal::float4 _e112 = aoTex.sample(mapSamp, puv_1); float aoMap = _e112.x; float _e114 = inUnit(puv_1); float soft_1 = metal::clamp(((a_4 - 0.5) / metal::max(aWidth, 0.0001)) + 0.5, 0.0, 1.0); float _e130 = frame.view.w; cov = (_e130 > 0.5) ? soft_1 : metal::step(0.5, a_4); float _e135 = cov; cov = (in_1.params.y > 0.5) ? _e135 : 1.0; float _e142 = cov; cov = _e142 * ((in_1.params.z > 0.5) ? metal::clamp((rd / metal::max(rdWidth, 0.000001)) + 0.5, 0.0, 1.0) : 1.0); float _e158 = cov; cov = _e158 * ((in_1.clip.w > 0.5) ? metal::clamp((cd / metal::max(cdWidth, 0.000001)) + 0.5, 0.0, 1.0) : 1.0); float _e174 = cov; if (_e174 <= 0.0) { metal::discard_fragment(); } float kind = in_1.look.x; if (kind > 0.5) { local_1 = kind < 1.5; } else { local_1 = false; } bool isPage = local_1; if (kind > 1.5) { local_2 = kind < 2.5; } else { local_2 = false; } bool isBoard = local_2; bool isCard = kind < 0.5; if (kind > 2.5) { local_3 = kind < 3.5; } else { local_3 = false; } bool isLeaf = local_3; float side = in_1.look.y; float viewMode = frame.view.x; metal::float3 tone = (in_1.params.w > 0.5) ? SHADOW_PAPER_LIN : PAPER_LIN; metal::float3 _e224 = srgbToLinear(texel.xyz / metal::float3(metal::max(texel.w, 0.0001))); art = textured ? _e224 : tone; if (viewMode > 4.5) { local_4 = viewMode < 5.5; } else { local_4 = false; } bool _e234 = local_4; if (_e234) { art = metal::float3(0.6); } metal::float4 _e239 = frame.camPos; metal::float3 V = metal::normalize(_e239.xyz - in_1.world); Ng = metal::normalize(in_1.bent); metal::float3 _e247 = Ng; bool facing = metal::dot(_e247, V) >= 0.0; metal::float3 _e251 = Ng; metal::float3 _e253 = Ng; Ng = facing ? _e253 : -(_e251); metal::float3 _e257 = art; metal::float3 reverse = (kind < -0.5) ? metal::mix(SHADOW_PAPER_LIN, _e257, 0.55) : SHADOW_PAPER_LIN; metal::float3 _e263 = art; if (!(facing)) { local_5 = !(isCard); } else { local_5 = true; } bool _e269 = local_5; albedo = _e269 ? _e263 : reverse; if (viewMode > 4.5) { local_6 = viewMode < 5.5; } else { local_6 = false; } bool _e279 = local_6; if (_e279) { albedo = metal::float3(0.6); } float grainOn = frame.paperA.x; float _e299 = frame.paperA.w; PaperSurf _e300 = paperSurface(sheet_4 + metal::float2(in_1.look.z * 13.7, in_1.look.z * 5.3), fp_1, _e299); float grainTone = metal::mix(1.0, _e300.tone, grainOn); metal::float3 _e304 = albedo; albedo = _e304 * grainTone; metal::float3 _e306 = art; art = _e306 * grainTone; metal::float3 T_2 = in_1.tangent.xyz; metal::float3 B_1 = in_1.bitangent.xyz; metal::float3 _e312 = Ng; N = _e312; if (isPage) { local_7 = metal::abs(side) > 0.5; } else { local_7 = false; } bool _e322 = local_7; if (_e322) { float _e328 = frame.paperC.z; local_8 = _e328 > 0.0; } else { local_8 = false; } bool _e332 = local_8; if (_e332) { float ds = (side > 0.0) ? (sheetSize.x - sheet_4.x) : sheet_4.x; crease = 1.0 - metal::smoothstep(0.0, 0.075, ds); metal::float3 _e345 = N; float _e348 = crease; float _e350 = crease; N = metal::normalize(_e345 + (T_2 * (((side * 0.55) * _e348) * _e350))); float _e358 = frame.crease.x; if (_e358 > 0.0) { float _e364 = frame.crease.y; float wG = _e364 * 1.4; float wGF = metal::max(wG, fp_1); metal::float3 _e368 = albedo; float _e373 = frame.crease.x; albedo = _e368 * (1.0 - (((GUTTER_DARK * _e373) * (1.0 - metal::smoothstep(0.0, wGF, ds))) * (wG / wGF))); } } float _e389 = frame.paperA.y; metal::float2 slope = _e300.slope * (_e389 * grainOn); metal::float3 _e392 = N; N = metal::normalize((_e392 - (T_2 * slope.x)) - (B_1 * slope.y)); if (isCard) { float _e412 = frame.crease.x; local_9 = _e412 > 0.0; } else { local_9 = false; } bool _e416 = local_9; if (_e416) { metal::float3 _e419 = sideDist(sheet_4, sheetSize, in_1.edges.x); fd = _e419.x; if (in_1.edges.y > 0.5) { local_10 = in_1.clip.w > 0.5; } else { local_10 = false; } bool _e433 = local_10; if (_e433) { float _e434 = fd; fd = metal::min(_e434, metal::abs(cd)); } float wC = frame.crease.y; float wCF = metal::max(wC, fp_1); float _e442 = fd; float foldLine = (1.0 - metal::smoothstep(0.0, wCF, _e442)) * (wC / wCF); metal::float3 _e449 = albedo; float _e454 = frame.crease.x; albedo = _e449 * (1.0 - ((CREASE_DARK * _e454) * foldLine)); metal::float3 _e464 = sideDist(sheet_4, sheetSize, 15.0 - in_1.edges.x); e = _e464.x; o = _e464.yz; if (textured) { float det = (dsx.x * dsy.y) - (dsx.y * dsy.x); metal::float2 g_4 = metal::float2((dsy.y * dax) - (dsx.y * day), (dsx.x * day) - (dsy.x * dax)) / metal::float2((metal::abs(det) < 0.000000000001) ? 0.000000000001 : det); float gl = metal::length(g_4); if (gl > 1.0) { float ea = (a_4 - 0.5) / gl; float _e500 = e; if (ea < _e500) { e = ea; o = -(g_4) / metal::float2(gl); } } } if (in_1.params.z > 0.5) { metal::float2 rq = in_1.q - metal::float2(0.5, 0.5); float ed = rd * sheetSize.x; float _e516 = e; if (ed < _e516) { e = ed; o = rq / metal::float2(metal::max(metal::length(rq), 0.000001)); } } float t_4 = frame.crease.z; float tF = metal::max(t_4, fp_1); float _e528 = e; float _e540 = frame.crease.x; cutBand = ((1.0 - metal::smoothstep(0.0, tF, metal::max(_e528, 0.0))) * (t_4 / tF)) * _e540; float _e542 = e; cutDist = metal::max(_e542, 0.0); float _e546 = o.x; float _e549 = o.y; cutOut = (T_2 * _e546) + (B_1 * _e549); metal::float3 _e552 = albedo; float _e554 = cutBand; albedo = _e552 * (1.0 - (CUT_DARK * _e554)); } float _e562 = frame.pages.x; float _e566 = frame.pages.y; metal::float3 hostN = (side > 0.0) ? metal::float3(0.0, 1.0, 0.0) : metal::float3(_e562, _e566, 0.0); float hostH = metal::max(metal::dot(in_1.world, hostN), 0.0); metal::float3 _e580 = Ng; if (isCard) { local_11 = metal::abs(side) > 0.5; } else { local_11 = false; } bool _e591 = local_11; float upright = _e591 ? (1.0 - metal::abs(metal::dot(_e580, hostN))) : 0.0; metal::float4 _e596 = frame.lightPos; metal::float3 toL_1 = _e596.xyz - in_1.world; float d2_ = metal::dot(toL_1, toL_1); metal::float3 L = toL_1 * metal::rsqrt(metal::max(d2_, 0.00000001)); float _e608 = frame.lightPos.w; float _e612 = frame.lightColor.w; float atten = _e608 / (d2_ + _e612); float _e620 = frame.shadowA.w; if (_e620 > 0.5) { local_12 = in_1.params.x > 0.5; } else { local_12 = false; } bool _e630 = local_12; if (_e630) { metal::float3 _e631 = Ng; metal::float3 _e632 = Ng; float _e642 = frame.shadowB.y; metal::float3 offs = _e631 * (((metal::dot(_e632, L) >= 0.0) ? 1.0 : -1.0) * _e642); metal::float4x4 _e647 = frame.lightViewProj; metal::float4 _e650 = frame.shadowA; metal::float4 _e653 = frame.shadowB; metal::float4 _e660 = frame.lightPos; float _e662 = shadowVisibility(_e647, _e650, _e653, in_1.world + offs, in_1.position.xy, _e660.xz, momentsTex, momentsSamp); vis = _e662; } float wrap = frame.paperA.z; metal::float3 _e667 = N; float front_1 = metal::max((metal::dot(_e667, L) + wrap) / (1.0 + wrap), 0.0); float lookThrough = metal::mix(0.45, 1.45, _e300.formation); metal::float3 tint = metal::float3(1.0, 0.74, 0.46); if (!(isCard)) { local_13 = isLeaf; } else { local_13 = true; } bool _e690 = local_13; if (_e690) { metal::float3 _e691 = Ng; float back = metal::max(-(metal::dot(_e691, L)), 0.0); float _e703 = frame.paperB.z; float _e708 = frame.paperB.y; float fwd = metal::pow(metal::max(metal::dot(V, -(L)), 0.0), _e703) * _e708; metal::float3 _e710 = art; metal::float3 _e711 = art; float _e722 = frame.paperB.x; trans = ((((_e710 * _e711) * tint) * lookThrough) * (back * (1.0 + fwd))) * _e722; } if (isPage) { float _e729 = frame.paperC.x; float _e736 = frame.paperC.z; float _e737 = crease; float _e739 = crease; ao = metal::mix(1.0, aoMap, _e729 * _e114) * (1.0 - ((_e736 * _e737) * _e739)); float ex = (metal::abs(side) > 0.5) ? ((side > 0.0) ? sheet_4.x : (sheetSize.x - sheet_4.x)) : metal::min(sheet_4.x, sheetSize.x - sheet_4.x); float ed_1 = metal::min(ex, metal::min(sheet_4.y, sheetSize.y - sheet_4.y)); float _e768 = vnoise(sheet_4 * 38.0); float wob = _e768 * 0.006; float _e780 = frame.paperC.y; float edge = (1.0 - metal::smoothstep(0.0, 0.04, ed_1 + wob)) * _e780; metal::float3 _e782 = albedo; albedo = _e782 * metal::mix(metal::float3(1.0), metal::float3(0.78, 0.66, 0.5), edge); } else { if (isBoard) { float ed_2 = metal::min(metal::min(sheet_4.x, sheetSize.x - sheet_4.x), metal::min(sheet_4.y, sheetSize.y - sheet_4.y)); float _e804 = vnoise(sheet_4 * 45.0); float wob_1 = _e804 * 0.004; float _e816 = frame.paperC.y; float edge_1 = (1.0 - metal::smoothstep(0.0, 0.022, ed_2 + wob_1)) * _e816; metal::float3 _e818 = albedo; metal::float3 _e819 = albedo; albedo = metal::mix(_e818, (_e819 * 0.55) + metal::float3(0.05, 0.045, 0.04), edge_1 * 0.8); } else { float _e833 = frame.paperB.w; float _e838 = frame.paperC.w; ao = 1.0 - ((_e833 * metal::exp(-(hostH) / metal::max(_e838, 0.0001))) * upright); } } float _e847 = vis; visT = _e847; if (isCard) { float _e857 = frame.fill.x; local_14 = _e857 > 0.0; } else { local_14 = false; } bool _e861 = local_14; if (_e861) { float _e865 = frame.fill.y; float _e866 = vis; visT = metal::mix(_e865, 1.0, _e866); metal::float3 _e869 = Ng; metal::float3 _e870 = Ng; metal::float3 hdir = _e869 - (hostN * metal::dot(_e870, hostN)); float hl = metal::length(hdir); float _e875 = vis; float _e879 = vis; float missed = (1.0 - (front_1 * _e875)) * (1.0 - (front_1 * _e879)); metal::float3 _e884 = Ng; float viewF = (0.5 * (1.0 - metal::dot(_e884, hostN))) * missed; if (hl > 0.001) { local_15 = viewF > 0.001; } else { local_15 = false; } bool _e898 = local_15; if (_e898) { float _e902 = frame.fill.z; float _e907 = frame.fill.w; float reach = metal::min((_e902 * hostH) + _e907, BOUNCE_REACH_MAX); metal::float3 Q = (in_1.world - (hostN * hostH)) + (hdir * (reach / hl)); metal::float4 _e919 = frame.lightPos; metal::float3 toLQ = _e919.xyz - Q; float dq2_ = metal::dot(toLQ, toLQ); float cosQ = metal::max(metal::dot(hostN, toLQ), 0.0) * metal::rsqrt(metal::max(dq2_, 0.00000001)); float _e935 = frame.shadowA.w; if (_e935 > 0.5) { metal::float4x4 _e940 = frame.lightViewProj; metal::float4 _e943 = frame.shadowA; metal::float4 _e946 = frame.shadowB; float _e950 = frame.shadowB.y; float _e957 = shadowVisibilityWide(_e940, _e943, _e946, Q + (hostN * _e950), in_1.position.xy, 0.5 * reach, momentsTex, momentsSamp); visQ = _e957; } float _e962 = frame.pageRect.x; float _e967 = frame.pageRect.z; float _e973 = frame.pageRect.y; float _e978 = frame.pageRect.w; metal::float2 puvQ = metal::float2((Q.x - _e962) * _e967, (Q.z - _e973) * _e978); metal::float4 _e983 = frame.table; float _e986 = inUnit(puvQ); metal::float3 ground = metal::mix(_e983.xyz, PAPER_LIN, _e986); float _e991 = frame.lightPos.w; float _e995 = frame.lightColor.w; float _e1001 = frame.highlight.x; float _e1005 = frame.highlight.y; float _e1006 = shoulder(_e991 / (dq2_ + _e995), _e1001, _e1005); float _e1008 = visQ; float eQ = (_e1006 * cosQ) * _e1008; float _e1014 = frame.fill.x; lift = ground * ((eQ * viewF) * _e1014); } } metal::float4 _e1019 = frame.lightColor; float _e1024 = frame.highlight.x; float _e1028 = frame.highlight.y; float _e1029 = shoulder(atten, _e1024, _e1028); metal::float3 flameLit = _e1019.xyz * _e1029; float _e1031 = vis; metal::float3 light_2 = flameLit * _e1031; metal::float3 _e1033 = albedo; float _e1035 = ao; metal::float3 _e1041 = trans; float _e1042 = visT; metal::float3 _e1046 = albedo; metal::float4 _e1049 = frame.lightColor; metal::float3 _e1052 = lift; float _e1054 = ao; color = ((((_e1033 * front_1) * metal::mix(1.0, _e1035, 0.65)) * light_2) + (_e1041 * (flameLit * _e1042))) + (((_e1046 * _e1049.xyz) * _e1052) * metal::mix(1.0, _e1054, 0.65)); float _e1061 = cutBand; if (_e1061 > 0.0) { metal::float3 _e1064 = cutOut; float wallLit = metal::max(metal::dot(_e1064, L), 0.0); metal::float3 _e1068 = Ng; float graze = 0.35 + (0.65 * (1.0 - metal::abs(metal::dot(_e1068, V)))); metal::float3 _e1077 = albedo; metal::float3 core = metal::mix(_e1077, PAPER_LIN * grainTone, 0.3); metal::float3 _e1082 = color; float _e1087 = frame.crease.w; float _e1088 = cutBand; color = _e1082 + ((core * light_2) * (((_e1087 * _e1088) * wallLit) * graze)); } metal::float3 _e1094 = color; float _e1095 = luma(_e1094); metal::float3 _e1096 = color; float _e1100 = frame.highlight.z; float _e1104 = frame.highlight.w; float _e1105 = shoulder(_e1095, _e1100, _e1104); color = _e1096 * (_e1105 / metal::max(_e1095, 0.000001)); float _e1113 = frame.charmLight.w; if (_e1113 > 0.0) { local_16 = in_1.edges.w <= 0.0; } else { local_16 = false; } bool _e1123 = local_16; if (_e1123) { metal::float4 _e1126 = frame.charmLight; metal::float3 toC = _e1126.xyz - in_1.world; float dc2_ = metal::dot(toC, toC); metal::float3 Lc = toC * metal::rsqrt(metal::max(dc2_, 0.00000001)); metal::float3 _e1135 = N; float wrapC = metal::max((metal::dot(_e1135, Lc) + 0.6) / 1.6, 0.0); metal::float3 _e1143 = color; metal::float3 _e1144 = albedo; metal::float4 _e1147 = frame.charmColor; float _e1153 = frame.charmLight.w; float _e1159 = ao; color = _e1143 + (((_e1144 * _e1147.xyz) * ((_e1153 * wrapC) / (dc2_ + 0.015))) * metal::mix(1.0, _e1159, 0.5)); } metal::float4 _e1167 = frame.moonDir; metal::float3 M = _e1167.xyz; float wrapM = frame.moonDir.w; metal::float3 _e1173 = N; float moonFront = metal::max((metal::dot(_e1173, M) + wrapM) / (1.0 + wrapM), 0.0); if (!(isCard)) { local_17 = isLeaf; } else { local_17 = true; } bool _e1188 = local_17; if (_e1188) { metal::float3 _e1189 = art; metal::float3 _e1190 = art; metal::float3 _e1193 = Ng; float _e1201 = frame.paperB.x; moonTrans = ((_e1189 * _e1190) * lookThrough) * ((metal::max(-(metal::dot(_e1193, M)), 0.0) * _e1201) * 0.5); } float _e1209 = frame.moonColor.w; float moonFall = 1.0 - (_e1209 * metal::smoothstep(-0.45, 0.45, in_1.world.z)); metal::float3 _e1218 = color; metal::float4 _e1221 = frame.moonColor; float _e1223 = ao; metal::float3 _e1226 = albedo; metal::float3 _e1228 = moonTrans; color = _e1218 + ((_e1221.xyz * (moonFall * _e1223)) * ((_e1226 * moonFront) + _e1228)); if (!(isPage)) { local_18 = isBoard; } else { local_18 = true; } bool _e1236 = local_18; if (_e1236) { float _e1242 = frame.rim.w; local_19 = _e1242 > 0.0; } else { local_19 = false; } bool _e1246 = local_19; if (_e1246) { float _e1252 = frame.rim.z; local_20 = _e1252 > 0.0; } else { local_20 = false; } bool _e1256 = local_20; if (_e1256) { float wR = frame.rim.w; float e0_ = (1.0 - metal::smoothstep(0.0, wR, sheet_4.x)) * metal::max(metal::dot(-(T_2), M), 0.0); float e1_ = (1.0 - metal::smoothstep(0.0, wR, sheetSize.x - sheet_4.x)) * metal::max(metal::dot(T_2, M), 0.0); float e2_ = (1.0 - metal::smoothstep(0.0, wR, sheet_4.y)) * metal::max(metal::dot(-(B_1), M), 0.0); float e3_ = (1.0 - metal::smoothstep(0.0, wR, sheetSize.y - sheet_4.y)) * metal::max(metal::dot(B_1, M), 0.0); metal::float3 _e1303 = Ng; metal::float3 _e1312 = Ng; float graze_1 = metal::pow(1.0 - metal::min(metal::abs(metal::dot(_e1303, V)), 1.0), 3.0) * (0.35 + (0.65 * metal::max(metal::dot(_e1312, M), 0.0))); metal::float3 _e1321 = color; metal::float4 _e1324 = frame.rim; color = _e1321 + (_e1324.xyz * ((1.6 * (((e0_ + e1_) + e2_) + e3_)) + (0.6 * graze_1))); } if (isBoard) { float _e1341 = frame.gilt.y; local_21 = _e1341 > 0.0; } else { local_21 = false; } bool _e1345 = local_21; if (_e1345) { metal::float3 _e1346 = art; float gilt = metal::smoothstep(0.05, 0.22, metal::dot(_e1346, metal::float3(0.2126, 0.7152, 0.0722))); metal::float3 _e1355 = color; metal::float4 _e1358 = frame.gilt; color = _e1355 + (_e1358.xyz * gilt); } float _e1365 = frame.bounce.w; float br = metal::max(_e1365, 0.001); float bounceK = 1.0 / (1.0 + (d2_ / (br * br))); metal::float3 _e1374 = color; metal::float3 _e1375 = albedo; metal::float4 _e1378 = frame.ambient; metal::float4 _e1382 = frame.bounce; float _e1387 = ao; color = _e1374 + ((_e1375 * (_e1378.xyz + (_e1382.xyz * bounceK))) * _e1387); if (isCard) { local_22 = in_1.look.w < -1.0; } else { local_22 = false; } bool _e1397 = local_22; if (_e1397) { local_23 = in_1.look.w > -2.5; } else { local_23 = false; } bool _e1405 = local_23; if (_e1405) { metal::float3 _e1406 = color; metal::float3 _e1407 = art; metal::float3 _e1408 = art; metal::float4 _e1417 = frame.moonshine; color = _e1406 + ((metal::mix(_e1407, metal::float3(metal::dot(_e1408, metal::float3(0.33))), 0.35) * _e1417.xyz) * (-1.0 - in_1.look.w)); } if (isCard) { local_24 = in_1.look.w <= -2.5; } else { local_24 = false; } bool _e1433 = local_24; if (_e1433) { float v_1 = -3.0 - in_1.look.w; thread_ = metal::clamp(v_1, 0.0, 1.0); if (v_1 > 1.0) { float prog = metal::clamp(v_1 - 1.0, 0.0, 1.0); metal::float2 d_5 = in_1.q - metal::float2(0.5, 0.5); float a_5 = metal::fract((metal::atan2(d_5.x, d_5.y) * 0.15915494) + 1.0); float behind = (prog * 1.15) - a_5; thread_ = metal::smoothstep(-0.015, 0.0, behind) * (1.0 + (THREAD_HEAD * metal::exp(-(metal::max(behind, 0.0)) * 16.0))); } metal::float3 _e1479 = art; float _e1480 = luma(_e1479); float ink = 1.0 - metal::smoothstep(0.06, 0.3, _e1480); metal::float3 _e1486 = color; metal::float4 _e1489 = frame.glow; float _e1492 = thread_; color = _e1486 + (_e1489.xyz * (((THREAD_GAIN * _e1492) * ink) * inkEdge)); } float _e1503 = frame.charm.x; float gw = in_1.edges.w * _e1503; if (isCard) { local_25 = gw > 0.0; } else { local_25 = false; } bool _e1510 = local_25; if (_e1510) { metal::float3 _e1511 = art; float _e1512 = luma(_e1511); float inkC = 1.0 - metal::smoothstep(0.06, 0.3, _e1512); float lines = ((inkC * inkEdge) * (facing ? 1.0 : 0.0)) * (0.75 + (0.25 * gw)); float _e1532 = cutDist; float rim = 1.0 - metal::smoothstep(0.0, metal::max(0.006, fp_1 * 1.5), _e1532); float blaze = metal::smoothstep(0.65, 1.5, gw); float within = ((metal::mix(0.5, 1.3, _e300.formation) * (1.0 - (0.85 * inkC))) * (facing ? 1.0 : 0.55)) * blaze; float _e1559 = frame.charmColor.w; float _e1568 = vnoise((sheet_4 * 9.0) + metal::float2(_e1559 * 1.1, in_1.look.z * 17.0)); float shimmer = 0.8 + (0.2 * _e1568); float _e1576 = frame.charm.y; float _e1581 = frame.charm.z; float _e1587 = frame.charm.w; float lit_2 = ((_e1576 * lines) + (_e1581 * rim)) + (_e1587 * within); metal::float3 _e1590 = color; metal::float4 _e1593 = frame.charmColor; color = _e1590 + (_e1593.xyz * ((gw * shimmer) * lit_2)); } charge = phosF16_; float _e1603 = frame.glow.w; if (_e1603 > 0.5) { float _e1606 = phosphorPacked(puv_1, phosphorTex); charge = _e1606; } if (isPage) { float _e1612 = frame.view.y; local_26 = _e1612 > 0.5; } else { local_26 = false; } bool _e1616 = local_26; if (_e1616) { float pigment = metal::mix(0.8, 1.12, _e300.formation); metal::float3 _e1621 = color; metal::float4 _e1624 = frame.glow; float _e1626 = charge; color = _e1621 + (_e1624.xyz * (((_e1626 * maskA) * pigment) * _e114)); float _e1638 = frame.moonshine.w; float invocation = metal::smoothstep(0.3, 0.75, maskA) * _e1638; metal::float3 _e1640 = color; metal::float4 _e1643 = frame.glow; color = _e1640 + (_e1643.xyz * (((invocation * pigment) * _e114) * 4.0)); } if (isCard) { float _e1656 = frame.view.y; local_27 = _e1656 > 0.5; } else { local_27 = false; } bool _e1660 = local_27; if (_e1660) { metal::float3 _e1663 = Ng; metal::float2 probe = in_1.world.xz + (_e1663.xz * 0.05); float _e1672 = frame.pageRect.x; float _e1677 = frame.pageRect.z; float _e1683 = frame.pageRect.y; float _e1688 = frame.pageRect.w; metal::float2 puv2_ = metal::float2((probe.x - _e1672) * _e1677, (probe.y - _e1683) * _e1688); metal::float4 _e1694 = phosphorTex.sample(mapSamp, puv2_, metal::level(0.0)); c2_ = _e1694.x; float _e1700 = frame.glow.w; if (_e1700 > 0.5) { float _e1703 = phosphorPacked(puv2_, phosphorTex); c2_ = _e1703; } float lift_1 = metal::exp(-(hostH) / 0.09); metal::float3 _e1708 = color; metal::float3 _e1709 = albedo; metal::float4 _e1712 = frame.glow; float _e1715 = c2_; float _e1716 = inUnit(puv2_); float _e1722 = frame.view.z; color = _e1708 + ((_e1709 * _e1712.xyz) * (((_e1715 * _e1716) * lift_1) * _e1722)); } if (viewMode > 0.5) { local_28 = viewMode < 1.5; } else { local_28 = false; } bool _e1733 = local_28; if (_e1733) { float _e1734 = charge; float _e1737 = charge; float _e1738 = charge; color = metal::float3(_e1734 * 0.35, _e1737, _e1738 * 0.5) * (isPage ? 1.0 : 0.02); } else { if (viewMode > 1.5) { local_29 = viewMode < 2.5; } else { local_29 = false; } bool _e1753 = local_29; if (_e1753) { color = metal::float3(maskA) * (isPage ? 1.0 : 0.02); } else { if (viewMode > 2.5) { local_30 = viewMode < 3.5; } else { local_30 = false; } bool _e1766 = local_30; if (_e1766) { float _e1767 = ao; color = metal::float3(isPage ? aoMap : _e1767); } else { if (viewMode > 5.5) { local_31 = viewMode < 6.5; } else { local_31 = false; } bool _e1777 = local_31; if (_e1777) { float _e1778 = vis; color = metal::float3(_e1778); } else { if (viewMode > 7.5) { local_32 = viewMode < 8.5; } else { local_32 = false; } bool _e1787 = local_32; if (_e1787) { color = metal::float3(isCard ? 1.0 : 0.0); } } } } } metal::float3 _e1792 = color; metal::float4 _e1796 = frame.camPos; metal::float4 _e1800 = frame.lightPos; metal::float4 _e1804 = frame.haze; metal::float4 _e1807 = frame.glowAir; metal::float3 _e1808 = atmosphere(_e1792, in_1.world, _e1796.xyz, _e1800.xyz, _e1804, _e1807); color = _e1808; metal::float3 _e1809 = color; float _e1813 = frame.camPos.w; metal::float3 _e1814 = encodeHdr(_e1809, _e1813); float _e1815 = cov; float _e1817 = cov; return fs_mainOutput { metal::float4(_e1814 * _e1815, _e1817) }; }  `ºÛÅÝÈÚû§vN€Î4vs_mainmainu%struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct Frame { row_major float4x4 viewProj; row_major float4x4 lightViewProj; float4 lightPos; float4 lightColor; float4 ambient; float4 shadowA; float4 camPos; float4 paperA; float4 paperB; float4 paperC; float4 glow; float4 pageRect; float4 view; float4 moonDir; float4 moonColor; float4 bounce; float4 shadowB; float4 pages; float4 table; float4 highlight; float4 rim; float4 moonshine; float4 haze; float4 glowAir; float4 crease; float4 windA; float4 windB; float4 charm; float4 charmColor; float4 charmLight; float4 fill; float4 gilt; }; struct VsOut { float4 position; float3 world; float2 uv; float2 q; float4 normal; float4 tangent; float4 bitangent; float4 clip; float4 params; float4 look; float4 edges; float3 bent; }; struct PaperSurf { float2 slope; float tone; float formation; }; static const PaperSurf _1101 = { float2(0.0f, 0.0f), 0.0f, 0.0f }; static const VsOut _1396 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer frame : register(b0) { Frame frame_1_m0 : packoffset(c0); }; static float4 gl_Position; static float2 q; static float4 m0; static float4 m1; static float4 m2; static float4 m3; static float4 uvRect; static float4 clip; static float4 params; static float4 look; static float4 edges; static float4 pin; static float3 world; static float2 uv; static float2 q_1; static float4 normal; static float4 tangent; static float4 bitangent; static float4 clip_1; static float4 params_1; static float4 look_1; static float4 edges_1; static float3 bent; struct SPIRV_Cross_Input { float2 q : TEXCOORD0; float4 m0 : TEXCOORD1; float4 m1 : TEXCOORD2; float4 m2 : TEXCOORD3; float4 m3 : TEXCOORD4; float4 uvRect : TEXCOORD5; float4 clip : TEXCOORD6; float4 params : TEXCOORD7; float4 look : TEXCOORD8; float4 edges : TEXCOORD9; float4 pin : TEXCOORD10; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float2 uv : TEXCOORD1; float2 q_1 : TEXCOORD2; nointerpolation float4 normal : TEXCOORD3; nointerpolation float4 tangent : TEXCOORD4; nointerpolation float4 bitangent : TEXCOORD5; nointerpolation float4 clip_1 : TEXCOORD6; nointerpolation float4 params_1 : TEXCOORD7; nointerpolation float4 look_1 : TEXCOORD8; nointerpolation float4 edges_1 : TEXCOORD9; float3 bent : TEXCOORD10; float4 gl_Position : SV_Position; }; float windAnchor(float2 sheet, float2 size, float mask, float4 pin_1) { float d = 1000.0f; uint _831 = uint(clamp(clamp(mask, 0.0f, 15.0f) + 0.5f, 0.0f, 4294967040.0f)); if ((_831 & 1u) != 0u) { d = min(d, abs(sheet.x)); } if ((_831 & 2u) != 0u) { d = min(d, abs(size.x - sheet.x)); } if ((_831 & 4u) != 0u) { d = min(d, abs(sheet.y)); } if ((_831 & 8u) != 0u) { d = min(d, abs(size.y - sheet.y)); } if (pin_1.x > (-0.5f)) { float2 _873 = pin_1.xy * size; float2 _876 = (pin_1.zw * size) - _873; d = min(d, length(sheet - (_873 + (_876 * clamp(dot(sheet - _873, _876) / max(dot(_876, _876), 1.0000000133514319600180897396058e-10f), 0.0f, 1.0f))))); } return d; } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _231 = floor(p); float2 _232 = p - _231; float2 _236 = (_232 * _232) * (float2(3.0f, 3.0f) - (_232 * 2.0f)); int2 _242 = int2(clamp(_231, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_242), hashCell(_242 + int2(1, 0)), _236.x), lerp(hashCell(_242 + int2(0, 1)), hashCell(_242 + int2(1, 1)), _236.x), _236.y) * 2.0f) - 1.0f; } float windDisp(float3 P0, float3 N, float2 sheet, float2 size, float mask, float4 pin_1, float seed, float4 wa, float4 wb) { float _918 = min(windAnchor(sheet, size, mask, pin_1) * wb.z, 1.39999997615814208984375f); float _922 = dot(P0.xz, wb.xy); float _932 = wa.w * (0.699999988079071044921875f + (0.300000011920928955078125f * vnoise(float2((_922 * 6.0f) - (wa.z * 2.2000000476837158203125f), seed * 7.30000019073486328125f)))); return (_918 * _918) * (((wa.x * _932) * ((0.550000011920928955078125f * dot(N.xz, wb.xy)) + (0.449999988079071044921875f * ((0.64999997615814208984375f * sin(((wa.z * 7.5f) + (seed * 6.283185482025146484375f)) + (_922 * 2.5f))) + (0.3499999940395355224609375f * vnoise(float2((wa.z * 1.89999997615814208984375f) + (seed * 13.0f), _922 * 3.0f))))))) + (_918 * (((wa.y * _932) * sin(((dot(sheet, float2(0.60000002384185791015625f, 0.800000011920928955078125f)) * 41.88790130615234375f) - ((wa.z * 6.283185482025146484375f) * wb.w)) + (seed * 11.0f))) * (0.550000011920928955078125f + (0.449999988079071044921875f * vnoise(float2((wa.z * 3.2999999523162841796875f) + (seed * 5.0f), _922 * 5.0f))))))); } float4 windBend(float3 P0, float3 N, float3 T, float3 B, float2 sheet, float2 size, float mask, float4 pin_1, float seed, float weight, float4 wa, float4 wb) { float _1000 = windDisp(P0, N, sheet, size, mask, pin_1, seed, wa, wb) * weight; return float4(normalize((N - (T * (((windDisp(P0 + (T * 0.006000000052154064178466796875f), N, sheet + float2(0.006000000052154064178466796875f, 0.0f), size, mask, pin_1, seed, wa, wb) * weight) - _1000) / 0.006000000052154064178466796875f))) - (B * (((windDisp(P0 + (B * 0.006000000052154064178466796875f), N, sheet + float2(0.0f, 0.006000000052154064178466796875f), size, mask, pin_1, seed, wa, wb) * weight) - _1000) / 0.006000000052154064178466796875f))), _1000); } void vert_main() { float3 bent_1 = float3(0.0f, 0.0f, 0.0f); VsOut _out = _1396; float3 world_1 = float3(0.0f, 0.0f, 0.0f); bool _1392 = false; VsIn _1344 = { q, m0, m1, m2, m3, uvRect, clip, params, look, edges, pin }; world_1 = mul(float4(_1344.q, 0.0f, 1.0f), float4x4(_1344.m0, _1344.m1, _1344.m2, _1344.m3)).xyz; float _1409 = length(_1344.m0.xyz); float _1412 = length(_1344.m1.xyz); float3 _1415 = normalize(_1344.m2.xyz); bent_1 = _1415; if (_1344.edges.z > 0.0f) { _1392 = frame_1_m0.windA.w > 0.0f; } else { _1392 = false; } if (_1392) { float2 _1432 = float2(_1409, _1412); float _1436 = max(_1409, 9.9999999747524270787835121154785e-07f); float _1441 = max(_1412, 9.9999999747524270787835121154785e-07f); float4 _1458 = windBend(world_1, _1415, _1344.m0.xyz / float3(_1436, _1436, _1436), _1344.m1.xyz / float3(_1441, _1441, _1441), _1344.q * _1432, _1432, _1344.edges.x, _1344.pin, _1344.look.z, _1344.edges.z, frame_1_m0.windA, frame_1_m0.windB); world_1 += (_1415 * _1458.w); bent_1 = _1458.xyz; } _out.position = mul(float4(world_1, 1.0f), frame_1_m0.viewProj); _out.world = world_1; _out.uv = _1344.uvRect.xy + (_1344.q * _1344.uvRect.zw); _out.q = _1344.q; _out.normal = float4(normalize(_1344.m2.xyz), 0.0f); float _1491 = max(_1409, 9.9999999747524270787835121154785e-07f); _out.tangent = float4(_1344.m0.xyz / float3(_1491, _1491, _1491), _1409); float _1499 = max(_1412, 9.9999999747524270787835121154785e-07f); _out.bitangent = float4(_1344.m1.xyz / float3(_1499, _1499, _1499), _1412); _out.clip = _1344.clip; _out.params = _1344.params; _out.look = _1344.look; _out.edges = _1344.edges; _out.bent = bent_1; gl_Position = _out.position; world = _out.world; uv = _out.uv; q_1 = _out.q; normal = _out.normal; tangent = _out.tangent; bitangent = _out.bitangent; clip_1 = _out.clip; params_1 = _out.params; look_1 = _out.look; edges_1 = _out.edges; bent = _out.bent; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { q = stage_input.q; m0 = stage_input.m0; m1 = stage_input.m1; m2 = stage_input.m2; m3 = stage_input.m3; uvRect = stage_input.uvRect; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; pin = stage_input.pin; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.uv = uv; stage_output.q_1 = q_1; stage_output.normal = normal; stage_output.tangent = tangent; stage_output.bitangent = bitangent; stage_output.clip_1 = clip_1; stage_output.params_1 = params_1; stage_output.look_1 = look_1; stage_output.edges_1 = edges_1; stage_output.bent = bent; return stage_output; } fs_mainmainÞžstruct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct Frame { row_major float4x4 viewProj; row_major float4x4 lightViewProj; float4 lightPos; float4 lightColor; float4 ambient; float4 shadowA; float4 camPos; float4 paperA; float4 paperB; float4 paperC; float4 glow; float4 pageRect; float4 view; float4 moonDir; float4 moonColor; float4 bounce; float4 shadowB; float4 pages; float4 table; float4 highlight; float4 rim; float4 moonshine; float4 haze; float4 glowAir; float4 crease; float4 windA; float4 windB; float4 charm; float4 charmColor; float4 charmLight; float4 fill; float4 gilt; }; struct VsOut { float4 position; float3 world; float2 uv; float2 q; float4 normal; float4 tangent; float4 bitangent; float4 clip; float4 params; float4 look; float4 edges; float3 bent; }; struct PaperSurf { float2 slope; float tone; float formation; }; static const PaperSurf _1264 = { float2(0.0f, 0.0f), 0.0f, 0.0f }; cbuffer frame : register(b0) { Frame frame_1_m0 : packoffset(c0); }; Texture2D momentsTex : register(t0); SamplerState momentsSamp : register(s0); Texture2D phosphorTex : register(t1); Texture2D maskTex : register(t2); Texture2D aoTex : register(t3); SamplerState mapSamp : register(s1); Texture2D albedoTex : register(t4); SamplerState albedoSamp : register(s2); static float4 gl_FragCoord; static float3 world; static float2 uv; static float2 q; static float4 normal; static float4 tangent; static float4 bitangent; static float4 clip; static float4 params; static float4 look; static float4 edges; static float3 bent; static float4 _1609; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float2 uv : TEXCOORD1; float2 q : TEXCOORD2; nointerpolation float4 normal : TEXCOORD3; nointerpolation float4 tangent : TEXCOORD4; nointerpolation float4 bitangent : TEXCOORD5; nointerpolation float4 clip : TEXCOORD6; nointerpolation float4 params : TEXCOORD7; nointerpolation float4 look : TEXCOORD8; nointerpolation float4 edges : TEXCOORD9; float3 bent : TEXCOORD10; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _1609 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float luma(float3 c) { return dot(c, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)); } float inUnit(float2 p) { return ((step(0.0f, p.x) * step(p.x, 1.0f)) * step(0.0f, p.y)) * step(p.y, 1.0f); } float3 srgbToLinear(float3 c) { float3 _64 = max(c, float3(0.0f, 0.0f, 0.0f)); float3 _65 = _64 * 0.077399380505084991455078125f; float3 _68 = pow((_64 + float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f)) * 0.94786727428436279296875f, float3(2.400000095367431640625f, 2.400000095367431640625f, 2.400000095367431640625f)); bool3 _70 = bool3(_64.x <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).x, _64.y <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).y, _64.z <= float3(0.040449999272823333740234375f, 0.040449999272823333740234375f, 0.040449999272823333740234375f).z); return float3(_70.x ? _65.x : _68.x, _70.y ? _65.y : _68.y, _70.z ? _65.z : _68.z); } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _241 = floor(p); float2 _242 = p - _241; float2 _246 = (_242 * _242) * (float2(3.0f, 3.0f) - (_242 * 2.0f)); int2 _252 = int2(clamp(_241, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_252), hashCell(_252 + int2(1, 0)), _246.x), lerp(hashCell(_252 + int2(0, 1)), hashCell(_252 + int2(1, 1)), _246.x), _246.y) * 2.0f) - 1.0f; } float3 vnoiseD(float2 p) { float2 _275 = floor(p); float2 _276 = p - _275; float2 _280 = (_276 * _276) * (float2(3.0f, 3.0f) - (_276 * 2.0f)); int2 _285 = int2(clamp(_275, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float _286 = hashCell(_285); float _288 = hashCell(_285 + int2(1, 0)); float _290 = hashCell(_285 + int2(0, 1)); float _293 = _288 - _286; float _294 = _290 - _286; float _297 = ((_286 - _288) - _290) + hashCell(_285 + int2(1, 1)); return float3(((((_286 + (_293 * _280.x)) + (_294 * _280.y)) + ((_297 * _280.x) * _280.y)) * 2.0f) - 1.0f, (((_276 * 6.0f) * (float2(1.0f, 1.0f) - _276)) * float2(_293 + (_297 * _280.y), _294 + (_297 * _280.x))) * 2.0f); } float3 fibreLayer(float3 n, float2x2 r, float2 a) { float _1194 = 1.0f - abs(n.x); float _1196 = (_1194 * _1194) * _1194; return float3(_1196 * _1194, mul(((n.yz * (((-4.0f) * _1196) * sign(n.x))) * a) / float2(a.yy), transpose(r))); } PaperSurf paperSurface(float2 q_1, float fp, float scale) { PaperSurf s = _1264; float _1269 = vnoise((q_1 * (7.0f * scale)) + float2(3.099999904632568359375f, 7.69999980926513671875f)); float _1273 = vnoise((q_1 * (19.0f * scale)) + float2(11.69999980926513671875f, 4.19999980926513671875f)); float _1274 = 150.0f * scale; float _1275 = 340.0f * scale; float3 _1278 = vnoiseD((q_1 * _1274) + float2(7.30000019073486328125f, 1.89999997615814208984375f)); float3 _1281 = vnoiseD((q_1 * _1275) + float2(2.099999904632568359375f, 9.3999996185302734375f)); float _1285 = clamp(1.5f - ((fp * _1274) * 1.2999999523162841796875f), 0.0f, 1.0f); float _1289 = clamp(1.5f - ((fp * _1275) * 1.2999999523162841796875f), 0.0f, 1.0f); float2 _1290 = float2(95.0f, 280.0f) * scale; float3 _1294 = fibreLayer(vnoiseD(mul(q_1, float2x2(float2(0.906300008296966552734375f, 0.4226000010967254638671875f), float2(-0.4226000010967254638671875f, 0.906300008296966552734375f))) * _1290), float2x2(float2(0.906300008296966552734375f, 0.4226000010967254638671875f), float2(-0.4226000010967254638671875f, 0.906300008296966552734375f)), _1290); float3 _1299 = fibreLayer(vnoiseD((mul(q_1, float2x2(float2(-0.34200000762939453125f, 0.93970000743865966796875f), float2(-0.93970000743865966796875f, -0.34200000762939453125f))) * _1290) + float2(31.0f, 17.0f)), float2x2(float2(-0.34200000762939453125f, 0.93970000743865966796875f), float2(-0.93970000743865966796875f, -0.34200000762939453125f)), _1290); float3 _1304 = fibreLayer(vnoiseD((mul(q_1, float2x2(float2(0.5f, -0.865999996662139892578125f), float2(0.865999996662139892578125f, 0.5f))) * _1290) + float2(5.0f, 43.0f)), float2x2(float2(0.5f, -0.865999996662139892578125f), float2(0.865999996662139892578125f, 0.5f)), _1290); float _1309 = clamp(1.5f - ((fp * _1290.y) * 1.2000000476837158203125f), 0.0f, 1.0f); float _1315 = ((_1294.x + _1299.x) + _1304.x) * _1309; s.formation = clamp(((0.5f + (0.36000001430511474609375f * _1269)) + (0.23999999463558197021484375f * _1273)) + (0.100000001490116119384765625f * _1315), 0.0f, 1.0f); s.tone = (((1.0f + (0.07999999821186065673828125f * ((0.36000001430511474609375f * _1269) + (0.23999999463558197021484375f * _1273)))) + ((0.02199999988079071044921875f * _1278.x) * _1285)) + ((0.01200000010430812835693359375f * _1281.x) * _1289)) + (0.02999999932944774627685546875f * (_1315 - 0.300000011920928955078125f)); s.slope = ((_1278.yz * (0.89999997615814208984375f * _1285)) + (_1281.yz * (0.449999988079071044921875f * _1289))) + (((_1294.yz + _1299.yz) + _1304.yz) * (0.180000007152557373046875f * _1309)); return s; } float3 sideDist(float2 sheet, float2 size, float mask) { bool _1493 = false; bool _1487 = false; bool _1491 = false; float3 best = float3(1000.0f, 0.0f, 0.0f); bool _1489 = false; uint _1499 = uint(clamp(clamp(mask, 0.0f, 15.0f) + 0.5f, 0.0f, 4294967040.0f)); if ((_1499 & 1u) != 0u) { _1487 = sheet.x < best.x; } else { _1487 = false; } if (_1487) { best = float3(sheet.x, -1.0f, 0.0f); } if ((_1499 & 2u) != 0u) { _1489 = (size.x - sheet.x) < best.x; } else { _1489 = false; } if (_1489) { best = float3(size.x - sheet.x, 1.0f, 0.0f); } if ((_1499 & 4u) != 0u) { _1491 = sheet.y < best.x; } else { _1491 = false; } if (_1491) { best = float3(sheet.y, 0.0f, -1.0f); } if ((_1499 & 8u) != 0u) { _1493 = (size.y - sheet.y) < best.x; } else { _1493 = false; } if (_1493) { best = float3(size.y - sheet.y, 0.0f, 1.0f); } return best; } float shadowVisibility(float4x4 lvp, float4 sa, float4 sb, float3 world_1, float2 fragXY, float2 lightXZ) { float p = 0.0f; float4 _1047 = mul(float4(world_1, 1.0f), lvp); float3 _1051 = _1047.xyz / float3(_1047.www); float2 _1058 = float2((_1051.x * 0.5f) + 0.5f, 0.5f - (_1051.y * 0.5f)); float _1063 = (_1047.w * sa.x) - sa.y; float2 _1067 = momentsTex.SampleLevel(momentsSamp, _1058, 0.0f).xy; float _1073 = max(_1067.y - (_1067.x * _1067.x), 1.9999999494757503271102905273438e-05f); float _1075 = _1063 - _1067.x; p = _1073 / (_1073 + (_1075 * _1075)); p = clamp((p - sa.z) / (1.0f - sa.z), 0.0f, 1.0f); return lerp(1.0f, (_1063 <= _1067.x) ? 1.0f : p, (((step(0.0f, _1058.x) * step(_1058.x, 1.0f)) * step(0.0f, _1058.y)) * step(_1058.y, 1.0f)) * step(0.0f, _1047.w)); } float ign(float2 p) { return frac(52.98291778564453125f * frac(dot(p, float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))); } float shadowVisibilityWide(float4x4 lvp, float4 sa, float4 sb, float3 world_1, float2 fragXY, float r) { float lit = 0.0f; int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _1125 = 6.283185482025146484375f * ign(fragXY + float2(5.0f, 3.0f)); float _1128 = (cos(_1125) * r) * 0.699999988079071044921875f; float _1131 = (sin(_1125) * r) * 0.699999988079071044921875f; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 4)) { break; } float2 _1154 = float2(-_1131, _1128); float2 _1156 = float2(_1131, -_1128); bool _1158 = i == 3; bool2 _1160 = bool2(_1158, _1158); float2 _1159 = float2(_1160.x ? _1156.x : _1154.x, _1160.y ? _1156.y : _1154.y); float2 _1161 = float2(_1128, _1131); float2 _1164 = float2(-_1128, -_1131); bool _1166 = i == 1; bool2 _1168 = bool2(_1166, _1166); float2 _1167 = float2(_1168.x ? _1164.x : _1161.x, _1168.y ? _1164.y : _1161.y); bool _1170 = i < 2; bool2 _1172 = bool2(_1170, _1170); float2 _1171 = float2(_1172.x ? _1167.x : _1159.x, _1172.y ? _1167.y : _1159.y); lit += shadowVisibility(lvp, sa, sb, world_1 + float3(_1171.x, 0.0f, _1171.y), fragXY, float2(0.0f, 0.0f)); i++; continue; } return lit * 0.25f; } float shoulder(float x, float knee, float r) { bool _1458 = false; if (!(x <= knee)) { _1458 = r <= 0.0f; } else { _1458 = true; } if (_1458) { return x; } return knee + (r * log(1.0f + ((x - knee) / r))); } float unpack16(float4 t) { return ((floor((t.x * 255.0f) + 0.5f) * 256.0f) + floor((t.y * 255.0f) + 0.5f)) * 1.525902189314365386962890625e-05f; } float phosphorPacked(float2 puv) { uint _1386_dummy_parameter; float2 _1387 = float2(spvTextureSize(phosphorTex, 0u, _1386_dummy_parameter)); float2 _1390 = (clamp(puv, float2(0.0f, 0.0f), float2(1.0f, 1.0f)) * _1387) - float2(0.5f, 0.5f); int2 _1393 = int2(clamp(floor(_1390), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float2 _1395 = _1390 - floor(_1390); int2 _1398 = int2(clamp(_1387, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))) - int2(1, 1); int _1401; spvTextureSize(phosphorTex, 0u, _1401); int _1403 = int(min(uint(0), uint(int(_1401) - 1))); uint _1404_dummy_parameter; int _1413; spvTextureSize(phosphorTex, 0u, _1413); int _1415 = int(min(uint(0), uint(int(_1413) - 1))); uint _1416_dummy_parameter; int _1425; spvTextureSize(phosphorTex, 0u, _1425); int _1427 = int(min(uint(0), uint(int(_1425) - 1))); uint _1428_dummy_parameter; int _1437; spvTextureSize(phosphorTex, 0u, _1437); int _1439 = int(min(uint(0), uint(int(_1437) - 1))); uint _1440_dummy_parameter; return lerp(lerp(unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max(_1393, int2(0, 0)), _1398)), uint2(int2(spvTextureSize(phosphorTex, uint(_1403), _1404_dummy_parameter)) - int2(1, 1)))), _1403))), unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max((_1393 + int2(1, 0)), int2(0, 0)), _1398)), uint2(int2(spvTextureSize(phosphorTex, uint(_1415), _1416_dummy_parameter)) - int2(1, 1)))), _1415))), _1395.x), lerp(unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max((_1393 + int2(0, 1)), int2(0, 0)), _1398)), uint2(int2(spvTextureSize(phosphorTex, uint(_1427), _1428_dummy_parameter)) - int2(1, 1)))), _1427))), unpack16(phosphorTex.Load(int3(int2(min(uint2(min(max((_1393 + int2(1, 1)), int2(0, 0)), _1398)), uint2(int2(spvTextureSize(phosphorTex, uint(_1439), _1440_dummy_parameter)) - int2(1, 1)))), _1439))), _1395.x), _1395.y); } float pointGlow(float3 eye, float3 dir, float dist, float3 light, float s2) { float3 _364 = light - eye; float _365 = dot(_364, dir); float _372 = sqrt(max(dot(_364, _364) - (_365 * _365), 0.0f) + max(s2, 9.9999999747524270787835121154785e-07f)); return (atan((dist - _365) / _372) + atan(_365 / _372)) / _372; } float3 atmosphere(float3 col, float3 world_1, float3 eye, float3 light, float4 haze, float4 glow) { float3 _391 = world_1 - eye; float _392 = length(_391); float _393 = max(_392, 9.9999997473787516355514526367188e-06f); float _401 = exp((-haze.w) * max(_392 - 2.7999999523162841796875f, 0.0f)); return ((col * _401) + (haze.xyz * (1.0f - _401))) + (glow.xyz * pointGlow(eye, _391 / float3(_393, _393, _393), _392, light, glow.w)); } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { bool _1765 = false; bool _1759 = false; bool _1753 = false; bool _1747 = false; bool _1741 = false; bool _1735 = false; bool _1729 = false; float3 color = float3(0.0f, 0.0f, 0.0f); bool _1719 = false; float ao = 1.0f; bool _1710 = false; float2 o = float2(0.0f, 0.0f); float fd = 0.0f; float3 cutOut = float3(0.0f, 0.0f, 0.0f); bool _1690 = false; bool _1685 = false; float3 Ng = float3(0.0f, 0.0f, 0.0f); bool _1673 = false; float cov = 0.0f; bool _1761 = false; float c2 = 0.0f; float charge = 0.0f; bool _1743 = false; bool _1737 = false; bool _1731 = false; bool _1726 = false; bool _1721 = false; float visT = 0.0f; float3 trans = float3(0.0f, 0.0f, 0.0f); bool _1707 = false; bool _1701 = false; float cutDist = 1000.0f; bool _1692 = false; float3 N = float3(0.0f, 0.0f, 0.0f); bool _1681 = false; float3 art = float3(0.0f, 0.0f, 0.0f); bool _1669 = false; bool _1763 = false; bool _1757 = false; bool _1751 = false; float thread = 0.0f; bool _1739 = false; bool _1733 = false; float3 moonTrans = float3(0.0f, 0.0f, 0.0f); float visQ = 1.0f; float3 lift = float3(0.0f, 0.0f, 0.0f); bool _1713 = false; float vis = 1.0f; float e = 0.0f; bool _1697 = false; float cutBand = 0.0f; float crease = 0.0f; float3 albedo = float3(0.0f, 0.0f, 0.0f); bool _1677 = false; bool _1671 = false; VsOut _1581 = { gl_FragCoord, world, uv, q, normal, tangent, bitangent, clip, params, look, edges, bent }; float4 _1770 = albedoTex.Sample(albedoSamp, _1581.uv); bool _1773 = _1581.params.w < 0.0f; float _1775 = _1773 ? _1770.w : 1.0f; float _1779 = max(_1770.w, 9.9999997473787516355514526367188e-05f); float _1783 = fwidth(luma(_1770.xyz / float3(_1779, _1779, _1779))); float _1785 = clamp(_1783 * 7.0f, 0.0f, 1.0f); float _1789 = 0.5f - length(_1581.q - float2(0.5f, 0.5f)); float _1797 = dot(_1581.clip.xy, _1581.q) + _1581.clip.z; float2 _1803 = float2(_1581.tangent.w, _1581.bitangent.w); float2 _1805 = _1581.q * _1803; float2 _1806 = fwidth(_1805); float _1810 = max(max(_1806.x, _1806.y), 9.9999999747524270787835121154785e-07f); float2 _1811 = ddx(_1805); float2 _1812 = ddy(_1805); float _1813 = ddx(_1775); float _1814 = ddy(_1775); float2 _1824 = float2(_1581.look.w + (0.5f * _1581.q.x), 1.0f - _1581.q.y); float2 _1845 = float2((_1581.world.x - frame_1_m0.pageRect.x) * frame_1_m0.pageRect.z, (_1581.world.z - frame_1_m0.pageRect.y) * frame_1_m0.pageRect.w); bool _1848 = _1581.look.w >= 0.0f; bool2 _1850 = bool2(_1848, _1848); float2 _1849 = float2(_1850.x ? _1824.x : _1845.x, _1850.y ? _1824.y : _1845.y); float4 _1852 = phosphorTex.Sample(mapSamp, _1849); float4 _1855 = maskTex.Sample(mapSamp, _1849); float _1856 = _1855.w; float4 _1858 = aoTex.Sample(mapSamp, _1849); float _1859 = _1858.x; float _1860 = inUnit(_1849); cov = (frame_1_m0.view.w > 0.5f) ? clamp(((_1775 - 0.5f) / max(fwidth(_1775), 9.9999997473787516355514526367188e-05f)) + 0.5f, 0.0f, 1.0f) : step(0.5f, _1775); cov = (_1581.params.y > 0.5f) ? cov : 1.0f; cov *= ((_1581.params.z > 0.5f) ? clamp((_1789 / max(fwidth(_1789), 9.9999999747524270787835121154785e-07f)) + 0.5f, 0.0f, 1.0f) : 1.0f); cov *= ((_1581.clip.w > 0.5f) ? clamp((_1797 / max(fwidth(_1797), 9.9999999747524270787835121154785e-07f)) + 0.5f, 0.0f, 1.0f) : 1.0f); if (cov <= 0.0f) { discard; } if (_1581.look.x > 0.5f) { _1669 = _1581.look.x < 1.5f; } else { _1669 = false; } if (_1581.look.x > 1.5f) { _1671 = _1581.look.x < 2.5f; } else { _1671 = false; } bool _1915 = _1581.look.x < 0.5f; if (_1581.look.x > 2.5f) { _1673 = _1581.look.x < 3.5f; } else { _1673 = false; } bool _1928 = _1581.params.w > 0.5f; bool3 _1930 = bool3(_1928, _1928, _1928); float3 _1929 = float3(_1930.x ? float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).x : float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f).x, _1930.y ? float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).y : float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f).y, _1930.z ? float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).z : float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f).z); float _1933 = max(_1770.w, 9.9999997473787516355514526367188e-05f); float3 _1936 = srgbToLinear(_1770.xyz / float3(_1933, _1933, _1933)); bool3 _1938 = bool3(_1773, _1773, _1773); art = float3(_1938.x ? _1936.x : _1929.x, _1938.y ? _1936.y : _1929.y, _1938.z ? _1936.z : _1929.z); if (frame_1_m0.view.x > 4.5f) { _1677 = frame_1_m0.view.x < 5.5f; } else { _1677 = false; } if (_1677) { art = float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f); } float3 _1953 = normalize(frame_1_m0.camPos.xyz - _1581.world); Ng = normalize(_1581.bent); float3 _1956 = Ng; bool _1958 = dot(_1956, _1953) >= 0.0f; float3 _1960 = -Ng; bool3 _1963 = bool3(_1958, _1958, _1958); Ng = float3(_1963.x ? Ng.x : _1960.x, _1963.y ? Ng.y : _1960.y, _1963.z ? Ng.z : _1960.z); float3 _1965 = lerp(float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f), art, float3(0.550000011920928955078125f, 0.550000011920928955078125f, 0.550000011920928955078125f)); bool _1967 = _1581.look.x < (-0.5f); bool3 _1969 = bool3(_1967, _1967, _1967); float3 _1968 = float3(_1969.x ? _1965.x : float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).x, _1969.y ? _1965.y : float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).y, _1969.z ? _1965.z : float3(0.68669998645782470703125f, 0.597199976444244384765625f, 0.434199988842010498046875f).z); if (!_1958) { _1681 = !_1915; } else { _1681 = true; } bool3 _1978 = bool3(_1681, _1681, _1681); albedo = float3(_1978.x ? art.x : _1968.x, _1978.y ? art.y : _1968.y, _1978.z ? art.z : _1968.z); if (frame_1_m0.view.x > 4.5f) { _1685 = frame_1_m0.view.x < 5.5f; } else { _1685 = false; } if (_1685) { albedo = float3(0.60000002384185791015625f, 0.60000002384185791015625f, 0.60000002384185791015625f); } PaperSurf _2000 = paperSurface(_1805 + float2(_1581.look.z * 13.69999980926513671875f, _1581.look.z * 5.30000019073486328125f), _1810, frame_1_m0.paperA.w); float _2002 = lerp(1.0f, _2000.tone, frame_1_m0.paperA.x); albedo *= _2002; art *= _2002; N = Ng; if (_1669) { _1690 = abs(_1581.look.y) > 0.5f; } else { _1690 = false; } if (_1690) { _1692 = frame_1_m0.paperC.z > 0.0f; } else { _1692 = false; } if (_1692) { float _2033 = (_1581.look.y > 0.0f) ? (_1803.x - _1805.x) : _1805.x; crease = 1.0f - smoothstep(0.0f, 0.07500000298023223876953125f, _2033); N = normalize(N + (_1581.tangent.xyz * (((_1581.look.y * 0.550000011920928955078125f) * crease) * crease))); if (frame_1_m0.crease.x > 0.0f) { float _2053 = frame_1_m0.crease.y * 1.39999997615814208984375f; float _2054 = max(_2053, _1810); albedo *= (1.0f - (((0.37999999523162841796875f * frame_1_m0.crease.x) * (1.0f - smoothstep(0.0f, _2054, _2033))) * (_2053 / _2054))); } } float2 _2070 = _2000.slope * (frame_1_m0.paperA.y * frame_1_m0.paperA.x); N = normalize((N - (_1581.tangent.xyz * _2070.x)) - (_1581.bitangent.xyz * _2070.y)); if (_1915) { _1697 = frame_1_m0.crease.x > 0.0f; } else { _1697 = false; } if (_1697) { fd = sideDist(_1805, _1803, _1581.edges.x).x; if (_1581.edges.y > 0.5f) { _1701 = _1581.clip.w > 0.5f; } else { _1701 = false; } if (_1701) { fd = min(fd, abs(_1797)); } float _2109 = max(frame_1_m0.crease.y, _1810); albedo *= (1.0f - ((0.300000011920928955078125f * frame_1_m0.crease.x) * ((1.0f - smoothstep(0.0f, _2109, fd)) * (frame_1_m0.crease.y / _2109)))); float3 _2125 = sideDist(_1805, _1803, 15.0f - _1581.edges.x); e = _2125.x; o = _2125.yz; if (_1773) { float _2136 = (_1811.x * _1812.y) - (_1811.y * _1812.x); float _2150 = (abs(_2136) < 9.9999999600419720025001879548654e-13f) ? 9.9999999600419720025001879548654e-13f : _2136; float2 _2152 = float2((_1812.y * _1813) - (_1811.y * _1814), (_1811.x * _1814) - (_1812.x * _1813)) / float2(_2150, _2150); float _2153 = length(_2152); if (_2153 > 1.0f) { float _2158 = (_1775 - 0.5f) / _2153; if (_2158 < e) { e = _2158; o = (-_2152) / float2(_2153, _2153); } } } if (_1581.params.z > 0.5f) { float2 _2172 = _1581.q - float2(0.5f, 0.5f); float _2174 = _1789 * _1803.x; if (_2174 < e) { e = _2174; float _2180 = max(length(_2172), 9.9999999747524270787835121154785e-07f); o = _2172 / float2(_2180, _2180); } } float _2185 = max(frame_1_m0.crease.z, _1810); cutBand = ((1.0f - smoothstep(0.0f, _2185, max(e, 0.0f))) * (frame_1_m0.crease.z / _2185)) * frame_1_m0.crease.x; cutDist = max(e, 0.0f); cutOut = (_1581.tangent.xyz * o.x) + (_1581.bitangent.xyz * o.y); albedo *= (1.0f - (0.180000007152557373046875f * cutBand)); } float3 _2214 = float3(frame_1_m0.pages.x, frame_1_m0.pages.y, 0.0f); bool _2215 = _1581.look.y > 0.0f; bool3 _2217 = bool3(_2215, _2215, _2215); float3 _2216 = float3(_2217.x ? float3(0.0f, 1.0f, 0.0f).x : _2214.x, _2217.y ? float3(0.0f, 1.0f, 0.0f).y : _2214.y, _2217.z ? float3(0.0f, 1.0f, 0.0f).z : _2214.z); float _2220 = max(dot(_1581.world, _2216), 0.0f); if (_1915) { _1707 = abs(_1581.look.y) > 0.5f; } else { _1707 = false; } float3 _2236 = frame_1_m0.lightPos.xyz - _1581.world; float _2237 = dot(_2236, _2236); float3 _2240 = _2236 * rsqrt(max(_2237, 9.9999999392252902907785028219223e-09f)); if (frame_1_m0.shadowA.w > 0.5f) { _1710 = _1581.params.x > 0.5f; } else { _1710 = false; } if (_1710) { vis = shadowVisibility(frame_1_m0.lightViewProj, frame_1_m0.shadowA, frame_1_m0.shadowB, _1581.world + (Ng * (((dot(Ng, _2240) >= 0.0f) ? 1.0f : (-1.0f)) * frame_1_m0.shadowB.y)), _1581.position.xy, frame_1_m0.lightPos.xz); } float _2291 = max((dot(N, _2240) + frame_1_m0.paperA.z) / (1.0f + frame_1_m0.paperA.z), 0.0f); float _2293 = lerp(0.449999988079071044921875f, 1.4500000476837158203125f, _2000.formation); if (!_1915) { _1713 = _1673; } else { _1713 = true; } if (_1713) { trans = ((((art * art) * float3(1.0f, 0.7400000095367431640625f, 0.4600000083446502685546875f)) * _2293) * (max(-dot(Ng, _2240), 0.0f) * (1.0f + (pow(max(dot(_1953, -_2240), 0.0f), frame_1_m0.paperB.z) * frame_1_m0.paperB.y)))) * frame_1_m0.paperB.x; } if (_1669) { ao = lerp(1.0f, _1859, frame_1_m0.paperC.x * _1860) * (1.0f - ((frame_1_m0.paperC.z * crease) * crease)); float _2368 = (1.0f - smoothstep(0.0f, 0.039999999105930328369140625f, min((abs(_1581.look.y) > 0.5f) ? ((_1581.look.y > 0.0f) ? _1805.x : (_1803.x - _1805.x)) : min(_1805.x, _1803.x - _1805.x), min(_1805.y, _1803.y - _1805.y)) + (vnoise(_1805 * 38.0f) * 0.006000000052154064178466796875f))) * frame_1_m0.paperC.y; albedo *= lerp(float3(1.0f, 1.0f, 1.0f), float3(0.7799999713897705078125f, 0.660000026226043701171875f, 0.5f), float3(_2368, _2368, _2368)); } else { if (_1671) { float _2400 = ((1.0f - smoothstep(0.0f, 0.02199999988079071044921875f, min(min(_1805.x, _1803.x - _1805.x), min(_1805.y, _1803.y - _1805.y)) + (vnoise(_1805 * 45.0f) * 0.0040000001899898052215576171875f))) * frame_1_m0.paperC.y) * 0.800000011920928955078125f; albedo = lerp(albedo, (albedo * 0.550000011920928955078125f) + float3(0.0500000007450580596923828125f, 0.04500000178813934326171875f, 0.039999999105930328369140625f), float3(_2400, _2400, _2400)); } else { ao = 1.0f - ((frame_1_m0.paperB.w * exp((-_2220) / max(frame_1_m0.paperC.w, 9.9999997473787516355514526367188e-05f))) * (_1707 ? (1.0f - abs(dot(Ng, _2216))) : 0.0f)); } } visT = vis; if (_1915) { _1719 = frame_1_m0.fill.x > 0.0f; } else { _1719 = false; } if (_1719) { visT = lerp(frame_1_m0.fill.y, 1.0f, vis); float3 _2433 = Ng - (_2216 * dot(Ng, _2216)); float _2434 = length(_2433); float _2446 = (0.5f * (1.0f - dot(Ng, _2216))) * ((1.0f - (_2291 * vis)) * (1.0f - (_2291 * vis))); if (_2434 > 0.001000000047497451305389404296875f) { _1721 = _2446 > 0.001000000047497451305389404296875f; } else { _1721 = false; } if (_1721) { float _2461 = min((frame_1_m0.fill.z * _2220) + frame_1_m0.fill.w, 0.300000011920928955078125f); float3 _2467 = (_1581.world - (_2216 * _2220)) + (_2433 * (_2461 / _2434)); float3 _2471 = frame_1_m0.lightPos.xyz - _2467; float _2472 = dot(_2471, _2471); if (frame_1_m0.shadowA.w > 0.5f) { visQ = shadowVisibilityWide(frame_1_m0.lightViewProj, frame_1_m0.shadowA, frame_1_m0.shadowB, _2467 + (_2216 * frame_1_m0.shadowB.y), _1581.position.xy, 0.5f * _2461); } float _2516 = inUnit(float2((_2467.x - frame_1_m0.pageRect.x) * frame_1_m0.pageRect.z, (_2467.z - frame_1_m0.pageRect.y) * frame_1_m0.pageRect.w)); lift = lerp(frame_1_m0.table.xyz, float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f), float3(_2516, _2516, _2516)) * ((((shoulder(frame_1_m0.lightPos.w / (_2472 + frame_1_m0.lightColor.w), frame_1_m0.highlight.x, frame_1_m0.highlight.y) * (max(dot(_2216, _2471), 0.0f) * rsqrt(max(_2472, 9.9999999392252902907785028219223e-09f)))) * visQ) * _2446) * frame_1_m0.fill.x); } } float3 _2547 = frame_1_m0.lightColor.xyz * shoulder(frame_1_m0.lightPos.w / (_2237 + frame_1_m0.lightColor.w), frame_1_m0.highlight.x, frame_1_m0.highlight.y); float3 _2549 = _2547 * vis; color = ((((albedo * _2291) * lerp(1.0f, ao, 0.64999997615814208984375f)) * _2549) + (trans * (_2547 * visT))) + (((albedo * frame_1_m0.lightColor.xyz) * lift) * lerp(1.0f, ao, 0.64999997615814208984375f)); if (cutBand > 0.0f) { color += ((lerp(albedo, float3(0.863099992275238037109375f, 0.791299998760223388671875f, 0.6445000171661376953125f) * _2002, float3(0.300000011920928955078125f, 0.300000011920928955078125f, 0.300000011920928955078125f)) * _2549) * (((frame_1_m0.crease.w * cutBand) * max(dot(cutOut, _2240), 0.0f)) * (0.3499999940395355224609375f + (0.64999997615814208984375f * (1.0f - abs(dot(Ng, _1953))))))); } float _2600 = luma(color); color *= (shoulder(_2600, frame_1_m0.highlight.z, frame_1_m0.highlight.w) / max(_2600, 9.9999999747524270787835121154785e-07f)); if (frame_1_m0.charmLight.w > 0.0f) { _1726 = _1581.edges.w <= 0.0f; } else { _1726 = false; } if (_1726) { float3 _2627 = frame_1_m0.charmLight.xyz - _1581.world; float _2628 = dot(_2627, _2627); color += (((albedo * frame_1_m0.charmColor.xyz) * ((frame_1_m0.charmLight.w * max((dot(N, _2627 * rsqrt(max(_2628, 9.9999999392252902907785028219223e-09f))) + 0.60000002384185791015625f) / 1.60000002384185791015625f, 0.0f)) / (_2628 + 0.014999999664723873138427734375f))) * lerp(1.0f, ao, 0.5f)); } if (!_1915) { _1729 = _1673; } else { _1729 = true; } if (_1729) { moonTrans = ((art * art) * _2293) * ((max(-dot(Ng, frame_1_m0.moonDir.xyz), 0.0f) * frame_1_m0.paperB.x) * 0.5f); } color += ((frame_1_m0.moonColor.xyz * ((1.0f - (frame_1_m0.moonColor.w * smoothstep(-0.449999988079071044921875f, 0.449999988079071044921875f, _1581.world.z))) * ao)) * ((albedo * max((dot(N, frame_1_m0.moonDir.xyz) + frame_1_m0.moonDir.w) / (1.0f + frame_1_m0.moonDir.w), 0.0f)) + moonTrans)); if (!_1669) { _1731 = _1671; } else { _1731 = true; } if (_1731) { _1733 = frame_1_m0.rim.w > 0.0f; } else { _1733 = false; } if (_1733) { _1735 = frame_1_m0.rim.z > 0.0f; } else { _1735 = false; } if (_1735) { float3 _2784 = color + (frame_1_m0.rim.xyz * ((1.60000002384185791015625f * (((((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1805.x)) * max(dot(-_1581.tangent.xyz, frame_1_m0.moonDir.xyz), 0.0f)) + ((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1803.x - _1805.x)) * max(dot(_1581.tangent.xyz, frame_1_m0.moonDir.xyz), 0.0f))) + ((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1805.y)) * max(dot(-_1581.bitangent.xyz, frame_1_m0.moonDir.xyz), 0.0f))) + ((1.0f - smoothstep(0.0f, frame_1_m0.rim.w, _1803.y - _1805.y)) * max(dot(_1581.bitangent.xyz, frame_1_m0.moonDir.xyz), 0.0f)))) + (0.60000002384185791015625f * (pow(1.0f - min(abs(dot(Ng, _1953)), 1.0f), 3.0f) * (0.3499999940395355224609375f + (0.64999997615814208984375f * max(dot(Ng, frame_1_m0.moonDir.xyz), 0.0f))))))); color = _2784; } if (_1671) { _1737 = frame_1_m0.gilt.y > 0.0f; } else { _1737 = false; } if (_1737) { color += (frame_1_m0.gilt.xyz * smoothstep(0.0500000007450580596923828125f, 0.2199999988079071044921875f, dot(art, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)))); } float _2807 = max(frame_1_m0.bounce.w, 0.001000000047497451305389404296875f); color += ((albedo * (frame_1_m0.ambient.xyz + (frame_1_m0.bounce.xyz * (1.0f / (1.0f + (_2237 / (_2807 * _2807))))))) * ao); if (_1915) { _1739 = _1581.look.w < (-1.0f); } else { _1739 = false; } if (_1739) { _1741 = _1581.look.w > (-2.5f); } else { _1741 = false; } if (_1741) { float _2845 = dot(art, float3(0.3300000131130218505859375f, 0.3300000131130218505859375f, 0.3300000131130218505859375f)); color += ((lerp(art, float3(_2845, _2845, _2845), float3(0.3499999940395355224609375f, 0.3499999940395355224609375f, 0.3499999940395355224609375f)) * frame_1_m0.moonshine.xyz) * ((-1.0f) - _1581.look.w)); } if (_1915) { _1743 = _1581.look.w <= (-2.5f); } else { _1743 = false; } if (_1743) { float _2870 = (-3.0f) - _1581.look.w; thread = clamp(_2870, 0.0f, 1.0f); if (_2870 > 1.0f) { float2 _2878 = _1581.q - float2(0.5f, 0.5f); float _2886 = (clamp(_2870 - 1.0f, 0.0f, 1.0f) * 1.14999997615814208984375f) - frac((atan2(_2878.x, _2878.y) * 0.15915493667125701904296875f) + 1.0f); thread = smoothstep(-0.014999999664723873138427734375f, 0.0f, _2886) * (1.0f + (2.2000000476837158203125f * exp((-max(_2886, 0.0f)) * 16.0f))); } color += (frame_1_m0.glow.xyz * (((9.0f * thread) * (1.0f - smoothstep(0.0599999986588954925537109375f, 0.300000011920928955078125f, luma(art)))) * _1785)); } float _2915 = _1581.edges.w * frame_1_m0.charm.x; if (_1915) { _1747 = _2915 > 0.0f; } else { _1747 = false; } if (_1747) { float _2926 = 1.0f - smoothstep(0.0599999986588954925537109375f, 0.300000011920928955078125f, luma(art)); color += (frame_1_m0.charmColor.xyz * ((_2915 * (0.800000011920928955078125f + (0.20000000298023223876953125f * vnoise((_1805 * 9.0f) + float2(frame_1_m0.charmColor.w * 1.10000002384185791015625f, _1581.look.z * 17.0f))))) * (((frame_1_m0.charm.y * (((_2926 * _1785) * float(_1958)) * (0.75f + (0.25f * _2915)))) + (frame_1_m0.charm.z * (1.0f - smoothstep(0.0f, max(0.006000000052154064178466796875f, _1810 * 1.5f), cutDist)))) + (frame_1_m0.charm.w * (((lerp(0.5f, 1.2999999523162841796875f, _2000.formation) * (1.0f - (0.85000002384185791015625f * _2926))) * (_1958 ? 1.0f : 0.550000011920928955078125f)) * smoothstep(0.64999997615814208984375f, 1.5f, _2915)))))); } charge = _1852.x; if (frame_1_m0.glow.w > 0.5f) { charge = phosphorPacked(_1849); } if (_1669) { _1751 = frame_1_m0.view.y > 0.5f; } else { _1751 = false; } if (_1751) { float _2994 = lerp(0.800000011920928955078125f, 1.12000000476837158203125f, _2000.formation); color += (frame_1_m0.glow.xyz * (((charge * _1856) * _2994) * _1860)); color += (frame_1_m0.glow.xyz * ((((smoothstep(0.300000011920928955078125f, 0.75f, _1856) * frame_1_m0.moonshine.w) * _2994) * _1860) * 4.0f)); } if (_1915) { _1753 = frame_1_m0.view.y > 0.5f; } else { _1753 = false; } if (_1753) { float2 _3032 = _1581.world.xz + (Ng.xz * 0.0500000007450580596923828125f); float2 _3047 = float2((_3032.x - frame_1_m0.pageRect.x) * frame_1_m0.pageRect.z, (_3032.y - frame_1_m0.pageRect.y) * frame_1_m0.pageRect.w); c2 = phosphorTex.SampleLevel(mapSamp, _3047, 0.0f).x; if (frame_1_m0.glow.w > 0.5f) { c2 = phosphorPacked(_3047); } color += ((albedo * frame_1_m0.glow.xyz) * (((c2 * inUnit(_3047)) * exp((-_2220) / 0.0900000035762786865234375f)) * frame_1_m0.view.z)); } if (frame_1_m0.view.x > 0.5f) { _1757 = frame_1_m0.view.x < 1.5f; } else { _1757 = false; } if (_1757) { color = float3(charge * 0.3499999940395355224609375f, charge, charge * 0.5f) * (_1669 ? 1.0f : 0.0199999995529651641845703125f); } else { if (frame_1_m0.view.x > 1.5f) { _1759 = frame_1_m0.view.x < 2.5f; } else { _1759 = false; } if (_1759) { color = float3(_1856, _1856, _1856) * (_1669 ? 1.0f : 0.0199999995529651641845703125f); } else { if (frame_1_m0.view.x > 2.5f) { _1761 = frame_1_m0.view.x < 3.5f; } else { _1761 = false; } if (_1761) { float _3114 = _1669 ? _1859 : ao; color = float3(_3114, _3114, _3114); } else { if (frame_1_m0.view.x > 5.5f) { _1763 = frame_1_m0.view.x < 6.5f; } else { _1763 = false; } if (_1763) { color = float3(vis, vis, vis); } else { if (frame_1_m0.view.x > 7.5f) { _1765 = frame_1_m0.view.x < 8.5f; } else { _1765 = false; } if (_1765) { float _3135 = float(_1915); color = float3(_3135, _3135, _3135); } } } } } color = atmosphere(color, _1581.world, frame_1_m0.camPos.xyz, frame_1_m0.lightPos.xyz, frame_1_m0.haze, frame_1_m0.glowAir); _1609 = float4(encodeHdr(color, frame_1_m0.camPos.w) * cov, cov); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; uv = stage_input.uv; q = stage_input.q; normal = stage_input.normal; tangent = stage_input.tangent; bitangent = stage_input.bitangent; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; bent = stage_input.bent; frag_main(); SPIRV_Cross_Output stage_output; stage_output._1609 = _1609; return stage_output; }  `ºÛÅÝÈÚû§vN€Î4HSLT Frame` viewProjÿÿÿÿ lightViewProj@ÿÿÿÿlightPos€ÿÿÿÿ lightColor�ÿÿÿÿambient ÿÿÿÿshadowA°ÿÿÿÿcamPosÀÿÿÿÿpaperAÐÿÿÿÿpaperBàÿÿÿÿpaperCðÿÿÿÿglowÿÿÿÿpageRectÿÿÿÿview ÿÿÿÿmoonDir0ÿÿÿÿ moonColor@ÿÿÿÿbouncePÿÿÿÿshadowB`ÿÿÿÿpagespÿÿÿÿtable€ÿÿÿÿ highlight�ÿÿÿÿrim ÿÿÿÿ moonshine°ÿÿÿÿhazeÀÿÿÿÿglowAirÐÿÿÿÿcreaseàÿÿÿÿwindAðÿÿÿÿwindBÿÿÿÿcharmÿÿÿÿ charmColor ÿÿÿÿ charmLight0ÿÿÿÿfill@ÿÿÿÿgiltPÿÿÿÿ frame_block`frame momentsTexÿÿÿÿ phosphorTexÿÿÿÿmaskTexÿÿÿÿaoTexÿÿÿÿ albedoTexÿÿÿÿ momentsSampÿÿÿÿmapSampÿÿÿÿ albedoSampÿÿÿÿvs_mainvs_mainfs_mainfs_main`# 2 GLSL.std.450Uvs_main.1468:<>@BDFHJLMNOPQRST fs_mainïñôöøúüþ H #H #H # H #0H #@H #PH #`H #pH #€H #�H # H#HHH#@HHH#€H#�H# H#°H#ÀH#ÐH#àH #ðH #H #H # H #0H#@H#PH#`H#pH#€H#�H# H#°H#ÀH#ÐH#àH#ðH#H#H# H#0H#@H#PH#H#H# H#(H#0H#@H#PH#`H#pH #€H #�H # H#H#H# G$"G$!G%H%#G'"G'!G)"G)!G+"G+!G,"G,!G-"G-!G."G.!G/"G/!G0"G0!G.G1G4G6G8G:G<G>G@GB GD GF GHGJGLGMGMGNGNGOGOGPGPGQGQGRGRGS GSGT Gï GñGôGöGøGøGúGúGüGüGþGþGGGGG GG G        "      +€@+333@+ÛÉ@+A+ÍÌ @+ô\?+£’J?+ôý$?,+’Ë/?+â?+vOÞ>, +!š™™>+"ìQ8>+#\�Â>% &%;&$ (;(' *;*);(+;(,;(-;*.;(/;*0!4+5,6555+7‘ƒž=+8®Ga=,9888+:n§r?+;š™@,<;;;+=æ®%=,>===E +KR¸NA+LUUÕ>,MLLL+N= ‡?+O.M;,POOO!\+]гY>+^Y7?+_˜Ý“=,`]^_!g+h?+i€>+j€?,kjjj+l«ªª>,mlll!ƒ+„ f+…_ón<,†……+‡,ˆ‡‡ Š.‹ �+‘+”!»+¼€,½¼¼+¾+¿€3!Ë !Û +ÜCq‰=+Ý�E¿;, ÞÜÝ+ß‚îSB+è@@, éèè+ê@+ë+ì,íëì,îìë,ïëë+÷Ï, ø÷÷+ùÿÿÿN, úùù! +À@, jj+D…ë?+E…ë@+FÍ̈A+GÍÌl@, HFG+Iáz”>+Jq=‚@+Kš™©@+L33ïA, MKL+N)\> P.Q!i+j½7†5! „ +…¬Å'7!£ +¤·Ñ8) ¥+¦ÍÌL?+§ÛI?+¨333?+©¦›D<+ª ×£<+«ìQ¸=+¬ff&@+­ff¦?+®š™Y? ° . ±. ³. µ.·!U!g +hX94<+i¦›Ä;!{+|À?! ‘ , ’jj+“ @+”+•¦›D;+–o<+—)\=+˜ffF@+™fff?, š˜™+›33ã@+œ33S@, �›œ, ž+Ÿš™¿+ ÍÌ ?+¡ffæ>.¤ §Õ ,ö‘‘+÷ÿÿÿÿ,ø÷÷!<  +=pA+>zD+?+@+A¿+BÿæÛ.+GÿÿO! �   +�33³?+‘š™é@+’ð@+“ @+”ff&?+•33ó?+–PA+—33³>+˜š™?, ™˜¦+š6�'B+›0A!í    , îi5, ï5i!   +¬Å§7.(! X  , [“è+\+]+^, _55!¥ +¦€À!À +Áà@+Âffö@, ØÂ+ĘA+Å33;A+Æff†@, ÇÅÆ+ÈC+ɪC, Ê‘•+Ëff@+ÌffA, ÍËÌ+ÎGh?+Ï_Ø>, ÐÎÏ+Ñ_ؾ, ÒÑÎ,ÓÐÒ+Ô ¯¾+Õ.�p?, ÖÔÕ+×.�p¿, Ø×Ô,ÙÖØ+Ú-²]¿, ÛhÚ+Ü-²]?, ÝÜh,ÞÛÝ+ß¾B+àŒC, áßà+âøA+ãˆA, äâã+å,B, æ“å+çš™™?+èìQ¸>+é�Âu>+êÍÌÌ=+ë ×£=+ìX9´<+í�Âõ< ï.ð = !R +SC+T€C+U€€7, fhh,gëë,hìì,}ëë,‰ëë,•ëë,¡ëë!±. ³!É ,Ê>55* Ë+Ì€¿ Î. Ð. Ò. Ô. Ö / ;/. 2 ;21;24;26;28;2:;2<;2>;2@;2B;2D G ;GF I;IH K ;KJ;KL;GM;GN;GO;GP;GQ;GR;GS;IT!V W.Z.\. ^ `.a { |+}+~+œ ¥ ¦ +Ä+Ì+Ï+Ô +× +Ú Þ;2ï ò;òñ;/ô;/ö;2ø;2ú;2ü;2þ;2;2;2;ò;G, hh+`@+�@+°@,˜˜˜+33[A+š™™=+̼Œ+,5j5+wÌ+2+š™¹?+¤p=?+…ë>, j+!B+" ×#=+#®G?+$Ãõ(?,%#$h+&4B+'oƒ;+(ÍÌL=+)ìQ8=,*()"++oƒ:+,ÍÌÌ?+-�Âu<+.ffæ¾+/®Ga>+0 À+1Ãõ¨>,2111+3@À+4ƒù">+533“?+6�Âu¼+7€A+8�Âu=+9@?+:ÍÌŒ?+;ÍÌL>+<)\�?+=Ð@+>A.@. B. D. F.H. J.L. N.P. R.T. W. Y. ^.`. b.d. f. h. k. n.q. t. v.y. {. ~. €. ‚. „. †. ˆ. Š. Œ.Ž. �.’. ”. –.˜. š. œ. ž.  . ¢+ +²+V +% +ƒ +� +å + + +1 +N +— +§ +Ô + +û +þ 63472ø1ù?ø? @(26ŽA@7�B@9ŽCB: DC<¼EF@>©GFADþG86J47IøHùQøQ R(I6ŽSRK TRMŽUTNƒVU9¼EWRP©XWSVþX86[\7ZøYùaøa”bZ`þb86fg7d7eøcùnønº oeh÷púoqpøqŽrdi s+r6k tsmþtøpþd86xg7v7wøuùyøyº zwh÷{úz|{ø|…}vv…~}vŽ~þø{þv86‚ƒ7�ø€;Љ‹ùŒøŒPŽ„„„��Ž€��†>‰�A�’‰‘=“’A�•‰”=–•„—–„€˜“—A�™‰‘>™˜A�š‰”=›šA�œ‰‘=�œ„ž�„€Ÿ›žA� ‰”> Ÿ=¡‰=¢‰Â£¢ˆÆ¤¡£>‰¤A�¥‰‘=¦¥A�§‰”=¨§„©¨„€ª¦©A�«‰‘>«ªA�¬‰”=­¬A�®‰‘=¯®„°¯„€±­°A�²‰”>²±=³‰=´‰Âµ´ˆÆ¶³µ>‰¶=·‰þ·86º»7¹ø¸ùÀøÀ€Á¹½|ÂÁ9ÂÂQÄÃÂÅľpÆÅ…ÇÆ¿þÇ86 ÊË7ÉøÈùÌøÌ€Íɽ|ÎÍ9Ï‚ÎQÐÏÂÑоpÒÑQÓÏÂÔÓ¾pÕÔP ÖÒÕŽ ×Ö¿þ×86ÚÛ7 ÙøØùàøà”áÙÞ â á…ãßâ ä ãþä86çÛ7 æøåùðøð  ñæƒ òæñ… óòòŽ ôòêƒ õéô… öóõ  û+ñøúnüû9ýºü€þüí9ÿºþ€üî9º€üï9ºQö .ýÿQö .Qö  .…  êƒ  jþ 867 ø ùø   ƒ  … Ž êƒ é… Ž ƒ …   +øún9º€í9 º€!î9"º!€#ï9$º#ƒ% ƒ&"ƒ' ƒ('"�)($Q*…+%*�,+Q-….&-�/,.Q0…1)0Q2…312�4/3Q5…6)5�7%6Q8…9)8�:&9P ;7:… <;…=4êƒ>=jŽ ?<êP@>?þ@86CÛ7 BøA;POQùRøR9SçB…TSD>OT=UOŽ VBE� WVH9XçW…YXI�ZUY>OZ=[OŽ \BJ� ]\M9^ç]…_^N�`[_>O`=aOþa86hi7c7d7e7f7gøbùkøkƒlfc”mld”nll…ommƒpno q(p5 r(gj�sqr tsƒuemˆvut wvˆxmt yx�zwyˆ{ztþ{86ƒ„7}7~77€7 �7 ‚ø|ù†ø†ƒ‡~ ˆB‡ ‰(ˆ…PЉ‰‰ˆ‹‡ŠQŒ��ŒƒŽˆ �(Ž5…��� ‘�Q’‚9 “h‹ˆ€’Ž”}‘O•��ƒ–j‘Ž—•–�˜”—O™‚‚Žš™“�›˜šþ›86¢£7 �7 ž7 Ÿ7 7¡øœ;°²³;P¶·;°¯±;°´µù¸ø¸Q¹žQºžQ»žQ¼žƒ½º¹…¾½h�¿¹¾ À( ¤QÁ�ƒÂ¹À¸ ÃÁ¨ ÄÃ÷ÅúÄÆÇøÆQÈ��ɺÀº ÊÈÉ>¯ÊùÅøÇ>¯¥ùÅøÅ= ˯¨ ÌË÷ÍúÌÎÏøÎQÐ�ƒÑ»À¸ ÒÐÑ>²ÒùÍøÏ>²¥ùÍøÍ= Ó²¨ ÔÓ÷ÕúÔÖ×øÖQØ��Ù¼¾�ÚÙÀº ÛØÚ>´ÛùÕø×>´¥ùÕøÕ= Ü´÷ÝúÜÞÝøÞþ5øÝßÀQà�ƒáà¹Qâ�ƒãºâ ä%áã å1ßÀäæÀQç�ƒèç» é1æÀè…êåéP 뿼ƒ ì�ë íBìƒî¾íïÀ ð1ïÀîQñ�¸ òñ¼©óòjð…ôêóQõŸƒöõÀ�÷õÀQø�ƒùø¿ úù û1ö÷úƒüjû>¶üQý�ƒþý»QÿŸˆþÿ�h  ƒh QŸ…=¶…õ¦ƒ À… õ¦�  À  1  ƒ j Q� 0¼…  (>¶Q�ƒ¼Q�ƒ¿ ˆ§�h  ƒh …§P ¿¼ƒ � B… =!¶…"õ¨ƒ#"À…$õ¨�%$À &1#% ƒ'j&Q(� )0¼(…*') +(!*>¶+º ,¡h÷-ú,.-ø. /1ª«Àƒ0j/Ž 1�¬Q21Q31�423…54h�65h 7 6ƒ87h 98ˆ:9­Q;1Q<1ƒ=;<…>=h�?>h @ ?ƒA@h BAˆCB­=D¶ƒE©À�F©À G%:C H1EFGƒIjH…JI0…KJ® L(DK>¶Lù-ø-=M¶ƒNjM…OôNþO86TU7Q7R7SøPùVøVQWQƒXWSQYR Z(Y¤ˆ[XZO \QQO ]RRŽ ^][ƒ _\^P`_[þ`86fg7b7c7 d7 eøaùjøjQkbQle¸ mkl÷númonøoþ5ønQpe9qTbcpO rqqQsq…tsh�uit9 v¢rdeujþv86z{7x7yøwù}ø}…~yyƒj~�€j~…�êy…‚�xƒƒ€‚ „(ƒ¤ …„|ˆ†…þ†86�‘7ˆ7‰7Š7‹7 Œ7 �7Ž7�ø‡;P£¤;§¦ì;P¢5;P¥5;Šùøù¨ø¨Q©�Qª‹ «(ª¤ˆ¬j«O ­ˆˆQ®ˆƒ¯®©…°¯¬O ±‹‹Ž ²±°ƒ ³­²O ´‰‰Qµ‰…¶µ¬O ·‹‹Ž ¸·¶ƒ ¹´¸>£ŠQº‰¸ »º5÷¼ú»½¼ø½=¾£Q¿ˆƒÀ©¿QÁ‰ˆÂÀÁ Ã%¾Â>£Ãù¼ø¼Qĉ¸ ÅÄ5÷ÆúÅÇÆøÇ=È£QÉ�QʈƒËÉÊQ̉ˆÍËÌ Î%ÈÍ>£ÎùÆøÆQÏŒQÐŒP ÑÏÐQÒŒP ÓÒ�  Ô¹¸ÕÖÔ’© ×Ö’¹ˆ Ø×ƒ Ùѳ… ÚÙØƒ ÛÓ³… ÜÛØ  Ý%ÚÜ  Þ(ÚÜ=ߢQàÝQáÝ â(àá ã(ßâ>¢ã=ä£QåÞQæÞ ç%åæ è%äç>£è=é£=ꢼ ëéê÷ìúëíìøíþ5øì=î£=ðîïˆñð“ùòøòöóõùúøú=ûùªÕüöû› ýü÷þúýóþøþQÿûª ÿ‘©”‘P”‚û>ùùôøô=¦± ”÷úøùóøùø= ¢= ¦o  �  Ž… ñ� Ž ¹� ³QˆQ‰…�ƒ©…¬=¥…•�–9 ¢Œ�5…— …� >¥ ù ø ùõøõ=!¦€"!ë>¦"ùòøó=#¢=$£�%#$…&%hŽ '¹&� (³'… )(š� *)�9+ç*… ,(ž9-ç,….h-�/+. 01Ÿ¦/…1 0�2¡1=3¥…43ñ…542þ586;<7 77 8797 :ø6;PC>ùDøD E+95=�FEh H+F5GmIHÇJI”« KJ‘÷LúKMLøM=NCQO7 PO Q%NP>CQùLøLÇRI?« SR‘÷TúSUTøU=VCQW8QX7ƒYWX ZY [%VZ>C[ùTøTÇ\I@« ]\‘÷^ú]_^ø_=`CQa7 ba c%`b>Ccù^ø^ÇdI¾« ed‘÷fúegføg=hCQi8Qj7ƒkij lk m%hl>CmùføfQn:º onA÷púoqpøqO r::… sr8O t::… ut8ƒ vusƒ w7s”xwv”yvv z(yBˆ{xz |+{5j=}CŽ ~v|� s~ƒ €7 �B€ ‚%}�>C‚ùpøp=ƒCþƒ86Ž�7…7†7 ‡7 ˆ7‰7 Š7‹7 Œ7 �ø„ùœøœ9�;‡ˆ‰ŠQž�…Ÿ�ž  %Ÿ�Q¡ŒO ¢��O £……”¤£¢…¥¤…¦¡ƒ§¥¦…¨‹‘P ©§¨9ªç©…«!ª�¬¨«Q­Œ…®­¬O ¯††”°¯¢…±¡’…²‹�³±²…´¤“�µ³´ ¶ µ…·”¶…¸¡•…¹‹–�º¸¹…»¤èP ¼º»9½ç¼…¾—½�¿·¾QÀŒ…ÁÀ®… °…á¿�ÄÂÃ…ÅÁĔƇ™…ÇÆš…È¡QÉ�…ÊÈɃËÇÊ…Ì‹›�ÍËÌQÎŒ…Ïή Ð Í…ÑÏÐ…Ò¡œ…Ó‹“�ÔÒÓ…Õ¤“P ÖÔÕ9×çÖ…Ø¡×�٠؅ÚÑÙ…Û  …Ü Ú�ÝÅÜ…ÞÛÝþÞ86 ìí7à7á7â7ã7 ä7 å7æ7 ç7è7é7 ê7 ëøßùðøð9 ñŽàáäåæçèêë…òñéŽóâi�ôàó� õäî9 öŽôáõåæçèêë…÷öéŽøãi�ùàø� úäï9 ûŽùáúåæçèêë…üûéƒý÷òˆþýiŽÿâþƒáÿƒüòˆiŽãƒ EP òþ867 7 7 7 7 7 ø;P='=)ùøP  j‘ OQPˆQ…h�hQ… hƒ!h P "!Q#Q$ …%#$Q& ƒ'%&V()X *)"5O +**Q,+Q-+Q.+…/-.ƒ0,/ 1(0Q2+ƒ3'2…433�514ˆ615>6Q7 =8ƒ987ƒ:j7ˆ;9: <+;5j><==Q>+¼ ?'>©@?j=QA" B05AQC" D0Cj…EBDQF" G05F…HEGQI" J0Ij…KHJQL M05L…NKM O.j@NþO86WX7 Q7 R7 S7T7 U7VøP;P`5;§aì;Špø=Y'=Z)ùbøb� cU[9dÚc…ed fe…gfV…hg¨ i e…jiV…kj¨ùlølömoùqøq=rpªÕsör› ts÷uútmuøuQvrª wv‘©xw”‘Pyx”‚zry>pzùnøn={a± |{\÷}ú|}~ø~ùmø}ùø�kP ‚�hƒhP „kƒ=…aª †…]PÕˆ††© ‡ˆ„‚P ‰hkŠh‹kP ŒŠ‹=�aª Ž�ëPÕ�ŽŽ© ��Œ‰=‘a± ’‘^PÕ”’’© “”�‡=•`Q–“Q—“P˜–5—�™T˜9 šQRS™U_�›•š>`›ù€ø€ùoøo=œa€�œë>a�ùløm=ž`…ŸžiþŸ86¤¥7¡7¢7 £ø ù§ø§Q¨¡ ©¨ƒªj©…«ªª…¬«ª…­¬ªO ®¡¡…¯¦¬Q°¡ ±°…²¯±Ž ³®²T´¢… µ³£Q¶£P ·¶¶ˆ ¸µ·‘ ¹´¸Pº­¹þº86¿À7 ¼7½7¾ø»;ïîðùñøñ…òÁ¾Ž ó¼ò� ôóÃ9õçô…öÄ¾Ž ÷¼ö� ø÷Ç9ùçø…úȾ…ûÉ¾Ž ü¼ú� ýüÊ9þýŽ ÿ¼û� ÿÍ9…½ú…­ƒ| +5j…½û…­ƒ|  +5jŽ á¾‘ Ó¼…   9  9¤ Ó ‘ Ù¼…  � ä99¤Ù ‘ Þ¼…  � æ99¤Þ Q …½…çƒ| +5jQQ� Q!�" !…#"…$èõ�%h$…&éù�'%&…(ê#�)'( *+)5jAP+î?>+*…,èõ…-éù�.,-…/ë.�0j/Q1þ…2ì1…32�403Q5…6©5…76 �847ƒ9#!…:í9�;8:AP<î”><;O >þþ…?™Ž @>?O A…B¡ Ž CAB� D@CO EO F� GEFO H� IGH…J"Ž KIJ� LDKA=Mî‘>ML=NîþN86QR7 PøOùVøVQWP…XWS�YXh ZY…[ZTQ\P…]\S�^]h _^�`[_…a`Uþa86dÛ7 cøb=e+ùiøigje‘p kj  l+c_… mlkƒ nmf  on  p+oøúnqp  rnƒ snr  t+køúnut‚vug x*qh w'xvjye‚zyë {&ìzg|e{‚~|} &w~_ €e{9�Q€€‚qí „*‚h ƒ'„vj…e‚†…ë ‡&ì†gˆe‡‚Šˆ‰ ‹&ƒŠ_ Œe‹‡9�QŒ€Žqî �*Žh �'�vj‘e‚’‘ë “&ì’g”e“‚–”• —&�–_ ˜e—“9™Q˜€šqï œ*šh ›'œvj�e‚ž�ë Ÿ&ìžg eŸ‚¢ ¡ £&›¢_ ¤e£Ÿ9¥Q¤Q¦s §.��¦Q¨s ©.™¥¨Qªs «.§©ªþ«86°±7­7®7¯ø¬;°²³ù´ø´¼ µ­®¨ ¶µ÷·ú¶¸¹ø¸¼ º¯5>²ºù·ø¹>²¥ù·ø·= »²÷¼ú»½¼ø½þ­ø¼ƒ¾­®ˆ¿¾¯�Àj¿ ÁÀ…¯Á�îÂþÃ86ÈÉ7 Å7 Æ7ÇøÄ;°ÕÖ;°ÏÐ;°ÓÔ;ÎÍÊ;°ÑÒù×ø× Ø+Ç5=�ÙØh Ú+Ù5GmÛÚÇÜÛ”« ÝÜ‘÷ÞúÝßàøßQáÅAPâÍ‘=ã⸠äáã>ÏäùÞøà>ÏËùÞøÞ= åÏ÷æúåçæøçQèÅPéèÌ5>ÍéùæøæÇêÛ?« ëê‘÷ìúëíîøíQïÆQðŃñïðAPòÍ‘=óò¸ ôñó>Ñôùìøî>ÑËùìøì= õÑ÷öúõ÷öø÷QøÆQùŃúøùPûúj5>ÍûùöøöÇüÛ@« ýü‘÷þúýÿøÿQÅAPÍ‘=¸ >Óùþø>ÓËùþøþ= Ó÷úøQÅP 5Ì>Í ùøÇ Û¾«  ‘÷ ú  ø QÆQŃAPÍ‘=¸ >Õù ø>ÕËù ø = Õ÷úøQÆQŃP5j>Íùø=Íþ86Û7 øù ø Q! "05!Q# $0#j…%"$Q& '05&…(%'Q) *0)j…+(*þ+86UVø,;Î[\;`_a;ÎYZ;°]^= 0.= 31= 54= 76= 98= ;:= =<= ?>= A@= CB= EDP -03579;=?ACEAWX$‘ùbøbQ c-Q d-Q e-Q f-P gcdefQ h-P ih5j‘ jgiOkjj>YkQ l-Omll nBmQ o-Opoo qBpQ r-Osrr tEs>[tQ u- Qvuº wv5÷xúwyzøyA|X~}=€º �€5>]�ùxøz>]Ëùxøx= ‚]÷ƒú‚„ƒø„P …nq=†YQ ‡-Oˆ‡‡ ‰(njPЉ‰‰ˆ‹ˆŠQ Œ-O�ŒŒ Ž(qjP�ŽŽŽˆ���Q ‘-… ’‘…Q “- Q”“Q •- Q –-Q—–Q ˜- Q™˜A{šX~= ›šA{�Xœ= ž�9 Ÿì†t‹�’…”•—™›ž= YQ¡ŸŽ¢t¡�£ ¢>Y£O¤ŸŸ>[¤ùƒøƒA¦§X‘= ¨§=©YP ª©j‘ «¨ªA¥¬_‘>¬«=­YAή_”>®­Q ¯-O °¯¯Q ±-Q ²-O ³²²… ´±³� µ°´A=¶_?>¶µQ ·-A=¸_}>¸·Q ¹-Oº¹¹ »EºP ¼»5A¥½_@>½¼Q ¾-O¿¾¾ À(njPÁÀÀÀˆÂ¿ÁP ÃÂnA¥Å_Ä>ÅÃQ Æ-OÇÆÆ È(qjPÉÈÈȈÊÇÉP ËÊqA¥Í_Ì>ÍËQ Î-A¥Ð_Ï>ÐÎQ Ñ-A¥Ò_¾>ÒÑQ Ó-A¥Õ_Ô>ÕÓQ Ö- A¥Ø_×>ØÖ=Ù[AÎÛ_Ú>ÛÙ=Ü_Q ÝÜ>FÝAÞßF”=àßáà>ßáQâÜ>HâQ ãÜ>JãQ äÜ>LäQ åÜ>MåQ æÜ>NæQ çÜ>OçQ èÜ>PèQ éÜ>QéQ êÜ >RêQ ëÜ >SëQìÜ >Tìý86 Vøí;°¡¢;°›œ;°•–;°��;°‰Š;°ƒ„;°}~;Îxy;°st;Poj;°jk;=ef;P_`;Î[6;°VW;°QR;ÎKL;°EF;P?@;°�ž;P—˜;P‘’;°‹Œ;°…†;°€;°z{;°uv;Ppq;Îl6;°gh;°ab;P\>;°XY;ÎST;°MN;ÎGH;°AB;°Ÿ ;°™š;°“”;P�Ž;°‡ˆ;°�‚;Î|6;Pwj;Îr6;°mn;Pij;Pcd;°]^;PZ5;PU5;ÎOP;°IJ;°CD= ðï=óñ= õô= ÷ö= ùø= ûú= ýü= ÿþ= = = =Pîðóõ÷ùûýÿAW $‘= '= )= +=,=-=.=/=0ù£ø£Q ¤îV(¥W ¦¥¤Q §îQ¨§¸ ©¨5Qª¦©«©ªjѬ«O­¦¦Q®¦ ¯(®¤P°¯¯¯ˆ±­°9²[±Ñ³²…´³Á µ+´5jQ ¶îƒ ·¶ ¸B·ƒ¹h¸Ñº¹Q »îO ¼»»Q ½î”¾¼½Q ¿îQÀ¿�Á¾ÀÑÂÁQ ÃîQÄÃQ ÅîQÆÅP ÇÄÆQ Èî… ÉÈÇÑ ÊÉQËÊQÌÊ Í(ËÌ Î(ÍjÏ ÏÉÐ ÐÉÏÑ«ÐÒ«Q Óî QÔÓQ ÕîQÖÕ…×hÖ�ØÔ×Q ÙîQÚÙƒÛjÚP ÜØÛQÝîQÞÝA|ß Ú‘=à߃áÞàA|â Ú?=ãâ…äáãQåîQæåA|ç Ú”=èçƒéæèA|ê Ú}=ëê…ìéëP íäìQ îî Qïî¾ ðï5PÕòðð© ñòÜíV(ó W ôóñQõôV(öW ÷öñQø÷V(ùW úùñQûú9üñƒý«h þ(¬¤ˆÿýþ�ÿh +5j 0h«A| }=º h©>?=?Q îQ  º  h©  j>? = ? (ºjˆ¹�h +5jQ îQº h©j… >?=? (ÂjˆÁ�h +5jQ îQº h©j… >? =!?¼ "!5÷#ú"$#ø$üø#Q %î Q&%º '&h÷(ú')*ø)¸ +&|>A+ù(ø*>AËù(ø(= ,Aº -&|÷.ú-/0ø/¸ 1&“>C1ù.ø0>CËù.ø.= 2C¸ 3&hº 4&“÷5ú467ø6¸ 8&>E8ù5ø7>EËù5ø5= 9EQ :î Q;:A|< ‘==<Q >îQ?>º @?hPEB@@@©AB OC¦¦QD¦ E(D¤PFEEEˆGCF9H3GPEJ©©©©IJHA>GIº K=÷LúKMNøM¸ O=>IOùLøN>IËùLøL= PI÷QúPRQøR>GùQøQA{S Ì= TSOUTTQVîƒWUV XEWQYî ZEY>KZ=[K”\[X¾ ]\5=^K_^=`KPEb]]]©ab`_>Ka=cGPe    d. ce¸ f&APEhfff©ghd =iG¨ j]÷kújlmøl¨ n3>Mnùkøm>M¥ùkøk= oMPEqooo©pqig>Opº r=÷súrtuøt¸ v=>Qvùsøu>QËùsøs= wQ÷xúwyxøy>OùxøxA|z Ï‘={zQ |î Q}|…~}Q î Q€…�€KP ‚~�� ƒÉ‚A|„ Ï}=…„9†¿ƒÎ…Q‡† ˆ.j‡{=‰OŽŠ‰ˆ>OŠ=‹GŽŒ‹ˆ>GŒQ �îOŽ��Q �îO���=‘K>S‘÷’ú,“”ø“ •;º –•h>V–ù’ø”>VËù’ø’= —V÷˜ú—™šø™A|› Ô?=œ›º �œ5>X�ù˜øš>XËù˜ø˜= žX÷Ÿúž Ÿø Q¡ÉQ¢ÇQ£Éƒ¤¢£º ¥;5©¦¥¤¡ §15¦ƒ¨j§>U¨=©S…ª; =«U…¬ª«=­U…®¬­Ž¯Ž®�°©¯ ±E°>S±A|³ ²‘=´³º µ´5÷¶úµ·¶ø·A|¸ ²”=¹¸…º¹� »(ºÎ=¼OA|½ ²‘=¾½…¿#¾ À15»¦ƒÁjÀ…¿ÁˆÃº»…ÄÂÃÅjĎƼÅ>OÆù¶ø¶ùŸøŸQ džA|È Ï”=ÉÈ…ÊÉ{Ž ËÇÊ=ÌSQÍˎΎ̓ÏÌÎQÐËŽÑ�ЃÒÏÑ ÓEÒ>SÓ÷Ôú3ÕÖøÕA|× ²‘=Ø×º ÙØ5>]ÙùÔøÖ>]ËùÔøÔ= Ú]÷ÛúÚÜÛøÜQ Ýî QÞÝ9ßÈÉÇÞQàß>_àQ áî QâẠãâh÷äúãåæøåQ çîQèçº éèh>aéùäøæ>aËùäøä= êa÷ëúêìëøì=í_ îÁ ï%íî>_ïùëøëA|ð ²”=ñð ò(ñÎ=ó_ ô15òóƒõjôˆöñò…÷õö=øOA|ù ²‘=úù…û!ú…üû÷ƒýjüŽþøý>OþQ ÿî Q ÿƒ = 9 ÈÉÇ Q  >c O    >e ÷ ú©  ø Q ÏQ Ð…   Q ÏQ Ð… ƒ Q Ð…  ÑQ Ï…  Òƒ   Q Ï…  ÒQ Ð…  у   P      ¸   ©   P    ˆ     B º   j÷ ú ! ø! ƒ" «hˆ# "  =$ c¸ % # $ ÷& ú% ' & ø' >c#  (  P )   ˆ * ( ) >e* ù& ø& ù ø ù ø Q + îQ, + º - , h÷. ú- / . ø/ Q 0 îƒ 1 0 Q2 Ç…3 ¹2 =4 c¸ 5 3 4 ÷6 ú5 7 6 ø7 >c3 8 B1 9 (8 jP : 9 9 ˆ ; 1 : >e; ù6 ø6 ù. ø. A|< ²?== < > (= Î=? c @ (? 5 A 15> @ ƒB jA ˆC = > …D B C A|E ²‘=F E …G D F >ZG =H c I (H 5>\I APJ e‘=K J ŽL ŽK APM e”=N M ŽO �N �P L O >[P =Q O=R Z…S "R ƒT jS ŽU Q T >OU ùÛøÛA|W V ‘=X W A|Y V ”=Z Y P[ X Z 5º \ ;5PE^ \ \ \ ©] ^ [ Q_ î”` _ ] a (` 5=b K”c b ] d c ƒe jd ÷f ú3g h øg i ;º j i h>gj ùf øh >gËùf øf = k g©l k e 5A{m ?= n m Oo n n Qp îƒq o p ”r q q s (r  t  s Žu q t A|v ?}=w v A|x }}=y x �z r y ˆ{ w z A|| Ä}=} | º ~ } h÷ ú~ € � ø€ Q ‚ îQƒ ‚ º „ ƒ h>j„ ù ø� >jËù ø = … j÷† ú… ‡ † ø‡ =ˆ K=‰ K”Š ‰ u ¾ ‹ Š 5©Œ ‹ jÌA|� ‡”=Ž � …� Œ Ž Ž� ˆ � A¦‘ ”= ’ ‘ A{“ Ä= ” “ A{• ‡= – • Q— î�˜ — � Q ™ îO š ™ ™ A{› ?= œ › O � œ œ 9 ž ’ ” – ˜ š � >iž ù† ø† A|Ÿ Ï?=  Ÿ =¡ S”¢ ¡ u �£ ¢   �¤ j  ˆ¥ £ ¤ ¦ (¥ 5Q§ † ¨ .¡§ ¨ © 3÷ª ú© « ¬ ø« >m9ùª ø¬ >m¥ùª øª = ­ m÷® ú­ ¯ ® ø¯ =° K”± ° u ² ± ³ (² 5´ u ”µ X´ ¶ (µ 5A|· ¾?=¸ · ¹ ¶ ¸ A|º ¾”=» º …¼ ¹ » =½ G=¾ G…¿ ½ ¾ …À ¿ ŽÁ À ¨ � j¼ …à ³  ŽÄ Á à A|Å ¾‘=Æ Å ŽÇ Ä Æ >lÇ ù® ø® ÷È ú,É Ê øÉ A|Ë Ô‘=Ì Ë …Í Ì ü Î .jûÍ A|Ï Ô?=Ð Ï =Ñ U…Ò Ð Ñ =Ó U…Ô Ò Ó ƒÕ jÔ …Ö Î Õ >oÖ Q× ÉQØ ÇQÙ ÉƒÚ Ø Ù Û %× Ú QÜ ÇQÝ ÉƒÞ Ü Ý Qß Éº à ;5©á à ß Þ â ;º ã â h©ä ã á Û Qå ÉQæ ÇQç Éƒè æ ç é %å è ê %ä é Ž ë É!9ì çë …í ì i�î ê í ï 15"î ƒð jï A|ñ Ô”=ò ñ …ó ð ò =ô OPö ó ó ó õ .k%ö …÷ ô õ >O÷ ùÈ øÊ ÷ø ú2ù ú øù Qû ÉQü ÇQý Ƀþ ü ý ÿ %û þ Q ÉQ ÇQ Ƀ    %   %ÿ  Ž  É&9 ç …  '�    15ì ƒ j A| Ô”= … = O= OŽ   �  *…  ¦P     .   >O ùø øú A| ¾}=   a A| Ô}=   ( ¤ˆ     …   …  l ƒ j >o ùø øø ùÈ øÈ =! i>p! ÷" ú3# $ ø# A|& % ‘=' & º ( ' 5>s( ù" ø$ >sËù" ø" = ) s÷* ú) + * ø+ A|, % ”=- , =. i / .- j. >p/ =0 K=1 K”2 1 ] Ž3 ] 2 ƒ4 0 3 5 B4 =6 i…7 ¦ 6 ƒ8 j7 =9 i…: ¦ 9 ƒ; j: …< 8 ; == K”> = ] ƒ? j> …@ h? …A @ < º B 5 +÷C úB D E øD º F A +>uF ùC øE >uËùC øC = G u÷H úG I H øI A|J % ?=K J …L K a A|M % }=N M �O L N P %O !QQ îŽR ] a ƒS Q R ˆT P 5 ŽU 4 T �V S U A{W ?= X W OY X X ƒZ Y V ”[ Z Z ”\ ] Z ] (\ 5 ^ ([  _  ^ …` ] _ A|a Ä}=b a º c b h÷d úc e d øe A¦f ”= g f A{h Ä= i h A{j ‡= k j A|l ‡”=m l Žn ] m �o V n Q p îO q p p …r hP 9 s Wg i k o q r >ws ùd ød Qt V A|u Ú‘=v u ƒw t v A|x Ú?=y x …z w y Q{ V A|| Ú”=} | ƒ~ { } A| Ú}=€  …� ~ € P ‚ z � A{„ ƒ = … „ O† … … 9‡ ‚ P‰ ‡ ‡ ‡ ˆ .† ‰ A|Š ?}=‹ Š A|Œ }}=� Œ �Ž [ � ˆ� ‹ Ž A|‘ � ‘=’ ‘ A|“ � ”=” “ 9• °� ’ ” …– • ` =— w…˜ – — …™ ˜ A A|š % ‘=› š …œ ™ › Ž� ˆ œ >r� ùH øH ù* ø* A{ž }= Ÿ ž O  Ÿ Ÿ A|¡ � ‘=¢ ¡ A|£ � ”=¤ £ 9¥ °{ ¢ ¤ ަ   ¥ =§ iލ ¦ § =© OŽª © ¦ =« o ¬ .j« ”Ž­ ª ¬ …® ­ ¨ =¯ l=° pޱ ¦ ° …² ¯ ± �³ ® ² =´ OA{µ }= ¶ µ O· ¶ ¶ …¸ ´ · =¹ r…º ¸ ¹ =» o ¼ .j» ”޽ º ¼ �¾ ³ ½ >x¾ =¿ Zº À ¿ 5÷Á úÀ  Á ø =à [”Ä Ã u Å (Ä 5=Æ K”Ç Æ X È Ç ƒÉ jÈ …Ê ”É �Ë —Ê =Ì OŽÍ ˆPÏ !!! Î .Ì Í Ï =Ð x…Ñ Î ¨ A|Ò ²}=Ó Ò =Ô Z…Õ Ó Ô …Ö Õ Å …× Ö Ë ŽØ Ñ × �Ù Ð Ø >xÙ ùÁ øÁ =Ú x9Û [Ú =Ü xA|Ý � ?=Þ Ý A|ß � }=à ß 9á °Û Þ à â (Û jˆã á â Žä Ü ã >xä A|æ å }=ç æ º è ç 5÷é úè ê ë øê Q ì î Qí ì ¼ î í 5>zî ùé øë >zËùé øé = ï z÷ð úï ñ ð øñ A{ò å = ó ò Oô ó ó Qõ îƒö ô õ ”÷ ö ö ø (÷  ù  ø Žú ö ù =û S”ü û ú �ý ü ˜ˆþ ý , ÿ (þ 5= x= OA{  =   O   …   A| å }=  …  ÿ � ÷ -ˆ Ž  = o  .j hŽ  �  >x ùð øð A{  =   O   A|  }=  = S”   �   � j ˆ    ( 5¨  3÷ ú  ø >}9ù ø >}¥ù ø = ! }÷" ú! # " ø# =$ G=% G…& $ % Ž' & ¨ =( K”) (  * ) + (* 5A|, ¾‘=- , …. + - …/ . hŽ0 ' / >|0 ù" ø" A|2 1 }=3 2 Q4 îQ5 4  6 1.¡5 …7 3 6 ƒ8 j7 =9 xA{: 1 = ; : O< ; ; == o…> 8 = Ž? < > =@ OŽA @  =B |�C A B …D ? C �E 9 D >xE ¨ F ,÷G úF H I øH >2ùG øI >¥ùG øG = J ÷K úJ L M øL A|O N }=P O º Q P 5>�Q ùK øM >�ËùK øK = R �÷S úR T U øT A|V N ?=W V º X W 5>ƒX ùS øU >ƒËùS øS = Y ƒ÷Z úY [ Z ø[ A|\ N }=] \ Q^ É _ 15] ^ ƒ` j_ a Ž”b a  c (b 5…d ` c Qe ÇQf Ƀg e f h 15] g ƒi jh ”j Ž k (j 5…l i k Qm É n 15] m ƒo jn p �”q p  r (q 5…s o r Qt ÇQu Ƀv t u w 15] v ƒx jw ”y � z (y 5…{ x z =| K”} | X ~ }  %~ jƒ€ j � € è=‚ K”ƒ ‚  „ (ƒ 5…… ”„ �† —… …‡ � † =ˆ xA{‰ N = Š ‰ O‹ Š Š �Œ d l �� Œ s �Ž � { …� ,Ž …� ˜‡ �‘ � � Ž’ ‹ ‘ �“ ˆ ’ >x“ ùZ øZ ÷” ú2• – ø• A|˜ — ”=™ ˜ º š ™ 5>…š ù” ø– >…Ëù” ø” = › …÷œ ú› � œ ø� =ž G”Ÿ ž `   1(/Ÿ =¡ xA{¢ — = £ ¢ O¤ £ £ Ž¥ ¤   �¦ ¡ ¥ >x¦ ùœ øœ A|¨ § }=© ¨ ª (© +…« ª ª ˆ¬ r « �­ j¬ ˆ® j­ =¯ x=° OA{± @= ² ± O³ ² ² A{´ § = µ ´ O¶ µ µ Ž· ¶ ® �¸ ³ · …¹ ° ¸ =º oŽ» ¹ º �¼ ¯ » >x¼ ÷½ ú3¾ ¿ ø¾ Q À î QÁ À ¸  Á Ì>‡ ù½ ø¿ >‡Ëù½ ø½ = à ‡÷Ä úÃ Å Æ øÅ Q Ç î QÈ Ç º É È 0>‰É ùÄ øÆ >‰ËùÄ øÄ = Ê ‰÷Ë úÊ Ì Ë øÌ =Í x=Î G=Ï G”Ð Ï 2PÑ Ð Ð Ð PÓ ——— Ò .Î Ñ Ó A{Õ Ô = Ö Õ O× Ö Ö …Ø Ò × Q Ù î QÚ Ù ƒÛ ÌÚ ŽÜ Ø Û �Ý Í Ü >xÝ ùË øË ÷Þ ú3ß à øß Q á î Qâ á ¼ ã â 0>‹ã ùÞ øà >‹ËùÞ øÞ = ä ‹÷å úä æ å øæ Q ç î Qè ç ƒé 3è ê +é 5j>�ê º ë é j÷ì úë í ì øí ƒî é j ï +î 5jQ ð îƒ ñ ð Qò ñ Qó ñ  ô ò ó …õ ô 4�ö õ j ÷  ö …ø ï 5ƒù ø ÷ ú 165ù û (ù 5ü û …ý ü 7 þ ý …ÿ þ � jÿ … ú >� ùì øì = G9 [  18! ƒ j = xA{ ×=   O   = �…  …  … µŽ �   >x ùå øå Q  î Q  A|  ‘=  …   ÷ ú3  ø º   5>� ù ø >�Ëù ø =  �÷ ú   ø = G9 [  18! ƒ j …! µ©" ]j5…# ! " …$ i �% 9$ …& # % …' Î| ( (i' =) \ * 15( ) ƒ+ j* , 1”| Q- † . .h­- …/ ® ƒ0 j/ …1 . 0 ©2 ]j …3 1 2 …4 3 , Ž 5 ÉA|6  }=7 6 …8 7 :Q 9 î Q: 9 …; : ãP < 8 ; � = 5 < 9> ç= …? ;> �@ ¦? A|A  ”=B A …C B & A|D  ?=E D …F E + �G C F A|H  }=I H …J I 4 �K G J =L xA{M  = N M OO N N …P  @ …Q P K ŽR O Q �S L R >xS ù ø >‘õA|T ×}=U T º V U h÷W úV X W øX 9Y dñ>‘Y ùW øW ÷Z ú,[ \ ø[ A|] ”=^ ] º _ ^ h>“_ ùZ ø\ >“ËùZ øZ = ` “÷a ú` b a øb Qc † d .¦<c =e xA{f ×= g f Oh g g =i ‘…j i ø…k j d …l k üŽm h l �n e m >xn o 1!9øA|p Ô }=q p …r o q =s xA{t ×= u t Ov u u …w r d …x w ü…y x Žz v y �{ s z >x{ ùa øa ÷| ú3} ~ ø} A| ”=€  º � € h>•� ù| ø~ >•Ëù| ø| = ‚ •÷ƒ ú‚ „ ƒ ø„ Q… îO † … … =‡ KO ˆ ‡ ‡ Ž ‰ ˆ (� Š † ‰ Q‹ Š A|Œ Ú‘=� Œ ƒŽ ‹ � A|� Ú?=� � …‘ Ž � Q’ Š A|“ Ú”=” “ ƒ• ’ ” A|– Ú}=— – …˜ • — P ™ ‘ ˜ V(š X › š ™ 5Qœ › >—œ A|� ×}=ž � º Ÿ ž h÷  úŸ ¡   ø¡ 9¢ d™ >—¢ ù  ø  £ a ˆ¤ £ « ¥ ¤ =¦ x=§ OA{¨ ×= © ¨ Oª © © …« § ª =¬ —9­ ™ …® ¬ ­ …¯ ® ¥ A|° ?=± ° …² ¯ ± ޳ « ² �´ ¦ ³ >x´ ùƒ øƒ º µ =h÷¶ úµ · ¸ ø· ¸ ¹ =|>™¹ ù¶ ø¸ >™Ëù¶ ø¶ = º ™÷» úº ¼ ½ ø¼ =¾ ‘…¿ ¾ —=À ‘=Á ‘… Á hPà ¿ À  ©Ä ,jªŽÅ Ã Ä >xÅ ù» ø½ º Æ =|÷Ç úÆ È É øÈ ¸ Ê =“>›Ê ùÇ øÉ >›ËùÇ øÇ = Ë ›÷Ì úË Í Î øÍ PÏ øøø©Ð ,jªŽÑ Ï Ð >xÑ ùÌ øÎ º Ò =“÷Ó úÒ Ô Õ øÔ ¸ Ö =>�Ö ùÓ øÕ >�ËùÓ øÓ = × �÷Ø ú× Ù Ú øÙ =Û o©Ü ,ûÛ PÝ Ü Ü Ü >xÝ ùØ øÚ º Þ =÷ß úÞ à á øà ¸ â ==>Ÿâ ùß øá >ŸËùß øß = ã Ÿ÷ä úã å æ øå =ç iPè ç ç ç >xè ùä øæ º é =’÷ê úé ë ì øë ¸ í =>>¡í ùê øì >¡Ëùê øê = î ¡÷ï úî ð ï øð ©ñ 3j5Pò ñ ñ ñ >xò ùï øï ùä øä ùØ øØ ùÌ øÌ ù» ø» =ó xQô îA{õ Ì= ö õ O÷ ö ö A{ø ?= ù ø Oú ù ù A{ü û = ý ü A{ÿ þ = ÿ 9  ƒó ô ÷ ú ý >x = xA| Ì}=  9 f  = ?Ž   = ?P   > ý8 ` -6`´FRÇpŒÆÁÅe%ÊËshaders/phosphor_pcfjÔ´�BTSR —*—*]ô*~: re]ÏeÒeMf€8 Ÿž]üž ¾]`¾’ò¿ßF Ñ]vs_mainvs_mainfs_mainfs_mainl*struct Phos { lightViewProj: mat4x4, lightPos: vec4, rate: vec4, rect: vec4, shadowA: vec4, shadowB: vec4, misc: vec4, pages: vec4, } struct VsOut { @builtin(position) position: vec4, } const HDR_RANGE: f32 = 4f; const CONTACT_MIN: f32 = 1f; const CONTACT_GROWTH: f32 = 3.2f; const CONTACT_MAX: f32 = 8f; @group(0) @binding(0) var phos: Phos; @group(0) @binding(1) var shadowMap: texture_depth_2d; @group(0) @binding(2) var shadowSamp: sampler_comparison; @group(0) @binding(3) var prevTex: texture_2d; fn srgbToLinear(c_1: vec3) -> vec3 { let x = max(c_1, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_2: vec3) -> vec3 { let x_1 = max(c_2, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_3: vec3) -> f32 { return dot(c_3, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_4: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_4 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_4; } fn decodeHdr(e_1: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_4 = floor(p_1); let f = (p_1 - i_4); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_4); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_5 = floor(p_2); let f_1 = (p_2 - i_5); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_5); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn shadowVisibility(lvp: mat4x4, sa: vec4, sb: vec4, world: vec3, fragXY: vec2, lightXZ: vec2) -> f32 { var disk: array, 16> = array, 16>(vec2(-0.94201624f, -0.39906216f), vec2(0.9455861f, -0.76890725f), vec2(-0.0941841f, -0.9293887f), vec2(0.34495938f, 0.2938776f), vec2(-0.9158858f, 0.45771432f), vec2(-0.8154423f, -0.87912464f), vec2(-0.38277543f, 0.27676845f), vec2(0.974844f, 0.7564838f), vec2(0.44323325f, -0.97511554f), vec2(0.5374298f, -0.4737342f), vec2(-0.2649691f, -0.41893023f), vec2(0.79197514f, 0.19090188f), vec2(-0.2418884f, 0.99706507f), vec2(-0.81409955f, 0.9143759f), vec2(0.19984126f, 0.78641367f), vec2(0.14383161f, -0.1410079f)); var lit: f32 = 0f; var i_2: i32 = 0i; let lc = (lvp * vec4(world, 1f)); let ndc = (lc.xyz / vec3(lc.w)); let uv = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let depthRef = (ndc.z - sb.x); let _e77 = ign(fragXY); let angle = (6.2831855f * _e77); let cs = cos(angle); let sn = sin(angle); let reach = length((world.xz - lightXZ)); let contact = min((CONTACT_MIN + ((CONTACT_GROWTH * max((reach - sb.w), 0f)) / max(sb.w, 0.001f))), CONTACT_MAX); let radius = (sa.xy * select((sa.z * (1f + (sb.z * reach))), contact, (sb.w > 0f))); loop { let _e115 = i_2; if (_e115 < 16i) { } else { break; } { let _e118 = i_2; let d = disk[_e118]; let o = (vec2(((d.x * cs) - (d.y * sn)), ((d.x * sn) + (d.y * cs))) * radius); let _e133 = lit; let _e137 = textureSampleCompareLevel(shadowMap, shadowSamp, (uv + o), depthRef); lit = (_e133 + _e137); } continuing { let _e139 = i_2; i_2 = (_e139 + 1i); } } let _e142 = lit; lit = (_e142 / 16f); let inside = ((((step(0f, uv.x) * step(uv.x, 1f)) * step(0f, uv.y)) * step(uv.y, 1f)) * step(0f, lc.w)); let _e164 = lit; return mix(1f, _e164, inside); } fn shadowVisibilityWide(lvp_1: mat4x4, sa_1: vec4, sb_1: vec4, world_1: vec3, fragXY_1: vec2, r: f32) -> f32 { var ring: array, 4> = array, 4>(vec2(0.354f, 0f), vec2(-0.452f, 0.414f), vec2(0.069f, -0.788f), vec2(0.569f, 0.742f)); var lit_1: f32 = 0f; var i_3: i32 = 0i; let _e24 = ign((fragXY_1 + vec2(5f, 3f))); let angle_1 = (6.2831855f * _e24); let cs_1 = cos(angle_1); let sn_1 = sin(angle_1); loop { let _e33 = i_3; if (_e33 < 4i) { } else { break; } { let _e36 = i_3; let d_1 = ring[_e36]; let o_1 = (vec2(((d_1.x * cs_1) - (d_1.y * sn_1)), ((d_1.x * sn_1) + (d_1.y * cs_1))) * r); let lc_1 = (lvp_1 * vec4((world_1 + vec3(o_1.x, 0f, o_1.y)), 1f)); let ndc_1 = (lc_1.xyz / vec3(lc_1.w)); let uv_1 = vec2(((ndc_1.x * 0.5f) + 0.5f), (0.5f - (ndc_1.y * 0.5f))); let inside_1 = ((((step(0f, uv_1.x) * step(uv_1.x, 1f)) * step(0f, uv_1.y)) * step(uv_1.y, 1f)) * step(0f, lc_1.w)); let _e93 = lit_1; let _e99 = textureSampleCompareLevel(shadowMap, shadowSamp, uv_1, (ndc_1.z - sb_1.x)); lit_1 = (_e93 + mix(1f, _e99, inside_1)); } continuing { let _e103 = i_3; i_3 = (_e103 + 1i); } } let _e106 = lit_1; return (_e106 * 0.25f); } fn unpack16_(t: vec4) -> f32 { return (((floor(((t.x * 255f) + 0.5f)) * 256f) + floor(((t.y * 255f) + 0.5f))) * 0.000015259022f); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> VsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: VsOut; let _e15 = pos[vi]; out.position = vec4(_e15, 0f, 1f); let _e19 = out; return _e19; } @fragment fn fs_main(in: VsOut) -> @location(0) vec4 { var prev: f32; var e: f32 = 0f; var vis: f32 = 1f; var c: f32; let texel = vec2(in.position.xy); let raw = textureLoad(prevTex, texel, 0i); let _e10 = phos.misc.x; let packed = (_e10 > 0.5f); prev = raw.x; if packed { let _e15 = unpack16_(raw); prev = _e15; } let _e17 = textureDimensions(prevTex); let dims = vec2(_e17); let uv_2 = (in.position.xy / dims); let _e25 = phos.rect.x; let _e30 = phos.rect.z; let px = (_e25 + (uv_2.x * _e30)); let _e36 = phos.rect.y; let _e41 = phos.rect.w; let pz = (_e36 + (uv_2.y * _e41)); let left = (px < 0f); let ct = phos.pages.x; let st = phos.pages.y; let world_2 = select(vec3(px, 0f, pz), vec3((-(px) * ct), (-(px) * st), pz), left); let N = select(vec3(0f, 1f, 0f), vec3(st, -(ct), 0f), left); let _e75 = phos.misc.z; if (_e75 > 0.5f) { let _e80 = phos.lightPos; let toL = (_e80.xyz - world_2); let d2_ = dot(toL, toL); let ndl = max((dot(N, toL) * inverseSqrt(max(d2_, 0.00000001f))), 0f); let _e96 = phos.shadowA.w; if (_e96 > 0.5f) { let _e101 = phos.lightViewProj; let _e104 = phos.shadowA; let _e107 = phos.shadowB; let _e112 = phos.lightPos; let _e114 = shadowVisibility(_e101, _e104, _e107, world_2, in.position.xy, _e112.xz); vis = _e114; } let _e118 = phos.lightPos.w; let _e123 = phos.misc.w; let _e126 = vis; let _e131 = phos.rate.w; e = ((((_e118 * ndl) / (d2_ + _e123)) * _e126) * _e131); } let _e136 = phos.rate.y; let _e137 = e; let k = (_e136 * _e137); let _e142 = phos.rate.z; let r_1 = (k + _e142); let ceq = select(0f, (k / max(r_1, 0.000001f)), (r_1 > 0.000001f)); let _e151 = prev; let _e157 = phos.rate.x; c = (ceq + ((_e151 - ceq) * exp((-(r_1) * _e157)))); let _e163 = c; c = clamp(_e163, 0f, 1f); let _e172 = phos.misc.y; let _e178 = phos.misc.y; let _e183 = ign((in.position.xy + vec2((_e172 * 7.13f), (_e178 * 3.71f)))); if packed { let _e184 = c; let v_1 = min(floor(((_e184 * 65535f) + _e183)), 65535f); let hi_2 = floor((v_1 / 256f)); let lo_2 = (v_1 - (hi_2 * 256f)); return vec4((hi_2 / 255f), (lo_2 / 255f), 0f, 1f); } let _e204 = c; let ulp = exp2((floor(log2(max(_e204, 0.000062f))) - 10f)); let _e212 = c; return vec4(max((_e212 + ((_e183 - 0.5f) * ulp)), 0f), 0f, 0f, 1f); }  °K/„Å-À–¢vs_mainmain{#version 300 es precision highp float; precision highp int; struct Phos { mat4x4 lightViewProj; vec4 lightPos; vec4 rate; vec4 rect; vec4 shadowA; vec4 shadowB; vec4 misc; vec4 pages; }; struct VsOut { vec4 position; }; const float HDR_RANGE = 4.0; const float CONTACT_MIN = 1.0; const float CONTACT_GROWTH = 3.2; const float CONTACT_MAX = 8.0; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_4 = floor(p_1); vec2 f = (p_1 - i_4); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_5 = floor(p_2); vec2 f_1 = (p_2 - i_5); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); VsOut out_ = VsOut(vec4(0.0)); vec2 _e15 = pos[vi]; out_.position = vec4(_e15, 0.0, 1.0); VsOut _e19 = out_; gl_Position = _e19.position; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainÚ)#version 300 es precision highp float; precision highp int; struct Phos { mat4x4 lightViewProj; vec4 lightPos; vec4 rate; vec4 rect; vec4 shadowA; vec4 shadowB; vec4 misc; vec4 pages; }; struct VsOut { vec4 position; }; const float HDR_RANGE = 4.0; const float CONTACT_MIN = 1.0; const float CONTACT_GROWTH = 3.2; const float CONTACT_MAX = 8.0; layout(std140) uniform Phos_block_0Fragment { Phos _group_0_binding_0_fs; }; uniform highp sampler2DShadow _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_3_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_4 = floor(p_1); vec2 f = (p_1 - i_4); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_5 = floor(p_2); vec2 f_1 = (p_2 - i_5); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float shadowVisibility(mat4x4 lvp, vec4 sa, vec4 sb, vec3 world, vec2 fragXY, vec2 lightXZ) { vec2 disk[16] = vec2[16](vec2(-0.94201624, -0.39906216), vec2(0.9455861, -0.76890725), vec2(-0.0941841, -0.9293887), vec2(0.34495938, 0.2938776), vec2(-0.9158858, 0.45771432), vec2(-0.8154423, -0.87912464), vec2(-0.38277543, 0.27676845), vec2(0.974844, 0.7564838), vec2(0.44323325, -0.97511554), vec2(0.5374298, -0.4737342), vec2(-0.2649691, -0.41893023), vec2(0.79197514, 0.19090188), vec2(-0.2418884, 0.99706507), vec2(-0.81409955, 0.9143759), vec2(0.19984126, 0.78641367), vec2(0.14383161, -0.1410079)); float lit = 0.0; int i_2 = 0; vec4 lc = (lvp * vec4(world, 1.0)); vec3 ndc = (lc.xyz / vec3(lc.w)); vec2 uv = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); float depthRef = (ndc.z - sb.x); float _e77 = ign(fragXY); float angle = (6.2831855 * _e77); float cs = cos(angle); float sn = sin(angle); float reach = length((world.xz - lightXZ)); float contact = min((CONTACT_MIN + ((CONTACT_GROWTH * max((reach - sb.w), 0.0)) / max(sb.w, 0.001))), CONTACT_MAX); vec2 radius = (sa.xy * ((sb.w > 0.0) ? contact : (sa.z * (1.0 + (sb.z * reach))))); bool loop_init = true; while(true) { if (!loop_init) { int _e139 = i_2; i_2 = (_e139 + 1); } loop_init = false; int _e115 = i_2; if ((_e115 < 16)) { } else { break; } { int _e118 = i_2; vec2 d = disk[_e118]; vec2 o = (vec2(((d.x * cs) - (d.y * sn)), ((d.x * sn) + (d.y * cs))) * radius); float _e133 = lit; float _e137 = textureLod(_group_0_binding_1_fs, vec3((uv + o), depthRef), 0.0); lit = (_e133 + _e137); } } float _e142 = lit; lit = (_e142 / 16.0); float inside = ((((step(0.0, uv.x) * step(uv.x, 1.0)) * step(0.0, uv.y)) * step(uv.y, 1.0)) * step(0.0, lc.w)); float _e164 = lit; return mix(1.0, _e164, inside); } float shadowVisibilityWide(mat4x4 lvp_1, vec4 sa_1, vec4 sb_1, vec3 world_1, vec2 fragXY_1, float r) { vec2 ring[4] = vec2[4](vec2(0.354, 0.0), vec2(-0.452, 0.414), vec2(0.069, -0.788), vec2(0.569, 0.742)); float lit_1 = 0.0; int i_3 = 0; float _e24 = ign((fragXY_1 + vec2(5.0, 3.0))); float angle_1 = (6.2831855 * _e24); float cs_1 = cos(angle_1); float sn_1 = sin(angle_1); bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e103 = i_3; i_3 = (_e103 + 1); } loop_init_1 = false; int _e33 = i_3; if ((_e33 < 4)) { } else { break; } { int _e36 = i_3; vec2 d_1 = ring[_e36]; vec2 o_1 = (vec2(((d_1.x * cs_1) - (d_1.y * sn_1)), ((d_1.x * sn_1) + (d_1.y * cs_1))) * r); vec4 lc_1 = (lvp_1 * vec4((world_1 + vec3(o_1.x, 0.0, o_1.y)), 1.0)); vec3 ndc_1 = (lc_1.xyz / vec3(lc_1.w)); vec2 uv_1 = vec2(((ndc_1.x * 0.5) + 0.5), (0.5 - (ndc_1.y * 0.5))); float inside_1 = ((((step(0.0, uv_1.x) * step(uv_1.x, 1.0)) * step(0.0, uv_1.y)) * step(uv_1.y, 1.0)) * step(0.0, lc_1.w)); float _e93 = lit_1; float _e99 = textureLod(_group_0_binding_1_fs, vec3(uv_1, (ndc_1.z - sb_1.x)), 0.0); lit_1 = (_e93 + mix(1.0, _e99, inside_1)); } } float _e106 = lit_1; return (_e106 * 0.25); } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } void main() { VsOut in_ = VsOut(gl_FragCoord); float prev = 0.0; float e = 0.0; float vis = 1.0; float c = 0.0; ivec2 texel = ivec2(in_.position.xy); vec4 raw = texelFetch(_group_0_binding_3_fs, texel, 0); float _e10 = _group_0_binding_0_fs.misc.x; bool packed_ = (_e10 > 0.5); prev = raw.x; if (packed_) { float _e15 = unpack16_(raw); prev = _e15; } vec2 dims = vec2(uvec2(textureSize(_group_0_binding_3_fs, 0).xy)); vec2 uv_2 = (in_.position.xy / dims); float _e25 = _group_0_binding_0_fs.rect.x; float _e30 = _group_0_binding_0_fs.rect.z; float px = (_e25 + (uv_2.x * _e30)); float _e36 = _group_0_binding_0_fs.rect.y; float _e41 = _group_0_binding_0_fs.rect.w; float pz = (_e36 + (uv_2.y * _e41)); bool left = (px < 0.0); float ct = _group_0_binding_0_fs.pages.x; float st = _group_0_binding_0_fs.pages.y; vec3 world_2 = (left ? vec3((-(px) * ct), (-(px) * st), pz) : vec3(px, 0.0, pz)); vec3 N = (left ? vec3(st, -(ct), 0.0) : vec3(0.0, 1.0, 0.0)); float _e75 = _group_0_binding_0_fs.misc.z; if ((_e75 > 0.5)) { vec4 _e80 = _group_0_binding_0_fs.lightPos; vec3 toL = (_e80.xyz - world_2); float d2_ = dot(toL, toL); float ndl = max((dot(N, toL) * inversesqrt(max(d2_, 1e-8))), 0.0); float _e96 = _group_0_binding_0_fs.shadowA.w; if ((_e96 > 0.5)) { mat4x4 _e101 = _group_0_binding_0_fs.lightViewProj; vec4 _e104 = _group_0_binding_0_fs.shadowA; vec4 _e107 = _group_0_binding_0_fs.shadowB; vec4 _e112 = _group_0_binding_0_fs.lightPos; float _e114 = shadowVisibility(_e101, _e104, _e107, world_2, in_.position.xy, _e112.xz); vis = _e114; } float _e118 = _group_0_binding_0_fs.lightPos.w; float _e123 = _group_0_binding_0_fs.misc.w; float _e126 = vis; float _e131 = _group_0_binding_0_fs.rate.w; e = ((((_e118 * ndl) / (d2_ + _e123)) * _e126) * _e131); } float _e136 = _group_0_binding_0_fs.rate.y; float _e137 = e; float k = (_e136 * _e137); float _e142 = _group_0_binding_0_fs.rate.z; float r_1 = (k + _e142); float ceq = ((r_1 > 1e-6) ? (k / max(r_1, 1e-6)) : 0.0); float _e151 = prev; float _e157 = _group_0_binding_0_fs.rate.x; c = (ceq + ((_e151 - ceq) * exp((-(r_1) * _e157)))); float _e163 = c; c = clamp(_e163, 0.0, 1.0); float _e172 = _group_0_binding_0_fs.misc.y; float _e178 = _group_0_binding_0_fs.misc.y; float _e183 = ign((in_.position.xy + vec2((_e172 * 7.13), (_e178 * 3.71)))); if (packed_) { float _e184 = c; float v_1 = min(floor(((_e184 * 65535.0) + _e183)), 65535.0); float hi_2 = floor((v_1 / 256.0)); float lo_2 = (v_1 - (hi_2 * 256.0)); _fs2p_location0 = vec4((hi_2 / 255.0), (lo_2 / 255.0), 0.0, 1.0); return; } float _e204 = c; float ulp = exp2((floor(log2(max(_e204, 6.2e-5))) - 10.0)); float _e212 = c; _fs2p_location0 = vec4(max((_e212 + ((_e183 - 0.5) * ulp)), 0.0), 0.0, 0.0, 1.0); return; }  °XI +WëYPhos_block_0Fragment_group_0_binding_3_fs_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_mainU8// language: metal1.0 #include #include using metal::uint; struct Phos { metal::float4x4 lightViewProj; metal::float4 lightPos; metal::float4 rate; metal::float4 rect; metal::float4 shadowA; metal::float4 shadowB; metal::float4 misc; metal::float4 pages; }; struct type_11 { metal::float2 inner[16]; }; struct type_12 { metal::float2 inner[4]; }; struct VsOut { metal::float4 position; }; struct type_14 { metal::float2 inner[3]; }; constant float HDR_RANGE = 4.0; constant float CONTACT_MIN = 1.0; constant float CONTACT_GROWTH = 3.2; constant float CONTACT_MAX = 8.0; metal::float3 srgbToLinear( metal::float3 c_1 ) { metal::float3 x = metal::max(c_1, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_2 ) { metal::float3 x_1 = metal::max(c_2, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_3 ) { return metal::dot(c_3, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_4, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_4 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_4; } metal::float3 decodeHdr( metal::float3 e_1, float mode_1 ) { if (mode_1 > 0.5) { return ((e_1 * e_1) * e_1) * HDR_RANGE; } return e_1; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_4 = metal::floor(p_1); metal::float2 f = p_1 - i_4; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_4); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_5 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_5; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float shadowVisibility( metal::float4x4 lvp, metal::float4 sa, metal::float4 sb, metal::float3 world, metal::float2 fragXY, metal::float2 lightXZ, metal::depth2d shadowMap, metal::sampler shadowSamp ) { type_11 disk = type_11 {{metal::float2(-0.94201624, -0.39906216), metal::float2(0.9455861, -0.76890725), metal::float2(-0.0941841, -0.9293887), metal::float2(0.34495938, 0.2938776), metal::float2(-0.9158858, 0.45771432), metal::float2(-0.8154423, -0.87912464), metal::float2(-0.38277543, 0.27676845), metal::float2(0.974844, 0.7564838), metal::float2(0.44323325, -0.97511554), metal::float2(0.5374298, -0.4737342), metal::float2(-0.2649691, -0.41893023), metal::float2(0.79197514, 0.19090188), metal::float2(-0.2418884, 0.99706507), metal::float2(-0.81409955, 0.9143759), metal::float2(0.19984126, 0.78641367), metal::float2(0.14383161, -0.1410079)}}; float lit = 0.0; int i_2 = 0; metal::float4 lc = lvp * metal::float4(world, 1.0); metal::float3 ndc = lc.xyz / metal::float3(lc.w); metal::float2 uv = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); float depthRef = ndc.z - sb.x; float _e77 = ign(fragXY); float angle = 6.2831855 * _e77; float cs = metal::cos(angle); float sn = metal::sin(angle); float reach = metal::length(world.xz - lightXZ); float contact = metal::min(CONTACT_MIN + ((CONTACT_GROWTH * metal::max(reach - sb.w, 0.0)) / metal::max(sb.w, 0.001)), CONTACT_MAX); metal::float2 radius = sa.xy * ((sb.w > 0.0) ? contact : (sa.z * (1.0 + (sb.z * reach)))); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e139 = i_2; i_2 = as_type(as_type(_e139) + as_type(1)); } loop_init = false; int _e115 = i_2; if (_e115 < 16) { } else { break; } { int _e118 = i_2; metal::float2 d = disk.inner[metal::min(unsigned(_e118), 15u)]; metal::float2 o = metal::float2((d.x * cs) - (d.y * sn), (d.x * sn) + (d.y * cs)) * radius; float _e133 = lit; float _e137 = shadowMap.sample_compare(shadowSamp, uv + o, depthRef); lit = _e133 + _e137; } } float _e142 = lit; lit = _e142 / 16.0; float inside = (((metal::step(0.0, uv.x) * metal::step(uv.x, 1.0)) * metal::step(0.0, uv.y)) * metal::step(uv.y, 1.0)) * metal::step(0.0, lc.w); float _e164 = lit; return metal::mix(1.0, _e164, inside); } float shadowVisibilityWide( metal::float4x4 lvp_1, metal::float4 sa_1, metal::float4 sb_1, metal::float3 world_1, metal::float2 fragXY_1, float r, metal::depth2d shadowMap, metal::sampler shadowSamp ) { type_12 ring = type_12 {{metal::float2(0.354, 0.0), metal::float2(-0.452, 0.414), metal::float2(0.069, -0.788), metal::float2(0.569, 0.742)}}; float lit_1 = 0.0; int i_3 = 0; float _e24 = ign(fragXY_1 + metal::float2(5.0, 3.0)); float angle_1 = 6.2831855 * _e24; float cs_1 = metal::cos(angle_1); float sn_1 = metal::sin(angle_1); uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e103 = i_3; i_3 = as_type(as_type(_e103) + as_type(1)); } loop_init_1 = false; int _e33 = i_3; if (_e33 < 4) { } else { break; } { int _e36 = i_3; metal::float2 d_1 = ring.inner[metal::min(unsigned(_e36), 3u)]; metal::float2 o_1 = metal::float2((d_1.x * cs_1) - (d_1.y * sn_1), (d_1.x * sn_1) + (d_1.y * cs_1)) * r; metal::float4 lc_1 = lvp_1 * metal::float4(world_1 + metal::float3(o_1.x, 0.0, o_1.y), 1.0); metal::float3 ndc_1 = lc_1.xyz / metal::float3(lc_1.w); metal::float2 uv_1 = metal::float2((ndc_1.x * 0.5) + 0.5, 0.5 - (ndc_1.y * 0.5)); float inside_1 = (((metal::step(0.0, uv_1.x) * metal::step(uv_1.x, 1.0)) * metal::step(0.0, uv_1.y)) * metal::step(uv_1.y, 1.0)) * metal::step(0.0, lc_1.w); float _e93 = lit_1; float _e99 = shadowMap.sample_compare(shadowSamp, uv_1, ndc_1.z - sb_1.x); lit_1 = _e93 + metal::mix(1.0, _e99, inside_1); } } float _e106 = lit_1; return _e106 * 0.25; } float unpack16_( metal::float4 t ) { return ((metal::floor((t.x * 255.0) + 0.5) * 256.0) + metal::floor((t.y * 255.0) + 0.5)) * 0.000015259022; } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_14 pos = type_14 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; VsOut out = {}; metal::float2 _e15 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(_e15, 0.0, 1.0); VsOut _e19 = out; const auto _tmp = _e19; return vs_mainOutput { _tmp.position }; } struct fs_mainInput { }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( metal::float4 position [[position]] , constant Phos& phos [[buffer(0)]] , metal::depth2d shadowMap [[texture(0)]] , metal::sampler shadowSamp [[sampler(0)]] , metal::texture2d prevTex [[texture(1)]] ) { const VsOut in = { position }; float prev = {}; float e = 0.0; float vis = 1.0; float c = {}; metal::int2 texel = naga_f2i32(in.position.xy); uint clamped_lod_e6 = metal::min(uint(0), prevTex.get_num_mip_levels() - 1); metal::float4 raw = prevTex.read(metal::min(metal::uint2(texel), metal::uint2(prevTex.get_width(clamped_lod_e6), prevTex.get_height(clamped_lod_e6)) - 1), clamped_lod_e6); float _e10 = phos.misc.x; bool packed = _e10 > 0.5; prev = raw.x; if (packed) { float _e15 = unpack16_(raw); prev = _e15; } metal::float2 dims = static_cast(metal::uint2(prevTex.get_width(), prevTex.get_height())); metal::float2 uv_2 = in.position.xy / dims; float _e25 = phos.rect.x; float _e30 = phos.rect.z; float px = _e25 + (uv_2.x * _e30); float _e36 = phos.rect.y; float _e41 = phos.rect.w; float pz = _e36 + (uv_2.y * _e41); bool left = px < 0.0; float ct = phos.pages.x; float st = phos.pages.y; metal::float3 world_2 = left ? metal::float3(-(px) * ct, -(px) * st, pz) : metal::float3(px, 0.0, pz); metal::float3 N = left ? metal::float3(st, -(ct), 0.0) : metal::float3(0.0, 1.0, 0.0); float _e75 = phos.misc.z; if (_e75 > 0.5) { metal::float4 _e80 = phos.lightPos; metal::float3 toL = _e80.xyz - world_2; float d2_ = metal::dot(toL, toL); float ndl = metal::max(metal::dot(N, toL) * metal::rsqrt(metal::max(d2_, 0.00000001)), 0.0); float _e96 = phos.shadowA.w; if (_e96 > 0.5) { metal::float4x4 _e101 = phos.lightViewProj; metal::float4 _e104 = phos.shadowA; metal::float4 _e107 = phos.shadowB; metal::float4 _e112 = phos.lightPos; float _e114 = shadowVisibility(_e101, _e104, _e107, world_2, in.position.xy, _e112.xz, shadowMap, shadowSamp); vis = _e114; } float _e118 = phos.lightPos.w; float _e123 = phos.misc.w; float _e126 = vis; float _e131 = phos.rate.w; e = (((_e118 * ndl) / (d2_ + _e123)) * _e126) * _e131; } float _e136 = phos.rate.y; float _e137 = e; float k = _e136 * _e137; float _e142 = phos.rate.z; float r_1 = k + _e142; float ceq = (r_1 > 0.000001) ? (k / metal::max(r_1, 0.000001)) : 0.0; float _e151 = prev; float _e157 = phos.rate.x; c = ceq + ((_e151 - ceq) * metal::exp(-(r_1) * _e157)); float _e163 = c; c = metal::clamp(_e163, 0.0, 1.0); float _e172 = phos.misc.y; float _e178 = phos.misc.y; float _e183 = ign(in.position.xy + metal::float2(_e172 * 7.13, _e178 * 3.71)); if (packed) { float _e184 = c; float v_1 = metal::min(metal::floor((_e184 * 65535.0) + _e183), 65535.0); float hi_2 = metal::floor(v_1 / 256.0); float lo_2 = v_1 - (hi_2 * 256.0); return fs_mainOutput { metal::float4(hi_2 / 255.0, lo_2 / 255.0, 0.0, 1.0) }; } float _e204 = c; float ulp = metal::exp2(metal::floor(metal::log2(metal::max(_e204, 0.000062))) - 10.0); float _e212 = c; return fs_mainOutput { metal::float4(metal::max(_e212 + ((_e183 - 0.5) * ulp), 0.0), 0.0, 0.0, 1.0) }; }  °XI +WëYvs_mainmainÌstruct Phos { row_major float4x4 lightViewProj; float4 lightPos; float4 rate; float4 rect; float4 shadowA; float4 shadowB; float4 misc; float4 pages; }; struct VsOut { float4 position; }; static const float2 _362[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const VsOut _367 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { VsOut _out = _367; _out.position = float4(_362[min(uint(gl_VertexIndex), 2u)], 0.0f, 1.0f); gl_Position = _out.position; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; } fs_mainmainstruct Phos { row_major float4x4 lightViewProj; float4 lightPos; float4 rate; float4 rect; float4 shadowA; float4 shadowB; float4 misc; float4 pages; }; struct VsOut { float4 position; }; static const float2 _399[16] = { float2(-0.94201624393463134765625f, -0.39906215667724609375f), float2(0.94558608531951904296875f, -0.768907248973846435546875f), float2(-0.094184100627899169921875f, -0.929388701915740966796875f), float2(0.34495937824249267578125f, 0.29387760162353515625f), float2(-0.91588580608367919921875f, 0.4577143192291259765625f), float2(-0.8154423236846923828125f, -0.87912464141845703125f), float2(-0.38277542591094970703125f, 0.2767684459686279296875f), float2(0.9748439788818359375f, 0.7564837932586669921875f), float2(0.4432332515716552734375f, -0.9751155376434326171875f), float2(0.5374298095703125f, -0.473734200000762939453125f), float2(-0.2649691104888916015625f, -0.418930232524871826171875f), float2(0.79197514057159423828125f, 0.19090187549591064453125f), float2(-0.24188840389251708984375f, 0.997065067291259765625f), float2(-0.8140995502471923828125f, 0.91437590122222900390625f), float2(0.1998412609100341796875f, 0.786413669586181640625f), float2(0.14383161067962646484375f, -0.141007900238037109375f) }; static const float2 _543[4] = { float2(0.3540000021457672119140625f, 0.0f), float2(-0.4519999921321868896484375f, 0.4140000045299530029296875f), float2(0.068999998271465301513671875f, -0.78799998760223388671875f), float2(0.5690000057220458984375f, 0.74199998378753662109375f) }; cbuffer phos : register(b0) { Phos phos_1_m0 : packoffset(c0); }; Texture2D shadowMap : register(t0); SamplerComparisonState shadowSamp : register(s0); Texture2D prevTex : register(t1); static float4 gl_FragCoord; static float4 _661; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _661 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float unpack16(float4 t) { return ((floor((t.x * 255.0f) + 0.5f) * 256.0f) + floor((t.y * 255.0f) + 0.5f)) * 1.525902189314365386962890625e-05f; } float ign(float2 p) { return frac(52.98291778564453125f * frac(dot(p, float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))); } float shadowVisibility(float4x4 lvp, float4 sa, float4 sb, float3 world, float2 fragXY, float2 lightXZ) { float lit = 0.0f; int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); float4 _411 = mul(float4(world, 1.0f), lvp); float3 _415 = _411.xyz / float3(_411.www); float2 _422 = float2((_415.x * 0.5f) + 0.5f, 0.5f - (_415.y * 0.5f)); float _425 = _415.z - sb.x; float _427 = 6.283185482025146484375f * ign(fragXY); float _428 = cos(_427); float _429 = sin(_427); float _432 = length(world.xz - lightXZ); float2 _451 = sa.xy * ((sb.w > 0.0f) ? min(1.0f + ((3.2000000476837158203125f * max(_432 - sb.w, 0.0f)) / max(sb.w, 0.001000000047497451305389404296875f)), 8.0f) : (sa.z * (1.0f + (sb.z * _432)))); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 16)) { break; } uint _480 = min(uint(i), 15u); lit += shadowMap.SampleCmpLevelZero(shadowSamp, _422 + (float2((_399[_480].x * _428) - (_399[_480].y * _429), (_399[_480].x * _429) + (_399[_480].y * _428)) * _451), _425); i++; continue; } lit /= 16.0f; return lerp(1.0f, lit, (((step(0.0f, _422.x) * step(_422.x, 1.0f)) * step(0.0f, _422.y)) * step(_422.y, 1.0f)) * step(0.0f, _411.w)); } void frag_main() { float e = 0.0f; float c = 0.0f; float prev = 0.0f; float vis = 1.0f; VsOut _657 = { gl_FragCoord }; int _689; spvTextureSize(prevTex, 0u, _689); int _691 = int(min(uint(0), uint(int(_689) - 1))); uint _692_dummy_parameter; float4 _696 = prevTex.Load(int3(int2(min(uint2(int2(clamp(_657.position.xy, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(prevTex, uint(_691), _692_dummy_parameter)) - int2(1, 1)))), _691)); bool _702 = phos_1_m0.misc.x > 0.5f; prev = _696.x; if (_702) { prev = unpack16(_696); } uint _707_dummy_parameter; float2 _711 = _657.position.xy / float2(spvTextureSize(prevTex, 0u, _707_dummy_parameter)); float _719 = phos_1_m0.rect.x + (_711.x * phos_1_m0.rect.z); float _726 = phos_1_m0.rect.y + (_711.y * phos_1_m0.rect.w); bool _727 = _719 < 0.0f; float3 _733 = float3(_719, 0.0f, _726); float3 _738 = float3((-_719) * phos_1_m0.pages.x, (-_719) * phos_1_m0.pages.y, _726); bool3 _740 = bool3(_727, _727, _727); float3 _739 = float3(_740.x ? _738.x : _733.x, _740.y ? _738.y : _733.y, _740.z ? _738.z : _733.z); float3 _742 = float3(phos_1_m0.pages.y, -phos_1_m0.pages.x, 0.0f); bool3 _744 = bool3(_727, _727, _727); if (phos_1_m0.misc.z > 0.5f) { float3 _753 = phos_1_m0.lightPos.xyz - _739; float _754 = dot(_753, _753); if (phos_1_m0.shadowA.w > 0.5f) { vis = shadowVisibility(phos_1_m0.lightViewProj, phos_1_m0.shadowA, phos_1_m0.shadowB, _739, _657.position.xy, phos_1_m0.lightPos.xz); } e = (((phos_1_m0.lightPos.w * max(dot(float3(_744.x ? _742.x : float3(0.0f, 1.0f, 0.0f).x, _744.y ? _742.y : float3(0.0f, 1.0f, 0.0f).y, _744.z ? _742.z : float3(0.0f, 1.0f, 0.0f).z), _753) * rsqrt(max(_754, 9.9999999392252902907785028219223e-09f)), 0.0f)) / (_754 + phos_1_m0.misc.w)) * vis) * phos_1_m0.rate.w; } float _794 = phos_1_m0.rate.y * e; float _797 = _794 + phos_1_m0.rate.z; float _801 = (_797 > 9.9999999747524270787835121154785e-07f) ? (_794 / max(_797, 9.9999999747524270787835121154785e-07f)) : 0.0f; c = _801 + ((prev - _801) * exp((-_797) * phos_1_m0.rate.x)); c = clamp(c, 0.0f, 1.0f); float _823 = ign(_657.position.xy + float2(phos_1_m0.misc.y * 7.13000011444091796875f, phos_1_m0.misc.y * 3.71000003814697265625f)); if (_702) { float _830 = min(floor((c * 65535.0f) + _823), 65535.0f); float _832 = floor(_830 / 256.0f); _661 = float4(_832 / 255.0f, (_830 - (_832 * 256.0f)) / 255.0f, 0.0f, 1.0f); return; } _661 = float4(max(c + ((_823 - 0.5f) * exp2(floor(log2(max(c, 6.1999999161344021558761596679688e-05f))) - 10.0f)), 0.0f), 0.0f, 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._661 = _661; return stage_output; }  °XI +WëYHSLTPhos° lightViewProjÿÿÿÿlightPos@ÿÿÿÿratePÿÿÿÿrect`ÿÿÿÿshadowApÿÿÿÿshadowB€ÿÿÿÿmisc�ÿÿÿÿpages ÿÿÿÿ phos_block°phos shadowMapÿÿÿÿprevTexÿÿÿÿ shadowSampÿÿÿÿvs_mainvs_mainfs_mainfs_main´F#o2 GLSL.std.450–vs_main‘”¶fs_main²µ¶H #H H H #@H #PH #`H #pH #€H #�H # GGH#GG"G!GH#G"G!G "G !G""G"!G‘ *G” G² Gµ        + +   + +€@+€?+ÍÌL@+A ;  ; !;! #;#"!'+(,)(((+*‘ƒž=++®Ga=,,++++-n§r?+.š™@,/...+0æ®%=,1000989+?R¸NA+@UUÕ>,A@@@+B= ‡?+C.M;,DCCC!P+QгY>+RY7?+S˜Ý“=,TQRS![+\?+]€>,^+_«ªª>,`___!v+w f+x_ón<,yxx,z |.} ‚+ƒ+†!­+®€,¯®®+°+±€3!½ !Í +ÎCq‰=+Ï�E¿;, ÐÎÏ+Ñ‚îSB+Ú@@, ÛÚÚ+Ü@+Ý+Þ,ßÝÞ,àÞÝ,áÝÝ+éÏ, êéé+ëÿÿÿN, ìëë! +À@, +6…ë?+7…ë@+8Í̈A+9ÍÌl@, :89+;áz”>+<q=‚@+=š™©@+>33ïA, ?=>+@)\> B.C! \  +_ú'q¿+`àQ̾, a_`+bîr?+c×D¿, dbc+e˜ãÀ½+fkìm¿, gef+h„ž°>+i w–>, jhi+k~wj¿+lˆYê>, mkl+nÔÀP¿+oPa¿, pno+q$ûþ+r˜´�>, sqr+t`�y?+uì¨A?, vtu+wxïâ>+x,¡y¿, ywx+z• ?+{J�ò¾, |z{+}ª‡¾+~~Ö¾, }~+€â¾J?+�È{C>, ‚€�+ƒ˜±w¾+„¨??, …ƒ„+†ÔhP¿+‡Šj?, ˆ†‡+‰0£L>+ŠhRI?, ‹‰Š+Œ˜H>+�`d¾, ŽŒ�,�adgjmpsvy|‚…ˆ‹Ž+�ÛÉ@+‘oƒ:+’+“€A • ˜È9,Ƀƒ+Êÿÿÿÿ,ËÊÊ Þ +ßñ !   +}?µ>, (+‹lç¾+Ï÷Ó>, +ßO�=+^ºI¿, +ü©?+¶ó=?, ,+  @, ! Ú+" $!€ +�C+‚€C+ƒ€€7 ’;’‘ • ;•”!—+˜€¿, ™˜˜, šÚ˜, ›˜Ú,œ™š› ž  .¡ £ +¤ ¬ ³ ;³²;•µ · ,¼((+½wÌ+2+¾½7†5+¿ö(ä@+À¤pm@+ÁÿG+Âÿ‚8+à A.Å.É,ÓÝÝ × Ø+Ù+õ  +6&'7%ø$ù2ø2 3(%)Ž43*�53,Ž65- 76/¼8:31©;:47þ;86>'7=ø<ùEøE F(=)ŽGF? HFAŽIHBƒJI,¼8KFD©LKGJþL86OP7NøMùUøU”VNTþV86Z[7X7YøWùaøaº9bY\÷cúbdcødŽeX] f+e)^ gf`þgøcþX86k[7i7jøhùlølº9mj\÷númonøo…pii…qpiŽrqþrønþi86uv7tøs;|{}ù~ø~P€ww„t€€�y>{�A‚„{ƒ=…„A‚‡{†=ˆ‡„‰ˆw€Š…‰A‚‹{ƒ>‹ŠA‚Œ{†=�ŒA‚Ž{ƒ=�Ž„��w€‘��A‚’{†>’‘=“{=”{•”zÆ–“•>{–A‚—{ƒ=˜—A‚™{†=𙄛šw€œ˜›A‚�{ƒ>�œA‚ž{†=ŸžA‚ {ƒ=¡ „¢¡w€£Ÿ¢A‚¤{†>¤£=¥{=¦{§¦zƨ¥§>{¨=©{þ©86¬­7«øªù²ø²€³«¯|´³9µu´Q¶µÂ·¶°p¸·…¹¸±þ¹86 ¼½7»øºù¾ø¾€¿»¯|À¿9ÁuÀQÂÁÂðpÄÃQÅÁÂÆÅ°pÇÆP ÈÄÇŽ ÉȱþÉ86ÌÍ7 ËøÊùÒøÒ”ÓËÐ Ô Ó…ÕÑÔ Ö ÕþÖ86ÙÍ7 Øø×ùâøâ  ã؃ äØã… åääŽ æä܃ çÛæ… èåç  í+ãêìnîí9ï¬î€ðîß9ñ¬ð€òîà9ó¬ò€ôîá9õ¬ôQöè ÷.ïñöQøè ù.óõøQúè û.÷ùú…üû܃ýüþý867 ÿøþùø  ÿƒ ÿ… Ž ܃ Û…  Ž ƒ …     +êìn9¬€ß9¬€à9¬€á9¬ƒƒƒƒ�Q …�Q … �! Q" …#"Q$ …%#$�&!%Q' …('�)(Q* …+*�,+P -),… . -…/&܃0/Ž 1.ÜP201þ2865Í7 4ø3;BACùDøD9EÙ4…FE6>AF=GAŽ H47� IH:9JÙI…KJ;�LGK>AL=MAŽ N4<� ON?9PÙO…QP@�RMQ>AR=SAþS86[\7 U7 V7 W7X7 Y7 ZøT;•”�;B–(;˜—Þ;|ÌË= ]=^ ù™ø™P šX‘ ›UšOœ››Q�›Pž���ˆŸœžQ Ÿ…¡ \�¢¡\Q£Ÿ…¤£\ƒ¥\¤P ¦¢¥Q§ŸQ¨Wƒ©§¨9ªÌY…«�ª ¬« ­ «O ®XXƒ ¯®Z °B¯Q±Wƒ²°± ³(²(…´³QµW ¶(µ‘ˆ·´¶�¸· ¹%¸O ºVVQ»VQ¼W…½¼°�¾½…¿»¾QÀWº9ÁÀ(©ÂÁ¹¿Ž úÂùÄøÄöÅÇùÍøÍ=Î̪ÈÏÉΛ9ÐÏ÷ÑúÐÅÑøÑQÒΪ9ÓÒƒ©ÔÓ†ƒPÕÔ†‚ÖÎÕ>ÌÖùÆøÆ=×—±9Ø×’÷ÙúØÙÚøÚùÅøÙùÛøÛ=Ý— à&ÝßAÞá”à= âáQãâ…äã¬Qåâ…æå­ƒçäæQèâ…éè­Qêâ…ëê¬�ìéëP íçì… îíÃ=ï–� ð¦îVñò]^Zóòð©(�ôïó>–ôùÜøÜùÇøÇ=õ—€öõÝ>—öùÄøÅ=÷–ˆø÷“>–øQù¦ ú0(ùQû¦ ü0û…ýúüQþ¦ ÿ0(þ…ýÿQ¦ 0…Q› 0(…=– .þ867 7 7 7 7 7ø ;$#;B%(;˜&Þ;|1Ë= = ù'ø'� (!9)Ì(…*�) +* , *ù-ø-ö.0ù2ø2=31ªÈ4É3›954÷6ú5.6ø6Q73ª987ƒ©98†ƒP:9†‚;3:>1;ù/ø/=<&±9=<"÷>ú=>?ø?ù.ø>ù@ø@=B& C&BAÞD#C= EDQFE…GF+QHE…IH,ƒJGIQKE…LK,QME…NM+�OLNP PJOŽ QPQRQQSQPTR(S�U TP VU‘ W VOXWWQYWPZYYYˆ[XZQ\[…]\\�^]\Q_[…`_\ƒa\`P b^aQcb d0(cQeb f0e…gdfQhb i0(h…jgiQkb l0k…mjlQnW o0(n…pmo=q%Qr[Qs ƒtrsVñuZvubt( w.vp�xqw>%xùAøAù0ø0=y&€zyÝ>&zù-ø.={%…|{]þ|86€7 ~ø}ù„ø„Q…~…†…��‡†\ ˆ‡…‰ˆ‚QŠ~…‹Š��Œ‹\ �Œ�މ�…�Žƒþ�86–—ø�;ž�œ; Ÿ¡=“‘ù¢ø¢ ¥&“¤AÞ¦�¥= §¦P ¨§(A£©Ÿƒ>©¨=ªŸQ «ª>”«A¬­”†=®­¯®>­¯ý86¶—ø°;BÆ(;BÈÉ;BÄÅ;BÇ= ´²P±´A·¸ƒ= ¹=º =»"ùÊøÊQ ˱O ÌËË  Í+ÌêìnÎÍjÏ»‚ÐÏÝ Ñ&ÞÐgһтÔÒÓ Õ&ÎÔ_ Ö»ÕÑAØÚ¸Ùƒ=ÛÚº9ÜÛ\QÝÖ>ÄÝ÷ÞúÜßÞøß9àÖ>ÄàùÞøÞgểp âáQ ã±O äã㈠åäâAØæ¸ƒ=çæQèåAØé¸¤=êé…ëèê�ìçëAØí¸†=îíQïåAØð¸=ñð…òïñ�óîò¸9ôì(AØö¸õƒ=÷öAØø¸õ†=ùøPúì(óûì…üû÷ýì…þýùPÿüþóP8ôôô©ÿú÷Pù(P8ôôô©¼Aظ٤=º9\÷ ú  ø A× ¸†=  O   ƒ ”” (½  … ((Aظ=º9\÷úøA¸ƒ= A׸= A× ¸= ! Q "±O #""A×$¸†= %$O &%%9 '[!#&>Ç'ùøAØ(¸†=)(…*)AØ+¸Ù=,+�-,ˆ.*-=/Ç…0./AØ1¸¤=21…302>Æ3ù ø AØ4¸¤†=54=6Æ…756AØ8¸¤¤=98�:79 ;(:¾ˆ<7;º9=:¾©>=<(=?ă@?>A:AØB¸¤ƒ=CB…DAC ED…F@E�G>F>ÈG=HÈ I+H(>ÈIQ J±O KJJAØL¸Ù†=ML…NM¿AØO¸Ù†=PO…QPÀP RNQ� SKR9TÌS÷UúÜVUøV=WÈ…XWÁ�YXT ZY [%ZÁˆ\[‚ ]\…^]‚ƒ_[^ˆ`]�ˆa_�P b`a(>µbýøU=cÈ d(c ed feƒgfà hg=iȃjT\…kjh�lik m(l(P nm((>µný8 °K/„Å-À–¢ÊËshaders/phosphor_vsmjÔÉ»BTSR “#“#]ð#‚3 rW]ÏWÒWMXž/ ½‡]ˆ@ ZŸ]·Ÿ”K¡›; æÜ]vs_mainvs_mainfs_mainfs_mainh#struct Phos { lightViewProj: mat4x4, lightPos: vec4, rate: vec4, rect: vec4, shadowA: vec4, shadowB: vec4, misc: vec4, pages: vec4, } struct VsOut { @builtin(position) position: vec4, } const HDR_RANGE: f32 = 4f; @group(0) @binding(0) var phos: Phos; @group(0) @binding(1) var momentsTex: texture_2d; @group(0) @binding(2) var momentsSamp: sampler; @group(0) @binding(3) var prevTex: texture_2d; fn srgbToLinear(c_1: vec3) -> vec3 { let x = max(c_1, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_2: vec3) -> vec3 { let x_1 = max(c_2, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_3: vec3) -> f32 { return dot(c_3, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_4: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_4 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_4; } fn decodeHdr(e_1: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_3 = floor(p_1); let f = (p_1 - i_3); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_3); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_4 = floor(p_2); let f_1 = (p_2 - i_4); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_4); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn shadowVisibility(lvp: mat4x4, sa: vec4, sb: vec4, world: vec3, fragXY: vec2, lightXZ: vec2) -> f32 { var p_4: f32; let lc = (lvp * vec4(world, 1f)); let ndc = (lc.xyz / vec3(lc.w)); let uv = vec2(((ndc.x * 0.5f) + 0.5f), (0.5f - (ndc.y * 0.5f))); let d = ((lc.w * sa.x) - sa.y); let _e32 = textureSampleLevel(momentsTex, momentsSamp, uv, 0f); let m = _e32.xy; let variance = max((m.y - (m.x * m.x)), 0.00002f); let delta = (d - m.x); p_4 = (variance / (variance + (delta * delta))); let bleed = sa.z; let _e48 = p_4; p_4 = clamp(((_e48 - bleed) / (1f - bleed)), 0f, 1f); let _e56 = p_4; let lit_1 = select(_e56, 1f, (d <= m.x)); let inside = ((((step(0f, uv.x) * step(uv.x, 1f)) * step(0f, uv.y)) * step(uv.y, 1f)) * step(0f, lc.w)); return mix(1f, lit_1, inside); } fn shadowVisibilityWide(lvp_1: mat4x4, sa_1: vec4, sb_1: vec4, world_1: vec3, fragXY_1: vec2, r: f32) -> f32 { var lit: f32 = 0f; var i_2: i32 = 0i; let _e10 = ign((fragXY_1 + vec2(5f, 3f))); let angle = (6.2831855f * _e10); let cs = ((cos(angle) * r) * 0.7f); let sn = ((sin(angle) * r) * 0.7f); loop { let _e25 = i_2; if (_e25 < 4i) { } else { break; } { let _e32 = i_2; let _e40 = i_2; let _e44 = i_2; let o = select(select(vec2(-(sn), cs), vec2(sn, -(cs)), (_e32 == 3i)), select(vec2(cs, sn), vec2(-(cs), -(sn)), (_e40 == 1i)), (_e44 < 2i)); let _e48 = lit; let _e56 = shadowVisibility(lvp_1, sa_1, sb_1, (world_1 + vec3(o.x, 0f, o.y)), fragXY_1, vec2(0f)); lit = (_e48 + _e56); } continuing { let _e58 = i_2; i_2 = (_e58 + 1i); } } let _e61 = lit; return (_e61 * 0.25f); } fn unpack16_(t: vec4) -> f32 { return (((floor(((t.x * 255f) + 0.5f)) * 256f) + floor(((t.y * 255f) + 0.5f))) * 0.000015259022f); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> VsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: VsOut; let _e15 = pos[vi]; out.position = vec4(_e15, 0f, 1f); let _e19 = out; return _e19; } @fragment fn fs_main(in: VsOut) -> @location(0) vec4 { var prev: f32; var e: f32 = 0f; var vis: f32 = 1f; var c: f32; let texel = vec2(in.position.xy); let raw = textureLoad(prevTex, texel, 0i); let _e10 = phos.misc.x; let packed = (_e10 > 0.5f); prev = raw.x; if packed { let _e15 = unpack16_(raw); prev = _e15; } let _e17 = textureDimensions(prevTex); let dims = vec2(_e17); let uv_1 = (in.position.xy / dims); let _e25 = phos.rect.x; let _e30 = phos.rect.z; let px = (_e25 + (uv_1.x * _e30)); let _e36 = phos.rect.y; let _e41 = phos.rect.w; let pz = (_e36 + (uv_1.y * _e41)); let left = (px < 0f); let ct = phos.pages.x; let st = phos.pages.y; let world_2 = select(vec3(px, 0f, pz), vec3((-(px) * ct), (-(px) * st), pz), left); let N = select(vec3(0f, 1f, 0f), vec3(st, -(ct), 0f), left); let _e75 = phos.misc.z; if (_e75 > 0.5f) { let _e80 = phos.lightPos; let toL = (_e80.xyz - world_2); let d2_ = dot(toL, toL); let ndl = max((dot(N, toL) * inverseSqrt(max(d2_, 0.00000001f))), 0f); let _e96 = phos.shadowA.w; if (_e96 > 0.5f) { let _e101 = phos.lightViewProj; let _e104 = phos.shadowA; let _e107 = phos.shadowB; let _e112 = phos.lightPos; let _e114 = shadowVisibility(_e101, _e104, _e107, world_2, in.position.xy, _e112.xz); vis = _e114; } let _e118 = phos.lightPos.w; let _e123 = phos.misc.w; let _e126 = vis; let _e131 = phos.rate.w; e = ((((_e118 * ndl) / (d2_ + _e123)) * _e126) * _e131); } let _e136 = phos.rate.y; let _e137 = e; let k = (_e136 * _e137); let _e142 = phos.rate.z; let r_1 = (k + _e142); let ceq = select(0f, (k / max(r_1, 0.000001f)), (r_1 > 0.000001f)); let _e151 = prev; let _e157 = phos.rate.x; c = (ceq + ((_e151 - ceq) * exp((-(r_1) * _e157)))); let _e163 = c; c = clamp(_e163, 0f, 1f); let _e172 = phos.misc.y; let _e178 = phos.misc.y; let _e183 = ign((in.position.xy + vec2((_e172 * 7.13f), (_e178 * 3.71f)))); if packed { let _e184 = c; let v_1 = min(floor(((_e184 * 65535f) + _e183)), 65535f); let hi_2 = floor((v_1 / 256f)); let lo_2 = (v_1 - (hi_2 * 256f)); return vec4((hi_2 / 255f), (lo_2 / 255f), 0f, 1f); } let _e204 = c; let ulp = exp2((floor(log2(max(_e204, 0.000062f))) - 10f)); let _e212 = c; return vec4(max((_e212 + ((_e183 - 0.5f) * ulp)), 0f), 0f, 0f, 1f); }  °\;C]ìZ5—vs_mainmain#version 300 es precision highp float; precision highp int; struct Phos { mat4x4 lightViewProj; vec4 lightPos; vec4 rate; vec4 rect; vec4 shadowA; vec4 shadowB; vec4 misc; vec4 pages; }; struct VsOut { vec4 position; }; const float HDR_RANGE = 4.0; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_3 = floor(p_1); vec2 f = (p_1 - i_3); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f_1 = (p_2 - i_4); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); VsOut out_ = VsOut(vec4(0.0)); vec2 _e15 = pos[vi]; out_.position = vec4(_e15, 0.0, 1.0); VsOut _e19 = out_; gl_Position = _e19.position; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain>##version 300 es precision highp float; precision highp int; struct Phos { mat4x4 lightViewProj; vec4 lightPos; vec4 rate; vec4 rect; vec4 shadowA; vec4 shadowB; vec4 misc; vec4 pages; }; struct VsOut { vec4 position; }; const float HDR_RANGE = 4.0; layout(std140) uniform Phos_block_0Fragment { Phos _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_3_fs; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e_1, float mode_1) { if ((mode_1 > 0.5)) { return (((e_1 * e_1) * e_1) * HDR_RANGE); } return e_1; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_3 = floor(p_1); vec2 f = (p_1 - i_3); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f_1 = (p_2 - i_4); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float shadowVisibility(mat4x4 lvp, vec4 sa, vec4 sb, vec3 world, vec2 fragXY, vec2 lightXZ) { float p_4 = 0.0; vec4 lc = (lvp * vec4(world, 1.0)); vec3 ndc = (lc.xyz / vec3(lc.w)); vec2 uv = vec2(((ndc.x * 0.5) + 0.5), (0.5 - (ndc.y * 0.5))); float d = ((lc.w * sa.x) - sa.y); vec4 _e32 = textureLod(_group_0_binding_1_fs, vec2(uv), 0.0); vec2 m = _e32.xy; float variance = max((m.y - (m.x * m.x)), 2e-5); float delta = (d - m.x); p_4 = (variance / (variance + (delta * delta))); float bleed = sa.z; float _e48 = p_4; p_4 = clamp(((_e48 - bleed) / (1.0 - bleed)), 0.0, 1.0); float _e56 = p_4; float lit_1 = ((d <= m.x) ? 1.0 : _e56); float inside = ((((step(0.0, uv.x) * step(uv.x, 1.0)) * step(0.0, uv.y)) * step(uv.y, 1.0)) * step(0.0, lc.w)); return mix(1.0, lit_1, inside); } float shadowVisibilityWide(mat4x4 lvp_1, vec4 sa_1, vec4 sb_1, vec3 world_1, vec2 fragXY_1, float r) { float lit = 0.0; int i_2 = 0; float _e10 = ign((fragXY_1 + vec2(5.0, 3.0))); float angle = (6.2831855 * _e10); float cs = ((cos(angle) * r) * 0.7); float sn = ((sin(angle) * r) * 0.7); bool loop_init = true; while(true) { if (!loop_init) { int _e58 = i_2; i_2 = (_e58 + 1); } loop_init = false; int _e25 = i_2; if ((_e25 < 4)) { } else { break; } { int _e32 = i_2; int _e40 = i_2; int _e44 = i_2; vec2 o = ((_e44 < 2) ? ((_e40 == 1) ? vec2(-(cs), -(sn)) : vec2(cs, sn)) : ((_e32 == 3) ? vec2(sn, -(cs)) : vec2(-(sn), cs))); float _e48 = lit; float _e56 = shadowVisibility(lvp_1, sa_1, sb_1, (world_1 + vec3(o.x, 0.0, o.y)), fragXY_1, vec2(0.0)); lit = (_e48 + _e56); } } float _e61 = lit; return (_e61 * 0.25); } float unpack16_(vec4 t) { return (((floor(((t.x * 255.0) + 0.5)) * 256.0) + floor(((t.y * 255.0) + 0.5))) * 1.5259022e-5); } void main() { VsOut in_ = VsOut(gl_FragCoord); float prev = 0.0; float e = 0.0; float vis = 1.0; float c = 0.0; ivec2 texel = ivec2(in_.position.xy); vec4 raw = texelFetch(_group_0_binding_3_fs, texel, 0); float _e10 = _group_0_binding_0_fs.misc.x; bool packed_ = (_e10 > 0.5); prev = raw.x; if (packed_) { float _e15 = unpack16_(raw); prev = _e15; } vec2 dims = vec2(uvec2(textureSize(_group_0_binding_3_fs, 0).xy)); vec2 uv_1 = (in_.position.xy / dims); float _e25 = _group_0_binding_0_fs.rect.x; float _e30 = _group_0_binding_0_fs.rect.z; float px = (_e25 + (uv_1.x * _e30)); float _e36 = _group_0_binding_0_fs.rect.y; float _e41 = _group_0_binding_0_fs.rect.w; float pz = (_e36 + (uv_1.y * _e41)); bool left = (px < 0.0); float ct = _group_0_binding_0_fs.pages.x; float st = _group_0_binding_0_fs.pages.y; vec3 world_2 = (left ? vec3((-(px) * ct), (-(px) * st), pz) : vec3(px, 0.0, pz)); vec3 N = (left ? vec3(st, -(ct), 0.0) : vec3(0.0, 1.0, 0.0)); float _e75 = _group_0_binding_0_fs.misc.z; if ((_e75 > 0.5)) { vec4 _e80 = _group_0_binding_0_fs.lightPos; vec3 toL = (_e80.xyz - world_2); float d2_ = dot(toL, toL); float ndl = max((dot(N, toL) * inversesqrt(max(d2_, 1e-8))), 0.0); float _e96 = _group_0_binding_0_fs.shadowA.w; if ((_e96 > 0.5)) { mat4x4 _e101 = _group_0_binding_0_fs.lightViewProj; vec4 _e104 = _group_0_binding_0_fs.shadowA; vec4 _e107 = _group_0_binding_0_fs.shadowB; vec4 _e112 = _group_0_binding_0_fs.lightPos; float _e114 = shadowVisibility(_e101, _e104, _e107, world_2, in_.position.xy, _e112.xz); vis = _e114; } float _e118 = _group_0_binding_0_fs.lightPos.w; float _e123 = _group_0_binding_0_fs.misc.w; float _e126 = vis; float _e131 = _group_0_binding_0_fs.rate.w; e = ((((_e118 * ndl) / (d2_ + _e123)) * _e126) * _e131); } float _e136 = _group_0_binding_0_fs.rate.y; float _e137 = e; float k = (_e136 * _e137); float _e142 = _group_0_binding_0_fs.rate.z; float r_1 = (k + _e142); float ceq = ((r_1 > 1e-6) ? (k / max(r_1, 1e-6)) : 0.0); float _e151 = prev; float _e157 = _group_0_binding_0_fs.rate.x; c = (ceq + ((_e151 - ceq) * exp((-(r_1) * _e157)))); float _e163 = c; c = clamp(_e163, 0.0, 1.0); float _e172 = _group_0_binding_0_fs.misc.y; float _e178 = _group_0_binding_0_fs.misc.y; float _e183 = ign((in_.position.xy + vec2((_e172 * 7.13), (_e178 * 3.71)))); if (packed_) { float _e184 = c; float v_1 = min(floor(((_e184 * 65535.0) + _e183)), 65535.0); float hi_2 = floor((v_1 / 256.0)); float lo_2 = (v_1 - (hi_2 * 256.0)); _fs2p_location0 = vec4((hi_2 / 255.0), (lo_2 / 255.0), 0.0, 1.0); return; } float _e204 = c; float ulp = exp2((floor(log2(max(_e204, 6.2e-5))) - 10.0)); float _e212 = c; _fs2p_location0 = vec4(max((_e212 + ((_e183 - 0.5) * ulp)), 0.0), 0.0, 0.0, 1.0); return; }  °»®Ä #include using metal::uint; struct Phos { metal::float4x4 lightViewProj; metal::float4 lightPos; metal::float4 rate; metal::float4 rect; metal::float4 shadowA; metal::float4 shadowB; metal::float4 misc; metal::float4 pages; }; struct VsOut { metal::float4 position; }; struct type_11 { metal::float2 inner[3]; }; constant float HDR_RANGE = 4.0; metal::float3 srgbToLinear( metal::float3 c_1 ) { metal::float3 x = metal::max(c_1, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_2 ) { metal::float3 x_1 = metal::max(c_2, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_3 ) { return metal::dot(c_3, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_4, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_4 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_4; } metal::float3 decodeHdr( metal::float3 e_1, float mode_1 ) { if (mode_1 > 0.5) { return ((e_1 * e_1) * e_1) * HDR_RANGE; } return e_1; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_3 = metal::floor(p_1); metal::float2 f = p_1 - i_3; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_3); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_4 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_4; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float shadowVisibility( metal::float4x4 lvp, metal::float4 sa, metal::float4 sb, metal::float3 world, metal::float2 fragXY, metal::float2 lightXZ, metal::texture2d momentsTex, metal::sampler momentsSamp ) { float p_4 = {}; metal::float4 lc = lvp * metal::float4(world, 1.0); metal::float3 ndc = lc.xyz / metal::float3(lc.w); metal::float2 uv = metal::float2((ndc.x * 0.5) + 0.5, 0.5 - (ndc.y * 0.5)); float d = (lc.w * sa.x) - sa.y; metal::float4 _e32 = momentsTex.sample(momentsSamp, uv, metal::level(0.0)); metal::float2 m = _e32.xy; float variance = metal::max(m.y - (m.x * m.x), 0.00002); float delta = d - m.x; p_4 = variance / (variance + (delta * delta)); float bleed = sa.z; float _e48 = p_4; p_4 = metal::clamp((_e48 - bleed) / (1.0 - bleed), 0.0, 1.0); float _e56 = p_4; float lit_1 = (d <= m.x) ? 1.0 : _e56; float inside = (((metal::step(0.0, uv.x) * metal::step(uv.x, 1.0)) * metal::step(0.0, uv.y)) * metal::step(uv.y, 1.0)) * metal::step(0.0, lc.w); return metal::mix(1.0, lit_1, inside); } float shadowVisibilityWide( metal::float4x4 lvp_1, metal::float4 sa_1, metal::float4 sb_1, metal::float3 world_1, metal::float2 fragXY_1, float r, metal::texture2d momentsTex, metal::sampler momentsSamp ) { float lit = 0.0; int i_2 = 0; float _e10 = ign(fragXY_1 + metal::float2(5.0, 3.0)); float angle = 6.2831855 * _e10; float cs = (metal::cos(angle) * r) * 0.7; float sn = (metal::sin(angle) * r) * 0.7; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e58 = i_2; i_2 = as_type(as_type(_e58) + as_type(1)); } loop_init = false; int _e25 = i_2; if (_e25 < 4) { } else { break; } { int _e32 = i_2; int _e40 = i_2; int _e44 = i_2; metal::float2 o = (_e44 < 2) ? ((_e40 == 1) ? metal::float2(-(cs), -(sn)) : metal::float2(cs, sn)) : ((_e32 == 3) ? metal::float2(sn, -(cs)) : metal::float2(-(sn), cs)); float _e48 = lit; float _e56 = shadowVisibility(lvp_1, sa_1, sb_1, world_1 + metal::float3(o.x, 0.0, o.y), fragXY_1, metal::float2(0.0), momentsTex, momentsSamp); lit = _e48 + _e56; } } float _e61 = lit; return _e61 * 0.25; } float unpack16_( metal::float4 t ) { return ((metal::floor((t.x * 255.0) + 0.5) * 256.0) + metal::floor((t.y * 255.0) + 0.5)) * 0.000015259022; } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_11 pos = type_11 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; VsOut out = {}; metal::float2 _e15 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(_e15, 0.0, 1.0); VsOut _e19 = out; const auto _tmp = _e19; return vs_mainOutput { _tmp.position }; } struct fs_mainInput { }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( metal::float4 position [[position]] , constant Phos& phos [[buffer(0)]] , metal::texture2d momentsTex [[texture(0)]] , metal::sampler momentsSamp [[sampler(0)]] , metal::texture2d prevTex [[texture(1)]] ) { const VsOut in = { position }; float prev = {}; float e = 0.0; float vis = 1.0; float c = {}; metal::int2 texel = naga_f2i32(in.position.xy); uint clamped_lod_e6 = metal::min(uint(0), prevTex.get_num_mip_levels() - 1); metal::float4 raw = prevTex.read(metal::min(metal::uint2(texel), metal::uint2(prevTex.get_width(clamped_lod_e6), prevTex.get_height(clamped_lod_e6)) - 1), clamped_lod_e6); float _e10 = phos.misc.x; bool packed = _e10 > 0.5; prev = raw.x; if (packed) { float _e15 = unpack16_(raw); prev = _e15; } metal::float2 dims = static_cast(metal::uint2(prevTex.get_width(), prevTex.get_height())); metal::float2 uv_1 = in.position.xy / dims; float _e25 = phos.rect.x; float _e30 = phos.rect.z; float px = _e25 + (uv_1.x * _e30); float _e36 = phos.rect.y; float _e41 = phos.rect.w; float pz = _e36 + (uv_1.y * _e41); bool left = px < 0.0; float ct = phos.pages.x; float st = phos.pages.y; metal::float3 world_2 = left ? metal::float3(-(px) * ct, -(px) * st, pz) : metal::float3(px, 0.0, pz); metal::float3 N = left ? metal::float3(st, -(ct), 0.0) : metal::float3(0.0, 1.0, 0.0); float _e75 = phos.misc.z; if (_e75 > 0.5) { metal::float4 _e80 = phos.lightPos; metal::float3 toL = _e80.xyz - world_2; float d2_ = metal::dot(toL, toL); float ndl = metal::max(metal::dot(N, toL) * metal::rsqrt(metal::max(d2_, 0.00000001)), 0.0); float _e96 = phos.shadowA.w; if (_e96 > 0.5) { metal::float4x4 _e101 = phos.lightViewProj; metal::float4 _e104 = phos.shadowA; metal::float4 _e107 = phos.shadowB; metal::float4 _e112 = phos.lightPos; float _e114 = shadowVisibility(_e101, _e104, _e107, world_2, in.position.xy, _e112.xz, momentsTex, momentsSamp); vis = _e114; } float _e118 = phos.lightPos.w; float _e123 = phos.misc.w; float _e126 = vis; float _e131 = phos.rate.w; e = (((_e118 * ndl) / (d2_ + _e123)) * _e126) * _e131; } float _e136 = phos.rate.y; float _e137 = e; float k = _e136 * _e137; float _e142 = phos.rate.z; float r_1 = k + _e142; float ceq = (r_1 > 0.000001) ? (k / metal::max(r_1, 0.000001)) : 0.0; float _e151 = prev; float _e157 = phos.rate.x; c = ceq + ((_e151 - ceq) * metal::exp(-(r_1) * _e157)); float _e163 = c; c = metal::clamp(_e163, 0.0, 1.0); float _e172 = phos.misc.y; float _e178 = phos.misc.y; float _e183 = ign(in.position.xy + metal::float2(_e172 * 7.13, _e178 * 3.71)); if (packed) { float _e184 = c; float v_1 = metal::min(metal::floor((_e184 * 65535.0) + _e183), 65535.0); float hi_2 = metal::floor(v_1 / 256.0); float lo_2 = v_1 - (hi_2 * 256.0); return fs_mainOutput { metal::float4(hi_2 / 255.0, lo_2 / 255.0, 0.0, 1.0) }; } float _e204 = c; float ulp = metal::exp2(metal::floor(metal::log2(metal::max(_e204, 0.000062))) - 10.0); float _e212 = c; return fs_mainOutput { metal::float4(metal::max(_e212 + ((_e183 - 0.5) * ulp), 0.0), 0.0, 0.0, 1.0) }; }  °»®Ä momentsTex : register(t0); SamplerState momentsSamp : register(s0); Texture2D prevTex : register(t1); static float4 gl_FragCoord; static float4 _518; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _518 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float unpack16(float4 t) { return ((floor((t.x * 255.0f) + 0.5f) * 256.0f) + floor((t.y * 255.0f) + 0.5f)) * 1.525902189314365386962890625e-05f; } float shadowVisibility(float4x4 lvp, float4 sa, float4 sb, float3 world, float2 fragXY, float2 lightXZ) { float p = 0.0f; float4 _349 = mul(float4(world, 1.0f), lvp); float3 _353 = _349.xyz / float3(_349.www); float2 _360 = float2((_353.x * 0.5f) + 0.5f, 0.5f - (_353.y * 0.5f)); float _365 = (_349.w * sa.x) - sa.y; float2 _369 = momentsTex.SampleLevel(momentsSamp, _360, 0.0f).xy; float _375 = max(_369.y - (_369.x * _369.x), 1.9999999494757503271102905273438e-05f); float _377 = _365 - _369.x; p = _375 / (_375 + (_377 * _377)); p = clamp((p - sa.z) / (1.0f - sa.z), 0.0f, 1.0f); return lerp(1.0f, (_365 <= _369.x) ? 1.0f : p, (((step(0.0f, _360.x) * step(_360.x, 1.0f)) * step(0.0f, _360.y)) * step(_360.y, 1.0f)) * step(0.0f, _349.w)); } float ign(float2 p) { return frac(52.98291778564453125f * frac(dot(p, float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))); } void frag_main() { float e = 0.0f; float c = 0.0f; float prev = 0.0f; float vis = 1.0f; VsOut _514 = { gl_FragCoord }; int _546; spvTextureSize(prevTex, 0u, _546); int _548 = int(min(uint(0), uint(int(_546) - 1))); uint _549_dummy_parameter; float4 _553 = prevTex.Load(int3(int2(min(uint2(int2(clamp(_514.position.xy, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))), uint2(int2(spvTextureSize(prevTex, uint(_548), _549_dummy_parameter)) - int2(1, 1)))), _548)); bool _559 = phos_1_m0.misc.x > 0.5f; prev = _553.x; if (_559) { prev = unpack16(_553); } uint _564_dummy_parameter; float2 _568 = _514.position.xy / float2(spvTextureSize(prevTex, 0u, _564_dummy_parameter)); float _576 = phos_1_m0.rect.x + (_568.x * phos_1_m0.rect.z); float _583 = phos_1_m0.rect.y + (_568.y * phos_1_m0.rect.w); bool _584 = _576 < 0.0f; float3 _590 = float3(_576, 0.0f, _583); float3 _595 = float3((-_576) * phos_1_m0.pages.x, (-_576) * phos_1_m0.pages.y, _583); bool3 _597 = bool3(_584, _584, _584); float3 _596 = float3(_597.x ? _595.x : _590.x, _597.y ? _595.y : _590.y, _597.z ? _595.z : _590.z); float3 _599 = float3(phos_1_m0.pages.y, -phos_1_m0.pages.x, 0.0f); bool3 _601 = bool3(_584, _584, _584); if (phos_1_m0.misc.z > 0.5f) { float3 _610 = phos_1_m0.lightPos.xyz - _596; float _611 = dot(_610, _610); if (phos_1_m0.shadowA.w > 0.5f) { vis = shadowVisibility(phos_1_m0.lightViewProj, phos_1_m0.shadowA, phos_1_m0.shadowB, _596, _514.position.xy, phos_1_m0.lightPos.xz); } e = (((phos_1_m0.lightPos.w * max(dot(float3(_601.x ? _599.x : float3(0.0f, 1.0f, 0.0f).x, _601.y ? _599.y : float3(0.0f, 1.0f, 0.0f).y, _601.z ? _599.z : float3(0.0f, 1.0f, 0.0f).z), _610) * rsqrt(max(_611, 9.9999999392252902907785028219223e-09f)), 0.0f)) / (_611 + phos_1_m0.misc.w)) * vis) * phos_1_m0.rate.w; } float _652 = phos_1_m0.rate.y * e; float _655 = _652 + phos_1_m0.rate.z; float _659 = (_655 > 9.9999999747524270787835121154785e-07f) ? (_652 / max(_655, 9.9999999747524270787835121154785e-07f)) : 0.0f; c = _659 + ((prev - _659) * exp((-_655) * phos_1_m0.rate.x)); c = clamp(c, 0.0f, 1.0f); float _681 = ign(_514.position.xy + float2(phos_1_m0.misc.y * 7.13000011444091796875f, phos_1_m0.misc.y * 3.71000003814697265625f)); if (_559) { float _688 = min(floor((c * 65535.0f) + _681), 65535.0f); float _690 = floor(_688 / 256.0f); _518 = float4(_690 / 255.0f, (_688 - (_690 * 256.0f)) / 255.0f, 0.0f, 1.0f); return; } _518 = float4(max(c + ((_681 - 0.5f) * exp2(floor(log2(max(c, 6.1999999161344021558761596679688e-05f))) - 10.0f)), 0.0f), 0.0f, 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._518 = _518; return stage_output; }  °»®Ä,8777+9= ‡?+:.M;,;:::!G+HгY>+IY7?+J˜Ý“=,KHIJ!R+S?+T€>+U€?,VUUU+W«ªª>,XWWW!n+o f+p_ón<,qpp+r,srr u.v {+|+!¦+§€,¨§§+©+ª€3!¶ !Æ +ÇCq‰=+È�E¿;, ÉÇÈ+Ê‚îSB+Ó@@, ÔÓÓ+Õ@+Ö+×,ØÖ×,Ù×Ö,ÚÖÖ+âÏ, ãââ+äÿÿÿN, åää!ú +ûÀ@, üUU+/…ë?+0…ë@+1Í̈A+2ÍÌl@, 312+4áz”>+5q=‚@+6š™©@+733ïA, 867+9)\> ;.<! U  +X¬Å§7.Zn ! ž  +¡ @, ¢¡Ó+£ÛÉ@+¤333?+¥+¦+§, ¨ «º0,»||+¼ÿÿÿÿ,½¼¼!ñ +òC+ó€C+ô€€7 ;  ;!+ €¿,   , Ó ,  Ó,      .   +  % ;%$;' ) ,.U+/wÌ+2+0½7†5+1ö(ä@+2¤pm@+3ÿG+4ÿ‚8+5 A.7.;,EÖÖ I J+K+g+‡ � +’67øù)ø) *( Ž+*!�,*#Ž-,$ .-&¼/1*(©21+.þ286574ø3ù<ø< =(4 Ž>=6 ?=8Ž@?9ƒA@#¼/B=;©CB>AþC86FG7EøDùLøL”MEKþM86QR7O7PøNùYøYº0ZPS÷[úZ\[ø\Ž]OT ^+] V _^Xþ_ø[þO86cR7a7bø`ùdødº0ebS÷fúegføg…haa…ihaŽjiþjøfþa86mn7løk;utvùwøwPyoo„xly€zxq>tzA{}t|=~}A{€t=�€„‚�o€ƒ~‚A{„t|>„ƒA{…t=†…A{‡t|=ˆ‡„‰ˆo€І‰A{‹t>‹Š=Œt=�tÂŽ�sÆ�ŒŽ>t�A{�t|=‘�A{’t=“’„”“o€•‘”A{–t|>–•A{—t=˜—A{™t|=𙄛šo€œ˜›A{�t>�œ=žt=Ÿt ŸsÆ¡ž >t¡=¢tþ¢86¥¦7¤ø£ù«ø«€¬¤¨|­¬9®m­Q¯®Â°¯©p±°…²±ªþ²86 µ¶7´ø³ù·ø·€¸´¨|¹¸9ºm¹Q»ºÂ¼»©p½¼Q¾ºÂ¿¾©pÀ¿P Á½ÀŽ ÂÁªþÂ86ÅÆ7 ÄøÃùËøË”ÌÄÉ Í Ì…ÎÊÍ Ï ÎþÏ86ÒÆ7 ÑøÐùÛøÛ  Üу ÝÑÜ… ÞÝÝŽ ßÝÕƒ àÔß… áÞà  æ+Üãånçæ9è¥ç€éçØ9ê¥é€ëçÙ9ì¥ë€íçÚ9î¥íQïá ð.èêïQñá ò.ìîñQóá ô.ðòó…õôÕƒöõUþö86ùú7 øø÷ùýøý  þøƒ ÿøþ… ÿÿŽ ÿÕƒ Ô… Ž ÿûƒ üÿ…   +þãån9 ¥€ Ø9 ¥ € Ù9 ¥ €Ú9¥ƒ  ƒ  ƒ  ƒ �Q…� Q…�Q…Q…�Q …! �"!Q#…$#�%$P &"%… '&…(Õƒ)(UŽ *'ÕP+)*þ+86.Æ7 -ø,;;:<ù=ø=9>Ò-…?>/>:?=@:Ž A-0� BA39CÒB…DC4�E@D>:E=F:Ž G-5� HG89IÒH…JI9�KFJ>:K=L:þL86TU7 N7 O7 P7Q7 R7 SøM;;YZ= V=Wù[ø[P \QU‘ ]N\O^]]Q_]P`___ˆa^`Qba…cbS�dcSQea…feSƒgSfP hdgQi]QjO…kijQlOƒmklVnoVWX pohO qppQrqQsqQtq…ustƒvru w(vXQxqƒymx…zyy�{wzˆ|w{>Y|Q}O=~Yƒ~}ƒ€U}ˆ�€ ‚+�U>Y‚=ƒYQ„q¼0…m„©†…UƒQ‡h ˆ0‡Q‰h Š0‰U…‹ˆŠQŒh �0Œ…Ž‹�Q�h �0�U…‘Ž�Q’] “0’…”‘“ •.U†”þ•86�ž7 —7 ˜7 ™7š7 ›7œø–;;©;«ª×;u¾½= Ÿ= ù¬ø¬� ­›¢9®Å­…¯£® °¯…±°œ…²±¤ ³ ¯…´³œ…µ´¤ù¶ø¶ö·¹ù¿ø¿=À¾ªºÁ»À›0ÂÁ÷ÃúÂ·ÃøÃQÄÀª0ÅÄ|©ÆÅ|PÇÆ‚ÈÀÇ>¾Èù¸ø¸=ɪ±0ÊÉ¥÷ËúÊËÌøÌù·øËùÍøÍϵP ÐϲѲP ÒµÑ=Óªª0ÔÓ¦PºÖÔÔ© ÕÖÒÐP ײµØ²ÙµP ÚØÙ=Ûªª0ÜÛÖPºÞÜÜ© ÝÞÚ×=ߪ±0àß§Pºâàà© áâÝÕ=ã©QäáQåáPæäå�çšæ9 èT—˜™ç›¨�éãè>©éùÎøÎù¹ø¹=ꪀëêÖ>ªëù¶ø·=ì©…íìTþí86ðñ7 ïøîùõøõQöï…÷öò�ø÷S ùø…úùóQûï…üûò�ýüS þý�ÿúþ…ÿôþ86ø; ;=ùø &A= P UA|>=Q >A= ! >!ý86(ø";;8;;:;;;67;;9U= &$P#&A)*|= +=,= -ù<ø<Q =#O >==  ?+>ãån@?jA-‚BAÖ C&×BgD-C‚FDE G&@F_ H-GCAJL*K|=MLº0NMSQOH>6O÷PúNQPøQ9RðH>6RùPøPgS-|p TSQ U#O VUUˆ WVTAJX*|=YXQZWAJ[*=\[…]Z\�^Y]AJ_*=`_QaWAJb*=cb…dac�e`d¸0f^AJh*g|=ihAJj*g=kjPl^em^…nmio^…pokPqnpeP/sfff©rsqltiPuktP/wfff©vwu.AJx*K=yxº0zyS÷{úz|{ø|AI}*= ~}O~~ƒ€r”�€€”‚v€ ƒ(�/ „ ƒ……‚„ †(…AJˆ*‡=‰ˆº0ЉS÷‹úŠŒ‹øŒA�Ž*|= �ŽAI�*‡= ‘�AI“*’= ”“Q •#O –••AI—*= ˜—O ™˜˜9 šT�‘”r–™>9šù‹ø‹AJ›*=œ›…�œ†AJž*K=Ÿž� �Ÿˆ¡� =¢9…£¡¢AJ¤*=¥¤…¦£¥>8¦ù{ø{AJ§*=¨§=©8…ª¨©AJ«*=¬«�­ª¬ ®(­0ˆ¯ª®º0°­0©±°¯=²6ƒ³²±´­AJµ*|=¶µ…·´¶ ¸·…¹³¸�º±¹>:º=»: ¼+»U>:¼Q ½#O ¾½½AJ¿*K=À¿…ÁÀ1AJÂ*K=ÃÂ…ÄÃ2P ÅÁÄ� ƾÅ9ÇÅÆ÷ÈúNÉÈøÉ=Ê:…ËÊ3�ÌËÇ ÍÌ Î%Í3ˆÏÎó ÐÏ…ÑÐóƒÒÎшÓÐòˆÔÒòP ÕÓÔU>'ÕýøÈ=Ö: ×(Ö4 Ø× ÙØƒÚÙ5 ÛÚ=Ü:ƒÝÇS…ÞÝÛ�ßÜÞ à(ßP áàU>'áý8 °\;C]ìZ5—ÊË shaders/postjÔŒ­BTSR _>_>]¼>°[ lš]ɚ̚M›âQ ûì]Xí�C å0]B1 N3Wb ¥•] vs_mainvs_mainfs_mainfs_main4>struct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct Post { exposure: vec4, fx: vec4, misc: vec4, size: vec4, night: vec4, dither: vec4, veil: vec4, veilInk: vec4, veilRing: vec4, veilCold: vec4, veilShape: vec4, veilMore: vec4, } const HDR_RANGE: f32 = 4f; @group(0) @binding(0) var post: Post; @group(0) @binding(1) var sceneTex: texture_2d; @group(0) @binding(2) var bloomTex: texture_2d; @group(0) @binding(3) var linSamp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_3 = floor(p_1); let f = (p_1 - i_3); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_3); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_4 = floor(p_2); let f_1 = (p_2 - i_4); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_4); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g_1 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn inkFbm(p_4: vec2) -> f32 { var s_1: f32 = 0f; var a: f32 = 0.5f; var q: vec2; var i_2: i32 = 0i; q = p_4; loop { let _e8 = i_2; if (_e8 < 4i) { } else { break; } { let _e11 = s_1; let _e12 = a; let _e13 = q; let _e14 = vnoise(_e13); s_1 = (_e11 + (_e12 * _e14)); let _e17 = q; q = ((_e17 * 2.03f) + vec2(17.1f, 9.3f)); let _e24 = a; a = (_e24 * 0.5f); } continuing { let _e27 = i_2; i_2 = (_e27 + 1i); } } let _e30 = s_1; return ((_e30 * 0.5f) + 0.5f); } fn rrtOdtFit(v_1: vec3) -> vec3 { let a_1 = ((v_1 * (v_1 + vec3(0.0245786f))) - vec3(0.000090537f)); let b = ((v_1 * ((0.983729f * v_1) + vec3(0.432951f))) + vec3(0.238081f)); return (a_1 / b); } fn acesFitted(c_4: vec3) -> vec3 { let inMat = mat3x3(vec3(0.59719f, 0.076f, 0.0284f), vec3(0.35458f, 0.90834f, 0.13383f), vec3(0.04823f, 0.01566f, 0.83777f)); let outMat = mat3x3(vec3(1.60475f, -0.10208f, -0.00327f), vec3(-0.53108f, 1.10813f, -0.07276f), vec3(-0.07367f, -0.00605f, 1.07602f)); let _e28 = rrtOdtFit((inMat * c_4)); return clamp((outMat * _e28), vec3(0f), vec3(1f)); } fn grade(g0_: vec3, dread: f32, adapt: f32, lift: f32) -> vec3 { var g: vec3; g = g0_; let _e5 = g; let _e6 = luma(_e5); let sat = mix(1.08f, 0.5f, dread); let _e11 = g.x; let _e13 = g.y; let _e15 = g.z; let _e19 = g.x; let _e21 = g.y; let _e23 = g.z; let chroma = (max(_e11, max(_e13, _e15)) - min(_e19, min(_e21, _e23))); let keep = ((smoothstep(0.25f, 0.7f, chroma) * smoothstep(0.35f, 0.8f, _e6)) * 0.6f); let _e37 = g; g = mix(vec3(_e6), _e37, mix(sat, 1f, (keep * dread))); let wsh = (1f - smoothstep(0f, 0.55f, _e6)); let wmid = ((4f * _e6) * (1f - _e6)); let shadowTint = mix(vec3(1.05f, 0.99f, 0.92f), vec3(0.9f, 1.05f, 0.98f), dread); let midTint = mix(vec3(1f), vec3(0.955f, 1.035f, 0.94f), dread); let highTint = mix(vec3(1.02f, 1f, 0.97f), vec3(1f, 0.99f, 0.96f), dread); let _e77 = g; g = ((_e77 * mix(highTint, shadowTint, wsh)) * mix(vec3(1f), midTint, wmid)); let crush = ((0.04f * adapt) * (1f - lift)); let _e89 = g; g = (max((_e89 - vec3(crush)), vec3(0f)) / vec3((1f - crush))); let pivot = mix(0.42f, 0.34f, dread); let con = mix(1.03f, 1.05f, (dread * (1f - (0.7f * lift)))); let _e110 = g; g = clamp((((_e110 - vec3(pivot)) * con) + vec3(pivot)), vec3(0f), vec3(1f)); let _e121 = g; return _e121; } fn bayer8_(p_5: vec2) -> f32 { let x_2 = (u32(p_5.x) & 7u); let y = (u32(p_5.y) & 7u); let xy = (x_2 ^ y); let m = (((((((xy & 1u) << 5u) | ((y & 1u) << 4u)) | ((xy & 2u) << 2u)) | ((y & 2u) << 1u)) | ((xy & 4u) >> 1u)) | ((y & 4u) >> 2u)); return ((f32(m) + 0.5f) / 64f); } fn sampleScene(uv: vec2) -> vec3 { let _e3 = textureSample(sceneTex, linSamp, uv); let _e8 = post.misc.x; let _e9 = decodeHdr(_e3.xyz, _e8); return _e9; } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p_6 = pos[vi]; out.position = vec4(p_6, 0f, 1f); out.uv = vec2(((p_6.x * 0.5f) + 0.5f), (0.5f - (p_6.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { var scene: vec3; var hdr: vec3; var local: bool; var disp: vec3 = vec3(0f); var wb: vec3; var local_1: bool; let dread_1 = post.exposure.z; let uv_1 = in.uv; let dir = (uv_1 - vec2(0.5f)); let _e12 = post.size.w; let _e19 = post.size.w; let r2_ = dot((dir * vec2(_e12, 1f)), (dir * vec2(_e19, 1f))); let _e27 = post.fx.w; let caAmt = ((_e27 * smoothstep(0.55f, 1f, dread_1)) * 0.006f); let caOff = (dir * (caAmt * r2_)); let _e36 = sampleScene(uv_1); scene = _e36; let _e39 = sampleScene((uv_1 - caOff)); let sceneR = _e39.x; let _e42 = sampleScene((uv_1 + caOff)); let sceneB = _e42.z; let _e46 = textureSample(bloomTex, linSamp, uv_1); let _e51 = post.misc.x; let _e52 = decodeHdr(_e46.xyz, _e51); let _e56 = post.misc.y; let bloom = (_e52 * _e56); if (caAmt > 0f) { let _e61 = scene.y; scene = vec3(sceneR, _e61, sceneB); } let _e63 = scene; let _e67 = post.exposure.y; hdr = (_e63 + (bloom * _e67)); let view = post.misc.w; if (view > 3.5f) { local = (view < 4.5f); } else { local = false; } let _e82 = local; if _e82 { let _e86 = post.exposure.y; hdr = (bloom * _e86); } let _e88 = hdr; let _e92 = post.exposure.x; hdr = (_e88 * _e92); let _e100 = post.misc.z; if (_e100 > 0.5f) { let _e106 = post.fx.x; let gd = (dread_1 * _e106); wb = mix(vec3(1f, 0.985f, 0.95f), vec3(0.88f, 0.97f, 1.1f), gd); let _e118 = wb; let _e119 = wb; let _e120 = luma(_e119); wb = (_e118 / vec3(_e120)); let _e123 = hdr; let _e124 = wb; let _e126 = acesFitted((_e123 * _e124)); let _e127 = linearToSrgb(_e126); disp = _e127; } else { let _e130 = hdr; disp = pow((vec3(1f) - exp((-(_e130) * 1.35f))), vec3(0.45454547f)); } let _e142 = post.fx.x; if (_e142 > 0.5f) { let _e145 = disp; let _e149 = post.night.x; let _e153 = post.night.z; let _e154 = grade(_e145, dread_1, _e149, _e153); disp = _e154; } let _e158 = post.size.w; let vr = length(((dir * vec2(1f, (1f / _e158))) * vec2(1.25f, 1.55f))); let vig = smoothstep(0.35f, 1.05f, vr); let _e172 = disp; let _e176 = post.fx.z; disp = (_e172 * (1f - (((_e176 * mix(0.3f, 0.34f, dread_1)) * vig) * vig))); let _e189 = post.veil.z; let vc = clamp(_e189, 0f, 1f); let _e196 = post.veil.w; let dr = clamp(_e196, 0f, 1f); if !((vc > 0f)) { local_1 = (dr > 0f); } else { local_1 = true; } let _e208 = local_1; if _e208 { let _e212 = post.size.w; let k = vec2(_e212, 1f); let _e217 = post.veil; let c_5 = _e217.xy; if (dr > 0f) { let _e223 = post.veilRing; let ra = max(_e223.xy, vec2(0.001f)); let er = length(((uv_1 - c_5) / ra)); let keep_1 = exp((-(max((er - 1f), 0f)) * mix(0.04f, 0.5f, dr))); let _e241 = disp; let _e245 = post.veilRing.w; disp = (_e241 * (1f - ((_e245 * dr) * (1f - keep_1)))); let _e253 = disp; disp = (_e253 * (1f - ((0.45f * dr) * (1f - smoothstep(0.1f, 1f, er))))); let rr = ((er - 1f) / 0.14f); let ringI = exp((-(rr) * rr)); let haloI = exp((-(abs((er - 1f))) * 2.5f)); let live = (dr * (1f - vc)); let _e282 = disp; let _e283 = disp; let _e284 = luma(_e283); let _e287 = post.veilCold; disp = mix(_e282, ((_e284 * _e287.xyz) * 1.25f), clamp((((0.8f * ringI) + (0.3f * haloI)) * live), 0f, 1f)); let _e302 = disp; let _e305 = post.veilCold; let _e310 = post.veilRing.z; disp = (_e302 + (_e305.xyz * ((_e310 * ringI) * live))); } if (vc > 0f) { let o = (uv_1 - c_5); let side = vec2(select((1f - c_5.x), c_5.x, (o.x < 0f)), select((1f - c_5.y), c_5.y, (o.y < 0f))); let a_2 = (abs(o) / max(side, vec2(0.05f))); let d = sqrt(dot(a_2, a_2)); let amp = post.veilCold.w; let fe = post.veilShape.x; let vk = clamp((vc / 0.95f), 0f, 1f); let home = ((0.6f * ((3.5f * fe) + (0.95f * amp))) + 0.01f); let _e373 = post.veilShape.w; let rho = mix(-(home), ((1.42f + fe) + amp), ((1f - vk) / (1f + (max(_e373, 0f) * vk)))); let sc = clamp((rho / 0.4f), 0.6f, 1f); let _e389 = post.veilInk.w; let _e393 = post.veilShape.z; let t = (_e389 * _e393); let _e399 = post.veilShape.y; let q_1 = ((uv_1 * k) * _e399); let _e404 = inkFbm((q_1 + vec2(0f, t))); let _e414 = inkFbm(((q_1 + vec2(5.2f, 1.3f)) - vec2((0.8f * t), 0f))); let warp = vec2(_e404, _e414); let _e427 = inkFbm((((q_1 * 1.3f) + (warp * 2.2f)) + vec2((0.5f * t), (-0.3f * t)))); let big = (_e427 - 0.5f); let _e441 = inkFbm((((q_1 * 4.7f) + (warp * 3.1f)) - vec2((0.9f * t), (0.6f * t)))); let fine = (_e441 - 0.5f); let n_1 = ((big * 0.7f) + (fine * 0.3f)); let few = (fe * sc); let band = ((3.5f * fe) * sc); let edge = (rho + (((n_1 * amp) * sc) * 2f)); let into = (d - edge); let _e470 = inkFbm((((q_1 * 6.3f) - (warp * 1.7f)) + vec2((-0.7f * t), (0.4f * t)))); let depth = smoothstep(few, band, into); let thin = (1f - depth); let cover = clamp((smoothstep(-(few), few, into) * mix((0.3f + (0.5f * _e470)), 1f, depth)), 0f, 1f); let _e488 = post.veilInk; let ink = (_e488.xyz * (1f + (2f * thin))); let rc = (length((o * k)) / 0.1f); let _e502 = post.veilMore.x; let _e506 = disp; let _e507 = luma(_e506); let shine = ((clamp(_e502, 0f, 1f) * smoothstep(0.45f, 0.95f, _e507)) * exp((-(rc) * rc))); let _e516 = disp; disp = mix(_e516, ink, (cover * (1f - shine))); let we = (into / (few * 1.6f)); let _e524 = disp; let _e527 = post.veilCold; disp = (_e524 + (_e527.xyz * (((0.06f * exp((-(we) * we))) * (1f - cover)) * (1f - vk)))); } } let px = in.position.xy; let fr = post.size.z; let fi = (i32(fr) % 4096i); let _e554 = post.night.y; let cell = vec2(floor((px * max(_e554, 0.001f)))); let _e568 = hashCell2_((cell + vec2((fi * 131i), ((fi * 197i) + 913i)))); let _e579 = hashCell2_((cell + vec2(((fi * 173i) + 4091i), ((fi * 89i) + 2711i)))); let tri = ((_e568.x + _e568.y) - 1f); let chromaN = (vec3((_e579.x - 0.5f), 0f, (_e579.y - 0.5f)) * 0.35f); let _e595 = disp; let _e596 = luma(_e595); let mids = (0.35f + ((2.2f * _e596) * (1f - _e596))); let _e607 = post.fx.y; let amt = ((_e607 * mix(1f, 1.45f, dread_1)) * mids); let _e616 = post.dither.x; if (_e616 > 0.5f) { let _e619 = disp; let _e625 = post.dither.z; disp = (_e619 + ((vec3(tri) + chromaN) * (amt * _e625))); let _e632 = post.dither.y; let n_2 = (max(_e632, 2f) - 1f); let _e637 = bayer8_(px); let _e638 = disp; let c_6 = (pow(clamp(_e638, vec3(0f), vec3(1f)), vec3(0.5882353f)) * n_2); disp = pow((floor((c_6 + vec3(_e637))) / vec3(n_2)), vec3(1.7f)); let _e656 = disp; return vec4(clamp(_e656, vec3(0f), vec3(1f)), 1f); } let _e664 = disp; disp = (_e664 + ((vec3(tri) + chromaN) * amt)); let _e669 = disp; let _e676 = ign((px + vec2((fr * 5.3f), (fr * 1.7f)))); disp = (_e669 + vec3(((_e676 - 0.5f) / 255f))); let _e683 = disp; return vec4(clamp(_e683, vec3(0f), vec3(1f)), 1f); }  À°À—h“õWÊvs_mainmain9#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Post { vec4 exposure; vec4 fx; vec4 misc; vec4 size; vec4 night; vec4 dither; vec4 veil; vec4 veilInk; vec4 veilRing; vec4 veilCold; vec4 veilShape; vec4 veilMore; }; const float HDR_RANGE = 4.0; smooth out vec2 _vs2fs_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_3 = floor(p_1); vec2 f = (p_1 - i_3); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f_1 = (p_2 - i_4); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float inkFbm(vec2 p_4) { float s_1 = 0.0; float a = 0.5; vec2 q = vec2(0.0); int i_2 = 0; q = p_4; bool loop_init = true; while(true) { if (!loop_init) { int _e27 = i_2; i_2 = (_e27 + 1); } loop_init = false; int _e8 = i_2; if ((_e8 < 4)) { } else { break; } { float _e11 = s_1; float _e12 = a; vec2 _e13 = q; float _e14 = vnoise(_e13); s_1 = (_e11 + (_e12 * _e14)); vec2 _e17 = q; q = ((_e17 * 2.03) + vec2(17.1, 9.3)); float _e24 = a; a = (_e24 * 0.5); } } float _e30 = s_1; return ((_e30 * 0.5) + 0.5); } vec3 rrtOdtFit(vec3 v_1) { vec3 a_1 = ((v_1 * (v_1 + vec3(0.0245786))) - vec3(9.0537e-5)); vec3 b = ((v_1 * ((0.983729 * v_1) + vec3(0.432951))) + vec3(0.238081)); return (a_1 / b); } vec3 acesFitted(vec3 c_4) { mat3x3 inMat = mat3x3(vec3(0.59719, 0.076, 0.0284), vec3(0.35458, 0.90834, 0.13383), vec3(0.04823, 0.01566, 0.83777)); mat3x3 outMat = mat3x3(vec3(1.60475, -0.10208, -0.00327), vec3(-0.53108, 1.10813, -0.07276), vec3(-0.07367, -0.00605, 1.07602)); vec3 _e28 = rrtOdtFit((inMat * c_4)); return clamp((outMat * _e28), vec3(0.0), vec3(1.0)); } vec3 grade(vec3 g0_, float dread, float adapt, float lift) { vec3 g = vec3(0.0); g = g0_; vec3 _e5 = g; float _e6 = luma(_e5); float sat = mix(1.08, 0.5, dread); float _e11 = g.x; float _e13 = g.y; float _e15 = g.z; float _e19 = g.x; float _e21 = g.y; float _e23 = g.z; float chroma = (max(_e11, max(_e13, _e15)) - min(_e19, min(_e21, _e23))); float keep = ((smoothstep(0.25, 0.7, chroma) * smoothstep(0.35, 0.8, _e6)) * 0.6); vec3 _e37 = g; g = mix(vec3(_e6), _e37, mix(sat, 1.0, (keep * dread))); float wsh = (1.0 - smoothstep(0.0, 0.55, _e6)); float wmid = ((4.0 * _e6) * (1.0 - _e6)); vec3 shadowTint = mix(vec3(1.05, 0.99, 0.92), vec3(0.9, 1.05, 0.98), dread); vec3 midTint = mix(vec3(1.0), vec3(0.955, 1.035, 0.94), dread); vec3 highTint = mix(vec3(1.02, 1.0, 0.97), vec3(1.0, 0.99, 0.96), dread); vec3 _e77 = g; g = ((_e77 * mix(highTint, shadowTint, wsh)) * mix(vec3(1.0), midTint, wmid)); float crush = ((0.04 * adapt) * (1.0 - lift)); vec3 _e89 = g; g = (max((_e89 - vec3(crush)), vec3(0.0)) / vec3((1.0 - crush))); float pivot = mix(0.42, 0.34, dread); float con = mix(1.03, 1.05, (dread * (1.0 - (0.7 * lift)))); vec3 _e110 = g; g = clamp((((_e110 - vec3(pivot)) * con) + vec3(pivot)), vec3(0.0), vec3(1.0)); vec3 _e121 = g; return _e121; } float bayer8_(vec2 p_5) { uint x_2 = (uint(p_5.x) & 7u); uint y = (uint(p_5.y) & 7u); uint xy = (x_2 ^ y); uint m = (((((((xy & 1u) << 5u) | ((y & 1u) << 4u)) | ((xy & 2u) << 2u)) | ((y & 2u) << 1u)) | ((xy & 4u) >> 1u)) | ((y & 4u) >> 2u)); return ((float(m) + 0.5) / 64.0); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p_6 = pos[vi]; out_.position = vec4(p_6, 0.0, 1.0); out_.uv = vec2(((p_6.x * 0.5) + 0.5), (0.5 - (p_6.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainN?#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Post { vec4 exposure; vec4 fx; vec4 misc; vec4 size; vec4 night; vec4 dither; vec4 veil; vec4 veilInk; vec4 veilRing; vec4 veilCold; vec4 veilShape; vec4 veilMore; }; const float HDR_RANGE = 4.0; layout(std140) uniform Post_block_0Fragment { Post _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_3 = floor(p_1); vec2 f = (p_1 - i_3); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f_1 = (p_2 - i_4); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float inkFbm(vec2 p_4) { float s_1 = 0.0; float a = 0.5; vec2 q = vec2(0.0); int i_2 = 0; q = p_4; bool loop_init = true; while(true) { if (!loop_init) { int _e27 = i_2; i_2 = (_e27 + 1); } loop_init = false; int _e8 = i_2; if ((_e8 < 4)) { } else { break; } { float _e11 = s_1; float _e12 = a; vec2 _e13 = q; float _e14 = vnoise(_e13); s_1 = (_e11 + (_e12 * _e14)); vec2 _e17 = q; q = ((_e17 * 2.03) + vec2(17.1, 9.3)); float _e24 = a; a = (_e24 * 0.5); } } float _e30 = s_1; return ((_e30 * 0.5) + 0.5); } vec3 rrtOdtFit(vec3 v_1) { vec3 a_1 = ((v_1 * (v_1 + vec3(0.0245786))) - vec3(9.0537e-5)); vec3 b = ((v_1 * ((0.983729 * v_1) + vec3(0.432951))) + vec3(0.238081)); return (a_1 / b); } vec3 acesFitted(vec3 c_4) { mat3x3 inMat = mat3x3(vec3(0.59719, 0.076, 0.0284), vec3(0.35458, 0.90834, 0.13383), vec3(0.04823, 0.01566, 0.83777)); mat3x3 outMat = mat3x3(vec3(1.60475, -0.10208, -0.00327), vec3(-0.53108, 1.10813, -0.07276), vec3(-0.07367, -0.00605, 1.07602)); vec3 _e28 = rrtOdtFit((inMat * c_4)); return clamp((outMat * _e28), vec3(0.0), vec3(1.0)); } vec3 grade(vec3 g0_, float dread, float adapt, float lift) { vec3 g = vec3(0.0); g = g0_; vec3 _e5 = g; float _e6 = luma(_e5); float sat = mix(1.08, 0.5, dread); float _e11 = g.x; float _e13 = g.y; float _e15 = g.z; float _e19 = g.x; float _e21 = g.y; float _e23 = g.z; float chroma = (max(_e11, max(_e13, _e15)) - min(_e19, min(_e21, _e23))); float keep = ((smoothstep(0.25, 0.7, chroma) * smoothstep(0.35, 0.8, _e6)) * 0.6); vec3 _e37 = g; g = mix(vec3(_e6), _e37, mix(sat, 1.0, (keep * dread))); float wsh = (1.0 - smoothstep(0.0, 0.55, _e6)); float wmid = ((4.0 * _e6) * (1.0 - _e6)); vec3 shadowTint = mix(vec3(1.05, 0.99, 0.92), vec3(0.9, 1.05, 0.98), dread); vec3 midTint = mix(vec3(1.0), vec3(0.955, 1.035, 0.94), dread); vec3 highTint = mix(vec3(1.02, 1.0, 0.97), vec3(1.0, 0.99, 0.96), dread); vec3 _e77 = g; g = ((_e77 * mix(highTint, shadowTint, wsh)) * mix(vec3(1.0), midTint, wmid)); float crush = ((0.04 * adapt) * (1.0 - lift)); vec3 _e89 = g; g = (max((_e89 - vec3(crush)), vec3(0.0)) / vec3((1.0 - crush))); float pivot = mix(0.42, 0.34, dread); float con = mix(1.03, 1.05, (dread * (1.0 - (0.7 * lift)))); vec3 _e110 = g; g = clamp((((_e110 - vec3(pivot)) * con) + vec3(pivot)), vec3(0.0), vec3(1.0)); vec3 _e121 = g; return _e121; } float bayer8_(vec2 p_5) { uint x_2 = (uint(p_5.x) & 7u); uint y = (uint(p_5.y) & 7u); uint xy = (x_2 ^ y); uint m = (((((((xy & 1u) << 5u) | ((y & 1u) << 4u)) | ((xy & 2u) << 2u)) | ((y & 2u) << 1u)) | ((xy & 4u) >> 1u)) | ((y & 4u) >> 2u)); return ((float(m) + 0.5) / 64.0); } vec3 sampleScene(vec2 uv) { vec4 _e3 = texture(_group_0_binding_1_fs, vec2(uv)); float _e8 = _group_0_binding_0_fs.misc.x; vec3 _e9 = decodeHdr(_e3.xyz, _e8); return _e9; } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); vec3 scene = vec3(0.0); vec3 hdr = vec3(0.0); bool local = false; vec3 disp = vec3(0.0); vec3 wb = vec3(0.0); bool local_1 = false; float dread_1 = _group_0_binding_0_fs.exposure.z; vec2 uv_1 = in_.uv; vec2 dir = (uv_1 - vec2(0.5)); float _e12 = _group_0_binding_0_fs.size.w; float _e19 = _group_0_binding_0_fs.size.w; float r2_ = dot((dir * vec2(_e12, 1.0)), (dir * vec2(_e19, 1.0))); float _e27 = _group_0_binding_0_fs.fx.w; float caAmt = ((_e27 * smoothstep(0.55, 1.0, dread_1)) * 0.006); vec2 caOff = (dir * (caAmt * r2_)); vec3 _e36 = sampleScene(uv_1); scene = _e36; vec3 _e39 = sampleScene((uv_1 - caOff)); float sceneR = _e39.x; vec3 _e42 = sampleScene((uv_1 + caOff)); float sceneB = _e42.z; vec4 _e46 = texture(_group_0_binding_2_fs, vec2(uv_1)); float _e51 = _group_0_binding_0_fs.misc.x; vec3 _e52 = decodeHdr(_e46.xyz, _e51); float _e56 = _group_0_binding_0_fs.misc.y; vec3 bloom = (_e52 * _e56); if ((caAmt > 0.0)) { float _e61 = scene.y; scene = vec3(sceneR, _e61, sceneB); } vec3 _e63 = scene; float _e67 = _group_0_binding_0_fs.exposure.y; hdr = (_e63 + (bloom * _e67)); float view = _group_0_binding_0_fs.misc.w; if ((view > 3.5)) { local = (view < 4.5); } else { local = false; } bool _e82 = local; if (_e82) { float _e86 = _group_0_binding_0_fs.exposure.y; hdr = (bloom * _e86); } vec3 _e88 = hdr; float _e92 = _group_0_binding_0_fs.exposure.x; hdr = (_e88 * _e92); float _e100 = _group_0_binding_0_fs.misc.z; if ((_e100 > 0.5)) { float _e106 = _group_0_binding_0_fs.fx.x; float gd = (dread_1 * _e106); wb = mix(vec3(1.0, 0.985, 0.95), vec3(0.88, 0.97, 1.1), gd); vec3 _e118 = wb; vec3 _e119 = wb; float _e120 = luma(_e119); wb = (_e118 / vec3(_e120)); vec3 _e123 = hdr; vec3 _e124 = wb; vec3 _e126 = acesFitted((_e123 * _e124)); vec3 _e127 = linearToSrgb(_e126); disp = _e127; } else { vec3 _e130 = hdr; disp = pow((vec3(1.0) - exp((-(_e130) * 1.35))), vec3(0.45454547)); } float _e142 = _group_0_binding_0_fs.fx.x; if ((_e142 > 0.5)) { vec3 _e145 = disp; float _e149 = _group_0_binding_0_fs.night.x; float _e153 = _group_0_binding_0_fs.night.z; vec3 _e154 = grade(_e145, dread_1, _e149, _e153); disp = _e154; } float _e158 = _group_0_binding_0_fs.size.w; float vr = length(((dir * vec2(1.0, (1.0 / _e158))) * vec2(1.25, 1.55))); float vig = smoothstep(0.35, 1.05, vr); vec3 _e172 = disp; float _e176 = _group_0_binding_0_fs.fx.z; disp = (_e172 * (1.0 - (((_e176 * mix(0.3, 0.34, dread_1)) * vig) * vig))); float _e189 = _group_0_binding_0_fs.veil.z; float vc = clamp(_e189, 0.0, 1.0); float _e196 = _group_0_binding_0_fs.veil.w; float dr = clamp(_e196, 0.0, 1.0); if (!((vc > 0.0))) { local_1 = (dr > 0.0); } else { local_1 = true; } bool _e208 = local_1; if (_e208) { float _e212 = _group_0_binding_0_fs.size.w; vec2 k = vec2(_e212, 1.0); vec4 _e217 = _group_0_binding_0_fs.veil; vec2 c_5 = _e217.xy; if ((dr > 0.0)) { vec4 _e223 = _group_0_binding_0_fs.veilRing; vec2 ra = max(_e223.xy, vec2(0.001)); float er = length(((uv_1 - c_5) / ra)); float keep_1 = exp((-(max((er - 1.0), 0.0)) * mix(0.04, 0.5, dr))); vec3 _e241 = disp; float _e245 = _group_0_binding_0_fs.veilRing.w; disp = (_e241 * (1.0 - ((_e245 * dr) * (1.0 - keep_1)))); vec3 _e253 = disp; disp = (_e253 * (1.0 - ((0.45 * dr) * (1.0 - smoothstep(0.1, 1.0, er))))); float rr = ((er - 1.0) / 0.14); float ringI = exp((-(rr) * rr)); float haloI = exp((-(abs((er - 1.0))) * 2.5)); float live = (dr * (1.0 - vc)); vec3 _e282 = disp; vec3 _e283 = disp; float _e284 = luma(_e283); vec4 _e287 = _group_0_binding_0_fs.veilCold; disp = mix(_e282, ((_e284 * _e287.xyz) * 1.25), clamp((((0.8 * ringI) + (0.3 * haloI)) * live), 0.0, 1.0)); vec3 _e302 = disp; vec4 _e305 = _group_0_binding_0_fs.veilCold; float _e310 = _group_0_binding_0_fs.veilRing.z; disp = (_e302 + (_e305.xyz * ((_e310 * ringI) * live))); } if ((vc > 0.0)) { vec2 o = (uv_1 - c_5); vec2 side = vec2(((o.x < 0.0) ? c_5.x : (1.0 - c_5.x)), ((o.y < 0.0) ? c_5.y : (1.0 - c_5.y))); vec2 a_2 = (abs(o) / max(side, vec2(0.05))); float d = sqrt(dot(a_2, a_2)); float amp = _group_0_binding_0_fs.veilCold.w; float fe = _group_0_binding_0_fs.veilShape.x; float vk = clamp((vc / 0.95), 0.0, 1.0); float home = ((0.6 * ((3.5 * fe) + (0.95 * amp))) + 0.01); float _e373 = _group_0_binding_0_fs.veilShape.w; float rho = mix(-(home), ((1.42 + fe) + amp), ((1.0 - vk) / (1.0 + (max(_e373, 0.0) * vk)))); float sc = clamp((rho / 0.4), 0.6, 1.0); float _e389 = _group_0_binding_0_fs.veilInk.w; float _e393 = _group_0_binding_0_fs.veilShape.z; float t = (_e389 * _e393); float _e399 = _group_0_binding_0_fs.veilShape.y; vec2 q_1 = ((uv_1 * k) * _e399); float _e404 = inkFbm((q_1 + vec2(0.0, t))); float _e414 = inkFbm(((q_1 + vec2(5.2, 1.3)) - vec2((0.8 * t), 0.0))); vec2 warp = vec2(_e404, _e414); float _e427 = inkFbm((((q_1 * 1.3) + (warp * 2.2)) + vec2((0.5 * t), (-0.3 * t)))); float big = (_e427 - 0.5); float _e441 = inkFbm((((q_1 * 4.7) + (warp * 3.1)) - vec2((0.9 * t), (0.6 * t)))); float fine = (_e441 - 0.5); float n_1 = ((big * 0.7) + (fine * 0.3)); float few = (fe * sc); float band = ((3.5 * fe) * sc); float edge = (rho + (((n_1 * amp) * sc) * 2.0)); float into = (d - edge); float _e470 = inkFbm((((q_1 * 6.3) - (warp * 1.7)) + vec2((-0.7 * t), (0.4 * t)))); float depth = smoothstep(few, band, into); float thin = (1.0 - depth); float cover = clamp((smoothstep(-(few), few, into) * mix((0.3 + (0.5 * _e470)), 1.0, depth)), 0.0, 1.0); vec4 _e488 = _group_0_binding_0_fs.veilInk; vec3 ink = (_e488.xyz * (1.0 + (2.0 * thin))); float rc = (length((o * k)) / 0.1); float _e502 = _group_0_binding_0_fs.veilMore.x; vec3 _e506 = disp; float _e507 = luma(_e506); float shine = ((clamp(_e502, 0.0, 1.0) * smoothstep(0.45, 0.95, _e507)) * exp((-(rc) * rc))); vec3 _e516 = disp; disp = mix(_e516, ink, (cover * (1.0 - shine))); float we = (into / (few * 1.6)); vec3 _e524 = disp; vec4 _e527 = _group_0_binding_0_fs.veilCold; disp = (_e524 + (_e527.xyz * (((0.06 * exp((-(we) * we))) * (1.0 - cover)) * (1.0 - vk)))); } } vec2 px = in_.position.xy; float fr = _group_0_binding_0_fs.size.z; int fi = (int(fr) % 4096); float _e554 = _group_0_binding_0_fs.night.y; ivec2 cell = ivec2(floor((px * max(_e554, 0.001)))); vec2 _e568 = hashCell2_((cell + ivec2((fi * 131), ((fi * 197) + 913)))); vec2 _e579 = hashCell2_((cell + ivec2(((fi * 173) + 4091), ((fi * 89) + 2711)))); float tri = ((_e568.x + _e568.y) - 1.0); vec3 chromaN = (vec3((_e579.x - 0.5), 0.0, (_e579.y - 0.5)) * 0.35); vec3 _e595 = disp; float _e596 = luma(_e595); float mids = (0.35 + ((2.2 * _e596) * (1.0 - _e596))); float _e607 = _group_0_binding_0_fs.fx.y; float amt = ((_e607 * mix(1.0, 1.45, dread_1)) * mids); float _e616 = _group_0_binding_0_fs.dither.x; if ((_e616 > 0.5)) { vec3 _e619 = disp; float _e625 = _group_0_binding_0_fs.dither.z; disp = (_e619 + ((vec3(tri) + chromaN) * (amt * _e625))); float _e632 = _group_0_binding_0_fs.dither.y; float n_2 = (max(_e632, 2.0) - 1.0); float _e637 = bayer8_(px); vec3 _e638 = disp; vec3 c_6 = (pow(clamp(_e638, vec3(0.0), vec3(1.0)), vec3(0.5882353)) * n_2); disp = pow((floor((c_6 + vec3(_e637))) / vec3(n_2)), vec3(1.7)); vec3 _e656 = disp; _fs2p_location0 = vec4(clamp(_e656, vec3(0.0), vec3(1.0)), 1.0); return; } vec3 _e664 = disp; disp = (_e664 + ((vec3(tri) + chromaN) * amt)); vec3 _e669 = disp; float _e676 = ign((px + vec2((fr * 5.3), (fr * 1.7)))); disp = (_e669 + vec3(((_e676 - 0.5) / 255.0))); vec3 _e683 = disp; _fs2p_location0 = vec4(clamp(_e683, vec3(0.0), vec3(1.0)), 1.0); return; }  À_f^DÓ dPost_block_0Fragment_group_0_binding_2_fs_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_main·Q// language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_8 { metal::float2 inner[3]; }; struct Post { metal::float4 exposure; metal::float4 fx; metal::float4 misc; metal::float4 size; metal::float4 night; metal::float4 dither; metal::float4 veil; metal::float4 veilInk; metal::float4 veilRing; metal::float4 veilCold; metal::float4 veilShape; metal::float4 veilMore; }; constant float HDR_RANGE = 4.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_3 = metal::floor(p_1); metal::float2 f = p_1 - i_3; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_3); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_4 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_4; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_1 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g_1 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } float inkFbm( metal::float2 p_4 ) { float s_1 = 0.0; float a = 0.5; metal::float2 q = {}; int i_2 = 0; q = p_4; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e27 = i_2; i_2 = as_type(as_type(_e27) + as_type(1)); } loop_init = false; int _e8 = i_2; if (_e8 < 4) { } else { break; } { float _e11 = s_1; float _e12 = a; metal::float2 _e13 = q; float _e14 = vnoise(_e13); s_1 = _e11 + (_e12 * _e14); metal::float2 _e17 = q; q = (_e17 * 2.03) + metal::float2(17.1, 9.3); float _e24 = a; a = _e24 * 0.5; } } float _e30 = s_1; return (_e30 * 0.5) + 0.5; } metal::float3 rrtOdtFit( metal::float3 v_1 ) { metal::float3 a_1 = (v_1 * (v_1 + metal::float3(0.0245786))) - metal::float3(0.000090537); metal::float3 b = (v_1 * ((0.983729 * v_1) + metal::float3(0.432951))) + metal::float3(0.238081); return a_1 / b; } metal::float3 acesFitted( metal::float3 c_4 ) { metal::float3x3 inMat = metal::float3x3(metal::float3(0.59719, 0.076, 0.0284), metal::float3(0.35458, 0.90834, 0.13383), metal::float3(0.04823, 0.01566, 0.83777)); metal::float3x3 outMat = metal::float3x3(metal::float3(1.60475, -0.10208, -0.00327), metal::float3(-0.53108, 1.10813, -0.07276), metal::float3(-0.07367, -0.00605, 1.07602)); metal::float3 _e28 = rrtOdtFit(inMat * c_4); return metal::clamp(outMat * _e28, metal::float3(0.0), metal::float3(1.0)); } metal::float3 grade( metal::float3 g0_, float dread, float adapt, float lift ) { metal::float3 g = {}; g = g0_; metal::float3 _e5 = g; float _e6 = luma(_e5); float sat = metal::mix(1.08, 0.5, dread); float _e11 = g.x; float _e13 = g.y; float _e15 = g.z; float _e19 = g.x; float _e21 = g.y; float _e23 = g.z; float chroma = metal::max(_e11, metal::max(_e13, _e15)) - metal::min(_e19, metal::min(_e21, _e23)); float keep = (metal::smoothstep(0.25, 0.7, chroma) * metal::smoothstep(0.35, 0.8, _e6)) * 0.6; metal::float3 _e37 = g; g = metal::mix(metal::float3(_e6), _e37, metal::mix(sat, 1.0, keep * dread)); float wsh = 1.0 - metal::smoothstep(0.0, 0.55, _e6); float wmid = (4.0 * _e6) * (1.0 - _e6); metal::float3 shadowTint = metal::mix(metal::float3(1.05, 0.99, 0.92), metal::float3(0.9, 1.05, 0.98), dread); metal::float3 midTint = metal::mix(metal::float3(1.0), metal::float3(0.955, 1.035, 0.94), dread); metal::float3 highTint = metal::mix(metal::float3(1.02, 1.0, 0.97), metal::float3(1.0, 0.99, 0.96), dread); metal::float3 _e77 = g; g = (_e77 * metal::mix(highTint, shadowTint, wsh)) * metal::mix(metal::float3(1.0), midTint, wmid); float crush = (0.04 * adapt) * (1.0 - lift); metal::float3 _e89 = g; g = metal::max(_e89 - metal::float3(crush), metal::float3(0.0)) / metal::float3(1.0 - crush); float pivot = metal::mix(0.42, 0.34, dread); float con = metal::mix(1.03, 1.05, dread * (1.0 - (0.7 * lift))); metal::float3 _e110 = g; g = metal::clamp(((_e110 - metal::float3(pivot)) * con) + metal::float3(pivot), metal::float3(0.0), metal::float3(1.0)); metal::float3 _e121 = g; return _e121; } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } float bayer8_( metal::float2 p_5 ) { uint x_2 = naga_f2u32(p_5.x) & 7u; uint y = naga_f2u32(p_5.y) & 7u; uint xy = x_2 ^ y; uint m = ((((((xy & 1u) << 5u) | ((y & 1u) << 4u)) | ((xy & 2u) << 2u)) | ((y & 2u) << 1u)) | ((xy & 4u) >> 1u)) | ((y & 4u) >> 2u); return (static_cast(m) + 0.5) / 64.0; } metal::float3 sampleScene( metal::float2 uv, constant Post& post, metal::texture2d sceneTex, metal::sampler linSamp ) { metal::float4 _e3 = sceneTex.sample(linSamp, uv); float _e8 = post.misc.x; metal::float3 _e9 = decodeHdr(_e3.xyz, _e8); return _e9; } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_8 pos = type_8 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p_6 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p_6, 0.0, 1.0); out.uv = metal::float2((p_6.x * 0.5) + 0.5, 0.5 - (p_6.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } int naga_mod(int lhs, int rhs) { int divisor = metal::select(rhs, 1, (lhs == (-2147483647 - 1) & rhs == -1) | (rhs == 0)); return lhs - (lhs / divisor) * divisor; } struct fs_mainInput { metal::float2 uv_1 [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Post& post [[buffer(0)]] , metal::texture2d sceneTex [[texture(0)]] , metal::texture2d bloomTex [[texture(1)]] , metal::sampler linSamp [[sampler(0)]] ) { const FsOut in = { position, varyings_1.uv_1 }; metal::float3 scene = {}; metal::float3 hdr = {}; bool local = {}; metal::float3 disp = metal::float3(0.0); metal::float3 wb = {}; bool local_1 = {}; float dread_1 = post.exposure.z; metal::float2 uv_1 = in.uv; metal::float2 dir = uv_1 - metal::float2(0.5); float _e12 = post.size.w; float _e19 = post.size.w; float r2_ = metal::dot(dir * metal::float2(_e12, 1.0), dir * metal::float2(_e19, 1.0)); float _e27 = post.fx.w; float caAmt = (_e27 * metal::smoothstep(0.55, 1.0, dread_1)) * 0.006; metal::float2 caOff = dir * (caAmt * r2_); metal::float3 _e36 = sampleScene(uv_1, post, sceneTex, linSamp); scene = _e36; metal::float3 _e39 = sampleScene(uv_1 - caOff, post, sceneTex, linSamp); float sceneR = _e39.x; metal::float3 _e42 = sampleScene(uv_1 + caOff, post, sceneTex, linSamp); float sceneB = _e42.z; metal::float4 _e46 = bloomTex.sample(linSamp, uv_1); float _e51 = post.misc.x; metal::float3 _e52 = decodeHdr(_e46.xyz, _e51); float _e56 = post.misc.y; metal::float3 bloom = _e52 * _e56; if (caAmt > 0.0) { float _e61 = scene.y; scene = metal::float3(sceneR, _e61, sceneB); } metal::float3 _e63 = scene; float _e67 = post.exposure.y; hdr = _e63 + (bloom * _e67); float view = post.misc.w; if (view > 3.5) { local = view < 4.5; } else { local = false; } bool _e82 = local; if (_e82) { float _e86 = post.exposure.y; hdr = bloom * _e86; } metal::float3 _e88 = hdr; float _e92 = post.exposure.x; hdr = _e88 * _e92; float _e100 = post.misc.z; if (_e100 > 0.5) { float _e106 = post.fx.x; float gd = dread_1 * _e106; wb = metal::mix(metal::float3(1.0, 0.985, 0.95), metal::float3(0.88, 0.97, 1.1), gd); metal::float3 _e118 = wb; metal::float3 _e119 = wb; float _e120 = luma(_e119); wb = _e118 / metal::float3(_e120); metal::float3 _e123 = hdr; metal::float3 _e124 = wb; metal::float3 _e126 = acesFitted(_e123 * _e124); metal::float3 _e127 = linearToSrgb(_e126); disp = _e127; } else { metal::float3 _e130 = hdr; disp = metal::pow(metal::float3(1.0) - metal::exp(-(_e130) * 1.35), metal::float3(0.45454547)); } float _e142 = post.fx.x; if (_e142 > 0.5) { metal::float3 _e145 = disp; float _e149 = post.night.x; float _e153 = post.night.z; metal::float3 _e154 = grade(_e145, dread_1, _e149, _e153); disp = _e154; } float _e158 = post.size.w; float vr = metal::length((dir * metal::float2(1.0, 1.0 / _e158)) * metal::float2(1.25, 1.55)); float vig = metal::smoothstep(0.35, 1.05, vr); metal::float3 _e172 = disp; float _e176 = post.fx.z; disp = _e172 * (1.0 - (((_e176 * metal::mix(0.3, 0.34, dread_1)) * vig) * vig)); float _e189 = post.veil.z; float vc = metal::clamp(_e189, 0.0, 1.0); float _e196 = post.veil.w; float dr = metal::clamp(_e196, 0.0, 1.0); if (!((vc > 0.0))) { local_1 = dr > 0.0; } else { local_1 = true; } bool _e208 = local_1; if (_e208) { float _e212 = post.size.w; metal::float2 k = metal::float2(_e212, 1.0); metal::float4 _e217 = post.veil; metal::float2 c_5 = _e217.xy; if (dr > 0.0) { metal::float4 _e223 = post.veilRing; metal::float2 ra = metal::max(_e223.xy, metal::float2(0.001)); float er = metal::length((uv_1 - c_5) / ra); float keep_1 = metal::exp(-(metal::max(er - 1.0, 0.0)) * metal::mix(0.04, 0.5, dr)); metal::float3 _e241 = disp; float _e245 = post.veilRing.w; disp = _e241 * (1.0 - ((_e245 * dr) * (1.0 - keep_1))); metal::float3 _e253 = disp; disp = _e253 * (1.0 - ((0.45 * dr) * (1.0 - metal::smoothstep(0.1, 1.0, er)))); float rr = (er - 1.0) / 0.14; float ringI = metal::exp(-(rr) * rr); float haloI = metal::exp(-(metal::abs(er - 1.0)) * 2.5); float live = dr * (1.0 - vc); metal::float3 _e282 = disp; metal::float3 _e283 = disp; float _e284 = luma(_e283); metal::float4 _e287 = post.veilCold; disp = metal::mix(_e282, (_e284 * _e287.xyz) * 1.25, metal::clamp(((0.8 * ringI) + (0.3 * haloI)) * live, 0.0, 1.0)); metal::float3 _e302 = disp; metal::float4 _e305 = post.veilCold; float _e310 = post.veilRing.z; disp = _e302 + (_e305.xyz * ((_e310 * ringI) * live)); } if (vc > 0.0) { metal::float2 o = uv_1 - c_5; metal::float2 side = metal::float2((o.x < 0.0) ? c_5.x : (1.0 - c_5.x), (o.y < 0.0) ? c_5.y : (1.0 - c_5.y)); metal::float2 a_2 = metal::abs(o) / metal::max(side, metal::float2(0.05)); float d = metal::sqrt(metal::dot(a_2, a_2)); float amp = post.veilCold.w; float fe = post.veilShape.x; float vk = metal::clamp(vc / 0.95, 0.0, 1.0); float home = (0.6 * ((3.5 * fe) + (0.95 * amp))) + 0.01; float _e373 = post.veilShape.w; float rho = metal::mix(-(home), (1.42 + fe) + amp, (1.0 - vk) / (1.0 + (metal::max(_e373, 0.0) * vk))); float sc = metal::clamp(rho / 0.4, 0.6, 1.0); float _e389 = post.veilInk.w; float _e393 = post.veilShape.z; float t = _e389 * _e393; float _e399 = post.veilShape.y; metal::float2 q_1 = (uv_1 * k) * _e399; float _e404 = inkFbm(q_1 + metal::float2(0.0, t)); float _e414 = inkFbm((q_1 + metal::float2(5.2, 1.3)) - metal::float2(0.8 * t, 0.0)); metal::float2 warp = metal::float2(_e404, _e414); float _e427 = inkFbm(((q_1 * 1.3) + (warp * 2.2)) + metal::float2(0.5 * t, -0.3 * t)); float big = _e427 - 0.5; float _e441 = inkFbm(((q_1 * 4.7) + (warp * 3.1)) - metal::float2(0.9 * t, 0.6 * t)); float fine = _e441 - 0.5; float n_1 = (big * 0.7) + (fine * 0.3); float few = fe * sc; float band = (3.5 * fe) * sc; float edge = rho + (((n_1 * amp) * sc) * 2.0); float into = d - edge; float _e470 = inkFbm(((q_1 * 6.3) - (warp * 1.7)) + metal::float2(-0.7 * t, 0.4 * t)); float depth = metal::smoothstep(few, band, into); float thin = 1.0 - depth; float cover = metal::clamp(metal::smoothstep(-(few), few, into) * metal::mix(0.3 + (0.5 * _e470), 1.0, depth), 0.0, 1.0); metal::float4 _e488 = post.veilInk; metal::float3 ink = _e488.xyz * (1.0 + (2.0 * thin)); float rc = metal::length(o * k) / 0.1; float _e502 = post.veilMore.x; metal::float3 _e506 = disp; float _e507 = luma(_e506); float shine = (metal::clamp(_e502, 0.0, 1.0) * metal::smoothstep(0.45, 0.95, _e507)) * metal::exp(-(rc) * rc); metal::float3 _e516 = disp; disp = metal::mix(_e516, ink, cover * (1.0 - shine)); float we = into / (few * 1.6); metal::float3 _e524 = disp; metal::float4 _e527 = post.veilCold; disp = _e524 + (_e527.xyz * (((0.06 * metal::exp(-(we) * we)) * (1.0 - cover)) * (1.0 - vk))); } } metal::float2 px = in.position.xy; float fr = post.size.z; int fi = naga_mod(naga_f2i32(fr), 4096); float _e554 = post.night.y; metal::int2 cell = naga_f2i32(metal::floor(px * metal::max(_e554, 0.001))); metal::float2 _e568 = hashCell2_(as_type(as_type(cell) + as_type(metal::int2(as_type(as_type(fi) * as_type(131)), as_type(as_type(as_type(as_type(fi) * as_type(197))) + as_type(913)))))); metal::float2 _e579 = hashCell2_(as_type(as_type(cell) + as_type(metal::int2(as_type(as_type(as_type(as_type(fi) * as_type(173))) + as_type(4091)), as_type(as_type(as_type(as_type(fi) * as_type(89))) + as_type(2711)))))); float tri = (_e568.x + _e568.y) - 1.0; metal::float3 chromaN = metal::float3(_e579.x - 0.5, 0.0, _e579.y - 0.5) * 0.35; metal::float3 _e595 = disp; float _e596 = luma(_e595); float mids = 0.35 + ((2.2 * _e596) * (1.0 - _e596)); float _e607 = post.fx.y; float amt = (_e607 * metal::mix(1.0, 1.45, dread_1)) * mids; float _e616 = post.dither.x; if (_e616 > 0.5) { metal::float3 _e619 = disp; float _e625 = post.dither.z; disp = _e619 + ((metal::float3(tri) + chromaN) * (amt * _e625)); float _e632 = post.dither.y; float n_2 = metal::max(_e632, 2.0) - 1.0; float _e637 = bayer8_(px); metal::float3 _e638 = disp; metal::float3 c_6 = metal::pow(metal::clamp(_e638, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.5882353)) * n_2; disp = metal::pow(metal::floor(c_6 + metal::float3(_e637)) / metal::float3(n_2), metal::float3(1.7)); metal::float3 _e656 = disp; return fs_mainOutput { metal::float4(metal::clamp(_e656, metal::float3(0.0), metal::float3(1.0)), 1.0) }; } metal::float3 _e664 = disp; disp = _e664 + ((metal::float3(tri) + chromaN) * amt); metal::float3 _e669 = disp; float _e676 = ign(px + metal::float2(fr * 5.3, fr * 1.7)); disp = _e669 + metal::float3((_e676 - 0.5) / 255.0); metal::float3 _e683 = disp; return fs_mainOutput { metal::float4(metal::clamp(_e683, metal::float3(0.0), metal::float3(1.0)), 1.0) }; }  À_f^DÓ dvs_mainmainîstruct FsOut { float4 position; float2 uv; }; struct Post { float4 exposure; float4 fx; float4 misc; float4 size; float4 night; float4 dither; float4 veil; float4 veilInk; float4 veilRing; float4 veilCold; float4 veilShape; float4 veilMore; }; static const float2 _596[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _601 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _601; uint _603 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_596[_603], 0.0f, 1.0f); _out.uv = float2((_596[_603].x * 0.5f) + 0.5f, 0.5f - (_596[_603].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmainv>struct FsOut { float4 position; float2 uv; }; struct Post { float4 exposure; float4 fx; float4 misc; float4 size; float4 night; float4 dither; float4 veil; float4 veilInk; float4 veilRing; float4 veilCold; float4 veilShape; float4 veilMore; }; cbuffer post : register(b0) { Post post_1_m0 : packoffset(c0); }; Texture2D sceneTex : register(t0); Texture2D bloomTex : register(t1); SamplerState linSamp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _631; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _631 : SV_Target0; }; float3 decodeHdr(float3 e, float mode) { if (mode > 0.5f) { return ((e * e) * e) * 4.0f; } return e; } float3 sampleScene(float2 uv_1) { return decodeHdr(sceneTex.Sample(linSamp, uv_1).xyz, post_1_m0.misc.x); } float luma(float3 c) { return dot(c, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)); } float3 rrtOdtFit(float3 v) { return ((v * (v + float3(0.02457859925925731658935546875f, 0.02457859925925731658935546875f, 0.02457859925925731658935546875f))) - float3(9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f, 9.0537003416102379560470581054688e-05f)) / ((v * ((v * 0.98372900485992431640625f) + float3(0.4329510033130645751953125f, 0.4329510033130645751953125f, 0.4329510033130645751953125f))) + float3(0.23808099329471588134765625f, 0.23808099329471588134765625f, 0.23808099329471588134765625f)); } float3 acesFitted(float3 c) { return clamp(mul(rrtOdtFit(mul(c, float3x3(float3(0.59719002246856689453125f, 0.075999997556209564208984375f, 0.0284000001847743988037109375f), float3(0.354579985141754150390625f, 0.908339977264404296875f, 0.13382999598979949951171875f), float3(0.048229999840259552001953125f, 0.0156599991023540496826171875f, 0.837769985198974609375f)))), float3x3(float3(1.60475003719329833984375f, -0.10208000242710113525390625f, -0.00326999998651444911956787109375f), float3(-0.5310800075531005859375f, 1.108129978179931640625f, -0.07276000082492828369140625f), float3(-0.0736699998378753662109375f, -0.00604999996721744537353515625f, 1.0760200023651123046875f))), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)); } float3 linearToSrgb(float3 c) { float3 _61 = max(c, float3(0.0f, 0.0f, 0.0f)); float3 _62 = _61 * 12.9200000762939453125f; float3 _65 = (pow(_61, float3(0.4166666567325592041015625f, 0.4166666567325592041015625f, 0.4166666567325592041015625f)) * 1.05499994754791259765625f) - float3(0.054999999701976776123046875f, 0.054999999701976776123046875f, 0.054999999701976776123046875f); bool3 _66 = bool3(_61.x <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).x, _61.y <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).y, _61.z <= float3(0.003130800090730190277099609375f, 0.003130800090730190277099609375f, 0.003130800090730190277099609375f).z); return float3(_66.x ? _62.x : _65.x, _66.y ? _62.y : _65.y, _66.z ? _62.z : _65.z); } float3 grade(float3 g0, float dread, float adapt, float lift) { float3 g = float3(0.0f, 0.0f, 0.0f); g = g0; float _481 = luma(g); float _508 = lerp(lerp(1.08000004291534423828125f, 0.5f, dread), 1.0f, ((smoothstep(0.25f, 0.699999988079071044921875f, max(g.x, max(g.y, g.z)) - min(g.x, min(g.y, g.z))) * smoothstep(0.3499999940395355224609375f, 0.800000011920928955078125f, _481)) * 0.60000002384185791015625f) * dread); g = lerp(float3(_481, _481, _481), g, float3(_508, _508, _508)); float _512 = 1.0f - smoothstep(0.0f, 0.550000011920928955078125f, _481); float _515 = (4.0f * _481) * (1.0f - _481); g = (g * lerp(lerp(float3(1.019999980926513671875f, 1.0f, 0.9700000286102294921875f), float3(1.0f, 0.9900000095367431640625f, 0.959999978542327880859375f), float3(dread, dread, dread)), lerp(float3(1.0499999523162841796875f, 0.9900000095367431640625f, 0.920000016689300537109375f), float3(0.89999997615814208984375f, 1.0499999523162841796875f, 0.980000019073486328125f), float3(dread, dread, dread)), float3(_512, _512, _512))) * lerp(float3(1.0f, 1.0f, 1.0f), lerp(float3(1.0f, 1.0f, 1.0f), float3(0.954999983310699462890625f, 1.03499996662139892578125f, 0.939999997615814208984375f), float3(dread, dread, dread)), float3(_515, _515, _515)); float _531 = (0.039999999105930328369140625f * adapt) * (1.0f - lift); float _536 = 1.0f - _531; g = max(g - float3(_531, _531, _531), float3(0.0f, 0.0f, 0.0f)) / float3(_536, _536, _536); float _539 = lerp(0.4199999868869781494140625f, 0.3400000035762786865234375f, dread); g = clamp(((g - float3(_539, _539, _539)) * lerp(1.0299999713897705078125f, 1.0499999523162841796875f, dread * (1.0f - (0.699999988079071044921875f * lift)))) + float3(_539, _539, _539), float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)); return g; } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _220 = floor(p); float2 _221 = p - _220; float2 _225 = (_221 * _221) * (float2(3.0f, 3.0f) - (_221 * 2.0f)); int2 _231 = int2(clamp(_220, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_231), hashCell(_231 + int2(1, 0)), _225.x), lerp(hashCell(_231 + int2(0, 1)), hashCell(_231 + int2(1, 1)), _225.x), _225.y) * 2.0f) - 1.0f; } float inkFbm(float2 p) { float a = 0.5f; int i = 0; float s = 0.0f; float2 q = float2(0.0f, 0.0f); uint2 loop_bound = uint2(4294967295u, 4294967295u); q = p; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 4)) { break; } s += (a * vnoise(q)); q = (q * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 9.30000019073486328125f); a *= 0.5f; i++; continue; } return (s * 0.5f) + 0.5f; } int naga_mod(int lhs, int rhs) { int _619 = ((rhs == 0) || ((lhs == int(0x80000000)) && (rhs == (-1)))) ? 1 : rhs; return lhs - ((lhs / _619) * _619); } float2 hashCell2(int2 i) { uint2 _186 = hash2u(uint2(i + int2(32768, 32768))); return float2(float(_186.x >> 8u), float(_186.y >> 8u)) * 5.9604644775390625e-08f; } float bayer8(float2 p) { uint _568 = uint(clamp(p.y, 0.0f, 4294967040.0f)) & 7u; uint _569 = (uint(clamp(p.x, 0.0f, 4294967040.0f)) & 7u) ^ _568; return (float(((((((_569 & 1u) << 5u) | ((_568 & 1u) << 4u)) | ((_569 & 2u) << 2u)) | ((_568 & 2u) << 1u)) | ((_569 & 4u) >> 1u)) | ((_568 & 4u) >> 2u)) + 0.5f) / 64.0f; } float ign(float2 p) { return frac(52.98291778564453125f * frac(dot(p, float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))); } void frag_main() { float3 wb = float3(0.0f, 0.0f, 0.0f); float3 hdr = float3(0.0f, 0.0f, 0.0f); float3 disp = float3(0.0f, 0.0f, 0.0f); float3 scene = float3(0.0f, 0.0f, 0.0f); bool _703 = false; bool _697 = false; FsOut _624 = { gl_FragCoord, uv }; float2 _709 = _624.uv - float2(0.5f, 0.5f); float _723 = (post_1_m0.fx.w * smoothstep(0.550000011920928955078125f, 1.0f, post_1_m0.exposure.z)) * 0.006000000052154064178466796875f; float2 _725 = _709 * (_723 * dot(_709 * float2(post_1_m0.size.w, 1.0f), _709 * float2(post_1_m0.size.w, 1.0f))); scene = sampleScene(_624.uv); float3 _728 = sampleScene(_624.uv - _725); float3 _731 = sampleScene(_624.uv + _725); float3 _741 = decodeHdr(bloomTex.Sample(linSamp, _624.uv).xyz, post_1_m0.misc.x) * post_1_m0.misc.y; if (_723 > 0.0f) { scene = float3(_728.x, scene.y, _731.z); } hdr = scene + (_741 * post_1_m0.exposure.y); if (post_1_m0.misc.w > 3.5f) { _697 = post_1_m0.misc.w < 4.5f; } else { _697 = false; } if (_697) { hdr = _741 * post_1_m0.exposure.y; } hdr *= post_1_m0.exposure.x; if (post_1_m0.misc.z > 0.5f) { float _778 = post_1_m0.exposure.z * post_1_m0.fx.x; wb = lerp(float3(1.0f, 0.98500001430511474609375f, 0.949999988079071044921875f), float3(0.87999999523162841796875f, 0.9700000286102294921875f, 1.10000002384185791015625f), float3(_778, _778, _778)); float _783 = luma(wb); wb /= float3(_783, _783, _783); disp = linearToSrgb(acesFitted(hdr * wb)); } else { disp = pow(float3(1.0f, 1.0f, 1.0f) - exp((-hdr) * 1.35000002384185791015625f), float3(0.4545454680919647216796875f, 0.4545454680919647216796875f, 0.4545454680919647216796875f)); } if (post_1_m0.fx.x > 0.5f) { disp = grade(disp, post_1_m0.exposure.z, post_1_m0.night.x, post_1_m0.night.z); } float _815 = smoothstep(0.3499999940395355224609375f, 1.0499999523162841796875f, length((_709 * float2(1.0f, 1.0f / post_1_m0.size.w)) * float2(1.25f, 1.5499999523162841796875f))); disp *= (1.0f - (((post_1_m0.fx.z * lerp(0.300000011920928955078125f, 0.3400000035762786865234375f, post_1_m0.exposure.z)) * _815) * _815)); float _828 = clamp(post_1_m0.veil.z, 0.0f, 1.0f); float _831 = clamp(post_1_m0.veil.w, 0.0f, 1.0f); if (!(_828 > 0.0f)) { _703 = _831 > 0.0f; } else { _703 = true; } if (_703) { float2 _843 = float2(post_1_m0.size.w, 1.0f); if (_831 > 0.0f) { float _856 = length((_624.uv - post_1_m0.veil.xy) / max(post_1_m0.veilRing.xy, float2(0.001000000047497451305389404296875f, 0.001000000047497451305389404296875f))); disp *= (1.0f - ((post_1_m0.veilRing.w * _831) * (1.0f - exp((-max(_856 - 1.0f, 0.0f)) * lerp(0.039999999105930328369140625f, 0.5f, _831))))); disp *= (1.0f - ((0.449999988079071044921875f * _831) * (1.0f - smoothstep(0.100000001490116119384765625f, 1.0f, _856)))); float _879 = (_856 - 1.0f) / 0.14000000059604644775390625f; float _882 = exp((-_879) * _879); float _889 = _831 * (1.0f - _828); float _903 = clamp(((0.800000011920928955078125f * _882) + (0.300000011920928955078125f * exp((-abs(_856 - 1.0f)) * 2.5f))) * _889, 0.0f, 1.0f); disp = lerp(disp, (post_1_m0.veilCold.xyz * luma(disp)) * 1.25f, float3(_903, _903, _903)); disp += (post_1_m0.veilCold.xyz * ((post_1_m0.veilRing.z * _882) * _889)); } if (_828 > 0.0f) { float2 _919 = _624.uv - post_1_m0.veil.xy; float2 _935 = abs(_919) / max(float2((_919.x < 0.0f) ? post_1_m0.veil.xy.x : (1.0f - post_1_m0.veil.xy.x), (_919.y < 0.0f) ? post_1_m0.veil.xy.y : (1.0f - post_1_m0.veil.xy.y)), float2(0.0500000007450580596923828125f, 0.0500000007450580596923828125f)); float _944 = clamp(_828 / 0.949999988079071044921875f, 0.0f, 1.0f); float _960 = lerp(-((0.60000002384185791015625f * ((3.5f * post_1_m0.veilShape.x) + (0.949999988079071044921875f * post_1_m0.veilCold.w))) + 0.00999999977648258209228515625f), (1.41999995708465576171875f + post_1_m0.veilShape.x) + post_1_m0.veilCold.w, (1.0f - _944) / (1.0f + (max(post_1_m0.veilShape.w, 0.0f) * _944))); float _962 = clamp(_960 / 0.4000000059604644775390625f, 0.60000002384185791015625f, 1.0f); float _967 = post_1_m0.veilInk.w * post_1_m0.veilShape.z; float2 _971 = (_624.uv * _843) * post_1_m0.veilShape.y; float2 _980 = float2(inkFbm(_971 + float2(0.0f, _967)), inkFbm((_971 + float2(5.19999980926513671875f, 1.2999999523162841796875f)) - float2(0.800000011920928955078125f * _967, 0.0f))); float _1002 = post_1_m0.veilShape.x * _962; float _1009 = sqrt(dot(_935, _935)) - (_960 + ((((((inkFbm(((_971 * 1.2999999523162841796875f) + (_980 * 2.2000000476837158203125f)) + float2(0.5f * _967, (-0.300000011920928955078125f) * _967)) - 0.5f) * 0.699999988079071044921875f) + ((inkFbm(((_971 * 4.69999980926513671875f) + (_980 * 3.099999904632568359375f)) - float2(0.89999997615814208984375f * _967, 0.60000002384185791015625f * _967)) - 0.5f) * 0.300000011920928955078125f)) * post_1_m0.veilCold.w) * _962) * 2.0f)); float _1018 = smoothstep(_1002, (3.5f * post_1_m0.veilShape.x) * _962, _1009); float _1026 = clamp(smoothstep(-_1002, _1002, _1009) * lerp(0.300000011920928955078125f + (0.5f * inkFbm(((_971 * 6.30000019073486328125f) - (_980 * 1.7000000476837158203125f)) + float2((-0.699999988079071044921875f) * _967, 0.4000000059604644775390625f * _967))), 1.0f, _1018), 0.0f, 1.0f); float _1035 = length(_919 * _843) / 0.100000001490116119384765625f; float _1050 = _1026 * (1.0f - ((clamp(post_1_m0.veilMore.x, 0.0f, 1.0f) * smoothstep(0.449999988079071044921875f, 0.949999988079071044921875f, luma(disp))) * exp((-_1035) * _1035))); disp = lerp(disp, post_1_m0.veilInk.xyz * (1.0f + (2.0f * (1.0f - _1018))), float3(_1050, _1050, _1050)); float _1054 = _1009 / (_1002 * 1.60000002384185791015625f); disp += (post_1_m0.veilCold.xyz * (((0.0599999986588954925537109375f * exp((-_1054) * _1054)) * (1.0f - _1026)) * (1.0f - _944))); } } int _1075 = naga_mod(int(clamp(post_1_m0.size.z, -2147483648.0f, 2147483520.0f)), 4096); int2 _1082 = int2(clamp(floor(_624.position.xy * max(post_1_m0.night.y, 0.001000000047497451305389404296875f)), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); float2 _1088 = hashCell2(_1082 + int2(_1075 * 131, (_1075 * 197) + 913)); float2 _1095 = hashCell2(_1082 + int2((_1075 * 173) + 4091, (_1075 * 89) + 2711)); float _1099 = (_1088.x + _1088.y) - 1.0f; float3 _1105 = float3(_1095.x - 0.5f, 0.0f, _1095.y - 0.5f) * 0.3499999940395355224609375f; float _1107 = luma(disp); float _1116 = (post_1_m0.fx.y * lerp(1.0f, 1.4500000476837158203125f, post_1_m0.exposure.z)) * (0.3499999940395355224609375f + ((2.2000000476837158203125f * _1107) * (1.0f - _1107))); if (post_1_m0.dither.x > 0.5f) { disp += ((float3(_1099, _1099, _1099) + _1105) * (_1116 * post_1_m0.dither.z)); float _1133 = max(post_1_m0.dither.y, 2.0f) - 1.0f; float _1134 = bayer8(_624.position.xy); disp = pow(floor((pow(clamp(disp, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.588235318660736083984375f, 0.588235318660736083984375f, 0.588235318660736083984375f)) * _1133) + float3(_1134, _1134, _1134)) / float3(_1133, _1133, _1133), float3(1.7000000476837158203125f, 1.7000000476837158203125f, 1.7000000476837158203125f)); _631 = float4(clamp(disp, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), 1.0f); return; } disp += ((float3(_1099, _1099, _1099) + _1105) * _1116); float _1160 = (ign(_624.position.xy + float2(post_1_m0.size.z * 5.30000019073486328125f, post_1_m0.size.z * 1.7000000476837158203125f)) - 0.5f) / 255.0f; disp += float3(_1160, _1160, _1160); _631 = float4(clamp(disp, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._631 = _631; return stage_output; }  À_f^DÓ dHSLTPostÀ exposureÿÿÿÿfxÿÿÿÿmisc ÿÿÿÿsize0ÿÿÿÿnight@ÿÿÿÿditherPÿÿÿÿveil`ÿÿÿÿveilInkpÿÿÿÿveilRing€ÿÿÿÿveilCold�ÿÿÿÿ veilShape ÿÿÿÿveilMore°ÿÿÿÿ post_blockÀpostsceneTexÿÿÿÿbloomTexÿÿÿÿlinSampÿÿÿÿvs_mainvs_mainfs_mainfs_main,b#¶ GLSL.std.450gvs_main`ce¢fs_main›ž¡¢H #H #G H#H#H# H#0H#@H#PH#`H#pH#€H #�H # H #°G"G!GH#G"G!G"G!G"G!G` *Gc GeG› GžG¡      +    +€@ ; ;; ;!+ ,! +"‘ƒž=+#®Ga=,$###+%n§r?+&š™@,'&&&+(æ®%=,)(((0+6R¸NA+7UUÕ>,8777+9= ‡?+:.M;,;:::!G+HгY>+IY7?+J˜Ý“=,KHIJ!R+S?+T€>+U€?,VUUU+W«ªª>,XWWW!n+o f+p_ón<,qpp+r,srr u.v {+|+!¦+§€,¨§§+©+ª€3!¶ !Æ +ÇCq‰=+È�E¿;, ÉÇÈ+Ê‚îSB+Ó@@, ÔÓÓ+Õ@+Ö+×,ØÖ×,Ù×Ö,ÚÖÖ+âÏ, ãââ+äÿÿÿN, åää!ú +ûÀ@, üUU+/…ë?+0…ë@+1Í̈A+2ÍÌl@, 312+4áz”>+5q=‚@+6š™©@+733ïA, 867+9)\> ;.<+P+QÍÌA, R1Q V . W Y_,`||+aÿÿÿÿ,baa+‡YÉ<,ˆ‡‡‡+‰¯Þ½8,Љ‰‰+‹ªÕ{?+ŒÁ«Ý>,�ŒŒŒ+Ž�Ës>,�ŽŽŽ+œrá?+�㥛=+ž§è<,Ÿœ�ž+ ‚‹µ>+¡øˆh?+¢» >,£ ¡¢+¤ÒŒE=+¥fI€<+¦xV?,§¤¥¦,¨Ÿ£§+©shÍ?+ªRѽ+«MV»,¬©ª«+­Üô¿+®4×�?+¯2•½,°­®¯+±Là–½+²?Æ»+³»‰?,´±²³,µ¬°´!Á+Âq=Š?+Ã333?+Ä33³>+ÅÍÌL?+Æš™?+ÇÍÌ ?+Èff†?+ɤp}?+Ê…k?,ËÈÉÊ+Ìfff?+ÍHáz?,ÎÌÈÍ+Ïázt?+Ðáz„?+Ñ×£p?,ÒÏÐÑ+Ó\�‚?+ÔìQx?,ÕÓUÔ+Ö�Âu?,×UÉÖ+Ø ×#=+Ù= ×>+Ú{®>+Û ׃? Ý.Þ+ç+++,+-+.€B+1ÿÿO QV Z [ a;a` d ;dc f ;fe!h+i€¿, jii, kÓi, liÓ, mjkl o q . r w „!Š+�€+�ÿÿÿÿ œ ;œ› Ÿ ;Ÿž;d¡, §SS+¨¦›Ä;+©`@*ª+«�@+¬ö(|?+­33s?,®U¬­+¯®Ga?+°ÍÌŒ?,±¯Ô°+²Í̬?+³/ºè>,´³³³+µ ?+¶ffÆ?, ·µ¶+¸š™™>)¹+ºoƒ:, »ºº+¼ffæ>+½ÍÌÌ=+¾ @+¿ÍÌL=, À¿¿+Á ×#<+Â�µ?+ÃÍÌÌ>+Äff¦@+Åff¦?, ÆÄÅ+ÇÍÌ @+Èš™™¾+Éff–@+ÊffF@+Ëš™É@+Ìš™Ù?+Í333¿+ÎÍÌÌ?+Ï�Âu=+Ð+у+ÒÅ+Ó‘+Ô­+Õû+ÖY+×— +Øš™¹?+Ù—–?,ÚÙÙÙ,ÛÌÌÌ+ÜC.Þ.à â.ã.æ.è+a+¥ +Ô +4 67øù*ø* +(!Ž,+"�-+$Ž.-% /.'¼01+)©21,/þ286574ø3ù<ø< =(4!Ž>=6 ?=8Ž@?9ƒA@$¼0B=;©CB>AþC86FG7EøDùLøL”MEKþM86QR7O7PøNùYøYºZPS÷[úZ\[ø\Ž]OT ^+]!V _^Xþ_ø[þO86cR7a7bø`ùdødºebS÷fúegføg…haa…ihaŽjiþjøfþa86mn7løk;utvùwøwPyoo„xly€zxq>tzA{}t|=~}A{€t=�€„‚�o€ƒ~‚A{„t|>„ƒA{…t=†…A{‡t|=ˆ‡„‰ˆo€І‰A{‹t>‹Š=Œt=�tÂŽ�sÆ�ŒŽ>t�A{�t|=‘�A{’t=“’„”“o€•‘”A{–t|>–•A{—t=˜—A{™t|=𙄛šo€œ˜›A{�t>�œ=žt=Ÿt ŸsÆ¡ž >t¡=¢tþ¢86¥¦7¤ø£ù«ø«€¬¤¨|­¬9®m­Q¯®Â°¯©p±°…²±ªþ²86 µ¶7´ø³ù·ø·€¸´¨|¹¸9ºm¹Q»ºÂ¼»©p½¼Q¾ºÂ¿¾©pÀ¿P Á½ÀŽ ÂÁªþÂ86ÅÆ7 ÄøÃùËøË”ÌÄÉ Í Ì…ÎÊÍ Ï ÎþÏ86ÒÆ7 ÑøÐùÛøÛ  Üу ÝÑÜ… ÞÝÝŽ ßÝÕƒ àÔß… áÞà  æ+Üãånçæ9è¥ç€éçØ9ê¥é€ëçÙ9ì¥ë€íçÚ9î¥íQïá ð.èêïQñá ò.ìîñQóá ô.ðòó…õôÕƒöõUþö86ùú7 øø÷ùýøý  þøƒ ÿøþ… ÿÿŽ ÿÕƒ Ô… Ž ÿûƒ üÿ…   +þãån9 ¥€ Ø9 ¥ € Ù9 ¥ €Ú9¥ƒ  ƒ  ƒ  ƒ �Q…� Q…�Q…Q…�Q …! �"!Q#…$#�%$P &"%… '&…(Õƒ)(UŽ *'ÕP+)*þ+86.Æ7 -ø,;;:<ù=ø=9>Ò-…?>/>:?=@:Ž A-0� BA39CÒB…DC4�E@D>:E=F:Ž G-5� HG89IÒH…JI9�KFJ>:K=L:þL86OÆ7 NøM;;TS;YX×;;S ;VUW;ucbùZøZ>UNù[ø[ö\^ùdød=ecª_f`e›gf÷húg\høhQieªji|©kj|Plk‚mel>cmù]ø]=nX±onP÷púopqøqù\øpùrør=tS=uT= vU9wÒv…xuw�ytx>Sy= zUŽ {z0� |{R>U|=}T…~}S>T~ùsøsù^ø^=X€€Ö>X€ù[ø\=�S…‚�S�ƒ‚Sþƒ86†7…ø„ù�ø��‘…ˆ…’…‘ƒ“’ŠŽ”…‹�•”�…–…•�—–�ˆ˜“—þ˜86›7šø™ù¶ø¶‘·¨š9¸†·‘¹µ¸ º+¹!Vþº86ÀÁ7¼7½7¾7¿ø»;ÝÜÞùßøß>ܼ=àÜ9áFà â.ÂS½A;ãÜ|=äãA;åÜ=æåA;èÜç=éè ê(æé ë(äêA;ìÜ|=íìA;îÜ=ïîA;ðÜç=ñð ò%ïñ ó%íòƒôëó õ1TÃô ö1ÄÅá…÷õö…ø÷ÆPùááá=úÜ…ûø½ ü.âUûPþüüü ý.ùúþ>Üý ÿ1 ÇáƒUÿ…áƒUá…P½½½ .ËÎP½½½ .VÒP ½½½ .Õ× = ÜP   . …   P .V… >܅ؾƒU¿…=ÜPƒ (!ƒUPˆ>Ü .ÙÚ½…ÿƒU…½ .ÛÈ= ÜP!ƒ" !Ž#"P$�%#$ &+%!V>Ü&='Üþ'86*Æ7 )ø(ù/ø/Q0) 2+0 1m32Ç43+Q5) 6+5 1m76Ç87+Æ948Ç:9Ä;:,Ç<8Ä=<-Å>;=Ç?9çÄ@?çÅA>@ÇB8çÄCBÅDACÇE9-ÂFEÅGDFÇH8-ÂIHçÅJGIpKJ�LKSˆML.þM86Pú7 OøNAQR|=S=TùUøUVVWSTW XWOOYXXA[\Rç|=]\9^cY]þ^86ghø_;onm;qpr=b`ùsøs t&bçAVunt= vuP xv UAwyp|>yxQzv…{zS�|{SQ}v…~}SƒS~P €|AV�p>�€= ‚pQ ƒ‚>cƒA„…c=†…‡†>…‡Q ˆ‚>eˆý86‰Š7‹7Œø�ªŽŒת‘‹�ª’Œ�§“‘’¦”Ž“©•”ÖŒ‡–‹•„—–•‚˜‹—þ˜86¢hø™;Ýåæ;Ýßà;Ýä!;ÝÝÞ;âçè;âáã= �›=  žP š� AQ£|=¤=¥=¦ùéøéA[ê£|ç=ëêQ 욃 íì§A[î£ =ïîP ðïU… ñíðA[ò£ =óòP ôóU… õíô”öñõA[÷£ =ø÷ ù1ÇUë…úøù…ûú¨…üûöŽ ýíü9þPì>Ýþƒ ÿìý9PÿQ� ìý9PQVV¥¦W ìOA[£ç|= 9 c A[ £ç=  Ž   ºû ÷úøA;Ý=P>Ýùø=ÝA[£|=Ž �>ßA[£ç =º©÷úø¸«>áùø>áªùø= á÷!ú "!ø"A[#£|=$#Ž% $>ß%ù!ø!=&ßA['£||=('Ž)&(>ß)A[*£çç=+*º,+S÷-ú,./ø.A[0£|=10…2ë1P4222 3.®±4>å3=5å=6å97F6P8777ˆ958>å9=:ß=;å…<:;9=›<9>5=>ä>ù-ø/=?ß@?ŽA@² BAƒCVB DC´>äDù-ø-A[E£|=FEºGFS÷HúGIHøI=JäA[K£-|=LKA[M£-ç=NM9OÀJëLN>äOùHøHA[P£ =QPˆRUQP SUR… TíS… UT· VBU W1ÄÈV=XäA[Y£ç=ZY [.¸Úë…\Z[…]\W…^]Wƒ_U^Ž`X_>ä`A[b£aç=cb d+c UA[e£a =fe g+f Uºhd ¨ih÷júikløkºmg >çmùjøl>ç¹ùjøj=nç÷oúnpoøpA[q£ =rqP srUAZt£a= utO vuuºwg ÷xúwyxøyAZz£©= {zO |{{  }(|»ƒ ~ìvˆ ~} €Bƒ�€U ‚(� ƒ‚ „.ØSg……ƒ„ †…=‡äA[ˆ£© =‰ˆ…Љgƒ‹U†…ŒŠ‹ƒ�UŒŽŽ‡�>äŽ=�ä…�¼g ‘1½U€ƒ’U‘…“�’ƒ”U“Ž•�”>䕃–€Uˆ—–9˜—…™˜— š™ƒ›€U œ›�œ…ž�¾ Ÿžƒ Ud…¡g =¢ä=£ä9¤F£AZ¦£¥= §¦O¨§§Ž©¨¤Žª©µ…«Åš…¬¸Ÿ�­«¬…®­¡ ¯+® UP±¯¯¯ °.¢ª±>ä°=²äAZ³£¥= ´³Oµ´´A[¶£©ç=·¶…¸·š…¹¸¡Žºµ¹�»²º>ä»ùxøxº¼d ÷½ú¼¾½ø¾ƒ ¿ìvQÀvƒÁUÀQÂvQÿ¸Äà ©ÅÄÂÁQÆvƒÇUÆQÈvQÉ¿¸ÊÉ ©ËÊÈÇP ÌÅË  Í¿  Î(ÌÀˆ ÏÍΔÐÏÏ ÑÐA[Ò£¥ =ÓÒA[Õ£Ô|=ÖÕˆ×d­ Ø+× U…Ù©Ö…Ú­Ó�ÛÙÚ…ÜÆÛ�ÝÜÁÞÝ�ßÂÖ�àßÓƒáUØA[â£Ô =ãâ ä(ã …åäØ�æUåˆçáæ è.Þàçˆéèà ê+éÆUA[ë£+ =ìëA[í£Ôç=îí…ïìî… ðìsA[ñ£Ô=òñŽ óðòP ô ï� õóô9öOõ� ÷óÆ…øÅïP ùø ƒ ú÷ù9ûOúP üöûŽ ýóÅŽ þüÇ� ÿýþ…Sï…ÈïP � ÿ9OƒSŽ óÉŽ üÊ� … Ìï… ÆïP   ƒ  9 O ƒ S…Ã…¸�…Öê…©Ö…ê…Ó…ê…Õ�èƒÑŽ óËŽ ü̃ …Íï…ÃïP � 9!O  "1ƒ#U"$ %1$…&S!�'¸& (.'U"…)%( *+) UAZ+£+= ,+O-,,….Õ#�/U.Ž0-/… 1¿s 2B1ˆ32½A[5£4|=65 7+6 U=8ä99F8 :1¼­9…;7:<3…=<3 >=…?;>=@äƒAU?…B*APDBBB C.@0D>äC…EΈFE=GäAZH£¥= IHOJIIKF…LKF ML…NÏMƒOU*…PNOƒQUØ…RPQŽSJR�TGS>äTù½ø½ùoøoQ UšO VUUA[W£ ç=XW Y+XâänZY9[‰ZÐA[\£-=]\ ^(]ºŽ _V^  `_  a+`ãånba„c[Ñ„d[Ò€edÓPfce€gbf9 hµg„i[Ô€jiÕ„k[Ö€lk×Pmjl€nbm9 oµnQphQqh�rpqƒsrUQtoƒutSQvoƒwvSPxu wŽyxÄ=zä9{Fz…|Ç{ƒ}U{…~|}�Ä~A[€£=�€ ‚.UØë…ƒ�‚…„ƒA[…£,|=†…º‡†S÷ˆú‡‰ˆø‰=ŠäP‹sss�Œ‹yA[�£,ç=Ž�…�„ŽŽ�Œ��‘Š�>ä‘A[’£,=“’ ”(“Õƒ•”U9–*V=—ä ˜+—!V ™˜ÚŽš™•P›–––�œš› �œPž•••ˆŸ�ž  ŸÛ>ä =¡ä ¢+¡!VP £¢U>¡£ýøˆ=¤äP¥sss�¦¥yާ¦„�¨¤§>ä¨=©ä…ªX6…«XÌP ¬ª«� ­V¬9®Å­ƒ¯®Sˆ°¯ÜP±°°°�²©±>ä²=³ä ´+³!VP µ´U>¡µý8 À°À—h“õWÊÊË shaders/roomjÔ³‹%BTSR l�l�'“�¥A 8Ò'_ÒyÒ•ÒðÊ …�'¬�ß± ‹O'²OÃSKñ E 'vs_mainvs_mainfs_mainfs_mainA�struct Taper { R0_: f32, R1_: f32, L: f32, seed: f32, burn: f32, drip: f32, span: f32, rho: f32, dc: f32, } struct Drip { ang: f32, born: f32, len: f32, w: f32, th: f32, } struct TaperV { pos: vec3, nrm: vec3, info: vec3, } struct Frame { viewProj: mat4x4, eye: vec4, light: vec4, lightColor: vec4, roomLight: vec4, moonTravel: vec4, moonColor: vec4, ambient: vec4, win: vec4, win2_: vec4, haze: vec4, glow: vec4, shaft: vec4, desk: vec4, deskY: vec4, book: vec4, room: vec4, highlight: vec4, misc: vec4, discs: array, 12>, hall: vec4, hall2_: vec4, hall3_: vec4, hall4_: vec4, candlePos: array, 8>, candleFx: array, 8>, pool: vec4, poolColor: vec4, door0_: vec4, door1_: vec4, } struct VsIn { @location(0) pos: vec3, @location(1) nrm: vec3, @location(2) m0_: vec4, @location(3) m1_: vec4, @location(4) m2_: vec4, @location(5) m3_: vec4, @location(6) color: vec4, @location(7) params: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) world: vec3, @location(1) normal: vec3, @location(2) local: vec3, @location(3) lnrm: vec3, @location(4) @interpolate(flat) color: vec4, @location(5) @interpolate(flat) params: vec4, @location(6) @interpolate(flat) size: vec4, @location(7) @interpolate(flat) ax: vec4, @location(8) @interpolate(flat) ay: vec4, } struct Surf { albedo: vec3, spec: vec3, power: f32, emit: vec3, N: vec3, ao: f32, sheen: f32, alpha: f32, wrap: f32, moonShade: f32, } struct OwnFlame { pos: vec3, level: f32, } const HDR_RANGE: f32 = 4f; const HAZE_START: f32 = 2.8f; const MAT_WOOD: f32 = 0f; const MAT_BOOK: f32 = 1f; const MAT_BRASS: f32 = 2f; const MAT_PAPER: f32 = 3f; const MAT_GLASS: f32 = 4f; const MAT_WAX: f32 = 5f; const MAT_FABRIC: f32 = 6f; const MAT_PLASTER: f32 = 7f; const MAT_FLOOR: f32 = 8f; const MAT_PANEL: f32 = 9f; const MAT_IRON: f32 = 10f; const MAT_GLOBE: f32 = 11f; const MAT_DIAL: f32 = 12f; const MAT_INK: f32 = 13f; const MAT_DARK: f32 = 14f; const MAT_WEB: f32 = 15f; const MAT_LEATHER: f32 = 16f; const MAT_EMIT: f32 = 17f; const MAT_CURTAIN: f32 = 18f; const MAT_HALL_WINDOW: f32 = 19f; const MAT_CANDLE_FLAME: f32 = 20f; const MAT_CANDLE_SMOKE: f32 = 21f; const MAT_CANDLE_EMBER: f32 = 22f; const MAT_TAPER: f32 = 30f; const MAT_CMETAL: f32 = 31f; const MAT_CWAX: f32 = 32f; const LANTERN_WARM: vec3 = vec3(1f, 0.6f, 0.28f); const HALL_COLD: vec3 = vec3(0.34f, 0.42f, 0.62f); const DIAL_FLOOR: f32 = 0.025f; const SHAFT_KNEE: f32 = 0.8f; const LANTERN_AIR: f32 = 0.012f; const LANTERN_AIR_SOFT: f32 = 0.3f; const GAP_AIR: f32 = 0.018f; const GAP_AIR_SOFT: f32 = 0.5f; const NEAR_I: f32 = 0.46f; const NEAR_S2_: f32 = 0.0484f; const NEAR_COLOR: vec3 = vec3(1f, 0.64f, 0.33f); const WAX_NEAR: f32 = 0.75f; const WAX_FAR: f32 = 0.1f; const WAX_EDGE: f32 = 0.08f; const WAX_LIP: f32 = 0.7f; const WAX_POOL: f32 = 0.6f; const WAX_BOUNCE: f32 = 0.05f; const WAX_BOUNCE_POOL: f32 = 0.022f; @group(0) @binding(0) var frame: Frame; fn srgbToLinear(c: vec3) -> vec3 { let x_2 = max(c, vec3(0f)); let lo = (x_2 * 0.07739938f); let hi = pow(((x_2 + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x_2 <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_3 = max(c_1, vec3(0f)); let lo_1 = (x_3 * 12.92f); let hi_1 = ((1.055f * pow(x_3, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_3 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v_1: vec2) -> vec2 { var w: vec2; w = ((v_1 * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_10 = floor(p_1); let f_2 = (p_1 - i_10); let u_2 = ((f_2 * f_2) * (vec2(3f) - (2f * f_2))); let ii = vec2(i_10); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u_2.x), mix(_e21, _e26, u_2.x), u_2.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_11 = floor(p_2); let f_3 = (p_2 - i_11); let u_3 = ((f_3 * f_3) * (vec2(3f) - (2f * f_3))); let du = ((6f * f_3) * (vec2(1f) - f_3)); let ii_1 = vec2(i_11); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n_9 = (((_e17 + (k1_ * u_3.x)) + (k2_ * u_3.y)) + ((k4_ * u_3.x) * u_3.y)); let g_3 = (du * vec2((k1_ + (k4_ * u_3.y)), (k2_ + (k4_ * u_3.x)))); return vec3(((n_9 * 2f) - 1f), (g_3 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s_1: f32; let _e1 = vnoise(p_3); s_1 = (_e1 * 0.57f); let _e5 = s_1; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s_1 = (_e5 + (_e12 * 0.29f)); let _e16 = s_1; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s_1 = (_e16 + (_e23 * 0.14f)); let _e27 = s_1; return _e27; } fn pointGlow(eye: vec3, dir: vec3, dist: f32, light: vec3, s2_: f32) -> f32 { let toL_1 = (light - eye); let t0_ = dot(toL_1, dir); let h2_ = max((dot(toL_1, toL_1) - (t0_ * t0_)), 0f); let k_1 = sqrt((h2_ + max(s2_, 0.000001f))); return ((atan(((dist - t0_) / k_1)) + atan((t0_ / k_1))) / k_1); } fn atmosphere(col: vec3, world_1: vec3, eye_1: vec3, light_1: vec3, haze: vec4, glow: vec4) -> vec3 { let dv = (world_1 - eye_1); let dist_3 = length(dv); let dir_2 = (dv / vec3(max(dist_3, 0.00001f))); let T = exp((-(haze.w) * max((dist_3 - HAZE_START), 0f))); let _e21 = pointGlow(eye_1, dir_2, dist_3, light_1, glow.w); return (((col * T) + (haze.xyz * (1f - T))) + (glow.xyz * _e21)); } fn windowMask(q: vec2, win: vec4, win2_: vec4, soft: f32, lattice: f32) -> f32 { var local_40: bool; var local_41: bool; var local_42: bool; var bars: f32; let x0_ = win.x; let x1_ = win.y; let sill = win.z; let spring = win.w; let r_2 = ((x1_ - x0_) * 0.5f); let cx = (x0_ + r_2); let s_5 = max(soft, 0.0001f); if !((q.x < (x0_ - s_5))) { local_40 = (q.x > (x1_ + s_5)); } else { local_40 = true; } let _e25 = local_40; if !(_e25) { local_41 = (q.y < (sill - s_5)); } else { local_41 = true; } let _e33 = local_41; if !(_e33) { local_42 = (q.y > ((spring + r_2) + s_5)); } else { local_42 = true; } let _e42 = local_42; if _e42 { return 0f; } let inRect = (smoothstep(-(s_5), s_5, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_5), s_5, (q.y - sill))); let dArch = (r_2 - length((q - vec2(cx, spring)))); let inArch = smoothstep(-(s_5), s_5, dArch); let open_1 = (inRect * select(inArch, 1f, (q.y < spring))); let bw = win2_.y; bars = (1f - smoothstep((bw - s_5), (bw + s_5), abs((q.x - cx)))); let ty = ((q.y - sill) / win2_.z); let tf = (abs((fract((ty + 0.5f)) - 0.5f)) * win2_.z); let _e89 = bars; bars = max(_e89, ((1f - smoothstep(((bw * 0.8f) - s_5), ((bw * 0.8f) + s_5), tf)) * step(q.y, spring))); let a_2 = atan2((q.y - spring), (q.x - cx)); let spoke = ((abs((fract(((a_2 / 0.7853982f) + 0.5f)) - 0.5f)) * 0.7853982f) * length((q - vec2(cx, spring)))); let _e122 = bars; bars = max(_e122, ((1f - smoothstep(((bw * 0.7f) - s_5), ((bw * 0.7f) + s_5), spoke)) * step(spring, q.y))); if (lattice > 0.5f) { let fade = (1f - smoothstep(0.02f, 0.09f, s_5)); let dq = (q * 2.6f); let l1_ = (abs((fract((((dq.x + dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let l2_ = (abs((fract((((dq.x - dq.y) * 0.5f) + 0.5f)) - 0.5f)) / 1.3f); let _e172 = bars; bars = max(_e172, (((1f - smoothstep((0.012f - s_5), (0.012f + s_5), min(l1_, l2_))) * fade) * 0.85f)); } let _e183 = bars; return (open_1 * (1f - _e183)); } fn backProject(p_4: vec3, d: vec3, planeZ: f32) -> vec3 { let s_6 = ((p_4.z - planeZ) / max(d.z, 0.0001f)); return vec3((p_4.xy - (d.xy * s_6)), s_6); } fn moonPatch(p_5: vec3, d_1: vec3, win_1: vec4, win2_1: vec4) -> f32 { if (p_5.z < win2_1.x) { return 0f; } let _e9 = backProject(p_5, d_1, win2_1.x); let _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006f + (_e9.z * 0.011f)), 1f); return _e17; } fn hgPhase(cosT: f32, g_1: f32) -> f32 { let gg = (g_1 * g_1); return ((1f - gg) / pow(max(((1f + gg) - ((2f * g_1) * cosT)), 0.0001f), 1.5f)); } fn shaftScatter(eye_2: vec3, dir_1: vec3, dist_1: f32, d_2: vec3, win_2: vec4, win2_2: vec4, jitter: f32, top: f32) -> f32 { var ta: f32 = 0f; var tb: f32; var sum: f32 = 0f; var i_2: i32 = 0i; let zw = win2_2.x; let invdz = (1f / max(d_2.z, 0.0001f)); let qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); let qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if (dir_1.z < 0f) { let _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if (dir_1.y < 0f) { let _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } let lo_2 = vec2(win_2.x, win_2.z); let hi_2 = vec2(win_2.y, top); let inv = (vec2(1f) / select(qd, vec2(0.000001f), (abs(qd) < vec2(0.000001f)))); let t1_ = ((lo_2 - qa) * inv); let t2_ = ((hi_2 - qa) * inv); let tmin = min(t1_, t2_); let tmax = max(t1_, t2_); let _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); let _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); let _e80 = tb; let _e81 = ta; if (_e80 <= _e81) { return 0f; } let _e84 = tb; let _e85 = ta; let dt = ((_e84 - _e85) / 5f); loop { let _e93 = i_2; if (_e93 < 5i) { } else { break; } { let _e96 = ta; let _e97 = i_2; let t_11 = (_e96 + ((f32(_e97) + jitter) * dt)); let q_4 = (qa + (t_11 * qd)); let s_7 = (((eye_2.z + (t_11 * dir_1.z)) - zw) * invdz); let _e110 = sum; let _e116 = windowMask(q_4, win_2, win2_2, (0.008f + (s_7 * 0.003f)), 0f); sum = (_e110 + (_e116 * exp((-(s_7) * 0.035f)))); } continuing { let _e123 = i_2; i_2 = (_e123 + 1i); } } let _e126 = ta; let _e127 = tb; let qm = (qa + (((_e126 + _e127) * 0.5f) * qd)); let _e141 = vnoise(((qm * vec2(3.1f, 0.9f)) + vec2(7.1f, 3.3f))); let _e146 = vnoise((qm * vec2(9f, 2.2f))); let dust = (0.45f + (0.55f * smoothstep(-0.6f, 0.8f, (_e141 + (0.5f * _e146))))); let _e157 = sum; return ((_e157 * dt) * dust); } fn taperOf(size: vec3, seed: f32, burn: f32, ratio: f32, prm: vec4) -> Taper { var t_1: Taper; t_1.R0_ = (0.5f * size.x); let _e12 = t_1.R0_; t_1.R1_ = (_e12 * clamp(ratio, 0.5f, 1.2f)); t_1.L = max(size.y, 0.0001f); t_1.seed = seed; t_1.burn = burn; t_1.drip = prm.z; t_1.span = prm.w; let _e29 = t_1.R1_; t_1.rho = (0.15f * _e29); let _e34 = t_1.R1_; t_1.dc = (0.26f * _e34); let _e37 = t_1; return _e37; } fn tHash(n_3: f32) -> f32 { return fract((sin(n_3) * 43758.547f)); } fn wrapAngle(a: f32) -> f32 { return (a - (6.2831855f * floor(((a / 6.2831855f) + 0.5f)))); } fn dripSlot(t_2: Taper, i_3: i32) -> Drip { var d_3: Drip; let fi = (f32(i_3) + 1f); let _e13 = tHash(((t_2.seed * 1.37f) + (fi * 12.9898f))); d_3.ang = (6.2831855f * _e13); let _e23 = tHash(((t_2.seed * 2.11f) + (fi * 78.233f))); d_3.born = mix(-0.6f, 0.95f, _e23); let _e33 = tHash(((t_2.seed * 3.07f) + (fi * 37.719f))); d_3.len = ((t_2.R1_ * (1.6f + ((9f * _e33) * _e33))) * t_2.drip); let _e50 = tHash(((t_2.seed * 4.31f) + (fi * 4.581f))); d_3.w = (t_2.R1_ * (0.26f + (0.2f * _e50))); d_3.th = (t_2.R1_ * (0.11f + (0.13f * _e50))); let _e65 = d_3; return _e65; } fn dripAt(t_3: Taper, theta: f32, y: f32) -> f32 { var sum_1: f32 = 0f; var i_4: i32 = 0i; loop { let _e7 = i_4; if (_e7 < 6i) { } else { break; } { let _e10 = i_4; let _e11 = dripSlot(t_3, _e10); let age_1 = (t_3.burn - _e11.born); let grown = smoothstep(0f, 0.035f, age_1); let len = max((_e11.len * grown), 0.0001f); let y0_ = ((t_3.L + (t_3.span * max(age_1, 0f))) - (0.7f * t_3.rho)); let u_4 = ((y0_ - y) / len); let uc = clamp(u_4, 0f, 1f); let _e39 = wrapAngle((theta - _e11.ang)); let across = (_e39 * t_3.R1_); let bulb = exp(((-((u_4 - 0.86f)) * (u_4 - 0.86f)) * 90f)); let width = (_e11.w * ((1f - (0.3f * uc)) + (0.6f * bulb))); let body = (smoothstep(-0.15f, 0.04f, u_4) * (1f - smoothstep(0.94f, 1.05f, u_4))); let thick = (((_e11.th * ((0.75f + (0.35f * uc)) + (0.9f * bulb))) * body) * step(0.0001f, grown)); let _e82 = sum_1; sum_1 = (_e82 + (thick * exp((-((across * across)) / (width * width))))); } continuing { let _e90 = i_4; i_4 = (_e90 + 1i); } } let _e93 = sum_1; return _e93; } fn notchAt(t_4: Taper, theta_1: f32) -> f32 { var n_4: f32 = 0f; var i_5: i32 = 0i; loop { let _e6 = i_5; if (_e6 < 6i) { } else { break; } { let _e9 = i_5; let _e10 = dripSlot(t_4, _e9); let age_2 = (t_4.burn - _e10.born); let fresh = (step(0f, age_2) * (1f - smoothstep(0f, (2.5f * t_4.rho), (t_4.span * age_2)))); let _e28 = wrapAngle((theta_1 - _e10.ang)); let across_1 = (_e28 * t_4.R1_); let _e31 = n_4; n_4 = (_e31 + (fresh * exp((-((across_1 * across_1)) / ((1.6f * _e10.w) * _e10.w))))); } continuing { let _e43 = i_5; i_5 = (_e43 + 1i); } } let _e46 = n_4; return ((min(_e46, 1f) * 0.8f) * t_4.rho); } fn crestAt(t_5: Taper, theta_2: f32) -> f32 { let _e3 = notchAt(t_5, theta_2); return ((t_5.L - _e3) - ((0.2f * t_5.rho) * (0.5f + (0.5f * sin(((2f * theta_2) + (t_5.seed * 5f))))))); } fn bareRadius(t_6: Taper, theta_3: f32, y_1: f32) -> f32 { let k_2 = clamp((y_1 / t_6.L), 0f, 1f); let wob = ((1f + (0.016f * sin((((2f * theta_3) + (t_6.seed * 3.1f)) + (y_1 * 31f))))) + (0.01f * sin((((3f * theta_3) - (t_6.seed * 1.7f)) + (y_1 * 57f))))); return (mix(t_6.R0_, t_6.R1_, k_2) * wob); } fn shaftRadius(t_7: Taper, theta_4: f32, y_2: f32) -> f32 { let _e3 = bareRadius(t_7, theta_4, y_2); let _e4 = dripAt(t_7, theta_4, y_2); return (_e3 + _e4); } fn taperShaftNormal(t_8: Taper, theta_5: f32, y_3: f32) -> vec3 { let _e3 = shaftRadius(t_8, theta_5, y_3); let e_1 = max((t_8.L * 0.004f), 0.0002f); let _e10 = shaftRadius(t_8, theta_5, (y_3 + e_1)); let _e12 = shaftRadius(t_8, theta_5, (y_3 - e_1)); let ry = ((_e10 - _e12) / (2f * e_1)); let _e19 = shaftRadius(t_8, (theta_5 + 0.03f), y_3); let _e21 = shaftRadius(t_8, (theta_5 - 0.03f), y_3); let ra = ((_e19 - _e21) / (2f * 0.03f)); let c_4 = cos(theta_5); let s_8 = sin(theta_5); let er = vec3(c_4, 0f, s_8); let et = vec3(-(s_8), 0f, c_4); return normalize(((er - (et * (ra / max(_e3, 0.00001f)))) - vec3(0f, ry, 0f))); } fn taperVertex(g_2: vec3, t_9: Taper) -> TaperV { var r: f32 = 0f; var y_4: f32 = 0f; var n_5: vec3 = vec3(0f, -1f, 0f); var drip: f32 = 0f; var out_1: TaperV; let theta_6 = g_2.x; let s_9 = g_2.y; let region = g_2.z; let c_5 = cos(theta_6); let sn = sin(theta_6); let er_1 = vec3(c_5, 0f, sn); let _e9 = crestAt(t_9, theta_6); let ys = max((_e9 - t_9.rho), 0f); if (region < 0.5f) { let _e28 = shaftRadius(t_9, theta_6, 0f); r = (_e28 * s_9); } else { if (region < 1.5f) { y_4 = (s_9 * ys); let _e33 = y_4; let _e34 = dripAt(t_9, theta_6, _e33); drip = _e34; let _e35 = y_4; let _e36 = bareRadius(t_9, theta_6, _e35); let _e37 = drip; r = (_e36 + _e37); let _e39 = y_4; let _e40 = taperShaftNormal(t_9, theta_6, _e39); n_5 = _e40; } else { if (region < 2.5f) { let _e43 = shaftRadius(t_9, theta_6, ys); let phi = (3.1415927f * s_9); r = ((_e43 - t_9.rho) + (t_9.rho * cos(phi))); y_4 = (ys + (t_9.rho * sin(phi))); n_5 = ((er_1 * cos(phi)) + vec3(0f, sin(phi), 0f)); } else { let _e63 = shaftRadius(t_9, theta_6, ys); let rin = (_e63 - (2f * t_9.rho)); let pool = (t_9.L - t_9.dc); let rp = (rin * 0.9f); if (s_9 < 0.3f) { let w_2 = (s_9 / 0.3f); r = mix(rin, rp, w_2); y_4 = mix(ys, pool, sin((w_2 * 1.5707963f))); n_5 = normalize((((-(er_1) * (1f - w_2)) * 1.4f) + vec3(0f, (0.6f + w_2), 0f))); } else { let w_3 = ((s_9 - 0.3f) / 0.7f); r = (rp * (1f - w_3)); y_4 = (pool - ((0.08f * t_9.dc) * w_3)); n_5 = vec3(0f, 1f, 0f); } } } } let _e113 = r; let _e115 = y_4; out_1.pos = ((er_1 * _e113) + vec3(0f, _e115, 0f)); let _e121 = n_5; out_1.nrm = _e121; let _e123 = y_4; let _e127 = drip; out_1.info = vec3(region, max((_e9 - _e123), 0f), (_e127 / max(t_9.R1_, 0.00001f))); let _e133 = out_1; return _e133; } fn lanternColor() -> vec3 { let _e5 = frame.hall4_.x; return mix(LANTERN_WARM, HALL_COLD, clamp(_e5, 0f, 1f)); } fn cloth(q_1: vec3, seed_1: f32) -> vec3 { let h = clamp((0.5f - q_1.y), 0f, 1f); let t_12 = frame.eye.w; let _e15 = frame.misc.y; let dread = smoothstep(0.08f, 0.95f, _e15); let gust = ((0.55f + (0.25f * sin((t_12 * 0.73f)))) + (0.2f * sin(((t_12 * 1.17f) + 1.4f)))); let wind = (0.025f + (dread * (0.25f + (0.5f * gust)))); let sway = (((h * h) * wind) * ((0.55f * sin((((t_12 * 1.8f) - (h * 3f)) + seed_1))) + (0.24f * sin(((t_12 * 3.3f) - (h * 6f)))))); let folds = (0.085f * sin((((q_1.x + 0.5f) * 37.7f) + ((h * wind) * sin(((t_12 * 1.4f) + seed_1)))))); let billow = ((h * wind) * (0.6f + (0.4f * sin(((((t_12 * 2.1f) - (h * 4f)) + (q_1.x * 2f)) + seed_1))))); return vec3((q_1.x + sway), (q_1.y + (((h * wind) * 0.025f) * sin(((t_12 * 2.8f) + (q_1.x * 8f))))), (folds + billow)); } fn shoulder(x: f32, knee: f32, r_1: f32) -> f32 { var local_43: bool; if !((x <= knee)) { local_43 = (r_1 <= 0f); } else { local_43 = true; } let _e10 = local_43; if _e10 { return x; } return (knee + (r_1 * log((1f + ((x - knee) / r_1))))); } fn h1_(p_6: vec2) -> f32 { let _e3 = hashCell(vec2(floor(p_6))); return _e3; } fn lineAA(d_4: f32, halfWidth: f32, fp: f32) -> f32 { return (1f - smoothstep((halfWidth - fp), (halfWidth + fp), abs(d_4))); } fn fbm2_(p_7: vec2) -> f32 { let _e1 = vnoise(p_7); let _e10 = vnoise(((p_7 * 2.03f) + vec2(17.1f, 3.7f))); return ((_e1 * 0.66f) + (_e10 * 0.34f)); } fn woodTone(u_1: f32, v_2: f32, seed_2: f32) -> f32 { let p_16 = (vec2(u_1, v_2) + vec2((seed_2 * 3.17f), (seed_2 * 1.73f))); let _e14 = fbm2_((p_16 * vec2(1.3f, 4f))); let warp = (_e14 * 0.9f); let _e27 = vnoise((p_16 * vec2(0.6f, 9f))); let rings = (0.5f + (0.5f * sin((((p_16.y * 46f) + (warp * 7f)) + (_e27 * 2f))))); let _e40 = vnoise((p_16 * vec2(3f, 140f))); let streak = ((_e40 * 0.5f) + 0.5f); return ((0.72f + ((0.34f * rings) * rings)) + (0.18f * (streak - 0.5f))); } fn slabShade(p_8: vec3, toL: vec3) -> f32 { var local_44: bool; let y_5 = frame.deskY.x; if !((p_8.y > (y_5 - 0.25f))) { local_44 = (toL.y <= 0.0001f); } else { local_44 = true; } let _e17 = local_44; if _e17 { return 1f; } let t_13 = ((y_5 - p_8.y) / toL.y); if (t_13 > 1f) { return 1f; } let c_6 = (p_8.xz + (toL.xz * t_13)); let r_3 = frame.desk; let inside = min(min((c_6.x - r_3.x), (r_3.y - c_6.x)), min((c_6.y - r_3.z), (r_3.w - c_6.y))); let _e51 = frame.deskY.y; let pen = (_e51 * (0.3f + (t_13 * 3f))); return smoothstep(-(pen), pen, -(inside)); } fn discAO(p_9: vec3, first: i32, last: i32) -> f32 { var ao: f32 = 1f; var i_6: i32; i_6 = first; loop { let _e6 = i_6; if (_e6 < last) { } else { break; } { let _e10 = i_6; let d_5 = frame.discs[_e10]; let r_4 = (length((p_9.xz - d_5.xy)) / max(d_5.z, 0.0001f)); let _e21 = ao; ao = (_e21 * (1f - (abs(d_5.w) * (1f - smoothstep(0.55f, 1.35f, r_4))))); } continuing { let _e33 = i_6; i_6 = (_e33 + 1i); } } let _e36 = ao; return _e36; } fn doorSpace(p_10: vec3) -> vec3 { let _e4 = frame.door0_; let r_5 = (p_10.xz - _e4.xy); let _e10 = frame.door1_.z; let _e13 = frame.door0_; let _e21 = frame.door1_.w; let _e24 = frame.door1_; return vec3((_e10 + dot(r_5, _e13.zw)), p_10.y, (_e21 + dot(r_5, _e24.xy))); } fn doorVec(v_3: vec3) -> vec3 { let _e4 = frame.door0_; let _e11 = frame.door1_; return vec3(dot(v_3.xz, _e4.zw), v_3.y, dot(v_3.xz, _e11.xy)); } fn doorWorld(q_2: vec3) -> vec3 { let _e5 = frame.door1_.z; let u_5 = (q_2.x - _e5); let _e11 = frame.door1_.w; let v_4 = (q_2.z - _e11); let _e15 = frame.door0_; let _e19 = frame.door0_; let _e25 = frame.door1_; let xz = ((_e15.xy + (_e19.zw * u_5)) + (_e25.xy * v_4)); return vec3(xz.x, q_2.y, xz.y); } fn doorPortal(pw: vec3, lw: vec3) -> f32 { var open: f32; let _e2 = doorSpace(pw); let _e3 = doorSpace(lw); let wx = frame.hall3_.x; let sp = (_e2.x - wx); let sl = (_e3.x - wx); if ((sp * sl) >= 0f) { return 1f; } let t_14 = (sp / (sp - sl)); let c_7 = (_e2 + ((_e3 - _e2) * t_14)); let z0_ = frame.hall2_.z; let z1_ = frame.hall2_.w; let top_1 = frame.hall3_.y; open = (smoothstep(-(0.04f), 0.04f, min((c_7.z - z0_), (z1_ - c_7.z))) * smoothstep(-(0.04f), 0.04f, (top_1 - c_7.y))); let a_3 = frame.hall2_.y; let _e54 = frame.hall3_.z; let h_1 = vec2(_e54, z0_); let _e62 = frame.hall3_.w; let u_6 = (vec2(sin(a_3), cos(a_3)) * _e62); let r_6 = (_e3.xz - _e2.xz); let den = ((r_6.x * u_6.y) - (r_6.y * u_6.x)); if (abs(den) > 0.00001f) { let q_5 = (h_1 - _e2.xz); let tt = (((q_5.x * u_6.y) - (q_5.y * u_6.x)) / den); let ss = (((q_5.x * r_6.y) - (q_5.y * r_6.x)) / den); let yh = (_e2.y + ((_e3.y - _e2.y) * tt)); let _e119 = frame.win2_.w; let hit = (((((step(0f, tt) * step(tt, 1f)) * smoothstep(-0.03f, 0.03f, ss)) * (1f - smoothstep(0.97f, 1.03f, ss))) * step(_e119, yh)) * step(yh, top_1)); let _e124 = open; open = (_e124 * (1f - hit)); } let _e128 = open; return _e128; } fn doorSpill(pw_1: vec3) -> f32 { var local_45: bool; var local_46: bool; let _e1 = doorSpace(pw_1); let _e6 = frame.hall3_.x; let dx = (_e1.x - _e6); let _e11 = frame.hall2_.x; if !((_e11 <= 0f)) { local_45 = (dx < 0f); } else { local_45 = true; } let _e20 = local_45; if !(_e20) { let _e28 = frame.win2_.w; local_46 = (_e1.y > (_e28 + 0.05f)); } else { local_46 = true; } let _e33 = local_46; if _e33 { return 0f; } let spread = (0.1f + (dx * 0.7f)); let _e46 = frame.hall2_.z; let _e51 = frame.hall2_.w; let inZ = smoothstep(-(spread), (spread * 0.3f), min((_e1.z - _e46), (_e51 - _e1.z))); let _e59 = frame.hall2_.x; return (((_e59 * 5f) * inZ) / (1f + ((dx / 0.7f) * (dx / 0.7f)))); } fn galleryMoon(p_11: vec3, normal_1: vec3) -> vec3 { let t_15 = ((2.4f - p_11.z) / 0.44f); let q_6 = vec2((p_11.x - (0.28f * t_15)), (p_11.y + (0.85f * t_15))); let bay = round(((-(q_6.x) - 10.5f) / 5.5f)); let localX = ((q_6.x + 10.5f) + (5.5f * bay)); let xmask = (1f - smoothstep(0.65f, 0.74f, abs(localX))); let ymask = (smoothstep(0.94f, 1.04f, q_6.y) * (1f - smoothstep(5.02f, 5.12f, q_6.y))); let bars_1 = (smoothstep(0.026f, 0.065f, abs(localX)) * smoothstep(0.035f, 0.085f, abs((q_6.y - 3f)))); let mask = (((((xmask * ymask) * bars_1) * step(0f, bay)) * step(bay, 4f)) * step(0f, t_15)); let ndl = max(dot(normal_1, vec3(-0.2807732f, 0.8523472f, 0.441215f)), 0f); return (vec3(0.0035f, 0.0055f, 0.0085f) + ((vec3(0.12f, 0.18f, 0.28f) * mask) * ndl)); } fn fixedCandle(p_12: vec3, n_6: vec3, source: vec4, radius: f32) -> vec3 { if (source.w <= 0.0001f) { return vec3(0f); } let delta = (source.xyz - p_12); let d2_ = dot(delta, delta); if (d2_ >= (radius * radius)) { return vec3(0f); } let reach = (1f - smoothstep((radius * 0.55f), radius, sqrt(d2_))); let _e22 = slabShade(p_12, delta); let _e24 = doorPortal(p_12, source.xyz); let visibility = (_e22 * _e24); let ndl_1 = (max((dot(n_6, (delta * inverseSqrt(max(d2_, 0.000001f)))) + 0.22f), 0f) / 1.22f); return ((((vec3(1f, 0.42f, 0.12f) * (source.w / (d2_ + 0.3f))) * reach) * visibility) * ndl_1); } fn fixedCandlesSkip(p_13: vec3, n_7: vec3, skip: i32) -> vec3 { var sum_2: vec3 = vec3(0f); var i_7: i32 = 0i; loop { let _e8 = i_7; if (_e8 < 8i) { } else { break; } { let _e11 = i_7; if (_e11 != skip) { let _e13 = sum_2; let _e16 = i_7; let _e18 = frame.candlePos[_e16]; let _e21 = i_7; let _e24 = frame.candleFx[_e21].y; let _e27 = fixedCandle(p_13, n_7, _e18, max(_e24, 0.5f)); sum_2 = (_e13 + _e27); } } continuing { let _e29 = i_7; i_7 = (_e29 + 1i); } } let _e32 = sum_2; return _e32; } fn fixedCandles(p_14: vec3, n_8: vec3) -> vec3 { let _e3 = fixedCandlesSkip(p_14, n_8, -1i); return _e3; } fn strokeD(p_15: vec2, a_1: vec2, b: vec2) -> f32 { let pa = (p_15 - a_1); let ba = (b - a_1); let hh = clamp((dot(pa, ba) / max(dot(ba, ba), 0.00000001f)), 0f, 1f); return length((pa - (ba * hh))); } fn numeral(q_3: vec2, fpl: f32) -> f32 { var codes: array = array(23u, 1u, 5u, 21u, 85u, 2u, 6u, 22u, 86u, 13u, 3u, 7u); var counts: array = array(3u, 1u, 2u, 3u, 4u, 1u, 2u, 3u, 4u, 2u, 1u, 2u); var w_1: f32 = 0f; var i_8: u32 = 0u; var x_1: f32; var dist_2: f32 = 10f; var i_9: u32 = 0u; let r_7 = length(q_3); let ang = atan2(q_3.x, q_3.y); let a_4 = select(ang, (ang + 6.2831855f), (ang < 0f)); let kf = floor(((a_4 / 0.5235988f) + 0.5f)); let k_3 = (u32(kf) % 12u); let d_6 = (a_4 - (kf * 0.5235988f)); let lx = ((r_7 * sin(d_6)) / 0.17f); let ly = (((r_7 * cos(d_6)) - (0.715f - (0.17f * 0.5f))) / 0.17f); let code = codes[k_3]; let n_10 = counts[k_3]; loop { let _e70 = i_8; if (_e70 < 4u) { } else { break; } { let _e73 = i_8; if (_e73 < n_10) { let _e76 = i_8; let g_4 = ((code >> (2u * _e76)) & 3u); let _e81 = w_1; w_1 = ((_e81 + select(0.56f, 0.24f, (g_4 == 1u))) + 0.07f); } } continuing { let _e90 = i_8; i_8 = (_e90 + 1u); } } let _e93 = w_1; x_1 = ((-(_e93) * 0.5f) + 0.035f); loop { let _e104 = i_9; if (_e104 < 4u) { } else { break; } { let _e107 = i_9; if (_e107 < n_10) { let _e110 = i_9; let g_5 = ((code >> (2u * _e110)) & 3u); let gw = select(0.56f, 0.24f, (g_5 == 1u)); let _e120 = x_1; let p_17 = vec2((lx - _e120), ly); if (g_5 == 1u) { let _e125 = dist_2; let _e134 = strokeD(p_17, vec2((gw * 0.5f), 0.06f), vec2((gw * 0.5f), 0.94f)); dist_2 = min(_e125, _e134); } else { if (g_5 == 2u) { let _e138 = dist_2; let _e146 = strokeD(p_17, vec2(0.04f, 0.94f), vec2((gw * 0.5f), 0.06f)); dist_2 = min(_e138, _e146); let _e148 = dist_2; let _e157 = strokeD(p_17, vec2((gw - 0.04f), 0.94f), vec2((gw * 0.5f), 0.06f)); dist_2 = min(_e148, _e157); } else { let _e159 = dist_2; let _e167 = strokeD(p_17, vec2(0.04f, 0.94f), vec2((gw - 0.04f), 0.06f)); dist_2 = min(_e159, _e167); let _e169 = dist_2; let _e177 = strokeD(p_17, vec2(0.04f, 0.06f), vec2((gw - 0.04f), 0.94f)); dist_2 = min(_e169, _e177); } } let _e179 = x_1; x_1 = ((_e179 + gw) + 0.07f); } } continuing { let _e183 = i_9; i_9 = (_e183 + 1u); } } let inBand = (step(-0.2f, ly) * step(ly, 1.2f)); let _e197 = dist_2; return ((1f - smoothstep((0.075f - (fpl / 0.17f)), (0.075f + (fpl / 0.17f)), _e197)) * inBand); } fn ownFlame(k: i32) -> OwnFlame { var f: OwnFlame; let _e5 = frame.light; f.pos = _e5.xyz; let _e11 = frame.light.w; f.level = (clamp((_e11 / NEAR_I), 0f, 1.6f) * step(0f, f32(k))); if (k > 0i) { let c_8 = frame.candlePos[(k - 1i)]; f.pos = c_8.xyz; let _e38 = frame.candleFx[(k - 1i)].x; f.level = _e38; } let _e39 = f; return _e39; } fn nearLight(f_1: OwnFlame, world_2: vec3, N_1: vec3, V: vec3, albedo: vec3, spec: vec3, power: f32, wrap: f32) -> vec3 { let dl = (f_1.pos - world_2); let dd = dot(dl, dl); let Lo = (dl * inverseSqrt(max(dd, 0.00000001f))); let _e24 = frame.highlight.x; let _e28 = frame.highlight.y; let _e29 = shoulder(((NEAR_I * f_1.level) / (dd + NEAR_S2_)), _e24, _e28); let ndl_2 = dot(N_1, Lo); let H = normalize((Lo + V)); let sp_1 = (((pow(max(dot(N_1, H), 0f), power) * (power + 8f)) * 0.04f) * step(0f, ndl_2)); return ((NEAR_COLOR * _e29) * (((albedo * max((ndl_2 + wrap), 0f)) / vec3((1f + wrap))) + (spec * sp_1))); } fn candleTaper(s0_: Surf, world_3: vec3, lp: vec3, info: vec3, size_1: vec4, burn_1: f32, ratio_1: f32, prm_1: vec4, AX: vec3, AY: vec3, AZ: vec3, V_1: vec3) -> Surf { var s_2: Surf; var drip_1: f32; var local_47: bool; var local_48: bool; var glow_1: f32; var local_49: bool; var bounce: f32; s_2 = s0_; let _e16 = taperOf(size_1.xyz, abs(size_1.w), burn_1, ratio_1, prm_1); let region_1 = info.x; let below = info.y; let theta_7 = atan2(lp.z, lp.x); drip_1 = ((clamp((info.z / 0.07f), 0f, 1f) * step(0.5f, region_1)) * (1f - step(1.5f, region_1))); if (region_1 > 0.5f) { local_47 = (region_1 < 1.5f); } else { local_47 = false; } let _e44 = local_47; if _e44 { local_48 = (size_1.w > 0f); } else { local_48 = false; } let _e51 = local_48; if _e51 { let _e53 = taperShaftNormal(_e16, theta_7, lp.y); s_2.N = normalize((((AX * _e53.x) + (AY * _e53.y)) + (AZ * _e53.z))); let _e65 = dripAt(_e16, theta_7, lp.y); drip_1 = clamp((_e65 / (0.07f * _e16.R1_)), 0f, 1f); } let k_4 = i32(floor((prm_1.x + 0.5f))); let _e78 = ownFlame(k_4); let _e80 = s_2.N; let edge = pow((1f - min(abs(dot(_e80, V_1)), 1f)), 1.5f); let _e97 = vnoise(vec2(((theta_7 * 5f) + _e16.seed), (lp.y * 240f))); let layers = (0.89f + (0.11f * _e97)); let _e110 = vnoise(vec2(((theta_7 * 2f) - _e16.seed), (lp.y * 55f))); let mottle = (0.94f + (0.06f * _e110)); let _e123 = vnoise(vec2((theta_7 * 37f), ((lp.y * 800f) + _e16.seed))); let grain_1 = (0.97f + (0.03f * _e123)); let _e130 = s_2.albedo; let _e134 = drip_1; s_2.albedo = ((((_e130 * layers) * mottle) * grain_1) * (1f + (0.1f * _e134))); s_2.sheen = 0f; s_2.wrap = select(0.45f, 0f, (k_4 == 0i)); let _e149 = drip_1; s_2.spec = vec3((0.03f + (0.06f * _e149))); let _e156 = drip_1; s_2.power = (24f + (40f * _e156)); s_2.alpha = prm_1.y; let near = exp((-(below) / (0.9f * _e16.R1_))); let far = exp((-(below) / (8f * _e16.R1_))); let _e177 = s_2.albedo; s_2.albedo = (_e177 * mix(0.72f, 1f, far)); let _e192 = drip_1; glow_1 = (((((WAX_NEAR * near) + (WAX_FAR * far)) * (0.45f + (1f * edge))) * (1f + ((0.7f * _e192) * near))) + ((WAX_EDGE * edge) * edge)); if (region_1 > 1.5f) { local_49 = (region_1 < 2.5f); } else { local_49 = false; } let _e211 = local_49; if _e211 { glow_1 = (WAX_LIP * (0.7f + (0.6f * edge))); s_2.spec = vec3(0.07f); s_2.power = 60f; s_2.ao = 0.55f; } else { if (region_1 > 2.5f) { let rr = (length(lp.xz) / max(_e16.R1_, 0.00001f)); glow_1 = ((WAX_POOL * (0.65f + (1.2f * exp(((-(rr) * rr) * 7f))))) * (0.4f + (0.6f * smoothstep(0f, 0.6f, _e78.level)))); let _e255 = s_2.albedo; s_2.albedo = (_e255 * 0.3f); s_2.spec = vec3(0.5f); s_2.power = 380f; s_2.ao = 0.5f; } } let tint = mix(vec3(0.74f, 0.22f, 0.04f), vec3(1f, 0.43f, 0.12f), near); bounce = (WAX_BOUNCE * _e78.level); if (k_4 > 0i) { let _e280 = bounce; let _e288 = frame.candlePos[(k_4 - 1i)].w; bounce = max(_e280, (WAX_BOUNCE_POOL * _e288)); } let _e292 = glow_1; let _e297 = s_2.albedo; let _e300 = bounce; s_2.emit = ((tint * (_e292 * _e78.level)) + ((_e297 * NEAR_COLOR) * _e300)); if (k_4 > 0i) { let _e307 = s_2.emit; let _e309 = s_2.ao; let _e313 = s_2.N; let _e315 = s_2.albedo; let _e317 = s_2.spec; let _e319 = s_2.power; let _e321 = nearLight(_e78, world_3, _e313, V_1, _e315, _e317, _e319, 0f); s_2.emit = (_e307 + ((0.6f * _e309) * _e321)); } let _e324 = s_2; return _e324; } fn candleMetal(s0_1: Surf, world_4: vec3, prm_2: vec4, base: vec3, V_2: vec3, detailed: bool) -> Surf { var s_3: Surf; var t_10: f32; s_3 = s0_1; let kind = prm_2.x; t_10 = (0.4f * prm_2.y); if detailed { let _e21 = vnoise(((world_4.xz * 41f) + vec2((world_4.y * 27f), prm_2.z))); t_10 = (smoothstep(0.15f, 0.85f, ((_e21 * 0.5f) + 0.5f)) * prm_2.y); } if (kind < 0.5f) { let _e34 = t_10; s_3.albedo = (base * (0.16f - (0.08f * _e34))); let _e49 = t_10; s_3.spec = mix(vec3(0.95f, 0.66f, 0.33f), vec3(0.36f, 0.26f, 0.13f), _e49); let _e52 = t_10; s_3.power = mix(150f, 24f, _e52); } else { if (kind < 1.5f) { let _e59 = t_10; s_3.albedo = (base * (0.22f - (0.08f * _e59))); let _e74 = t_10; s_3.spec = mix(vec3(0.62f, 0.6f, 0.57f), vec3(0.26f, 0.25f, 0.23f), _e74); let _e77 = t_10; s_3.power = mix(70f, 16f, _e77); } else { let _e82 = t_10; s_3.albedo = (base * (0.6f - (0.2f * _e82))); let _e89 = t_10; s_3.spec = vec3((0.2f - (0.08f * _e89))); s_3.power = 26f; } } s_3.wrap = 0.2f; let k_5 = i32(floor((prm_2.w + 0.5f))); let _e104 = ownFlame(k_5); if (k_5 > 0i) { let _e109 = s_3.N; let _e113 = s_3.spec; let _e115 = s_3.power; let _e117 = nearLight(_e104, world_4, _e109, V_2, vec3(0f), _e113, _e115, 0f); s_3.emit = _e117; } let _e119 = s_3.N; let fres = pow((1f - clamp(dot(_e119, V_2), 0f, 1f)), 4f); let _e130 = s_3.emit; let _e132 = s_3.spec; s_3.emit = (_e130 + (((_e132 * vec3(0.014f, 0.009f, 0.005f)) * fres) * (0.4f + (0.6f * clamp(_e104.level, 0f, 1f))))); let _e149 = s_3; return _e149; } fn candleSpill(s0_2: Surf, world_5: vec3, prm_3: vec4, base_1: vec3, V_3: vec3) -> Surf { var s_4: Surf; s_4 = s0_2; let k_6 = i32(floor((prm_3.y + 0.5f))); let _e11 = ownFlame(k_6); let _e20 = vnoise(((world_5.xz * 300f) + vec2(prm_3.x, 0f))); s_4.albedo = (base_1 * (0.9f + (0.1f * _e20))); s_4.spec = vec3(0.07f); s_4.power = 44f; s_4.wrap = 0.3f; s_4.sheen = 0f; s_4.alpha = prm_3.w; s_4.emit = (vec3(0.9f, 0.35f, 0.08f) * ((prm_3.z * _e11.level) * 0.06f)); if (k_6 > 0i) { let _e52 = s_4.emit; let _e54 = s_4.N; let _e56 = s_4.albedo; let _e58 = s_4.spec; let _e60 = s_4.power; let _e62 = nearLight(_e11, world_5, _e54, V_3, _e56, _e58, _e60, 0.3f); s_4.emit = (_e52 + _e62); } let _e64 = s_4; return _e64; } @vertex fn vs_main(in: VsIn) -> VsOut { var pos: vec3; var normal: vec3; var world: vec3; var n: vec3; var localOut: vec3; var lnrmOut: vec3; var extra: vec3 = vec3(0f); var local: bool; var local_1: bool; var local_2: bool; var local_3: bool; var local_4: bool; var local_5: bool; var local_6: bool; var out: VsOut; let s2_1 = vec3(dot(in.m0_.xyz, in.m0_.xyz), dot(in.m1_.xyz, in.m1_.xyz), dot(in.m2_.xyz, in.m2_.xyz)); pos = in.pos; normal = in.nrm; if (in.color.w == MAT_CURTAIN) { let _e28 = cloth(in.pos, in.params.x); pos = _e28; let _e37 = cloth((in.pos + vec3(0.001f, 0f, 0f)), in.params.x); let _e46 = cloth((in.pos - vec3(0.001f, 0f, 0f)), in.params.x); let dx_1 = (_e37 - _e46); let _e56 = cloth((in.pos + vec3(0f, 0.001f, 0f)), in.params.x); let _e65 = cloth((in.pos - vec3(0f, 0.001f, 0f)), in.params.x); let dy = (_e56 - _e65); normal = (normalize(cross(dx_1, dy)) * in.nrm.z); } let _e75 = pos.x; let _e80 = pos.y; let _e86 = pos.z; world = ((((in.m0_.xyz * _e75) + (in.m1_.xyz * _e80)) + (in.m2_.xyz * _e86)) + in.m3_.xyz); let _e93 = normal; let nl = (_e93 / max(s2_1, vec3(0.0000000001f))); n = (((in.m0_.xyz * nl.x) + (in.m1_.xyz * nl.y)) + (in.m2_.xyz * nl.z)); localOut = in.pos; lnrmOut = in.nrm; if (in.color.w == MAT_TAPER) { let tsz = sqrt(s2_1); let tx = (in.m0_.xyz / vec3(max(tsz.x, 0.000001f))); let ty_1 = (in.m1_.xyz / vec3(max(tsz.y, 0.000001f))); let tz = (in.m2_.xyz / vec3(max(tsz.z, 0.000001f))); let _e154 = taperOf(tsz, in.m0_.w, in.m1_.w, in.m2_.w, in.params); let _e155 = taperVertex(in.pos, _e154); world = (((in.m3_.xyz + (tx * _e155.pos.x)) + (ty_1 * _e155.pos.y)) + (tz * _e155.pos.z)); n = (((tx * _e155.nrm.x) + (ty_1 * _e155.nrm.y)) + (tz * _e155.nrm.z)); localOut = _e155.pos; lnrmOut = _e155.info; if (in.m3_.w > 0.5f) { let _e194 = frame.hall4_.y; local = (_e194 > 0.5f); } else { local = false; } let _e198 = local; extra = vec3((in.m0_.w * select(-1f, 1f, _e198)), in.m1_.w, in.m2_.w); } let centre = in.m3_.xyz; if (centre.y > 6f) { local_1 = (centre.y < 10.95f); } else { local_1 = false; } let _e219 = local_1; if _e219 { local_2 = (distance(centre.xz, vec2(0.35f, -2.6f)) < 1.8f); } else { local_2 = false; } let _e230 = local_2; if _e230 { if !((in.color.w == MAT_IRON)) { local_4 = (in.color.w == MAT_BRASS); } else { local_4 = true; } let _e245 = local_4; if !(_e245) { local_5 = (in.color.w == MAT_WAX); } else { local_5 = true; } let _e254 = local_5; if !(_e254) { local_6 = (in.color.w == MAT_WEB); } else { local_6 = true; } let _e263 = local_6; local_3 = _e263; } else { local_3 = false; } let _e265 = local_3; if _e265 { let _e269 = frame.misc.y; let _e278 = frame.eye.w; let angle = ((smoothstep(0.15f, 0.95f, _e269) * 0.045f) * sin((_e278 * 1.35f))); let c_9 = cos(angle); let s_10 = sin(angle); let _e285 = world; let p_18 = (_e285 - vec3(0.35f, 11f, -2.6f)); world = (vec3(((c_9 * p_18.x) - (s_10 * p_18.y)), ((s_10 * p_18.x) + (c_9 * p_18.y)), p_18.z) + vec3(0.35f, 11f, -2.6f)); let _e309 = n.x; let _e312 = n.y; let _e316 = n.x; let _e319 = n.y; let _e323 = n.z; n = vec3(((c_9 * _e309) - (s_10 * _e312)), ((s_10 * _e316) + (c_9 * _e319)), _e323); } let sz = sqrt(s2_1); let _e330 = frame.viewProj; let _e331 = world; out.position = (_e330 * vec4(_e331, 1f)); let _e336 = world; out.world = _e336; let _e338 = n; out.normal = _e338; let _e340 = localOut; out.local = _e340; let _e342 = lnrmOut; out.lnrm = _e342; out.color = in.color; out.params = in.params; let _e349 = extra.x; out.size = vec4(sz, _e349); let _e360 = extra.y; out.ax = vec4((in.m0_.xyz / vec3(max(sz.x, 0.000001f))), _e360); let _e371 = extra.z; out.ay = vec4((in.m1_.xyz / vec3(max(sz.y, 0.000001f))), _e371); let _e373 = out; return _e373; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { var Ng: vec3; var local_7: bool; var local_8: bool; var local_9: bool; var local_10: bool; var local_11: bool; var moonVis: f32 = 0f; var local_12: bool; var local_13: bool; var Ep: f32 = 0f; var Lp: vec3 = vec3(0f, 1f, 0f); var local_14: bool; var local_15: bool; var lantern: vec3 = vec3(0f); var Ll: vec3 = vec3(0f, 1f, 0f); var local_16: bool; var local_17: bool; var local_18: bool; var local_19: bool; var s: Surf; var fu: f32 = 0f; var fv: f32 = 0f; var FT: vec3; var FB: vec3; var local_20: bool; var u: f32; var v: f32; var local_21: bool; var local_22: bool; var local_23: bool; var tone: f32 = 1f; var local_24: bool; var local_25: bool; var local_26: bool; var local_27: bool; var N: vec3; var tone_1: f32 = 1f; var g: f32 = 0f; var dark: f32 = 0f; var local_28: bool; var t: f32 = 0f; var ink: f32 = 0f; var age: f32 = 0f; var local_29: bool; var local_30: bool; var n_1: f32 = 0.5f; var n_2: f32 = 0.5f; var tone_2: f32; var grain: f32 = 1f; var tone_3: f32 = 0.8f; var land: f32 = 0f; var lines: f32 = 0f; var color: vec3; var local_31: bool; var local_32: bool; var local_33: bool; var local_34: bool; var local_35: bool; var local_36: bool; var handAlpha: f32; var local_37: bool; var local_38: bool; var outA: f32; var local_39: bool; let fw = fwidth(in_1.world); let fp_1 = max(max(fw.x, fw.y), max(fw.z, 0.000001f)); let fwl = fwidth(in_1.local); let mat = in_1.color.w; let base_2 = in_1.color.xyz; let prm_4 = in_1.params; let size_2 = in_1.size.xyz; let AX_1 = in_1.ax.xyz; let AY_1 = in_1.ay.xyz; let AZ_1 = cross(AX_1, AY_1); Ng = normalize(in_1.normal); let _e29 = frame.eye; let V_4 = normalize((_e29.xyz - in_1.world)); let _e34 = Ng; if (dot(_e34, V_4) < 0f) { if !((mat == MAT_WEB)) { local_8 = (mat == MAT_PAPER); } else { local_8 = true; } let _e48 = local_8; local_7 = _e48; } else { local_7 = false; } let _e50 = local_7; if _e50 { let _e51 = Ng; Ng = -(_e51); } let an = abs(in_1.lnrm); let faceX = (an.x > 0.5f); if (an.y > 0.5f) { local_9 = !(faceX); } else { local_9 = false; } let faceY = local_9; if !(faceX) { local_10 = !(faceY); } else { local_10 = false; } let faceZ = local_10; let lp_1 = in_1.local; if !((mat == MAT_TAPER)) { local_11 = (mat == MAT_CWAX); } else { local_11 = true; } let candleWax = local_11; let ownLight = select(0i, i32((select(prm_4.y, prm_4.x, (mat == MAT_TAPER)) + 0.5f)), candleWax); let _e94 = frame.light; let toL_2 = (_e94.xyz - in_1.world); let d2_1 = dot(toL_2, toL_2); let L = (toL_2 * inverseSqrt(max(d2_1, 0.00000001f))); let _e104 = doorSpace(in_1.world); let _e109 = frame.hall3_.x; let inHall = (_e104.x < (_e109 - 0.05f)); let _e114 = slabShade(in_1.world, toL_2); let _e118 = frame.light; let _e120 = doorPortal(in_1.world, _e118.xyz); let slab = (_e114 * select(1f, _e120, inHall)); let _e127 = frame.light.w; let _e131 = frame.lightColor.w; let _e137 = frame.highlight.x; let _e141 = frame.highlight.y; let _e142 = shoulder((_e127 / (d2_1 + _e131)), _e137, _e141); let E = (_e142 * slab); let _e147 = frame.light.w; let _e151 = frame.roomLight.w; let Eroom = ((_e147 / (d2_1 + _e151)) * slab); let _e157 = frame.moonTravel; let d_7 = _e157.xyz; let M = -(d_7); let _e162 = Ng; if (dot(_e162, M) > 0f) { let _e171 = frame.moonColor.x; let _e175 = frame.moonColor.z; local_12 = ((_e171 + _e175) > 0.00001f); } else { local_12 = false; } let _e180 = local_12; if _e180 { local_13 = !(inHall); } else { local_13 = false; } let _e185 = local_13; if _e185 { let _e189 = frame.win; let _e192 = frame.win2_; let _e193 = moonPatch(in_1.world, d_7, _e189, _e192); let _e197 = slabShade(in_1.world, (M * 40f)); moonVis = (_e193 * _e197); } let _e202 = frame.win.x; let _e206 = frame.win.y; let _e213 = frame.win.z; let _e217 = frame.misc.w; let _e224 = frame.win2_.x; let wc = vec3(((_e202 + _e206) * 0.5f), ((_e213 + _e217) * 0.5f), _e224); let toW = (wc - in_1.world); let dW = length(toW); let _e232 = frame.moonTravel.w; let _e237 = frame.misc.z; let _e241 = frame.misc.z; let sky = ((_e232 / (1f + ((dW * dW) / (_e237 * _e241)))) * select(1f, 0f, inHall)); let _e251 = Ng; let skyDir = (0.55f + (0.45f * dot(_e251, (toW / vec3(max(dW, 0.0001f)))))); let _e271 = frame.pool.w; if (_e271 > 0f) { local_14 = !(inHall); } else { local_14 = false; } let _e278 = local_14; if _e278 { let _e281 = frame.pool; let toP = (_e281.xyz - in_1.world); let dp2_ = dot(toP, toP); Lp = (toP * inverseSqrt(max(dp2_, 0.00000001f))); let _e293 = frame.win2_.x; let sw = ((_e293 - in_1.world.z) / min(toP.z, -0.0001f)); if (sw > 0f) { local_15 = (sw < 1f); } else { local_15 = false; } let _e308 = local_15; if _e308 { let qw = (in_1.world.xy + (toP.xy * sw)); let _e319 = frame.win2_.x; let _e326 = frame.poolColor.w; let soft_1 = (0.006f + (max((in_1.world.z - _e319), 0f) * _e326)); let _e333 = frame.pool.w; let _e339 = frame.win; let _e342 = frame.win2_; let _e344 = windowMask(qw, _e339, _e342, soft_1, 1f); let _e347 = slabShade(in_1.world, toP); Ep = (((_e333 / max(dp2_, 0.0001f)) * _e344) * _e347); } } let _e360 = frame.hall.w; if (_e360 > 0f) { let _e365 = frame.hall; let tl = (_e365.xyz - in_1.world); let dl2_ = dot(tl, tl); Ll = (tl * inverseSqrt(max(dl2_, 0.00000001f))); let _e374 = lanternColor(); let _e378 = frame.hall.w; let _e385 = frame.hall; let _e387 = doorPortal(in_1.world, _e385.xyz); lantern = (_e374 * ((_e378 / (dl2_ + 0.3f)) * _e387)); } let _e390 = lanternColor(); let _e392 = doorSpill(in_1.world); let spill = (_e390 * _e392); let _e396 = Ng; let _e397 = doorVec(_e396); let _e398 = galleryMoon(_e104, _e397); let gallery = select(vec3(0f), _e398, inHall); let _e401 = Ng; let _e404 = fixedCandlesSkip(in_1.world, _e401, (ownLight - 1i)); let _e406 = lantern; let _e407 = Ng; let _e408 = Ll; let _e422 = frame.lightColor; let _e425 = Ng; let _e438 = frame.roomLight; let _e441 = Ng; let _e451 = frame.moonColor; let _e453 = moonVis; let _e455 = Ng; let _e463 = frame.poolColor; let _e465 = Ep; let _e466 = Ng; let _e467 = Lp; let _e476 = frame.moonColor; let _e483 = frame.ambient; let lin = (((((((((_e404 + gallery) + ((_e406 * max((dot(_e407, _e408) + 0.3f), 0f)) / vec3(1.3f))) + spill) + (((_e422.xyz * E) * max((dot(_e425, L) + 0.35f), 0f)) / vec3(1.35f))) + ((_e438.xyz * Eroom) * (0.5f + (0.5f * dot(_e441, L))))) + ((_e451.xyz * _e453) * max(dot(_e455, M), 0f))) + (_e463.xyz * (_e465 * max(dot(_e466, _e467), 0f)))) + (_e476.xyz * (sky * skyDir))) + _e483.xyz); let _e486 = luma(lin); let _e490 = frame.highlight.w; let _e495 = frame.highlight.z; if !(((_e486 * _e490) > _e495)) { local_16 = (mat == MAT_GLASS); } else { local_16 = true; } let _e503 = local_16; if !(_e503) { local_17 = (mat == MAT_HALL_WINDOW); } else { local_17 = true; } let _e510 = local_17; if !(_e510) { local_18 = (mat == MAT_WEB); } else { local_18 = true; } let _e517 = local_18; if !(_e517) { local_19 = (mat == MAT_DIAL); } else { local_19 = true; } let detailed_1 = local_19; s.albedo = base_2; s.spec = vec3(0f); s.power = 16f; s.emit = vec3(0f); let _e536 = Ng; s.N = _e536; s.ao = 1f; s.sheen = 0f; s.alpha = 1f; s.wrap = 0.35f; s.moonShade = 1f; FT = AX_1; FB = AY_1; if faceX { fu = (lp_1.z * size_2.z); fv = (lp_1.y * size_2.y); FT = AZ_1; FB = AY_1; } else { if faceY { fu = (lp_1.x * size_2.x); fv = (lp_1.z * size_2.z); FT = AX_1; FB = AZ_1; } else { fu = (lp_1.x * size_2.x); fv = (lp_1.y * size_2.y); FT = AX_1; FB = AY_1; } } if !((mat == MAT_WOOD)) { local_20 = (mat == MAT_LEATHER); } else { local_20 = true; } let _e579 = local_20; if _e579 { let faceU = select(size_2.x, size_2.z, faceX); let faceV = select(select(size_2.y, size_2.z, faceY), size_2.y, faceX); let alongU = (faceU >= faceV); let flags = prm_4.w; let _e590 = fv; let _e591 = fu; u = select(_e590, _e591, alongU); let _e594 = fu; let _e595 = fv; v = select(_e594, _e595, alongU); if (flags > 1.5f) { local_21 = (flags < 2.5f); } else { local_21 = false; } let _e605 = local_21; if _e605 { u = in_1.world.y; let _e608 = fu; v = _e608; } if (flags > 0.5f) { local_22 = (flags < 1.5f); } else { local_22 = false; } let _e616 = local_22; if _e616 { local_23 = faceY; } else { local_23 = false; } let _e620 = local_23; if _e620 { u = in_1.world.x; v = in_1.world.z; } if detailed_1 { let _e627 = u; let _e630 = v; let _e634 = woodTone((_e627 * prm_4.x), (_e630 * prm_4.x), prm_4.y); tone = _e634; if (flags > 1.5f) { local_24 = (flags < 2.5f); } else { local_24 = false; } let _e642 = local_24; if _e642 { let _e644 = v; let pi = floor((_e644 / 0.9f)); let _e647 = tone; let _e652 = h1_(vec2(pi, (3f + prm_4.y))); tone = (_e647 * (0.82f + (0.3f * _e652))); let _e658 = v; let _e667 = lineAA((_e658 - ((pi + 0.5f) * 0.9f)), ((0.9f * 0.5f) - 0.02f), fp_1); let _e668 = tone; tone = (_e668 * mix(0.35f, 1f, _e667)); } } else { tone = 0.9f; } let _e675 = tone; s.albedo = (base_2 * _e675); s.spec = vec3((0.035f + (0.09f * prm_4.z))); s.power = (18f + (40f * prm_4.z)); if (mat == MAT_LEATHER) { let _e696 = vnoise((in_1.world.xz * 90f)); let n_11 = select(0f, ((_e696 * 0.5f) + 0.5f), detailed_1); s.albedo = (base_2 * (0.85f + (0.3f * n_11))); let _e709 = fu; let _e717 = fu; let ex = min((_e709 + (size_2.x * 0.5f)), ((size_2.x * 0.5f) - _e717)); let _e720 = fv; let _e728 = fv; let ez = min((_e720 + (size_2.z * 0.5f)), ((size_2.z * 0.5f) - _e728)); let e_2 = min(ex, ez); let _e735 = lineAA((e_2 - prm_4.x), 0.008f, fp_1); let _e741 = lineAA(((e_2 - prm_4.x) - 0.035f), 0.004f, fp_1); let rule = (max(_e735, _e741) * select(0f, 1f, faceY)); let _e749 = s.albedo; s.albedo = mix(_e749, vec3(0.3f, 0.2f, 0.06f), (rule * 0.8f)); s.spec = mix(vec3(0.04f), vec3(0.75f, 0.52f, 0.2f), rule); s.power = mix(22f, 60f, rule); } if (flags > 0.5f) { local_25 = (flags < 1.5f); } else { local_25 = false; } let _e776 = local_25; if _e776 { local_26 = faceY; } else { local_26 = false; } let _e780 = local_26; if _e780 { let _e784 = frame.book.x; let _e788 = frame.book.z; let lo_3 = vec2(_e784, -(_e788)); let _e794 = frame.book.y; let _e798 = frame.book.z; let hi_3 = vec2(_e794, _e798); let q2_ = max(max((lo_3 - in_1.world.xz), (in_1.world.xz - hi_3)), vec2(0f)); let _e814 = frame.book.w; let _e826 = discAO(in_1.world, 0i, 5i); s.ao = (mix(0.3f, 1f, smoothstep(0f, max(_e814, 0.0001f), length(q2_))) * _e826); } } else { if (mat == MAT_BOOK) { let seed_3 = prm_4.x; let gilt = prm_4.y; let style = prm_4.z; let wear = prm_4.w; if faceZ { local_27 = (in_1.lnrm.z > 0f); } else { local_27 = false; } let _e841 = local_27; if _e841 { let x_4 = (lp_1.x * 2f); let y_6 = lp_1.y; let hgt = size_2.y; let _e847 = Ng; let _e848 = FT; N = normalize((_e847 + (_e848 * (x_4 * 0.85f)))); if detailed_1 { let _e861 = fu; let _e862 = fv; let _e868 = vnoise(((vec2(_e861, _e862) * 160f) + vec2(seed_3))); let cloth_1 = ((_e868 * 0.5f) + 0.5f); let _e877 = fu; let _e880 = fv; let _e888 = vnoise((vec2((_e877 * 6f), (_e880 * 3f)) + vec2((seed_3 * 1.7f)))); tone_1 = ((0.86f + (0.22f * cloth_1)) + (0.1f * _e888)); let yy = ((y_6 + 0.5f) * hgt); if (style > 0.45f) { let nr = (4f + floor((style * 3f))); let pitch = ((hgt * 0.78f) / nr); let r0_ = (hgt * 0.11f); let k_7 = clamp(floor((((yy - r0_) / pitch) + 0.5f)), 0f, nr); let dy_1 = (yy - (r0_ + (k_7 * pitch))); let rib = (1f - smoothstep(0.012f, 0.03f, abs(dy_1))); let _e923 = N; let _e924 = FB; N = normalize((_e923 + (_e924 * ((clamp((-(dy_1) / 0.03f), -1f, 1f) * rib) * 0.9f)))); let _e937 = tone_1; tone_1 = (_e937 * (1f + (0.25f * rib))); let _e943 = g; let _e948 = lineAA((abs(dy_1) - 0.045f), 0.006f, fp_1); g = max(_e943, (_e948 * gilt)); let lab = ((step((r0_ + (pitch * (nr - 2f))), yy) * step(yy, (r0_ + (pitch * (nr - 1f))))) * step(abs(x_4), 0.8f)); let _e968 = h1_(vec2(seed_3, 9f)); dark = (lab * (0.45f + (0.4f * _e968))); let tl_1 = abs((yy - (r0_ + (pitch * (nr - 1.5f))))); let _e987 = h1_(vec2(seed_3, floor((yy * 40f)))); let dash = step(0.5f, fract(((lp_1.x * 7f) + (_e987 * 3f)))); let _e994 = g; let _e996 = lineAA(tl_1, 0.014f, fp_1); g = max(_e994, ((((lab * _e996) * dash) * step(0.3f, gilt)) * step(abs(x_4), 0.62f))); } else { let tb_1 = abs((yy - (hgt * 0.8f))); let _e1011 = g; let _e1013 = lineAA(tb_1, 0.018f, fp_1); g = max(_e1011, (((_e1013 * step(abs(x_4), 0.7f)) * step(0.5f, fract(((lp_1.x * 6f) + seed_3)))) * gilt)); let _e1028 = g; let _e1033 = lineAA((yy - (hgt * 0.93f)), 0.006f, fp_1); g = max(_e1028, (_e1033 * gilt)); let _e1036 = g; let _e1041 = lineAA((yy - (hgt * 0.07f)), 0.006f, fp_1); g = max(_e1036, (_e1041 * gilt)); dark = ((step(abs(tb_1), 0.06f) * 0.25f) * step(0.5f, (style * 2f))); } let edge_1 = smoothstep(0.7f, 1f, abs(x_4)); let _e1058 = tone_1; tone_1 = ((_e1058 * (1f - (0.15f * edge_1))) + ((0.18f * edge_1) * wear)); let _e1068 = fu; let _e1071 = fv; let _e1079 = vnoise((vec2((_e1068 * 30f), (_e1071 * 12f)) + vec2((seed_3 * 5f)))); let scuff = (smoothstep(0.55f, 0.95f, _e1079) * wear); let _e1084 = tone_1; tone_1 = (_e1084 + (scuff * 0.25f)); } let _e1088 = tone_1; let _e1090 = dark; let leather = ((base_2 * _e1088) * (1f - _e1090)); let gold = vec3(0.46f, 0.3f, 0.09f); let _e1101 = g; s.albedo = mix(leather, (gold * 0.35f), _e1101); let _e1113 = g; s.spec = mix(vec3((0.03f + (0.05f * style))), vec3(1f, 0.72f, 0.32f), _e1113); let _e1120 = g; s.power = mix((14f + (20f * style)), 70f, _e1120); let _e1124 = N; s.N = _e1124; } else { if faceY { local_28 = (in_1.lnrm.y > 0f); } else { local_28 = false; } let _e1132 = local_28; if _e1132 { let bx = (abs(lp_1.x) * 2f); let board = (smoothstep(0.72f, 0.78f, bx) + smoothstep(0.4f, 0.44f, lp_1.z)); let _e1154 = vnoise(vec2(((lp_1.x * size_2.x) * 260f), (lp_1.z * 3f))); let lines_1 = select(0.5f, ((_e1154 * 0.5f) + 0.5f), detailed_1); let pages = mix(vec3(0.16f, 0.13f, 0.085f), vec3(0.24f, 0.2f, 0.13f), lines_1); let topGilt = step(0.82f, gilt); let pg = mix(pages, vec3(0.4f, 0.27f, 0.08f), topGilt); s.albedo = mix(pg, base_2, clamp(board, 0f, 1f)); s.spec = vec3(((topGilt * 0.5f) * (1f - clamp(board, 0f, 1f)))); s.power = 40f; s.ao = 0.55f; s.moonShade = 0.3f; } else { s.albedo = (base_2 * 0.8f); s.ao = 0.7f; } } } else { if (mat == MAT_BRASS) { if detailed_1 { let _e1220 = vnoise((((in_1.world.xz * 11f) + vec2((in_1.world.y * 7f))) + vec2(prm_4.y))); t = (smoothstep(0.1f, 0.8f, ((_e1220 * 0.5f) + 0.5f)) * prm_4.x); } let _e1231 = t; s.albedo = (base_2 * (0.2f - (0.1f * _e1231))); let _e1246 = t; s.spec = mix(vec3(1.2f, 0.86f, 0.42f), vec3(0.4f, 0.3f, 0.16f), _e1246); let _e1249 = t; s.power = mix(34f, 14f, _e1249); } else { if (mat == MAT_PAPER) { if detailed_1 { local_29 = faceY; } else { local_29 = false; } let _e1262 = local_29; if _e1262 { let _e1264 = fv; let row = (_e1264 / 0.045f); let ri = floor(row); let _e1267 = fu; let slant = (_e1267 + (((fract(row) - 0.5f) * 0.045f) * 0.35f)); let _e1281 = fu; let _e1285 = vnoise(vec2((_e1281 * 90f), ri)); let stroke = ((abs((fract(row) - 0.5f)) - 0.1f) - (0.06f * _e1285)); let inRow = (1f - smoothstep(0f, (0.08f + (fp_1 / 0.045f)), stroke)); let _e1303 = vnoise(vec2((slant * 26f), ((ri * 3.1f) + prm_4.x))); let words = smoothstep(0.1f, 0.35f, ((_e1303 * 0.5f) + 0.5f)); let _e1316 = vnoise(vec2((slant * 260f), (ri * 7f))); let letters = (0.55f + (0.45f * _e1316)); let _e1326 = h1_(vec2(ri, (prm_4.x + 3f))); let right = (size_2.x * (0.3f + (0.08f * _e1326))); let _e1336 = fu; let _e1338 = fu; let _e1341 = fv; let margin = ((step((-(size_2.x) * 0.36f), _e1336) * step(_e1338, right)) * step(abs(_e1341), (size_2.z * 0.4f))); let _e1355 = h1_(vec2(ri, prm_4.x)); ink = (((((inRow * words) * letters) * margin) * prm_4.y) * step(0.12f, _e1355)); let _e1362 = fu; let _e1368 = fv; let e_3 = min(((size_2.x * 0.5f) - abs(_e1362)), ((size_2.z * 0.5f) - abs(_e1368))); let _e1372 = fu; let _e1373 = fv; let _e1377 = vnoise((vec2(_e1372, _e1373) * 30f)); let _e1388 = fu; let _e1389 = fv; let _e1396 = vnoise(((vec2(_e1388, _e1389) * 9f) + vec2(prm_4.x))); age = (((1f - smoothstep(0f, 0.06f, (e_3 + (0.02f * _e1377)))) * 0.5f) + (smoothstep(0.55f, 0.9f, _e1396) * 0.25f)); } let _e1404 = age; let _e1414 = ink; s.albedo = mix((base_2 * (1f - (_e1404 * 0.45f))), vec3(0.05f, 0.03f, 0.02f), (_e1414 * 0.7f)); s.spec = vec3(0.02f); } else { if (mat == MAT_GLASS) { let q_7 = in_1.world.xy; let _e1427 = frame.win; let _e1430 = frame.win2_; let _e1434 = windowMask(q_7, _e1427, _e1430, max(fp_1, 0.004f), 1f); let _e1439 = vnoise((q_7 * vec2(3f, 1.2f))); let wav = ((_e1439 * 0.5f) + 0.5f); let top_2 = frame.misc.w; let _e1451 = frame.win.x; let _e1455 = frame.win.y; let _e1459 = frame.win.x; let moonGlow = exp((-(length((q_7 - vec2((_e1451 + ((_e1455 - _e1459) * 0.3f)), (top_2 - 0.6f))))) * 0.9f)); let _e1475 = frame.moonColor; let _e1484 = frame.win.z; let sky_1 = (_e1475.xyz * (((0.09f + (0.08f * wav)) * (0.6f + (0.4f * smoothstep(_e1484, top_2, q_7.y)))) + (0.42f * moonGlow))); s.emit = (sky_1 * _e1434); s.albedo = (vec3(0.02f, 0.018f, 0.016f) * (1f - _e1434)); s.spec = vec3((0.3f * _e1434)); s.power = 90f; } else { if (mat == MAT_TAPER) { let _e1514 = s; let _e1523 = candleTaper(_e1514, in_1.world, in_1.local, in_1.lnrm, in_1.size, in_1.ax.w, in_1.ay.w, prm_4, AX_1, AY_1, AZ_1, V_4); s = _e1523; } else { if (mat == MAT_CMETAL) { let _e1526 = s; let _e1528 = candleMetal(_e1526, in_1.world, prm_4, base_2, V_4, detailed_1); s = _e1528; } else { if (mat == MAT_CWAX) { let _e1531 = s; let _e1533 = candleSpill(_e1531, in_1.world, prm_4, base_2, V_4); s = _e1533; } else { if (mat == MAT_WAX) { s.albedo = base_2; s.sheen = 0.25f; if (prm_4.y > 0.5f) { let _e1545 = frame.light.y; let dy_2 = max((_e1545 - in_1.world.y), 0f); let _e1551 = Ng; let across_2 = min(abs(dot(_e1551, V_4)), 1f); let rimW = (0.45f + (0.55f * pow((1f - across_2), 2f))); let glow_2 = (((exp((-(dy_2) / 0.06f)) * 1.1f) + (exp((-(dy_2) / 0.22f)) * 0.1f)) * rimW); let _e1586 = frame.light.w; s.emit = (vec3(1f, 0.46f, 0.14f) * (_e1586 * glow_2)); s.albedo = (base_2 * (0.18f + (0.2f * across_2))); s.wrap = 0f; s.alpha = prm_4.w; } } else { if !((mat == MAT_FABRIC)) { local_30 = (mat == MAT_CURTAIN); } else { local_30 = true; } let _e1607 = local_30; if _e1607 { if detailed_1 { let _e1610 = fu; let _e1611 = fv; let _e1618 = vnoise(((vec2(_e1610, _e1611) * 9f) + vec2(prm_4.x))); n_1 = ((_e1618 * 0.5f) + 0.5f); } let _e1624 = n_1; let _e1633 = n_1; s.albedo = ((base_2 * (0.8f + (0.35f * _e1624))) * (1f + ((prm_4.y * 0.35f) * smoothstep(0.6f, 0.9f, _e1633)))); s.sheen = 0.9f; if (mat == MAT_CURTAIN) { let _e1648 = frame.moonColor; let _e1652 = s.N; s.emit = ((base_2 * _e1648.xyz) * (0.12f + (0.08f * max(dot(_e1652, V_4), 0f)))); let hem = (1f - smoothstep(0.008f, 0.02f, abs((in_1.local.y + 0.47f)))); let _e1673 = s.albedo; s.albedo = mix(_e1673, vec3(0.35f, 0.24f, 0.1f), (hem * 0.7f)); } } else { if (mat == MAT_PLASTER) { if detailed_1 { let _e1685 = fu; let _e1686 = fv; let _e1694 = fbm3_((vec2(_e1685, _e1686) * vec2(1.3f, select(0.7f, 1.3f, faceY)))); n_2 = ((_e1694 * 0.5f) + 0.5f); let _e1699 = n_2; let _e1700 = fu; let _e1703 = fv; let _e1707 = vnoise(vec2((_e1700 * 5f), (_e1703 * 0.35f))); n_2 = (_e1699 - select((0.12f * smoothstep(0.2f, 0.9f, _e1707)), 0f, faceY)); } let _e1717 = n_2; s.albedo = (base_2 * (0.75f + (0.4f * _e1717))); } else { if (mat == MAT_FLOOR) { let bw_1 = prm_4.x; let b_1 = floor((in_1.world.x / bw_1)); let _e1732 = h1_(vec2(b_1, 7f)); let len_1 = (5f + (4f * _e1732)); let _e1739 = h1_(vec2(b_1, 13f)); let off = (_e1739 * len_1); let zz = (in_1.world.z + off); let seg = floor((zz / len_1)); let key = vec2(b_1, seg); let _e1750 = h1_((key + vec2(prm_4.y))); tone_2 = (0.72f + (0.4f * _e1750)); let _e1766 = lineAA((in_1.world.x - ((b_1 + 0.5f) * bw_1)), ((bw_1 * 0.5f) - 0.012f), fp_1); let _e1775 = lineAA((zz - ((seg + 0.5f) * len_1)), ((len_1 * 0.5f) - 0.01f), fp_1); if detailed_1 { let _e1789 = h1_(key); let _e1792 = woodTone((in_1.world.z * 0.8f), ((in_1.world.x * 0.8f) + (b_1 * 3.7f)), (_e1789 * 20f)); grain = _e1792; let nz = (zz - (seg * len_1)); let ax = (abs(((fract((in_1.world.x / bw_1)) - 0.5f) * bw_1)) - (bw_1 * 0.25f)); let az = (min(nz, (len_1 - nz)) - 0.1f); let nail = (1f - smoothstep(0.014f, (0.014f + fp_1), length(vec2(ax, az)))); let _e1818 = tone_2; tone_2 = (_e1818 * (1f - (0.6f * nail))); } let _e1825 = tone_2; let _e1827 = grain; s.albedo = (((base_2 * _e1825) * _e1827) * mix(0.18f, 1f, (_e1766 * _e1775))); s.spec = vec3(0.03f); s.power = 12f; let r_8 = frame.room; let dwall = min(min((in_1.world.x - r_8.x), (r_8.y - in_1.world.x)), min((in_1.world.z - r_8.z), (r_8.w - in_1.world.z))); let _e1871 = discAO(in_1.world, 5i, 12i); s.ao = (mix(0.45f, 1f, smoothstep(0f, 1.6f, dwall)) * _e1871); } else { if (mat == MAT_PANEL) { let pw_2 = prm_4.x; let ph = prm_4.y; let _e1877 = fu; let _e1878 = fv; let along = select(_e1877, _e1878, faceY); let _e1885 = frame.win2_.w; let up = (in_1.world.y - _e1885); let cu = (along / pw_2); let cv = (up / ph); let fuu = (abs((fract(cu) - 0.5f)) * pw_2); let fvv = (abs((fract(cv) - 0.5f)) * ph); let bx_1 = ((pw_2 * 0.5f) - fuu); let by = ((ph * 0.5f) - fvv); let e_4 = min(bx_1, by); let rail = (1f - smoothstep(0.24f, (0.24f + (fp_1 * 2f)), e_4)); let bevel = (smoothstep(0.24f, 0.36f, e_4) * (1f - smoothstep(0.36f, 0.5f, e_4))); if detailed_1 { let _e1930 = woodTone(select(up, along, (by < bx_1)), select(along, up, (by < bx_1)), prm_4.z); tone_3 = (_e1930 * 0.85f); let tu = sign((fract(cu) - 0.5f)); let tv = sign((fract(cv) - 0.5f)); let _e1941 = FB; let _e1943 = FT; let bn = select((_e1941 * tv), (_e1943 * tu), (bx_1 < by)); let _e1948 = Ng; s.N = normalize((_e1948 + (bn * (bevel * 0.6f)))); } let _e1955 = tone_3; s.albedo = ((base_2 * _e1955) * mix(1f, 0.8f, rail)); s.spec = vec3(0.05f); s.power = 20f; } else { if (mat == MAT_IRON) { s.albedo = base_2; s.spec = vec3(0.12f); s.power = 24f; } else { if (mat == MAT_GLOBE) { let pn = normalize(lp_1); let lon = atan2(pn.z, pn.x); let lat = asin(clamp(pn.y, -1f, 1f)); if detailed_1 { let _e1996 = fbm3_(vec2(((lon * 1.6f) + prm_4.x), (lat * 2.4f))); let _e2002 = vnoise(vec2((lon * 6f), (lat * 8f))); let c_10 = (_e1996 + (0.25f * _e2002)); land = smoothstep(0.05f, 0.12f, c_10); let _e2013 = lineAA((c_10 - 0.085f), 0.02f, 0.01f); let _e2023 = lineAA((fract(((lon / 0.5236f) + 0.5f)) - 0.5f), 0.02f, 0.02f); let _e2033 = lineAA((fract(((lat / 0.5236f) + 0.5f)) - 0.5f), 0.02f, 0.02f); lines = max((_e2013 * 0.9f), (max(_e2023, _e2033) * 0.5f)); } let _e2046 = land; let _e2048 = lines; s.albedo = (mix(base_2, (base_2 * vec3(0.5f, 0.45f, 0.3f)), _e2046) * (1f - (0.8f * _e2048))); s.spec = vec3(0.12f); s.power = 40f; } else { if (mat == MAT_HALL_WINDOW) { let q_8 = (vec2(select(lp_1.x, lp_1.z, faceX), lp_1.y) * 2f); let arch = (1f - smoothstep(0.94f, 1f, length(vec2(q_8.x, (max((q_8.y - 0.28f), 0f) * 1.38f))))); let bars_2 = ((1f - smoothstep(0.018f, 0.036f, abs(q_8.x))) + (1f - smoothstep(0.018f, 0.04f, abs((q_8.y + 0.12f))))); let lead = (1f - smoothstep(0.025f, 0.06f, abs((fract(((q_8.x * 3f) + (q_8.y * 3f))) - 0.5f)))); let moon = ((1f - smoothstep(0.115f, 0.128f, length((q_8 - vec2(0.2f, 0.36f))))) * (1f - step(0.5f, in_1.params.x))); let _e2139 = vnoise((q_8 * 3f)); let sky_2 = (vec3(0.004f, 0.008f, 0.014f) * (0.7f + (0.3f * _e2139))); s.albedo = vec3(0.005f); s.emit = ((((sky_2 + (vec3(0.05f, 0.07f, 0.1f) * moon)) * arch) * (1f - clamp(bars_2, 0f, 1f))) * (1f - (0.55f * lead))); s.spec = vec3(0.12f); s.power = 32f; } else { if (mat == MAT_DIAL) { if (in_1.lnrm.y > 0.5f) { let q_9 = (vec2(lp_1.x, -(lp_1.z)) * 2f); let r_9 = length(q_9); let a_5 = atan2(q_9.x, q_9.y); let fpl_1 = (max(fwl.x, fwl.z) * 2f); let _e2196 = lineAA((r_9 - 0.93f), 0.012f, fpl_1); let _e2200 = lineAA((r_9 - 0.84f), 0.01f, fpl_1); let _e2205 = lineAA((r_9 - 0.585f), 0.008f, fpl_1); let ring = max(max(_e2196, _e2200), _e2205); let _e2217 = lineAA((fract(((a_5 / 0.10472f) + 0.5f)) - 0.5f), 0.07f, (fpl_1 * 9f)); let minute = ((_e2217 * step(0.84f, r_9)) * step(r_9, 0.93f)); let hourDot = (1f - smoothstep(0.022f, (0.022f + fpl_1), length(vec2((r_9 * sin(((fract(((a_5 / 0.5236f) + 0.5f)) * 0.5236f) - 0.2618f))), (r_9 - 0.885f))))); let _e2246 = numeral(q_9, fpl_1); let ink_1 = max(max(ring, minute), max(hourDot, _e2246)); let _e2260 = vnoise(((q_9 * 3.2f) + vec2(11f, 4f))); let age_3 = ((smoothstep(0.5f, 1f, r_9) * 0.3f) + (0.2f * smoothstep(0.3f, 0.9f, ((_e2260 * 0.5f) + 0.5f)))); let enamel = ((base_2 * vec3(1f, 0.93f, 0.8f)) * (1f - age_3)); s.albedo = mix(enamel, vec3(0.03f, 0.025f, 0.02f), ink_1); s.spec = vec3(0.06f); s.power = 40f; let _e2292 = s.albedo; let _e2298 = frame.highlight.w; s.emit = ((_e2292 * DIAL_FLOOR) / vec3(max(_e2298, 1f))); } else { s.albedo = vec3(0.3f, 0.2f, 0.07f); s.spec = vec3(0.6f, 0.45f, 0.2f); s.power = 40f; } } else { if (mat == MAT_INK) { s.albedo = base_2; s.spec = vec3(0.55f); s.power = 85f; } else { if (mat == MAT_DARK) { s.albedo = base_2; s.ao = 0.6f; } else { if (mat == MAT_EMIT) { s.albedo = vec3(0f); s.emit = (base_2 * prm_4.x); } else { if (mat == MAT_WEB) { let q_10 = vec2((lp_1.x + 0.5f), (lp_1.y + 0.5f)); let hub = prm_4.xy; let dv_1 = ((q_10 - hub) * vec2(size_2.x, size_2.y)); let r_10 = length(dv_1); let a_6 = atan2(dv_1.y, dv_1.x); let sa = ((((fract((((a_6 / 6.2831855f) * 11f) + prm_4.z)) - 0.5f) / 11f) * 6.2831855f) * r_10); let fpw = ((max((fwl.x * size_2.x), (fwl.y * size_2.y)) * 1.2f) + 0.002f); let _e2380 = lineAA(sa, 0.0035f, fpw); let ringR = ((r_10 / 0.075f) + (0.35f * sin(((a_6 * 3f) + prm_4.z)))); let _e2397 = lineAA(((fract(ringR) - 0.5f) * 0.075f), 0.003f, fpw); let _e2408 = vnoise((vec2((a_6 * 3f), (r_10 * 9f)) + vec2((prm_4.z * 5f)))); let tatter = step(0.3f, ((_e2408 * 0.5f) + 0.5f)); let reach_1 = (1f - smoothstep(0.55f, 1f, (r_10 / (0.5f * max(size_2.x, size_2.y))))); let edgeFade = smoothstep(0f, 0.08f, min(min(q_10.x, (1f - q_10.x)), min(q_10.y, (1f - q_10.y)))); s.alpha = (clamp((((max(_e2380, (_e2397 * tatter)) * reach_1) * edgeFade) * prm_4.w), 0f, 1f) * 0.8f); s.albedo = vec3(0.55f, 0.55f, 0.52f); s.sheen = 1.5f; } } } } } } } } } } } } } } } } } } } } } let N_2 = s.N; let ndl_3 = dot(N_2, L); let _e2463 = s.wrap; let _e2468 = s.wrap; let wrapD = (max((ndl_3 + _e2463), 0f) / (1f + _e2468)); let H_1 = normalize((L + V_4)); let _e2478 = s.power; let _e2481 = s.power; let specC = (((pow(max(dot(N_2, H_1), 0f), _e2478) * (_e2481 + 8f)) * 0.04f) * step(0f, ndl_3)); let _e2499 = s.sheen; let rim = (pow((1f - clamp(dot(N_2, V_4), 0f, 1f)), 3f) * _e2499); let _e2503 = frame.lightColor; let candle = (_e2503.xyz * E); let _e2507 = s.albedo; let _e2509 = s.ao; let _e2517 = frame.roomLight; let _e2526 = s.ao; let _e2531 = s.spec; color = ((_e2507 * ((candle * ((wrapD * _e2509) + (rim * 0.5f))) + (((_e2517.xyz * Eroom) * (0.5f + (0.5f * ndl_3))) * _e2526))) + ((_e2531 * candle) * specC)); let _e2539 = frame.hall.w; if !((_e2539 > 0f)) { let _e2548 = frame.hall2_.x; local_31 = (_e2548 > 0f); } else { local_31 = true; } let _e2552 = local_31; if _e2552 { let _e2553 = Ll; let wl = (max((dot(N_2, _e2553) + 0.3f), 0f) / 1.3f); let _e2561 = color; let _e2563 = s.albedo; let _e2564 = lantern; let _e2572 = s.ao; color = (_e2561 + ((_e2563 * ((_e2564 * (wl + (rim * 0.4f))) + spill)) * _e2572)); } let ndm = max(dot(N_2, M), 0f); let Hm = normalize((M + V_4)); let _e2584 = s.power; let _e2587 = s.power; let specM = ((pow(max(dot(N_2, Hm), 0f), _e2584) * (_e2587 + 8f)) * 0.04f); let _e2593 = color; let _e2596 = frame.moonColor; let _e2598 = moonVis; let _e2600 = s.moonShade; let _e2604 = s.albedo; let _e2610 = s.spec; color = (_e2593 + ((_e2596.xyz * (_e2598 * _e2600)) * ((_e2604 * (ndm + (rim * 0.4f))) + ((_e2610 * specM) * step(0f, ndm))))); let _e2618 = Ep; if (_e2618 > 0f) { let _e2621 = Lp; let ndp = dot(N_2, _e2621); let _e2624 = s.wrap; let _e2629 = s.wrap; let wrapP = (max((ndp + _e2624), 0f) / (1f + _e2629)); let _e2633 = Lp; let Hp = normalize((_e2633 + V_4)); let _e2640 = s.power; let _e2643 = s.power; let specP = (((pow(max(dot(N_2, Hp), 0f), _e2640) * (_e2643 + 8f)) * 0.04f) * step(0f, ndp)); let _e2652 = color; let _e2655 = frame.poolColor; let _e2657 = Ep; let _e2660 = s.albedo; let _e2662 = s.ao; let _e2669 = s.spec; color = (_e2652 + ((_e2655.xyz * _e2657) * ((_e2660 * ((wrapP * _e2662) + (rim * 0.4f))) + (_e2669 * specP)))); } let _e2674 = color; let _e2676 = s.albedo; let _e2679 = frame.moonColor; let _e2694 = frame.ambient; let _e2699 = s.ao; color = (_e2674 + ((_e2676 * ((_e2679.xyz * (sky * (0.55f + (0.45f * dot(N_2, (toW / vec3(max(dW, 0.0001f)))))))) + _e2694.xyz)) * _e2699)); if !((mat == MAT_PANEL)) { local_32 = (mat == MAT_BOOK); } else { local_32 = true; } let _e2710 = local_32; if !(_e2710) { local_33 = (mat == MAT_PLASTER); } else { local_33 = true; } let _e2717 = local_33; if _e2717 { let _e2721 = frame.misc.y; let dread_1 = smoothstep(0.2f, 0.95f, _e2721); let p_19 = in_1.world; let _e2732 = frame.eye.w; let bend = ((sin(((p_19.y * 0.65f) + (_e2732 * 0.48f))) * dread_1) * 0.65f); let _e2751 = frame.eye.w; let bands = pow((0.5f + (0.5f * sin(((((p_19.x * 1.6f) + (p_19.z * 1.3f)) + bend) + (_e2751 * 0.22f))))), 10f); let _e2762 = color; color = (_e2762 * (1f - ((bands * dread_1) * 0.32f))); } let _e2769 = color; let _e2771 = s.albedo; let _e2775 = s.ao; let _e2779 = s.emit; color = ((_e2769 + ((_e2771 * (gallery + _e404)) * _e2775)) + _e2779); let viewMode = frame.misc.x; if (viewMode > 4.5f) { local_34 = (viewMode < 5.5f); } else { local_34 = false; } let _e2792 = local_34; if _e2792 { color = (lin * 0.6f); } else { if (viewMode > 2.5f) { local_35 = (viewMode < 3.5f); } else { local_35 = false; } let _e2802 = local_35; if _e2802 { let _e2804 = s.ao; color = vec3(_e2804); } else { if (viewMode > 6.5f) { local_36 = (viewMode < 7.5f); } else { local_36 = false; } let _e2813 = local_36; if _e2813 { color = select(vec3(0f, 0f, 0.3f), vec3(1f, 0f, 0f), detailed_1); } } } let _e2823 = color; let _e2827 = frame.eye; let _e2831 = frame.light; let _e2835 = frame.haze; let _e2838 = frame.glow; let _e2839 = atmosphere(_e2823, in_1.world, _e2827.xyz, _e2831.xyz, _e2835, _e2838); let _e2840 = color; color = mix(_e2840, _e2839, select(1f, 0.06f, (mat == 23f))); if (mat == 23f) { let _e2849 = color; color = (_e2849 + (vec3(0.008f, 0.011f, 0.017f) * pow((1f - clamp(dot(N_2, V_4), 0f, 1f)), 3f))); let through = ((pow(max(dot(-(V_4), L), 0f), 3f) * min(E, 2f)) * prm_4.z); let _e2875 = color; color = (_e2875 + (vec3(1f, 0.28f, 0.07f) * (through * 0.05f))); handAlpha = clamp(prm_4.y, 0f, 1f); if (prm_4.x > 0.5f) { let _e2892 = handAlpha; handAlpha = (_e2892 * (1f - smoothstep(-0.35f, 0.5f, lp_1.y))); } let _e2901 = handAlpha; s.alpha = _e2901; } let _e2905 = frame.hall2_.x; if (_e2905 > 0f) { let _e2911 = frame.eye; let gv = (in_1.world - _e2911.xyz); let gd = length(gv); let _e2918 = frame.hall3_.x; let _e2924 = frame.win2_.w; let _e2930 = frame.hall2_.z; let _e2934 = frame.hall2_.w; let _e2939 = doorWorld(vec3((_e2918 + 0.45f), (_e2924 + 0.35f), ((_e2930 + _e2934) * 0.5f))); let _e2942 = frame.eye; let _e2949 = pointGlow(_e2942.xyz, (gv / vec3(max(gd, 0.00001f))), gd, _e2939, GAP_AIR_SOFT); let _e2950 = color; let _e2951 = lanternColor(); let _e2955 = frame.hall2_.x; color = (_e2950 + (_e2951 * ((_e2955 * GAP_AIR) * _e2949))); } let _e2964 = frame.hall.w; if (_e2964 > 0f) { local_37 = inHall; } else { local_37 = false; } let _e2970 = local_37; if _e2970 { let _e2974 = frame.eye; let hv = (in_1.world - _e2974.xyz); let hd = length(hv); let hdir = (hv / vec3(max(hd, 0.00001f))); let _e2984 = frame.eye; let _e2986 = doorSpace(_e2984.xyz); let _e2987 = doorVec(hdir); let _e2991 = frame.hall3_.x; let tw = clamp(((_e2991 - _e2986.x) / min(_e2987.x, -0.0001f)), 0f, hd); let _e3002 = frame.hall; let _e3006 = frame.eye; let tl_2 = (_e3002.xyz - _e3006.xyz); let t0_1 = dot(tl_2, hdir); let k_8 = sqrt((max((dot(tl_2, tl_2) - (t0_1 * t0_1)), 0f) + LANTERN_AIR_SOFT)); let g_6 = ((atan(((hd - t0_1) / k_8)) - atan(((tw - t0_1) / k_8))) / k_8); let _e3026 = color; let _e3027 = lanternColor(); let _e3031 = frame.hall.w; let _e3038 = frame.haze.w; color = (_e3026 + (_e3027 * (((_e3031 * LANTERN_AIR) * g_6) * exp((-(_e3038) * max((tw - HAZE_START), 0f)))))); } let _e3052 = frame.shaft.w; if (_e3052 > 0.5f) { let _e3058 = s.alpha; local_38 = (_e3058 > 0.99f); } else { local_38 = false; } let _e3062 = local_38; if _e3062 { let _e3066 = frame.eye; let dv_2 = (in_1.world - _e3066.xyz); let dist_4 = length(dv_2); let dir_3 = (dv_2 / vec3(max(dist_4, 0.00001f))); let _e3079 = frame.eye.w; let _e3085 = frame.eye.w; let _e3090 = ign((in_1.position.xy + vec2((_e3079 * 37f), (_e3085 * 11f)))); let _e3093 = frame.eye; let _e3097 = frame.win; let _e3100 = frame.win2_; let _e3104 = frame.misc.w; let _e3105 = shaftScatter(_e3093.xyz, dir_3, dist_4, d_7, _e3097, _e3100, _e3090, _e3104); if (_e3105 > 0f) { let _e3113 = frame.moonColor.w; let _e3114 = hgPhase(dot(d_7, -(dir_3)), _e3113); let x_5 = (_e3105 * _e3114); let _e3116 = color; let _e3119 = frame.shaft; color = (_e3116 + (_e3119.xyz * (SHAFT_KNEE * (1f - exp((-(x_5) / SHAFT_KNEE)))))); } } let _e3132 = s.alpha; outA = _e3132; let _e3137 = frame.hall4_.z; if (_e3137 > 0f) { let _e3143 = s.alpha; local_39 = (_e3143 > 0.99f); } else { local_39 = false; } let _e3147 = local_39; if _e3147 { let _e3151 = frame.eye; let dist_5 = length((in_1.world - _e3151.xyz)); let _e3158 = frame.hall4_.z; let _e3162 = frame.hall4_.w; outA = (1f - clamp((_e3158 * abs((1f - (_e3162 / max(dist_5, 0.001f))))), 0f, 1f)); } let _e3175 = color; let _e3179 = frame.ambient.w; let _e3180 = encodeHdr(_e3175, _e3179); let _e3182 = s.alpha; let _e3184 = outA; return vec4((_e3180 * _e3182), _e3184); }   ‘Hq»Ü[vs_mainmain5·#version 300 es precision highp float; precision highp int; struct Taper { float R0_; float R1_; float L; float seed; float burn; float drip; float span; float rho; float dc; }; struct Drip { float ang; float born; float len; float w; float th; }; struct TaperV { vec3 pos; vec3 nrm; vec3 info; }; struct Frame { mat4x4 viewProj; vec4 eye; vec4 light; vec4 lightColor; vec4 roomLight; vec4 moonTravel; vec4 moonColor; vec4 ambient; vec4 win; vec4 win2_; vec4 haze; vec4 glow; vec4 shaft; vec4 desk; vec4 deskY; vec4 book; vec4 room; vec4 highlight; vec4 misc; vec4 discs[12]; vec4 hall; vec4 hall2_; vec4 hall3_; vec4 hall4_; vec4 candlePos[8]; vec4 candleFx[8]; vec4 pool; vec4 poolColor; vec4 door0_; vec4 door1_; }; struct VsIn { vec3 pos; vec3 nrm; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 color; vec4 params; }; struct VsOut { vec4 position; vec3 world; vec3 normal; vec3 local; vec3 lnrm; vec4 color; vec4 params; vec4 size; vec4 ax; vec4 ay; }; struct Surf { vec3 albedo; vec3 spec; float power; vec3 emit; vec3 N; float ao; float sheen; float alpha; float wrap; float moonShade; }; struct OwnFlame { vec3 pos; float level; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; const float MAT_WOOD = 0.0; const float MAT_BOOK = 1.0; const float MAT_BRASS = 2.0; const float MAT_PAPER = 3.0; const float MAT_GLASS = 4.0; const float MAT_WAX = 5.0; const float MAT_FABRIC = 6.0; const float MAT_PLASTER = 7.0; const float MAT_FLOOR = 8.0; const float MAT_PANEL = 9.0; const float MAT_IRON = 10.0; const float MAT_GLOBE = 11.0; const float MAT_DIAL = 12.0; const float MAT_INK = 13.0; const float MAT_DARK = 14.0; const float MAT_WEB = 15.0; const float MAT_LEATHER = 16.0; const float MAT_EMIT = 17.0; const float MAT_CURTAIN = 18.0; const float MAT_HALL_WINDOW = 19.0; const float MAT_CANDLE_FLAME = 20.0; const float MAT_CANDLE_SMOKE = 21.0; const float MAT_CANDLE_EMBER = 22.0; const float MAT_TAPER = 30.0; const float MAT_CMETAL = 31.0; const float MAT_CWAX = 32.0; const vec3 LANTERN_WARM = vec3(1.0, 0.6, 0.28); const vec3 HALL_COLD = vec3(0.34, 0.42, 0.62); const float DIAL_FLOOR = 0.025; const float SHAFT_KNEE = 0.8; const float LANTERN_AIR = 0.012; const float LANTERN_AIR_SOFT = 0.3; const float GAP_AIR = 0.018; const float GAP_AIR_SOFT = 0.5; const float NEAR_I = 0.46; const float NEAR_S2_ = 0.0484; const vec3 NEAR_COLOR = vec3(1.0, 0.64, 0.33); const float WAX_NEAR = 0.75; const float WAX_FAR = 0.1; const float WAX_EDGE = 0.08; const float WAX_LIP = 0.7; const float WAX_POOL = 0.6; const float WAX_BOUNCE = 0.05; const float WAX_BOUNCE_POOL = 0.022; layout(std140) uniform Frame_block_0Vertex { Frame _group_0_binding_0_vs; }; layout(location = 0) in vec3 _p2vs_location0; layout(location = 1) in vec3 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; smooth out vec3 _vs2fs_location0; smooth out vec3 _vs2fs_location1; smooth out vec3 _vs2fs_location2; smooth out vec3 _vs2fs_location3; flat out vec4 _vs2fs_location4; flat out vec4 _vs2fs_location5; flat out vec4 _vs2fs_location6; flat out vec4 _vs2fs_location7; flat out vec4 _vs2fs_location8; vec3 srgbToLinear(vec3 c) { vec3 x_2 = max(c, vec3(0.0)); vec3 lo = (x_2 * 0.07739938); vec3 hi = pow(((x_2 + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x_2, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_3 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_3 * 12.92); vec3 hi_1 = ((1.055 * pow(x_3, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_3, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v_1) { uvec2 w = uvec2(0u); w = ((v_1 * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_10 = floor(p_1); vec2 f_2 = (p_1 - i_10); vec2 u_2 = ((f_2 * f_2) * (vec2(3.0) - (2.0 * f_2))); ivec2 ii = ivec2(i_10); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u_2.x), mix(_e21, _e26, u_2.x), u_2.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_11 = floor(p_2); vec2 f_3 = (p_2 - i_11); vec2 u_3 = ((f_3 * f_3) * (vec2(3.0) - (2.0 * f_3))); vec2 du = ((6.0 * f_3) * (vec2(1.0) - f_3)); ivec2 ii_1 = ivec2(i_11); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_9 = (((_e17 + (k1_ * u_3.x)) + (k2_ * u_3.y)) + ((k4_ * u_3.x) * u_3.y)); vec2 g_3 = (du * vec2((k1_ + (k4_ * u_3.y)), (k2_ + (k4_ * u_3.x)))); return vec3(((n_9 * 2.0) - 1.0), (g_3 * 2.0)); } float fbm3_(vec2 p_3) { float s_1 = 0.0; float _e1 = vnoise(p_3); s_1 = (_e1 * 0.57); float _e5 = s_1; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s_1 = (_e5 + (_e12 * 0.29)); float _e16 = s_1; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s_1 = (_e16 + (_e23 * 0.14)); float _e27 = s_1; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL_1 = (light - eye); float t0_ = dot(toL_1, dir); float h2_ = max((dot(toL_1, toL_1) - (t0_ * t0_)), 0.0); float k_1 = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k_1)) + atan((t0_ / k_1))) / k_1); } vec3 atmosphere(vec3 col, vec3 world_1, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world_1 - eye_1); float dist_3 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_3, 1e-5))); float T = exp((-(haze.w) * max((dist_3 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_3, light_1, glow.w); return (((col * T) + (haze.xyz * (1.0 - T))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_40 = false; bool local_41 = false; bool local_42 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_2 = ((x1_ - x0_) * 0.5); float cx = (x0_ + r_2); float s_5 = max(soft, 0.0001); if (!((q.x < (x0_ - s_5)))) { local_40 = (q.x > (x1_ + s_5)); } else { local_40 = true; } bool _e25 = local_40; if (!(_e25)) { local_41 = (q.y < (sill - s_5)); } else { local_41 = true; } bool _e33 = local_41; if (!(_e33)) { local_42 = (q.y > ((spring + r_2) + s_5)); } else { local_42 = true; } bool _e42 = local_42; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_5), s_5, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_5), s_5, (q.y - sill))); float dArch = (r_2 - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_5), s_5, dArch); float open_1 = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_5), (bw + s_5), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_5), ((bw * 0.8) + s_5), tf)) * step(q.y, spring))); float a_2 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_2 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_5), ((bw * 0.7) + s_5), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_5)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_5), (0.012 + s_5), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open_1 * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_6 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_6)), s_6); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g_1) { float gg = (g_1 * g_1); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g_1) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_11 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_4 = (qa + (t_11 * qd)); float s_7 = (((eye_2.z + (t_11 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_4, win_2, win2_2, (0.008 + (s_7 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_7) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } Taper taperOf(vec3 size, float seed, float burn, float ratio, vec4 prm) { Taper t_1 = Taper(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); t_1.R0_ = (0.5 * size.x); float _e12 = t_1.R0_; t_1.R1_ = (_e12 * clamp(ratio, 0.5, 1.2)); t_1.L = max(size.y, 0.0001); t_1.seed = seed; t_1.burn = burn; t_1.drip = prm.z; t_1.span = prm.w; float _e29 = t_1.R1_; t_1.rho = (0.15 * _e29); float _e34 = t_1.R1_; t_1.dc = (0.26 * _e34); Taper _e37 = t_1; return _e37; } float tHash(float n_3) { return fract((sin(n_3) * 43758.547)); } float wrapAngle(float a) { return (a - (6.2831855 * floor(((a / 6.2831855) + 0.5)))); } Drip dripSlot(Taper t_2, int i_3) { Drip d_3 = Drip(0.0, 0.0, 0.0, 0.0, 0.0); float fi = (float(i_3) + 1.0); float _e13 = tHash(((t_2.seed * 1.37) + (fi * 12.9898))); d_3.ang = (6.2831855 * _e13); float _e23 = tHash(((t_2.seed * 2.11) + (fi * 78.233))); d_3.born = mix(-0.6, 0.95, _e23); float _e33 = tHash(((t_2.seed * 3.07) + (fi * 37.719))); d_3.len = ((t_2.R1_ * (1.6 + ((9.0 * _e33) * _e33))) * t_2.drip); float _e50 = tHash(((t_2.seed * 4.31) + (fi * 4.581))); d_3.w = (t_2.R1_ * (0.26 + (0.2 * _e50))); d_3.th = (t_2.R1_ * (0.11 + (0.13 * _e50))); Drip _e65 = d_3; return _e65; } float dripAt(Taper t_3, float theta, float y) { float sum_1 = 0.0; int i_4 = 0; bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e90 = i_4; i_4 = (_e90 + 1); } loop_init_1 = false; int _e7 = i_4; if ((_e7 < 6)) { } else { break; } { int _e10 = i_4; Drip _e11 = dripSlot(t_3, _e10); float age_1 = (t_3.burn - _e11.born); float grown = smoothstep(0.0, 0.035, age_1); float len = max((_e11.len * grown), 0.0001); float y0_ = ((t_3.L + (t_3.span * max(age_1, 0.0))) - (0.7 * t_3.rho)); float u_4 = ((y0_ - y) / len); float uc = clamp(u_4, 0.0, 1.0); float _e39 = wrapAngle((theta - _e11.ang)); float across = (_e39 * t_3.R1_); float bulb = exp(((-((u_4 - 0.86)) * (u_4 - 0.86)) * 90.0)); float width = (_e11.w * ((1.0 - (0.3 * uc)) + (0.6 * bulb))); float body = (smoothstep(-0.15, 0.04, u_4) * (1.0 - smoothstep(0.94, 1.05, u_4))); float thick = (((_e11.th * ((0.75 + (0.35 * uc)) + (0.9 * bulb))) * body) * step(0.0001, grown)); float _e82 = sum_1; sum_1 = (_e82 + (thick * exp((-((across * across)) / (width * width))))); } } float _e93 = sum_1; return _e93; } float notchAt(Taper t_4, float theta_1) { float n_4 = 0.0; int i_5 = 0; bool loop_init_2 = true; while(true) { if (!loop_init_2) { int _e43 = i_5; i_5 = (_e43 + 1); } loop_init_2 = false; int _e6 = i_5; if ((_e6 < 6)) { } else { break; } { int _e9 = i_5; Drip _e10 = dripSlot(t_4, _e9); float age_2 = (t_4.burn - _e10.born); float fresh = (step(0.0, age_2) * (1.0 - smoothstep(0.0, (2.5 * t_4.rho), (t_4.span * age_2)))); float _e28 = wrapAngle((theta_1 - _e10.ang)); float across_1 = (_e28 * t_4.R1_); float _e31 = n_4; n_4 = (_e31 + (fresh * exp((-((across_1 * across_1)) / ((1.6 * _e10.w) * _e10.w))))); } } float _e46 = n_4; return ((min(_e46, 1.0) * 0.8) * t_4.rho); } float crestAt(Taper t_5, float theta_2) { float _e3 = notchAt(t_5, theta_2); return ((t_5.L - _e3) - ((0.2 * t_5.rho) * (0.5 + (0.5 * sin(((2.0 * theta_2) + (t_5.seed * 5.0))))))); } float bareRadius(Taper t_6, float theta_3, float y_1) { float k_2 = clamp((y_1 / t_6.L), 0.0, 1.0); float wob = ((1.0 + (0.016 * sin((((2.0 * theta_3) + (t_6.seed * 3.1)) + (y_1 * 31.0))))) + (0.01 * sin((((3.0 * theta_3) - (t_6.seed * 1.7)) + (y_1 * 57.0))))); return (mix(t_6.R0_, t_6.R1_, k_2) * wob); } float shaftRadius(Taper t_7, float theta_4, float y_2) { float _e3 = bareRadius(t_7, theta_4, y_2); float _e4 = dripAt(t_7, theta_4, y_2); return (_e3 + _e4); } vec3 taperShaftNormal(Taper t_8, float theta_5, float y_3) { float _e3 = shaftRadius(t_8, theta_5, y_3); float e_1 = max((t_8.L * 0.004), 0.0002); float _e10 = shaftRadius(t_8, theta_5, (y_3 + e_1)); float _e12 = shaftRadius(t_8, theta_5, (y_3 - e_1)); float ry = ((_e10 - _e12) / (2.0 * e_1)); float _e19 = shaftRadius(t_8, (theta_5 + 0.03), y_3); float _e21 = shaftRadius(t_8, (theta_5 - 0.03), y_3); float ra = ((_e19 - _e21) / (2.0 * 0.03)); float c_4 = cos(theta_5); float s_8 = sin(theta_5); vec3 er = vec3(c_4, 0.0, s_8); vec3 et = vec3(-(s_8), 0.0, c_4); return normalize(((er - (et * (ra / max(_e3, 1e-5)))) - vec3(0.0, ry, 0.0))); } TaperV taperVertex(vec3 g_2, Taper t_9) { float r = 0.0; float y_4 = 0.0; vec3 n_5 = vec3(0.0, -1.0, 0.0); float drip = 0.0; TaperV out_1 = TaperV(vec3(0.0), vec3(0.0), vec3(0.0)); float theta_6 = g_2.x; float s_9 = g_2.y; float region = g_2.z; float c_5 = cos(theta_6); float sn = sin(theta_6); vec3 er_1 = vec3(c_5, 0.0, sn); float _e9 = crestAt(t_9, theta_6); float ys = max((_e9 - t_9.rho), 0.0); if ((region < 0.5)) { float _e28 = shaftRadius(t_9, theta_6, 0.0); r = (_e28 * s_9); } else { if ((region < 1.5)) { y_4 = (s_9 * ys); float _e33 = y_4; float _e34 = dripAt(t_9, theta_6, _e33); drip = _e34; float _e35 = y_4; float _e36 = bareRadius(t_9, theta_6, _e35); float _e37 = drip; r = (_e36 + _e37); float _e39 = y_4; vec3 _e40 = taperShaftNormal(t_9, theta_6, _e39); n_5 = _e40; } else { if ((region < 2.5)) { float _e43 = shaftRadius(t_9, theta_6, ys); float phi = (3.1415927 * s_9); r = ((_e43 - t_9.rho) + (t_9.rho * cos(phi))); y_4 = (ys + (t_9.rho * sin(phi))); n_5 = ((er_1 * cos(phi)) + vec3(0.0, sin(phi), 0.0)); } else { float _e63 = shaftRadius(t_9, theta_6, ys); float rin = (_e63 - (2.0 * t_9.rho)); float pool = (t_9.L - t_9.dc); float rp = (rin * 0.9); if ((s_9 < 0.3)) { float w_2 = (s_9 / 0.3); r = mix(rin, rp, w_2); y_4 = mix(ys, pool, sin((w_2 * 1.5707963))); n_5 = normalize((((-(er_1) * (1.0 - w_2)) * 1.4) + vec3(0.0, (0.6 + w_2), 0.0))); } else { float w_3 = ((s_9 - 0.3) / 0.7); r = (rp * (1.0 - w_3)); y_4 = (pool - ((0.08 * t_9.dc) * w_3)); n_5 = vec3(0.0, 1.0, 0.0); } } } } float _e113 = r; float _e115 = y_4; out_1.pos = ((er_1 * _e113) + vec3(0.0, _e115, 0.0)); vec3 _e121 = n_5; out_1.nrm = _e121; float _e123 = y_4; float _e127 = drip; out_1.info = vec3(region, max((_e9 - _e123), 0.0), (_e127 / max(t_9.R1_, 1e-5))); TaperV _e133 = out_1; return _e133; } vec3 lanternColor() { float _e5 = _group_0_binding_0_vs.hall4_.x; return mix(LANTERN_WARM, HALL_COLD, clamp(_e5, 0.0, 1.0)); } vec3 cloth(vec3 q_1, float seed_1) { float h = clamp((0.5 - q_1.y), 0.0, 1.0); float t_12 = _group_0_binding_0_vs.eye.w; float _e15 = _group_0_binding_0_vs.misc.y; float dread = smoothstep(0.08, 0.95, _e15); float gust = ((0.55 + (0.25 * sin((t_12 * 0.73)))) + (0.2 * sin(((t_12 * 1.17) + 1.4)))); float wind = (0.025 + (dread * (0.25 + (0.5 * gust)))); float sway = (((h * h) * wind) * ((0.55 * sin((((t_12 * 1.8) - (h * 3.0)) + seed_1))) + (0.24 * sin(((t_12 * 3.3) - (h * 6.0)))))); float folds = (0.085 * sin((((q_1.x + 0.5) * 37.7) + ((h * wind) * sin(((t_12 * 1.4) + seed_1)))))); float billow = ((h * wind) * (0.6 + (0.4 * sin(((((t_12 * 2.1) - (h * 4.0)) + (q_1.x * 2.0)) + seed_1))))); return vec3((q_1.x + sway), (q_1.y + (((h * wind) * 0.025) * sin(((t_12 * 2.8) + (q_1.x * 8.0))))), (folds + billow)); } float shoulder(float x, float knee, float r_1) { bool local_43 = false; if (!((x <= knee))) { local_43 = (r_1 <= 0.0); } else { local_43 = true; } bool _e10 = local_43; if (_e10) { return x; } return (knee + (r_1 * log((1.0 + ((x - knee) / r_1))))); } float h1_(vec2 p_6) { float _e3 = hashCell(ivec2(floor(p_6))); return _e3; } float lineAA(float d_4, float halfWidth, float fp) { return (1.0 - smoothstep((halfWidth - fp), (halfWidth + fp), abs(d_4))); } float fbm2_(vec2 p_7) { float _e1 = vnoise(p_7); float _e10 = vnoise(((p_7 * 2.03) + vec2(17.1, 3.7))); return ((_e1 * 0.66) + (_e10 * 0.34)); } float woodTone(float u_1, float v_2, float seed_2) { vec2 p_16 = (vec2(u_1, v_2) + vec2((seed_2 * 3.17), (seed_2 * 1.73))); float _e14 = fbm2_((p_16 * vec2(1.3, 4.0))); float warp = (_e14 * 0.9); float _e27 = vnoise((p_16 * vec2(0.6, 9.0))); float rings = (0.5 + (0.5 * sin((((p_16.y * 46.0) + (warp * 7.0)) + (_e27 * 2.0))))); float _e40 = vnoise((p_16 * vec2(3.0, 140.0))); float streak = ((_e40 * 0.5) + 0.5); return ((0.72 + ((0.34 * rings) * rings)) + (0.18 * (streak - 0.5))); } float slabShade(vec3 p_8, vec3 toL) { bool local_44 = false; float y_5 = _group_0_binding_0_vs.deskY.x; if (!((p_8.y > (y_5 - 0.25)))) { local_44 = (toL.y <= 0.0001); } else { local_44 = true; } bool _e17 = local_44; if (_e17) { return 1.0; } float t_13 = ((y_5 - p_8.y) / toL.y); if ((t_13 > 1.0)) { return 1.0; } vec2 c_6 = (p_8.xz + (toL.xz * t_13)); vec4 r_3 = _group_0_binding_0_vs.desk; float inside = min(min((c_6.x - r_3.x), (r_3.y - c_6.x)), min((c_6.y - r_3.z), (r_3.w - c_6.y))); float _e51 = _group_0_binding_0_vs.deskY.y; float pen = (_e51 * (0.3 + (t_13 * 3.0))); return smoothstep(-(pen), pen, -(inside)); } float discAO(vec3 p_9, int first, int last) { float ao = 1.0; int i_6 = 0; i_6 = first; bool loop_init_3 = true; while(true) { if (!loop_init_3) { int _e33 = i_6; i_6 = (_e33 + 1); } loop_init_3 = false; int _e6 = i_6; if ((_e6 < last)) { } else { break; } { int _e10 = i_6; vec4 d_5 = _group_0_binding_0_vs.discs[_e10]; float r_4 = (length((p_9.xz - d_5.xy)) / max(d_5.z, 0.0001)); float _e21 = ao; ao = (_e21 * (1.0 - (abs(d_5.w) * (1.0 - smoothstep(0.55, 1.35, r_4))))); } } float _e36 = ao; return _e36; } vec3 doorSpace(vec3 p_10) { vec4 _e4 = _group_0_binding_0_vs.door0_; vec2 r_5 = (p_10.xz - _e4.xy); float _e10 = _group_0_binding_0_vs.door1_.z; vec4 _e13 = _group_0_binding_0_vs.door0_; float _e21 = _group_0_binding_0_vs.door1_.w; vec4 _e24 = _group_0_binding_0_vs.door1_; return vec3((_e10 + dot(r_5, _e13.zw)), p_10.y, (_e21 + dot(r_5, _e24.xy))); } vec3 doorVec(vec3 v_3) { vec4 _e4 = _group_0_binding_0_vs.door0_; vec4 _e11 = _group_0_binding_0_vs.door1_; return vec3(dot(v_3.xz, _e4.zw), v_3.y, dot(v_3.xz, _e11.xy)); } vec3 doorWorld(vec3 q_2) { float _e5 = _group_0_binding_0_vs.door1_.z; float u_5 = (q_2.x - _e5); float _e11 = _group_0_binding_0_vs.door1_.w; float v_4 = (q_2.z - _e11); vec4 _e15 = _group_0_binding_0_vs.door0_; vec4 _e19 = _group_0_binding_0_vs.door0_; vec4 _e25 = _group_0_binding_0_vs.door1_; vec2 xz = ((_e15.xy + (_e19.zw * u_5)) + (_e25.xy * v_4)); return vec3(xz.x, q_2.y, xz.y); } float doorPortal(vec3 pw, vec3 lw) { float open = 0.0; vec3 _e2 = doorSpace(pw); vec3 _e3 = doorSpace(lw); float wx = _group_0_binding_0_vs.hall3_.x; float sp = (_e2.x - wx); float sl = (_e3.x - wx); if (((sp * sl) >= 0.0)) { return 1.0; } float t_14 = (sp / (sp - sl)); vec3 c_7 = (_e2 + ((_e3 - _e2) * t_14)); float z0_ = _group_0_binding_0_vs.hall2_.z; float z1_ = _group_0_binding_0_vs.hall2_.w; float top_1 = _group_0_binding_0_vs.hall3_.y; open = (smoothstep(-(0.04), 0.04, min((c_7.z - z0_), (z1_ - c_7.z))) * smoothstep(-(0.04), 0.04, (top_1 - c_7.y))); float a_3 = _group_0_binding_0_vs.hall2_.y; float _e54 = _group_0_binding_0_vs.hall3_.z; vec2 h_1 = vec2(_e54, z0_); float _e62 = _group_0_binding_0_vs.hall3_.w; vec2 u_6 = (vec2(sin(a_3), cos(a_3)) * _e62); vec2 r_6 = (_e3.xz - _e2.xz); float den = ((r_6.x * u_6.y) - (r_6.y * u_6.x)); if ((abs(den) > 1e-5)) { vec2 q_5 = (h_1 - _e2.xz); float tt = (((q_5.x * u_6.y) - (q_5.y * u_6.x)) / den); float ss = (((q_5.x * r_6.y) - (q_5.y * r_6.x)) / den); float yh = (_e2.y + ((_e3.y - _e2.y) * tt)); float _e119 = _group_0_binding_0_vs.win2_.w; float hit = (((((step(0.0, tt) * step(tt, 1.0)) * smoothstep(-0.03, 0.03, ss)) * (1.0 - smoothstep(0.97, 1.03, ss))) * step(_e119, yh)) * step(yh, top_1)); float _e124 = open; open = (_e124 * (1.0 - hit)); } float _e128 = open; return _e128; } float doorSpill(vec3 pw_1) { bool local_45 = false; bool local_46 = false; vec3 _e1 = doorSpace(pw_1); float _e6 = _group_0_binding_0_vs.hall3_.x; float dx = (_e1.x - _e6); float _e11 = _group_0_binding_0_vs.hall2_.x; if (!((_e11 <= 0.0))) { local_45 = (dx < 0.0); } else { local_45 = true; } bool _e20 = local_45; if (!(_e20)) { float _e28 = _group_0_binding_0_vs.win2_.w; local_46 = (_e1.y > (_e28 + 0.05)); } else { local_46 = true; } bool _e33 = local_46; if (_e33) { return 0.0; } float spread = (0.1 + (dx * 0.7)); float _e46 = _group_0_binding_0_vs.hall2_.z; float _e51 = _group_0_binding_0_vs.hall2_.w; float inZ = smoothstep(-(spread), (spread * 0.3), min((_e1.z - _e46), (_e51 - _e1.z))); float _e59 = _group_0_binding_0_vs.hall2_.x; return (((_e59 * 5.0) * inZ) / (1.0 + ((dx / 0.7) * (dx / 0.7)))); } vec3 galleryMoon(vec3 p_11, vec3 normal_1) { float t_15 = ((2.4 - p_11.z) / 0.44); vec2 q_6 = vec2((p_11.x - (0.28 * t_15)), (p_11.y + (0.85 * t_15))); float bay = roundEven(((-(q_6.x) - 10.5) / 5.5)); float localX = ((q_6.x + 10.5) + (5.5 * bay)); float xmask = (1.0 - smoothstep(0.65, 0.74, abs(localX))); float ymask = (smoothstep(0.94, 1.04, q_6.y) * (1.0 - smoothstep(5.02, 5.12, q_6.y))); float bars_1 = (smoothstep(0.026, 0.065, abs(localX)) * smoothstep(0.035, 0.085, abs((q_6.y - 3.0)))); float mask = (((((xmask * ymask) * bars_1) * step(0.0, bay)) * step(bay, 4.0)) * step(0.0, t_15)); float ndl = max(dot(normal_1, vec3(-0.2807732, 0.8523472, 0.441215)), 0.0); return (vec3(0.0035, 0.0055, 0.0085) + ((vec3(0.12, 0.18, 0.28) * mask) * ndl)); } vec3 fixedCandle(vec3 p_12, vec3 n_6, vec4 source, float radius) { if ((source.w <= 0.0001)) { return vec3(0.0); } vec3 delta = (source.xyz - p_12); float d2_ = dot(delta, delta); if ((d2_ >= (radius * radius))) { return vec3(0.0); } float reach = (1.0 - smoothstep((radius * 0.55), radius, sqrt(d2_))); float _e22 = slabShade(p_12, delta); float _e24 = doorPortal(p_12, source.xyz); float visibility = (_e22 * _e24); float ndl_1 = (max((dot(n_6, (delta * inversesqrt(max(d2_, 1e-6)))) + 0.22), 0.0) / 1.22); return ((((vec3(1.0, 0.42, 0.12) * (source.w / (d2_ + 0.3))) * reach) * visibility) * ndl_1); } vec3 fixedCandlesSkip(vec3 p_13, vec3 n_7, int skip) { vec3 sum_2 = vec3(0.0); int i_7 = 0; bool loop_init_4 = true; while(true) { if (!loop_init_4) { int _e29 = i_7; i_7 = (_e29 + 1); } loop_init_4 = false; int _e8 = i_7; if ((_e8 < 8)) { } else { break; } { int _e11 = i_7; if ((_e11 != skip)) { vec3 _e13 = sum_2; int _e16 = i_7; vec4 _e18 = _group_0_binding_0_vs.candlePos[_e16]; int _e21 = i_7; float _e24 = _group_0_binding_0_vs.candleFx[_e21].y; vec3 _e27 = fixedCandle(p_13, n_7, _e18, max(_e24, 0.5)); sum_2 = (_e13 + _e27); } } } vec3 _e32 = sum_2; return _e32; } vec3 fixedCandles(vec3 p_14, vec3 n_8) { vec3 _e3 = fixedCandlesSkip(p_14, n_8, -1); return _e3; } float strokeD(vec2 p_15, vec2 a_1, vec2 b) { vec2 pa = (p_15 - a_1); vec2 ba = (b - a_1); float hh = clamp((dot(pa, ba) / max(dot(ba, ba), 1e-8)), 0.0, 1.0); return length((pa - (ba * hh))); } float numeral(vec2 q_3, float fpl) { uint codes[12] = uint[12](23u, 1u, 5u, 21u, 85u, 2u, 6u, 22u, 86u, 13u, 3u, 7u); uint counts[12] = uint[12](3u, 1u, 2u, 3u, 4u, 1u, 2u, 3u, 4u, 2u, 1u, 2u); float w_1 = 0.0; uint i_8 = 0u; float x_1 = 0.0; float dist_2 = 10.0; uint i_9 = 0u; float r_7 = length(q_3); float ang = atan(q_3.x, q_3.y); float a_4 = ((ang < 0.0) ? (ang + 6.2831855) : ang); float kf = floor(((a_4 / 0.5235988) + 0.5)); uint k_3 = (uint(kf) % 12u); float d_6 = (a_4 - (kf * 0.5235988)); float lx = ((r_7 * sin(d_6)) / 0.17); float ly = (((r_7 * cos(d_6)) - (0.715 - (0.17 * 0.5))) / 0.17); uint code = codes[k_3]; uint n_10 = counts[k_3]; bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e90 = i_8; i_8 = (_e90 + 1u); } loop_init_5 = false; uint _e70 = i_8; if ((_e70 < 4u)) { } else { break; } { uint _e73 = i_8; if ((_e73 < n_10)) { uint _e76 = i_8; uint g_4 = ((code >> (2u * _e76)) & 3u); float _e81 = w_1; w_1 = ((_e81 + ((g_4 == 1u) ? 0.24 : 0.56)) + 0.07); } } } float _e93 = w_1; x_1 = ((-(_e93) * 0.5) + 0.035); bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e183 = i_9; i_9 = (_e183 + 1u); } loop_init_6 = false; uint _e104 = i_9; if ((_e104 < 4u)) { } else { break; } { uint _e107 = i_9; if ((_e107 < n_10)) { uint _e110 = i_9; uint g_5 = ((code >> (2u * _e110)) & 3u); float gw = ((g_5 == 1u) ? 0.24 : 0.56); float _e120 = x_1; vec2 p_17 = vec2((lx - _e120), ly); if ((g_5 == 1u)) { float _e125 = dist_2; float _e134 = strokeD(p_17, vec2((gw * 0.5), 0.06), vec2((gw * 0.5), 0.94)); dist_2 = min(_e125, _e134); } else { if ((g_5 == 2u)) { float _e138 = dist_2; float _e146 = strokeD(p_17, vec2(0.04, 0.94), vec2((gw * 0.5), 0.06)); dist_2 = min(_e138, _e146); float _e148 = dist_2; float _e157 = strokeD(p_17, vec2((gw - 0.04), 0.94), vec2((gw * 0.5), 0.06)); dist_2 = min(_e148, _e157); } else { float _e159 = dist_2; float _e167 = strokeD(p_17, vec2(0.04, 0.94), vec2((gw - 0.04), 0.06)); dist_2 = min(_e159, _e167); float _e169 = dist_2; float _e177 = strokeD(p_17, vec2(0.04, 0.06), vec2((gw - 0.04), 0.94)); dist_2 = min(_e169, _e177); } } float _e179 = x_1; x_1 = ((_e179 + gw) + 0.07); } } } float inBand = (step(-0.2, ly) * step(ly, 1.2)); float _e197 = dist_2; return ((1.0 - smoothstep((0.075 - (fpl / 0.17)), (0.075 + (fpl / 0.17)), _e197)) * inBand); } OwnFlame ownFlame(int k) { OwnFlame f = OwnFlame(vec3(0.0), 0.0); vec4 _e5 = _group_0_binding_0_vs.light; f.pos = _e5.xyz; float _e11 = _group_0_binding_0_vs.light.w; f.level = (clamp((_e11 / NEAR_I), 0.0, 1.6) * step(0.0, float(k))); if ((k > 0)) { vec4 c_8 = _group_0_binding_0_vs.candlePos[(k - 1)]; f.pos = c_8.xyz; float _e38 = _group_0_binding_0_vs.candleFx[(k - 1)].x; f.level = _e38; } OwnFlame _e39 = f; return _e39; } vec3 nearLight(OwnFlame f_1, vec3 world_2, vec3 N_1, vec3 V, vec3 albedo, vec3 spec, float power, float wrap) { vec3 dl = (f_1.pos - world_2); float dd = dot(dl, dl); vec3 Lo = (dl * inversesqrt(max(dd, 1e-8))); float _e24 = _group_0_binding_0_vs.highlight.x; float _e28 = _group_0_binding_0_vs.highlight.y; float _e29 = shoulder(((NEAR_I * f_1.level) / (dd + NEAR_S2_)), _e24, _e28); float ndl_2 = dot(N_1, Lo); vec3 H = normalize((Lo + V)); float sp_1 = (((pow(max(dot(N_1, H), 0.0), power) * (power + 8.0)) * 0.04) * step(0.0, ndl_2)); return ((NEAR_COLOR * _e29) * (((albedo * max((ndl_2 + wrap), 0.0)) / vec3((1.0 + wrap))) + (spec * sp_1))); } Surf candleTaper(Surf s0_, vec3 world_3, vec3 lp, vec3 info, vec4 size_1, float burn_1, float ratio_1, vec4 prm_1, vec3 AX, vec3 AY, vec3 AZ, vec3 V_1) { Surf s_2 = Surf(vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, 0.0); float drip_1 = 0.0; bool local_47 = false; bool local_48 = false; float glow_1 = 0.0; bool local_49 = false; float bounce = 0.0; s_2 = s0_; Taper _e16 = taperOf(size_1.xyz, abs(size_1.w), burn_1, ratio_1, prm_1); float region_1 = info.x; float below = info.y; float theta_7 = atan(lp.z, lp.x); drip_1 = ((clamp((info.z / 0.07), 0.0, 1.0) * step(0.5, region_1)) * (1.0 - step(1.5, region_1))); if ((region_1 > 0.5)) { local_47 = (region_1 < 1.5); } else { local_47 = false; } bool _e44 = local_47; if (_e44) { local_48 = (size_1.w > 0.0); } else { local_48 = false; } bool _e51 = local_48; if (_e51) { vec3 _e53 = taperShaftNormal(_e16, theta_7, lp.y); s_2.N = normalize((((AX * _e53.x) + (AY * _e53.y)) + (AZ * _e53.z))); float _e65 = dripAt(_e16, theta_7, lp.y); drip_1 = clamp((_e65 / (0.07 * _e16.R1_)), 0.0, 1.0); } int k_4 = int(floor((prm_1.x + 0.5))); OwnFlame _e78 = ownFlame(k_4); vec3 _e80 = s_2.N; float edge = pow((1.0 - min(abs(dot(_e80, V_1)), 1.0)), 1.5); float _e97 = vnoise(vec2(((theta_7 * 5.0) + _e16.seed), (lp.y * 240.0))); float layers = (0.89 + (0.11 * _e97)); float _e110 = vnoise(vec2(((theta_7 * 2.0) - _e16.seed), (lp.y * 55.0))); float mottle = (0.94 + (0.06 * _e110)); float _e123 = vnoise(vec2((theta_7 * 37.0), ((lp.y * 800.0) + _e16.seed))); float grain_1 = (0.97 + (0.03 * _e123)); vec3 _e130 = s_2.albedo; float _e134 = drip_1; s_2.albedo = ((((_e130 * layers) * mottle) * grain_1) * (1.0 + (0.1 * _e134))); s_2.sheen = 0.0; s_2.wrap = ((k_4 == 0) ? 0.0 : 0.45); float _e149 = drip_1; s_2.spec = vec3((0.03 + (0.06 * _e149))); float _e156 = drip_1; s_2.power = (24.0 + (40.0 * _e156)); s_2.alpha = prm_1.y; float near = exp((-(below) / (0.9 * _e16.R1_))); float far = exp((-(below) / (8.0 * _e16.R1_))); vec3 _e177 = s_2.albedo; s_2.albedo = (_e177 * mix(0.72, 1.0, far)); float _e192 = drip_1; glow_1 = (((((WAX_NEAR * near) + (WAX_FAR * far)) * (0.45 + (1.0 * edge))) * (1.0 + ((0.7 * _e192) * near))) + ((WAX_EDGE * edge) * edge)); if ((region_1 > 1.5)) { local_49 = (region_1 < 2.5); } else { local_49 = false; } bool _e211 = local_49; if (_e211) { glow_1 = (WAX_LIP * (0.7 + (0.6 * edge))); s_2.spec = vec3(0.07); s_2.power = 60.0; s_2.ao = 0.55; } else { if ((region_1 > 2.5)) { float rr = (length(lp.xz) / max(_e16.R1_, 1e-5)); glow_1 = ((WAX_POOL * (0.65 + (1.2 * exp(((-(rr) * rr) * 7.0))))) * (0.4 + (0.6 * smoothstep(0.0, 0.6, _e78.level)))); vec3 _e255 = s_2.albedo; s_2.albedo = (_e255 * 0.3); s_2.spec = vec3(0.5); s_2.power = 380.0; s_2.ao = 0.5; } } vec3 tint = mix(vec3(0.74, 0.22, 0.04), vec3(1.0, 0.43, 0.12), near); bounce = (WAX_BOUNCE * _e78.level); if ((k_4 > 0)) { float _e280 = bounce; float _e288 = _group_0_binding_0_vs.candlePos[(k_4 - 1)].w; bounce = max(_e280, (WAX_BOUNCE_POOL * _e288)); } float _e292 = glow_1; vec3 _e297 = s_2.albedo; float _e300 = bounce; s_2.emit = ((tint * (_e292 * _e78.level)) + ((_e297 * NEAR_COLOR) * _e300)); if ((k_4 > 0)) { vec3 _e307 = s_2.emit; float _e309 = s_2.ao; vec3 _e313 = s_2.N; vec3 _e315 = s_2.albedo; vec3 _e317 = s_2.spec; float _e319 = s_2.power; vec3 _e321 = nearLight(_e78, world_3, _e313, V_1, _e315, _e317, _e319, 0.0); s_2.emit = (_e307 + ((0.6 * _e309) * _e321)); } Surf _e324 = s_2; return _e324; } Surf candleMetal(Surf s0_1, vec3 world_4, vec4 prm_2, vec3 base, vec3 V_2, bool detailed) { Surf s_3 = Surf(vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, 0.0); float t_10 = 0.0; s_3 = s0_1; float kind = prm_2.x; t_10 = (0.4 * prm_2.y); if (detailed) { float _e21 = vnoise(((world_4.xz * 41.0) + vec2((world_4.y * 27.0), prm_2.z))); t_10 = (smoothstep(0.15, 0.85, ((_e21 * 0.5) + 0.5)) * prm_2.y); } if ((kind < 0.5)) { float _e34 = t_10; s_3.albedo = (base * (0.16 - (0.08 * _e34))); float _e49 = t_10; s_3.spec = mix(vec3(0.95, 0.66, 0.33), vec3(0.36, 0.26, 0.13), _e49); float _e52 = t_10; s_3.power = mix(150.0, 24.0, _e52); } else { if ((kind < 1.5)) { float _e59 = t_10; s_3.albedo = (base * (0.22 - (0.08 * _e59))); float _e74 = t_10; s_3.spec = mix(vec3(0.62, 0.6, 0.57), vec3(0.26, 0.25, 0.23), _e74); float _e77 = t_10; s_3.power = mix(70.0, 16.0, _e77); } else { float _e82 = t_10; s_3.albedo = (base * (0.6 - (0.2 * _e82))); float _e89 = t_10; s_3.spec = vec3((0.2 - (0.08 * _e89))); s_3.power = 26.0; } } s_3.wrap = 0.2; int k_5 = int(floor((prm_2.w + 0.5))); OwnFlame _e104 = ownFlame(k_5); if ((k_5 > 0)) { vec3 _e109 = s_3.N; vec3 _e113 = s_3.spec; float _e115 = s_3.power; vec3 _e117 = nearLight(_e104, world_4, _e109, V_2, vec3(0.0), _e113, _e115, 0.0); s_3.emit = _e117; } vec3 _e119 = s_3.N; float fres = pow((1.0 - clamp(dot(_e119, V_2), 0.0, 1.0)), 4.0); vec3 _e130 = s_3.emit; vec3 _e132 = s_3.spec; s_3.emit = (_e130 + (((_e132 * vec3(0.014, 0.009, 0.005)) * fres) * (0.4 + (0.6 * clamp(_e104.level, 0.0, 1.0))))); Surf _e149 = s_3; return _e149; } Surf candleSpill(Surf s0_2, vec3 world_5, vec4 prm_3, vec3 base_1, vec3 V_3) { Surf s_4 = Surf(vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, 0.0); s_4 = s0_2; int k_6 = int(floor((prm_3.y + 0.5))); OwnFlame _e11 = ownFlame(k_6); float _e20 = vnoise(((world_5.xz * 300.0) + vec2(prm_3.x, 0.0))); s_4.albedo = (base_1 * (0.9 + (0.1 * _e20))); s_4.spec = vec3(0.07); s_4.power = 44.0; s_4.wrap = 0.3; s_4.sheen = 0.0; s_4.alpha = prm_3.w; s_4.emit = (vec3(0.9, 0.35, 0.08) * ((prm_3.z * _e11.level) * 0.06)); if ((k_6 > 0)) { vec3 _e52 = s_4.emit; vec3 _e54 = s_4.N; vec3 _e56 = s_4.albedo; vec3 _e58 = s_4.spec; float _e60 = s_4.power; vec3 _e62 = nearLight(_e11, world_5, _e54, V_3, _e56, _e58, _e60, 0.3); s_4.emit = (_e52 + _e62); } Surf _e64 = s_4; return _e64; } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7); vec3 pos = vec3(0.0); vec3 normal = vec3(0.0); vec3 world = vec3(0.0); vec3 n = vec3(0.0); vec3 localOut = vec3(0.0); vec3 lnrmOut = vec3(0.0); vec3 extra = vec3(0.0); bool local = false; bool local_1 = false; bool local_2 = false; bool local_3 = false; bool local_4 = false; bool local_5 = false; bool local_6 = false; VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0)); vec3 s2_1 = vec3(dot(in_.m0_.xyz, in_.m0_.xyz), dot(in_.m1_.xyz, in_.m1_.xyz), dot(in_.m2_.xyz, in_.m2_.xyz)); pos = in_.pos; normal = in_.nrm; if ((in_.color.w == MAT_CURTAIN)) { vec3 _e28 = cloth(in_.pos, in_.params.x); pos = _e28; vec3 _e37 = cloth((in_.pos + vec3(0.001, 0.0, 0.0)), in_.params.x); vec3 _e46 = cloth((in_.pos - vec3(0.001, 0.0, 0.0)), in_.params.x); vec3 dx_1 = (_e37 - _e46); vec3 _e56 = cloth((in_.pos + vec3(0.0, 0.001, 0.0)), in_.params.x); vec3 _e65 = cloth((in_.pos - vec3(0.0, 0.001, 0.0)), in_.params.x); vec3 dy = (_e56 - _e65); normal = (normalize(cross(dx_1, dy)) * in_.nrm.z); } float _e75 = pos.x; float _e80 = pos.y; float _e86 = pos.z; world = ((((in_.m0_.xyz * _e75) + (in_.m1_.xyz * _e80)) + (in_.m2_.xyz * _e86)) + in_.m3_.xyz); vec3 _e93 = normal; vec3 nl = (_e93 / max(s2_1, vec3(1e-10))); n = (((in_.m0_.xyz * nl.x) + (in_.m1_.xyz * nl.y)) + (in_.m2_.xyz * nl.z)); localOut = in_.pos; lnrmOut = in_.nrm; if ((in_.color.w == MAT_TAPER)) { vec3 tsz = sqrt(s2_1); vec3 tx = (in_.m0_.xyz / vec3(max(tsz.x, 1e-6))); vec3 ty_1 = (in_.m1_.xyz / vec3(max(tsz.y, 1e-6))); vec3 tz = (in_.m2_.xyz / vec3(max(tsz.z, 1e-6))); Taper _e154 = taperOf(tsz, in_.m0_.w, in_.m1_.w, in_.m2_.w, in_.params); TaperV _e155 = taperVertex(in_.pos, _e154); world = (((in_.m3_.xyz + (tx * _e155.pos.x)) + (ty_1 * _e155.pos.y)) + (tz * _e155.pos.z)); n = (((tx * _e155.nrm.x) + (ty_1 * _e155.nrm.y)) + (tz * _e155.nrm.z)); localOut = _e155.pos; lnrmOut = _e155.info; if ((in_.m3_.w > 0.5)) { float _e194 = _group_0_binding_0_vs.hall4_.y; local = (_e194 > 0.5); } else { local = false; } bool _e198 = local; extra = vec3((in_.m0_.w * (_e198 ? 1.0 : -1.0)), in_.m1_.w, in_.m2_.w); } vec3 centre = in_.m3_.xyz; if ((centre.y > 6.0)) { local_1 = (centre.y < 10.95); } else { local_1 = false; } bool _e219 = local_1; if (_e219) { local_2 = (distance(centre.xz, vec2(0.35, -2.6)) < 1.8); } else { local_2 = false; } bool _e230 = local_2; if (_e230) { if (!((in_.color.w == MAT_IRON))) { local_4 = (in_.color.w == MAT_BRASS); } else { local_4 = true; } bool _e245 = local_4; if (!(_e245)) { local_5 = (in_.color.w == MAT_WAX); } else { local_5 = true; } bool _e254 = local_5; if (!(_e254)) { local_6 = (in_.color.w == MAT_WEB); } else { local_6 = true; } bool _e263 = local_6; local_3 = _e263; } else { local_3 = false; } bool _e265 = local_3; if (_e265) { float _e269 = _group_0_binding_0_vs.misc.y; float _e278 = _group_0_binding_0_vs.eye.w; float angle = ((smoothstep(0.15, 0.95, _e269) * 0.045) * sin((_e278 * 1.35))); float c_9 = cos(angle); float s_10 = sin(angle); vec3 _e285 = world; vec3 p_18 = (_e285 - vec3(0.35, 11.0, -2.6)); world = (vec3(((c_9 * p_18.x) - (s_10 * p_18.y)), ((s_10 * p_18.x) + (c_9 * p_18.y)), p_18.z) + vec3(0.35, 11.0, -2.6)); float _e309 = n.x; float _e312 = n.y; float _e316 = n.x; float _e319 = n.y; float _e323 = n.z; n = vec3(((c_9 * _e309) - (s_10 * _e312)), ((s_10 * _e316) + (c_9 * _e319)), _e323); } vec3 sz = sqrt(s2_1); mat4x4 _e330 = _group_0_binding_0_vs.viewProj; vec3 _e331 = world; out_.position = (_e330 * vec4(_e331, 1.0)); vec3 _e336 = world; out_.world = _e336; vec3 _e338 = n; out_.normal = _e338; vec3 _e340 = localOut; out_.local = _e340; vec3 _e342 = lnrmOut; out_.lnrm = _e342; out_.color = in_.color; out_.params = in_.params; float _e349 = extra.x; out_.size = vec4(sz, _e349); float _e360 = extra.y; out_.ax = vec4((in_.m0_.xyz / vec3(max(sz.x, 1e-6))), _e360); float _e371 = extra.z; out_.ay = vec4((in_.m1_.xyz / vec3(max(sz.y, 1e-6))), _e371); VsOut _e373 = out_; gl_Position = _e373.position; _vs2fs_location0 = _e373.world; _vs2fs_location1 = _e373.normal; _vs2fs_location2 = _e373.local; _vs2fs_location3 = _e373.lnrm; _vs2fs_location4 = _e373.color; _vs2fs_location5 = _e373.params; _vs2fs_location6 = _e373.size; _vs2fs_location7 = _e373.ax; _vs2fs_location8 = _e373.ay; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainGŠ#version 300 es precision highp float; precision highp int; struct Taper { float R0_; float R1_; float L; float seed; float burn; float drip; float span; float rho; float dc; }; struct Drip { float ang; float born; float len; float w; float th; }; struct TaperV { vec3 pos; vec3 nrm; vec3 info; }; struct Frame { mat4x4 viewProj; vec4 eye; vec4 light; vec4 lightColor; vec4 roomLight; vec4 moonTravel; vec4 moonColor; vec4 ambient; vec4 win; vec4 win2_; vec4 haze; vec4 glow; vec4 shaft; vec4 desk; vec4 deskY; vec4 book; vec4 room; vec4 highlight; vec4 misc; vec4 discs[12]; vec4 hall; vec4 hall2_; vec4 hall3_; vec4 hall4_; vec4 candlePos[8]; vec4 candleFx[8]; vec4 pool; vec4 poolColor; vec4 door0_; vec4 door1_; }; struct VsIn { vec3 pos; vec3 nrm; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 color; vec4 params; }; struct VsOut { vec4 position; vec3 world; vec3 normal; vec3 local; vec3 lnrm; vec4 color; vec4 params; vec4 size; vec4 ax; vec4 ay; }; struct Surf { vec3 albedo; vec3 spec; float power; vec3 emit; vec3 N; float ao; float sheen; float alpha; float wrap; float moonShade; }; struct OwnFlame { vec3 pos; float level; }; const float HDR_RANGE = 4.0; const float HAZE_START = 2.8; const float MAT_WOOD = 0.0; const float MAT_BOOK = 1.0; const float MAT_BRASS = 2.0; const float MAT_PAPER = 3.0; const float MAT_GLASS = 4.0; const float MAT_WAX = 5.0; const float MAT_FABRIC = 6.0; const float MAT_PLASTER = 7.0; const float MAT_FLOOR = 8.0; const float MAT_PANEL = 9.0; const float MAT_IRON = 10.0; const float MAT_GLOBE = 11.0; const float MAT_DIAL = 12.0; const float MAT_INK = 13.0; const float MAT_DARK = 14.0; const float MAT_WEB = 15.0; const float MAT_LEATHER = 16.0; const float MAT_EMIT = 17.0; const float MAT_CURTAIN = 18.0; const float MAT_HALL_WINDOW = 19.0; const float MAT_CANDLE_FLAME = 20.0; const float MAT_CANDLE_SMOKE = 21.0; const float MAT_CANDLE_EMBER = 22.0; const float MAT_TAPER = 30.0; const float MAT_CMETAL = 31.0; const float MAT_CWAX = 32.0; const vec3 LANTERN_WARM = vec3(1.0, 0.6, 0.28); const vec3 HALL_COLD = vec3(0.34, 0.42, 0.62); const float DIAL_FLOOR = 0.025; const float SHAFT_KNEE = 0.8; const float LANTERN_AIR = 0.012; const float LANTERN_AIR_SOFT = 0.3; const float GAP_AIR = 0.018; const float GAP_AIR_SOFT = 0.5; const float NEAR_I = 0.46; const float NEAR_S2_ = 0.0484; const vec3 NEAR_COLOR = vec3(1.0, 0.64, 0.33); const float WAX_NEAR = 0.75; const float WAX_FAR = 0.1; const float WAX_EDGE = 0.08; const float WAX_LIP = 0.7; const float WAX_POOL = 0.6; const float WAX_BOUNCE = 0.05; const float WAX_BOUNCE_POOL = 0.022; layout(std140) uniform Frame_block_0Fragment { Frame _group_0_binding_0_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec3 _vs2fs_location1; smooth in vec3 _vs2fs_location2; smooth in vec3 _vs2fs_location3; flat in vec4 _vs2fs_location4; flat in vec4 _vs2fs_location5; flat in vec4 _vs2fs_location6; flat in vec4 _vs2fs_location7; flat in vec4 _vs2fs_location8; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x_2 = max(c, vec3(0.0)); vec3 lo = (x_2 * 0.07739938); vec3 hi = pow(((x_2 + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x_2, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_3 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_3 * 12.92); vec3 hi_1 = ((1.055 * pow(x_3, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_3, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v_1) { uvec2 w = uvec2(0u); w = ((v_1 * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_10 = floor(p_1); vec2 f_2 = (p_1 - i_10); vec2 u_2 = ((f_2 * f_2) * (vec2(3.0) - (2.0 * f_2))); ivec2 ii = ivec2(i_10); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u_2.x), mix(_e21, _e26, u_2.x), u_2.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_11 = floor(p_2); vec2 f_3 = (p_2 - i_11); vec2 u_3 = ((f_3 * f_3) * (vec2(3.0) - (2.0 * f_3))); vec2 du = ((6.0 * f_3) * (vec2(1.0) - f_3)); ivec2 ii_1 = ivec2(i_11); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_9 = (((_e17 + (k1_ * u_3.x)) + (k2_ * u_3.y)) + ((k4_ * u_3.x) * u_3.y)); vec2 g_3 = (du * vec2((k1_ + (k4_ * u_3.y)), (k2_ + (k4_ * u_3.x)))); return vec3(((n_9 * 2.0) - 1.0), (g_3 * 2.0)); } float fbm3_(vec2 p_3) { float s_1 = 0.0; float _e1 = vnoise(p_3); s_1 = (_e1 * 0.57); float _e5 = s_1; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s_1 = (_e5 + (_e12 * 0.29)); float _e16 = s_1; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s_1 = (_e16 + (_e23 * 0.14)); float _e27 = s_1; return _e27; } float pointGlow(vec3 eye, vec3 dir, float dist, vec3 light, float s2_) { vec3 toL_1 = (light - eye); float t0_ = dot(toL_1, dir); float h2_ = max((dot(toL_1, toL_1) - (t0_ * t0_)), 0.0); float k_1 = sqrt((h2_ + max(s2_, 1e-6))); return ((atan(((dist - t0_) / k_1)) + atan((t0_ / k_1))) / k_1); } vec3 atmosphere(vec3 col, vec3 world_1, vec3 eye_1, vec3 light_1, vec4 haze, vec4 glow) { vec3 dv = (world_1 - eye_1); float dist_3 = length(dv); vec3 dir_2 = (dv / vec3(max(dist_3, 1e-5))); float T = exp((-(haze.w) * max((dist_3 - HAZE_START), 0.0))); float _e21 = pointGlow(eye_1, dir_2, dist_3, light_1, glow.w); return (((col * T) + (haze.xyz * (1.0 - T))) + (glow.xyz * _e21)); } float windowMask(vec2 q, vec4 win, vec4 win2_, float soft, float lattice) { bool local_40 = false; bool local_41 = false; bool local_42 = false; float bars = 0.0; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_2 = ((x1_ - x0_) * 0.5); float cx = (x0_ + r_2); float s_5 = max(soft, 0.0001); if (!((q.x < (x0_ - s_5)))) { local_40 = (q.x > (x1_ + s_5)); } else { local_40 = true; } bool _e25 = local_40; if (!(_e25)) { local_41 = (q.y < (sill - s_5)); } else { local_41 = true; } bool _e33 = local_41; if (!(_e33)) { local_42 = (q.y > ((spring + r_2) + s_5)); } else { local_42 = true; } bool _e42 = local_42; if (_e42) { return 0.0; } float inRect = (smoothstep(-(s_5), s_5, min((q.x - x0_), (x1_ - q.x))) * smoothstep(-(s_5), s_5, (q.y - sill))); float dArch = (r_2 - length((q - vec2(cx, spring)))); float inArch = smoothstep(-(s_5), s_5, dArch); float open_1 = (inRect * ((q.y < spring) ? 1.0 : inArch)); float bw = win2_.y; bars = (1.0 - smoothstep((bw - s_5), (bw + s_5), abs((q.x - cx)))); float ty = ((q.y - sill) / win2_.z); float tf = (abs((fract((ty + 0.5)) - 0.5)) * win2_.z); float _e89 = bars; bars = max(_e89, ((1.0 - smoothstep(((bw * 0.8) - s_5), ((bw * 0.8) + s_5), tf)) * step(q.y, spring))); float a_2 = atan((q.y - spring), (q.x - cx)); float spoke = ((abs((fract(((a_2 / 0.7853982) + 0.5)) - 0.5)) * 0.7853982) * length((q - vec2(cx, spring)))); float _e122 = bars; bars = max(_e122, ((1.0 - smoothstep(((bw * 0.7) - s_5), ((bw * 0.7) + s_5), spoke)) * step(spring, q.y))); if ((lattice > 0.5)) { float fade = (1.0 - smoothstep(0.02, 0.09, s_5)); vec2 dq = (q * 2.6); float l1_ = (abs((fract((((dq.x + dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float l2_ = (abs((fract((((dq.x - dq.y) * 0.5) + 0.5)) - 0.5)) / 1.3); float _e172 = bars; bars = max(_e172, (((1.0 - smoothstep((0.012 - s_5), (0.012 + s_5), min(l1_, l2_))) * fade) * 0.85)); } float _e183 = bars; return (open_1 * (1.0 - _e183)); } vec3 backProject(vec3 p_4, vec3 d, float planeZ) { float s_6 = ((p_4.z - planeZ) / max(d.z, 0.0001)); return vec3((p_4.xy - (d.xy * s_6)), s_6); } float moonPatch(vec3 p_5, vec3 d_1, vec4 win_1, vec4 win2_1) { if ((p_5.z < win2_1.x)) { return 0.0; } vec3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, (0.006 + (_e9.z * 0.011)), 1.0); return _e17; } float hgPhase(float cosT, float g_1) { float gg = (g_1 * g_1); return ((1.0 - gg) / pow(max(((1.0 + gg) - ((2.0 * g_1) * cosT)), 0.0001), 1.5)); } float shaftScatter(vec3 eye_2, vec3 dir_1, float dist_1, vec3 d_2, vec4 win_2, vec4 win2_2, float jitter, float top) { float ta = 0.0; float tb = 0.0; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = (1.0 / max(d_2.z, 0.0001)); vec2 qa = (eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy)); vec2 qd = (dir_1.xy - ((dir_1.z * invdz) * d_2.xy)); tb = dist_1; if ((dir_1.z < 0.0)) { float _e33 = tb; tb = min(_e33, ((zw - eye_2.z) / dir_1.z)); } if ((dir_1.y < 0.0)) { float _e42 = tb; tb = min(_e42, ((win2_2.w - eye_2.y) / dir_1.y)); } vec2 lo_2 = vec2(win_2.x, win_2.z); vec2 hi_2 = vec2(win_2.y, top); vec2 inv = (vec2(1.0) / mix(qd, vec2(1e-6), lessThan(abs(qd), vec2(1e-6)))); vec2 t1_ = ((lo_2 - qa) * inv); vec2 t2_ = ((hi_2 - qa) * inv); vec2 tmin = min(t1_, t2_); vec2 tmax = max(t1_, t2_); float _e70 = ta; ta = max(_e70, max(tmin.x, tmin.y)); float _e75 = tb; tb = min(_e75, min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if ((_e80 <= _e81)) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = ((_e84 - _e85) / 5.0); bool loop_init = true; while(true) { if (!loop_init) { int _e123 = i_2; i_2 = (_e123 + 1); } loop_init = false; int _e93 = i_2; if ((_e93 < 5)) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_11 = (_e96 + ((float(_e97) + jitter) * dt)); vec2 q_4 = (qa + (t_11 * qd)); float s_7 = (((eye_2.z + (t_11 * dir_1.z)) - zw) * invdz); float _e110 = sum; float _e116 = windowMask(q_4, win_2, win2_2, (0.008 + (s_7 * 0.003)), 0.0); sum = (_e110 + (_e116 * exp((-(s_7) * 0.035)))); } } float _e126 = ta; float _e127 = tb; vec2 qm = (qa + (((_e126 + _e127) * 0.5) * qd)); float _e141 = vnoise(((qm * vec2(3.1, 0.9)) + vec2(7.1, 3.3))); float _e146 = vnoise((qm * vec2(9.0, 2.2))); float dust = (0.45 + (0.55 * smoothstep(-0.6, 0.8, (_e141 + (0.5 * _e146))))); float _e157 = sum; return ((_e157 * dt) * dust); } Taper taperOf(vec3 size, float seed, float burn, float ratio, vec4 prm) { Taper t_1 = Taper(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); t_1.R0_ = (0.5 * size.x); float _e12 = t_1.R0_; t_1.R1_ = (_e12 * clamp(ratio, 0.5, 1.2)); t_1.L = max(size.y, 0.0001); t_1.seed = seed; t_1.burn = burn; t_1.drip = prm.z; t_1.span = prm.w; float _e29 = t_1.R1_; t_1.rho = (0.15 * _e29); float _e34 = t_1.R1_; t_1.dc = (0.26 * _e34); Taper _e37 = t_1; return _e37; } float tHash(float n_3) { return fract((sin(n_3) * 43758.547)); } float wrapAngle(float a) { return (a - (6.2831855 * floor(((a / 6.2831855) + 0.5)))); } Drip dripSlot(Taper t_2, int i_3) { Drip d_3 = Drip(0.0, 0.0, 0.0, 0.0, 0.0); float fi = (float(i_3) + 1.0); float _e13 = tHash(((t_2.seed * 1.37) + (fi * 12.9898))); d_3.ang = (6.2831855 * _e13); float _e23 = tHash(((t_2.seed * 2.11) + (fi * 78.233))); d_3.born = mix(-0.6, 0.95, _e23); float _e33 = tHash(((t_2.seed * 3.07) + (fi * 37.719))); d_3.len = ((t_2.R1_ * (1.6 + ((9.0 * _e33) * _e33))) * t_2.drip); float _e50 = tHash(((t_2.seed * 4.31) + (fi * 4.581))); d_3.w = (t_2.R1_ * (0.26 + (0.2 * _e50))); d_3.th = (t_2.R1_ * (0.11 + (0.13 * _e50))); Drip _e65 = d_3; return _e65; } float dripAt(Taper t_3, float theta, float y) { float sum_1 = 0.0; int i_4 = 0; bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e90 = i_4; i_4 = (_e90 + 1); } loop_init_1 = false; int _e7 = i_4; if ((_e7 < 6)) { } else { break; } { int _e10 = i_4; Drip _e11 = dripSlot(t_3, _e10); float age_1 = (t_3.burn - _e11.born); float grown = smoothstep(0.0, 0.035, age_1); float len = max((_e11.len * grown), 0.0001); float y0_ = ((t_3.L + (t_3.span * max(age_1, 0.0))) - (0.7 * t_3.rho)); float u_4 = ((y0_ - y) / len); float uc = clamp(u_4, 0.0, 1.0); float _e39 = wrapAngle((theta - _e11.ang)); float across = (_e39 * t_3.R1_); float bulb = exp(((-((u_4 - 0.86)) * (u_4 - 0.86)) * 90.0)); float width = (_e11.w * ((1.0 - (0.3 * uc)) + (0.6 * bulb))); float body = (smoothstep(-0.15, 0.04, u_4) * (1.0 - smoothstep(0.94, 1.05, u_4))); float thick = (((_e11.th * ((0.75 + (0.35 * uc)) + (0.9 * bulb))) * body) * step(0.0001, grown)); float _e82 = sum_1; sum_1 = (_e82 + (thick * exp((-((across * across)) / (width * width))))); } } float _e93 = sum_1; return _e93; } float notchAt(Taper t_4, float theta_1) { float n_4 = 0.0; int i_5 = 0; bool loop_init_2 = true; while(true) { if (!loop_init_2) { int _e43 = i_5; i_5 = (_e43 + 1); } loop_init_2 = false; int _e6 = i_5; if ((_e6 < 6)) { } else { break; } { int _e9 = i_5; Drip _e10 = dripSlot(t_4, _e9); float age_2 = (t_4.burn - _e10.born); float fresh = (step(0.0, age_2) * (1.0 - smoothstep(0.0, (2.5 * t_4.rho), (t_4.span * age_2)))); float _e28 = wrapAngle((theta_1 - _e10.ang)); float across_1 = (_e28 * t_4.R1_); float _e31 = n_4; n_4 = (_e31 + (fresh * exp((-((across_1 * across_1)) / ((1.6 * _e10.w) * _e10.w))))); } } float _e46 = n_4; return ((min(_e46, 1.0) * 0.8) * t_4.rho); } float crestAt(Taper t_5, float theta_2) { float _e3 = notchAt(t_5, theta_2); return ((t_5.L - _e3) - ((0.2 * t_5.rho) * (0.5 + (0.5 * sin(((2.0 * theta_2) + (t_5.seed * 5.0))))))); } float bareRadius(Taper t_6, float theta_3, float y_1) { float k_2 = clamp((y_1 / t_6.L), 0.0, 1.0); float wob = ((1.0 + (0.016 * sin((((2.0 * theta_3) + (t_6.seed * 3.1)) + (y_1 * 31.0))))) + (0.01 * sin((((3.0 * theta_3) - (t_6.seed * 1.7)) + (y_1 * 57.0))))); return (mix(t_6.R0_, t_6.R1_, k_2) * wob); } float shaftRadius(Taper t_7, float theta_4, float y_2) { float _e3 = bareRadius(t_7, theta_4, y_2); float _e4 = dripAt(t_7, theta_4, y_2); return (_e3 + _e4); } vec3 taperShaftNormal(Taper t_8, float theta_5, float y_3) { float _e3 = shaftRadius(t_8, theta_5, y_3); float e_1 = max((t_8.L * 0.004), 0.0002); float _e10 = shaftRadius(t_8, theta_5, (y_3 + e_1)); float _e12 = shaftRadius(t_8, theta_5, (y_3 - e_1)); float ry = ((_e10 - _e12) / (2.0 * e_1)); float _e19 = shaftRadius(t_8, (theta_5 + 0.03), y_3); float _e21 = shaftRadius(t_8, (theta_5 - 0.03), y_3); float ra = ((_e19 - _e21) / (2.0 * 0.03)); float c_4 = cos(theta_5); float s_8 = sin(theta_5); vec3 er = vec3(c_4, 0.0, s_8); vec3 et = vec3(-(s_8), 0.0, c_4); return normalize(((er - (et * (ra / max(_e3, 1e-5)))) - vec3(0.0, ry, 0.0))); } TaperV taperVertex(vec3 g_2, Taper t_9) { float r = 0.0; float y_4 = 0.0; vec3 n_5 = vec3(0.0, -1.0, 0.0); float drip = 0.0; TaperV out_1 = TaperV(vec3(0.0), vec3(0.0), vec3(0.0)); float theta_6 = g_2.x; float s_9 = g_2.y; float region = g_2.z; float c_5 = cos(theta_6); float sn = sin(theta_6); vec3 er_1 = vec3(c_5, 0.0, sn); float _e9 = crestAt(t_9, theta_6); float ys = max((_e9 - t_9.rho), 0.0); if ((region < 0.5)) { float _e28 = shaftRadius(t_9, theta_6, 0.0); r = (_e28 * s_9); } else { if ((region < 1.5)) { y_4 = (s_9 * ys); float _e33 = y_4; float _e34 = dripAt(t_9, theta_6, _e33); drip = _e34; float _e35 = y_4; float _e36 = bareRadius(t_9, theta_6, _e35); float _e37 = drip; r = (_e36 + _e37); float _e39 = y_4; vec3 _e40 = taperShaftNormal(t_9, theta_6, _e39); n_5 = _e40; } else { if ((region < 2.5)) { float _e43 = shaftRadius(t_9, theta_6, ys); float phi = (3.1415927 * s_9); r = ((_e43 - t_9.rho) + (t_9.rho * cos(phi))); y_4 = (ys + (t_9.rho * sin(phi))); n_5 = ((er_1 * cos(phi)) + vec3(0.0, sin(phi), 0.0)); } else { float _e63 = shaftRadius(t_9, theta_6, ys); float rin = (_e63 - (2.0 * t_9.rho)); float pool = (t_9.L - t_9.dc); float rp = (rin * 0.9); if ((s_9 < 0.3)) { float w_2 = (s_9 / 0.3); r = mix(rin, rp, w_2); y_4 = mix(ys, pool, sin((w_2 * 1.5707963))); n_5 = normalize((((-(er_1) * (1.0 - w_2)) * 1.4) + vec3(0.0, (0.6 + w_2), 0.0))); } else { float w_3 = ((s_9 - 0.3) / 0.7); r = (rp * (1.0 - w_3)); y_4 = (pool - ((0.08 * t_9.dc) * w_3)); n_5 = vec3(0.0, 1.0, 0.0); } } } } float _e113 = r; float _e115 = y_4; out_1.pos = ((er_1 * _e113) + vec3(0.0, _e115, 0.0)); vec3 _e121 = n_5; out_1.nrm = _e121; float _e123 = y_4; float _e127 = drip; out_1.info = vec3(region, max((_e9 - _e123), 0.0), (_e127 / max(t_9.R1_, 1e-5))); TaperV _e133 = out_1; return _e133; } vec3 lanternColor() { float _e5 = _group_0_binding_0_fs.hall4_.x; return mix(LANTERN_WARM, HALL_COLD, clamp(_e5, 0.0, 1.0)); } vec3 cloth(vec3 q_1, float seed_1) { float h = clamp((0.5 - q_1.y), 0.0, 1.0); float t_12 = _group_0_binding_0_fs.eye.w; float _e15 = _group_0_binding_0_fs.misc.y; float dread = smoothstep(0.08, 0.95, _e15); float gust = ((0.55 + (0.25 * sin((t_12 * 0.73)))) + (0.2 * sin(((t_12 * 1.17) + 1.4)))); float wind = (0.025 + (dread * (0.25 + (0.5 * gust)))); float sway = (((h * h) * wind) * ((0.55 * sin((((t_12 * 1.8) - (h * 3.0)) + seed_1))) + (0.24 * sin(((t_12 * 3.3) - (h * 6.0)))))); float folds = (0.085 * sin((((q_1.x + 0.5) * 37.7) + ((h * wind) * sin(((t_12 * 1.4) + seed_1)))))); float billow = ((h * wind) * (0.6 + (0.4 * sin(((((t_12 * 2.1) - (h * 4.0)) + (q_1.x * 2.0)) + seed_1))))); return vec3((q_1.x + sway), (q_1.y + (((h * wind) * 0.025) * sin(((t_12 * 2.8) + (q_1.x * 8.0))))), (folds + billow)); } float shoulder(float x, float knee, float r_1) { bool local_43 = false; if (!((x <= knee))) { local_43 = (r_1 <= 0.0); } else { local_43 = true; } bool _e10 = local_43; if (_e10) { return x; } return (knee + (r_1 * log((1.0 + ((x - knee) / r_1))))); } float h1_(vec2 p_6) { float _e3 = hashCell(ivec2(floor(p_6))); return _e3; } float lineAA(float d_4, float halfWidth, float fp) { return (1.0 - smoothstep((halfWidth - fp), (halfWidth + fp), abs(d_4))); } float fbm2_(vec2 p_7) { float _e1 = vnoise(p_7); float _e10 = vnoise(((p_7 * 2.03) + vec2(17.1, 3.7))); return ((_e1 * 0.66) + (_e10 * 0.34)); } float woodTone(float u_1, float v_2, float seed_2) { vec2 p_16 = (vec2(u_1, v_2) + vec2((seed_2 * 3.17), (seed_2 * 1.73))); float _e14 = fbm2_((p_16 * vec2(1.3, 4.0))); float warp = (_e14 * 0.9); float _e27 = vnoise((p_16 * vec2(0.6, 9.0))); float rings = (0.5 + (0.5 * sin((((p_16.y * 46.0) + (warp * 7.0)) + (_e27 * 2.0))))); float _e40 = vnoise((p_16 * vec2(3.0, 140.0))); float streak = ((_e40 * 0.5) + 0.5); return ((0.72 + ((0.34 * rings) * rings)) + (0.18 * (streak - 0.5))); } float slabShade(vec3 p_8, vec3 toL) { bool local_44 = false; float y_5 = _group_0_binding_0_fs.deskY.x; if (!((p_8.y > (y_5 - 0.25)))) { local_44 = (toL.y <= 0.0001); } else { local_44 = true; } bool _e17 = local_44; if (_e17) { return 1.0; } float t_13 = ((y_5 - p_8.y) / toL.y); if ((t_13 > 1.0)) { return 1.0; } vec2 c_6 = (p_8.xz + (toL.xz * t_13)); vec4 r_3 = _group_0_binding_0_fs.desk; float inside = min(min((c_6.x - r_3.x), (r_3.y - c_6.x)), min((c_6.y - r_3.z), (r_3.w - c_6.y))); float _e51 = _group_0_binding_0_fs.deskY.y; float pen = (_e51 * (0.3 + (t_13 * 3.0))); return smoothstep(-(pen), pen, -(inside)); } float discAO(vec3 p_9, int first, int last) { float ao = 1.0; int i_6 = 0; i_6 = first; bool loop_init_3 = true; while(true) { if (!loop_init_3) { int _e33 = i_6; i_6 = (_e33 + 1); } loop_init_3 = false; int _e6 = i_6; if ((_e6 < last)) { } else { break; } { int _e10 = i_6; vec4 d_5 = _group_0_binding_0_fs.discs[_e10]; float r_4 = (length((p_9.xz - d_5.xy)) / max(d_5.z, 0.0001)); float _e21 = ao; ao = (_e21 * (1.0 - (abs(d_5.w) * (1.0 - smoothstep(0.55, 1.35, r_4))))); } } float _e36 = ao; return _e36; } vec3 doorSpace(vec3 p_10) { vec4 _e4 = _group_0_binding_0_fs.door0_; vec2 r_5 = (p_10.xz - _e4.xy); float _e10 = _group_0_binding_0_fs.door1_.z; vec4 _e13 = _group_0_binding_0_fs.door0_; float _e21 = _group_0_binding_0_fs.door1_.w; vec4 _e24 = _group_0_binding_0_fs.door1_; return vec3((_e10 + dot(r_5, _e13.zw)), p_10.y, (_e21 + dot(r_5, _e24.xy))); } vec3 doorVec(vec3 v_3) { vec4 _e4 = _group_0_binding_0_fs.door0_; vec4 _e11 = _group_0_binding_0_fs.door1_; return vec3(dot(v_3.xz, _e4.zw), v_3.y, dot(v_3.xz, _e11.xy)); } vec3 doorWorld(vec3 q_2) { float _e5 = _group_0_binding_0_fs.door1_.z; float u_5 = (q_2.x - _e5); float _e11 = _group_0_binding_0_fs.door1_.w; float v_4 = (q_2.z - _e11); vec4 _e15 = _group_0_binding_0_fs.door0_; vec4 _e19 = _group_0_binding_0_fs.door0_; vec4 _e25 = _group_0_binding_0_fs.door1_; vec2 xz = ((_e15.xy + (_e19.zw * u_5)) + (_e25.xy * v_4)); return vec3(xz.x, q_2.y, xz.y); } float doorPortal(vec3 pw, vec3 lw) { float open = 0.0; vec3 _e2 = doorSpace(pw); vec3 _e3 = doorSpace(lw); float wx = _group_0_binding_0_fs.hall3_.x; float sp = (_e2.x - wx); float sl = (_e3.x - wx); if (((sp * sl) >= 0.0)) { return 1.0; } float t_14 = (sp / (sp - sl)); vec3 c_7 = (_e2 + ((_e3 - _e2) * t_14)); float z0_ = _group_0_binding_0_fs.hall2_.z; float z1_ = _group_0_binding_0_fs.hall2_.w; float top_1 = _group_0_binding_0_fs.hall3_.y; open = (smoothstep(-(0.04), 0.04, min((c_7.z - z0_), (z1_ - c_7.z))) * smoothstep(-(0.04), 0.04, (top_1 - c_7.y))); float a_3 = _group_0_binding_0_fs.hall2_.y; float _e54 = _group_0_binding_0_fs.hall3_.z; vec2 h_1 = vec2(_e54, z0_); float _e62 = _group_0_binding_0_fs.hall3_.w; vec2 u_6 = (vec2(sin(a_3), cos(a_3)) * _e62); vec2 r_6 = (_e3.xz - _e2.xz); float den = ((r_6.x * u_6.y) - (r_6.y * u_6.x)); if ((abs(den) > 1e-5)) { vec2 q_5 = (h_1 - _e2.xz); float tt = (((q_5.x * u_6.y) - (q_5.y * u_6.x)) / den); float ss = (((q_5.x * r_6.y) - (q_5.y * r_6.x)) / den); float yh = (_e2.y + ((_e3.y - _e2.y) * tt)); float _e119 = _group_0_binding_0_fs.win2_.w; float hit = (((((step(0.0, tt) * step(tt, 1.0)) * smoothstep(-0.03, 0.03, ss)) * (1.0 - smoothstep(0.97, 1.03, ss))) * step(_e119, yh)) * step(yh, top_1)); float _e124 = open; open = (_e124 * (1.0 - hit)); } float _e128 = open; return _e128; } float doorSpill(vec3 pw_1) { bool local_45 = false; bool local_46 = false; vec3 _e1 = doorSpace(pw_1); float _e6 = _group_0_binding_0_fs.hall3_.x; float dx = (_e1.x - _e6); float _e11 = _group_0_binding_0_fs.hall2_.x; if (!((_e11 <= 0.0))) { local_45 = (dx < 0.0); } else { local_45 = true; } bool _e20 = local_45; if (!(_e20)) { float _e28 = _group_0_binding_0_fs.win2_.w; local_46 = (_e1.y > (_e28 + 0.05)); } else { local_46 = true; } bool _e33 = local_46; if (_e33) { return 0.0; } float spread = (0.1 + (dx * 0.7)); float _e46 = _group_0_binding_0_fs.hall2_.z; float _e51 = _group_0_binding_0_fs.hall2_.w; float inZ = smoothstep(-(spread), (spread * 0.3), min((_e1.z - _e46), (_e51 - _e1.z))); float _e59 = _group_0_binding_0_fs.hall2_.x; return (((_e59 * 5.0) * inZ) / (1.0 + ((dx / 0.7) * (dx / 0.7)))); } vec3 galleryMoon(vec3 p_11, vec3 normal_1) { float t_15 = ((2.4 - p_11.z) / 0.44); vec2 q_6 = vec2((p_11.x - (0.28 * t_15)), (p_11.y + (0.85 * t_15))); float bay = roundEven(((-(q_6.x) - 10.5) / 5.5)); float localX = ((q_6.x + 10.5) + (5.5 * bay)); float xmask = (1.0 - smoothstep(0.65, 0.74, abs(localX))); float ymask = (smoothstep(0.94, 1.04, q_6.y) * (1.0 - smoothstep(5.02, 5.12, q_6.y))); float bars_1 = (smoothstep(0.026, 0.065, abs(localX)) * smoothstep(0.035, 0.085, abs((q_6.y - 3.0)))); float mask = (((((xmask * ymask) * bars_1) * step(0.0, bay)) * step(bay, 4.0)) * step(0.0, t_15)); float ndl = max(dot(normal_1, vec3(-0.2807732, 0.8523472, 0.441215)), 0.0); return (vec3(0.0035, 0.0055, 0.0085) + ((vec3(0.12, 0.18, 0.28) * mask) * ndl)); } vec3 fixedCandle(vec3 p_12, vec3 n_6, vec4 source, float radius) { if ((source.w <= 0.0001)) { return vec3(0.0); } vec3 delta = (source.xyz - p_12); float d2_ = dot(delta, delta); if ((d2_ >= (radius * radius))) { return vec3(0.0); } float reach = (1.0 - smoothstep((radius * 0.55), radius, sqrt(d2_))); float _e22 = slabShade(p_12, delta); float _e24 = doorPortal(p_12, source.xyz); float visibility = (_e22 * _e24); float ndl_1 = (max((dot(n_6, (delta * inversesqrt(max(d2_, 1e-6)))) + 0.22), 0.0) / 1.22); return ((((vec3(1.0, 0.42, 0.12) * (source.w / (d2_ + 0.3))) * reach) * visibility) * ndl_1); } vec3 fixedCandlesSkip(vec3 p_13, vec3 n_7, int skip) { vec3 sum_2 = vec3(0.0); int i_7 = 0; bool loop_init_4 = true; while(true) { if (!loop_init_4) { int _e29 = i_7; i_7 = (_e29 + 1); } loop_init_4 = false; int _e8 = i_7; if ((_e8 < 8)) { } else { break; } { int _e11 = i_7; if ((_e11 != skip)) { vec3 _e13 = sum_2; int _e16 = i_7; vec4 _e18 = _group_0_binding_0_fs.candlePos[_e16]; int _e21 = i_7; float _e24 = _group_0_binding_0_fs.candleFx[_e21].y; vec3 _e27 = fixedCandle(p_13, n_7, _e18, max(_e24, 0.5)); sum_2 = (_e13 + _e27); } } } vec3 _e32 = sum_2; return _e32; } vec3 fixedCandles(vec3 p_14, vec3 n_8) { vec3 _e3 = fixedCandlesSkip(p_14, n_8, -1); return _e3; } float strokeD(vec2 p_15, vec2 a_1, vec2 b) { vec2 pa = (p_15 - a_1); vec2 ba = (b - a_1); float hh = clamp((dot(pa, ba) / max(dot(ba, ba), 1e-8)), 0.0, 1.0); return length((pa - (ba * hh))); } float numeral(vec2 q_3, float fpl) { uint codes[12] = uint[12](23u, 1u, 5u, 21u, 85u, 2u, 6u, 22u, 86u, 13u, 3u, 7u); uint counts[12] = uint[12](3u, 1u, 2u, 3u, 4u, 1u, 2u, 3u, 4u, 2u, 1u, 2u); float w_1 = 0.0; uint i_8 = 0u; float x_1 = 0.0; float dist_2 = 10.0; uint i_9 = 0u; float r_7 = length(q_3); float ang = atan(q_3.x, q_3.y); float a_4 = ((ang < 0.0) ? (ang + 6.2831855) : ang); float kf = floor(((a_4 / 0.5235988) + 0.5)); uint k_3 = (uint(kf) % 12u); float d_6 = (a_4 - (kf * 0.5235988)); float lx = ((r_7 * sin(d_6)) / 0.17); float ly = (((r_7 * cos(d_6)) - (0.715 - (0.17 * 0.5))) / 0.17); uint code = codes[k_3]; uint n_10 = counts[k_3]; bool loop_init_5 = true; while(true) { if (!loop_init_5) { uint _e90 = i_8; i_8 = (_e90 + 1u); } loop_init_5 = false; uint _e70 = i_8; if ((_e70 < 4u)) { } else { break; } { uint _e73 = i_8; if ((_e73 < n_10)) { uint _e76 = i_8; uint g_4 = ((code >> (2u * _e76)) & 3u); float _e81 = w_1; w_1 = ((_e81 + ((g_4 == 1u) ? 0.24 : 0.56)) + 0.07); } } } float _e93 = w_1; x_1 = ((-(_e93) * 0.5) + 0.035); bool loop_init_6 = true; while(true) { if (!loop_init_6) { uint _e183 = i_9; i_9 = (_e183 + 1u); } loop_init_6 = false; uint _e104 = i_9; if ((_e104 < 4u)) { } else { break; } { uint _e107 = i_9; if ((_e107 < n_10)) { uint _e110 = i_9; uint g_5 = ((code >> (2u * _e110)) & 3u); float gw = ((g_5 == 1u) ? 0.24 : 0.56); float _e120 = x_1; vec2 p_17 = vec2((lx - _e120), ly); if ((g_5 == 1u)) { float _e125 = dist_2; float _e134 = strokeD(p_17, vec2((gw * 0.5), 0.06), vec2((gw * 0.5), 0.94)); dist_2 = min(_e125, _e134); } else { if ((g_5 == 2u)) { float _e138 = dist_2; float _e146 = strokeD(p_17, vec2(0.04, 0.94), vec2((gw * 0.5), 0.06)); dist_2 = min(_e138, _e146); float _e148 = dist_2; float _e157 = strokeD(p_17, vec2((gw - 0.04), 0.94), vec2((gw * 0.5), 0.06)); dist_2 = min(_e148, _e157); } else { float _e159 = dist_2; float _e167 = strokeD(p_17, vec2(0.04, 0.94), vec2((gw - 0.04), 0.06)); dist_2 = min(_e159, _e167); float _e169 = dist_2; float _e177 = strokeD(p_17, vec2(0.04, 0.06), vec2((gw - 0.04), 0.94)); dist_2 = min(_e169, _e177); } } float _e179 = x_1; x_1 = ((_e179 + gw) + 0.07); } } } float inBand = (step(-0.2, ly) * step(ly, 1.2)); float _e197 = dist_2; return ((1.0 - smoothstep((0.075 - (fpl / 0.17)), (0.075 + (fpl / 0.17)), _e197)) * inBand); } OwnFlame ownFlame(int k) { OwnFlame f = OwnFlame(vec3(0.0), 0.0); vec4 _e5 = _group_0_binding_0_fs.light; f.pos = _e5.xyz; float _e11 = _group_0_binding_0_fs.light.w; f.level = (clamp((_e11 / NEAR_I), 0.0, 1.6) * step(0.0, float(k))); if ((k > 0)) { vec4 c_8 = _group_0_binding_0_fs.candlePos[(k - 1)]; f.pos = c_8.xyz; float _e38 = _group_0_binding_0_fs.candleFx[(k - 1)].x; f.level = _e38; } OwnFlame _e39 = f; return _e39; } vec3 nearLight(OwnFlame f_1, vec3 world_2, vec3 N_1, vec3 V, vec3 albedo, vec3 spec, float power, float wrap) { vec3 dl = (f_1.pos - world_2); float dd = dot(dl, dl); vec3 Lo = (dl * inversesqrt(max(dd, 1e-8))); float _e24 = _group_0_binding_0_fs.highlight.x; float _e28 = _group_0_binding_0_fs.highlight.y; float _e29 = shoulder(((NEAR_I * f_1.level) / (dd + NEAR_S2_)), _e24, _e28); float ndl_2 = dot(N_1, Lo); vec3 H = normalize((Lo + V)); float sp_1 = (((pow(max(dot(N_1, H), 0.0), power) * (power + 8.0)) * 0.04) * step(0.0, ndl_2)); return ((NEAR_COLOR * _e29) * (((albedo * max((ndl_2 + wrap), 0.0)) / vec3((1.0 + wrap))) + (spec * sp_1))); } Surf candleTaper(Surf s0_, vec3 world_3, vec3 lp, vec3 info, vec4 size_1, float burn_1, float ratio_1, vec4 prm_1, vec3 AX, vec3 AY, vec3 AZ, vec3 V_1) { Surf s_2 = Surf(vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, 0.0); float drip_1 = 0.0; bool local_47 = false; bool local_48 = false; float glow_1 = 0.0; bool local_49 = false; float bounce = 0.0; s_2 = s0_; Taper _e16 = taperOf(size_1.xyz, abs(size_1.w), burn_1, ratio_1, prm_1); float region_1 = info.x; float below = info.y; float theta_7 = atan(lp.z, lp.x); drip_1 = ((clamp((info.z / 0.07), 0.0, 1.0) * step(0.5, region_1)) * (1.0 - step(1.5, region_1))); if ((region_1 > 0.5)) { local_47 = (region_1 < 1.5); } else { local_47 = false; } bool _e44 = local_47; if (_e44) { local_48 = (size_1.w > 0.0); } else { local_48 = false; } bool _e51 = local_48; if (_e51) { vec3 _e53 = taperShaftNormal(_e16, theta_7, lp.y); s_2.N = normalize((((AX * _e53.x) + (AY * _e53.y)) + (AZ * _e53.z))); float _e65 = dripAt(_e16, theta_7, lp.y); drip_1 = clamp((_e65 / (0.07 * _e16.R1_)), 0.0, 1.0); } int k_4 = int(floor((prm_1.x + 0.5))); OwnFlame _e78 = ownFlame(k_4); vec3 _e80 = s_2.N; float edge = pow((1.0 - min(abs(dot(_e80, V_1)), 1.0)), 1.5); float _e97 = vnoise(vec2(((theta_7 * 5.0) + _e16.seed), (lp.y * 240.0))); float layers = (0.89 + (0.11 * _e97)); float _e110 = vnoise(vec2(((theta_7 * 2.0) - _e16.seed), (lp.y * 55.0))); float mottle = (0.94 + (0.06 * _e110)); float _e123 = vnoise(vec2((theta_7 * 37.0), ((lp.y * 800.0) + _e16.seed))); float grain_1 = (0.97 + (0.03 * _e123)); vec3 _e130 = s_2.albedo; float _e134 = drip_1; s_2.albedo = ((((_e130 * layers) * mottle) * grain_1) * (1.0 + (0.1 * _e134))); s_2.sheen = 0.0; s_2.wrap = ((k_4 == 0) ? 0.0 : 0.45); float _e149 = drip_1; s_2.spec = vec3((0.03 + (0.06 * _e149))); float _e156 = drip_1; s_2.power = (24.0 + (40.0 * _e156)); s_2.alpha = prm_1.y; float near = exp((-(below) / (0.9 * _e16.R1_))); float far = exp((-(below) / (8.0 * _e16.R1_))); vec3 _e177 = s_2.albedo; s_2.albedo = (_e177 * mix(0.72, 1.0, far)); float _e192 = drip_1; glow_1 = (((((WAX_NEAR * near) + (WAX_FAR * far)) * (0.45 + (1.0 * edge))) * (1.0 + ((0.7 * _e192) * near))) + ((WAX_EDGE * edge) * edge)); if ((region_1 > 1.5)) { local_49 = (region_1 < 2.5); } else { local_49 = false; } bool _e211 = local_49; if (_e211) { glow_1 = (WAX_LIP * (0.7 + (0.6 * edge))); s_2.spec = vec3(0.07); s_2.power = 60.0; s_2.ao = 0.55; } else { if ((region_1 > 2.5)) { float rr = (length(lp.xz) / max(_e16.R1_, 1e-5)); glow_1 = ((WAX_POOL * (0.65 + (1.2 * exp(((-(rr) * rr) * 7.0))))) * (0.4 + (0.6 * smoothstep(0.0, 0.6, _e78.level)))); vec3 _e255 = s_2.albedo; s_2.albedo = (_e255 * 0.3); s_2.spec = vec3(0.5); s_2.power = 380.0; s_2.ao = 0.5; } } vec3 tint = mix(vec3(0.74, 0.22, 0.04), vec3(1.0, 0.43, 0.12), near); bounce = (WAX_BOUNCE * _e78.level); if ((k_4 > 0)) { float _e280 = bounce; float _e288 = _group_0_binding_0_fs.candlePos[(k_4 - 1)].w; bounce = max(_e280, (WAX_BOUNCE_POOL * _e288)); } float _e292 = glow_1; vec3 _e297 = s_2.albedo; float _e300 = bounce; s_2.emit = ((tint * (_e292 * _e78.level)) + ((_e297 * NEAR_COLOR) * _e300)); if ((k_4 > 0)) { vec3 _e307 = s_2.emit; float _e309 = s_2.ao; vec3 _e313 = s_2.N; vec3 _e315 = s_2.albedo; vec3 _e317 = s_2.spec; float _e319 = s_2.power; vec3 _e321 = nearLight(_e78, world_3, _e313, V_1, _e315, _e317, _e319, 0.0); s_2.emit = (_e307 + ((0.6 * _e309) * _e321)); } Surf _e324 = s_2; return _e324; } Surf candleMetal(Surf s0_1, vec3 world_4, vec4 prm_2, vec3 base, vec3 V_2, bool detailed) { Surf s_3 = Surf(vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, 0.0); float t_10 = 0.0; s_3 = s0_1; float kind = prm_2.x; t_10 = (0.4 * prm_2.y); if (detailed) { float _e21 = vnoise(((world_4.xz * 41.0) + vec2((world_4.y * 27.0), prm_2.z))); t_10 = (smoothstep(0.15, 0.85, ((_e21 * 0.5) + 0.5)) * prm_2.y); } if ((kind < 0.5)) { float _e34 = t_10; s_3.albedo = (base * (0.16 - (0.08 * _e34))); float _e49 = t_10; s_3.spec = mix(vec3(0.95, 0.66, 0.33), vec3(0.36, 0.26, 0.13), _e49); float _e52 = t_10; s_3.power = mix(150.0, 24.0, _e52); } else { if ((kind < 1.5)) { float _e59 = t_10; s_3.albedo = (base * (0.22 - (0.08 * _e59))); float _e74 = t_10; s_3.spec = mix(vec3(0.62, 0.6, 0.57), vec3(0.26, 0.25, 0.23), _e74); float _e77 = t_10; s_3.power = mix(70.0, 16.0, _e77); } else { float _e82 = t_10; s_3.albedo = (base * (0.6 - (0.2 * _e82))); float _e89 = t_10; s_3.spec = vec3((0.2 - (0.08 * _e89))); s_3.power = 26.0; } } s_3.wrap = 0.2; int k_5 = int(floor((prm_2.w + 0.5))); OwnFlame _e104 = ownFlame(k_5); if ((k_5 > 0)) { vec3 _e109 = s_3.N; vec3 _e113 = s_3.spec; float _e115 = s_3.power; vec3 _e117 = nearLight(_e104, world_4, _e109, V_2, vec3(0.0), _e113, _e115, 0.0); s_3.emit = _e117; } vec3 _e119 = s_3.N; float fres = pow((1.0 - clamp(dot(_e119, V_2), 0.0, 1.0)), 4.0); vec3 _e130 = s_3.emit; vec3 _e132 = s_3.spec; s_3.emit = (_e130 + (((_e132 * vec3(0.014, 0.009, 0.005)) * fres) * (0.4 + (0.6 * clamp(_e104.level, 0.0, 1.0))))); Surf _e149 = s_3; return _e149; } Surf candleSpill(Surf s0_2, vec3 world_5, vec4 prm_3, vec3 base_1, vec3 V_3) { Surf s_4 = Surf(vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, 0.0); s_4 = s0_2; int k_6 = int(floor((prm_3.y + 0.5))); OwnFlame _e11 = ownFlame(k_6); float _e20 = vnoise(((world_5.xz * 300.0) + vec2(prm_3.x, 0.0))); s_4.albedo = (base_1 * (0.9 + (0.1 * _e20))); s_4.spec = vec3(0.07); s_4.power = 44.0; s_4.wrap = 0.3; s_4.sheen = 0.0; s_4.alpha = prm_3.w; s_4.emit = (vec3(0.9, 0.35, 0.08) * ((prm_3.z * _e11.level) * 0.06)); if ((k_6 > 0)) { vec3 _e52 = s_4.emit; vec3 _e54 = s_4.N; vec3 _e56 = s_4.albedo; vec3 _e58 = s_4.spec; float _e60 = s_4.power; vec3 _e62 = nearLight(_e11, world_5, _e54, V_3, _e56, _e58, _e60, 0.3); s_4.emit = (_e52 + _e62); } Surf _e64 = s_4; return _e64; } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8); vec3 Ng = vec3(0.0); bool local_7 = false; bool local_8 = false; bool local_9 = false; bool local_10 = false; bool local_11 = false; float moonVis = 0.0; bool local_12 = false; bool local_13 = false; float Ep = 0.0; vec3 Lp = vec3(0.0, 1.0, 0.0); bool local_14 = false; bool local_15 = false; vec3 lantern = vec3(0.0); vec3 Ll = vec3(0.0, 1.0, 0.0); bool local_16 = false; bool local_17 = false; bool local_18 = false; bool local_19 = false; Surf s = Surf(vec3(0.0), vec3(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, 0.0, 0.0, 0.0); float fu = 0.0; float fv = 0.0; vec3 FT = vec3(0.0); vec3 FB = vec3(0.0); bool local_20 = false; float u = 0.0; float v = 0.0; bool local_21 = false; bool local_22 = false; bool local_23 = false; float tone = 1.0; bool local_24 = false; bool local_25 = false; bool local_26 = false; bool local_27 = false; vec3 N = vec3(0.0); float tone_1 = 1.0; float g = 0.0; float dark = 0.0; bool local_28 = false; float t = 0.0; float ink = 0.0; float age = 0.0; bool local_29 = false; bool local_30 = false; float n_1 = 0.5; float n_2 = 0.5; float tone_2 = 0.0; float grain = 1.0; float tone_3 = 0.8; float land = 0.0; float lines = 0.0; vec3 color = vec3(0.0); bool local_31 = false; bool local_32 = false; bool local_33 = false; bool local_34 = false; bool local_35 = false; bool local_36 = false; float handAlpha = 0.0; bool local_37 = false; bool local_38 = false; float outA = 0.0; bool local_39 = false; vec3 fw = fwidth(in_1.world); float fp_1 = max(max(fw.x, fw.y), max(fw.z, 1e-6)); vec3 fwl = fwidth(in_1.local); float mat = in_1.color.w; vec3 base_2 = in_1.color.xyz; vec4 prm_4 = in_1.params; vec3 size_2 = in_1.size.xyz; vec3 AX_1 = in_1.ax.xyz; vec3 AY_1 = in_1.ay.xyz; vec3 AZ_1 = cross(AX_1, AY_1); Ng = normalize(in_1.normal); vec4 _e29 = _group_0_binding_0_fs.eye; vec3 V_4 = normalize((_e29.xyz - in_1.world)); vec3 _e34 = Ng; if ((dot(_e34, V_4) < 0.0)) { if (!((mat == MAT_WEB))) { local_8 = (mat == MAT_PAPER); } else { local_8 = true; } bool _e48 = local_8; local_7 = _e48; } else { local_7 = false; } bool _e50 = local_7; if (_e50) { vec3 _e51 = Ng; Ng = -(_e51); } vec3 an = abs(in_1.lnrm); bool faceX = (an.x > 0.5); if ((an.y > 0.5)) { local_9 = !(faceX); } else { local_9 = false; } bool faceY = local_9; if (!(faceX)) { local_10 = !(faceY); } else { local_10 = false; } bool faceZ = local_10; vec3 lp_1 = in_1.local; if (!((mat == MAT_TAPER))) { local_11 = (mat == MAT_CWAX); } else { local_11 = true; } bool candleWax = local_11; int ownLight = (candleWax ? int((((mat == MAT_TAPER) ? prm_4.x : prm_4.y) + 0.5)) : 0); vec4 _e94 = _group_0_binding_0_fs.light; vec3 toL_2 = (_e94.xyz - in_1.world); float d2_1 = dot(toL_2, toL_2); vec3 L = (toL_2 * inversesqrt(max(d2_1, 1e-8))); vec3 _e104 = doorSpace(in_1.world); float _e109 = _group_0_binding_0_fs.hall3_.x; bool inHall = (_e104.x < (_e109 - 0.05)); float _e114 = slabShade(in_1.world, toL_2); vec4 _e118 = _group_0_binding_0_fs.light; float _e120 = doorPortal(in_1.world, _e118.xyz); float slab = (_e114 * (inHall ? _e120 : 1.0)); float _e127 = _group_0_binding_0_fs.light.w; float _e131 = _group_0_binding_0_fs.lightColor.w; float _e137 = _group_0_binding_0_fs.highlight.x; float _e141 = _group_0_binding_0_fs.highlight.y; float _e142 = shoulder((_e127 / (d2_1 + _e131)), _e137, _e141); float E = (_e142 * slab); float _e147 = _group_0_binding_0_fs.light.w; float _e151 = _group_0_binding_0_fs.roomLight.w; float Eroom = ((_e147 / (d2_1 + _e151)) * slab); vec4 _e157 = _group_0_binding_0_fs.moonTravel; vec3 d_7 = _e157.xyz; vec3 M = -(d_7); vec3 _e162 = Ng; if ((dot(_e162, M) > 0.0)) { float _e171 = _group_0_binding_0_fs.moonColor.x; float _e175 = _group_0_binding_0_fs.moonColor.z; local_12 = ((_e171 + _e175) > 1e-5); } else { local_12 = false; } bool _e180 = local_12; if (_e180) { local_13 = !(inHall); } else { local_13 = false; } bool _e185 = local_13; if (_e185) { vec4 _e189 = _group_0_binding_0_fs.win; vec4 _e192 = _group_0_binding_0_fs.win2_; float _e193 = moonPatch(in_1.world, d_7, _e189, _e192); float _e197 = slabShade(in_1.world, (M * 40.0)); moonVis = (_e193 * _e197); } float _e202 = _group_0_binding_0_fs.win.x; float _e206 = _group_0_binding_0_fs.win.y; float _e213 = _group_0_binding_0_fs.win.z; float _e217 = _group_0_binding_0_fs.misc.w; float _e224 = _group_0_binding_0_fs.win2_.x; vec3 wc = vec3(((_e202 + _e206) * 0.5), ((_e213 + _e217) * 0.5), _e224); vec3 toW = (wc - in_1.world); float dW = length(toW); float _e232 = _group_0_binding_0_fs.moonTravel.w; float _e237 = _group_0_binding_0_fs.misc.z; float _e241 = _group_0_binding_0_fs.misc.z; float sky = ((_e232 / (1.0 + ((dW * dW) / (_e237 * _e241)))) * (inHall ? 0.0 : 1.0)); vec3 _e251 = Ng; float skyDir = (0.55 + (0.45 * dot(_e251, (toW / vec3(max(dW, 0.0001)))))); float _e271 = _group_0_binding_0_fs.pool.w; if ((_e271 > 0.0)) { local_14 = !(inHall); } else { local_14 = false; } bool _e278 = local_14; if (_e278) { vec4 _e281 = _group_0_binding_0_fs.pool; vec3 toP = (_e281.xyz - in_1.world); float dp2_ = dot(toP, toP); Lp = (toP * inversesqrt(max(dp2_, 1e-8))); float _e293 = _group_0_binding_0_fs.win2_.x; float sw = ((_e293 - in_1.world.z) / min(toP.z, -0.0001)); if ((sw > 0.0)) { local_15 = (sw < 1.0); } else { local_15 = false; } bool _e308 = local_15; if (_e308) { vec2 qw = (in_1.world.xy + (toP.xy * sw)); float _e319 = _group_0_binding_0_fs.win2_.x; float _e326 = _group_0_binding_0_fs.poolColor.w; float soft_1 = (0.006 + (max((in_1.world.z - _e319), 0.0) * _e326)); float _e333 = _group_0_binding_0_fs.pool.w; vec4 _e339 = _group_0_binding_0_fs.win; vec4 _e342 = _group_0_binding_0_fs.win2_; float _e344 = windowMask(qw, _e339, _e342, soft_1, 1.0); float _e347 = slabShade(in_1.world, toP); Ep = (((_e333 / max(dp2_, 0.0001)) * _e344) * _e347); } } float _e360 = _group_0_binding_0_fs.hall.w; if ((_e360 > 0.0)) { vec4 _e365 = _group_0_binding_0_fs.hall; vec3 tl = (_e365.xyz - in_1.world); float dl2_ = dot(tl, tl); Ll = (tl * inversesqrt(max(dl2_, 1e-8))); vec3 _e374 = lanternColor(); float _e378 = _group_0_binding_0_fs.hall.w; vec4 _e385 = _group_0_binding_0_fs.hall; float _e387 = doorPortal(in_1.world, _e385.xyz); lantern = (_e374 * ((_e378 / (dl2_ + 0.3)) * _e387)); } vec3 _e390 = lanternColor(); float _e392 = doorSpill(in_1.world); vec3 spill = (_e390 * _e392); vec3 _e396 = Ng; vec3 _e397 = doorVec(_e396); vec3 _e398 = galleryMoon(_e104, _e397); vec3 gallery = (inHall ? _e398 : vec3(0.0)); vec3 _e401 = Ng; vec3 _e404 = fixedCandlesSkip(in_1.world, _e401, (ownLight - 1)); vec3 _e406 = lantern; vec3 _e407 = Ng; vec3 _e408 = Ll; vec4 _e422 = _group_0_binding_0_fs.lightColor; vec3 _e425 = Ng; vec4 _e438 = _group_0_binding_0_fs.roomLight; vec3 _e441 = Ng; vec4 _e451 = _group_0_binding_0_fs.moonColor; float _e453 = moonVis; vec3 _e455 = Ng; vec4 _e463 = _group_0_binding_0_fs.poolColor; float _e465 = Ep; vec3 _e466 = Ng; vec3 _e467 = Lp; vec4 _e476 = _group_0_binding_0_fs.moonColor; vec4 _e483 = _group_0_binding_0_fs.ambient; vec3 lin = (((((((((_e404 + gallery) + ((_e406 * max((dot(_e407, _e408) + 0.3), 0.0)) / vec3(1.3))) + spill) + (((_e422.xyz * E) * max((dot(_e425, L) + 0.35), 0.0)) / vec3(1.35))) + ((_e438.xyz * Eroom) * (0.5 + (0.5 * dot(_e441, L))))) + ((_e451.xyz * _e453) * max(dot(_e455, M), 0.0))) + (_e463.xyz * (_e465 * max(dot(_e466, _e467), 0.0)))) + (_e476.xyz * (sky * skyDir))) + _e483.xyz); float _e486 = luma(lin); float _e490 = _group_0_binding_0_fs.highlight.w; float _e495 = _group_0_binding_0_fs.highlight.z; if (!(((_e486 * _e490) > _e495))) { local_16 = (mat == MAT_GLASS); } else { local_16 = true; } bool _e503 = local_16; if (!(_e503)) { local_17 = (mat == MAT_HALL_WINDOW); } else { local_17 = true; } bool _e510 = local_17; if (!(_e510)) { local_18 = (mat == MAT_WEB); } else { local_18 = true; } bool _e517 = local_18; if (!(_e517)) { local_19 = (mat == MAT_DIAL); } else { local_19 = true; } bool detailed_1 = local_19; s.albedo = base_2; s.spec = vec3(0.0); s.power = 16.0; s.emit = vec3(0.0); vec3 _e536 = Ng; s.N = _e536; s.ao = 1.0; s.sheen = 0.0; s.alpha = 1.0; s.wrap = 0.35; s.moonShade = 1.0; FT = AX_1; FB = AY_1; if (faceX) { fu = (lp_1.z * size_2.z); fv = (lp_1.y * size_2.y); FT = AZ_1; FB = AY_1; } else { if (faceY) { fu = (lp_1.x * size_2.x); fv = (lp_1.z * size_2.z); FT = AX_1; FB = AZ_1; } else { fu = (lp_1.x * size_2.x); fv = (lp_1.y * size_2.y); FT = AX_1; FB = AY_1; } } if (!((mat == MAT_WOOD))) { local_20 = (mat == MAT_LEATHER); } else { local_20 = true; } bool _e579 = local_20; if (_e579) { float faceU = (faceX ? size_2.z : size_2.x); float faceV = (faceX ? size_2.y : (faceY ? size_2.z : size_2.y)); bool alongU = (faceU >= faceV); float flags = prm_4.w; float _e590 = fv; float _e591 = fu; u = (alongU ? _e591 : _e590); float _e594 = fu; float _e595 = fv; v = (alongU ? _e595 : _e594); if ((flags > 1.5)) { local_21 = (flags < 2.5); } else { local_21 = false; } bool _e605 = local_21; if (_e605) { u = in_1.world.y; float _e608 = fu; v = _e608; } if ((flags > 0.5)) { local_22 = (flags < 1.5); } else { local_22 = false; } bool _e616 = local_22; if (_e616) { local_23 = faceY; } else { local_23 = false; } bool _e620 = local_23; if (_e620) { u = in_1.world.x; v = in_1.world.z; } if (detailed_1) { float _e627 = u; float _e630 = v; float _e634 = woodTone((_e627 * prm_4.x), (_e630 * prm_4.x), prm_4.y); tone = _e634; if ((flags > 1.5)) { local_24 = (flags < 2.5); } else { local_24 = false; } bool _e642 = local_24; if (_e642) { float _e644 = v; float pi = floor((_e644 / 0.9)); float _e647 = tone; float _e652 = h1_(vec2(pi, (3.0 + prm_4.y))); tone = (_e647 * (0.82 + (0.3 * _e652))); float _e658 = v; float _e667 = lineAA((_e658 - ((pi + 0.5) * 0.9)), ((0.9 * 0.5) - 0.02), fp_1); float _e668 = tone; tone = (_e668 * mix(0.35, 1.0, _e667)); } } else { tone = 0.9; } float _e675 = tone; s.albedo = (base_2 * _e675); s.spec = vec3((0.035 + (0.09 * prm_4.z))); s.power = (18.0 + (40.0 * prm_4.z)); if ((mat == MAT_LEATHER)) { float _e696 = vnoise((in_1.world.xz * 90.0)); float n_11 = (detailed_1 ? ((_e696 * 0.5) + 0.5) : 0.0); s.albedo = (base_2 * (0.85 + (0.3 * n_11))); float _e709 = fu; float _e717 = fu; float ex = min((_e709 + (size_2.x * 0.5)), ((size_2.x * 0.5) - _e717)); float _e720 = fv; float _e728 = fv; float ez = min((_e720 + (size_2.z * 0.5)), ((size_2.z * 0.5) - _e728)); float e_2 = min(ex, ez); float _e735 = lineAA((e_2 - prm_4.x), 0.008, fp_1); float _e741 = lineAA(((e_2 - prm_4.x) - 0.035), 0.004, fp_1); float rule = (max(_e735, _e741) * (faceY ? 1.0 : 0.0)); vec3 _e749 = s.albedo; s.albedo = mix(_e749, vec3(0.3, 0.2, 0.06), (rule * 0.8)); s.spec = mix(vec3(0.04), vec3(0.75, 0.52, 0.2), rule); s.power = mix(22.0, 60.0, rule); } if ((flags > 0.5)) { local_25 = (flags < 1.5); } else { local_25 = false; } bool _e776 = local_25; if (_e776) { local_26 = faceY; } else { local_26 = false; } bool _e780 = local_26; if (_e780) { float _e784 = _group_0_binding_0_fs.book.x; float _e788 = _group_0_binding_0_fs.book.z; vec2 lo_3 = vec2(_e784, -(_e788)); float _e794 = _group_0_binding_0_fs.book.y; float _e798 = _group_0_binding_0_fs.book.z; vec2 hi_3 = vec2(_e794, _e798); vec2 q2_ = max(max((lo_3 - in_1.world.xz), (in_1.world.xz - hi_3)), vec2(0.0)); float _e814 = _group_0_binding_0_fs.book.w; float _e826 = discAO(in_1.world, 0, 5); s.ao = (mix(0.3, 1.0, smoothstep(0.0, max(_e814, 0.0001), length(q2_))) * _e826); } } else { if ((mat == MAT_BOOK)) { float seed_3 = prm_4.x; float gilt = prm_4.y; float style = prm_4.z; float wear = prm_4.w; if (faceZ) { local_27 = (in_1.lnrm.z > 0.0); } else { local_27 = false; } bool _e841 = local_27; if (_e841) { float x_4 = (lp_1.x * 2.0); float y_6 = lp_1.y; float hgt = size_2.y; vec3 _e847 = Ng; vec3 _e848 = FT; N = normalize((_e847 + (_e848 * (x_4 * 0.85)))); if (detailed_1) { float _e861 = fu; float _e862 = fv; float _e868 = vnoise(((vec2(_e861, _e862) * 160.0) + vec2(seed_3))); float cloth_1 = ((_e868 * 0.5) + 0.5); float _e877 = fu; float _e880 = fv; float _e888 = vnoise((vec2((_e877 * 6.0), (_e880 * 3.0)) + vec2((seed_3 * 1.7)))); tone_1 = ((0.86 + (0.22 * cloth_1)) + (0.1 * _e888)); float yy = ((y_6 + 0.5) * hgt); if ((style > 0.45)) { float nr = (4.0 + floor((style * 3.0))); float pitch = ((hgt * 0.78) / nr); float r0_ = (hgt * 0.11); float k_7 = clamp(floor((((yy - r0_) / pitch) + 0.5)), 0.0, nr); float dy = (yy - (r0_ + (k_7 * pitch))); float rib = (1.0 - smoothstep(0.012, 0.03, abs(dy))); vec3 _e923 = N; vec3 _e924 = FB; N = normalize((_e923 + (_e924 * ((clamp((-(dy) / 0.03), -1.0, 1.0) * rib) * 0.9)))); float _e937 = tone_1; tone_1 = (_e937 * (1.0 + (0.25 * rib))); float _e943 = g; float _e948 = lineAA((abs(dy) - 0.045), 0.006, fp_1); g = max(_e943, (_e948 * gilt)); float lab = ((step((r0_ + (pitch * (nr - 2.0))), yy) * step(yy, (r0_ + (pitch * (nr - 1.0))))) * step(abs(x_4), 0.8)); float _e968 = h1_(vec2(seed_3, 9.0)); dark = (lab * (0.45 + (0.4 * _e968))); float tl_1 = abs((yy - (r0_ + (pitch * (nr - 1.5))))); float _e987 = h1_(vec2(seed_3, floor((yy * 40.0)))); float dash = step(0.5, fract(((lp_1.x * 7.0) + (_e987 * 3.0)))); float _e994 = g; float _e996 = lineAA(tl_1, 0.014, fp_1); g = max(_e994, ((((lab * _e996) * dash) * step(0.3, gilt)) * step(abs(x_4), 0.62))); } else { float tb_1 = abs((yy - (hgt * 0.8))); float _e1011 = g; float _e1013 = lineAA(tb_1, 0.018, fp_1); g = max(_e1011, (((_e1013 * step(abs(x_4), 0.7)) * step(0.5, fract(((lp_1.x * 6.0) + seed_3)))) * gilt)); float _e1028 = g; float _e1033 = lineAA((yy - (hgt * 0.93)), 0.006, fp_1); g = max(_e1028, (_e1033 * gilt)); float _e1036 = g; float _e1041 = lineAA((yy - (hgt * 0.07)), 0.006, fp_1); g = max(_e1036, (_e1041 * gilt)); dark = ((step(abs(tb_1), 0.06) * 0.25) * step(0.5, (style * 2.0))); } float edge_1 = smoothstep(0.7, 1.0, abs(x_4)); float _e1058 = tone_1; tone_1 = ((_e1058 * (1.0 - (0.15 * edge_1))) + ((0.18 * edge_1) * wear)); float _e1068 = fu; float _e1071 = fv; float _e1079 = vnoise((vec2((_e1068 * 30.0), (_e1071 * 12.0)) + vec2((seed_3 * 5.0)))); float scuff = (smoothstep(0.55, 0.95, _e1079) * wear); float _e1084 = tone_1; tone_1 = (_e1084 + (scuff * 0.25)); } float _e1088 = tone_1; float _e1090 = dark; vec3 leather = ((base_2 * _e1088) * (1.0 - _e1090)); vec3 gold = vec3(0.46, 0.3, 0.09); float _e1101 = g; s.albedo = mix(leather, (gold * 0.35), _e1101); float _e1113 = g; s.spec = mix(vec3((0.03 + (0.05 * style))), vec3(1.0, 0.72, 0.32), _e1113); float _e1120 = g; s.power = mix((14.0 + (20.0 * style)), 70.0, _e1120); vec3 _e1124 = N; s.N = _e1124; } else { if (faceY) { local_28 = (in_1.lnrm.y > 0.0); } else { local_28 = false; } bool _e1132 = local_28; if (_e1132) { float bx = (abs(lp_1.x) * 2.0); float board = (smoothstep(0.72, 0.78, bx) + smoothstep(0.4, 0.44, lp_1.z)); float _e1154 = vnoise(vec2(((lp_1.x * size_2.x) * 260.0), (lp_1.z * 3.0))); float lines_1 = (detailed_1 ? ((_e1154 * 0.5) + 0.5) : 0.5); vec3 pages = mix(vec3(0.16, 0.13, 0.085), vec3(0.24, 0.2, 0.13), lines_1); float topGilt = step(0.82, gilt); vec3 pg = mix(pages, vec3(0.4, 0.27, 0.08), topGilt); s.albedo = mix(pg, base_2, clamp(board, 0.0, 1.0)); s.spec = vec3(((topGilt * 0.5) * (1.0 - clamp(board, 0.0, 1.0)))); s.power = 40.0; s.ao = 0.55; s.moonShade = 0.3; } else { s.albedo = (base_2 * 0.8); s.ao = 0.7; } } } else { if ((mat == MAT_BRASS)) { if (detailed_1) { float _e1220 = vnoise((((in_1.world.xz * 11.0) + vec2((in_1.world.y * 7.0))) + vec2(prm_4.y))); t = (smoothstep(0.1, 0.8, ((_e1220 * 0.5) + 0.5)) * prm_4.x); } float _e1231 = t; s.albedo = (base_2 * (0.2 - (0.1 * _e1231))); float _e1246 = t; s.spec = mix(vec3(1.2, 0.86, 0.42), vec3(0.4, 0.3, 0.16), _e1246); float _e1249 = t; s.power = mix(34.0, 14.0, _e1249); } else { if ((mat == MAT_PAPER)) { if (detailed_1) { local_29 = faceY; } else { local_29 = false; } bool _e1262 = local_29; if (_e1262) { float _e1264 = fv; float row = (_e1264 / 0.045); float ri = floor(row); float _e1267 = fu; float slant = (_e1267 + (((fract(row) - 0.5) * 0.045) * 0.35)); float _e1281 = fu; float _e1285 = vnoise(vec2((_e1281 * 90.0), ri)); float stroke = ((abs((fract(row) - 0.5)) - 0.1) - (0.06 * _e1285)); float inRow = (1.0 - smoothstep(0.0, (0.08 + (fp_1 / 0.045)), stroke)); float _e1303 = vnoise(vec2((slant * 26.0), ((ri * 3.1) + prm_4.x))); float words = smoothstep(0.1, 0.35, ((_e1303 * 0.5) + 0.5)); float _e1316 = vnoise(vec2((slant * 260.0), (ri * 7.0))); float letters = (0.55 + (0.45 * _e1316)); float _e1326 = h1_(vec2(ri, (prm_4.x + 3.0))); float right = (size_2.x * (0.3 + (0.08 * _e1326))); float _e1336 = fu; float _e1338 = fu; float _e1341 = fv; float margin = ((step((-(size_2.x) * 0.36), _e1336) * step(_e1338, right)) * step(abs(_e1341), (size_2.z * 0.4))); float _e1355 = h1_(vec2(ri, prm_4.x)); ink = (((((inRow * words) * letters) * margin) * prm_4.y) * step(0.12, _e1355)); float _e1362 = fu; float _e1368 = fv; float e_3 = min(((size_2.x * 0.5) - abs(_e1362)), ((size_2.z * 0.5) - abs(_e1368))); float _e1372 = fu; float _e1373 = fv; float _e1377 = vnoise((vec2(_e1372, _e1373) * 30.0)); float _e1388 = fu; float _e1389 = fv; float _e1396 = vnoise(((vec2(_e1388, _e1389) * 9.0) + vec2(prm_4.x))); age = (((1.0 - smoothstep(0.0, 0.06, (e_3 + (0.02 * _e1377)))) * 0.5) + (smoothstep(0.55, 0.9, _e1396) * 0.25)); } float _e1404 = age; float _e1414 = ink; s.albedo = mix((base_2 * (1.0 - (_e1404 * 0.45))), vec3(0.05, 0.03, 0.02), (_e1414 * 0.7)); s.spec = vec3(0.02); } else { if ((mat == MAT_GLASS)) { vec2 q_7 = in_1.world.xy; vec4 _e1427 = _group_0_binding_0_fs.win; vec4 _e1430 = _group_0_binding_0_fs.win2_; float _e1434 = windowMask(q_7, _e1427, _e1430, max(fp_1, 0.004), 1.0); float _e1439 = vnoise((q_7 * vec2(3.0, 1.2))); float wav = ((_e1439 * 0.5) + 0.5); float top_2 = _group_0_binding_0_fs.misc.w; float _e1451 = _group_0_binding_0_fs.win.x; float _e1455 = _group_0_binding_0_fs.win.y; float _e1459 = _group_0_binding_0_fs.win.x; float moonGlow = exp((-(length((q_7 - vec2((_e1451 + ((_e1455 - _e1459) * 0.3)), (top_2 - 0.6))))) * 0.9)); vec4 _e1475 = _group_0_binding_0_fs.moonColor; float _e1484 = _group_0_binding_0_fs.win.z; vec3 sky_1 = (_e1475.xyz * (((0.09 + (0.08 * wav)) * (0.6 + (0.4 * smoothstep(_e1484, top_2, q_7.y)))) + (0.42 * moonGlow))); s.emit = (sky_1 * _e1434); s.albedo = (vec3(0.02, 0.018, 0.016) * (1.0 - _e1434)); s.spec = vec3((0.3 * _e1434)); s.power = 90.0; } else { if ((mat == MAT_TAPER)) { Surf _e1514 = s; Surf _e1523 = candleTaper(_e1514, in_1.world, in_1.local, in_1.lnrm, in_1.size, in_1.ax.w, in_1.ay.w, prm_4, AX_1, AY_1, AZ_1, V_4); s = _e1523; } else { if ((mat == MAT_CMETAL)) { Surf _e1526 = s; Surf _e1528 = candleMetal(_e1526, in_1.world, prm_4, base_2, V_4, detailed_1); s = _e1528; } else { if ((mat == MAT_CWAX)) { Surf _e1531 = s; Surf _e1533 = candleSpill(_e1531, in_1.world, prm_4, base_2, V_4); s = _e1533; } else { if ((mat == MAT_WAX)) { s.albedo = base_2; s.sheen = 0.25; if ((prm_4.y > 0.5)) { float _e1545 = _group_0_binding_0_fs.light.y; float dy_1 = max((_e1545 - in_1.world.y), 0.0); vec3 _e1551 = Ng; float across_2 = min(abs(dot(_e1551, V_4)), 1.0); float rimW = (0.45 + (0.55 * pow((1.0 - across_2), 2.0))); float glow_2 = (((exp((-(dy_1) / 0.06)) * 1.1) + (exp((-(dy_1) / 0.22)) * 0.1)) * rimW); float _e1586 = _group_0_binding_0_fs.light.w; s.emit = (vec3(1.0, 0.46, 0.14) * (_e1586 * glow_2)); s.albedo = (base_2 * (0.18 + (0.2 * across_2))); s.wrap = 0.0; s.alpha = prm_4.w; } } else { if (!((mat == MAT_FABRIC))) { local_30 = (mat == MAT_CURTAIN); } else { local_30 = true; } bool _e1607 = local_30; if (_e1607) { if (detailed_1) { float _e1610 = fu; float _e1611 = fv; float _e1618 = vnoise(((vec2(_e1610, _e1611) * 9.0) + vec2(prm_4.x))); n_1 = ((_e1618 * 0.5) + 0.5); } float _e1624 = n_1; float _e1633 = n_1; s.albedo = ((base_2 * (0.8 + (0.35 * _e1624))) * (1.0 + ((prm_4.y * 0.35) * smoothstep(0.6, 0.9, _e1633)))); s.sheen = 0.9; if ((mat == MAT_CURTAIN)) { vec4 _e1648 = _group_0_binding_0_fs.moonColor; vec3 _e1652 = s.N; s.emit = ((base_2 * _e1648.xyz) * (0.12 + (0.08 * max(dot(_e1652, V_4), 0.0)))); float hem = (1.0 - smoothstep(0.008, 0.02, abs((in_1.local.y + 0.47)))); vec3 _e1673 = s.albedo; s.albedo = mix(_e1673, vec3(0.35, 0.24, 0.1), (hem * 0.7)); } } else { if ((mat == MAT_PLASTER)) { if (detailed_1) { float _e1685 = fu; float _e1686 = fv; float _e1694 = fbm3_((vec2(_e1685, _e1686) * vec2(1.3, (faceY ? 1.3 : 0.7)))); n_2 = ((_e1694 * 0.5) + 0.5); float _e1699 = n_2; float _e1700 = fu; float _e1703 = fv; float _e1707 = vnoise(vec2((_e1700 * 5.0), (_e1703 * 0.35))); n_2 = (_e1699 - (faceY ? 0.0 : (0.12 * smoothstep(0.2, 0.9, _e1707)))); } float _e1717 = n_2; s.albedo = (base_2 * (0.75 + (0.4 * _e1717))); } else { if ((mat == MAT_FLOOR)) { float bw_1 = prm_4.x; float b_1 = floor((in_1.world.x / bw_1)); float _e1732 = h1_(vec2(b_1, 7.0)); float len_1 = (5.0 + (4.0 * _e1732)); float _e1739 = h1_(vec2(b_1, 13.0)); float off = (_e1739 * len_1); float zz = (in_1.world.z + off); float seg = floor((zz / len_1)); vec2 key = vec2(b_1, seg); float _e1750 = h1_((key + vec2(prm_4.y))); tone_2 = (0.72 + (0.4 * _e1750)); float _e1766 = lineAA((in_1.world.x - ((b_1 + 0.5) * bw_1)), ((bw_1 * 0.5) - 0.012), fp_1); float _e1775 = lineAA((zz - ((seg + 0.5) * len_1)), ((len_1 * 0.5) - 0.01), fp_1); if (detailed_1) { float _e1789 = h1_(key); float _e1792 = woodTone((in_1.world.z * 0.8), ((in_1.world.x * 0.8) + (b_1 * 3.7)), (_e1789 * 20.0)); grain = _e1792; float nz = (zz - (seg * len_1)); float ax = (abs(((fract((in_1.world.x / bw_1)) - 0.5) * bw_1)) - (bw_1 * 0.25)); float az = (min(nz, (len_1 - nz)) - 0.1); float nail = (1.0 - smoothstep(0.014, (0.014 + fp_1), length(vec2(ax, az)))); float _e1818 = tone_2; tone_2 = (_e1818 * (1.0 - (0.6 * nail))); } float _e1825 = tone_2; float _e1827 = grain; s.albedo = (((base_2 * _e1825) * _e1827) * mix(0.18, 1.0, (_e1766 * _e1775))); s.spec = vec3(0.03); s.power = 12.0; vec4 r_8 = _group_0_binding_0_fs.room; float dwall = min(min((in_1.world.x - r_8.x), (r_8.y - in_1.world.x)), min((in_1.world.z - r_8.z), (r_8.w - in_1.world.z))); float _e1871 = discAO(in_1.world, 5, 12); s.ao = (mix(0.45, 1.0, smoothstep(0.0, 1.6, dwall)) * _e1871); } else { if ((mat == MAT_PANEL)) { float pw_2 = prm_4.x; float ph = prm_4.y; float _e1877 = fu; float _e1878 = fv; float along = (faceY ? _e1878 : _e1877); float _e1885 = _group_0_binding_0_fs.win2_.w; float up = (in_1.world.y - _e1885); float cu = (along / pw_2); float cv = (up / ph); float fuu = (abs((fract(cu) - 0.5)) * pw_2); float fvv = (abs((fract(cv) - 0.5)) * ph); float bx_1 = ((pw_2 * 0.5) - fuu); float by = ((ph * 0.5) - fvv); float e_4 = min(bx_1, by); float rail = (1.0 - smoothstep(0.24, (0.24 + (fp_1 * 2.0)), e_4)); float bevel = (smoothstep(0.24, 0.36, e_4) * (1.0 - smoothstep(0.36, 0.5, e_4))); if (detailed_1) { float _e1930 = woodTone(((by < bx_1) ? along : up), ((by < bx_1) ? up : along), prm_4.z); tone_3 = (_e1930 * 0.85); float tu = sign((fract(cu) - 0.5)); float tv = sign((fract(cv) - 0.5)); vec3 _e1941 = FB; vec3 _e1943 = FT; vec3 bn = ((bx_1 < by) ? (_e1943 * tu) : (_e1941 * tv)); vec3 _e1948 = Ng; s.N = normalize((_e1948 + (bn * (bevel * 0.6)))); } float _e1955 = tone_3; s.albedo = ((base_2 * _e1955) * mix(1.0, 0.8, rail)); s.spec = vec3(0.05); s.power = 20.0; } else { if ((mat == MAT_IRON)) { s.albedo = base_2; s.spec = vec3(0.12); s.power = 24.0; } else { if ((mat == MAT_GLOBE)) { vec3 pn = normalize(lp_1); float lon = atan(pn.z, pn.x); float lat = asin(clamp(pn.y, -1.0, 1.0)); if (detailed_1) { float _e1996 = fbm3_(vec2(((lon * 1.6) + prm_4.x), (lat * 2.4))); float _e2002 = vnoise(vec2((lon * 6.0), (lat * 8.0))); float c_9 = (_e1996 + (0.25 * _e2002)); land = smoothstep(0.05, 0.12, c_9); float _e2013 = lineAA((c_9 - 0.085), 0.02, 0.01); float _e2023 = lineAA((fract(((lon / 0.5236) + 0.5)) - 0.5), 0.02, 0.02); float _e2033 = lineAA((fract(((lat / 0.5236) + 0.5)) - 0.5), 0.02, 0.02); lines = max((_e2013 * 0.9), (max(_e2023, _e2033) * 0.5)); } float _e2046 = land; float _e2048 = lines; s.albedo = (mix(base_2, (base_2 * vec3(0.5, 0.45, 0.3)), _e2046) * (1.0 - (0.8 * _e2048))); s.spec = vec3(0.12); s.power = 40.0; } else { if ((mat == MAT_HALL_WINDOW)) { vec2 q_8 = (vec2((faceX ? lp_1.z : lp_1.x), lp_1.y) * 2.0); float arch = (1.0 - smoothstep(0.94, 1.0, length(vec2(q_8.x, (max((q_8.y - 0.28), 0.0) * 1.38))))); float bars_2 = ((1.0 - smoothstep(0.018, 0.036, abs(q_8.x))) + (1.0 - smoothstep(0.018, 0.04, abs((q_8.y + 0.12))))); float lead = (1.0 - smoothstep(0.025, 0.06, abs((fract(((q_8.x * 3.0) + (q_8.y * 3.0))) - 0.5)))); float moon = ((1.0 - smoothstep(0.115, 0.128, length((q_8 - vec2(0.2, 0.36))))) * (1.0 - step(0.5, in_1.params.x))); float _e2139 = vnoise((q_8 * 3.0)); vec3 sky_2 = (vec3(0.004, 0.008, 0.014) * (0.7 + (0.3 * _e2139))); s.albedo = vec3(0.005); s.emit = ((((sky_2 + (vec3(0.05, 0.07, 0.1) * moon)) * arch) * (1.0 - clamp(bars_2, 0.0, 1.0))) * (1.0 - (0.55 * lead))); s.spec = vec3(0.12); s.power = 32.0; } else { if ((mat == MAT_DIAL)) { if ((in_1.lnrm.y > 0.5)) { vec2 q_9 = (vec2(lp_1.x, -(lp_1.z)) * 2.0); float r_9 = length(q_9); float a_5 = atan(q_9.x, q_9.y); float fpl_1 = (max(fwl.x, fwl.z) * 2.0); float _e2196 = lineAA((r_9 - 0.93), 0.012, fpl_1); float _e2200 = lineAA((r_9 - 0.84), 0.01, fpl_1); float _e2205 = lineAA((r_9 - 0.585), 0.008, fpl_1); float ring = max(max(_e2196, _e2200), _e2205); float _e2217 = lineAA((fract(((a_5 / 0.10472) + 0.5)) - 0.5), 0.07, (fpl_1 * 9.0)); float minute = ((_e2217 * step(0.84, r_9)) * step(r_9, 0.93)); float hourDot = (1.0 - smoothstep(0.022, (0.022 + fpl_1), length(vec2((r_9 * sin(((fract(((a_5 / 0.5236) + 0.5)) * 0.5236) - 0.2618))), (r_9 - 0.885))))); float _e2246 = numeral(q_9, fpl_1); float ink_1 = max(max(ring, minute), max(hourDot, _e2246)); float _e2260 = vnoise(((q_9 * 3.2) + vec2(11.0, 4.0))); float age_3 = ((smoothstep(0.5, 1.0, r_9) * 0.3) + (0.2 * smoothstep(0.3, 0.9, ((_e2260 * 0.5) + 0.5)))); vec3 enamel = ((base_2 * vec3(1.0, 0.93, 0.8)) * (1.0 - age_3)); s.albedo = mix(enamel, vec3(0.03, 0.025, 0.02), ink_1); s.spec = vec3(0.06); s.power = 40.0; vec3 _e2292 = s.albedo; float _e2298 = _group_0_binding_0_fs.highlight.w; s.emit = ((_e2292 * DIAL_FLOOR) / vec3(max(_e2298, 1.0))); } else { s.albedo = vec3(0.3, 0.2, 0.07); s.spec = vec3(0.6, 0.45, 0.2); s.power = 40.0; } } else { if ((mat == MAT_INK)) { s.albedo = base_2; s.spec = vec3(0.55); s.power = 85.0; } else { if ((mat == MAT_DARK)) { s.albedo = base_2; s.ao = 0.6; } else { if ((mat == MAT_EMIT)) { s.albedo = vec3(0.0); s.emit = (base_2 * prm_4.x); } else { if ((mat == MAT_WEB)) { vec2 q_10 = vec2((lp_1.x + 0.5), (lp_1.y + 0.5)); vec2 hub = prm_4.xy; vec2 dv_1 = ((q_10 - hub) * vec2(size_2.x, size_2.y)); float r_10 = length(dv_1); float a_6 = atan(dv_1.y, dv_1.x); float sa = ((((fract((((a_6 / 6.2831855) * 11.0) + prm_4.z)) - 0.5) / 11.0) * 6.2831855) * r_10); float fpw = ((max((fwl.x * size_2.x), (fwl.y * size_2.y)) * 1.2) + 0.002); float _e2380 = lineAA(sa, 0.0035, fpw); float ringR = ((r_10 / 0.075) + (0.35 * sin(((a_6 * 3.0) + prm_4.z)))); float _e2397 = lineAA(((fract(ringR) - 0.5) * 0.075), 0.003, fpw); float _e2408 = vnoise((vec2((a_6 * 3.0), (r_10 * 9.0)) + vec2((prm_4.z * 5.0)))); float tatter = step(0.3, ((_e2408 * 0.5) + 0.5)); float reach_1 = (1.0 - smoothstep(0.55, 1.0, (r_10 / (0.5 * max(size_2.x, size_2.y))))); float edgeFade = smoothstep(0.0, 0.08, min(min(q_10.x, (1.0 - q_10.x)), min(q_10.y, (1.0 - q_10.y)))); s.alpha = (clamp((((max(_e2380, (_e2397 * tatter)) * reach_1) * edgeFade) * prm_4.w), 0.0, 1.0) * 0.8); s.albedo = vec3(0.55, 0.55, 0.52); s.sheen = 1.5; } } } } } } } } } } } } } } } } } } } } } vec3 N_2 = s.N; float ndl_3 = dot(N_2, L); float _e2463 = s.wrap; float _e2468 = s.wrap; float wrapD = (max((ndl_3 + _e2463), 0.0) / (1.0 + _e2468)); vec3 H_1 = normalize((L + V_4)); float _e2478 = s.power; float _e2481 = s.power; float specC = (((pow(max(dot(N_2, H_1), 0.0), _e2478) * (_e2481 + 8.0)) * 0.04) * step(0.0, ndl_3)); float _e2499 = s.sheen; float rim = (pow((1.0 - clamp(dot(N_2, V_4), 0.0, 1.0)), 3.0) * _e2499); vec4 _e2503 = _group_0_binding_0_fs.lightColor; vec3 candle = (_e2503.xyz * E); vec3 _e2507 = s.albedo; float _e2509 = s.ao; vec4 _e2517 = _group_0_binding_0_fs.roomLight; float _e2526 = s.ao; vec3 _e2531 = s.spec; color = ((_e2507 * ((candle * ((wrapD * _e2509) + (rim * 0.5))) + (((_e2517.xyz * Eroom) * (0.5 + (0.5 * ndl_3))) * _e2526))) + ((_e2531 * candle) * specC)); float _e2539 = _group_0_binding_0_fs.hall.w; if (!((_e2539 > 0.0))) { float _e2548 = _group_0_binding_0_fs.hall2_.x; local_31 = (_e2548 > 0.0); } else { local_31 = true; } bool _e2552 = local_31; if (_e2552) { vec3 _e2553 = Ll; float wl = (max((dot(N_2, _e2553) + 0.3), 0.0) / 1.3); vec3 _e2561 = color; vec3 _e2563 = s.albedo; vec3 _e2564 = lantern; float _e2572 = s.ao; color = (_e2561 + ((_e2563 * ((_e2564 * (wl + (rim * 0.4))) + spill)) * _e2572)); } float ndm = max(dot(N_2, M), 0.0); vec3 Hm = normalize((M + V_4)); float _e2584 = s.power; float _e2587 = s.power; float specM = ((pow(max(dot(N_2, Hm), 0.0), _e2584) * (_e2587 + 8.0)) * 0.04); vec3 _e2593 = color; vec4 _e2596 = _group_0_binding_0_fs.moonColor; float _e2598 = moonVis; float _e2600 = s.moonShade; vec3 _e2604 = s.albedo; vec3 _e2610 = s.spec; color = (_e2593 + ((_e2596.xyz * (_e2598 * _e2600)) * ((_e2604 * (ndm + (rim * 0.4))) + ((_e2610 * specM) * step(0.0, ndm))))); float _e2618 = Ep; if ((_e2618 > 0.0)) { vec3 _e2621 = Lp; float ndp = dot(N_2, _e2621); float _e2624 = s.wrap; float _e2629 = s.wrap; float wrapP = (max((ndp + _e2624), 0.0) / (1.0 + _e2629)); vec3 _e2633 = Lp; vec3 Hp = normalize((_e2633 + V_4)); float _e2640 = s.power; float _e2643 = s.power; float specP = (((pow(max(dot(N_2, Hp), 0.0), _e2640) * (_e2643 + 8.0)) * 0.04) * step(0.0, ndp)); vec3 _e2652 = color; vec4 _e2655 = _group_0_binding_0_fs.poolColor; float _e2657 = Ep; vec3 _e2660 = s.albedo; float _e2662 = s.ao; vec3 _e2669 = s.spec; color = (_e2652 + ((_e2655.xyz * _e2657) * ((_e2660 * ((wrapP * _e2662) + (rim * 0.4))) + (_e2669 * specP)))); } vec3 _e2674 = color; vec3 _e2676 = s.albedo; vec4 _e2679 = _group_0_binding_0_fs.moonColor; vec4 _e2694 = _group_0_binding_0_fs.ambient; float _e2699 = s.ao; color = (_e2674 + ((_e2676 * ((_e2679.xyz * (sky * (0.55 + (0.45 * dot(N_2, (toW / vec3(max(dW, 0.0001)))))))) + _e2694.xyz)) * _e2699)); if (!((mat == MAT_PANEL))) { local_32 = (mat == MAT_BOOK); } else { local_32 = true; } bool _e2710 = local_32; if (!(_e2710)) { local_33 = (mat == MAT_PLASTER); } else { local_33 = true; } bool _e2717 = local_33; if (_e2717) { float _e2721 = _group_0_binding_0_fs.misc.y; float dread_1 = smoothstep(0.2, 0.95, _e2721); vec3 p_18 = in_1.world; float _e2732 = _group_0_binding_0_fs.eye.w; float bend = ((sin(((p_18.y * 0.65) + (_e2732 * 0.48))) * dread_1) * 0.65); float _e2751 = _group_0_binding_0_fs.eye.w; float bands = pow((0.5 + (0.5 * sin(((((p_18.x * 1.6) + (p_18.z * 1.3)) + bend) + (_e2751 * 0.22))))), 10.0); vec3 _e2762 = color; color = (_e2762 * (1.0 - ((bands * dread_1) * 0.32))); } vec3 _e2769 = color; vec3 _e2771 = s.albedo; float _e2775 = s.ao; vec3 _e2779 = s.emit; color = ((_e2769 + ((_e2771 * (gallery + _e404)) * _e2775)) + _e2779); float viewMode = _group_0_binding_0_fs.misc.x; if ((viewMode > 4.5)) { local_34 = (viewMode < 5.5); } else { local_34 = false; } bool _e2792 = local_34; if (_e2792) { color = (lin * 0.6); } else { if ((viewMode > 2.5)) { local_35 = (viewMode < 3.5); } else { local_35 = false; } bool _e2802 = local_35; if (_e2802) { float _e2804 = s.ao; color = vec3(_e2804); } else { if ((viewMode > 6.5)) { local_36 = (viewMode < 7.5); } else { local_36 = false; } bool _e2813 = local_36; if (_e2813) { color = (detailed_1 ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 0.0, 0.3)); } } } vec3 _e2823 = color; vec4 _e2827 = _group_0_binding_0_fs.eye; vec4 _e2831 = _group_0_binding_0_fs.light; vec4 _e2835 = _group_0_binding_0_fs.haze; vec4 _e2838 = _group_0_binding_0_fs.glow; vec3 _e2839 = atmosphere(_e2823, in_1.world, _e2827.xyz, _e2831.xyz, _e2835, _e2838); vec3 _e2840 = color; color = mix(_e2840, _e2839, ((mat == 23.0) ? 0.06 : 1.0)); if ((mat == 23.0)) { vec3 _e2849 = color; color = (_e2849 + (vec3(0.008, 0.011, 0.017) * pow((1.0 - clamp(dot(N_2, V_4), 0.0, 1.0)), 3.0))); float through = ((pow(max(dot(-(V_4), L), 0.0), 3.0) * min(E, 2.0)) * prm_4.z); vec3 _e2875 = color; color = (_e2875 + (vec3(1.0, 0.28, 0.07) * (through * 0.05))); handAlpha = clamp(prm_4.y, 0.0, 1.0); if ((prm_4.x > 0.5)) { float _e2892 = handAlpha; handAlpha = (_e2892 * (1.0 - smoothstep(-0.35, 0.5, lp_1.y))); } float _e2901 = handAlpha; s.alpha = _e2901; } float _e2905 = _group_0_binding_0_fs.hall2_.x; if ((_e2905 > 0.0)) { vec4 _e2911 = _group_0_binding_0_fs.eye; vec3 gv = (in_1.world - _e2911.xyz); float gd = length(gv); float _e2918 = _group_0_binding_0_fs.hall3_.x; float _e2924 = _group_0_binding_0_fs.win2_.w; float _e2930 = _group_0_binding_0_fs.hall2_.z; float _e2934 = _group_0_binding_0_fs.hall2_.w; vec3 _e2939 = doorWorld(vec3((_e2918 + 0.45), (_e2924 + 0.35), ((_e2930 + _e2934) * 0.5))); vec4 _e2942 = _group_0_binding_0_fs.eye; float _e2949 = pointGlow(_e2942.xyz, (gv / vec3(max(gd, 1e-5))), gd, _e2939, GAP_AIR_SOFT); vec3 _e2950 = color; vec3 _e2951 = lanternColor(); float _e2955 = _group_0_binding_0_fs.hall2_.x; color = (_e2950 + (_e2951 * ((_e2955 * GAP_AIR) * _e2949))); } float _e2964 = _group_0_binding_0_fs.hall.w; if ((_e2964 > 0.0)) { local_37 = inHall; } else { local_37 = false; } bool _e2970 = local_37; if (_e2970) { vec4 _e2974 = _group_0_binding_0_fs.eye; vec3 hv = (in_1.world - _e2974.xyz); float hd = length(hv); vec3 hdir = (hv / vec3(max(hd, 1e-5))); vec4 _e2984 = _group_0_binding_0_fs.eye; vec3 _e2986 = doorSpace(_e2984.xyz); vec3 _e2987 = doorVec(hdir); float _e2991 = _group_0_binding_0_fs.hall3_.x; float tw = clamp(((_e2991 - _e2986.x) / min(_e2987.x, -0.0001)), 0.0, hd); vec4 _e3002 = _group_0_binding_0_fs.hall; vec4 _e3006 = _group_0_binding_0_fs.eye; vec3 tl_2 = (_e3002.xyz - _e3006.xyz); float t0_1 = dot(tl_2, hdir); float k_8 = sqrt((max((dot(tl_2, tl_2) - (t0_1 * t0_1)), 0.0) + LANTERN_AIR_SOFT)); float g_6 = ((atan(((hd - t0_1) / k_8)) - atan(((tw - t0_1) / k_8))) / k_8); vec3 _e3026 = color; vec3 _e3027 = lanternColor(); float _e3031 = _group_0_binding_0_fs.hall.w; float _e3038 = _group_0_binding_0_fs.haze.w; color = (_e3026 + (_e3027 * (((_e3031 * LANTERN_AIR) * g_6) * exp((-(_e3038) * max((tw - HAZE_START), 0.0)))))); } float _e3052 = _group_0_binding_0_fs.shaft.w; if ((_e3052 > 0.5)) { float _e3058 = s.alpha; local_38 = (_e3058 > 0.99); } else { local_38 = false; } bool _e3062 = local_38; if (_e3062) { vec4 _e3066 = _group_0_binding_0_fs.eye; vec3 dv_2 = (in_1.world - _e3066.xyz); float dist_4 = length(dv_2); vec3 dir_3 = (dv_2 / vec3(max(dist_4, 1e-5))); float _e3079 = _group_0_binding_0_fs.eye.w; float _e3085 = _group_0_binding_0_fs.eye.w; float _e3090 = ign((in_1.position.xy + vec2((_e3079 * 37.0), (_e3085 * 11.0)))); vec4 _e3093 = _group_0_binding_0_fs.eye; vec4 _e3097 = _group_0_binding_0_fs.win; vec4 _e3100 = _group_0_binding_0_fs.win2_; float _e3104 = _group_0_binding_0_fs.misc.w; float _e3105 = shaftScatter(_e3093.xyz, dir_3, dist_4, d_7, _e3097, _e3100, _e3090, _e3104); if ((_e3105 > 0.0)) { float _e3113 = _group_0_binding_0_fs.moonColor.w; float _e3114 = hgPhase(dot(d_7, -(dir_3)), _e3113); float x_5 = (_e3105 * _e3114); vec3 _e3116 = color; vec4 _e3119 = _group_0_binding_0_fs.shaft; color = (_e3116 + (_e3119.xyz * (SHAFT_KNEE * (1.0 - exp((-(x_5) / SHAFT_KNEE)))))); } } float _e3132 = s.alpha; outA = _e3132; float _e3137 = _group_0_binding_0_fs.hall4_.z; if ((_e3137 > 0.0)) { float _e3143 = s.alpha; local_39 = (_e3143 > 0.99); } else { local_39 = false; } bool _e3147 = local_39; if (_e3147) { vec4 _e3151 = _group_0_binding_0_fs.eye; float dist_5 = length((in_1.world - _e3151.xyz)); float _e3158 = _group_0_binding_0_fs.hall4_.z; float _e3162 = _group_0_binding_0_fs.hall4_.w; outA = (1.0 - clamp((_e3158 * abs((1.0 - (_e3162 / max(dist_5, 0.001))))), 0.0, 1.0)); } vec3 _e3175 = color; float _e3179 = _group_0_binding_0_fs.ambient.w; vec3 _e3180 = encodeHdr(_e3175, _e3179); float _e3182 = s.alpha; float _e3184 = outA; _fs2p_location0 = vec4((_e3180 * _e3182), _e3184); return; }   ‘Hq»Ü[Frame_block_0VertexFrame_block_0Fragmentvs_mainvs_mainfs_mainfs_mainÅÊ// language: metal1.0 #include #include using metal::uint; struct Taper { float R0_; float R1_; float L; float seed; float burn; float drip; float span; float rho; float dc; }; struct Drip { float ang; float born; float len; float w; float th; }; struct TaperV { metal::float3 pos; metal::float3 nrm; metal::float3 info; }; struct type_10 { metal::float4 inner[12]; }; struct type_11 { metal::float4 inner[8]; }; struct Frame { metal::float4x4 viewProj; metal::float4 eye; metal::float4 light; metal::float4 lightColor; metal::float4 roomLight; metal::float4 moonTravel; metal::float4 moonColor; metal::float4 ambient; metal::float4 win; metal::float4 win2_; metal::float4 haze; metal::float4 glow; metal::float4 shaft; metal::float4 desk; metal::float4 deskY; metal::float4 book; metal::float4 room; metal::float4 highlight; metal::float4 misc; type_10 discs; metal::float4 hall; metal::float4 hall2_; metal::float4 hall3_; metal::float4 hall4_; type_11 candlePos; type_11 candleFx; metal::float4 pool; metal::float4 poolColor; metal::float4 door0_; metal::float4 door1_; }; struct VsIn { metal::float3 pos; metal::float3 nrm; metal::float4 m0_; metal::float4 m1_; metal::float4 m2_; metal::float4 m3_; metal::float4 color; metal::float4 params; }; struct VsOut { metal::float4 position; metal::float3 world; metal::float3 normal; metal::float3 local; metal::float3 lnrm; metal::float4 color; metal::float4 params; metal::float4 size; metal::float4 ax; metal::float4 ay; }; struct type_12 { uint inner[12]; }; struct Surf { metal::float3 albedo; metal::packed_float3 spec; float power; metal::float3 emit; metal::packed_float3 N; float ao; float sheen; float alpha; float wrap; float moonShade; }; struct OwnFlame { metal::packed_float3 pos; float level; }; constant float HDR_RANGE = 4.0; constant float HAZE_START = 2.8; constant float MAT_WOOD = 0.0; constant float MAT_BOOK = 1.0; constant float MAT_BRASS = 2.0; constant float MAT_PAPER = 3.0; constant float MAT_GLASS = 4.0; constant float MAT_WAX = 5.0; constant float MAT_FABRIC = 6.0; constant float MAT_PLASTER = 7.0; constant float MAT_FLOOR = 8.0; constant float MAT_PANEL = 9.0; constant float MAT_IRON = 10.0; constant float MAT_GLOBE = 11.0; constant float MAT_DIAL = 12.0; constant float MAT_INK = 13.0; constant float MAT_DARK = 14.0; constant float MAT_WEB = 15.0; constant float MAT_LEATHER = 16.0; constant float MAT_EMIT = 17.0; constant float MAT_CURTAIN = 18.0; constant float MAT_HALL_WINDOW = 19.0; constant float MAT_CANDLE_FLAME = 20.0; constant float MAT_CANDLE_SMOKE = 21.0; constant float MAT_CANDLE_EMBER = 22.0; constant float MAT_TAPER = 30.0; constant float MAT_CMETAL = 31.0; constant float MAT_CWAX = 32.0; constant metal::float3 LANTERN_WARM = metal::float3(1.0, 0.6, 0.28); constant metal::float3 HALL_COLD = metal::float3(0.34, 0.42, 0.62); constant float DIAL_FLOOR = 0.025; constant float SHAFT_KNEE = 0.8; constant float LANTERN_AIR = 0.012; constant float LANTERN_AIR_SOFT = 0.3; constant float GAP_AIR = 0.018; constant float GAP_AIR_SOFT = 0.5; constant float NEAR_I = 0.46; constant float NEAR_S2_ = 0.0484; constant metal::float3 NEAR_COLOR = metal::float3(1.0, 0.64, 0.33); constant float WAX_NEAR = 0.75; constant float WAX_FAR = 0.1; constant float WAX_EDGE = 0.08; constant float WAX_LIP = 0.7; constant float WAX_POOL = 0.6; constant float WAX_BOUNCE = 0.05; constant float WAX_BOUNCE_POOL = 0.022; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x_2 = metal::max(c, metal::float3(0.0)); metal::float3 lo = x_2 * 0.07739938; metal::float3 hi = metal::pow((x_2 + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x_2 <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_3 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_3 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_3, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_3 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v_1 ) { metal::uint2 w = {}; w = (v_1 * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_10 = metal::floor(p_1); metal::float2 f_2 = p_1 - i_10; metal::float2 u_2 = (f_2 * f_2) * (metal::float2(3.0) - (2.0 * f_2)); metal::int2 ii = naga_f2i32(i_10); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u_2.x), metal::mix(_e21, _e26, u_2.x), u_2.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_11 = metal::floor(p_2); metal::float2 f_3 = p_2 - i_11; metal::float2 u_3 = (f_3 * f_3) * (metal::float2(3.0) - (2.0 * f_3)); metal::float2 du = (6.0 * f_3) * (metal::float2(1.0) - f_3); metal::int2 ii_1 = naga_f2i32(i_11); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n_9 = ((_e17 + (k1_ * u_3.x)) + (k2_ * u_3.y)) + ((k4_ * u_3.x) * u_3.y); metal::float2 g_3 = du * metal::float2(k1_ + (k4_ * u_3.y), k2_ + (k4_ * u_3.x)); return metal::float3((n_9 * 2.0) - 1.0, g_3 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s_1 = {}; float _e1 = vnoise(p_3); s_1 = _e1 * 0.57; float _e5 = s_1; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s_1 = _e5 + (_e12 * 0.29); float _e16 = s_1; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s_1 = _e16 + (_e23 * 0.14); float _e27 = s_1; return _e27; } float pointGlow( metal::float3 eye, metal::float3 dir, float dist, metal::float3 light, float s2_ ) { metal::float3 toL_1 = light - eye; float t0_ = metal::dot(toL_1, dir); float h2_ = metal::max(metal::dot(toL_1, toL_1) - (t0_ * t0_), 0.0); float k_1 = metal::sqrt(h2_ + metal::max(s2_, 0.000001)); return (metal::atan((dist - t0_) / k_1) + metal::atan(t0_ / k_1)) / k_1; } metal::float3 atmosphere( metal::float3 col, metal::float3 world_1, metal::float3 eye_1, metal::float3 light_1, metal::float4 haze, metal::float4 glow ) { metal::float3 dv = world_1 - eye_1; float dist_3 = metal::length(dv); metal::float3 dir_2 = dv / metal::float3(metal::max(dist_3, 0.00001)); float T = metal::exp(-(haze.w) * metal::max(dist_3 - HAZE_START, 0.0)); float _e21 = pointGlow(eye_1, dir_2, dist_3, light_1, glow.w); return ((col * T) + (haze.xyz * (1.0 - T))) + (glow.xyz * _e21); } float windowMask( metal::float2 q, metal::float4 win, metal::float4 win2_, float soft, float lattice ) { bool local_40 = {}; bool local_41 = {}; bool local_42 = {}; float bars = {}; float x0_ = win.x; float x1_ = win.y; float sill = win.z; float spring = win.w; float r_2 = (x1_ - x0_) * 0.5; float cx = x0_ + r_2; float s_5 = metal::max(soft, 0.0001); if (!((q.x < (x0_ - s_5)))) { local_40 = q.x > (x1_ + s_5); } else { local_40 = true; } bool _e25 = local_40; if (!(_e25)) { local_41 = q.y < (sill - s_5); } else { local_41 = true; } bool _e33 = local_41; if (!(_e33)) { local_42 = q.y > ((spring + r_2) + s_5); } else { local_42 = true; } bool _e42 = local_42; if (_e42) { return 0.0; } float inRect = metal::smoothstep(-(s_5), s_5, metal::min(q.x - x0_, x1_ - q.x)) * metal::smoothstep(-(s_5), s_5, q.y - sill); float dArch = r_2 - metal::length(q - metal::float2(cx, spring)); float inArch = metal::smoothstep(-(s_5), s_5, dArch); float open_1 = inRect * ((q.y < spring) ? 1.0 : inArch); float bw = win2_.y; bars = 1.0 - metal::smoothstep(bw - s_5, bw + s_5, metal::abs(q.x - cx)); float ty = (q.y - sill) / win2_.z; float tf = metal::abs(metal::fract(ty + 0.5) - 0.5) * win2_.z; float _e89 = bars; bars = metal::max(_e89, (1.0 - metal::smoothstep((bw * 0.8) - s_5, (bw * 0.8) + s_5, tf)) * metal::step(q.y, spring)); float a_2 = metal::atan2(q.y - spring, q.x - cx); float spoke = (metal::abs(metal::fract((a_2 / 0.7853982) + 0.5) - 0.5) * 0.7853982) * metal::length(q - metal::float2(cx, spring)); float _e122 = bars; bars = metal::max(_e122, (1.0 - metal::smoothstep((bw * 0.7) - s_5, (bw * 0.7) + s_5, spoke)) * metal::step(spring, q.y)); if (lattice > 0.5) { float fade = 1.0 - metal::smoothstep(0.02, 0.09, s_5); metal::float2 dq = q * 2.6; float l1_ = metal::abs(metal::fract(((dq.x + dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float l2_ = metal::abs(metal::fract(((dq.x - dq.y) * 0.5) + 0.5) - 0.5) / 1.3; float _e172 = bars; bars = metal::max(_e172, ((1.0 - metal::smoothstep(0.012 - s_5, 0.012 + s_5, metal::min(l1_, l2_))) * fade) * 0.85); } float _e183 = bars; return open_1 * (1.0 - _e183); } metal::float3 backProject( metal::float3 p_4, metal::float3 d, float planeZ ) { float s_6 = (p_4.z - planeZ) / metal::max(d.z, 0.0001); return metal::float3(p_4.xy - (d.xy * s_6), s_6); } float moonPatch( metal::float3 p_5, metal::float3 d_1, metal::float4 win_1, metal::float4 win2_1 ) { if (p_5.z < win2_1.x) { return 0.0; } metal::float3 _e9 = backProject(p_5, d_1, win2_1.x); float _e17 = windowMask(_e9.xy, win_1, win2_1, 0.006 + (_e9.z * 0.011), 1.0); return _e17; } float hgPhase( float cosT, float g_1 ) { float gg = g_1 * g_1; return (1.0 - gg) / metal::pow(metal::max((1.0 + gg) - ((2.0 * g_1) * cosT), 0.0001), 1.5); } float shaftScatter( metal::float3 eye_2, metal::float3 dir_1, float dist_1, metal::float3 d_2, metal::float4 win_2, metal::float4 win2_2, float jitter, float top ) { float ta = 0.0; float tb = {}; float sum = 0.0; int i_2 = 0; float zw = win2_2.x; float invdz = 1.0 / metal::max(d_2.z, 0.0001); metal::float2 qa = eye_2.xy - (((eye_2.z - zw) * invdz) * d_2.xy); metal::float2 qd = dir_1.xy - ((dir_1.z * invdz) * d_2.xy); tb = dist_1; if (dir_1.z < 0.0) { float _e33 = tb; tb = metal::min(_e33, (zw - eye_2.z) / dir_1.z); } if (dir_1.y < 0.0) { float _e42 = tb; tb = metal::min(_e42, (win2_2.w - eye_2.y) / dir_1.y); } metal::float2 lo_2 = metal::float2(win_2.x, win_2.z); metal::float2 hi_2 = metal::float2(win_2.y, top); metal::float2 inv = metal::float2(1.0) / metal::select(qd, metal::float2(0.000001), metal::abs(qd) < metal::float2(0.000001)); metal::float2 t1_ = (lo_2 - qa) * inv; metal::float2 t2_ = (hi_2 - qa) * inv; metal::float2 tmin = metal::min(t1_, t2_); metal::float2 tmax = metal::max(t1_, t2_); float _e70 = ta; ta = metal::max(_e70, metal::max(tmin.x, tmin.y)); float _e75 = tb; tb = metal::min(_e75, metal::min(tmax.x, tmax.y)); float _e80 = tb; float _e81 = ta; if (_e80 <= _e81) { return 0.0; } float _e84 = tb; float _e85 = ta; float dt = (_e84 - _e85) / 5.0; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e123 = i_2; i_2 = as_type(as_type(_e123) + as_type(1)); } loop_init = false; int _e93 = i_2; if (_e93 < 5) { } else { break; } { float _e96 = ta; int _e97 = i_2; float t_11 = _e96 + ((static_cast(_e97) + jitter) * dt); metal::float2 q_4 = qa + (t_11 * qd); float s_7 = ((eye_2.z + (t_11 * dir_1.z)) - zw) * invdz; float _e110 = sum; float _e116 = windowMask(q_4, win_2, win2_2, 0.008 + (s_7 * 0.003), 0.0); sum = _e110 + (_e116 * metal::exp(-(s_7) * 0.035)); } } float _e126 = ta; float _e127 = tb; metal::float2 qm = qa + (((_e126 + _e127) * 0.5) * qd); float _e141 = vnoise((qm * metal::float2(3.1, 0.9)) + metal::float2(7.1, 3.3)); float _e146 = vnoise(qm * metal::float2(9.0, 2.2)); float dust = 0.45 + (0.55 * metal::smoothstep(-0.6, 0.8, _e141 + (0.5 * _e146))); float _e157 = sum; return (_e157 * dt) * dust; } Taper taperOf( metal::float3 size, float seed, float burn, float ratio, metal::float4 prm ) { Taper t_1 = {}; t_1.R0_ = 0.5 * size.x; float _e12 = t_1.R0_; t_1.R1_ = _e12 * metal::clamp(ratio, 0.5, 1.2); t_1.L = metal::max(size.y, 0.0001); t_1.seed = seed; t_1.burn = burn; t_1.drip = prm.z; t_1.span = prm.w; float _e29 = t_1.R1_; t_1.rho = 0.15 * _e29; float _e34 = t_1.R1_; t_1.dc = 0.26 * _e34; Taper _e37 = t_1; return _e37; } float tHash( float n_3 ) { return metal::fract(metal::sin(n_3) * 43758.547); } float wrapAngle( float a ) { return a - (6.2831855 * metal::floor((a / 6.2831855) + 0.5)); } Drip dripSlot( Taper t_2, int i_3 ) { Drip d_3 = {}; float fi = static_cast(i_3) + 1.0; float _e13 = tHash((t_2.seed * 1.37) + (fi * 12.9898)); d_3.ang = 6.2831855 * _e13; float _e23 = tHash((t_2.seed * 2.11) + (fi * 78.233)); d_3.born = metal::mix(-0.6, 0.95, _e23); float _e33 = tHash((t_2.seed * 3.07) + (fi * 37.719)); d_3.len = (t_2.R1_ * (1.6 + ((9.0 * _e33) * _e33))) * t_2.drip; float _e50 = tHash((t_2.seed * 4.31) + (fi * 4.581)); d_3.w = t_2.R1_ * (0.26 + (0.2 * _e50)); d_3.th = t_2.R1_ * (0.11 + (0.13 * _e50)); Drip _e65 = d_3; return _e65; } float dripAt( Taper t_3, float theta, float y ) { float sum_1 = 0.0; int i_4 = 0; uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e90 = i_4; i_4 = as_type(as_type(_e90) + as_type(1)); } loop_init_1 = false; int _e7 = i_4; if (_e7 < 6) { } else { break; } { int _e10 = i_4; Drip _e11 = dripSlot(t_3, _e10); float age_1 = t_3.burn - _e11.born; float grown = metal::smoothstep(0.0, 0.035, age_1); float len = metal::max(_e11.len * grown, 0.0001); float y0_ = (t_3.L + (t_3.span * metal::max(age_1, 0.0))) - (0.7 * t_3.rho); float u_4 = (y0_ - y) / len; float uc = metal::clamp(u_4, 0.0, 1.0); float _e39 = wrapAngle(theta - _e11.ang); float across = _e39 * t_3.R1_; float bulb = metal::exp((-((u_4 - 0.86)) * (u_4 - 0.86)) * 90.0); float width = _e11.w * ((1.0 - (0.3 * uc)) + (0.6 * bulb)); float body = metal::smoothstep(-0.15, 0.04, u_4) * (1.0 - metal::smoothstep(0.94, 1.05, u_4)); float thick = ((_e11.th * ((0.75 + (0.35 * uc)) + (0.9 * bulb))) * body) * metal::step(0.0001, grown); float _e82 = sum_1; sum_1 = _e82 + (thick * metal::exp(-((across * across)) / (width * width))); } } float _e93 = sum_1; return _e93; } float notchAt( Taper t_4, float theta_1 ) { float n_4 = 0.0; int i_5 = 0; uint2 loop_bound_2 = uint2(4294967295u); bool loop_init_2 = true; while(true) { if (metal::all(loop_bound_2 == uint2(0u))) { break; } loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u); if (!loop_init_2) { int _e43 = i_5; i_5 = as_type(as_type(_e43) + as_type(1)); } loop_init_2 = false; int _e6 = i_5; if (_e6 < 6) { } else { break; } { int _e9 = i_5; Drip _e10 = dripSlot(t_4, _e9); float age_2 = t_4.burn - _e10.born; float fresh = metal::step(0.0, age_2) * (1.0 - metal::smoothstep(0.0, 2.5 * t_4.rho, t_4.span * age_2)); float _e28 = wrapAngle(theta_1 - _e10.ang); float across_1 = _e28 * t_4.R1_; float _e31 = n_4; n_4 = _e31 + (fresh * metal::exp(-((across_1 * across_1)) / ((1.6 * _e10.w) * _e10.w))); } } float _e46 = n_4; return (metal::min(_e46, 1.0) * 0.8) * t_4.rho; } float crestAt( Taper t_5, float theta_2 ) { float _e3 = notchAt(t_5, theta_2); return (t_5.L - _e3) - ((0.2 * t_5.rho) * (0.5 + (0.5 * metal::sin((2.0 * theta_2) + (t_5.seed * 5.0))))); } float bareRadius( Taper t_6, float theta_3, float y_1 ) { float k_2 = metal::clamp(y_1 / t_6.L, 0.0, 1.0); float wob = (1.0 + (0.016 * metal::sin(((2.0 * theta_3) + (t_6.seed * 3.1)) + (y_1 * 31.0)))) + (0.01 * metal::sin(((3.0 * theta_3) - (t_6.seed * 1.7)) + (y_1 * 57.0))); return metal::mix(t_6.R0_, t_6.R1_, k_2) * wob; } float shaftRadius( Taper t_7, float theta_4, float y_2 ) { float _e3 = bareRadius(t_7, theta_4, y_2); float _e4 = dripAt(t_7, theta_4, y_2); return _e3 + _e4; } metal::float3 taperShaftNormal( Taper t_8, float theta_5, float y_3 ) { float _e3 = shaftRadius(t_8, theta_5, y_3); float e_1 = metal::max(t_8.L * 0.004, 0.0002); float _e10 = shaftRadius(t_8, theta_5, y_3 + e_1); float _e12 = shaftRadius(t_8, theta_5, y_3 - e_1); float ry = (_e10 - _e12) / (2.0 * e_1); float _e19 = shaftRadius(t_8, theta_5 + 0.03, y_3); float _e21 = shaftRadius(t_8, theta_5 - 0.03, y_3); float ra = (_e19 - _e21) / (2.0 * 0.03); float c_4 = metal::cos(theta_5); float s_8 = metal::sin(theta_5); metal::float3 er = metal::float3(c_4, 0.0, s_8); metal::float3 et = metal::float3(-(s_8), 0.0, c_4); return metal::normalize((er - (et * (ra / metal::max(_e3, 0.00001)))) - metal::float3(0.0, ry, 0.0)); } TaperV taperVertex( metal::float3 g_2, Taper t_9 ) { float r = 0.0; float y_4 = 0.0; metal::float3 n_5 = metal::float3(0.0, -1.0, 0.0); float drip = 0.0; TaperV out_1 = {}; float theta_6 = g_2.x; float s_9 = g_2.y; float region = g_2.z; float c_5 = metal::cos(theta_6); float sn = metal::sin(theta_6); metal::float3 er_1 = metal::float3(c_5, 0.0, sn); float _e9 = crestAt(t_9, theta_6); float ys = metal::max(_e9 - t_9.rho, 0.0); if (region < 0.5) { float _e28 = shaftRadius(t_9, theta_6, 0.0); r = _e28 * s_9; } else { if (region < 1.5) { y_4 = s_9 * ys; float _e33 = y_4; float _e34 = dripAt(t_9, theta_6, _e33); drip = _e34; float _e35 = y_4; float _e36 = bareRadius(t_9, theta_6, _e35); float _e37 = drip; r = _e36 + _e37; float _e39 = y_4; metal::float3 _e40 = taperShaftNormal(t_9, theta_6, _e39); n_5 = _e40; } else { if (region < 2.5) { float _e43 = shaftRadius(t_9, theta_6, ys); float phi = 3.1415927 * s_9; r = (_e43 - t_9.rho) + (t_9.rho * metal::cos(phi)); y_4 = ys + (t_9.rho * metal::sin(phi)); n_5 = (er_1 * metal::cos(phi)) + metal::float3(0.0, metal::sin(phi), 0.0); } else { float _e63 = shaftRadius(t_9, theta_6, ys); float rin = _e63 - (2.0 * t_9.rho); float pool = t_9.L - t_9.dc; float rp = rin * 0.9; if (s_9 < 0.3) { float w_2 = s_9 / 0.3; r = metal::mix(rin, rp, w_2); y_4 = metal::mix(ys, pool, metal::sin(w_2 * 1.5707963)); n_5 = metal::normalize(((-(er_1) * (1.0 - w_2)) * 1.4) + metal::float3(0.0, 0.6 + w_2, 0.0)); } else { float w_3 = (s_9 - 0.3) / 0.7; r = rp * (1.0 - w_3); y_4 = pool - ((0.08 * t_9.dc) * w_3); n_5 = metal::float3(0.0, 1.0, 0.0); } } } } float _e113 = r; float _e115 = y_4; out_1.pos = (er_1 * _e113) + metal::float3(0.0, _e115, 0.0); metal::float3 _e121 = n_5; out_1.nrm = _e121; float _e123 = y_4; float _e127 = drip; out_1.info = metal::float3(region, metal::max(_e9 - _e123, 0.0), _e127 / metal::max(t_9.R1_, 0.00001)); TaperV _e133 = out_1; return _e133; } metal::float3 lanternColor( constant Frame& frame ) { float _e5 = frame.hall4_.x; return metal::mix(LANTERN_WARM, HALL_COLD, metal::clamp(_e5, 0.0, 1.0)); } metal::float3 cloth( metal::float3 q_1, float seed_1, constant Frame& frame ) { float h = metal::clamp(0.5 - q_1.y, 0.0, 1.0); float t_12 = frame.eye.w; float _e15 = frame.misc.y; float dread = metal::smoothstep(0.08, 0.95, _e15); float gust = (0.55 + (0.25 * metal::sin(t_12 * 0.73))) + (0.2 * metal::sin((t_12 * 1.17) + 1.4)); float wind = 0.025 + (dread * (0.25 + (0.5 * gust))); float sway = ((h * h) * wind) * ((0.55 * metal::sin(((t_12 * 1.8) - (h * 3.0)) + seed_1)) + (0.24 * metal::sin((t_12 * 3.3) - (h * 6.0)))); float folds = 0.085 * metal::sin(((q_1.x + 0.5) * 37.7) + ((h * wind) * metal::sin((t_12 * 1.4) + seed_1))); float billow = (h * wind) * (0.6 + (0.4 * metal::sin((((t_12 * 2.1) - (h * 4.0)) + (q_1.x * 2.0)) + seed_1))); return metal::float3(q_1.x + sway, q_1.y + (((h * wind) * 0.025) * metal::sin((t_12 * 2.8) + (q_1.x * 8.0))), folds + billow); } float shoulder( float x, float knee, float r_1 ) { bool local_43 = {}; if (!((x <= knee))) { local_43 = r_1 <= 0.0; } else { local_43 = true; } bool _e10 = local_43; if (_e10) { return x; } return knee + (r_1 * metal::log(1.0 + ((x - knee) / r_1))); } float h1_( metal::float2 p_6 ) { float _e3 = hashCell(naga_f2i32(metal::floor(p_6))); return _e3; } float lineAA( float d_4, float halfWidth, float fp ) { return 1.0 - metal::smoothstep(halfWidth - fp, halfWidth + fp, metal::abs(d_4)); } float fbm2_( metal::float2 p_7 ) { float _e1 = vnoise(p_7); float _e10 = vnoise((p_7 * 2.03) + metal::float2(17.1, 3.7)); return (_e1 * 0.66) + (_e10 * 0.34); } float woodTone( float u_1, float v_2, float seed_2 ) { metal::float2 p_16 = metal::float2(u_1, v_2) + metal::float2(seed_2 * 3.17, seed_2 * 1.73); float _e14 = fbm2_(p_16 * metal::float2(1.3, 4.0)); float warp = _e14 * 0.9; float _e27 = vnoise(p_16 * metal::float2(0.6, 9.0)); float rings = 0.5 + (0.5 * metal::sin(((p_16.y * 46.0) + (warp * 7.0)) + (_e27 * 2.0))); float _e40 = vnoise(p_16 * metal::float2(3.0, 140.0)); float streak = (_e40 * 0.5) + 0.5; return (0.72 + ((0.34 * rings) * rings)) + (0.18 * (streak - 0.5)); } float slabShade( metal::float3 p_8, metal::float3 toL, constant Frame& frame ) { bool local_44 = {}; float y_5 = frame.deskY.x; if (!((p_8.y > (y_5 - 0.25)))) { local_44 = toL.y <= 0.0001; } else { local_44 = true; } bool _e17 = local_44; if (_e17) { return 1.0; } float t_13 = (y_5 - p_8.y) / toL.y; if (t_13 > 1.0) { return 1.0; } metal::float2 c_6 = p_8.xz + (toL.xz * t_13); metal::float4 r_3 = frame.desk; float inside = metal::min(metal::min(c_6.x - r_3.x, r_3.y - c_6.x), metal::min(c_6.y - r_3.z, r_3.w - c_6.y)); float _e51 = frame.deskY.y; float pen = _e51 * (0.3 + (t_13 * 3.0)); return metal::smoothstep(-(pen), pen, -(inside)); } float discAO( metal::float3 p_9, int first, int last, constant Frame& frame ) { float ao = 1.0; int i_6 = {}; i_6 = first; uint2 loop_bound_3 = uint2(4294967295u); bool loop_init_3 = true; while(true) { if (metal::all(loop_bound_3 == uint2(0u))) { break; } loop_bound_3 -= uint2(loop_bound_3.y == 0u, 1u); if (!loop_init_3) { int _e33 = i_6; i_6 = as_type(as_type(_e33) + as_type(1)); } loop_init_3 = false; int _e6 = i_6; if (_e6 < last) { } else { break; } { int _e10 = i_6; metal::float4 d_5 = frame.discs.inner[metal::min(unsigned(_e10), 11u)]; float r_4 = metal::length(p_9.xz - d_5.xy) / metal::max(d_5.z, 0.0001); float _e21 = ao; ao = _e21 * (1.0 - (metal::abs(d_5.w) * (1.0 - metal::smoothstep(0.55, 1.35, r_4)))); } } float _e36 = ao; return _e36; } metal::float3 doorSpace( metal::float3 p_10, constant Frame& frame ) { metal::float4 _e4 = frame.door0_; metal::float2 r_5 = p_10.xz - _e4.xy; float _e10 = frame.door1_.z; metal::float4 _e13 = frame.door0_; float _e21 = frame.door1_.w; metal::float4 _e24 = frame.door1_; return metal::float3(_e10 + metal::dot(r_5, _e13.zw), p_10.y, _e21 + metal::dot(r_5, _e24.xy)); } metal::float3 doorVec( metal::float3 v_3, constant Frame& frame ) { metal::float4 _e4 = frame.door0_; metal::float4 _e11 = frame.door1_; return metal::float3(metal::dot(v_3.xz, _e4.zw), v_3.y, metal::dot(v_3.xz, _e11.xy)); } metal::float3 doorWorld( metal::float3 q_2, constant Frame& frame ) { float _e5 = frame.door1_.z; float u_5 = q_2.x - _e5; float _e11 = frame.door1_.w; float v_4 = q_2.z - _e11; metal::float4 _e15 = frame.door0_; metal::float4 _e19 = frame.door0_; metal::float4 _e25 = frame.door1_; metal::float2 xz = (_e15.xy + (_e19.zw * u_5)) + (_e25.xy * v_4); return metal::float3(xz.x, q_2.y, xz.y); } float doorPortal( metal::float3 pw, metal::float3 lw, constant Frame& frame ) { float open = {}; metal::float3 _e2 = doorSpace(pw, frame); metal::float3 _e3 = doorSpace(lw, frame); float wx = frame.hall3_.x; float sp = _e2.x - wx; float sl = _e3.x - wx; if ((sp * sl) >= 0.0) { return 1.0; } float t_14 = sp / (sp - sl); metal::float3 c_7 = _e2 + ((_e3 - _e2) * t_14); float z0_ = frame.hall2_.z; float z1_ = frame.hall2_.w; float top_1 = frame.hall3_.y; open = metal::smoothstep(-(0.04), 0.04, metal::min(c_7.z - z0_, z1_ - c_7.z)) * metal::smoothstep(-(0.04), 0.04, top_1 - c_7.y); float a_3 = frame.hall2_.y; float _e54 = frame.hall3_.z; metal::float2 h_1 = metal::float2(_e54, z0_); float _e62 = frame.hall3_.w; metal::float2 u_6 = metal::float2(metal::sin(a_3), metal::cos(a_3)) * _e62; metal::float2 r_6 = _e3.xz - _e2.xz; float den = (r_6.x * u_6.y) - (r_6.y * u_6.x); if (metal::abs(den) > 0.00001) { metal::float2 q_5 = h_1 - _e2.xz; float tt = ((q_5.x * u_6.y) - (q_5.y * u_6.x)) / den; float ss = ((q_5.x * r_6.y) - (q_5.y * r_6.x)) / den; float yh = _e2.y + ((_e3.y - _e2.y) * tt); float _e119 = frame.win2_.w; float hit = ((((metal::step(0.0, tt) * metal::step(tt, 1.0)) * metal::smoothstep(-0.03, 0.03, ss)) * (1.0 - metal::smoothstep(0.97, 1.03, ss))) * metal::step(_e119, yh)) * metal::step(yh, top_1); float _e124 = open; open = _e124 * (1.0 - hit); } float _e128 = open; return _e128; } float doorSpill( metal::float3 pw_1, constant Frame& frame ) { bool local_45 = {}; bool local_46 = {}; metal::float3 _e1 = doorSpace(pw_1, frame); float _e6 = frame.hall3_.x; float dx = _e1.x - _e6; float _e11 = frame.hall2_.x; if (!((_e11 <= 0.0))) { local_45 = dx < 0.0; } else { local_45 = true; } bool _e20 = local_45; if (!(_e20)) { float _e28 = frame.win2_.w; local_46 = _e1.y > (_e28 + 0.05); } else { local_46 = true; } bool _e33 = local_46; if (_e33) { return 0.0; } float spread = 0.1 + (dx * 0.7); float _e46 = frame.hall2_.z; float _e51 = frame.hall2_.w; float inZ = metal::smoothstep(-(spread), spread * 0.3, metal::min(_e1.z - _e46, _e51 - _e1.z)); float _e59 = frame.hall2_.x; return ((_e59 * 5.0) * inZ) / (1.0 + ((dx / 0.7) * (dx / 0.7))); } metal::float3 galleryMoon( metal::float3 p_11, metal::float3 normal_1 ) { float t_15 = (2.4 - p_11.z) / 0.44; metal::float2 q_6 = metal::float2(p_11.x - (0.28 * t_15), p_11.y + (0.85 * t_15)); float bay = metal::rint((-(q_6.x) - 10.5) / 5.5); float localX = (q_6.x + 10.5) + (5.5 * bay); float xmask = 1.0 - metal::smoothstep(0.65, 0.74, metal::abs(localX)); float ymask = metal::smoothstep(0.94, 1.04, q_6.y) * (1.0 - metal::smoothstep(5.02, 5.12, q_6.y)); float bars_1 = metal::smoothstep(0.026, 0.065, metal::abs(localX)) * metal::smoothstep(0.035, 0.085, metal::abs(q_6.y - 3.0)); float mask = ((((xmask * ymask) * bars_1) * metal::step(0.0, bay)) * metal::step(bay, 4.0)) * metal::step(0.0, t_15); float ndl = metal::max(metal::dot(normal_1, metal::float3(-0.2807732, 0.8523472, 0.441215)), 0.0); return metal::float3(0.0035, 0.0055, 0.0085) + ((metal::float3(0.12, 0.18, 0.28) * mask) * ndl); } metal::float3 fixedCandle( metal::float3 p_12, metal::float3 n_6, metal::float4 source, float radius, constant Frame& frame ) { if (source.w <= 0.0001) { return metal::float3(0.0); } metal::float3 delta = source.xyz - p_12; float d2_ = metal::dot(delta, delta); if (d2_ >= (radius * radius)) { return metal::float3(0.0); } float reach = 1.0 - metal::smoothstep(radius * 0.55, radius, metal::sqrt(d2_)); float _e22 = slabShade(p_12, delta, frame); float _e24 = doorPortal(p_12, source.xyz, frame); float visibility = _e22 * _e24; float ndl_1 = metal::max(metal::dot(n_6, delta * metal::rsqrt(metal::max(d2_, 0.000001))) + 0.22, 0.0) / 1.22; return (((metal::float3(1.0, 0.42, 0.12) * (source.w / (d2_ + 0.3))) * reach) * visibility) * ndl_1; } metal::float3 fixedCandlesSkip( metal::float3 p_13, metal::float3 n_7, int skip, constant Frame& frame ) { metal::float3 sum_2 = metal::float3(0.0); int i_7 = 0; uint2 loop_bound_4 = uint2(4294967295u); bool loop_init_4 = true; while(true) { if (metal::all(loop_bound_4 == uint2(0u))) { break; } loop_bound_4 -= uint2(loop_bound_4.y == 0u, 1u); if (!loop_init_4) { int _e29 = i_7; i_7 = as_type(as_type(_e29) + as_type(1)); } loop_init_4 = false; int _e8 = i_7; if (_e8 < 8) { } else { break; } { int _e11 = i_7; if (_e11 != skip) { metal::float3 _e13 = sum_2; int _e16 = i_7; metal::float4 _e18 = frame.candlePos.inner[metal::min(unsigned(_e16), 7u)]; int _e21 = i_7; float _e24 = frame.candleFx.inner[metal::min(unsigned(_e21), 7u)].y; metal::float3 _e27 = fixedCandle(p_13, n_7, _e18, metal::max(_e24, 0.5), frame); sum_2 = _e13 + _e27; } } } metal::float3 _e32 = sum_2; return _e32; } metal::float3 fixedCandles( metal::float3 p_14, metal::float3 n_8, constant Frame& frame ) { metal::float3 _e3 = fixedCandlesSkip(p_14, n_8, -1, frame); return _e3; } float strokeD( metal::float2 p_15, metal::float2 a_1, metal::float2 b ) { metal::float2 pa = p_15 - a_1; metal::float2 ba = b - a_1; float hh = metal::clamp(metal::dot(pa, ba) / metal::max(metal::dot(ba, ba), 0.00000001), 0.0, 1.0); return metal::length(pa - (ba * hh)); } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } uint naga_mod(uint lhs, uint rhs) { return lhs % metal::select(rhs, 1u, rhs == 0u); } float numeral( metal::float2 q_3, float fpl ) { type_12 codes = type_12 {{23u, 1u, 5u, 21u, 85u, 2u, 6u, 22u, 86u, 13u, 3u, 7u}}; type_12 counts = type_12 {{3u, 1u, 2u, 3u, 4u, 1u, 2u, 3u, 4u, 2u, 1u, 2u}}; float w_1 = 0.0; uint i_8 = 0u; float x_1 = {}; float dist_2 = 10.0; uint i_9 = 0u; float r_7 = metal::length(q_3); float ang = metal::atan2(q_3.x, q_3.y); float a_4 = (ang < 0.0) ? (ang + 6.2831855) : ang; float kf = metal::floor((a_4 / 0.5235988) + 0.5); uint k_3 = naga_mod(naga_f2u32(kf), 12u); float d_6 = a_4 - (kf * 0.5235988); float lx = (r_7 * metal::sin(d_6)) / 0.17; float ly = ((r_7 * metal::cos(d_6)) - (0.715 - (0.17 * 0.5))) / 0.17; uint code = codes.inner[metal::min(unsigned(k_3), 11u)]; uint n_10 = counts.inner[metal::min(unsigned(k_3), 11u)]; uint2 loop_bound_5 = uint2(4294967295u); bool loop_init_5 = true; while(true) { if (metal::all(loop_bound_5 == uint2(0u))) { break; } loop_bound_5 -= uint2(loop_bound_5.y == 0u, 1u); if (!loop_init_5) { uint _e90 = i_8; i_8 = _e90 + 1u; } loop_init_5 = false; uint _e70 = i_8; if (_e70 < 4u) { } else { break; } { uint _e73 = i_8; if (_e73 < n_10) { uint _e76 = i_8; uint g_4 = (code >> (2u * _e76)) & 3u; float _e81 = w_1; w_1 = (_e81 + ((g_4 == 1u) ? 0.24 : 0.56)) + 0.07; } } } float _e93 = w_1; x_1 = (-(_e93) * 0.5) + 0.035; uint2 loop_bound_6 = uint2(4294967295u); bool loop_init_6 = true; while(true) { if (metal::all(loop_bound_6 == uint2(0u))) { break; } loop_bound_6 -= uint2(loop_bound_6.y == 0u, 1u); if (!loop_init_6) { uint _e183 = i_9; i_9 = _e183 + 1u; } loop_init_6 = false; uint _e104 = i_9; if (_e104 < 4u) { } else { break; } { uint _e107 = i_9; if (_e107 < n_10) { uint _e110 = i_9; uint g_5 = (code >> (2u * _e110)) & 3u; float gw = (g_5 == 1u) ? 0.24 : 0.56; float _e120 = x_1; metal::float2 p_17 = metal::float2(lx - _e120, ly); if (g_5 == 1u) { float _e125 = dist_2; float _e134 = strokeD(p_17, metal::float2(gw * 0.5, 0.06), metal::float2(gw * 0.5, 0.94)); dist_2 = metal::min(_e125, _e134); } else { if (g_5 == 2u) { float _e138 = dist_2; float _e146 = strokeD(p_17, metal::float2(0.04, 0.94), metal::float2(gw * 0.5, 0.06)); dist_2 = metal::min(_e138, _e146); float _e148 = dist_2; float _e157 = strokeD(p_17, metal::float2(gw - 0.04, 0.94), metal::float2(gw * 0.5, 0.06)); dist_2 = metal::min(_e148, _e157); } else { float _e159 = dist_2; float _e167 = strokeD(p_17, metal::float2(0.04, 0.94), metal::float2(gw - 0.04, 0.06)); dist_2 = metal::min(_e159, _e167); float _e169 = dist_2; float _e177 = strokeD(p_17, metal::float2(0.04, 0.06), metal::float2(gw - 0.04, 0.94)); dist_2 = metal::min(_e169, _e177); } } float _e179 = x_1; x_1 = (_e179 + gw) + 0.07; } } } float inBand = metal::step(-0.2, ly) * metal::step(ly, 1.2); float _e197 = dist_2; return (1.0 - metal::smoothstep(0.075 - (fpl / 0.17), 0.075 + (fpl / 0.17), _e197)) * inBand; } OwnFlame ownFlame( int k, constant Frame& frame ) { OwnFlame f = {}; metal::float4 _e5 = frame.light; f.pos = _e5.xyz; float _e11 = frame.light.w; f.level = metal::clamp(_e11 / NEAR_I, 0.0, 1.6) * metal::step(0.0, static_cast(k)); if (k > 0) { metal::float4 c_8 = frame.candlePos.inner[metal::min(unsigned(as_type(as_type(k) - as_type(1))), 7u)]; f.pos = c_8.xyz; float _e38 = frame.candleFx.inner[metal::min(unsigned(as_type(as_type(k) - as_type(1))), 7u)].x; f.level = _e38; } OwnFlame _e39 = f; return _e39; } metal::float3 nearLight( OwnFlame f_1, metal::float3 world_2, metal::float3 N_1, metal::float3 V, metal::float3 albedo, metal::float3 spec, float power, float wrap, constant Frame& frame ) { metal::float3 dl = f_1.pos - world_2; float dd = metal::dot(dl, dl); metal::float3 Lo = dl * metal::rsqrt(metal::max(dd, 0.00000001)); float _e24 = frame.highlight.x; float _e28 = frame.highlight.y; float _e29 = shoulder((NEAR_I * f_1.level) / (dd + NEAR_S2_), _e24, _e28); float ndl_2 = metal::dot(N_1, Lo); metal::float3 H = metal::normalize(Lo + V); float sp_1 = ((metal::pow(metal::max(metal::dot(N_1, H), 0.0), power) * (power + 8.0)) * 0.04) * metal::step(0.0, ndl_2); return (NEAR_COLOR * _e29) * (((albedo * metal::max(ndl_2 + wrap, 0.0)) / metal::float3(1.0 + wrap)) + (spec * sp_1)); } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } Surf candleTaper( Surf s0_, metal::float3 world_3, metal::float3 lp, metal::float3 info, metal::float4 size_1, float burn_1, float ratio_1, metal::float4 prm_1, metal::float3 AX, metal::float3 AY, metal::float3 AZ, metal::float3 V_1, constant Frame& frame ) { Surf s_2 = {}; float drip_1 = {}; bool local_47 = {}; bool local_48 = {}; float glow_1 = {}; bool local_49 = {}; float bounce = {}; s_2 = s0_; Taper _e16 = taperOf(size_1.xyz, metal::abs(size_1.w), burn_1, ratio_1, prm_1); float region_1 = info.x; float below = info.y; float theta_7 = metal::atan2(lp.z, lp.x); drip_1 = (metal::clamp(info.z / 0.07, 0.0, 1.0) * metal::step(0.5, region_1)) * (1.0 - metal::step(1.5, region_1)); if (region_1 > 0.5) { local_47 = region_1 < 1.5; } else { local_47 = false; } bool _e44 = local_47; if (_e44) { local_48 = size_1.w > 0.0; } else { local_48 = false; } bool _e51 = local_48; if (_e51) { metal::float3 _e53 = taperShaftNormal(_e16, theta_7, lp.y); s_2.N = metal::normalize(((AX * _e53.x) + (AY * _e53.y)) + (AZ * _e53.z)); float _e65 = dripAt(_e16, theta_7, lp.y); drip_1 = metal::clamp(_e65 / (0.07 * _e16.R1_), 0.0, 1.0); } int k_4 = naga_f2i32(metal::floor(prm_1.x + 0.5)); OwnFlame _e78 = ownFlame(k_4, frame); metal::float3 _e80 = s_2.N; float edge = metal::pow(1.0 - metal::min(metal::abs(metal::dot(_e80, V_1)), 1.0), 1.5); float _e97 = vnoise(metal::float2((theta_7 * 5.0) + _e16.seed, lp.y * 240.0)); float layers = 0.89 + (0.11 * _e97); float _e110 = vnoise(metal::float2((theta_7 * 2.0) - _e16.seed, lp.y * 55.0)); float mottle = 0.94 + (0.06 * _e110); float _e123 = vnoise(metal::float2(theta_7 * 37.0, (lp.y * 800.0) + _e16.seed)); float grain_1 = 0.97 + (0.03 * _e123); metal::float3 _e130 = s_2.albedo; float _e134 = drip_1; s_2.albedo = (((_e130 * layers) * mottle) * grain_1) * (1.0 + (0.1 * _e134)); s_2.sheen = 0.0; s_2.wrap = (k_4 == 0) ? 0.0 : 0.45; float _e149 = drip_1; s_2.spec = metal::float3(0.03 + (0.06 * _e149)); float _e156 = drip_1; s_2.power = 24.0 + (40.0 * _e156); s_2.alpha = prm_1.y; float near = metal::exp(-(below) / (0.9 * _e16.R1_)); float far = metal::exp(-(below) / (8.0 * _e16.R1_)); metal::float3 _e177 = s_2.albedo; s_2.albedo = _e177 * metal::mix(0.72, 1.0, far); float _e192 = drip_1; glow_1 = ((((WAX_NEAR * near) + (WAX_FAR * far)) * (0.45 + (1.0 * edge))) * (1.0 + ((0.7 * _e192) * near))) + ((WAX_EDGE * edge) * edge); if (region_1 > 1.5) { local_49 = region_1 < 2.5; } else { local_49 = false; } bool _e211 = local_49; if (_e211) { glow_1 = WAX_LIP * (0.7 + (0.6 * edge)); s_2.spec = metal::float3(0.07); s_2.power = 60.0; s_2.ao = 0.55; } else { if (region_1 > 2.5) { float rr = metal::length(lp.xz) / metal::max(_e16.R1_, 0.00001); glow_1 = (WAX_POOL * (0.65 + (1.2 * metal::exp((-(rr) * rr) * 7.0)))) * (0.4 + (0.6 * metal::smoothstep(0.0, 0.6, _e78.level))); metal::float3 _e255 = s_2.albedo; s_2.albedo = _e255 * 0.3; s_2.spec = metal::float3(0.5); s_2.power = 380.0; s_2.ao = 0.5; } } metal::float3 tint = metal::mix(metal::float3(0.74, 0.22, 0.04), metal::float3(1.0, 0.43, 0.12), near); bounce = WAX_BOUNCE * _e78.level; if (k_4 > 0) { float _e280 = bounce; float _e288 = frame.candlePos.inner[metal::min(unsigned(as_type(as_type(k_4) - as_type(1))), 7u)].w; bounce = metal::max(_e280, WAX_BOUNCE_POOL * _e288); } float _e292 = glow_1; metal::float3 _e297 = s_2.albedo; float _e300 = bounce; s_2.emit = (tint * (_e292 * _e78.level)) + ((_e297 * NEAR_COLOR) * _e300); if (k_4 > 0) { metal::float3 _e307 = s_2.emit; float _e309 = s_2.ao; metal::float3 _e313 = s_2.N; metal::float3 _e315 = s_2.albedo; metal::float3 _e317 = s_2.spec; float _e319 = s_2.power; metal::float3 _e321 = nearLight(_e78, world_3, _e313, V_1, _e315, _e317, _e319, 0.0, frame); s_2.emit = _e307 + ((0.6 * _e309) * _e321); } Surf _e324 = s_2; return _e324; } Surf candleMetal( Surf s0_1, metal::float3 world_4, metal::float4 prm_2, metal::float3 base, metal::float3 V_2, bool detailed, constant Frame& frame ) { Surf s_3 = {}; float t_10 = {}; s_3 = s0_1; float kind = prm_2.x; t_10 = 0.4 * prm_2.y; if (detailed) { float _e21 = vnoise((world_4.xz * 41.0) + metal::float2(world_4.y * 27.0, prm_2.z)); t_10 = metal::smoothstep(0.15, 0.85, (_e21 * 0.5) + 0.5) * prm_2.y; } if (kind < 0.5) { float _e34 = t_10; s_3.albedo = base * (0.16 - (0.08 * _e34)); float _e49 = t_10; s_3.spec = metal::mix(metal::float3(0.95, 0.66, 0.33), metal::float3(0.36, 0.26, 0.13), _e49); float _e52 = t_10; s_3.power = metal::mix(150.0, 24.0, _e52); } else { if (kind < 1.5) { float _e59 = t_10; s_3.albedo = base * (0.22 - (0.08 * _e59)); float _e74 = t_10; s_3.spec = metal::mix(metal::float3(0.62, 0.6, 0.57), metal::float3(0.26, 0.25, 0.23), _e74); float _e77 = t_10; s_3.power = metal::mix(70.0, 16.0, _e77); } else { float _e82 = t_10; s_3.albedo = base * (0.6 - (0.2 * _e82)); float _e89 = t_10; s_3.spec = metal::float3(0.2 - (0.08 * _e89)); s_3.power = 26.0; } } s_3.wrap = 0.2; int k_5 = naga_f2i32(metal::floor(prm_2.w + 0.5)); OwnFlame _e104 = ownFlame(k_5, frame); if (k_5 > 0) { metal::float3 _e109 = s_3.N; metal::float3 _e113 = s_3.spec; float _e115 = s_3.power; metal::float3 _e117 = nearLight(_e104, world_4, _e109, V_2, metal::float3(0.0), _e113, _e115, 0.0, frame); s_3.emit = _e117; } metal::float3 _e119 = s_3.N; float fres = metal::pow(1.0 - metal::clamp(metal::dot(_e119, V_2), 0.0, 1.0), 4.0); metal::float3 _e130 = s_3.emit; metal::float3 _e132 = s_3.spec; s_3.emit = _e130 + (((_e132 * metal::float3(0.014, 0.009, 0.005)) * fres) * (0.4 + (0.6 * metal::clamp(_e104.level, 0.0, 1.0)))); Surf _e149 = s_3; return _e149; } Surf candleSpill( Surf s0_2, metal::float3 world_5, metal::float4 prm_3, metal::float3 base_1, metal::float3 V_3, constant Frame& frame ) { Surf s_4 = {}; s_4 = s0_2; int k_6 = naga_f2i32(metal::floor(prm_3.y + 0.5)); OwnFlame _e11 = ownFlame(k_6, frame); float _e20 = vnoise((world_5.xz * 300.0) + metal::float2(prm_3.x, 0.0)); s_4.albedo = base_1 * (0.9 + (0.1 * _e20)); s_4.spec = metal::float3(0.07); s_4.power = 44.0; s_4.wrap = 0.3; s_4.sheen = 0.0; s_4.alpha = prm_3.w; s_4.emit = metal::float3(0.9, 0.35, 0.08) * ((prm_3.z * _e11.level) * 0.06); if (k_6 > 0) { metal::float3 _e52 = s_4.emit; metal::float3 _e54 = s_4.N; metal::float3 _e56 = s_4.albedo; metal::float3 _e58 = s_4.spec; float _e60 = s_4.power; metal::float3 _e62 = nearLight(_e11, world_5, _e54, V_3, _e56, _e58, _e60, 0.3, frame); s_4.emit = _e52 + _e62; } Surf _e64 = s_4; return _e64; } struct vs_mainInput { metal::float3 pos_1 [[attribute(0)]]; metal::float3 nrm [[attribute(1)]]; metal::float4 m0_ [[attribute(2)]]; metal::float4 m1_ [[attribute(3)]]; metal::float4 m2_ [[attribute(4)]]; metal::float4 m3_ [[attribute(5)]]; metal::float4 color_1 [[attribute(6)]]; metal::float4 params [[attribute(7)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float3 normal [[user(loc1), center_perspective]]; metal::float3 local [[user(loc2), center_perspective]]; metal::float3 lnrm [[user(loc3), center_perspective]]; metal::float4 color [[user(loc4), flat]]; metal::float4 params [[user(loc5), flat]]; metal::float4 size [[user(loc6), flat]]; metal::float4 ax [[user(loc7), flat]]; metal::float4 ay [[user(loc8), flat]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant Frame& frame [[buffer(0)]] ) { const VsIn in = { varyings.pos_1, varyings.nrm, varyings.m0_, varyings.m1_, varyings.m2_, varyings.m3_, varyings.color_1, varyings.params }; metal::float3 pos = {}; metal::float3 normal = {}; metal::float3 world = {}; metal::float3 n = {}; metal::float3 localOut = {}; metal::float3 lnrmOut = {}; metal::float3 extra = metal::float3(0.0); bool local = {}; bool local_1 = {}; bool local_2 = {}; bool local_3 = {}; bool local_4 = {}; bool local_5 = {}; bool local_6 = {}; VsOut out = {}; metal::float3 s2_1 = metal::float3(metal::dot(in.m0_.xyz, in.m0_.xyz), metal::dot(in.m1_.xyz, in.m1_.xyz), metal::dot(in.m2_.xyz, in.m2_.xyz)); pos = in.pos; normal = in.nrm; if (in.color.w == MAT_CURTAIN) { metal::float3 _e28 = cloth(in.pos, in.params.x, frame); pos = _e28; metal::float3 _e37 = cloth(in.pos + metal::float3(0.001, 0.0, 0.0), in.params.x, frame); metal::float3 _e46 = cloth(in.pos - metal::float3(0.001, 0.0, 0.0), in.params.x, frame); metal::float3 dx_1 = _e37 - _e46; metal::float3 _e56 = cloth(in.pos + metal::float3(0.0, 0.001, 0.0), in.params.x, frame); metal::float3 _e65 = cloth(in.pos - metal::float3(0.0, 0.001, 0.0), in.params.x, frame); metal::float3 dy = _e56 - _e65; normal = metal::normalize(metal::cross(dx_1, dy)) * in.nrm.z; } float _e75 = pos.x; float _e80 = pos.y; float _e86 = pos.z; world = (((in.m0_.xyz * _e75) + (in.m1_.xyz * _e80)) + (in.m2_.xyz * _e86)) + in.m3_.xyz; metal::float3 _e93 = normal; metal::float3 nl = _e93 / metal::max(s2_1, metal::float3(0.0000000001)); n = ((in.m0_.xyz * nl.x) + (in.m1_.xyz * nl.y)) + (in.m2_.xyz * nl.z); localOut = in.pos; lnrmOut = in.nrm; if (in.color.w == MAT_TAPER) { metal::float3 tsz = metal::sqrt(s2_1); metal::float3 tx = in.m0_.xyz / metal::float3(metal::max(tsz.x, 0.000001)); metal::float3 ty_1 = in.m1_.xyz / metal::float3(metal::max(tsz.y, 0.000001)); metal::float3 tz = in.m2_.xyz / metal::float3(metal::max(tsz.z, 0.000001)); Taper _e154 = taperOf(tsz, in.m0_.w, in.m1_.w, in.m2_.w, in.params); TaperV _e155 = taperVertex(in.pos, _e154); world = ((in.m3_.xyz + (tx * _e155.pos.x)) + (ty_1 * _e155.pos.y)) + (tz * _e155.pos.z); n = ((tx * _e155.nrm.x) + (ty_1 * _e155.nrm.y)) + (tz * _e155.nrm.z); localOut = _e155.pos; lnrmOut = _e155.info; if (in.m3_.w > 0.5) { float _e194 = frame.hall4_.y; local = _e194 > 0.5; } else { local = false; } bool _e198 = local; extra = metal::float3(in.m0_.w * (_e198 ? 1.0 : -1.0), in.m1_.w, in.m2_.w); } metal::float3 centre = in.m3_.xyz; if (centre.y > 6.0) { local_1 = centre.y < 10.95; } else { local_1 = false; } bool _e219 = local_1; if (_e219) { local_2 = metal::distance(centre.xz, metal::float2(0.35, -2.6)) < 1.8; } else { local_2 = false; } bool _e230 = local_2; if (_e230) { if (!((in.color.w == MAT_IRON))) { local_4 = in.color.w == MAT_BRASS; } else { local_4 = true; } bool _e245 = local_4; if (!(_e245)) { local_5 = in.color.w == MAT_WAX; } else { local_5 = true; } bool _e254 = local_5; if (!(_e254)) { local_6 = in.color.w == MAT_WEB; } else { local_6 = true; } bool _e263 = local_6; local_3 = _e263; } else { local_3 = false; } bool _e265 = local_3; if (_e265) { float _e269 = frame.misc.y; float _e278 = frame.eye.w; float angle = (metal::smoothstep(0.15, 0.95, _e269) * 0.045) * metal::sin(_e278 * 1.35); float c_9 = metal::cos(angle); float s_10 = metal::sin(angle); metal::float3 _e285 = world; metal::float3 p_18 = _e285 - metal::float3(0.35, 11.0, -2.6); world = metal::float3((c_9 * p_18.x) - (s_10 * p_18.y), (s_10 * p_18.x) + (c_9 * p_18.y), p_18.z) + metal::float3(0.35, 11.0, -2.6); float _e309 = n.x; float _e312 = n.y; float _e316 = n.x; float _e319 = n.y; float _e323 = n.z; n = metal::float3((c_9 * _e309) - (s_10 * _e312), (s_10 * _e316) + (c_9 * _e319), _e323); } metal::float3 sz = metal::sqrt(s2_1); metal::float4x4 _e330 = frame.viewProj; metal::float3 _e331 = world; out.position = _e330 * metal::float4(_e331, 1.0); metal::float3 _e336 = world; out.world = _e336; metal::float3 _e338 = n; out.normal = _e338; metal::float3 _e340 = localOut; out.local = _e340; metal::float3 _e342 = lnrmOut; out.lnrm = _e342; out.color = in.color; out.params = in.params; float _e349 = extra.x; out.size = metal::float4(sz, _e349); float _e360 = extra.y; out.ax = metal::float4(in.m0_.xyz / metal::float3(metal::max(sz.x, 0.000001)), _e360); float _e371 = extra.z; out.ay = metal::float4(in.m1_.xyz / metal::float3(metal::max(sz.y, 0.000001)), _e371); VsOut _e373 = out; const auto _tmp = _e373; return vs_mainOutput { _tmp.position, _tmp.world, _tmp.normal, _tmp.local, _tmp.lnrm, _tmp.color, _tmp.params, _tmp.size, _tmp.ax, _tmp.ay }; } struct fs_mainInput { metal::float3 world_6 [[user(loc0), center_perspective]]; metal::float3 normal_2 [[user(loc1), center_perspective]]; metal::float3 local_50 [[user(loc2), center_perspective]]; metal::float3 lnrm [[user(loc3), center_perspective]]; metal::float4 color_1 [[user(loc4), flat]]; metal::float4 params [[user(loc5), flat]]; metal::float4 size_2 [[user(loc6), flat]]; metal::float4 ax [[user(loc7), flat]]; metal::float4 ay [[user(loc8), flat]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Frame& frame [[buffer(0)]] ) { const VsOut in_1 = { position, varyings_1.world_6, varyings_1.normal_2, varyings_1.local_50, varyings_1.lnrm, varyings_1.color_1, varyings_1.params, varyings_1.size_2, varyings_1.ax, varyings_1.ay }; metal::float3 Ng = {}; bool local_7 = {}; bool local_8 = {}; bool local_9 = {}; bool local_10 = {}; bool local_11 = {}; float moonVis = 0.0; bool local_12 = {}; bool local_13 = {}; float Ep = 0.0; metal::float3 Lp = metal::float3(0.0, 1.0, 0.0); bool local_14 = {}; bool local_15 = {}; metal::float3 lantern = metal::float3(0.0); metal::float3 Ll = metal::float3(0.0, 1.0, 0.0); bool local_16 = {}; bool local_17 = {}; bool local_18 = {}; bool local_19 = {}; Surf s = {}; float fu = 0.0; float fv = 0.0; metal::float3 FT = {}; metal::float3 FB = {}; bool local_20 = {}; float u = {}; float v = {}; bool local_21 = {}; bool local_22 = {}; bool local_23 = {}; float tone = 1.0; bool local_24 = {}; bool local_25 = {}; bool local_26 = {}; bool local_27 = {}; metal::float3 N = {}; float tone_1 = 1.0; float g = 0.0; float dark = 0.0; bool local_28 = {}; float t = 0.0; float ink = 0.0; float age = 0.0; bool local_29 = {}; bool local_30 = {}; float n_1 = 0.5; float n_2 = 0.5; float tone_2 = {}; float grain = 1.0; float tone_3 = 0.8; float land = 0.0; float lines = 0.0; metal::float3 color = {}; bool local_31 = {}; bool local_32 = {}; bool local_33 = {}; bool local_34 = {}; bool local_35 = {}; bool local_36 = {}; float handAlpha = {}; bool local_37 = {}; bool local_38 = {}; float outA = {}; bool local_39 = {}; metal::float3 fw = metal::fwidth(in_1.world); float fp_1 = metal::max(metal::max(fw.x, fw.y), metal::max(fw.z, 0.000001)); metal::float3 fwl = metal::fwidth(in_1.local); float mat = in_1.color.w; metal::float3 base_2 = in_1.color.xyz; metal::float4 prm_4 = in_1.params; metal::float3 size_2 = in_1.size.xyz; metal::float3 AX_1 = in_1.ax.xyz; metal::float3 AY_1 = in_1.ay.xyz; metal::float3 AZ_1 = metal::cross(AX_1, AY_1); Ng = metal::normalize(in_1.normal); metal::float4 _e29 = frame.eye; metal::float3 V_4 = metal::normalize(_e29.xyz - in_1.world); metal::float3 _e34 = Ng; if (metal::dot(_e34, V_4) < 0.0) { if (!((mat == MAT_WEB))) { local_8 = mat == MAT_PAPER; } else { local_8 = true; } bool _e48 = local_8; local_7 = _e48; } else { local_7 = false; } bool _e50 = local_7; if (_e50) { metal::float3 _e51 = Ng; Ng = -(_e51); } metal::float3 an = metal::abs(in_1.lnrm); bool faceX = an.x > 0.5; if (an.y > 0.5) { local_9 = !(faceX); } else { local_9 = false; } bool faceY = local_9; if (!(faceX)) { local_10 = !(faceY); } else { local_10 = false; } bool faceZ = local_10; metal::float3 lp_1 = in_1.local; if (!((mat == MAT_TAPER))) { local_11 = mat == MAT_CWAX; } else { local_11 = true; } bool candleWax = local_11; int ownLight = candleWax ? naga_f2i32(((mat == MAT_TAPER) ? in_1.params.x : in_1.params.y) + 0.5) : 0; metal::float4 _e94 = frame.light; metal::float3 toL_2 = _e94.xyz - in_1.world; float d2_1 = metal::dot(toL_2, toL_2); metal::float3 L = toL_2 * metal::rsqrt(metal::max(d2_1, 0.00000001)); metal::float3 _e104 = doorSpace(in_1.world, frame); float _e109 = frame.hall3_.x; bool inHall = _e104.x < (_e109 - 0.05); float _e114 = slabShade(in_1.world, toL_2, frame); metal::float4 _e118 = frame.light; float _e120 = doorPortal(in_1.world, _e118.xyz, frame); float slab = _e114 * (inHall ? _e120 : 1.0); float _e127 = frame.light.w; float _e131 = frame.lightColor.w; float _e137 = frame.highlight.x; float _e141 = frame.highlight.y; float _e142 = shoulder(_e127 / (d2_1 + _e131), _e137, _e141); float E = _e142 * slab; float _e147 = frame.light.w; float _e151 = frame.roomLight.w; float Eroom = (_e147 / (d2_1 + _e151)) * slab; metal::float4 _e157 = frame.moonTravel; metal::float3 d_7 = _e157.xyz; metal::float3 M = -(d_7); metal::float3 _e162 = Ng; if (metal::dot(_e162, M) > 0.0) { float _e171 = frame.moonColor.x; float _e175 = frame.moonColor.z; local_12 = (_e171 + _e175) > 0.00001; } else { local_12 = false; } bool _e180 = local_12; if (_e180) { local_13 = !(inHall); } else { local_13 = false; } bool _e185 = local_13; if (_e185) { metal::float4 _e189 = frame.win; metal::float4 _e192 = frame.win2_; float _e193 = moonPatch(in_1.world, d_7, _e189, _e192); float _e197 = slabShade(in_1.world, M * 40.0, frame); moonVis = _e193 * _e197; } float _e202 = frame.win.x; float _e206 = frame.win.y; float _e213 = frame.win.z; float _e217 = frame.misc.w; float _e224 = frame.win2_.x; metal::float3 wc = metal::float3((_e202 + _e206) * 0.5, (_e213 + _e217) * 0.5, _e224); metal::float3 toW = wc - in_1.world; float dW = metal::length(toW); float _e232 = frame.moonTravel.w; float _e237 = frame.misc.z; float _e241 = frame.misc.z; float sky = (_e232 / (1.0 + ((dW * dW) / (_e237 * _e241)))) * (inHall ? 0.0 : 1.0); metal::float3 _e251 = Ng; float skyDir = 0.55 + (0.45 * metal::dot(_e251, toW / metal::float3(metal::max(dW, 0.0001)))); float _e271 = frame.pool.w; if (_e271 > 0.0) { local_14 = !(inHall); } else { local_14 = false; } bool _e278 = local_14; if (_e278) { metal::float4 _e281 = frame.pool; metal::float3 toP = _e281.xyz - in_1.world; float dp2_ = metal::dot(toP, toP); Lp = toP * metal::rsqrt(metal::max(dp2_, 0.00000001)); float _e293 = frame.win2_.x; float sw = (_e293 - in_1.world.z) / metal::min(toP.z, -0.0001); if (sw > 0.0) { local_15 = sw < 1.0; } else { local_15 = false; } bool _e308 = local_15; if (_e308) { metal::float2 qw = in_1.world.xy + (toP.xy * sw); float _e319 = frame.win2_.x; float _e326 = frame.poolColor.w; float soft_1 = 0.006 + (metal::max(in_1.world.z - _e319, 0.0) * _e326); float _e333 = frame.pool.w; metal::float4 _e339 = frame.win; metal::float4 _e342 = frame.win2_; float _e344 = windowMask(qw, _e339, _e342, soft_1, 1.0); float _e347 = slabShade(in_1.world, toP, frame); Ep = ((_e333 / metal::max(dp2_, 0.0001)) * _e344) * _e347; } } float _e360 = frame.hall.w; if (_e360 > 0.0) { metal::float4 _e365 = frame.hall; metal::float3 tl = _e365.xyz - in_1.world; float dl2_ = metal::dot(tl, tl); Ll = tl * metal::rsqrt(metal::max(dl2_, 0.00000001)); metal::float3 _e374 = lanternColor(frame); float _e378 = frame.hall.w; metal::float4 _e385 = frame.hall; float _e387 = doorPortal(in_1.world, _e385.xyz, frame); lantern = _e374 * ((_e378 / (dl2_ + 0.3)) * _e387); } metal::float3 _e390 = lanternColor(frame); float _e392 = doorSpill(in_1.world, frame); metal::float3 spill = _e390 * _e392; metal::float3 _e396 = Ng; metal::float3 _e397 = doorVec(_e396, frame); metal::float3 _e398 = galleryMoon(_e104, _e397); metal::float3 gallery = inHall ? _e398 : metal::float3(0.0); metal::float3 _e401 = Ng; metal::float3 _e404 = fixedCandlesSkip(in_1.world, _e401, as_type(as_type(ownLight) - as_type(1)), frame); metal::float3 _e406 = lantern; metal::float3 _e407 = Ng; metal::float3 _e408 = Ll; metal::float4 _e422 = frame.lightColor; metal::float3 _e425 = Ng; metal::float4 _e438 = frame.roomLight; metal::float3 _e441 = Ng; metal::float4 _e451 = frame.moonColor; float _e453 = moonVis; metal::float3 _e455 = Ng; metal::float4 _e463 = frame.poolColor; float _e465 = Ep; metal::float3 _e466 = Ng; metal::float3 _e467 = Lp; metal::float4 _e476 = frame.moonColor; metal::float4 _e483 = frame.ambient; metal::float3 lin = ((((((((_e404 + gallery) + ((_e406 * metal::max(metal::dot(_e407, _e408) + 0.3, 0.0)) / metal::float3(1.3))) + spill) + (((_e422.xyz * E) * metal::max(metal::dot(_e425, L) + 0.35, 0.0)) / metal::float3(1.35))) + ((_e438.xyz * Eroom) * (0.5 + (0.5 * metal::dot(_e441, L))))) + ((_e451.xyz * _e453) * metal::max(metal::dot(_e455, M), 0.0))) + (_e463.xyz * (_e465 * metal::max(metal::dot(_e466, _e467), 0.0)))) + (_e476.xyz * (sky * skyDir))) + _e483.xyz; float _e486 = luma(lin); float _e490 = frame.highlight.w; float _e495 = frame.highlight.z; if (!(((_e486 * _e490) > _e495))) { local_16 = mat == MAT_GLASS; } else { local_16 = true; } bool _e503 = local_16; if (!(_e503)) { local_17 = mat == MAT_HALL_WINDOW; } else { local_17 = true; } bool _e510 = local_17; if (!(_e510)) { local_18 = mat == MAT_WEB; } else { local_18 = true; } bool _e517 = local_18; if (!(_e517)) { local_19 = mat == MAT_DIAL; } else { local_19 = true; } bool detailed_1 = local_19; s.albedo = base_2; s.spec = metal::float3(0.0); s.power = 16.0; s.emit = metal::float3(0.0); metal::float3 _e536 = Ng; s.N = _e536; s.ao = 1.0; s.sheen = 0.0; s.alpha = 1.0; s.wrap = 0.35; s.moonShade = 1.0; FT = AX_1; FB = AY_1; if (faceX) { fu = in_1.local.z * size_2.z; fv = in_1.local.y * size_2.y; FT = AZ_1; FB = AY_1; } else { if (faceY) { fu = in_1.local.x * size_2.x; fv = in_1.local.z * size_2.z; FT = AX_1; FB = AZ_1; } else { fu = in_1.local.x * size_2.x; fv = in_1.local.y * size_2.y; FT = AX_1; FB = AY_1; } } if (!((mat == MAT_WOOD))) { local_20 = mat == MAT_LEATHER; } else { local_20 = true; } bool _e579 = local_20; if (_e579) { float faceU = faceX ? size_2.z : size_2.x; float faceV = faceX ? size_2.y : (faceY ? size_2.z : size_2.y); bool alongU = faceU >= faceV; float flags = in_1.params.w; float _e590 = fv; float _e591 = fu; u = alongU ? _e591 : _e590; float _e594 = fu; float _e595 = fv; v = alongU ? _e595 : _e594; if (flags > 1.5) { local_21 = flags < 2.5; } else { local_21 = false; } bool _e605 = local_21; if (_e605) { u = in_1.world.y; float _e608 = fu; v = _e608; } if (flags > 0.5) { local_22 = flags < 1.5; } else { local_22 = false; } bool _e616 = local_22; if (_e616) { local_23 = faceY; } else { local_23 = false; } bool _e620 = local_23; if (_e620) { u = in_1.world.x; v = in_1.world.z; } if (detailed_1) { float _e627 = u; float _e630 = v; float _e634 = woodTone(_e627 * in_1.params.x, _e630 * in_1.params.x, in_1.params.y); tone = _e634; if (flags > 1.5) { local_24 = flags < 2.5; } else { local_24 = false; } bool _e642 = local_24; if (_e642) { float _e644 = v; float pi = metal::floor(_e644 / 0.9); float _e647 = tone; float _e652 = h1_(metal::float2(pi, 3.0 + in_1.params.y)); tone = _e647 * (0.82 + (0.3 * _e652)); float _e658 = v; float _e667 = lineAA(_e658 - ((pi + 0.5) * 0.9), (0.9 * 0.5) - 0.02, fp_1); float _e668 = tone; tone = _e668 * metal::mix(0.35, 1.0, _e667); } } else { tone = 0.9; } float _e675 = tone; s.albedo = base_2 * _e675; s.spec = metal::float3(0.035 + (0.09 * in_1.params.z)); s.power = 18.0 + (40.0 * in_1.params.z); if (mat == MAT_LEATHER) { float _e696 = vnoise(in_1.world.xz * 90.0); float n_11 = detailed_1 ? ((_e696 * 0.5) + 0.5) : 0.0; s.albedo = base_2 * (0.85 + (0.3 * n_11)); float _e709 = fu; float _e717 = fu; float ex = metal::min(_e709 + (size_2.x * 0.5), (size_2.x * 0.5) - _e717); float _e720 = fv; float _e728 = fv; float ez = metal::min(_e720 + (size_2.z * 0.5), (size_2.z * 0.5) - _e728); float e_2 = metal::min(ex, ez); float _e735 = lineAA(e_2 - in_1.params.x, 0.008, fp_1); float _e741 = lineAA((e_2 - in_1.params.x) - 0.035, 0.004, fp_1); float rule = metal::max(_e735, _e741) * (faceY ? 1.0 : 0.0); metal::float3 _e749 = s.albedo; s.albedo = metal::mix(_e749, metal::float3(0.3, 0.2, 0.06), rule * 0.8); s.spec = metal::mix(metal::float3(0.04), metal::float3(0.75, 0.52, 0.2), rule); s.power = metal::mix(22.0, 60.0, rule); } if (flags > 0.5) { local_25 = flags < 1.5; } else { local_25 = false; } bool _e776 = local_25; if (_e776) { local_26 = faceY; } else { local_26 = false; } bool _e780 = local_26; if (_e780) { float _e784 = frame.book.x; float _e788 = frame.book.z; metal::float2 lo_3 = metal::float2(_e784, -(_e788)); float _e794 = frame.book.y; float _e798 = frame.book.z; metal::float2 hi_3 = metal::float2(_e794, _e798); metal::float2 q2_ = metal::max(metal::max(lo_3 - in_1.world.xz, in_1.world.xz - hi_3), metal::float2(0.0)); float _e814 = frame.book.w; float _e826 = discAO(in_1.world, 0, 5, frame); s.ao = metal::mix(0.3, 1.0, metal::smoothstep(0.0, metal::max(_e814, 0.0001), metal::length(q2_))) * _e826; } } else { if (mat == MAT_BOOK) { float seed_3 = in_1.params.x; float gilt = in_1.params.y; float style = in_1.params.z; float wear = in_1.params.w; if (faceZ) { local_27 = in_1.lnrm.z > 0.0; } else { local_27 = false; } bool _e841 = local_27; if (_e841) { float x_4 = in_1.local.x * 2.0; float y_6 = in_1.local.y; float hgt = size_2.y; metal::float3 _e847 = Ng; metal::float3 _e848 = FT; N = metal::normalize(_e847 + (_e848 * (x_4 * 0.85))); if (detailed_1) { float _e861 = fu; float _e862 = fv; float _e868 = vnoise((metal::float2(_e861, _e862) * 160.0) + metal::float2(seed_3)); float cloth_1 = (_e868 * 0.5) + 0.5; float _e877 = fu; float _e880 = fv; float _e888 = vnoise(metal::float2(_e877 * 6.0, _e880 * 3.0) + metal::float2(seed_3 * 1.7)); tone_1 = (0.86 + (0.22 * cloth_1)) + (0.1 * _e888); float yy = (y_6 + 0.5) * hgt; if (style > 0.45) { float nr = 4.0 + metal::floor(style * 3.0); float pitch = (hgt * 0.78) / nr; float r0_ = hgt * 0.11; float k_7 = metal::clamp(metal::floor(((yy - r0_) / pitch) + 0.5), 0.0, nr); float dy_1 = yy - (r0_ + (k_7 * pitch)); float rib = 1.0 - metal::smoothstep(0.012, 0.03, metal::abs(dy_1)); metal::float3 _e923 = N; metal::float3 _e924 = FB; N = metal::normalize(_e923 + (_e924 * ((metal::clamp(-(dy_1) / 0.03, -1.0, 1.0) * rib) * 0.9))); float _e937 = tone_1; tone_1 = _e937 * (1.0 + (0.25 * rib)); float _e943 = g; float _e948 = lineAA(metal::abs(dy_1) - 0.045, 0.006, fp_1); g = metal::max(_e943, _e948 * gilt); float lab = (metal::step(r0_ + (pitch * (nr - 2.0)), yy) * metal::step(yy, r0_ + (pitch * (nr - 1.0)))) * metal::step(metal::abs(x_4), 0.8); float _e968 = h1_(metal::float2(seed_3, 9.0)); dark = lab * (0.45 + (0.4 * _e968)); float tl_1 = metal::abs(yy - (r0_ + (pitch * (nr - 1.5)))); float _e987 = h1_(metal::float2(seed_3, metal::floor(yy * 40.0))); float dash = metal::step(0.5, metal::fract((in_1.local.x * 7.0) + (_e987 * 3.0))); float _e994 = g; float _e996 = lineAA(tl_1, 0.014, fp_1); g = metal::max(_e994, (((lab * _e996) * dash) * metal::step(0.3, gilt)) * metal::step(metal::abs(x_4), 0.62)); } else { float tb_1 = metal::abs(yy - (hgt * 0.8)); float _e1011 = g; float _e1013 = lineAA(tb_1, 0.018, fp_1); g = metal::max(_e1011, ((_e1013 * metal::step(metal::abs(x_4), 0.7)) * metal::step(0.5, metal::fract((in_1.local.x * 6.0) + seed_3))) * gilt); float _e1028 = g; float _e1033 = lineAA(yy - (hgt * 0.93), 0.006, fp_1); g = metal::max(_e1028, _e1033 * gilt); float _e1036 = g; float _e1041 = lineAA(yy - (hgt * 0.07), 0.006, fp_1); g = metal::max(_e1036, _e1041 * gilt); dark = (metal::step(metal::abs(tb_1), 0.06) * 0.25) * metal::step(0.5, style * 2.0); } float edge_1 = metal::smoothstep(0.7, 1.0, metal::abs(x_4)); float _e1058 = tone_1; tone_1 = (_e1058 * (1.0 - (0.15 * edge_1))) + ((0.18 * edge_1) * wear); float _e1068 = fu; float _e1071 = fv; float _e1079 = vnoise(metal::float2(_e1068 * 30.0, _e1071 * 12.0) + metal::float2(seed_3 * 5.0)); float scuff = metal::smoothstep(0.55, 0.95, _e1079) * wear; float _e1084 = tone_1; tone_1 = _e1084 + (scuff * 0.25); } float _e1088 = tone_1; float _e1090 = dark; metal::float3 leather = (base_2 * _e1088) * (1.0 - _e1090); metal::float3 gold = metal::float3(0.46, 0.3, 0.09); float _e1101 = g; s.albedo = metal::mix(leather, gold * 0.35, _e1101); float _e1113 = g; s.spec = metal::mix(metal::float3(0.03 + (0.05 * style)), metal::float3(1.0, 0.72, 0.32), _e1113); float _e1120 = g; s.power = metal::mix(14.0 + (20.0 * style), 70.0, _e1120); metal::float3 _e1124 = N; s.N = _e1124; } else { if (faceY) { local_28 = in_1.lnrm.y > 0.0; } else { local_28 = false; } bool _e1132 = local_28; if (_e1132) { float bx = metal::abs(in_1.local.x) * 2.0; float board = metal::smoothstep(0.72, 0.78, bx) + metal::smoothstep(0.4, 0.44, in_1.local.z); float _e1154 = vnoise(metal::float2((in_1.local.x * size_2.x) * 260.0, in_1.local.z * 3.0)); float lines_1 = detailed_1 ? ((_e1154 * 0.5) + 0.5) : 0.5; metal::float3 pages = metal::mix(metal::float3(0.16, 0.13, 0.085), metal::float3(0.24, 0.2, 0.13), lines_1); float topGilt = metal::step(0.82, gilt); metal::float3 pg = metal::mix(pages, metal::float3(0.4, 0.27, 0.08), topGilt); s.albedo = metal::mix(pg, base_2, metal::clamp(board, 0.0, 1.0)); s.spec = metal::float3((topGilt * 0.5) * (1.0 - metal::clamp(board, 0.0, 1.0))); s.power = 40.0; s.ao = 0.55; s.moonShade = 0.3; } else { s.albedo = base_2 * 0.8; s.ao = 0.7; } } } else { if (mat == MAT_BRASS) { if (detailed_1) { float _e1220 = vnoise(((in_1.world.xz * 11.0) + metal::float2(in_1.world.y * 7.0)) + metal::float2(in_1.params.y)); t = metal::smoothstep(0.1, 0.8, (_e1220 * 0.5) + 0.5) * in_1.params.x; } float _e1231 = t; s.albedo = base_2 * (0.2 - (0.1 * _e1231)); float _e1246 = t; s.spec = metal::mix(metal::float3(1.2, 0.86, 0.42), metal::float3(0.4, 0.3, 0.16), _e1246); float _e1249 = t; s.power = metal::mix(34.0, 14.0, _e1249); } else { if (mat == MAT_PAPER) { if (detailed_1) { local_29 = faceY; } else { local_29 = false; } bool _e1262 = local_29; if (_e1262) { float _e1264 = fv; float row = _e1264 / 0.045; float ri = metal::floor(row); float _e1267 = fu; float slant = _e1267 + (((metal::fract(row) - 0.5) * 0.045) * 0.35); float _e1281 = fu; float _e1285 = vnoise(metal::float2(_e1281 * 90.0, ri)); float stroke = (metal::abs(metal::fract(row) - 0.5) - 0.1) - (0.06 * _e1285); float inRow = 1.0 - metal::smoothstep(0.0, 0.08 + (fp_1 / 0.045), stroke); float _e1303 = vnoise(metal::float2(slant * 26.0, (ri * 3.1) + in_1.params.x)); float words = metal::smoothstep(0.1, 0.35, (_e1303 * 0.5) + 0.5); float _e1316 = vnoise(metal::float2(slant * 260.0, ri * 7.0)); float letters = 0.55 + (0.45 * _e1316); float _e1326 = h1_(metal::float2(ri, in_1.params.x + 3.0)); float right = size_2.x * (0.3 + (0.08 * _e1326)); float _e1336 = fu; float _e1338 = fu; float _e1341 = fv; float margin = (metal::step(-(size_2.x) * 0.36, _e1336) * metal::step(_e1338, right)) * metal::step(metal::abs(_e1341), size_2.z * 0.4); float _e1355 = h1_(metal::float2(ri, in_1.params.x)); ink = ((((inRow * words) * letters) * margin) * in_1.params.y) * metal::step(0.12, _e1355); float _e1362 = fu; float _e1368 = fv; float e_3 = metal::min((size_2.x * 0.5) - metal::abs(_e1362), (size_2.z * 0.5) - metal::abs(_e1368)); float _e1372 = fu; float _e1373 = fv; float _e1377 = vnoise(metal::float2(_e1372, _e1373) * 30.0); float _e1388 = fu; float _e1389 = fv; float _e1396 = vnoise((metal::float2(_e1388, _e1389) * 9.0) + metal::float2(in_1.params.x)); age = ((1.0 - metal::smoothstep(0.0, 0.06, e_3 + (0.02 * _e1377))) * 0.5) + (metal::smoothstep(0.55, 0.9, _e1396) * 0.25); } float _e1404 = age; float _e1414 = ink; s.albedo = metal::mix(base_2 * (1.0 - (_e1404 * 0.45)), metal::float3(0.05, 0.03, 0.02), _e1414 * 0.7); s.spec = metal::float3(0.02); } else { if (mat == MAT_GLASS) { metal::float2 q_7 = in_1.world.xy; metal::float4 _e1427 = frame.win; metal::float4 _e1430 = frame.win2_; float _e1434 = windowMask(q_7, _e1427, _e1430, metal::max(fp_1, 0.004), 1.0); float _e1439 = vnoise(q_7 * metal::float2(3.0, 1.2)); float wav = (_e1439 * 0.5) + 0.5; float top_2 = frame.misc.w; float _e1451 = frame.win.x; float _e1455 = frame.win.y; float _e1459 = frame.win.x; float moonGlow = metal::exp(-(metal::length(q_7 - metal::float2(_e1451 + ((_e1455 - _e1459) * 0.3), top_2 - 0.6))) * 0.9); metal::float4 _e1475 = frame.moonColor; float _e1484 = frame.win.z; metal::float3 sky_1 = _e1475.xyz * (((0.09 + (0.08 * wav)) * (0.6 + (0.4 * metal::smoothstep(_e1484, top_2, q_7.y)))) + (0.42 * moonGlow)); s.emit = sky_1 * _e1434; s.albedo = metal::float3(0.02, 0.018, 0.016) * (1.0 - _e1434); s.spec = metal::float3(0.3 * _e1434); s.power = 90.0; } else { if (mat == MAT_TAPER) { Surf _e1514 = s; Surf _e1523 = candleTaper(_e1514, in_1.world, in_1.local, in_1.lnrm, in_1.size, in_1.ax.w, in_1.ay.w, prm_4, AX_1, AY_1, AZ_1, V_4, frame); s = _e1523; } else { if (mat == MAT_CMETAL) { Surf _e1526 = s; Surf _e1528 = candleMetal(_e1526, in_1.world, prm_4, base_2, V_4, detailed_1, frame); s = _e1528; } else { if (mat == MAT_CWAX) { Surf _e1531 = s; Surf _e1533 = candleSpill(_e1531, in_1.world, prm_4, base_2, V_4, frame); s = _e1533; } else { if (mat == MAT_WAX) { s.albedo = base_2; s.sheen = 0.25; if (in_1.params.y > 0.5) { float _e1545 = frame.light.y; float dy_2 = metal::max(_e1545 - in_1.world.y, 0.0); metal::float3 _e1551 = Ng; float across_2 = metal::min(metal::abs(metal::dot(_e1551, V_4)), 1.0); float rimW = 0.45 + (0.55 * metal::pow(1.0 - across_2, 2.0)); float glow_2 = ((metal::exp(-(dy_2) / 0.06) * 1.1) + (metal::exp(-(dy_2) / 0.22) * 0.1)) * rimW; float _e1586 = frame.light.w; s.emit = metal::float3(1.0, 0.46, 0.14) * (_e1586 * glow_2); s.albedo = base_2 * (0.18 + (0.2 * across_2)); s.wrap = 0.0; s.alpha = in_1.params.w; } } else { if (!((mat == MAT_FABRIC))) { local_30 = mat == MAT_CURTAIN; } else { local_30 = true; } bool _e1607 = local_30; if (_e1607) { if (detailed_1) { float _e1610 = fu; float _e1611 = fv; float _e1618 = vnoise((metal::float2(_e1610, _e1611) * 9.0) + metal::float2(in_1.params.x)); n_1 = (_e1618 * 0.5) + 0.5; } float _e1624 = n_1; float _e1633 = n_1; s.albedo = (base_2 * (0.8 + (0.35 * _e1624))) * (1.0 + ((in_1.params.y * 0.35) * metal::smoothstep(0.6, 0.9, _e1633))); s.sheen = 0.9; if (mat == MAT_CURTAIN) { metal::float4 _e1648 = frame.moonColor; metal::float3 _e1652 = s.N; s.emit = (base_2 * _e1648.xyz) * (0.12 + (0.08 * metal::max(metal::dot(_e1652, V_4), 0.0))); float hem = 1.0 - metal::smoothstep(0.008, 0.02, metal::abs(in_1.local.y + 0.47)); metal::float3 _e1673 = s.albedo; s.albedo = metal::mix(_e1673, metal::float3(0.35, 0.24, 0.1), hem * 0.7); } } else { if (mat == MAT_PLASTER) { if (detailed_1) { float _e1685 = fu; float _e1686 = fv; float _e1694 = fbm3_(metal::float2(_e1685, _e1686) * metal::float2(1.3, faceY ? 1.3 : 0.7)); n_2 = (_e1694 * 0.5) + 0.5; float _e1699 = n_2; float _e1700 = fu; float _e1703 = fv; float _e1707 = vnoise(metal::float2(_e1700 * 5.0, _e1703 * 0.35)); n_2 = _e1699 - (faceY ? 0.0 : (0.12 * metal::smoothstep(0.2, 0.9, _e1707))); } float _e1717 = n_2; s.albedo = base_2 * (0.75 + (0.4 * _e1717)); } else { if (mat == MAT_FLOOR) { float bw_1 = in_1.params.x; float b_1 = metal::floor(in_1.world.x / bw_1); float _e1732 = h1_(metal::float2(b_1, 7.0)); float len_1 = 5.0 + (4.0 * _e1732); float _e1739 = h1_(metal::float2(b_1, 13.0)); float off = _e1739 * len_1; float zz = in_1.world.z + off; float seg = metal::floor(zz / len_1); metal::float2 key = metal::float2(b_1, seg); float _e1750 = h1_(key + metal::float2(in_1.params.y)); tone_2 = 0.72 + (0.4 * _e1750); float _e1766 = lineAA(in_1.world.x - ((b_1 + 0.5) * bw_1), (bw_1 * 0.5) - 0.012, fp_1); float _e1775 = lineAA(zz - ((seg + 0.5) * len_1), (len_1 * 0.5) - 0.01, fp_1); if (detailed_1) { float _e1789 = h1_(key); float _e1792 = woodTone(in_1.world.z * 0.8, (in_1.world.x * 0.8) + (b_1 * 3.7), _e1789 * 20.0); grain = _e1792; float nz = zz - (seg * len_1); float ax = metal::abs((metal::fract(in_1.world.x / bw_1) - 0.5) * bw_1) - (bw_1 * 0.25); float az = metal::min(nz, len_1 - nz) - 0.1; float nail = 1.0 - metal::smoothstep(0.014, 0.014 + fp_1, metal::length(metal::float2(ax, az))); float _e1818 = tone_2; tone_2 = _e1818 * (1.0 - (0.6 * nail)); } float _e1825 = tone_2; float _e1827 = grain; s.albedo = ((base_2 * _e1825) * _e1827) * metal::mix(0.18, 1.0, _e1766 * _e1775); s.spec = metal::float3(0.03); s.power = 12.0; metal::float4 r_8 = frame.room; float dwall = metal::min(metal::min(in_1.world.x - r_8.x, r_8.y - in_1.world.x), metal::min(in_1.world.z - r_8.z, r_8.w - in_1.world.z)); float _e1871 = discAO(in_1.world, 5, 12, frame); s.ao = metal::mix(0.45, 1.0, metal::smoothstep(0.0, 1.6, dwall)) * _e1871; } else { if (mat == MAT_PANEL) { float pw_2 = in_1.params.x; float ph = in_1.params.y; float _e1877 = fu; float _e1878 = fv; float along = faceY ? _e1878 : _e1877; float _e1885 = frame.win2_.w; float up = in_1.world.y - _e1885; float cu = along / pw_2; float cv = up / ph; float fuu = metal::abs(metal::fract(cu) - 0.5) * pw_2; float fvv = metal::abs(metal::fract(cv) - 0.5) * ph; float bx_1 = (pw_2 * 0.5) - fuu; float by = (ph * 0.5) - fvv; float e_4 = metal::min(bx_1, by); float rail = 1.0 - metal::smoothstep(0.24, 0.24 + (fp_1 * 2.0), e_4); float bevel = metal::smoothstep(0.24, 0.36, e_4) * (1.0 - metal::smoothstep(0.36, 0.5, e_4)); if (detailed_1) { float _e1930 = woodTone((by < bx_1) ? along : up, (by < bx_1) ? up : along, in_1.params.z); tone_3 = _e1930 * 0.85; float tu = metal::sign(metal::fract(cu) - 0.5); float tv = metal::sign(metal::fract(cv) - 0.5); metal::float3 _e1941 = FB; metal::float3 _e1943 = FT; metal::float3 bn = (bx_1 < by) ? (_e1943 * tu) : (_e1941 * tv); metal::float3 _e1948 = Ng; s.N = metal::normalize(_e1948 + (bn * (bevel * 0.6))); } float _e1955 = tone_3; s.albedo = (base_2 * _e1955) * metal::mix(1.0, 0.8, rail); s.spec = metal::float3(0.05); s.power = 20.0; } else { if (mat == MAT_IRON) { s.albedo = base_2; s.spec = metal::float3(0.12); s.power = 24.0; } else { if (mat == MAT_GLOBE) { metal::float3 pn = metal::normalize(lp_1); float lon = metal::atan2(pn.z, pn.x); float lat = metal::asin(metal::clamp(pn.y, -1.0, 1.0)); if (detailed_1) { float _e1996 = fbm3_(metal::float2((lon * 1.6) + in_1.params.x, lat * 2.4)); float _e2002 = vnoise(metal::float2(lon * 6.0, lat * 8.0)); float c_10 = _e1996 + (0.25 * _e2002); land = metal::smoothstep(0.05, 0.12, c_10); float _e2013 = lineAA(c_10 - 0.085, 0.02, 0.01); float _e2023 = lineAA(metal::fract((lon / 0.5236) + 0.5) - 0.5, 0.02, 0.02); float _e2033 = lineAA(metal::fract((lat / 0.5236) + 0.5) - 0.5, 0.02, 0.02); lines = metal::max(_e2013 * 0.9, metal::max(_e2023, _e2033) * 0.5); } float _e2046 = land; float _e2048 = lines; s.albedo = metal::mix(base_2, base_2 * metal::float3(0.5, 0.45, 0.3), _e2046) * (1.0 - (0.8 * _e2048)); s.spec = metal::float3(0.12); s.power = 40.0; } else { if (mat == MAT_HALL_WINDOW) { metal::float2 q_8 = metal::float2(faceX ? in_1.local.z : in_1.local.x, in_1.local.y) * 2.0; float arch = 1.0 - metal::smoothstep(0.94, 1.0, metal::length(metal::float2(q_8.x, metal::max(q_8.y - 0.28, 0.0) * 1.38))); float bars_2 = (1.0 - metal::smoothstep(0.018, 0.036, metal::abs(q_8.x))) + (1.0 - metal::smoothstep(0.018, 0.04, metal::abs(q_8.y + 0.12))); float lead = 1.0 - metal::smoothstep(0.025, 0.06, metal::abs(metal::fract((q_8.x * 3.0) + (q_8.y * 3.0)) - 0.5)); float moon = (1.0 - metal::smoothstep(0.115, 0.128, metal::length(q_8 - metal::float2(0.2, 0.36)))) * (1.0 - metal::step(0.5, in_1.params.x)); float _e2139 = vnoise(q_8 * 3.0); metal::float3 sky_2 = metal::float3(0.004, 0.008, 0.014) * (0.7 + (0.3 * _e2139)); s.albedo = metal::float3(0.005); s.emit = (((sky_2 + (metal::float3(0.05, 0.07, 0.1) * moon)) * arch) * (1.0 - metal::clamp(bars_2, 0.0, 1.0))) * (1.0 - (0.55 * lead)); s.spec = metal::float3(0.12); s.power = 32.0; } else { if (mat == MAT_DIAL) { if (in_1.lnrm.y > 0.5) { metal::float2 q_9 = metal::float2(in_1.local.x, -(in_1.local.z)) * 2.0; float r_9 = metal::length(q_9); float a_5 = metal::atan2(q_9.x, q_9.y); float fpl_1 = metal::max(fwl.x, fwl.z) * 2.0; float _e2196 = lineAA(r_9 - 0.93, 0.012, fpl_1); float _e2200 = lineAA(r_9 - 0.84, 0.01, fpl_1); float _e2205 = lineAA(r_9 - 0.585, 0.008, fpl_1); float ring = metal::max(metal::max(_e2196, _e2200), _e2205); float _e2217 = lineAA(metal::fract((a_5 / 0.10472) + 0.5) - 0.5, 0.07, fpl_1 * 9.0); float minute = (_e2217 * metal::step(0.84, r_9)) * metal::step(r_9, 0.93); float hourDot = 1.0 - metal::smoothstep(0.022, 0.022 + fpl_1, metal::length(metal::float2(r_9 * metal::sin((metal::fract((a_5 / 0.5236) + 0.5) * 0.5236) - 0.2618), r_9 - 0.885))); float _e2246 = numeral(q_9, fpl_1); float ink_1 = metal::max(metal::max(ring, minute), metal::max(hourDot, _e2246)); float _e2260 = vnoise((q_9 * 3.2) + metal::float2(11.0, 4.0)); float age_3 = (metal::smoothstep(0.5, 1.0, r_9) * 0.3) + (0.2 * metal::smoothstep(0.3, 0.9, (_e2260 * 0.5) + 0.5)); metal::float3 enamel = (base_2 * metal::float3(1.0, 0.93, 0.8)) * (1.0 - age_3); s.albedo = metal::mix(enamel, metal::float3(0.03, 0.025, 0.02), ink_1); s.spec = metal::float3(0.06); s.power = 40.0; metal::float3 _e2292 = s.albedo; float _e2298 = frame.highlight.w; s.emit = (_e2292 * DIAL_FLOOR) / metal::float3(metal::max(_e2298, 1.0)); } else { s.albedo = metal::float3(0.3, 0.2, 0.07); s.spec = metal::float3(0.6, 0.45, 0.2); s.power = 40.0; } } else { if (mat == MAT_INK) { s.albedo = base_2; s.spec = metal::float3(0.55); s.power = 85.0; } else { if (mat == MAT_DARK) { s.albedo = base_2; s.ao = 0.6; } else { if (mat == MAT_EMIT) { s.albedo = metal::float3(0.0); s.emit = base_2 * in_1.params.x; } else { if (mat == MAT_WEB) { metal::float2 q_10 = metal::float2(in_1.local.x + 0.5, in_1.local.y + 0.5); metal::float2 hub = prm_4.xy; metal::float2 dv_1 = (q_10 - hub) * metal::float2(size_2.x, size_2.y); float r_10 = metal::length(dv_1); float a_6 = metal::atan2(dv_1.y, dv_1.x); float sa = (((metal::fract(((a_6 / 6.2831855) * 11.0) + in_1.params.z) - 0.5) / 11.0) * 6.2831855) * r_10; float fpw = (metal::max(fwl.x * size_2.x, fwl.y * size_2.y) * 1.2) + 0.002; float _e2380 = lineAA(sa, 0.0035, fpw); float ringR = (r_10 / 0.075) + (0.35 * metal::sin((a_6 * 3.0) + in_1.params.z)); float _e2397 = lineAA((metal::fract(ringR) - 0.5) * 0.075, 0.003, fpw); float _e2408 = vnoise(metal::float2(a_6 * 3.0, r_10 * 9.0) + metal::float2(in_1.params.z * 5.0)); float tatter = metal::step(0.3, (_e2408 * 0.5) + 0.5); float reach_1 = 1.0 - metal::smoothstep(0.55, 1.0, r_10 / (0.5 * metal::max(size_2.x, size_2.y))); float edgeFade = metal::smoothstep(0.0, 0.08, metal::min(metal::min(q_10.x, 1.0 - q_10.x), metal::min(q_10.y, 1.0 - q_10.y))); s.alpha = metal::clamp(((metal::max(_e2380, _e2397 * tatter) * reach_1) * edgeFade) * in_1.params.w, 0.0, 1.0) * 0.8; s.albedo = metal::float3(0.55, 0.55, 0.52); s.sheen = 1.5; } } } } } } } } } } } } } } } } } } } } } metal::float3 N_2 = s.N; float ndl_3 = metal::dot(N_2, L); float _e2463 = s.wrap; float _e2468 = s.wrap; float wrapD = metal::max(ndl_3 + _e2463, 0.0) / (1.0 + _e2468); metal::float3 H_1 = metal::normalize(L + V_4); float _e2478 = s.power; float _e2481 = s.power; float specC = ((metal::pow(metal::max(metal::dot(N_2, H_1), 0.0), _e2478) * (_e2481 + 8.0)) * 0.04) * metal::step(0.0, ndl_3); float _e2499 = s.sheen; float rim = metal::pow(1.0 - metal::clamp(metal::dot(N_2, V_4), 0.0, 1.0), 3.0) * _e2499; metal::float4 _e2503 = frame.lightColor; metal::float3 candle = _e2503.xyz * E; metal::float3 _e2507 = s.albedo; float _e2509 = s.ao; metal::float4 _e2517 = frame.roomLight; float _e2526 = s.ao; metal::float3 _e2531 = s.spec; color = (_e2507 * ((candle * ((wrapD * _e2509) + (rim * 0.5))) + (((_e2517.xyz * Eroom) * (0.5 + (0.5 * ndl_3))) * _e2526))) + ((_e2531 * candle) * specC); float _e2539 = frame.hall.w; if (!((_e2539 > 0.0))) { float _e2548 = frame.hall2_.x; local_31 = _e2548 > 0.0; } else { local_31 = true; } bool _e2552 = local_31; if (_e2552) { metal::float3 _e2553 = Ll; float wl = metal::max(metal::dot(N_2, _e2553) + 0.3, 0.0) / 1.3; metal::float3 _e2561 = color; metal::float3 _e2563 = s.albedo; metal::float3 _e2564 = lantern; float _e2572 = s.ao; color = _e2561 + ((_e2563 * ((_e2564 * (wl + (rim * 0.4))) + spill)) * _e2572); } float ndm = metal::max(metal::dot(N_2, M), 0.0); metal::float3 Hm = metal::normalize(M + V_4); float _e2584 = s.power; float _e2587 = s.power; float specM = (metal::pow(metal::max(metal::dot(N_2, Hm), 0.0), _e2584) * (_e2587 + 8.0)) * 0.04; metal::float3 _e2593 = color; metal::float4 _e2596 = frame.moonColor; float _e2598 = moonVis; float _e2600 = s.moonShade; metal::float3 _e2604 = s.albedo; metal::float3 _e2610 = s.spec; color = _e2593 + ((_e2596.xyz * (_e2598 * _e2600)) * ((_e2604 * (ndm + (rim * 0.4))) + ((_e2610 * specM) * metal::step(0.0, ndm)))); float _e2618 = Ep; if (_e2618 > 0.0) { metal::float3 _e2621 = Lp; float ndp = metal::dot(N_2, _e2621); float _e2624 = s.wrap; float _e2629 = s.wrap; float wrapP = metal::max(ndp + _e2624, 0.0) / (1.0 + _e2629); metal::float3 _e2633 = Lp; metal::float3 Hp = metal::normalize(_e2633 + V_4); float _e2640 = s.power; float _e2643 = s.power; float specP = ((metal::pow(metal::max(metal::dot(N_2, Hp), 0.0), _e2640) * (_e2643 + 8.0)) * 0.04) * metal::step(0.0, ndp); metal::float3 _e2652 = color; metal::float4 _e2655 = frame.poolColor; float _e2657 = Ep; metal::float3 _e2660 = s.albedo; float _e2662 = s.ao; metal::float3 _e2669 = s.spec; color = _e2652 + ((_e2655.xyz * _e2657) * ((_e2660 * ((wrapP * _e2662) + (rim * 0.4))) + (_e2669 * specP))); } metal::float3 _e2674 = color; metal::float3 _e2676 = s.albedo; metal::float4 _e2679 = frame.moonColor; metal::float4 _e2694 = frame.ambient; float _e2699 = s.ao; color = _e2674 + ((_e2676 * ((_e2679.xyz * (sky * (0.55 + (0.45 * metal::dot(N_2, toW / metal::float3(metal::max(dW, 0.0001))))))) + _e2694.xyz)) * _e2699); if (!((mat == MAT_PANEL))) { local_32 = mat == MAT_BOOK; } else { local_32 = true; } bool _e2710 = local_32; if (!(_e2710)) { local_33 = mat == MAT_PLASTER; } else { local_33 = true; } bool _e2717 = local_33; if (_e2717) { float _e2721 = frame.misc.y; float dread_1 = metal::smoothstep(0.2, 0.95, _e2721); metal::float3 p_19 = in_1.world; float _e2732 = frame.eye.w; float bend = (metal::sin((in_1.world.y * 0.65) + (_e2732 * 0.48)) * dread_1) * 0.65; float _e2751 = frame.eye.w; float bands = metal::pow(0.5 + (0.5 * metal::sin((((in_1.world.x * 1.6) + (in_1.world.z * 1.3)) + bend) + (_e2751 * 0.22))), 10.0); metal::float3 _e2762 = color; color = _e2762 * (1.0 - ((bands * dread_1) * 0.32)); } metal::float3 _e2769 = color; metal::float3 _e2771 = s.albedo; float _e2775 = s.ao; metal::float3 _e2779 = s.emit; color = (_e2769 + ((_e2771 * (gallery + _e404)) * _e2775)) + _e2779; float viewMode = frame.misc.x; if (viewMode > 4.5) { local_34 = viewMode < 5.5; } else { local_34 = false; } bool _e2792 = local_34; if (_e2792) { color = lin * 0.6; } else { if (viewMode > 2.5) { local_35 = viewMode < 3.5; } else { local_35 = false; } bool _e2802 = local_35; if (_e2802) { float _e2804 = s.ao; color = metal::float3(_e2804); } else { if (viewMode > 6.5) { local_36 = viewMode < 7.5; } else { local_36 = false; } bool _e2813 = local_36; if (_e2813) { color = detailed_1 ? metal::float3(1.0, 0.0, 0.0) : metal::float3(0.0, 0.0, 0.3); } } } metal::float3 _e2823 = color; metal::float4 _e2827 = frame.eye; metal::float4 _e2831 = frame.light; metal::float4 _e2835 = frame.haze; metal::float4 _e2838 = frame.glow; metal::float3 _e2839 = atmosphere(_e2823, in_1.world, _e2827.xyz, _e2831.xyz, _e2835, _e2838); metal::float3 _e2840 = color; color = metal::mix(_e2840, _e2839, (mat == 23.0) ? 0.06 : 1.0); if (mat == 23.0) { metal::float3 _e2849 = color; color = _e2849 + (metal::float3(0.008, 0.011, 0.017) * metal::pow(1.0 - metal::clamp(metal::dot(N_2, V_4), 0.0, 1.0), 3.0)); float through = (metal::pow(metal::max(metal::dot(-(V_4), L), 0.0), 3.0) * metal::min(E, 2.0)) * in_1.params.z; metal::float3 _e2875 = color; color = _e2875 + (metal::float3(1.0, 0.28, 0.07) * (through * 0.05)); handAlpha = metal::clamp(in_1.params.y, 0.0, 1.0); if (in_1.params.x > 0.5) { float _e2892 = handAlpha; handAlpha = _e2892 * (1.0 - metal::smoothstep(-0.35, 0.5, in_1.local.y)); } float _e2901 = handAlpha; s.alpha = _e2901; } float _e2905 = frame.hall2_.x; if (_e2905 > 0.0) { metal::float4 _e2911 = frame.eye; metal::float3 gv = in_1.world - _e2911.xyz; float gd = metal::length(gv); float _e2918 = frame.hall3_.x; float _e2924 = frame.win2_.w; float _e2930 = frame.hall2_.z; float _e2934 = frame.hall2_.w; metal::float3 _e2939 = doorWorld(metal::float3(_e2918 + 0.45, _e2924 + 0.35, (_e2930 + _e2934) * 0.5), frame); metal::float4 _e2942 = frame.eye; float _e2949 = pointGlow(_e2942.xyz, gv / metal::float3(metal::max(gd, 0.00001)), gd, _e2939, GAP_AIR_SOFT); metal::float3 _e2950 = color; metal::float3 _e2951 = lanternColor(frame); float _e2955 = frame.hall2_.x; color = _e2950 + (_e2951 * ((_e2955 * GAP_AIR) * _e2949)); } float _e2964 = frame.hall.w; if (_e2964 > 0.0) { local_37 = inHall; } else { local_37 = false; } bool _e2970 = local_37; if (_e2970) { metal::float4 _e2974 = frame.eye; metal::float3 hv = in_1.world - _e2974.xyz; float hd = metal::length(hv); metal::float3 hdir = hv / metal::float3(metal::max(hd, 0.00001)); metal::float4 _e2984 = frame.eye; metal::float3 _e2986 = doorSpace(_e2984.xyz, frame); metal::float3 _e2987 = doorVec(hdir, frame); float _e2991 = frame.hall3_.x; float tw = metal::clamp((_e2991 - _e2986.x) / metal::min(_e2987.x, -0.0001), 0.0, hd); metal::float4 _e3002 = frame.hall; metal::float4 _e3006 = frame.eye; metal::float3 tl_2 = _e3002.xyz - _e3006.xyz; float t0_1 = metal::dot(tl_2, hdir); float k_8 = metal::sqrt(metal::max(metal::dot(tl_2, tl_2) - (t0_1 * t0_1), 0.0) + LANTERN_AIR_SOFT); float g_6 = (metal::atan((hd - t0_1) / k_8) - metal::atan((tw - t0_1) / k_8)) / k_8; metal::float3 _e3026 = color; metal::float3 _e3027 = lanternColor(frame); float _e3031 = frame.hall.w; float _e3038 = frame.haze.w; color = _e3026 + (_e3027 * (((_e3031 * LANTERN_AIR) * g_6) * metal::exp(-(_e3038) * metal::max(tw - HAZE_START, 0.0)))); } float _e3052 = frame.shaft.w; if (_e3052 > 0.5) { float _e3058 = s.alpha; local_38 = _e3058 > 0.99; } else { local_38 = false; } bool _e3062 = local_38; if (_e3062) { metal::float4 _e3066 = frame.eye; metal::float3 dv_2 = in_1.world - _e3066.xyz; float dist_4 = metal::length(dv_2); metal::float3 dir_3 = dv_2 / metal::float3(metal::max(dist_4, 0.00001)); float _e3079 = frame.eye.w; float _e3085 = frame.eye.w; float _e3090 = ign(in_1.position.xy + metal::float2(_e3079 * 37.0, _e3085 * 11.0)); metal::float4 _e3093 = frame.eye; metal::float4 _e3097 = frame.win; metal::float4 _e3100 = frame.win2_; float _e3104 = frame.misc.w; float _e3105 = shaftScatter(_e3093.xyz, dir_3, dist_4, d_7, _e3097, _e3100, _e3090, _e3104); if (_e3105 > 0.0) { float _e3113 = frame.moonColor.w; float _e3114 = hgPhase(metal::dot(d_7, -(dir_3)), _e3113); float x_5 = _e3105 * _e3114; metal::float3 _e3116 = color; metal::float4 _e3119 = frame.shaft; color = _e3116 + (_e3119.xyz * (SHAFT_KNEE * (1.0 - metal::exp(-(x_5) / SHAFT_KNEE)))); } } float _e3132 = s.alpha; outA = _e3132; float _e3137 = frame.hall4_.z; if (_e3137 > 0.0) { float _e3143 = s.alpha; local_39 = _e3143 > 0.99; } else { local_39 = false; } bool _e3147 = local_39; if (_e3147) { metal::float4 _e3151 = frame.eye; float dist_5 = metal::length(in_1.world - _e3151.xyz); float _e3158 = frame.hall4_.z; float _e3162 = frame.hall4_.w; outA = 1.0 - metal::clamp(_e3158 * metal::abs(1.0 - (_e3162 / metal::max(dist_5, 0.001))), 0.0, 1.0); } metal::float3 _e3175 = color; float _e3179 = frame.ambient.w; metal::float3 _e3180 = encodeHdr(_e3175, _e3179); float _e3182 = s.alpha; float _e3184 = outA; return fs_mainOutput { metal::float4(_e3180 * _e3182, _e3184) }; }   ‘Hq»Ü[vs_mainmainÂGstruct Taper { float R0; float R1; float L; float seed; float burn; float drip; float span; float rho; float dc; }; struct Drip { float ang; float born; float len; float w; float th; }; struct TaperV { float3 pos; float3 nrm; float3 info; }; struct Frame { row_major float4x4 viewProj; float4 eye; float4 light; float4 lightColor; float4 roomLight; float4 moonTravel; float4 moonColor; float4 ambient; float4 win; float4 win2; float4 haze; float4 glow; float4 shaft; float4 desk; float4 deskY; float4 book; float4 room; float4 highlight; float4 misc; float4 discs[12]; float4 hall; float4 hall2; float4 hall3; float4 hall4; float4 candlePos[8]; float4 candleFx[8]; float4 pool; float4 poolColor; float4 door0; float4 door1; }; struct VsIn { float3 pos; float3 nrm; float4 m0; float4 m1; float4 m2; float4 m3; float4 color; float4 params; }; struct VsOut { float4 position; float3 world; float3 normal; float3 local; float3 lnrm; float4 color; float4 params; float4 size; float4 ax; float4 ay; }; struct Surf { float3 albedo; float3 spec; float power; float3 emit; float3 N; float ao; float sheen; float alpha; float wrap; float moonShade; }; struct OwnFlame { float3 pos; float level; }; static const Taper _856 = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const Drip _929 = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const TaperV _1262 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2151[12] = { 23u, 1u, 5u, 21u, 85u, 2u, 6u, 22u, 86u, 13u, 3u, 7u }; static const uint _2152[12] = { 3u, 1u, 2u, 3u, 4u, 1u, 2u, 3u, 4u, 2u, 1u, 2u }; static const OwnFlame _2335 = { float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Surf _2447 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const Surf _2719 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const Surf _2835 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const VsOut _2956 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer frame : register(b0) { Frame frame_1_m0 : packoffset(c0); }; static float4 gl_Position; static float3 pos; static float3 nrm; static float4 m0; static float4 m1; static float4 m2; static float4 m3; static float4 color; static float4 params; static float3 world; static float3 normal; static float3 local; static float3 lnrm; static float4 color_1; static float4 params_1; static float4 size; static float4 ax; static float4 ay; struct SPIRV_Cross_Input { float3 pos : TEXCOORD0; float3 nrm : TEXCOORD1; float4 m0 : TEXCOORD2; float4 m1 : TEXCOORD3; float4 m2 : TEXCOORD4; float4 m3 : TEXCOORD5; float4 color : TEXCOORD6; float4 params : TEXCOORD7; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float3 local : TEXCOORD2; float3 lnrm : TEXCOORD3; nointerpolation float4 color_1 : TEXCOORD4; nointerpolation float4 params_1 : TEXCOORD5; nointerpolation float4 size : TEXCOORD6; nointerpolation float4 ax : TEXCOORD7; nointerpolation float4 ay : TEXCOORD8; float4 gl_Position : SV_Position; }; float3 cloth(float3 q, float seed) { float _1395 = clamp(0.5f - q.y, 0.0f, 1.0f); float _1414 = 0.02500000037252902984619140625f + (smoothstep(0.07999999821186065673828125f, 0.949999988079071044921875f, frame_1_m0.misc.y) * (0.25f + (0.5f * ((0.550000011920928955078125f + (0.25f * sin(frame_1_m0.eye.w * 0.730000019073486328125f))) + (0.20000000298023223876953125f * sin((frame_1_m0.eye.w * 1.16999995708465576171875f) + 1.39999997615814208984375f)))))); return float3(q.x + (((_1395 * _1395) * _1414) * ((0.550000011920928955078125f * sin(((frame_1_m0.eye.w * 1.7999999523162841796875f) - (_1395 * 3.0f)) + seed)) + (0.23999999463558197021484375f * sin((frame_1_m0.eye.w * 3.2999999523162841796875f) - (_1395 * 6.0f))))), q.y + (((_1395 * _1414) * 0.02500000037252902984619140625f) * sin((frame_1_m0.eye.w * 2.7999999523162841796875f) + (q.x * 8.0f))), (0.085000000894069671630859375f * sin(((q.x + 0.5f) * 37.700000762939453125f) + ((_1395 * _1414) * sin((frame_1_m0.eye.w * 1.39999997615814208984375f) + seed)))) + ((_1395 * _1414) * (0.60000002384185791015625f + (0.4000000059604644775390625f * sin((((frame_1_m0.eye.w * 2.099999904632568359375f) - (_1395 * 4.0f)) + (q.x * 2.0f)) + seed))))); } Taper taperOf(float3 size_1, float seed, float burn, float ratio, float4 prm) { Taper t = _856; t.R0 = 0.5f * size_1.x; t.R1 = t.R0 * clamp(ratio, 0.5f, 1.2000000476837158203125f); t.L = max(size_1.y, 9.9999997473787516355514526367188e-05f); t.seed = seed; t.burn = burn; t.drip = prm.z; t.span = prm.w; t.rho = 0.1500000059604644775390625f * t.R1; t.dc = 0.2599999904632568359375f * t.R1; return t; } float tHash(float n) { return frac(sin(n) * 43758.546875f); } Drip dripSlot(Taper t, int i) { Drip d = _929; float _932 = float(i) + 1.0f; d.ang = 6.283185482025146484375f * tHash((t.seed * 1.37000000476837158203125f) + (_932 * 12.98980045318603515625f)); d.born = lerp(-0.60000002384185791015625f, 0.949999988079071044921875f, tHash((t.seed * 2.1099998950958251953125f) + (_932 * 78.233001708984375f))); float _951 = tHash((t.seed * 3.0699999332427978515625f) + (_932 * 37.71900177001953125f)); d.len = (t.R1 * (1.60000002384185791015625f + ((9.0f * _951) * _951))) * t.drip; float _964 = tHash((t.seed * 4.309999942779541015625f) + (_932 * 4.580999851226806640625f)); d.w = t.R1 * (0.2599999904632568359375f + (0.20000000298023223876953125f * _964)); d.th = t.R1 * (0.10999999940395355224609375f + (0.12999999523162841796875f * _964)); return d; } float wrapAngle(float a) { return a - (6.283185482025146484375f * floor((a / 6.283185482025146484375f) + 0.5f)); } float notchAt(Taper t, float theta) { float n = 0.0f; int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 6)) { break; } Drip _1106 = dripSlot(t, i); float _1109 = t.burn - _1106.born; float _1122 = wrapAngle(theta - _1106.ang) * t.R1; n += ((step(0.0f, _1109) * (1.0f - smoothstep(0.0f, 2.5f * t.rho, t.span * _1109))) * exp((-(_1122 * _1122)) / ((1.60000002384185791015625f * _1106.w) * _1106.w))); i++; continue; } return (min(n, 1.0f) * 0.800000011920928955078125f) * t.rho; } float crestAt(Taper t, float theta) { return (t.L - notchAt(t, theta)) - ((0.20000000298023223876953125f * t.rho) * (0.5f + (0.5f * sin((2.0f * theta) + (t.seed * 5.0f))))); } float bareRadius(Taper t, float theta, float y) { return lerp(t.R0, t.R1, clamp(y / t.L, 0.0f, 1.0f)) * ((1.0f + (0.01600000075995922088623046875f * sin(((2.0f * theta) + (t.seed * 3.099999904632568359375f)) + (y * 31.0f)))) + (0.00999999977648258209228515625f * sin(((3.0f * theta) - (t.seed * 1.7000000476837158203125f)) + (y * 57.0f)))); } float dripAt(Taper t, float theta, float y) { float sum = 0.0f; int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 6)) { break; } Drip _1015 = dripSlot(t, i); float _1018 = t.burn - _1015.born; float _1019 = smoothstep(0.0f, 0.0350000001490116119384765625f, _1018); float _1032 = (((t.L + (t.span * max(_1018, 0.0f))) - (0.699999988079071044921875f * t.rho)) - y) / max(_1015.len * _1019, 9.9999997473787516355514526367188e-05f); float _1033 = clamp(_1032, 0.0f, 1.0f); float _1038 = wrapAngle(theta - _1015.ang) * t.R1; float _1044 = exp(((-(_1032 - 0.86000001430511474609375f)) * (_1032 - 0.86000001430511474609375f)) * 90.0f); float _1050 = _1015.w * ((1.0f - (0.300000011920928955078125f * _1033)) + (0.60000002384185791015625f * _1044)); sum += ((((_1015.th * ((0.75f + (0.3499999940395355224609375f * _1033)) + (0.89999997615814208984375f * _1044))) * (smoothstep(-0.1500000059604644775390625f, 0.039999999105930328369140625f, _1032) * (1.0f - smoothstep(0.939999997615814208984375f, 1.0499999523162841796875f, _1032)))) * step(9.9999997473787516355514526367188e-05f, _1019)) * exp((-(_1038 * _1038)) / (_1050 * _1050))); i++; continue; } return sum; } float shaftRadius(Taper t, float theta, float y) { return bareRadius(t, theta, y) + dripAt(t, theta, y); } float3 taperShaftNormal(Taper t, float theta, float y) { float _1217 = max(t.L * 0.0040000001899898052215576171875f, 0.00019999999494757503271102905273438f); float _1232 = cos(theta); float _1233 = sin(theta); return normalize((float3(_1232, 0.0f, _1233) - (float3(-_1233, 0.0f, _1232) * (((shaftRadius(t, theta + 0.02999999932944774627685546875f, y) - shaftRadius(t, theta - 0.02999999932944774627685546875f, y)) / (2.0f * 0.02999999932944774627685546875f)) / max(shaftRadius(t, theta, y), 9.9999997473787516355514526367188e-06f)))) - float3(0.0f, (shaftRadius(t, theta, y + _1217) - shaftRadius(t, theta, y - _1217)) / (2.0f * _1217), 0.0f)); } TaperV taperVertex(float3 g, Taper t) { TaperV _out = _1262; float y = 0.0f; float drip = 0.0f; float r = 0.0f; float3 n = float3(0.0f, -1.0f, 0.0f); float3 _1269 = float3(cos(g.x), 0.0f, sin(g.x)); float _1270 = crestAt(t, g.x); float _1273 = max(_1270 - t.rho, 0.0f); if (g.z < 0.5f) { r = shaftRadius(t, g.x, 0.0f) * g.y; } else { if (g.z < 1.5f) { y = g.y * _1273; drip = dripAt(t, g.x, y); r = bareRadius(t, g.x, y) + drip; n = taperShaftNormal(t, g.x, y); } else { if (g.z < 2.5f) { float _1298 = 3.1415927410125732421875f * g.y; r = (shaftRadius(t, g.x, _1273) - t.rho) + (t.rho * cos(_1298)); y = _1273 + (t.rho * sin(_1298)); n = (_1269 * cos(_1298)) + float3(0.0f, sin(_1298), 0.0f); } else { float _1317 = shaftRadius(t, g.x, _1273) - (2.0f * t.rho); float _1320 = t.L - t.dc; float _1321 = _1317 * 0.89999997615814208984375f; if (g.y < 0.300000011920928955078125f) { float _1326 = g.y / 0.300000011920928955078125f; r = lerp(_1317, _1321, _1326); y = lerp(_1273, _1320, sin(_1326 * 1.5707962512969970703125f)); n = normalize((((-_1269) * (1.0f - _1326)) * 1.39999997615814208984375f) + float3(0.0f, 0.60000002384185791015625f + _1326, 0.0f)); } else { float _1340 = (g.y - 0.300000011920928955078125f) / 0.699999988079071044921875f; r = _1321 * (1.0f - _1340); y = _1320 - ((0.07999999821186065673828125f * t.dc) * _1340); n = float3(0.0f, 1.0f, 0.0f); } } } } _out.pos = (_1269 * r) + float3(0.0f, y, 0.0f); _out.nrm = n; _out.info = float3(g.z, max(_1270 - y, 0.0f), drip / max(t.R1, 9.9999997473787516355514526367188e-06f)); return _out; } void vert_main() { bool _2952 = false; bool _2946 = false; bool _2940 = false; float3 localOut = float3(0.0f, 0.0f, 0.0f); float3 normal_1 = float3(0.0f, 0.0f, 0.0f); bool _2950 = false; bool _2944 = false; float3 extra = float3(0.0f, 0.0f, 0.0f); float3 n = float3(0.0f, 0.0f, 0.0f); float3 pos_1 = float3(0.0f, 0.0f, 0.0f); VsOut _out = _2956; bool _2948 = false; bool _2942 = false; float3 lnrmOut = float3(0.0f, 0.0f, 0.0f); float3 world_1 = float3(0.0f, 0.0f, 0.0f); VsIn _2883 = { pos, nrm, m0, m1, m2, m3, color, params }; float3 _2973 = float3(dot(_2883.m0.xyz, _2883.m0.xyz), dot(_2883.m1.xyz, _2883.m1.xyz), dot(_2883.m2.xyz, _2883.m2.xyz)); pos_1 = _2883.pos; normal_1 = _2883.nrm; if (_2883.color.w == 18.0f) { pos_1 = cloth(_2883.pos, _2883.params.x); normal_1 = normalize(cross(cloth(_2883.pos + float3(0.001000000047497451305389404296875f, 0.0f, 0.0f), _2883.params.x) - cloth(_2883.pos - float3(0.001000000047497451305389404296875f, 0.0f, 0.0f), _2883.params.x), cloth(_2883.pos + float3(0.0f, 0.001000000047497451305389404296875f, 0.0f), _2883.params.x) - cloth(_2883.pos - float3(0.0f, 0.001000000047497451305389404296875f, 0.0f), _2883.params.x))) * _2883.nrm.z; } world_1 = (((_2883.m0.xyz * pos_1.x) + (_2883.m1.xyz * pos_1.y)) + (_2883.m2.xyz * pos_1.z)) + _2883.m3.xyz; float3 _3034 = normal_1 / max(_2973, float3(1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f, 1.0000000133514319600180897396058e-10f)); n = ((_2883.m0.xyz * _3034.x) + (_2883.m1.xyz * _3034.y)) + (_2883.m2.xyz * _3034.z); localOut = _2883.pos; lnrmOut = _2883.nrm; if (_2883.color.w == 30.0f) { float3 _3056 = sqrt(_2973); float _3060 = max(_3056.x, 9.9999999747524270787835121154785e-07f); float3 _3062 = _2883.m0.xyz / float3(_3060, _3060, _3060); float _3066 = max(_3056.y, 9.9999999747524270787835121154785e-07f); float3 _3068 = _2883.m1.xyz / float3(_3066, _3066, _3066); float _3072 = max(_3056.z, 9.9999999747524270787835121154785e-07f); float3 _3074 = _2883.m2.xyz / float3(_3072, _3072, _3072); TaperV _3084 = taperVertex(_2883.pos, taperOf(_3056, _2883.m0.w, _2883.m1.w, _2883.m2.w, _2883.params)); world_1 = ((_2883.m3.xyz + (_3062 * _3084.pos.x)) + (_3068 * _3084.pos.y)) + (_3074 * _3084.pos.z); n = ((_3062 * _3084.nrm.x) + (_3068 * _3084.nrm.y)) + (_3074 * _3084.nrm.z); localOut = _3084.pos; lnrmOut = _3084.info; if (_2883.m3.w > 0.5f) { _2940 = frame_1_m0.hall4.y > 0.5f; } else { _2940 = false; } extra = float3(_2883.m0.w * (_2940 ? 1.0f : (-1.0f)), _2883.m1.w, _2883.m2.w); } if (_2883.m3.xyz.y > 6.0f) { _2942 = _2883.m3.xyz.y < 10.94999980926513671875f; } else { _2942 = false; } if (_2942) { _2944 = distance(_2883.m3.xyz.xz, float2(0.3499999940395355224609375f, -2.599999904632568359375f)) < 1.7999999523162841796875f; } else { _2944 = false; } if (_2944) { if (!(_2883.color.w == 10.0f)) { _2948 = _2883.color.w == 2.0f; } else { _2948 = true; } if (!_2948) { _2950 = _2883.color.w == 5.0f; } else { _2950 = true; } if (!_2950) { _2952 = _2883.color.w == 15.0f; } else { _2952 = true; } _2946 = _2952; } else { _2946 = false; } if (_2946) { float _3189 = (smoothstep(0.1500000059604644775390625f, 0.949999988079071044921875f, frame_1_m0.misc.y) * 0.04500000178813934326171875f) * sin(frame_1_m0.eye.w * 1.35000002384185791015625f); float _3190 = cos(_3189); float _3191 = sin(_3189); float3 _3193 = world_1 - float3(0.3499999940395355224609375f, 11.0f, -2.599999904632568359375f); world_1 = float3((_3190 * _3193.x) - (_3191 * _3193.y), (_3191 * _3193.x) + (_3190 * _3193.y), _3193.z) + float3(0.3499999940395355224609375f, 11.0f, -2.599999904632568359375f); n = float3((_3190 * n.x) - (_3191 * n.y), (_3191 * n.x) + (_3190 * n.y), n.z); } float3 _3224 = sqrt(_2973); _out.position = mul(float4(world_1, 1.0f), frame_1_m0.viewProj); _out.world = world_1; _out.normal = n; _out.local = localOut; _out.lnrm = lnrmOut; _out.color = _2883.color; _out.params = _2883.params; _out.size = float4(_3224, extra.x); float _3252 = max(_3224.x, 9.9999999747524270787835121154785e-07f); _out.ax = float4(_2883.m0.xyz / float3(_3252, _3252, _3252), extra.y); float _3262 = max(_3224.y, 9.9999999747524270787835121154785e-07f); _out.ay = float4(_2883.m1.xyz / float3(_3262, _3262, _3262), extra.z); gl_Position = _out.position; world = _out.world; normal = _out.normal; local = _out.local; lnrm = _out.lnrm; color_1 = _out.color; params_1 = _out.params; size = _out.size; ax = _out.ax; ay = _out.ay; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { pos = stage_input.pos; nrm = stage_input.nrm; m0 = stage_input.m0; m1 = stage_input.m1; m2 = stage_input.m2; m3 = stage_input.m3; color = stage_input.color; params = stage_input.params; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.normal = normal; stage_output.local = local; stage_output.lnrm = lnrm; stage_output.color_1 = color_1; stage_output.params_1 = params_1; stage_output.size = size; stage_output.ax = ax; stage_output.ay = ay; return stage_output; } fs_mainmainôistruct Taper { float R0; float R1; float L; float seed; float burn; float drip; float span; float rho; float dc; }; struct Drip { float ang; float born; float len; float w; float th; }; struct TaperV { float3 pos; float3 nrm; float3 info; }; struct Frame { row_major float4x4 viewProj; float4 eye; float4 light; float4 lightColor; float4 roomLight; float4 moonTravel; float4 moonColor; float4 ambient; float4 win; float4 win2; float4 haze; float4 glow; float4 shaft; float4 desk; float4 deskY; float4 book; float4 room; float4 highlight; float4 misc; float4 discs[12]; float4 hall; float4 hall2; float4 hall3; float4 hall4; float4 candlePos[8]; float4 candleFx[8]; float4 pool; float4 poolColor; float4 door0; float4 door1; }; struct VsIn { float3 pos; float3 nrm; float4 m0; float4 m1; float4 m2; float4 m3; float4 color; float4 params; }; struct VsOut { float4 position; float3 world; float3 normal; float3 local; float3 lnrm; float4 color; float4 params; float4 size; float4 ax; float4 ay; }; struct Surf { float3 albedo; float3 spec; float power; float3 emit; float3 N; float ao; float sheen; float alpha; float wrap; float moonShade; }; struct OwnFlame { float3 pos; float level; }; static const Taper _856 = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const Drip _929 = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const TaperV _1262 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; static const uint _2151[12] = { 23u, 1u, 5u, 21u, 85u, 2u, 6u, 22u, 86u, 13u, 3u, 7u }; static const uint _2152[12] = { 3u, 1u, 2u, 3u, 4u, 1u, 2u, 3u, 4u, 2u, 1u, 2u }; static const OwnFlame _2335 = { float3(0.0f, 0.0f, 0.0f), 0.0f }; static const Surf _2447 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const Surf _2719 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const Surf _2835 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; static const Surf _3021 = { float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; cbuffer frame : register(b0) { Frame frame_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static float3 world; static float3 normal; static float3 local; static float3 lnrm; static float4 color; static float4 params; static float4 size; static float4 ax; static float4 ay; static float4 _2906; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float3 normal : TEXCOORD1; float3 local : TEXCOORD2; float3 lnrm : TEXCOORD3; nointerpolation float4 color : TEXCOORD4; nointerpolation float4 params : TEXCOORD5; nointerpolation float4 size : TEXCOORD6; nointerpolation float4 ax : TEXCOORD7; nointerpolation float4 ay : TEXCOORD8; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _2906 : SV_Target0; }; float3 doorSpace(float3 p) { float2 _1695 = p.xz - frame_1_m0.door0.xy; return float3(frame_1_m0.door1.z + dot(_1695, frame_1_m0.door0.zw), p.y, frame_1_m0.door1.w + dot(_1695, frame_1_m0.door1.xy)); } float slabShade(float3 p, float3 toL) { bool _1572 = false; if (!(p.y > (frame_1_m0.deskY.x - 0.25f))) { _1572 = toL.y <= 9.9999997473787516355514526367188e-05f; } else { _1572 = true; } if (_1572) { return 1.0f; } float _1593 = (frame_1_m0.deskY.x - p.y) / toL.y; if (_1593 > 1.0f) { return 1.0f; } float2 _1600 = p.xz + (toL.xz * _1593); float _1623 = frame_1_m0.deskY.y * (0.300000011920928955078125f + (_1593 * 3.0f)); return smoothstep(-_1623, _1623, -min(min(_1600.x - frame_1_m0.desk.x, frame_1_m0.desk.y - _1600.x), min(_1600.y - frame_1_m0.desk.z, frame_1_m0.desk.w - _1600.y))); } float doorPortal(float3 pw, float3 lw) { float open = 0.0f; float3 _1771 = doorSpace(pw); float3 _1772 = doorSpace(lw); float _1777 = _1771.x - frame_1_m0.hall3.x; float _1779 = _1772.x - frame_1_m0.hall3.x; if ((_1777 * _1779) >= 0.0f) { return 1.0f; } float3 _1788 = _1771 + ((_1772 - _1771) * (_1777 / (_1777 - _1779))); open = smoothstep(-0.039999999105930328369140625f, 0.039999999105930328369140625f, min(_1788.z - frame_1_m0.hall2.z, frame_1_m0.hall2.w - _1788.z)) * smoothstep(-0.039999999105930328369140625f, 0.039999999105930328369140625f, frame_1_m0.hall3.y - _1788.y); float2 _1818 = float2(sin(frame_1_m0.hall2.y), cos(frame_1_m0.hall2.y)) * frame_1_m0.hall3.w; float2 _1821 = _1772.xz - _1771.xz; float _1828 = (_1821.x * _1818.y) - (_1821.y * _1818.x); if (abs(_1828) > 9.9999997473787516355514526367188e-06f) { float2 _1834 = float2(frame_1_m0.hall3.z, frame_1_m0.hall2.z) - _1771.xz; float _1842 = ((_1834.x * _1818.y) - (_1834.y * _1818.x)) / _1828; float _1850 = ((_1834.x * _1821.y) - (_1834.y * _1821.x)) / _1828; float _1856 = _1771.y + ((_1772.y - _1771.y) * _1842); open *= (1.0f - (((((step(0.0f, _1842) * step(_1842, 1.0f)) * smoothstep(-0.02999999932944774627685546875f, 0.02999999932944774627685546875f, _1850)) * (1.0f - smoothstep(0.9700000286102294921875f, 1.0299999713897705078125f, _1850))) * step(frame_1_m0.win2.w, _1856)) * step(_1856, frame_1_m0.hall3.y))); } return open; } float shoulder(float x, float knee, float r) { bool _1473 = false; if (!(x <= knee)) { _1473 = r <= 0.0f; } else { _1473 = true; } if (_1473) { return x; } return knee + (r * log(1.0f + ((x - knee) / r))); } float3 backProject(float3 p, float3 d, float planeZ) { float _624 = (p.z - planeZ) / max(d.z, 9.9999997473787516355514526367188e-05f); return float3(p.xy - (d.xy * _624), _624); } float windowMask(float2 q, float4 win, float4 win2, float soft, float lattice) { bool _455 = false; float bars = 0.0f; bool _452 = false; bool _457 = false; float _467 = (win.y - win.x) * 0.5f; float _468 = win.x + _467; float _469 = max(soft, 9.9999997473787516355514526367188e-05f); if (!(q.x < (win.x - _469))) { _452 = q.x > (win.y + _469); } else { _452 = true; } if (!_452) { _455 = q.y < (win.z - _469); } else { _455 = true; } if (!_455) { _457 = q.y > ((win.w + _467) + _469); } else { _457 = true; } if (_457) { return 0.0f; } bars = 1.0f - smoothstep(win2.y - _469, win2.y + _469, abs(q.x - _468)); bars = max(bars, (1.0f - smoothstep((win2.y * 0.800000011920928955078125f) - _469, (win2.y * 0.800000011920928955078125f) + _469, abs(frac(((q.y - win.z) / win2.z) + 0.5f) - 0.5f) * win2.z)) * step(q.y, win.w)); bars = max(bars, (1.0f - smoothstep((win2.y * 0.699999988079071044921875f) - _469, (win2.y * 0.699999988079071044921875f) + _469, (abs(frac((atan2(q.y - win.w, q.x - _468) / 0.785398185253143310546875f) + 0.5f) - 0.5f) * 0.785398185253143310546875f) * length(q - float2(_468, win.w)))) * step(win.w, q.y)); if (lattice > 0.5f) { float2 _582 = q * 2.599999904632568359375f; bars = max(bars, ((1.0f - smoothstep(0.01200000010430812835693359375f - _469, 0.01200000010430812835693359375f + _469, min(abs(frac(((_582.x + _582.y) * 0.5f) + 0.5f) - 0.5f) / 1.2999999523162841796875f, abs(frac(((_582.x - _582.y) * 0.5f) + 0.5f) - 0.5f) / 1.2999999523162841796875f))) * (1.0f - smoothstep(0.0199999995529651641845703125f, 0.0900000035762786865234375f, _469))) * 0.85000002384185791015625f); } return ((smoothstep(-_469, _469, min(q.x - win.x, win.y - q.x)) * smoothstep(-_469, _469, q.y - win.z)) * ((q.y < win.w) ? 1.0f : smoothstep(-_469, _469, _467 - length(q - float2(_468, win.w))))) * (1.0f - bars); } float moonPatch(float3 p, float3 d, float4 win, float4 win2) { if (p.z < win2.x) { return 0.0f; } float3 _646 = backProject(p, d, win2.x); return windowMask(_646.xy, win, win2, 0.006000000052154064178466796875f + (_646.z * 0.010999999940395355224609375f), 1.0f); } float3 lanternColor() { float _1376 = clamp(frame_1_m0.hall4.x, 0.0f, 1.0f); return lerp(float3(1.0f, 0.60000002384185791015625f, 0.2800000011920928955078125f), float3(0.3400000035762786865234375f, 0.4199999868869781494140625f, 0.62000000476837158203125f), float3(_1376, _1376, _1376)); } float doorSpill(float3 pw) { bool _1880 = false; bool _1882 = false; float3 _1885 = doorSpace(pw); float _1889 = _1885.x - frame_1_m0.hall3.x; if (!(frame_1_m0.hall2.x <= 0.0f)) { _1880 = _1889 < 0.0f; } else { _1880 = true; } if (!_1880) { _1882 = _1885.y > (frame_1_m0.win2.w + 0.0500000007450580596923828125f); } else { _1882 = true; } if (_1882) { return 0.0f; } float _1912 = 0.100000001490116119384765625f + (_1889 * 0.699999988079071044921875f); return ((frame_1_m0.hall2.x * 5.0f) * smoothstep(-_1912, _1912 * 0.300000011920928955078125f, min(_1885.z - frame_1_m0.hall2.z, frame_1_m0.hall2.w - _1885.z))) / (1.0f + ((_1889 / 0.699999988079071044921875f) * (_1889 / 0.699999988079071044921875f))); } float3 doorVec(float3 v) { return float3(dot(v.xz, frame_1_m0.door0.zw), v.y, dot(v.xz, frame_1_m0.door1.xy)); } float3 galleryMoon(float3 p, float3 normal_1) { float _1962 = (2.400000095367431640625f - p.z) / 0.439999997615814208984375f; float2 _1969 = float2(p.x - (0.2800000011920928955078125f * _1962), p.y + (0.85000002384185791015625f * _1962)); float _1974 = round(((-_1969.x) - 10.5f) / 5.5f); float _1978 = (_1969.x + 10.5f) + (5.5f * _1974); return float3(0.0035000001080334186553955078125f, 0.0054999999701976776123046875f, 0.00850000046193599700927734375f) + ((float3(0.119999997317790985107421875f, 0.180000007152557373046875f, 0.2800000011920928955078125f) * ((((((1.0f - smoothstep(0.64999997615814208984375f, 0.7400000095367431640625f, abs(_1978))) * (smoothstep(0.939999997615814208984375f, 1.03999996185302734375f, _1969.y) * (1.0f - smoothstep(5.019999980926513671875f, 5.11999988555908203125f, _1969.y)))) * (smoothstep(0.026000000536441802978515625f, 0.064999997615814208984375f, abs(_1978)) * smoothstep(0.0350000001490116119384765625f, 0.085000000894069671630859375f, abs(_1969.y - 3.0f)))) * step(0.0f, _1974)) * step(_1974, 4.0f)) * step(0.0f, _1962))) * max(dot(normal_1, float3(-0.2807731926441192626953125f, 0.852347195148468017578125f, 0.4412150084972381591796875f)), 0.0f)); } float3 fixedCandle(float3 p, float3 n, float4 source, float radius) { if (source.w <= 9.9999997473787516355514526367188e-05f) { return float3(0.0f, 0.0f, 0.0f); } float3 _2025 = source.xyz - p; float _2026 = dot(_2025, _2025); if (_2026 >= (radius * radius)) { return float3(0.0f, 0.0f, 0.0f); } return (((float3(1.0f, 0.4199999868869781494140625f, 0.119999997317790985107421875f) * (source.w / (_2026 + 0.300000011920928955078125f))) * (1.0f - smoothstep(radius * 0.550000011920928955078125f, radius, sqrt(_2026)))) * (slabShade(p, _2025) * doorPortal(p, source.xyz))) * (max(dot(n, _2025 * rsqrt(max(_2026, 9.9999999747524270787835121154785e-07f))) + 0.2199999988079071044921875f, 0.0f) / 1.2200000286102294921875f); } float3 fixedCandlesSkip(float3 p, float3 n, int skip) { float3 sum = float3(0.0f, 0.0f, 0.0f); int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 8)) { break; } if (i != skip) { sum += fixedCandle(p, n, frame_1_m0.candlePos[min(uint(i), 7u)], max(frame_1_m0.candleFx[min(uint(i), 7u)].y, 0.5f)); } i++; continue; } return sum; } float luma(float3 c) { return dot(c, float3(0.2125999927520751953125f, 0.715200006961822509765625f, 0.072200000286102294921875f)); } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _266 = floor(p); float2 _267 = p - _266; float2 _271 = (_267 * _267) * (float2(3.0f, 3.0f) - (_267 * 2.0f)); int2 _277 = int2(clamp(_266, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_277), hashCell(_277 + int2(1, 0)), _271.x), lerp(hashCell(_277 + int2(0, 1)), hashCell(_277 + int2(1, 1)), _271.x), _271.y) * 2.0f) - 1.0f; } float fbm2(float2 p) { return (vnoise(p) * 0.660000026226043701171875f) + (vnoise((p * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 3.7000000476837158203125f)) * 0.3400000035762786865234375f); } float woodTone(float u, float v, float seed) { float2 _1541 = float2(u, v) + float2(seed * 3.1700000762939453125f, seed * 1.730000019073486328125f); float _1555 = 0.5f + (0.5f * sin(((_1541.y * 46.0f) + ((fbm2(_1541 * float2(1.2999999523162841796875f, 4.0f)) * 0.89999997615814208984375f) * 7.0f)) + (vnoise(_1541 * float2(0.60000002384185791015625f, 9.0f)) * 2.0f))); return (0.7200000286102294921875f + ((0.3400000035762786865234375f * _1555) * _1555)) + (0.180000007152557373046875f * (((vnoise(_1541 * float2(3.0f, 140.0f)) * 0.5f) + 0.5f) - 0.5f)); } float h1(float2 p) { return hashCell(int2(clamp(floor(p), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f)))); } float lineAA(float d, float halfWidth, float fp) { return 1.0f - smoothstep(halfWidth - fp, halfWidth + fp, abs(d)); } float discAO(float3 p, int first, int last) { float ao = 1.0f; uint2 loop_bound = uint2(4294967295u, 4294967295u); int i = first; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < last)) { break; } uint _1663 = min(uint(i), 11u); ao *= (1.0f - (abs(frame_1_m0.discs[_1663].w) * (1.0f - smoothstep(0.550000011920928955078125f, 1.35000002384185791015625f, length(p.xz - frame_1_m0.discs[_1663].xy) / max(frame_1_m0.discs[_1663].z, 9.9999997473787516355514526367188e-05f))))); i++; continue; } return ao; } Taper taperOf(float3 size_1, float seed, float burn, float ratio, float4 prm) { Taper t = _856; t.R0 = 0.5f * size_1.x; t.R1 = t.R0 * clamp(ratio, 0.5f, 1.2000000476837158203125f); t.L = max(size_1.y, 9.9999997473787516355514526367188e-05f); t.seed = seed; t.burn = burn; t.drip = prm.z; t.span = prm.w; t.rho = 0.1500000059604644775390625f * t.R1; t.dc = 0.2599999904632568359375f * t.R1; return t; } float bareRadius(Taper t, float theta, float y) { return lerp(t.R0, t.R1, clamp(y / t.L, 0.0f, 1.0f)) * ((1.0f + (0.01600000075995922088623046875f * sin(((2.0f * theta) + (t.seed * 3.099999904632568359375f)) + (y * 31.0f)))) + (0.00999999977648258209228515625f * sin(((3.0f * theta) - (t.seed * 1.7000000476837158203125f)) + (y * 57.0f)))); } float tHash(float n) { return frac(sin(n) * 43758.546875f); } Drip dripSlot(Taper t, int i) { Drip d = _929; float _932 = float(i) + 1.0f; d.ang = 6.283185482025146484375f * tHash((t.seed * 1.37000000476837158203125f) + (_932 * 12.98980045318603515625f)); d.born = lerp(-0.60000002384185791015625f, 0.949999988079071044921875f, tHash((t.seed * 2.1099998950958251953125f) + (_932 * 78.233001708984375f))); float _951 = tHash((t.seed * 3.0699999332427978515625f) + (_932 * 37.71900177001953125f)); d.len = (t.R1 * (1.60000002384185791015625f + ((9.0f * _951) * _951))) * t.drip; float _964 = tHash((t.seed * 4.309999942779541015625f) + (_932 * 4.580999851226806640625f)); d.w = t.R1 * (0.2599999904632568359375f + (0.20000000298023223876953125f * _964)); d.th = t.R1 * (0.10999999940395355224609375f + (0.12999999523162841796875f * _964)); return d; } float wrapAngle(float a) { return a - (6.283185482025146484375f * floor((a / 6.283185482025146484375f) + 0.5f)); } float dripAt(Taper t, float theta, float y) { float sum = 0.0f; int i = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 6)) { break; } Drip _1015 = dripSlot(t, i); float _1018 = t.burn - _1015.born; float _1019 = smoothstep(0.0f, 0.0350000001490116119384765625f, _1018); float _1032 = (((t.L + (t.span * max(_1018, 0.0f))) - (0.699999988079071044921875f * t.rho)) - y) / max(_1015.len * _1019, 9.9999997473787516355514526367188e-05f); float _1033 = clamp(_1032, 0.0f, 1.0f); float _1038 = wrapAngle(theta - _1015.ang) * t.R1; float _1044 = exp(((-(_1032 - 0.86000001430511474609375f)) * (_1032 - 0.86000001430511474609375f)) * 90.0f); float _1050 = _1015.w * ((1.0f - (0.300000011920928955078125f * _1033)) + (0.60000002384185791015625f * _1044)); sum += ((((_1015.th * ((0.75f + (0.3499999940395355224609375f * _1033)) + (0.89999997615814208984375f * _1044))) * (smoothstep(-0.1500000059604644775390625f, 0.039999999105930328369140625f, _1032) * (1.0f - smoothstep(0.939999997615814208984375f, 1.0499999523162841796875f, _1032)))) * step(9.9999997473787516355514526367188e-05f, _1019)) * exp((-(_1038 * _1038)) / (_1050 * _1050))); i++; continue; } return sum; } float shaftRadius(Taper t, float theta, float y) { return bareRadius(t, theta, y) + dripAt(t, theta, y); } float3 taperShaftNormal(Taper t, float theta, float y) { float _1217 = max(t.L * 0.0040000001899898052215576171875f, 0.00019999999494757503271102905273438f); float _1232 = cos(theta); float _1233 = sin(theta); return normalize((float3(_1232, 0.0f, _1233) - (float3(-_1233, 0.0f, _1232) * (((shaftRadius(t, theta + 0.02999999932944774627685546875f, y) - shaftRadius(t, theta - 0.02999999932944774627685546875f, y)) / (2.0f * 0.02999999932944774627685546875f)) / max(shaftRadius(t, theta, y), 9.9999997473787516355514526367188e-06f)))) - float3(0.0f, (shaftRadius(t, theta, y + _1217) - shaftRadius(t, theta, y - _1217)) / (2.0f * _1217), 0.0f)); } OwnFlame ownFlame(int k) { OwnFlame f = _2335; f.pos = frame_1_m0.light.xyz; f.level = clamp(frame_1_m0.light.w / 0.4600000083446502685546875f, 0.0f, 1.60000002384185791015625f) * step(0.0f, float(k)); if (k > 0) { f.pos = frame_1_m0.candlePos[min(uint(k - 1), 7u)].xyz; f.level = frame_1_m0.candleFx[min(uint(k - 1), 7u)].x; } return f; } float3 nearLight(OwnFlame f, float3 world_1, float3 N, float3 V, float3 albedo, float3 spec, float power, float wrap) { float3 _2378 = f.pos - world_1; float _2379 = dot(_2378, _2378); float3 _2382 = _2378 * rsqrt(max(_2379, 9.9999999392252902907785028219223e-09f)); float _2393 = dot(N, _2382); float _2408 = 1.0f + wrap; return (float3(1.0f, 0.63999998569488525390625f, 0.3300000131130218505859375f) * shoulder((0.4600000083446502685546875f * f.level) / (_2379 + 0.04839999973773956298828125f), frame_1_m0.highlight.x, frame_1_m0.highlight.y)) * (((albedo * max(_2393 + wrap, 0.0f)) / float3(_2408, _2408, _2408)) + (spec * (((pow(max(dot(N, normalize(_2382 + V)), 0.0f), power) * (power + 8.0f)) * 0.039999999105930328369140625f) * step(0.0f, _2393)))); } Surf candleTaper(Surf s0, float3 world_1, float3 lp, float3 info, float4 size_1, float burn, float ratio, float4 prm, float3 AX, float3 AY, float3 AZ, float3 V) { float glow = 0.0f; float drip = 0.0f; float bounce = 0.0f; bool _2452 = false; Surf s = _2447; bool _2456 = false; bool _2450 = false; s = s0; Taper _2464 = taperOf(size_1.xyz, abs(size_1.w), burn, ratio, prm); float _2469 = atan2(lp.z, lp.x); drip = (clamp(info.z / 0.070000000298023223876953125f, 0.0f, 1.0f) * step(0.5f, info.x)) * (1.0f - step(1.5f, info.x)); if (info.x > 0.5f) { _2450 = info.x < 1.5f; } else { _2450 = false; } if (_2450) { _2452 = size_1.w > 0.0f; } else { _2452 = false; } if (_2452) { float3 _2493 = taperShaftNormal(_2464, _2469, lp.y); s.N = normalize(((AX * _2493.x) + (AY * _2493.y)) + (AZ * _2493.z)); drip = clamp(dripAt(_2464, _2469, lp.y) / (0.070000000298023223876953125f * _2464.R1), 0.0f, 1.0f); } int _2514 = int(clamp(floor(prm.x + 0.5f), -2147483648.0f, 2147483520.0f)); OwnFlame _2515 = ownFlame(_2514); float3 _2517 = s.N; float _2522 = pow(1.0f - min(abs(dot(_2517, V)), 1.0f), 1.5f); s.albedo = (((s.albedo * (0.88999998569488525390625f + (0.10999999940395355224609375f * vnoise(float2((_2469 * 5.0f) + _2464.seed, lp.y * 240.0f))))) * (0.939999997615814208984375f + (0.0599999986588954925537109375f * vnoise(float2((_2469 * 2.0f) - _2464.seed, lp.y * 55.0f))))) * (0.9700000286102294921875f + (0.02999999932944774627685546875f * vnoise(float2(_2469 * 37.0f, (lp.y * 800.0f) + _2464.seed))))) * (1.0f + (0.100000001490116119384765625f * drip)); s.sheen = 0.0f; s.wrap = (_2514 == 0) ? 0.0f : 0.449999988079071044921875f; float _2566 = 0.02999999932944774627685546875f + (0.0599999986588954925537109375f * drip); s.spec = float3(_2566, _2566, _2566); s.power = 24.0f + (40.0f * drip); s.alpha = prm.y; float _2579 = exp((-info.y) / (0.89999997615814208984375f * _2464.R1)); float _2584 = exp((-info.y) / (8.0f * _2464.R1)); s.albedo *= lerp(0.7200000286102294921875f, 1.0f, _2584); glow = ((((0.75f * _2579) + (0.100000001490116119384765625f * _2584)) * (0.449999988079071044921875f + (1.0f * _2522))) * (1.0f + ((0.699999988079071044921875f * drip) * _2579))) + ((0.07999999821186065673828125f * _2522) * _2522); if (info.x > 1.5f) { _2456 = info.x < 2.5f; } else { _2456 = false; } if (_2456) { glow = 0.699999988079071044921875f * (0.699999988079071044921875f + (0.60000002384185791015625f * _2522)); s.spec = float3(0.070000000298023223876953125f, 0.070000000298023223876953125f, 0.070000000298023223876953125f); s.power = 60.0f; s.ao = 0.550000011920928955078125f; } else { if (info.x > 2.5f) { float _2626 = length(lp.xz) / max(_2464.R1, 9.9999997473787516355514526367188e-06f); glow = (0.60000002384185791015625f * (0.64999997615814208984375f + (1.2000000476837158203125f * exp(((-_2626) * _2626) * 7.0f)))) * (0.4000000059604644775390625f + (0.60000002384185791015625f * smoothstep(0.0f, 0.60000002384185791015625f, _2515.level))); s.albedo *= 0.300000011920928955078125f; s.spec = float3(0.5f, 0.5f, 0.5f); s.power = 380.0f; s.ao = 0.5f; } } bounce = 0.0500000007450580596923828125f * _2515.level; if (_2514 > 0) { bounce = max(bounce, 0.02199999988079071044921875f * frame_1_m0.candlePos[min(uint(_2514 - 1), 7u)].w); } s.emit = (lerp(float3(0.7400000095367431640625f, 0.2199999988079071044921875f, 0.039999999105930328369140625f), float3(1.0f, 0.430000007152557373046875f, 0.119999997317790985107421875f), float3(_2579, _2579, _2579)) * (glow * _2515.level)) + ((s.albedo * float3(1.0f, 0.63999998569488525390625f, 0.3300000131130218505859375f)) * bounce); if (_2514 > 0) { s.emit += (nearLight(_2515, world_1, s.N, V, s.albedo, s.spec, s.power, 0.0f) * (0.60000002384185791015625f * s.ao)); } return s; } Surf candleMetal(Surf s0, float3 world_1, float4 prm, float3 base, float3 V, bool detailed) { Surf s = _2719; float t = 0.0f; s = s0; t = 0.4000000059604644775390625f * prm.y; if (detailed) { t = smoothstep(0.1500000059604644775390625f, 0.85000002384185791015625f, (vnoise((world_1.xz * 41.0f) + float2(world_1.y * 27.0f, prm.z)) * 0.5f) + 0.5f) * prm.y; } if (prm.x < 0.5f) { s.albedo = base * (0.1599999964237213134765625f - (0.07999999821186065673828125f * t)); s.spec = lerp(float3(0.949999988079071044921875f, 0.660000026226043701171875f, 0.3300000131130218505859375f), float3(0.36000001430511474609375f, 0.2599999904632568359375f, 0.12999999523162841796875f), float3(t, t, t)); s.power = lerp(150.0f, 24.0f, t); } else { if (prm.x < 1.5f) { s.albedo = base * (0.2199999988079071044921875f - (0.07999999821186065673828125f * t)); s.spec = lerp(float3(0.62000000476837158203125f, 0.60000002384185791015625f, 0.569999992847442626953125f), float3(0.2599999904632568359375f, 0.25f, 0.23000000417232513427734375f), float3(t, t, t)); s.power = lerp(70.0f, 16.0f, t); } else { s.albedo = base * (0.60000002384185791015625f - (0.20000000298023223876953125f * t)); float _2780 = 0.20000000298023223876953125f - (0.07999999821186065673828125f * t); s.spec = float3(_2780, _2780, _2780); s.power = 26.0f; } } s.wrap = 0.20000000298023223876953125f; int _2789 = int(clamp(floor(prm.w + 0.5f), -2147483648.0f, 2147483520.0f)); OwnFlame _2790 = ownFlame(_2789); if (_2789 > 0) { s.emit = nearLight(_2790, world_1, s.N, V, float3(0.0f, 0.0f, 0.0f), s.spec, s.power, 0.0f); } s.emit += (((s.spec * float3(0.01400000043213367462158203125f, 0.0089999996125698089599609375f, 0.004999999888241291046142578125f)) * pow(1.0f - clamp(dot(s.N, V), 0.0f, 1.0f), 4.0f)) * (0.4000000059604644775390625f + (0.60000002384185791015625f * clamp(_2790.level, 0.0f, 1.0f)))); return s; } Surf candleSpill(Surf s0, float3 world_1, float4 prm, float3 base, float3 V) { Surf s = _2835; s = s0; int _2841 = int(clamp(floor(prm.y + 0.5f), -2147483648.0f, 2147483520.0f)); OwnFlame _2842 = ownFlame(_2841); s.albedo = base * (0.89999997615814208984375f + (0.100000001490116119384765625f * vnoise((world_1.xz * 300.0f) + float2(prm.x, 0.0f)))); s.spec = float3(0.070000000298023223876953125f, 0.070000000298023223876953125f, 0.070000000298023223876953125f); s.power = 44.0f; s.wrap = 0.300000011920928955078125f; s.sheen = 0.0f; s.alpha = prm.w; s.emit = float3(0.89999997615814208984375f, 0.3499999940395355224609375f, 0.07999999821186065673828125f) * ((prm.z * _2842.level) * 0.0599999986588954925537109375f); if (_2841 > 0) { s.emit += nearLight(_2842, world_1, s.N, V, s.albedo, s.spec, s.power, 0.300000011920928955078125f); } return s; } float fbm3(float2 p) { float s = 0.0f; s = vnoise(p) * 0.569999992847442626953125f; s += (vnoise((p * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 3.7000000476837158203125f)) * 0.2899999916553497314453125f); s += (vnoise((p * 4.070000171661376953125f) + float2(5.30000019073486328125f, 29.8999996185302734375f)) * 0.14000000059604644775390625f); return s; } uint naga_mod(uint lhs, uint rhs) { return lhs % ((rhs == 0u) ? 1u : rhs); } float strokeD(float2 p, float2 a, float2 b) { float2 _2123 = p - a; float2 _2124 = b - a; return length(_2123 - (_2124 * clamp(dot(_2123, _2124) / max(dot(_2124, _2124), 9.9999999392252902907785028219223e-09f), 0.0f, 1.0f))); } float numeral(float2 q, float fpl) { float x = 0.0f; uint i = 0u; uint i_1 = 0u; float dist = 10.0f; float w = 0.0f; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); float _2170 = length(q); float _2173 = atan2(q.x, q.y); float _2176 = (_2173 < 0.0f) ? (_2173 + 6.283185482025146484375f) : _2173; float _2179 = floor((_2176 / 0.52359879016876220703125f) + 0.5f); uint _2183 = naga_mod(uint(clamp(_2179, 0.0f, 4294967040.0f)), 12u); float _2185 = _2176 - (_2179 * 0.52359879016876220703125f); float _2188 = (_2170 * sin(_2185)) / 0.17000000178813934326171875f; float _2194 = ((_2170 * cos(_2185)) - (0.714999973773956298828125f - (0.17000000178813934326171875f * 0.5f))) / 0.17000000178813934326171875f; uint _2195 = min(_2183, 11u); uint _2198 = min(_2183, 11u); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i_1 < 4u)) { break; } if (i_1 < _2152[_2198]) { w = (w + ((((_2151[_2195] >> (2u * i_1)) & 3u) == 1u) ? 0.23999999463558197021484375f : 0.560000002384185791015625f)) + 0.070000000298023223876953125f; } i_1++; continue; } x = ((-w) * 0.5f) + 0.0350000001490116119384765625f; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i < 4u)) { break; } if (i < _2152[_2198]) { uint _2269 = (_2151[_2195] >> (2u * i)) & 3u; float _2271 = (_2269 == 1u) ? 0.23999999463558197021484375f : 0.560000002384185791015625f; float2 _2274 = float2(_2188 - x, _2194); if (_2269 == 1u) { dist = min(dist, strokeD(_2274, float2(_2271 * 0.5f, 0.0599999986588954925537109375f), float2(_2271 * 0.5f, 0.939999997615814208984375f))); } else { if (_2269 == 2u) { dist = min(dist, strokeD(_2274, float2(0.039999999105930328369140625f, 0.939999997615814208984375f), float2(_2271 * 0.5f, 0.0599999986588954925537109375f))); dist = min(dist, strokeD(_2274, float2(_2271 - 0.039999999105930328369140625f, 0.939999997615814208984375f), float2(_2271 * 0.5f, 0.0599999986588954925537109375f))); } else { dist = min(dist, strokeD(_2274, float2(0.039999999105930328369140625f, 0.939999997615814208984375f), float2(_2271 - 0.039999999105930328369140625f, 0.0599999986588954925537109375f))); dist = min(dist, strokeD(_2274, float2(0.039999999105930328369140625f, 0.0599999986588954925537109375f), float2(_2271 - 0.039999999105930328369140625f, 0.939999997615814208984375f))); } } x = (x + _2271) + 0.070000000298023223876953125f; } i++; continue; } return (1.0f - smoothstep(0.07500000298023223876953125f - (fpl / 0.17000000178813934326171875f), 0.07500000298023223876953125f + (fpl / 0.17000000178813934326171875f), dist)) * (step(-0.20000000298023223876953125f, _2194) * step(_2194, 1.2000000476837158203125f)); } float pointGlow(float3 eye, float3 dir, float dist, float3 light, float s2) { float3 _388 = light - eye; float _389 = dot(_388, dir); float _396 = sqrt(max(dot(_388, _388) - (_389 * _389), 0.0f) + max(s2, 9.9999999747524270787835121154785e-07f)); return (atan((dist - _389) / _396) + atan(_389 / _396)) / _396; } float3 atmosphere(float3 col, float3 world_1, float3 eye, float3 light, float4 haze, float4 glow) { float3 _415 = world_1 - eye; float _416 = length(_415); float _417 = max(_416, 9.9999997473787516355514526367188e-06f); float _425 = exp((-haze.w) * max(_416 - 2.7999999523162841796875f, 0.0f)); return ((col * _425) + (haze.xyz * (1.0f - _425))) + (glow.xyz * pointGlow(eye, _415 / float3(_417, _417, _417), _416, light, glow.w)); } float3 doorWorld(float3 q) { float2 _1755 = (frame_1_m0.door0.xy + (frame_1_m0.door0.zw * (q.x - frame_1_m0.door1.z))) + (frame_1_m0.door1.xy * (q.z - frame_1_m0.door1.w)); return float3(_1755.x, q.y, _1755.y); } float ign(float2 p) { return frac(52.98291778564453125f * frac(dot(p, float2(0.067110560834407806396484375f, 0.005837149918079376220703125f)))); } float shaftScatter(float3 eye, float3 dir, float dist, float3 d, float4 win, float4 win2, float jitter, float top) { float tb = 0.0f; int i = 0; float ta = 0.0f; float sum = 0.0f; uint2 loop_bound = uint2(4294967295u, 4294967295u); float _705 = 1.0f / max(d.z, 9.9999997473787516355514526367188e-05f); float2 _712 = eye.xy - (d.xy * ((eye.z - win2.x) * _705)); float2 _718 = dir.xy - (d.xy * (dir.z * _705)); tb = dist; if (dir.z < 0.0f) { tb = min(tb, (win2.x - eye.z) / dir.z); } if (dir.y < 0.0f) { tb = min(tb, (win2.w - eye.y) / dir.y); } float2 _745 = abs(_718); bool2 _747 = bool2(_745.x < float2(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).x, _745.y < float2(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).y); float2 _749 = float2(1.0f, 1.0f) / float2(_747.x ? float2(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).x : _718.x, _747.y ? float2(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f).y : _718.y); float2 _751 = (float2(win.xz) - _712) * _749; float2 _753 = (float2(win.y, top) - _712) * _749; float2 _754 = min(_751, _753); float2 _755 = max(_751, _753); ta = max(ta, max(_754.x, _754.y)); tb = min(tb, min(_755.x, _755.y)); if (tb <= ta) { return 0.0f; } float _774 = (tb - ta) / 5.0f; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(i < 5)) { break; } float _804 = ta + ((float(i) + jitter) * _774); float _812 = ((eye.z + (_804 * dir.z)) - win2.x) * _705; sum += (windowMask(_712 + (_718 * _804), win, win2, 0.008000000379979610443115234375f + (_812 * 0.0030000000260770320892333984375f), 0.0f) * exp((-_812) * 0.0350000001490116119384765625f)); i++; continue; } float2 _829 = _712 + (_718 * ((ta + tb) * 0.5f)); return (sum * _774) * (0.449999988079071044921875f + (0.550000011920928955078125f * smoothstep(-0.60000002384185791015625f, 0.800000011920928955078125f, vnoise((_829 * float2(3.099999904632568359375f, 0.89999997615814208984375f)) + float2(7.099999904632568359375f, 3.2999999523162841796875f)) + (0.5f * vnoise(_829 * float2(9.0f, 2.2000000476837158203125f)))))); } float hgPhase(float cosT, float g) { float _659 = g * g; return (1.0f - _659) / pow(max((1.0f + _659) - ((2.0f * g) * cosT), 9.9999997473787516355514526367188e-05f), 1.5f); } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { bool _3087 = false; bool _3075 = false; float grain = 1.0f; float age = 0.0f; float tone = 1.0f; float tone_1 = 1.0f; bool _3028 = false; bool _3018 = false; bool _3008 = false; float moonVis = 0.0f; float3 Ng = float3(0.0f, 0.0f, 0.0f); bool _3089 = false; bool _3077 = false; float tone_2 = 0.800000011920928955078125f; bool _3059 = false; float g = 0.0f; bool _3041 = false; float u = 0.0f; Surf s = _3021; float3 lantern = float3(0.0f, 0.0f, 0.0f); bool _3000 = false; bool _2989 = false; float outA = 0.0f; bool _3079 = false; float land = 0.0f; bool _3061 = false; float dark = 0.0f; bool _3043 = false; float v = 0.0f; float fu = 0.0f; float3 Ll = float3(0.0f, 1.0f, 0.0f); bool _3002 = false; bool _2991 = false; bool _3093 = false; bool _3081 = false; float lines = 0.0f; float n = 0.5f; bool _3054 = false; bool _3045 = false; bool _3034 = false; float fv = 0.0f; bool _3012 = false; float Ep = 0.0f; bool _2993 = false; bool _3083 = false; float3 color_1 = float3(0.0f, 0.0f, 0.0f); float n_1 = 0.5f; float t = 0.0f; bool _3047 = false; bool _3036 = false; float3 FT = float3(0.0f, 0.0f, 0.0f); bool _3014 = false; float3 Lp = float3(0.0f, 1.0f, 0.0f); bool _2995 = false; float handAlpha = 0.0f; bool _3073 = false; float tone_3 = 0.0f; float ink = 0.0f; float3 N = float3(0.0f, 0.0f, 0.0f); bool _3038 = false; float3 FB = float3(0.0f, 0.0f, 0.0f); bool _3016 = false; bool _3006 = false; bool _2997 = false; VsOut _2883 = { gl_FragCoord, world, normal, local, lnrm, color, params, size, ax, ay }; float3 _3097 = fwidth(_2883.world); float _3103 = max(max(_3097.x, _3097.y), max(_3097.z, 9.9999999747524270787835121154785e-07f)); float3 _3105 = fwidth(_2883.local); float3 _3117 = cross(_2883.ax.xyz, _2883.ay.xyz); Ng = normalize(_2883.normal); float3 _3125 = normalize(frame_1_m0.eye.xyz - _2883.world); if (dot(Ng, _3125) < 0.0f) { if (!(_2883.color.w == 15.0f)) { _2991 = _2883.color.w == 3.0f; } else { _2991 = true; } _2989 = _2991; } else { _2989 = false; } if (_2989) { Ng = -Ng; } float3 _3145 = abs(_2883.lnrm); bool _3147 = _3145.x > 0.5f; if (_3145.y > 0.5f) { _2993 = !_3147; } else { _2993 = false; } if (!_3147) { _2995 = !_2993; } else { _2995 = false; } if (!(_2883.color.w == 30.0f)) { _2997 = _2883.color.w == 32.0f; } else { _2997 = true; } float3 _3181 = frame_1_m0.light.xyz - _2883.world; float _3182 = dot(_3181, _3181); float3 _3185 = _3181 * rsqrt(max(_3182, 9.9999999392252902907785028219223e-09f)); float3 _3187 = doorSpace(_2883.world); bool _3192 = _3187.x < (frame_1_m0.hall3.x - 0.0500000007450580596923828125f); float _3201 = slabShade(_2883.world, _3181) * (_3192 ? doorPortal(_2883.world, frame_1_m0.light.xyz) : 1.0f); float _3213 = shoulder(frame_1_m0.light.w / (_3182 + frame_1_m0.lightColor.w), frame_1_m0.highlight.x, frame_1_m0.highlight.y) * _3201; float _3220 = (frame_1_m0.light.w / (_3182 + frame_1_m0.roomLight.w)) * _3201; float3 _3224 = -frame_1_m0.moonTravel.xyz; if (dot(Ng, _3224) > 0.0f) { _3000 = (frame_1_m0.moonColor.x + frame_1_m0.moonColor.z) > 9.9999997473787516355514526367188e-06f; } else { _3000 = false; } if (_3000) { _3002 = !_3192; } else { _3002 = false; } if (_3002) { moonVis = moonPatch(_2883.world, frame_1_m0.moonTravel.xyz, frame_1_m0.win, frame_1_m0.win2) * slabShade(_2883.world, _3224 * 40.0f); } float3 _3271 = float3((frame_1_m0.win.x + frame_1_m0.win.y) * 0.5f, (frame_1_m0.win.z + frame_1_m0.misc.w) * 0.5f, frame_1_m0.win2.x) - _2883.world; float _3272 = length(_3271); float _3285 = (frame_1_m0.moonTravel.w / (1.0f + ((_3272 * _3272) / (frame_1_m0.misc.z * frame_1_m0.misc.z)))) * (_3192 ? 0.0f : 1.0f); float _3287 = max(_3272, 9.9999997473787516355514526367188e-05f); if (frame_1_m0.pool.w > 0.0f) { _3006 = !_3192; } else { _3006 = false; } if (_3006) { float3 _3308 = frame_1_m0.pool.xyz - _2883.world; float _3309 = dot(_3308, _3308); Lp = _3308 * rsqrt(max(_3309, 9.9999999392252902907785028219223e-09f)); float _3320 = (frame_1_m0.win2.x - _2883.world.z) / min(_3308.z, -9.9999997473787516355514526367188e-05f); if (_3320 > 0.0f) { _3008 = _3320 < 1.0f; } else { _3008 = false; } if (_3008) { Ep = ((frame_1_m0.pool.w / max(_3309, 9.9999997473787516355514526367188e-05f)) * windowMask(_2883.world.xy + (_3308.xy * _3320), frame_1_m0.win, frame_1_m0.win2, 0.006000000052154064178466796875f + (max(_2883.world.z - frame_1_m0.win2.x, 0.0f) * frame_1_m0.poolColor.w), 1.0f)) * slabShade(_2883.world, _3308); } } if (frame_1_m0.hall.w > 0.0f) { float3 _3368 = frame_1_m0.hall.xyz - _2883.world; float _3369 = dot(_3368, _3368); Ll = _3368 * rsqrt(max(_3369, 9.9999999392252902907785028219223e-09f)); lantern = lanternColor() * ((frame_1_m0.hall.w / (_3369 + 0.300000011920928955078125f)) * doorPortal(_2883.world, frame_1_m0.hall.xyz)); } float3 _3388 = lanternColor() * doorSpill(_2883.world); float3 _3391 = galleryMoon(_3187, doorVec(Ng)); bool3 _3393 = bool3(_3192, _3192, _3192); float3 _3392 = float3(_3393.x ? _3391.x : float3(0.0f, 0.0f, 0.0f).x, _3393.y ? _3391.y : float3(0.0f, 0.0f, 0.0f).y, _3393.z ? _3391.z : float3(0.0f, 0.0f, 0.0f).z); float3 _3397 = fixedCandlesSkip(_2883.world, Ng, (_2997 ? int(clamp(((_2883.color.w == 30.0f) ? _2883.params.x : _2883.params.y) + 0.5f, -2147483648.0f, 2147483520.0f)) : 0) - 1); float3 _3460 = ((((((((_3397 + _3392) + ((lantern * max(dot(Ng, Ll) + 0.300000011920928955078125f, 0.0f)) / float3(1.2999999523162841796875f, 1.2999999523162841796875f, 1.2999999523162841796875f))) + _3388) + (((frame_1_m0.lightColor.xyz * _3213) * max(dot(Ng, _3185) + 0.3499999940395355224609375f, 0.0f)) / float3(1.35000002384185791015625f, 1.35000002384185791015625f, 1.35000002384185791015625f))) + ((frame_1_m0.roomLight.xyz * _3220) * (0.5f + (0.5f * dot(Ng, _3185))))) + ((frame_1_m0.moonColor.xyz * moonVis) * max(dot(Ng, _3224), 0.0f))) + (frame_1_m0.poolColor.xyz * (Ep * max(dot(Ng, Lp), 0.0f)))) + (frame_1_m0.moonColor.xyz * (_3285 * (0.550000011920928955078125f + (0.449999988079071044921875f * dot(Ng, _3271 / float3(_3287, _3287, _3287))))))) + frame_1_m0.ambient.xyz; if (!((luma(_3460) * frame_1_m0.highlight.w) > frame_1_m0.highlight.z)) { _3012 = _2883.color.w == 4.0f; } else { _3012 = true; } if (!_3012) { _3014 = _2883.color.w == 19.0f; } else { _3014 = true; } if (!_3014) { _3016 = _2883.color.w == 15.0f; } else { _3016 = true; } if (!_3016) { _3018 = _2883.color.w == 12.0f; } else { _3018 = true; } s.albedo = _2883.color.xyz; s.spec = float3(0.0f, 0.0f, 0.0f); s.power = 16.0f; s.emit = float3(0.0f, 0.0f, 0.0f); s.N = Ng; s.ao = 1.0f; s.sheen = 0.0f; s.alpha = 1.0f; s.wrap = 0.3499999940395355224609375f; s.moonShade = 1.0f; FT = _2883.ax.xyz; FB = _2883.ay.xyz; if (_3147) { fu = _2883.local.z * _2883.size.xyz.z; fv = _2883.local.y * _2883.size.xyz.y; FT = _3117; FB = _2883.ay.xyz; } else { if (_2993) { fu = _2883.local.x * _2883.size.xyz.x; fv = _2883.local.z * _2883.size.xyz.z; FT = _2883.ax.xyz; FB = _3117; } else { fu = _2883.local.x * _2883.size.xyz.x; fv = _2883.local.y * _2883.size.xyz.y; FT = _2883.ax.xyz; FB = _2883.ay.xyz; } } if (!(_2883.color.w == 0.0f)) { _3028 = _2883.color.w == 16.0f; } else { _3028 = true; } if (_3028) { bool _3545 = (_3147 ? _2883.size.xyz.z : _2883.size.xyz.x) >= (_3147 ? _2883.size.xyz.y : (_2993 ? _2883.size.xyz.z : _2883.size.xyz.y)); u = _3545 ? fu : fv; v = _3545 ? fv : fu; if (_2883.params.w > 1.5f) { _3034 = _2883.params.w < 2.5f; } else { _3034 = false; } if (_3034) { u = _2883.world.y; v = fu; } if (_2883.params.w > 0.5f) { _3036 = _2883.params.w < 1.5f; } else { _3036 = false; } if (_3036) { _3038 = _2993; } else { _3038 = false; } if (_3038) { u = _2883.world.x; v = _2883.world.z; } if (_3018) { tone_1 = woodTone(u * _2883.params.x, v * _2883.params.x, _2883.params.y); if (_2883.params.w > 1.5f) { _3041 = _2883.params.w < 2.5f; } else { _3041 = false; } if (_3041) { float _3601 = floor(v / 0.89999997615814208984375f); tone_1 *= (0.819999992847442626953125f + (0.300000011920928955078125f * h1(float2(_3601, 3.0f + _2883.params.y)))); tone_1 *= lerp(0.3499999940395355224609375f, 1.0f, lineAA(v - ((_3601 + 0.5f) * 0.89999997615814208984375f), (0.89999997615814208984375f * 0.5f) - 0.0199999995529651641845703125f, _3103)); } } else { tone_1 = 0.89999997615814208984375f; } s.albedo = _2883.color.xyz * tone_1; float _3625 = 0.0350000001490116119384765625f + (0.0900000035762786865234375f * _2883.params.z); s.spec = float3(_3625, _3625, _3625); s.power = 18.0f + (40.0f * _2883.params.z); if (_2883.color.w == 16.0f) { s.albedo = _2883.color.xyz * (0.85000002384185791015625f + (0.300000011920928955078125f * (_3018 ? ((vnoise(_2883.world.xz * 90.0f) * 0.5f) + 0.5f) : 0.0f))); float _3664 = min(min(fu + (_2883.size.xyz.x * 0.5f), (_2883.size.xyz.x * 0.5f) - fu), min(fv + (_2883.size.xyz.z * 0.5f), (_2883.size.xyz.z * 0.5f) - fv)); float _3674 = max(lineAA(_3664 - _2883.params.x, 0.008000000379979610443115234375f, _3103), lineAA((_3664 - _2883.params.x) - 0.0350000001490116119384765625f, 0.0040000001899898052215576171875f, _3103)) * float(_2993); float _3677 = _3674 * 0.800000011920928955078125f; s.albedo = lerp(s.albedo, float3(0.300000011920928955078125f, 0.20000000298023223876953125f, 0.0599999986588954925537109375f), float3(_3677, _3677, _3677)); s.spec = lerp(float3(0.039999999105930328369140625f, 0.039999999105930328369140625f, 0.039999999105930328369140625f), float3(0.75f, 0.519999980926513671875f, 0.20000000298023223876953125f), float3(_3674, _3674, _3674)); s.power = lerp(22.0f, 60.0f, _3674); } if (_2883.params.w > 0.5f) { _3043 = _2883.params.w < 1.5f; } else { _3043 = false; } if (_3043) { _3045 = _2993; } else { _3045 = false; } if (_3045) { s.ao = lerp(0.300000011920928955078125f, 1.0f, smoothstep(0.0f, max(frame_1_m0.book.w, 9.9999997473787516355514526367188e-05f), length(max(max(float2(frame_1_m0.book.x, -frame_1_m0.book.z) - _2883.world.xz, _2883.world.xz - float2(frame_1_m0.book.y, frame_1_m0.book.z)), float2(0.0f, 0.0f))))) * discAO(_2883.world, 0, 5); } } else { if (_2883.color.w == 1.0f) { if (_2995) { _3047 = _2883.lnrm.z > 0.0f; } else { _3047 = false; } if (_3047) { float _3747 = _2883.local.x * 2.0f; N = normalize(Ng + (FT * (_3747 * 0.85000002384185791015625f))); if (_3018) { float _3774 = _2883.params.x * 1.7000000476837158203125f; tone = (0.86000001430511474609375f + (0.2199999988079071044921875f * ((vnoise((float2(fu, fv) * 160.0f) + float2(_2883.params.xx)) * 0.5f) + 0.5f))) + (0.100000001490116119384765625f * vnoise(float2(fu * 6.0f, fv * 3.0f) + float2(_3774, _3774))); float _3781 = (_2883.local.y + 0.5f) * _2883.size.xyz.y; if (_2883.params.z > 0.449999988079071044921875f) { float _3788 = 4.0f + floor(_2883.params.z * 3.0f); float _3790 = (_2883.size.xyz.y * 0.7799999713897705078125f) / _3788; float _3791 = _2883.size.xyz.y * 0.10999999940395355224609375f; float _3799 = _3781 - (_3791 + (clamp(floor(((_3781 - _3791) / _3790) + 0.5f), 0.0f, _3788) * _3790)); float _3802 = 1.0f - smoothstep(0.01200000010430812835693359375f, 0.02999999932944774627685546875f, abs(_3799)); N = normalize(N + (FB * ((clamp((-_3799) / 0.02999999932944774627685546875f, -1.0f, 1.0f) * _3802) * 0.89999997615814208984375f))); tone *= (1.0f + (0.25f * _3802)); g = max(g, lineAA(abs(_3799) - 0.04500000178813934326171875f, 0.006000000052154064178466796875f, _3103) * _2883.params.y); float _3834 = (step(_3791 + (_3790 * (_3788 - 2.0f)), _3781) * step(_3781, _3791 + (_3790 * (_3788 - 1.0f)))) * step(abs(_3747), 0.800000011920928955078125f); dark = _3834 * (0.449999988079071044921875f + (0.4000000059604644775390625f * h1(float2(_2883.params.x, 9.0f)))); g = max(g, (((_3834 * lineAA(abs(_3781 - (_3791 + (_3790 * (_3788 - 1.5f)))), 0.01400000043213367462158203125f, _3103)) * step(0.5f, frac((_2883.local.x * 7.0f) + (h1(float2(_2883.params.x, floor(_3781 * 40.0f))) * 3.0f)))) * step(0.300000011920928955078125f, _2883.params.y)) * step(abs(_3747), 0.62000000476837158203125f)); } else { float _3867 = abs(_3781 - (_2883.size.xyz.y * 0.800000011920928955078125f)); g = max(g, ((lineAA(_3867, 0.017999999225139617919921875f, _3103) * step(abs(_3747), 0.699999988079071044921875f)) * step(0.5f, frac((_2883.local.x * 6.0f) + _2883.params.x))) * _2883.params.y); g = max(g, lineAA(_3781 - (_2883.size.xyz.y * 0.930000007152557373046875f), 0.006000000052154064178466796875f, _3103) * _2883.params.y); g = max(g, lineAA(_3781 - (_2883.size.xyz.y * 0.070000000298023223876953125f), 0.006000000052154064178466796875f, _3103) * _2883.params.y); dark = (step(abs(_3867), 0.0599999986588954925537109375f) * 0.25f) * step(0.5f, _2883.params.z * 2.0f); } float _3900 = smoothstep(0.699999988079071044921875f, 1.0f, abs(_3747)); tone = (tone * (1.0f - (0.1500000059604644775390625f * _3900))) + ((0.180000007152557373046875f * _3900) * _2883.params.w); float _3913 = _2883.params.x * 5.0f; tone += ((smoothstep(0.550000011920928955078125f, 0.949999988079071044921875f, vnoise(float2(fu * 30.0f, fv * 12.0f) + float2(_3913, _3913))) * _2883.params.w) * 0.25f); } s.albedo = lerp((_2883.color.xyz * tone) * (1.0f - dark), float3(0.4600000083446502685546875f, 0.300000011920928955078125f, 0.0900000035762786865234375f) * 0.3499999940395355224609375f, float3(g, g, g)); float _3933 = 0.02999999932944774627685546875f + (0.0500000007450580596923828125f * _2883.params.z); s.spec = lerp(float3(_3933, _3933, _3933), float3(1.0f, 0.7200000286102294921875f, 0.319999992847442626953125f), float3(g, g, g)); s.power = lerp(14.0f + (20.0f * _2883.params.z), 70.0f, g); s.N = N; } else { if (_2993) { _3054 = _2883.lnrm.y > 0.0f; } else { _3054 = false; } if (_3054) { float _3962 = smoothstep(0.7200000286102294921875f, 0.7799999713897705078125f, abs(_2883.local.x) * 2.0f) + smoothstep(0.4000000059604644775390625f, 0.439999997615814208984375f, _2883.local.z); float _3973 = _3018 ? ((vnoise(float2((_2883.local.x * _2883.size.xyz.x) * 260.0f, _2883.local.z * 3.0f)) * 0.5f) + 0.5f) : 0.5f; float _3976 = step(0.819999992847442626953125f, _2883.params.y); float _3979 = clamp(_3962, 0.0f, 1.0f); s.albedo = lerp(lerp(lerp(float3(0.1599999964237213134765625f, 0.12999999523162841796875f, 0.085000000894069671630859375f), float3(0.23999999463558197021484375f, 0.20000000298023223876953125f, 0.12999999523162841796875f), float3(_3973, _3973, _3973)), float3(0.4000000059604644775390625f, 0.2700000107288360595703125f, 0.07999999821186065673828125f), float3(_3976, _3976, _3976)), _2883.color.xyz, float3(_3979, _3979, _3979)); float _3986 = (_3976 * 0.5f) * (1.0f - clamp(_3962, 0.0f, 1.0f)); s.spec = float3(_3986, _3986, _3986); s.power = 40.0f; s.ao = 0.550000011920928955078125f; s.moonShade = 0.300000011920928955078125f; } else { s.albedo = _2883.color.xyz * 0.800000011920928955078125f; s.ao = 0.699999988079071044921875f; } } } else { if (_2883.color.w == 2.0f) { if (_3018) { float _4006 = _2883.world.y * 7.0f; t = smoothstep(0.100000001490116119384765625f, 0.800000011920928955078125f, (vnoise(((_2883.world.xz * 11.0f) + float2(_4006, _4006)) + float2(_2883.params.yy)) * 0.5f) + 0.5f) * _2883.params.x; } s.albedo = _2883.color.xyz * (0.20000000298023223876953125f - (0.100000001490116119384765625f * t)); s.spec = lerp(float3(1.2000000476837158203125f, 0.86000001430511474609375f, 0.4199999868869781494140625f), float3(0.4000000059604644775390625f, 0.300000011920928955078125f, 0.1599999964237213134765625f), float3(t, t, t)); s.power = lerp(34.0f, 14.0f, t); } else { if (_2883.color.w == 3.0f) { if (_3018) { _3059 = _2993; } else { _3059 = false; } if (_3059) { float _4041 = fv / 0.04500000178813934326171875f; float _4042 = floor(_4041); float _4048 = fu + (((frac(_4041) - 0.5f) * 0.04500000178813934326171875f) * 0.3499999940395355224609375f); ink = (((((1.0f - smoothstep(0.0f, 0.07999999821186065673828125f + (_3103 / 0.04500000178813934326171875f), (abs(frac(_4041) - 0.5f) - 0.100000001490116119384765625f) - (0.0599999986588954925537109375f * vnoise(float2(fu * 90.0f, _4042))))) * smoothstep(0.100000001490116119384765625f, 0.3499999940395355224609375f, (vnoise(float2(_4048 * 26.0f, (_4042 * 3.099999904632568359375f) + _2883.params.x)) * 0.5f) + 0.5f)) * (0.550000011920928955078125f + (0.449999988079071044921875f * vnoise(float2(_4048 * 260.0f, _4042 * 7.0f))))) * ((step((-_2883.size.xyz.x) * 0.36000001430511474609375f, fu) * step(fu, _2883.size.xyz.x * (0.300000011920928955078125f + (0.07999999821186065673828125f * h1(float2(_4042, _2883.params.x + 3.0f)))))) * step(abs(fv), _2883.size.xyz.z * 0.4000000059604644775390625f))) * _2883.params.y) * step(0.119999997317790985107421875f, h1(float2(_4042, _2883.params.x))); age = ((1.0f - smoothstep(0.0f, 0.0599999986588954925537109375f, min((_2883.size.xyz.x * 0.5f) - abs(fu), (_2883.size.xyz.z * 0.5f) - abs(fv)) + (0.0199999995529651641845703125f * vnoise(float2(fu, fv) * 30.0f)))) * 0.5f) + (smoothstep(0.550000011920928955078125f, 0.89999997615814208984375f, vnoise((float2(fu, fv) * 9.0f) + float2(_2883.params.xx))) * 0.25f); } float _4147 = ink * 0.699999988079071044921875f; s.albedo = lerp(_2883.color.xyz * (1.0f - (age * 0.449999988079071044921875f)), float3(0.0500000007450580596923828125f, 0.02999999932944774627685546875f, 0.0199999995529651641845703125f), float3(_4147, _4147, _4147)); s.spec = float3(0.0199999995529651641845703125f, 0.0199999995529651641845703125f, 0.0199999995529651641845703125f); } else { if (_2883.color.w == 4.0f) { float _4163 = windowMask(_2883.world.xy, frame_1_m0.win, frame_1_m0.win2, max(_3103, 0.0040000001899898052215576171875f), 1.0f); s.emit = (frame_1_m0.moonColor.xyz * (((0.0900000035762786865234375f + (0.07999999821186065673828125f * ((vnoise(_2883.world.xy * float2(3.0f, 1.2000000476837158203125f)) * 0.5f) + 0.5f))) * (0.60000002384185791015625f + (0.4000000059604644775390625f * smoothstep(frame_1_m0.win.z, frame_1_m0.misc.w, _2883.world.xy.y)))) + (0.4199999868869781494140625f * exp((-length(_2883.world.xy - float2(frame_1_m0.win.x + ((frame_1_m0.win.y - frame_1_m0.win.x) * 0.300000011920928955078125f), frame_1_m0.misc.w - 0.60000002384185791015625f))) * 0.89999997615814208984375f)))) * _4163; s.albedo = float3(0.0199999995529651641845703125f, 0.017999999225139617919921875f, 0.01600000075995922088623046875f) * (1.0f - _4163); float _4206 = 0.300000011920928955078125f * _4163; s.spec = float3(_4206, _4206, _4206); s.power = 90.0f; } else { if (_2883.color.w == 30.0f) { s = candleTaper(s, _2883.world, _2883.local, _2883.lnrm, _2883.size, _2883.ax.w, _2883.ay.w, _2883.params, _2883.ax.xyz, _2883.ay.xyz, _3117, _3125); } else { if (_2883.color.w == 31.0f) { s = candleMetal(s, _2883.world, _2883.params, _2883.color.xyz, _3125, _3018); } else { if (_2883.color.w == 32.0f) { s = candleSpill(s, _2883.world, _2883.params, _2883.color.xyz, _3125); } else { if (_2883.color.w == 5.0f) { s.albedo = _2883.color.xyz; s.sheen = 0.25f; if (_2883.params.y > 0.5f) { float _4253 = max(frame_1_m0.light.y - _2883.world.y, 0.0f); float _4257 = min(abs(dot(Ng, _3125)), 1.0f); s.emit = float3(1.0f, 0.4600000083446502685546875f, 0.14000000059604644775390625f) * (frame_1_m0.light.w * (((exp((-_4253) / 0.0599999986588954925537109375f) * 1.10000002384185791015625f) + (exp((-_4253) / 0.2199999988079071044921875f) * 0.100000001490116119384765625f)) * (0.449999988079071044921875f + (0.550000011920928955078125f * pow(1.0f - _4257, 2.0f))))); s.albedo = _2883.color.xyz * (0.180000007152557373046875f + (0.20000000298023223876953125f * _4257)); s.wrap = 0.0f; s.alpha = _2883.params.w; } } else { if (!(_2883.color.w == 6.0f)) { _3061 = _2883.color.w == 18.0f; } else { _3061 = true; } if (_3061) { if (_3018) { n = (vnoise((float2(fu, fv) * 9.0f) + float2(_2883.params.xx)) * 0.5f) + 0.5f; } s.albedo = (_2883.color.xyz * (0.800000011920928955078125f + (0.3499999940395355224609375f * n))) * (1.0f + ((_2883.params.y * 0.3499999940395355224609375f) * smoothstep(0.60000002384185791015625f, 0.89999997615814208984375f, n))); s.sheen = 0.89999997615814208984375f; if (_2883.color.w == 18.0f) { s.emit = (_2883.color.xyz * frame_1_m0.moonColor.xyz) * (0.119999997317790985107421875f + (0.07999999821186065673828125f * max(dot(s.N, _3125), 0.0f))); float _4342 = (1.0f - smoothstep(0.008000000379979610443115234375f, 0.0199999995529651641845703125f, abs(_2883.local.y + 0.4699999988079071044921875f))) * 0.699999988079071044921875f; s.albedo = lerp(s.albedo, float3(0.3499999940395355224609375f, 0.23999999463558197021484375f, 0.100000001490116119384765625f), float3(_4342, _4342, _4342)); } } else { if (_2883.color.w == 7.0f) { if (_3018) { n_1 = (fbm3(float2(fu, fv) * float2(1.2999999523162841796875f, _2993 ? 1.2999999523162841796875f : 0.699999988079071044921875f)) * 0.5f) + 0.5f; n_1 -= (_2993 ? 0.0f : (0.119999997317790985107421875f * smoothstep(0.20000000298023223876953125f, 0.89999997615814208984375f, vnoise(float2(fu * 5.0f, fv * 0.3499999940395355224609375f))))); } s.albedo = _2883.color.xyz * (0.75f + (0.4000000059604644775390625f * n_1)); } else { if (_2883.color.w == 8.0f) { float _4385 = floor(_2883.world.x / _2883.params.x); float _4389 = 5.0f + (4.0f * h1(float2(_4385, 7.0f))); float _4395 = _2883.world.z + (h1(float2(_4385, 13.0f)) * _4389); float _4397 = floor(_4395 / _4389); float2 _4398 = float2(_4385, _4397); tone_3 = 0.7200000286102294921875f + (0.4000000059604644775390625f * h1(_4398 + float2(_2883.params.yy))); if (_3018) { grain = woodTone(_2883.world.z * 0.800000011920928955078125f, (_2883.world.x * 0.800000011920928955078125f) + (_4385 * 3.7000000476837158203125f), h1(_4398) * 20.0f); float _4433 = _4395 - (_4397 * _4389); tone_3 *= (1.0f - (0.60000002384185791015625f * (1.0f - smoothstep(0.01400000043213367462158203125f, 0.01400000043213367462158203125f + _3103, length(float2(abs((frac(_2883.world.x / _2883.params.x) - 0.5f) * _2883.params.x) - (_2883.params.x * 0.25f), min(_4433, _4389 - _4433) - 0.100000001490116119384765625f)))))); } s.albedo = ((_2883.color.xyz * tone_3) * grain) * lerp(0.180000007152557373046875f, 1.0f, lineAA(_2883.world.x - ((_4385 + 0.5f) * _2883.params.x), (_2883.params.x * 0.5f) - 0.01200000010430812835693359375f, _3103) * lineAA(_4395 - ((_4397 + 0.5f) * _4389), (_4389 * 0.5f) - 0.00999999977648258209228515625f, _3103)); s.spec = float3(0.02999999932944774627685546875f, 0.02999999932944774627685546875f, 0.02999999932944774627685546875f); s.power = 12.0f; s.ao = lerp(0.449999988079071044921875f, 1.0f, smoothstep(0.0f, 1.60000002384185791015625f, min(min(_2883.world.x - frame_1_m0.room.x, frame_1_m0.room.y - _2883.world.x), min(_2883.world.z - frame_1_m0.room.z, frame_1_m0.room.w - _2883.world.z)))) * discAO(_2883.world, 5, 12); } else { if (_2883.color.w == 9.0f) { float _4500 = _2993 ? fv : fu; float _4505 = _2883.world.y - frame_1_m0.win2.w; float _4506 = _4500 / _2883.params.x; float _4507 = _4505 / _2883.params.y; float _4517 = (_2883.params.x * 0.5f) - (abs(frac(_4506) - 0.5f) * _2883.params.x); float _4519 = (_2883.params.y * 0.5f) - (abs(frac(_4507) - 0.5f) * _2883.params.y); float _4520 = min(_4517, _4519); if (_3018) { tone_2 = woodTone((_4519 < _4517) ? _4500 : _4505, (_4519 < _4517) ? _4505 : _4500, _2883.params.z) * 0.85000002384185791015625f; float3 _4545 = FB * sign(frac(_4507) - 0.5f); float3 _4547 = FT * sign(frac(_4506) - 0.5f); bool _4548 = _4517 < _4519; bool3 _4550 = bool3(_4548, _4548, _4548); s.N = normalize(Ng + (float3(_4550.x ? _4547.x : _4545.x, _4550.y ? _4547.y : _4545.y, _4550.z ? _4547.z : _4545.z) * ((smoothstep(0.23999999463558197021484375f, 0.36000001430511474609375f, _4520) * (1.0f - smoothstep(0.36000001430511474609375f, 0.5f, _4520))) * 0.60000002384185791015625f))); } s.albedo = (_2883.color.xyz * tone_2) * lerp(1.0f, 0.800000011920928955078125f, 1.0f - smoothstep(0.23999999463558197021484375f, 0.23999999463558197021484375f + (_3103 * 2.0f), _4520)); s.spec = float3(0.0500000007450580596923828125f, 0.0500000007450580596923828125f, 0.0500000007450580596923828125f); s.power = 20.0f; } else { if (_2883.color.w == 10.0f) { s.albedo = _2883.color.xyz; s.spec = float3(0.119999997317790985107421875f, 0.119999997317790985107421875f, 0.119999997317790985107421875f); s.power = 24.0f; } else { if (_2883.color.w == 11.0f) { float3 _4575 = normalize(_2883.local); float _4578 = atan2(_4575.z, _4575.x); float _4581 = asin(clamp(_4575.y, -1.0f, 1.0f)); if (_3018) { float _4595 = fbm3(float2((_4578 * 1.60000002384185791015625f) + _2883.params.x, _4581 * 2.400000095367431640625f)) + (0.25f * vnoise(float2(_4578 * 6.0f, _4581 * 8.0f))); land = smoothstep(0.0500000007450580596923828125f, 0.119999997317790985107421875f, _4595); lines = max(lineAA(_4595 - 0.085000000894069671630859375f, 0.0199999995529651641845703125f, 0.00999999977648258209228515625f) * 0.89999997615814208984375f, max(lineAA(frac((_4578 / 0.52359998226165771484375f) + 0.5f) - 0.5f, 0.0199999995529651641845703125f, 0.0199999995529651641845703125f), lineAA(frac((_4581 / 0.52359998226165771484375f) + 0.5f) - 0.5f, 0.0199999995529651641845703125f, 0.0199999995529651641845703125f)) * 0.5f); } s.albedo = lerp(_2883.color.xyz, _2883.color.xyz * float3(0.5f, 0.449999988079071044921875f, 0.300000011920928955078125f), float3(land, land, land)) * (1.0f - (0.800000011920928955078125f * lines)); s.spec = float3(0.119999997317790985107421875f, 0.119999997317790985107421875f, 0.119999997317790985107421875f); s.power = 40.0f; } else { if (_2883.color.w == 19.0f) { float2 _4633 = float2(_3147 ? _2883.local.z : _2883.local.x, _2883.local.y) * 2.0f; s.albedo = float3(0.004999999888241291046142578125f, 0.004999999888241291046142578125f, 0.004999999888241291046142578125f); s.emit = ((((float3(0.0040000001899898052215576171875f, 0.008000000379979610443115234375f, 0.01400000043213367462158203125f) * (0.699999988079071044921875f + (0.300000011920928955078125f * vnoise(_4633 * 3.0f)))) + (float3(0.0500000007450580596923828125f, 0.070000000298023223876953125f, 0.100000001490116119384765625f) * ((1.0f - smoothstep(0.115000002086162567138671875f, 0.12800000607967376708984375f, length(_4633 - float2(0.20000000298023223876953125f, 0.36000001430511474609375f)))) * (1.0f - step(0.5f, _2883.params.x))))) * (1.0f - smoothstep(0.939999997615814208984375f, 1.0f, length(float2(_4633.x, max(_4633.y - 0.2800000011920928955078125f, 0.0f) * 1.37999999523162841796875f))))) * (1.0f - clamp((1.0f - smoothstep(0.017999999225139617919921875f, 0.03599999845027923583984375f, abs(_4633.x))) + (1.0f - smoothstep(0.017999999225139617919921875f, 0.039999999105930328369140625f, abs(_4633.y + 0.119999997317790985107421875f))), 0.0f, 1.0f))) * (1.0f - (0.550000011920928955078125f * (1.0f - smoothstep(0.02500000037252902984619140625f, 0.0599999986588954925537109375f, abs(frac((_4633.x * 3.0f) + (_4633.y * 3.0f)) - 0.5f))))); s.spec = float3(0.119999997317790985107421875f, 0.119999997317790985107421875f, 0.119999997317790985107421875f); s.power = 32.0f; } else { if (_2883.color.w == 12.0f) { if (_2883.lnrm.y > 0.5f) { float2 _4704 = float2(_2883.local.x, -_2883.local.z) * 2.0f; float _4705 = length(_4704); float _4708 = atan2(_4704.x, _4704.y); float _4712 = max(_3105.x, _3105.z) * 2.0f; float _4747 = max(max(max(max(lineAA(_4705 - 0.930000007152557373046875f, 0.01200000010430812835693359375f, _4712), lineAA(_4705 - 0.839999973773956298828125f, 0.00999999977648258209228515625f, _4712)), lineAA(_4705 - 0.584999978542327880859375f, 0.008000000379979610443115234375f, _4712)), (lineAA(frac((_4708 / 0.10471999645233154296875f) + 0.5f) - 0.5f, 0.070000000298023223876953125f, _4712 * 9.0f) * step(0.839999973773956298828125f, _4705)) * step(_4705, 0.930000007152557373046875f)), max(1.0f - smoothstep(0.02199999988079071044921875f, 0.02199999988079071044921875f + _4712, length(float2(_4705 * sin((frac((_4708 / 0.52359998226165771484375f) + 0.5f) * 0.52359998226165771484375f) - 0.261799991130828857421875f), _4705 - 0.8849999904632568359375f))), numeral(_4704, _4712))); s.albedo = lerp((_2883.color.xyz * float3(1.0f, 0.930000007152557373046875f, 0.800000011920928955078125f)) * (1.0f - ((smoothstep(0.5f, 1.0f, _4705) * 0.300000011920928955078125f) + (0.20000000298023223876953125f * smoothstep(0.300000011920928955078125f, 0.89999997615814208984375f, (vnoise((_4704 * 3.2000000476837158203125f) + float2(11.0f, 4.0f)) * 0.5f) + 0.5f)))), float3(0.02999999932944774627685546875f, 0.02500000037252902984619140625f, 0.0199999995529651641845703125f), float3(_4747, _4747, _4747)); s.spec = float3(0.0599999986588954925537109375f, 0.0599999986588954925537109375f, 0.0599999986588954925537109375f); s.power = 40.0f; float _4771 = max(frame_1_m0.highlight.w, 1.0f); s.emit = (s.albedo * 0.02500000037252902984619140625f) / float3(_4771, _4771, _4771); } else { s.albedo = float3(0.300000011920928955078125f, 0.20000000298023223876953125f, 0.070000000298023223876953125f); s.spec = float3(0.60000002384185791015625f, 0.449999988079071044921875f, 0.20000000298023223876953125f); s.power = 40.0f; } } else { if (_2883.color.w == 13.0f) { s.albedo = _2883.color.xyz; s.spec = float3(0.550000011920928955078125f, 0.550000011920928955078125f, 0.550000011920928955078125f); s.power = 85.0f; } else { if (_2883.color.w == 14.0f) { s.albedo = _2883.color.xyz; s.ao = 0.60000002384185791015625f; } else { if (_2883.color.w == 17.0f) { s.albedo = float3(0.0f, 0.0f, 0.0f); s.emit = _2883.color.xyz * _2883.params.x; } else { if (_2883.color.w == 15.0f) { float2 _4806 = float2(_2883.local.x + 0.5f, _2883.local.y + 0.5f); float2 _4812 = (_4806 - _2883.params.xy) * float2(_2883.size.xy); float _4813 = length(_4812); float _4816 = atan2(_4812.y, _4812.x); float _4834 = (max(_3105.x * _2883.size.xyz.x, _3105.y * _2883.size.xyz.y) * 1.2000000476837158203125f) + 0.00200000009499490261077880859375f; float _4851 = _2883.params.z * 5.0f; s.alpha = clamp(((max(lineAA((((frac(((_4816 / 6.283185482025146484375f) * 11.0f) + _2883.params.z) - 0.5f) / 11.0f) * 6.283185482025146484375f) * _4813, 0.0035000001080334186553955078125f, _4834), lineAA((frac((_4813 / 0.07500000298023223876953125f) + (0.3499999940395355224609375f * sin((_4816 * 3.0f) + _2883.params.z))) - 0.5f) * 0.07500000298023223876953125f, 0.0030000000260770320892333984375f, _4834) * step(0.300000011920928955078125f, (vnoise(float2(_4816 * 3.0f, _4813 * 9.0f) + float2(_4851, _4851)) * 0.5f) + 0.5f)) * (1.0f - smoothstep(0.550000011920928955078125f, 1.0f, _4813 / (0.5f * max(_2883.size.xyz.x, _2883.size.xyz.y))))) * smoothstep(0.0f, 0.07999999821186065673828125f, min(min(_4806.x, 1.0f - _4806.x), min(_4806.y, 1.0f - _4806.y)))) * _2883.params.w, 0.0f, 1.0f) * 0.800000011920928955078125f; s.albedo = float3(0.550000011920928955078125f, 0.550000011920928955078125f, 0.519999980926513671875f); s.sheen = 1.5f; } } } } } } } } } } } } } } } } } } } } } float _4888 = dot(s.N, _3185); float _4917 = pow(1.0f - clamp(dot(s.N, _3125), 0.0f, 1.0f), 3.0f) * s.sheen; float3 _4921 = frame_1_m0.lightColor.xyz * _3213; color_1 = (s.albedo * ((_4921 * (((max(_4888 + s.wrap, 0.0f) / (1.0f + s.wrap)) * s.ao) + (_4917 * 0.5f))) + (((frame_1_m0.roomLight.xyz * _3220) * (0.5f + (0.5f * _4888))) * s.ao))) + ((s.spec * _4921) * (((pow(max(dot(s.N, normalize(_3185 + _3125)), 0.0f), s.power) * (s.power + 8.0f)) * 0.039999999105930328369140625f) * step(0.0f, _4888))); if (!(frame_1_m0.hall.w > 0.0f)) { _3073 = frame_1_m0.hall2.x > 0.0f; } else { _3073 = true; } if (_3073) { color_1 += ((s.albedo * ((lantern * ((max(dot(s.N, Ll) + 0.300000011920928955078125f, 0.0f) / 1.2999999523162841796875f) + (_4917 * 0.4000000059604644775390625f))) + _3388)) * s.ao); } float _4979 = max(dot(s.N, _3224), 0.0f); color_1 += ((frame_1_m0.moonColor.xyz * (moonVis * s.moonShade)) * ((s.albedo * (_4979 + (_4917 * 0.4000000059604644775390625f))) + ((s.spec * ((pow(max(dot(s.N, normalize(_3224 + _3125)), 0.0f), s.power) * (s.power + 8.0f)) * 0.039999999105930328369140625f)) * step(0.0f, _4979)))); if (Ep > 0.0f) { float _5019 = dot(s.N, Lp); color_1 += ((frame_1_m0.poolColor.xyz * Ep) * ((s.albedo * (((max(_5019 + s.wrap, 0.0f) / (1.0f + s.wrap)) * s.ao) + (_4917 * 0.4000000059604644775390625f))) + (s.spec * (((pow(max(dot(s.N, normalize(Lp + _3125)), 0.0f), s.power) * (s.power + 8.0f)) * 0.039999999105930328369140625f) * step(0.0f, _5019))))); } float _5069 = max(_3272, 9.9999997473787516355514526367188e-05f); color_1 += ((s.albedo * ((frame_1_m0.moonColor.xyz * (_3285 * (0.550000011920928955078125f + (0.449999988079071044921875f * dot(s.N, _3271 / float3(_5069, _5069, _5069)))))) + frame_1_m0.ambient.xyz)) * s.ao); if (!(_2883.color.w == 9.0f)) { _3075 = _2883.color.w == 1.0f; } else { _3075 = true; } if (!_3075) { _3077 = _2883.color.w == 7.0f; } else { _3077 = true; } if (_3077) { float _5103 = smoothstep(0.20000000298023223876953125f, 0.949999988079071044921875f, frame_1_m0.misc.y); color_1 *= (1.0f - ((pow(0.5f + (0.5f * sin((((_2883.world.x * 1.60000002384185791015625f) + (_2883.world.z * 1.2999999523162841796875f)) + ((sin((_2883.world.y * 0.64999997615814208984375f) + (frame_1_m0.eye.w * 0.4799999892711639404296875f)) * _5103) * 0.64999997615814208984375f)) + (frame_1_m0.eye.w * 0.2199999988079071044921875f))), 10.0f) * _5103) * 0.319999992847442626953125f)); } color_1 = (color_1 + ((s.albedo * (_3392 + _3397)) * s.ao)) + s.emit; if (frame_1_m0.misc.x > 4.5f) { _3079 = frame_1_m0.misc.x < 5.5f; } else { _3079 = false; } if (_3079) { color_1 = _3460 * 0.60000002384185791015625f; } else { if (frame_1_m0.misc.x > 2.5f) { _3081 = frame_1_m0.misc.x < 3.5f; } else { _3081 = false; } if (_3081) { color_1 = float3(s.ao, s.ao, s.ao); } else { if (frame_1_m0.misc.x > 6.5f) { _3083 = frame_1_m0.misc.x < 7.5f; } else { _3083 = false; } if (_3083) { bool3 _5178 = bool3(_3018, _3018, _3018); color_1 = float3(_5178.x ? float3(1.0f, 0.0f, 0.0f).x : float3(0.0f, 0.0f, 0.300000011920928955078125f).x, _5178.y ? float3(1.0f, 0.0f, 0.0f).y : float3(0.0f, 0.0f, 0.300000011920928955078125f).y, _5178.z ? float3(1.0f, 0.0f, 0.0f).z : float3(0.0f, 0.0f, 0.300000011920928955078125f).z); } } } float _5195 = (_2883.color.w == 23.0f) ? 0.0599999986588954925537109375f : 1.0f; color_1 = lerp(color_1, atmosphere(color_1, _2883.world, frame_1_m0.eye.xyz, frame_1_m0.light.xyz, frame_1_m0.haze, frame_1_m0.glow), float3(_5195, _5195, _5195)); if (_2883.color.w == 23.0f) { color_1 += (float3(0.008000000379979610443115234375f, 0.010999999940395355224609375f, 0.0170000009238719940185546875f) * pow(1.0f - clamp(dot(s.N, _3125), 0.0f, 1.0f), 3.0f)); color_1 += (float3(1.0f, 0.2800000011920928955078125f, 0.070000000298023223876953125f) * (((pow(max(dot(-_3125, _3185), 0.0f), 3.0f) * min(_3213, 2.0f)) * _2883.params.z) * 0.0500000007450580596923828125f)); handAlpha = clamp(_2883.params.y, 0.0f, 1.0f); if (_2883.params.x > 0.5f) { handAlpha *= (1.0f - smoothstep(-0.3499999940395355224609375f, 0.5f, _2883.local.y)); } s.alpha = handAlpha; } if (frame_1_m0.hall2.x > 0.0f) { float3 _5242 = _2883.world - frame_1_m0.eye.xyz; float _5243 = length(_5242); float _5261 = max(_5243, 9.9999997473787516355514526367188e-06f); color_1 += (lanternColor() * ((frame_1_m0.hall2.x * 0.017999999225139617919921875f) * pointGlow(frame_1_m0.eye.xyz, _5242 / float3(_5261, _5261, _5261), _5243, doorWorld(float3(frame_1_m0.hall3.x + 0.449999988079071044921875f, frame_1_m0.win2.w + 0.3499999940395355224609375f, (frame_1_m0.hall2.z + frame_1_m0.hall2.w) * 0.5f)), 0.5f))); } if (frame_1_m0.hall.w > 0.0f) { _3087 = _3192; } else { _3087 = false; } if (_3087) { float3 _5286 = _2883.world - frame_1_m0.eye.xyz; float _5287 = length(_5286); float _5288 = max(_5287, 9.9999997473787516355514526367188e-06f); float3 _5290 = _5286 / float3(_5288, _5288, _5288); float _5303 = clamp((frame_1_m0.hall3.x - doorSpace(frame_1_m0.eye.xyz).x) / min(doorVec(_5290).x, -9.9999997473787516355514526367188e-05f), 0.0f, _5287); float3 _5310 = frame_1_m0.hall.xyz - frame_1_m0.eye.xyz; float _5311 = dot(_5310, _5290); float _5317 = sqrt(max(dot(_5310, _5310) - (_5311 * _5311), 0.0f) + 0.300000011920928955078125f); color_1 += (lanternColor() * (((frame_1_m0.hall.w * 0.01200000010430812835693359375f) * ((atan((_5287 - _5311) / _5317) - atan((_5303 - _5311) / _5317)) / _5317)) * exp((-frame_1_m0.haze.w) * max(_5303 - 2.7999999523162841796875f, 0.0f)))); } if (frame_1_m0.shaft.w > 0.5f) { _3089 = s.alpha > 0.9900000095367431640625f; } else { _3089 = false; } if (_3089) { float3 _5358 = _2883.world - frame_1_m0.eye.xyz; float _5359 = length(_5358); float _5360 = max(_5359, 9.9999997473787516355514526367188e-06f); float3 _5362 = _5358 / float3(_5360, _5360, _5360); float _5383 = shaftScatter(frame_1_m0.eye.xyz, _5362, _5359, frame_1_m0.moonTravel.xyz, frame_1_m0.win, frame_1_m0.win2, ign(_2883.position.xy + float2(frame_1_m0.eye.w * 37.0f, frame_1_m0.eye.w * 11.0f)), frame_1_m0.misc.w); if (_5383 > 0.0f) { color_1 += (frame_1_m0.shaft.xyz * (0.800000011920928955078125f * (1.0f - exp((-(_5383 * hgPhase(dot(frame_1_m0.moonTravel.xyz, -_5362), frame_1_m0.moonColor.w))) / 0.800000011920928955078125f)))); } } outA = s.alpha; if (frame_1_m0.hall4.z > 0.0f) { _3093 = s.alpha > 0.9900000095367431640625f; } else { _3093 = false; } if (_3093) { outA = 1.0f - clamp(frame_1_m0.hall4.z * abs(1.0f - (frame_1_m0.hall4.w / max(length(_2883.world - frame_1_m0.eye.xyz), 0.001000000047497451305389404296875f))), 0.0f, 1.0f); } _2906 = float4(encodeHdr(color_1, frame_1_m0.ambient.w) * s.alpha, outA); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; normal = stage_input.normal; local = stage_input.local; lnrm = stage_input.lnrm; color = stage_input.color; params = stage_input.params; size = stage_input.size; ax = stage_input.ax; ay = stage_input.ay; frag_main(); SPIRV_Cross_Output stage_output; stage_output._2906 = _2906; return stage_output; }   ‘Hq»Ü[HSLTFrame viewProjÿÿÿÿeye@ÿÿÿÿlightPÿÿÿÿ lightColor`ÿÿÿÿ roomLightpÿÿÿÿ moonTravel€ÿÿÿÿ moonColor�ÿÿÿÿambient ÿÿÿÿwin°ÿÿÿÿwin2ÀÿÿÿÿhazeÐÿÿÿÿglowàÿÿÿÿshaftðÿÿÿÿdeskÿÿÿÿdeskYÿÿÿÿbook ÿÿÿÿroom0ÿÿÿÿ highlight@ÿÿÿÿmiscPÿÿÿÿdiscs` ÿÿÿÿhall ÿÿÿÿhall20ÿÿÿÿhall3@ÿÿÿÿhall4Pÿÿÿÿ candlePos`ÿÿÿÿcandleFxàÿÿÿÿpool`ÿÿÿÿ poolColorpÿÿÿÿdoor0€ÿÿÿÿdoor1�ÿÿÿÿ frame_block framevs_mainvs_mainfs_mainfs_main ñ#Ð GLSL.std.450b vs_mainD G I L N P R T V X Z [ \ ] ^ _ ` a ë fs_mainÖ Ø Ú Ü Þ à â ä æ è ê ë H #H #H #H # H #H #H #H #H # H #H #H #H # H #H#H#H# GGH#HHH#@H#PH#`H#pH#€H#�H# H#°H #ÀH #ÐH #àH #ðH #H#H# H#0H#@H#PH#`H# H#0H#@H#PH#`H#àH#`H#pH#€H#�H#H#H# H#0H#@H#PH#`H#pH#H#H# H#0H#@H#PH#`H#pH#€H #�GH#H#H#H# H#0H#<H#@H#DH#HH #LH#H# GM"GM!GNHN#GD GG GI GL GN GP GR GT GV GX GZ G[ G\ G] G] G^ G^ G_ G_ G` G` Ga Ga GÖ GØ GÚ GÜ GÞ Gà Gà Gâ Gâ Gä Gä Gæ Gæ Gè Gè Gê          +  +           +€@+333@++€?+@+@@+  @+!À@+"à@+#A+$A+% A+&0A+'@A+(PA+)`A+*pA++€A+,ˆA+-�A+.˜A+/ A+0¨A+1°A+2ðA+3øA+4B+5š™?+6)\�>,756+8{®>+9= ×>+:R¸?,;89:+<ÍÌÌ<+=ÍÌL?+>¦›D<+?š™™>+@¼t“<+A?+B…ë>+C?F=+D ×#?+EÃõ¨>,FDE+G@?+HÍÌÌ=+I ×£=+J333?+KÍÌL=+LX9´<N ON;OM!S,T+U‘ƒž=+V®Ga=,WVVV+Xn§r?+Yš™@,ZYYY+[æ®%=,\[[[c +iR¸NA+jUUÕ>,kjjj+l= ‡?+m.M;,nmmm!z+{гY>+|Y7?+}˜Ý“=,~{|}!…+†€>,‡+ˆ«ªª>,‰ˆˆˆ!Ÿ+  f+¡_ón<,¢¡¡+£,¤££ ¦.§ ¬+­+°!×+Ø€,ÙØØ+Ú€3!æ !ö +÷Cq‰=+ø�E¿;, ù÷ø+ú‚îSB, ++,,,+Ï, +ÿÿÿN, !( , )+\…ë?+]…ë@+^Í̈A+_ÍÌl@, `^_+aáz”>+bq=‚@+cš™©@+d33ïA, ecd+f)\> h.i!�+‚½7†5! œ +�¬Å'7!» +¼·Ñ8) ½+¾ÛI?+¿ ×£<+ÀìQ¸=+Áff&@+Âff¦?+Ú™Y? Å . Æ. È. Ê.Ì!j!| +}X94<+~¦›Ä;!�+‘À?! ¦ , §‚‚+¨+©¦›D;+ªo<+«)\=+¬ffF@+­fff?, ®¬­+¯33ã@+°33S@, ±¯°+²ÍÌ @, ³$²+´š™¿+µÍÌ ?+¶ffæ>.¹ ¼ê , ­­+ ÿÿÿÿ,   !R  +Sš™™?+Tš™>+U¸…> W . X+d+f+h+k+n+s!}+~Œî*G+†ÛÉ@!‘ +’)\¯?+“9ÖOA+”= @+•LwœB+–33s?+—ázD@+˜BàB+™ÍÌÌ?+š…ë‰@+›�—’@+œÍÌL>+�¸>+ž®Gá=   . ¡!Õ +Ö+×ö(\?+Ø´B+Ùš™¾+Ú ×#=+Û×£p?+Üff†?+Ý33³>!7 +8 @+�oƒ<+Žš™Ù?+�dB+� ×#+lÍÌB+m{®=+nff@+oÍÌÌ>+v!À. Â+éÃõ(?+÷HáJ@+ø¤pÝ?, ùÂ+ú8B, û5$+ü C, ýü+þìQ8?+ÿìQ8>!". %+'+A !`+bÍ̬?.e |+~ +€+›+ +å�Âõ¼+æìQx?+ç ׃?.é+í+ý+I . Y. [!’+“®Gá>+”(A+•°@+–ff&?+—¤p=?+˜¸…?+™×£ @+š ×£@+›ôýÔ<+œ¸…=+��Á�¾+žm3Z?+Ÿïæá>, �žŸ+¡B`e;+¢X9´;+£–C <,¤¡¢£+¥�Âõ=,¦¥ÿ6!Þ +à®Ga>+áö(œ?,â9¥! +  *+-+2+@ÿÿÿÿ!H +IwÌ+2!V!a +b’ ?+c= 7?+d{.>+eU+fV,g]°kýednífAfs,hf°dfh°dfhd°d+i)\?+j)\�=+k�Âu=, lÚÛ, mÚk+nÍÌL¾+oš™™= q.v+„ÿÿO!   . ! F +S !|   * ~ + pC+€ ×c?+� \B+‚ B+ƒ HD+„ B+… ÀA,† jjj+‡ pB,ˆ AAA+‰ ¾C,Š —àÚ+‹ ö(Ü>,Œ ‹ ¥ Ž .� .‘ . “ . • .— . ™ .› ! Œ   +Ž $B+� ØA+� ×#>,‘ –éE+’ ìQ¸>,“ ’ U�+” C,• :5\+– …k>,— U†– +˜ ŒB+™ ÐA+š B`e<+› ¼t<+œ ×£;,� š › œ .Ÿ .¡ !  + –C+ 0B, ­ÝI. E ;E D ;E G  J  ;J I ;J L ;J N ;J P ;J R ;J T  W  ;W V  Y ;Y X ;Y Z ;Y [ ;Y \ ;W ] ;W ^ ;W _ ;W ` ;W a !c +e oƒ:,f e ,g e +h ÿæÛ.,i h h h +j 33/A+k ff&À, l Ýk +m ìQ8=,n Ý&k .p .r .t .v .x .z . } .  . � . ƒ . … . ‡ . ‰ ‹ .Œ ™  š  Ç ;J Ö ;E Ø ;E Ú ;E Ü ;E Þ ;J à ;J â ;J ä ;J æ ;J è ;W ê +í ·Ñ¸,î ÂÂÂ,ï bbb+ð …ëQ?,ñ ?œk,ò ÚÚÚ+ó ¸?,ô Gó œ, õ +ö C+÷ ®G?+ø {n?,ù B?À+ú ×£>,û þú +ü ‚C,ý � �m,þ kœ�+ÿ q=Š>, oÿ I, S×9, o?� + B, K¼¿, ¿¿¿,  S, ¿@�+ ÍÌŒ?, Bf+ ×£ð>, ÝkH, ¼¼¼+ , KKK, ¥¥¥+ ¦ ?, A¶?+ ×£°?+ ¼t=,  œ’ + …ë=+ o>, ºªš , œ œ œ , KjH+ = W?+ �Â?+ pwÖ=+ ¦ †>+ \�b?+ ÍÌL@, &,! ø =," ¼<¿,# kkk,$ ?œj,% 5¶œ,& µµµ+' ªB+( o;,) µµó +* �Âõ>++ �@+, `@+- Ð@+. ð@,/ ?,0 +1 ¸A+2 –C‹<,3 ª}2 ,4 6j+5 33³¾+6 ¤p}?.8 . : . < . > . @ . B . E . G . K . M . Q . S . U . W .Y .] ._ . a .c .e . g . i . k . n . p . r . t .v . { . € . ‚ .† .Œ . Ž . � . ’ . ” . – . ˜ .š . œ . ž .  . ¢ +i+˜+ª+þ+Ï 6RS7QøPù]ø] ^(QTŽ_^U�`^WŽa`X baZ¼cd^\©ed_bþe86hS7gøfùoøo p(gTŽqpi rpkŽsrlƒtsW¼cupn©vuqtþv86yz7xøwùø”€x~þ€86„…7‚7ƒø�ùŠøŠº ‹ƒA÷Œú‹�Œø�ŽŽ‚† �+ŽT‡ ��‰þ�øŒþ‚86”…7’7“ø‘ù•ø•º –“A÷—ú–˜—ø˜…™’’…š™’Ž›šþ›ø—þ’86žŸ7�øœ;¦¥§ù¨ø¨Pª  „©�ª€«©¢>¥«A¬®¥­=¯®A¬±¥°=²±„³² €´¯³A¬µ¥­>µ´A¬¶¥°=·¶A¬¸¥­=¹¸„º¹ €»·ºA¬¼¥°>¼»=½¥=¾¥Â¿¾¤ÆÀ½¿>¥ÀA¬Á¥­=ÂÁA¬Ã¥°=ÄÄÅÄ €ÆÂÅA¬Ç¥­>ÇÆA¬È¥°=ÉÈA¬Ê¥­=ËÊ„ÌË €ÍÉÌA¬Î¥°>ÎÍ=Ï¥=Ð¥ÂÑФÆÒÏÑ>¥Ò=Ó¥þÓ86Ö×7ÕøÔùÛøÛ€ÜÕÙ|ÝÜ9ÞžÝQßÞÂàßpáà…âáÚþâ86 åæ7äøãùçøç€èäÙ|éè9êžéQëêÂìëpíìQîêÂïîpðïP ñíðŽ òñÚþò86õö7 ôøóùûøû”üôù ý ü…þúý ÿ þþÿ86ö7 øù ø   ƒ  …   Ž  ƒ  …    + n9Ö€9Ö€9Ö€9ÖQ .Q  .Q! ". !…#"ƒ$#þ$86'(7 &ø%ù*ø*  +&ƒ ,&+… -,,Ž .,ƒ /.… 0-/Ž 1,!ƒ 2),… 312  4++n5496Ö5€7598Ö7€959:Ö9€;59<Ö;ƒ=86ƒ>:6ƒ?68ƒ@?:�A@<QB0…C=B�D6CQE0…F>E�GDFQH0…IAHQJ0…KIJ�LGKQM0…NAM�O=NQP0…QAP�R>QP SOR… T3S…ULƒVUŽ WTPXVWþX86[ö7 ZøY;hgiùjøj9kZ…lk\>gl=mgŽ nZ]� on`9po…qpa�rmq>gr=sgŽ tZb� ute9vu…wvf�xsw>gx=ygþy86€�7{7|7}7~7øzùƒøƒƒ„~{”…„|”†„„…‡……ƒˆ†‡ ‰(ˆ Š(‚�‹‰Š Œ‹ƒ�}…ˆŽ�Œ �Žˆ�…Œ ‘��’�‘ˆ“’Œþ“86›œ7•7–7—7˜7 ™7 šø”ùžøžƒŸ–—  BŸ ¡( �P¢¡¡¡ˆ£Ÿ¢Q¤™¥¤ƒ¦  §(¦…¨¥§ ©¨Qªš9 «€—£ ˜ªŽ¬•©O­™™ƒ®©Ž¯­®�°¬¯O±ššŽ²±«�³°²þ³86º»7 µ7 ¶7 ·7¸7¹ø´;ÅÇÈ;hËÌ;ÅÄÆ;ÅÉÊùÍøÍQζQ϶QжQѶƒÒÏÎ…ÓÒA�ÔÎÓ Õ(¸¼QÖµƒ×ÎÕ¸ ØÖר ÙØ÷ÚúÙÛÜøÛQݵ�ÞÏÕº ßÝÞ>ÄßùÚøÜ>ĽùÚøÚ= àĨ áà÷âúáãäøãQ嵃æÐÕ¸ çåæ>Ççùâøä>ǽùâøâ= èǨ éè÷êúéëìøëQíµ�îÑÓ�ïîÕº ðíï>Éðùêøì>ɽùêøê= ñÉ÷òúñóòøóþøòôÕQõµƒöõÎQ÷µƒøÏ÷ ù%öø ú1ôÕùûÕQüµƒýüÐ þ1ûÕý…ÿúþP Ôу µ BƒÓÕ 1ÕQµ¸ Ñ©… ÿQ ·ƒ  Õ�  ÕQ µƒ Ô  1  ƒ>ËQµƒÐQ·ˆ�A  ƒA Q·…=Ë… =ƒÕ… =� Õ !1 ƒ"!Q#µ $0#Ñ…%"$ &(%>Ë&Q'µƒ('ÑQ)µƒ*)Ô +(*ˆ,+¾�-,A . -ƒ/.A 0/…10¾P 2Ôу 3µ2 4B3…514=6Ë…7 Jƒ87Õ…9 J�:9Õ ;18:5ƒ<;Q=µ >0Ñ=…?<> @(6?>Ë@º A¹A÷BúACBøC D1¿ÀÕƒEDŽ FµÁQGFQHF�IGH…JIA�KJA L KƒMLA NMˆONÂQPFQQFƒRPQ…SRA�TSA U TƒVUA WVˆXWÂ=Y˃Z>Õ�[>Õ \%OX ]1Z[\ƒ^]…_^E…`_à a(Y`>ËaùBøB=b˃cb…d cþd86ij7f7g7høeùkøkQlfƒmlhQng o(n¼ˆpmoO qffO rggŽ srpƒ tqsPutpþu86{|7w7x7 y7 zøvùøQ€wQ�z¸ ‚€�÷ƒú‚„ƒø„þøƒQ…z9†iwx…O ‡††Qˆ†…‰ˆ}�Š~‰9 ‹º‡yzŠþ‹86��7�7ŽøŒù’ø’…“ŽŽƒ”“�•“…–Ž…—–�ƒ˜•— ™(˜¼ š™‘ˆ›”šþ›86¥¦7�7ž7Ÿ7 7 ¡7 ¢7£7¤øœ;h¸¹;¼»;h·;hº;¦ ù½ø½Q¾¢Q¿  À(¿¼ˆÁÀO Â��QÃ�ƒÄþ…ÅÄÁO Æ  Ž ÇÆÅƒ ÈÂÇO ÉžžQÊž…ËÊÁO Ì  Ž ÍÌ˃ ÎÉÍ>¸ŸQÏž¸ ÐÏ÷ÑúÐÒÑøÒ=Ó¸QÔ�ƒÕ¾ÔQÖžˆ×ÕÖ Ø%Ó×>¸ØùÑøÑQÙž¸ ÚÙ÷ÛúÚÜÛøÜ=ݸQÞ¢Qß�ƒàÞßQឈâàá ã%Ýâ>¸ãùÛøÛQä¡Qå¡P æäåQç¡P èç¤  éθêëé§© ìë§Îˆ í)ìƒ îæÈ… ïîíƒ ðèÈ… ñðí  ò%ïñ  ó(ïñ=ô·QõòQöò ÷(õö ø(ô÷>·ø=ù¸QúóQûó ü%úû ý%ùü>¸ý=þ¸=ÿ·¼ þÿ÷úøþø=¸=·ƒˆ ùøö ùø=ªê › ÷úøQª ­©°­P°‚>ù ø =»± ¨÷úøùøùø=·= »o! �"!£…#"�$#Ž %Î$� &È%Q'�Q(ž…)$(�*')ƒ+*¾…,+Á=-º….,©�/ª.9 0º&¡¢/1,…21« 32…403�5-4>º5ùøù ø =6»€76>»7ùø=8·=9¸�:89…;:AŽ <Î;� =È<… >=®� ?>±9@?… A=³9BA…CAB�D@C E1´=D…FµE�G¶F=Hº…IH…JIGþJ86 QR7L7M7N7O7 PøK;WVXùYøYQZL…[AZAh\V­>\[Ah]V­=^] _+OAS…`^_AhaV°>a`QbL c(b¼AheVd>ecAhgVf>gMAhiVh>iNQjPAhlVk>ljQmPAhoVn>omAhpV°=qp…rTqAhtVs>trAhuV°=vu…wUvAhxV>xw= yVþy86|}7{øzùø € {…�€~ ‚ �þ‚86…}7„øƒù‡ø‡ˆˆ„†�‰ˆA Љ…‹†ŠƒŒ„‹þŒ86 �‘7 Ž7�ø�; Ÿ¡ù¢ø¢o£��¤£Q¥Ž…¦¥’…§¤“�¨¦§9©|¨…ª†©Ah«Ÿ­>«ªQ¬Ž…­¬”…®¤•�¯­®9°|¯ ±.´–°Ah²Ÿ°>²±Q³Ž…´³—…µ¤˜�¶´µ9·|¶Q¸Ž…¹$·…º¹·�»™º…¼¸»Q½Ž…¾¼½Ah¿Ÿd>¿¾QÀŽ…ÁÀš…¤›�ÃÁÂ9Ä|ÃQÅŽ…ÆœÄ�ÇUÆ…ÈÅÇAhÉŸf>ÉÈQÊŽ…Ë�Ä�̞˅ÍÊÌAhΟh>ÎÍ= ÏŸþÏ86ÔÕ7 Ñ7Ò7ÓøÐ;hÞ;¼ß;¦å ùàøàùáøáöâäùæøæ=çåªêè ç› éè÷êúéâêøêQëçª ìë­©íì°­Pîí°‚ïçî>åïùãøã=ðß± ñðÖ÷òúñòóøóùâøòùôøô=öß9 ÷�ÑöQøÑQù÷ƒúøù û1«úQü÷…ýüû þ(ý¼QÿÑQÑ (ú…�ÿQÑ…JƒƒÓˆþ  +Q ÷ƒ Ò 9 … Q Ñ…  ƒ×ƒ×……Ø Q÷…? ƒ…5�… 1ÙÚ 1Û܃…Q÷… Ý �!G …"­�#!"…$#…%$ &0¼û…'%&=(Þ…)*)…+ˆ,*+ -,….'-�/(.>Þ/ùõøõùäøä=0߀10>ß1ùáøâ=2Þþ286677 475ø3;h9;¼:;¦@ ù;ø;ù<ø<ö=?ùAøA=B@ªêC B› DC÷EúD=EøEQFBª GF­©HG°­PIH°‚JBI>@Jù>ø>=K:± LKÖ÷MúLMNøNù=øMùOøO=Q:9 R�4QQS4QTRƒUST V0UQW4…X8WQY4…ZYU [1XZƒ\[…]V\Q^Rƒ_5^9`…_Qa4…b`a=c9…dbbedQfR…g™fQhR…ighˆjei kj…l]k�mcl>9mùPøPù?ø?=n:€on>:où<ø==p9 q%p…rq=Qs4…trsþt86x77 v7wøuùyøyQzv9{6vwƒ|z{Q}v…~œ}…wQ€v…�€ �‚� ƒ ‚…„Aƒ�…A„…†~…ƒ‡|†þ‡86ŒÕ7 ‰7Š7‹øˆù‘ø‘Q’‰ˆ“‹’ ”+“…•ŠQ–‰…—–¬�˜•—…™‹3�š˜™ › š…œ�›��œ…žŠQŸ‰… ŸŽƒ¡ž …¢‹��£¡¢ ¤ £…¥�¤�¦�¥Q§‰Q¨‰ ©.§¨”…ª©¦þª86¯Õ7 ¬7­7®ø«ù°ø°9±Œ¬­®9²Ô¬­®�³±²þ³86¸¹7 µ7¶7·ø´ù½ø½9¾¯µ¶·Q¿µ…À¿º Á(À»�·Á9ﵶƒķÁ9ůµ¶ÄƒÆÃÅ…ÇÁˆÈÆÇ�ɶ¼9ʯµÉ·ƒË¶¼9̯µË·ƒÍÊ̅μˆÏÍΠж Ñ ¶PÒÐÑÓÑPÔÓÐ Õ(¾�ˆÖÏÕŽ×ÔÖƒØÒ×PÙÈƒÚØÙ ÛEÚþÛ86ßà7Ý7 ÞøÜ;íìî;hè;hë;hç;êéâùïøïQðÝQñÝQòÝ óð ô ðPõóô9öxÞðQ÷Þƒøö÷ ù(ø¸ úòA÷ûúúüýøü9þ¯Þð…ÿþñ>çÿùûøý¸ ò‘÷úø…ñù>è=è9ÔÞð>ë=è9ŒÞð= ë�  >ç = è9 ¸Þð >é ùø¸ ò8÷ú ø9¯Þðù…ãñQÞƒQÞ …�>çQÞ  …�ù>è Žõ  P �! >é!ùø9"¯ÞðùQ#Þ…$#ƒ%"$Q&ÞQ'Þƒ(&'…)%­¸ *ñ?÷+ú*,-ø,ˆ.ñ? /.%).>ç/…0.ä 1 0 2.ù(1>è23õƒ4.Ž534Ž65å�75.P87�968 :E9>é:ù+ø-ƒ;ñ?ˆ<;Jƒ=<…>)=>ç>Q?Þ…@I?…A@<ƒB(A>èB>éæù+ø+ùøùøùûøû=CçŽDõC=EèPFE�GDFAêHì­>HG=IéAêJì°>JI=KèƒLöK M(L=NëQOÞ P(O�ˆQNPPRòMQAêSìd>SR=TìþT86VWøUAXYM­ùZøZA\^Y]­=_^ `+_Pb``` a.7;bþa86f…7d7eøcAXgM­ùpøpQqdƒrAq s+rA\tg°f=utA\wgv°=xw y1I–x…zuh { z…|†{�}µ|…~ui�~å € …�œ€�‚}�…ƒA‚�„†ƒ……y„�†<……‡ss…ˆ‡†…‰uj…Šsƒ‹‰Š�Œ‹e � Œ…޵�…�u°…�s!ƒ‘�� ’ ‘…“k’�”Ž“…•ˆ”Q–d�—–A…˜—l…™s†…šuå�›še œ ›…�™œ�ž˜� Ÿ ž… mŸ…¡s†…¢un…£sƒ¤¢£Q¥d…¦¥�§¤¦�¨§e © ¨…ªo©�«5ª…¬¡«Q­d�®­•Q¯d…°s†…±°<…²uQ³d…´³#�µ²´ ¶ µ…·±¶�¸¯·�¹ ¬Pº®¸¹þº86¿À7¼7½7¾ø»;ÅÁÂùÃøÃ¼ m ÅÄ÷ÆúÅÇÈøÇ¼ ɾ>ÁÉùÆøÈ>Á½ùÆøÆ= ÊÁ÷ËúÊÌËøÌþ¼øËƒÍ¼½ˆÎ;�ÏÎ ÐυѾÐ�Ò½ÑþÒ86Õö7 ÔøÓùÖøÖ  ×Ô  Ø+×nÙØ9ÚÖÙþÚ86ßÀ7Ü7Ý7ÞøÛùàøàƒáÝÞ�âÝÞ ãÜ ä1áâãƒåäþå86èö7 çøæùêøê9ëç…ìëéŽ íç]� îí`9ïî…ðï8�ñìðþñ86öÀ7ó7ô7õøòùøP óô…õ÷…õøP � … ù9è…­Q …  ú… "�   … û9 …�   …A�A… ý9…A�A…8…�þƒA…ÿ�þ86!"77 ø;Å$%AX#M­ù&ø&A\(#'­=)(Q*ƒ+)†º ,*+¨ -,÷.ú-/0ø/Q1 ¼ 21¼>$2ù.ø0>$½ù.ø.= 3$÷4ú354ø5þø4Q6ƒ7)6Q8 ˆ978º :9÷;ú:<;ø<þø;O =O >  Ž ?>9� @=?A[B#A= CBQD@QECƒFDEQGCQH@ƒIGH J%FIQK@QLCƒMKLQNCQO@ƒPNO Q%MP R%JQA\S#'°=TS…U9�V?U…WTVXWYR Z1XWYþZ86_`7\7]7^ø[;hc;¼de;¦k AXaM­ùføf>d]ùgøgöhjùløl=mkªên m› on÷púohpøpQqmª rq­©sr°­Pts°‚umt>kuùiøi=vd± wv^÷xúwxyøyùhøxùzøz=}d &}~A[�a€= ‚�O ƒ\\O „‚‚ƒ …ƒ„ †B…Q‡‚ ˆ(‡¼ˆ‰†ˆ=ŠcQ‹‚ Œ‹ �1µb‰ƒŽ�…�ŒŽƒ��…‘Š�>c‘ù{ø{ùjøj=’d€“’>d“ùgøh=”cþ”86—S7–ø•AX˜M­ù™ø™O š––A[œ˜›= �œO ž��ƒ ŸšžA\¡˜ d=¢¡A[£˜›= ¤£O ¥¤¤”¦Ÿ¥�§¢¦Q¨–A\©˜ f=ª©A[«˜ = ¬«O ­¬¬”®Ÿ­�¯ª®P°§¨¯þ°86³S7²ø±AX´M­ùµøµO ¶²²A[·´›= ¸·O ¹¸¸”º¶¹Q»²O ¼²²A[½´ = ¾½O ¿¾¾”À¼¿PÁº»ÀþÁ86ÄS7ÃøÂAXÅM­ùÆøÆQÇÃA\ÈÅ d=ÉȃÊÇÉQËÃA\ÌÅ f=Í̃ÎËÍA[ÏÅ›= ÐÏO ÑÐÐA[ÒÅ›= ÓÒO ÔÓÓŽ ÕÔÊ� ÖÑÕA[×Å = Ø×O ÙØØŽ ÚÙÎ� ÛÖÚQÜÛQÝÃQÞÛPßÜÝÞþß86ã"7á7âøà;hèéAXäM­ùêøê9ë—á9ì—âA\îäí­=ïîQðëƒñðïQòìƒóòï…ôñó¾ õô÷öúõ÷öø÷þøöƒøñóˆùñøƒúìëŽûúù�üëûA\þäýd=ÿþA\äýf=A\äí°=ÚQüƒÿQüƒ  %  1Ú  ÚQ üƒ   1 Ú … >èA\äý°=A\äíd=P ÿ   P A\äíf=Ž O ììO ëëƒ QQ… Q!Q"…#!"ƒ$ # %$º &%�÷'ú&('ø(O )ëëƒ *)Q+*Q,…-+,Q.*Q/…0./ƒ1-0ˆ21$Q3*Q4…534Q6*Q7…867ƒ958ˆ:9$Q;ëQ<ìQ=ëƒ><=…?>2�@;? A02 B02…CAB D1å¼:…ECD F1æç:ƒGF…HEGA\JäIf=KJ L0K@…MHL N0@…OMN=PèƒQO…RPQ>èRù'ø'=SèþS86Vz7UøT;ÅXY;ÅZ[AXWM­ù\ø\9]—UQ^]A\_Wí­=`_ƒa^`A\bWý­=cb¼ dc¨ ed÷fúeghøg¸ ia>Xiùføh>X½ùføf= jX¨ kj÷lúkmnømQo]A\pWIf=qp�rqKº sor>Zsùløn>Z½ùløl= tZ÷uútvuøvþøu…waJ�xHwyx…zx?Q{]A\|Wýd=}|ƒ~{}A\Wýf=€Q�]ƒ‚€� ƒ%~‚ „1yzƒA\…Wý­=†……‡† …ˆ‡„ˆ‰aJˆŠaJ…‹‰Š�Œ‹ˆ�ˆŒþ�86‘’7�7�øŽù§ø§Q¨�ƒ©Y¨ˆª©“Q«�…¬6ªƒ­«¬Q®�…¯Ãª�°®¯P ±­°Q²±³²ƒ´³”ˆµ´• ¶µQ·±�¸·”…¹•¶�º¸¹ »º ¼1–—»ƒ½¼Q¾± ¿1Û˜¾QÀ± Á1™šÀƒÂÁ…ÿ ĺ Å1›œÄQƱƒÇÆ ÈÇ É1«mÈ…ÊÅɅ˽ÅÌËÊ Í0¶…ÎÌÍ Ï0¶…ÐÎÏ Ñ0ª…ÒÐÑ”Ó�  Ô(ÓŽÕ¦ÒŽÖÕÔ�פÖþ×86ÝÞ7Ù7Ú7 Û7ÜøØAXßM­ùãøãQäÛ¼ åä¼÷æúåçæøçþTøæOèÛÛƒéèÙ”êéé…ëÜܾ ìêë÷íúìîíøîþTøí…ïܵ ðê ñ1ïÜðƒòñ9ó!ÙéOôÛÛ9õãÙô…öóõ ÷(ê‚ ø ÷Žùéø”úÚù�ûúà ü(ûˆýüáQþÛ�ÿê?ˆþÿŽâŽòŽöŽýþ86  777ø;ê T;¼;¦ AX M­ùøùøöùø=ªê › ÷úøQª ­©°­P°‚>ùø=±  ÷!ú !"ø"ùø!ù#ø#=%« &%÷'ú&('ø(=) =+ ,&+sA[. -,= /.=0 1&0sA\3 21°=43 5(4A96Ý/5�7)6> 7ù'ø'ù$ø$ùø=8€98>9ùø=: þ:86>’7<7=ø;AX?M­ùAøA9B <=@þB86GH7 D7 E7 FøCùJøJƒ KDEƒ LFE”MKL”NLL O(NIˆPMO Q+PŽ RLQƒ SKR TBSþT86UV7W7XøYª ZX­©[Z°X‰\W[þ\86`a7 ^7_ø];huv;qrh;¬x­;¬t­;qpg;hw%;hs;¦� ;¦Å ùyøy zB^Q{^Q|^ }{|�~}†¸ }©€~}ˆ�€b�‚�A ƒ‚ …+ƒ„m†…9‡U†…ˆƒbƒ‰€ˆ Š ‰…‹zŠˆŒ‹d �‰…Žz�…�dAƒ�c�ƒ‘Ž�ˆ’‘d “&‡~A¬”p“=•” –&‡~A¬—r–=˜—ù™ø™öšœùžøž=Ÿ�ªê  Ÿ› ¡ ÷¢ú¡š¢ø¢Q£Ÿª ¤£­©¥¤°­P¦¥°‚§Ÿ¦>�§ù›ø›=¨t° ©¨h÷ªú©ª«ø«ùšøªù¬ø¬=®t° ¯®˜÷°ú¯±°ø±=²t„³d²Â´•³Çµ´f=¶sª ·µ°©¸·ki�¹¶¸�º¹j>sºù°ø°ù­ø­ùœøœ=»t€¼»°>t¼ù™øš=½s¾½…¿¾A�À¿«>uÀùÁøÁöÂÄùÆøÆ=ÇŪêÈ Ç› ÉÈ÷ÊúÉÂÊøÊQËǪ ÌË­©Ḭ́­PÎͰ‚ÏÇÎ>ÅÏùÃøÃ=Ðx° ÑÐh÷ÒúÑÒÓøÓùÂøÒùÔøÔ=Öx° ×Ö˜÷Øú×ÙØøÙ=Úx„ÛdÚÂÜ•ÛÇÝÜfª Þݰ©ßÞki=àuƒáŒàP âá’ª ãݰ÷äúãåæøå=çw…èßAP éèk…êßAP ëêÛ9ìGâéë í%çì>wíùäøæª îÝd÷ïúîðñøð=òw…óßAP ôók9õGâlô ö%òõ>wö=÷wƒøßÚP ùøÛ…úßAP ûúk9üGâùû ý%÷ü>wýùïøñ=þwƒÿßÚP ÿk9 Gâl  %þ >w = wƒ ßÚP   Û9 Gâm  %  >w ùïøïùäøä= u�  ß� j>u ùØøØùÕøÕùÄøÄ= x€ °>x ùÁøÂ  0n’  0’S…  ˆ _dƒ o ˆ _d� o = w  1   ƒ  …   þ 86  7 ø ;   AX M­ù ø A[!  d= " ! O# " " Aê$  ­>$ # A\%  df=& % ˆ' & B ( +' ™o)  * 0) …+ ( * Ah,  °>, + ­ -  ÷. ú- / . ø/ ‚0   1 &0 sA[2  -1 = 3 2 O4 3 3 Aê5  ­>5 4 ‚6   7 &6 sA\8  27 ­=9 8 Ah:  °>: 9 ù. ø. =;  þ; 86E F 7= 7> 7? 7@ 7A 7B 7C 7D ø< AXG M­ùH øH QI = ƒJ I > ”K J J L (K I M  L ŽN J M QO = …P BO �Q K CˆR P Q A\T G S ­=U T A\V G S °=W V 9X ¿R U W ”Y ? N �Z N @ [ EZ ”\ ? [ ] (\  ^ ] C �_ C #…` ^ _ …a ` Ú b 0Y …c a b Žd FX �e Y D f (e Žg A f �h D Pi h h h ˆj g i Žk B c �l j k …m d l þm 86{ | 7o 7p 7q 7r 7 s 7t 7u 7 v 7w 7x 7y 7z øn ;h– — ;h� ‘ ;hš › ;Å” • ;Ž � � ;Ř ™ ;Å’ “ AX} M­ùœ øœ >� o O� s s Qž s  Ÿ ž 9   Q� Ÿ t u v Q¡ r Q¢ r Q£ q Q¤ q ¥ £ ¤ Q¦ r ˆ§ ¦ j ¨ +§  © 0A¡ …ª ¨ © « 0‘¡ ƒ¬ « …­ ª ¬ >� ­ º ® ¡ A÷¯ ú® ° ± ø° ¸ ² ¡ ‘>’ ² ù¯ ø± >’ ~ ù¯ ø¯ = ³ ’ ÷´ ú³ µ ¶ øµ Q· s º ¸ · >” ¸ ù´ ø¶ >” ~ ù´ ø´ = ¹ ” ÷º ú¹ » º ø» Q¼ q 9½ ¸  ¥ ¼ Q¾ ½ Ž¿ w ¾ QÀ ½ ŽÁ x À � ¿ Á Qà ½ ŽÄ y à �Å Â Ä Æ EÅ AêÇ � h>Ç Æ QÈ q 9É Ô  ¥ È QÊ   …Ë jÊ ˆÌ É Ë Í +Ì >� Í ùº øº QÎ v �Ï Î A Ð Ï Ñ +Ð nÒ Ñ 9Ó  Ò AêÔ � h=Õ Ô ”Ö Õ z × Ö Ø %× ƒÙ Ø Ú Ù ‘…Û ¥ QÜ   �Ý Û Ü QÞ q …ß Þ  P à Ý ß 9á à …â žá �ã € â …ä ¥ Qå   ƒæ ä å Qç q …è ç � P é æ è 9ê é …ë kê �ì Ûë …í ¥ ‚ Qî q …ï î ƒ Qð   �ñ ï ð P ò í ñ 9ó ò …ô ¼ó �õ æô Aêö � ­=÷ ö Žø ÷ ã Žù ø ì Žú ù õ =û � …ü Hû �ý ü Žþ ú ý Aêÿ � ­>ÿ þ Ah � n> ª  Ò ©  ¶Ah � >  = � … k � ¼ P    Aê � °>  = � … „ � … Ah � d> Q v Ah � s>  ¢ Q   … ­ ˆ      ¢ Q   … # ˆ     Aê � ­=   .þ Ž   Aê � ­>  … G … H �   …! Ú �" ¶! …# " =$ � …% J$ …& %  �' & …( # ' …) IÚ …* ) Ú �+ ( * >– + º , ¡ ‘÷- ú, . / ø. ¸ 0 ¡ 8>˜ 0 ù- ø/ >˜ ~ ù- ø- = 1 ˜ ÷2 ú1 3 4 ø3 …5 5Ú �6 J5 …7 J6 >– 7 Aê8 � °>8 † Ah9 � d>9 ‡ Ah: � k>: µù2 ø4 º ; ¡ 8÷< ú; = < ø= O > q q  ? B> Q@    A (@ �ˆB ? A C B …D C B …E D " F E …G SF �H –G …I 5H QJ Ó  K 15J …L 5K �M oL …N I M >– N AêO � ­=P O ŽQ P ?AêR � ­>R Q AêS � °>S ˆ AhT � d>T ‰ AhU � k>U Aù< ø< ù2 ø2 PW    V .Š Œ W QX Ó …Y KX >š Y ­ Z Ò ÷[ úZ \ [ ø\ =] š ‚^ Ò  _ &^ sA\` } -_ f=a ` …b La c (] b >š c ù[ ø[ =d – Qe Ó …f d e Žg V f Aêh � ­=i h …j i F=k š Žl j k �m g l Aên � f>n m ­ o Ò ÷p úo q p øq Aêr � f=s r Aht � k=u t …v 5u Aêw � h=x w Aêy � ­=z y Aê{ � °=| { Ah} � d=~ } 9  E Ó p x z z | ~ Ž€  v �� s € Aê‚ � f>‚ � ùp øp =ƒ � þƒ 86‹ Œ 7… 7† 7 ‡ 7ˆ 7‰ 7 Š ø„ ;Ž ž Ÿ ;h  ¡ AX� M­ù¢ ø¢ >ž … Q£ ‡ Q¤ ‡ …¥ o¤ >  ¥ ÷¦ úŠ § ¦ ø§ O ¨ † † Ž © ¨ Ž Qª † …« ª � Q¬ ‡ P ­ « ¬ � ® © ­ 9¯ ® …° ¯ A�± ° A ² 1Tñ Q³ ‡ …´ ² ³ >  ´ ù¦ ø¦ ¸ µ £ A÷¶ úµ · ¸ ø· =¹   …º I¹ ƒ» � º ޼ ˆ » Aê½ ž ­>½ ¼ =¾   PÀ ¾ ¾ ¾ ¿ .‘ “ À AêÁ ž °>Á ¿ =   à .” …  AhÄ ž d>Ä Ã ù¶ ø¸ ¸ Å £ ‘÷Æ úÅ Ç È øÇ =É   …Ê IÉ ƒË àÊ ŽÌ ˆ Ë AêÍ ž ­>Í Ì =Î   PÐ Î Î Î Ï .• — Ð AêÑ ž °>Ñ Ï =Ò   Ó .˜ +Ò AhÔ ž d>Ô Ó ùÆ øÈ =Õ   …Ö œÕ ƒ× 5Ö ŽØ ˆ × AêÙ ž ­>Ù Ø =Ú   …Û IÚ ƒÜ œÛ PÝ Ü Ü Ü AêÞ ž °>Þ Ý Ahß ž d>ß ™ ùÆ øÆ ù¶ ø¶ Ahà ž >à œQá ‡ �â á A ã â ä +ã nå ä 9æ  å ­ ç å ÷è úç é è øé Aêê ž h=ë ê Aêì ž °=í ì Ahî ž d=ï î 9 ð E æ † ë ‰ Tí ï Aêñ ž f>ñ ð ùè øè Aêò ž h=ó ò ”ô ó ‰ õ +ô ƒö õ ÷ ö Aêø ž f=ù ø Aêú ž °=û ú …ü û � Žý ü ÷ Qþ æ  ÿ +þ … 5ÿ � o Ž ý  � ù  Aê ž f>  = ž þ 86 7 7 7 7 7 ø ;Ž   AX M­ù ø >  Q �  A    + n  9   O    Ž    Q P   �    9  …! H �" ­! Ž# " Aê$  ­>$ # Aê%  °>% † Ah&  d>&  Ah'  >' ?Ah(  n>( Q) Ah*  s>* ) Q+ Q,  …- + , …. - kŽ/  . Aê0  f>0 / ­ 1  ÷2 ú1 3 2 ø3 Aê4  f=5 4 Aê6  h=7 6 Aê8  ­=9 8 Aê:  °=; : Ah<  d== < 9 > E   7 9 ; = ?�? 5 > Aê@  f>@ ? ù2 ø2 =A  þA 86b c øB ;ň ‰ ;Å‚ ƒ ;Å| } ;êw x ;êq r ;ņ ‡ ;Å€ � ;ê{ T;êu v ;êo p ;‹ Š Œ ;Å„ … ;Å~  ;êy z ;ês t =F D =H G = K I = M L = O N = Q P = S R = U T P C F H K M O Q S U AXd M­ù� ø� Q Ž C O� Ž Ž Q � C O‘ � � ”’ � ‘ Q “ C O” “ “ Q • C O– • • ”— ” – Q ˜ C O™ ˜ ˜ Q š C O› š š ”œ ™ › P� ’ — œ Qž C >o ž QŸ C >q Ÿ Q   C Q¡   ´ ¢ ¡ -÷£ ú¢ ¤ £ ø¤ Q¥ C Q ¦ C Q§ ¦ 9¨ f¥ § >o ¨ Q© C �ª © f Q « C Q¬ « 9­ fª ¬ Q® C ƒ¯ ® f Q ° C Q± ° 9² f¯ ± ƒ³ ­ ² Q´ C �µ ´ g Q ¶ C Q· ¶ 9¸ fµ · Q¹ C ƒº ¹ g Q » C Q¼ » 9½ fº ¼ ƒ¾ ¸ ½ ¿ D³ ¾ À E¿ QÁ C Q Á Žà À  >q à ù£ ø£ Q Ä C OÅ Ä Ä AhÆ o ­=Ç Æ ŽÈ Å Ç Q É C OÊ É É AhË o °=Ì Ë ŽÍ Ê Ì �Î È Í Q Ï C OÐ Ï Ï AhÑ o d=Ò Ñ ŽÓ Ð Ò �Ô Î Ó Q Õ C OÖ Õ Õ �× Ô Ö >s × =Ø q Ù (� i ˆÚ Ø Ù Q Û C OÜ Û Û QÝ Ú ŽÞ Ü Ý Q ß C Oà ß ß Qá Ú Žâ à á �ã Þ â Q ä C Oå ä ä Qæ Ú Žç å æ �è ã ç >u è Qé C >w é Qê C >y ê Q ë C Qì ë ´ í ì 2÷î úí ï î øï ð � Q ñ C Oò ñ ñ Qó ð ô (ó ‚Põ ô ô ô ˆö ò õ Q ÷ C Oø ÷ ÷ Qù ð  ú (ù ‚Pû ú ú ú ˆü ø û Q ý C Oþ ý ý Qÿ ð   (ÿ ‚P ˆ þ  Q C Q  C Q  Q  C Q  Q  C Q  Q C 9 Qð   9 ß Q C O Q Q  Ž ö  �   Q Q  Ž ü  �   Q Q  Ž   �   >s  Q Q  Ž ö  Q Q  Ž ü  �!  Q" Q# " Ž$  # �% ! $ >u % Q& >w & Q' >y ' Q ( C Q) ( Q * C Q+ * º , + A÷- ú, . / ø. A\0 d ]°=1 0 º 2 1 A>| 2 ù- ø/ >| ~ ù- ø- = 3 | ©4 3 á…5 ) 4 Q 6 C Q7 6 Q 8 C Q9 8 P: 5 7 9 >{ : ùî øî Q ; C O< ; ; Q= < º > = !÷? ú> @ A ø@ QB < ¸ C B j >~ C ù? øA >~ ~ ù? ø? = D ~ ÷E úD F G øF O H < <  I CH l ¸ J I j>€ J ùE øG >€ ~ ùE øE = K € ÷L úK M N øM Q O C QP O ´ Q P %¨ R Q ÷S úR T U øT Q V C QW V ´ X W >„ X ùS øU >„ ½ùS øS = Y „ ¨ Z Y ÷[ úZ \ ] ø\ Q ^ C Q_ ^ ´ ` _ >† ` ù[ ø] >† ½ù[ ø[ = a † ¨ b a ÷c úb d e ød Q f C Qg f ´ h g *>ˆ h ùc øe >ˆ ½ùc øc = i ˆ >‚ i ùL øN >‚ ~ ùL øL = j ‚ ÷k új l k øl A\m d v°=n m o 1T–n …p o m A\q d °f=r q …s r b t  s …u p t v u w  u =x s ƒy x n Qz y …{ v z Q| y …} w | ƒ~ { } Q y …€ w  Q� y …‚ v � �ƒ € ‚ Q„ y P… ~ ƒ „ �† … n >s † Ah‡ u ­=ˆ ‡ …‰ v ˆ AhŠ u °=‹ Š …Œ w ‹ ƒ� ‰ Œ AhŽ u ­=� Ž …� w � Ah‘ u °=’ ‘ …“ v ’ �” � “ Ah• u d=– • P— � ” – >u — ùk øk ˜ � Aš › d ­=œ › =� s P ž � ‘ Ÿ œ ž A™   Š ­>  Ÿ =¡ s Aê¢ Š °>¢ ¡ =£ u Aê¤ Š d>¤ £ =¥ w Aê¦ Š f>¦ ¥ =§ y Aê¨ Š h>¨ § Q © C A™ ª Š k>ª © Q « C A™ ¬ Š n>¬ « Ah­ { ­=® ­ P ¯ ˜ ® A™ ° Š s>° ¯ Q ± C O² ± ± Q³ ˜ ´ (³ ‚Pµ ´ ´ ´ ˆ¶ ² µ Ah· { °=¸ · P ¹ ¶ ¸ A™ º Š >º ¹ Q » C O¼ » » Q½ ˜  ¾ (½ ‚P¿ ¾ ¾ ¾ ˆÀ ¼ ¿ AhÁ { d= Á P à À  A™ Ä Š I>Ä Ã =Å Š Q Æ Å >V Æ AÇ È V °=É È Ê É >È Ê QË Å >X Ë QÌ Å >Z Ì QÍ Å >[ Í QÎ Å >\ Î Q Ï Å >] Ï Q Ð Å >^ Ð Q Ñ Å >_ Ñ Q Ò Å >` Ò Q Ó Å >a Ó ý86ë c øÔ ;Å› œ ;Å� � ;h‡ ;h~ ;hw ;hl ;Å` a ;ÅV W ;ÅL M ;hC ;ê7 8 ;Å� ž ;Å‘ ’ ;hˆ =;Å € ;hx ;Åm n ;hb c ;Ž X Y ;êN T;ÅD E ;Å9 : ;hŸ   ;Å“ ” ;h‰ ;Å� ‚ ;hy ;Åo p ;hd e ;hZ ;êO æ;ÅF G ;Å; < ;Å¡ ¢ ;Å• – ;hŠ ;hƒ A;Åz { ;Åq r ;Åf g ;h[ ;ÅP Q ;hH ;Å= > ;Å— ˜ ;ê‹ Œ ;h„ A;h| ;Ås t ;Åh i ;ê\ ] ;ÅR S ;êI æ;Å? @ ;h™ š ;Å� Ž ;h… † ;h} ;êu v ;Åj k ;ê^ _ ;ÅT U ;ÅJ K ;ÅA B = × Ö =Ù Ø =Û Ú =Ý Ü =ß Þ = á à = ã â = å ä = ç æ = é è P Õ × Ù Û Ý ß á ã å ç é AXì M­ù£ ø£ Q¤ Õ Ñ¥ ¤ Q¦ ¥ Q§ ¥  ¨ (¦ § Q© ¥  ª (© ‚ « (¨ ª Q¬ Õ Ñ­ ¬ Q ® Õ Q¯ ® Q ° Õ O± ° ° Q ² Õ Q ³ Õ O´ ³ ³ Q µ Õ O¶ µ µ Q · Õ O¸ · ·  ¹ D¶ ¸ Qº Õ  » Eº >7 » A[¼ ì °= ½ ¼ O¾ ½ ½ Q¿ Õ ƒÀ ¾ ¿ Á EÀ = 7 ”à  Á ¸ Ä Ã ÷Å úÄ Æ Ç øÆ ´ È ¯ *¨ É È ÷Ê úÉ Ë Ì øË ´ Í ¯ >; Í ùÊ øÌ >; ½ùÊ øÊ = Î ; >9 Î ùÅ øÇ >9 ~ ùÅ øÅ = Ï 9 ÷Ð úÏ Ñ Ð øÑ =Ò 7 Ó Ò >7 Ó ùÐ øÐ QÔ Õ  Õ Ô QÖ Õ º × Ö AQØ Õ º Ù Ø A÷Ú úÙ Û Ü øÛ ¨ Ý × >= Ý ùÚ øÜ >= ~ ùÚ øÚ = Þ = ¨ ß × ÷à úß á â øá ¨ ã Þ >? ã ùà øâ >? ~ ùà øà = ä ? Qå Õ ´ æ ¯ 2¨ ç æ ÷è úç é ê øé ´ ë ¯ 4>A ë ùè øê >A ½ùè øè = ì A Qí ² Qî ² ´ ï ¯ 2©ð ï î í �ñ ð A ò +ñ nó ò ©ô ì ó A[õ ì d= ö õ O÷ ö ö Qø Õ ƒù ÷ ø ”ú ù ù û (ú I ü  û Žý ù ü Qþ Õ 9ÿ —þ Qÿ A\ì í­=ƒK¸ QÕ 9!ù QÕ A[ì d= O   9 ã ©  …  A\ì df=A\ì ff=�ú ˆA\ì S ­=A\ì S °=9¿… A\ì df=A\ì hf=�ú ˆ…  A[!ì k= "!O#""$#=%7 ”&%$º '&÷(ú')*ø)A\+ì n­=,+A\-ì nd=.-�/,.º 0/�>D 0ù(ø*>D ~ ù(ø(= 1D ÷2ú134ø3¨ 5>F 5ù2ø4>F ~ ù2ø2= 6F ÷7ú687ø8Q9Õ A[:ì = ;:A[<ì I= =<9>{9#;=Q?Õ Ž@$„ 9A!?@…B>A>C Bù7ø7A\Cì ­=DCA\Eì °=FE�GDF…HGAA\Iì d=JIA\Kì vf=LK�MJL…NMAA\Oì I­=POPQHNPQRÕ ƒSQR TBSA\Uì kf=VU…WTTA\Xì vd=YXA\Zì vd=[Z…\Y[ˆ]W\�^]ˆ_V^©`…a_`=b7 c(T¼PdcccˆeSd”fbe…g¶f�hµgA\jì if=kjº lk÷múlnoøn¨ p>J pùmøo>J ~ ùmøm= qJ ÷rúqsrøsA[tì i= utOvuuQwÕ ƒxvw”yxx z(yI { zŽ|x{>I |A\}ì I­=~}QÕ Q€ƒ�~€Q‚x ƒ%‚í ˆ„�ƒº …„÷†ú…‡ˆø‡¸ ‰„>L ‰ù†øˆ>L ~ ù†ø†= ŠL ÷‹úŠŒ‹øŒQ�Õ O Ž��O �xxŽ ��„� ‘Ž�Q’Õ Q“’A\”ì I­=•”ƒ–“• —(–A\™ì ˜f=š™…›—š�œ~›A\�ì if=ž� Ÿ(y¼ˆ žŸA[¡ì = ¢¡A[£ì I= ¤£9 ¥º‘¢¤œ…¦ ¥Q§Õ 9¨!§x…©¦¨>H ©ù‹ø‹ùrørA\«ì ªf=¬«º ­¬÷®ú­¯®ø¯A[°ì ª= ±°O²±±Q³Õ ƒ´²³”µ´´ ¶(µI · ¶Ž¸´·>O ¸9¹VA\ºì ªf=»º�¼µ?ˆ½»¼Q¾Õ A[¿ì ª= À¿OÁÀÀ9Âã¾Á…ýŽĹÃ>N Äù®ø®9ÅVQÆÕ 9ÇVÆŽÈÅÇ=É7 9ʳÉ9Ë‘ÿ ÊPcÍ©ÌÍËTQÎÕ =Ï7 ‚Ðô 9Ñ ÎÏÐ�ÒÑÌ=ÓN =Ô7 =ÕO ”ÖÔÕ�×Ö? Ø(׎ÙÓØˆÚÙî �ÛÒÚ�ÜÛÈA[Ýì f= ÞÝOßÞÞŽàß=á7 ”âáý �ãâÝ ä(ãŽåàäˆæåï �çÜæA[èì h= éèOêééŽëê =ì7 ”íìý …îAí�ïAîŽðëï�ñçðA[òì n= óòOôóó=õC Žöôõ=÷7 ”ø÷$ ù(øŽúöù�ûñúA[üì ˜= ýüOþýý=ÿH =7 =I ” (…ÿŽþ�ûA[ì n= O … ahŽ   �  A[ ì s=  O� 9yA\ì S f=…A\ì S d=º ¨ ÷úø´ ¯ >P ùø>P ½ùø= P ¨ ÷ú !ø ´ "¯ .>R "ùø!>R ½ùø= #R ¨ $#÷%ú$&'ø&´ (¯ *>T (ù%ø'>T ½ù%ø%= )T ¨ *)÷+ú*,-ø,´ .¯ '>V .ù+ø->V ½ù+ø+= /V Aê0X ­>0± Aê1X °>1TAh2X d>2+Aê3X f>3T=47 Aê5X h>54Ah6X k>6Ah7X n>7Ah8X s>8Ah9X >9ÝAh:X I>:>\ ¶ >^ ¸ ÷;ú× <=ø<Q>å Q?´ …@>?>Z @QAå QB´ …CAB>[ C>\ ¹ >^ ¸ ù;ø=÷DúÞ EFøEQGå QH´ …IGH>Z IQJå QK´ …LJK>[ L>\ ¶ >^ ¹ ùDøFQMå QN´ …OMN>Z OQPå QQ´ …RPQ>[ R>\ ¶ >^ ¸ ùDøDù;ø;´ S¯ ¨ TS÷UúTVWøV´ X¯ +>` XùUøW>` ½ùUøU= Y` ÷ZúY[\ø[Q]´ Q^´ ©_× ^]Q`´ Qa´ ©bÞ a`Qc´ ©d× cb¾ e_dQf² =g[ =hZ ©iehg>b i=jZ =k[ ©lekj>d lº mf‘÷númopøo¸ qf8>f qùnøp>f ~ ùnøn= rf ÷súrtsøtQuÕ Qvu>b v=wZ >d wùsøsº xfA÷yúxz{øz¸ |f‘>h |ùyø{>h ~ ùyøy= }h ÷~ú}€ø>j Þ ù~ø€>j ~ ù~ø~= �j ÷‚ú�ƒ‚øƒQ„Õ Q…„>b …Q†Õ Q‡†>d ‡ù‚ø‚÷ˆú/‰Šø‰=‹b QŒ² …�‹Œ=Žd Q�² …�Ž�Q‘² 9’ö��‘>l ’º “f‘÷”ú“•–ø•¸ —f8>m —ù”ø–>m ~ ù”ø”= ˜m ÷™ú˜š™øš=›d ˆœ›­ �œ=žl QŸ² � ŸP ¡� 9¢Õ¡…£?¢�¤ð £…¥ž¤>l ¥=¦d �§�A…¨§­ƒ©¦¨…ª­Aƒ«ª¿9¬ß©«« =­l ®.ݬ…¯­®>l ¯ù™ø™ùˆøŠ>l ­ùˆøˆ=°l ޱ± °Aê²X ­>²±Q³² …´À³�µ«´P¶µµµAê·X °>·¶Q¸² …¹„ ¸�º-¹Ah»X d>»º´ ¼¯ +÷½ú¼¾½ø¾Q¿Õ O À¿¿Ž ÁÀØ9ÂÁ…ÃÂA�ÄÃA©Å/Ä…Æ?Å�ÇÃÆŽÈ± ÇAêÉX ­>ÉÈ=ÊZ QË´ …ÌËA�ÍÊÌQδ …ÏÎA=ÐZ ƒÑÏÐ Ò%ÍÑ=Ó[ QÔ´ …ÕÔA�ÖÓÕQ×´ …Ø×A=Ù[ ƒÚØÙ Û%ÖÚ Ü%ÒÛQݲ ƒÞÜÝ9ßßÞª« QಠƒáÜàƒâá«9ãß⺫ ä(ßã©åÞ …æäåAêçX ­=èç…éæ=Pëééé ê.èñ ëAêìX ­>ìêPîæææ í.ò ô îAêïX °>ïí ð.1‡ æAhñX d>ñðù½ø½º òfA÷óúòôõøô¸ öf‘>o öùóøõ>o ~ ùóøó= ÷o ÷øú÷ùúøù>q Þ ùøøú>q ~ ùøøø= ûq ÷üúûýüøýA\ÿì þ­=ÿA\ì þd=P A\ì þ°=A\ì þd=P Q Õ O   ƒ  Q Õ O   ƒ    (   (õ A\ì þf= (¼ B 1 .?QÕ 9_¨…AhX k>ùüøüùZø\´ ¯ ÷úøQ ² Q!² Q"² Q#² ÷$úä %&ø%Q'Õ Q('º )(>s )ù$ø&>s ~ ù$ø$= *s ÷+ú*,-ø,Q.å …/.Q0å Q1´ =27 =3\ …4/ÃŽ534�625 7E6>u 7÷8ú/98ø9=:Z =;[ P <:;Ž =<ö P >  � ?=>9@?…A@A�BAA…CàB�D×C=EZ …FE!=G[ …HGP IFH…J ŽP KJJ� LIK9ML…NHM�ODN>w O�P0A…QP1º R"¶÷SúRTUøT…V" WV�XW…Y1÷ ˆZYX…[1žƒ\Q[ˆ]\Z�^]A _^ `+_X…a`Z�b[aƒcQb dc e1>¼dƒfe=gu =h^ icˆji¼ k+já…lkf…ml­Žnhm�ogn pEo>u p=qw …r†f�sr…tqs>w t=ux vcƒwvm 9xßw~« …yx! z(uy>x zƒ{X…|Z{�}[| ~0}QƒX…€Z��[€ ‚0Q�…ƒ~‚ „/ …0„=…†ƒ…P ‡ $9ˆÕ‡…‰oˆ�ж‰…‹†Š>y ‹ƒŒX‘…�ZŒ�Ž[�ƒ�QŽ ��Q‘å …’‘"…“Q„ ”“P • ”9–Õ•…—–�˜’— ™ ˜ š0A™=›x 9œß�š « …�†œ…ž�š Ÿ0?!… žŸ ¡/ ¢0¡:…£ ¢ ¤(›£>x ¤ùSøU…¥1=ƒ¦Q¥ §¦=¨x 9©ß§@« ª/ «0ªJ…¬©«Q­å …®­!�¯®  ° ¯ ±0A°…²¬±…³²! ´(¨³>x ´=µx …¶1ø ƒ·Q¶9¸ß·~« …¹¸! º(µ¹>x º=»x …¼1jƒ½Q¼9¾ß½~« …¿¾! À(»¿>x À Á§ Â0Ák…Æ…Ä" Å0AÄ…ÆÃÅ>y ÆùSøS Ç/ È1JÇ=Éw …ÊTȃËÊ…ÌÉË…ÍÿÈ…ÎÍ#�ÏÌÎ>w Ï=ÐZ …ÑÐ2=Ò[ …ÓÒ'P ÔÑÓ…Õ  P ÖÕÕ� ×ÔÖ9Ø× Ù1µ–Ø…ÚÙ#=Ûw …ÜÚ†�ÝÛÜ>w Ýù8ø8=Þw Žß± Þ=ày ƒáàŽâßáŽãù Ý=äx Pæäää å.âãæAêçX ­>çå…èK"�é¼èPêééé=ëx Píëëë ì.êû íAêîX °>îì…ï/"�ð)ï=ñx ò.ð˜ ñAhóX d>óò=ôu AêõX h>õôù+ø-÷öúÞ ÷øø÷QùÕ Qúùº ûú>z ûùöøø>z ~ ùöøö= üz ÷ýúüþÿøþQå … 1þ÷ Qå  1o“�Qå Q´ … …  ü Q å …  P   9 …A�A©/AP .ý þ  0ð !P .  +P .± AêX ­>…A +ƒ…PAê X °> Ah!X d>!„ Ah"X k>"µAh#X I>#?ùýøÿŽ$± =Aê%X ­>%$Ah&X k>&Jùýøýù+ø+ùø´ '¯ ÷(ú')*ø)÷+ú/,+ø,Q-Õ O .--Ž /.&Q0Õ Q10…21"P 322� 4/3Q5² P 655� 746987…98A�:9A ;1H=:Q<² …=;<>| =ù+ø+=>| …?H>ƒ@œ?ŽA± @AêBX ­>BA=C| PECCC D.  EAêFX °>FD=G| H. )GAhIX d>IHù(ø*´ J¯ ÷KúJLMøL÷Nú/OPøO> Þ ùNøP> ~ ùNøN= Q ÷RúQSRøS=T[ ˆUTm VU=WZ X UƒYXA…ZYm …[ZÝ�\W[ ] Uƒ^]A _^ƒ`_H=aZ …baØP cbV9dc…ekdƒf`eˆg« m �hIg i1hfƒji…k\™ …lV¬Qm² �nlmP okn9po…qpA�rqA s1HÝr…t\ü …uV"P vtu9wv…x¶w�yµxQz´ Q{² �|{P }V|9~Õ}…I~�€?…�z€Q‚´ ƒ‚…„ƒ’ =…Z †0„…=‡Z ˆ0‡�…‰†ˆ=Š[ ‹ŠQŒ´ …�Œo Ž0‹�…�‰Ž…�js…‘�y…’‘�Q“² …”’“Q•² P –V•9—Õ– ˜0¥—…™”˜>} ™Qš´ …›šA=œZ �œƒž›�QŸ´ … ŸA=¡[ ¢¡ƒ£ ¢ ¤%ž£=¥Z =¦[ P §¥¦Ž ¨§29©¨…ª¿©�«¤ª ¬1k«ƒ­¬…®­A=¯Z =°[ P ±¯°Ž ²±$Q³² P ´³³� µ²´9¶µ ·1µ­¶…¸·†�¹®¸>~ ¹ùRøR=º~ …»º¶ƒ¼»Ž½± ¼=¾} …¿¾JPÁ¿¿¿ À.½ ÁAêÂX ­>ÂÀAêÃX °>à ùKøM´ į ÷ÅúÄÆÇøÆQÈÕ O ÉÈÈA[Êì = ËÊA[Ìì I= ÍÌ Î(« º9 ϺÉËÍÎ… ÐÉ 9ÑÐ…ÒÑA�ÓÒAA\Ôì vf=ÕÔA\Öì ­=×ÖA\Øì °=ÙØA\Úì ­=ÛÚƒÜÙÛ…ÝÜ?�Þ×݃ßÕ5P àÞ߃ áÉà âBáãâ…äã­ åäA[æì n= çæOèçç…éIÓ�êÀéA\ëì d=ìëQíÉ î1ìÕí…ïoî�ð5ï…ñêð…ò9å�óñòŽôèóŽõôÏAêöX f>öõƒ÷ÏŽø ÷AêùX ­>ùø…ú?ÏPûúúúAêüX °>üûAhýX d>ýØùÅøÇ´ þ¯ 2÷ÿúþø=X QÕ QÕ QÕ Q Õ Q Õ QQ Õ Q  9 {  ² ¶ ¸ ¹ Á >X ùÿø´ ¯ 3÷ ú ø=X QÕ 9 ‹ ² ± Á />X ù ø´ ¯ 4÷úø=X QÕ 9  ² ± Á >X ùø´ ¯ ÷úøAêX ­>± AhX n>†Q ² º ! A÷"ú!#"ø#A\$ì d°=%$Q&Õ Q'&ƒ(%' )((=*7 ”+*Á ,+ -%,ƒ.- /.…0µ/�1¶02)ˆ32k 43…54 6)ˆ76à 87…98H�:59…;:1A\<ì df==<…>=;Ž? >Aê@X f>@?…Aœ-�BÿAŽC± BAêDX ­>DCAhEX >EQF² AhGX s>GFù"ø"ùø´ H¯ !¨ IH÷JúIKLøK´ M¯ ->� MùJøL>� ½ùJøJ= N� ÷OúNPQøP÷Rú/SRøS=TZ =U[ P VTUŽ WV$QX² P YXX� ZWY9[Z…\[A�]\A>ƒ ]ùRøR=^ƒ …_Ý^�`=_Ža± `Qb² …cbÝ=dƒ e15­d…fce�gfŽhagAêiX ­>ihAhjX n>j­´ k¯ -÷lúkmlømA[nì n= onOpoo…q± pAêrX h=sr”tsÁ u(t…vIu�w¥vŽxqwAêyX f>yxQzÕ Q{z�|{ }| ~1ª¿}ƒ~Aê€X ­=�€…‚JP„‚‚‚ ƒ.� „Aê…X ­>…ƒùlølùOøQ´ †¯ "÷‡ú†ˆ‰øˆ÷Šú/‹Šø‹=ŒZ =�[ P ŽŒ�©�Þ ÂJP �Â�… ‘Ž�9’[‘…“’A�”“A>„ ”=•„ =–Z …—– =˜[ …™˜ÝP š—™9›š œ1œ­›…�¥œ©žÞ �ƒŸ•ž>„ ŸùŠøŠ= „ …¡o �¢G¡Ž£± ¢Aê¤X ­>¤£ù‡ø‰´ ¥¯ #÷¦ú¥§¨ø§Q©² QªÕ Q«ªˆ¬«© ­¬P ®­"9¯Õ®…°¯�± °P ²­(9³Õ²…´³±QµÕ Q¶µ�·¶´ˆ¸·± ¹¸P º­¹Q»² P ¼»»� ½º¼9¾Õ½…¿o¾�Àþ¿>… ÀQÁÕ QÂÁ�íA…ÄéƒÅÂÄ…Æ©AƒÇÆ>9ÈßÅÇ« �ɹA…ÊɱƒË·Ê…̱AƒÍÌ�9ÎßËÍ« ÷Ïú/ÐÏøÐQÑÕ QÒÑ…ÓÒ=QÔÕ QÕÔ…ÖÕ=…×­_�ØÖ×9ÙÕº…ÚÙ/9ÛöÓØÚ>‡ ۅܹ±ƒÝ·ÜQÞÕ QßÞˆàß© á àƒâáA…ãâ© äã…婆ƒæäåƒç±Ý è%ÝçƒéèH�êš « P ëæé ìBë í1š êìƒîí=ï… …ð5îƒñð…òïñ>… òùÏøÏ=ó… Žô± ó=õ‡ Žöôõ…÷ÈÎ ø.ÿ÷ŽùöøAêúX ­>úùAêûX °>û AhüX d>ü'A[ýì £= þýQÿÕ QÿQþƒQþQÕ Qƒ %QÕ Q Q þƒ   Q þQ Õ Q ƒ  %  % 1™ .¶QÕ 9_¨ …AhX k>ù¦ø¨´ ¯ $÷úøQ² Q² =Z =[ © Þ Q!Õ Q"!A\#ì If=$#ƒ%"$ˆ& ˆ'% ( &ƒ)(A *)…+* , 'ƒ-,A .-…/.…0Aƒ10+…2Aƒ32/ 4%13…5« �6k5 71k64ƒ87 91k’ 4 :1’ A4ƒ;:…<9;÷=ú/>=ø>¸ ?31©@? %¸ A31©BA% QC² 9Dö@BC…EDÃ>ˆ E F &ƒGFA HG I 'ƒJIA KJ=L^ ŽMLK=N\ ŽONH¸ P13PcRPPP©QROM=S7 …T<5ŽUQT�VSU WEVAêXX h>XWù=ø==Yˆ ŽZ± Y [.=8Ž\Z[Aê]X ­>]\Aê^X °>^ Ah_X d>_/ùø´ `¯ %÷aú`bcøbAêdX ­>d± AêeX °>e AhfX d>f… ùaøc´ g¯ &÷húgijøi kEå QlkQmk nlmQok p+oá qp÷rú/srøs…tn™Qu² �vtu…wqYP xvw9y[x…zn!…{q#P |z{9}|…~†}�y~ €1K¥>‰ €ƒ�m9‚ß�¿�ˆƒn �„ƒA … „ƒ†…A9‡ß†¿¿ˆˆq �‰ˆA Š ‰ƒ‹ŠA9Œß‹¿¿…�‚­ Ž(‡Œ…�ŽA �(��>Š �ùrør…‘±  =’‰ P”’’’ “.± ‘”=•Š …–=•ƒ—–Ž˜“—Aê™X ­>™˜AêšX °>š Ah›X d>›„ ùhøj´ œ¯ .÷�úœžŸøžQ å Q¡å ©¢× ¡ Q£å P ¤¢£Ž ¥¤Q¦¥Q§¥ƒ¨§6 ©(¨…ª© P «¦ª ¬B« ­1Û¬ƒ®­Q¯¥ °¯ ±1@ °ƒ²±Q³¥�´³¥ µ´ ¶1@Úµƒ·¶�¸²·Q¹¥…º¹Q»¥…¼»�½º¼ ¾ ½ƒ¿¾A À¿ Á1<kÀƒÂÁƒ Ã¥ ÄBà Å1  ăÆÅQ ÇÕ QÈÇ É0AȃÊÉ…ËÆÊŽ Ì¥9ÍÌ…Î?Í�ÏJÎŽÐ ÏAêÑX ­>Ñ ŽÒ Ë�ÓÐÒŽÔÓ® Õ+¸ƒÖÕŽ×ÔÖ…ØµÂƒÙØŽÚ×ÙAêÛX f>ÛÚAêÜX °>Ü AhÝX d>Ý4ù�øŸ´ Þ¯ '÷ßúÞàáøàQâÕ Qã⺠äãA÷åúäæçøæQèå Qéå êéP ëèêŽ ìë íBìQîìQïì ðîïQñ­ Qò­  ó(ñò…ôóƒõíø 9ößõ>ôƒ÷í 9øß÷�ô ù(öøƒúí 9ûßúªô ü(ùûˆýð �þýA ÿ þƒÿA…ô$9ßj 0 í… 0íø …�Lôˆð � A   …   ƒ     …í ƒí P  B 1Lƒ (ü9`ìô ( ( 1Aí…?Ž ì �  9…A�A 1?­… œ�! …"± ! ƒ#!Ž$"#P& %.$" &Aê'X ­>'%Aê(X °>(# Ah)X d>)„ Aê*X ­=+*Ž,+<A\-ì S f=.- /(.P0///ˆ1,0Aê2X f>21ùåøçAê3X ­>3$ Aê4X °>4% Ah5X d>5„ ùåøåùßøá´ 6¯ (÷7ú689ø8Aê:X ­>:± Aê;X °>;& Ah<X d><' ù7ø9´ =¯ )÷>ú=?@ø?AêAX ­>A± AhBX k>B5ù>ø@´ C¯ ,÷DúCEFøEAêGX ­>GTQH² ŽI± HAêJX f>JIùDøF´ K¯ *÷LúKMLøMQNå �ONAQPå �QPAP ROQO S² ² ƒ TRSQU´ QV´ P WUV… XTW YBXQZXQ[X \Z[ˆ]\†…^]&Q_² �`^_ a `ƒbaAˆcb&…dc†…edYQf­ Qg´ …hfgQi­ Qj´ …kij l(hk…mlS�nm( 9oße¡nˆpYo…q\Qr² �sqr t s…uÝt�vpu w vƒxwA…yxo9zßy©n…{\…|Y$P }{|Q~² …~ P €� �}€9‚�…ƒ‚A�„ƒA …0?„Q†´ Q‡´  ˆ(†‡…‰AˆˆŠY‰ ‹1µŠƒŒ‹Q�RQŽRƒ�Ž �%��Q‘RQ’Rƒ“’ ”%‘“ •%�” –1I•…—z… ˜(o—…™˜Œ…š™–Q›² …œš› �+œ…ž�=AhŸX s>ŸžAê X ­> ) Ah¡X n>¡‘ùLøLùDøDù>ø>ù7ø7ùßøßù�ø�ùhøhùaøaùøù¦ø¦ù‡ø‡ùOøOùøùøù ø ùÿøÿùÅøÅùKøKù(ø(ùøùZøZAê¢X h=£¢”¤£ý Ah¥X =¦¥�§¤¦ ¨(§Ah©X =ª©�«ªˆ¬¨«�­ý Á ®E­”¯£® °(¯Ah±X d=²± ³°²Ah´X d=µ´�¶µ#…·³¶…¸·Ú ¹0¤…º¸¹”»£Á ¼+»ƒ½¼ ¾½Ah¿X n=À¿…Á¾ÀA[Âì f= ÃÂOÄÃÃŽÅÄAêÆX ­=ÇÆAhÈX k=ÉȅʬɅËÁA�ÌÊËŽÍÅÌA[Îì h= ÏÎOÐÏÏŽÑÐ …ÒA¤�ÓAÒŽÔÑÓAhÕX k=ÖÕŽ×ÔÖ�ØÍ×…ÙÇØAêÚX °=ÛÚ…ÜÛÅŽÝܺ�ÞÙÝ>‹ ÞA\ßì ªf=àߺ áਠâá÷ãúâäåøäA\æì ý­=çæº èç>� èùãøå>� ½ùãøã= é� ÷êúéëêøë=ìO ”í£ì�îí? ï(îˆðïÂ=ñ‹ AêòX ­=óò=ôN …õÁo�öðõŽ÷ôö�ø÷È…ùóøAhúX k=ûúŽüùû�ýñü>‹ ýùêøê”þ£$ ÿ(þ�$Á E”£ (AhX d= AhX d=� #…  …  Ú= ‹ A[ ì n=  O=C AhX I=…ŽAêX ­=…Áo�ÿŽAêX °=Ž  0ÿŽ�… �!  >‹ !="H º #"÷$ú#%$ø%=&I ”'£&Ah(X =)(�*') +(*Ah,X =-,�.-ˆ/+.=0I �10Á 2E1”3£2 4(3Ah5X d=65 746Ah8X d=98�:9#…;7:…<;Ú =0'…><==?‹ A[@ì ˜= A@OBAA=CH ŽDBCAêEX ­=FEAhGX k=HG…I/H…JÁo�KIJŽLFKAêMX °=NMŽON>�PLO…QDP�R?Q>‹ Rù$ø$=S‹ AêTX ­=UTA[Vì n= WVOXWW Y(T¼PZYYYˆ[SZ”\£[…]¶\�^µ]…_a^Ž`X_A[aì s= baOcbb�d`c…eUdAhfX k=gfŽheg�iSh>‹ i´ j¯ $¨ kj÷lúkmnøm´ o¯ >� oùløn>� ½ùløl= p� ¨ qp÷rúqstøs´ u¯ ">‘ uùrøt>‘ ½ùrør= v‘ ÷wúvxwøxA\yì v°=zy {1œ–zQ|Õ Q}|…~}–A\ì °f=€…�€* �‚~� ƒ ‚…„ƒ{……„–Q†|…‡†™Qˆ|…‰ˆÂ�Ї‰�‹Š…A\Œì °f=�Œ…Ž�à��‹Ž � �…‘A��’A‘ “’%=”‹ …•“{…–•ú ƒ—–Ž˜”—>‹ ˜ùwøw=™‹ AêšX ­=›š�œÌÑ…�›œAhžX k=ŸžŽ �Ÿ�¡™ Aê¢X f=£¢�¤¡£>‹ ¤A\¥ì v­=¦¥º §¦+ ÷¨ú§©ªø©¸ «¦•>“ «ù¨øª>“ ~ ù¨ø¨= ¬“ ÷­ú¬®¯ø®Ž°5>‹ °ù­ø¯º ±¦8÷²ú±³´ø³¸ µ¦, >• µù²ø´>• ~ ù²ø²= ¶• ÷·ú¶¸¹ø¸AhºX k=»ºP¼»»»>‹ ¼ù·ø¹º ½¦- ÷¾ú½¿Àø¿¸ Á¦. >— Áù¾øÀ>— ~ ù¾ø¾= — ÷ÃúÂÄÃøÄPcÆ///©ÅÆ0 / >‹ ÅùÃøÃù·ø·ù­ø­=Ç‹ QÈÕ A[Éì °= ÊÉOËÊÊA[Ìì d= ÍÌOÎÍÍA[Ðì Ï= ÑÐA[Òì ~= ÓÒ9 Ô›ÇÈËÎÑÓ=Õ‹ ´ Ö¯ 1 ©×ÖkPÙ××× Ø.ÕÔÙ>‹ Ø´ Ú¯ 1 ÷ÛúÚÜÛøÜ=Ý‹ ”Þ£Á ß+Þƒàß áàŽâ3 á�ãÝâ>‹ ãäÁ ”åäý æ(å çæ è%…éçèQê² …ëéê=ì‹ …íëKŽî4 í�ïìî>‹ ïQð²  ñ+ð>™ ñQò² º óòA÷ôúóõôøõ=ö™ Q÷å  ø15 A÷ƒùø…úöù>™ úùôøô=û™ AhüX s>üûùÛøÛA\ýì ý­=þýº ÿþ÷úÿøQÕ A[ì °= Oƒ BA\ì í­= �  ¶A\ ì If=  �  ÝA\ì ýd=A\ì ýf=�…AP  9ÄA[ì °= O (�Pˆ9 €A=‹ 9VA\ì ý­= …! @…"!Ž#"�$#>‹ $ùøA\%ì ªf=&%º '&÷(ú')*ø)>› ù(ø*>› ~ ù(ø(= +› ÷,ú+-,ø-Q.Õ A[/ì °= 0/O100ƒ2.1 3B2 4(3�P5444ˆ625A[7ì °= 87O9889:—99;³6A\<ì í­==<Q>:ƒ?=>Q@; A%@í ˆB?A C+B3A[Dì ª= EDOFEEA[Gì °= HGOIHHƒJFI”KJ6”LJJ…MKKƒNLM O(N�PO? QPƒR3KˆSRQ TSƒUCKˆVUQ WVƒXTWˆYXQ=Z‹ 9[VA\\ì ªf=]\…^]>…_^YA\`ì Ïf=a`baƒcC d(c…ebd fe…g_fŽh[g�iZh>‹ iù,ø,A\jì f=kjº lkA÷múlnoønAhpX s=qpº rq6 >� rùmøo>� ~ ùmøm= s� ÷túsutøuQvÕ A[wì °= xwOyxxƒzvy {Bz |({�P}|||ˆ~z}Q Õ O €A\�ì °f=‚�…ƒ‚‚ A\„ì °f=…„…†…&P ‡ƒ†� ˆ€‡9‰õˆA[Šì °= ‹ŠOŒ‹‹A[�ì = Ž�A[�ì I= ��A\‘ì vf=’‘9 “¥Œ~{#Ž�‰’º ”“÷•ú”–•ø–—~”˜#—A\™ì nf=š™9›�˜š…œ“›=�‹ A[žì = ŸžO ŸŸ¡œˆ¢¡= £¢ƒ¤£…¥=¤Ž¦ ¥�§�¦>‹ §ù•ø•ùtøtAh¨X s=©¨>Ÿ ©A\ªì ]d=«ªº ¬«÷­ú¬®¯ø®Ah°X s=±°º ²±6 >¡ ²ù­ø¯>¡ ~ ù­ø­= ³¡ ÷´ú³µ´øµQ¶Õ A[·ì °= ¸·O¹¸¸ƒº¶¹ »BºA\¼ì ]d=½¼A\¾ì ]f=¿¾ À(»e ˆÁ¿ÀƒÂÁ Ã…Ľà Å+ăÆÅ>Ÿ Æù´ø´=Ç‹ A\Èì sf=ÉÈ9Ê„ÇÉAhËX s=ÌËŽÍÊÌ=Ο P ÏÍÎ>ê Ïý8  ‘Hq»Ü[ÊËshaders/room_blitjÔô“BTSR s s K¾ ÇK4Ië 4$K$q ð5K;6•Ð6S #IKvs_mainvs_mainfs_mainfs_mainH struct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct Blit { dof: vec4, } const DOF_TAPS: i32 = 20i; const GOLDEN: f32 = 2.3999631f; @group(0) @binding(0) var roomTex: texture_2d; @group(0) @binding(1) var roomSamp: sampler; @group(0) @binding(2) var blit: Blit; fn finiteTexel(c: vec4) -> bool { return all((abs(c) < vec4(1000000000000000000000000000000f))); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p = pos[vi]; out.position = vec4(p, 0f, 1f); out.uv = vec2(((p.x * 0.5f) + 0.5f), (0.5f - (p.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { var sum: vec3; var wsum: f32; var k: i32 = 0i; let c0_ = textureSample(roomTex, roomSamp, in.uv); let _e5 = finiteTexel(c0_); let rgb0_ = select(vec3(0f), c0_.xyz, _e5); let _e13 = blit.dof.x; if (_e13 <= 0f) { return vec4(rgb0_, 1f); } let coc = select(0.25f, clamp((1f - c0_.w), 0f, 1f), _e5); if (coc < 0.02f) { return vec4(rgb0_, 1f); } let _e32 = blit.dof; let rad = (_e32.yz * coc); sum = rgb0_; wsum = select(0f, 1f, _e5); loop { let _e42 = k; if (_e42 < DOF_TAPS) { } else { break; } { let _e45 = k; let fk = (f32(_e45) + 0.5f); let r = sqrt((fk / 20f)); let a = (fk * GOLDEN); let o = (vec2(cos(a), sin(a)) * r); let s = textureSampleLevel(roomTex, roomSamp, (in.uv + (o * rad)), 0f); let _e65 = finiteTexel(s); if !(_e65) { continue; } let reach = (clamp((1f - s.w), 0f, 1f) / max(coc, 0.001f)); let w = clamp((((reach - r) * 6f) + 1f), 0f, 1f); let _e84 = sum; sum = (_e84 + (s.xyz * w)); let _e88 = wsum; wsum = (_e88 + w); } continuing { let _e90 = k; k = (_e90 + 1i); } } let _e93 = sum; let _e94 = wsum; return vec4((_e93 / vec3(max(_e94, 0.001f))), 1f); }  Sb+,ævs_mainmain#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Blit { vec4 dof; }; const int DOF_TAPS = 20; const float GOLDEN = 2.3999631; smooth out vec2 _vs2fs_location0; bool finiteTexel(vec4 c) { return all(lessThan(abs(c), vec4(1e30))); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p = pos[vi]; out_.position = vec4(p, 0.0, 1.0); out_.uv = vec2(((p.x * 0.5) + 0.5), (0.5 - (p.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainÊ#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct Blit { vec4 dof; }; const int DOF_TAPS = 20; const float GOLDEN = 2.3999631; uniform highp sampler2D _group_0_binding_0_fs; layout(std140) uniform Blit_block_0Fragment { Blit _group_0_binding_2_fs; }; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; bool finiteTexel(vec4 c) { return all(lessThan(abs(c), vec4(1e30))); } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); vec3 sum = vec3(0.0); float wsum = 0.0; int k = 0; vec4 c0_ = texture(_group_0_binding_0_fs, vec2(in_.uv)); bool _e5 = finiteTexel(c0_); vec3 rgb0_ = (_e5 ? c0_.xyz : vec3(0.0)); float _e13 = _group_0_binding_2_fs.dof.x; if ((_e13 <= 0.0)) { _fs2p_location0 = vec4(rgb0_, 1.0); return; } float coc = (_e5 ? clamp((1.0 - c0_.w), 0.0, 1.0) : 0.25); if ((coc < 0.02)) { _fs2p_location0 = vec4(rgb0_, 1.0); return; } vec4 _e32 = _group_0_binding_2_fs.dof; vec2 rad = (_e32.yz * coc); sum = rgb0_; wsum = (_e5 ? 1.0 : 0.0); bool loop_init = true; while(true) { if (!loop_init) { int _e90 = k; k = (_e90 + 1); } loop_init = false; int _e42 = k; if ((_e42 < DOF_TAPS)) { } else { break; } { int _e45 = k; float fk = (float(_e45) + 0.5); float r = sqrt((fk / 20.0)); float a = (fk * GOLDEN); vec2 o = (vec2(cos(a), sin(a)) * r); vec4 s = textureLod(_group_0_binding_0_fs, vec2((in_.uv + (o * rad))), 0.0); bool _e65 = finiteTexel(s); if (!(_e65)) { continue; } float reach = (clamp((1.0 - s.w), 0.0, 1.0) / max(coc, 0.001)); float w = clamp((((reach - r) * 6.0) + 1.0), 0.0, 1.0); vec3 _e84 = sum; sum = (_e84 + (s.xyz * w)); float _e88 = wsum; wsum = (_e88 + w); } } vec3 _e93 = sum; float _e94 = wsum; _fs2p_location0 = vec4((_e93 / vec3(max(_e94, 0.001))), 1.0); return; }  "‚çOmŠ·ÑBlit_block_0Fragment_group_0_binding_0_fsvs_mainvs_mainfs_mainfs_mainÀ // language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_4 { metal::float2 inner[3]; }; struct Blit { metal::float4 dof; }; constant int DOF_TAPS = 20; constant float GOLDEN = 2.3999631; bool finiteTexel( metal::float4 c ) { return metal::all(metal::abs(c) < metal::float4(1000000000000000000000000000000.0)); } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_4 pos = type_4 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p, 0.0, 1.0); out.uv = metal::float2((p.x * 0.5) + 0.5, 0.5 - (p.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , metal::texture2d roomTex [[texture(0)]] , metal::sampler roomSamp [[sampler(0)]] , constant Blit& blit [[buffer(0)]] ) { const FsOut in = { position, varyings_1.uv }; metal::float3 sum = {}; float wsum = {}; int k = 0; metal::float4 c0_ = roomTex.sample(roomSamp, in.uv); bool _e5 = finiteTexel(c0_); metal::float3 rgb0_ = _e5 ? c0_.xyz : metal::float3(0.0); float _e13 = blit.dof.x; if (_e13 <= 0.0) { return fs_mainOutput { metal::float4(rgb0_, 1.0) }; } float coc = _e5 ? metal::clamp(1.0 - c0_.w, 0.0, 1.0) : 0.25; if (coc < 0.02) { return fs_mainOutput { metal::float4(rgb0_, 1.0) }; } metal::float4 _e32 = blit.dof; metal::float2 rad = _e32.yz * coc; sum = rgb0_; wsum = _e5 ? 1.0 : 0.0; uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e90 = k; k = as_type(as_type(_e90) + as_type(1)); } loop_init = false; int _e42 = k; if (_e42 < DOF_TAPS) { } else { break; } { int _e45 = k; float fk = static_cast(_e45) + 0.5; float r = metal::sqrt(fk / 20.0); float a = fk * GOLDEN; metal::float2 o = metal::float2(metal::cos(a), metal::sin(a)) * r; metal::float4 s = roomTex.sample(roomSamp, in.uv + (o * rad), metal::level(0.0)); bool _e65 = finiteTexel(s); if (!(_e65)) { continue; } float reach = metal::clamp(1.0 - s.w, 0.0, 1.0) / metal::max(coc, 0.001); float w = metal::clamp(((reach - r) * 6.0) + 1.0, 0.0, 1.0); metal::float3 _e84 = sum; sum = _e84 + (s.xyz * w); float _e88 = wsum; wsum = _e88 + w; } } metal::float3 _e93 = sum; float _e94 = wsum; return fs_mainOutput { metal::float4(_e93 / metal::float3(metal::max(_e94, 0.001)), 1.0) }; }  "‚çOmŠ·Ñvs_mainmainstruct FsOut { float4 position; float2 uv; }; struct Blit { float4 dof; }; static const float2 _44[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _52 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _52; uint _56 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_44[_56], 0.0f, 1.0f); _out.uv = float2((_44[_56].x * 0.5f) + 0.5f, 0.5f - (_44[_56].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmain9 struct FsOut { float4 position; float2 uv; }; struct Blit { float4 dof; }; cbuffer blit : register(b0) { Blit blit_1_m0 : packoffset(c0); }; Texture2D roomTex : register(t0); SamplerState roomSamp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _44; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _44 : SV_Target0; }; bool finiteTexel(float4 c) { float4 _32 = abs(c); return all(bool4(_32.x < float4(1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f).x, _32.y < float4(1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f).y, _32.z < float4(1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f).z, _32.w < float4(1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f, 1000000015047466219876688855040.0f).w)); } void frag_main() { float3 sum = float3(0.0f, 0.0f, 0.0f); float wsum = 0.0f; int k = 0; uint2 loop_bound = uint2(4294967295u, 4294967295u); FsOut _37 = { gl_FragCoord, uv }; float4 _76 = roomTex.Sample(roomSamp, _37.uv); bool _77 = finiteTexel(_76); float3 _78 = _76.xyz; bool3 _81 = bool3(_77, _77, _77); float3 _79 = float3(_81.x ? _78.x : float3(0.0f, 0.0f, 0.0f).x, _81.y ? _78.y : float3(0.0f, 0.0f, 0.0f).y, _81.z ? _78.z : float3(0.0f, 0.0f, 0.0f).z); if (blit_1_m0.dof.x <= 0.0f) { _44 = float4(_79, 1.0f); return; } float _93 = _77 ? clamp(1.0f - _76.w, 0.0f, 1.0f) : 0.25f; if (_93 < 0.0199999995529651641845703125f) { _44 = float4(_79, 1.0f); return; } float2 _101 = blit_1_m0.dof.yz * _93; sum = _79; wsum = float(_77); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(k < 20)) { break; } int _131 = k; float _133 = float(_131) + 0.5f; float _135 = sqrt(_133 / 20.0f); float _136 = _133 * 2.3999631404876708984375f; float4 _145 = roomTex.SampleLevel(roomSamp, _37.uv + ((float2(cos(_136), sin(_136)) * _135) * _101), 0.0f); if (!finiteTexel(_145)) { int _165 = k; k = _165 + 1; continue; } float _158 = clamp((((clamp(1.0f - _145.w, 0.0f, 1.0f) / max(_93, 0.001000000047497451305389404296875f)) - _135) * 6.0f) + 1.0f, 0.0f, 1.0f); sum += (_145.xyz * _158); wsum += _158; int _165 = k; k = _165 + 1; continue; } float _169 = max(wsum, 0.001000000047497451305389404296875f); _44 = float4(sum / float3(_169, _169, _169), 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._44 = _44; return stage_output; }  "‚çOmŠ·ÑHSLTBlitdofÿÿÿÿ blit_blockblitroomTexÿÿÿÿroomSampÿÿÿÿvs_mainvs_mainfs_mainfs_main(#Ø GLSL.std.450,vs_main%(*_fs_mainX[^_H#H#GH #G"G!G"G!G"G!GH#G% *G( G*GX G[G^  +      + +ÿ˜@  ;  ; ;!+ÊòIq,! &;&% );)( +;+*!-+.€¿,/..+0@@,10.,2.0,3/12+4+5€?+6? 8 :.; =+> B+D+M Q Y;YX \;\[;)^ b ,d444+e€>+f ×£<+ g+h A+ioƒ:+jÀ@+ k m.n p.q s v | ~ — ˜—™,—šDD+›ÿÿÿÿ,—œ››67øùø  ¸!" ›#"þ#86,-ø$;873;:9;='%ù<ø< ?&'>A=@7?=A@PCA45ABE9D>ECQFA…GF6�HG6QIA…JI6ƒK6JPLHKA=N9M>NL=O9QPO>(PAQR(M=SRTS>RTQUO>*Uý86_-øV;mln;poq;srg;˜�œ=ZX=][PWZ]= `= aAbcDùtøtQuWVvw`aWxwu9yxOzxxP|}yyy©{}zdA€cDD=�€¼‚�4÷ƒú‚„ƒø„P…{5>^…ýøƒQ†xƒ‡5† ˆ+‡45©‰yˆe¸Љf÷‹úŠŒ‹øŒP�{5>^�ýø‹A~ŽcD=�ŽO���Ž‘�‰>l{©’y54>o’ù“ø“ö”–ùžøž=—Ÿ�ª™ šŸ›¡ ÷¢ú¡”¢ø¢Q£Ÿª¤£D©¥¤MDP—¦¥M‚—§Ÿ¦>�§ù•ø•= ¨r±©¨÷ªú©ª«ø«ù”øªù¬ø¬= ®ro¯®�°¯6ˆ±°h ²±…³° ´³ µ ³P¶´µŽ·¶²Q¸W…¹·‘�º¸¹Vv»`aX¼»º49½¼¨¾½÷¿ú¾À¿øÀù–ø¿QÁ¼ƒÂ5Á Ã+Â45 Ä(‰iˆÅÃăÆÅ²…ÇÆj�ÈÇ5 É+È45=ÊlO˼¼ŽÌËÉ�ÍÊÌ>lÍ=Îo�ÏÎÉ>oÏù­ø­ù–ø–= Ðr€ ÑÐk>rÑù“ø”=Òl=Óo Ô(ÓiPÕÔÔÔˆÖÒÕP×Ö5>^×ý8 Sb+,æÊËshaders/room_maskjÔ·aBTSR ÷÷'S q'˜±´ É'ðü ì#'$�£$o 0'vs_mainvs_mainfs_mainfs_mainÌstruct VsIn { @location(0) q: vec2, @location(1) m0_: vec4, @location(2) m1_: vec4, @location(3) m2_: vec4, @location(4) m3_: vec4, @location(5) uvRect: vec4, @location(6) clip: vec4, @location(7) params: vec4, @location(8) look: vec4, @location(9) edges: vec4, @location(10) pin: vec4, } struct Mask { viewProj: mat4x4, inset: vec4, } struct VsOut { @builtin(position) position: vec4, } @group(0) @binding(0) var mk: Mask; @vertex fn vs_main(in: VsIn) -> VsOut { var out: VsOut; let w = max(length(in.m0_.xyz), 0.0001f); let h = max(length(in.m1_.xyz), 0.0001f); let _e14 = mk.inset.x; let ix = min((_e14 / w), 0.45f); let _e21 = mk.inset.x; let iy = min((_e21 / h), 0.45f); let q = (vec2(ix, iy) + (in.q * vec2((1f - (2f * ix)), (1f - (2f * iy))))); let model = mat4x4(in.m0_, in.m1_, in.m2_, in.m3_); let _e47 = mk.viewProj; out.position = (_e47 * (model * vec4(q, 0f, 1f))); let _e53 = out; return _e53; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { return vec4(0f, 0f, 0f, 0f); }  P`¿HáàBvs_mainmain;#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct Mask { mat4x4 viewProj; vec4 inset; }; struct VsOut { vec4 position; }; layout(std140) uniform Mask_block_0Vertex { Mask _group_0_binding_0_vs; }; layout(location = 0) in vec2 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec4 _p2vs_location10; void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9, _p2vs_location10); VsOut out_ = VsOut(vec4(0.0)); float w = max(length(in_.m0_.xyz), 0.0001); float h = max(length(in_.m1_.xyz), 0.0001); float _e14 = _group_0_binding_0_vs.inset.x; float ix = min((_e14 / w), 0.45); float _e21 = _group_0_binding_0_vs.inset.x; float iy = min((_e21 / h), 0.45); vec2 q = (vec2(ix, iy) + (in_.q * vec2((1.0 - (2.0 * ix)), (1.0 - (2.0 * iy))))); mat4x4 model = mat4x4(in_.m0_, in_.m1_, in_.m2_, in_.m3_); mat4x4 _e47 = _group_0_binding_0_vs.viewProj; out_.position = (_e47 * (model * vec4(q, 0.0, 1.0))); VsOut _e53 = out_; gl_Position = _e53.position; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainï#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct Mask { mat4x4 viewProj; vec4 inset; }; struct VsOut { vec4 position; }; layout(location = 0) out vec4 _fs2p_location0; void main() { VsOut in_1 = VsOut(gl_FragCoord); _fs2p_location0 = vec4(0.0, 0.0, 0.0, 0.0); return; }  P`¿HáàBMask_block_0Vertexvs_mainvs_mainfs_mainfs_mainê// language: metal1.0 #include #include using metal::uint; struct VsIn { metal::float2 q; char _pad1[8]; metal::float4 m0_; metal::float4 m1_; metal::float4 m2_; metal::float4 m3_; metal::float4 uvRect; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float4 pin; }; struct Mask { metal::float4x4 viewProj; metal::float4 inset; }; struct VsOut { metal::float4 position; }; struct vs_mainInput { metal::float2 q [[attribute(0)]]; metal::float4 m0_ [[attribute(1)]]; metal::float4 m1_ [[attribute(2)]]; metal::float4 m2_ [[attribute(3)]]; metal::float4 m3_ [[attribute(4)]]; metal::float4 uvRect [[attribute(5)]]; metal::float4 clip [[attribute(6)]]; metal::float4 params [[attribute(7)]]; metal::float4 look [[attribute(8)]]; metal::float4 edges [[attribute(9)]]; metal::float4 pin [[attribute(10)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant Mask& mk [[buffer(0)]] ) { const VsIn in = { varyings.q, {}, varyings.m0_, varyings.m1_, varyings.m2_, varyings.m3_, varyings.uvRect, varyings.clip, varyings.params, varyings.look, varyings.edges, varyings.pin }; VsOut out = {}; float w = metal::max(metal::length(in.m0_.xyz), 0.0001); float h = metal::max(metal::length(in.m1_.xyz), 0.0001); float _e14 = mk.inset.x; float ix = metal::min(_e14 / w, 0.45); float _e21 = mk.inset.x; float iy = metal::min(_e21 / h, 0.45); metal::float2 q = metal::float2(ix, iy) + (in.q * metal::float2(1.0 - (2.0 * ix), 1.0 - (2.0 * iy))); metal::float4x4 model = metal::float4x4(in.m0_, in.m1_, in.m2_, in.m3_); metal::float4x4 _e47 = mk.viewProj; out.position = _e47 * (model * metal::float4(q, 0.0, 1.0)); VsOut _e53 = out; const auto _tmp = _e53; return vs_mainOutput { _tmp.position }; } struct fs_mainInput { }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( metal::float4 position [[position]] ) { const VsOut in_1 = { position }; return fs_mainOutput { metal::float4(0.0, 0.0, 0.0, 0.0) }; }  P`¿HáàBvs_mainmain�struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct Mask { row_major float4x4 viewProj; float4 inset; }; struct VsOut { float4 position; }; static const VsOut _54 = { float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer mk : register(b0) { Mask mk_1_m0 : packoffset(c0); }; static float4 gl_Position; static float2 q; static float4 m0; static float4 m1; static float4 m2; static float4 m3; static float4 uvRect; static float4 clip; static float4 params; static float4 look; static float4 edges; static float4 pin; struct SPIRV_Cross_Input { float2 q : TEXCOORD0; float4 m0 : TEXCOORD1; float4 m1 : TEXCOORD2; float4 m2 : TEXCOORD3; float4 m3 : TEXCOORD4; float4 uvRect : TEXCOORD5; float4 clip : TEXCOORD6; float4 params : TEXCOORD7; float4 look : TEXCOORD8; float4 edges : TEXCOORD9; float4 pin : TEXCOORD10; }; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; void vert_main() { VsOut _out = _54; VsIn _14 = { q, m0, m1, m2, m3, uvRect, clip, params, look, edges, pin }; float _71 = min(mk_1_m0.inset.x / max(length(_14.m0.xyz), 9.9999997473787516355514526367188e-05f), 0.449999988079071044921875f); float _75 = min(mk_1_m0.inset.x / max(length(_14.m1.xyz), 9.9999997473787516355514526367188e-05f), 0.449999988079071044921875f); _out.position = mul(mul(float4(float2(_71, _75) + (_14.q * float2(1.0f - (2.0f * _71), 1.0f - (2.0f * _75))), 0.0f, 1.0f), float4x4(_14.m0, _14.m1, _14.m2, _14.m3)), mk_1_m0.viewProj); gl_Position = _out.position; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { q = stage_input.q; m0 = stage_input.m0; m1 = stage_input.m1; m2 = stage_input.m2; m3 = stage_input.m3; uvRect = stage_input.uvRect; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; pin = stage_input.pin; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; } fs_mainmainFstruct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct Mask { row_major float4x4 viewProj; float4 inset; }; struct VsOut { float4 position; }; static float4 gl_FragCoord; static float4 _15; struct SPIRV_Cross_Input { float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _15 : SV_Target0; }; void frag_main() { VsOut _11 = { gl_FragCoord }; _15 = float4(0.0f, 0.0f, 0.0f, 0.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; frag_main(); SPIRV_Cross_Output stage_output; stage_output._15 = _15; return stage_output; }  P`¿HáàBHSLTMaskPviewProjÿÿÿÿinset@ÿÿÿÿmk_blockPmkvs_mainvs_mainfs_mainfs_mainD #p GLSL.std.450)vs_main!#%'mfs_mainjlmH#H#H# H#0H#@H#PH#`H#pH#€H #�H # H#HHH#@H #G "G !G H #GGGGGGGGG!G# G% G' Gj Gl       ;  ; ;;;;;;;;!;#;% (;('!* +- +-,+/·Ñ8+0ffæ>+1@+2€?+3 5 . 69 A B+-C Z [ d;j;(l,n33336)*ø ;546======== ="!=$#=&%P "$&A+. ,ù7ø7Q8O9:88 ;B: <(;/Q=O9>== ?B> @(?/ABD.C,=EDˆFE< G%F0ABH.C,=IHˆJI@ K%J0PLGKQM…N1GƒO2N…P1KƒQ2PPROQ…SMR�TLSQUQVQWQXPYUVWXA[\.,=]\P^T32‘_Y^‘`]_AZa4,>a`= b4Qcb>'cAde'C=fegf>egý86m*øh=kjP ikùoøo>lný8 P`¿HáàBÊËshaders/sdf_floodjÔ‚ïBTSR ××9d, tI9­I°I5åI[) @s9ys8 ±ˆ9ꈖ€‰K- ˶9vs_mainvs_mainfs_mainfs_main¬struct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct SdfTile { rect: vec4, grid: vec4, } struct Flood { k: vec4, pad: vec4, } const HDR_RANGE: f32 = 4f; const SDF_NONE: f32 = -30000f; @group(0) @binding(0) var fp: Flood; @group(0) @binding(1) var src: texture_2d; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i_1: vec2) -> f32 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_2: vec2) -> vec2 { let _e5 = hash2u(vec2((i_2 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_3 = floor(p_1); let f = (p_1 - i_3); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_3); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_4 = floor(p_2); let f_1 = (p_2 - i_4); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_4); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2f) - 1f), (g * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn sdfTexel(uv: vec2, n: f32) -> vec2 { return (floor((uv * n)) + vec2(0.5f)); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p_4 = pos[vi]; out.position = vec4(p_4, 0f, 1f); out.uv = vec2(((p_4.x * 0.5f) + 0.5f), (0.5f - (p_4.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { var bestA: vec2 = vec2(-30000f); var bestB: vec2 = vec2(-30000f); var dA: f32 = 1000000000000f; var dB: f32 = 1000000000000f; var j: i32 = -1i; var i: i32; var local: bool; var local_1: bool; var local_2: bool; var local_3: bool; var local_4: bool; let n_2 = fp.k.y; let ni = i32(n_2); let _e7 = sdfTexel(in.uv, n_2); let pi = vec2(floor(_e7)); let _e13 = fp.k.x; let k = i32(_e13); loop { let _e27 = j; if (_e27 <= 1i) { } else { break; } { i = -1i; loop { let _e32 = i; if (_e32 <= 1i) { } else { break; } { let _e35 = i; let _e36 = j; let q = (pi + (vec2(_e35, _e36) * k)); if (q.x >= 0i) { local = (q.y >= 0i); } else { local = false; } let _e49 = local; if _e49 { local_1 = (q.x < ni); } else { local_1 = false; } let _e55 = local_1; if _e55 { local_2 = (q.y < ni); } else { local_2 = false; } let inb = local_2; let s_1 = textureLoad(src, clamp(q, vec2(0i), vec2((ni - 1i))), 0i); if inb { local_3 = (s_1.x > -15000f); } else { local_3 = false; } let va = local_3; if inb { local_4 = (s_1.z > -15000f); } else { local_4 = false; } let vb = local_4; let ea = (s_1.xy - _e7); let eb = (s_1.zw - _e7); let da = select(1000000000000f, dot(ea, ea), va); let db = select(1000000000000f, dot(eb, eb), vb); let _e95 = dA; if (da < _e95) { dA = da; bestA = s_1.xy; } let _e98 = dB; if (db < _e98) { dB = db; bestB = s_1.zw; } } continuing { let _e101 = i; i = (_e101 + 1i); } } } continuing { let _e104 = j; j = (_e104 + 1i); } } let _e107 = bestA; let _e108 = bestB; return vec4(_e107, _e108); }   3f7j¨.vs_mainmain\#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct SdfTile { vec4 rect; vec4 grid; }; struct Flood { vec4 k; vec4 pad; }; const float HDR_RANGE = 4.0; const float SDF_NONE = -30000.0; smooth out vec2 _vs2fs_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_2) { uvec2 _e5 = hash2u(uvec2((i_2 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_3 = floor(p_1); vec2 f = (p_1 - i_3); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f_1 = (p_2 - i_4); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec2 sdfTexel(vec2 uv, float n) { return (floor((uv * n)) + vec2(0.5)); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p_4 = pos[vi]; out_.position = vec4(p_4, 0.0, 1.0); out_.uv = vec2(((p_4.x * 0.5) + 0.5), (0.5 - (p_4.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainß#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct SdfTile { vec4 rect; vec4 grid; }; struct Flood { vec4 k; vec4 pad; }; const float HDR_RANGE = 4.0; const float SDF_NONE = -30000.0; layout(std140) uniform Flood_block_0Fragment { Flood _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_2) { uvec2 _e5 = hash2u(uvec2((i_2 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_3 = floor(p_1); vec2 f = (p_1 - i_3); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_3); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f_1 = (p_2 - i_4); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec2 sdfTexel(vec2 uv, float n) { return (floor((uv * n)) + vec2(0.5)); } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); vec2 bestA = vec2(-30000.0); vec2 bestB = vec2(-30000.0); float dA = 1000000000000.0; float dB = 1000000000000.0; int j = -1; int i = 0; bool local = false; bool local_1 = false; bool local_2 = false; bool local_3 = false; bool local_4 = false; float n_2 = _group_0_binding_0_fs.k.y; int ni = int(n_2); vec2 _e7 = sdfTexel(in_.uv, n_2); ivec2 pi = ivec2(floor(_e7)); float _e13 = _group_0_binding_0_fs.k.x; int k = int(_e13); bool loop_init = true; while(true) { if (!loop_init) { int _e104 = j; j = (_e104 + 1); } loop_init = false; int _e27 = j; if ((_e27 <= 1)) { } else { break; } { i = -1; bool loop_init_1 = true; while(true) { if (!loop_init_1) { int _e101 = i; i = (_e101 + 1); } loop_init_1 = false; int _e32 = i; if ((_e32 <= 1)) { } else { break; } { int _e35 = i; int _e36 = j; ivec2 q = (pi + (ivec2(_e35, _e36) * k)); if ((q.x >= 0)) { local = (q.y >= 0); } else { local = false; } bool _e49 = local; if (_e49) { local_1 = (q.x < ni); } else { local_1 = false; } bool _e55 = local_1; if (_e55) { local_2 = (q.y < ni); } else { local_2 = false; } bool inb = local_2; vec4 s_1 = texelFetch(_group_0_binding_1_fs, min(max(q, ivec2(0)), ivec2((ni - 1))), 0); if (inb) { local_3 = (s_1.x > -15000.0); } else { local_3 = false; } bool va = local_3; if (inb) { local_4 = (s_1.z > -15000.0); } else { local_4 = false; } bool vb = local_4; vec2 ea = (s_1.xy - _e7); vec2 eb = (s_1.zw - _e7); float da = (va ? dot(ea, ea) : 1000000000000.0); float db = (vb ? dot(eb, eb) : 1000000000000.0); float _e95 = dA; if ((da < _e95)) { dA = da; bestA = s_1.xy; } float _e98 = dB; if ((db < _e98)) { dB = db; bestB = s_1.zw; } } } } } vec2 _e107 = bestA; vec2 _e108 = bestB; _fs2p_location0 = vec4(_e107, _e108); return; }   ŒŒ]ä-•gFlood_block_0Fragment_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_main0)// language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_8 { metal::float2 inner[3]; }; struct SdfTile { metal::float4 rect; metal::float4 grid; }; struct Flood { metal::float4 k; metal::float4 pad; }; constant float HDR_RANGE = 4.0; constant float SDF_NONE = -30000.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_2 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_2) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_3 = metal::floor(p_1); metal::float2 f = p_1 - i_3; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_3); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_4 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_4; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_4); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n_1 = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n_1 * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } metal::float2 sdfTexel( metal::float2 uv, float n ) { return metal::floor(uv * n) + metal::float2(0.5); } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_8 pos = type_8 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p_4 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p_4, 0.0, 1.0); out.uv = metal::float2((p_4.x * 0.5) + 0.5, 0.5 - (p_4.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } struct fs_mainInput { metal::float2 uv_1 [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant Flood& fp [[buffer(0)]] , metal::texture2d src [[texture(0)]] ) { const FsOut in = { position, varyings_1.uv_1 }; metal::float2 bestA = metal::float2(-30000.0); metal::float2 bestB = metal::float2(-30000.0); float dA = 1000000000000.0; float dB = 1000000000000.0; int j = -1; int i = {}; bool local = {}; bool local_1 = {}; bool local_2 = {}; bool local_3 = {}; bool local_4 = {}; float n_2 = fp.k.y; int ni = naga_f2i32(n_2); metal::float2 _e7 = sdfTexel(in.uv, n_2); metal::int2 pi = naga_f2i32(metal::floor(_e7)); float _e13 = fp.k.x; int k = naga_f2i32(_e13); uint2 loop_bound = uint2(4294967295u); bool loop_init = true; while(true) { if (metal::all(loop_bound == uint2(0u))) { break; } loop_bound -= uint2(loop_bound.y == 0u, 1u); if (!loop_init) { int _e104 = j; j = as_type(as_type(_e104) + as_type(1)); } loop_init = false; int _e27 = j; if (_e27 <= 1) { } else { break; } { i = -1; uint2 loop_bound_1 = uint2(4294967295u); bool loop_init_1 = true; while(true) { if (metal::all(loop_bound_1 == uint2(0u))) { break; } loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u); if (!loop_init_1) { int _e101 = i; i = as_type(as_type(_e101) + as_type(1)); } loop_init_1 = false; int _e32 = i; if (_e32 <= 1) { } else { break; } { int _e35 = i; int _e36 = j; metal::int2 q = as_type(as_type(pi) + as_type(as_type(as_type(metal::int2(_e35, _e36)) * as_type(k)))); if (q.x >= 0) { local = q.y >= 0; } else { local = false; } bool _e49 = local; if (_e49) { local_1 = q.x < ni; } else { local_1 = false; } bool _e55 = local_1; if (_e55) { local_2 = q.y < ni; } else { local_2 = false; } bool inb = local_2; uint clamped_lod_e70 = metal::min(uint(0), src.get_num_mip_levels() - 1); metal::float4 s_1 = src.read(metal::min(metal::uint2(metal::clamp(q, metal::int2(0), metal::int2(as_type(as_type(ni) - as_type(1))))), metal::uint2(src.get_width(clamped_lod_e70), src.get_height(clamped_lod_e70)) - 1), clamped_lod_e70); if (inb) { local_3 = s_1.x > -15000.0; } else { local_3 = false; } bool va = local_3; if (inb) { local_4 = s_1.z > -15000.0; } else { local_4 = false; } bool vb = local_4; metal::float2 ea = s_1.xy - _e7; metal::float2 eb = s_1.zw - _e7; float da = va ? metal::dot(ea, ea) : 1000000000000.0; float db = vb ? metal::dot(eb, eb) : 1000000000000.0; float _e95 = dA; if (da < _e95) { dA = da; bestA = s_1.xy; } float _e98 = dB; if (db < _e98) { dB = db; bestB = s_1.zw; } } } } } metal::float2 _e107 = bestA; metal::float2 _e108 = bestB; return fs_mainOutput { metal::float4(_e107, _e108) }; }   ŒŒ]ä-•gvs_mainmain_struct FsOut { float4 position; float2 uv; }; struct SdfTile { float4 rect; float4 grid; }; struct Flood { float4 k; float4 pad; }; static const float2 _349[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _354 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _354; uint _358 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_349[_358], 0.0f, 1.0f); _out.uv = float2((_349[_358].x * 0.5f) + 0.5f, 0.5f - (_349[_358].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmain°struct FsOut { float4 position; float2 uv; }; struct SdfTile { float4 rect; float4 grid; }; struct Flood { float4 k; float4 pad; }; cbuffer fp : register(b0) { Flood fp_1_m0 : packoffset(c0); }; Texture2D src : register(t0); static float4 gl_FragCoord; static float2 uv; static float4 _348; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _348 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float2 sdfTexel(float2 uv_1, float n) { return floor(uv_1 * n) + float2(0.5f, 0.5f); } void frag_main() { bool _377 = false; bool _370 = false; float dB = 999999995904.0f; float2 bestA = float2(-30000.0f, -30000.0f); bool _379 = false; bool _373 = false; int j = -1; float2 bestB = float2(-30000.0f, -30000.0f); bool _375 = false; float dA = 999999995904.0f; uint2 loop_bound = uint2(4294967295u, 4294967295u); uint2 loop_bound_1 = uint2(4294967295u, 4294967295u); FsOut _341 = { gl_FragCoord, uv }; int _387 = int(clamp(fp_1_m0.k.y, -2147483648.0f, 2147483520.0f)); float2 _389 = sdfTexel(_341.uv, fp_1_m0.k.y); int2 _392 = int2(clamp(floor(_389), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); int _396 = int(clamp(fp_1_m0.k.x, -2147483648.0f, 2147483520.0f)); for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound.x, uint2(0u, 0u).y == loop_bound.y))) { break; } loop_bound -= uint2(uint(loop_bound.y == 0u), 1u); if (!(j <= 1)) { break; } int i = -1; for (;;) { if (all(bool2(uint2(0u, 0u).x == loop_bound_1.x, uint2(0u, 0u).y == loop_bound_1.y))) { break; } loop_bound_1 -= uint2(uint(loop_bound_1.y == 0u), 1u); if (!(i <= 1)) { break; } int2 _448 = _392 + (int2(i, j) * int2(_396, _396)); if (_448.x >= 0) { _370 = _448.y >= 0; } else { _370 = false; } if (_370) { _373 = _448.x < _387; } else { _373 = false; } if (_373) { _375 = _448.y < _387; } else { _375 = false; } int _469 = _387 - 1; int _473; spvTextureSize(src, 0u, _473); int _475 = int(min(uint(0), uint(int(_473) - 1))); uint _476_dummy_parameter; float4 _480 = src.Load(int3(int2(min(uint2(min(max(_448, int2(0, 0)), int2(_469, _469))), uint2(int2(spvTextureSize(src, uint(_475), _476_dummy_parameter)) - int2(1, 1)))), _475)); if (_375) { _377 = _480.x > (-15000.0f); } else { _377 = false; } if (_375) { _379 = _480.z > (-15000.0f); } else { _379 = false; } float2 _494 = _480.xy - _389; float2 _496 = _480.zw - _389; float _498 = _377 ? dot(_494, _494) : 999999995904.0f; float _500 = _379 ? dot(_496, _496) : 999999995904.0f; if (_498 < dA) { dA = _498; bestA = _480.xy; } if (_500 < dB) { dB = _500; bestB = _480.zw; } i++; continue; } j++; continue; } _348 = float4(bestA, bestB); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._348 = _348; return stage_output; }   ŒŒ]ä-•gHSLTFlood kÿÿÿÿpadÿÿÿÿfp_block fpsrcÿÿÿÿvs_mainvs_mainfs_mainfs_main -#/2 GLSL.std.450\vs_mainUXZ‰fs_main‚…ˆ‰H #H #G H#H#H#H#G"G!GH#G"G!GU *GX GZG‚ G…Gˆ      +     +€@+`êÆ ; ;!+,+‘ƒž=+ ®Ga=,! +"n§r?+#š™@,$###+%æ®%=,&%%%-+3R¸NA+4UUÕ>,5444+6= ‡?+7.M;,8777!D+EгY>+FY7?+G˜Ý“=,HEFG!O+P?+Q€>+R€?,SRRR+T«ªª>,UTTT!k+l f+m_ón<,nmm+o,poo r.s x+y+|!£+¤€,¥¤¤+¦+§€3!³ !à +ÄCq‰=+Å�E¿;, ÆÄÅ+Ç‚îSB+Ð@@, ÑÐÐ+Ò@+Ó+Ô,ÕÓÔ,ÖÔÓ,×ÓÓ+ßÏ, àßß+áÿÿÿN, âáá!÷ +øÀ@, ùRR+,…ë?+-…ë@+.Í̈A+/ÍÌl@, 0./+1áz”>+2q=‚@+3š™©@+433ïA, 534+6)\> 8.9!N , OPP V;VU Y ;YX [ ;[Z!]+^€¿, _^^, `Ð^, a^Ð, b_`a d f . g i +j n { ƒ ;ƒ‚ † ;†…;Yˆ Š, �+Ž¥ÔhS+�ÿÿÿÿ*�,‘ÔÔ+’`jÆ ˜.š œ.�.Ÿ.¡.£.¥ § ¨º,»yy+¼ÿÿÿÿ,½¼¼,ÓÓ67øù'ø' ((Ž)(�*(!Ž+*" ,+$¼-.(&©/.),þ/86271ø0ù9ø9 :(1Ž;:3 <:5Ž=<6ƒ>=!¼-?:8©@?;>þ@86CD7BøAùIøI”JBHþJ86NO7L7MøKùVøVºWMP÷XúWYXøYŽZLQ [+ZS \[Uþ\øXþL86`O7^7_ø]ùaøaºb_P÷cúbdcød…e^^…fe^Žgfþgøcþ^86jk7iøh;rqsùtøtPvll„uiv€wun>qwAxzqy={zAx}q|=~}„~l€€{Ax�qy>�€Ax‚q|=ƒ‚Ax„qy=…„„†…l€‡ƒ†Axˆq|>ˆ‡=‰q=Šq‹ŠpÆŒ‰‹>qŒAx�qy=Ž�Ax�q|=��„‘�l€’Ž‘Ax“qy>“’Ax”q|=•”Ax–qy=—–„˜—l€™•˜Axšq|>š™=›q=œqÂ�œpÆž›�>qž=ŸqþŸ86¢£7¡ø ù¨ø¨€©¡¥|ª©9«jªQ¬«Â­¬¦p®­…¯®§þ¯86 ²³7±ø°ù´ø´€µ±¥|¶µ9·j¶Q¸·Â¹¸¦pº¹Q»·Â¼»¦p½¼P ¾º½Ž ¿¾§þ¿86ÂÃ7 ÁøÀùÈøÈ”ÉÁÆ Ê É…ËÇÊ Ì ËþÌ86ÏÃ7 ÎøÍùØøØ  Ù΃ ÚÎÙ… ÛÚÚŽ ÜÚÒƒ ÝÑÜ… ÞÛÝ  ã+Ùàânäã9å¢ä€æäÕ9ç¢æ€èäÖ9é¢è€êä×9ë¢êQìÞ í.åçìQîÞ ï.éëîQðÞ ñ.íïð…òñÒƒóòRþó86ö÷7 õøôùúøú  ûõƒ üõû… ýüüŽ þüÒƒ ÿÑþ… ýÿŽ üøƒ ùü…   +ûàân9¢€Õ9¢€ Ö9 ¢ € ×9 ¢ ƒ ƒ ƒƒ � Q… �Q…�Q…Q…�Q…� Q …! �"!P #"… $#…%Òƒ&%RŽ '$ÒP(&'þ(86+Ã7 *ø);879ù:ø:9;Ï*…<;,>7<==7Ž >*-� ?>09@Ï?…A@1�B=A>7B=C7Ž D*2� ED59FÏE…GF6�HCG>7H=I7þI86 MN7 K7LøJùPøPŽ QKL  RQ� SROþS86\]øT;dcb;feg=WUùhøh k&WjAilck= mlP omRAnpey>poQqm…rqP�srPQtm…utPƒvPuP wsvAixe|>xw= yeQ zy>XzA{|X|=}|~}>|~Q y>Zý86‰]ø€;œ¢£;œ›�;8–Ž;i“�;œ¤¥;œžŸ;˜—�;i”�;œ ¡;˜™š;8•Ž;r¾½;rÓ½= „‚= ‡…P �„‡AŠ‹y=Œù¦ø¦A¨©‹y|=ª© «+ªßán¬«Q ­�9 ®M­ª  ¯®  °+¯àân±°A¨²‹yy=³² ´+³ßánµ´ù¶ø¶ö·¹ù¿ø¿=À¾ªºÁ»À›ÂÁ÷ÃúÂ·ÃøÃQÄÀªÅÄy©ÆÅ|yPÇÆ|‚ÈÀÇ>¾Èù¸ø¸=É—³ÊÉÓ÷ËúÊËÌøÌù·øËùÍøÍ>™�ùÏøÏöÐÒùÔøÔ=ÕÓªºÖ»Õ›×Ö÷Øú×ÐØøØQÙÕªÚÙy©ÛÚ|yPÜÛ|‚ÝÕÜ>ÓÝùÑøÑ=Þ™³ßÞÓ÷àúßàáøáùÐøàùâøâ=ä™=å—PæäåPèµµ„çæè€é±çQêé¯ëêÔ÷ìúëíîøíQïé¯ðïÔ>›ðùìøî>›�ùìøì=ñ›÷òúñóôøóQõé±öõ¬>žöùòøô>ž�ùòøò=÷ž÷øú÷ùúøùQûé±üû¬> üùøøú> �ùøøø=ý ‚þ¬ÓPÿþþ *é‘ 'ÿjŒ‚Ó &ÔgŒ‚ &_ Œ÷ úý  ø Q  º ’>¢ù ø >¢�ù ø =¢÷úýøQ º’>¤ùø>¤�ùø=¤O   ƒ ®O   ƒ ®”©Ž”©Ž=•¸÷ ú! ø!>•O "  >“"ù ø =#–¸$#÷%ú$&%ø&>–O '  >”'ù%ø%ùãøãùÒøÒ=(™€)(Ó>™)ùÏøÐùÎøÎù¹ø¹=*—€+*Ó>—+ù¶ø·= ,“= -”P .,->ˆ.ý8  3f7j¨.ÊËshaders/sdf_resolvejÔ¨¦BTSR ŠŠoùv$ o:oÞ:á:iJ;° úZoi[ª io‚iÒTjÛ' /’o vs_mainvs_mainfs_mainfs_main_struct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct SdfTile { rect: vec4, grid: vec4, } const HDR_RANGE: f32 = 4f; const SDF_NONE: f32 = -30000f; @group(0) @binding(0) var sd: SdfTile; @group(0) @binding(1) var seeds: texture_2d; @group(0) @binding(2) var pieceTex: texture_2d; @group(0) @binding(3) var twinTex: texture_2d; @group(0) @binding(4) var samp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_2 = floor(p_1); let f = (p_1 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_3 = floor(p_2); let f_1 = (p_2 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2f) - 1f), (g_1 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn sdfTexel(uv: vec2, n: f32) -> vec2 { return (floor((uv * n)) + vec2(0.5f)); } fn inTile(g: vec2) -> f32 { let _e12 = sd.grid.y; let _e19 = sd.grid.z; return (((step(0f, g.x) * step(0f, g.y)) * step(g.x, _e12)) * step(g.y, _e19)); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p_4 = pos[vi]; out.position = vec4(p_4, 0f, 1f); out.uv = vec2(((p_4.x * 0.5f) + 0.5f), (0.5f - (p_4.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { let far = sd.grid.x; let _e6 = sdfTexel(in.uv, far); let g_2 = (_e6 / vec2(far)); let _e11 = sd.rect; let _e17 = sd.grid; let _e22 = sd.rect; let uv_1 = (_e11.xy + (clamp(g_2, vec2(0f), _e17.yz) * _e22.zw)); let _e29 = textureSampleLevel(pieceTex, samp, uv_1, 0f); let _e31 = inTile(g_2); let ap = (_e29.w * _e31); let _e36 = textureSampleLevel(twinTex, samp, uv_1, 0f); let _e38 = inTile(g_2); let at = (_e36.w * _e38); let s_1 = textureLoad(seeds, clamp(vec2(floor(_e6)), vec2(0i), vec2((i32(far) - 1i))), 0i); let dp = select(far, length((s_1.xy - _e6)), (s_1.x > -15000f)); let dt = select(far, length((s_1.zw - _e6)), (s_1.z > -15000f)); return vec4(select(dp, -(dp), (ap >= 0.5f)), select(dt, -(dt), (at >= 0.5f)), 0f, 1f); }   åz]GKvs_mainmain0#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct SdfTile { vec4 rect; vec4 grid; }; const float HDR_RANGE = 4.0; const float SDF_NONE = -30000.0; smooth out vec2 _vs2fs_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec2 sdfTexel(vec2 uv, float n) { return (floor((uv * n)) + vec2(0.5)); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p_4 = pos[vi]; out_.position = vec4(p_4, 0.0, 1.0); out_.uv = vec2(((p_4.x * 0.5) + 0.5), (0.5 - (p_4.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct SdfTile { vec4 rect; vec4 grid; }; const float HDR_RANGE = 4.0; const float SDF_NONE = -30000.0; layout(std140) uniform SdfTile_block_0Fragment { SdfTile _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; uniform highp sampler2D _group_0_binding_3_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec2 sdfTexel(vec2 uv, float n) { return (floor((uv * n)) + vec2(0.5)); } float inTile(vec2 g) { float _e12 = _group_0_binding_0_fs.grid.y; float _e19 = _group_0_binding_0_fs.grid.z; return (((step(0.0, g.x) * step(0.0, g.y)) * step(g.x, _e12)) * step(g.y, _e19)); } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); float far = _group_0_binding_0_fs.grid.x; vec2 _e6 = sdfTexel(in_.uv, far); vec2 g_2 = (_e6 / vec2(far)); vec4 _e11 = _group_0_binding_0_fs.rect; vec4 _e17 = _group_0_binding_0_fs.grid; vec4 _e22 = _group_0_binding_0_fs.rect; vec2 uv_1 = (_e11.xy + (clamp(g_2, vec2(0.0), _e17.yz) * _e22.zw)); vec4 _e29 = textureLod(_group_0_binding_2_fs, vec2(uv_1), 0.0); float _e31 = inTile(g_2); float ap = (_e29.w * _e31); vec4 _e36 = textureLod(_group_0_binding_3_fs, vec2(uv_1), 0.0); float _e38 = inTile(g_2); float at = (_e36.w * _e38); vec4 s_1 = texelFetch(_group_0_binding_1_fs, min(max(ivec2(floor(_e6)), ivec2(0)), ivec2((int(far) - 1))), 0); float dp = ((s_1.x > -15000.0) ? length((s_1.xy - _e6)) : far); float dt = ((s_1.z > -15000.0) ? length((s_1.zw - _e6)) : far); _fs2p_location0 = vec4(((ap >= 0.5) ? -(dp) : dp), ((at >= 0.5) ? -(dt) : dt), 0.0, 1.0); return; }   ãspî²ð ÛSdfTile_block_0Fragment_group_0_binding_3_fs_group_0_binding_2_fs_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_main…// language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_7 { metal::float2 inner[3]; }; struct SdfTile { metal::float4 rect; metal::float4 grid; }; constant float HDR_RANGE = 4.0; constant float SDF_NONE = -30000.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_2 = metal::floor(p_1); metal::float2 f = p_1 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n_1 = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_1 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n_1 * 2.0) - 1.0, g_1 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } metal::float2 sdfTexel( metal::float2 uv, float n ) { return metal::floor(uv * n) + metal::float2(0.5); } float inTile( metal::float2 g, constant SdfTile& sd ) { float _e12 = sd.grid.y; float _e19 = sd.grid.z; return ((metal::step(0.0, g.x) * metal::step(0.0, g.y)) * metal::step(g.x, _e12)) * metal::step(g.y, _e19); } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_7 pos = type_7 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p_4 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p_4, 0.0, 1.0); out.uv = metal::float2((p_4.x * 0.5) + 0.5, 0.5 - (p_4.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } int naga_f2i32(float value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } struct fs_mainInput { metal::float2 uv_1 [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant SdfTile& sd [[buffer(0)]] , metal::texture2d seeds [[texture(0)]] , metal::texture2d pieceTex [[texture(1)]] , metal::texture2d twinTex [[texture(2)]] , metal::sampler samp [[sampler(0)]] ) { const FsOut in = { position, varyings_1.uv_1 }; float far = sd.grid.x; metal::float2 _e6 = sdfTexel(in.uv, far); metal::float2 g_2 = _e6 / metal::float2(far); metal::float4 _e11 = sd.rect; metal::float4 _e17 = sd.grid; metal::float4 _e22 = sd.rect; metal::float2 uv_1 = _e11.xy + (metal::clamp(g_2, metal::float2(0.0), _e17.yz) * _e22.zw); metal::float4 _e29 = pieceTex.sample(samp, uv_1, metal::level(0.0)); float _e31 = inTile(g_2, sd); float ap = _e29.w * _e31; metal::float4 _e36 = twinTex.sample(samp, uv_1, metal::level(0.0)); float _e38 = inTile(g_2, sd); float at = _e36.w * _e38; uint clamped_lod_e51 = metal::min(uint(0), seeds.get_num_mip_levels() - 1); metal::float4 s_1 = seeds.read(metal::min(metal::uint2(metal::clamp(naga_f2i32(metal::floor(_e6)), metal::int2(0), metal::int2(as_type(as_type(naga_f2i32(far)) - as_type(1))))), metal::uint2(seeds.get_width(clamped_lod_e51), seeds.get_height(clamped_lod_e51)) - 1), clamped_lod_e51); float dp = (s_1.x > -15000.0) ? metal::length(s_1.xy - _e6) : far; float dt = (s_1.z > -15000.0) ? metal::length(s_1.zw - _e6) : far; return fs_mainOutput { metal::float4((ap >= 0.5) ? -(dp) : dp, (at >= 0.5) ? -(dt) : dt, 0.0, 1.0) }; }   k•.Ó¢ièvs_mainmain.struct FsOut { float4 position; float2 uv; }; struct SdfTile { float4 rect; float4 grid; }; static const float2 _349[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _354 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _354; uint _358 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_349[_358], 0.0f, 1.0f); _out.uv = float2((_349[_358].x * 0.5f) + 0.5f, 0.5f - (_349[_358].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmainS struct FsOut { float4 position; float2 uv; }; struct SdfTile { float4 rect; float4 grid; }; cbuffer sd : register(b0) { SdfTile sd_1_m0 : packoffset(c0); }; Texture2D seeds : register(t0); Texture2D pieceTex : register(t1); Texture2D twinTex : register(t2); SamplerState samp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _376; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _376 : SV_Target0; }; uint2 spvTextureSize(Texture2D Tex, uint Level, out uint Param) { uint2 ret; Tex.GetDimensions(Level, ret.x, ret.y, Param); return ret; } float2 sdfTexel(float2 uv_1, float n) { return floor(uv_1 * n) + float2(0.5f, 0.5f); } float inTile(float2 g) { return ((step(0.0f, g.x) * step(0.0f, g.y)) * step(g.x, sd_1_m0.grid.y)) * step(g.y, sd_1_m0.grid.z); } void frag_main() { FsOut _369 = { gl_FragCoord, uv }; float2 _392 = sdfTexel(_369.uv, sd_1_m0.grid.x); float2 _394 = _392 / float2(sd_1_m0.grid.x, sd_1_m0.grid.x); float2 _406 = sd_1_m0.rect.xy + (clamp(_394, float2(0.0f, 0.0f), sd_1_m0.grid.yz) * sd_1_m0.rect.zw); int _423 = int(clamp(sd_1_m0.grid.x, -2147483648.0f, 2147483520.0f)) - 1; int _427; spvTextureSize(seeds, 0u, _427); int _429 = int(min(uint(0), uint(int(_427) - 1))); uint _430_dummy_parameter; float4 _434 = seeds.Load(int3(int2(min(uint2(min(max(int2(clamp(floor(_392), float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))), int2(0, 0)), int2(_423, _423))), uint2(int2(spvTextureSize(seeds, uint(_429), _430_dummy_parameter)) - int2(1, 1)))), _429)); float _440 = (_434.x > (-15000.0f)) ? length(_434.xy - _392) : sd_1_m0.grid.x; float _446 = (_434.z > (-15000.0f)) ? length(_434.zw - _392) : sd_1_m0.grid.x; _376 = float4(((pieceTex.SampleLevel(samp, _406, 0.0f).w * inTile(_394)) >= 0.5f) ? (-_440) : _440, ((twinTex.SampleLevel(samp, _406, 0.0f).w * inTile(_394)) >= 0.5f) ? (-_446) : _446, 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._376 = _376; return stage_output; }   k•.Ó¢ièHSLTSdfTile rectÿÿÿÿgridÿÿÿÿsd_block sdseedsÿÿÿÿpieceTexÿÿÿÿtwinTexÿÿÿÿsampÿÿÿÿvs_mainvs_mainfs_mainfs_main°'#ï2 GLSL.std.450xvs_mainqtv¤fs_main� £¤H #H #G H#H#G"G!GH#G"G!G"G!G"G!G"G!Gq *Gt GvG� G G£      +    +€@+`êÆ ; ;;; ;!+ ,! +"‘ƒž=+#®Ga=,$###+%n§r?+&š™@,'&&&+(æ®%=,)(((101+7R¸NA+8UUÕ>,9888+:= ‡?+;.M;,<;;;!H+IгY>+JY7?+K˜Ý“=,LIJK!S+T?+U€>+V€?,WVVV+X«ªª>,YXXX!o+p f+q_ón<,rqq+s,tss v.w |+}+€!§+¨€,©¨¨+ª+«€3!· !Ç +ÈCq‰=+É�E¿;, ÊÈÉ+Ë‚îSB+Ô@@, ÕÔÔ+Ö@+×+Ø,Ùר,ÚØ×,Û××+ãÏ, äãã+åÿÿÿN, æåå!û +üÀ@, ýVV+0…ë?+1…ë@+2Í̈A+3ÍÌl@, 423+5áz”>+6q=‚@+7š™©@+833ïA, 978+:)\> <.=!R , STT [ d e+k r;rq u ;ut w ;wv!y+z€¿, {zz, |Ôz, }zÔ, ~{|} € ‚ . ƒ … ‰ – ž ;ž� ¡ ;¡ ;u£, ª ,«ØØ+¬`jÆÀ,Ø××67øù*ø* +(!Ž,+"�-+$Ž.-% /.'¼02+)©32,/þ386675ø4ù=ø= >(5!Ž?>7 @>9ŽA@:ƒBA$¼0C><©DC?BþD86GH7FøEùMøM”NFLþN86RS7P7QøOùZøZº1[QT÷\ú[]\ø]Ž^PU _+^!W `_Yþ`ø\þP86dS7b7cøaùeøeº1fcT÷gúfhgøh…ibb…jibŽkjþkøgþb86no7møl;vuwùxøxPzpp„ymz€{yr>u{A|~u}=~A|�u€=‚�„ƒ‚p€„ƒA|…u}>…„A|†u€=‡†A|ˆu}=‰ˆ„Љp€‹‡ŠA|Œu€>Œ‹=�u=ŽuÂ�ŽtÆ���>u�A|‘u}=’‘A|“u€=”“„•”p€–’•A|—u}>—–A|˜u€=™˜A|šu}=›š„œ›p€�™œA|žu€>ž�=Ÿu= u¡ tÆ¢Ÿ¡>u¢=£uþ£86¦§7¥ø¤ù¬ø¬€­¥©|®­9¯n®Q°¯Â±°ªp²±…³²«þ³86 ¶·7µø´ù¸ø¸€¹µ©|º¹9»nºQ¼»Â½¼ªp¾½Q¿»ÂÀ¿ªpÁÀP ¾ÁŽ ëþÃ86ÆÇ7 ÅøÄùÌøÌ”ÍÅÊ Î Í…ÏËÎ Ð ÏþÐ86ÓÇ7 ÒøÑùÜøÜ  ÝÒƒ ÞÒÝ… ßÞÞŽ àÞÖƒ áÕà… âßá  ç+Ýäænèç9é¦è€êèÙ9ë¦ê€ìèÚ9í¦ì€îèÛ9ï¦îQðâ ñ.éëðQòâ ó.íïòQôâ õ.ñóô…öõÖƒ÷öVþ÷86úû7 ùøøùþøþ  ÿùƒ ùÿ… Ž Öƒ Õ… Ž üƒ ý…   +ÿäæn 9 ¦ €  Ù9 ¦ €  Ú9¦ € Û9¦ƒ  ƒ ƒ  ƒ�Q…� Q…�Q…Q…� Q!…"!�#"Q$…%$�&%P '#&… ('…) Öƒ*)VŽ +(ÖP,*+þ,86/Ç7 .ø-;<;=ù>ø>9?Ó.…@?0>;@=A;Ž B.1� CB49DÓC…ED5�FAE>;F=G;Ž H.6� IH99JÓI…KJ:�LGK>;L=M;þM86 QR7 O7PøNùTøTŽ UOP  VU� WVSþW86ZÇ7 YøXA[\}ù]ø]Q^Y _0 ^Q`Y a0 `…b_aQcYAef\€€=gf h0cg…ibhQjYAel\€k=ml n0jm…oinþo86xyøp;€~;‚�ƒ=sqù„ø„ †&skA…‡†= ˆ‡P Šˆ VA‰‹�}>‹ŠQŒˆ…�ŒT�Ž�TQ�ˆ…��Tƒ‘T�P ’Ž‘A…“�€>“’= ”�Q •”>t•A–—t€=˜—™˜>—™Q š”>všý86¤yø›= Ÿ�= ¢ P œŸ¢A[¥}=¦=§=¨=©ù­ø­Ae®¥€}=¯®Q °œ9 ±Q°¯P ²¯¯ˆ ³±²Ad´¥}= µ´O ¶µµAd·¥€= ¸·O ¹¸¸  º+³ª¹Ad»¥}= ¼»O ½¼¼… ¾º½� ¿¶¾VÀÁ§©X ÂÁ¿ QÃÂ9ÄZ³…ÅÃÄVÀƨ©X ÇÆ¿ QÈÇ9ÉZ³…ÊÈÉ  ˱  Ì+ËäænÍÌ Î+¯ãånÏ΂ÐÏ×PÑÐÐ Ó*Í« Ò'ÓÑjÔ¦‚ÕÔ× Ö&ØÕgצւÙר Ú&ÒÙ_ Û¦ÚÖO ÜÛÛƒ Ýܱ ÞBÝQßÛº1à߬©áàÞ¯O âÛÛƒ ãâ± äBãQåÛº1æå¬©çæä¯èá¾1éÅT©êéèáëç¾1ìÊT©íìëçP îêí V>£îý8  åz]GKÊËshaders/sdf_seedjÔðýBTSR zz]×2 ñP]NQQQP¡QÂ( cz]Àzß ŸŒ]üŒÂ¾�K0 ¾] vs_mainvs_mainfs_mainfs_mainOstruct FsOut { @builtin(position) position: vec4, @location(0) uv: vec2, } struct SdfTile { rect: vec4, grid: vec4, } const HDR_RANGE: f32 = 4f; const SDF_NONE: f32 = -30000f; @group(0) @binding(0) var sd: SdfTile; @group(0) @binding(1) var pieceTex: texture_2d; @group(0) @binding(2) var twinTex: texture_2d; @group(0) @binding(3) var samp: sampler; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_2 = floor(p_1); let f = (p_1 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_3 = floor(p_2); let f_1 = (p_2 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_2 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2f) - 1f), (g_2 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn sdfTexel(uv: vec2, n: f32) -> vec2 { return (floor((uv * n)) + vec2(0.5f)); } fn inTile(g: vec2) -> f32 { let _e12 = sd.grid.y; let _e19 = sd.grid.z; return (((step(0f, g.x) * step(0f, g.y)) * step(g.x, _e12)) * step(g.y, _e19)); } fn uvOf(g_1: vec2) -> vec2 { let _e3 = sd.rect; let _e9 = sd.grid; let _e14 = sd.rect; return (_e3.xy + (clamp(g_1, vec2(0f), _e9.yz) * _e14.zw)); } fn seedOf(a0_: f32, aL: f32, aR: f32, aU: f32, aD: f32, p_4: vec2) -> vec2 { var local: bool; var local_1: bool; var local_2: bool; var local_3: bool; var local_4: bool; let gx = (0.5f * (aR - aL)); let gy = (0.5f * (aD - aU)); let g2_ = ((gx * gx) + (gy * gy)); let off = (((a0_ - 0.5f) / max(g2_, 0.000001f)) * vec2(gx, gy)); let c_4 = (a0_ - 0.5f); if !(((c_4 * (aL - 0.5f)) <= 0f)) { local = ((c_4 * (aR - 0.5f)) <= 0f); } else { local = true; } let _e38 = local; if !(_e38) { local_1 = ((c_4 * (aU - 0.5f)) <= 0f); } else { local_1 = true; } let _e48 = local_1; if !(_e48) { local_2 = ((c_4 * (aD - 0.5f)) <= 0f); } else { local_2 = true; } let crosses = local_2; if crosses { local_3 = (g2_ > 0.000001f); } else { local_3 = false; } let _e64 = local_3; if _e64 { local_4 = (dot(off, off) <= 1f); } else { local_4 = false; } let ok = local_4; return select(vec2(-30000f), (p_4 - off), ok); } @vertex fn vs_main(@builtin(vertex_index) vi: u32) -> FsOut { var pos: array, 3> = array, 3>(vec2(-1f, -1f), vec2(3f, -1f), vec2(-1f, 3f)); var out: FsOut; let p_5 = pos[vi]; out.position = vec4(p_5, 0f, 1f); out.uv = vec2(((p_5.x * 0.5f) + 0.5f), (0.5f - (p_5.y * 0.5f))); let _e31 = out; return _e31; } @fragment fn fs_main(in: FsOut) -> @location(0) vec4 { let n_2 = sd.grid.x; let _e6 = sdfTexel(in.uv, n_2); let g_3 = (_e6 / vec2(n_2)); let e_1 = (1f / n_2); let gL = (g_3 - vec2(e_1, 0f)); let gR = (g_3 + vec2(e_1, 0f)); let gU = (g_3 - vec2(0f, e_1)); let gD = (g_3 + vec2(0f, e_1)); let _e25 = uvOf(g_3); let _e27 = textureSampleLevel(pieceTex, samp, _e25, 0f); let _e29 = inTile(g_3); let p0_ = (_e27.w * _e29); let _e33 = uvOf(gL); let _e35 = textureSampleLevel(pieceTex, samp, _e33, 0f); let _e37 = inTile(gL); let pL = (_e35.w * _e37); let _e41 = uvOf(gR); let _e43 = textureSampleLevel(pieceTex, samp, _e41, 0f); let _e45 = inTile(gR); let pR = (_e43.w * _e45); let _e49 = uvOf(gU); let _e51 = textureSampleLevel(pieceTex, samp, _e49, 0f); let _e53 = inTile(gU); let pU = (_e51.w * _e53); let _e57 = uvOf(gD); let _e59 = textureSampleLevel(pieceTex, samp, _e57, 0f); let _e61 = inTile(gD); let pD = (_e59.w * _e61); let _e65 = uvOf(g_3); let _e67 = textureSampleLevel(twinTex, samp, _e65, 0f); let _e69 = inTile(g_3); let t0_ = (_e67.w * _e69); let _e73 = uvOf(gL); let _e75 = textureSampleLevel(twinTex, samp, _e73, 0f); let _e77 = inTile(gL); let tL = (_e75.w * _e77); let _e81 = uvOf(gR); let _e83 = textureSampleLevel(twinTex, samp, _e81, 0f); let _e85 = inTile(gR); let tR = (_e83.w * _e85); let _e89 = uvOf(gU); let _e91 = textureSampleLevel(twinTex, samp, _e89, 0f); let _e93 = inTile(gU); let tU = (_e91.w * _e93); let _e97 = uvOf(gD); let _e99 = textureSampleLevel(twinTex, samp, _e97, 0f); let _e101 = inTile(gD); let tD = (_e99.w * _e101); let _e103 = seedOf(p0_, pL, pR, pU, pD, _e6); let _e104 = seedOf(t0_, tL, tR, tU, tD, _e6); return vec4(_e103, _e104); }   Й: ¦ú�ðvs_mainmain“#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct SdfTile { vec4 rect; vec4 grid; }; const float HDR_RANGE = 4.0; const float SDF_NONE = -30000.0; smooth out vec2 _vs2fs_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_2 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_2 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec2 sdfTexel(vec2 uv, float n) { return (floor((uv * n)) + vec2(0.5)); } vec2 seedOf(float a0_, float aL, float aR, float aU, float aD, vec2 p_4) { bool local = false; bool local_1 = false; bool local_2 = false; bool local_3 = false; bool local_4 = false; float gx = (0.5 * (aR - aL)); float gy = (0.5 * (aD - aU)); float g2_ = ((gx * gx) + (gy * gy)); vec2 off = (((a0_ - 0.5) / max(g2_, 1e-6)) * vec2(gx, gy)); float c_4 = (a0_ - 0.5); if (!(((c_4 * (aL - 0.5)) <= 0.0))) { local = ((c_4 * (aR - 0.5)) <= 0.0); } else { local = true; } bool _e38 = local; if (!(_e38)) { local_1 = ((c_4 * (aU - 0.5)) <= 0.0); } else { local_1 = true; } bool _e48 = local_1; if (!(_e48)) { local_2 = ((c_4 * (aD - 0.5)) <= 0.0); } else { local_2 = true; } bool crosses = local_2; if (crosses) { local_3 = (g2_ > 1e-6); } else { local_3 = false; } bool _e64 = local_3; if (_e64) { local_4 = (dot(off, off) <= 1.0); } else { local_4 = false; } bool ok = local_4; return (ok ? (p_4 - off) : vec2(-30000.0)); } void main() { uint vi = uint(gl_VertexID); vec2 pos[3] = vec2[3](vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0)); FsOut out_ = FsOut(vec4(0.0), vec2(0.0)); vec2 p_5 = pos[vi]; out_.position = vec4(p_5, 0.0, 1.0); out_.uv = vec2(((p_5.x * 0.5) + 0.5), (0.5 - (p_5.y * 0.5))); FsOut _e31 = out_; gl_Position = _e31.position; _vs2fs_location0 = _e31.uv; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain^#version 300 es precision highp float; precision highp int; struct FsOut { vec4 position; vec2 uv; }; struct SdfTile { vec4 rect; vec4 grid; }; const float HDR_RANGE = 4.0; const float SDF_NONE = -30000.0; layout(std140) uniform SdfTile_block_0Fragment { SdfTile _group_0_binding_0_fs; }; uniform highp sampler2D _group_0_binding_1_fs; uniform highp sampler2D _group_0_binding_2_fs; smooth in vec2 _vs2fs_location0; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n_1 = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_2 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n_1 * 2.0) - 1.0), (g_2 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec2 sdfTexel(vec2 uv, float n) { return (floor((uv * n)) + vec2(0.5)); } float inTile(vec2 g) { float _e12 = _group_0_binding_0_fs.grid.y; float _e19 = _group_0_binding_0_fs.grid.z; return (((step(0.0, g.x) * step(0.0, g.y)) * step(g.x, _e12)) * step(g.y, _e19)); } vec2 uvOf(vec2 g_1) { vec4 _e3 = _group_0_binding_0_fs.rect; vec4 _e9 = _group_0_binding_0_fs.grid; vec4 _e14 = _group_0_binding_0_fs.rect; return (_e3.xy + (clamp(g_1, vec2(0.0), _e9.yz) * _e14.zw)); } vec2 seedOf(float a0_, float aL, float aR, float aU, float aD, vec2 p_4) { bool local = false; bool local_1 = false; bool local_2 = false; bool local_3 = false; bool local_4 = false; float gx = (0.5 * (aR - aL)); float gy = (0.5 * (aD - aU)); float g2_ = ((gx * gx) + (gy * gy)); vec2 off = (((a0_ - 0.5) / max(g2_, 1e-6)) * vec2(gx, gy)); float c_4 = (a0_ - 0.5); if (!(((c_4 * (aL - 0.5)) <= 0.0))) { local = ((c_4 * (aR - 0.5)) <= 0.0); } else { local = true; } bool _e38 = local; if (!(_e38)) { local_1 = ((c_4 * (aU - 0.5)) <= 0.0); } else { local_1 = true; } bool _e48 = local_1; if (!(_e48)) { local_2 = ((c_4 * (aD - 0.5)) <= 0.0); } else { local_2 = true; } bool crosses = local_2; if (crosses) { local_3 = (g2_ > 1e-6); } else { local_3 = false; } bool _e64 = local_3; if (_e64) { local_4 = (dot(off, off) <= 1.0); } else { local_4 = false; } bool ok = local_4; return (ok ? (p_4 - off) : vec2(-30000.0)); } void main() { FsOut in_ = FsOut(gl_FragCoord, _vs2fs_location0); float n_2 = _group_0_binding_0_fs.grid.x; vec2 _e6 = sdfTexel(in_.uv, n_2); vec2 g_3 = (_e6 / vec2(n_2)); float e_1 = (1.0 / n_2); vec2 gL = (g_3 - vec2(e_1, 0.0)); vec2 gR = (g_3 + vec2(e_1, 0.0)); vec2 gU = (g_3 - vec2(0.0, e_1)); vec2 gD = (g_3 + vec2(0.0, e_1)); vec2 _e25 = uvOf(g_3); vec4 _e27 = textureLod(_group_0_binding_1_fs, vec2(_e25), 0.0); float _e29 = inTile(g_3); float p0_ = (_e27.w * _e29); vec2 _e33 = uvOf(gL); vec4 _e35 = textureLod(_group_0_binding_1_fs, vec2(_e33), 0.0); float _e37 = inTile(gL); float pL = (_e35.w * _e37); vec2 _e41 = uvOf(gR); vec4 _e43 = textureLod(_group_0_binding_1_fs, vec2(_e41), 0.0); float _e45 = inTile(gR); float pR = (_e43.w * _e45); vec2 _e49 = uvOf(gU); vec4 _e51 = textureLod(_group_0_binding_1_fs, vec2(_e49), 0.0); float _e53 = inTile(gU); float pU = (_e51.w * _e53); vec2 _e57 = uvOf(gD); vec4 _e59 = textureLod(_group_0_binding_1_fs, vec2(_e57), 0.0); float _e61 = inTile(gD); float pD = (_e59.w * _e61); vec2 _e65 = uvOf(g_3); vec4 _e67 = textureLod(_group_0_binding_2_fs, vec2(_e65), 0.0); float _e69 = inTile(g_3); float t0_ = (_e67.w * _e69); vec2 _e73 = uvOf(gL); vec4 _e75 = textureLod(_group_0_binding_2_fs, vec2(_e73), 0.0); float _e77 = inTile(gL); float tL = (_e75.w * _e77); vec2 _e81 = uvOf(gR); vec4 _e83 = textureLod(_group_0_binding_2_fs, vec2(_e81), 0.0); float _e85 = inTile(gR); float tR = (_e83.w * _e85); vec2 _e89 = uvOf(gU); vec4 _e91 = textureLod(_group_0_binding_2_fs, vec2(_e89), 0.0); float _e93 = inTile(gU); float tU = (_e91.w * _e93); vec2 _e97 = uvOf(gD); vec4 _e99 = textureLod(_group_0_binding_2_fs, vec2(_e97), 0.0); float _e101 = inTile(gD); float tD = (_e99.w * _e101); vec2 _e103 = seedOf(p0_, pL, pR, pU, pD, _e6); vec2 _e104 = seedOf(t0_, tL, tR, tU, tD, _e6); _fs2p_location0 = vec4(_e103, _e104); return; }   ?æØRŠSdfTile_block_0Fragment_group_0_binding_2_fs_group_0_binding_1_fsvs_mainvs_mainfs_mainfs_main—(// language: metal1.0 #include #include using metal::uint; struct FsOut { metal::float4 position; metal::float2 uv; char _pad2[8]; }; struct type_7 { metal::float2 inner[3]; }; struct SdfTile { metal::float4 rect; metal::float4 grid; }; constant float HDR_RANGE = 4.0; constant float SDF_NONE = -30000.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_2 = metal::floor(p_1); metal::float2 f = p_1 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n_1 = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_2 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n_1 * 2.0) - 1.0, g_2 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } metal::float2 sdfTexel( metal::float2 uv, float n ) { return metal::floor(uv * n) + metal::float2(0.5); } float inTile( metal::float2 g, constant SdfTile& sd ) { float _e12 = sd.grid.y; float _e19 = sd.grid.z; return ((metal::step(0.0, g.x) * metal::step(0.0, g.y)) * metal::step(g.x, _e12)) * metal::step(g.y, _e19); } metal::float2 uvOf( metal::float2 g_1, constant SdfTile& sd ) { metal::float4 _e3 = sd.rect; metal::float4 _e9 = sd.grid; metal::float4 _e14 = sd.rect; return _e3.xy + (metal::clamp(g_1, metal::float2(0.0), _e9.yz) * _e14.zw); } metal::float2 seedOf( float a0_, float aL, float aR, float aU, float aD, metal::float2 p_4 ) { bool local = {}; bool local_1 = {}; bool local_2 = {}; bool local_3 = {}; bool local_4 = {}; float gx = 0.5 * (aR - aL); float gy = 0.5 * (aD - aU); float g2_ = (gx * gx) + (gy * gy); metal::float2 off = ((a0_ - 0.5) / metal::max(g2_, 0.000001)) * metal::float2(gx, gy); float c_4 = a0_ - 0.5; if (!(((c_4 * (aL - 0.5)) <= 0.0))) { local = (c_4 * (aR - 0.5)) <= 0.0; } else { local = true; } bool _e38 = local; if (!(_e38)) { local_1 = (c_4 * (aU - 0.5)) <= 0.0; } else { local_1 = true; } bool _e48 = local_1; if (!(_e48)) { local_2 = (c_4 * (aD - 0.5)) <= 0.0; } else { local_2 = true; } bool crosses = local_2; if (crosses) { local_3 = g2_ > 0.000001; } else { local_3 = false; } bool _e64 = local_3; if (_e64) { local_4 = metal::dot(off, off) <= 1.0; } else { local_4 = false; } bool ok = local_4; return ok ? (p_4 - off) : metal::float2(-30000.0); } struct vs_mainInput { }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; }; vertex vs_mainOutput vs_main( uint vi [[vertex_id]] ) { type_7 pos = type_7 {{metal::float2(-1.0, -1.0), metal::float2(3.0, -1.0), metal::float2(-1.0, 3.0)}}; FsOut out = {}; metal::float2 p_5 = pos.inner[metal::min(unsigned(vi), 2u)]; out.position = metal::float4(p_5, 0.0, 1.0); out.uv = metal::float2((p_5.x * 0.5) + 0.5, 0.5 - (p_5.y * 0.5)); FsOut _e31 = out; const auto _tmp = _e31; return vs_mainOutput { _tmp.position, _tmp.uv }; } struct fs_mainInput { metal::float2 uv_1 [[user(loc0), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant SdfTile& sd [[buffer(0)]] , metal::texture2d pieceTex [[texture(0)]] , metal::texture2d twinTex [[texture(1)]] , metal::sampler samp [[sampler(0)]] ) { const FsOut in = { position, varyings_1.uv_1 }; float n_2 = sd.grid.x; metal::float2 _e6 = sdfTexel(in.uv, n_2); metal::float2 g_3 = _e6 / metal::float2(n_2); float e_1 = 1.0 / n_2; metal::float2 gL = g_3 - metal::float2(e_1, 0.0); metal::float2 gR = g_3 + metal::float2(e_1, 0.0); metal::float2 gU = g_3 - metal::float2(0.0, e_1); metal::float2 gD = g_3 + metal::float2(0.0, e_1); metal::float2 _e25 = uvOf(g_3, sd); metal::float4 _e27 = pieceTex.sample(samp, _e25, metal::level(0.0)); float _e29 = inTile(g_3, sd); float p0_ = _e27.w * _e29; metal::float2 _e33 = uvOf(gL, sd); metal::float4 _e35 = pieceTex.sample(samp, _e33, metal::level(0.0)); float _e37 = inTile(gL, sd); float pL = _e35.w * _e37; metal::float2 _e41 = uvOf(gR, sd); metal::float4 _e43 = pieceTex.sample(samp, _e41, metal::level(0.0)); float _e45 = inTile(gR, sd); float pR = _e43.w * _e45; metal::float2 _e49 = uvOf(gU, sd); metal::float4 _e51 = pieceTex.sample(samp, _e49, metal::level(0.0)); float _e53 = inTile(gU, sd); float pU = _e51.w * _e53; metal::float2 _e57 = uvOf(gD, sd); metal::float4 _e59 = pieceTex.sample(samp, _e57, metal::level(0.0)); float _e61 = inTile(gD, sd); float pD = _e59.w * _e61; metal::float2 _e65 = uvOf(g_3, sd); metal::float4 _e67 = twinTex.sample(samp, _e65, metal::level(0.0)); float _e69 = inTile(g_3, sd); float t0_ = _e67.w * _e69; metal::float2 _e73 = uvOf(gL, sd); metal::float4 _e75 = twinTex.sample(samp, _e73, metal::level(0.0)); float _e77 = inTile(gL, sd); float tL = _e75.w * _e77; metal::float2 _e81 = uvOf(gR, sd); metal::float4 _e83 = twinTex.sample(samp, _e81, metal::level(0.0)); float _e85 = inTile(gR, sd); float tR = _e83.w * _e85; metal::float2 _e89 = uvOf(gU, sd); metal::float4 _e91 = twinTex.sample(samp, _e89, metal::level(0.0)); float _e93 = inTile(gU, sd); float tU = _e91.w * _e93; metal::float2 _e97 = uvOf(gD, sd); metal::float4 _e99 = twinTex.sample(samp, _e97, metal::level(0.0)); float _e101 = inTile(gD, sd); float tD = _e99.w * _e101; metal::float2 _e103 = seedOf(p0_, pL, pR, pU, pD, _e6); metal::float2 _e104 = seedOf(t0_, tL, tR, tU, tD, _e6); return fs_mainOutput { metal::float4(_e103, _e104) }; }   ?æØRŠvs_mainmain.struct FsOut { float4 position; float2 uv; }; struct SdfTile { float4 rect; float4 grid; }; static const float2 _429[3] = { float2(-1.0f, -1.0f), float2(3.0f, -1.0f), float2(-1.0f, 3.0f) }; static const FsOut _434 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f) }; static float4 gl_Position; static int gl_VertexIndex; static float2 uv; struct SPIRV_Cross_Input { uint gl_VertexIndex : SV_VertexID; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float4 gl_Position : SV_Position; }; void vert_main() { FsOut _out = _434; uint _438 = min(uint(gl_VertexIndex), 2u); _out.position = float4(_429[_438], 0.0f, 1.0f); _out.uv = float2((_429[_438].x * 0.5f) + 0.5f, 0.5f - (_429[_438].y * 0.5f)); gl_Position = _out.position; uv = _out.uv; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_VertexIndex = int(stage_input.gl_VertexIndex); vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; return stage_output; } fs_mainmainˆ struct FsOut { float4 position; float2 uv; }; struct SdfTile { float4 rect; float4 grid; }; cbuffer sd : register(b0) { SdfTile sd_1_m0 : packoffset(c0); }; Texture2D pieceTex : register(t0); Texture2D twinTex : register(t1); SamplerState samp : register(s0); static float4 gl_FragCoord; static float2 uv; static float4 _474; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _474 : SV_Target0; }; float2 sdfTexel(float2 uv_1, float n) { return floor(uv_1 * n) + float2(0.5f, 0.5f); } float2 uvOf(float2 g) { return sd_1_m0.rect.xy + (clamp(g, float2(0.0f, 0.0f), sd_1_m0.grid.yz) * sd_1_m0.rect.zw); } float inTile(float2 g) { return ((step(0.0f, g.x) * step(0.0f, g.y)) * step(g.x, sd_1_m0.grid.y)) * step(g.y, sd_1_m0.grid.z); } float2 seedOf(float a0, float aL, float aR, float aU, float aD, float2 p) { bool _408 = false; bool _402 = false; bool _406 = false; bool _399 = false; bool _404 = false; float _412 = 0.5f * (aR - aL); float _414 = 0.5f * (aD - aU); float _417 = (_412 * _412) + (_414 * _414); float2 _422 = float2(_412, _414) * ((a0 - 0.5f) / max(_417, 9.9999999747524270787835121154785e-07f)); float _423 = a0 - 0.5f; if (!((_423 * (aL - 0.5f)) <= 0.0f)) { _399 = (_423 * (aR - 0.5f)) <= 0.0f; } else { _399 = true; } if (!_399) { _402 = (_423 * (aU - 0.5f)) <= 0.0f; } else { _402 = true; } if (!_402) { _404 = (_423 * (aD - 0.5f)) <= 0.0f; } else { _404 = true; } if (_404) { _406 = _417 > 9.9999999747524270787835121154785e-07f; } else { _406 = false; } if (_406) { _408 = dot(_422, _422) <= 1.0f; } else { _408 = false; } float2 _462 = p - _422; bool2 _465 = bool2(_408, _408); return float2(_465.x ? _462.x : float2(-30000.0f, -30000.0f).x, _465.y ? _462.y : float2(-30000.0f, -30000.0f).y); } void frag_main() { FsOut _467 = { gl_FragCoord, uv }; float2 _486 = sdfTexel(_467.uv, sd_1_m0.grid.x); float2 _488 = _486 / float2(sd_1_m0.grid.x, sd_1_m0.grid.x); float _489 = 1.0f / sd_1_m0.grid.x; float2 _491 = _488 - float2(_489, 0.0f); float2 _493 = _488 + float2(_489, 0.0f); float2 _495 = _488 - float2(0.0f, _489); float2 _497 = _488 + float2(0.0f, _489); _474 = float4(seedOf(pieceTex.SampleLevel(samp, uvOf(_488), 0.0f).w * inTile(_488), pieceTex.SampleLevel(samp, uvOf(_491), 0.0f).w * inTile(_491), pieceTex.SampleLevel(samp, uvOf(_493), 0.0f).w * inTile(_493), pieceTex.SampleLevel(samp, uvOf(_495), 0.0f).w * inTile(_495), pieceTex.SampleLevel(samp, uvOf(_497), 0.0f).w * inTile(_497), _486), seedOf(twinTex.SampleLevel(samp, uvOf(_488), 0.0f).w * inTile(_488), twinTex.SampleLevel(samp, uvOf(_491), 0.0f).w * inTile(_491), twinTex.SampleLevel(samp, uvOf(_493), 0.0f).w * inTile(_493), twinTex.SampleLevel(samp, uvOf(_495), 0.0f).w * inTile(_495), twinTex.SampleLevel(samp, uvOf(_497), 0.0f).w * inTile(_497), _486)); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; frag_main(); SPIRV_Cross_Output stage_output; stage_output._474 = _474; return stage_output; }   ?æØRŠHSLTSdfTile rectÿÿÿÿgridÿÿÿÿsd_block sdpieceTexÿÿÿÿtwinTexÿÿÿÿsampÿÿÿÿvs_mainvs_mainfs_mainfs_main 0#[ GLSL.std.450Úvs_mainÓÖØfs_mainÿH #H #G H#H#G"G!GH#G"G!G"G!G"G!GÓ *GÖ GØGÿ GG      +    +€@+`êÆ ; ;; ;!+ ,! +"‘ƒž=+#®Ga=,$###+%n§r?+&š™@,'&&&+(æ®%=,)(((0+6R¸NA+7UUÕ>,8777+9= ‡?+:.M;,;:::!G+HгY>+IY7?+J˜Ý“=,KHIJ!R+S?+T€>+U€?,VUUU+W«ªª>,XWWW!n+o f+p_ón<,qpp+r,srr u.v {+|+!¦+§€,¨§§+©+ª€3!¶ !Æ +ÇCq‰=+È�E¿;, ÉÇÈ+Ê‚îSB+Ó@@, ÔÓÓ+Õ@+Ö+×,ØÖ×,Ù×Ö,ÚÖÖ+âÏ, ãââ+äÿÿÿN, åää!ú +ûÀ@, üUU+/…ë?+0…ë@+1Í̈A+2ÍÌl@, 312+4áz”>+5q=‚@+6š™©@+733ïA, 867+9)\> ;.<!Q , RSS Z c d+j!r , t ! Š  +‹½7†5)Œ*�, Ž �.‘.“.•.—.™Ð Ô;ÔÓ × ;×Ö Ù ;ÙØ!Û+Ü€¿, ÝÜÜ, ÞÓÜ, ßÜÓ, àÝÞß â ä . å ç ë ø  ;ÿ  ;;×67øù*ø* +(!Ž,+"�-+$Ž.-% /.'¼01+)©21,/þ286574ø3ù<ø< =(4!Ž>=6 ?=8Ž@?9ƒA@$¼0B=;©CB>AþC86FG7EøDùLøL”MEKþM86QR7O7PøNùYøYºZPS÷[úZ\[ø\Ž]OT ^+]!V _^Xþ_ø[þO86cR7a7bø`ùdødºebS÷fúegføg…haa…ihaŽjiþjøfþa86mn7løk;utvùwøwPyoo„xly€zxq>tzA{}t|=~}A{€t=�€„‚�o€ƒ~‚A{„t|>„ƒA{…t=†…A{‡t|=ˆ‡„‰ˆo€І‰A{‹t>‹Š=Œt=�tÂŽ�sÆ�ŒŽ>t�A{�t|=‘�A{’t=“’„”“o€•‘”A{–t|>–•A{—t=˜—A{™t|=𙄛šo€œ˜›A{�t>�œ=žt=Ÿt ŸsÆ¡ž >t¡=¢tþ¢86¥¦7¤ø£ù«ø«€¬¤¨|­¬9®m­Q¯®Â°¯©p±°…²±ªþ²86 µ¶7´ø³ù·ø·€¸´¨|¹¸9ºm¹Q»ºÂ¼»©p½¼Q¾ºÂ¿¾©pÀ¿P Á½ÀŽ ÂÁªþÂ86ÅÆ7 ÄøÃùËøË”ÌÄÉ Í Ì…ÎÊÍ Ï ÎþÏ86ÒÆ7 ÑøÐùÛøÛ  Üу ÝÑÜ… ÞÝÝŽ ßÝÕƒ àÔß… áÞà  æ+Üãånçæ9è¥ç€éçØ9ê¥é€ëçÙ9ì¥ë€íçÚ9î¥íQïá ð.èêïQñá ò.ìîñQóá ô.ðòó…õôÕƒöõUþö86ùú7 øø÷ùýøý  þøƒ ÿøþ… ÿÿŽ ÿÕƒ Ô… Ž ÿûƒ üÿ…   +þãån9 ¥€ Ø9 ¥ € Ù9 ¥ €Ú9¥ƒ  ƒ  ƒ  ƒ �Q…� Q…�Q…Q…�Q …! �"!Q#…$#�%$P &"%… '&…(Õƒ)(UŽ *'ÕP+)*þ+86.Æ7 -ø,;;:<ù=ø=9>Ò-…?>/>:?=@:Ž A-0� BA39CÒB…DC4�E@D>:E=F:Ž G-5� HG89IÒH…JI9�KFJ>:K=L:þL86 PQ7 N7OøMùSøSŽ TNO  UT� VURþV86YÆ7 XøWAZ[|ù\ø\Q]X ^0 ]Q_X `0 _…a^`QbXAde[=fe g0bf…hagQiXAdk[j=lk m0il…nhmþn86 qr7 pøoAZs|ùuøuAcvs|= wvO xwwAcys= zyO {zz  |+pt{Ac}s|= ~}O ~~… €|� �x€þ�86 ‰Š7ƒ7„7…7†7‡7 ˆø‚;�˜™;�’“;�–—;��‘;�”•ùšøšƒ›…„…œS›ƒ�‡†…žS�…Ÿœœ… žž�¡Ÿ ƒ¢ƒS £(¡‹ˆ¤¢£P ¥œžŽ ¦¥¤ƒ§ƒSƒ¨„S…©§¨¼ª© ¨«ª÷¬ú«­®ø­ƒ¯…S…°§¯¼±° >�±ù¬ø®>�Œù¬ø¬=²�¨³²÷´ú³µ¶øµƒ·†S…¸§·¼¹¸ >’¹ù´ø¶>’Œù´ø´=º’¨»º÷¼ú»½¾ø½ƒ¿‡S…À§¿¼ÁÀ >”Áù¼ø¾>”Œù¼ø¼=”÷ÃúÂÄÅøÄºÆ¡‹>–ÆùÃøÅ>–�ùÃøÃ=Ç–÷ÈúÇÉÊøÉ”Ë¦¦¼ÌËU>˜ÌùÈøÊ>˜�ùÈøÈ=͘ƒ Έ¦PÐÑÍÍ© ÏÑÎŽþÏ86ÚÛøÒ;âáà;äãå=ÕÓùæøæ è&ÕjAçéáè= êéP ìê UAëíã|>íìQîê…ïîS�ðïSQñê…òñSƒóSòP ôðóAçõã>õô= öãQ ÷ö>Ö÷AøùÖ=úùûú>ùûQ üö>Øüý86Ûøý= ÿ= P þAZ|== = ù ø Ad |=  Q þ9 P P   ˆ ˆU P  ƒ P  � P  ƒ P  � 9 qV X  Q9 Y…! 9 "qV# X $#" Q%$9&Y…'%&9 (qV) X *)( Q+*9,Y…-+,9 .qV/ X 0/. Q1092Y…3129 4qV5 X 654 Q7698Y…9789 :qV;  X <;: Q=<9>Y…?=>9 @qVA  X BA@ QCB9DY…ECD9 FqVG  X HGF QIH9JY…KIJ9 LqVM  X NML QON9PY…QOP9 RqVS  X TSR QUT9VY…WUV9 X‰!'-399 Y‰?EKQWP ZXY>Zý8  Й: ¦ú�ðÊËshaders/shadow_castjÔ‚ñBTSR  K Kx…K‡y Åx„Å£ÅlÆ)a 8'x°'ñQ ¡yxzPi|{ |÷x vs_mainvs_mainfs_mainfs_mainâJstruct VsIn { @location(0) q: vec2, @location(1) m0_: vec4, @location(2) m1_: vec4, @location(3) m2_: vec4, @location(4) m3_: vec4, @location(5) uvRect: vec4, @location(6) clip: vec4, @location(7) params: vec4, @location(8) look: vec4, @location(9) edges: vec4, @location(10) pin: vec4, } struct LightFrame { lightViewProj: mat4x4, params: vec4, evilLight: vec4, frameS: vec4, frameT: vec4, evilRect: vec4, evilLook: vec4, sdfRect: vec4, sdfInfo: vec4, morph: vec4, units: vec4, windA: vec4, windB: vec4, } struct CasterIn { uv: vec2, q: vec2, uvRect: vec4, size: vec2, look: vec4, time: f32, world: vec3, rest: vec3, plain: f32, paper: f32, fin: vec4, } struct CasterOut { alpha: f32, morph: f32, fade: f32, } struct VsOut { @builtin(position) position: vec4, @location(0) uv: vec2, @location(1) q: vec2, @location(2) @interpolate(flat) clip: vec4, @location(3) @interpolate(flat) params: vec4, @location(4) @interpolate(flat) look: vec4, @location(5) @interpolate(flat) uvRect: vec4, @location(6) @interpolate(flat) size: vec4, @location(7) world: vec3, @location(8) rest: vec3, } const HDR_RANGE: f32 = 4f; const WIND_TAU: f32 = 6.2831855f; const TREMBLE_TRAVEL: f32 = 0.0045f; const TREMBLE_FREQ: f32 = 34f; const DISSOLVE_FREQ: f32 = 24f; const DISSOLVE_SOFT: f32 = 0.045f; const FAR_WORLD: f32 = 1f; const PI: f32 = 3.1415927f; const GRAZE_LO: f32 = 0.07f; const GRAZE_HI: f32 = 0.16f; @group(0) @binding(0) var light: LightFrame; @group(1) @binding(0) var twinTex: texture_2d; @group(1) @binding(1) var twinSamp: sampler; @group(1) @binding(2) var pieceTex: texture_2d; @group(1) @binding(3) var sdfTex: texture_2d; fn srgbToLinear(c_1: vec3) -> vec3 { let x = max(c_1, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_2: vec3) -> vec3 { let x_1 = max(c_2, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_3: vec3) -> f32 { return dot(c_3, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_4: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_4 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_4; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_2 = floor(p_1); let f = (p_1 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_3 = floor(p_2); let f_1 = (p_2 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g_1 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn windAnchor(sheet: vec2, size: vec2, mask: f32, pin: vec4) -> f32 { var d: f32 = 1000f; let m = u32((clamp(mask, 0f, 15f) + 0.5f)); if ((m & 1u) != 0u) { let _e16 = d; d = min(_e16, abs(sheet.x)); } if ((m & 2u) != 0u) { let _e24 = d; d = min(_e24, abs((size.x - sheet.x))); } if ((m & 4u) != 0u) { let _e34 = d; d = min(_e34, abs(sheet.y)); } if ((m & 8u) != 0u) { let _e42 = d; d = min(_e42, abs((size.y - sheet.y))); } if (pin.x > -0.5f) { let a = (pin.xy * size); let ab = ((pin.zw * size) - a); let t_1 = clamp((dot((sheet - a), ab) / max(dot(ab, ab), 0.0000000001f)), 0f, 1f); let _e65 = d; d = min(_e65, length((sheet - (a + (ab * t_1))))); } let _e71 = d; return _e71; } fn windDisp(P0_: vec3, N: vec3, sheet_1: vec2, size_1: vec2, mask_1: f32, pin_1: vec4, seed: f32, wa: vec4, wb: vec4) -> f32 { let _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); let f_2 = min((_e9 * wb.z), 1.4f); let t_2 = wa.z; let dir = wb.xy; let along = dot(P0_.xz, dir); let _e26 = vnoise(vec2(((along * 6f) - (t_2 * 2.2f)), (seed * 7.3f))); let front = (0.7f + (0.3f * _e26)); let g_2 = (wa.w * front); let push = dot(N.xz, dir); let _e54 = vnoise(vec2(((t_2 * 1.9f) + (seed * 13f)), (along * 3f))); let swing = ((0.65f * sin((((t_2 * 7.5f) + (seed * WIND_TAU)) + (along * 2.5f)))) + (0.35f * _e54)); let sway = ((wa.x * g_2) * ((0.55f * push) + (0.45f * swing))); let run = (((dot(sheet_1, vec2(0.6f, 0.8f)) * 41.8879f) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11f)); let _e92 = vnoise(vec2(((t_2 * 3.3f) + (seed * 5f)), (along * 5f))); let flutter = (((wa.y * g_2) * sin(run)) * (0.55f + (0.45f * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } fn windBend(P0_1: vec3, N_1: vec3, T: vec3, B: vec3, sheet_2: vec2, size_2: vec2, mask_2: f32, pin_2: vec4, seed_1: f32, weight: f32, wa_1: vec4, wb_1: vec4) -> vec4 { let _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let d0_ = (_e13 * weight); let _e20 = windDisp((P0_1 + (T * 0.006f)), N_1, (sheet_2 + vec2(0.006f, 0f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dx = (_e20 * weight); let _e27 = windDisp((P0_1 + (B * 0.006f)), N_1, (sheet_2 + vec2(0f, 0.006f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dy = (_e27 * weight); let n_1 = normalize(((N_1 - (T * ((dx - d0_) / 0.006f))) - (B * ((dy - d0_) / 0.006f)))); return vec4(n_1, d0_); } fn evilPage(world: vec3) -> vec3 { var local_4: bool; let _e3 = light.evilLight; let L = _e3.xyz; let dy_1 = (L.y - world.y); let k = (L.y / max(dy_1, 0.0001f)); let Q_1 = (L.xz + ((world.xz - L.xz) * k)); if (dy_1 > 0.0001f) { let _e25 = light.evilLight.w; local_4 = (_e25 > 0.5f); } else { local_4 = false; } let ok = local_4; return vec3(Q_1, select(0f, 1f, ok)); } fn evilCoord(Q: vec2) -> vec2 { let h = vec3(Q, 1f); let _e5 = light.frameS; let _e10 = light.frameT; return vec2(dot(_e5.xyz, h), dot(_e10.xyz, h)); } fn boilNoise(g: vec2, t: f32) -> f32 { let f_3 = light.morph.x; let p_4 = (g * f_3); let sp = light.morph.y; let _e19 = fbm3_(((p_4 * 0.62f) + vec2(((t * 0.23f) * sp), 3.1f))); let _e29 = fbm3_(((p_4 * 0.62f) + vec2(7.7f, ((-(t) * 0.19f) * sp)))); let w_1 = vec2(_e19, _e29); let _e34 = light.morph.z; let _e46 = fbm3_(((p_4 + (w_1 * _e34)) + vec2(((t * 0.11f) * sp), ((-(t) * 0.31f) * sp)))); return _e46; } fn exactField(dSdf: f32, alpha: f32, texelPx: f32) -> f32 { let dA = ((0.5f - alpha) / max(texelPx, 0.001f)); return select(max(dSdf, dA), min(dSdf, dA), (alpha >= 0.5f)); } fn casterEval(c_5: CasterIn) -> CasterOut { var local_5: bool; var dE: f32; var local_6: bool; var local_7: bool; var d_1: f32; var local_8: bool; var local_9: bool; var aMorph: f32; var out_1: CasterOut; var local_10: bool; let truth = clamp(c_5.look.x, 0f, 1f); let tremble = clamp(c_5.look.y, 0f, 1f); let seed_2 = (c_5.look.z * 37f); let mode_2 = c_5.look.w; let t_3 = c_5.time; let sheet_3 = (c_5.q * c_5.size); let wp = (sheet_3 * TREMBLE_FREQ); let _e27 = vnoise((wp + vec2((t_3 * 13f), seed_2))); let _e34 = vnoise((wp + vec2((seed_2 + 31f), (t_3 * 11.3f)))); let wob = vec2(_e27, _e34); let travel = (wob * (TREMBLE_TRAVEL * tremble)); let duv = ((travel / max(c_5.size, vec2(0.0001f))) * c_5.uvRect.zw); let _e51 = textureSample(twinTex, twinSamp, (c_5.uv + duv)); let aTwin = _e51.w; let _e59 = textureSample(pieceTex, twinSamp, (c_5.uv + (duv * 0.4f))); let aPiece = _e59.w; let _e62 = dpdx(c_5.rest); let _e64 = dpdy(c_5.rest); let nW = cross(_e62, _e64); if (mode_2 > 0.5f) { let _e73 = light.evilLight.w; local_5 = (_e73 > 0.5f); } else { local_5 = false; } let morphing = local_5; let isFin = (mode_2 > 1.5f); let _e81 = evilPage(c_5.rest); let n_2 = light.sdfInfo.x; let texelPx_1 = light.sdfInfo.y; let _e92 = light.sdfRect; let gridOf = (vec2(n_2) / max(_e92.zw, vec2(0.000001f))); let _e100 = evilCoord(_e81.xy); let _e108 = vnoise(((_e100 * 46f) + vec2((t_3 * 13f), 7f))); let _e116 = vnoise(((_e100 * 46f) + vec2(19f, (t_3 * 11.3f)))); let ew = vec2(_e108, _e116); let _e120 = light.evilLook; let st = (_e100 + ((ew * _e120.yz) * tremble)); let inFrame = ((((step(0f, st.x) * step(st.x, 1f)) * step(0f, st.y)) * step(st.y, 1f)) * _e81.z); let _e144 = light.evilRect; let _e153 = light.evilRect; let uvT = (_e144.xy + (clamp(st, vec2(0f), vec2(1f)) * _e153.zw)); let _e159 = light.sdfRect; let gT = ((uvT - _e159.xy) * gridOf); let _e168 = textureSampleLevel(sdfTex, twinSamp, (gT / vec2(n_2)), 0f); let sdfT = _e168.y; let _e173 = textureSampleLevel(twinTex, twinSamp, uvT, 0f); let aTwinFrame = _e173.w; let _e177 = light.evilRect; let tilePx = (abs(_e177.zw) * gridOf); let outsideT = length(((max(-(st), vec2(0f)) * tilePx) + (max((st - vec2(1f)), vec2(0f)) * tilePx))); let _e198 = light.evilLook.w; let aEvil = (select(aTwinFrame, 1f, (_e198 > 0.5f)) * inFrame); let _e204 = exactField(sdfT, aEvil, texelPx_1); dE = select(_e204, (max(sdfT, 0f) + outsideT), (inFrame < 0.5f)); let _e212 = dE; let _e216 = light.evilLook.w; if (_e216 > 0.5f) { local_6 = (inFrame > 0.5f); } else { local_6 = false; } let _e224 = local_6; dE = select(_e212, -4f, _e224); let _e227 = dE; let _e231 = light.units.x; dE = select((_e227 * _e231), FAR_WORLD, (_e81.z < 0.5f)); let span = max((c_5.fin.zw - c_5.fin.xy), vec2(0.0001f)); let qP = select(c_5.q, ((c_5.q - c_5.fin.xy) / span), isFin); let qC = clamp(qP, vec2(0f), vec2(1f)); let outP = length(((qP - qC) * select(c_5.size, (c_5.size * span), isFin))); let uvP = ((c_5.uvRect.xy + (qC * c_5.uvRect.zw)) + (duv * 0.4f)); let _e276 = light.sdfRect; let gP = ((uvP - _e276.xy) * gridOf); let _e285 = textureSampleLevel(sdfTex, twinSamp, (gP / vec2(n_2)), 0f); let sdfP = _e285.x; let own = (select(aPiece, 1f, (c_5.plain > 0.5f)) * c_5.paper); let wpt = light.units.y; let _e298 = exactField(sdfP, own, texelPx_1); let dSheet = select((_e298 * wpt), ((max(sdfP, 0f) * wpt) + max(outP, (0.5f * wpt))), isFin); if isFin { local_7 = (outP <= 0f); } else { local_7 = false; } let finInside = local_7; let _e316 = light.evilLight; let Ls = _e316.xyz; let dyL = max((Ls.y - c_5.rest.y), 0.0001f); let nn = (nW / vec3(max(length(nW), 0.000000000000000000000001f))); let toPage = ((Ls.y / dyL) * sqrt(clamp((abs(dot(nn, (c_5.rest - Ls))) / dyL), 0.1f, 10f))); let _e344 = light.sdfInfo.w; let sdfOk = (_e344 > 0.5f); let dN = select(((0.5f - select(own, 0f, isFin)) * 2f), (dSheet * toPage), sdfOk); let _e359 = dE; let dEf = select(((0.5f - aEvil) * 2f), _e359, sdfOk); let toLs = (c_5.rest - Ls); let graze = (abs(dot(nn, toLs)) / max(length(toLs), 0.0001f)); let m_1 = ((1f - truth) * smoothstep(GRAZE_LO, GRAZE_HI, graze)); d_1 = mix(dN, dEf, m_1); let bump = sin((PI * clamp(m_1, 0f, 1f))); if (bump > 0.002f) { local_8 = morphing; } else { local_8 = false; } let _e388 = local_8; if _e388 { local_9 = sdfOk; } else { local_9 = false; } let _e392 = local_9; if _e392 { let _e394 = boilNoise(_e81.xy, t_3); let _e395 = d_1; let _e399 = light.evilLook.x; let _e404 = light.morph.w; d_1 = (_e395 + ((_e399 * bump) * (_e394 + (_e404 * bump)))); } let _e409 = d_1; let _e410 = fwidth(_e409); let fw = max(_e410, 0.000001f); let _e413 = d_1; aMorph = clamp((0.5f - (_e413 / fw)), 0f, 1f); let _e421 = aMorph; aMorph = select(_e421, 0f, finInside); let dp = (sheet_3 * DISSOLVE_FREQ); let _e432 = vnoise((dp + vec2((seed_2 * 1.7f), (t_3 * 0.55f)))); let _e441 = vnoise(((dp * 2.3f) + vec2((t_3 * 0.9f), seed_2))); let nn2_ = (0.5f + (0.5f * ((0.62f * _e432) + (0.38f * _e441)))); let mm = smoothstep((nn2_ - DISSOLVE_SOFT), (nn2_ + DISSOLVE_SOFT), ((truth * 1.08f) - 0.04f)); let sameUv = (select(mix(aTwin, aPiece, mm), 1f, (c_5.plain > 0.5f)) * c_5.paper); let _e468 = aMorph; out_1.alpha = select(sameUv, _e468, morphing); out_1.morph = select(0f, 1f, morphing); if (abs((mode_2 - 0.5f)) < 0.25f) { let _e485 = light.evilLight.w; local_10 = (_e485 > 0.5f); } else { local_10 = false; } let _e489 = local_10; out_1.fade = select(1f, truth, _e489); let _e492 = out_1; return _e492; } fn casterKeep(o: CasterOut, fragXY: vec2, cutoff: f32) -> bool { var local_11: bool; let bayer = fract((52.982918f * fract(dot(floor(fragXY), vec2(0.06711056f, 0.00583715f))))); let _e19 = light.params.w; let thr = mix(cutoff, (0.02f + (0.96f * bayer)), (_e19 * o.morph)); let keep2_ = fract((52.982918f * fract(dot((floor(fragXY) + vec2(17f, 3f)), vec2(0.00583715f, 0.06711056f))))); if (o.alpha >= thr) { local_11 = (keep2_ < o.fade); } else { local_11 = false; } let _e43 = local_11; return _e43; } fn bentCaster(in_2: VsIn, rest: vec3) -> vec3 { var local_12: bool; if !((in_2.edges.z <= 0f)) { let _e12 = light.windA.w; local_12 = (_e12 <= 0f); } else { local_12 = true; } let _e16 = local_12; if _e16 { return rest; } let isFin_1 = (in_2.look.w > 1.5f); let span_1 = select(vec2(1f), max((in_2.clip.zw - in_2.clip.xy), vec2(0.0001f)), isFin_1); let qP_1 = select(in_2.q, ((in_2.q - in_2.clip.xy) / span_1), isFin_1); let size_3 = (vec2(length(in_2.m0_.xyz), length(in_2.m1_.xyz)) * span_1); let N_2 = normalize(in_2.m2_.xyz); let _e58 = light.windA; let _e61 = light.windB; let _e62 = windDisp(rest, N_2, (qP_1 * size_3), size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); let d_2 = (_e62 * in_2.edges.z); return (rest + (N_2 * d_2)); } @vertex fn vs_main(in: VsIn) -> VsOut { var out: VsOut; let model = mat4x4(in.m0_, in.m1_, in.m2_, in.m3_); let rest_1 = (model * vec4(in.q, 0f, 1f)).xyz; let _e12 = bentCaster(in, rest_1); let world_1 = vec4(_e12, 1f); let _e19 = light.lightViewProj; out.position = (_e19 * world_1); out.uv = (in.uvRect.xy + (in.q * in.uvRect.zw)); out.q = in.q; out.clip = in.clip; out.params = in.params; out.look = in.look; out.uvRect = in.uvRect; out.size = vec4(length(in.m0_.xyz), length(in.m1_.xyz), 0f, 0f); out.world = world_1.xyz; out.rest = rest_1; let _e52 = out; return _e52; } @fragment fn fs_main(in_1: VsOut) { var local: bool; var local_1: bool; var local_2: bool; var c: CasterIn; var local_3: bool; let rd = (0.5f - length((in_1.q - vec2(0.5f, 0.5f)))); let cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); if (in_1.params.z > 0.5f) { local = (rd < 0f); } else { local = false; } let discOut = local; if (in_1.clip.w > 0.5f) { local_1 = (cd < 0f); } else { local_1 = false; } let _e35 = local_1; if _e35 { local_2 = (in_1.look.w < 1.5f); } else { local_2 = false; } let clipOut = local_2; c.uv = in_1.uv; c.q = in_1.q; c.uvRect = in_1.uvRect; c.size = in_1.size.xy; c.look = in_1.look; let _e60 = light.params.z; c.time = _e60; c.world = in_1.world; c.rest = in_1.rest; c.plain = select(0f, 1f, (in_1.params.w >= 0f)); if !(discOut) { local_3 = clipOut; } else { local_3 = true; } let _e78 = local_3; c.paper = select(1f, 0f, _e78); c.fin = in_1.clip; let _e84 = c; let _e85 = casterEval(_e84); let _e91 = light.params.y; let _e92 = casterKeep(_e85, in_1.position.xy, _e91); if !(_e92) { discard; } else { return; } }  ÛbêPB‰Lí+к¶ëóÉvs_mainmain0#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct LightFrame { mat4x4 lightViewProj; vec4 params; vec4 evilLight; vec4 frameS; vec4 frameT; vec4 evilRect; vec4 evilLook; vec4 sdfRect; vec4 sdfInfo; vec4 morph; vec4 units; vec4 windA; vec4 windB; }; struct CasterIn { vec2 uv; vec2 q; vec4 uvRect; vec2 size; vec4 look; float time; vec3 world; vec3 rest; float plain; float paper; vec4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { vec4 position; vec2 uv; vec2 q; vec4 clip; vec4 params; vec4 look; vec4 uvRect; vec4 size; vec3 world; vec3 rest; }; const float HDR_RANGE = 4.0; const float WIND_TAU = 6.2831855; const float TREMBLE_TRAVEL = 0.0045; const float TREMBLE_FREQ = 34.0; const float DISSOLVE_FREQ = 24.0; const float DISSOLVE_SOFT = 0.045; const float FAR_WORLD = 1.0; const float PI = 3.1415927; const float GRAZE_LO = 0.07; const float GRAZE_HI = 0.16; layout(std140) uniform LightFrame_block_0Vertex { LightFrame _group_0_binding_0_vs; }; layout(location = 0) in vec2 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec4 _p2vs_location10; smooth out vec2 _vs2fs_location0; smooth out vec2 _vs2fs_location1; flat out vec4 _vs2fs_location2; flat out vec4 _vs2fs_location3; flat out vec4 _vs2fs_location4; flat out vec4 _vs2fs_location5; flat out vec4 _vs2fs_location6; smooth out vec3 _vs2fs_location7; smooth out vec3 _vs2fs_location8; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d; d = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d; d = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d; d = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d; d = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a = (pin.xy * size); vec2 ab = ((pin.zw * size) - a); float t_1 = clamp((dot((sheet - a), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d; d = min(_e65, length((sheet - (a + (ab * t_1))))); } float _e71 = d; return _e71; } float windDisp(vec3 P0_, vec3 N, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_2 = wa.z; vec2 dir = wb.xy; float along = dot(P0_.xz, dir); float _e26 = vnoise(vec2(((along * 6.0) - (t_2 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N.xz, dir); float _e54 = vnoise(vec2(((t_2 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_2 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_2 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_1, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_1, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_1, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_1 = normalize(((N_1 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_1, d0_); } vec3 evilPage(vec3 world) { bool local_4 = false; vec4 _e3 = _group_0_binding_0_vs.evilLight; vec3 L = _e3.xyz; float dy_1 = (L.y - world.y); float k = (L.y / max(dy_1, 0.0001)); vec2 Q_1 = (L.xz + ((world.xz - L.xz) * k)); if ((dy_1 > 0.0001)) { float _e25 = _group_0_binding_0_vs.evilLight.w; local_4 = (_e25 > 0.5); } else { local_4 = false; } bool ok = local_4; return vec3(Q_1, (ok ? 1.0 : 0.0)); } vec2 evilCoord(vec2 Q) { vec3 h = vec3(Q, 1.0); vec4 _e5 = _group_0_binding_0_vs.frameS; vec4 _e10 = _group_0_binding_0_vs.frameT; return vec2(dot(_e5.xyz, h), dot(_e10.xyz, h)); } float boilNoise(vec2 g, float t) { float f_3 = _group_0_binding_0_vs.morph.x; vec2 p_4 = (g * f_3); float sp = _group_0_binding_0_vs.morph.y; float _e19 = fbm3_(((p_4 * 0.62) + vec2(((t * 0.23) * sp), 3.1))); float _e29 = fbm3_(((p_4 * 0.62) + vec2(7.7, ((-(t) * 0.19) * sp)))); vec2 w_1 = vec2(_e19, _e29); float _e34 = _group_0_binding_0_vs.morph.z; float _e46 = fbm3_(((p_4 + (w_1 * _e34)) + vec2(((t * 0.11) * sp), ((-(t) * 0.31) * sp)))); return _e46; } float exactField(float dSdf, float alpha, float texelPx) { float dA = ((0.5 - alpha) / max(texelPx, 0.001)); return ((alpha >= 0.5) ? min(dSdf, dA) : max(dSdf, dA)); } bool casterKeep(CasterOut o, vec2 fragXY, float cutoff) { bool local_11 = false; float bayer = fract((52.982918 * fract(dot(floor(fragXY), vec2(0.06711056, 0.00583715))))); float _e19 = _group_0_binding_0_vs.params.w; float thr = mix(cutoff, (0.02 + (0.96 * bayer)), (_e19 * o.morph)); float keep2_ = fract((52.982918 * fract(dot((floor(fragXY) + vec2(17.0, 3.0)), vec2(0.00583715, 0.06711056))))); if ((o.alpha >= thr)) { local_11 = (keep2_ < o.fade); } else { local_11 = false; } bool _e43 = local_11; return _e43; } vec3 bentCaster(VsIn in_2, vec3 rest) { bool local_12 = false; if (!((in_2.edges.z <= 0.0))) { float _e12 = _group_0_binding_0_vs.windA.w; local_12 = (_e12 <= 0.0); } else { local_12 = true; } bool _e16 = local_12; if (_e16) { return rest; } bool isFin = (in_2.look.w > 1.5); vec2 span = (isFin ? max((in_2.clip.zw - in_2.clip.xy), vec2(0.0001)) : vec2(1.0)); vec2 qP = (isFin ? ((in_2.q - in_2.clip.xy) / span) : in_2.q); vec2 size_3 = (vec2(length(in_2.m0_.xyz), length(in_2.m1_.xyz)) * span); vec3 N_2 = normalize(in_2.m2_.xyz); vec4 _e58 = _group_0_binding_0_vs.windA; vec4 _e61 = _group_0_binding_0_vs.windB; float _e62 = windDisp(rest, N_2, (qP * size_3), size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); float d_2 = (_e62 * in_2.edges.z); return (rest + (N_2 * d_2)); } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9, _p2vs_location10); VsOut out_ = VsOut(vec4(0.0), vec2(0.0), vec2(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec3(0.0), vec3(0.0)); mat4x4 model = mat4x4(in_.m0_, in_.m1_, in_.m2_, in_.m3_); vec3 rest_1 = (model * vec4(in_.q, 0.0, 1.0)).xyz; vec3 _e12 = bentCaster(in_, rest_1); vec4 world_1 = vec4(_e12, 1.0); mat4x4 _e19 = _group_0_binding_0_vs.lightViewProj; out_.position = (_e19 * world_1); out_.uv = (in_.uvRect.xy + (in_.q * in_.uvRect.zw)); out_.q = in_.q; out_.clip = in_.clip; out_.params = in_.params; out_.look = in_.look; out_.uvRect = in_.uvRect; out_.size = vec4(length(in_.m0_.xyz), length(in_.m1_.xyz), 0.0, 0.0); out_.world = world_1.xyz; out_.rest = rest_1; VsOut _e52 = out_; gl_Position = _e52.position; _vs2fs_location0 = _e52.uv; _vs2fs_location1 = _e52.q; _vs2fs_location2 = _e52.clip; _vs2fs_location3 = _e52.params; _vs2fs_location4 = _e52.look; _vs2fs_location5 = _e52.uvRect; _vs2fs_location6 = _e52.size; _vs2fs_location7 = _e52.world; _vs2fs_location8 = _e52.rest; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainPI#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct LightFrame { mat4x4 lightViewProj; vec4 params; vec4 evilLight; vec4 frameS; vec4 frameT; vec4 evilRect; vec4 evilLook; vec4 sdfRect; vec4 sdfInfo; vec4 morph; vec4 units; vec4 windA; vec4 windB; }; struct CasterIn { vec2 uv; vec2 q; vec4 uvRect; vec2 size; vec4 look; float time; vec3 world; vec3 rest; float plain; float paper; vec4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { vec4 position; vec2 uv; vec2 q; vec4 clip; vec4 params; vec4 look; vec4 uvRect; vec4 size; vec3 world; vec3 rest; }; const float HDR_RANGE = 4.0; const float WIND_TAU = 6.2831855; const float TREMBLE_TRAVEL = 0.0045; const float TREMBLE_FREQ = 34.0; const float DISSOLVE_FREQ = 24.0; const float DISSOLVE_SOFT = 0.045; const float FAR_WORLD = 1.0; const float PI = 3.1415927; const float GRAZE_LO = 0.07; const float GRAZE_HI = 0.16; layout(std140) uniform LightFrame_block_0Fragment { LightFrame _group_0_binding_0_fs; }; uniform highp sampler2D _group_1_binding_0_fs; uniform highp sampler2D _group_1_binding_2_fs; uniform highp sampler2D _group_1_binding_3_fs; smooth in vec2 _vs2fs_location0; smooth in vec2 _vs2fs_location1; flat in vec4 _vs2fs_location2; flat in vec4 _vs2fs_location3; flat in vec4 _vs2fs_location4; flat in vec4 _vs2fs_location5; flat in vec4 _vs2fs_location6; smooth in vec3 _vs2fs_location7; smooth in vec3 _vs2fs_location8; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d; d = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d; d = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d; d = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d; d = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a = (pin.xy * size); vec2 ab = ((pin.zw * size) - a); float t_1 = clamp((dot((sheet - a), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d; d = min(_e65, length((sheet - (a + (ab * t_1))))); } float _e71 = d; return _e71; } float windDisp(vec3 P0_, vec3 N, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_2 = wa.z; vec2 dir = wb.xy; float along = dot(P0_.xz, dir); float _e26 = vnoise(vec2(((along * 6.0) - (t_2 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N.xz, dir); float _e54 = vnoise(vec2(((t_2 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_2 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_2 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_1, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_1, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_1, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_1 = normalize(((N_1 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_1, d0_); } vec3 evilPage(vec3 world) { bool local_4 = false; vec4 _e3 = _group_0_binding_0_fs.evilLight; vec3 L = _e3.xyz; float dy_1 = (L.y - world.y); float k = (L.y / max(dy_1, 0.0001)); vec2 Q_1 = (L.xz + ((world.xz - L.xz) * k)); if ((dy_1 > 0.0001)) { float _e25 = _group_0_binding_0_fs.evilLight.w; local_4 = (_e25 > 0.5); } else { local_4 = false; } bool ok = local_4; return vec3(Q_1, (ok ? 1.0 : 0.0)); } vec2 evilCoord(vec2 Q) { vec3 h = vec3(Q, 1.0); vec4 _e5 = _group_0_binding_0_fs.frameS; vec4 _e10 = _group_0_binding_0_fs.frameT; return vec2(dot(_e5.xyz, h), dot(_e10.xyz, h)); } float boilNoise(vec2 g, float t) { float f_3 = _group_0_binding_0_fs.morph.x; vec2 p_4 = (g * f_3); float sp = _group_0_binding_0_fs.morph.y; float _e19 = fbm3_(((p_4 * 0.62) + vec2(((t * 0.23) * sp), 3.1))); float _e29 = fbm3_(((p_4 * 0.62) + vec2(7.7, ((-(t) * 0.19) * sp)))); vec2 w_1 = vec2(_e19, _e29); float _e34 = _group_0_binding_0_fs.morph.z; float _e46 = fbm3_(((p_4 + (w_1 * _e34)) + vec2(((t * 0.11) * sp), ((-(t) * 0.31) * sp)))); return _e46; } float exactField(float dSdf, float alpha, float texelPx) { float dA = ((0.5 - alpha) / max(texelPx, 0.001)); return ((alpha >= 0.5) ? min(dSdf, dA) : max(dSdf, dA)); } CasterOut casterEval(CasterIn c_5) { bool local_5 = false; float dE = 0.0; bool local_6 = false; bool local_7 = false; float d_1 = 0.0; bool local_8 = false; bool local_9 = false; float aMorph = 0.0; CasterOut out_1 = CasterOut(0.0, 0.0, 0.0); bool local_10 = false; float truth = clamp(c_5.look.x, 0.0, 1.0); float tremble = clamp(c_5.look.y, 0.0, 1.0); float seed_2 = (c_5.look.z * 37.0); float mode_2 = c_5.look.w; float t_3 = c_5.time; vec2 sheet_3 = (c_5.q * c_5.size); vec2 wp = (sheet_3 * TREMBLE_FREQ); float _e27 = vnoise((wp + vec2((t_3 * 13.0), seed_2))); float _e34 = vnoise((wp + vec2((seed_2 + 31.0), (t_3 * 11.3)))); vec2 wob = vec2(_e27, _e34); vec2 travel = (wob * (TREMBLE_TRAVEL * tremble)); vec2 duv = ((travel / max(c_5.size, vec2(0.0001))) * c_5.uvRect.zw); vec4 _e51 = texture(_group_1_binding_0_fs, vec2((c_5.uv + duv))); float aTwin = _e51.w; vec4 _e59 = texture(_group_1_binding_2_fs, vec2((c_5.uv + (duv * 0.4)))); float aPiece = _e59.w; vec3 _e62 = dFdx(c_5.rest); vec3 _e64 = dFdy(c_5.rest); vec3 nW = cross(_e62, _e64); if ((mode_2 > 0.5)) { float _e73 = _group_0_binding_0_fs.evilLight.w; local_5 = (_e73 > 0.5); } else { local_5 = false; } bool morphing = local_5; bool isFin = (mode_2 > 1.5); vec3 _e81 = evilPage(c_5.rest); float n_2 = _group_0_binding_0_fs.sdfInfo.x; float texelPx_1 = _group_0_binding_0_fs.sdfInfo.y; vec4 _e92 = _group_0_binding_0_fs.sdfRect; vec2 gridOf = (vec2(n_2) / max(_e92.zw, vec2(1e-6))); vec2 _e100 = evilCoord(_e81.xy); float _e108 = vnoise(((_e100 * 46.0) + vec2((t_3 * 13.0), 7.0))); float _e116 = vnoise(((_e100 * 46.0) + vec2(19.0, (t_3 * 11.3)))); vec2 ew = vec2(_e108, _e116); vec4 _e120 = _group_0_binding_0_fs.evilLook; vec2 st = (_e100 + ((ew * _e120.yz) * tremble)); float inFrame = ((((step(0.0, st.x) * step(st.x, 1.0)) * step(0.0, st.y)) * step(st.y, 1.0)) * _e81.z); vec4 _e144 = _group_0_binding_0_fs.evilRect; vec4 _e153 = _group_0_binding_0_fs.evilRect; vec2 uvT = (_e144.xy + (clamp(st, vec2(0.0), vec2(1.0)) * _e153.zw)); vec4 _e159 = _group_0_binding_0_fs.sdfRect; vec2 gT = ((uvT - _e159.xy) * gridOf); vec4 _e168 = textureLod(_group_1_binding_3_fs, vec2((gT / vec2(n_2))), 0.0); float sdfT = _e168.y; vec4 _e173 = textureLod(_group_1_binding_0_fs, vec2(uvT), 0.0); float aTwinFrame = _e173.w; vec4 _e177 = _group_0_binding_0_fs.evilRect; vec2 tilePx = (abs(_e177.zw) * gridOf); float outsideT = length(((max(-(st), vec2(0.0)) * tilePx) + (max((st - vec2(1.0)), vec2(0.0)) * tilePx))); float _e198 = _group_0_binding_0_fs.evilLook.w; float aEvil = (((_e198 > 0.5) ? 1.0 : aTwinFrame) * inFrame); float _e204 = exactField(sdfT, aEvil, texelPx_1); dE = ((inFrame < 0.5) ? (max(sdfT, 0.0) + outsideT) : _e204); float _e212 = dE; float _e216 = _group_0_binding_0_fs.evilLook.w; if ((_e216 > 0.5)) { local_6 = (inFrame > 0.5); } else { local_6 = false; } bool _e224 = local_6; dE = (_e224 ? -4.0 : _e212); float _e227 = dE; float _e231 = _group_0_binding_0_fs.units.x; dE = ((_e81.z < 0.5) ? FAR_WORLD : (_e227 * _e231)); vec2 span = max((c_5.fin.zw - c_5.fin.xy), vec2(0.0001)); vec2 qP = (isFin ? ((c_5.q - c_5.fin.xy) / span) : c_5.q); vec2 qC = clamp(qP, vec2(0.0), vec2(1.0)); float outP = length(((qP - qC) * (isFin ? (c_5.size * span) : c_5.size))); vec2 uvP = ((c_5.uvRect.xy + (qC * c_5.uvRect.zw)) + (duv * 0.4)); vec4 _e276 = _group_0_binding_0_fs.sdfRect; vec2 gP = ((uvP - _e276.xy) * gridOf); vec4 _e285 = textureLod(_group_1_binding_3_fs, vec2((gP / vec2(n_2))), 0.0); float sdfP = _e285.x; float own = (((c_5.plain > 0.5) ? 1.0 : aPiece) * c_5.paper); float wpt = _group_0_binding_0_fs.units.y; float _e298 = exactField(sdfP, own, texelPx_1); float dSheet = (isFin ? ((max(sdfP, 0.0) * wpt) + max(outP, (0.5 * wpt))) : (_e298 * wpt)); if (isFin) { local_7 = (outP <= 0.0); } else { local_7 = false; } bool finInside = local_7; vec4 _e316 = _group_0_binding_0_fs.evilLight; vec3 Ls = _e316.xyz; float dyL = max((Ls.y - c_5.rest.y), 0.0001); vec3 nn = (nW / vec3(max(length(nW), 1e-24))); float toPage = ((Ls.y / dyL) * sqrt(clamp((abs(dot(nn, (c_5.rest - Ls))) / dyL), 0.1, 10.0))); float _e344 = _group_0_binding_0_fs.sdfInfo.w; bool sdfOk = (_e344 > 0.5); float dN = (sdfOk ? (dSheet * toPage) : ((0.5 - (isFin ? 0.0 : own)) * 2.0)); float _e359 = dE; float dEf = (sdfOk ? _e359 : ((0.5 - aEvil) * 2.0)); vec3 toLs = (c_5.rest - Ls); float graze = (abs(dot(nn, toLs)) / max(length(toLs), 0.0001)); float m_1 = ((1.0 - truth) * smoothstep(GRAZE_LO, GRAZE_HI, graze)); d_1 = mix(dN, dEf, m_1); float bump = sin((PI * clamp(m_1, 0.0, 1.0))); if ((bump > 0.002)) { local_8 = morphing; } else { local_8 = false; } bool _e388 = local_8; if (_e388) { local_9 = sdfOk; } else { local_9 = false; } bool _e392 = local_9; if (_e392) { float _e394 = boilNoise(_e81.xy, t_3); float _e395 = d_1; float _e399 = _group_0_binding_0_fs.evilLook.x; float _e404 = _group_0_binding_0_fs.morph.w; d_1 = (_e395 + ((_e399 * bump) * (_e394 + (_e404 * bump)))); } float _e409 = d_1; float _e410 = fwidth(_e409); float fw = max(_e410, 1e-6); float _e413 = d_1; aMorph = clamp((0.5 - (_e413 / fw)), 0.0, 1.0); float _e421 = aMorph; aMorph = (finInside ? 0.0 : _e421); vec2 dp = (sheet_3 * DISSOLVE_FREQ); float _e432 = vnoise((dp + vec2((seed_2 * 1.7), (t_3 * 0.55)))); float _e441 = vnoise(((dp * 2.3) + vec2((t_3 * 0.9), seed_2))); float nn2_ = (0.5 + (0.5 * ((0.62 * _e432) + (0.38 * _e441)))); float mm = smoothstep((nn2_ - DISSOLVE_SOFT), (nn2_ + DISSOLVE_SOFT), ((truth * 1.08) - 0.04)); float sameUv = (((c_5.plain > 0.5) ? 1.0 : mix(aTwin, aPiece, mm)) * c_5.paper); float _e468 = aMorph; out_1.alpha = (morphing ? _e468 : sameUv); out_1.morph = (morphing ? 1.0 : 0.0); if ((abs((mode_2 - 0.5)) < 0.25)) { float _e485 = _group_0_binding_0_fs.evilLight.w; local_10 = (_e485 > 0.5); } else { local_10 = false; } bool _e489 = local_10; out_1.fade = (_e489 ? truth : 1.0); CasterOut _e492 = out_1; return _e492; } bool casterKeep(CasterOut o, vec2 fragXY, float cutoff) { bool local_11 = false; float bayer = fract((52.982918 * fract(dot(floor(fragXY), vec2(0.06711056, 0.00583715))))); float _e19 = _group_0_binding_0_fs.params.w; float thr = mix(cutoff, (0.02 + (0.96 * bayer)), (_e19 * o.morph)); float keep2_ = fract((52.982918 * fract(dot((floor(fragXY) + vec2(17.0, 3.0)), vec2(0.00583715, 0.06711056))))); if ((o.alpha >= thr)) { local_11 = (keep2_ < o.fade); } else { local_11 = false; } bool _e43 = local_11; return _e43; } vec3 bentCaster(VsIn in_2, vec3 rest) { bool local_12 = false; if (!((in_2.edges.z <= 0.0))) { float _e12 = _group_0_binding_0_fs.windA.w; local_12 = (_e12 <= 0.0); } else { local_12 = true; } bool _e16 = local_12; if (_e16) { return rest; } bool isFin_1 = (in_2.look.w > 1.5); vec2 span_1 = (isFin_1 ? max((in_2.clip.zw - in_2.clip.xy), vec2(0.0001)) : vec2(1.0)); vec2 qP_1 = (isFin_1 ? ((in_2.q - in_2.clip.xy) / span_1) : in_2.q); vec2 size_3 = (vec2(length(in_2.m0_.xyz), length(in_2.m1_.xyz)) * span_1); vec3 N_2 = normalize(in_2.m2_.xyz); vec4 _e58 = _group_0_binding_0_fs.windA; vec4 _e61 = _group_0_binding_0_fs.windB; float _e62 = windDisp(rest, N_2, (qP_1 * size_3), size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); float d_2 = (_e62 * in_2.edges.z); return (rest + (N_2 * d_2)); } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8); bool local = false; bool local_1 = false; bool local_2 = false; CasterIn c = CasterIn(vec2(0.0), vec2(0.0), vec4(0.0), vec2(0.0), vec4(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, vec4(0.0)); bool local_3 = false; float rd = (0.5 - length((in_1.q - vec2(0.5, 0.5)))); float cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); if ((in_1.params.z > 0.5)) { local = (rd < 0.0); } else { local = false; } bool discOut = local; if ((in_1.clip.w > 0.5)) { local_1 = (cd < 0.0); } else { local_1 = false; } bool _e35 = local_1; if (_e35) { local_2 = (in_1.look.w < 1.5); } else { local_2 = false; } bool clipOut = local_2; c.uv = in_1.uv; c.q = in_1.q; c.uvRect = in_1.uvRect; c.size = in_1.size.xy; c.look = in_1.look; float _e60 = _group_0_binding_0_fs.params.z; c.time = _e60; c.world = in_1.world; c.rest = in_1.rest; c.plain = ((in_1.params.w >= 0.0) ? 1.0 : 0.0); if (!(discOut)) { local_3 = clipOut; } else { local_3 = true; } bool _e78 = local_3; c.paper = (_e78 ? 0.0 : 1.0); c.fin = in_1.clip; CasterIn _e84 = c; CasterOut _e85 = casterEval(_e84); float _e91 = _group_0_binding_0_fs.params.y; bool _e92 = casterKeep(_e85, in_1.position.xy, _e91); if (!(_e92)) { discard; } else { return; } }  ÛbêPB‰LÔlM!à&ß0LightFrame_block_0VertexLightFrame_block_0Fragment_group_1_binding_3_fs_group_1_binding_0_fs_group_1_binding_2_fsvs_mainvs_mainfs_mainfs_mainþ`// language: metal1.0 #include #include using metal::uint; struct VsIn { metal::float2 q; char _pad1[8]; metal::float4 m0_; metal::float4 m1_; metal::float4 m2_; metal::float4 m3_; metal::float4 uvRect; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float4 pin; }; struct LightFrame { metal::float4x4 lightViewProj; metal::float4 params; metal::float4 evilLight; metal::float4 frameS; metal::float4 frameT; metal::float4 evilRect; metal::float4 evilLook; metal::float4 sdfRect; metal::float4 sdfInfo; metal::float4 morph; metal::float4 units; metal::float4 windA; metal::float4 windB; }; struct CasterIn { metal::float2 uv; metal::float2 q; metal::float4 uvRect; metal::float2 size; char _pad4[8]; metal::float4 look; float time; char _pad6[12]; metal::float3 world; metal::packed_float3 rest; float plain; float paper; char _pad10[12]; metal::float4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { metal::float4 position; metal::float2 uv; metal::float2 q; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 uvRect; metal::float4 size; metal::float3 world; metal::float3 rest; }; constant float HDR_RANGE = 4.0; constant float WIND_TAU = 6.2831855; constant float TREMBLE_TRAVEL = 0.0045; constant float TREMBLE_FREQ = 34.0; constant float DISSOLVE_FREQ = 24.0; constant float DISSOLVE_SOFT = 0.045; constant float FAR_WORLD = 1.0; constant float PI = 3.1415927; constant float GRAZE_LO = 0.07; constant float GRAZE_HI = 0.16; metal::float3 srgbToLinear( metal::float3 c_1 ) { metal::float3 x = metal::max(c_1, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_2 ) { metal::float3 x_1 = metal::max(c_2, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_3 ) { return metal::dot(c_3, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_4, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_4 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_4; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_2 = metal::floor(p_1); metal::float2 f = p_1 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_1 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g_1 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } float windAnchor( metal::float2 sheet, metal::float2 size, float mask, metal::float4 pin ) { float d = 1000.0; uint m = naga_f2u32(metal::clamp(mask, 0.0, 15.0) + 0.5); if ((m & 1u) != 0u) { float _e16 = d; d = metal::min(_e16, metal::abs(sheet.x)); } if ((m & 2u) != 0u) { float _e24 = d; d = metal::min(_e24, metal::abs(size.x - sheet.x)); } if ((m & 4u) != 0u) { float _e34 = d; d = metal::min(_e34, metal::abs(sheet.y)); } if ((m & 8u) != 0u) { float _e42 = d; d = metal::min(_e42, metal::abs(size.y - sheet.y)); } if (pin.x > -0.5) { metal::float2 a = pin.xy * size; metal::float2 ab = (pin.zw * size) - a; float t_1 = metal::clamp(metal::dot(sheet - a, ab) / metal::max(metal::dot(ab, ab), 0.0000000001), 0.0, 1.0); float _e65 = d; d = metal::min(_e65, metal::length(sheet - (a + (ab * t_1)))); } float _e71 = d; return _e71; } float windDisp( metal::float3 P0_, metal::float3 N, metal::float2 sheet_1, metal::float2 size_1, float mask_1, metal::float4 pin_1, float seed, metal::float4 wa, metal::float4 wb ) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = metal::min(_e9 * wb.z, 1.4); float t_2 = wa.z; metal::float2 dir = wb.xy; float along = metal::dot(P0_.xz, dir); float _e26 = vnoise(metal::float2((along * 6.0) - (t_2 * 2.2), seed * 7.3)); float front = 0.7 + (0.3 * _e26); float g_2 = wa.w * front; float push = metal::dot(N.xz, dir); float _e54 = vnoise(metal::float2((t_2 * 1.9) + (seed * 13.0), along * 3.0)); float swing = (0.65 * metal::sin(((t_2 * 7.5) + (seed * WIND_TAU)) + (along * 2.5))) + (0.35 * _e54); float sway = (wa.x * g_2) * ((0.55 * push) + (0.45 * swing)); float run = ((metal::dot(sheet_1, metal::float2(0.6, 0.8)) * 41.8879) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11.0); float _e92 = vnoise(metal::float2((t_2 * 3.3) + (seed * 5.0), along * 5.0)); float flutter = ((wa.y * g_2) * metal::sin(run)) * (0.55 + (0.45 * _e92)); return (f_2 * f_2) * (sway + (f_2 * flutter)); } metal::float4 windBend( metal::float3 P0_1, metal::float3 N_1, metal::float3 T, metal::float3 B, metal::float2 sheet_2, metal::float2 size_2, float mask_2, metal::float4 pin_2, float seed_1, float weight, metal::float4 wa_1, metal::float4 wb_1 ) { float _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = _e13 * weight; float _e20 = windDisp(P0_1 + (T * 0.006), N_1, sheet_2 + metal::float2(0.006, 0.0), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = _e20 * weight; float _e27 = windDisp(P0_1 + (B * 0.006), N_1, sheet_2 + metal::float2(0.0, 0.006), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = _e27 * weight; metal::float3 n_1 = metal::normalize((N_1 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006))); return metal::float4(n_1, d0_); } metal::float3 evilPage( metal::float3 world, constant LightFrame& light ) { bool local_4 = {}; metal::float4 _e3 = light.evilLight; metal::float3 L = _e3.xyz; float dy_1 = L.y - world.y; float k = L.y / metal::max(dy_1, 0.0001); metal::float2 Q_1 = L.xz + ((world.xz - L.xz) * k); if (dy_1 > 0.0001) { float _e25 = light.evilLight.w; local_4 = _e25 > 0.5; } else { local_4 = false; } bool ok = local_4; return metal::float3(Q_1, ok ? 1.0 : 0.0); } metal::float2 evilCoord( metal::float2 Q, constant LightFrame& light ) { metal::float3 h = metal::float3(Q, 1.0); metal::float4 _e5 = light.frameS; metal::float4 _e10 = light.frameT; return metal::float2(metal::dot(_e5.xyz, h), metal::dot(_e10.xyz, h)); } float boilNoise( metal::float2 g, float t, constant LightFrame& light ) { float f_3 = light.morph.x; metal::float2 p_4 = g * f_3; float sp = light.morph.y; float _e19 = fbm3_((p_4 * 0.62) + metal::float2((t * 0.23) * sp, 3.1)); float _e29 = fbm3_((p_4 * 0.62) + metal::float2(7.7, (-(t) * 0.19) * sp)); metal::float2 w_1 = metal::float2(_e19, _e29); float _e34 = light.morph.z; float _e46 = fbm3_((p_4 + (w_1 * _e34)) + metal::float2((t * 0.11) * sp, (-(t) * 0.31) * sp)); return _e46; } float exactField( float dSdf, float alpha, float texelPx ) { float dA = (0.5 - alpha) / metal::max(texelPx, 0.001); return (alpha >= 0.5) ? metal::min(dSdf, dA) : metal::max(dSdf, dA); } CasterOut casterEval( CasterIn c_5, constant LightFrame& light, metal::texture2d twinTex, metal::sampler twinSamp, metal::texture2d pieceTex, metal::texture2d sdfTex ) { bool local_5 = {}; float dE = {}; bool local_6 = {}; bool local_7 = {}; float d_1 = {}; bool local_8 = {}; bool local_9 = {}; float aMorph = {}; CasterOut out_1 = {}; bool local_10 = {}; float truth = metal::clamp(c_5.look.x, 0.0, 1.0); float tremble = metal::clamp(c_5.look.y, 0.0, 1.0); float seed_2 = c_5.look.z * 37.0; float mode_2 = c_5.look.w; float t_3 = c_5.time; metal::float2 sheet_3 = c_5.q * c_5.size; metal::float2 wp = sheet_3 * TREMBLE_FREQ; float _e27 = vnoise(wp + metal::float2(t_3 * 13.0, seed_2)); float _e34 = vnoise(wp + metal::float2(seed_2 + 31.0, t_3 * 11.3)); metal::float2 wob = metal::float2(_e27, _e34); metal::float2 travel = wob * (TREMBLE_TRAVEL * tremble); metal::float2 duv = (travel / metal::max(c_5.size, metal::float2(0.0001))) * c_5.uvRect.zw; metal::float4 _e51 = twinTex.sample(twinSamp, c_5.uv + duv); float aTwin = _e51.w; metal::float4 _e59 = pieceTex.sample(twinSamp, c_5.uv + (duv * 0.4)); float aPiece = _e59.w; metal::float3 _e62 = metal::dfdx(c_5.rest); metal::float3 _e64 = metal::dfdy(c_5.rest); metal::float3 nW = metal::cross(_e62, _e64); if (mode_2 > 0.5) { float _e73 = light.evilLight.w; local_5 = _e73 > 0.5; } else { local_5 = false; } bool morphing = local_5; bool isFin = mode_2 > 1.5; metal::float3 _e81 = evilPage(c_5.rest, light); float n_2 = light.sdfInfo.x; float texelPx_1 = light.sdfInfo.y; metal::float4 _e92 = light.sdfRect; metal::float2 gridOf = metal::float2(n_2) / metal::max(_e92.zw, metal::float2(0.000001)); metal::float2 _e100 = evilCoord(_e81.xy, light); float _e108 = vnoise((_e100 * 46.0) + metal::float2(t_3 * 13.0, 7.0)); float _e116 = vnoise((_e100 * 46.0) + metal::float2(19.0, t_3 * 11.3)); metal::float2 ew = metal::float2(_e108, _e116); metal::float4 _e120 = light.evilLook; metal::float2 st = _e100 + ((ew * _e120.yz) * tremble); float inFrame = (((metal::step(0.0, st.x) * metal::step(st.x, 1.0)) * metal::step(0.0, st.y)) * metal::step(st.y, 1.0)) * _e81.z; metal::float4 _e144 = light.evilRect; metal::float4 _e153 = light.evilRect; metal::float2 uvT = _e144.xy + (metal::clamp(st, metal::float2(0.0), metal::float2(1.0)) * _e153.zw); metal::float4 _e159 = light.sdfRect; metal::float2 gT = (uvT - _e159.xy) * gridOf; metal::float4 _e168 = sdfTex.sample(twinSamp, gT / metal::float2(n_2), metal::level(0.0)); float sdfT = _e168.y; metal::float4 _e173 = twinTex.sample(twinSamp, uvT, metal::level(0.0)); float aTwinFrame = _e173.w; metal::float4 _e177 = light.evilRect; metal::float2 tilePx = metal::abs(_e177.zw) * gridOf; float outsideT = metal::length((metal::max(-(st), metal::float2(0.0)) * tilePx) + (metal::max(st - metal::float2(1.0), metal::float2(0.0)) * tilePx)); float _e198 = light.evilLook.w; float aEvil = ((_e198 > 0.5) ? 1.0 : aTwinFrame) * inFrame; float _e204 = exactField(sdfT, aEvil, texelPx_1); dE = (inFrame < 0.5) ? (metal::max(sdfT, 0.0) + outsideT) : _e204; float _e212 = dE; float _e216 = light.evilLook.w; if (_e216 > 0.5) { local_6 = inFrame > 0.5; } else { local_6 = false; } bool _e224 = local_6; dE = _e224 ? -4.0 : _e212; float _e227 = dE; float _e231 = light.units.x; dE = (_e81.z < 0.5) ? FAR_WORLD : (_e227 * _e231); metal::float2 span = metal::max(c_5.fin.zw - c_5.fin.xy, metal::float2(0.0001)); metal::float2 qP = isFin ? ((c_5.q - c_5.fin.xy) / span) : c_5.q; metal::float2 qC = metal::clamp(qP, metal::float2(0.0), metal::float2(1.0)); float outP = metal::length((qP - qC) * (isFin ? (c_5.size * span) : c_5.size)); metal::float2 uvP = (c_5.uvRect.xy + (qC * c_5.uvRect.zw)) + (duv * 0.4); metal::float4 _e276 = light.sdfRect; metal::float2 gP = (uvP - _e276.xy) * gridOf; metal::float4 _e285 = sdfTex.sample(twinSamp, gP / metal::float2(n_2), metal::level(0.0)); float sdfP = _e285.x; float own = ((c_5.plain > 0.5) ? 1.0 : aPiece) * c_5.paper; float wpt = light.units.y; float _e298 = exactField(sdfP, own, texelPx_1); float dSheet = isFin ? ((metal::max(sdfP, 0.0) * wpt) + metal::max(outP, 0.5 * wpt)) : (_e298 * wpt); if (isFin) { local_7 = outP <= 0.0; } else { local_7 = false; } bool finInside = local_7; metal::float4 _e316 = light.evilLight; metal::float3 Ls = _e316.xyz; float dyL = metal::max(Ls.y - c_5.rest[1], 0.0001); metal::float3 nn = nW / metal::float3(metal::max(metal::length(nW), 0.000000000000000000000001)); float toPage = (Ls.y / dyL) * metal::sqrt(metal::clamp(metal::abs(metal::dot(nn, c_5.rest - Ls)) / dyL, 0.1, 10.0)); float _e344 = light.sdfInfo.w; bool sdfOk = _e344 > 0.5; float dN = sdfOk ? (dSheet * toPage) : ((0.5 - (isFin ? 0.0 : own)) * 2.0); float _e359 = dE; float dEf = sdfOk ? _e359 : ((0.5 - aEvil) * 2.0); metal::float3 toLs = c_5.rest - Ls; float graze = metal::abs(metal::dot(nn, toLs)) / metal::max(metal::length(toLs), 0.0001); float m_1 = (1.0 - truth) * metal::smoothstep(GRAZE_LO, GRAZE_HI, graze); d_1 = metal::mix(dN, dEf, m_1); float bump = metal::sin(PI * metal::clamp(m_1, 0.0, 1.0)); if (bump > 0.002) { local_8 = morphing; } else { local_8 = false; } bool _e388 = local_8; if (_e388) { local_9 = sdfOk; } else { local_9 = false; } bool _e392 = local_9; if (_e392) { float _e394 = boilNoise(_e81.xy, t_3, light); float _e395 = d_1; float _e399 = light.evilLook.x; float _e404 = light.morph.w; d_1 = _e395 + ((_e399 * bump) * (_e394 + (_e404 * bump))); } float _e409 = d_1; float _e410 = metal::fwidth(_e409); float fw = metal::max(_e410, 0.000001); float _e413 = d_1; aMorph = metal::clamp(0.5 - (_e413 / fw), 0.0, 1.0); float _e421 = aMorph; aMorph = finInside ? 0.0 : _e421; metal::float2 dp = sheet_3 * DISSOLVE_FREQ; float _e432 = vnoise(dp + metal::float2(seed_2 * 1.7, t_3 * 0.55)); float _e441 = vnoise((dp * 2.3) + metal::float2(t_3 * 0.9, seed_2)); float nn2_ = 0.5 + (0.5 * ((0.62 * _e432) + (0.38 * _e441))); float mm = metal::smoothstep(nn2_ - DISSOLVE_SOFT, nn2_ + DISSOLVE_SOFT, (truth * 1.08) - 0.04); float sameUv = ((c_5.plain > 0.5) ? 1.0 : metal::mix(aTwin, aPiece, mm)) * c_5.paper; float _e468 = aMorph; out_1.alpha = morphing ? _e468 : sameUv; out_1.morph = morphing ? 1.0 : 0.0; if (metal::abs(mode_2 - 0.5) < 0.25) { float _e485 = light.evilLight.w; local_10 = _e485 > 0.5; } else { local_10 = false; } bool _e489 = local_10; out_1.fade = _e489 ? truth : 1.0; CasterOut _e492 = out_1; return _e492; } bool casterKeep( CasterOut o, metal::float2 fragXY, float cutoff, constant LightFrame& light ) { bool local_11 = {}; float bayer = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(fragXY), metal::float2(0.06711056, 0.00583715)))); float _e19 = light.params.w; float thr = metal::mix(cutoff, 0.02 + (0.96 * bayer), _e19 * o.morph); float keep2_ = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(fragXY) + metal::float2(17.0, 3.0), metal::float2(0.00583715, 0.06711056)))); if (o.alpha >= thr) { local_11 = keep2_ < o.fade; } else { local_11 = false; } bool _e43 = local_11; return _e43; } metal::float3 bentCaster( VsIn in_2, metal::float3 rest, constant LightFrame& light ) { bool local_12 = {}; if (!((in_2.edges.z <= 0.0))) { float _e12 = light.windA.w; local_12 = _e12 <= 0.0; } else { local_12 = true; } bool _e16 = local_12; if (_e16) { return rest; } bool isFin_1 = in_2.look.w > 1.5; metal::float2 span_1 = isFin_1 ? metal::max(in_2.clip.zw - in_2.clip.xy, metal::float2(0.0001)) : metal::float2(1.0); metal::float2 qP_1 = isFin_1 ? ((in_2.q - in_2.clip.xy) / span_1) : in_2.q; metal::float2 size_3 = metal::float2(metal::length(in_2.m0_.xyz), metal::length(in_2.m1_.xyz)) * span_1; metal::float3 N_2 = metal::normalize(in_2.m2_.xyz); metal::float4 _e58 = light.windA; metal::float4 _e61 = light.windB; float _e62 = windDisp(rest, N_2, qP_1 * size_3, size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); float d_2 = _e62 * in_2.edges.z; return rest + (N_2 * d_2); } struct vs_mainInput { metal::float2 q [[attribute(0)]]; metal::float4 m0_ [[attribute(1)]]; metal::float4 m1_ [[attribute(2)]]; metal::float4 m2_ [[attribute(3)]]; metal::float4 m3_ [[attribute(4)]]; metal::float4 uvRect [[attribute(5)]]; metal::float4 clip [[attribute(6)]]; metal::float4 params [[attribute(7)]]; metal::float4 look [[attribute(8)]]; metal::float4 edges [[attribute(9)]]; metal::float4 pin_3 [[attribute(10)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; metal::float2 q [[user(loc1), center_perspective]]; metal::float4 clip [[user(loc2), flat]]; metal::float4 params [[user(loc3), flat]]; metal::float4 look [[user(loc4), flat]]; metal::float4 uvRect [[user(loc5), flat]]; metal::float4 size [[user(loc6), flat]]; metal::float3 world [[user(loc7), center_perspective]]; metal::float3 rest [[user(loc8), center_perspective]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant LightFrame& light [[buffer(0)]] ) { const VsIn in = { varyings.q, {}, varyings.m0_, varyings.m1_, varyings.m2_, varyings.m3_, varyings.uvRect, varyings.clip, varyings.params, varyings.look, varyings.edges, varyings.pin_3 }; VsOut out = {}; metal::float4x4 model = metal::float4x4(in.m0_, in.m1_, in.m2_, in.m3_); metal::float3 rest_1 = (model * metal::float4(in.q, 0.0, 1.0)).xyz; metal::float3 _e12 = bentCaster(in, rest_1, light); metal::float4 world_1 = metal::float4(_e12, 1.0); metal::float4x4 _e19 = light.lightViewProj; out.position = _e19 * world_1; out.uv = in.uvRect.xy + (in.q * in.uvRect.zw); out.q = in.q; out.clip = in.clip; out.params = in.params; out.look = in.look; out.uvRect = in.uvRect; out.size = metal::float4(metal::length(in.m0_.xyz), metal::length(in.m1_.xyz), 0.0, 0.0); out.world = world_1.xyz; out.rest = rest_1; VsOut _e52 = out; const auto _tmp = _e52; return vs_mainOutput { _tmp.position, _tmp.uv, _tmp.q, _tmp.clip, _tmp.params, _tmp.look, _tmp.uvRect, _tmp.size, _tmp.world, _tmp.rest }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; metal::float2 q [[user(loc1), center_perspective]]; metal::float4 clip [[user(loc2), flat]]; metal::float4 params [[user(loc3), flat]]; metal::float4 look [[user(loc4), flat]]; metal::float4 uvRect [[user(loc5), flat]]; metal::float4 size_3 [[user(loc6), flat]]; metal::float3 world_1 [[user(loc7), center_perspective]]; metal::float3 rest_1 [[user(loc8), center_perspective]]; }; fragment void fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant LightFrame& light [[buffer(0)]] , metal::texture2d twinTex [[texture(0)]] , metal::sampler twinSamp [[sampler(0)]] , metal::texture2d pieceTex [[texture(1)]] , metal::texture2d sdfTex [[texture(2)]] ) { const VsOut in_1 = { position, varyings_1.uv, varyings_1.q, varyings_1.clip, varyings_1.params, varyings_1.look, varyings_1.uvRect, varyings_1.size_3, varyings_1.world_1, varyings_1.rest_1 }; bool local = {}; bool local_1 = {}; bool local_2 = {}; CasterIn c = {}; bool local_3 = {}; float rd = 0.5 - metal::length(in_1.q - metal::float2(0.5, 0.5)); float cd = metal::dot(in_1.clip.xy, in_1.q) + in_1.clip.z; if (in_1.params.z > 0.5) { local = rd < 0.0; } else { local = false; } bool discOut = local; if (in_1.clip.w > 0.5) { local_1 = cd < 0.0; } else { local_1 = false; } bool _e35 = local_1; if (_e35) { local_2 = in_1.look.w < 1.5; } else { local_2 = false; } bool clipOut = local_2; c.uv = in_1.uv; c.q = in_1.q; c.uvRect = in_1.uvRect; c.size = in_1.size.xy; c.look = in_1.look; float _e60 = light.params.z; c.time = _e60; c.world = in_1.world; c.rest = in_1.rest; c.plain = (in_1.params.w >= 0.0) ? 1.0 : 0.0; if (!(discOut)) { local_3 = clipOut; } else { local_3 = true; } bool _e78 = local_3; c.paper = _e78 ? 0.0 : 1.0; c.fin = in_1.clip; CasterIn _e84 = c; CasterOut _e85 = casterEval(_e84, light, twinTex, twinSamp, pieceTex, sdfTex); float _e91 = light.params.y; bool _e92 = casterKeep(_e85, in_1.position.xy, _e91, light); if (!(_e92)) { metal::discard_fragment(); } else { return; } }  ÛbêPB‰LÔlM!à&ß0vs_mainmainustruct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct LightFrame { row_major float4x4 lightViewProj; float4 params; float4 evilLight; float4 frameS; float4 frameT; float4 evilRect; float4 evilLook; float4 sdfRect; float4 sdfInfo; float4 morph; float4 units; float4 windA; float4 windB; }; struct CasterIn { float2 uv; float2 q; float4 uvRect; float2 size; float4 look; float time; float3 world; float3 rest; float plain; float paper; float4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { float4 position; float2 uv; float2 q; float4 clip; float4 params; float4 look; float4 uvRect; float4 size; float3 world; float3 rest; }; static const VsOut _830 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer light : register(b0) { LightFrame light_1_m0 : packoffset(c0); }; static float4 gl_Position; static float2 q; static float4 m0; static float4 m1; static float4 m2; static float4 m3; static float4 uvRect; static float4 clip; static float4 params; static float4 look; static float4 edges; static float4 pin; static float2 uv; static float2 q_1; static float4 clip_1; static float4 params_1; static float4 look_1; static float4 uvRect_1; static float4 size; static float3 world; static float3 rest; struct SPIRV_Cross_Input { float2 q : TEXCOORD0; float4 m0 : TEXCOORD1; float4 m1 : TEXCOORD2; float4 m2 : TEXCOORD3; float4 m3 : TEXCOORD4; float4 uvRect : TEXCOORD5; float4 clip : TEXCOORD6; float4 params : TEXCOORD7; float4 look : TEXCOORD8; float4 edges : TEXCOORD9; float4 pin : TEXCOORD10; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float2 q_1 : TEXCOORD1; nointerpolation float4 clip_1 : TEXCOORD2; nointerpolation float4 params_1 : TEXCOORD3; nointerpolation float4 look_1 : TEXCOORD4; nointerpolation float4 uvRect_1 : TEXCOORD5; nointerpolation float4 size : TEXCOORD6; float3 world : TEXCOORD7; float3 rest : TEXCOORD8; float4 gl_Position : SV_Position; }; float windAnchor(float2 sheet, float2 size_1, float mask, float4 pin_1) { float d = 1000.0f; uint _356 = uint(clamp(clamp(mask, 0.0f, 15.0f) + 0.5f, 0.0f, 4294967040.0f)); if ((_356 & 1u) != 0u) { d = min(d, abs(sheet.x)); } if ((_356 & 2u) != 0u) { d = min(d, abs(size_1.x - sheet.x)); } if ((_356 & 4u) != 0u) { d = min(d, abs(sheet.y)); } if ((_356 & 8u) != 0u) { d = min(d, abs(size_1.y - sheet.y)); } if (pin_1.x > (-0.5f)) { float2 _398 = pin_1.xy * size_1; float2 _401 = (pin_1.zw * size_1) - _398; d = min(d, length(sheet - (_398 + (_401 * clamp(dot(sheet - _398, _401) / max(dot(_401, _401), 1.0000000133514319600180897396058e-10f), 0.0f, 1.0f))))); } return d; } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _224 = floor(p); float2 _225 = p - _224; float2 _229 = (_225 * _225) * (float2(3.0f, 3.0f) - (_225 * 2.0f)); int2 _235 = int2(clamp(_224, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_235), hashCell(_235 + int2(1, 0)), _229.x), lerp(hashCell(_235 + int2(0, 1)), hashCell(_235 + int2(1, 1)), _229.x), _229.y) * 2.0f) - 1.0f; } float windDisp(float3 P0, float3 N, float2 sheet, float2 size_1, float mask, float4 pin_1, float seed, float4 wa, float4 wb) { float _451 = min(windAnchor(sheet, size_1, mask, pin_1) * wb.z, 1.39999997615814208984375f); float _455 = dot(P0.xz, wb.xy); float _465 = wa.w * (0.699999988079071044921875f + (0.300000011920928955078125f * vnoise(float2((_455 * 6.0f) - (wa.z * 2.2000000476837158203125f), seed * 7.30000019073486328125f)))); return (_451 * _451) * (((wa.x * _465) * ((0.550000011920928955078125f * dot(N.xz, wb.xy)) + (0.449999988079071044921875f * ((0.64999997615814208984375f * sin(((wa.z * 7.5f) + (seed * 6.283185482025146484375f)) + (_455 * 2.5f))) + (0.3499999940395355224609375f * vnoise(float2((wa.z * 1.89999997615814208984375f) + (seed * 13.0f), _455 * 3.0f))))))) + (_451 * (((wa.y * _465) * sin(((dot(sheet, float2(0.60000002384185791015625f, 0.800000011920928955078125f)) * 41.88790130615234375f) - ((wa.z * 6.283185482025146484375f) * wb.w)) + (seed * 11.0f))) * (0.550000011920928955078125f + (0.449999988079071044921875f * vnoise(float2((wa.z * 3.2999999523162841796875f) + (seed * 5.0f), _455 * 5.0f))))))); } float3 bentCaster(VsIn _in, float3 rest_1) { bool _721 = false; if (!(_in.edges.z <= 0.0f)) { _721 = light_1_m0.windA.w <= 0.0f; } else { _721 = true; } if (_721) { return rest_1; } bool _740 = _in.look.w > 1.5f; float2 _746 = max(_in.clip.zw - _in.clip.xy, float2(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f)); bool2 _749 = bool2(_740, _740); float2 _747 = float2(_749.x ? _746.x : float2(1.0f, 1.0f).x, _749.y ? _746.y : float2(1.0f, 1.0f).y); float2 _755 = (_in.q - _in.clip.xy) / _747; bool2 _757 = bool2(_740, _740); float2 _765 = float2(length(_in.m0.xyz), length(_in.m1.xyz)) * _747; float3 _768 = normalize(_in.m2.xyz); return rest_1 + (_768 * (windDisp(rest_1, _768, float2(_757.x ? _755.x : _in.q.x, _757.y ? _755.y : _in.q.y) * _765, _765, _in.edges.x, _in.pin, _in.look.z, light_1_m0.windA, light_1_m0.windB) * _in.edges.z)); } void vert_main() { VsOut _out = _830; VsIn _787 = { q, m0, m1, m2, m3, uvRect, clip, params, look, edges, pin }; float3 _840 = mul(float4(_787.q, 0.0f, 1.0f), float4x4(_787.m0, _787.m1, _787.m2, _787.m3)).xyz; float4 _842 = float4(bentCaster(_787, _840), 1.0f); _out.position = mul(_842, light_1_m0.lightViewProj); _out.uv = _787.uvRect.xy + (_787.q * _787.uvRect.zw); _out.q = _787.q; _out.clip = _787.clip; _out.params = _787.params; _out.look = _787.look; _out.uvRect = _787.uvRect; _out.size = float4(length(_787.m0.xyz), length(_787.m1.xyz), 0.0f, 0.0f); _out.world = _842.xyz; _out.rest = _840; gl_Position = _out.position; uv = _out.uv; q_1 = _out.q; clip_1 = _out.clip; params_1 = _out.params; look_1 = _out.look; uvRect_1 = _out.uvRect; size = _out.size; world = _out.world; rest = _out.rest; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { q = stage_input.q; m0 = stage_input.m0; m1 = stage_input.m1; m2 = stage_input.m2; m3 = stage_input.m3; uvRect = stage_input.uvRect; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; pin = stage_input.pin; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; stage_output.q_1 = q_1; stage_output.clip_1 = clip_1; stage_output.params_1 = params_1; stage_output.look_1 = look_1; stage_output.uvRect_1 = uvRect_1; stage_output.size = size; stage_output.world = world; stage_output.rest = rest; return stage_output; } fs_mainmainS2struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct LightFrame { row_major float4x4 lightViewProj; float4 params; float4 evilLight; float4 frameS; float4 frameT; float4 evilRect; float4 evilLook; float4 sdfRect; float4 sdfInfo; float4 morph; float4 units; float4 windA; float4 windB; }; struct CasterIn { float2 uv; float2 q; float4 uvRect; float2 size; float4 look; float time; float3 world; float3 rest; float plain; float paper; float4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { float4 position; float2 uv; float2 q; float4 clip; float4 params; float4 look; float4 uvRect; float4 size; float3 world; float3 rest; }; static const CasterOut _727 = { 0.0f, 0.0f, 0.0f }; static const CasterIn _1241 = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer light : register(b0) { LightFrame light_1_m0 : packoffset(c0); }; Texture2D twinTex : register(t0); SamplerState twinSamp : register(s0); Texture2D pieceTex : register(t1); Texture2D sdfTex : register(t2); static float4 gl_FragCoord; static float2 uv; static float2 q; static float4 clip; static float4 params; static float4 look; static float4 uvRect; static float4 size; static float3 world; static float3 rest; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float2 q : TEXCOORD1; nointerpolation float4 clip : TEXCOORD2; nointerpolation float4 params : TEXCOORD3; nointerpolation float4 look : TEXCOORD4; nointerpolation float4 uvRect : TEXCOORD5; nointerpolation float4 size : TEXCOORD6; float3 world : TEXCOORD7; float3 rest : TEXCOORD8; float4 gl_FragCoord : SV_Position; }; uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _230 = floor(p); float2 _231 = p - _230; float2 _235 = (_231 * _231) * (float2(3.0f, 3.0f) - (_231 * 2.0f)); int2 _241 = int2(clamp(_230, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_241), hashCell(_241 + int2(1, 0)), _235.x), lerp(hashCell(_241 + int2(0, 1)), hashCell(_241 + int2(1, 1)), _235.x), _235.y) * 2.0f) - 1.0f; } float3 evilPage(float3 world_1) { bool _568 = false; float _578 = light_1_m0.evilLight.xyz.y - world_1.y; if (_578 > 9.9999997473787516355514526367188e-05f) { _568 = light_1_m0.evilLight.w > 0.5f; } else { _568 = false; } return float3(light_1_m0.evilLight.xyz.xz + ((world_1.xz - light_1_m0.evilLight.xyz.xz) * (light_1_m0.evilLight.xyz.y / max(_578, 9.9999997473787516355514526367188e-05f))), float(_568)); } float2 evilCoord(float2 Q) { float3 _606 = float3(Q, 1.0f); return float2(dot(light_1_m0.frameS.xyz, _606), dot(light_1_m0.frameT.xyz, _606)); } float exactField(float dSdf, float alpha, float texelPx) { float _672 = (0.5f - alpha) / max(texelPx, 0.001000000047497451305389404296875f); return (alpha >= 0.5f) ? min(dSdf, _672) : max(dSdf, _672); } float fbm3(float2 p) { float s = 0.0f; s = vnoise(p) * 0.569999992847442626953125f; s += (vnoise((p * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 3.7000000476837158203125f)) * 0.2899999916553497314453125f); s += (vnoise((p * 4.070000171661376953125f) + float2(5.30000019073486328125f, 29.8999996185302734375f)) * 0.14000000059604644775390625f); return s; } float boilNoise(float2 g, float t) { float2 _633 = g * light_1_m0.morph.x; return fbm3((_633 + (float2(fbm3((_633 * 0.62000000476837158203125f) + float2((t * 0.23000000417232513427734375f) * light_1_m0.morph.y, 3.099999904632568359375f)), fbm3((_633 * 0.62000000476837158203125f) + float2(7.69999980926513671875f, ((-t) * 0.189999997615814208984375f) * light_1_m0.morph.y))) * light_1_m0.morph.z)) + float2((t * 0.10999999940395355224609375f) * light_1_m0.morph.y, ((-t) * 0.310000002384185791015625f) * light_1_m0.morph.y)); } CasterOut casterEval(CasterIn c) { bool _728 = false; bool _721 = false; bool _715 = false; bool _709 = false; float aMorph = 0.0f; float d = 0.0f; float dE = 0.0f; CasterOut _out = _727; bool _719 = false; bool _713 = false; float _733 = clamp(c.look.x, 0.0f, 1.0f); float _736 = clamp(c.look.y, 0.0f, 1.0f); float _739 = c.look.z * 37.0f; float2 _745 = c.q * c.size; float2 _746 = _745 * 34.0f; float2 _764 = ((float2(vnoise(_746 + float2(c.time * 13.0f, _739)), vnoise(_746 + float2(_739 + 31.0f, c.time * 11.30000019073486328125f))) * (0.00449999980628490447998046875f * _736)) / max(c.size, float2(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f))) * c.uvRect.zw; float4 _769 = twinTex.Sample(twinSamp, c.uv + _764); float4 _775 = pieceTex.Sample(twinSamp, c.uv + (_764 * 0.4000000059604644775390625f)); float _776 = _775.w; float3 _778 = ddx(c.rest); float3 _780 = ddy(c.rest); float3 _781 = cross(_778, _780); if (c.look.w > 0.5f) { _709 = light_1_m0.evilLight.w > 0.5f; } else { _709 = false; } bool _790 = c.look.w > 1.5f; float3 _792 = evilPage(c.rest); float2 _803 = float2(light_1_m0.sdfInfo.x, light_1_m0.sdfInfo.x) / max(light_1_m0.sdfRect.zw, float2(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f)); float2 _805 = evilCoord(_792.xy); float2 _823 = _805 + ((float2(vnoise((_805 * 46.0f) + float2(c.time * 13.0f, 7.0f)), vnoise((_805 * 46.0f) + float2(19.0f, c.time * 11.30000019073486328125f))) * light_1_m0.evilLook.yz) * _736); float _836 = (((step(0.0f, _823.x) * step(_823.x, 1.0f)) * step(0.0f, _823.y)) * step(_823.y, 1.0f)) * _792.z; float2 _846 = light_1_m0.evilRect.xy + (clamp(_823, float2(0.0f, 0.0f), float2(1.0f, 1.0f)) * light_1_m0.evilRect.zw); float4 _855 = sdfTex.SampleLevel(twinSamp, ((_846 - light_1_m0.sdfRect.xy) * _803) / float2(light_1_m0.sdfInfo.x, light_1_m0.sdfInfo.x), 0.0f); float _856 = _855.y; float2 _864 = abs(light_1_m0.evilRect.zw) * _803; float _877 = ((light_1_m0.evilLook.w > 0.5f) ? 1.0f : twinTex.SampleLevel(twinSamp, _846, 0.0f).w) * _836; dE = (_836 < 0.5f) ? (max(_856, 0.0f) + length((max(-_823, float2(0.0f, 0.0f)) * _864) + (max(_823 - float2(1.0f, 1.0f), float2(0.0f, 0.0f)) * _864))) : exactField(_856, _877, light_1_m0.sdfInfo.y); if (light_1_m0.evilLook.w > 0.5f) { _713 = _836 > 0.5f; } else { _713 = false; } dE = _713 ? (-4.0f) : dE; dE = (_792.z < 0.5f) ? 1.0f : (dE * light_1_m0.units.x); float2 _906 = max(c.fin.zw - c.fin.xy, float2(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f)); float2 _912 = (c.q - c.fin.xy) / _906; bool2 _915 = bool2(_790, _790); float2 _913 = float2(_915.x ? _912.x : c.q.x, _915.y ? _912.y : c.q.y); float2 _916 = clamp(_913, float2(0.0f, 0.0f), float2(1.0f, 1.0f)); float2 _920 = c.size * _906; bool2 _922 = bool2(_790, _790); float _924 = length((_913 - _916) * float2(_922.x ? _920.x : c.size.x, _922.y ? _920.y : c.size.y)); float4 _941 = sdfTex.SampleLevel(twinSamp, ((((c.uvRect.xy + (_916 * c.uvRect.zw)) + (_764 * 0.4000000059604644775390625f)) - light_1_m0.sdfRect.xy) * _803) / float2(light_1_m0.sdfInfo.x, light_1_m0.sdfInfo.x), 0.0f); float _942 = _941.x; float _947 = ((c.plain > 0.5f) ? 1.0f : _776) * c.paper; if (_790) { _715 = _924 <= 0.0f; } else { _715 = false; } float _970 = max(light_1_m0.evilLight.xyz.y - c.rest.y, 9.9999997473787516355514526367188e-05f); float _972 = max(length(_781), 1.0000000195414813782625560981111e-24f); float3 _974 = _781 / float3(_972, _972, _972); bool _987 = light_1_m0.sdfInfo.w > 0.5f; float3 _998 = c.rest - light_1_m0.evilLight.xyz; float _1006 = (1.0f - _733) * smoothstep(0.070000000298023223876953125f, 0.1599999964237213134765625f, abs(dot(_974, _998)) / max(length(_998), 9.9999997473787516355514526367188e-05f)); d = lerp(_987 ? ((_790 ? ((max(_942, 0.0f) * light_1_m0.units.y) + max(_924, 0.5f * light_1_m0.units.y)) : (exactField(_942, _947, light_1_m0.sdfInfo.y) * light_1_m0.units.y)) * ((light_1_m0.evilLight.xyz.y / _970) * sqrt(clamp(abs(dot(_974, c.rest - light_1_m0.evilLight.xyz)) / _970, 0.100000001490116119384765625f, 10.0f)))) : ((0.5f - (_790 ? 0.0f : _947)) * 2.0f), _987 ? dE : ((0.5f - _877) * 2.0f), _1006); float _1010 = sin(3.1415927410125732421875f * clamp(_1006, 0.0f, 1.0f)); if (_1010 > 0.00200000009499490261077880859375f) { _719 = _709; } else { _719 = false; } if (_719) { _721 = _987; } else { _721 = false; } if (_721) { d += ((light_1_m0.evilLook.x * _1010) * (boilNoise(_792.xy, c.time) + (light_1_m0.morph.w * _1010))); } aMorph = clamp(0.5f - (d / max(fwidth(d), 9.9999999747524270787835121154785e-07f)), 0.0f, 1.0f); aMorph = _715 ? 0.0f : aMorph; float2 _1043 = _745 * 24.0f; float _1058 = 0.5f + (0.5f * ((0.62000000476837158203125f * vnoise(_1043 + float2(_739 * 1.7000000476837158203125f, c.time * 0.550000011920928955078125f))) + (0.37999999523162841796875f * vnoise((_1043 * 2.2999999523162841796875f) + float2(c.time * 0.89999997615814208984375f, _739))))); _out.alpha = _709 ? aMorph : (((c.plain > 0.5f) ? 1.0f : lerp(_769.w, _776, smoothstep(_1058 - 0.04500000178813934326171875f, _1058 + 0.04500000178813934326171875f, (_733 * 1.08000004291534423828125f) - 0.039999999105930328369140625f))) * c.paper); _out.morph = float(_709); if (abs(c.look.w - 0.5f) < 0.25f) { _728 = light_1_m0.evilLight.w > 0.5f; } else { _728 = false; } _out.fade = _728 ? _733 : 1.0f; return _out; } bool casterKeep(CasterOut o, float2 fragXY, float cutoff) { bool _1100 = false; if (o.alpha >= lerp(cutoff, 0.0199999995529651641845703125f + (0.959999978542327880859375f * frac(52.98291778564453125f * frac(dot(floor(fragXY), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f))))), light_1_m0.params.w * o.morph)) { _1100 = frac(52.98291778564453125f * frac(dot(floor(fragXY) + float2(17.0f, 3.0f), float2(0.005837149918079376220703125f, 0.067110560834407806396484375f)))) < o.fade; } else { _1100 = false; } return _1100; } void frag_main() { bool _1242 = false; bool _1235 = false; CasterIn c = _1241; bool _1233 = false; bool _1237 = false; VsOut _1201 = { gl_FragCoord, uv, q, clip, params, look, uvRect, size, world, rest }; if (_1201.params.z > 0.5f) { _1233 = (0.5f - length(_1201.q - float2(0.5f, 0.5f))) < 0.0f; } else { _1233 = false; } if (_1201.clip.w > 0.5f) { _1235 = (dot(_1201.clip.xy, _1201.q) + _1201.clip.z) < 0.0f; } else { _1235 = false; } if (_1235) { _1237 = _1201.look.w < 1.5f; } else { _1237 = false; } c.uv = _1201.uv; c.q = _1201.q; c.uvRect = _1201.uvRect; c.size = _1201.size.xy; c.look = _1201.look; c.time = light_1_m0.params.z; c.world = _1201.world; c.rest = _1201.rest; c.plain = float(_1201.params.w >= 0.0f); if (!_1233) { _1242 = _1237; } else { _1242 = true; } c.paper = _1242 ? 0.0f : 1.0f; c.fin = _1201.clip; if (!casterKeep(casterEval(c), _1201.position.xy, light_1_m0.params.y)) { discard; } else { return; } } void main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; q = stage_input.q; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; uvRect = stage_input.uvRect; size = stage_input.size; world = stage_input.world; rest = stage_input.rest; frag_main(); }  ÛbêPB‰LÔlM!à&ß0HSLT LightFrame lightViewProjÿÿÿÿparams@ÿÿÿÿ evilLightPÿÿÿÿframeS`ÿÿÿÿframeTpÿÿÿÿevilRect€ÿÿÿÿevilLook�ÿÿÿÿsdfRect ÿÿÿÿsdfInfo°ÿÿÿÿmorphÀÿÿÿÿunitsÐÿÿÿÿwindAàÿÿÿÿwindBðÿÿÿÿ light_blocklighttwinTexÿÿÿÿpieceTexÿÿÿÿsdfTexÿÿÿÿtwinSampÿÿÿÿvs_mainvs_mainfs_mainfs_mainèz#” GLSL.std.450×vs_main²µ¸º¼¾ÀÂÄÆÈÊÌÎÏÐÑÒÓÔÖ4fs_main!#%')+-/24H #H #H # H #0H #@H #PH #`H #pH #€H #�H # H #H H H #@H #PH #`H #pH #€H #�H # H #°H #ÀH #ÐH #àH #ðH#H#H#H# H#0H#@H#PH#`H#lH #pH #€H#H#H#H#H#H#H# H#0H#@H#PH#`H#pH #€G"G!GH#G!"G!!G#"G#!G%"G%!G&"G&!G²GµG¸GºG¼G¾GÀGÂGÄGÆ GÈ GÊ GÌGÎGÏGÏGÐGÐGÑGÑGÒGÒGÓGÓGÔGÖG G!G#G%G%G'G'G)G)G+G+G-G-G/G2              +€@+ÛÉ@+¼t“;+B+ÀA+ìQ8=+€?+ÛI@+)\�=+ ×#>  ;  ";"! $;$#;"%;"&!*++,,++++-‘ƒž=+.®Ga=,/...+0n§r?+1š™@,2111+3æ®%=,4333;+AR¸NA+BUUÕ>,CBBB+D= ‡?+E.M;,FEEE!R+SгY>+TY7?+U˜Ý“=,VSTU!]+^?+_€>,`+a«ªª>,baaa!x+y f+z_ón<,{zz+|,}|| .€ …+†+‰!°+±€,²±±+³+´€3!À !Ð +ÑCq‰=+Ò�E¿;, ÓÑÒ+Ô‚îSB+Ý@@, ÞÝÝ+ß@+à+á,âàá,ãáà,äàà+ìÏ, íìì+îÿÿÿN, ïîî! +À@, +9…ë?+:…ë@+;Í̈A+<ÍÌl@, =;<+>áz”>+?q=‚@+@š™©@+A33ïA, B@A+C)\> E.F!]  +^pA+_zD+`+a+b¿+cÿæÛ.+hÿÿO! °   +±33³?+²ÍÌ @+³š™é@+´š™™>+µ333?+¶ð@+· @+¸ff&?+¹33ó?+ºPA+»33³>+¼ÍÌ ?+½ffæ>+¾š™?+¿ÍÌL?, À¾¿+Á6�'B+Â0A+Ã33S@+Ä @!    +¦›Ä;, +, + 4 +6·Ñ8*7 9.: < P+Q![ !l +nR¸?+o…k>+pffF@+q\�B>+rffö@+s®Gá=+tR¸ž>+v !›+œoƒ:!¨+®B+¯øA+°ÍÌ4A, ±66+²ÍÌÌ>+³À?+´½7†5, µ´´+¶8B+·à@+¸˜A, ¹+++º€À+»¾š+¼ÍÌÌ=+½ A+¾o;+¿š™Ù?+À33@+Áfff?+Â\�Â>+Ãq=Š?+Ä ×#=.Æ.È.Ê.Ì.Î.Ð.Ò.Ô Ö.×.Ùÿ++1+E+~ ’!E +G�Âu?+H ×£<+IˆA, JIÝ, KÒÑ.M!m )o.q+z +§ ³ ;³² ¶ ;¶µ;¶¸;¶º;¶¼;¶¾;¶À;¶Â;¶Ä;¶Æ;¶È Ë ;ËÊ Í ;ÍÌ;ÍÎ;ËÏ;ËÐ;ËÑ;ËÒ;ËÓ Õ;ÕÔ;ÕÖ!Ø Û.Ü é ê ï   ;¶;³!;³#;¶%;¶';¶);¶+;¶- 0;0/;02, :^^.<.>.@ B.C.E6)*7(ø'ù5ø5 6((,Ž76-�86/Ž980 :92¼;<64©=<7:þ=86@*7?ø>ùGøG H(?,ŽIHA JHCŽKJDƒLK/¼;MHF©NMILþN86QR7PøOùWøW”XPVþX86\]7Z7[øYùcøcºd[^÷eúdfeøfŽgZ_ h+g,` ihbþiøeþZ86m]7k7løjùnønºol^÷púoqpøq…rkk…srkŽtsþtøpþk86wx7vøu;~€ù�ø�Pƒyy„‚vƒ€„‚{>~„A…‡~†=ˆ‡A…Š~‰=‹Š„Œ‹y€�ˆŒA…Ž~†>Ž�A…�~‰=��A…‘~†=’‘„“’y€”�“A…•~‰>•”=–~=—~˜—}Æ™–˜>~™A…š~†=›šA…œ~‰=�œ„ž�y€Ÿ›žA… ~†> ŸA…¡~‰=¢¡A…£~†=¤£„¥¤y€¦¢¥A…§~‰>§¦=¨~=©~ª©}Æ«¨ª>~«=¬~þ¬86¯°7®ø­ùµøµ€¶®²|·¶9¸w·Q¹¸Âº¹³p»º…¼»´þ¼86 ¿À7¾ø½ùÁøÁ€¾²|ÃÂ9ÄwÃQÅÄÂÆÅ³pÇÆQÈÄÂÉȳpÊÉP ËÇÊŽ ÌË´þÌ86ÏÐ7 ÎøÍùÕøÕ”ÖÎÓ × Ö…ØÔ× Ù ØþÙ86ÜÐ7 ÛøÚùåøå  æÛƒ çÛæ… èççŽ éç߃ êÞé… ëèê  ð+æíïnñð9ò¯ñ€óñâ9ô¯ó€õñã9ö¯õ€÷ñä9ø¯÷Qùë ú.òôùQûë ü.öøûQýë þ.úüý…ÿþ߃ÿþ867 øùø  ƒ …   Ž  ߃ Þ …   Ž  ƒ  …   +íïn9¯€â9¯€ã9¯€ä9¯ƒƒƒƒ�Q … �! Q" …#"�$!#Q% …&%Q' …(&'�)$(Q* …+*�,+Q- ….-�/.P 0,/… 10…2)߃32Ž 41ßP534þ5868Ð7 7ø6;EDFùGøG9HÜ7…IH9>DI=JDŽ K7:� LK=9MÜL…NM>�OJN>DO=PDŽ Q7?� RQB9SÜR…TSC�UPT>DU=VDþV86\]7 X7 Y7Z7 [øW;Ed_ùeøe f+Z+^�gf^ i+g+hmjiÇkj‰«lk†÷múlnmøn=odQpX qp r%oq>drùmømÇsj`«ts†÷uútvuøv=wdQxYQyXƒzxy {z |%w{>d|ùuøuÇ}ja«~}†÷ú~€ø€=�dQ‚X ƒ‚ „%�ƒ>d„ùøÇ…j³«†…†÷‡ú†ˆ‡øˆ=‰dQŠYQ‹XƒŒŠ‹ �Œ Ž%‰�>dŽù‡ø‡Q�[º��b÷‘ú�’‘ø’O “[[… ”“YO •[[… –•Yƒ —–”ƒ ˜X””™˜—”š—— ›(šcˆœ™› �+œ+=ždŽ Ÿ—��  ”Ÿƒ ¡X  ¢B¡ £%ž¢>d£ù‘ø‘=¤dþ¤86¯°7¦7§7 ¨7 ©7ª7 «7¬7 ­7 ®ø¥ùÅøÅ9Æ\¨©ª«QÇ®…ÈÆÇ É%ȱQÊ­O Ë®®O ̦¦”ÍÌË…ÎÍ…ÏʲƒÐÎυѬ³P ÒÐÑ9ÓÜÒ…Ô´Ó�ÕµÔQÖ­…×ÖÕO ا§”ÙØË…Úʶ…Û¬�ÜÚÛ…ÝÍ·�ÞÜÝ ß Þ…à¸ß…áʹ…⬺�ãáâ…äÍÝP åãä9æÜå…ç»æ�èàçQé­…êé×…ë¼Ù…ì½è�íëì…îêí”ï¨À…ðïÁ…ñÊQò®…óñòƒôðó…õ¬Â�öôõQ÷­…ø÷× ù ö…úøù…ûÊÃ…ü¬Ä�ýûü…þÍÄP ÿýþ9Üÿ…½�¼…ú…ÉÉ…É�î…þ86 7 7 7 7 7 7 77 777 7 øùø9 ¯   …Ž � �  9  ¯ …! Ž" �# "� $ 9 %¯# $…&%ƒ'!ˆ('Ž) (ƒ* )ƒ+&ˆ,+Ž- ,ƒ.*- /E.P 0/þ0863*72ø1;98:A45†ù;ø;A<=5`= >=O?>>Q@?QA2ƒB@AQC? D(B6ˆECDO F??O G22O H??ƒ IGHŽ JIE� KFJºLB6÷MúLNOøNAPR5`Q=SRºTS^>8TùMøO>87ùMøM=U8©VU+PWKVþW86 Z[7 YøXA4\†ù]ø]P^YA<_\Q= `_Oa``”ba^A<c\a= dcOedd”fe^P gbfþg86kl7 i7jøhA4m†ùuøuAPwmv†=xwŽ yixAPzmv‰={zŽ |yn…}jo…~}{P ~p� €|9�8€Ž ‚ynƒj…„ƒq……„{P †r…� ‡‚†9ˆ8‡P ‰�ˆAPŠmv`=‹ŠŽ Œ‰‹� �yŒ…Žjs…�Ž{�j…‘�t…’‘{P “�’� ”�“9•8”þ•86š›7—7˜7™ø–ù�ø�ƒž^˜ Ÿ(™œˆ žŸ ¡(—  ¢%— ¾£˜^©¤£¢¡þ¤86§¨7¦ø¥;9ØÙ;9ÑÒ;9ËÌ;9ÅÆ;EÓÔ;EÍÎ;EÇÈ;ÖÕ×;9ÏÐ;9ÉÊA4©†=ª!=«#=¬%=­&ùÚøÚQ Û¦QÜÛ Ý+Ü+Q Þ¦QßÞ à+ß+Q á¦Qâá…ãâ®Q ä¦QåäQæ¦Q ç¦Q 覅 éçèŽ êé…ëæºP ìëã� íêì9îÜí�ï㯅ðæ°P ñïð� òêñ9óÜòP ôîó…õàŽ öôõQ ÷¦  ø(÷±ˆ ùöøQ ú¦O ûúú… üùûQ ý¦� þýüVÿª«W þQQ ¦Ž ü²� Vÿ¬«W QQ ¦Ï  Q ¦Ð    D  ºå^÷úøAP©`Q=º^>Åùø>Å7ùø=źå³Q¦93AP©³†=AP©³‰=A<©= O   !( µP "ˆ #"!O $9 %Z$Ž &%¶…'æºP ('·� )&(9*Ü)Ž +%¶…,æ°P -¸,� .+-9/Ü.P 0*/A<2©1= 32O 433… 504Ž 65à� 7%6Q87 90+8Q:7 ;0:…<9;Q=7 >0+=…?<>Q@7 A0@…B?AQC…DBCA<F©E= GFO HGG  I+7¹A<J©E= KJO LKK… MIL� NHMA<O©= POO QPPƒ RNQ… SR#P Tˆ USTVÿV­«X WVU+QXWVÿYª«X ZYN+Q[ZA<\©E= ]\O ^]]  _^… `_# a7  b(a¹… cb`ƒ d7  e(d¹… fe`� gcf hBgAPi©1Q=jiºkj^©lk[…mlD9nšXm o(X+�poh¸qD^©rqpn>Çr=sÇAPt©1Q=utºvu^÷wúvxyøxºzD^>Ézùwøy>É7ùwøw={É©|{ºs>Ç|=}ÇAP©~†=€…�}€Q‚¸ƒ‚^©„ƒ�>Ç„Q …¦ O †……Q ‡¦ O ˆ‡‡ƒ ‰†ˆ  Š(‰±Q ‹¦Q Œ¦Q �¦ O Ž��ƒ �ŒŽˆ ��ŠP’“© ‘“�‹  ”+‘¹ƒ •‘”Q –¦Q —¦… ˜—ŠP’š© ™š˜–… ›•™ œB›Q �¦O ž��Q Ÿ¦O  ŸŸ… ¡” � ¢ž¡Ž £ü²� ¤¢£A<¥©= ¦¥O §¦¦ƒ ¨¤§… ©¨#P ªˆ «©ªVÿ¬­«X ­¬«+Q®­Q¯¦º°¯^©±°Q²¦ …³±²AP´©~‰=µ´9¶š®³…·¶µ ¸(®+…¹¸µ…º^µ »(œº�¼¹»©½¼·÷¾ú¿Àø¿¼Áœ+>ËÁù¾øÀ>Ë7ù¾ø¾=ÂËA<é`= ÄÃOÅÄÄQÆÅQǦQÈÇƒÉÆÈ Ê(É6 ËB  Ì(Ë»PÍÌÌ̈ΠÍQÏňÐÏÊQѦƒÒÑÅ”ÓÎÒ ÔÓˆÕÔÊ Ö+Õ¼½ ×Ö…ØÐ×APÙ©³Q=ÚÙºÛÚ^©Ü+³ƒÝ^Ü…ÞÝ߅߽ةàÛßÞƒá^m…âáß=ãÇ©äÛãâQ妃æåÅ”çÎæ èç éBæ ê(é6ˆëèêƒìÝ í1ë…îìí ï.àäî>Íï ð+î+…ñð ò ñºóò¾÷ôúóõöøõ>Ïùôøö>Ï7ùôøô=÷Ï÷øú÷ùúøù>ÑÛùøøú>Ñ7ùøøø=ûÑ÷üúûýüøýO þ9ÿkþæ=ÍAP©1†=…òAP©vQ=…ò�ÿ…� >Í ùüøü= ÍÑ    ( ´= ͈  ƒ^ ++>Ó=Ó©Â+>ÓŽ é…ã¿…æ¼P � 9Ü…nŽ À…æÁP ã� 9Ü…Â� …!^ �"^!ƒ#"�$"…%ÝÃ&%Ä '1#$& (.'Q)¦º*)^©+*(Q,¦ …-+,=.Ó©/.-AE0Õ†>0/©1+AE2Õ‰>21ƒ3å^ 43¸54_÷6ú578ø7AP9©`Q=:9º;:^>Ø;ù6ø8>Ø7ù6ø6=<Ø©=<ÝAE>Õ`>>==?Õþ?86DE7A7 B7Cø@;9LMA4F†ùNøN  OB”POÓ Q P…RÔQ S R…TGS�UHTAPVF‰Q=WVQXA…YWX Z.CUY  [B� \[J”]\K ^ ]…_Ô^ ` _QaA¾baZ÷cúbdeødQfA¸g`f>Lgùcøe>L7ùcøc=hLþh86lm7 j7køi;9pqA4n†ùrørQ sj Qts¼ut+¨vu÷wúvxyøxAP{nzQ=|{¼}|+>p}ùwøy>poùwøw=~p÷ú~€ø€þkøQ �jQ‚�ºƒ‚³Q „jO …„„Q †jO ‡††ƒ ˆ…‡  ‰(ˆ±P’‹ƒƒ© Š‹‰Q ŒjQ �jQ ŽjO �ŽŽƒ ���ˆ ‘�ŠP’“ƒƒ© ’“‘ŒQ ”jO•”” –B•Q —jO˜—— ™B˜P š–™… ›šŠQ œjO�œœ žE�… Ÿ’›Q  j Q¡ Q ¢j Q £jQ¤£A<¥nz= ¦¥A<¨n§= ©¨9 ª¯kžŸ›¡¢¤¦©Q «j Q¬«…­ª¬Ž®ž­�¯k®þ¯86רø°;ÛÚÜ= ´²= ·µ= ¹¸= »º= ½¼= ¿¾= ÁÀ= ÃÂ= ÅÄ= ÇÆ= ÉÈP ±´·¹»½¿ÁÃÅÇÉA4Ù†ùÝøÝQ Þ±Q ß±Q à±Q á±P âÞßàáQ ã±P äã+‘ åâäOæåå9çl±æP èçAêëÙ†= ìë‘ íìèAéîÚ†>îíQ ð±O ñððQ ò±Q ó±O ôóó… õòô� öñõAï÷Ú‰>÷öQ ø±AïùÚ`>ùøQ ú±AéûÚQ>ûúQ ü±AéýÚa>ýüQ þ±AéÿÚE>ÿþQ ±AéÚ1>Q ±O BQ ±O BP ++Aé Ú> O èèA  Ú³>  A  Úv> æ=ÚQ >ÊAʉ=>Q >ÌQ >ÎQ >ÏQ >ÐQ >ÑQ >ÒQ >ÓQ>ÔQ >Öý864Øø;9DE;9=>;BAC;9;<;9?@= = "!= $#= &%= ('= *)= ,+= .-=1/=32P  "$&(*,.13A45†=6!=7#=8%=9&ùFøFQ Gƒ HG: IBHƒJ^IQ KO LKKQ M”NLMQ OQPO�QNPQ RQSRºTS^÷UúTVWøV¸XJ+>;XùUøW>;7ùUøU=Y;Q ZQ[Zº\[^÷]ú\^_ø^¸`Q+>=`ù]ø_>=7ù]ø]=a=÷búacdøcQ eQfe¸gf³>?gùbød>?7ùbøb=h?Q iAïjA†>jiQ kAïlA‰>lkQ mAénA`>nmQ oO pooAïqAQ>qpQ rAésAa>srAPt5‰`=utAEvAE>vuQwA xA1>xwQy A zA>zyQ {Q|{¾}|+©~}+AEA³>~¨€Y÷�ú€‚ƒø‚>Dhù�øƒ>Doù�ø�=„D©…„+AE†Av>†…Q ‡AéˆA~>ˆ‡=‰A9Ч‰Q ‹O Œ‹‹AP�5‰‰=Ž�9�DŠŒŽ¨��÷‘ú�’“ø’üø“ýø‘ý8 ÛbêPB‰Lí+к¶ëóÉÊËshaders/shadow_momentsjÔ·„BTSR 1L1Lx©Lq{ Èx’ȱÈlÉDc a,xÙ,}T V�xÎ�P„} 1x vs_mainvs_mainfs_mainfs_mainLstruct VsIn { @location(0) q: vec2, @location(1) m0_: vec4, @location(2) m1_: vec4, @location(3) m2_: vec4, @location(4) m3_: vec4, @location(5) uvRect: vec4, @location(6) clip: vec4, @location(7) params: vec4, @location(8) look: vec4, @location(9) edges: vec4, @location(10) pin: vec4, } struct LightFrame { lightViewProj: mat4x4, params: vec4, evilLight: vec4, frameS: vec4, frameT: vec4, evilRect: vec4, evilLook: vec4, sdfRect: vec4, sdfInfo: vec4, morph: vec4, units: vec4, windA: vec4, windB: vec4, } struct CasterIn { uv: vec2, q: vec2, uvRect: vec4, size: vec2, look: vec4, time: f32, world: vec3, rest: vec3, plain: f32, paper: f32, fin: vec4, } struct CasterOut { alpha: f32, morph: f32, fade: f32, } struct VsOut { @builtin(position) position: vec4, @location(0) uv: vec2, @location(1) q: vec2, @location(2) depth: f32, @location(3) @interpolate(flat) clip: vec4, @location(4) @interpolate(flat) params: vec4, @location(5) @interpolate(flat) look: vec4, @location(6) @interpolate(flat) uvRect: vec4, @location(7) @interpolate(flat) size: vec4, @location(8) world: vec3, @location(9) rest: vec3, } const HDR_RANGE: f32 = 4f; const WIND_TAU: f32 = 6.2831855f; const TREMBLE_TRAVEL: f32 = 0.0045f; const TREMBLE_FREQ: f32 = 34f; const DISSOLVE_FREQ: f32 = 24f; const DISSOLVE_SOFT: f32 = 0.045f; const FAR_WORLD: f32 = 1f; const PI: f32 = 3.1415927f; const GRAZE_LO: f32 = 0.07f; const GRAZE_HI: f32 = 0.16f; @group(0) @binding(0) var light: LightFrame; @group(1) @binding(0) var twinTex: texture_2d; @group(1) @binding(1) var twinSamp: sampler; @group(1) @binding(2) var pieceTex: texture_2d; @group(1) @binding(3) var sdfTex: texture_2d; fn srgbToLinear(c_1: vec3) -> vec3 { let x = max(c_1, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_2: vec3) -> vec3 { let x_1 = max(c_2, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_3: vec3) -> f32 { return dot(c_3, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_4: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_4 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_4; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p: vec2) -> f32 { return fract((52.982918f * fract(dot(p, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_1: vec2) -> f32 { let i_2 = floor(p_1); let f = (p_1 - i_2); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_2); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_2: vec2) -> vec3 { let i_3 = floor(p_2); let f_1 = (p_2 - i_3); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_3); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g_1 * 2f)); } fn fbm3_(p_3: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_3); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_3 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_3 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn windAnchor(sheet: vec2, size: vec2, mask: f32, pin: vec4) -> f32 { var d: f32 = 1000f; let m = u32((clamp(mask, 0f, 15f) + 0.5f)); if ((m & 1u) != 0u) { let _e16 = d; d = min(_e16, abs(sheet.x)); } if ((m & 2u) != 0u) { let _e24 = d; d = min(_e24, abs((size.x - sheet.x))); } if ((m & 4u) != 0u) { let _e34 = d; d = min(_e34, abs(sheet.y)); } if ((m & 8u) != 0u) { let _e42 = d; d = min(_e42, abs((size.y - sheet.y))); } if (pin.x > -0.5f) { let a = (pin.xy * size); let ab = ((pin.zw * size) - a); let t_1 = clamp((dot((sheet - a), ab) / max(dot(ab, ab), 0.0000000001f)), 0f, 1f); let _e65 = d; d = min(_e65, length((sheet - (a + (ab * t_1))))); } let _e71 = d; return _e71; } fn windDisp(P0_: vec3, N: vec3, sheet_1: vec2, size_1: vec2, mask_1: f32, pin_1: vec4, seed: f32, wa: vec4, wb: vec4) -> f32 { let _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); let f_2 = min((_e9 * wb.z), 1.4f); let t_2 = wa.z; let dir = wb.xy; let along = dot(P0_.xz, dir); let _e26 = vnoise(vec2(((along * 6f) - (t_2 * 2.2f)), (seed * 7.3f))); let front = (0.7f + (0.3f * _e26)); let g_2 = (wa.w * front); let push = dot(N.xz, dir); let _e54 = vnoise(vec2(((t_2 * 1.9f) + (seed * 13f)), (along * 3f))); let swing = ((0.65f * sin((((t_2 * 7.5f) + (seed * WIND_TAU)) + (along * 2.5f)))) + (0.35f * _e54)); let sway = ((wa.x * g_2) * ((0.55f * push) + (0.45f * swing))); let run = (((dot(sheet_1, vec2(0.6f, 0.8f)) * 41.8879f) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11f)); let _e92 = vnoise(vec2(((t_2 * 3.3f) + (seed * 5f)), (along * 5f))); let flutter = (((wa.y * g_2) * sin(run)) * (0.55f + (0.45f * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } fn windBend(P0_1: vec3, N_1: vec3, T: vec3, B: vec3, sheet_2: vec2, size_2: vec2, mask_2: f32, pin_2: vec4, seed_1: f32, weight: f32, wa_1: vec4, wb_1: vec4) -> vec4 { let _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let d0_ = (_e13 * weight); let _e20 = windDisp((P0_1 + (T * 0.006f)), N_1, (sheet_2 + vec2(0.006f, 0f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dx = (_e20 * weight); let _e27 = windDisp((P0_1 + (B * 0.006f)), N_1, (sheet_2 + vec2(0f, 0.006f)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); let dy = (_e27 * weight); let n_1 = normalize(((N_1 - (T * ((dx - d0_) / 0.006f))) - (B * ((dy - d0_) / 0.006f)))); return vec4(n_1, d0_); } fn evilPage(world: vec3) -> vec3 { var local_4: bool; let _e3 = light.evilLight; let L = _e3.xyz; let dy_1 = (L.y - world.y); let k = (L.y / max(dy_1, 0.0001f)); let Q_1 = (L.xz + ((world.xz - L.xz) * k)); if (dy_1 > 0.0001f) { let _e25 = light.evilLight.w; local_4 = (_e25 > 0.5f); } else { local_4 = false; } let ok = local_4; return vec3(Q_1, select(0f, 1f, ok)); } fn evilCoord(Q: vec2) -> vec2 { let h = vec3(Q, 1f); let _e5 = light.frameS; let _e10 = light.frameT; return vec2(dot(_e5.xyz, h), dot(_e10.xyz, h)); } fn boilNoise(g: vec2, t: f32) -> f32 { let f_3 = light.morph.x; let p_4 = (g * f_3); let sp = light.morph.y; let _e19 = fbm3_(((p_4 * 0.62f) + vec2(((t * 0.23f) * sp), 3.1f))); let _e29 = fbm3_(((p_4 * 0.62f) + vec2(7.7f, ((-(t) * 0.19f) * sp)))); let w_1 = vec2(_e19, _e29); let _e34 = light.morph.z; let _e46 = fbm3_(((p_4 + (w_1 * _e34)) + vec2(((t * 0.11f) * sp), ((-(t) * 0.31f) * sp)))); return _e46; } fn exactField(dSdf: f32, alpha: f32, texelPx: f32) -> f32 { let dA = ((0.5f - alpha) / max(texelPx, 0.001f)); return select(max(dSdf, dA), min(dSdf, dA), (alpha >= 0.5f)); } fn casterEval(c_5: CasterIn) -> CasterOut { var local_5: bool; var dE: f32; var local_6: bool; var local_7: bool; var d_1: f32; var local_8: bool; var local_9: bool; var aMorph: f32; var out_1: CasterOut; var local_10: bool; let truth = clamp(c_5.look.x, 0f, 1f); let tremble = clamp(c_5.look.y, 0f, 1f); let seed_2 = (c_5.look.z * 37f); let mode_2 = c_5.look.w; let t_3 = c_5.time; let sheet_3 = (c_5.q * c_5.size); let wp = (sheet_3 * TREMBLE_FREQ); let _e27 = vnoise((wp + vec2((t_3 * 13f), seed_2))); let _e34 = vnoise((wp + vec2((seed_2 + 31f), (t_3 * 11.3f)))); let wob = vec2(_e27, _e34); let travel = (wob * (TREMBLE_TRAVEL * tremble)); let duv = ((travel / max(c_5.size, vec2(0.0001f))) * c_5.uvRect.zw); let _e51 = textureSample(twinTex, twinSamp, (c_5.uv + duv)); let aTwin = _e51.w; let _e59 = textureSample(pieceTex, twinSamp, (c_5.uv + (duv * 0.4f))); let aPiece = _e59.w; let _e62 = dpdx(c_5.rest); let _e64 = dpdy(c_5.rest); let nW = cross(_e62, _e64); if (mode_2 > 0.5f) { let _e73 = light.evilLight.w; local_5 = (_e73 > 0.5f); } else { local_5 = false; } let morphing = local_5; let isFin = (mode_2 > 1.5f); let _e81 = evilPage(c_5.rest); let n_2 = light.sdfInfo.x; let texelPx_1 = light.sdfInfo.y; let _e92 = light.sdfRect; let gridOf = (vec2(n_2) / max(_e92.zw, vec2(0.000001f))); let _e100 = evilCoord(_e81.xy); let _e108 = vnoise(((_e100 * 46f) + vec2((t_3 * 13f), 7f))); let _e116 = vnoise(((_e100 * 46f) + vec2(19f, (t_3 * 11.3f)))); let ew = vec2(_e108, _e116); let _e120 = light.evilLook; let st = (_e100 + ((ew * _e120.yz) * tremble)); let inFrame = ((((step(0f, st.x) * step(st.x, 1f)) * step(0f, st.y)) * step(st.y, 1f)) * _e81.z); let _e144 = light.evilRect; let _e153 = light.evilRect; let uvT = (_e144.xy + (clamp(st, vec2(0f), vec2(1f)) * _e153.zw)); let _e159 = light.sdfRect; let gT = ((uvT - _e159.xy) * gridOf); let _e168 = textureSampleLevel(sdfTex, twinSamp, (gT / vec2(n_2)), 0f); let sdfT = _e168.y; let _e173 = textureSampleLevel(twinTex, twinSamp, uvT, 0f); let aTwinFrame = _e173.w; let _e177 = light.evilRect; let tilePx = (abs(_e177.zw) * gridOf); let outsideT = length(((max(-(st), vec2(0f)) * tilePx) + (max((st - vec2(1f)), vec2(0f)) * tilePx))); let _e198 = light.evilLook.w; let aEvil = (select(aTwinFrame, 1f, (_e198 > 0.5f)) * inFrame); let _e204 = exactField(sdfT, aEvil, texelPx_1); dE = select(_e204, (max(sdfT, 0f) + outsideT), (inFrame < 0.5f)); let _e212 = dE; let _e216 = light.evilLook.w; if (_e216 > 0.5f) { local_6 = (inFrame > 0.5f); } else { local_6 = false; } let _e224 = local_6; dE = select(_e212, -4f, _e224); let _e227 = dE; let _e231 = light.units.x; dE = select((_e227 * _e231), FAR_WORLD, (_e81.z < 0.5f)); let span = max((c_5.fin.zw - c_5.fin.xy), vec2(0.0001f)); let qP = select(c_5.q, ((c_5.q - c_5.fin.xy) / span), isFin); let qC = clamp(qP, vec2(0f), vec2(1f)); let outP = length(((qP - qC) * select(c_5.size, (c_5.size * span), isFin))); let uvP = ((c_5.uvRect.xy + (qC * c_5.uvRect.zw)) + (duv * 0.4f)); let _e276 = light.sdfRect; let gP = ((uvP - _e276.xy) * gridOf); let _e285 = textureSampleLevel(sdfTex, twinSamp, (gP / vec2(n_2)), 0f); let sdfP = _e285.x; let own = (select(aPiece, 1f, (c_5.plain > 0.5f)) * c_5.paper); let wpt = light.units.y; let _e298 = exactField(sdfP, own, texelPx_1); let dSheet = select((_e298 * wpt), ((max(sdfP, 0f) * wpt) + max(outP, (0.5f * wpt))), isFin); if isFin { local_7 = (outP <= 0f); } else { local_7 = false; } let finInside = local_7; let _e316 = light.evilLight; let Ls = _e316.xyz; let dyL = max((Ls.y - c_5.rest.y), 0.0001f); let nn = (nW / vec3(max(length(nW), 0.000000000000000000000001f))); let toPage = ((Ls.y / dyL) * sqrt(clamp((abs(dot(nn, (c_5.rest - Ls))) / dyL), 0.1f, 10f))); let _e344 = light.sdfInfo.w; let sdfOk = (_e344 > 0.5f); let dN = select(((0.5f - select(own, 0f, isFin)) * 2f), (dSheet * toPage), sdfOk); let _e359 = dE; let dEf = select(((0.5f - aEvil) * 2f), _e359, sdfOk); let toLs = (c_5.rest - Ls); let graze = (abs(dot(nn, toLs)) / max(length(toLs), 0.0001f)); let m_1 = ((1f - truth) * smoothstep(GRAZE_LO, GRAZE_HI, graze)); d_1 = mix(dN, dEf, m_1); let bump = sin((PI * clamp(m_1, 0f, 1f))); if (bump > 0.002f) { local_8 = morphing; } else { local_8 = false; } let _e388 = local_8; if _e388 { local_9 = sdfOk; } else { local_9 = false; } let _e392 = local_9; if _e392 { let _e394 = boilNoise(_e81.xy, t_3); let _e395 = d_1; let _e399 = light.evilLook.x; let _e404 = light.morph.w; d_1 = (_e395 + ((_e399 * bump) * (_e394 + (_e404 * bump)))); } let _e409 = d_1; let _e410 = fwidth(_e409); let fw = max(_e410, 0.000001f); let _e413 = d_1; aMorph = clamp((0.5f - (_e413 / fw)), 0f, 1f); let _e421 = aMorph; aMorph = select(_e421, 0f, finInside); let dp = (sheet_3 * DISSOLVE_FREQ); let _e432 = vnoise((dp + vec2((seed_2 * 1.7f), (t_3 * 0.55f)))); let _e441 = vnoise(((dp * 2.3f) + vec2((t_3 * 0.9f), seed_2))); let nn2_ = (0.5f + (0.5f * ((0.62f * _e432) + (0.38f * _e441)))); let mm = smoothstep((nn2_ - DISSOLVE_SOFT), (nn2_ + DISSOLVE_SOFT), ((truth * 1.08f) - 0.04f)); let sameUv = (select(mix(aTwin, aPiece, mm), 1f, (c_5.plain > 0.5f)) * c_5.paper); let _e468 = aMorph; out_1.alpha = select(sameUv, _e468, morphing); out_1.morph = select(0f, 1f, morphing); if (abs((mode_2 - 0.5f)) < 0.25f) { let _e485 = light.evilLight.w; local_10 = (_e485 > 0.5f); } else { local_10 = false; } let _e489 = local_10; out_1.fade = select(1f, truth, _e489); let _e492 = out_1; return _e492; } fn casterKeep(o: CasterOut, fragXY: vec2, cutoff: f32) -> bool { var local_11: bool; let bayer = fract((52.982918f * fract(dot(floor(fragXY), vec2(0.06711056f, 0.00583715f))))); let _e19 = light.params.w; let thr = mix(cutoff, (0.02f + (0.96f * bayer)), (_e19 * o.morph)); let keep2_ = fract((52.982918f * fract(dot((floor(fragXY) + vec2(17f, 3f)), vec2(0.00583715f, 0.06711056f))))); if (o.alpha >= thr) { local_11 = (keep2_ < o.fade); } else { local_11 = false; } let _e43 = local_11; return _e43; } fn bentCaster(in_2: VsIn, rest: vec3) -> vec3 { var local_12: bool; if !((in_2.edges.z <= 0f)) { let _e12 = light.windA.w; local_12 = (_e12 <= 0f); } else { local_12 = true; } let _e16 = local_12; if _e16 { return rest; } let isFin_1 = (in_2.look.w > 1.5f); let span_1 = select(vec2(1f), max((in_2.clip.zw - in_2.clip.xy), vec2(0.0001f)), isFin_1); let qP_1 = select(in_2.q, ((in_2.q - in_2.clip.xy) / span_1), isFin_1); let size_3 = (vec2(length(in_2.m0_.xyz), length(in_2.m1_.xyz)) * span_1); let N_2 = normalize(in_2.m2_.xyz); let _e58 = light.windA; let _e61 = light.windB; let _e62 = windDisp(rest, N_2, (qP_1 * size_3), size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); let d_2 = (_e62 * in_2.edges.z); return (rest + (N_2 * d_2)); } @vertex fn vs_main(in: VsIn) -> VsOut { var out: VsOut; let model = mat4x4(in.m0_, in.m1_, in.m2_, in.m3_); let rest_1 = (model * vec4(in.q, 0f, 1f)).xyz; let _e12 = bentCaster(in, rest_1); let world_1 = vec4(_e12, 1f); let _e17 = light.lightViewProj; let clipPos = (_e17 * world_1); out.position = clipPos; out.uv = (in.uvRect.xy + (in.q * in.uvRect.zw)); out.q = in.q; let _e36 = light.params.x; out.depth = (clipPos.w * _e36); out.clip = in.clip; out.params = in.params; out.look = in.look; out.uvRect = in.uvRect; out.size = vec4(length(in.m0_.xyz), length(in.m1_.xyz), 0f, 0f); out.world = world_1.xyz; out.rest = rest_1; let _e59 = out; return _e59; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { var local: bool; var local_1: bool; var local_2: bool; var c: CasterIn; var local_3: bool; let rd = (0.5f - length((in_1.q - vec2(0.5f, 0.5f)))); let cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); if (in_1.params.z > 0.5f) { local = (rd < 0f); } else { local = false; } let discOut = local; if (in_1.clip.w > 0.5f) { local_1 = (cd < 0f); } else { local_1 = false; } let _e35 = local_1; if _e35 { local_2 = (in_1.look.w < 1.5f); } else { local_2 = false; } let clipOut = local_2; c.uv = in_1.uv; c.q = in_1.q; c.uvRect = in_1.uvRect; c.size = in_1.size.xy; c.look = in_1.look; let _e60 = light.params.z; c.time = _e60; c.world = in_1.world; c.rest = in_1.rest; c.plain = select(0f, 1f, (in_1.params.w >= 0f)); if !(discOut) { local_3 = clipOut; } else { local_3 = true; } let _e78 = local_3; c.paper = select(1f, 0f, _e78); c.fin = in_1.clip; let _e84 = c; let _e85 = casterEval(_e84); let d_3 = in_1.depth; let dx_1 = dpdx(d_3); let dy_2 = dpdy(d_3); let _e94 = light.params.y; let _e95 = casterKeep(_e85, in_1.position.xy, _e94); if !(_e95) { discard; } return vec4(d_3, ((d_3 * d_3) + (0.25f * ((dx_1 * dx_1) + (dy_2 * dy_2)))), 0f, 1f); }  ÛbêPB‰Lí+к¶ëóÉvs_mainmainÜ0#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct LightFrame { mat4x4 lightViewProj; vec4 params; vec4 evilLight; vec4 frameS; vec4 frameT; vec4 evilRect; vec4 evilLook; vec4 sdfRect; vec4 sdfInfo; vec4 morph; vec4 units; vec4 windA; vec4 windB; }; struct CasterIn { vec2 uv; vec2 q; vec4 uvRect; vec2 size; vec4 look; float time; vec3 world; vec3 rest; float plain; float paper; vec4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { vec4 position; vec2 uv; vec2 q; float depth; vec4 clip; vec4 params; vec4 look; vec4 uvRect; vec4 size; vec3 world; vec3 rest; }; const float HDR_RANGE = 4.0; const float WIND_TAU = 6.2831855; const float TREMBLE_TRAVEL = 0.0045; const float TREMBLE_FREQ = 34.0; const float DISSOLVE_FREQ = 24.0; const float DISSOLVE_SOFT = 0.045; const float FAR_WORLD = 1.0; const float PI = 3.1415927; const float GRAZE_LO = 0.07; const float GRAZE_HI = 0.16; layout(std140) uniform LightFrame_block_0Vertex { LightFrame _group_0_binding_0_vs; }; layout(location = 0) in vec2 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; layout(location = 8) in vec4 _p2vs_location8; layout(location = 9) in vec4 _p2vs_location9; layout(location = 10) in vec4 _p2vs_location10; smooth out vec2 _vs2fs_location0; smooth out vec2 _vs2fs_location1; smooth out float _vs2fs_location2; flat out vec4 _vs2fs_location3; flat out vec4 _vs2fs_location4; flat out vec4 _vs2fs_location5; flat out vec4 _vs2fs_location6; flat out vec4 _vs2fs_location7; smooth out vec3 _vs2fs_location8; smooth out vec3 _vs2fs_location9; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d; d = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d; d = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d; d = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d; d = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a = (pin.xy * size); vec2 ab = ((pin.zw * size) - a); float t_1 = clamp((dot((sheet - a), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d; d = min(_e65, length((sheet - (a + (ab * t_1))))); } float _e71 = d; return _e71; } float windDisp(vec3 P0_, vec3 N, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_2 = wa.z; vec2 dir = wb.xy; float along = dot(P0_.xz, dir); float _e26 = vnoise(vec2(((along * 6.0) - (t_2 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N.xz, dir); float _e54 = vnoise(vec2(((t_2 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_2 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_2 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_1, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_1, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_1, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_1 = normalize(((N_1 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_1, d0_); } vec3 evilPage(vec3 world) { bool local_4 = false; vec4 _e3 = _group_0_binding_0_vs.evilLight; vec3 L = _e3.xyz; float dy_1 = (L.y - world.y); float k = (L.y / max(dy_1, 0.0001)); vec2 Q_1 = (L.xz + ((world.xz - L.xz) * k)); if ((dy_1 > 0.0001)) { float _e25 = _group_0_binding_0_vs.evilLight.w; local_4 = (_e25 > 0.5); } else { local_4 = false; } bool ok = local_4; return vec3(Q_1, (ok ? 1.0 : 0.0)); } vec2 evilCoord(vec2 Q) { vec3 h = vec3(Q, 1.0); vec4 _e5 = _group_0_binding_0_vs.frameS; vec4 _e10 = _group_0_binding_0_vs.frameT; return vec2(dot(_e5.xyz, h), dot(_e10.xyz, h)); } float boilNoise(vec2 g, float t) { float f_3 = _group_0_binding_0_vs.morph.x; vec2 p_4 = (g * f_3); float sp = _group_0_binding_0_vs.morph.y; float _e19 = fbm3_(((p_4 * 0.62) + vec2(((t * 0.23) * sp), 3.1))); float _e29 = fbm3_(((p_4 * 0.62) + vec2(7.7, ((-(t) * 0.19) * sp)))); vec2 w_1 = vec2(_e19, _e29); float _e34 = _group_0_binding_0_vs.morph.z; float _e46 = fbm3_(((p_4 + (w_1 * _e34)) + vec2(((t * 0.11) * sp), ((-(t) * 0.31) * sp)))); return _e46; } float exactField(float dSdf, float alpha, float texelPx) { float dA = ((0.5 - alpha) / max(texelPx, 0.001)); return ((alpha >= 0.5) ? min(dSdf, dA) : max(dSdf, dA)); } bool casterKeep(CasterOut o, vec2 fragXY, float cutoff) { bool local_11 = false; float bayer = fract((52.982918 * fract(dot(floor(fragXY), vec2(0.06711056, 0.00583715))))); float _e19 = _group_0_binding_0_vs.params.w; float thr = mix(cutoff, (0.02 + (0.96 * bayer)), (_e19 * o.morph)); float keep2_ = fract((52.982918 * fract(dot((floor(fragXY) + vec2(17.0, 3.0)), vec2(0.00583715, 0.06711056))))); if ((o.alpha >= thr)) { local_11 = (keep2_ < o.fade); } else { local_11 = false; } bool _e43 = local_11; return _e43; } vec3 bentCaster(VsIn in_2, vec3 rest) { bool local_12 = false; if (!((in_2.edges.z <= 0.0))) { float _e12 = _group_0_binding_0_vs.windA.w; local_12 = (_e12 <= 0.0); } else { local_12 = true; } bool _e16 = local_12; if (_e16) { return rest; } bool isFin = (in_2.look.w > 1.5); vec2 span = (isFin ? max((in_2.clip.zw - in_2.clip.xy), vec2(0.0001)) : vec2(1.0)); vec2 qP = (isFin ? ((in_2.q - in_2.clip.xy) / span) : in_2.q); vec2 size_3 = (vec2(length(in_2.m0_.xyz), length(in_2.m1_.xyz)) * span); vec3 N_2 = normalize(in_2.m2_.xyz); vec4 _e58 = _group_0_binding_0_vs.windA; vec4 _e61 = _group_0_binding_0_vs.windB; float _e62 = windDisp(rest, N_2, (qP * size_3), size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); float d_2 = (_e62 * in_2.edges.z); return (rest + (N_2 * d_2)); } void main() { VsIn in_ = VsIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9, _p2vs_location10); VsOut out_ = VsOut(vec4(0.0), vec2(0.0), vec2(0.0), 0.0, vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec3(0.0), vec3(0.0)); mat4x4 model = mat4x4(in_.m0_, in_.m1_, in_.m2_, in_.m3_); vec3 rest_1 = (model * vec4(in_.q, 0.0, 1.0)).xyz; vec3 _e12 = bentCaster(in_, rest_1); vec4 world_1 = vec4(_e12, 1.0); mat4x4 _e17 = _group_0_binding_0_vs.lightViewProj; vec4 clipPos = (_e17 * world_1); out_.position = clipPos; out_.uv = (in_.uvRect.xy + (in_.q * in_.uvRect.zw)); out_.q = in_.q; float _e36 = _group_0_binding_0_vs.params.x; out_.depth = (clipPos.w * _e36); out_.clip = in_.clip; out_.params = in_.params; out_.look = in_.look; out_.uvRect = in_.uvRect; out_.size = vec4(length(in_.m0_.xyz), length(in_.m1_.xyz), 0.0, 0.0); out_.world = world_1.xyz; out_.rest = rest_1; VsOut _e59 = out_; gl_Position = _e59.position; _vs2fs_location0 = _e59.uv; _vs2fs_location1 = _e59.q; _vs2fs_location2 = _e59.depth; _vs2fs_location3 = _e59.clip; _vs2fs_location4 = _e59.params; _vs2fs_location5 = _e59.look; _vs2fs_location6 = _e59.uvRect; _vs2fs_location7 = _e59.size; _vs2fs_location8 = _e59.world; _vs2fs_location9 = _e59.rest; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmainlJ#version 300 es precision highp float; precision highp int; struct VsIn { vec2 q; vec4 m0_; vec4 m1_; vec4 m2_; vec4 m3_; vec4 uvRect; vec4 clip; vec4 params; vec4 look; vec4 edges; vec4 pin; }; struct LightFrame { mat4x4 lightViewProj; vec4 params; vec4 evilLight; vec4 frameS; vec4 frameT; vec4 evilRect; vec4 evilLook; vec4 sdfRect; vec4 sdfInfo; vec4 morph; vec4 units; vec4 windA; vec4 windB; }; struct CasterIn { vec2 uv; vec2 q; vec4 uvRect; vec2 size; vec4 look; float time; vec3 world; vec3 rest; float plain; float paper; vec4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { vec4 position; vec2 uv; vec2 q; float depth; vec4 clip; vec4 params; vec4 look; vec4 uvRect; vec4 size; vec3 world; vec3 rest; }; const float HDR_RANGE = 4.0; const float WIND_TAU = 6.2831855; const float TREMBLE_TRAVEL = 0.0045; const float TREMBLE_FREQ = 34.0; const float DISSOLVE_FREQ = 24.0; const float DISSOLVE_SOFT = 0.045; const float FAR_WORLD = 1.0; const float PI = 3.1415927; const float GRAZE_LO = 0.07; const float GRAZE_HI = 0.16; layout(std140) uniform LightFrame_block_0Fragment { LightFrame _group_0_binding_0_fs; }; uniform highp sampler2D _group_1_binding_0_fs; uniform highp sampler2D _group_1_binding_2_fs; uniform highp sampler2D _group_1_binding_3_fs; smooth in vec2 _vs2fs_location0; smooth in vec2 _vs2fs_location1; smooth in float _vs2fs_location2; flat in vec4 _vs2fs_location3; flat in vec4 _vs2fs_location4; flat in vec4 _vs2fs_location5; flat in vec4 _vs2fs_location6; flat in vec4 _vs2fs_location7; smooth in vec3 _vs2fs_location8; smooth in vec3 _vs2fs_location9; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c_1) { vec3 x = max(c_1, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_2) { vec3 x_1 = max(c_2, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_3) { return dot(c_3, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_4, float mode) { if ((mode > 0.5)) { return pow(clamp((c_4 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_4; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p) { return fract((52.982918 * fract(dot(p, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_1) { vec2 i_2 = floor(p_1); vec2 f = (p_1 - i_2); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_2); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_2) { vec2 i_3 = floor(p_2); vec2 f_1 = (p_2 - i_3); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g_1 = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g_1 * 2.0)); } float fbm3_(vec2 p_3) { float s = 0.0; float _e1 = vnoise(p_3); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_3 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_3 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } float windAnchor(vec2 sheet, vec2 size, float mask, vec4 pin) { float d = 1000.0; uint m = uint((clamp(mask, 0.0, 15.0) + 0.5)); if (((m & 1u) != 0u)) { float _e16 = d; d = min(_e16, abs(sheet.x)); } if (((m & 2u) != 0u)) { float _e24 = d; d = min(_e24, abs((size.x - sheet.x))); } if (((m & 4u) != 0u)) { float _e34 = d; d = min(_e34, abs(sheet.y)); } if (((m & 8u) != 0u)) { float _e42 = d; d = min(_e42, abs((size.y - sheet.y))); } if ((pin.x > -0.5)) { vec2 a = (pin.xy * size); vec2 ab = ((pin.zw * size) - a); float t_1 = clamp((dot((sheet - a), ab) / max(dot(ab, ab), 1e-10)), 0.0, 1.0); float _e65 = d; d = min(_e65, length((sheet - (a + (ab * t_1))))); } float _e71 = d; return _e71; } float windDisp(vec3 P0_, vec3 N, vec2 sheet_1, vec2 size_1, float mask_1, vec4 pin_1, float seed, vec4 wa, vec4 wb) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = min((_e9 * wb.z), 1.4); float t_2 = wa.z; vec2 dir = wb.xy; float along = dot(P0_.xz, dir); float _e26 = vnoise(vec2(((along * 6.0) - (t_2 * 2.2)), (seed * 7.3))); float front = (0.7 + (0.3 * _e26)); float g_2 = (wa.w * front); float push = dot(N.xz, dir); float _e54 = vnoise(vec2(((t_2 * 1.9) + (seed * 13.0)), (along * 3.0))); float swing = ((0.65 * sin((((t_2 * 7.5) + (seed * WIND_TAU)) + (along * 2.5)))) + (0.35 * _e54)); float sway = ((wa.x * g_2) * ((0.55 * push) + (0.45 * swing))); float run = (((dot(sheet_1, vec2(0.6, 0.8)) * 41.8879) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11.0)); float _e92 = vnoise(vec2(((t_2 * 3.3) + (seed * 5.0)), (along * 5.0))); float flutter = (((wa.y * g_2) * sin(run)) * (0.55 + (0.45 * _e92))); return ((f_2 * f_2) * (sway + (f_2 * flutter))); } vec4 windBend(vec3 P0_1, vec3 N_1, vec3 T, vec3 B, vec2 sheet_2, vec2 size_2, float mask_2, vec4 pin_2, float seed_1, float weight, vec4 wa_1, vec4 wb_1) { float _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = (_e13 * weight); float _e20 = windDisp((P0_1 + (T * 0.006)), N_1, (sheet_2 + vec2(0.006, 0.0)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = (_e20 * weight); float _e27 = windDisp((P0_1 + (B * 0.006)), N_1, (sheet_2 + vec2(0.0, 0.006)), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = (_e27 * weight); vec3 n_1 = normalize(((N_1 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006)))); return vec4(n_1, d0_); } vec3 evilPage(vec3 world) { bool local_4 = false; vec4 _e3 = _group_0_binding_0_fs.evilLight; vec3 L = _e3.xyz; float dy_1 = (L.y - world.y); float k = (L.y / max(dy_1, 0.0001)); vec2 Q_1 = (L.xz + ((world.xz - L.xz) * k)); if ((dy_1 > 0.0001)) { float _e25 = _group_0_binding_0_fs.evilLight.w; local_4 = (_e25 > 0.5); } else { local_4 = false; } bool ok = local_4; return vec3(Q_1, (ok ? 1.0 : 0.0)); } vec2 evilCoord(vec2 Q) { vec3 h = vec3(Q, 1.0); vec4 _e5 = _group_0_binding_0_fs.frameS; vec4 _e10 = _group_0_binding_0_fs.frameT; return vec2(dot(_e5.xyz, h), dot(_e10.xyz, h)); } float boilNoise(vec2 g, float t) { float f_3 = _group_0_binding_0_fs.morph.x; vec2 p_4 = (g * f_3); float sp = _group_0_binding_0_fs.morph.y; float _e19 = fbm3_(((p_4 * 0.62) + vec2(((t * 0.23) * sp), 3.1))); float _e29 = fbm3_(((p_4 * 0.62) + vec2(7.7, ((-(t) * 0.19) * sp)))); vec2 w_1 = vec2(_e19, _e29); float _e34 = _group_0_binding_0_fs.morph.z; float _e46 = fbm3_(((p_4 + (w_1 * _e34)) + vec2(((t * 0.11) * sp), ((-(t) * 0.31) * sp)))); return _e46; } float exactField(float dSdf, float alpha, float texelPx) { float dA = ((0.5 - alpha) / max(texelPx, 0.001)); return ((alpha >= 0.5) ? min(dSdf, dA) : max(dSdf, dA)); } CasterOut casterEval(CasterIn c_5) { bool local_5 = false; float dE = 0.0; bool local_6 = false; bool local_7 = false; float d_1 = 0.0; bool local_8 = false; bool local_9 = false; float aMorph = 0.0; CasterOut out_1 = CasterOut(0.0, 0.0, 0.0); bool local_10 = false; float truth = clamp(c_5.look.x, 0.0, 1.0); float tremble = clamp(c_5.look.y, 0.0, 1.0); float seed_2 = (c_5.look.z * 37.0); float mode_2 = c_5.look.w; float t_3 = c_5.time; vec2 sheet_3 = (c_5.q * c_5.size); vec2 wp = (sheet_3 * TREMBLE_FREQ); float _e27 = vnoise((wp + vec2((t_3 * 13.0), seed_2))); float _e34 = vnoise((wp + vec2((seed_2 + 31.0), (t_3 * 11.3)))); vec2 wob = vec2(_e27, _e34); vec2 travel = (wob * (TREMBLE_TRAVEL * tremble)); vec2 duv = ((travel / max(c_5.size, vec2(0.0001))) * c_5.uvRect.zw); vec4 _e51 = texture(_group_1_binding_0_fs, vec2((c_5.uv + duv))); float aTwin = _e51.w; vec4 _e59 = texture(_group_1_binding_2_fs, vec2((c_5.uv + (duv * 0.4)))); float aPiece = _e59.w; vec3 _e62 = dFdx(c_5.rest); vec3 _e64 = dFdy(c_5.rest); vec3 nW = cross(_e62, _e64); if ((mode_2 > 0.5)) { float _e73 = _group_0_binding_0_fs.evilLight.w; local_5 = (_e73 > 0.5); } else { local_5 = false; } bool morphing = local_5; bool isFin = (mode_2 > 1.5); vec3 _e81 = evilPage(c_5.rest); float n_2 = _group_0_binding_0_fs.sdfInfo.x; float texelPx_1 = _group_0_binding_0_fs.sdfInfo.y; vec4 _e92 = _group_0_binding_0_fs.sdfRect; vec2 gridOf = (vec2(n_2) / max(_e92.zw, vec2(1e-6))); vec2 _e100 = evilCoord(_e81.xy); float _e108 = vnoise(((_e100 * 46.0) + vec2((t_3 * 13.0), 7.0))); float _e116 = vnoise(((_e100 * 46.0) + vec2(19.0, (t_3 * 11.3)))); vec2 ew = vec2(_e108, _e116); vec4 _e120 = _group_0_binding_0_fs.evilLook; vec2 st = (_e100 + ((ew * _e120.yz) * tremble)); float inFrame = ((((step(0.0, st.x) * step(st.x, 1.0)) * step(0.0, st.y)) * step(st.y, 1.0)) * _e81.z); vec4 _e144 = _group_0_binding_0_fs.evilRect; vec4 _e153 = _group_0_binding_0_fs.evilRect; vec2 uvT = (_e144.xy + (clamp(st, vec2(0.0), vec2(1.0)) * _e153.zw)); vec4 _e159 = _group_0_binding_0_fs.sdfRect; vec2 gT = ((uvT - _e159.xy) * gridOf); vec4 _e168 = textureLod(_group_1_binding_3_fs, vec2((gT / vec2(n_2))), 0.0); float sdfT = _e168.y; vec4 _e173 = textureLod(_group_1_binding_0_fs, vec2(uvT), 0.0); float aTwinFrame = _e173.w; vec4 _e177 = _group_0_binding_0_fs.evilRect; vec2 tilePx = (abs(_e177.zw) * gridOf); float outsideT = length(((max(-(st), vec2(0.0)) * tilePx) + (max((st - vec2(1.0)), vec2(0.0)) * tilePx))); float _e198 = _group_0_binding_0_fs.evilLook.w; float aEvil = (((_e198 > 0.5) ? 1.0 : aTwinFrame) * inFrame); float _e204 = exactField(sdfT, aEvil, texelPx_1); dE = ((inFrame < 0.5) ? (max(sdfT, 0.0) + outsideT) : _e204); float _e212 = dE; float _e216 = _group_0_binding_0_fs.evilLook.w; if ((_e216 > 0.5)) { local_6 = (inFrame > 0.5); } else { local_6 = false; } bool _e224 = local_6; dE = (_e224 ? -4.0 : _e212); float _e227 = dE; float _e231 = _group_0_binding_0_fs.units.x; dE = ((_e81.z < 0.5) ? FAR_WORLD : (_e227 * _e231)); vec2 span = max((c_5.fin.zw - c_5.fin.xy), vec2(0.0001)); vec2 qP = (isFin ? ((c_5.q - c_5.fin.xy) / span) : c_5.q); vec2 qC = clamp(qP, vec2(0.0), vec2(1.0)); float outP = length(((qP - qC) * (isFin ? (c_5.size * span) : c_5.size))); vec2 uvP = ((c_5.uvRect.xy + (qC * c_5.uvRect.zw)) + (duv * 0.4)); vec4 _e276 = _group_0_binding_0_fs.sdfRect; vec2 gP = ((uvP - _e276.xy) * gridOf); vec4 _e285 = textureLod(_group_1_binding_3_fs, vec2((gP / vec2(n_2))), 0.0); float sdfP = _e285.x; float own = (((c_5.plain > 0.5) ? 1.0 : aPiece) * c_5.paper); float wpt = _group_0_binding_0_fs.units.y; float _e298 = exactField(sdfP, own, texelPx_1); float dSheet = (isFin ? ((max(sdfP, 0.0) * wpt) + max(outP, (0.5 * wpt))) : (_e298 * wpt)); if (isFin) { local_7 = (outP <= 0.0); } else { local_7 = false; } bool finInside = local_7; vec4 _e316 = _group_0_binding_0_fs.evilLight; vec3 Ls = _e316.xyz; float dyL = max((Ls.y - c_5.rest.y), 0.0001); vec3 nn = (nW / vec3(max(length(nW), 1e-24))); float toPage = ((Ls.y / dyL) * sqrt(clamp((abs(dot(nn, (c_5.rest - Ls))) / dyL), 0.1, 10.0))); float _e344 = _group_0_binding_0_fs.sdfInfo.w; bool sdfOk = (_e344 > 0.5); float dN = (sdfOk ? (dSheet * toPage) : ((0.5 - (isFin ? 0.0 : own)) * 2.0)); float _e359 = dE; float dEf = (sdfOk ? _e359 : ((0.5 - aEvil) * 2.0)); vec3 toLs = (c_5.rest - Ls); float graze = (abs(dot(nn, toLs)) / max(length(toLs), 0.0001)); float m_1 = ((1.0 - truth) * smoothstep(GRAZE_LO, GRAZE_HI, graze)); d_1 = mix(dN, dEf, m_1); float bump = sin((PI * clamp(m_1, 0.0, 1.0))); if ((bump > 0.002)) { local_8 = morphing; } else { local_8 = false; } bool _e388 = local_8; if (_e388) { local_9 = sdfOk; } else { local_9 = false; } bool _e392 = local_9; if (_e392) { float _e394 = boilNoise(_e81.xy, t_3); float _e395 = d_1; float _e399 = _group_0_binding_0_fs.evilLook.x; float _e404 = _group_0_binding_0_fs.morph.w; d_1 = (_e395 + ((_e399 * bump) * (_e394 + (_e404 * bump)))); } float _e409 = d_1; float _e410 = fwidth(_e409); float fw = max(_e410, 1e-6); float _e413 = d_1; aMorph = clamp((0.5 - (_e413 / fw)), 0.0, 1.0); float _e421 = aMorph; aMorph = (finInside ? 0.0 : _e421); vec2 dp = (sheet_3 * DISSOLVE_FREQ); float _e432 = vnoise((dp + vec2((seed_2 * 1.7), (t_3 * 0.55)))); float _e441 = vnoise(((dp * 2.3) + vec2((t_3 * 0.9), seed_2))); float nn2_ = (0.5 + (0.5 * ((0.62 * _e432) + (0.38 * _e441)))); float mm = smoothstep((nn2_ - DISSOLVE_SOFT), (nn2_ + DISSOLVE_SOFT), ((truth * 1.08) - 0.04)); float sameUv = (((c_5.plain > 0.5) ? 1.0 : mix(aTwin, aPiece, mm)) * c_5.paper); float _e468 = aMorph; out_1.alpha = (morphing ? _e468 : sameUv); out_1.morph = (morphing ? 1.0 : 0.0); if ((abs((mode_2 - 0.5)) < 0.25)) { float _e485 = _group_0_binding_0_fs.evilLight.w; local_10 = (_e485 > 0.5); } else { local_10 = false; } bool _e489 = local_10; out_1.fade = (_e489 ? truth : 1.0); CasterOut _e492 = out_1; return _e492; } bool casterKeep(CasterOut o, vec2 fragXY, float cutoff) { bool local_11 = false; float bayer = fract((52.982918 * fract(dot(floor(fragXY), vec2(0.06711056, 0.00583715))))); float _e19 = _group_0_binding_0_fs.params.w; float thr = mix(cutoff, (0.02 + (0.96 * bayer)), (_e19 * o.morph)); float keep2_ = fract((52.982918 * fract(dot((floor(fragXY) + vec2(17.0, 3.0)), vec2(0.00583715, 0.06711056))))); if ((o.alpha >= thr)) { local_11 = (keep2_ < o.fade); } else { local_11 = false; } bool _e43 = local_11; return _e43; } vec3 bentCaster(VsIn in_2, vec3 rest) { bool local_12 = false; if (!((in_2.edges.z <= 0.0))) { float _e12 = _group_0_binding_0_fs.windA.w; local_12 = (_e12 <= 0.0); } else { local_12 = true; } bool _e16 = local_12; if (_e16) { return rest; } bool isFin_1 = (in_2.look.w > 1.5); vec2 span_1 = (isFin_1 ? max((in_2.clip.zw - in_2.clip.xy), vec2(0.0001)) : vec2(1.0)); vec2 qP_1 = (isFin_1 ? ((in_2.q - in_2.clip.xy) / span_1) : in_2.q); vec2 size_3 = (vec2(length(in_2.m0_.xyz), length(in_2.m1_.xyz)) * span_1); vec3 N_2 = normalize(in_2.m2_.xyz); vec4 _e58 = _group_0_binding_0_fs.windA; vec4 _e61 = _group_0_binding_0_fs.windB; float _e62 = windDisp(rest, N_2, (qP_1 * size_3), size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); float d_2 = (_e62 * in_2.edges.z); return (rest + (N_2 * d_2)); } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4, _vs2fs_location5, _vs2fs_location6, _vs2fs_location7, _vs2fs_location8, _vs2fs_location9); bool local = false; bool local_1 = false; bool local_2 = false; CasterIn c = CasterIn(vec2(0.0), vec2(0.0), vec4(0.0), vec2(0.0), vec4(0.0), 0.0, vec3(0.0), vec3(0.0), 0.0, 0.0, vec4(0.0)); bool local_3 = false; float rd = (0.5 - length((in_1.q - vec2(0.5, 0.5)))); float cd = (dot(in_1.clip.xy, in_1.q) + in_1.clip.z); if ((in_1.params.z > 0.5)) { local = (rd < 0.0); } else { local = false; } bool discOut = local; if ((in_1.clip.w > 0.5)) { local_1 = (cd < 0.0); } else { local_1 = false; } bool _e35 = local_1; if (_e35) { local_2 = (in_1.look.w < 1.5); } else { local_2 = false; } bool clipOut = local_2; c.uv = in_1.uv; c.q = in_1.q; c.uvRect = in_1.uvRect; c.size = in_1.size.xy; c.look = in_1.look; float _e60 = _group_0_binding_0_fs.params.z; c.time = _e60; c.world = in_1.world; c.rest = in_1.rest; c.plain = ((in_1.params.w >= 0.0) ? 1.0 : 0.0); if (!(discOut)) { local_3 = clipOut; } else { local_3 = true; } bool _e78 = local_3; c.paper = (_e78 ? 0.0 : 1.0); c.fin = in_1.clip; CasterIn _e84 = c; CasterOut _e85 = casterEval(_e84); float d_3 = in_1.depth; float dx_1 = dFdx(d_3); float dy_2 = dFdy(d_3); float _e94 = _group_0_binding_0_fs.params.y; bool _e95 = casterKeep(_e85, in_1.position.xy, _e94); if (!(_e95)) { discard; } _fs2p_location0 = vec4(d_3, ((d_3 * d_3) + (0.25 * ((dx_1 * dx_1) + (dy_2 * dy_2)))), 0.0, 1.0); return; }  ÛbêPB‰LÔlM!à&ß0LightFrame_block_0VertexLightFrame_block_0Fragment_group_1_binding_3_fs_group_1_binding_0_fs_group_1_binding_2_fsvs_mainvs_mainfs_mainfs_mainc// language: metal1.0 #include #include using metal::uint; struct VsIn { metal::float2 q; char _pad1[8]; metal::float4 m0_; metal::float4 m1_; metal::float4 m2_; metal::float4 m3_; metal::float4 uvRect; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 edges; metal::float4 pin; }; struct LightFrame { metal::float4x4 lightViewProj; metal::float4 params; metal::float4 evilLight; metal::float4 frameS; metal::float4 frameT; metal::float4 evilRect; metal::float4 evilLook; metal::float4 sdfRect; metal::float4 sdfInfo; metal::float4 morph; metal::float4 units; metal::float4 windA; metal::float4 windB; }; struct CasterIn { metal::float2 uv; metal::float2 q; metal::float4 uvRect; metal::float2 size; char _pad4[8]; metal::float4 look; float time; char _pad6[12]; metal::float3 world; metal::packed_float3 rest; float plain; float paper; char _pad10[12]; metal::float4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { metal::float4 position; metal::float2 uv; metal::float2 q; float depth; char _pad4[12]; metal::float4 clip; metal::float4 params; metal::float4 look; metal::float4 uvRect; metal::float4 size; metal::float3 world; metal::float3 rest; }; constant float HDR_RANGE = 4.0; constant float WIND_TAU = 6.2831855; constant float TREMBLE_TRAVEL = 0.0045; constant float TREMBLE_FREQ = 34.0; constant float DISSOLVE_FREQ = 24.0; constant float DISSOLVE_SOFT = 0.045; constant float FAR_WORLD = 1.0; constant float PI = 3.1415927; constant float GRAZE_LO = 0.07; constant float GRAZE_HI = 0.16; metal::float3 srgbToLinear( metal::float3 c_1 ) { metal::float3 x = metal::max(c_1, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_2 ) { metal::float3 x_1 = metal::max(c_2, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_3 ) { return metal::dot(c_3, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_4, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_4 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_4; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p ) { return metal::fract(52.982918 * metal::fract(metal::dot(p, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_1 ) { metal::float2 i_2 = metal::floor(p_1); metal::float2 f = p_1 - i_2; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_2); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_2 ) { metal::float2 i_3 = metal::floor(p_2); metal::float2 f_1 = p_2 - i_3; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_3); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g_1 = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g_1 * 2.0); } float fbm3_( metal::float2 p_3 ) { float s = {}; float _e1 = vnoise(p_3); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_3 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_3 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } uint naga_f2u32(float value) { return static_cast(metal::clamp(value, 0.0, 4294967000.0)); } float windAnchor( metal::float2 sheet, metal::float2 size, float mask, metal::float4 pin ) { float d = 1000.0; uint m = naga_f2u32(metal::clamp(mask, 0.0, 15.0) + 0.5); if ((m & 1u) != 0u) { float _e16 = d; d = metal::min(_e16, metal::abs(sheet.x)); } if ((m & 2u) != 0u) { float _e24 = d; d = metal::min(_e24, metal::abs(size.x - sheet.x)); } if ((m & 4u) != 0u) { float _e34 = d; d = metal::min(_e34, metal::abs(sheet.y)); } if ((m & 8u) != 0u) { float _e42 = d; d = metal::min(_e42, metal::abs(size.y - sheet.y)); } if (pin.x > -0.5) { metal::float2 a = pin.xy * size; metal::float2 ab = (pin.zw * size) - a; float t_1 = metal::clamp(metal::dot(sheet - a, ab) / metal::max(metal::dot(ab, ab), 0.0000000001), 0.0, 1.0); float _e65 = d; d = metal::min(_e65, metal::length(sheet - (a + (ab * t_1)))); } float _e71 = d; return _e71; } float windDisp( metal::float3 P0_, metal::float3 N, metal::float2 sheet_1, metal::float2 size_1, float mask_1, metal::float4 pin_1, float seed, metal::float4 wa, metal::float4 wb ) { float _e9 = windAnchor(sheet_1, size_1, mask_1, pin_1); float f_2 = metal::min(_e9 * wb.z, 1.4); float t_2 = wa.z; metal::float2 dir = wb.xy; float along = metal::dot(P0_.xz, dir); float _e26 = vnoise(metal::float2((along * 6.0) - (t_2 * 2.2), seed * 7.3)); float front = 0.7 + (0.3 * _e26); float g_2 = wa.w * front; float push = metal::dot(N.xz, dir); float _e54 = vnoise(metal::float2((t_2 * 1.9) + (seed * 13.0), along * 3.0)); float swing = (0.65 * metal::sin(((t_2 * 7.5) + (seed * WIND_TAU)) + (along * 2.5))) + (0.35 * _e54); float sway = (wa.x * g_2) * ((0.55 * push) + (0.45 * swing)); float run = ((metal::dot(sheet_1, metal::float2(0.6, 0.8)) * 41.8879) - ((t_2 * WIND_TAU) * wb.w)) + (seed * 11.0); float _e92 = vnoise(metal::float2((t_2 * 3.3) + (seed * 5.0), along * 5.0)); float flutter = ((wa.y * g_2) * metal::sin(run)) * (0.55 + (0.45 * _e92)); return (f_2 * f_2) * (sway + (f_2 * flutter)); } metal::float4 windBend( metal::float3 P0_1, metal::float3 N_1, metal::float3 T, metal::float3 B, metal::float2 sheet_2, metal::float2 size_2, float mask_2, metal::float4 pin_2, float seed_1, float weight, metal::float4 wa_1, metal::float4 wb_1 ) { float _e13 = windDisp(P0_1, N_1, sheet_2, size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float d0_ = _e13 * weight; float _e20 = windDisp(P0_1 + (T * 0.006), N_1, sheet_2 + metal::float2(0.006, 0.0), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dx = _e20 * weight; float _e27 = windDisp(P0_1 + (B * 0.006), N_1, sheet_2 + metal::float2(0.0, 0.006), size_2, mask_2, pin_2, seed_1, wa_1, wb_1); float dy = _e27 * weight; metal::float3 n_1 = metal::normalize((N_1 - (T * ((dx - d0_) / 0.006))) - (B * ((dy - d0_) / 0.006))); return metal::float4(n_1, d0_); } metal::float3 evilPage( metal::float3 world, constant LightFrame& light ) { bool local_4 = {}; metal::float4 _e3 = light.evilLight; metal::float3 L = _e3.xyz; float dy_1 = L.y - world.y; float k = L.y / metal::max(dy_1, 0.0001); metal::float2 Q_1 = L.xz + ((world.xz - L.xz) * k); if (dy_1 > 0.0001) { float _e25 = light.evilLight.w; local_4 = _e25 > 0.5; } else { local_4 = false; } bool ok = local_4; return metal::float3(Q_1, ok ? 1.0 : 0.0); } metal::float2 evilCoord( metal::float2 Q, constant LightFrame& light ) { metal::float3 h = metal::float3(Q, 1.0); metal::float4 _e5 = light.frameS; metal::float4 _e10 = light.frameT; return metal::float2(metal::dot(_e5.xyz, h), metal::dot(_e10.xyz, h)); } float boilNoise( metal::float2 g, float t, constant LightFrame& light ) { float f_3 = light.morph.x; metal::float2 p_4 = g * f_3; float sp = light.morph.y; float _e19 = fbm3_((p_4 * 0.62) + metal::float2((t * 0.23) * sp, 3.1)); float _e29 = fbm3_((p_4 * 0.62) + metal::float2(7.7, (-(t) * 0.19) * sp)); metal::float2 w_1 = metal::float2(_e19, _e29); float _e34 = light.morph.z; float _e46 = fbm3_((p_4 + (w_1 * _e34)) + metal::float2((t * 0.11) * sp, (-(t) * 0.31) * sp)); return _e46; } float exactField( float dSdf, float alpha, float texelPx ) { float dA = (0.5 - alpha) / metal::max(texelPx, 0.001); return (alpha >= 0.5) ? metal::min(dSdf, dA) : metal::max(dSdf, dA); } CasterOut casterEval( CasterIn c_5, constant LightFrame& light, metal::texture2d twinTex, metal::sampler twinSamp, metal::texture2d pieceTex, metal::texture2d sdfTex ) { bool local_5 = {}; float dE = {}; bool local_6 = {}; bool local_7 = {}; float d_1 = {}; bool local_8 = {}; bool local_9 = {}; float aMorph = {}; CasterOut out_1 = {}; bool local_10 = {}; float truth = metal::clamp(c_5.look.x, 0.0, 1.0); float tremble = metal::clamp(c_5.look.y, 0.0, 1.0); float seed_2 = c_5.look.z * 37.0; float mode_2 = c_5.look.w; float t_3 = c_5.time; metal::float2 sheet_3 = c_5.q * c_5.size; metal::float2 wp = sheet_3 * TREMBLE_FREQ; float _e27 = vnoise(wp + metal::float2(t_3 * 13.0, seed_2)); float _e34 = vnoise(wp + metal::float2(seed_2 + 31.0, t_3 * 11.3)); metal::float2 wob = metal::float2(_e27, _e34); metal::float2 travel = wob * (TREMBLE_TRAVEL * tremble); metal::float2 duv = (travel / metal::max(c_5.size, metal::float2(0.0001))) * c_5.uvRect.zw; metal::float4 _e51 = twinTex.sample(twinSamp, c_5.uv + duv); float aTwin = _e51.w; metal::float4 _e59 = pieceTex.sample(twinSamp, c_5.uv + (duv * 0.4)); float aPiece = _e59.w; metal::float3 _e62 = metal::dfdx(c_5.rest); metal::float3 _e64 = metal::dfdy(c_5.rest); metal::float3 nW = metal::cross(_e62, _e64); if (mode_2 > 0.5) { float _e73 = light.evilLight.w; local_5 = _e73 > 0.5; } else { local_5 = false; } bool morphing = local_5; bool isFin = mode_2 > 1.5; metal::float3 _e81 = evilPage(c_5.rest, light); float n_2 = light.sdfInfo.x; float texelPx_1 = light.sdfInfo.y; metal::float4 _e92 = light.sdfRect; metal::float2 gridOf = metal::float2(n_2) / metal::max(_e92.zw, metal::float2(0.000001)); metal::float2 _e100 = evilCoord(_e81.xy, light); float _e108 = vnoise((_e100 * 46.0) + metal::float2(t_3 * 13.0, 7.0)); float _e116 = vnoise((_e100 * 46.0) + metal::float2(19.0, t_3 * 11.3)); metal::float2 ew = metal::float2(_e108, _e116); metal::float4 _e120 = light.evilLook; metal::float2 st = _e100 + ((ew * _e120.yz) * tremble); float inFrame = (((metal::step(0.0, st.x) * metal::step(st.x, 1.0)) * metal::step(0.0, st.y)) * metal::step(st.y, 1.0)) * _e81.z; metal::float4 _e144 = light.evilRect; metal::float4 _e153 = light.evilRect; metal::float2 uvT = _e144.xy + (metal::clamp(st, metal::float2(0.0), metal::float2(1.0)) * _e153.zw); metal::float4 _e159 = light.sdfRect; metal::float2 gT = (uvT - _e159.xy) * gridOf; metal::float4 _e168 = sdfTex.sample(twinSamp, gT / metal::float2(n_2), metal::level(0.0)); float sdfT = _e168.y; metal::float4 _e173 = twinTex.sample(twinSamp, uvT, metal::level(0.0)); float aTwinFrame = _e173.w; metal::float4 _e177 = light.evilRect; metal::float2 tilePx = metal::abs(_e177.zw) * gridOf; float outsideT = metal::length((metal::max(-(st), metal::float2(0.0)) * tilePx) + (metal::max(st - metal::float2(1.0), metal::float2(0.0)) * tilePx)); float _e198 = light.evilLook.w; float aEvil = ((_e198 > 0.5) ? 1.0 : aTwinFrame) * inFrame; float _e204 = exactField(sdfT, aEvil, texelPx_1); dE = (inFrame < 0.5) ? (metal::max(sdfT, 0.0) + outsideT) : _e204; float _e212 = dE; float _e216 = light.evilLook.w; if (_e216 > 0.5) { local_6 = inFrame > 0.5; } else { local_6 = false; } bool _e224 = local_6; dE = _e224 ? -4.0 : _e212; float _e227 = dE; float _e231 = light.units.x; dE = (_e81.z < 0.5) ? FAR_WORLD : (_e227 * _e231); metal::float2 span = metal::max(c_5.fin.zw - c_5.fin.xy, metal::float2(0.0001)); metal::float2 qP = isFin ? ((c_5.q - c_5.fin.xy) / span) : c_5.q; metal::float2 qC = metal::clamp(qP, metal::float2(0.0), metal::float2(1.0)); float outP = metal::length((qP - qC) * (isFin ? (c_5.size * span) : c_5.size)); metal::float2 uvP = (c_5.uvRect.xy + (qC * c_5.uvRect.zw)) + (duv * 0.4); metal::float4 _e276 = light.sdfRect; metal::float2 gP = (uvP - _e276.xy) * gridOf; metal::float4 _e285 = sdfTex.sample(twinSamp, gP / metal::float2(n_2), metal::level(0.0)); float sdfP = _e285.x; float own = ((c_5.plain > 0.5) ? 1.0 : aPiece) * c_5.paper; float wpt = light.units.y; float _e298 = exactField(sdfP, own, texelPx_1); float dSheet = isFin ? ((metal::max(sdfP, 0.0) * wpt) + metal::max(outP, 0.5 * wpt)) : (_e298 * wpt); if (isFin) { local_7 = outP <= 0.0; } else { local_7 = false; } bool finInside = local_7; metal::float4 _e316 = light.evilLight; metal::float3 Ls = _e316.xyz; float dyL = metal::max(Ls.y - c_5.rest[1], 0.0001); metal::float3 nn = nW / metal::float3(metal::max(metal::length(nW), 0.000000000000000000000001)); float toPage = (Ls.y / dyL) * metal::sqrt(metal::clamp(metal::abs(metal::dot(nn, c_5.rest - Ls)) / dyL, 0.1, 10.0)); float _e344 = light.sdfInfo.w; bool sdfOk = _e344 > 0.5; float dN = sdfOk ? (dSheet * toPage) : ((0.5 - (isFin ? 0.0 : own)) * 2.0); float _e359 = dE; float dEf = sdfOk ? _e359 : ((0.5 - aEvil) * 2.0); metal::float3 toLs = c_5.rest - Ls; float graze = metal::abs(metal::dot(nn, toLs)) / metal::max(metal::length(toLs), 0.0001); float m_1 = (1.0 - truth) * metal::smoothstep(GRAZE_LO, GRAZE_HI, graze); d_1 = metal::mix(dN, dEf, m_1); float bump = metal::sin(PI * metal::clamp(m_1, 0.0, 1.0)); if (bump > 0.002) { local_8 = morphing; } else { local_8 = false; } bool _e388 = local_8; if (_e388) { local_9 = sdfOk; } else { local_9 = false; } bool _e392 = local_9; if (_e392) { float _e394 = boilNoise(_e81.xy, t_3, light); float _e395 = d_1; float _e399 = light.evilLook.x; float _e404 = light.morph.w; d_1 = _e395 + ((_e399 * bump) * (_e394 + (_e404 * bump))); } float _e409 = d_1; float _e410 = metal::fwidth(_e409); float fw = metal::max(_e410, 0.000001); float _e413 = d_1; aMorph = metal::clamp(0.5 - (_e413 / fw), 0.0, 1.0); float _e421 = aMorph; aMorph = finInside ? 0.0 : _e421; metal::float2 dp = sheet_3 * DISSOLVE_FREQ; float _e432 = vnoise(dp + metal::float2(seed_2 * 1.7, t_3 * 0.55)); float _e441 = vnoise((dp * 2.3) + metal::float2(t_3 * 0.9, seed_2)); float nn2_ = 0.5 + (0.5 * ((0.62 * _e432) + (0.38 * _e441))); float mm = metal::smoothstep(nn2_ - DISSOLVE_SOFT, nn2_ + DISSOLVE_SOFT, (truth * 1.08) - 0.04); float sameUv = ((c_5.plain > 0.5) ? 1.0 : metal::mix(aTwin, aPiece, mm)) * c_5.paper; float _e468 = aMorph; out_1.alpha = morphing ? _e468 : sameUv; out_1.morph = morphing ? 1.0 : 0.0; if (metal::abs(mode_2 - 0.5) < 0.25) { float _e485 = light.evilLight.w; local_10 = _e485 > 0.5; } else { local_10 = false; } bool _e489 = local_10; out_1.fade = _e489 ? truth : 1.0; CasterOut _e492 = out_1; return _e492; } bool casterKeep( CasterOut o, metal::float2 fragXY, float cutoff, constant LightFrame& light ) { bool local_11 = {}; float bayer = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(fragXY), metal::float2(0.06711056, 0.00583715)))); float _e19 = light.params.w; float thr = metal::mix(cutoff, 0.02 + (0.96 * bayer), _e19 * o.morph); float keep2_ = metal::fract(52.982918 * metal::fract(metal::dot(metal::floor(fragXY) + metal::float2(17.0, 3.0), metal::float2(0.00583715, 0.06711056)))); if (o.alpha >= thr) { local_11 = keep2_ < o.fade; } else { local_11 = false; } bool _e43 = local_11; return _e43; } metal::float3 bentCaster( VsIn in_2, metal::float3 rest, constant LightFrame& light ) { bool local_12 = {}; if (!((in_2.edges.z <= 0.0))) { float _e12 = light.windA.w; local_12 = _e12 <= 0.0; } else { local_12 = true; } bool _e16 = local_12; if (_e16) { return rest; } bool isFin_1 = in_2.look.w > 1.5; metal::float2 span_1 = isFin_1 ? metal::max(in_2.clip.zw - in_2.clip.xy, metal::float2(0.0001)) : metal::float2(1.0); metal::float2 qP_1 = isFin_1 ? ((in_2.q - in_2.clip.xy) / span_1) : in_2.q; metal::float2 size_3 = metal::float2(metal::length(in_2.m0_.xyz), metal::length(in_2.m1_.xyz)) * span_1; metal::float3 N_2 = metal::normalize(in_2.m2_.xyz); metal::float4 _e58 = light.windA; metal::float4 _e61 = light.windB; float _e62 = windDisp(rest, N_2, qP_1 * size_3, size_3, in_2.edges.x, in_2.pin, in_2.look.z, _e58, _e61); float d_2 = _e62 * in_2.edges.z; return rest + (N_2 * d_2); } struct vs_mainInput { metal::float2 q [[attribute(0)]]; metal::float4 m0_ [[attribute(1)]]; metal::float4 m1_ [[attribute(2)]]; metal::float4 m2_ [[attribute(3)]]; metal::float4 m3_ [[attribute(4)]]; metal::float4 uvRect [[attribute(5)]]; metal::float4 clip [[attribute(6)]]; metal::float4 params [[attribute(7)]]; metal::float4 look [[attribute(8)]]; metal::float4 edges [[attribute(9)]]; metal::float4 pin_3 [[attribute(10)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float2 uv [[user(loc0), center_perspective]]; metal::float2 q [[user(loc1), center_perspective]]; float depth [[user(loc2), center_perspective]]; metal::float4 clip [[user(loc3), flat]]; metal::float4 params [[user(loc4), flat]]; metal::float4 look [[user(loc5), flat]]; metal::float4 uvRect [[user(loc6), flat]]; metal::float4 size [[user(loc7), flat]]; metal::float3 world [[user(loc8), center_perspective]]; metal::float3 rest [[user(loc9), center_perspective]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant LightFrame& light [[buffer(0)]] ) { const VsIn in = { varyings.q, {}, varyings.m0_, varyings.m1_, varyings.m2_, varyings.m3_, varyings.uvRect, varyings.clip, varyings.params, varyings.look, varyings.edges, varyings.pin_3 }; VsOut out = {}; metal::float4x4 model = metal::float4x4(in.m0_, in.m1_, in.m2_, in.m3_); metal::float3 rest_1 = (model * metal::float4(in.q, 0.0, 1.0)).xyz; metal::float3 _e12 = bentCaster(in, rest_1, light); metal::float4 world_1 = metal::float4(_e12, 1.0); metal::float4x4 _e17 = light.lightViewProj; metal::float4 clipPos = _e17 * world_1; out.position = clipPos; out.uv = in.uvRect.xy + (in.q * in.uvRect.zw); out.q = in.q; float _e36 = light.params.x; out.depth = clipPos.w * _e36; out.clip = in.clip; out.params = in.params; out.look = in.look; out.uvRect = in.uvRect; out.size = metal::float4(metal::length(in.m0_.xyz), metal::length(in.m1_.xyz), 0.0, 0.0); out.world = world_1.xyz; out.rest = rest_1; VsOut _e59 = out; const auto _tmp = _e59; return vs_mainOutput { _tmp.position, _tmp.uv, _tmp.q, _tmp.depth, _tmp.clip, _tmp.params, _tmp.look, _tmp.uvRect, _tmp.size, _tmp.world, _tmp.rest }; } struct fs_mainInput { metal::float2 uv [[user(loc0), center_perspective]]; metal::float2 q [[user(loc1), center_perspective]]; float depth [[user(loc2), center_perspective]]; metal::float4 clip [[user(loc3), flat]]; metal::float4 params [[user(loc4), flat]]; metal::float4 look [[user(loc5), flat]]; metal::float4 uvRect [[user(loc6), flat]]; metal::float4 size_3 [[user(loc7), flat]]; metal::float3 world_1 [[user(loc8), center_perspective]]; metal::float3 rest_1 [[user(loc9), center_perspective]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant LightFrame& light [[buffer(0)]] , metal::texture2d twinTex [[texture(0)]] , metal::sampler twinSamp [[sampler(0)]] , metal::texture2d pieceTex [[texture(1)]] , metal::texture2d sdfTex [[texture(2)]] ) { const VsOut in_1 = { position, varyings_1.uv, varyings_1.q, varyings_1.depth, {}, varyings_1.clip, varyings_1.params, varyings_1.look, varyings_1.uvRect, varyings_1.size_3, varyings_1.world_1, varyings_1.rest_1 }; bool local = {}; bool local_1 = {}; bool local_2 = {}; CasterIn c = {}; bool local_3 = {}; float rd = 0.5 - metal::length(in_1.q - metal::float2(0.5, 0.5)); float cd = metal::dot(in_1.clip.xy, in_1.q) + in_1.clip.z; if (in_1.params.z > 0.5) { local = rd < 0.0; } else { local = false; } bool discOut = local; if (in_1.clip.w > 0.5) { local_1 = cd < 0.0; } else { local_1 = false; } bool _e35 = local_1; if (_e35) { local_2 = in_1.look.w < 1.5; } else { local_2 = false; } bool clipOut = local_2; c.uv = in_1.uv; c.q = in_1.q; c.uvRect = in_1.uvRect; c.size = in_1.size.xy; c.look = in_1.look; float _e60 = light.params.z; c.time = _e60; c.world = in_1.world; c.rest = in_1.rest; c.plain = (in_1.params.w >= 0.0) ? 1.0 : 0.0; if (!(discOut)) { local_3 = clipOut; } else { local_3 = true; } bool _e78 = local_3; c.paper = _e78 ? 0.0 : 1.0; c.fin = in_1.clip; CasterIn _e84 = c; CasterOut _e85 = casterEval(_e84, light, twinTex, twinSamp, pieceTex, sdfTex); float d_3 = in_1.depth; float dx_1 = metal::dfdx(d_3); float dy_2 = metal::dfdy(d_3); float _e94 = light.params.y; bool _e95 = casterKeep(_e85, in_1.position.xy, _e94, light); if (!(_e95)) { metal::discard_fragment(); } return fs_mainOutput { metal::float4(d_3, (d_3 * d_3) + (0.25 * ((dx_1 * dx_1) + (dy_2 * dy_2))), 0.0, 1.0) }; }  ÛbêPB‰LÔlM!à&ß0vs_mainmain< struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct LightFrame { row_major float4x4 lightViewProj; float4 params; float4 evilLight; float4 frameS; float4 frameT; float4 evilRect; float4 evilLook; float4 sdfRect; float4 sdfInfo; float4 morph; float4 units; float4 windA; float4 windB; }; struct CasterIn { float2 uv; float2 q; float4 uvRect; float2 size; float4 look; float time; float3 world; float3 rest; float plain; float paper; float4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { float4 position; float2 uv; float2 q; float depth; float4 clip; float4 params; float4 look; float4 uvRect; float4 size; float3 world; float3 rest; }; static const VsOut _832 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f) }; cbuffer light : register(b0) { LightFrame light_1_m0 : packoffset(c0); }; static float4 gl_Position; static float2 q; static float4 m0; static float4 m1; static float4 m2; static float4 m3; static float4 uvRect; static float4 clip; static float4 params; static float4 look; static float4 edges; static float4 pin; static float2 uv; static float2 q_1; static float depth; static float4 clip_1; static float4 params_1; static float4 look_1; static float4 uvRect_1; static float4 size; static float3 world; static float3 rest; struct SPIRV_Cross_Input { float2 q : TEXCOORD0; float4 m0 : TEXCOORD1; float4 m1 : TEXCOORD2; float4 m2 : TEXCOORD3; float4 m3 : TEXCOORD4; float4 uvRect : TEXCOORD5; float4 clip : TEXCOORD6; float4 params : TEXCOORD7; float4 look : TEXCOORD8; float4 edges : TEXCOORD9; float4 pin : TEXCOORD10; }; struct SPIRV_Cross_Output { float2 uv : TEXCOORD0; float2 q_1 : TEXCOORD1; float depth : TEXCOORD2; nointerpolation float4 clip_1 : TEXCOORD3; nointerpolation float4 params_1 : TEXCOORD4; nointerpolation float4 look_1 : TEXCOORD5; nointerpolation float4 uvRect_1 : TEXCOORD6; nointerpolation float4 size : TEXCOORD7; float3 world : TEXCOORD8; float3 rest : TEXCOORD9; float4 gl_Position : SV_Position; }; float windAnchor(float2 sheet, float2 size_1, float mask, float4 pin_1) { float d = 1000.0f; uint _356 = uint(clamp(clamp(mask, 0.0f, 15.0f) + 0.5f, 0.0f, 4294967040.0f)); if ((_356 & 1u) != 0u) { d = min(d, abs(sheet.x)); } if ((_356 & 2u) != 0u) { d = min(d, abs(size_1.x - sheet.x)); } if ((_356 & 4u) != 0u) { d = min(d, abs(sheet.y)); } if ((_356 & 8u) != 0u) { d = min(d, abs(size_1.y - sheet.y)); } if (pin_1.x > (-0.5f)) { float2 _398 = pin_1.xy * size_1; float2 _401 = (pin_1.zw * size_1) - _398; d = min(d, length(sheet - (_398 + (_401 * clamp(dot(sheet - _398, _401) / max(dot(_401, _401), 1.0000000133514319600180897396058e-10f), 0.0f, 1.0f))))); } return d; } uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _224 = floor(p); float2 _225 = p - _224; float2 _229 = (_225 * _225) * (float2(3.0f, 3.0f) - (_225 * 2.0f)); int2 _235 = int2(clamp(_224, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_235), hashCell(_235 + int2(1, 0)), _229.x), lerp(hashCell(_235 + int2(0, 1)), hashCell(_235 + int2(1, 1)), _229.x), _229.y) * 2.0f) - 1.0f; } float windDisp(float3 P0, float3 N, float2 sheet, float2 size_1, float mask, float4 pin_1, float seed, float4 wa, float4 wb) { float _451 = min(windAnchor(sheet, size_1, mask, pin_1) * wb.z, 1.39999997615814208984375f); float _455 = dot(P0.xz, wb.xy); float _465 = wa.w * (0.699999988079071044921875f + (0.300000011920928955078125f * vnoise(float2((_455 * 6.0f) - (wa.z * 2.2000000476837158203125f), seed * 7.30000019073486328125f)))); return (_451 * _451) * (((wa.x * _465) * ((0.550000011920928955078125f * dot(N.xz, wb.xy)) + (0.449999988079071044921875f * ((0.64999997615814208984375f * sin(((wa.z * 7.5f) + (seed * 6.283185482025146484375f)) + (_455 * 2.5f))) + (0.3499999940395355224609375f * vnoise(float2((wa.z * 1.89999997615814208984375f) + (seed * 13.0f), _455 * 3.0f))))))) + (_451 * (((wa.y * _465) * sin(((dot(sheet, float2(0.60000002384185791015625f, 0.800000011920928955078125f)) * 41.88790130615234375f) - ((wa.z * 6.283185482025146484375f) * wb.w)) + (seed * 11.0f))) * (0.550000011920928955078125f + (0.449999988079071044921875f * vnoise(float2((wa.z * 3.2999999523162841796875f) + (seed * 5.0f), _455 * 5.0f))))))); } float3 bentCaster(VsIn _in, float3 rest_1) { bool _721 = false; if (!(_in.edges.z <= 0.0f)) { _721 = light_1_m0.windA.w <= 0.0f; } else { _721 = true; } if (_721) { return rest_1; } bool _740 = _in.look.w > 1.5f; float2 _746 = max(_in.clip.zw - _in.clip.xy, float2(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f)); bool2 _749 = bool2(_740, _740); float2 _747 = float2(_749.x ? _746.x : float2(1.0f, 1.0f).x, _749.y ? _746.y : float2(1.0f, 1.0f).y); float2 _755 = (_in.q - _in.clip.xy) / _747; bool2 _757 = bool2(_740, _740); float2 _765 = float2(length(_in.m0.xyz), length(_in.m1.xyz)) * _747; float3 _768 = normalize(_in.m2.xyz); return rest_1 + (_768 * (windDisp(rest_1, _768, float2(_757.x ? _755.x : _in.q.x, _757.y ? _755.y : _in.q.y) * _765, _765, _in.edges.x, _in.pin, _in.look.z, light_1_m0.windA, light_1_m0.windB) * _in.edges.z)); } void vert_main() { VsOut _out = _832; VsIn _787 = { q, m0, m1, m2, m3, uvRect, clip, params, look, edges, pin }; float3 _842 = mul(float4(_787.q, 0.0f, 1.0f), float4x4(_787.m0, _787.m1, _787.m2, _787.m3)).xyz; float4 _844 = float4(bentCaster(_787, _842), 1.0f); float4 _848 = mul(_844, light_1_m0.lightViewProj); _out.position = _848; _out.uv = _787.uvRect.xy + (_787.q * _787.uvRect.zw); _out.q = _787.q; _out.depth = _848.w * light_1_m0.params.x; _out.clip = _787.clip; _out.params = _787.params; _out.look = _787.look; _out.uvRect = _787.uvRect; _out.size = float4(length(_787.m0.xyz), length(_787.m1.xyz), 0.0f, 0.0f); _out.world = _844.xyz; _out.rest = _842; gl_Position = _out.position; uv = _out.uv; q_1 = _out.q; depth = _out.depth; clip_1 = _out.clip; params_1 = _out.params; look_1 = _out.look; uvRect_1 = _out.uvRect; size = _out.size; world = _out.world; rest = _out.rest; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { q = stage_input.q; m0 = stage_input.m0; m1 = stage_input.m1; m2 = stage_input.m2; m3 = stage_input.m3; uvRect = stage_input.uvRect; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; edges = stage_input.edges; pin = stage_input.pin; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.uv = uv; stage_output.q_1 = q_1; stage_output.depth = depth; stage_output.clip_1 = clip_1; stage_output.params_1 = params_1; stage_output.look_1 = look_1; stage_output.uvRect_1 = uvRect_1; stage_output.size = size; stage_output.world = world; stage_output.rest = rest; return stage_output; } fs_mainmain4struct VsIn { float2 q; float4 m0; float4 m1; float4 m2; float4 m3; float4 uvRect; float4 clip; float4 params; float4 look; float4 edges; float4 pin; }; struct LightFrame { row_major float4x4 lightViewProj; float4 params; float4 evilLight; float4 frameS; float4 frameT; float4 evilRect; float4 evilLook; float4 sdfRect; float4 sdfInfo; float4 morph; float4 units; float4 windA; float4 windB; }; struct CasterIn { float2 uv; float2 q; float4 uvRect; float2 size; float4 look; float time; float3 world; float3 rest; float plain; float paper; float4 fin; }; struct CasterOut { float alpha; float morph; float fade; }; struct VsOut { float4 position; float2 uv; float2 q; float depth; float4 clip; float4 params; float4 look; float4 uvRect; float4 size; float3 world; float3 rest; }; static const CasterOut _727 = { 0.0f, 0.0f, 0.0f }; static const CasterIn _1246 = { float2(0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), 0.0f, 0.0f, float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer light : register(b0) { LightFrame light_1_m0 : packoffset(c0); }; Texture2D twinTex : register(t0); SamplerState twinSamp : register(s0); Texture2D pieceTex : register(t1); Texture2D sdfTex : register(t2); static float4 gl_FragCoord; static float2 uv; static float2 q; static float depth; static float4 clip; static float4 params; static float4 look; static float4 uvRect; static float4 size; static float3 world; static float3 rest; static float4 _1228; struct SPIRV_Cross_Input { float2 uv : TEXCOORD0; float2 q : TEXCOORD1; float depth : TEXCOORD2; nointerpolation float4 clip : TEXCOORD3; nointerpolation float4 params : TEXCOORD4; nointerpolation float4 look : TEXCOORD5; nointerpolation float4 uvRect : TEXCOORD6; nointerpolation float4 size : TEXCOORD7; float3 world : TEXCOORD8; float3 rest : TEXCOORD9; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _1228 : SV_Target0; }; uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _230 = floor(p); float2 _231 = p - _230; float2 _235 = (_231 * _231) * (float2(3.0f, 3.0f) - (_231 * 2.0f)); int2 _241 = int2(clamp(_230, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_241), hashCell(_241 + int2(1, 0)), _235.x), lerp(hashCell(_241 + int2(0, 1)), hashCell(_241 + int2(1, 1)), _235.x), _235.y) * 2.0f) - 1.0f; } float3 evilPage(float3 world_1) { bool _568 = false; float _578 = light_1_m0.evilLight.xyz.y - world_1.y; if (_578 > 9.9999997473787516355514526367188e-05f) { _568 = light_1_m0.evilLight.w > 0.5f; } else { _568 = false; } return float3(light_1_m0.evilLight.xyz.xz + ((world_1.xz - light_1_m0.evilLight.xyz.xz) * (light_1_m0.evilLight.xyz.y / max(_578, 9.9999997473787516355514526367188e-05f))), float(_568)); } float2 evilCoord(float2 Q) { float3 _606 = float3(Q, 1.0f); return float2(dot(light_1_m0.frameS.xyz, _606), dot(light_1_m0.frameT.xyz, _606)); } float exactField(float dSdf, float alpha, float texelPx) { float _672 = (0.5f - alpha) / max(texelPx, 0.001000000047497451305389404296875f); return (alpha >= 0.5f) ? min(dSdf, _672) : max(dSdf, _672); } float fbm3(float2 p) { float s = 0.0f; s = vnoise(p) * 0.569999992847442626953125f; s += (vnoise((p * 2.0299999713897705078125f) + float2(17.1000003814697265625f, 3.7000000476837158203125f)) * 0.2899999916553497314453125f); s += (vnoise((p * 4.070000171661376953125f) + float2(5.30000019073486328125f, 29.8999996185302734375f)) * 0.14000000059604644775390625f); return s; } float boilNoise(float2 g, float t) { float2 _633 = g * light_1_m0.morph.x; return fbm3((_633 + (float2(fbm3((_633 * 0.62000000476837158203125f) + float2((t * 0.23000000417232513427734375f) * light_1_m0.morph.y, 3.099999904632568359375f)), fbm3((_633 * 0.62000000476837158203125f) + float2(7.69999980926513671875f, ((-t) * 0.189999997615814208984375f) * light_1_m0.morph.y))) * light_1_m0.morph.z)) + float2((t * 0.10999999940395355224609375f) * light_1_m0.morph.y, ((-t) * 0.310000002384185791015625f) * light_1_m0.morph.y)); } CasterOut casterEval(CasterIn c) { bool _728 = false; bool _721 = false; bool _715 = false; bool _709 = false; float aMorph = 0.0f; float d = 0.0f; float dE = 0.0f; CasterOut _out = _727; bool _719 = false; bool _713 = false; float _733 = clamp(c.look.x, 0.0f, 1.0f); float _736 = clamp(c.look.y, 0.0f, 1.0f); float _739 = c.look.z * 37.0f; float2 _745 = c.q * c.size; float2 _746 = _745 * 34.0f; float2 _764 = ((float2(vnoise(_746 + float2(c.time * 13.0f, _739)), vnoise(_746 + float2(_739 + 31.0f, c.time * 11.30000019073486328125f))) * (0.00449999980628490447998046875f * _736)) / max(c.size, float2(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f))) * c.uvRect.zw; float4 _769 = twinTex.Sample(twinSamp, c.uv + _764); float4 _775 = pieceTex.Sample(twinSamp, c.uv + (_764 * 0.4000000059604644775390625f)); float _776 = _775.w; float3 _778 = ddx(c.rest); float3 _780 = ddy(c.rest); float3 _781 = cross(_778, _780); if (c.look.w > 0.5f) { _709 = light_1_m0.evilLight.w > 0.5f; } else { _709 = false; } bool _790 = c.look.w > 1.5f; float3 _792 = evilPage(c.rest); float2 _803 = float2(light_1_m0.sdfInfo.x, light_1_m0.sdfInfo.x) / max(light_1_m0.sdfRect.zw, float2(9.9999999747524270787835121154785e-07f, 9.9999999747524270787835121154785e-07f)); float2 _805 = evilCoord(_792.xy); float2 _823 = _805 + ((float2(vnoise((_805 * 46.0f) + float2(c.time * 13.0f, 7.0f)), vnoise((_805 * 46.0f) + float2(19.0f, c.time * 11.30000019073486328125f))) * light_1_m0.evilLook.yz) * _736); float _836 = (((step(0.0f, _823.x) * step(_823.x, 1.0f)) * step(0.0f, _823.y)) * step(_823.y, 1.0f)) * _792.z; float2 _846 = light_1_m0.evilRect.xy + (clamp(_823, float2(0.0f, 0.0f), float2(1.0f, 1.0f)) * light_1_m0.evilRect.zw); float4 _855 = sdfTex.SampleLevel(twinSamp, ((_846 - light_1_m0.sdfRect.xy) * _803) / float2(light_1_m0.sdfInfo.x, light_1_m0.sdfInfo.x), 0.0f); float _856 = _855.y; float2 _864 = abs(light_1_m0.evilRect.zw) * _803; float _877 = ((light_1_m0.evilLook.w > 0.5f) ? 1.0f : twinTex.SampleLevel(twinSamp, _846, 0.0f).w) * _836; dE = (_836 < 0.5f) ? (max(_856, 0.0f) + length((max(-_823, float2(0.0f, 0.0f)) * _864) + (max(_823 - float2(1.0f, 1.0f), float2(0.0f, 0.0f)) * _864))) : exactField(_856, _877, light_1_m0.sdfInfo.y); if (light_1_m0.evilLook.w > 0.5f) { _713 = _836 > 0.5f; } else { _713 = false; } dE = _713 ? (-4.0f) : dE; dE = (_792.z < 0.5f) ? 1.0f : (dE * light_1_m0.units.x); float2 _906 = max(c.fin.zw - c.fin.xy, float2(9.9999997473787516355514526367188e-05f, 9.9999997473787516355514526367188e-05f)); float2 _912 = (c.q - c.fin.xy) / _906; bool2 _915 = bool2(_790, _790); float2 _913 = float2(_915.x ? _912.x : c.q.x, _915.y ? _912.y : c.q.y); float2 _916 = clamp(_913, float2(0.0f, 0.0f), float2(1.0f, 1.0f)); float2 _920 = c.size * _906; bool2 _922 = bool2(_790, _790); float _924 = length((_913 - _916) * float2(_922.x ? _920.x : c.size.x, _922.y ? _920.y : c.size.y)); float4 _941 = sdfTex.SampleLevel(twinSamp, ((((c.uvRect.xy + (_916 * c.uvRect.zw)) + (_764 * 0.4000000059604644775390625f)) - light_1_m0.sdfRect.xy) * _803) / float2(light_1_m0.sdfInfo.x, light_1_m0.sdfInfo.x), 0.0f); float _942 = _941.x; float _947 = ((c.plain > 0.5f) ? 1.0f : _776) * c.paper; if (_790) { _715 = _924 <= 0.0f; } else { _715 = false; } float _970 = max(light_1_m0.evilLight.xyz.y - c.rest.y, 9.9999997473787516355514526367188e-05f); float _972 = max(length(_781), 1.0000000195414813782625560981111e-24f); float3 _974 = _781 / float3(_972, _972, _972); bool _987 = light_1_m0.sdfInfo.w > 0.5f; float3 _998 = c.rest - light_1_m0.evilLight.xyz; float _1006 = (1.0f - _733) * smoothstep(0.070000000298023223876953125f, 0.1599999964237213134765625f, abs(dot(_974, _998)) / max(length(_998), 9.9999997473787516355514526367188e-05f)); d = lerp(_987 ? ((_790 ? ((max(_942, 0.0f) * light_1_m0.units.y) + max(_924, 0.5f * light_1_m0.units.y)) : (exactField(_942, _947, light_1_m0.sdfInfo.y) * light_1_m0.units.y)) * ((light_1_m0.evilLight.xyz.y / _970) * sqrt(clamp(abs(dot(_974, c.rest - light_1_m0.evilLight.xyz)) / _970, 0.100000001490116119384765625f, 10.0f)))) : ((0.5f - (_790 ? 0.0f : _947)) * 2.0f), _987 ? dE : ((0.5f - _877) * 2.0f), _1006); float _1010 = sin(3.1415927410125732421875f * clamp(_1006, 0.0f, 1.0f)); if (_1010 > 0.00200000009499490261077880859375f) { _719 = _709; } else { _719 = false; } if (_719) { _721 = _987; } else { _721 = false; } if (_721) { d += ((light_1_m0.evilLook.x * _1010) * (boilNoise(_792.xy, c.time) + (light_1_m0.morph.w * _1010))); } aMorph = clamp(0.5f - (d / max(fwidth(d), 9.9999999747524270787835121154785e-07f)), 0.0f, 1.0f); aMorph = _715 ? 0.0f : aMorph; float2 _1043 = _745 * 24.0f; float _1058 = 0.5f + (0.5f * ((0.62000000476837158203125f * vnoise(_1043 + float2(_739 * 1.7000000476837158203125f, c.time * 0.550000011920928955078125f))) + (0.37999999523162841796875f * vnoise((_1043 * 2.2999999523162841796875f) + float2(c.time * 0.89999997615814208984375f, _739))))); _out.alpha = _709 ? aMorph : (((c.plain > 0.5f) ? 1.0f : lerp(_769.w, _776, smoothstep(_1058 - 0.04500000178813934326171875f, _1058 + 0.04500000178813934326171875f, (_733 * 1.08000004291534423828125f) - 0.039999999105930328369140625f))) * c.paper); _out.morph = float(_709); if (abs(c.look.w - 0.5f) < 0.25f) { _728 = light_1_m0.evilLight.w > 0.5f; } else { _728 = false; } _out.fade = _728 ? _733 : 1.0f; return _out; } bool casterKeep(CasterOut o, float2 fragXY, float cutoff) { bool _1100 = false; if (o.alpha >= lerp(cutoff, 0.0199999995529651641845703125f + (0.959999978542327880859375f * frac(52.98291778564453125f * frac(dot(floor(fragXY), float2(0.067110560834407806396484375f, 0.005837149918079376220703125f))))), light_1_m0.params.w * o.morph)) { _1100 = frac(52.98291778564453125f * frac(dot(floor(fragXY) + float2(17.0f, 3.0f), float2(0.005837149918079376220703125f, 0.067110560834407806396484375f)))) < o.fade; } else { _1100 = false; } return _1100; } void frag_main() { bool _1247 = false; bool _1240 = false; CasterIn c = _1246; bool _1238 = false; bool _1242 = false; VsOut _1201 = { gl_FragCoord, uv, q, depth, clip, params, look, uvRect, size, world, rest }; if (_1201.params.z > 0.5f) { _1238 = (0.5f - length(_1201.q - float2(0.5f, 0.5f))) < 0.0f; } else { _1238 = false; } if (_1201.clip.w > 0.5f) { _1240 = (dot(_1201.clip.xy, _1201.q) + _1201.clip.z) < 0.0f; } else { _1240 = false; } if (_1240) { _1242 = _1201.look.w < 1.5f; } else { _1242 = false; } c.uv = _1201.uv; c.q = _1201.q; c.uvRect = _1201.uvRect; c.size = _1201.size.xy; c.look = _1201.look; c.time = light_1_m0.params.z; c.world = _1201.world; c.rest = _1201.rest; c.plain = float(_1201.params.w >= 0.0f); if (!_1238) { _1247 = _1242; } else { _1247 = true; } c.paper = _1247 ? 0.0f : 1.0f; c.fin = _1201.clip; float _1322 = ddx(_1201.depth); float _1323 = ddy(_1201.depth); if (!casterKeep(casterEval(c), _1201.position.xy, light_1_m0.params.y)) { discard; } _1228 = float4(_1201.depth, (_1201.depth * _1201.depth) + (0.25f * ((_1322 * _1322) + (_1323 * _1323))), 0.0f, 1.0f); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; uv = stage_input.uv; q = stage_input.q; depth = stage_input.depth; clip = stage_input.clip; params = stage_input.params; look = stage_input.look; uvRect = stage_input.uvRect; size = stage_input.size; world = stage_input.world; rest = stage_input.rest; frag_main(); SPIRV_Cross_Output stage_output; stage_output._1228 = _1228; return stage_output; }  ÛbêPB‰LÔlM!à&ß0HSLT LightFrame lightViewProjÿÿÿÿparams@ÿÿÿÿ evilLightPÿÿÿÿframeS`ÿÿÿÿframeTpÿÿÿÿevilRect€ÿÿÿÿevilLook�ÿÿÿÿsdfRect ÿÿÿÿsdfInfo°ÿÿÿÿmorphÀÿÿÿÿunitsÐÿÿÿÿwindAàÿÿÿÿwindBðÿÿÿÿ light_blocklighttwinTexÿÿÿÿpieceTexÿÿÿÿsdfTexÿÿÿÿtwinSampÿÿÿÿvs_mainvs_mainfs_mainfs_mainè|#¨ GLSL.std.450Ùvs_main²µ¸º¼¾ÀÂÄÆÈÊÌÎÏÑÒÓÔÕÖØ?fs_main&(*,/13579<>?H #H #H # H #0H #@H #PH #`H #pH #€H #�H # H #H H H #@H #PH #`H #pH #€H #�H # H #°H #ÀH #ÐH #àH #ðH#H#H#H# H#0H#@H#PH#`H#lH #pH #€H#H#H#H#H#H#H# H#0H#@H#PH#`H#pH #€H #�G"G!GH#G!"G!!G#"G#!G%"G%!G&"G&!G²GµG¸GºG¼G¾GÀGÂGÄGÆ GÈ GÊ GÌGÎGÏGÑGÑGÒGÒGÓGÓGÔGÔGÕGÕGÖGØ G& G(G*G,G/G/G1G1G3G3G5G5G7G7G9G< G>               +€@+ÛÉ@+¼t“;+B+ÀA+ìQ8=+€?+ÛI@+)\�=+ ×#>  ;  ";"! $;$#;"%;"&!*++,,++++-‘ƒž=+.®Ga=,/...+0n§r?+1š™@,2111+3æ®%=,4333;+AR¸NA+BUUÕ>,CBBB+D= ‡?+E.M;,FEEE!R+SгY>+TY7?+U˜Ý“=,VSTU!]+^?+_€>,`+a«ªª>,baaa!x+y f+z_ón<,{zz+|,}|| .€ …+†+‰!°+±€,²±±+³+´€3!À !Ð +ÑCq‰=+Ò�E¿;, ÓÑÒ+Ô‚îSB+Ý@@, ÞÝÝ+ß@+à+á,âàá,ãáà,äàà+ìÏ, íìì+îÿÿÿN, ïîî! +À@, +9…ë?+:…ë@+;Í̈A+<ÍÌl@, =;<+>áz”>+?q=‚@+@š™©@+A33ïA, B@A+C)\> E.F!]  +^pA+_zD+`+a+b¿+cÿæÛ.+hÿÿO! °   +±33³?+²ÍÌ @+³š™é@+´š™™>+µ333?+¶ð@+· @+¸ff&?+¹33ó?+ºPA+»33³>+¼ÍÌ ?+½ffæ>+¾š™?+¿ÍÌL?, À¾¿+Á6�'B+Â0A+Ã33S@+Ä @!    +¦›Ä;, +, + 4 +6·Ñ8*7 9.: < P+Q![ !l +nR¸?+o…k>+pffF@+q\�B>+rffö@+s®Gá=+tR¸ž>+v !›+œoƒ:!¨+®B+¯øA+°ÍÌ4A, ±66+²ÍÌÌ>+³À?+´½7†5, µ´´+¶8B+·à@+¸˜A, ¹+++º€À+»¾š+¼ÍÌÌ=+½ A+¾o;+¿š™Ù?+À33@+Áfff?+Â\�Â>+Ãq=Š?+Ä ×#=.Æ.È.Ê.Ì.Î.Ð.Ò.Ô Ö.×.Ùÿ++1+E+~ ’!E +G�Âu?+H ×£<+IˆA, JIÝ, KÒÑ.M!m )o.q+z +§ ³ ;³² ¶ ;¶µ;¶¸;¶º;¶¼;¶¾;¶À;¶Â;¶Ä;¶Æ;¶È Ë ;ËÊ Í ;ÍÌ;ÍÎ Ð;ÐÏ;ËÑ;ËÒ;ËÓ;ËÔ;ËÕ ×;×Ö;ר!Ú Ý.Þ ë ï ñ ;¶&;³(;³* -;-,;¶/;¶1;¶3;¶5;¶7 :;:9;:<;Ë>, E^^.G.I.K M.N.P6)*7(ø'ù5ø5 6((,Ž76-�86/Ž980 :92¼;<64©=<7:þ=86@*7?ø>ùGøG H(?,ŽIHA JHCŽKJDƒLK/¼;MHF©NMILþN86QR7PøOùWøW”XPVþX86\]7Z7[øYùcøcºd[^÷eúdfeøfŽgZ_ h+g,` ihbþiøeþZ86m]7k7løjùnønºol^÷púoqpøq…rkk…srkŽtsþtøpþk86wx7vøu;~€ù�ø�Pƒyy„‚vƒ€„‚{>~„A…‡~†=ˆ‡A…Š~‰=‹Š„Œ‹y€�ˆŒA…Ž~†>Ž�A…�~‰=��A…‘~†=’‘„“’y€”�“A…•~‰>•”=–~=—~˜—}Æ™–˜>~™A…š~†=›šA…œ~‰=�œ„ž�y€Ÿ›žA… ~†> ŸA…¡~‰=¢¡A…£~†=¤£„¥¤y€¦¢¥A…§~‰>§¦=¨~=©~ª©}Æ«¨ª>~«=¬~þ¬86¯°7®ø­ùµøµ€¶®²|·¶9¸w·Q¹¸Âº¹³p»º…¼»´þ¼86 ¿À7¾ø½ùÁøÁ€¾²|ÃÂ9ÄwÃQÅÄÂÆÅ³pÇÆQÈÄÂÉȳpÊÉP ËÇÊŽ ÌË´þÌ86ÏÐ7 ÎøÍùÕøÕ”ÖÎÓ × Ö…ØÔ× Ù ØþÙ86ÜÐ7 ÛøÚùåøå  æÛƒ çÛæ… èççŽ éç߃ êÞé… ëèê  ð+æíïnñð9ò¯ñ€óñâ9ô¯ó€õñã9ö¯õ€÷ñä9ø¯÷Qùë ú.òôùQûë ü.öøûQýë þ.úüý…ÿþ߃ÿþ867 øùø  ƒ …   Ž  ߃ Þ …   Ž  ƒ  …   +íïn9¯€â9¯€ã9¯€ä9¯ƒƒƒƒ�Q … �! Q" …#"�$!#Q% …&%Q' …(&'�)$(Q* …+*�,+Q- ….-�/.P 0,/… 10…2)߃32Ž 41ßP534þ5868Ð7 7ø6;EDFùGøG9HÜ7…IH9>DI=JDŽ K7:� LK=9MÜL…NM>�OJN>DO=PDŽ Q7?� RQB9SÜR…TSC�UPT>DU=VDþV86\]7 X7 Y7Z7 [øW;Ed_ùeøe f+Z+^�gf^ i+g+hmjiÇkj‰«lk†÷múlnmøn=odQpX qp r%oq>drùmømÇsj`«ts†÷uútvuøv=wdQxYQyXƒzxy {z |%w{>d|ùuøuÇ}ja«~}†÷ú~€ø€=�dQ‚X ƒ‚ „%�ƒ>d„ùøÇ…j³«†…†÷‡ú†ˆ‡øˆ=‰dQŠYQ‹XƒŒŠ‹ �Œ Ž%‰�>dŽù‡ø‡Q�[º��b÷‘ú�’‘ø’O “[[… ”“YO •[[… –•Yƒ —–”ƒ ˜X””™˜—”š—— ›(šcˆœ™› �+œ+=ždŽ Ÿ—��  ”Ÿƒ ¡X  ¢B¡ £%ž¢>d£ù‘ø‘=¤dþ¤86¯°7¦7§7 ¨7 ©7ª7 «7¬7 ­7 ®ø¥ùÅøÅ9Æ\¨©ª«QÇ®…ÈÆÇ É%ȱQÊ­O Ë®®O ̦¦”ÍÌË…ÎÍ…ÏʲƒÐÎυѬ³P ÒÐÑ9ÓÜÒ…Ô´Ó�ÕµÔQÖ­…×ÖÕO ا§”ÙØË…Úʶ…Û¬�ÜÚÛ…ÝÍ·�ÞÜÝ ß Þ…à¸ß…áʹ…⬺�ãáâ…äÍÝP åãä9æÜå…ç»æ�èàçQé­…êé×…ë¼Ù…ì½è�íëì…îêí”ï¨À…ðïÁ…ñÊQò®…óñòƒôðó…õ¬Â�öôõQ÷­…ø÷× ù ö…úøù…ûÊÃ…ü¬Ä�ýûü…þÍÄP ÿýþ9Üÿ…½�¼…ú…ÉÉ…É�î…þ86 7 7 7 7 7 7 77 777 7 øùø9 ¯   …Ž � �  9  ¯ …! Ž" �# "� $ 9 %¯# $…&%ƒ'!ˆ('Ž) (ƒ* )ƒ+&ˆ,+Ž- ,ƒ.*- /E.P 0/þ0863*72ø1;98:A45†ù;ø;A<=5`= >=O?>>Q@?QA2ƒB@AQC? D(B6ˆECDO F??O G22O H??ƒ IGHŽ JIE� KFJºLB6÷MúLNOøNAPR5`Q=SRºTS^>8TùMøO>87ùMøM=U8©VU+PWKVþW86 Z[7 YøXA4\†ù]ø]P^YA<_\Q= `_Oa``”ba^A<c\a= dcOedd”fe^P gbfþg86kl7 i7jøhA4m†ùuøuAPwmv†=xwŽ yixAPzmv‰={zŽ |yn…}jo…~}{P ~p� €|9�8€Ž ‚ynƒj…„ƒq……„{P †r…� ‡‚†9ˆ8‡P ‰�ˆAPŠmv`=‹ŠŽ Œ‰‹� �yŒ…Žjs…�Ž{�j…‘�t…’‘{P “�’� ”�“9•8”þ•86š›7—7˜7™ø–ù�ø�ƒž^˜ Ÿ(™œˆ žŸ ¡(—  ¢%— ¾£˜^©¤£¢¡þ¤86§¨7¦ø¥;9ØÙ;9ÑÒ;9ËÌ;9ÅÆ;EÓÔ;EÍÎ;EÇÈ;ÖÕ×;9ÏÐ;9ÉÊA4©†=ª!=«#=¬%=­&ùÚøÚQ Û¦QÜÛ Ý+Ü+Q Þ¦QßÞ à+ß+Q á¦Qâá…ãâ®Q ä¦QåäQæ¦Q ç¦Q 覅 éçèŽ êé…ëæºP ìëã� íêì9îÜí�ï㯅ðæ°P ñïð� òêñ9óÜòP ôîó…õàŽ öôõQ ÷¦  ø(÷±ˆ ùöøQ ú¦O ûúú… üùûQ ý¦� þýüVÿª«W þQQ ¦Ž ü²� Vÿ¬«W QQ ¦Ï  Q ¦Ð    D  ºå^÷úøAP©`Q=º^>Åùø>Å7ùø=źå³Q¦93AP©³†=AP©³‰=A<©= O   !( µP "ˆ #"!O $9 %Z$Ž &%¶…'æºP ('·� )&(9*Ü)Ž +%¶…,æ°P -¸,� .+-9/Ü.P 0*/A<2©1= 32O 433… 504Ž 65à� 7%6Q87 90+8Q:7 ;0:…<9;Q=7 >0+=…?<>Q@7 A0@…B?AQC…DBCA<F©E= GFO HGG  I+7¹A<J©E= KJO LKK… MIL� NHMA<O©= POO QPPƒ RNQ… SR#P Tˆ USTVÿV­«X WVU+QXWVÿYª«X ZYN+Q[ZA<\©E= ]\O ^]]  _^… `_# a7  b(a¹… cb`ƒ d7  e(d¹… fe`� gcf hBgAPi©1Q=jiºkj^©lk[…mlD9nšXm o(X+�poh¸qD^©rqpn>Çr=sÇAPt©1Q=utºvu^÷wúvxyøxºzD^>Ézùwøy>É7ùwøw={É©|{ºs>Ç|=}ÇAP©~†=€…�}€Q‚¸ƒ‚^©„ƒ�>Ç„Q …¦ O †……Q ‡¦ O ˆ‡‡ƒ ‰†ˆ  Š(‰±Q ‹¦Q Œ¦Q �¦ O Ž��ƒ �ŒŽˆ ��ŠP’“© ‘“�‹  ”+‘¹ƒ •‘”Q –¦Q —¦… ˜—ŠP’š© ™š˜–… ›•™ œB›Q �¦O ž��Q Ÿ¦O  ŸŸ… ¡” � ¢ž¡Ž £ü²� ¤¢£A<¥©= ¦¥O §¦¦ƒ ¨¤§… ©¨#P ªˆ «©ªVÿ¬­«X ­¬«+Q®­Q¯¦º°¯^©±°Q²¦ …³±²AP´©~‰=µ´9¶š®³…·¶µ ¸(®+…¹¸µ…º^µ »(œº�¼¹»©½¼·÷¾ú¿Àø¿¼Áœ+>ËÁù¾øÀ>Ë7ù¾ø¾=ÂËA<é`= ÄÃOÅÄÄQÆÅQǦQÈÇƒÉÆÈ Ê(É6 ËB  Ì(Ë»PÍÌÌ̈ΠÍQÏňÐÏÊQѦƒÒÑÅ”ÓÎÒ ÔÓˆÕÔÊ Ö+Õ¼½ ×Ö…ØÐ×APÙ©³Q=ÚÙºÛÚ^©Ü+³ƒÝ^Ü…ÞÝ߅߽ةàÛßÞƒá^m…âáß=ãÇ©äÛãâQ妃æåÅ”çÎæ èç éBæ ê(é6ˆëèêƒìÝ í1ë…îìí ï.àäî>Íï ð+î+…ñð ò ñºóò¾÷ôúóõöøõ>Ïùôøö>Ï7ùôøô=÷Ï÷øú÷ùúøù>ÑÛùøøú>Ñ7ùøøø=ûÑ÷üúûýüøýO þ9ÿkþæ=ÍAP©1†=…òAP©vQ=…ò�ÿ…� >Í ùüøü= ÍÑ    ( ´= ͈  ƒ^ ++>Ó=Ó©Â+>ÓŽ é…ã¿…æ¼P � 9Ü…nŽ À…æÁP ã� 9Ü…Â� …!^ �"^!ƒ#"�$"…%ÝÃ&%Ä '1#$& (.'Q)¦º*)^©+*(Q,¦ …-+,=.Ó©/.-AE0Õ†>0/©1+AE2Õ‰>21ƒ3å^ 43¸54_÷6ú578ø7AP9©`Q=:9º;:^>Ø;ù6ø8>Ø7ù6ø6=<Ø©=<ÝAE>Õ`>>==?Õþ?86DE7A7 B7Cø@;9LMA4F†ùNøN  OB”POÓ Q P…RÔQ S R…TGS�UHTAPVF‰Q=WVQXA…YWX Z.CUY  [B� \[J”]\K ^ ]…_Ô^ ` _QaA¾baZ÷cúbdeødQfA¸g`f>Lgùcøe>L7ùcøc=hLþh86lm7 j7køi;9pqA4n†ùrørQ sj Qts¼ut+¨vu÷wúvxyøxAP{nzQ=|{¼}|+>p}ùwøy>poùwøw=~p÷ú~€ø€þkøQ �jQ‚�ºƒ‚³Q „jO …„„Q †jO ‡††ƒ ˆ…‡  ‰(ˆ±P’‹ƒƒ© Š‹‰Q ŒjQ �jQ ŽjO �ŽŽƒ ���ˆ ‘�ŠP’“ƒƒ© ’“‘ŒQ ”jO•”” –B•Q —jO˜—— ™B˜P š–™… ›šŠQ œjO�œœ žE�… Ÿ’›Q  j Q¡ Q ¢j Q £jQ¤£A<¥nz= ¦¥A<¨n§= ©¨9 ª¯kžŸ›¡¢¤¦©Q «j Q¬«…­ª¬Ž®ž­�¯k®þ¯86ÙÚø°;ÝÜÞ= ´²= ·µ= ¹¸= »º= ½¼= ¿¾= ÁÀ= ÃÂ= ÅÄ= ÇÆ= ÉÈP ±´·¹»½¿ÁÃÅÇÉA4Û†ùßøßQ à±Q á±Q â±Q ã±P äàáâãQ å±P æå+‘ çäæOèçç9él±èP êéAëìÛ†= íì‘ îíêAïð܆>ðîQ ò±O óòòQ ô±Q õ±O öõõ… ÷ôö� øó÷Añù܉>ùøQ ú±AñûÜ`>ûúQüîAPýÛ‰†=þý…ÿüþAEÜQ>ÿQ ±AïÜa>Q ±AïÜE>Q ±AïÜ1>Q ±AïÜ>Q ±O     B Q ±O    B P  ++Aïܳ>OêêAÜv>AÜ~>è=ÜQ >ÊAÐʉ=>Q >ÌQ >ÎQ>ÏQ >ÑQ >ÒQ >ÓQ >Ô Q !>Õ!Q" >Ö"Q# >Ø#ý86?Úø$;9OP;9HI;MLN;9FG;9JK= '&= )(= +*=.,= 0/= 21= 43= 65= 87=;9==<P%')+.02468;=A4@†=A!=B#=C%=D&ùQøQQ R%ƒ SRE TBSƒU^TQ V%O WVVQ X%”YWXQ Z%Q[Z�\Y[Q ]%Q^]º_^^÷`ú_abøa¸cU+>Fcù`øb>F7ù`ø`=dFQ e%Qfeºgf^÷húgijøi¸k\+>Hkùhøj>H7ùhøh=lH÷múlnoønQ p%Qqp¸rq³>Jrùmøo>J7ùmøm=sJQ t%AñuL†>utQ v%AñwL‰>wvQ x%AïyL`>yxQ z%O {zzAñ|LQ>|{Q }%Aï~La>~}AP@‰`=€AE�LE>�€Q‚% AƒL1>ƒ‚Q„% A…L>…„Q †%Q‡†¾ˆ‡+©‰ˆ+AEŠL³>Љ¨‹d÷Œú‹�Žø�>OsùŒøŽ>OoùŒøŒ=�O©��+AE‘Lv>‘�Q ’%Aï“L~>“’=”L9•§”Q–%Ï—–И–Q ™%O š™™AP›@‰‰=œ›9�D•šœ¨ž�÷Ÿúž Ÿø üøŸ…¡––…¢——…£˜˜�¤¢£…¥_¤�¦¡¥P §–¦+>>§ý8 ÛbêPB‰Lí+к¶ëóÉÊË shaders/smokejÔüÛBTSR ‚6‚6'©6ÓO |†'£††!ã†ÝF ÀÍ'çÍK@ 2'Y3ŒË] Wm'vs_mainvs_mainfs_mainfs_mainW6struct SmokeFrame { viewProj: mat4x4, eye: vec4, light: vec4, lightColor: vec4, ambient: vec4, rim: vec4, look: vec4, } struct SmokeIn { @location(0) q: vec2, @location(1) p0_: vec4, @location(2) p1_: vec4, @location(3) p2_: vec4, @location(4) p3_: vec4, @location(5) p4_: vec4, @location(6) m: vec4, @location(7) n: vec4, } struct VsOut { @builtin(position) position: vec4, @location(0) world: vec3, @location(1) local: vec2, @location(2) shape: vec3, @location(3) side: vec3, @location(4) @interpolate(flat) dims: vec4, } struct Curve { P0_: vec3, P1_: vec3, P2_: vec3, P3_: vec3, P4_: vec3, T0_: vec3, T1_: vec3, T2_: vec3, T3_: vec3, T4_: vec3, L: vec4, } const HDR_RANGE: f32 = 4f; const NSEG: f32 = 32f; @group(0) @binding(0) var fr: SmokeFrame; fn srgbToLinear(c: vec3) -> vec3 { let x = max(c, vec3(0f)); let lo = (x * 0.07739938f); let hi = pow(((x + vec3(0.055f)) * 0.9478673f), vec3(2.4f)); return select(hi, lo, (x <= vec3(0.04045f))); } fn linearToSrgb(c_1: vec3) -> vec3 { let x_1 = max(c_1, vec3(0f)); let lo_1 = (x_1 * 12.92f); let hi_1 = ((1.055f * pow(x_1, vec3(0.41666666f))) - vec3(0.055f)); return select(hi_1, lo_1, (x_1 <= vec3(0.0031308f))); } fn luma(c_2: vec3) -> f32 { return dot(c_2, vec3(0.2126f, 0.7152f, 0.0722f)); } fn encodeHdr(c_3: vec3, mode: f32) -> vec3 { if (mode > 0.5f) { return pow(clamp((c_3 * 0.25f), vec3(0f), vec3(1f)), vec3(0.33333334f)); } return c_3; } fn decodeHdr(e: vec3, mode_1: f32) -> vec3 { if (mode_1 > 0.5f) { return (((e * e) * e) * HDR_RANGE); } return e; } fn hash2u(v: vec2) -> vec2 { var w: vec2; w = ((v * 1664525u) + vec2(1013904223u)); let _e9 = w.x; let _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); let _e17 = w.y; let _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); let _e23 = w; let _e24 = w; w = (_e23 ^ (_e24 >> vec2(16u))); let _e31 = w.x; let _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); let _e39 = w.y; let _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); let _e45 = w; let _e46 = w; w = (_e45 ^ (_e46 >> vec2(16u))); let _e51 = w; return _e51; } fn hashCell(i: vec2) -> f32 { let _e5 = hash2u(vec2((i + vec2(32768i)))); return (f32((_e5.x >> 8u)) * 0.000000059604645f); } fn hashCell2_(i_1: vec2) -> vec2 { let _e5 = hash2u(vec2((i_1 + vec2(32768i)))); return (vec2(f32((_e5.x >> 8u)), f32((_e5.y >> 8u))) * 0.000000059604645f); } fn ign(p_1: vec2) -> f32 { return fract((52.982918f * fract(dot(p_1, vec2(0.06711056f, 0.00583715f))))); } fn vnoise(p_2: vec2) -> f32 { let i_4 = floor(p_2); let f = (p_2 - i_4); let u = ((f * f) * (vec2(3f) - (2f * f))); let ii = vec2(i_4); let _e11 = hashCell(ii); let _e16 = hashCell((ii + vec2(1i, 0i))); let _e21 = hashCell((ii + vec2(0i, 1i))); let _e26 = hashCell((ii + vec2(1i, 1i))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2f) - 1f); } fn vnoiseD(p_3: vec2) -> vec3 { let i_5 = floor(p_3); let f_1 = (p_3 - i_5); let u_1 = ((f_1 * f_1) * (vec2(3f) - (2f * f_1))); let du = ((6f * f_1) * (vec2(1f) - f_1)); let ii_1 = vec2(i_5); let _e17 = hashCell(ii_1); let _e22 = hashCell((ii_1 + vec2(1i, 0i))); let _e27 = hashCell((ii_1 + vec2(0i, 1i))); let _e32 = hashCell((ii_1 + vec2(1i, 1i))); let k1_ = (_e22 - _e17); let k2_ = (_e27 - _e17); let k4_ = (((_e17 - _e22) - _e27) + _e32); let n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); let g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2f) - 1f), (g * 2f)); } fn fbm3_(p_4: vec2) -> f32 { var s: f32; let _e1 = vnoise(p_4); s = (_e1 * 0.57f); let _e5 = s; let _e12 = vnoise(((p_4 * 2.03f) + vec2(17.1f, 3.7f))); s = (_e5 + (_e12 * 0.29f)); let _e16 = s; let _e23 = vnoise(((p_4 * 4.07f) + vec2(5.3f, 29.9f))); s = (_e16 + (_e23 * 0.14f)); let _e27 = s; return _e27; } fn unitOr(v_1: vec3, fallback: vec3) -> vec3 { let l = length(v_1); return select(fallback, (v_1 / vec3(max(l, 0.00000001f))), (l > 0.000001f)); } fn pick3_(i_2: f32, a: vec3, b: vec3, c_4: vec3, d: vec3) -> vec3 { return select(select(select(d, c_4, (i_2 < 2.5f)), b, (i_2 < 1.5f)), a, (i_2 < 0.5f)); } fn pick1_(i_3: f32, a_1: f32, b_1: f32, c_5: f32, d_1: f32) -> f32 { return select(select(select(d_1, c_5, (i_3 < 2.5f)), b_1, (i_3 < 1.5f)), a_1, (i_3 < 0.5f)); } fn curvePos(c_6: Curve, s_1: f32) -> vec3 { let i_6 = min(floor(s_1), 3f); let u_2 = (s_1 - i_6); let _e10 = pick3_(i_6, c_6.P0_, c_6.P1_, c_6.P2_, c_6.P3_); let _e15 = pick3_(i_6, c_6.P1_, c_6.P2_, c_6.P3_, c_6.P4_); let _e20 = pick3_(i_6, c_6.T0_, c_6.T1_, c_6.T2_, c_6.T3_); let _e25 = pick3_(i_6, c_6.T1_, c_6.T2_, c_6.T3_, c_6.T4_); let _e34 = pick1_(i_6, c_6.L.x, c_6.L.y, c_6.L.z, c_6.L.w); let u2_ = (u_2 * u_2); let u3_ = (u2_ * u_2); return (((((((2f * u3_) - (3f * u2_)) + 1f) * _e10) + ((((u3_ - (2f * u2_)) + u_2) * _e34) * _e20)) + (((3f * u2_) - (2f * u3_)) * _e15)) + (((u3_ - u2_) * _e34) * _e25)); } @vertex fn vs_main(in: SmokeIn) -> VsOut { var C: vec3; var T: vec3; var r: f32; var along: f32; var local: bool; var turn: f32 = 1000f; var local_1: bool; var p: vec3; var out: VsOut; let P0_ = in.p0_.xyz; let P1_ = in.p1_.xyz; let P2_ = in.p2_.xyz; let P3_ = in.p3_.xyz; let P4_ = in.p4_.xyz; let L0_ = length((P1_ - P0_)); let L1_ = length((P2_ - P1_)); let L2_ = length((P3_ - P2_)); let L3_ = length((P4_ - P3_)); let Lt = (((L0_ + L1_) + L2_) + L3_); let _e27 = unitOr((P1_ - P0_), vec3(0f, 1f, 0f)); let _e29 = unitOr((P2_ - P1_), _e27); let _e31 = unitOr((P3_ - P2_), _e29); let _e33 = unitOr((P4_ - P3_), _e31); let _e35 = unitOr((_e27 + _e29), _e29); let _e37 = unitOr((_e29 + _e31), _e31); let _e39 = unitOr((_e31 + _e33), _e33); let s_2 = ((clamp(in.q.y, 0f, NSEG) / NSEG) * 4f); let i_7 = min(floor(s_2), 3f); let u_3 = (s_2 - i_7); let _e53 = pick3_(i_7, P0_, P1_, P2_, P3_); let _e54 = pick3_(i_7, P1_, P2_, P3_, P4_); let _e55 = pick3_(i_7, _e27, _e35, _e37, _e39); let _e56 = pick3_(i_7, _e35, _e37, _e39, _e33); let _e57 = pick1_(i_7, L0_, L1_, L2_, L3_); let _e62 = pick1_(i_7, 0f, L0_, (L0_ + L1_), ((L0_ + L1_) + L2_)); let _e71 = pick1_(i_7, in.p0_.w, in.p1_.w, in.p2_.w, in.p3_.w); let _e80 = pick1_(i_7, in.p1_.w, in.p2_.w, in.p3_.w, in.p4_.w); let u2_1 = (u_3 * u_3); let u3_1 = (u2_1 * u_3); C = (((((((2f * u3_1) - (3f * u2_1)) + 1f) * _e53) + ((((u3_1 - (2f * u2_1)) + u_3) * _e57) * _e55)) + (((3f * u2_1) - (2f * u3_1)) * _e54)) + (((u3_1 - u2_1) * _e57) * _e56)); let _e141 = unitOr(((((((6f * u2_1) - (6f * u_3)) * _e53) + (((((3f * u2_1) - (4f * u_3)) + 1f) * _e57) * _e55)) + (((6f * u_3) - (6f * u2_1)) * _e54)) + ((((3f * u2_1) - (2f * u_3)) * _e57) * _e56)), _e55); T = _e141; r = mix(_e71, _e80, u_3); along = (_e62 + (u_3 * _e57)); let soft = fr.look.y; let capB = (in.q.y > NSEG); if !((in.q.y < 0f)) { local = capB; } else { local = true; } let _e164 = local; if _e164 { let P = select(P0_, P4_, capB); let Te = select(-(_e27), _e33, capB); let _e170 = fr.eye; let toE = normalize((_e170.xyz - P)); let _e175 = unitOr((P4_ - P0_), Te); let _e181 = unitOr(cross(_e175, toE), vec3(1f, 0f, 0f)); let _e186 = unitOr(cross(toE, _e181), Te); let _e187 = unitOr((Te - (toE * dot(Te, toE))), _e186); r = select(in.p0_.w, in.p4_.w, capB); T = select(_e27, _e33, capB); let _e194 = r; let _e197 = r; along = select((-(_e194) * soft), (Lt + (_e197 * soft)), capB); let _e201 = r; C = (P + (_e187 * (_e201 * soft))); } let _e207 = fr.eye; let _e209 = C; let toEye = normalize((_e207.xyz - _e209)); let _e212 = T; let own = cross(_e212, toEye); let _e215 = T; let _e216 = unitOr((P4_ - P0_), _e215); let _e227 = unitOr(cross(vec3(0f, 1f, 0f), toEye), vec3(1f, 0f, 0f)); let _e228 = unitOr(cross(_e216, toEye), _e227); let _e229 = unitOr(own, _e228); let _e230 = r; let rs = (_e230 * mix(0.25f, 1f, smoothstep(0.06f, 0.35f, length(own)))); let cv = Curve(P0_, P1_, P2_, P3_, P4_, _e27, _e35, _e37, _e39, _e33, vec4(L0_, L1_, L2_, L3_)); let _e242 = curvePos(cv, s_2); let _e246 = curvePos(cv, max((s_2 - 0.125f), 0f)); let va = (_e242 - _e246); let _e251 = curvePos(cv, min((s_2 + 0.125f), 4f)); let vb = (_e251 - _e242); let pa = (va - (toEye * dot(va, toEye))); let pb = (vb - (toEye * dot(vb, toEye))); let la = length(pa); let lb = length(pb); if (la > 0.000001f) { local_1 = (lb > 0.000001f); } else { local_1 = false; } let _e270 = local_1; if _e270 { turn = ((0.5f * (la + lb)) / max(acos(clamp((dot(pa, pb) / (la * lb)), -1f, 1f)), 0.0001f)); } let _e286 = turn; let across = (in.q.x * clamp((0.9f * _e286), (rs * 1.1f), (rs * soft))); let _e294 = C; p = (_e294 + (_e229 * across)); let _e298 = p; let _e301 = fr.eye; let _e303 = p; let _e306 = r; p = (_e298 + (normalize((_e301.xyz - _e303)) * _e306)); let _e309 = along; let t = clamp((_e309 / max(Lt, 0.00001f)), 0f, 1f); let firm = (in.m.w * smoothstep(in.n.x, 1f, t)); let opa = (in.m.x * mix((1f - in.m.y), (1f - in.m.z), t)); let _e339 = fr.viewProj; let _e340 = p; out.position = (_e339 * vec4(_e340, 1f)); let _e345 = p; out.world = _e345; let _e347 = along; out.local = vec2(across, _e347); out.shape = vec3(firm, opa, rs); out.side = _e229; out.dims = vec4(Lt, in.n.y, in.n.z, in.n.w); let _e360 = out; return _e360; } @fragment fn fs_main(in_1: VsOut) -> @location(0) vec4 { let Lt_1 = in_1.dims.x; let x_2 = in_1.local.x; let y = in_1.local.y; let time = fr.ambient.w; let g_1 = fr.look.z; let along_1 = ((in_1.dims.w + y) * g_1); let seed = (in_1.dims.y * 17.13f); let firm_1 = clamp(in_1.shape.x, 0f, 1f); let _e33 = fr.look.w; let _e42 = vnoise(vec2(((along_1 * 0.42f) + (((time * _e33) * g_1) * 0.42f)), (seed * 0.71f))); let swell = mix((0.72f + (0.6f * _e42)), (0.9f + (0.2f * _e42)), firm_1); let r_1 = (max(in_1.shape.z, 0.0001f) * swell); let dy = (y - clamp(y, 0f, Lt_1)); let k = (length(vec2(x_2, dy)) / r_1); let _e66 = fr.look.w; let _e75 = vnoise(vec2((along_1 + ((time * _e66) * g_1)), (((x_2 / r_1) * 0.85f) + seed))); let _e91 = vnoise(vec2((((along_1 * 2.3f) + (seed * 0.37f)) + (time * 2.4f)), (((x_2 / r_1) * 2.2f) - (time * 0.8f)))); let n_1 = ((_e75 * 0.62f) + (_e91 * 0.38f)); let _e109 = vnoise(vec2(((along_1 * 3.3f) - (time * 2.2f)), (((x_2 / r_1) * 3.1f) + (seed * 1.3f)))); let edge = mix(0.8f, 0.62f, firm_1); let feather = mix(0.45f, 0.16f, firm_1); let kk = (k + ((n_1 - 0.5f) * mix(0.55f, 0.16f, firm_1))); let body = (1f - smoothstep((edge - feather), (edge + (feather * 0.35f)), kk)); let dens = mix((0.42f + (0.4f * n_1)), 0.95f, firm_1); let halo = ((exp(((-(k) * k) * 0.8f)) * smoothstep(0.1f, 0.7f, (n_1 + 0.25f))) * smoothstep(0.05f, 0.55f, (_e109 + (0.7f * (1f - (min(k, 1.6f) / 1.6f)))))); let _e167 = fr.look.x; let o = (max(in_1.shape.y, 0f) * _e167); let bA = ((body * dens) * o); let hA = ((halo * o) * 0.3f); let alpha = clamp((bA + (hA * (1f - bA))), 0f, 0.97f); if (alpha < 0.004f) { discard; } let _e185 = fr.eye; let V = normalize((_e185.xyz - in_1.world)); let k1_1 = min(k, 1f); let _e197 = unitOr(in_1.side, vec3(1f, 0f, 0f)); let N = normalize((((_e197 * (x_2 / r_1)) + (V * sqrt(max((1f - (k1_1 * k1_1)), 0f)))) + vec3(0f, 0.0001f, 0f))); let _e216 = fr.light; let toL = (_e216.xyz - in_1.world); let d2_ = dot(toL, toL); let Ld = (toL * inverseSqrt(max(d2_, 0.00000001f))); let _e228 = fr.light.w; let _e232 = fr.lightColor.w; let E = (_e228 / (d2_ + _e232)); let wrapD = (max((dot(N, Ld) + 0.6f), 0f) / 1.6f); let through = ((0.3f + pow(max(dot(-(V), Ld), 0f), 3f)) * in_1.dims.z); let rimEdge = (smoothstep(0.25f, 0.85f, k) * (1f - (firm_1 * 0.6f))); let _e267 = fr.lightColor; let _e273 = fr.ambient; let _e283 = fr.lightColor; let bodyCol = ((vec3(0.005f, 0.0055f, 0.007f) * ((_e267.xyz * (E * wrapD)) + _e273.xyz)) + ((vec3(0.02f, 0.02f, 0.022f) * _e283.xyz) * ((E * wrapD) * rimEdge))); let _e296 = fr.lightColor; let _e306 = fr.ambient; let _e314 = fr.lightColor; let _e323 = fr.rim; let haloCol = (((vec3(0.05f, 0.05f, 0.055f) * ((_e296.xyz * (E * (0.45f + (0.55f * wrapD)))) + (_e306.xyz * 6f))) + (_e314.xyz * ((E * through) * 0.03f))) + (_e323.xyz * (0.6f + (0.8f * n_1)))); let color = ((bodyCol * bA) + ((haloCol * hA) * (1f - bA))); let _e344 = fr.eye.w; let _e345 = encodeHdr((color / vec3(max(alpha, 0.0001f))), _e344); return vec4((_e345 * alpha), alpha); }   �\9qJàAvs_mainmain,#version 300 es precision highp float; precision highp int; struct SmokeFrame { mat4x4 viewProj; vec4 eye; vec4 light; vec4 lightColor; vec4 ambient; vec4 rim; vec4 look; }; struct SmokeIn { vec2 q; vec4 p0_; vec4 p1_; vec4 p2_; vec4 p3_; vec4 p4_; vec4 m; vec4 n; }; struct VsOut { vec4 position; vec3 world; vec2 local; vec3 shape; vec3 side; vec4 dims; }; struct Curve { vec3 P0_; vec3 P1_; vec3 P2_; vec3 P3_; vec3 P4_; vec3 T0_; vec3 T1_; vec3 T2_; vec3 T3_; vec3 T4_; vec4 L; }; const float HDR_RANGE = 4.0; const float NSEG = 32.0; layout(std140) uniform SmokeFrame_block_0Vertex { SmokeFrame _group_0_binding_0_vs; }; layout(location = 0) in vec2 _p2vs_location0; layout(location = 1) in vec4 _p2vs_location1; layout(location = 2) in vec4 _p2vs_location2; layout(location = 3) in vec4 _p2vs_location3; layout(location = 4) in vec4 _p2vs_location4; layout(location = 5) in vec4 _p2vs_location5; layout(location = 6) in vec4 _p2vs_location6; layout(location = 7) in vec4 _p2vs_location7; smooth out vec3 _vs2fs_location0; smooth out vec2 _vs2fs_location1; smooth out vec3 _vs2fs_location2; smooth out vec3 _vs2fs_location3; flat out vec4 _vs2fs_location4; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p_1) { return fract((52.982918 * fract(dot(p_1, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f = (p_2 - i_4); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_3) { vec2 i_5 = floor(p_3); vec2 f_1 = (p_3 - i_5); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_4) { float s = 0.0; float _e1 = vnoise(p_4); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_4 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_4 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec3 unitOr(vec3 v_1, vec3 fallback) { float l = length(v_1); return ((l > 1e-6) ? (v_1 / vec3(max(l, 1e-8))) : fallback); } vec3 pick3_(float i_2, vec3 a, vec3 b, vec3 c_4, vec3 d) { return ((i_2 < 0.5) ? a : ((i_2 < 1.5) ? b : ((i_2 < 2.5) ? c_4 : d))); } float pick1_(float i_3, float a_1, float b_1, float c_5, float d_1) { return ((i_3 < 0.5) ? a_1 : ((i_3 < 1.5) ? b_1 : ((i_3 < 2.5) ? c_5 : d_1))); } vec3 curvePos(Curve c_6, float s_1) { float i_6 = min(floor(s_1), 3.0); float u_2 = (s_1 - i_6); vec3 _e10 = pick3_(i_6, c_6.P0_, c_6.P1_, c_6.P2_, c_6.P3_); vec3 _e15 = pick3_(i_6, c_6.P1_, c_6.P2_, c_6.P3_, c_6.P4_); vec3 _e20 = pick3_(i_6, c_6.T0_, c_6.T1_, c_6.T2_, c_6.T3_); vec3 _e25 = pick3_(i_6, c_6.T1_, c_6.T2_, c_6.T3_, c_6.T4_); float _e34 = pick1_(i_6, c_6.L.x, c_6.L.y, c_6.L.z, c_6.L.w); float u2_ = (u_2 * u_2); float u3_ = (u2_ * u_2); return (((((((2.0 * u3_) - (3.0 * u2_)) + 1.0) * _e10) + ((((u3_ - (2.0 * u2_)) + u_2) * _e34) * _e20)) + (((3.0 * u2_) - (2.0 * u3_)) * _e15)) + (((u3_ - u2_) * _e34) * _e25)); } void main() { SmokeIn in_ = SmokeIn(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7); vec3 C = vec3(0.0); vec3 T = vec3(0.0); float r = 0.0; float along = 0.0; bool local = false; float turn = 1000.0; bool local_1 = false; vec3 p = vec3(0.0); VsOut out_ = VsOut(vec4(0.0), vec3(0.0), vec2(0.0), vec3(0.0), vec3(0.0), vec4(0.0)); vec3 P0_ = in_.p0_.xyz; vec3 P1_ = in_.p1_.xyz; vec3 P2_ = in_.p2_.xyz; vec3 P3_ = in_.p3_.xyz; vec3 P4_ = in_.p4_.xyz; float L0_ = length((P1_ - P0_)); float L1_ = length((P2_ - P1_)); float L2_ = length((P3_ - P2_)); float L3_ = length((P4_ - P3_)); float Lt = (((L0_ + L1_) + L2_) + L3_); vec3 _e27 = unitOr((P1_ - P0_), vec3(0.0, 1.0, 0.0)); vec3 _e29 = unitOr((P2_ - P1_), _e27); vec3 _e31 = unitOr((P3_ - P2_), _e29); vec3 _e33 = unitOr((P4_ - P3_), _e31); vec3 _e35 = unitOr((_e27 + _e29), _e29); vec3 _e37 = unitOr((_e29 + _e31), _e31); vec3 _e39 = unitOr((_e31 + _e33), _e33); float s_2 = ((clamp(in_.q.y, 0.0, NSEG) / NSEG) * 4.0); float i_7 = min(floor(s_2), 3.0); float u_3 = (s_2 - i_7); vec3 _e53 = pick3_(i_7, P0_, P1_, P2_, P3_); vec3 _e54 = pick3_(i_7, P1_, P2_, P3_, P4_); vec3 _e55 = pick3_(i_7, _e27, _e35, _e37, _e39); vec3 _e56 = pick3_(i_7, _e35, _e37, _e39, _e33); float _e57 = pick1_(i_7, L0_, L1_, L2_, L3_); float _e62 = pick1_(i_7, 0.0, L0_, (L0_ + L1_), ((L0_ + L1_) + L2_)); float _e71 = pick1_(i_7, in_.p0_.w, in_.p1_.w, in_.p2_.w, in_.p3_.w); float _e80 = pick1_(i_7, in_.p1_.w, in_.p2_.w, in_.p3_.w, in_.p4_.w); float u2_1 = (u_3 * u_3); float u3_1 = (u2_1 * u_3); C = (((((((2.0 * u3_1) - (3.0 * u2_1)) + 1.0) * _e53) + ((((u3_1 - (2.0 * u2_1)) + u_3) * _e57) * _e55)) + (((3.0 * u2_1) - (2.0 * u3_1)) * _e54)) + (((u3_1 - u2_1) * _e57) * _e56)); vec3 _e141 = unitOr(((((((6.0 * u2_1) - (6.0 * u_3)) * _e53) + (((((3.0 * u2_1) - (4.0 * u_3)) + 1.0) * _e57) * _e55)) + (((6.0 * u_3) - (6.0 * u2_1)) * _e54)) + ((((3.0 * u2_1) - (2.0 * u_3)) * _e57) * _e56)), _e55); T = _e141; r = mix(_e71, _e80, u_3); along = (_e62 + (u_3 * _e57)); float soft = _group_0_binding_0_vs.look.y; bool capB = (in_.q.y > NSEG); if (!((in_.q.y < 0.0))) { local = capB; } else { local = true; } bool _e164 = local; if (_e164) { vec3 P = (capB ? P4_ : P0_); vec3 Te = (capB ? _e33 : -(_e27)); vec4 _e170 = _group_0_binding_0_vs.eye; vec3 toE = normalize((_e170.xyz - P)); vec3 _e175 = unitOr((P4_ - P0_), Te); vec3 _e181 = unitOr(cross(_e175, toE), vec3(1.0, 0.0, 0.0)); vec3 _e186 = unitOr(cross(toE, _e181), Te); vec3 _e187 = unitOr((Te - (toE * dot(Te, toE))), _e186); r = (capB ? in_.p4_.w : in_.p0_.w); T = (capB ? _e33 : _e27); float _e194 = r; float _e197 = r; along = (capB ? (Lt + (_e197 * soft)) : (-(_e194) * soft)); float _e201 = r; C = (P + (_e187 * (_e201 * soft))); } vec4 _e207 = _group_0_binding_0_vs.eye; vec3 _e209 = C; vec3 toEye = normalize((_e207.xyz - _e209)); vec3 _e212 = T; vec3 own = cross(_e212, toEye); vec3 _e215 = T; vec3 _e216 = unitOr((P4_ - P0_), _e215); vec3 _e227 = unitOr(cross(vec3(0.0, 1.0, 0.0), toEye), vec3(1.0, 0.0, 0.0)); vec3 _e228 = unitOr(cross(_e216, toEye), _e227); vec3 _e229 = unitOr(own, _e228); float _e230 = r; float rs = (_e230 * mix(0.25, 1.0, smoothstep(0.06, 0.35, length(own)))); Curve cv = Curve(P0_, P1_, P2_, P3_, P4_, _e27, _e35, _e37, _e39, _e33, vec4(L0_, L1_, L2_, L3_)); vec3 _e242 = curvePos(cv, s_2); vec3 _e246 = curvePos(cv, max((s_2 - 0.125), 0.0)); vec3 va = (_e242 - _e246); vec3 _e251 = curvePos(cv, min((s_2 + 0.125), 4.0)); vec3 vb = (_e251 - _e242); vec3 pa = (va - (toEye * dot(va, toEye))); vec3 pb = (vb - (toEye * dot(vb, toEye))); float la = length(pa); float lb = length(pb); if ((la > 1e-6)) { local_1 = (lb > 1e-6); } else { local_1 = false; } bool _e270 = local_1; if (_e270) { turn = ((0.5 * (la + lb)) / max(acos(clamp((dot(pa, pb) / (la * lb)), -1.0, 1.0)), 0.0001)); } float _e286 = turn; float across = (in_.q.x * clamp((0.9 * _e286), (rs * 1.1), (rs * soft))); vec3 _e294 = C; p = (_e294 + (_e229 * across)); vec3 _e298 = p; vec4 _e301 = _group_0_binding_0_vs.eye; vec3 _e303 = p; float _e306 = r; p = (_e298 + (normalize((_e301.xyz - _e303)) * _e306)); float _e309 = along; float t = clamp((_e309 / max(Lt, 1e-5)), 0.0, 1.0); float firm = (in_.m.w * smoothstep(in_.n.x, 1.0, t)); float opa = (in_.m.x * mix((1.0 - in_.m.y), (1.0 - in_.m.z), t)); mat4x4 _e339 = _group_0_binding_0_vs.viewProj; vec3 _e340 = p; out_.position = (_e339 * vec4(_e340, 1.0)); vec3 _e345 = p; out_.world = _e345; float _e347 = along; out_.local = vec2(across, _e347); out_.shape = vec3(firm, opa, rs); out_.side = _e229; out_.dims = vec4(Lt, in_.n.y, in_.n.z, in_.n.w); VsOut _e360 = out_; gl_Position = _e360.position; _vs2fs_location0 = _e360.world; _vs2fs_location1 = _e360.local; _vs2fs_location2 = _e360.shape; _vs2fs_location3 = _e360.side; _vs2fs_location4 = _e360.dims; gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; } fs_mainmain—##version 300 es precision highp float; precision highp int; struct SmokeFrame { mat4x4 viewProj; vec4 eye; vec4 light; vec4 lightColor; vec4 ambient; vec4 rim; vec4 look; }; struct SmokeIn { vec2 q; vec4 p0_; vec4 p1_; vec4 p2_; vec4 p3_; vec4 p4_; vec4 m; vec4 n; }; struct VsOut { vec4 position; vec3 world; vec2 local; vec3 shape; vec3 side; vec4 dims; }; struct Curve { vec3 P0_; vec3 P1_; vec3 P2_; vec3 P3_; vec3 P4_; vec3 T0_; vec3 T1_; vec3 T2_; vec3 T3_; vec3 T4_; vec4 L; }; const float HDR_RANGE = 4.0; const float NSEG = 32.0; layout(std140) uniform SmokeFrame_block_0Fragment { SmokeFrame _group_0_binding_0_fs; }; smooth in vec3 _vs2fs_location0; smooth in vec2 _vs2fs_location1; smooth in vec3 _vs2fs_location2; smooth in vec3 _vs2fs_location3; flat in vec4 _vs2fs_location4; layout(location = 0) out vec4 _fs2p_location0; vec3 srgbToLinear(vec3 c) { vec3 x = max(c, vec3(0.0)); vec3 lo = (x * 0.07739938); vec3 hi = pow(((x + vec3(0.055)) * 0.9478673), vec3(2.4)); return mix(hi, lo, lessThanEqual(x, vec3(0.04045))); } vec3 linearToSrgb(vec3 c_1) { vec3 x_1 = max(c_1, vec3(0.0)); vec3 lo_1 = (x_1 * 12.92); vec3 hi_1 = ((1.055 * pow(x_1, vec3(0.41666666))) - vec3(0.055)); return mix(hi_1, lo_1, lessThanEqual(x_1, vec3(0.0031308))); } float luma(vec3 c_2) { return dot(c_2, vec3(0.2126, 0.7152, 0.0722)); } vec3 encodeHdr(vec3 c_3, float mode) { if ((mode > 0.5)) { return pow(clamp((c_3 * 0.25), vec3(0.0), vec3(1.0)), vec3(0.33333334)); } return c_3; } vec3 decodeHdr(vec3 e, float mode_1) { if ((mode_1 > 0.5)) { return (((e * e) * e) * HDR_RANGE); } return e; } uvec2 hash2u(uvec2 v) { uvec2 w = uvec2(0u); w = ((v * 1664525u) + uvec2(1013904223u)); uint _e9 = w.x; uint _e11 = w.y; w.x = (_e9 + (_e11 * 1664525u)); uint _e17 = w.y; uint _e19 = w.x; w.y = (_e17 + (_e19 * 1664525u)); uvec2 _e23 = w; uvec2 _e24 = w; w = (_e23 ^ (_e24 >> uvec2(16u))); uint _e31 = w.x; uint _e33 = w.y; w.x = (_e31 + (_e33 * 1664525u)); uint _e39 = w.y; uint _e41 = w.x; w.y = (_e39 + (_e41 * 1664525u)); uvec2 _e45 = w; uvec2 _e46 = w; w = (_e45 ^ (_e46 >> uvec2(16u))); uvec2 _e51 = w; return _e51; } float hashCell(ivec2 i) { uvec2 _e5 = hash2u(uvec2((i + ivec2(32768)))); return (float((_e5.x >> 8u)) * 5.9604645e-8); } vec2 hashCell2_(ivec2 i_1) { uvec2 _e5 = hash2u(uvec2((i_1 + ivec2(32768)))); return (vec2(float((_e5.x >> 8u)), float((_e5.y >> 8u))) * 5.9604645e-8); } float ign(vec2 p_1) { return fract((52.982918 * fract(dot(p_1, vec2(0.06711056, 0.00583715))))); } float vnoise(vec2 p_2) { vec2 i_4 = floor(p_2); vec2 f = (p_2 - i_4); vec2 u = ((f * f) * (vec2(3.0) - (2.0 * f))); ivec2 ii = ivec2(i_4); float _e11 = hashCell(ii); float _e16 = hashCell((ii + ivec2(1, 0))); float _e21 = hashCell((ii + ivec2(0, 1))); float _e26 = hashCell((ii + ivec2(1, 1))); return ((mix(mix(_e11, _e16, u.x), mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0); } vec3 vnoiseD(vec2 p_3) { vec2 i_5 = floor(p_3); vec2 f_1 = (p_3 - i_5); vec2 u_1 = ((f_1 * f_1) * (vec2(3.0) - (2.0 * f_1))); vec2 du = ((6.0 * f_1) * (vec2(1.0) - f_1)); ivec2 ii_1 = ivec2(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell((ii_1 + ivec2(1, 0))); float _e27 = hashCell((ii_1 + ivec2(0, 1))); float _e32 = hashCell((ii_1 + ivec2(1, 1))); float k1_ = (_e22 - _e17); float k2_ = (_e27 - _e17); float k4_ = (((_e17 - _e22) - _e27) + _e32); float n = (((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y)); vec2 g = (du * vec2((k1_ + (k4_ * u_1.y)), (k2_ + (k4_ * u_1.x)))); return vec3(((n * 2.0) - 1.0), (g * 2.0)); } float fbm3_(vec2 p_4) { float s = 0.0; float _e1 = vnoise(p_4); s = (_e1 * 0.57); float _e5 = s; float _e12 = vnoise(((p_4 * 2.03) + vec2(17.1, 3.7))); s = (_e5 + (_e12 * 0.29)); float _e16 = s; float _e23 = vnoise(((p_4 * 4.07) + vec2(5.3, 29.9))); s = (_e16 + (_e23 * 0.14)); float _e27 = s; return _e27; } vec3 unitOr(vec3 v_1, vec3 fallback) { float l = length(v_1); return ((l > 1e-6) ? (v_1 / vec3(max(l, 1e-8))) : fallback); } vec3 pick3_(float i_2, vec3 a, vec3 b, vec3 c_4, vec3 d) { return ((i_2 < 0.5) ? a : ((i_2 < 1.5) ? b : ((i_2 < 2.5) ? c_4 : d))); } float pick1_(float i_3, float a_1, float b_1, float c_5, float d_1) { return ((i_3 < 0.5) ? a_1 : ((i_3 < 1.5) ? b_1 : ((i_3 < 2.5) ? c_5 : d_1))); } vec3 curvePos(Curve c_6, float s_1) { float i_6 = min(floor(s_1), 3.0); float u_2 = (s_1 - i_6); vec3 _e10 = pick3_(i_6, c_6.P0_, c_6.P1_, c_6.P2_, c_6.P3_); vec3 _e15 = pick3_(i_6, c_6.P1_, c_6.P2_, c_6.P3_, c_6.P4_); vec3 _e20 = pick3_(i_6, c_6.T0_, c_6.T1_, c_6.T2_, c_6.T3_); vec3 _e25 = pick3_(i_6, c_6.T1_, c_6.T2_, c_6.T3_, c_6.T4_); float _e34 = pick1_(i_6, c_6.L.x, c_6.L.y, c_6.L.z, c_6.L.w); float u2_ = (u_2 * u_2); float u3_ = (u2_ * u_2); return (((((((2.0 * u3_) - (3.0 * u2_)) + 1.0) * _e10) + ((((u3_ - (2.0 * u2_)) + u_2) * _e34) * _e20)) + (((3.0 * u2_) - (2.0 * u3_)) * _e15)) + (((u3_ - u2_) * _e34) * _e25)); } void main() { VsOut in_1 = VsOut(gl_FragCoord, _vs2fs_location0, _vs2fs_location1, _vs2fs_location2, _vs2fs_location3, _vs2fs_location4); float Lt = in_1.dims.x; float x_2 = in_1.local.x; float y = in_1.local.y; float time = _group_0_binding_0_fs.ambient.w; float g_1 = _group_0_binding_0_fs.look.z; float along_1 = ((in_1.dims.w + y) * g_1); float seed = (in_1.dims.y * 17.13); float firm = clamp(in_1.shape.x, 0.0, 1.0); float _e33 = _group_0_binding_0_fs.look.w; float _e42 = vnoise(vec2(((along_1 * 0.42) + (((time * _e33) * g_1) * 0.42)), (seed * 0.71))); float swell = mix((0.72 + (0.6 * _e42)), (0.9 + (0.2 * _e42)), firm); float r_1 = (max(in_1.shape.z, 0.0001) * swell); float dy = (y - clamp(y, 0.0, Lt)); float k = (length(vec2(x_2, dy)) / r_1); float _e66 = _group_0_binding_0_fs.look.w; float _e75 = vnoise(vec2((along_1 + ((time * _e66) * g_1)), (((x_2 / r_1) * 0.85) + seed))); float _e91 = vnoise(vec2((((along_1 * 2.3) + (seed * 0.37)) + (time * 2.4)), (((x_2 / r_1) * 2.2) - (time * 0.8)))); float n_1 = ((_e75 * 0.62) + (_e91 * 0.38)); float _e109 = vnoise(vec2(((along_1 * 3.3) - (time * 2.2)), (((x_2 / r_1) * 3.1) + (seed * 1.3)))); float edge = mix(0.8, 0.62, firm); float feather = mix(0.45, 0.16, firm); float kk = (k + ((n_1 - 0.5) * mix(0.55, 0.16, firm))); float body = (1.0 - smoothstep((edge - feather), (edge + (feather * 0.35)), kk)); float dens = mix((0.42 + (0.4 * n_1)), 0.95, firm); float halo = ((exp(((-(k) * k) * 0.8)) * smoothstep(0.1, 0.7, (n_1 + 0.25))) * smoothstep(0.05, 0.55, (_e109 + (0.7 * (1.0 - (min(k, 1.6) / 1.6)))))); float _e167 = _group_0_binding_0_fs.look.x; float o = (max(in_1.shape.y, 0.0) * _e167); float bA = ((body * dens) * o); float hA = ((halo * o) * 0.3); float alpha = clamp((bA + (hA * (1.0 - bA))), 0.0, 0.97); if ((alpha < 0.004)) { discard; } vec4 _e185 = _group_0_binding_0_fs.eye; vec3 V = normalize((_e185.xyz - in_1.world)); float k1_1 = min(k, 1.0); vec3 _e197 = unitOr(in_1.side, vec3(1.0, 0.0, 0.0)); vec3 N = normalize((((_e197 * (x_2 / r_1)) + (V * sqrt(max((1.0 - (k1_1 * k1_1)), 0.0)))) + vec3(0.0, 0.0001, 0.0))); vec4 _e216 = _group_0_binding_0_fs.light; vec3 toL = (_e216.xyz - in_1.world); float d2_ = dot(toL, toL); vec3 Ld = (toL * inversesqrt(max(d2_, 1e-8))); float _e228 = _group_0_binding_0_fs.light.w; float _e232 = _group_0_binding_0_fs.lightColor.w; float E = (_e228 / (d2_ + _e232)); float wrapD = (max((dot(N, Ld) + 0.6), 0.0) / 1.6); float through = ((0.3 + pow(max(dot(-(V), Ld), 0.0), 3.0)) * in_1.dims.z); float rimEdge = (smoothstep(0.25, 0.85, k) * (1.0 - (firm * 0.6))); vec4 _e267 = _group_0_binding_0_fs.lightColor; vec4 _e273 = _group_0_binding_0_fs.ambient; vec4 _e283 = _group_0_binding_0_fs.lightColor; vec3 bodyCol = ((vec3(0.005, 0.0055, 0.007) * ((_e267.xyz * (E * wrapD)) + _e273.xyz)) + ((vec3(0.02, 0.02, 0.022) * _e283.xyz) * ((E * wrapD) * rimEdge))); vec4 _e296 = _group_0_binding_0_fs.lightColor; vec4 _e306 = _group_0_binding_0_fs.ambient; vec4 _e314 = _group_0_binding_0_fs.lightColor; vec4 _e323 = _group_0_binding_0_fs.rim; vec3 haloCol = (((vec3(0.05, 0.05, 0.055) * ((_e296.xyz * (E * (0.45 + (0.55 * wrapD)))) + (_e306.xyz * 6.0))) + (_e314.xyz * ((E * through) * 0.03))) + (_e323.xyz * (0.6 + (0.8 * n_1)))); vec3 color = ((bodyCol * bA) + ((haloCol * hA) * (1.0 - bA))); float _e344 = _group_0_binding_0_fs.eye.w; vec3 _e345 = encodeHdr((color / vec3(max(alpha, 0.0001))), _e344); _fs2p_location0 = vec4((_e345 * alpha), alpha); return; }   �\9qJàASmokeFrame_block_0VertexSmokeFrame_block_0Fragmentvs_mainvs_mainfs_mainfs_main²F// language: metal1.0 #include #include using metal::uint; struct SmokeFrame { metal::float4x4 viewProj; metal::float4 eye; metal::float4 light; metal::float4 lightColor; metal::float4 ambient; metal::float4 rim; metal::float4 look; }; struct SmokeIn { metal::float2 q; char _pad1[8]; metal::float4 p0_; metal::float4 p1_; metal::float4 p2_; metal::float4 p3_; metal::float4 p4_; metal::float4 m; metal::float4 n; }; struct VsOut { metal::float4 position; metal::float3 world; metal::float2 local; char _pad3[8]; metal::float3 shape; metal::float3 side; metal::float4 dims; }; struct Curve { metal::float3 P0_; metal::float3 P1_; metal::float3 P2_; metal::float3 P3_; metal::float3 P4_; metal::float3 T0_; metal::float3 T1_; metal::float3 T2_; metal::float3 T3_; metal::float3 T4_; metal::float4 L; }; constant float HDR_RANGE = 4.0; constant float NSEG = 32.0; metal::float3 srgbToLinear( metal::float3 c ) { metal::float3 x = metal::max(c, metal::float3(0.0)); metal::float3 lo = x * 0.07739938; metal::float3 hi = metal::pow((x + metal::float3(0.055)) * 0.9478673, metal::float3(2.4)); return metal::select(hi, lo, x <= metal::float3(0.04045)); } metal::float3 linearToSrgb( metal::float3 c_1 ) { metal::float3 x_1 = metal::max(c_1, metal::float3(0.0)); metal::float3 lo_1 = x_1 * 12.92; metal::float3 hi_1 = (1.055 * metal::pow(x_1, metal::float3(0.41666666))) - metal::float3(0.055); return metal::select(hi_1, lo_1, x_1 <= metal::float3(0.0031308)); } float luma( metal::float3 c_2 ) { return metal::dot(c_2, metal::float3(0.2126, 0.7152, 0.0722)); } metal::float3 encodeHdr( metal::float3 c_3, float mode ) { if (mode > 0.5) { return metal::pow(metal::clamp(c_3 * 0.25, metal::float3(0.0), metal::float3(1.0)), metal::float3(0.33333334)); } return c_3; } metal::float3 decodeHdr( metal::float3 e, float mode_1 ) { if (mode_1 > 0.5) { return ((e * e) * e) * HDR_RANGE; } return e; } metal::uint2 hash2u( metal::uint2 v ) { metal::uint2 w = {}; w = (v * 1664525u) + metal::uint2(1013904223u); uint _e9 = w.x; uint _e11 = w.y; w.x = _e9 + (_e11 * 1664525u); uint _e17 = w.y; uint _e19 = w.x; w.y = _e17 + (_e19 * 1664525u); metal::uint2 _e23 = w; metal::uint2 _e24 = w; w = _e23 ^ (_e24 >> metal::uint2(16u)); uint _e31 = w.x; uint _e33 = w.y; w.x = _e31 + (_e33 * 1664525u); uint _e39 = w.y; uint _e41 = w.x; w.y = _e39 + (_e41 * 1664525u); metal::uint2 _e45 = w; metal::uint2 _e46 = w; w = _e45 ^ (_e46 >> metal::uint2(16u)); metal::uint2 _e51 = w; return _e51; } float hashCell( metal::int2 i ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i) + as_type(metal::int2(32768))))); return static_cast(_e5.x >> 8u) * 0.000000059604645; } metal::float2 hashCell2_( metal::int2 i_1 ) { metal::uint2 _e5 = hash2u(static_cast(as_type(as_type(i_1) + as_type(metal::int2(32768))))); return metal::float2(static_cast(_e5.x >> 8u), static_cast(_e5.y >> 8u)) * 0.000000059604645; } float ign( metal::float2 p_1 ) { return metal::fract(52.982918 * metal::fract(metal::dot(p_1, metal::float2(0.06711056, 0.00583715)))); } metal::int2 naga_f2i32(metal::float2 value) { return static_cast(metal::clamp(value, -2147483600.0, 2147483500.0)); } float vnoise( metal::float2 p_2 ) { metal::float2 i_4 = metal::floor(p_2); metal::float2 f = p_2 - i_4; metal::float2 u = (f * f) * (metal::float2(3.0) - (2.0 * f)); metal::int2 ii = naga_f2i32(i_4); float _e11 = hashCell(ii); float _e16 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 0)))); float _e21 = hashCell(as_type(as_type(ii) + as_type(metal::int2(0, 1)))); float _e26 = hashCell(as_type(as_type(ii) + as_type(metal::int2(1, 1)))); return (metal::mix(metal::mix(_e11, _e16, u.x), metal::mix(_e21, _e26, u.x), u.y) * 2.0) - 1.0; } metal::float3 vnoiseD( metal::float2 p_3 ) { metal::float2 i_5 = metal::floor(p_3); metal::float2 f_1 = p_3 - i_5; metal::float2 u_1 = (f_1 * f_1) * (metal::float2(3.0) - (2.0 * f_1)); metal::float2 du = (6.0 * f_1) * (metal::float2(1.0) - f_1); metal::int2 ii_1 = naga_f2i32(i_5); float _e17 = hashCell(ii_1); float _e22 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 0)))); float _e27 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(0, 1)))); float _e32 = hashCell(as_type(as_type(ii_1) + as_type(metal::int2(1, 1)))); float k1_ = _e22 - _e17; float k2_ = _e27 - _e17; float k4_ = ((_e17 - _e22) - _e27) + _e32; float n = ((_e17 + (k1_ * u_1.x)) + (k2_ * u_1.y)) + ((k4_ * u_1.x) * u_1.y); metal::float2 g = du * metal::float2(k1_ + (k4_ * u_1.y), k2_ + (k4_ * u_1.x)); return metal::float3((n * 2.0) - 1.0, g * 2.0); } float fbm3_( metal::float2 p_4 ) { float s = {}; float _e1 = vnoise(p_4); s = _e1 * 0.57; float _e5 = s; float _e12 = vnoise((p_4 * 2.03) + metal::float2(17.1, 3.7)); s = _e5 + (_e12 * 0.29); float _e16 = s; float _e23 = vnoise((p_4 * 4.07) + metal::float2(5.3, 29.9)); s = _e16 + (_e23 * 0.14); float _e27 = s; return _e27; } metal::float3 unitOr( metal::float3 v_1, metal::float3 fallback ) { float l = metal::length(v_1); return (l > 0.000001) ? (v_1 / metal::float3(metal::max(l, 0.00000001))) : fallback; } metal::float3 pick3_( float i_2, metal::float3 a, metal::float3 b, metal::float3 c_4, metal::float3 d ) { return (i_2 < 0.5) ? a : ((i_2 < 1.5) ? b : ((i_2 < 2.5) ? c_4 : d)); } float pick1_( float i_3, float a_1, float b_1, float c_5, float d_1 ) { return (i_3 < 0.5) ? a_1 : ((i_3 < 1.5) ? b_1 : ((i_3 < 2.5) ? c_5 : d_1)); } metal::float3 curvePos( Curve c_6, float s_1 ) { float i_6 = metal::min(metal::floor(s_1), 3.0); float u_2 = s_1 - i_6; metal::float3 _e10 = pick3_(i_6, c_6.P0_, c_6.P1_, c_6.P2_, c_6.P3_); metal::float3 _e15 = pick3_(i_6, c_6.P1_, c_6.P2_, c_6.P3_, c_6.P4_); metal::float3 _e20 = pick3_(i_6, c_6.T0_, c_6.T1_, c_6.T2_, c_6.T3_); metal::float3 _e25 = pick3_(i_6, c_6.T1_, c_6.T2_, c_6.T3_, c_6.T4_); float _e34 = pick1_(i_6, c_6.L.x, c_6.L.y, c_6.L.z, c_6.L.w); float u2_ = u_2 * u_2; float u3_ = u2_ * u_2; return ((((((2.0 * u3_) - (3.0 * u2_)) + 1.0) * _e10) + ((((u3_ - (2.0 * u2_)) + u_2) * _e34) * _e20)) + (((3.0 * u2_) - (2.0 * u3_)) * _e15)) + (((u3_ - u2_) * _e34) * _e25); } struct vs_mainInput { metal::float2 q [[attribute(0)]]; metal::float4 p0_ [[attribute(1)]]; metal::float4 p1_ [[attribute(2)]]; metal::float4 p2_ [[attribute(3)]]; metal::float4 p3_ [[attribute(4)]]; metal::float4 p4_ [[attribute(5)]]; metal::float4 m [[attribute(6)]]; metal::float4 n [[attribute(7)]]; }; struct vs_mainOutput { metal::float4 position [[position]]; metal::float3 world [[user(loc0), center_perspective]]; metal::float2 local [[user(loc1), center_perspective]]; metal::float3 shape [[user(loc2), center_perspective]]; metal::float3 side [[user(loc3), center_perspective]]; metal::float4 dims [[user(loc4), flat]]; }; vertex vs_mainOutput vs_main( vs_mainInput varyings [[stage_in]] , constant SmokeFrame& fr [[buffer(0)]] ) { const SmokeIn in = { varyings.q, {}, varyings.p0_, varyings.p1_, varyings.p2_, varyings.p3_, varyings.p4_, varyings.m, varyings.n }; metal::float3 C = {}; metal::float3 T = {}; float r = {}; float along = {}; bool local = {}; float turn = 1000.0; bool local_1 = {}; metal::float3 p = {}; VsOut out = {}; metal::float3 P0_ = in.p0_.xyz; metal::float3 P1_ = in.p1_.xyz; metal::float3 P2_ = in.p2_.xyz; metal::float3 P3_ = in.p3_.xyz; metal::float3 P4_ = in.p4_.xyz; float L0_ = metal::length(P1_ - P0_); float L1_ = metal::length(P2_ - P1_); float L2_ = metal::length(P3_ - P2_); float L3_ = metal::length(P4_ - P3_); float Lt = ((L0_ + L1_) + L2_) + L3_; metal::float3 _e27 = unitOr(P1_ - P0_, metal::float3(0.0, 1.0, 0.0)); metal::float3 _e29 = unitOr(P2_ - P1_, _e27); metal::float3 _e31 = unitOr(P3_ - P2_, _e29); metal::float3 _e33 = unitOr(P4_ - P3_, _e31); metal::float3 _e35 = unitOr(_e27 + _e29, _e29); metal::float3 _e37 = unitOr(_e29 + _e31, _e31); metal::float3 _e39 = unitOr(_e31 + _e33, _e33); float s_2 = (metal::clamp(in.q.y, 0.0, NSEG) / NSEG) * 4.0; float i_7 = metal::min(metal::floor(s_2), 3.0); float u_3 = s_2 - i_7; metal::float3 _e53 = pick3_(i_7, P0_, P1_, P2_, P3_); metal::float3 _e54 = pick3_(i_7, P1_, P2_, P3_, P4_); metal::float3 _e55 = pick3_(i_7, _e27, _e35, _e37, _e39); metal::float3 _e56 = pick3_(i_7, _e35, _e37, _e39, _e33); float _e57 = pick1_(i_7, L0_, L1_, L2_, L3_); float _e62 = pick1_(i_7, 0.0, L0_, L0_ + L1_, (L0_ + L1_) + L2_); float _e71 = pick1_(i_7, in.p0_.w, in.p1_.w, in.p2_.w, in.p3_.w); float _e80 = pick1_(i_7, in.p1_.w, in.p2_.w, in.p3_.w, in.p4_.w); float u2_1 = u_3 * u_3; float u3_1 = u2_1 * u_3; C = ((((((2.0 * u3_1) - (3.0 * u2_1)) + 1.0) * _e53) + ((((u3_1 - (2.0 * u2_1)) + u_3) * _e57) * _e55)) + (((3.0 * u2_1) - (2.0 * u3_1)) * _e54)) + (((u3_1 - u2_1) * _e57) * _e56); metal::float3 _e141 = unitOr((((((6.0 * u2_1) - (6.0 * u_3)) * _e53) + (((((3.0 * u2_1) - (4.0 * u_3)) + 1.0) * _e57) * _e55)) + (((6.0 * u_3) - (6.0 * u2_1)) * _e54)) + ((((3.0 * u2_1) - (2.0 * u_3)) * _e57) * _e56), _e55); T = _e141; r = metal::mix(_e71, _e80, u_3); along = _e62 + (u_3 * _e57); float soft = fr.look.y; bool capB = in.q.y > NSEG; if (!((in.q.y < 0.0))) { local = capB; } else { local = true; } bool _e164 = local; if (_e164) { metal::float3 P = capB ? P4_ : P0_; metal::float3 Te = capB ? _e33 : -(_e27); metal::float4 _e170 = fr.eye; metal::float3 toE = metal::normalize(_e170.xyz - P); metal::float3 _e175 = unitOr(P4_ - P0_, Te); metal::float3 _e181 = unitOr(metal::cross(_e175, toE), metal::float3(1.0, 0.0, 0.0)); metal::float3 _e186 = unitOr(metal::cross(toE, _e181), Te); metal::float3 _e187 = unitOr(Te - (toE * metal::dot(Te, toE)), _e186); r = capB ? in.p4_.w : in.p0_.w; T = capB ? _e33 : _e27; float _e194 = r; float _e197 = r; along = capB ? (Lt + (_e197 * soft)) : (-(_e194) * soft); float _e201 = r; C = P + (_e187 * (_e201 * soft)); } metal::float4 _e207 = fr.eye; metal::float3 _e209 = C; metal::float3 toEye = metal::normalize(_e207.xyz - _e209); metal::float3 _e212 = T; metal::float3 own = metal::cross(_e212, toEye); metal::float3 _e215 = T; metal::float3 _e216 = unitOr(P4_ - P0_, _e215); metal::float3 _e227 = unitOr(metal::cross(metal::float3(0.0, 1.0, 0.0), toEye), metal::float3(1.0, 0.0, 0.0)); metal::float3 _e228 = unitOr(metal::cross(_e216, toEye), _e227); metal::float3 _e229 = unitOr(own, _e228); float _e230 = r; float rs = _e230 * metal::mix(0.25, 1.0, metal::smoothstep(0.06, 0.35, metal::length(own))); Curve cv = Curve {P0_, P1_, P2_, P3_, P4_, _e27, _e35, _e37, _e39, _e33, metal::float4(L0_, L1_, L2_, L3_)}; metal::float3 _e242 = curvePos(cv, s_2); metal::float3 _e246 = curvePos(cv, metal::max(s_2 - 0.125, 0.0)); metal::float3 va = _e242 - _e246; metal::float3 _e251 = curvePos(cv, metal::min(s_2 + 0.125, 4.0)); metal::float3 vb = _e251 - _e242; metal::float3 pa = va - (toEye * metal::dot(va, toEye)); metal::float3 pb = vb - (toEye * metal::dot(vb, toEye)); float la = metal::length(pa); float lb = metal::length(pb); if (la > 0.000001) { local_1 = lb > 0.000001; } else { local_1 = false; } bool _e270 = local_1; if (_e270) { turn = (0.5 * (la + lb)) / metal::max(metal::acos(metal::clamp(metal::dot(pa, pb) / (la * lb), -1.0, 1.0)), 0.0001); } float _e286 = turn; float across = in.q.x * metal::clamp(0.9 * _e286, rs * 1.1, rs * soft); metal::float3 _e294 = C; p = _e294 + (_e229 * across); metal::float3 _e298 = p; metal::float4 _e301 = fr.eye; metal::float3 _e303 = p; float _e306 = r; p = _e298 + (metal::normalize(_e301.xyz - _e303) * _e306); float _e309 = along; float t = metal::clamp(_e309 / metal::max(Lt, 0.00001), 0.0, 1.0); float firm = in.m.w * metal::smoothstep(in.n.x, 1.0, t); float opa = in.m.x * metal::mix(1.0 - in.m.y, 1.0 - in.m.z, t); metal::float4x4 _e339 = fr.viewProj; metal::float3 _e340 = p; out.position = _e339 * metal::float4(_e340, 1.0); metal::float3 _e345 = p; out.world = _e345; float _e347 = along; out.local = metal::float2(across, _e347); out.shape = metal::float3(firm, opa, rs); out.side = _e229; out.dims = metal::float4(Lt, in.n.y, in.n.z, in.n.w); VsOut _e360 = out; const auto _tmp = _e360; return vs_mainOutput { _tmp.position, _tmp.world, _tmp.local, _tmp.shape, _tmp.side, _tmp.dims }; } struct fs_mainInput { metal::float3 world [[user(loc0), center_perspective]]; metal::float2 local_2 [[user(loc1), center_perspective]]; metal::float3 shape [[user(loc2), center_perspective]]; metal::float3 side [[user(loc3), center_perspective]]; metal::float4 dims [[user(loc4), flat]]; }; struct fs_mainOutput { metal::float4 member_1 [[color(0)]]; }; fragment fs_mainOutput fs_main( fs_mainInput varyings_1 [[stage_in]] , metal::float4 position [[position]] , constant SmokeFrame& fr [[buffer(0)]] ) { const VsOut in_1 = { position, varyings_1.world, varyings_1.local_2, {}, varyings_1.shape, varyings_1.side, varyings_1.dims }; float Lt_1 = in_1.dims.x; float x_2 = in_1.local.x; float y = in_1.local.y; float time = fr.ambient.w; float g_1 = fr.look.z; float along_1 = (in_1.dims.w + y) * g_1; float seed = in_1.dims.y * 17.13; float firm_1 = metal::clamp(in_1.shape.x, 0.0, 1.0); float _e33 = fr.look.w; float _e42 = vnoise(metal::float2((along_1 * 0.42) + (((time * _e33) * g_1) * 0.42), seed * 0.71)); float swell = metal::mix(0.72 + (0.6 * _e42), 0.9 + (0.2 * _e42), firm_1); float r_1 = metal::max(in_1.shape.z, 0.0001) * swell; float dy = y - metal::clamp(y, 0.0, Lt_1); float k = metal::length(metal::float2(x_2, dy)) / r_1; float _e66 = fr.look.w; float _e75 = vnoise(metal::float2(along_1 + ((time * _e66) * g_1), ((x_2 / r_1) * 0.85) + seed)); float _e91 = vnoise(metal::float2(((along_1 * 2.3) + (seed * 0.37)) + (time * 2.4), ((x_2 / r_1) * 2.2) - (time * 0.8))); float n_1 = (_e75 * 0.62) + (_e91 * 0.38); float _e109 = vnoise(metal::float2((along_1 * 3.3) - (time * 2.2), ((x_2 / r_1) * 3.1) + (seed * 1.3))); float edge = metal::mix(0.8, 0.62, firm_1); float feather = metal::mix(0.45, 0.16, firm_1); float kk = k + ((n_1 - 0.5) * metal::mix(0.55, 0.16, firm_1)); float body = 1.0 - metal::smoothstep(edge - feather, edge + (feather * 0.35), kk); float dens = metal::mix(0.42 + (0.4 * n_1), 0.95, firm_1); float halo = (metal::exp((-(k) * k) * 0.8) * metal::smoothstep(0.1, 0.7, n_1 + 0.25)) * metal::smoothstep(0.05, 0.55, _e109 + (0.7 * (1.0 - (metal::min(k, 1.6) / 1.6)))); float _e167 = fr.look.x; float o = metal::max(in_1.shape.y, 0.0) * _e167; float bA = (body * dens) * o; float hA = (halo * o) * 0.3; float alpha = metal::clamp(bA + (hA * (1.0 - bA)), 0.0, 0.97); if (alpha < 0.004) { metal::discard_fragment(); } metal::float4 _e185 = fr.eye; metal::float3 V = metal::normalize(_e185.xyz - in_1.world); float k1_1 = metal::min(k, 1.0); metal::float3 _e197 = unitOr(in_1.side, metal::float3(1.0, 0.0, 0.0)); metal::float3 N = metal::normalize(((_e197 * (x_2 / r_1)) + (V * metal::sqrt(metal::max(1.0 - (k1_1 * k1_1), 0.0)))) + metal::float3(0.0, 0.0001, 0.0)); metal::float4 _e216 = fr.light; metal::float3 toL = _e216.xyz - in_1.world; float d2_ = metal::dot(toL, toL); metal::float3 Ld = toL * metal::rsqrt(metal::max(d2_, 0.00000001)); float _e228 = fr.light.w; float _e232 = fr.lightColor.w; float E = _e228 / (d2_ + _e232); float wrapD = metal::max(metal::dot(N, Ld) + 0.6, 0.0) / 1.6; float through = (0.3 + metal::pow(metal::max(metal::dot(-(V), Ld), 0.0), 3.0)) * in_1.dims.z; float rimEdge = metal::smoothstep(0.25, 0.85, k) * (1.0 - (firm_1 * 0.6)); metal::float4 _e267 = fr.lightColor; metal::float4 _e273 = fr.ambient; metal::float4 _e283 = fr.lightColor; metal::float3 bodyCol = (metal::float3(0.005, 0.0055, 0.007) * ((_e267.xyz * (E * wrapD)) + _e273.xyz)) + ((metal::float3(0.02, 0.02, 0.022) * _e283.xyz) * ((E * wrapD) * rimEdge)); metal::float4 _e296 = fr.lightColor; metal::float4 _e306 = fr.ambient; metal::float4 _e314 = fr.lightColor; metal::float4 _e323 = fr.rim; metal::float3 haloCol = ((metal::float3(0.05, 0.05, 0.055) * ((_e296.xyz * (E * (0.45 + (0.55 * wrapD)))) + (_e306.xyz * 6.0))) + (_e314.xyz * ((E * through) * 0.03))) + (_e323.xyz * (0.6 + (0.8 * n_1))); metal::float3 color = (bodyCol * bA) + ((haloCol * hA) * (1.0 - bA)); float _e344 = fr.eye.w; metal::float3 _e345 = encodeHdr(color / metal::float3(metal::max(alpha, 0.0001)), _e344); return fs_mainOutput { metal::float4(_e345 * alpha, alpha) }; }   �\9qJàAvs_mainmain#struct SmokeFrame { row_major float4x4 viewProj; float4 eye; float4 light; float4 lightColor; float4 ambient; float4 rim; float4 look; }; struct SmokeIn { float2 q; float4 p0; float4 p1; float4 p2; float4 p3; float4 p4; float4 m; float4 n; }; struct VsOut { float4 position; float3 world; float2 local; float3 shape; float3 side; float4 dims; }; struct Curve { float3 P0; float3 P1; float3 P2; float3 P3; float3 P4; float3 T0; float3 T1; float3 T2; float3 T3; float3 T4; float4 L; }; static const VsOut _502 = { float4(0.0f, 0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float2(0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f) }; cbuffer fr : register(b0) { SmokeFrame fr_1_m0 : packoffset(c0); }; static float4 gl_Position; static float2 q; static float4 p0; static float4 p1; static float4 p2; static float4 p3; static float4 p4; static float4 m; static float4 n; static float3 world; static float2 local; static float3 shape; static float3 side; static float4 dims; struct SPIRV_Cross_Input { float2 q : TEXCOORD0; float4 p0 : TEXCOORD1; float4 p1 : TEXCOORD2; float4 p2 : TEXCOORD3; float4 p3 : TEXCOORD4; float4 p4 : TEXCOORD5; float4 m : TEXCOORD6; float4 n : TEXCOORD7; }; struct SPIRV_Cross_Output { float3 world : TEXCOORD0; float2 local : TEXCOORD1; float3 shape : TEXCOORD2; float3 side : TEXCOORD3; nointerpolation float4 dims : TEXCOORD4; float4 gl_Position : SV_Position; }; float3 unitOr(float3 v, float3 fallback) { float _335 = length(v); float _336 = max(_335, 9.9999999392252902907785028219223e-09f); float3 _338 = v / float3(_336, _336, _336); bool _339 = _335 > 9.9999999747524270787835121154785e-07f; bool3 _341 = bool3(_339, _339, _339); return float3(_341.x ? _338.x : fallback.x, _341.y ? _338.y : fallback.y, _341.z ? _338.z : fallback.z); } float3 pick3(float i, float3 a, float3 b, float3 c, float3 d) { bool _353 = i < 2.5f; bool3 _355 = bool3(_353, _353, _353); float3 _354 = float3(_355.x ? c.x : d.x, _355.y ? c.y : d.y, _355.z ? c.z : d.z); bool _356 = i < 1.5f; bool3 _358 = bool3(_356, _356, _356); float3 _357 = float3(_358.x ? b.x : _354.x, _358.y ? b.y : _354.y, _358.z ? b.z : _354.z); bool _359 = i < 0.5f; bool3 _361 = bool3(_359, _359, _359); return float3(_361.x ? a.x : _357.x, _361.y ? a.y : _357.y, _361.z ? a.z : _357.z); } float pick1(float i, float a, float b, float c, float d) { return (i < 0.5f) ? a : ((i < 1.5f) ? b : ((i < 2.5f) ? c : d)); } float3 curvePos(Curve c, float s) { float _384 = min(floor(s), 3.0f); float _385 = s - _384; float _414 = pick1(_384, c.L.x, c.L.y, c.L.z, c.L.w); float _415 = _385 * _385; float _416 = _415 * _385; return (((pick3(_384, c.P0, c.P1, c.P2, c.P3) * (((2.0f * _416) - (3.0f * _415)) + 1.0f)) + (pick3(_384, c.T0, c.T1, c.T2, c.T3) * (((_416 - (2.0f * _415)) + _385) * _414))) + (pick3(_384, c.P1, c.P2, c.P3, c.P4) * ((3.0f * _415) - (2.0f * _416)))) + (pick3(_384, c.T1, c.T2, c.T3, c.T4) * ((_416 - _415) * _414)); } void vert_main() { bool _496 = false; float along = 0.0f; float3 C = float3(0.0f, 0.0f, 0.0f); float3 p = float3(0.0f, 0.0f, 0.0f); bool _492 = false; float3 T = float3(0.0f, 0.0f, 0.0f); VsOut _out = _502; float turn = 1000.0f; float r = 0.0f; SmokeIn _438 = { q, p0, p1, p2, p3, p4, m, n }; float _515 = length(_438.p1.xyz - _438.p0.xyz); float _517 = length(_438.p2.xyz - _438.p1.xyz); float _519 = length(_438.p3.xyz - _438.p2.xyz); float _521 = length(_438.p4.xyz - _438.p3.xyz); float _524 = ((_515 + _517) + _519) + _521; float3 _526 = unitOr(_438.p1.xyz - _438.p0.xyz, float3(0.0f, 1.0f, 0.0f)); float3 _528 = unitOr(_438.p2.xyz - _438.p1.xyz, _526); float3 _530 = unitOr(_438.p3.xyz - _438.p2.xyz, _528); float3 _532 = unitOr(_438.p4.xyz - _438.p3.xyz, _530); float3 _534 = unitOr(_526 + _528, _528); float3 _536 = unitOr(_528 + _530, _530); float3 _538 = unitOr(_530 + _532, _532); float _543 = (clamp(_438.q.y, 0.0f, 32.0f) / 32.0f) * 4.0f; float _545 = min(floor(_543), 3.0f); float _546 = _543 - _545; float3 _547 = pick3(_545, _438.p0.xyz, _438.p1.xyz, _438.p2.xyz, _438.p3.xyz); float3 _548 = pick3(_545, _438.p1.xyz, _438.p2.xyz, _438.p3.xyz, _438.p4.xyz); float3 _549 = pick3(_545, _526, _534, _536, _538); float3 _550 = pick3(_545, _534, _536, _538, _532); float _551 = pick1(_545, _515, _517, _519, _521); float _574 = _546 * _546; float _575 = _574 * _546; C = (((_547 * (((2.0f * _575) - (3.0f * _574)) + 1.0f)) + (_549 * (((_575 - (2.0f * _574)) + _546) * _551))) + (_548 * ((3.0f * _574) - (2.0f * _575)))) + (_550 * ((_575 - _574) * _551)); T = unitOr((((_547 * ((6.0f * _574) - (6.0f * _546))) + (_549 * ((((3.0f * _574) - (4.0f * _546)) + 1.0f) * _551))) + (_548 * ((6.0f * _546) - (6.0f * _574)))) + (_550 * (((3.0f * _574) - (2.0f * _546)) * _551)), _549); r = lerp(pick1(_545, _438.p0.w, _438.p1.w, _438.p2.w, _438.p3.w), pick1(_545, _438.p1.w, _438.p2.w, _438.p3.w, _438.p4.w), _546); along = pick1(_545, 0.0f, _515, _515 + _517, (_515 + _517) + _519) + (_546 * _551); bool _629 = _438.q.y > 32.0f; if (!(_438.q.y < 0.0f)) { _492 = _629; } else { _492 = true; } if (_492) { bool3 _641 = bool3(_629, _629, _629); float3 _640 = float3(_641.x ? _438.p4.xyz.x : _438.p0.xyz.x, _641.y ? _438.p4.xyz.y : _438.p0.xyz.y, _641.z ? _438.p4.xyz.z : _438.p0.xyz.z); float3 _642 = -_526; bool3 _644 = bool3(_629, _629, _629); float3 _643 = float3(_644.x ? _532.x : _642.x, _644.y ? _532.y : _642.y, _644.z ? _532.z : _642.z); float3 _649 = normalize(fr_1_m0.eye.xyz - _640); r = _629 ? _438.p4.w : _438.p0.w; bool3 _666 = bool3(_629, _629, _629); T = float3(_666.x ? _532.x : _526.x, _666.y ? _532.y : _526.y, _666.z ? _532.z : _526.z); along = _629 ? (_524 + (r * fr_1_m0.look.y)) : ((-r) * fr_1_m0.look.y); C = _640 + (unitOr(_643 - (_649 * dot(_643, _649)), unitOr(cross(_649, unitOr(cross(unitOr(_438.p4.xyz - _438.p0.xyz, _643), _649), float3(1.0f, 0.0f, 0.0f))), _643)) * (r * fr_1_m0.look.y)); } float3 _683 = normalize(fr_1_m0.eye.xyz - C); float3 _685 = cross(T, _683); float3 _693 = unitOr(_685, unitOr(cross(unitOr(_438.p4.xyz - _438.p0.xyz, T), _683), unitOr(cross(float3(0.0f, 1.0f, 0.0f), _683), float3(1.0f, 0.0f, 0.0f)))); float _698 = r * lerp(0.25f, 1.0f, smoothstep(0.0599999986588954925537109375f, 0.3499999940395355224609375f, length(_685))); Curve _700 = { _438.p0.xyz, _438.p1.xyz, _438.p2.xyz, _438.p3.xyz, _438.p4.xyz, _526, _534, _536, _538, _532, float4(_515, _517, _519, _521) }; float3 _701 = curvePos(_700, _543); float3 _705 = _701 - curvePos(_700, max(_543 - 0.125f, 0.0f)); float3 _709 = curvePos(_700, min(_543 + 0.125f, 4.0f)) - _701; float3 _712 = _705 - (_683 * dot(_705, _683)); float3 _715 = _709 - (_683 * dot(_709, _683)); float _716 = length(_712); float _717 = length(_715); if (_716 > 9.9999999747524270787835121154785e-07f) { _496 = _717 > 9.9999999747524270787835121154785e-07f; } else { _496 = false; } if (_496) { turn = (0.5f * (_716 + _717)) / max(acos(clamp(dot(_712, _715) / (_716 * _717), -1.0f, 1.0f)), 9.9999997473787516355514526367188e-05f); } float _742 = _438.q.x * clamp(0.89999997615814208984375f * turn, _698 * 1.10000002384185791015625f, _698 * fr_1_m0.look.y); p = C + (_693 * _742); p += (normalize(fr_1_m0.eye.xyz - p) * r); float _759 = clamp(along / max(_524, 9.9999997473787516355514526367188e-06f), 0.0f, 1.0f); _out.position = mul(float4(p, 1.0f), fr_1_m0.viewProj); _out.world = p; _out.local = float2(_742, along); _out.shape = float3(_438.m.w * smoothstep(_438.n.x, 1.0f, _759), _438.m.x * lerp(1.0f - _438.m.y, 1.0f - _438.m.z, _759), _698); _out.side = _693; _out.dims = float4(_524, _438.n.y, _438.n.z, _438.n.w); gl_Position = _out.position; world = _out.world; local = _out.local; shape = _out.shape; side = _out.side; dims = _out.dims; } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { q = stage_input.q; p0 = stage_input.p0; p1 = stage_input.p1; p2 = stage_input.p2; p3 = stage_input.p3; p4 = stage_input.p4; m = stage_input.m; n = stage_input.n; vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.world = world; stage_output.local = local; stage_output.shape = shape; stage_output.side = side; stage_output.dims = dims; return stage_output; } fs_mainmainstruct SmokeFrame { row_major float4x4 viewProj; float4 eye; float4 light; float4 lightColor; float4 ambient; float4 rim; float4 look; }; struct SmokeIn { float2 q; float4 p0; float4 p1; float4 p2; float4 p3; float4 p4; float4 m; float4 n; }; struct VsOut { float4 position; float3 world; float2 local; float3 shape; float3 side; float4 dims; }; struct Curve { float3 P0; float3 P1; float3 P2; float3 P3; float3 P4; float3 T0; float3 T1; float3 T2; float3 T3; float3 T4; float4 L; }; cbuffer fr : register(b0) { SmokeFrame fr_1_m0 : packoffset(c0); }; static float4 gl_FragCoord; static float3 world; static float2 local; static float3 shape; static float3 side; static float4 dims; static float4 _454; struct SPIRV_Cross_Input { float3 world : TEXCOORD0; float2 local : TEXCOORD1; float3 shape : TEXCOORD2; float3 side : TEXCOORD3; nointerpolation float4 dims : TEXCOORD4; float4 gl_FragCoord : SV_Position; }; struct SPIRV_Cross_Output { float4 _454 : SV_Target0; }; uint2 hash2u(uint2 v) { uint2 w = uint2(0u, 0u); w = (v * uint2(1664525u, 1664525u)) + uint2(1013904223u, 1013904223u); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); w.x += (w.y * 1664525u); w.y += (w.x * 1664525u); w ^= (w >> uint2(16u, 16u)); return w; } float hashCell(int2 i) { return float(hash2u(uint2(i + int2(32768, 32768))).x >> 8u) * 5.9604644775390625e-08f; } float vnoise(float2 p) { float2 _214 = floor(p); float2 _215 = p - _214; float2 _219 = (_215 * _215) * (float2(3.0f, 3.0f) - (_215 * 2.0f)); int2 _225 = int2(clamp(_214, float2(-2147483648.0f, -2147483648.0f), float2(2147483520.0f, 2147483520.0f))); return (lerp(lerp(hashCell(_225), hashCell(_225 + int2(1, 0)), _219.x), lerp(hashCell(_225 + int2(0, 1)), hashCell(_225 + int2(1, 1)), _219.x), _219.y) * 2.0f) - 1.0f; } float3 unitOr(float3 v, float3 fallback) { float _335 = length(v); float _336 = max(_335, 9.9999999392252902907785028219223e-09f); float3 _338 = v / float3(_336, _336, _336); bool _339 = _335 > 9.9999999747524270787835121154785e-07f; bool3 _341 = bool3(_339, _339, _339); return float3(_341.x ? _338.x : fallback.x, _341.y ? _338.y : fallback.y, _341.z ? _338.z : fallback.z); } float3 encodeHdr(float3 c, float mode) { if (mode > 0.5f) { return pow(clamp(c * 0.25f, float3(0.0f, 0.0f, 0.0f), float3(1.0f, 1.0f, 1.0f)), float3(0.3333333432674407958984375f, 0.3333333432674407958984375f, 0.3333333432674407958984375f)); } return c; } void frag_main() { VsOut _438 = { gl_FragCoord, world, local, shape, side, dims }; float _522 = (_438.dims.w + _438.local.y) * fr_1_m0.look.z; float _525 = _438.dims.y * 17.1299991607666015625f; float _528 = clamp(_438.shape.x, 0.0f, 1.0f); float _538 = vnoise(float2((_522 * 0.4199999868869781494140625f) + (((fr_1_m0.ambient.w * fr_1_m0.look.w) * fr_1_m0.look.z) * 0.4199999868869781494140625f), _525 * 0.709999978542327880859375f)); float _547 = max(_438.shape.z, 9.9999997473787516355514526367188e-05f) * lerp(0.7200000286102294921875f + (0.60000002384185791015625f * _538), 0.89999997615814208984375f + (0.20000000298023223876953125f * _538), _528); float _552 = length(float2(_438.local.x, _438.local.y - clamp(_438.local.y, 0.0f, _438.dims.x))) / _547; float _576 = (vnoise(float2(_522 + ((fr_1_m0.ambient.w * fr_1_m0.look.w) * fr_1_m0.look.z), ((_438.local.x / _547) * 0.85000002384185791015625f) + _525)) * 0.62000000476837158203125f) + (vnoise(float2(((_522 * 2.2999999523162841796875f) + (_525 * 0.37000000476837158203125f)) + (fr_1_m0.ambient.w * 2.400000095367431640625f), ((_438.local.x / _547) * 2.2000000476837158203125f) - (fr_1_m0.ambient.w * 0.800000011920928955078125f))) * 0.37999999523162841796875f); float _586 = lerp(0.800000011920928955078125f, 0.62000000476837158203125f, _528); float _587 = lerp(0.449999988079071044921875f, 0.1599999964237213134765625f, _528); float _619 = max(_438.shape.y, 0.0f) * fr_1_m0.look.x; float _621 = ((1.0f - smoothstep(_586 - _587, _586 + (_587 * 0.3499999940395355224609375f), _552 + ((_576 - 0.5f) * lerp(0.550000011920928955078125f, 0.1599999964237213134765625f, _528)))) * lerp(0.4199999868869781494140625f + (0.4000000059604644775390625f * _576), 0.949999988079071044921875f, _528)) * _619; float _623 = (((exp(((-_552) * _552) * 0.800000011920928955078125f) * smoothstep(0.100000001490116119384765625f, 0.699999988079071044921875f, _576 + 0.25f)) * smoothstep(0.0500000007450580596923828125f, 0.550000011920928955078125f, vnoise(float2((_522 * 3.2999999523162841796875f) - (fr_1_m0.ambient.w * 2.2000000476837158203125f), ((_438.local.x / _547) * 3.099999904632568359375f) + (_525 * 1.2999999523162841796875f))) + (0.699999988079071044921875f * (1.0f - (min(_552, 1.60000002384185791015625f) / 1.60000002384185791015625f))))) * _619) * 0.300000011920928955078125f; float _627 = clamp(_621 + (_623 * (1.0f - _621)), 0.0f, 0.9700000286102294921875f); if (_627 < 0.0040000001899898052215576171875f) { discard; } float3 _636 = normalize(fr_1_m0.eye.xyz - _438.world); float _637 = min(_552, 1.0f); float3 _654 = fr_1_m0.light.xyz - _438.world; float _655 = dot(_654, _654); float3 _658 = _654 * rsqrt(max(_655, 9.9999999392252902907785028219223e-09f)); float _664 = fr_1_m0.light.w / (_655 + fr_1_m0.lightColor.w); float _668 = max(dot(normalize(((unitOr(_438.side, float3(1.0f, 0.0f, 0.0f)) * (_438.local.x / _547)) + (_636 * sqrt(max(1.0f - (_637 * _637), 0.0f)))) + float3(0.0f, 9.9999997473787516355514526367188e-05f, 0.0f)), _658) + 0.60000002384185791015625f, 0.0f) / 1.60000002384185791015625f; float _732 = max(_627, 9.9999997473787516355514526367188e-05f); float3 _734 = ((((float3(0.004999999888241291046142578125f, 0.0054999999701976776123046875f, 0.007000000216066837310791015625f) * ((fr_1_m0.lightColor.xyz * (_664 * _668)) + fr_1_m0.ambient.xyz)) + ((float3(0.0199999995529651641845703125f, 0.0199999995529651641845703125f, 0.02199999988079071044921875f) * fr_1_m0.lightColor.xyz) * ((_664 * _668) * (smoothstep(0.25f, 0.85000002384185791015625f, _552) * (1.0f - (_528 * 0.60000002384185791015625f)))))) * _621) + (((((float3(0.0500000007450580596923828125f, 0.0500000007450580596923828125f, 0.054999999701976776123046875f) * ((fr_1_m0.lightColor.xyz * (_664 * (0.449999988079071044921875f + (0.550000011920928955078125f * _668)))) + (fr_1_m0.ambient.xyz * 6.0f))) + (fr_1_m0.lightColor.xyz * ((_664 * ((0.300000011920928955078125f + pow(max(dot(-_636, _658), 0.0f), 3.0f)) * _438.dims.z)) * 0.02999999932944774627685546875f))) + (fr_1_m0.rim.xyz * (0.60000002384185791015625f + (0.800000011920928955078125f * _576)))) * _623) * (1.0f - _621))) / float3(_732, _732, _732); _454 = float4(encodeHdr(_734, fr_1_m0.eye.w) * _627, _627); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { gl_FragCoord = stage_input.gl_FragCoord; gl_FragCoord.w = 1.0 / gl_FragCoord.w; world = stage_input.world; local = stage_input.local; shape = stage_input.shape; side = stage_input.side; dims = stage_input.dims; frag_main(); SPIRV_Cross_Output stage_output; stage_output._454 = _454; return stage_output; }   �\9qJàAHSLT SmokeFrame viewProjÿÿÿÿeye@ÿÿÿÿlightPÿÿÿÿ lightColor`ÿÿÿÿambientpÿÿÿÿrim€ÿÿÿÿlook�ÿÿÿÿfr_block frvs_mainvs_mainfs_mainfs_main ]#O GLSL.std.450Òvs_main·º½¿ÁÃÅÇÉËÍÏÐÑ @fs_main2479;=?@H #H H H #@H #PH #`H #pH #€H #�H #H #H # H #0H #@H #PH #`H #pH#H#H# H#0H#@H#PH#H#H# H#0H#@H#PH#`H#pH#€H #�H # G"G!GH#G·GºG½G¿GÁGÃGÅGÇGÉ GËGÍGÏGÐGÑGÑG2 G4G7G9G;G=G=G?             +€@+B ;!+,+‘ƒž=+®Ga=,+n§r?+ š™@,! +"æ®%=,#"""*+0R¸NA+1UUÕ>,2111+3= ‡?+4.M;,5444!A+BгY>+CY7?+D˜Ý“=,EBCD!L+M?+N€>+O€?,POOO+Q«ªª>,RQQQ!h+i f+j_ón<,kjj+l,mll o.p u+v+y! +¡€,¢¡¡+£+¤€3!° !À +ÁCq‰=+Â�E¿;, ÃÁÂ+Ä‚îSB+Í@@, ÎÍÍ+Ï@+Ð+Ñ,ÒÐÑ,ÓÑÐ,ÔÐÐ+ÜÏ, ÝÜÜ+ÞÿÿÿN, ßÞÞ!ô +õÀ@, öOO+)…ë?+*…ë@++Í̈A+,ÍÌl@, -+,+.áz”>+/q=‚@+0š™©@+133ïA, 201+3)\> 5.6!K+LwÌ+2+M½7†5!]+^ @+_À?!q!} ¸ ;¸· » ;»º;»½;»¿;»Á;»Ã;»Å;»Ç Ê ;ÊÉ Ì;ÌË Î ;ÎÍ;ÌÏ;ÌÐ;ÊÑ!Ó Ô ,ÖO)×,ØO+Ù�Âu=+Ú33³>+Û>+ÜzD*Ý+Þ€¿+ß·Ñ8+àfff?+áÍÌŒ?+â¬Å'7 ä.å.ç.é.ë í.î.ñ.ó õ.ö n o+p     ++++# ';»2 5;54;¸7;59;5;;»=;Ê?+B= ‰A+C= ×>+D�Â5?+Eš™?+FìQ8?+GÍÌL>+Hš™Y?+I33@+J¤p½>+KÍÌ @+LÍÌL?+MR¸?+N\�Â>+O33S@+PffF@+Qff¦?+Rffæ>+S ×#>+TÍÌ ?+UÍÌÌ>+V33s?+WÍÌÌ=+X333?+YÍÌÌ?+ZÍÌL=+[š™™>+\ìQx?+]oƒ;,^ß+_ ×£;+`X9´;+aB`å;,b_`a+c ×£<+dX9´<,eccd,fZZ+g�Âõ<67øù$ø$ %(Ž&%�'%Ž(' )(!¼*+%#©,+&)þ,86/7.ø-ù6ø6 7(.Ž870 972Ž:93ƒ;:¼*<75©=<8;þ=86@A7?ø>ùFøF”G?EþG86KL7I7JøHùSøSºTJM÷UúTVUøVŽWIN X+WP YXRþYøUþI86]L7[7\øZù^ø^º_\M÷`ú_a`øa…b[[…cb[Ždcþdø`þ[86gh7føe;onpùqøqPsii„rfs€trk>ntAuwnv=xwAuzny={z„|{i€}x|Au~nv>~}Auny=€Au�nv=‚�„ƒ‚i€„€ƒAu…ny>…„=†n=‡nˆ‡mƉ†ˆ>n‰AuŠnv=‹ŠAuŒny=�Œ„Ž�i€�‹ŽAu�nv>��Au‘ny=’‘Au“nv=”“„•”i€–’•Au—ny>—–=˜n=™nš™mÆ›˜š>n›=œnþœ86Ÿ 7žø�ù¥ø¥€¦ž¢|§¦9¨g§Q©¨Âª©£p«ª…¬«¤þ¬86 ¯°7®ø­ù±ø±€²®¢|³²9´g³Qµ´Â¶µ£p·¶Q¸´Â¹¸£pº¹P »·ºŽ ¼»¤þ¼86¿À7 ¾ø½ùÅøÅ”ƾà Ç Æ…ÈÄÇ É ÈþÉ86ÌÀ7 ËøÊùÕøÕ  Ö˃ ×ËÖ… Ø×׎ Ù×σ ÚÎÙ… ÛØÚ  à+ÖÝßnáà9âŸá€ãáÒ9äŸã€åáÓ9æŸå€çáÔ9èŸçQéÛ ê.âäéQëÛ ì.æèëQíÛ î.êìí…ïîσðïOþð86óô7 òøñù÷ø÷  øòƒ ùòø… úùùŽ ûùσ üÎû… ýúüŽ þùõƒ ÿöù… þÿ  +øÝßn9Ÿ€Ò9Ÿ€Ó9Ÿ€Ô9 Ÿƒ ƒ ƒ ƒ  �  Qý… �Qý… �Qý…Qý…�Qý…� Qý…� P … ! …"σ#"OŽ $!ÏP%#$þ%86(À7 'ø&;546ù7ø798Ì'…98)>49=:4Ž ;'*� <;-9=Ì<…>=.�?:>>4?=@4Ž A'/� BA29CÌB…DC3�E@D>4E=F4þF86JK7H7IøGùNøN OBH P(OLPQPPPˆRHQºSOMP*USSS©TURIþT86\]7W7X7Y7Z7[øVù`ø`¸aW^P*caaa©bcZ[¸dW_P*fddd©efYb¸gWMP*iggg©hiXeþh86pq7k7l7m7n7oøjùrør¸sk^©tsno¸uk_©vumt¸wkM©xwlvþx86|}7z7{øyù~ø~ { €%̓�{€Q‚zQƒzQ„zQ…z9 †\€‚ƒ„…Q‡zQˆzQ‰zQŠz9 ‹\€‡ˆ‰ŠQŒzQ�zQŽzQ�z9 �\€Œ�Ž�Q‘zQ’zQ“zQ”z 9 •\€‘’“”Q –z Q—–Q ˜z Q™˜Q šz Q›šQ œz Q�œ9 žp€—™›�…Ÿ��… Ÿ�…¡Ï …¢ÍŸƒ£¡¢�¤£OŽ¥†¤…¦ÏŸƒ§ ¦�¨§�…©¨žŽª�©�«¥ª…¬ÍŸ…­Ï ƒ®¬­Ž¯‹®�°«¯ƒ± Ÿ…²±žŽ³•²�´°³þ´86ÒÓøµ;íðñ;5êë;äãå;äòó;íìî;äæç;õôö;5ïÜ;5èé= ¹·= ¼º= ¾½= À¿= ÂÁ= ÄÃ= ÆÅ= ÈÇP ¶¹¼¾ÀÂÄÆÈAÔÕvù÷ø÷Q ø¶OùøøQ ú¶OûúúQ ü¶OýüüQ þ¶OÿþþQ ¶Oƒûù Bƒýû Bƒÿý Bƒÿ  B� �  �   ƒ ûù9J Öƒýû9Jƒÿý9Jƒÿ9J�9J�9J�9JQ ¶Q +ˆ…   !% ̓"!9 #\!ùûýÿ9 $\!ûýÿ9 %\!9 &\!9 'p! �(�)�*)9 +p!(*Q ,¶Q-,Q .¶Q/.Q 0¶Q10Q 2¶Q329 4p!-/13Q 5¶Q65Q 7¶Q87Q 9¶Q:9Q ;¶Q<;9 =p!68:<…>""…?>"…@Ï?…AÍ>ƒB@A�CBOŽD#C…EÏ>ƒF?E�GF"…HG'ŽI%H�JDI…KÍ>…LÏ?ƒMKLŽN$M�OJNƒP?>…QP'ŽR&Q�SOR>ãS…Tõ>…Uõ"ƒVTUŽW#V…XÍ>…Y"ƒZXY�[ZO…\['Ž]%\�^W]…_õ"…`õ>ƒa_`Žb$a�c^b…dÍ>…eÏ"ƒfde…gf'Žh&g�ich9jJi%>æj k.4=">èk…l"'�m+l>êmAoqÕpy=rqQ s¶QtsºutQ v¶Qwv¸xw¨yx÷zúy{|ø{>ìuùzø|>ì×ùzøz=}ì÷~ú}~øP*�uuu©€�ù‚P*„uuu©ƒ„‚An…Õy= †…O‡††ƒˆ‡€ ‰EˆƒŠù9‹JŠƒ ŒD‹‰9�JŒØ”Žƒ‰Ž�‰Žƒ�ƒ� ‘D‰�9’J‘ƒ9“J�’Q ”¶Q•”Q –¶Q—–©˜u—•>è˜P*šuuu©™š>æ™=›èœ›…�œr=žè…Ÿžr�  Ÿ©¡u �>ê¡=¢è…£¢rޤ“£�¥€¤>ã¥ù~ø~An¦Õy= §¦O¨§§=©ãƒª¨© «Eª=¬æ ­D¬«ƒ®ù=¯æ9°J®¯ ±D°« ²DÖ«9³J²Ø9´J±³9µJ­´=¶è ·B­ ¸1ÙÚ· ¹.NO¸…º¶¹P » P¼ùûýÿ»9½|¼ƒ¾Û ¿(¾9À|¼¿ƒÁ½À�ÂÛ Ã%Â9Ä|¼ÃƒÅĽ”ÆÁ«ŽÇ«ÆƒÈÁÇ”ÉÅ«ŽÊ«ÉƒËÅÊ ÌBÈ ÍB˺ÎÌM÷ÏúÎÐÑøÐºÒÍM>ðÒùÏøÑ>ðÝùÏøÏ=Óð÷ÔúÓÕÔøÕ�ÖÌÍ…×MÖ”ØÈË…ÙÌÍˆÚØÙ Û+ÚÞO ÜÛ Ý(Ü߈Þ×Ý>ïÞùÔøÔQ ß¶Qàß=áï…âàá…ãºá…äºr å+âãä…æàå=çãŽèµæ�éçè>òé=êòAnëÕy= ìëOíìì=îòƒïíî ðEï=ñèŽòðñ�óêò>òó=ôê õ( âˆöôõ ÷+öOQ ø¶QùøQ ú¶Qûú ü1ûO÷…ýùüQ þ¶QÿþQ ¶QƒOQ ¶QƒO .÷…ÿA  Õv=  = òP  O‘   Aôv>=òAäôy>=êP æAô>PýºAäô>Aäô>µQ ¶QQ ¶QQ ¶Q! P " !A$ô#>$"=%ôQ &%>É&A'(Éy=)(*)>(*Q+%>Ë+Q ,%>Í,Q-%>Ï-Q.%>Ð.Q /%>Ñ/ý86@Óø0= 32=64= 87=:9=<;= >=P 1368:<>AÔAvùhøhQ i1QjiQ k1QlkQ m1QnmAooA=poAoqAp=rqQ s1Qts�utn…vurQ w1Qxw…yxBQz1Q{z |+{O…}vCAo~Ap=~…€p…�€r…‚�C�ƒ}‚…„yDP …ƒ„9†Ì……‡E†�ˆF‡…‰G†�Šà‰ ‹.ˆŠ|QŒ1Q�Œ Ž(�ß…�Ž‹ �+njƒ‘n�P ’l‘ “B’ˆ”“�Ao•Ap=–•…—p–…˜—r�™v˜ˆšl�…›šH�œ›yP �™œ9žÌ�…ŸvI… yJ�¡Ÿ …¢p �£¡¢ˆ¤l�…¥¤K…¦pLƒ§¥¦P ¨£§9©̨…ªžM…«©N�¬ª«…­vO…®pKƒ¯­®ˆ°l�…±°P…²yQ�³±²P ´¯³9µÌ´ ¶.LM| ·.RS|ƒ¸¬M ¹.TS|…º¸¹�»”ºƒ¼¶·…½·Ú�¾¶½ ¿1¼¾»ƒÀO¿…ÁU¬�ÂCÁ Ã.ÂV|Ä”…ÅÄ”…ÆÅL ÇÆ�ȬN É1WXÈ…ÊÇÉ Ë%”YˆÌËYƒÍOÌ…ÎXÍ�ϵΠÐ1ZTÏ…ÑÊÐQÒ1QÓÒ Ô(ÓAoÕApv=ÖÕ…×ÔÖ…ØÀÃ…ÙØ×…ÚÑ×…ÛÚ[ƒÜOÙ…ÝÛÜ�ÞÙÝ ß+Þ\¸àß]÷áúàâáøâüøáAnãAy= äãOåääQæ1ƒçåæ èEç é%”OQê19ëJêØˆìl�Žíëì…îééƒïOî ð(ï ñðŽòèñ�óíò�ôó^ õEôAnöA= ÷öOø÷÷Qù1ƒúøù”ûúú ü(ûL ý üŽþúýAoÿA=ÿAoA=�ûˆ”õþ�E (ˆY è”  þ  (    Í� [ Q 1Q…  1NH”…|EƒO…AnA= O…ŽAnA= O�…bAnA= O!  …"e!…#…$#Ž%"$�&%An'A= ('O)((…*T�+R*…,+Ž-),An.A= /.O0//Ž10õ�2-1…3f2An4A= 54O655…7…87gŽ968�:39An;A#= <;O=<<…>L¬�?E>Ž@=?�A:@ŽB&ÙŽCAÛƒDOÙŽECD�FBE G(ßßPHGGGˆIFHAoJAy=KJ9LKIKŽMLßP NMß>?Ný8  �\9qJàA�@ù1°¾¹úy½Ó3-Û÷¾ç'H<+5èoé�Á»dX>øEÞ#N×Õ®àÓ›@Ú�.#„)àD4àbm½?…ʶ¼Act½ÂtitleÃTitle½ÂreadyÃReady½ÂplayÃPlay½ÂwinÃWin½ÂloseÃLose½ÂwinCardÃWinCard½ÂloseCardÃLoseCard‡–Figure Phase to JoystickËÌ΀¿‡–Look to JoystickËÌ€¿Î€¿‡–Unit to JoystickËÌ΀¿‡–Edge fill to trim startËÌÎ?χ–Edge fill to trim endËÌÎ?‡–Figure Unit to JoystickËÌ΀¿³­ BookDebug¯­open¯­moon¯­door¯­dial¯­look¯­ shadowMode¯­aa¯­autoplay¯­haunt¯­dread¯­audio¯­yaw¯­pitch¯­truth¯­tremble¯­freed¯­gameAt¯­ending¯­moonUp¯­ clockMatch¯­camFov¯­camX¯­camY¯­camZ¯­camTX¯­camTY¯­camTZ¯­prox¯­holdCap¯­frame¯­cold¯­boil¯­charm¯­wind»­finaleµ¶Defaultºª¿€¿ºª¿€¿ºª¿€¿ºª¿€¿ºª¿Àºª¿€?ºª¿€?ºªºª¿€¿ºª ¿€¿ºª ºª ¿Àyĺª ¿Àyĺª ¿€¿ºª¿€¿ºª¿€¿ºªºªºªºªºª¿€¿ºª¿€¿ºªºªºªºª¿š™ù?ºª¿Háš?ºªºªºª¿…k¾ºª¿€¿ºª¿€¿ºª ¿€¿ºª!¿€¿±ª"³­ LookDebug¯­hdr¯­resScale¯­paper¯­ translucency¯­ao¯­flameFx¯­bloom¯­grade¯­grain¯­vignette¯­ca¯­tonemap¯­glow¯­moon¯­drift¯­view¯­snuffAt¯­snuffDur¯­ relightAt¯­exposure¯­ benchPass¯­ benchRepeat¯­ phosphorStep¯­ pageStatic¯­ pcfGrowth¯­ pixelRatio¯­maxMP¯­resizeAt¯­dither¯­ ditherWidth¯­ ditherLevels¯­room¯­haze¯­shafts¯­motes¯­roomRes¯­fog¯­crease¯­atlasAll¯­ candleDetail¯­ slowFrames¯­roomMask¯­sdf¯­sdfEvery¯­ morphDither¯­dofµ¶Defaultºª¿€?ºªºª¿€?ºª¿€?ºª¿€?ºª¿€?ºª¿€?ºª¿€?ºª¿€?ºª ¿€?ºª ¿€?ºª ¿€?ºª ¿€?ºª ¿€?ºª¿€?ºªºªºª¿š™?ºªºªºªºªºªºª¿€?ºª¿€¿ºªºªºªºªºªºªºª¿€?ºª ¿€?ºª!¿€?ºª"¿€?ºª#ºª$¿€?ºª%¿€?ºª&ºª'¿€¿ºª(ºª)¿€?ºª*¿€?ºª+ºª,¿€¿ºª-¿€?³­ BookStage¯­x¯­y¯­scaleµ¶Defaultºªºªºª¿€?³­BookRoom¯­ doorAngle¯­latch¯­lantern¯­lanternZ¯­ doorLight¯­moonDim¯­bookFall¯­wallLean¯­lock¯­lockX¯­lockY¯­lockZµ¶Defaultºªºªºªºª¿À@ºªºªºªºªºªºª ¿ÍÌŒÀºª ¿ÍÌÌ?ºª ¿33ÃÀ³­Book¯­candleX¯­candleZ¯­ candleHeight¯­flame¯­breath¯­dread·­act¾ö­relight´­debugµ´­lookµ¯­openÀ­moonUpÀ­coronationOpen¯­ clockAngleÀ­ witnessTapped¯­ stillTime¯­ watchDistÀ­ unwatchedÀ­endCardÀ­restart´­stageµ»­hint¯­ hintAlpha¯­gazeYaw¯­ gazePitch¯­gazeAway¯­ clockMinutes´­roomµ¯­freed¯­gameTime¯­ introAlphaÀ­lookHeld¯­ lookDragX¯­ lookDragYÀ­ mouseBridge»­lookHintÀ­ touchControlsÀ­ touchPaused¯­ lookPadAlpha¯­ lookTextAlpha¯­ lookTextScale¯­ lookPadScaleX¯­ lookPadScaleY¯­lookY»­cursor¯­glance¯­glanceAt¯­ edgeGlowL¯­ edgeGlowR¯­hintY¯­looking¯­dwell¯­ dwellEdge¯­ edgeGlowT¯­ edgeFillL¯­ edgeFillR¯­ edgeFillT¯­candleSX¯­candleSYµ¶Defaultºª¿ ×£>ºª¿®Gá>ºª¿\�Â>ºªºªºª°ª°õª¼ªÁ¼ª Áºª Áª Áª ºª ÁªºªºªÁªÁªÁª¼ªÁ±ªºªºªºª¿ºªºª¿€¿¼ªÁºªºªºª¿€?Áªºª ºª!Áª"±ª#Áª$Áª%ºª&ºª'ºª(¿€?ºª)¿€?ºª*¿€?ºª+¿€TD±ª,ºª-ºª.¿€¿ºª/ºª0ºª1¿ADºª2ºª3ºª4ºª5ºª6ºª7ºª8ºª9¿€¿ºª:¿€¿³­Page»­text»­riddleµ¶Default±ª± I. WITNESS±ª³­Piece¯­pop¯­look¯­dreadö­hopö­lungeµ¶Defaultºª¿€?ºªºªõªõª³­Figure¯­walk¯­lean¯­eyesö­blinkö­burst¯­closeµ¶Defaultºªºªºª¿€?õªõªºª€‰ÄÄÈDaDîìÇBook¤åæçèéêëìñò™ÈDaDîv$<¿Ê Ì¿ÊÌ¿ÊÌ¿Ê̆ HD C™î?ï?‰’@B—y%Òæïÿ‡�Œ%The vows are broken. The book sleeps.† HD¨C™î?ï?‰’�B—z%Òæïÿ‡� Œ"You weren’t supposed to be here.† HD€MD™î?ï?‰ ’ØA—{%Òæïÿ‡ � Œtap or click to begin again† HD€SD™î?ï?‰’B—|%Òæïÿ‡�ŒStrike the match.† HD€SD™î?ï?‰’B—}%Òæïÿ‡�Œdrag the cover left to open¿Ê̆ HDC™î?ï?‰’pB—~%Òæïÿ‡�ŒYou should not be here.† HDhC™î?ï?‰’(B—%Òæïÿ‡�Œ+Free the five vows before the twelfth bell.† HDAD™î?ï?¿ÊÌ¿ÊÌ1‰!’B—€%Òæïÿ‡!�"¿ÊŒÌ† HD€TD™î?ï?¿ÊÌ+¿ÊÌ(¿ÊÌ(¿ÊÌ'‰%’B—�%Òæïÿ‡%�&¿ÊŒÌ# HD€TD¿ÊÌ&¿ÊÌ*¿ÊÌ+¿ÊÌ))(DÀBÐA‚%ǃ%Py–² à@¿ÊÌ/-..aD„%^²ÿÿ•„í A„„š6…%Ïïÿÿ„…š6…/6r?s?u¿Êr”Ì6¿Ês”Ì6 ÇD¿ÊÌ0899aD†%^²ÿÿ•†í A„†šA‡%Ïïÿÿ„‡šA…/Ar?s?u¿Êr”Ì7¿Ês”Ì7à@¿ÊÌ5CDDÈDˆ%^²ÿÿ•ˆí A„ˆšL‰%Ïïÿÿ„‰šL…/Lr?s?u¿Êr”Ì8¿Ês”Ì8ÍÌ @áC¿ÊÌ/N‚CÍŒÌC{Š"‚CP&jªâÿP&:p¸€'ffæ>P& J�'€?ÍÌ @ ÈDáC¿ÊÌ0T‚CÍŒÌC{€?‹"‚ÃV&jªâÿV&:p¸€'ffæ>V& J�'€?ÓMz@ HD¿ÊÌ5ZÍŒÌC\C|Œ#\C\&jªâÿ\&:p¸€'ffæ>\& J�'€?ýÐBíwitness`ìí witnessShadow`ìí confession`ìíconfessionShadow`ìíoath`ìí oathShadow`ìí sacrifice`ì ísacrificeShadow`ìí coronation`ìícoronationShadow`ìímoon`ì íclock`ìípageLeft`ì í pageRight`ìícover`ìípullTab`ìíconfessionShutters`ìímatch`ì ífigure`ìí figureHand`ì íreader`ì¤��ßàåæçèéêëìñòx%ÿ  "&))/@-/€A0-/@@08/€A08/@@0C/€A0C/@@0NTZ7 TitleDark9¬3535353535DC´DCäFš™Y?3 5357Ready9ð353535DCZDCŠFš™Y?35353 5357Intro9œ35DC*DC`DF€?CŽDF€?C¾353535353 535DCÀDCöDF…k?CÂDF…k?Cþ7Clear935353535353 5357WinCard9´3535DC`F€?3535353 5DCTDC�F333?357LoseCard9´35353535DC`F€?353 5DCTDC�F333?3557Story9ŠActs>@?A—âÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A— âÚ¿ÊýÌßå�A—=•A—ž�âÚ¿ÊýÌßå�A—žôâÚ¿ÊýÌßå�A—ž¬âÚ¿ÊýÌßå�A—žÈâÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A— âÚ¿ÊýÌßå�=•A—ž�âÚ¿ÊýÌßå�A—žôâÚ¿ÊýÌßå�A—ž¬âÚ¿ÊýÌßå�A—žÈâÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A— âÚ¿ÊýÌßå�=•A—ž�âÚ¿ÊýÌßå�A—ž�âÚ¿ÊýÌßå�A—ž¬âÚ¿ÊýÌßå�A—žÈâÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A— âÚ¿ÊýÌßå�=•A—ž�âÚ¿ÊýÌßå�A—ž�âÚ¿ÊýÌßå�A—žôâÚ¿ÊýÌßå�A—žÈâÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A— âÚ¿ÊýÌßå�=•A—ž�âÚ¿ÊýÌßå�A—ž�âÚ¿ÊýÌßå�A—žôâÚ¿ÊýÌßå�A—ž¬âÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå�A— âÚ¿ÊýÌßå�=•A—ž�âÚ¿ÊýÌßå�A—ž�âÚ¿ÊýÌßå�A—žôâÚ¿ÊýÌßå�A—ž¬âÚ¿ÊýÌßå�A—žÈâÚ¿ÊýÌßå�A— âÚ¿ÊýÌßå�=•A—ž�âÚ¿ÊýÌßå�A—ž�âÚ¿ÊýÌßå�A—žôâÚ¿ÊýÌßå�A—ž¬âÚ¿ÊýÌßå�A—žÈâÚ¿ÊýÌßå�A—âÚ¿ÊýÌßå� € E€;EzD€;DîCover¤åæçèéêëìñò† úCD™î?‰’ÈA—ë!%€«Åÿ‡�ŒDO NOT GIVE IT LIGHT† úC&C™î?‰’˜B—ì!%–¿Õÿ‡�ŒTHE BOOK† úCvC™î?‰ ’€B—í!%–¿Õÿ‡ � Œ OF SHADOWS† úC¥C™î?‰’ÀA—î!%o•¯ÿ‡�Œfive vows to the unseeing sun€ …‹£C…KéCq]¦CfFçC W©C wåC`¬CáZãCRø®C®'áCå±C…+ßCHá´C{4ÝC\¯·C¸>ÛC3“ºC×CÙCšY½Cš×CfFÀCáZÕCÃ5ÃCáúÒC ÆCáÑC)ÜÈCÏCH�ËC¤0ÍCRøÎCÍŒÌC=ªÒCÃÌC.ÖCáZËC�âÙCŽÊC wÝCÀÉC¸>áC…KÉC¸þäCì‘ÈC —èCÎÇCH!ìCöHÇC×ãïC…ÆC)|óC¤ðÅCîöC¸^ÅC×CúC×#ÆCö¨ýCìñÆCÕD{”ÇC¸^D\OÈC3#DHÉC¤àDáÚÉCö¨DöˆÊC3S D¤PËCš D�bÌCÍÜ D®ÍC)œD�âÍC)lDÕÎC%D WÏC…ëD¸^ÐCŽD=ÊÐC= D=ªÒCì‘D€ÔC)DìQÖC¸¾D\ØC®GD¤ðÙCR¸DRØÛC=J DõÝCà!D€ßC×c#D{táCRè$D.ãC\�&DRØäC�â'DÃõåC=j&DÃçC\¿$DqÝèC)<#D3ÓêC¤ !DH¡ìCHñD`îCìaD€ðC…»D=JòC=*DH!ôC\�DáÚõC¸îDq�÷C\_D¥ùC=ºDìQûC…Dá:ýCš‰DšÿC=êD®gÿC�"D ÷ÿC…[ Dq]D3³ DR¨DìñDìáD)D…+D)lD)lD\ŸDáºDqíDH!D�2Dq]DìÑüCf¦DRxùCqíDáZöC\�DáºòC\/DHAïC ×DÅëC×£D…KèC)lD)ÜäCÍ D®‡áCš¹D ÞC…kD…‹ÚCÃ%Dì×C¸žÿCì‘ÓCÍìþCÍ ÐC�BþCášÌC=êýCì‘ÉCqýC�‚ÆCf¦ûCš9ÃCÀùC.ÀCå÷Cqý¼CHöCRعCR8ôCš™¶CìqòCìq³C�¢ðCE°CîîCö­CìíC×ã©C WëC®§¦C¤PéCR˜£C3sçC®g¢CÍŒéCöˆ¥C{4ëC¤Ð¨C.íCšù«CîîCì1¯CšÙðC)\²C=ŠòC…kµC)|ôCö¨¸C\OöCÀ»C®'øC ÷¾C\ïùCšùÁCÃÕûC{TÅC®ÇýCášÈC=ªÿC®'ÌC33DH¡ÏC…{D)ÓCÃÅDÕÖCöDRÚC®wD¤°ÝC D×áC… DffäC\OD�âçCR˜D¸^ëC¸îDÍÌîC¤@DEòC€D�âõC×ÃD®gùCÍDq=ýC\ßDHaD×sD\D5D\ÏDfÖD=šDö¸D WD=jDH! DõDáÚ D{´Dq� DÃuD®WD�"D®D ×D¤àDÍ|DÍœDHÿC GD…KýCàD{TûCìqD×cùC{Dš¹÷C×£DHÁõCÃ5DîóCHÑD…ëñCqm DqýïCÃ"DfîC #DÃ5ìC>%D¸žêCÞ&D\¯èC¤°(DæC�ò&DšyãC W%D…«áC=ê#Dq½ßCfV"D{ôÝCÍÌ DÜCHAD{ÚCq½DöhØC.D3“ÖC®—DH¡ÔC®D×ãÒCq}D33ÑCöèD\ÏC),Dì1ÎC×cD…KÍC�¢Dš™ÌCÃÕDq½ËCH Df&ËC¤` D.ÊC• DÃUÉC çDìqÈC\D{”ÇCq]D¤ðÆCì¡D3ÆCÍÜDìÅCÃ5þC¤PÄC3ÓúCq�ÃC÷CìÑÂCìóC®gÃCöhïC= ÄC\¯ëC=êÄC 7èC wÅCf†äC\ïÅC®ÇàC)œÆCöÝCq]ÇCffÙC¸þÇCášÕC…‹ÈC.ÒC®gÉC¤�ÎCîÉCÍlÊCš™ÊC`ÇCqýÌC\�ÄC=êÎC{ÔÁCÑC3³¾C¤ÓCà»CÍ ÕCH!¹C®G×Cš9¶C¸ÙC\o³C¤0ÛC °CšYÝC®­C`ßCfæªCÃUáCå§C=jãCš9¥C…«åCHa¢C�¢çCï!%pš¶ÿê€ ëRØÈC33ÜCëf¦ÉC×àCë3SËCÕãCë{ôÌCÃUçCë�BÎC ÷êCë\¯ÏC=ªîCëq½ÑCRòCë�BÒC®çñC뮇ÑCöèíCëq½ÏCÃUêCë ÎCqÝæCëÍÌÌCãCë׃ËC¸>ßCëÃUÉC¸þÛCð!%pš¶ÿû€ üÍ,ÖC.ÜCüf×CfàCüŽØC¸žãCü…‹ÚCìQçCü�¢ÛC3óêCü3ÝCÅîCüš9ßCqòCüfÆßC�âñCü…ëÞCqýíCü®'ÝCRXêCü=ªÛC¸ÞæCüEÚC…ëâCü ÙC®'ßCü)œÖCšùÛCñ!%pš¶ÿŒ€ �¤ÐãC¤0ÜC�q}äC%àC��"æC{´ãC�åçCR8çC� 7éC…ëêC�3“êC…«îC�×ÃìCRòC�)<íC®çñC�eìC\ïíC�ÎêC�BêC�éC¸¾æC�¤°çCÃãC�H¡æC¤PßC�RXäCšùÛCò!%pš¶ÿ�€ ž…KñCö(ÜCžì1òC�"àCžͬóCf¦ãCžöHõCìQçCž=ªöCÍ ëCž øCq�îCž×CúCRòCž)¼úC®çñCž¸ÞùCàíCž\OøCHaêCžöÈöCáºæCž wõCÍìâCžôC¸^ßCžöÈñC3óÛCó!%pš¶ÿ®€ ¯š¹þC%ÜC¯€ÿCÃàC¯öˆD¸¾ãC¯ gDÃ5çC¯¤D3óêC¯f¶DRØîC¯ìáDšòC¯DfæñC¯\¿D¸þíC¯öèD×CêC¯= D=ªæC¯\_D{ãC¯…ËDHAßC¯á:ÿCÍìÛCô!%pš¶ÿ¿€ ÀšD… ÜCÀ\oD×àCÀ\ODöÈãCÀ\?D)\çCÀ×ÓD{ôêCÀÍŒ DÅîCÀ¤  DRòCÀ\ß D®çñCÀ…‹ DRøíCÀ׳ D)<êCÀšÙDáÚæCÀ®7D�ãCÀÃuD=*ßCÀšYDšÙÛCõ!%pš¶ÿЀ ÑáÚ D 7ÜCÑ W D¸àCÑö(DÕãCѸîD{TçCÑš™DšëCÑÃEDášîCѸ^DáòCÑH¡DåñCÑ…+DqÝíCÑšiDnêCÑŽDÃÕæCÑåDHãCÑq=DšYßCѸ DáúÛCö!%pš¶ÿဠâq�DÃÜCâþD\/àCâ ×Df¦ãC⤠D{4çCâ×cD)üêCâîDš¹îCâì!DšòCâ^DfæñCâÍüDqÝíCâ3#D�bêCâUD æCâR¨D)üâCâÍ D¤PßCâ¸ÞDàÛC÷!%pš¶ÿò€ óöh§C{TèCóš9«C�bèCó¸Þ®C wèCó=j²C®§èCóì¶C=ŠèCóŹCì‘èCóöh½C)\èCó×ÁC{4èCóR˜ÄCìÑçCó33ÈCì±çCó\ïËCf†çCó¸~ÏC=jçCóÍ,ÓC×cçCóq½ÖCÍ çCó¸^ÚC¥æCóÍìÝC=ŠæCó¸~áC\ÏæCófåC…+çCóf¦èC\OçCóeìC¸~çCóöðCõçCó…óC×ãçCóö÷C¸>èCóÎúCq�èCó®GþCì±èCó\ÿDRøèCó¸ÎDšYéCó\�Df†éCóìaD ÷éCóH!D®GêCó� D{”êCófÆ DöHêCóš‰ D\/êCó3cDf&êCó×D3ÓéCóÐD€éCóÍœDq]éCó=ZD\OéCóö(DféCóRøD¸ÞèCó…«DŽèCó¸nD…KèCó{4DÃèCóõ D=ªçCó3Ã"D)\çCó{t$DÎæCó×C&D)\æCó)<&D×£åCóáj$DÀåCóR¸"D¥åCó{ä Dì‘åCóH!D=ÊåCó^D¸ÞåCó{”D æCó®çD…KæCóRD{TæCóÃEDÍŒæCó…‹D¤ÐæCó)¼DRçCóÃõD¸>çCóáJDì±çCó~ DšùçCóf¶ Df&èCó3 DöhèCóÃ5DqèCóÃuD\ïçCóì¡D=ÊçCó�âD3SçCó¸D)<çCó�bþC3óæCó®çúC ·æCóÍ,÷C æCó…«óC33æCó.ðC®çåCóf†ìC3såCóÀèCRXåCóR8åCfåCó\¯áCŽäCó{ôÝCÃuäCóNÚC�‚äCó\�ÖCffäCófÓC�ÂäCóÍlÏCáÚäCó ×ËCHåCó{ÈC×#åCó3sÄCffåCó ×ÀCq}åCóöH½C=ÊåCó{´¹CìÑåCó ÷µC{ôåCó¤P²CÃUæCó…Ë®C=ªæCó®'«CÃ5çCó`§C…«çCø!%pš¶ÿÓ€ Ôq=BìѬBÔR¸=B…k´BÔ…_Bö(ºBÔ×#‚B{ÀBÔ=Š’B{”¶BÔ W BázªBÔö¨ŸB…©BÔ€�Báú±BÔš™�Bq½»BÔ= bB=жBÔ®GABÃu¯BÔö(B¤p«Bù!%pš¶ÿ†ãHáBö¨êBãš™ D{B€{"DÍÌB€…»#D×£B€H�%D¸B€¸N'DB€f)D\�B€{Ä*DÍÌB€�‚,DffB€…K.D�ÂB€\0D × B€öØ1DÍÌB€®—3D¸B€¤`5Dö(B€f&7DìQB€å8D¸B€�¢:D × B€ gDffB€…ë?D…ëB€¸®AD)\B€¸nCD{B€=*EDR¸B€ÃõFDázB€ÃÅHDš™B€öxJDìQB€NLD= B€\ÿMD ×B€ÃÅOD…ë B€׃QD…ëB€HQSD…ë B€Í UD�ÂB€RÈVD)\B€�¢XDÍÌ B€ffZD…B€�"\D\�B€{Ô]D= B€¸ž_D� B€¤paD¤pB€ácDffB€ÍìdDìQB€°fD¸B€ÃuhDq=B€ö(jDö(B€\ïkDq=B€{ÄmDB€¤poDÃõ B€0qD33B€…qDáz(B€3#qD®CB€öqDš™_B€\qD)\{B€áqDŒB€ qDìQšB€\qD€¨B€ìqD)\¶B€¸qD33ÄB€)qDR8ÒB€{qD×#àB€…qDÃõíB€qD{”üB€=qD.C€á qDR8 C€q qD{C€qD®C€{qDqý C€)qD…+(C€H!qD…+/C€šqD=J6C€3#qD\O=C€=qD×cDC€R(qD=JKC€q qD)RC€®'qDšYC€RqD3s`C€\qD¤pgC€ 'qDq=nC€fqD…uC€öqD×#|C€ qD3“�C€\qD¤…C€¤qD)¼ˆC€qDEŒC€3qDš™�C€×#qD×#“C€ qDΖC€×#qD%šC€®qD=ª�C€Í,qDá:¡C€áqD{´¤C€¤ qD 7¨C€®qDẫC€áqDá:¯C€…qDͬ²C€R(qD\O¶C€\qDf¦¹C€¸qDš9½C€¤qD{ÔÀC€R(qD¸^ÄC€%qD\ÏÇC€Ã%qD)\ËC€¸qDÎÎC€HqD33ÒC€ 'qD)ÜÕC€R(qD�BÙC€RqD�âÜC€=*qD{4àC€fqD®ÇãC€šqD`çC€Í,qDfæêC€�"qDöhîC€×#qDîñC€ÃqD)<õC€¤ qDìñøC€%qD®güC€áqDöÈÿC€ö(qD=ºD€3#qDÍlD€),qD 7D€qD…ëD€ÍqD°D€ qDšy D€),qD> D€qDÃå D€šqDÀD€\qD¸nD€q-qDìAD€×qDRøD€�"qD)¼D€ì!qD~D€=*qDš)D€®qDÍüD€),qD®D€Ã%qD~D€ì!qD¸>!D€×qD3#D€.qDq½$D€¤0qDöx&D€…+qDö8(D€¸qD×*D€�2qD®Ç+D€qD=z-D€šqD×3/D€3#qD¸þ0D€f&qD×£2D€ázoD{¤2D€{´mD�¢2D€=êkD®§2D€Í,jD=ª2D€šyhDš™2D€f¶fDÃ¥2D€fædD�¢2D€¤0cD®2D€ffaD¤°2D€¸®_D¤°2D€fæ]D¥2D€ \DR˜2D€HQZDR˜2D€ì‘XD)¬2D€)ÜVD\Ÿ2D€fUDq�2D€HASD\¯2D€H�QD¸®2D€q½ODH¡2D€þMD®—2D€…KLD¥2D€=ŠJD®—2D€)¼HDq­2D€ÃõFD)œ2D€…;ED=š2D€{tCD{¤2D€¸¾AD�’2D€Ãõ?D\Ÿ2D€Ã%>Dš™2D€nC®—2D€\Ï6CH‘2D€¤ð/C�¢2D€3³(C=Š2D€Há!Cf–2D€…ëC�’2D€H¡CÍŒ2D€� Cq�2D€ÍŒCáŠ2D€33ýB®‡2D€¤pïB 2D€ WáB¸ž2D€)ÜÒB®—2D€{ÅBד2D€ö(·B{¤2D€áz¨BÍŒ2D€\�šBד2D€ WŒBRˆ2D€¸}Böˆ2D€ìQaB×£2D€33DBH‘2D€33(Bì¡2D€¤p B�¢2D€q=B�ò0D€Há B…K/D€®B=Š-D€)\B Ç+D€¸Bqý)D€ÍÌ B=:(D€×£B ‡&D€…B®Ç$D€ × BÍü"D€×£B{4!D€ázBuD€= Bì±D€ÍÌB3óD€×£BHAD€ázBájD€ázBf¦D€ö(BþD€Ãõ Bá:D€q=BìqD€\�B…»D€ÍÌBÃå D€ìQBH1 D€…ëB{d D€� B×£D€ö(BqíD€ffBf&D€š™BRxD€\�BáªD€BåÿC€…Bá:üC€ÍÌ BÎøC€B@õC€ìQBq½ñC€�ÂB×cîC€33BÍìêC€š™Bš9çC€ázB=êãC€×£B¸>àC€= B¤ÐÜC€\�BeÙC€33B¤ÐÕC€…ëBÍLÒC€Há BfÆÎC€ìQBáZËC€ìQB)ÜÇC€)\BÍLÄC€š™BáÚÀC€×£B®G½C€� B×£¹C€®GBš9¶C€Ãõ B¥²C€Ãõ B®G¯C€Ãõ BΫC€ö(B{T¨C€\�B®¤C€33Bá:¡C€� BR¸�C€q=B%šC€ÃõB…«–C€= B…+“C€BR¸�C€\� B ŒC€{BHÁˆC€…ë Bš9…C€B3³�C€33BšY|C€B{TuC€…B×cnC€ö(B33gC€ö(Bá:`C€R¸BRxYC€{B.RC€33BÃ5KC€…BÃ5DC€…B{T=C€Há B{6C€Ãõ B{T/C€�ÂBá:(C€ ×B…+!C€®GBH!C€33BáúC€…B�B C€B�C€®GB€üB€R¸B ×íB€BHaàB€ö(B WÒB€¸B\�ÄB€R¸B)ܵB€33 Bq=¨B€®GB¤ð™B€×£ B¤ð‹B€)\B®|B€ffBR¸`B€Ãõ BR¸DB€¤p Bö((B€ffB= B€š™ BÃõ B€®G B¸(B€ BÍÌDB€33 B�Â`B€= Bš™|B€¤p B…ë‹B€áz B…ë™B€= B�B¨B€33 B)ܵB€ B…ÄB€)\ BffÒB€×£ B…kàB€®G BìÑíB€ÍÌ B€üB€®G BC€¤p Bá: C€33 BRøC€33 Bf&C€ìQ B.!C€\� BÃ5(C€{ B\O/C€R¸B{6C€{ BšY=C€áz BÃ5DC€33 Bá:KC€ff B¤0RC€q= B¤pYC€ìQ B@`C€…ë BÃ5gC€)\ B¸^nC€ ×B{TuC€\� B¸^|C€ B¤°�C€�ÂB 7…C€áz BHÁˆC€ ×B ŒC€{ BR¸�C€)\B.“C€ff B®–C€\� B�"šC€HáBáº�C€¤p Bq=¡C€)\ B®¤C€)\ B3S¨C€ B=Ê«C€{ B®G¯C€ÍÌB®§²C€ff Bš9¶C€�ÂB�¢¹C€= BöH½C€®B¸ÞÀC€)\ BÍLÄC€ö( BRØÇC€ö( BšYËC€HáB®ÇÎC€ BNÒC€®G BìÑÕC€ BffÙC€®G BÎÜC€®G B¸>àC€… BöèãC€¸ BR8çC€ázBîêC€� B×cîC€ázBš¹ñC€ázB@õC€HáB\ÏøC€…B¸>üC€… BfæÿC€áz BáªD€R¸ BöxD€ff BÃ%D€)\ B…ëD€®B×£D€®G Be D€HáBH1 D€ ×Bå D€…BͼD€® BHqD€ázBš9D€ ×BD€Há BR¨D€® BájD€Ãõ B¤@D€ × B�òD€ö( B¤°D€q= B{tD€ B×3!D€ÍÌBÍü"D€{ BšÉ$D€= BÃ…&D€ázBö8(D€{ Bqý)D€ffB®Ç+D€ÍÌB=Š-D€ ×B…K/D€HáB�ò0D€ìQ B3ã2D€q=(B¤ð2D€ö(DBÍì2D€)\aB®÷2D€®G}Bfæ2D€ìQŒBìá2D€=ŠšBð2D€Ãu¨BHá2D€×#·Bfö2D€¸ÅBå2D€ìÑÒBáê2D€ìQáBqí2D€€ïBáú2D€�BýB3ã2D€…Cöè2D€� CRø2D€f¦CÃå2D€öèCRè2D€fæ!C�ò2D€¤°(CáÚ2D€î/C\ï2D€\Ï6C3ã2D€¤0>C\ï2D€)EC{ä2D€¸LCáÚ2D€�SCHñ2D€ìZC)ì2D€aC…ë2D€ÍLhC\ï2D€…koCð2D€…kvC¸î2D€×c}Cšé2D€Ã5‚CRè2D€öÈ…C×ó2D€×C‰Cà2D€qÝŒC¤ð2D€×c�Cáê2D€ẓCáê2D€šY—C{ô2D€qýšC=Ú2D€{TžCÞ2D€H¢CÞ2D€`¥C¸î2D€Íì¨C…Û2D€€¬C=Ú2D€áú¯C¸î2D€ÍŒ³C¤à2D€f&·C3ó2D€×£ºCìá2D€ö(¾C¤à2D€R˜ÁCRØ2D€H!ÅC¸î2D€f¦ÈC¤ð2D€{4ÌC)ì2D€ÎÏC=ê2D€{TÓCöè2D€3³ÖC3ó2D€ìQÚCìá2D€qÝÝCáÚ2D€náCÍÜ2D€ÅäCÞ2D€…KèCáê2D€)üëCHá2D€)\ïCöØ2D€fæòCšÙ2D€`öCöè2D€ÃõùCfÖ2D€)œýCRè2D€áŠD®×2D€PD…ë2D€þDRØ2D€¤ÀD®ç2D€¸žDHá2D€�R DÃÕ2D€×# DÞ2D€)Ü DÕ2D€3“DHñ2D€RhDå2D€R(D{Ô2D€ðDáÚ2D€{¤D¤à2D€qmD=ê2D€š9D®ç2D€3óDšÙ2D€ͼDå2D€ wD…Û2D€Í< DqÝ2D€Íü!DÞ2D€)Ì#D{ä2D€\%D=ê2D€Í<'D=Ú2D€�)D\Ï2D€×Ã*DHÑ2D€®—,DÍÜ2D€{T.D3ã2D€Ã0D×Ó2D€öØ1D\ß2D€�3D3ã2D€®W5Dà2D€{$7DRØ2D€Õ8Dìá2D€Íœ:DÞ2D€nDqÝ2D€fö?DöØ2D€¾AD{Ô2D€{tCDRè2D€) D€{dqDöx D€ÃUqD°D€¤`qDqíD€¸nqD 7D€RXqDÍlD€`qD=ºD€q]qD®ÇÿC€¸^qD®güC€ WqD¤ðøC€®WqDq=õC€^qD\ïñC€¸^qDöhîC€�bqDfæêC€ WqDq]çC€áZqD…ËãC€nqD33àC€NqDHáÜC€ìaqDfFÙC€nqDRØÕC€®WqD¤0ÒC€ÃUqD\ÏÎC€Í\qDq]ËC€ÍlqD¤ÐÇC€…kqD)\ÄC€®WqDìÑÀC€RXqDá:½C€¤`qDö¨¹C€öhqDN¶C€¸^qD=ª²C€�bqDá:¯C€ WqDẫC€Í\qDR8¨C€®WqDõ¤C€ÍlqDá:¡C€…[qDö¨�C€)lqD%šC€áZqDΖC€¸nqD�"“C€=ZqD —�C€)\qDEŒC€)\qDẈC€®WqD3…C€RhqD{”�C€^qDH!|C€ WqD=ŠuC€pqD�BnC€¸nqD…kgC€¤`qD3s`C€\oqD YC€^qD¸RC€3sqDÍLKC€HaqD×cDC€pqD\O=C€¤`qD®G6C€qmqD…+/C€ìaqDö((C€ìaqDáú C€šYqDC€RXqD{C€q]qDá: C€q]qD.C€RXqDš™üB€qmqDáúíB€\_qD×#àB€HaqDq=ÒB€ÍlqD.ÄB€RXqDìQ¶B€q]qD=ЍB€)lqD)\šB€¤pqDáú‹B€fVqD)\{B€=jqDR¸_B€ÍlqD®CB€ìaqD…(B€ájqDš™ B€HqoDázB€ìÁmD®G B€\ïkD¤p B€ö(jDš™ B€uhD)\ B€H±fD…ë B€îdD¸ B€ácD¸ B€HqaD¤p B€¸ž_D\�B€3Ó]D… B€�"\D…ë B€®gZDÍÌ B€H¡XD\�B€ ÇVDHá B€¸UD)\ B€HQSDÃõB€׃QDáz B€ÃÅODHáB€þMDìQ B€¸NLDš™ B€RxJD®B€{ÄHD{ B€ ÷FDR¸ B€š)ED ×B€¸nCDáz B€®AD… B€)ì?DÃõ B€ö8>D…B€ g D¸ B€šiDš™B€ö¸D® B€ðD)\ B€{$D¸ B€®wDö( B€ §D…ë B€×óD33 B€¸DÍÌB€ìQD�ÂB€דD…ë B€áÚ D × B€ D¸ B€ìa D®GB€q�D…ëB€ÅD×£ B€\D B€{DD®G B€H‘Dš™ B€ášýCHáB€=êùC¤p B€׃öCR¸B€Í óC × B€áZïC ×B€…ëëCR¸B€NèCHá B€ ×äCÃõB€ÍláC¸ B€ ·ÝCìQB€¸^ÚC¸B€ÃÕÖC × B€{TÓCÃõB€ìÑÏC ×B€ì1ÌC¤p B€�¢ÈCö( B€\/ÅCq= B€ÕÁC¸ B€H!¾C{ B€š™ºC® B€ö(·C33 B€ìq³CázB€Íì¯C= B€)|¬C33 B€\©C33 B€=Š¥C¸ B€qÝ¡CHáB€�bžC®B€3ÓšC33 B€{t—C\�B€×ÓCR¸ B€…K�C…ëB€)ÜŒCHá B€RX‰CìQ B€RØ…C)\ B€öH‚C¤p B€…k}Cš™ B€)\vCìQ B€¸oC… B€33hC\�B€)aCÍÌ B€@ZC®G B€{SCáz B€…+LC…ëB€…ëDCff B€ìÑ=CÃõ B€¸Þ6Cö( B€áú/CR¸ B€Å(C33 B€ÍÌ!C33 B€ì‘C×£ B€f¦Cff B€áz C)\ B€3³Cff B€¸žýBHá B€.ïB¸ B€áúàB®G B€fæÒB� B€{”ÄB= B€q½¶B×£ B€©B®B€)ÜšB B€®ÇŒBö( B€®G|B…ëB€¤p`B¸ B€®DB� B€R¸(Bq= B€® Bš™ B�"%aŠªÿ˜ € ™ \�GBö(MB™ ázdB¸MB™ \€B®LB™ …kŽBÃõMB™ {œBffMB™ ÃuªBffMB™ €¸BR¸MB™ R8ÆB¸NB™ ö(ÔB\�MB™ )\âB= NB™ €ðB¸MB™ HaþBìQLB™ {TC\�MB™ šY CR¸LB™ q=C= MB™ {TC…ëMB™ Rx"C…MB™ š™)CR¸LB™ ®‡0CNB™ n7C®MB™ …k>C¸MB™ \�EC)\MB™ =ŠLC)\MB™ fæSC\�MB™  —ZC= NB™ q½aCš™NB™ )œhC¸MB™ ×ãoC…NB™  wC…ëMB™ 3ó}C�ÂNB™ ¸^‚CHáMB™ \ï…C�ÂMB™ ¸~‰CÍÌMB™ \ïŒC ×NB™ R˜�CìQNB™ H!”C×£NB™ 3“—C)\MB™ qýšC{MB™ =ªžC ×MB™ �¢CMB™ ͬ¥Cö(NB™ R8©C\�OB™ )œ¬C×£NB™ )°C®NB™ R˜³C…ëMB™  ·CHáMB™ ×£ºC33NB™ ÍL¾Cš™MB™ {´ÁCq=MB™ š9ÅC¸NB™ ìÑÈCìQMB™ áZÌCázOB™ ®çÏCffMB™ ®gÓC¤pNB™ …ëÖC…MB™ q]ÚCHáNB™ )üÝC{OB™ €áCq=NB™ )ÜäCq=NB™ ×cèC{MB™ )üëC33OB™ nïC\�OB™ �âòC…ëMB™ ×cöC\�NB™ ¤úCHáMB™ ÍŒýCMB™ Í|DÃõMB™ qMD®NB™ HD…ëNB™ ÃÕD ×NB™  ‡D…ëNB™ �B D…MB™ = DÃõNB™ qÝ DOB™ ®—D{OB™ PD{NB™ ì!D…ëMB™ ÕD{OB™ \ŸDázMB™ áZDìQNB™ šD¤pNB™ qíDázOB™ f¦D�ÂNB™ )lD33NB™ ×# D33NB™ ¸Þ!D�ÂMB™  #D¸NB™ ¤p%D= OB™ �2'D{NB™ ¤ð(DHáNB™ ¸®*DR¸MB™ ׃,D\�NB™ \/.DìQMB™ 3ó/DÍÌMB™ µ1DÍÌMB™ ì�3D)\NB™ N5D¸NB™ ×7DNB™ 3Ã8D¤pOB™ �’:D…ëNB™ ¸>Dq=NB™ öÈ?DÃõMB™ {”ADázNB™ {DCD33NB™ …EDffMB™ RØFD ×NB™ ŽHDìQMB™ UJDHáNB™ \LDR¸MB™ �ÒMDNB™ •ODq=NB™ \oQD ×MB™ áSD…ëMB™ …ëTD×£NB™ H¡VDffNB™  wXD¸NB™  ZDázMB™ 3ã[Dš™NB™ f¶]D®MB™ fv_DHáMB™ ®7aDHáMB™ ®÷bD¸NB™ õdD= MB™ pfDR¸NB™ ö8hDìQMB™ îiD®MB™ {´kDÃõNB™ Ã5mD{MB™ ¸mD…ëcB™ f&mD…ëB™ ÍmDázŽB™ R(mDázœB™ ¤ mDq½ªB™ )mD…¸B™ ®'mD�BÇB™ Ã%mD…ëÔB™ ¸.mDìQãB™ šmD)ÜðB™ qmD\ÿB™ á*mD\ÏC™ mDqý C™ …mDq½C™ ¤0mD¸ÞC™ ¸>mD�#C™ \/mD×ã)C™ �"mDR81C™ ¸.mD{T8C™ Ã5mD\O?C™ ¤0mDÍLFC™ {4mDá:MC™ f6mD3sTC™  7mD3s[C™ ¤ mD®ÇbC™ �"mD=ŠiC™ ×#mDõpC™ Í,mDÀwC™ 5mD ×~C™ ö(mDHƒC™ …;mDÕ†C™ …+mDqý‰C™ 0mDq��C™ ®7mD¤‘C™ =:mDÕ”C™ ×3mD%˜C™ >mDõ›C™ ì1mDÍ,ŸC™ ¸.mDì±¢C™ {DmD×c¦C™ š)mDà©C™ H!mD…k­C™ \?mDΰC™ q-mDöh´C™ ¤0mD=ê·C™ Ã%mDn»C™ Í,mDÍ ¿C™ ×3mDq�ÂC™ 0mDšÆC™ šImD\�ÉC™ f&mDö(ÍC™ ì1mD×ÃÐC™ á*mD\OÔC™ �2mDÎ×C™ H1mDš9ÛC™ Ã5mD=êÞC™ š9mD3SâC™ ¤0mD{ôåC™ @mDÍléC™ >mDáúìC™ Ã%mDq}ðC™ fFmDHôC™ …;mDÍŒ÷C™ 3CmD… ûC™ ×3mD3³þC™ ¸>mD\D™ Ã5mD¤àD™ á:mD•D™ ¸>mD®WD™ š9mD\D™ @mDRè D™ ×CmDì± D™ ®GmD…k D™ ×3mDìAD™  GmD3óD™ )LmDö¸D™ H1mDÃuD™ =*mD)LD™ EmDìD™ H1mDšÉD™ @mD…D™ fFmDfVD™ fFmD)D™ =JmD3ã D™ …;mDÍœ"D™ 3CmDÃe$D™ =:mD�"&D™ q=mD…ë'D™  7mDf¶)D™ HAmDu+D™ {4mD�B-D™ ÍLmDáÊ.D™ öÈkD…«.D™ =úiDͼ.D™ ìAhDš¹.D™ ®wfDöÈ.D™ f¶dDöÈ.D™  ÷bD=º.D™ .aDqÍ.D™ qm_D\¿.D™ \¯]D\¿.D™ Íì[DRÈ.D™ =*ZD×Ã.D™ q]XD×Ó.D™ ®VD…».D™ \ïTD®·.D™  'SDáª.D™ ×cQDöÈ.D™ ášODõ.D™ qÍMDÅ.D™ LDõ.D™ q]JD¸®.D™ q�HDR¨.D™ ¤ÐFD�².D™ {ED°.D™ ìQCDµ.D™ ÕAD)¼.D™ ¤Ð?D×Ã.D™ á >Dͼ.D™ q=C�¢.D™ 3³7C3“.D™ Rx0C¤°.D™ öh)Cš©.D™ 3s"Cf¦.D™ ¤°C¤�.D™ q}C .D™ )\ C —.D™ ffC®§.D™ ¤ðþBÍœ.D™ …ëðB)¬.D™ €âBד.D™ ×£ÔB®—.D™ ×#ÆB{¤.D™ )\¸B3£.D™ ªBŽ.D™ œB §.D™ š™ŽBì¡.D™ ìQ€Bì‘.D™ š™dB®‡.D™ ×£KBö¸.D™ ìQNB�2-D™ R¸MBn+D™ ffNBq½)D™ ìQOB)ì'D™ 33NB¸&D™ NBn$D™ HáMB�¢"D™ …MB×ã D™ ¸MB3#D™ R¸NBÃUD™ ázMBq�D™ OBÃÕD™ ö(NBD™ R¸OBáJD™ …OBÃ…D™ \�MBÃÅD™ \�MB3D™ OBìAD™ ¤pNB{t D™ …NB׳ D™ ¸OBð D™ = NBöD™ ázNB`D™ �ÂMB D™ …OBÕD™ …MBD™ ö(NB�¢þC™ ázNB%ûC™ q=NBö¨÷C™ ×£NB ÷óC™ …NBnðC™ {OBÍ íC™ ¸MBÍléC™ ázNBÍìåC™ ®GNB¸^âC™ ázNBšÙÞC™ š™NB\/ÛC™ ö(OBRØ×C™ �ÂNB=*ÔC™  ×MBH¡ÐC™ {OB ÍC™ ¤pNB3“ÉC™ ázOBÆC™ 33NBRxÂC™ ¸NB¿C™ ®GNBŽ»C™ {NB®ç·C™ ìQMBÍl´C™ š™NB×±C™ …NB=j­C™ ÃõLBẩC™ ÃõMB{T¦C™ ö(NBöÈ¢C™ \�NBfFŸC™ HáMB®Ç›C™ ÃõMBq=˜C™ �ÂNBq�”C™ NB.‘C™ �ÂLBŽ�C™  ×NB{ŠC™ ¤pMB�‚†C™ )\NB®ƒC™ ázMB�C™ ÃõMBÃõwC™ ÍÌLBöèpC™ OBáziC™  ×LB3sbC™ ®GMBõ[C™ ®LBázTC™ R¸MBffMC™ ffNB�‚FC™ ¤pNB3s?C™ ®GNBöh8C™ ×£MBá:1C™ ÃõLBî)C™  ×LBáú"C™ …MBáúC™ ¤pNB{ÔC™ ö(MBq½ C™ \�MBšÙC™ ÍÌNBffÿB™ ®GNB…ñB™ ÃõMBHáâB™ HáLBö¨ÔB™ ÃõMB)ÜÆB™ R¸LBHá¸B™ 33LB®GªB™ 33MB)ÜœB™ ázNB…ŽB™ ö(MB®€B™ NBÃõdB™ …ëMB ×GB™ {BBö(HB™ ®CBÃõdB™ CB×£€B™ š™BB=ŠŽB™ ¸CBq½œB™ ìQBBR8ªB™ ¤pBB¤ð¸B™ ö(BBìÑÆB™ š™ABq½ÔB™ ×£CBãB™ ffCB=ŠñB™ ÃõBBHaÿB™ \�CB\ÏC™ ÍÌBBÀ C™ {CB{ÔC™ ázBB…ëC™ {BB3ó"C™ HáAB3ó)C™ 33BB=J1C™ ö(CB¤p8C™ ®BB¤p?C™ \�BB�‚FC™ q=CB WMC™ HáAB3sTC™ …BBõ[C™ �ÂABq}bC™ ®GBBq}iC™ ®GBBšÙpC™ ABRøwC™ ÃõABìC™ ÃõBB®ƒC™ ÃõAB€†C™ HáABìŠC™ BB…‹�C™ ÃõABÃ5‘C™ {BBR˜”C™ �Â@BR8˜C™ ìQABÍÌ›C™ �ÂABÍLŸC™  ×BBfÆ¢C™ ×£AB=J¦C™ ìQABHÁ©C™ = CBìq­C™ ÃõABáú°C™ R¸AB®g´C™  ×@Böè·C™ ö(ABì‘»C™ ¸BBö¿C™ …BB)|ÂC™ …ëABqýÅC™ HáABì‘ÉC™ …ëABqÍC™ BB�¢ÐC™  ×BB¤0ÔC™ ázBB\Ï×C™ R¸@B.ÛC™  ×BBáÚÞC™ ázAB¸^âC™  ×BB=êåC™ ®AB…kéC™ �ÂAB\íC™ �Â@B=jðC™ q=ABáúóC™ ìQBB®§÷C™ )\AB%ûC™ ö(BB¸žþC™ …ë@B�D™ {BBÃÕD™ Há@Bq�D™ BB`D™ \�@B=D™ ¸BBìñ D™ ìQAB3³ D™ ffBBu D™ 33AB>D™ q=ABìD™ �ÂABšÉD™ �ÂAB=ŠD™  ×ABRHD™ ÍÌABD™ …BBÕD™ HáABq�D™  ×BB{TD™ ×£AB¸D™ 33AB{ä D™ ö(AB×£"D™ ffABp$D™ 33BB�"&D™ ö(BB=ê'D™ {ABáº)D™ ¤pBBn+D™ ¸AB\/-D™ š™BBÍL/D™ ×£dBìa/D™ ö(€B¸n/D™ …ŽB¤p/D™ {œBáj/D™ {ªB=j/D™  W¸B3c/D™ ×#ÆB®W/D™ ×£ÔBn/D™ …kâBöh/D™ HáðBÍl/D™ ÿBši/D™ öhCìa/D™ ff C=j/D™ �‚CìQ/D™ ×£Ce/D™ ×c"C=j/D™ ff)Cìq/D™ \�0C®g/D™ õ7CìQ/D™ )œ>C…k/D™ fæEC W/D™  ×LCU/D™ =ŠSC\_/D™ ×£ZC{T/D™ ì‘aCHa/D™ ×ãhC®g/D™ ö¨oCÃU/D™ fævCšY/D™ = ~CšY/D™ ff‚C®g/D™ ®†CÍL/D™ …k‰C�R/D™ … �C®g/D™ áz�Cn/D™ f&”CÍ\/D™ …‹—CÍL/D™ H›C)\/D™ R˜žCöX/D™ {4¢C×c/D™ õ¥C¸n/D™ ö(©C3S/D™ =ª¬CÍ\/D™ ¸>°C3c/D™ Õ³C…K/D™ …+·C…[/D™ =ʺCN/D™ =*¾C¸^/D™ …ËÁC¤`/D™ ÃUÅCfV/D™ ×ÃÈCN/D™ HaÌCÍ\/D™ )¼ÏCq]/D™ ìQÓC3S/D™ öèÖCff/D™ =JÚCqM/D™ {ÔÝC W/D™ =jáC)\/D™ ìñäCÃE/D™ �bèC…[/D™ ìCÍ/D™  WD�B/D™ �"D>/D™ áêDHA/D™ q�D=Z/D™ ^D¸N/D™ ì! D…[/D™ Hñ!DU/D™ =º#D3C/D™ )|%Dö8/D™ q-'D®G/D™ ®÷(D\?/D™ µ*D)D)/D™ 3SCDHA/D™ ED)/D™ �LD)L/D™ \ÏMD®G/D™ =šOD33/D™ ×cQDqM/D™ ö(SDìA/D™ qíTDE/D™ …«VD\O/D™ q]XD G/D™ á*ZDRH/D™ )ì[D)L/D™ \¯]DfV/D™ qm_D3S/D™ 0aD…K/D™ RøbDHA/D™ µdD¸>/D™ ®wfDìA/D™ {DhDqM/D™ …ûiD./D™ ®ÇkD{D/D™ ì±mD\//D™ ¾mD×C-D™ qÍmDÃu+D™ =ÊmDõ)D™ =ÊmDáê'D™ ÅmDì!&D™ ö¸mDff$D™ áÊmDž"D™ ×ÃmD{ä D™ ÍÌmDÍD™ ÐmDfVD™ ×ÓmD�‚D™ ×ÃmDöÈD™ ®ÇmDHD™ 3ÃmD=JD™  ÇmDöxD™ ÐmDáºD™ ¤ÐmD¤ðD™ öÈmDìAD™ qÍmDqm D™ ÎmD¤° D™ šÉmD ç D™ fÆmD¸D™ ¤ÀmDRXD™ )ÌmD{”D™ �ÂmDàD™ ¤ÀmD¸D™ ÀmD ·þC™ ÕmD= ûC™ f¶mD…‹÷C™ ÎmDôC™ ìÁmD)|ðC™ )ÌmDíC™ fÆmDöhéC™ ¾mD3óåC™ ÃÅmDìQâC™ {´mDfæÞC™ ׳mD¸>ÛC™ 3ÓmD\Ï×C™ …»mDÍLÔC™ 3ÃmDÅÐC™ áÊmD\/ÍC™ ¸ÎmD\�ÉC™ ×ÃmDÃÆC™ šÉmDq�ÂC™ ÃÅmD= ¿C™ ®ÇmD¤p»C™ ÐmD=ê·C™ HÁmD=j´C™ …ËmDḬ́C™ 3ÃmDe­C™ HÁmDöè©C™  ×mDff¦C™ )ÌmD…«¢C™ fÆmD\/ŸC™ áÊmDš¹›C™ \ßmD%˜C™ ¸ÎmD3“”C™ ÍÌmD‘C™ áÊmDR˜�C™ =ºmD�ŠC™ qÝmDR˜†C™  ÇmDHƒC™ àmDšÙ~C™ šÉmDõwC™ ìÑmD¤°pC™ fÆmD…iC™ ÅmD{ÔbC™ HÑmDq}[C™ 3ÓmD¤pTC™ ÍÌmDÃ5MC™ …ËmDìQFC™ RØmD{T?C™ qÝmDE8C™ RÈmD¤01C™ ÃÅmD3ó)C™  ×mDÍ #C™ {ämD\ÏC™ ¤ÐmD¤°C™ ÍÜmDÍ C™ RèmD®ÇC™ öÈmDáúþB™ ÍÜmDñB™ ×ãmD)\ãB™ ¤àmD)ÜÔB™ ÍÜmD.ÇB™ ìÑmDÃu¸B™ ìÑmD)ܪB™ ðmD…kœB™ öÈmDffŽB™  ×mD€B™ áÚmDÍÌcB™  ·mD×£DB™ õkDázBB™ ìñiD33CB™ ö8hDffAB™ ¸nfD¸BB™  ·dD®BB™ öøbD ×AB™ Ã5aD{AB™ {t_D®GCB™  ·]Dš™BB™ ×ã[D33BB™ ì!ZDázBB™ {tXDš™AB™ ¸žVDCB™ \ïTD…ëBB™ SD…ë@B™ ájQD…ëAB™ 3“ODìQCB™ ÕMD¸CB™  LD= BB™  WJDHáAB™ ŽHDìQAB™ fÖFDš™AB™ …EDq=BB™ HACDffBB™ ®—AD= CB™ qÍ?DR¸@B™ H>DAB™ Í<©C= BB™ õ¥CÃõ@B™ ¢CBB™ ͬžC\�@B™ RøšCìQAB™ öˆ—Cš™BB™ )”CHáBB™ R˜�C¸CB™ 3óŒC�ÂBB™ ׃‰C×£BB™ \ï…C¸BB™ q]‚CÍÌBB™ 3ó}CR¸AB™ {wCR¸BB™ îoC= BB™ )œhC…ëAB™ õaC= BB™  —ZC)\BB™ fæSC= CB™ ÍŒLCÃõBB™  —ECCB™ 3s>C…ëAB™ ¸^7C\�AB™ ÍŒ0Cq=CB™ ×£)C×£AB™ …k"C33BB™ šYCš™BB™ �BC�ÂAB™ šY C ×BB™ šYCö(AB™ )\þBìQBB™ …kðBR¸AB™ ìQâBìQBB™ šÔB¸BB™ 33ÆB®GCB™ ¸ž¸B…BB™ €ªB\�AB™ Ãõ›BBB™ ¤pŽB×£CB™ .€B\�BB™ )\dBR¸AB™ ®GGBìQCBŽ"%aŠªÿ�€ Ž\�Báú�BŽffžBÍL‘BŽ…ë«B¤ð�BŽq½¹B¸‘BŽÈBáz‘BŽ33ÖBq=‘BŽffäBÍÌ�BŽ\òB…k‘BŽ@CÍÌ�BŽÍLCR¸�BŽÃõ Cáú�BŽ\C33‘BŽ{TCö¨‘BŽq=#C33‘BŽ=J*C{‘BŽ@1C33‘BŽff8C ×�BŽ®G?CR8‘BŽ€FC�B‘BŽ�‚MCáz‘BޏTCHá�BŽff[Cš‘BŽázbC…‘BޤpiC¸‘BŽ�BpC)\‘BŽq}wCáú�BŽ33~C€‘BŽ{Ô‚CR¸‘BޤP†C{”‘BŽ=ª‰C=Š‘BŽ)<�C=Š‘Bޤ°�C…ë�BŽ{T”C{‘BŽáÚ—Cq=‘BŽHA›CHa‘BŽq½žC‘BŽ{T¢C= ‘BŽ{´¥Cff‘BŽ W©Cö¨‘Bޏ¾¬Cö(‘BŽöh°C{”‘BŽRسC®‘BŽ×c·C¸ž‘BŽ\ïºC¸ž‘BŽe¾C®G‘BŽ{ôÁC3³‘BŽÃuÅCR¸‘BޤÐÈC ×�BŽ)|ÌCáz‘BޏþÏC.‘BŽ®gÓCÍL‘BŽ\ÏÖC.‘BŽÃuÚC33‘BŽ ×ÝC3³‘BŽ wáCÃõ�BŽqÝäC= ‘BŽöhèC€‘BŽ)üëC¸‘BޤpïC®‘BŽÃõòC¤p‘BŽ)|öC‘BŽ3úCff‘BŽf†ýC¤ð�Bޤ€DR¸‘BŽ 7DR¸‘BޏD\‘BŽq½DHa‘BŽ\D…k‘BŽš9 D3³‘BŽq D)\‘BŽ{Ô D…‘BŽ�’D33‘BŽ@Dö¨‘BŽfDìÑ‘BŽÍÌD€‘BŽ�’D= ‘BŽ…[DÃu‘BŽìDáz‘BŽ=ÊDÍL‘BŽq�Dq=‘BŽšIDff‘BŽÍ D¸‘BŽ®Ç!D¤p‘BŽö˜#D\�‘Bޤ`%DÍL‘BŽ×#'D=Š‘BŽ3Ó(D�‘BŽö¨*DHá‘BŽ{d,D=Š‘BŽ=*.D= ‘BŽ®×/D®‘BŽž1D‘BŽ`3D¸‘BŽ5D…k‘BŽöè6D)\‘Bޤ°8D ×�BŽ…k:DìQ‘BŽÃ%D…k)DŽ®‡DfV)DŽöˆýC W)DŽúCÃe)DŽR˜öC¸N)DŽÃõòC�R)DŽ{”ïCìQ)DŽöèëCRh)DŽ wèC\O)DŽRØäCRX)DŽ€áCšY)DŽšùÝC`)DŽ=jÚC�R)DŽqÝÖCN)DŽìqÓC)l)DŽfæÏCHa)DŽáZÌC×c)DŽ3óÈC×S)DŽq]ÅC¤P)DŽfæÁC3c)DŽ=j¾C…[)DŽöȺCÍ\)DŽ®G·CfV)DŽìñ³C g)DŽfF°C�R)DŽŬCÍ\)DŽq]©C g)DŽRØ¥CÃU)DŽe¢C…K)DŽ®ÇžC W)DŽÃ5›CšY)DŽö¨—CfV)DŽÍL”C\_)DŽ=Ê�CHa)DŽÃ5�CU)DŽõ‰CìQ)DŽÍL†C3S)DŽq½‚C)L)DŽRx~C×S)DŽ=ŠwCöX)DŽEpCfV)DŽÃ5iC3c)DŽšYbC)L)DŽ€[C)L)DŽöhTC®G)DŽá:MC…K)DŽ FCHQ)DŽ ?C3c)DŽöh8CáZ)DŽ�B1C×S)DŽ@*C^)DŽ)#C^)DŽ{TCÃe)DŽ33CHa)DŽHaC g)DŽ3óCöX)DŽ)ÜÿBqM)DŽÍÌñB�R)DŽ…äB×c)DŽ ×ÕBÍ\)DŽ…kÈB¤`)DŽq=ºBHQ)DŽìÑ«BöX)DŽÃužB^)DŽ)Ü�BÃU)DŽö¨‘B�Â'DŽ= ‘BÃ&DŽ®G‘BÍ,$DŽHá‘B)l"Dޤp‘Bì± DŽ‘BfæDŽáz‘B),Dޤp‘B¤pDŽìQ‘B¤ DŽìQ‘B…ÛDŽ{”‘B DŽÃu‘B¸^DŽR¸‘Bq�DŽ€‘BRØDŽq=‘B… DŽìQ‘B®G DŽ W‘B®‡ DŽ‘BHÁ DŽáú�B×DŽ�B‘Bq=DŽìÑ‘Bì�DŽR¸‘BͼDŽ33‘B3Dޏž‘B�‚þCŽ\‘B®çúCޏ‘BÍL÷CŽ)Ü�B…ëóCŽáz‘B�BðCŽ\�‘BÍÌìCŽ33‘Bq]éCŽ\�‘BàåCŽö(‘Bf&âCŽš™‘B®ÞCŽq=‘Bf&ÛCŽR8‘BR˜×CŽ= ‘Bö(ÔCŽìQ‘B¸¾ÐCŽö(‘BöÍCŽHá�Bf†ÉCŽ®G‘BÍ,ÆCŽ…‘BöˆÂCŽ33‘B)¿CŽ33‘B)œ»CŽ®‘B ÷·CŽ ×�B`´Cޏž‘BH±CŽR8‘BáZ­CŽ{”‘BΩCŽ)Ü�BRX¦CŽ\‘B3ó¢CŽ.‘BìQŸCŽ�‘Bõ›Cޤð�BN˜CŽfæ�Bõ”CŽ.‘B¸‘CŽÃõ�BÀ�CŽ…k‘BìŠCŽ= ‘Bö¨†CŽ.‘Bá:ƒCŽ®G‘B®GCŽq=‘BxCŽ{‘BqCŽÃu‘Bf&jCŽq=‘B×#cCŽ33‘Bqý[CŽq=‘Bq½TCŽ{‘B…«MCŽ×#‘Bö¨FCŽ�Â�B)Ü?CŽ ×�B¸Þ8CŽ= ‘BÀ1CŽ‘Báz*CŽ= ‘BÃu#CŽHa‘B�‚CŽ\‘BnCŽáz‘Bì‘CŽ®G‘B¸žCŽ®G‘BnCŽR8‘B�BòBޤð�B\�äBŽÃu‘B\�ÖBŽq=‘Bö(ÈBŽ€‘B€ºBŽ3³‘B{”¬BŽ3³�Bq=žBŽ.‘B�BŽìÑŽBáú�BŽ{”ŽB�BžBޏ�B×£¬BŽfæŽBázºBޤðŽB.ÈBŽ)\�B=ŠÖBŽ…ŽB…äBŽ®ŽBÍLòBޏ�B¤pCޏ�B¸žCŽ…ëŽB\�CŽ…ëŽBnCŽ= �B€CŽÃuŽB¤p#CŽ×£ŽBáz*CŽ€ŽBq½1CŽázŽB)Ü8CŽffŽBHá?CŽ)ÜŽB…«FCŽR¸ŽB…«MCŽ)ÜŽBq½TCŽq½ŽBáú[CŽö¨ŽB×#cCŽ®ŽBf&jCŽR¸ŽBqCޤðŽB®xCŽ�B®GCޏžŽBR8ƒCŽ{”ŽB=ª†Cޏ�B¤ŠCŽÍLŽBq½�CŽ€ŽB¸‘CŽ{”ŽB{´”CŽ=ŠŽBìQ˜CŽ�B ·›CŽ®ŽBNŸCŽ.ŽB¤ð¢CŽìQŽB)\¦CŽR¸ŽB\Ï©CޏžŽBáZ­CŽÍÌŽB¸þ°CŽìQŽB`´CŽ)ÜŽBšù·CŽÍÌŽBš™»CŽ®ŽBq¿CŽš�BöˆÂCŽ3³ŽBö(ÆCŽÍLŽB…ÉCŽ)\ŽB… ÍCŽHáŽB¸¾ÐCŽš™ŽB®'ÔCŽìQŽBR˜×CŽÍLŽBö(ÛCŽ×£ŽB®ÞCŽ…kŽBf&âCŽ�BàåCޏžŽB)\éCŽ®ŽB\ÏìCŽÃõŽB¸>ðCŽìQŽBöèóCŽ WŽBÍL÷CŽšŽB…ëúCŽö(�B׃þCŽš™ŽB3DŽ= �B¾DŽÍÌŽB€DŽ×£ŽB…;DŽ)\ŽB3DޤpŽB� DŽ®ÇŽBöˆ DŽÍÌŽBfF DŽq=ŽB… DŽ®ÇŽB=ÚDŽ�BÍŒDŽÃuŽB^DŽq½ŽB DŽ{”ŽB…ÛDŽ�ÂŽB¤ DŽ®ŽBHqDŽHáŽBá*DŽ×#ŽBfæDŽÃõŽB׳ DŽHáŽB=j"DŽìQŽB=*$DŽÍLŽB &DŽ…ëŽB3Ã'DޤðŽBì‘)DŽffžB=º)DŽHá«Bì±)DŽq=ºB¤ )DŽHaÈB°)DŽìÑÕBì±)DŽ=ŠäBf¶)DŽfæñBH±)DŽ)ÜÿB=š)DŽöèC°)Dޏ^C{´)DŽ33C{´)DŽ{TC�²)DŽ)#C=º)DŽ®G*C=º)DŽ®G1CR¨)DŽ×c8CR¨)DŽ)?CR¸)DŽH!FCž)DŽá:MC…›)DŽöhTC¤ )DŽq}[C=š)DŽ\ObC®§)DŽ33iC\¯)DŽ®GpC=ª)DŽÍŒwC®§)DŽáz~Cž)DŽ)¼‚Cì¡)DŽÍL†Cͬ)DŽõ‰CÍœ)Dޤ0�Cáª)DŽöÈ�Cö¸)DŽ\O”Cö¨)DŽö¨—C¤ )DŽÃ5›CR¨)DŽ=ÊžC®§)DŽe¢C…›)DŽ{Ô¥Cͬ)DŽq]©Cͬ)DŽ®Ç¬Cì¡)DŽE°C3£)Dޤð³C…«)DŽöH·Cš©)DŽöȺCq­)DŽ=j¾CR¨)DŽ®çÁCµ)DŽ�bÅC¸ž)DޤðÈCf–)DŽRXÌCì±)DŽfæÏCͬ)DŽ{tÓC¸®)DŽHáÖC —)DŽ®gÚCáš)DŽRøÝC®§)DŽ�‚áC{¤)DŽšÙäCR˜)DŽ{tèC)œ)DŽ®çëCö¨)DŽ —ïC¤ )DŽÃõòCáš)DŽÕöCf–)DŽÍ úCáª)DŽ=ŠýCö˜)DŽÃ…D¤ )DŽÍ<Dáª)DޤDáª)DŽ�ÒDáš)DŽ\D�¢)DŽRH D¤�)DŽì Dq�)DŽÕ Df–)DŽ\DÃ¥)DŽUD…«)DŽ) D…«)DŽ�ÒDq�)DŽ…‹Dì‘)DŽ GD —)DŽ3D®§)DŽÐD¤ )DŽöˆD®—)DŽšYD3£)DŽö Dš©)Dޤà!D¥)DŽž#D —)DޤP%D —)DŽ3#'DÍœ)DŽ�Ò(Dö˜)Dޏž*D®)DŽRh,D{”)DŽ{.DR˜)DŽšÙ/D¤�)DŽf–1D §)DŽ\_3Dq­)DŽR(5D®§)DŽÍÜ6DÍœ)DŽH±8Df¦)DŽq]:D )DŽR((DËͬbD{t(D–ÎNDšòBήÇD¤ðïB–€ÑföDìQCÑRXDHaC–€Ô�C §CÔšÙC{§C–€×áZñCáôC×\/öC®‡ôC–Ú¸žÄB×cÈCÚšÓB\/ÈC–€Ý{T2Dš×BÝ�23D=ŠÙB–€àfFíC\Ï£Càq�îCš9¤C–ã�_D®Ç"Cã×#aD¤°!C–æšy€CfæâBæf…C¸æB–€éö(1D{´ÁCé®W2D= ÁC–ì=z[DR8CìáZ]D\�C–ïöXC #C–€ÿìQÔC)$DÿRØÕCá $D–‚ìÑTD\O¬C‚öhUD�¬C–…š‰'DN›C…¤ )Dq}šC–€ˆ¤�^D®ÇCˆHñ_D WC–‹H!¯C¤PÍC‹ì1³C ÌC–€Ž®§†C�B¥CŽqŠC…¥C–‘f†ÄC{·C‘ázÈCH�¶C–”šîC×C”HAïC)<ÖC–—)Ü\C צB—)\_C�ªB–€šq}ÚC…+|Cš�ÞCH¡{C–€�ö+D=ÊŸC�RØ,DÃuŸC–€ )üØC…kD …KÜCfFD–£fæ)D)¼ƒC£\/,D×CƒC–€¦R˜ DìqçC¦ìA D{ÔæC–©Í^DHáwC©\`D¸vC–€¬¸Ž&DD¬\Ï'DáªD–€¯šÙUDÃuSC¯ðVDÍLUC–€²®ÇÐCÍL9C²öhÔCf¦9C–µáéCšßCµqýìCRXßC–¸¥àC §'D¸)|åCì(D–»®ãB)¼ÒC»ÍLïB WÒC–€¾ÕDÍ yC¾×#DìxC–Á¤ðãBP%DÁ¤ðíB{%D–Ä{Ô$D�XCİ%D= WC–ǵ\D=DÇöè^DD–€Ê®§DDfüCÊ×ÃFDHaüC–€Í…C…«CÍ×£ C3óC–Ð=jD\O*DÐf†Dö*D–ÓÃ5~C…ÎCÓšYƒCÎC–Ö…këBš¹DÖ…ëúB D–Ù3ÜC{ùCÙàßCåùC–Ü®‡HDáúºCÜ�¢IDöh»C–ߤp>CDß�BBCÕ D–€âf6=D3³oCâ >D{ÔpC–åq=¡C\ÅBåqÝ£C3³ÄB–è= ùB óCè×cCRøòC–€ë�ÂVC¤0@Cë®YC�‚?C–€î W CŽÖCî3ó&C×cÖC–€ñ�"ªCšY2Cñ ®C�B1C–€ôìa4D ×@Cô¸¾5D{TAC–€÷{$)D׃úC÷Í+D@úC–ú{(D¤pCú×S)DÅC–ý…ëdC=ÊkCý.gCáºmC–€ ¤0ÓC.òC€ =êÖC…+òC–ƒ Ãu?C¸^[Cƒ Ã5BC×#[C–† 00D×#IC† )\1D…+HC–‰ eÎCÃõ¶B‰ ¤ÐÑCÍ̹B–Œ ÍL CìDŒ 33CqÝD–€� ®wDf¦?C� š Dq=?C–’ 3'D33+C’ Ã(D@*C–€• ¸ÎbD GD–¡ ¤páBš™D¡ óBÍÜD–€¤ ¸DD¤Ð¿C¤ ×óEDà¿C–€§ HqDÃuòC§ …[DìñòC–€ª qÍ>D Cª  ·@DÍÌC–€­ eDRøC­ \ßD×cC–€° )ÜÉCf¦'C° ì‘ÌC ×(C–³ ¸^YD®‡D³ ¤pZD)D–¶ …KªCÕ(D¶ ö­C®‡(D–€¹ \OÞCf¦&C¹ fæàCÍŒ(C–¼ ì1™C¸þ¥C¼ Ã5œC)<¦C–¿ öèBDöHD¿ )lDD®'D– ÎõC®×C ®Ç÷C ·×C–Å ¤ DÍ| DÅ öˆDšY D–È …«”C)DÈ H¡—C¸ÞD–Ë f¶_D�ÂÛBË ÍìaDÞB–Î 01DšyÖCÎ 3D¤0×C–Ñ HÑD¤ÀDÑ )ìD×óD–€Ô \?DRø—CÔ š¹Dff—C–× {ôÏCfæ¼C× îÒC�¢½C–Ú ÃÕšC)œPCÚ .ŸCR8PC–€Ý qM D¸CÝ ) DR¸ C–€à …‹DìQ¨Cà ÃuD…˧C–ã ¸~2DöxDã  3D=:D–æ ö¨8DRXŠCæ =:D3“‰C–€é šùŠCfDé  �CöhÿC–ì R¸CÍ,ÿCì ®ÇCR˜þC–ï DÍŒ�Cï ¤àD3�C–ò ¸žvC=мCò šC¤ð¼C–õ …ëæBÃÕ¹Cõ .÷BR¸ºC–€ø á:iCá:™Cø H!oC\Ï™C–û šy9DRX�Cû �¢:DšY�C–þ ×ó$DRxKCþ Rˆ&D¤pMC–€�!�‚,Cq=zC�!qý2C¤0zC–„!×£RCìÇC„!õTCqýÆC–‡!{ô?DŽäC‡!=*BDšäC–Š!…+Dš�CŠ!Ã-Döh�C–�!HÁ^D@D�!R(aDfæD–€�!š DHaæC�!ÃÕD…+æC–“!Rx5C)/C“!Ãu=C…«/C–€–!\¯�C33%C–!΄C'C–€™!\OÝC3³)C™!àC)\(C–œ!îTDR8æCœ!áªVD�çC–€Ÿ!®—"D¤°gCŸ!ÃÅ#DÍLhC–€¢!3cD3óC¢!%D.C–€¥!¸^.C¸/C¥!®‡7Cõ-C–¨!f¦D{$D¨!q DÃeD–«!áÚ¶CšyC«!.¹CÃ5xC–€®!f4D=JD®!šy5DföD–±!E C… �C±!×£C ŒC–€´!õtCpD´!áºxC®GD–·! çD` D·!ÃD3S D–º!qíVD¤0qCº!öˆXDì‘pC–½!áú0D=Ê1C½!… 3D{T3C–€À!�b€C�"DÀ!… …C®‡D–Ã!… “C…RCÃ!ẗCfæSC–€Æ!R8+DšÙ7CÆ!3Ã+Dì6C–É!R˜ÀC{TöCÉ! ÅCš™öC–€Ì!3#PD®§ÈCÌ!¸®QDÍìÇC–Ï!öè.C€¤CÏ!Ha4C¸þ£C–Ò!{tðCf‰CÒ!)<õCš‰C–Õ!öˆÝCH±DÕ!q=âCá*D–Ø!RøÜCÍœ#DØ! WßC\_#D–€Û!{t²Cf&ÄCÛ!NµCH!ÄC–€Þ!\/žCN¯CÞ!¤�ŸC…+¯C–€á!^aDöˆàCá!ÃEcDì±àC–€ä!®ÇTD�¢ŠCä!WD ׉C”"%BLiÿè! úC€»CzD€;D A•"%)*=ÿ êûŒ�®¿ÐáòÓâñ€�ž­¼ËÚéø‡–¥´ÃÒáðÿ˜ �Òƒ´å–/@?01è! }F DÈCîìÇReader¤åæçèéêëìñò ŒCÈC ŒÃÈÀ 3ó¼CìQB3Ó»C×£B3Ó¹CÃõB=ê·Cö(ôAÕ¶CázàAq}¶CR¸ÀA{t·C{ A)¼·CÍÌ€AÕ¶C…ë=AµC)\A=гC¸½@Ãu³CHáÂ@�¢´Cq=A33¶CR¸FA¸^·Cq=‚A=*·C×£žAš9¶C ׿A×C¶C\�âA×£·C)\ùA=йCffB\�»CHáB¸Þ¼Cö(B˜"%Ncuÿ€ ìñ¶C€ˆBšy¸CìчBqݺCR¸…B®G½CšƒB)œ¿C×£€B�‚ÁC×£yB33ÃC×£lB�bÄCÃõ[BŽÅCö(MBö¨ÆCq=BB)|ÈCq=¸Cõ Cìq�·C�ÂCìff¶C\�øBì×ã²C ×óBìáz°C ×úBì°CRøCìq½¯CìÑ Cìfæ¯C\OCì×#°C\CìÍL°C3³%CìfF°C¤ð.CŸ"%!#)ÿŽ �±C/C@�±CC@�€°C C@�±CüB@�³CöB@�¶CúB@�·CC@�€·CC@�¹CC@�¹C C@�¸C#C@�€·C/C@ "%Íåñÿ�€ žްC�‚/Cžì‘´Cöè/Cž×¸C®/Cž{”¸C¤06Cž׃´Cq½5Cž=ª°CÍÌ5Cž¤P±C33.Cž\¯¯CÍÌ-Cž33¯Cff8Cž׃´C)\8Cž{”¹CÃõ7Cžf¹Cqý,Cž3“´C×c,Cž —°C…k,C¡"%!#)ÿ® ¯€°C.C@¯€¸C.C@¯¹C7C@¯°C7C@¢"%~¡¸ÿµ€ ¶{”¥Cfæ>C¶3Ó§C ×:C¶ ªC¤°7C¶š™¬CRx8C¶`®C{;C¶Ãõ®CÅ>C¶…®C€CC¶H�¬C=ÊFC¶{Ô©Cš™HC¶¤�§C×£GC¶õ¥C\ÏDC¶Ã5¥CBC¶�¢¥C3s>C¶q]¤CÍŒ=C¶RX£CìBC¶¤p¤CÃõFC¶{ô¦Cq}JC¶{ô©C…kKC¶á:­C{TIC¶q�¯CÀDC¶{°C�Â>C¶q½¯Cq=9C¶Ã5­C…5C¶¸¾©CH!4C¶ ¦C3ó7C¶ —¤C\=C£"%!#)ÿÒ Ó¥C>C@Ó¤0§C@9C@ÓªC6C@Ó\ϬCHá6C@Ó¯C:C@Ó ¯CHá>C@Ó¯CDC@Ó\ϬCHáGC@ÓªCJC@Ó¤0§CHáHC@Ó¥CFC@Ó`¤C@BC@¤"%Íåñÿဠâ\ϨCáº9Câöè¥CìÑ?CâÍl¨C)GCâ¬C@CCâìñ«CÀBCâ챨Cf&ECâHá¦C¤ð?CâÍ ©C×#:C¥"%!#)ÿì€ íÃÕÀC W9Cí\ÏÀC3s9Cí…‹ÀCqý9Cí�â¿CR8:CíH!¿Cáú:Cí¾C)Ü;CíÃÕ¼C)¿Cq½8CíáÚ¿CHa9Cí¸^ÀCÃõ9CíõÀC…:Cí®çÀCö¨:CíRÂC W9CíšùÁCšY8CíffÁC…+7Cí ÀCá:6Cíš™¿C…5Cí`¾C 5CíE½Cõ4CíÀ»C)Ü3CíºC¤p3Cí{¸C®‡3Cí�b¶Cn3Cín´CR83Cí¤�²C…k3CíŰC\Ï3Cí3ó®C)4Cí W­C×c4Cí×ã«Cö¨4CíšyªCn5CíÃU©CR86Cí�b¨CÍÌ6CíÀ§Cö¨7CíöH§C=J8Cíî¦C{”9Cíf§Cq};CíầCÍÌCíqÝ«CRx?CíšY­CìÑ?Cí¯C¤ð?Cí3Ó°C3s@Cí®§²C{”@Cí w´C¤p@CíN¶CR¸@CíHA¸C=J@CíÃõ¹Cöh@Cíì±»C= @CíH!½Cõ?Cí=j¾Cì?Cí=Ê¿Cöh>Cí3³ÀC…=Cíš9ÁC —C@Êfæ¹CÍŒ>C@Ê=*¸CÍÌ>C@ÊšY¶C3ó>C@Ê€´C?C@Êf¦²C3ó>C@ÊÃÕ°CÍÌ>C@Êš¯CÍŒ>C@ÊRx­CÃ5>C@Ê)ü«C®Ç=C@ÊͬªCE=C@ʤ�©C3³C°¤€Cf¦BC°ffƒCf&GC°�â…CÍLLC° WˆC®SC°¸ÞŠC�ZC°3Ó�C —]C°\Ï‘Cõ[C°H!•C�BUC°šy˜CöhOC°Í œC)\IC°×CŸC�ÂBC°= ¢C\�?C°{ô¥C×c@C°ìQ¨C¤pDC°®g¨Cq½IC°Íl¦CšQC°€¤CÃuUC°챡C\ZC°3sžC€^C°Ž›Cö(cC°�"˜CÍÌiC°fÆ”C®‡oC°3“‘C\ÏtC° ŽCázxC°×cŠCšYzC°\‡C¸zC°R8„CöhxC°¤P�CáztC°{T}C¸ÞnC°ÍŒyCq}iC° WvCáúbC°…sC®\C°q}qCáºUC°ázqC¸žLC°ffrCR8DC°…+uCö¨>C°{ÔrC W=C°.oC�BCC° ×mC…kLC°)nC…+VC°ìpC@]C°áúrC=ŠdC°áºvCf&kC°¤pzC33qC°%€C@wC°3sƒCš™{C°ΆC)œ}C° ŠC\�}C°¸žŽCRøzC°¸^’Cq=wC°Å•C\ÏqC°öè˜CnkC°×CœC®ÇdC°HAŸCö¨`C°\O¢Cö¨[C°×C¥CH!WC°Rx§C…RC°®©CÃuJC°q}©C�BCC°öˆ¦C\�=C°Å¡C×£C@ÿázyC®Ç=C@ÿ¸^€C)AC@ÿ„CFC@ÿ€†C)\KC@ÿ‰CHaRC@ÿ€‹C3³XC@ÿŽC\C@ÿÃU‘CìZC@ÿ=ª”Cf&TC@ÿ˜CNC@ÿìq›CHC@ÿ×ãžC®ÇAC@ÿ¢C>C@ÿ@¦C¸?C@ÿ©CDC@ÿ ©C@JC@ÿ§CRC@ÿ)ܤCR8VC@ÿ¢CÀZC@ÿ×ãžCöh_C@ÿœCdC@ÿH¡˜C¤pjC@ÿ¸^•C×ãpC@ÿ’CvC@ÿÃUŽC\�yC@ÿŽŠC®Ç{C@ÿ‡C|C@ÿq½ƒCšÙyC@ÿ{´€C3³uC@ÿ|CpC@ÿ33xC¤pjC@ÿ¸žtCÀcC@ÿáºqC¤°\C@ÿpCVC@ÿ\�oC…«LC@ÿ×ãpC\�CC@¬"%µÖæÿ¦€§µC¾B§×#µC¼BÀ@§µC®B¦€«qݸC®GÁB«{tºCÍÌ´BÀ@«õ»C3³§B¦€¯3s¾CáúçB¯î¾Cq½èBÀ@¯ÍlÂC×£éB¦€³š9½C÷B³=*ÀC¸žþBÀ@³=JÃC€C¦€·ÕºC¸^C·×úC WCÀ@·\ï¼C ×C¦€»šù¶C{”C»f†·C�‚ CÀ@»n¸C®GC¦€¿f³C{”C¿öȲC€CÀ@¿ì1²Cöh C¦€ÃfƬC÷BÃE¬C…÷BÀ@Ã\O©CÿB¦€ÇÍŒ«CáúçBǨCR¸èBÀ@Ç —¤CfæêB¦€Ë ÷«C�BØBËöˆ«Cš×BÀ@Ëö(¨CìQÓB¦€Ï�"±C®GÁBÏ\±Cq=¿BÀ@Ï�‚¯Cö¨²B­"%5<�ÿÔ€ Õf’C…kCÕ=j“C® CÕ¤p•C¤ð CÕ3³—C… CÕÅ™C® CÕ�B›C)CÕR¸œC{CÕžCìQCÕ�âžC…«CÕ×ãŸC3sCÕö¨ CÀ"CÕÃÕ¡C)&CÕ=*¢C×ã%CÕÍ ¢C…ë!CÕ…k¡CšYCÕ¸ C)\CÕÍìžCáúCÕšy�CõCÕ…ë›Cì‘ CÕ�BšCq= CÕØC{ CծǕC�ÂCÕ®§“Cö(CÕ{’Cš™C®"%!#)ÿï€ ð…ëœC¤06Cð —�Cq½6Cð¸^žC= 7CðáúžC×#7CðŸC)Ü6Cð wžCR86Cð=ª�CRø5Cð3óœC…ë5C¯"%!#)ÿú€ ûqÝžC…+"Cû® C®Ç$CûR¸¡CÍL(Cû\Ï¢C\+Cû@¢C…,Cû{4¡C®-CûRx CšÙ.Cû®‡ Cf&/Cû\�¡C�/Cûf¦¢CÍL-Cû33£Cfæ*Cû�"¢C)œ'CûÃu C×ã#CûÃõžC¤ð!C°"%!#)ÿ‹€ Œ¸Þ›C®!CŒ ÷žCÍ *CŒöŸC3ó)CŒìñ›Cî C±"%!#)ÿ’€ “…ë™CR8!C“ ÷œCÍ *C“ö�C3ó)C“¸þ™C¸!C²"%!#)ÿ™€ š˜C…+!CšÃõšCÍ *Cš= ›C3ó)CšR˜Cì!C³"%!#)ÿ € ¡šy˜C×ã$C¡ ™C\&C¡á:šCÃõ&C¡€›CRx'C¡ẜC×ã&C¡HÁ�C@&C¡f†žC)%C¡šyžC×ã$C¡…‹�Cq=%C¡)œœCf&&C¡€›CšÙ&C¡×cšCì&C¡¸^™C%C¡®‡˜C…«$C´"%5<�ÿ±€ ²î˜CÃ5$C²=Š™C\%C²…‹šCRø%C²ff›C¤0&C²nœC)\&C²€�C= &C²®žCf&%C²Rø�CšÙ$C² W�CÍÌ$C²HaœCìQ%C²¤p›C¤p%C²ẚC3ó$C²�™C$C²áú˜Cöè#Cµ"%!#)ÿ€ ÃŽ–C@Cî§—CöhCÚ™Cq}CÃÍŒšCffCÃ)¼›C¸ÞCÃfæœC…+CÃ\ï�Cö( CäžC ×CÃöh�CCà œC¸ÞCÃö¨šCÍŒCÙCECÃq}—C\CC…ëC¶"%!#)ÿÓ€ ÔH!–C)œCÔÀ˜CáúCÔ×c›C…+CÔq}�C¸ÞCÔ×CŸCE!CÔ�b¡C W&CÔ)¼¢C.*CÔ\/¢C×#,CÔ{ô C®‡/CÔ3S C×c3CÔ)|ŸCì‘7CÔ=ê�CRx:CÔ ·›C —C@…¤p™CHa>C@…—CC¡dCTC¹"%!#)ÿ¥¦pC8C¦vCCÀ@¦ƒC C¥ªvC7Cª|CCÀ@ª…C C¥®|C6C®�CCÀ@®‡C C¥²�C5C²„CCÀ@²‰C C¥¶„C4C¶‡CCÀ@¶‹C C¥º‡C3CºŠCCÀ@º�C C¥¾ŠC2C¾�CCÀ@¾�C C¥Â�C1CÂ�CCÀ@‘C Cº"%!#)ÿÇ€ È)oC×ãBCÈöèiC{THCÈ®eCîNCÈ�‚`C¤ðTCÈÍLYC@]CÈ�‚WCö¨`CÈ@YC W[CÈî]Cq}NCÈáz_Cf¦HCÈÃõaC¤°ACÈ —dC×#:CÈÃõfC{Ô2CÈ…kiCÅ,CÈ�BlC¸%CÈ)oC…CÈ)\qC®GCÈ�BuC�CÈ)œzCš CÈöˆ€C= CÈ{4„CšÙCÈ WˆC WCÈìÑŒC¸žýBÈfÆ�CR¸þBÈHÁ•C{”CÈ3“™Cá: CÈ33œC\OCÈ=jžC×£CÈ3³ŸC¤ð CȤ0 C…+*CÈeŸC�B4CÈe�C.=CÈì1šC{BCÈ)Ü•Cq=DCÈìQ’CÃõBCÈ®'ŽCáz@CÈö(ŠCRx>CÈRØ„C…=CÈšÙC¸ž>CÈ.wCÍŒ?CÈ…koCš™BCÈ{”pCffECÈ{ÔwCq=BCÈ\€C{”ACÈ ׄCöè@CÈHá‰CÃõACÈ{´�C\ÏCCÈ…ë‘C@FCÈRø•CHáGCÈ\ïšCšECÈ®§žC{?CȤð C¤05CÈRØ¡Cq=*CÈáC W CÈ\¯ŸC —CÈ�‚�C®CÈq�šC¤0CÈN–C)œCȤ‘Cö(ùBȸ¾ŒC WùBÈÈC)\üBÈ΃CáúCÈ®ÇCìCÈRøxC¤p CÈÍ sC{TCÈEoC×#CÈìQlCšYCÈ…iC�$CÈq}fC)œ+CÈ�dCÅ1CÈ×£aC 9CÈ®‡^Cn@CÈ×#\C{”GCÈ=JZCÍLMCȸVCffZCÈH¡TC¤ðbCÈ…ë[C)Ü_CÈ)cC= WCÈq½gCîPCÈ×clC{TJCÈ33qCÍÌDC»"%!#)ÿš ›pCDC@›)kC¤0IC@›¤pfCîOC@›bCVC@›ÀZCHa^C@›VCbC@›€WCHáZC@›\CNC@›^CRøGC@›¸^`CAC@›öèbC3³9C@›€eC�‚2C@›hC,C@›\ÏjC3³$C@›€mCHáC@›¤ppC)œC@›tCC@›šÙyCáz C@›…K€CìC@›„CC@›�BˆC…þB@›šÙŒC3³ûB@›‘CüB@›–CÀC@›šCC@›¤ðœC€C@›ŸCC@›€ CÀ C@›¡C*C@›  C¸ž4C@›žC>C@›\�šC¸žCC@›–CFC@›R8’C\ÏDC@›ŽCìBC@›ŠC@C@›À„CHa?C@›€C@C@›¸žwCHá@C@¼"%~¡¸ÿÄ€ Å)¥CR˜»CÅ…«§Cì±»CÅ)\ªCöè»CÅR˜¬C\O¼CÅ\/°C)ܽCÅf†²C —¿CÅ`³C®‡ÀCÅ3Ó±C)<ÁCÅ=ê¯C{´ÁCÅ®g­C ·ÁCÅfªC…ëÁCÅõ¦C¸¾ÁCÅ —£CfÆÁCÅ= ¡C€ÁCŸžŸC=*ÁCÅ…KžC®¿CÅ3³ŸC®½CÅΡCq}¼CÅq¥C¥»CÅ�â¤CáZºCÅ 7¡CźCÅ…kžCöh¼CÅͬœC\¯¿CÅ®‡žC¥ÂCÅqÝ CÃCÅÍŒ£CáÃCÅ{´¦C ÃCÅ… ªC�ÃCÅìq­CîÂCÅ×°C)ÜÂCÅšY²CH¡ÂCÅ®´C)üÀCÅq�³Cš™¾CÅ%±C¸>¼CÅ\/­Cf†ºCÅ\�ªCúCŤ°§C׺CŤ¥CöHºC½"%!#)ÿí î¥C»C@îR˜§C¸ÞºC@î®gªC»C@î­C€»C@î\�°CR½C@î³C¿C@î\´CR¸ÀC@î²CÂC@C33ÂC@î{T­Cq]ÂC@CRxÂC@î�¦CH�ÂC@îì‘£C3sÂC@îà C=JÂC@îŸCÂC@î¤p�C ¿C@îŸC½C@C®§»C@¾"%\zŽÿ‚ € ƒ ö¨Cšy…Cƒ 3s%Cfæ‰Cƒ 3³%C¤Ð‰Cƒ fæCe…C¿"%!#)ÿ‰ € Š =Ê$Cq€CŠ š™*C)œ„CŠ {Ô*Cöˆ„CŠ qý$CÍ €CÀ"%!#)ÿ� € ‘ áº)CÃuuC‘ À/C×£~C‘ Rø/C€~C‘ î)C{TuCÁ"%!#)ÿ— € ˜ áú.CHájC˜ ¸Þ4C{tC˜ H!5C…ësC˜ ¤0/Cq½jCÂ"%!#)ÿž € Ÿ = 4C\�`CŸ = :C€iCŸ @:C)\iCŸ ®G4Cff`CÃ"%!#)ÿ¥ € ¦ �9CqýUC¦ …+?C¤ð^C¦ ff?C®Ç^C¦ Ã59CšÙUCÄ"%!#)ÿ¬ € ­ š>Cì‘KC­ ìQDC)\TC­ =ŠDCÃ5TC­ ìQ>CöhKCÅ"%!#)ÿ³ € ´ áºCC=ÊIC´  —AC=JKC´ {Ô>CÍLMC´ ìÑ;C¤0PC´ €8CÃuSC´ E5C3³VC´ �Â1CHáYC´ ì‘/C=Š]C´ š-C@aC´ R8+CÍŒdC´ n)C33hC´ …ë'C¸^lC´ ×#&C…+pC´ ¸ž$CfæsC´ ¤0#C®ÇwC´ = "C¸Þ{C´ q=!C®G€C´ …« CŽ‚C´ öh Cìñ„C´ áºC×ã†C´ ×ãCš™ˆC´ ÅCáú‰C´ á: CŠC´ áú Cf¦ˆC´ …k!Cáú†C´ "C= …C´ Ãu"CH¡‚C´ =Ê"C×c€C´ ö¨#Cá:|C´ H¡$CÃ5xC´ �Â%CìQtC´ šY'C®pC´ \Ï(CR¸lC´ …k*C×£hC´ =J,CH!eC´ …+.C…ëaC´ ö¨0CE^C´ Í 3CqýZC´ šY6CìÑWC´ ì‘9Cì‘TC´ š=C®‡QC´ Ãõ?C€NC´ \OBCšLC´ DC JCÆ"%5<�ÿâ € ã  zCÃõ7Cã ×cwC W8Cã �tCÍL9Cã EpC{:Cã = lCÍL;Cã ®‡gC�=Cã €bC >Cã î]Cö¨?Cã =ŠYCHaACã ÍŒUC…kCCã ¤°QCö(ECã ®‡MCGCã ¸^ICf&ICã q}EC@KCã ö¨ACÀMCã áú=C�BPCã ¤ð:CHáRCã …k7CffUCã …ë4C\�XCã 2C®Ç[Cã …/Cš™_Cã 3ó,Cq=cCã ¤ð*C=ÊfCã ¤ð(CnjCã ì'CÃõmCã )\%CÍÌqCã áz#CÍ vCã 3³!C�‚zCã ®Ç CnCã q½C\Ï�Cã  —C®„Cã ×#C×£…Cã ÅCáú†Cã á:C‡Cã fæCR¸…Cã ¸ÞC{4„Cã ¸^!C= ‚Cã ®‡"C\ÏCã Ha#C{Cã f&%CR¸vCã q½&CHarCã öh(Cš™nCã .*C{kCã {,CöhgCã �.CöècCã ì‘0C=J`Cã )Ü2Cöh\Cã q½5C�BYCã Ã58C@VCã ö¨;C\ÏSCã À>C@QCã @BCf¦NCã ¸FC)\LCã áúICšYJCã f&NC\OHCã �BRC¤pFCã Ã5VC)ÜDCã á:ZCÃõBCã ÍŒ^C{TACã áúbC�Â?Cã hC=Š>Cã …lCq½ClC§ ± .C�C± DClC§ ´ 4C�C´ JClC§ · :C�C· PClC§ º @C�Cº VClC§ ½  CvC½ DC…C§ À  C|CÀ DCˆC§ à  C�Cà DC‹C§ Æ  C„CÆ DCŽC§ É  C‡CÉ DC‘CÈ"%!#)ÿÍ €Î 0CPCÎ $ClCÀ@Î  C…CÀ@Î &CŽCÍ €Ó ÍL6C33TCÓ +C€oCÀ@Ó 'C3³…CÀ@Ó -CŽCÍ €Ø š™“C© …«BC{4’C© ×c;C@‘C© \�4CR8�C© f&+C\o�C© "C%�C© ×#C…kŽC© ö(C W�C© =ÊCìñŠC© =ÊCšy‡C© {”C¤PƒC© ázC WC© H!CqýwC© ¸ÞCÍ pC© ¸ž!C3³hC© ¸Þ%C{bC© = +CÃu[C© Rø0CšUC© =J7C33OC© áú=C\OJC© ¸žEC)\EC© ¤pMCffAC© nTC®‡=C© ¸^]C¤°9C© fCH¡7C© {TnC…5C© HavC®4C© …«}C¸3C© Ãõ‚C¤p3C© = ƒC\�0C© š™}Cfæ/C© šÙuC)œ0C© H¡mCE2C© ¸eCf&4C© šY\CÅ6C© H!SCq½:C© \ÏKC.>C© ÍÌCC.BC© ¸Þ;Cq=GC© öè4CnLC© …«.C)ÜRC© \�(C{TYC© .#Cö(`C© ®ÇC�gC© ffCšYnC© ¸C®ÇvC© .CE~C© \Cà‚C© �C%‡C© ÍLCÃ5‹C© …«C¥ŽC© q=C®�C©  —!C ·�C© õ*Cá:‘C© )Ü3C�â‘C© €:C…Ë’C© 3³AC=ê“C© \�HCΔC© š™OC)ü•C© =ŠUCà–C© 3s^Cqý—C© 33fCìñ˜C© mC\�˜C© {ÔmC¸^•C© …ëpC×£’C© R8uC)œ’C© ®{Cq]’C© ͬ�C —’C© ¤ð…C ×’C© ¸ŠC®'“C© RØ�CÃu“C© ‘CR¸“C© �b–C w“C© š9šCö“C© {”œCH�”C© e�C\—C© š™�CÅšC© H��Cq�ŸC© =j�Cö¥C© šy�CR¨C© öH�C×ëC© Í,�CίC© îœCôC© )¼œC)ü·C© qýœCšÙ»C© ×c�C)ü¾C© {”žC wÁC© qÝ¡C\�ÃC© …K¦CšÙÃC© ®G«C\OÃC© ìq¯C=jÂC© šY²CÃuÁC© õ²Cfæ¾C© q=¯C¸^¼C© 3óªCfÆ»C© ¤�§C®g¹C©  w§C=Š·C© ¤°§C׃´C© q=¨Cå°C© ¤°¨CÍì¬C© Íl©Cà¨C© =ê©Cì¥C© á:ªC W¡C© ¤ðªC®G�C© R8«C{4™C© =ª«Cq=•C© ìÑ«C�‘C© öè«C�ÂŽC© ®Ç©C챉C© =j¦C×C‡C©  ÷¢C3s†C© \Ï C)|…C© …  C3S‚C© ÀŸC×c{C© ÀŸC rC© Ãu C\�kC© e¡C dC© 3“¢C�]C© ìñ¢CVC© ׃¢C¤°MC© ×ã CRxFC© öˆžC\Ï@C© {´šC¸=C© ö–C…:C© @‘CHa8C© \¯�Cöh6C© EŠC3³3C© �‚†CšÙ1C© \/ƒCö¨0CÊ"%!#)ÿó ô ƒC2C@ô �b†CÍL3C@ô ¤ð‰CHa5C@ô f†�CÅ7C@ô ‘C:C@ô q½•CR8C@ô žCBC@ô �B CázGC@ô …¡CÍLNC@ô ¢CVC@ô f¦¡Cáz\C@ô ¤° C¸žcC@ô �¢ŸC3ójC@ô ŸCrC@ô šÙžCH¡{C@ô f&ŸC…‚C@ô  C†C@ô À¢C`‡C@ô ¦CˆC@ô ©C@ŠC@ô «C�C@ô ì«C\Ï‘C@ô šÙªC�B•C@ô ¤pªC ™C@ô Íì©C\/�C@ô =j©CR8¡C@ô ©C¥C@ô ÍŒ¨C×èC@ô  ÷§Cq½¬C@ô `§C¤°°C@ô Íì¦C¸^´C@ô HÁ¦CŽ·C@ô §CºC@ô ¤°ªC\�¼C@ô ¯C½C@ô ¤0²C¤0¿C@ô ²CÁC@ô ìQ¯C{´ÁC@ô ¸«CH¡ÂC@ô )\¦CÃ5ÃC@ô ¢CáÚÂC@ô ŸCÁC@ô מC×þC@ô )|�Cõ»C@ô N�C¤¸C@ô `�C\´C@ô Õ�CÍì¯C@ô {Ô�C�â«C@ô žC=*¨C@ô žC¥C@ô �žCš™ŸC@ô ¤0žC\ÏšC@ô fžCqÝ–C@ô �C”C@ô …KšCáz’C@ô ¸^–Cq½’C@ô ‘C“C@ô öè�C…Ë’C@ô �"ŠC�‚’C@ô qý…C{4’C@ô öÈ�C¤ð‘C@ô ¤°{CfÆ‘C@ô ÃõtCfÆ‘C@ô pC’C@ô @lC\•C@ô lC˜C@ô ¤pfCö˜C@ô ×ã^C\/—C@ô VC–C@ô ¤ðOCö(•C@ô …+IC¸”C@ô ®BC“C@ô )Ü:C…ë‘C@ô 4C‘C@ô )+C…K�C@ô Há!Cà�C@ô 3³C×C�C@ô CŽC@ô ¤0C3‹C@ô îC�B‡C@ô CƒC@ô …ëCRø~C@ô ¸žC@wC@ô CöhoC@ô  ChC@ô )œ$C®aC@ô Há)C@ZC@ô 3³/C ×SC@ô 6CNC@ô ®=C3³HC@ô ÀDCHáCC@ô  —LC)œ?C@ô TCùC�‚…C¨\¯ùCfF…C¨ÀùCfæ„C¨…ëùC{´„C¨�"úCì‘„C¨)|úCRx„C¨öûCÍL„C¨ 7ûCN„C¨eûCáZ„C¨q�ûCf†„C¨{üCìq„C¨šYüC¸ž„C¨…‹üCš¹„C¨\ýCÍ …C¨�"ýC{…C¨\OýCq]…C¨¤pýC�¢…C¨\�ýCöè…C¨H¡ýC †C¨ ×ýC\�†C¨ö(ÿC¤p†C¨®GÿCÃÕ…C¨{4ÿCì‘…C¨ 7ÿC{…C¨=êþC®g„C¨ìqþC ׃C¨ ÷ýC{tƒC¨H�ýC3SƒC¨EýC=ê‚C¨×cüC�‚C¨¸üC…«‚C¨q½ûCq}‚C¨�ÂúC\�‚C¨)\úCqý‚C¨áúùCÍ,ƒC¨¤�ùC�bƒC¨ÃùC×£ƒC¨=ŠøC=*„C¨öhøC3“„C¨{TøC)Ü„C¨î÷C3s…C¨®Ç÷Cf&†C¨®ç÷C®‡†C¨ ×÷C�‡C¨{øC…‡C¨@øCf&ˆC¨¤pøCöˆˆC¨ö¨øCq½ˆC¨ùCHa‰C¨�‚ùC3“‰C¨{ôùC®Ç‰C¨q]úCö(ŠC¨ ûC®gŠC¨ÕûC3SŠC¨üCáZŠC¨ͬüCNŠC¨¸^ýCHŠC¨€ýC¸¾‰C¨åýCöˆ‰C¨ —þCšùˆC¨®ÇþC€ˆC¨¸ÞþC×#ˆC¨¸ÿC®‡C¨{4ÿCáú†C¨×#ÿC�b†Cä"%!#)ÿ„ …€þC€†C@…RxþCÍì†C@…HaþCRX‡C@…á:þC¸¾‡C@…fþC¸ˆC@…×ÃýC wˆC@… wýC×ÈC@…¸ýCf‰C@…¸¾üCá:‰C@…RXüCHa‰C@…ÍìûCRx‰C@…€ûC€‰C@…3ûCRx‰C@…®§úCHa‰C@…HAúCá:‰C@…HáùCf‰C@…öˆùC×ÈC@…)<ùC wˆC@…šùøC¸ˆC@…ÅøC¸¾‡C@…¸žøCRX‡C@…®‡øCÍì†C@…€øC€†C@…®‡øC3†C@…¸žøC®§…C@…ÅøCHA…C@…šùøCHá„C@…)<ùCöˆ„C@…öˆùC)<„C@…HáùCšùƒC@…HAúCŃC@…®§úC¸žƒC@…3ûC®‡ƒC@…€ûC€ƒC@…ÍìûC®‡ƒC@…RXüC¸žƒC@…¸¾üCŃC@…¸ýCšùƒC@… wýC)<„C@…×ÃýCöˆ„C@…fþCHá„C@…á:þCHA…C@…HaþC®§…C@…RxþC3†C@å"%Íåñÿ³€ ´¦CR¸�C´q�©C…«�C´@­C®Ç�C´ìѰC¤��C´�b´C®�C´RØ·C®�C´®‡»C®Ç�C´ì¿Cáš�C´)œÂC¥�C´EÆC{´�C´3³ÉCšy�C´{tÍCq}�C´RøÐC׃�C´)|ÔC®g�C´\ØCR8�C´)¼ÛC=*�C´¤0ßC@�C´3³âC)�C´)|æC®G�C´HêCö�C´š™íCRø€C´\/ñC®Ç€C´ášôCÃõ€C´)<øC…Ë€C´®çûC¸Þ€C´ázÿC®§€C´=JDÃu€C´ìADì1„C´\/DÃUˆC´=JD¤0ŒC´)|ÿCÍì‹C´)ÜûC=ê‹C´öHøCöè‹C´¸¾ôCáÚ‹C´Ã5ñCŒC´)|íCšÙ‹C´= êC)ü‹C´)|æC¸Þ‹C´3ÓâCÃõ‹C´¸>ßCfÆ‹C´š¹ÛCšÙ‹C´qý×C¤ŒC´ášÔCáŒC´ÃÕÐC׌C´¸^ÍC\ŒC´3ÓÉC…ë‹C´R8ÆCRØ‹C´=ªÂCå‹C´š¿Cöè‹C´Íl»C= ŒC´\ï·CšŒC´@´CÍ,ŒC´À°CÃõ‹C´33­C%ŒC´¥©CRŒC´ —¦CáZŒC´à¦C)‰C´ÃÕ¦CÃ…C´=ª¦CH�C´ÃU¥C¸þ€C´H!¥CR…C´ 7¥Cá‰C´ìQ¥C\��C´f¦©C)¼�C´33­CHÁ�C´q½°Cà�C´)<´CìÑ�C´Ãõ·Cà�C´{t»CÀ�C´�"¿CìÑ�C´¤°ÂCH¡�C´š9ÆCö¨�C´…ËÉC{”�C´šYÍC ·�C´RØÐCf¦�C´)œÔCÕ�C´fØC\��C´fÆÛC€�C´HAßC…k�C´{ÔâC3S�C´q}æCfF�C´= êC{4�C´RxíCöH�C´R8ñC\O�C´®ÇôC…+�C´fFøC… �C´ ×ûCì1�C´ázÿCfF�C´×ÃD)üŒC´=ÚDÃUˆC´¸ÎD¤0„C´ö¸D3sC´ wÿC�‚~C´�âûCqý~C´á:øC®~C´ÕôC3ó~C´\/ñC{C´¤�íC…ë~C´ ÷éC…+C´€æCšC´ ·âCÅ~C´…+ßCšÙ~C´š¹ÛC3ó~C´¸þ×C C´ìqÔC{”C´ÃõÐCEC´¤pÍC€C´ͬÉC —C´)<ÆC3sC´q�ÂCq½C´\¿C�‚C´áz»C3³C´áÚ·C¤€C´ff´CõC´fưC €C´)<­C=*€C´ ©C®'€C´×¦CH!€Cæ"%!#)ÿ¬ ­¦C�C@­€D€C@­€D€ŒC@­¦C�C@ç"%~¡¸ÿ³€ ´\­CìѰC´{”°CÀ°C´š9´CΰC´RØ·Cq½°C´{t»C3“°C´�B¿Cq�°C´\ïÂCöȰC´�bÆC\o°C´ 7ÊC…°C´f¦ÍC\O°C´nÑC€°C´{ôÔCÍl°C´ ØCR8°C´…+ÜC¸°C´ìÑßC)°C´)œãCÍ °C´¸>çC3ó¯C´HÁêCì°C´¤pîCRø¯C´ÃòCf¦¯C´ ×õC×ïC´\OùCš™¯C´)|üCff¯C´{”üCf&²C´öHùC{²C´3³õC3²C´=*òC)ü±C´…kîCî±C´fæêCòC´¸çC²C´…ãCÍ ²C´qÝßC ÷±C´3SÜC¤0²C´š¹ØC3²C´ÕC¸>²C´{TÑC)<²C´…«ÍC@²C´¸þÉC\O²C´šyÆCáZ²C´×ÃÂC\O²C´ì1¿C@²C´3“»CRX²C´ ×·CÃu²C´33´C)œ²C´¤�°C…«²C´Rx­Cà²C´ì±­C×°C´N¬C)ü¯C´ff¬CRø³C´…‹°CE´C´š9´CÍl´C´öè·CfF´C´¸ž»C×#´C´Ã5¿Cš´C´q½ÂCì´C´)|ÆC.´C´öÊC¸þ³C´ͬÍCìñ³C´šYÑC= ´C´šÕCöȳC´)¼ØCųC´áZÜCHÁ³C´…ëßC —³C´׃ãCe³C´ çC…‹³C´îêCE³C´ìqîCE³C´®'òC ³C´¤°õCá:³C´NùCá³C´{TýCå²C´NýC\�®C´fFùC…K®C´ìÑõCf†®C´¤òC w®C´�bîCR˜®C´×ÃêCÕ®C´q=çCf†®C´ÕãC=ª®C´3ÓßC ®C´ö(ÜCH�®C´R˜ØC×£®C´®çÔCH�®C´…kÑCẮC´¥ÍC…«®C´\/ÊCÀ®C´RXÆC®Ç®C´àÂC¸Þ®C´E¿C®¯C´Íl»C¸þ®C´¤Ð·C{4¯C´)<´C… ¯C´\�°CH!¯C´®­Cì1¯Cè"%!#)ÿ” •­C°C@•ýC¯C@•ýC€²C@•­C€³C@é"%~¡¸ÿ›œ€©C�Cœ€©C¾C›ŸÀªC�CŸÀªC¾C›¢¬C�C¢¬C¾C›¥€üC�C¥€üC¾C›¨ÀýC�C¨ÀýC¾C›«ÿC�C«ÿC¾Cê"%!#)ÿ¯€ °ázüC®‡ŒC°f†þC×cŠC°Ã%D®gŒC°qD¤°ŽC°Í DR¸’C°q½ÿC{T—C°HÁÿCì±›C°3“ÿCŸC°{tDö£C° ×D¤¥C°šiD{´¦C°=ÊÿCRتC°3ÓÿC¤Ð­C°RDö¨±C°áD\ïµC°=JD)ºC°\ODq�½C°�BD…«¿C°…KþCRøÁC°fæûCH¡¿C°fæûC¤p½C°qÝûCHºC°\/üCáÚµC°ͬüC®§±C°®ÇüC®ç­C°šÙüCŪC°)¼ûC)ܦC°HáúCÍ ¥C°3³ûC £C°…ËüCÍ ŸC°¤ÐüC…Ë›C°ÍìüC¤p—C°¤püC…ë’C°R˜üC×ãŽC°…«üC\ŒC°{TûC¤ð‹C°åúC\ÏŽC°îúCÃõ’C°fûCH�—C°=*ûC®Ç›C°öûCfÆžC°¤úC —¢C°\ïøC ¥C°\/úCe§C°HûC= «C°¸ûCå­C°RûCÍŒ±C°®§úC)¼µC°ì‘úCRø¹C°)|úCq}½C°\ïúCÃ5ÀC°=JþC33ÃC° ·DR8ÀC°®÷D®§½C°\ßDºC°öÈDàµC°õDq�±C°\¯D¸¾­C°š™Dì«C°3CD×C§C°=šD\¥C°{4D=Š¢C°žDÅžC°õD�›C°×ÓD=j—C°�òDìÑ’C°HD\¯ŽC°ÕD3³‹C°öˆþC3³ˆC°€ûC…‹Cë"%!#)ÿø ùüCŒC@ù®‡þC ‰C@ù€DŒC@ùášD=ÊŽC@ùš‰DáÚ’C@ù{dDÍl—C@ù×CDẛC@ù@DŸC@ù)ÌD\Ï¢C@ù@D¥C@ù)ÌD\§C@ù@D«C@ùHADà­C@ù=ZD=ª±C@ù)|DàµC@ù®—DºC@ùžD=нC@ù€DÀC@ù@þC ÂC@ù€ûCÀC@ù×CûC=нC@ù¤PûCºC@ù®‡ûCàµC@ù…ËûC=ª±C@ùqýûCà­C@ùüC«C@ù®çúC\§C@ùúC¥C@ùàúC\Ï¢C@ùüCŸC@ùÍ üCẛC@ù®çûCÍl—C@ù)¼ûCáÚ’C@ùõûC=ÊŽC@ì"%~¡¸ÿ�€ ž —©C¸žŒCž «CeŠCžì1­C×CŒCž®G­CÃÕŽCžö(­C®ç’CžöȬC®g—Cž ¬C×ÛCž{´¬C¸ŸCžáÚ­C�£CžÅ®Cìñ¤CžÀ­C�¦Cž¤°¬CöȪCž{´¬Cšù­Cžìñ¬Cq�±CžHa­C�âµCž w­CúCžf¦­Cìq½Cž ­Cͬ¿Cž{4«CqýÁCž¸©C¥¿Cž\ϨCáš½Cž¸Þ¨C…ë¹Cž\/©C)üµCž\�©CH¡±Cžî©CHá­Cž)¼©CRتCž®§¨CRئCž{ô§C®ç¤Cž¥¨C3£CžÍì©C\ŸCž×ã©C¥›Cž®Ç©CÃu—Cž¸^©C=Ê’CžÍŒ©CHÁŽCžHÁ©C¤ŒCž¸>¨C\ï‹Cžqý§C…«ŽCž×ã§C\Ï’Cžšù§C®‡—Cžì¨C=ª›Cžqý§CHÁžCž¤§CŽ¢Cž¸þ¥CÍì¤Cž×#§C{T§Cž ¨C�"«Cž�B¨CÃÕ­Cž\ï§C…±Cžöè§C®çµCžš™§CqݹCžR˜§C…«½Cž¸þ§C{TÀCž 7«C\/ÃCž{”®Cš9ÀCž3³®Cìq½CžöÈ®C¤ºCžq½®C\ϵCžRX®C�‚±Cž¸>®C\ï­Cž)<®Cf«Cž W¯C¤P§Cž{T°CRø¤Cž¸^¯C�‚¢Cž3s®C¸ÞžCž3“®CÍÌ›Cž×£®Cq}—CžáÚ®C“Cžq¯CÎŽCžš™®C\�‹Cž —«CšùˆCž�‚¨Cìq‹Cí"%!#)ÿæ ç©CŒC@箇«C ‰C@ç®CŒC@çÃ5®C=ÊŽC@ç3®CáÚ’C@çöÈ­CÍl—C@箇­CẛC@瀭CŸC@çR˜®C\Ï¢C@瀯C¥C@çR˜®C\§C@瀭C«C@ç�‚­Cà­C@ç{´­C=ª±C@çRø­CàµC@ç\/®CºC@ç)<®C=нC@ç®CÀC@ç@«C ÂC@瀨CÀC@ç×C¨C=нC@ç¤P¨CºC@箇¨CàµC@ç…˨C=ª±C@çqý¨Cà­C@ç©C«C@ç®ç§C\§C@ç§C¥C@çà§C\Ï¢C@ç©CŸC@çÍ ©CẛC@ç®ç¨CÍl—C@ç)¼¨CáÚ’C@çõ¨C=ÊŽC@î"%~¡¸ÿ‹ŒÜB€�CŒhC€ŽC‹�ÜB‘C�hC�C‹’ÜB€’C’hC€‘Cï"%Ncuÿ–—ØB¾C—ÜB–CÀ@—äBfCÀ@—îBDC–œàB¾CœäB–CÀ@œìBfCÀ@œôBDC–¡èB¾C¡ìB–CÀ@¡ôBfCÀ@¡úBDC–¦ðB¾C¦ôB–CÀ@¦üBfCÀ@¦CDC–«øB¾C«üB–CÀ@«CfCÀ@«CDCð"%Ncuÿ±€ ²RøC쑪C²) C¤�ªC²)Cš¹ªC²q=CŽªC²)\C®§ªC²)\%C…ªC²�‚,CeªC²…«3C=JªC²ì‘:CÍ,ªC²¸ÞAC…ë©C²3óHC ªC²3³OC\Ï©C²šWC3Ó©C²šY]C\o©C²n]C ¬C²qýVC¸~¬C²{ÔOCf†¬C²õHC쑬C²{ÔAC¥¬C²®‡:C\¯¬C²®3Cš™¬C² —,C¤Ð¬C²ìQ%C…ˬC²…+CHÁ¬C².C=ʬC²Í Cf­C²ö( CH­C²fæCš™­C²¸žCתC²HaC)ü©C²\ÏC¤�®C²�B C®Ç®C²H!CR¸®C²�BCf¦®C²…+C=ª®C²)\%C×£®C²R¸,C{t®C²=Ê3C@®C²ì‘:C�"®C²îACö®C²ÀHC×íC²šÙOCöè­C²{WCR¸­C²qý^C\O­C²¤ð^C\¯¨C²ìWCöˆ¨C²f¦OC€¨C²öèHC�‚¨C²)ÜACöˆ¨C²�‚:Cáz¨C²{”3C¤p¨C²ff,CR˜¨C²33%C¸ž¨C²ìQC…ë¨C².CŨC²C¤©C²š Cq©C²…ëC¸>©Cñ"%!#)ÿî ïCªC@ï^C©C@ï^C­C@ïC®C@ò"%~¡¸ÿõ€ ö{_C�“CöÍ dCH�‘CöÅhCRX“Cöš™hCÀ•CöRxhC —™CööègC ·�CöÃ5gCΡCö¸^gCq¥CöáúhC¥¨Cö WjCöè©Cö®ÇhC®g«CöÃufCå®CögC�²Cö= hCÅ·Cö\hCf¦¼CöÍ hC¥¿Cö{”bC¤pÁCö)Ü\C¥¿Cö¸^\C®¼Cöì‘]C×ã·Cö= ^C¸¾²Cö\O^C¤Ð®Cö)œ\C®g«Cö�‚ZC×ã©CöìÑ[C{´¨Cö¸^C…+¥Cö…+^C¸þ¡CöE^CöÈ�Cö¤p^C3“™Cö…k^C=ª•Cö3s_Cf&“CöÍŒ\CšÙ’Cö…k[CH�•Cö®ÇZCöˆ™CöÅZC¸¾�CöšYZC3ó¡Cöq=ZC{Ô¤Cö.XCš¨Cö33WC)ªCöö(YCš¬CöìQ[C¯Cö33[C¤°²Cö)œZCöÈ·Cö�ZCö¨¼Cö\ÏZCšYÀCöš™bC —ÂCö ×iC 7ÀCö ×jC…«¼Cö×cjC{´·Cöq½iCö¨²Cö…kiCì¯Cö WkCöè«Cö3smC{ªCöì‘lC=*¨CöìkCà¤CöqýjCHá¡Cöö¨kCšÙ�Cö{lC®§™Cö.lCq½•Cö¸žkCìq’CöîcCHá�CöRø\C{t’Có"%!#)ÿ¶ ·^C“C@·¤0dCÀ�C@·jC“C@·ì‘jC®§•C@· WjC®‡™C@·q½iC¸Þ�C@·f&iCìñ¡C@·iC¥C@·¤°jC\O¨C@·lCªC@·¸jCÀ«C@·hC¯C@·á:hCβC@·\iC\Ï·C@·¸žiC=ª¼C@·iCÀC@·€bC ÂC@·\CÀC@·Ha[C=ª¼C@·¤ð[C\Ï·C@·Å\CβC@·]C¯C@·HáZCÀ«C@·YCªC@·¸ZC\O¨C@·\C¥C@·ÍL\Cìñ¡C@·×c\C¸Þ�C@·®‡\C®‡™C@·áú\C®§•C@ô"%~¡¸ÿ×€ Øš™ËBHá�CØ�ÂÚB¤Ð�CØ\�èBÕ�CØ.÷BR¸�CØ®‡C{”�CØ=Ê C¸ž�CØCì±�CØH!Cf†�CØÃuCš™�CØHa&CÍl�CØ=Š-C¤P�CØq½4Cá:�CØ®“CØ WpCe�CØ×ãnCöˆ‹CØq½fC W‹CØ)œ_C=Š‹Cظ^XC…k‹CØšYQCff‹CØ�JC®‡‹CØ×ãBCH�‹CØáú;Cáš‹Cؤ°4CÕ‹CØ�‚-Cš¹‹CØìQ&CŽ‹CØöhCö¨‹CØ{Cf¦‹CØÃõC×ËCØ®Ç C®‹CØffCöè‹Cظ÷B®'ŒCØázèB®ŒCØ…ÚBEŒCØ=ŠËBEŒCõ"%!#)ÿ° ±ÌB�C@±nCŒC@±pC“C@±ÌB”C@ö"%~¡¸ÿ·€ ¸q½ÿB…*C¸ÃõÿB¤°*C¸¤ðÿB�Â*C¸ WÿB�+C¸š™þB)œ+C¸R¸ýB¤ð+C¸ýBRø+C¸q½ûB�Â,C¸ ×úBq=-C¸®ÇùBHa-C¸R8úBö(-C¸ÃuøB@-C¸)ÜöB�B-C¸®GõBö(-C¸q=ôB33-C¸= óBöè,C¸)\òBõ,C¸ÃuòB¤p,C¸ÃuðBáú+C¸ìÑïB —+C¸ìÑïB=J+C¸ÍLïBìÑ*C¸ ×ïB= *C¸ WïBáz)C¸3³ïBá:)C¸R¸ðBE(C¸…ðBì(C¸ö¨ñB®Ç'C¸=ŠòBH!'C¸)ÜóB¤ð&C¸R¸óBÀ&C¸…õBî&C¸…ëöB¸Þ&C¸ö(øB®Ç&C¸×#ùBÍÌ&C¸{úB®Ç&C¸®GûB¸^'C¸…küBÃu'C¸…kýBì‘'C¸ÃuýB=Ê'C¸=ŠþBqý'C¸…kþB33(C¸…kÿBöh)C¸H!C3³)C¸ö¨ÿBšÙ)C¸…+Cf&*C¸Cfæ(C¸ì‘Cqý'C¸ffC W'C¸ö(C=J&C¸öhC@%C¸HáC�Â$C¸\�ÿBî#C¸šþB…«#C¸ ×ûBÃu#C¸R8ùB\O#C¸Ãõ÷B…k#C¸\�õB{T#C¸\�ôBšÙ#C¸ffòB¤ð#C¸ìQðBÍŒ$C¸¤ðîBE%C¸¸îB ×%C¸šìB\�&C¸šìBq}'C¸šëB (C¸€êB®G)C¸ázêBR8*C¸…ëêB×ã*C¸®êBìÑ+C¸ázëB�Â,C¸fæìBÅ-C¸R¸íB{T.C¸€îBR8/C¸ö¨ðBÃ5/C¸�ÂñB\0C¸ÃuôBE0C¸fföBáz0C¸ö¨÷Bff0C¸…kùBqý0C¸…ëûB\�0C¸33þB0C¸…ëÿB)\/C¸…«Cf&/C¸ìCÀ.C¸33C…«-C¸ WCq½,C¸®CR8,C¸33C)œ*C¸Í CR¸)C÷"%!#)ÿ” •€C*C@•¤pCõ*C@•®GCöh+C@•C{,C@•H¡C3³,C@•ö(CE-C@•33ÿB®Ç-C@•¤ðýBÃ5.C@•\�üBÍŒ.C@•šûBÍÌ.C@•\�ùB3ó.C@•øB/C@•¤pöB3ó.C@•fæôBÍÌ.C@•¤póBÍŒ.C@•\òBÃ5.C@•ÍÌðB®Ç-C@•®ïBE-C@•q½îB3³,C@•îB{,C@•¤píBöh+C@•¸íBõ*C@•íB*C@•¸íB=J)C@•¤píB —(C@•îB…ë'C@•q½îBÍL'C@•®ïBáº&C@•ÍÌðBR8&C@•\òB=Ê%C@•¤póB3s%C@•fæôB33%C@•¤pöBÍ %C@•øB%C@•\�ùBÍ %C@•šûB33%C@•\�üB3s%C@•¤ðýB=Ê%C@•33ÿBR8&C@•ö(Cáº&C@•H¡CÍL'C@•C…ë'C@•®GC —(C@•¤pC=J)C@ø"%~¡¸ÿÀ ÄR¸ðB0CÄš™ðB×#,CÄ\�óB33&CÄšõBn CÄHá÷BšYCÄÃu÷B¤pCÄö¨øBì‘CÄ= üBìQ CÄÃuýBqý%CÄìQÿBÍ ,CÄ\�ÿB¤°.CÄš™÷BìQ0CĸïBÅ.CÄHáìBá:1CÄR¸÷B{4CÄÃuC�1CĤðCÀ+CÄ3³CÃu%Cĸ^C×ãCĸžýBRøCÄ)Ü÷BÃõCÄÍLñB…«CÄ€îBöèCÄ)\ìB€%CÄHáéB®Ç+CÄ®ÇêB.0Cù"%!#)ÿà áîB0C@áázíB®Ç+C@ḞïB®Ç%C@áòB C@áHáôB¸C@áøBC@á¸ûB¸C@áþB C@á¤0C®Ç%C@á�BC®Ç+C@áC0C@áøB2C@ú"%\zŽÿï€ ðö¨ÒBìñ¿CðffÑBŽCð®ÏB3S»Cð×#ÏBá¸Cð®GÏB3³´CðHáÏB{ô°Cð¤pÏB­Cð…ÐB�â¨CðáúÐBš¹¤Cð WÒBẠCð�BÓBR¸œCð…ÓB¤P™Cð�ÂÓB…ë•Cð¸ÔB=Š‘Cð)\ÔBáz�Cð)\ÕB{”‰Cð�BÖBöè…Cðö¨ÖBì1‚Cð®×BR8}Cðö(ØBšÙvCðq=ÙBÍLpCð=ŠÚBöhgCð.ÜBÍL_Cð3³ÝB3óWCðš™ßB€PCðq=áBÍ JCðfæâBšYDCð�BæBqý:Cð¤pêBìÑ3CðÍLîB®.Cðö(ôBÅ'Cð�Â÷Böè$CðÍÌûBö¨'CðHáCn.Cð{ÔCõ3Cð\ÏC3ó:CðÀC×#DCðö(CšYJCð¤ðCq=QCðqýC…ëXCð33CìÑ`Cð×ãCR¸hCð�‚CR¸oCð{ÔCR8wCð¤0C¤ð|CðÍŒC\¯�CðõCå…Cðq}CöŒCðöèCfÆŽCð{C33’Cð…+C{ô•Cð�CHšCðázC×cžCð…C�â¢Cð®ÇCìQ§CðáºCÀ«CðÃõCfæ¯Cð{”C)ܳCðÃ5Cì±·Cð×ãCqݺCðffCáš½Cð…«CÕ¿CðR8óBÎÄCð)ÜàBRXÄCð.ÒB —¿CðìÑÍBöhÀCð¸žÝB{´ÅCð= öBšÆCðH¡CffÀCð¸^C3Ó½Cð¸^C»CðöhC�·Cð×ãCìñ³Cð¤0C=ê¯CðCq½«Cðö(C\O§Cð�C¸Þ¢CðH!CšYžCð3³Cáú™Cð3óCRø•CðÍÌC…+’Cð¤°C®ÇŽCðq}C ŒCð…+CH†Cð= CšÙ�CðRxCá:}Cð…ëC€wCð�‚C×ãoCðÍŒC=ÊhCðö¨CšÙ`Cð®ÇC…ëXCðšÙCq=QCðì‘C@JCðÃõCîCCðîC\�:Cð{ÔC)3CðÃ5Cq}-CðR¸ÿBÃu&CðR¸÷B=Ê"Cðq½ïBq}&Cðq=éB®-CðæB×#3CðâB€:Cð…ëÝB¸ÞCCðš™ÛBš™ICð…kÙBšPCð®Ç×B)œWCð¤ðÕBÃõ^Cð.ÔB×#gCð.ÓBìpCð®ÇÑBH¡vCðÑBÍ }CðázÐB)‚Cð)\ÏBÍÌ…CðÎB w‰CðHaÍB…k�Cð×#ÍB�‚‘Cð ×ÌBà•Cð\ÌBHA™Cðö¨ËB¥œCðfæÊB  CðHaÊBö¨¤Cð¸ÊBΨCð®ÈB¤ð¬Cð WÈBî°Cð¸ÈB3³´CðšÉB…+¸CðšÊB3s»CðÃõÊB×¾CðìÑÌB{4ÀCû"%!#)ÿô õÐBÀC@õö(ÎBî½C@õ…ëÌB=J»C@õ33ÌB…+¸C@õ…ëËB=ª´C@õÌB¸Þ°C@õHaÌBà¬C@õ¤ðÌBfƨC@õ¸žÍB=ª¤C@õ)\ÎB×£ C@õ\ÏB=ÊœC@õ¸žÏB 7™C@õÐB–C@õ¤pÐB¸ž‘C@õáúÐBRx�C@õ×£ÑB…‰C@õHaÒBÀ…C@õ33ÓB�"‚C@õ{ÔB\O}C@õÕBì‘vC@õÖBpC@õ…k×Bq}gC@õÃõØB{T_C@õ¸žÚB¸žWC@õHaÜB¤pPC@õ.ÞBHáIC@õàBDC@õ)ÜãB —:C@õ…ëçBH¡3C@õìB.C@õòB'C@õøB$C@õ¸þB'C@õC.C@õîCH¡3C@õq½C —:C@õCDC@õìQC)JC@õázC¤0QC@õ€CHáXC@õöhC\Ï`C@õá:C×£hC@õCpC@õ{”Cá:wC@õRøCR8}C@õEC=Ê�C@õ{”C)ü…C@õCŒC@õHáCšÙŽC@õ¸ÞC{4’C@õ¤ðC ÷•C@õ\C= šC@õ33C WžC@õ{TCfÆ¢C@õ¤pC@§C@õázCͬ«C@õ¤pC{ô¯C@õ=JC´C@õCR¸·C@õ=ŠC»C@õHáC\ϽC@õCÀC@õÍLôB®gÅC@õ�BßBöÅC@ô ¶€þBbC¶)ÜýBRxcC¶šüB)œdC¶q½ùB@eC¶ff÷B3seC¶×£õBq}eC¶×£ôBÀeC¶ìQôB=ŠfC¶®GôBáúgC¶= ôBšÙiC¶q=óB�ÂkC¶ìÑñB…+mC¶ðB3³mC¶.îB…+mC¶�ÂìB�ÂkC¶ÃõëBšÙiC¶R¸ëBáúgC¶®ëB=ŠfC¶)\ëBÀeC¶)\êBq}eC¶š™èB3seC¶�BæB@eC¶fæãB)œdC¶×#âBRxcC¶€áBbC¶×#âB®‡`C¶fæãB×c_C¶�BæBÀ^C¶š™èBÍŒ^C¶)\êB�‚^C¶)\ëB@^C¶®ëBÃu]C¶R¸ëB\C¶ÃõëBf&ZC¶�ÂìBq=XC¶.îB{ÔVC¶ðBÍLVC¶ìÑñB{ÔVC¶q=óBq=XC¶= ôBf&ZC¶®GôB\C¶ìQôBÃu]C¶×£ôB@^C¶×£õB�‚^C¶ff÷BÍŒ^C¶q½ùBÀ^C¶šüB×c_C¶)ÜýB®‡`Cü"%~¡¸ÿèéðA€ÃCéPBÄCèìDB€ÃCìŽBÄCèïˆB€ÃCï´BÄCèò®B€ÃCòÚBÄCèõÔB€ÃCõCÄCèøúB€ÃCøCÄCèûC€ÃCû&CÄCèþ#C€ÃCþ9CÄCè�6C€ÃC�LCÄCè„IC€ÃC„_CÄCè‡\C€ÃC‡rCÄCèŠoC€ÃCŠ€‚CÄCè��C€ÃC�ŒCÄCè�€ŠC€ÃC�€•CÄCè“”C€ÃC“ŸCÄCè–€�C€ÃC–€¨CÄCè™§C€ÃC™²CÄC蜀°C€ÃCœ€»CÄC蟺C€ÃCŸÅCÄC袀ÃC€ÃC¢€ÎCÄCè¥ÍC€ÃC¥ØCÄC言ÖC€ÃC¨€áCÄCè«àC€ÃC«ëCÄC讀éC€ÃC®€ôCÄCè±óC€ÃC±þCÄCè´€üC€ÃC´ÀDÄCý"%Ncuÿ¸¹hB€ÁC¹lBÇC¸¼ÒB€ÁC¼ÔBÇC¸¿C€ÁC¿CÇC¸ÂGC€ÁCÂHCÇC¸ÅvC€ÁCÅwCÇC¸È€’C€ÁCÈ“CÇC¸ËªC€ÁCË€ªCÇC¸Î€ÁC€ÁCÎÂCÇC¸ÑÙC€ÁCÑ€ÙCÇC¸Ô€ðC€ÁCÔñCÇC¸×D€ÁC×@DÇCþ"%!#)ÿÛ€ Ü)\±AͬÁCܤpçAìÑÁCÜq=B{”ÁCÜ33,B�bÁCÜq=GB…KÁCÜ×£dBìqÁCÜìQ€BáÁCÜázŽBšÁCܤð›B\ïÀCÜÃuªB3ÓÀCÜ�B¸B×ÃÀCÜö(ÆBöÈÀCÜ…ëÓBŽÀCÜ…ëáBf†ÀCÜ\ðBÃ5ÀCÜ{”ýBšyÀCÜ…ëCìqÀCÜ{ CášÀCÜ×ãC3³ÀCÜ.C{´ÀCÜ=Ê!Cq�ÀCÜÃ5)Cq½ÀCÜÀ/C®§ÀCÜ…+7CfæÀCÜ\>C¸þÀCÜîDCšÙÀCܤðKC)ÜÀCÜfæRC… ÁCÜ�ÂYCÁCÜ�aCì1ÁCÜ…ëgC\/ÁCÜ…ënC�bÁCܤ0vC WÁCÜ ×|Cš9ÁCÜšù�C×cÁCÜáš…Cá:ÁCÜšùˆC×CÁCÜnŒC%ÁCܸ�CáúÀCÜì‘“CÍ ÁCÜÍì–CHáÀCܸ~šC®ÀCÜ®ç�C¤ÐÀCÜ)|¡C…ËÀCÜ×¥C wÀCÜ{t¨C)|ÀCÜ\¬CÍLÀCÜ…k¯CNÀCÜ…ë²CÍ,ÀCÜ ¶C�"ÀCÜúC… ÀCܸž½Cå¿CÜÍ ÁCRØ¿CÜ{”ÄCöÈ¿CÜáúÇCšÙ¿CÜ×£ËC×ÿCÜ@ÏCìÑ¿CÜ…ËÒCÅ¿CÜ\�ÖC¸¾¿CÜ®'ÚC¤Ð¿CÜàÝC×ÀCÜ׃áCHÀCÜ)üäCHÀCÜ3“èCÀCÜ\/ìC{4ÀCÜ�ðC×cÀCÜÕóC×CÀCÜ�"÷Cq=ÀCÜ)ÜúCHaÀCÜRXþC×CÀCÜìD3“ÀCÜ)ÜD)œÀCÜ §DÍŒÀCÜfVD3SÀCÜ\oDqýÃCܸ¾Dq�ÇCÜá:D¸^ÇCÜ�rDq]ÇCܤ°D…KÇCÜ×ãÿCH�ÇCÜìqüC=JÇCÜ ×øCnÇCÜ WõCìqÇCÜ®ÇñCšYÇCÜáZîC wÇCÜÅêCöHÇCÜq]çC®GÇCÜÍìãC¤PÇCÜÍlàCRXÇCÜõÜCš9ÇCÜq]ÙC×cÇCܸÞÕC\oÇCÜ\OÒCšYÇCÜÃÕÎC¸^ÇCÜR8ËCHaÇCÜ®ÇCfFÇCÜ.ÄC¸^ÇCÜͬÀCöHÇCÜ×#½C\OÇCÜÀ¹CáZÇCÜö(¶CHAÇCÜì±²CH!ÇCÜÍ ¯Cö(ÇCÜf¦«C33ÇCÜš¨C�BÇCÜH¡¤C¤0ÇCÜ{¡C¤PÇCÜáz�CqÇCÜRø™C¤0ÇCÜ€–CRÇCÜ{“CR8ÇCÜ®‡�CH!ÇCÜ{ŒC¤0ÇCܤ�ˆC®'ÇCܸބCf&ÇCÜìq�Cš9ÇCܤð{C ÇCÜõtCÇCܤ°mCH!ÇCÜ —fC)üÆCÜfæ_Cf&ÇCÜö¨XC{ÇCÜ�ÂQC)ÇCܸžJC®'ÇCÜÍÌCC…+ÇCܸžC¿CÜ@7C3¿CÜìÑ/Cf¿CÜá:)Cöè¾CÜ=Ê!Cqý¾Cܤ0CÍì¾CÜîCáÚ¾CÜÃ5 C×ã¾CÜ�C{”¾CÜö¨ýB=ª¾CÜÃõïB=ª¾CÜR¸áBÍ̾CÜö¨ÓBq½¾CÜ ×ÅB¿CÜ33¸Bì1¿CÜ�BªBH!¿CÜ×£›B3s¿CÜ WŽBÕ¿Cܸ€BR˜¿CÜìQdB®¿CܸGBõ¿CÜš™+B×ã¿CÜ®B¸ÀCÜHáæA…+ÀCÜ®G±AÃUÀCÿ"%!#)ÿŽ" �"°AÁC@�"ðB€¿C@�"‚C€ÀC@�"ÈC¿C@�"€DÀC@�"DÈC@�" AÈC@€#%~¡¸ÿ:—ÆÏÚëŽ�®µÒáìÉø‰/333?01�/ÍÌL?01¯þ¦01Ôïú‹’™ ±ÂÓ„�/ÍÌL?01¥/fff?01ÇšÄí‚ ‰ � — ž ¥ ¬ ³ â § /333?01Í /ÍÌL?01¨ ó Ù /ÍÌL?01ä ��/333?01­øž½/ÍÌL?01Ñò�°Íî‹ä„ËÓÖ/ÍÌ ?01”/š™?01Ÿœ£§„³¬³”›/š™?01¯ø�æ‹/š™?01–/333?01±îõ¶×°·”Ãàïô(è/š™?01¸/fff?01ÛŽ"7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=• KF¾CúCîìÇ OathShadow¤åæçèéêëìñò >CúC >ÃúÀ ÍLÙB ùCR¸ÙB®öCq½ÛB�‚òCázÝBöèîCHáÝBö(ëC×#àBŽçC= áBH!äC\�âB…‹àCffãBîÜC¤ðäBÍlÙCš™æBͬÕC…kçB3ÒCR8éB ÎCšëBáúÊCšìB3SÇC{”íBÅÃCÍÌîB¤PÀC{ðB®¼CR¸ðBšù¸CòB®µC¤pôB¸þ°CÍLõB{­C{”öBÍ,©CR¸÷Bá¥C\�ùBÃõ C33øB{´œC…õBfƘCÍLôB®‡”CìÑòB…‹�C= ñBöhŒC= îBq½ˆCìQëBÃ…CHaèB=j�CR8åB3³{CHaâB…ktC®GßB= mC…ÜBfC\ÙB\�^CHáÖBì‘WC�BÓB�PC{ÐBìIC3³ÍB…kAC{ÈB¤ð9Cq½ÂB€2Cö¨½B®‡*CìQ¸B{#CÃõ²BšÙCö¨®BÃõC�©B¸^ CR¸¦B…kC®Ç¢B€ûB{”ŸBíB…œB…kÞB…™B×£ÏB.–B{ÁB¸ž’B=бB\�B)Ü£B{”‘Bq=–B W”BìчBš–BázrBáz˜BìQWB3³šB¤p:B�B�BìQB×£ŸB¸B×#ªBš™×A=еBáz¤A…½B{rA�»Bö(¦A½BÃõàA¸¾B\�B¤ð¾B ×,B{”¿BffLBÃuÁBq=kB\�ÂB€„B= ÈB�Â’B= ÍB. Bš™ÑB{­BázÖB®ºBšÛB33ÈB€ßBfæÕB WåBázãB�BéB×#ñB®GîBö(ÿB…kóBÀCfføB)Ü C¤ðýBC×#CáúC…kCf&#C{ÔC *C¸^C)1Cì C×c8CHa Cáz?Cá:CázFCÃõCÃuNCšYCq½EC¤0C…k>Cq½C¤p7CÃuC=Ê/Cö(C×ã(C…kC)œ!Cì‘C…C.C=JC®ÇCẠCšÙC¤pC�CHáúBšÙCÃuìB\OC¤ðÝB.C¸žÍB\ÏC¸ž¾Bõ C¤p®Bá: CÃõžBìÑ C{�B×£ C¸B€ C)\bBf¦ Cö(CB3ó Cff%B\OC¸B®GCÐAECff–A®GCR¸jA{CHá"A…« C= ·@šY$C…«?ö($C= ÷@…ë$Cš™uAf¦%Cš™µA=Š&CR¸ôAÍL'Cš™BšÙ'C7B¸^(CÃõTB\*C\�tBR8+CÃu‰B —,C33™B\�-C.¨B¤ð.C33¸B�B0Cq=ÇBì‘1CÍÌÖB —2C×£æB\Ï3CHaõBì5CR8Cáz5CÍÌ Cn6CìQCÀ7CÀCHá8Cá: C¤ð9C3³'C�Â:Cî.CÍŒ;C×ã6CÍÌCR¸=CÅEC3ó?CNCš™BCH!FCfæCCÍL?CáºDCì‘8CáúECff1C)\GC¸ž*Cq½HCìÑ#C×ãICö¨CÍLKC�ÂCš™LCRøC ×MCö(CìÑNC¤ðCáúOC¤pôB®ÇOC)ÜåB WOCìÑ×B¤0OC.ÊB¸žNCÍÌ»BR¸NCáz­BÍÌMC×£ŸB\�MC¤ð‘B×#MC)\„BõNCìQlBš™PCffQB…kRC¸5B ×SC®GBfæUCR¸úA)\WC33ÁA\ÏXCìQ�A)œ`C�ÂiA×£hCáz0A=JoCÍÌä@nC®GQA…kmCáz AfælC…×AÍÌkC{BH!kC= #BõjCq=@BR8jCÃõ[BH¡iCq=wBR¸hC¸ž‰Bö(hCR¸™BÀgC¤ð©B¸žfC®¹BöèeC¤ðÉBRxeCR¸ÙBf¦dCR8êB3ódCÃõ÷Bš™dC@C{TdC{T C¤ðcCf¦C@dC×£CÀcC®C×£cCáú&CõcCî-C…+cC3s5CHacC¸^C¸°CÍÌEC{¯CšKCR¸­CìÑQC\�¬Cf¦XC®'«Cá:_CתC\ÏeCfƨC×£lC\¯§C)sCå¥CnzC3¤CRØ€CN¢CN„C)\ C3Ó‡C쑞Cff‹C¸¾œCì�CÃÕšCá:’CqݘC\�•C—C�˜C)ü”C)œCq“C33ŸCì‘C3“¢C�CHÁ¥C¸þŒC¤©CH!‹Cì1¬CH!‰Cq½¯C×ãˆCn³CàˆC ÷¶C ·ˆCnºCš¹ˆC×¾C\�ˆCnÁCšyˆC)üÄC…+ˆC׃ÈCöˆC… ÌCáˆCeÏCˆCšùÒC¤Ð‡CÍlÖCq�‡CÍìÙCH¡‡CnÝCf¦‡C¤ðàCHa‡C…äCE‡CÃõçC3‡Cq]ëCì‡C×ïCH‡C=ŠòCͬ†C\ïõC®ç†C�âøCׄC=ŠøCHa€C\¯øCR¸yC�ÂøC…rC\�øC.kC{ÔøCšYdC…‹øCî\CášøCH!VC3³øCOCö¨øC�‚GCͬøC�Â@C ·øCff9C…«øC¸^2CìÑøCÍ +CáºøC)$C�¢øC®C)¼øC¤°C3ÓøCÃuCfÆøC€C�ÂøC®‡C¸ÞøC…ëòBq½øC®GäB ·øCÖBÍÌøCÖB33úCq=äB…KúC)ÜòB)\úC®‡C=JúC\�C{TúCÃuC�"úC¤°CEúC{C…+úC= $C¸>úCqý*C)|úCöh2C®GúC×c9C¸^úCq½@C…kúCÍŒGC…kúC= OCÍLúC×#VC3SúCÃõ\CNúCEdCšYúC33kCHaúCÍŒrC×CúC3³yC{TúCöh€Cá:úCH„C=JúC ˆCRúCáZˆC�öC —ˆC×£òC)܈CìïC\ïˆCnëCH!‰CèCÃõˆC3“äC)<‰C�áCìQ‰CìqÝC=j‰CšùÙC�‚‰Cf†ÖC×ÉC¤ÓCRø‰C…kÏC{ô‰C¤ÌC{ŠC —ÈC3ŠCìÅC\oŠCH�ÁCöhŠCÍ ¾C¤�ŠCÃuºCRxŠC�·CÅŠC׃³CÃÕŠCfF°CfÆŒC.­C¤°ŽCªCìq�Cš™¦C¤�’C�‚£C3“”CàCH�–Cö�C€˜C ™CìQšC\o–C3sœCÃ5“CìQžCî�CE CEŒCá¢C{´ˆC×ãC…Cš™¥Cq��CšY§Cöè{C=j©C —tC wªC®ÇmC×£«C�gC)ü¬Cf¦`C.®C¸ÞYCšy¯C¸SCõ°CÍLLCRø±CÍŒDCR®Cn„C3…Cì‘€Cõ…CEzC¤P†C�sC¸‡CH!lC¤Ð‡CõdCf†ˆCÍÌ]CHa‰C3óVCà‰C=ÊOC —ŠC€HC)|‹CRxAC{ŒC…:CõŒCÃu3C¸~�C@,CHAŽC\O%C�C¤pC ×�Cq}Cì1�C¤pC)‘Cöh CR¸‘CšYCšy’CfæöB®“C=ŠèB ·“C…ÚB…‹”CR¸ËB•C3³¼Bõ•Cq½­B W–C33žB×—Cö(�BšY—C×#€BH!˜CÃõbBÍl˜C®?Bö(”C…QBÍŒ�C)\dB¤�C33xBHa‹CffŠB)œ‰Cq=˜B=ê‡Cö(¦BÍL†C ׳B¸ž„C×£ÁB\ï‚CR8ÏB¸>�CR¸ÜB…€C…kìB�€C®ÇûB¤ð~Cš™C\�}Cfæ Cš|C…«Cì{C)\C®‡yCšY#CÍŒvC.*C¤ðsC ×0Cq=qCRx7Cq}nC×#>CÃ5kC…DC{ÔhCq=KC®eCRøQC¤pdCÍ XC¸^eCq½QCìQeC\ÏJC…eC®CC3³eCffC…ë?Cö¨EC@@C{ÔKC…k@C…kEC…?CšÙ=CšY>C€6C®G=C×£.C3sCfæCšÙECö¨CÍLKCö(CRxEC…«CÍL>CÃ5CÍL7CR¸ Cöè/C) Cî(CÍÌCqý!C…+CáúCCRøCö¨þBÅ Cš™úB€C�ÂôB ×üB{”ðB3³îB WëB®GáB…kæBffÓBHááBHáÅBHáÜB¤p¸BìQØBö¨ªBR8ÓB)Ü�B¸ÎB\��BÊB…ë‚B{”ÈBHáiBÍLÇB®GKB…ÆB ×+Bö¨ÄB×£ Bq=ÄBHáÞAq½ÂB…ë£Aš¿B×£4A.°B= ‘A�¤BázÄA×#™BHáøAff–B…ëB\”B¸8B{‘B ×TBq=�B\�pBq=�B®†B¤pŠB×#•BR¸ˆBš¤BÍL‹Bš³B…k�B×£ÂB�B’BR8ÑBÃõ•B)ÜßB¤ð˜B WîBÃu›B.ýB=ŠŸB@C×#¢B…k CÍ̧BìCHá¬B)ÜCR8²Bö($C·BH¡+Cš¼BH¡3C¸žÁB);Cš™ÆBšYBC.ÉB®ÇICáúÌBq½PC¤ðÏBEXC)ÜÒBö(_C{”ÕB�ÂfCÃõØB¤°mC…ÛB)uC®ÇÞB¸^|C¸žáB¸¾�CäBìq…C…çB3‰C®GêBö¨ŒCáúëB)¼�C.îB…«”CHaïBî˜CáúðB®çœC{”òBRø C®ÇñBšù¤C3³ïB�©CîBìñ¬C33íBšÙ°C¸ìBå´CHáêB)ܸC.éB޼CázèB.ÀC®ÇæBR˜ÃC WåBÍ,ÇCR8äB{ÔÊC�BãB wÎC ×áB\ïÑCR8àB=ŠÕCìQßB=JÙC…ëÝB\ÏÜC ×ÜBffàC…kÚBRøãC…ëÙB=jçC¤pØB®ëCìÑÖBÀîCáúÔB3SòCffÔBîõC33ÓB=ŠùCó%!#)ÿÅ ÆÖB€ùC@ÆîB¹C@ÆöB¡C@ÆîB€ŒC@ÆÊBBC@ƦB C@ÆŒB¤B@ÆœBB@ƾBPA@ÆÆB„B@ÆèBâB@ÆCMC@ÆCÞB@ÆC€B@ÆC�A@Æ%C@Æ*CTB@Æ4CæB@Æ@CMC@ÆOCôB@ÆLC„B@ÆXCˆA@ÆpCÀ@@ÆjCŠB@ÆfCêB@ÆdCYC@Æ{C$C@Æ‚CÞB@Æ€�C|B@ƘCDB@Æ“CÚB@Æ€�C%C@Æ‚C‹C@Æ�CyC@Æ€žCKC@ƪC6C@ƱCEC@Æ€¨CtC@Æ€�C€�C@ÆŠC°C@Æ€‡C€ùC@Å BC“CˆB@?A—=• DМE‚CÈCîìÇ Clock_OLD¤åæçèéêëìñò CÈC  ìQÐ@ƒÃ@@ …£@%�Ã@@ \�@õÃ@@ ö(ü¿¤ðÃ@@ q=ªÀ¤�Ã@@ …ëÉÀƒÃ@@ {¦À�â„Ã@@ ®GÀš†Ã@@ …ë@ †Ã@@ ö(¬@{ô„Ã@@Ö%ÿ×%Žÿ¦ †¿ƒÃ ÍÌÌ¿`€?p€?ÍÌÌ?`€?ÍÌL@A€?ÍÌLÀA€?Ø%ÿXʲ½ƒÃ !@ÀÂÀ?! ÂÀ?!@@ÂÀ?! @AÀ?! ÀAÀ?Ù%ÿƒÃ()XÂ�@PA€?)¦ ? ØAÅ;Â@@A€?)¦ †? Å;BØÁ@@A€?)ùÉ? XB�@PA€?)¦ @ Å;BØA@@A€?)P�'@ ØAÅ;B@@A€?)ùI@XB�@PA€?)£’j@ ØÁÅ;B@@A€?)¦ †@ Å;ÂØA@@A€?)ûË–@ XÂ�@PA€?)P�§@ Å;ÂØÁ@@A€?)¥N¸@ ØÁÅ;Â@@A€?Ú%ÿ(78 9®ˆB@@9†BÍÌtA@@9HátB ×ëA@@9ázTB¤p)B@@9(B®RB@@9R¸ðAÃõyB@@9R¸nA3³‚B@@9R¸„B@@9®GmÁáú�B@@9HáìÁ…ëuB@@9ìQ-Â)\YB@@9¸UÂÃõ)B@@9®GnÂ…åA@@9š™‚ÂffnA@@9q½„Â@@9¸ƒÂ)\oÁ@@9\�rš™éÁ@@9 ×YÂR¸-Â@@9¤p)¤pTÂ@@9\�ðÁ�ÂyÂ@@9\�vÁ‡Â@@9fæ„Â@@9ÍÌlA®�Â@@9ìQòA\�{Â@@9\�$BìQNÂ@@9…ëSB)Â@@9¤pyBq=ðÁ@@9=Š‚BffnÁ@@Û%ÿÜ%Òæïÿ(X YàÀŒBYà@ŒBY BÝ%ÿ&Ã^_` a¤peA¨B@@a{FAÍL¶B@@a…ëÙ@{”¿B@@a=ŠÃB@@aázÜÀHá¿B@@a×£DÁ33¶B@@a`Á¨B@@aHáBÁ¤ð™B@@a…ãÀHa�B@@a)Ü‹B@@aázä@�B�B@@a®G=A WšB@@Þ%ÿß%G³ÿÿ_ @@p q¤peA¨B@@q{FAÍL¶B@@q…ëÙ@{”¿B@@q=ŠÃB@@qázÜÀHá¿B@@q×£DÁ33¶B@@q`Á¨B@@qHáBÁ¤ð™B@@q…ãÀHa�B@@q)Ü‹B@@qázä@�B�B@@q®G=A WšB@@à%ÿá%+jÿÿ^€B€@ BÀ?â%ÿƒ „Â,ÃA„B,ÃA„BXÂA„ÂXÂAã%ÿŠ ‹·Ã€?‹A¬Ã€?‹Á¬Ã€?ЏÃAAä%ÿ‘’ “¨ÂƒÃ@“ìQ¤ÂẋÃ@“áz™ÂÔÃ@“…ë‡Â\¯›Ã@“ ×`ÂÃ5¢Ã@“(Â`§Ã@“®ÏÁìñªÃ@“áz ÁŬÃ@“áz AŬÃ@“®ÏAìñªÃ@“(B`§Ã@“ ×`BÃ5¢Ã@“…ë‡B\¯›Ã@“áz™BÔÃ@“ìQ¤BẋÃ@“¨BƒÃ@“¨BðÁ@“¨ÂðÁ@å%ÿæ%°ËØÿ‘ €@�@¨ ©¨ÂƒÃ@©ìQ¤ÂẋÃ@©áz™ÂÔÃ@©…ë‡Â\¯›Ã@© ×`ÂÃ5¢Ã@©(Â`§Ã@©®ÏÁìñªÃ@©áz ÁŬÃ@©áz AŬÃ@©®ÏAìñªÃ@©(B`§Ã@© ×`BÃ5¢Ã@©…ë‡B\¯›Ã@©áz™BÔÃ@©ìQ¤BẋÃ@©¨BƒÃ@©¨BðÁ@©¨ÂðÁ@ç%ÿè%”µÄÿ¾¿ Àö(È®GÂ@@À…kÉB¸ýÁ@@ÀÑB¸ÕÀ@@À®GÐÂ…»À@@é%ÿê%°ËØÿ¾ @@`@Ç Èö(È®GÂ@@È…kÉB¸ýÁ@@ÈÑB¸ÕÀ@@È®GÐÂ…»À@@ë%ÿì%”µÄÿÏ  Â@À°AÀ@@Ï  B@À°AÀ@@í%ÿ”­¿Ê«”Ì”­¿Ê«”Ì”­¿Ê«”Ì/333@01 )8/ff¦@018X`/ff¦@01`p/¸…@01p€ƒŠ’/ff¦@01’¨/¸…@01¨¿/ff¦@01¿Ç/¸…@01ÇÏ?A€?7Look9d35DFÍÌL½C2DCdDFÍÌL=7Dread9d3W5%%DXÒæïÿ%CdDX ·ãÿ35DCdDF�Âõ<7Pop9d35DEîFÍÌŒ?CRDEïFHáz?CdDF€?5DEîFÍÌ ?CC&DEïC8DEïF�Âu¾CKDEïC^DEïF�Âu>CpDEïCƒDEïF�Âu¾C–D7IdleFear9–;3^5DEïC DEïF{®>CDEïCDEïF{®¾C&DEïC/DEïF{®>C8DEïCBDEïF{®¾CKDEïCTDEïF{®>C^DEïCgDEïF{®¾CpDEïCzDEïF{®>CƒDEïC�DEïF{®¾C–D7Rest935DF€?5DF€?5 D5D5D7Hop9035DEïF€?CDEîFÍÌŒ?CDEïF×£p?CDEðFHáz?C"DEîFq=Š?C)DEïFHáz?C0DF€?5DEïF€?CDEîFö(\?CDEïFq=Š?CDEðF\�‚?C"DEîFfff?C)DEïF ׃?C0DF€?5 DC0D5DCDEîCDEîF ÁCDEðF°ÁC"DC)DEïC0D5DEïCDEîF ×£<CDEïFÍÌ̽CDEðF ×#½C"DEîFÍÌL=C)DEïC0D7Startle9(35DEîF€?CDEïF�Âu?CDEïF®G�?C(DF€?5DEîF€?CDEïF®‡?CDEïFHáz?C(DF€?5 DEîCDEïF ÀCDF€ÀCDFÀCDFÀÀCDFÀCDFÀÀCDFÀC DFÀÀC"DEïF€ÀC(D5DEîCDEïFÀÀCDC(D5DEîCDEïF�Âõ½CDEïF)\�½C(D57Machine9ŠIdle?A—>@Ù¿ÊüÌ�K¥K¥¦€?9ŠAction?A—>@=•A—â÷¿Ê®ÌßùA—â÷¿Ê®Ìßù=˜•A—˜ žx d=˜•A—˜ žx drŠ Tap to hopà’á÷®¿Ê®ËÌç @FÈC–CîìÇWitness¤åæçèéêëìñò HC–C HÖÃJnT?jv‰? Ï#Bkú€@€€…C²B¸þŠCÍ̳BÀ@�C²B€  WƒCq=àB NˆC)ÜéBÀ@ 33ŒCÃõíB€ ÍLzC¸C öè€C¤0 CÀ@ …+„C…ëC€®‡gC=JC¸žkC®‡CÀ@pCÍL#C€öèPCáºCQC�Â#CÀ@ö¨RCf¦+C€q}9C\�C)œ5C×ã CÀ@=J4C{Ô(C€n$Cì C CÍLCÀ@áúCq=C€! —CHaõB!� C…kÿBÀ@!nC¤°C€%  C…ÉB%¸CÍÌËBÀ@%ìÑòB€ÐB€)  CázšB)3sC®”BÀ@)ìÑòB€“B€- —Cq=]B-õ C= CBÀ@-nCq=5B€1n$CR¸B1…CHáäAÀ@1áúC{¶A€5q}9C…ÛA5 W7CÃõ„AÀ@5=J4CR¸A€9öèPCö(ÊA9ìÑRC\�fAÀ@9ö¨RC33Ë@€=®‡gC®ýA=á:mCö(²AÀ@=pC33kA€AÍLzC…7BA׃�C\�BÀ@A…+„CìQB€E WƒC�ƒBEH¡ˆC{BÀ@E33ŒC{lBÎ%5<�ÿJ€ K=ª…C…k‚CK w„CfF�CK ׂC…kCKRø€C= ~CK¤ð~C —CKÍŒ|CÃ�CK�|CR¸‚CKÍÌ~CšùƒCK �Cî„CKöƒC{t…CKf„CqÝ„CK ·„C¸¾ƒCKÅ…CR¸‚CKáz‡Cì±�CKÀ‰C¤°€CKöˆ‹C W€CK{tŒCš�CKš9�C{´‚CK�C\¯ƒCK¤ð‹Cöh„CKfæ‰Cà„CK®ˆCšù„CKá‡Cff„CKöH†C\/ƒCKš™…C¤p‚CKff…C\�‚CK¸¾…Cq}ƒCKff†C¤…CK¸Þ‡C¤Ð…CKŠC…Ë…CKNŒC¤P…CK\Ï�C¤0„CKöŽCf†‚CKì�C €CKf¦‹C�BCK®‡‰C®€CK…+‡C)�CKìq…C®G‚CKì1„C=JƒCKázƒC`„CKƒC ·„CK¤p�C¤0„CKq½C…KƒCK¸ž}Ce‚CK@~CŽ�CK®€Cáz€CKqý€CÅCKe‚C…k€CK3„CÀ�CK�‚…Cq�‚CÏ%5<�ÿ€ €Ã5C=Ê€C€)ÜCR¸C€ázC)œ|C€…ëýBîzC€= øBöh|C€×#óB…+C€¸òBH!�C€\÷B¤p‚C€ìQÿB=jƒC€)CšùƒC€nCÍLƒC€3sC×C‚C€¤0C×#�C€×# C{T€C€¸^Cq=~C€R¸Cáº}C€¤°C\�C€×#C\O�C€�CšY‚C€¤ðCHƒC€RxC®‡ƒC€ W CnƒC€®G C3Ó‚C€¤p CöÈ�C€R8C¤ð€C€®ÇC\�C€…Cì‚C€\ CìqƒC€� C…k„C€¤°CRx„C€¸žCàƒC€{”CìÑ‚C€3³C¸�C€¤ðC)œ~C€CÃu|C€…ëC�}C€�‚ CffC€�‚C¥€C€ÍLCà�C€¸^C΂C€{Cö(ƒC€¤0CÅ‚C€{ùBq½�C€)ÜõB®Ç€C€×#öB×€C€{”úB~C€)ÜýBÃõ|C€ —CRø}C€ö(C{T€C€¤ðCH�CÐ%5<�ÿ´€ µ)|“C¸þˆCµÍl–Cf†�Cµ3“–CÍl�Cµ=ª“CHáˆCÑ%!#)ÿ»€ ¼ÃUŽC×ãˆC¼…k‘Cáz�C¼{”‘C¸^�C¼ázŽC=ʈCÒ%!#)ÿ€ Ã)\‰C\ïˆCÃÍlŒCÍl�CÃ3“ŒC3S�CÃ׃‰C{ÔˆCÓ%!#)ÿÉ€ ÊH�„C ÷ˆCÊÍl‡C`�CÊ3“‡CfF�CÊͬ„CšÙˆCÔ%!#)ÿЀ Ñõ~CàˆCÑÍl‚C3S�CÑ3“‚Cš9�CÑ®C×ÈCÕ%!#)ÿ×€ ØqýtCHáˆCØšÙzCfF�CØf&{CÍ,�CØ=JuCöȈCÖ%!#)ÿÞ€ ßq½jC ·ˆCß)ÜpCR8�Cß×#qCH!�Cß{kCš™ˆC×%!#)ÿå€ æ¤ð`CH¡ˆCæ ×fC.�Cæö(gCì�Cæá:aCöˆˆCØ%!#)ÿì€ íRøVC®‡ˆCí{Ô\CH!�Cí…+]C�Cí=JWCnˆCÙ%!#)ÿó€ ô=ÊLC…«ˆCô{ÔRCÃ�Cô…+SC ÷ŒCôìMC3“ˆCÚ%!#)ÿú€ û�CCŽˆCû)ÜHC�Cû×#ICîŒCûÍLCCÃuˆCÛ%!#)ÿ�€ ‚f¦8Cq}ˆC‚)Ü>CRøŒC‚×#?CHáŒC‚î8CeˆCÜ%!#)ÿˆ€ ‰öè.CÃuˆC‰ ×4CîŒC‰ö(5CìÑŒC‰33/Cq]ˆCÝ%!#)ÿ�€ �3ó$CRxˆC�{Ô*CHáŒC�…++CÅŒC�q=%C`ˆCÞ%!#)ÿ–€ —¤ðC=JˆC—)Ü CìÑŒC—×#!CẌC—®GC.ˆCß%!#)ÿ�€ žšÙCHAˆCžšÙCfÆŒCžf&CͬŒCž33C×#ˆCà%!#)ÿ¤€ ¥îC ˆC¥šÙ CR¸ŒC¥f& CH¡ŒC¥R8C®ˆCá%!#)ÿ«€ ¬�BùBìˆC¬šÙCͬŒC¬f&C3“ŒC¬fæùB ÷‡Câ%!#)ÿ²€ ³€åBšˆC³3³ñB ŒC³ÍLòBf†ŒC³.æBqý‡Cã%!#)ÿ¹€ º)ÜÑBˆCº3³ÝB3“ŒCºÍLÞBšyŒCº…ÒBöè‡Cä%!#)ÿÀ€ Á.ÎBÍ,ŠCÁ…ëÒB`ŠCÁq=ÙBáÚŠCÁ{àB×c‹CÁ€èBà‹CÁÍLñBöhŒCÁ ×úB¸ÞŒCÁ\OC¤0�CÁ…C ×�CÁRx C)ŽCÁ=ŠC%ŽCÁ¸ÞC… ŽCÁ�BCìñ�CÁ×#CHa�CÁ×£"CHáŒCÁH¡&CöHŒCÁšÙ*CáZ‹CÁfæ.CÅŠCÁHá2CšŠCÁî6C�b‰CÁ€;C…«ˆCÁ{T?Cö(ˆCÁšÙCC¸ˆCÁH!HC{Ô‡CÁ¤°KC)ˆCÁ=ŠOCö(ˆCÁá:SC{”ˆCÁö(WC¤0‰CÁ@[C¥‰CÁ)\_C=JŠCÁšYcC…ëŠCÁ33gCáš‹CÁázkCöHŒCÁ…koCRØŒCÁ.sCöh�CÁÍLwCRø�CÁ\{C{TŽCÁRø~C챎CÁ�Â�CẎCÁ{ôƒCR˜ŽCÁÃU†C¤pŽCÁ®ÇˆCá:ŽCÁÃõŠC®Ç�CÁ 7�C…k�CÁöh�C… �CÁöh‘C¤°ŒCÁ×c“Cì1ŒCÁÍì”C×ËCÁ®G–CšY‹CÁ׃—C%‹CÁ)|—CáÚŠCÁ{4–CîŠCÁ…Ë”Cö(‹CÁš9“CšY‹CÁÃ5‘C�¢‹CÁá:�CfŒCÁ… �C¸^ŒCÁÅŠCẌCÁH¡ˆCf&�CÁ×C†C W�CÁHáƒC`�CÁ)¼�CR˜�CÁ33Cšy�CÁ¤p{C¸>�CÁ®ÇwC�âŒCÁ¤°sCìqŒCÁîoC\ï‹CÁ®lCe‹CÁ{ÔgC×£ŠCÁšÙcC3ŠCÁÅ_Cš™‰CÁ¸ž[C ÷ˆCÁ\�WC{tˆCÁH¡SCáÚ‡CÁÅOC)\‡CÁ{ÔKCq=‡CÁ¸HC3‡CÁR¸CC×C‡CÁH!?C®g‡CÁ;C{Ô‡CÁ…k6C)œˆCÁ W2C@‰CÁÍL.C3Ó‰CÁ@*CöˆŠCÁRø%C3S‹CÁ¸"C ׋CÁ×£C3SŒCÁHáCÀŒCÁÅC ÷ŒCÁ\�CÍìŒCÁ¸ž C ׌CÁfæC ŒCÁ¤°C®'ŒCÁ=ŠûB¸¾‹CÁ¸òBe‹CÁHaéB×ãŠCÁ…ëàB)|ŠCÁfæÙBf&ŠCÁ33ÓB¤ð‰CÁìQÎB¸Þ‰Cå%5<�ÿ§€ ¨@�CÍ yC¨¤P“Cá�C¨ÍŒ“C3ó€C¨ w�C�ÂxCæ%!#)ÿ®€ ¯R‹Cq=yC¯\/ŽC®'�C¯eŽC��C¯¤P‹CîxCç%!#)ÿµ€ ¶{†C…«yC¶f‰Cš9�C¶®G‰C�C¶ÃU†CìQyCè%!#)ÿ¼€ ½)ü€CöhyC½�âƒCfF�C½×#„C)�C½ì1�Cf&yCé%!#)ÿÀ Ä×cwC3syCÄ®‡}CìQ�CÄRø}C.�CÄfæwC)yCê%!#)ÿÊ€ ËöhmCRøyCË@sCHa�CË3³sCá:�CËìÑmC¤°yCë%!#)ÿÑ€ ÒìÑbCÍÌyCÒ¤ðhCìq�CÒ3siCfF�CÒÍLcCázyCì%!#)ÿØ€ Ù¸žXC=ÊyCÙ¤°^Cq}�CÙ×#_CRX�CÙ\YC€yCí%!#)ÿ߀ à)œNC3óyCà…kTC=Š�Cà)ÜTC®g�CàšOC×£yCî%!#)ÿæ€ çEDC)zCçö(JCR˜�Cçì‘JCÃu�CçÅDC®ÇyCï%!#)ÿí€ î{Ô9C¸zCî ×?C=ª�Cî{T@CH��CîìQ:CÍÌyCð%!#)ÿô€ õ)\/C3szCõ —5C ·�Cõ6C¤��Cõ{Ô/CH!zCñ%!#)ÿû€ ü\O%C×czCüÍL+CÅ�Cü�Â+C¸ž�CüÅ%C zCò%!#)ÿ‚€ ƒ×ãCš™zCƒ®!C3Ó�CƒRx!Cͬ�CƒÍLCìQzCó%!#)ÿ‰€ ŠöèC3ózCŠ�ÂCà�CŠ.C)¼�CŠ…kC¸žzCô%!#)ÿ�€ ‘ìQCõzC‘¤p Cìñ�C‘¤ð C®Ç�C‘{ÔC¸^zCõ%!#)ÿ—€ ˜…øBîzC˜¤0Cqý�C˜×£C ×�C˜ WùBf¦zCö%!#)ÿž€ ŸÍÌãBÍ {CŸÍÌïBÍ ‚CŸq½ðBå�CŸq½äBq½zC÷%!#)ÿ¥€ ¦=ŠßB=JC¦\åBö(€C¦¤pëBöˆ€C¦¤ðòB �C¦fæûBš¹�C¦…«C{‚C¦{TCff‚C¦ö¨ C3Ó‚C¦�ÂC{Ô‚C¦�C\Ï‚C¦C®§‚C¦CÍL‚C¦33#Cõ�C¦ì'CÃ�C¦\�+C €C¦…«/C…ëC¦\Ï3CšÙ~C¦ÍL8C…k}C¦¸^C¯q½EC3³FC¯{”ACfæOC¯Å=C33YC¯)œ7CÃu]C¯šY1C{ÔaC¯H!,C¤ðeC¯n'C3³aC¯)œ!CR8\C¯ö(C{ÔVC¯ ×C…+YC¯ WCš™^C¯ W%CdC¯Rø+C3³iC¯®‡3C×ãdC¯…«9Cá:`C¯×#@CöèZC¯\ODC\QC¯×#HC×£GC¯ÃõJC W?C¯×cMCšY7C¯)\PCáú.C¯= KCÍ (C¯×ãDCö(-C¯á:@C 4C¯¤0;C.;C¯ff6CîAC¯ì2C GC¯Ãu-Cì‘LC¯×#)C…QC¯šÙ!Cá:TC¯š™CHaVCÿ%!#)ÿÝ ÞCXC@Þ*CSC@Þ8CCC@ÞFC.C@ÞKC)C@ÞOC/C@ÞGCGC@Þ?CZC@Þ,ChC@€%Íåñÿé€ ê…Ë�C\OsCêͬŽCáºkCêöèŒCffdCê‹C]Cêö‰C)ÜUCê 7‡CRøMCêÃUƒC{TICê…kCÅDCêÃõwC¸Þ@Cê.pCõC@¥PCUC@¥_CtC@¥€�C€€C@‚%~¡¸ÿ­€ ®®GÖBq}uC®…ëÝB…+oC®×£äB ×hC®33ìBìQbC®×£òB®Ç[C® ×ùBá:UC®)\C®GOC®ffC…«KC®fæC\�GC®öhCf&CC®= CìQ?C®3ó"C=ŠCC®Há)CöhHC®�‚0CöèLC®\O7C@QC®šÙ=C×£UC®…«:C…«ZC®Í 7Cö¨`C®®‡3CÀfC®…+0C= mC®-Cö¨rC®Ãu&CÃ5uC®ÀCR8xC®{C×ãzC®¸Cq½}C®î Cá€C®®ÇC®}C®q=þB@{C®q½ðBöhxC®)\âB…ëuC®ÕB…«sC®ÓB{TvC®= àB�yC®šîB)Ü{C®fæûB W~C®\�C…k€C®fæ CÃÕ�C®ffC®‡€C®€CÍL~C®ì!C…+{C®R¸'C¸xC®®/C¤ðtC®¸^2C�BnC®¸6C33hC®{T9C3óaC® ×C@ï?CUC@ï.CtC@ï C�C@„%~¡¸ÿ÷øCŒBøCLBÀ@ø0CB÷üCŒBü"CLBÀ@ü3CB÷€ !CŒB€ &CLBÀ@€ 6CB÷„ &CŒB„ *CLBÀ@„ 9CB÷ˆ +CŒBˆ .CLBÀ@ˆ CLBÀ@˜ HCB…%!#)ÿ� € ž ÀC�B¼Bž )œC W·Bž �ÂCHa°Bž Ã5C�¨Bž ¤0C= ŸBž EC–Bž ì‘CÃõŒBž ÍLCHa„Bž ö¨C®G|Bž áz!C×£lBž ¤ð#Cq=_Bž šY'C®RBž {T+CázGBž öè.CÃõC\�!Bž {”CC�ÂBž {ÔGC¤pBž 3óLC¤pBž ö(PCš™Bž ìTC…"Bž )XCš™'Bž H!\Cö(-Bž f&`Cq=2Bž áúcC×£9Bž {”gCABž kCR¸HBž ázmC®QBž =ŠpC®G^Bž ¤ðrCÃõkBž 33uC{{Bž šwC�B†Bž HayC®GŽBž H!{C®G–Bž š}CffœBž \�~C…k Bž ¤pC{”ŸBž ÍÌ~C…ëšBž ¸~C”Bž )Ü|C33‹Bž =ÊzC×£‚Bž õxCtBž €vC= cBž q½sC)\SBž ¤0pC¸FBž ¤0mC…;Bž )iC�Â4Bž �‚eCq=-Bž …kaCR¸%Bž ö(]CffBž ¸ÞXC)\Bž f¦TC{Bž \�PCHáBž �BMCš™Bž  ×GC…Bž ×#CC ×Bž 33>Cq=Bž �Â9C33Bž {T5Cáz"Bž áz1CÍÌ*Bž ¤p-Cáz2Bž ÍL)C…;Bž ¸%CHáGBž ÍŒ!CHáUBž ×#CffbBž ¸^Cš™tBž \�CÍL�Bž  C…ŠBž ECÍÌ“Bž )\C W�Bž ¸C צBž …«C.¯Bž ®ÇCq½¶Bž f¦C ×»B†%!#)ÿì €í )CÚBí -CCÀ@í 9CCì €ñ ,CÚBñ 0CCÀ@ñ ;CCì €õ /CÚBõ 3CCÀ@õ =CCì €ù 2CÚBù 6CCÀ@ù ?CCì €ý 5CÚBý 9CCÀ@ý ACCì €� 8CÚB� C®GÀBÆ ×cCCÍL¿BÆ RxGCR¸¼BÆ ìÑKC=ŠºBÆ =JPCfæ·BÆ Ã5TC¸¶BÆ 33XCfæ´BÆ ff]C¸³BÆ ìQbCš³BÆ =ŠgC3³²BÆ ¸lCR8²BÆ oC¸ž°BÆ oCHa¯BÆ ¸lC×£­BÆ ÃugCq=­BÆ q=bCHá­BÆ .]C¸®BÆ �ÂWC®¯BÆ …«SC…k±BÆ q½OC´BÆ ®GKC{”¶BÆ …ëFCìѸBÆ = CCÍL»BÆ  ×>C33»BÆ Å:C¸»BÆ 6Cáú¹BÆ ¤p1CìÑ·BÆ ìÑ,CfæµBÆ ))C\�´BÆ &C¤ð´B›%5<�ÿì € í šÙ"C©Bí …«+C= ªBí H¡4Cö¨¬Bí >CR¸­Bí ÅEC\�ªBí =ÊLC¤p§Bí Ã5TC…ë£Bí 33[CÍL¡Bí  bC…ë¡Bí )\iCš£Bí ÃõoCff£Bí ÍŒnC®³Bí ®nCšÄBí ¸^gC3³ÂBí q½_C¤ðÁBí ÍÌWCHaÁBí )OCHáÄBí  FC= ÉBí ®>C3³ÌBí šÙ6CfæÈBí ¤0/C.ÅBí qý'Cö¨ÃBí =Š&C\µBí €$CR8¥Bí €!C®Ç¦Bí ®‡#C…¶Bí �Â%C.ÈBí šY.C)ÜÌBí Rø5CázÐBí ì>Cö¨ÓBí ¸ÞFC…ÏBí ÍÌOCq½ÊBí ìXC®ÇÆBí f¦_Cö(ÇBí EgC¸žÇBí ×£oC®GÇBí ìqCÍL´Bí �rC® Bí {”iC€žBí )\bC\�œBí �[C…šBí ÍŒSC®Ç�Bí šLCìÑ Bí ®EC�B£Bí =Ê=CÍL¦Bí ¤ð4C�B¥Bí öè+Cáú£Bí qý"Cq=£Bœ%!#)ÿŸ   #C¦B@  >CªB@  [CžB@  qC¢B@  oCÆB@  XCÄB@  >CÐB@  'CÆB@�%~¡¸ÿª € « �B/CÃušB« )Ü2C\™B« Í 8Cff•B« �ÂC3³CÌ š™BCH¡CÌ nFC×#CÌ ¤pJC×cCÌ �OC€CÌ ERC3³CÌ =ŠUC…+CÌ ®YC)CÌ 33\CÅCÌ 3ó^C¸^ CÌ RøaC�‚CÌ ìdCšÙCÌ )fCáúÿBÌ EhC€÷BÌ áúiC\îBÌ ¸^kCffæBÌ R¸lCš™ßBÌ á:mCö(ÚBÌ ÅlC ×ÙBÌ ¸žkC®ÞBÌ �ÂiCåBÌ R8hCR¸ìBÌ ¤pfC ×õBÌ {dCfæýBÌ šYbCÃõCÌ ×c`CRxCÌ )œ]C=J CÌ 3³ZCÃu CÌ )ÜWCîCÌ ffTC\ÏCÌ q}QCECÌ HáNC×#CÌ šÙJCRøCÌ  WGC×ãCÌ …kCC)œCÌ ×c?C\�CÌ ìQCC@Ô -CôB@¡%Íåñÿà € á fæC…ŸBá €Cö(’Bá Rx C)Ü„Bá Ã5%C¸nBá ¸Þ)C\�TBá \�0CázLBá €7Cš™EBá f¦>C…ëC)œ$Cá ®ÇDC¤p(Cá f&LCÍL,Cá …ëRCf&(Cá …«XCì$Cá áº^C×c Cá …+eC¸Cá á:iCÃõCá ÍLmC�‚Cá fæqCffCá �BvCECá \OvC33òBá …+vCHáâBá qýuC®ÓBá š™vC×#ÄBá �BvCÍÌ´Bá ¸^vC.¥Bá =ŠvCfæ”Bá ì‘qC®G†Bá fælC)\pBá  hCìQTBá …«bCáz6Bá öèZC{2Bá RøSCÍÌ+Bá …LCÃõ)Bá 3³DCìQ$Bá …k=C®.Bá n6C®G7Bá f¦/C)\@Bá qý'C®GJBá �‚"CìQfBá ®ÇCáú€Bá ÍÌC\ŽBá ìÑCìQœB¢%!#)ÿÁ ÂCžB@Â)CPB@ÂEC,B@ÂbCCÏìQCšY9CÏ.Cõ1CÏq}Cq}*CÏ®Ç!C®G"CÏ…+C{”CÏ�ÂC)ÜCÏ\OC¤0 CÏ= CÀCÏH¡C{÷BÏ…+C)\çBÏ×ãC\�ØBÏ\ÏCffÉBϤpC¸žºBÏ×cCÍLªBÏfæC ךBÏC¤pŠBÏ×cC�ÂwBÏ\�C)\_BÏ×£"C�ÂHBÏ×ã'Cö(0BÏî,CÍÌBÏq}4C × BÏ…«CÏìÑ‹C®ÇCCÏ.ŽC�BICÏ…k�C…OCÏR˜’C¸ÞTCÏöè”Cš™ZCÏ®G•CìQaCÏ{Ô•C®‡hCÏ)|–C3óoCÏ×#—C�wCÏ¥—CR8~CÏH!˜C¤°‚CÏáz˜C= †CÏ\o˜C —‰CÏöˆ˜CRøŒCÏ�‚˜C®‡�CÏ×ã˜C`“CÏ®–C=*“CÏ…’C�"“CϤðŽCf&“CÏ w‹C…+“CÏqý‡C{“CÏf†„CÓCÏ ÷€Cš9“CÏîzC¸þ’CÏ)tCÓCϤðlC… “CÏÃõeC{ô’CÏ×#_CH!“CÏ)XCö“CÏ®QC\ï’CϤðIC= “CÏšCCö(“CÏ= @?A—=•  %FÈC–CîìÇ WitnessShadow¤åæçèéêëìñò HC–C HÖÀ ö¨ßB=ê•C\ëBR8’C…kóBfæŽC¤ðúB¸>’C\ÏCE–C® C¸Þ’C¤ðCì±�C=ÊC3³’CÃ5C×c–CHá C¸>“C¸ž%Cͬ�C)œ*C@“C…ë1C33–C¤ð8Cá:’C¤°=CšÙŽCõBC3S’CáºICìQ–C…PC\¯’CöèTCÀ�C¸YC¤Ð’Cáú_CšY–C€gCöh“C33lC=ê�C{”pCÍL“C×ãwC33–C×ã~C3S’Cq½�C\ïŽCq݃CN’C\o‡C`–C®ÇŠCHÁ’C3óŒC…ë�C…kŽCÍÌ’C×ÑC@–Cš‘C3S‘C)\�C…K�C\/�C=J‰CÃ5ŽC×c…Cöh�Cq]�C×#ŒCÃ5{C ‹C¤psC3Ó‰C=ÊkC{”ˆCHadC)\‡C…ë\C\O†C€UCöÈ„CìQMCHAƒCRxEC׃�Cöè>CHÁƒCÅBC×ã†C\�EC×C‰C®JC ÷‹CHáOCH�ŽCfæTC×#‘C×#ZC¤Ð”C®_C)|•CÀVC¸Þ•Cš™OC×C–Cq½HC`˜CÃõ?CRØšCf&6C)Ü™CH!4C\ï›CH¡-C)<žC�B&CfÆŸCì C¸þ¢Cš™$C¤Ð¥C¸ž0C…+§C¤ðC׬C…k5Cì‘«C@-C×ãªCöè%Cfæ©CH¡Cq}©C×#C)ܬC€ CìQ°Cõ"C®Ç´C)Ü(C3·CR8.CÍŒ¹C339C®'¼C…+4C®§ºCf&*C…+¸C3³!C=гCšCq½¯CRøC쑬CÀCH!¬CH¡C®±C{ÔC{´·C�BCH¡»C\ÏC3s½CRxC®ÄCÀCì±ÃCC3³¾CÃõ÷Bš¹¹C)\òBáÚµCR8ôB3²C®ÇôB w­C\ûB ©CnC3³¨C¸^CRØ©CìQñB®«C3³áBf¦­C ×ÌB�b°C3³ÃBÍŒµC¸ž¶Báú²Cö(­BšY®C×#´BÍ,ªCš™¿B…«¥C×#ÕBfÆ£CìÑåB×¢Cš™õB=j�CÍLýBšY›C33C¤°™C CוC…kCÅ’CnCffŽCìQCH¡ŠCìC{”†CH!C)¼‚C×cC… €C33C\CÍLC¤pC{”C WC=Ê C{”~C\OCì~CÃõìBÍÌ|C{”ÛBìQ{Cö(ÉBÍŒyCR8¹BÀ|CffÄBR‚CìQ¹Bͬ…Cš®B×#‰CR¸žBÍlŒCÍL�Bff�C…sBÃu�Cq=RB�‘C…ë1B×ÑC…ëBì±�CHá¾AͬŽC33wAÍÌ‹Cö(A�‰CHáâ@3†C{¶@×#„CÍ̼@3“‚Cð@ÍŒ�C= 'Aì€C= wAf†�C×£ A΃C¸mAfÆ„C…cA3s‡C)\…AfF‰Cff®A�ŠC¸÷Aq=‰CìQ"BÍ̇C\�>B „C…aB=Š�C®vB…ë|CÍÌ…B)\vCÍLŒB ×pCÍL“B¤ðmC×#ˆB×ãjC�ÂsB3s`C= MBEYC ×B@è33”BlB@è—Bš™�B@èš™‘BÍÌ�B@èÍÌ\B33}B@è33!Bš™oB@è33ïA33sB@èš™…AffƒB@è33§A33ˆB@èš™õAff„B@è33 Bff„B@èff.Bš™ˆB@è33_B33•B@èff…BÍÌ¥B@è33ƒB¬B@èffJB33¹B@èff BÍÌÈB@è Bš™×B@èš™íAffîB@è33BffìB@èÍÌ$BÍÌ×B@èffC@èìB0C@èfæC@C@èÍL CBC@è33CfæcC@è33èB‹C@ç ±&CÐB±8CÄB±ÍL[C33¸B±3³dCff³B±pC¬B±hC33¾B±dCÄB±33_CÈB±€YCËB±fæCC33ÕB±:CØB±€4C×BÀ%!#)ÿç(7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=• @gFðCðCîìÇ Coronation¤åæçèéêëìñò pCðC pÃðÆ pC€ÃC™î?‰’ˆA—Å"%5<�ÿ‡�Œ REX CAECUS Ha×Cì‘*C€@€@Æ"%!#)ÿ €  )ÜÞC…%C )<âCáú"C �"âCn"C ¸¾ÞC…ë$CÇ"%5<�ÿ HÁÅCÛB€@€@È"%!#)ÿ€ ÃõËCR8ÇBͬÎCáú½B3sÎC¤ð¼B�ÂËCÍLÆBÉ"%5<�ÿ ÀªCff€B€@€@Ê"%!#)ÿ€  Íì®CázIB ×£°C�Â1B )\°Cáz0B …«®C®GHBË"%5<�ÿ&  ‰CìQ B€@€@Ì"%!#)ÿ)€ *Ã5‹C…ÃA*Å‹C ׋A*šy‹C= ‹A*�âŠC×£ÂAÍ"%5<�ÿ0 ÀLCìQ B€@€@Î"%!#)ÿ3€ 4RxJCffÂA4 ICÃõŠA4nHCŒA4\ÏIC¤pÃAÏ"%5<�ÿ: € Cff€B€@€@Ð"%!#)ÿ=€ >fæC33HB>€þB…0B>€ýBR¸1B>×cC¤pIBÑ"%5<�ÿD áú¨BÛB€@€@Ò"%!#)ÿG€ H¸ž�BR8ÆBH¸†B= ½BHHa…BHá½BHìÑ�B×#ÇBÓ"%5<�ÿN ÃõDBì‘*C€@€@Ô"%!#)ÿQ€ RázB3³$CR…ëÝA×c"CRö(ÜA#CRš™B=J%CÕ"%5<�ÿX BpC€@€@Ö"%!#)ÿ[€ \áz¨A€oC\ ×_Aö¨oC\ö(`A WpC\×£¨A×#pC×"%5<�ÿb ÃõDB ·šC€@€@Ø"%!#)ÿe€ f)\B¤P�Cfq=ÜA�‚žCf ×ÝA=ÊžCfq= B �CÙ"%5<�ÿl áú¨B¸>¹C€@€@Ú"%!#)ÿo€ p�Bá:¾CpìQ…B׃ÀCpö(†BHÁÀCp�Â�Bìq¾CÛ"%5<�ÿv € CfæÏC€@€@Ü"%!#)ÿy€ zECͬÖCz…ýB=ÊÙCzázþBîÙCzHáCšÙÖCÝ"%5<�ÿ€ ÀLCÃõÛC€@€@Þ"%!#)ÿƒ€ „�‚IC¸¾ãC„¤pHC�BçC„ìICNçC„šJC=ÊãCß"%5<�ÿŠ  ‰CÃõÛC€@€@à"%!#)ÿ�€ Ž�âŠC¤ðãCŽÃu‹C\OçCŽöÈ‹CHAçCŽ)<‹CHáãCá"%5<�ÿ” ÀªCfæÏC€@€@â"%!#)ÿ—€ ˜�¢®CÃõÖC˜¸^°C\ïÙC˜H¡°CöÈÙC˜Íì®C…ËÖCã"%5<�ÿž HÁÅC¸>¹C€@€@ä"%!#)ÿ¡€ ¢ì±ËC޾C¢RxÎCÀÀC¢®§ÎC…ÀC¢qÝËC W¾Cå"%5<�ÿ¨ Ha×C ·šC€@€@æ"%!#)ÿ«€ ¬ÎÞC �C¬×#âC®ÇžC¬á:âC…žC¬=êÞCìQ�Cç"%5<�ÿ² €ÝCpC€@€@è"%!#)ÿµ€ ¶ÕåC…kpC¶HéC{TpC¶¸þèC…«oC¶{”åCÍÌoCé"%5<�ÿ¼€ ½H!ãCîoC½R8ãC)ÜtC½=*ãCHayC½×ãCRø}C½3ÓâCáZ�C½q�âCH¡ƒC½Ã5âC…ë…C½fæáC¸^ˆC½H¡áCͬŠC½)<áCöèŒC½{´àCá�C½f&àCn‘C½¤�ßCš¹“C½àÞC…ë•C½×CÞCR8˜C½=jÝC{tšC½R¸ÜCf¦œC½öèÛCåžC½áúÚC¸þ C½Í ÚC £C½.ÙC�B¥C½)ØC¸^§C½=*×Cöˆ©C½�âÕCq�«C½{ÔÔC —­C½®ÓC¤�¯C½€ÒC�¢±C½\/ÑC3“³C½R¸ÏC…‹µC½ÍlÎC w·C½Í ÍC®'¹C½{”ËC)üºC½šÊC3Ó¼C½ázÈC×£¾C½qýÆCq]ÀC½¸^ÅCö(ÂC½3³ÃC�ÂÃC½RÂC×cÅC½¸^ÀCfæÆC½×£¾C®‡ÈC½à¼CqýÉC½3»Cq�ËC½®'¹CHÍC½Ãu·C=ŠÎC½H�µCqÝÏC½)|³Cì1ÑC½�¢±CffÒC½챯C…«ÓC½=Š­C×ÃÔC½€«CìñÕC½…‹©C%×C½®g§C®ØC½fF¥CÍ ÙC½…+£C®ÚC½šù CöèÚC½ÀžC3ÓÛC½HÁœC×£ÜC½RXšC)|ÝC½H!˜C¤0ÞC½…ë•C¤ðÞC½®Ç“C3sßC½`‘C\àC½Í,�C)œàC½=êŒC×áC½)|ŠC׃áC½q]ˆC ÷áC½¤ð…CÍLâC½챃C=ŠâC½q=�Cf¦âC½î}CqýâC½f&yCöãC½€tCãC½�pC{ãC½®GkCšãC½õfC×#ãC½ÍÌaCåâC½á:]CÍÌâC½šÙXC¥âC½TCì1âC½ WOC)ÜáC½áºJCŽáC½�BFCÍ áC½ÃuACöˆàC½E=C¤0àC½…«8C=ŠßC½…ë3CßC½H¡/C%ÞC½Rø*CÍlÝC½×ã&Cö¨ÜC½."CÎÛC½×#CÛC½)œC�"ÚC½€CqÙC½®GC{ØC½{ Cf×C½…«C{ôÕC½CHÁÔC½ÍÌC®§ÓC½€ùBöhÒC½R¸ñBì1ÑC½¸êBáÚÏC½®ÇâBáZÎC½áúÚBÍC½{ÓB3³ËC½¤pÌB®'ÊC½×£ÅB3³ÈC½ö(¾BáúÆC½3³·B)|ÅC½¤ð°B\ÏÃC½ WªB¸>ÂC½\�£B=jÀC½…�Bͬ¾C½ W—B®ç¼C½.‘B3»C½…ë‹BšY¹C½Há…B®g·C½áz€B)œµC½33wB…³C½…ëkB쑱C½ázbBö¨¯C½HáYBÍŒ­C½q=PB)|«C½HáFBìq©C½33?B¸~§C½ÍÌ5BE¥C½¸/BÍL£C½ ×&B�"¡C½ìQ!BàžC½…ëBášœC½®GBÃušC½ìQ Bì1˜C½…B–C½ö(B×£“C½ÃõüAÍŒ‘C½¸óA�B�C½{îAö�C½\�äA3“ŠC½{àA®gˆC½¤pÙAö†C½HáÖAöȃC½ÍÌÒA)<�C½)\ÏA×ã}C½…ÍA3syC½HáÌA�ÂtC½{ÊA×#pC½ö(ÌA33kC½ÍÌÎAì‘fC½¸ÑA®bC½®ÓA�B]C½�ÂÕAR¸XC½š™ÙA¸ÞSC½�ÂßAöhOC½33çAR¸JC½×£ìAFC½= õA×cAC½…ëýA\=C½®B¤p8C½¸BÍ 4C½� B W/C½ffB@+C½®GBö¨&C½ÍÌBR8"C½®G'B C½Ãõ-B{”C½…ë6Bq=C½®=B®GC½®GFBfæ C½¸PBqýC½q=YBáºC½š™aB)œC½{mBHaùB½33wBázñB½ÍL€BHáéB½…k†Bö¨âB½…k‹B3³ÚB½ö(‘B ×ÓB½33—B®ÇËB½Ha�B�ÂÄB½Ha£B¤ð½B½\ªB€·B½3³°BìQ°B½=Š·B…ªB½33¾B®£B½×£ÅBff�B½ÍLÌBq=—B½q½ÓB{”‘B½ÃõÚB¸ž‹B½{âB®G†B½�BêBìÑ€B½3³ñB�ÂvB½®ÇùB)\mB½H¡C®GbB½õCR¸XB½áúCR¸PB½=Ê C)\GB½ÃõCq=>B½HaC…ë5B½\ÏC…ë.B½Cq='B½�B"C\� B½{Ô&C¤pB½×#+Cö(B½õ/C33 B½ö(4Cq= B½š™8C¤pB½\=CÍÌüA½q½ACHáôA½{FCffîA½)ÜJCö(æA½HaOCÍÌâA½á:TC33ÛA½¸žXCq=ØA½)\]CìQÔA½RøaC¸ÏA½…«fCffÐA½×#kCÍÌÌA½{ÔoC{ÌA½ —tC¸ÍA½×cyCÍÌÐA½q=~C…ëÑA½ff�Cq=ÒA½{”ƒCHáØA½Rø…C…ÝA½=jˆC{âA½=ªŠCffæA½ìñŒC×£îA½ì1�Cq=öA½¸~‘C)\ýA½HÁ“CHáB½áú•C…B½.˜CÍÌ B½f†šCHáB½쑜CÍÌB½HážC… B½×¡C{'B½¤£CHá/B½¤P¥Cö(8B½3s§C= @B½n©CffGB½ÍŒ«C×£OB½®‡­C…ëXB½…¯C ×bB½\�±C ×mB½…‹³C)\wB½eµC\�€B½Íl·Cq=†B½E¹C\�‹B½»CìÑ‘B½î¼C{˜B½ì±¾C\��B½¤pÀC=Š£B½\/ÂC�ªB½áÚÃC®Ç°B½¤PÅC\·B½ÍìÆC¾B½=ŠÈCö(ÅB½ 7ÊCR¸ÌB½®‡ËCš™ÓB½3ÍC€ÛB½¸^ÎCfæâB½¸¾ÏC WêB½×ÑCR8òB½\OÒCáúùB½׃ÓC®C½{ÔÔC{ÔC½ ÷ÕCöèC½×C  C½á:ØCÃ5C½ö(ÙC{TC½H!ÚC3³C½åÚCîC½öÜCö("C½×ÃÜC×£&C½ì‘ÝC…++C½×CÞC�‚/C½…ëÞCR84C½×£ßC¤p8C½ìàCöèÔC½áú±CÍìÒC½3Ó³CR¸ÑC½)ܵCeÐC½áÚ·CÏC½q�¹CÕÍC½f†»Cö(ÌC½ìQ½CH�ÊC½R¿CÍ ÉC½)ÜÀCìqÇC½R˜ÂCöèÅC½f&ÄC 7ÄC½fæÅC…«ÂC½RxÇCöÈÀC½HÉCš¿C½ÕÊCá:½C½ìÌC`»C½…ÍCöˆ¹C½\ïÎCšÙ·C½…KÐC ÷µC½®ÇÑCqý³C½�ÓC3ó±C½fFÔC…ë¯C½{tÕCî­C½ffÖC®ç«C½®×CΩC½×£ØC¸ž§C½ÀÙCf†¥C½ö¨ÚCRX£C½=ŠÛC¸>¡C½\�ÜCf&ŸC½EÝC{ÔœC½áúÝC®§šC½åÞCÍl˜C½nßC{–C½ 7àC=ê“C½\ÏàCÕ‘C½¸>áCš9�C½fÆáCf�C½×CâCÅŠC½€âC¤pˆC½šÙâC†C½33ãC{´ƒC½®gãC®g�C½ŽãCÍ ~C½ͬãCnyC½ÃÕãC)ÜtC½ì±ãCHáoCê"%!#)ÿ�€ ‚q�×C…+pC‚f†×CÍLtC‚�¢×CÃuxC‚3S×Cq}|C‚¤P×CRX€C‚Í ×C¤p‚C‚�âÖCÍŒ„C‚RXÖCÕ†C‚qÖC쑈C‚®ÇÕCR˜ŠC‚ìQÕC3³ŒC‚áºÔCÀŽC‚{TÔC3³�C‚ö¨ÓC®§’C‚ì1ÓC®Ç”C‚q]ÒC…Ë–C‚áÚÑC)œ˜C‚ÑC{”šC‚®GÐC)|œC‚ìqÏCöˆžC‚®‡ÎC W C‚ášÍCìQ¢C‚àÌCäC‚×ÃËC®ç¥C‚\¯ÊC=ʧC‚�¢ÉCR˜©C‚f†ÈCöH«C‚q]ÇC=*­C‚�bÆC)¼®C‚)üÄC×c°C‚ì±ÃC…+²C‚®‡ÂC…ë³C‚{4ÁC\OµC‚RØ¿Cš·C‚šy¾C ¸C‚H½CH!ºC‚q}»C®g»C‚fºC ÷¼C‚®‡¸CRx¾C‚\ï¶C3Ó¿C‚{tµC¸>ÁC‚š¹³C׃ÂC‚H!²C�ÂÃC‚=аC{ôÄC‚®®CR8ÆC‚ö(­CeÇC‚`«C¸žÈC‚H¡©C3³ÉC‚\ϧC®§ÊC‚)Ü¥C ËC‚¤¤CH¡ÌC‚ìQ¢C\¯ÍC‚ìQ Cö¨ÎC‚׃žC\oÏC‚®‡œCÍ,ÐC‚\¯šCRÑC‚3³˜C3³ÑC‚�¢–C…ÒC‚R¸”C\ÓC‚ͬ’C)¼ÓC‚q½�C%ÔC‚HÁŽCîÔC‚)œŒC=*ÕC‚ ŠCáºÕC‚q�ˆC®'ÖC‚Õ†CÍLÖC‚3s„C=ªÖC‚)\‚CÍìÖC‚öh€C�"×C‚ÍŒ|C�b×C‚ìQxCÍl×C‚tC®‡×C‚îoC ×C‚H¡kC¸^×C‚RxgC�‚×C‚\�cCn×C‚3s_Cì×C‚®G[C3óÖC‚H!WCìÑÖC‚šSC€ÖC‚OC×#ÖC‚áºJC{´ÕC‚H¡FC�BÕC‚ÅBC¸ÞÔC‚ö¨>C¤0ÔC‚f¦:C®ÓC‚áz6CìÓC‚3³2CŽÒC‚q½.CHáÑC‚�Â*C{ÑC‚�Â&CEÐC‚Há"C)œÏC‚@C×£ÎC‚ WC…ËÍC‚îCÎÌC‚šC{ÔËC‚®GC×ÃÊC‚ö¨ CHÁÉC‚n C®§ÈC‚R¸C=jÇC‚¸C¤pÆC‚…kýBìÅC‚�B÷Bq½ÃC‚)ÜðBR˜ÂC‚…ëéB¸>ÁC‚ìÑãB=Ê¿C‚¸žÝBf†¾C‚=Š×Bf½C‚)\ÑB)œ»C‚×#ÌBf&ºC‚®ÅB…‹¸C‚ ×ÀB®'·C‚®ÇºB�bµC‚3³µBöè³C‚33°B ²C‚×#«Báz°C‚ìQ¦BšÙ®C‚=Š¡Bq­C‚…�BHa«C‚™Bf¦©C‚Ha”B)¼§C‚ff�B3¦C‚ìÑŒBá:¤C‚HáˆBE¢C‚…B… C‚×£�BöˆžC‚…ë|B®œC‚×£vBš™šC‚¸pBΘC‚ffjBšÙ–C‚R¸eB3³”C‚ÍÌ`BÍÌ’C‚ ×\Bͬ�C‚¸XB3ÓŽC‚= TB¸žŒC‚…QBq�ŠC‚�ÂNB®ˆC‚{LBáz†C‚…ëHBŽ„C‚)\FB\O‚C‚ázDB\o€C‚33EB —|C‚…BB¤pxC‚= CB…+tC‚¤pBB3óoC‚¸BB®kC‚¤pCBìÑgC‚ffDB…«cC‚ö(EB)\_C‚š™FBö([C‚ÍÌHBH!WC‚ìQKBHáRC‚\�MB)ÜNC‚= QB�‚JC‚š™SBö¨FC‚R¸WBš™BC‚q=\Bf¦>C‚š™`B…«:C‚= gBHa6C‚= kB®‡2C‚×£pBRx.C‚R¸vB€*C‚®|B ×&C‚)Ü�B#C‚=Š…B\C‚¤ðˆBÍŒC‚¸žŒB…«C‚€�Bq½C‚®”B¤0C‚¸™BÃõ C‚.�BšY C‚Ãõ¡Bì‘C‚áú¦B)\C‚.«B\þB‚33°B€÷B‚R¸µBÍÌðB‚ÃuºBHaêB‚.ÀBìQãB‚…ëÅBìQÝB‚ÍÌËB¸×B‚ÍÌÑB= ÑB‚ff×B…ËB‚¸žÝB×£ÅB‚…ãBÃuÀB‚¸êB)ܺB‚{ðB\¶B‚3³öB3³°B‚ÃõýBìÑ«B‚\�C3³¦B‚f¦C…ë¡B‚E C…�B‚® Cö(™B‚\OC{•B‚ ×CÃõ�B‚\�CÍÌŒB‚šYCHáˆB‚RøCš™…B‚×ã"C ×�B‚�'C×£|B‚…«*CR¸vB‚ff.CR¸qB‚…«2Cš™kB‚�Â6C)\fB‚ W:Cš™aB‚)\>C…^B‚¤°BC¤pYB‚�ÂFCHáUB‚áºJC®QB‚fæNCNB‚H!SC¸MB‚¤ðVCš™IB‚ W[CffGB‚š_Cš™EB‚¤pcC�ÂEB‚š™gCR¸DB‚…ëkC®CB‚RøoCffCB‚\tC{DB‚�‚xCázCB‚×£|C®DB‚q]€C ×FB‚�b‚C…ëGB‚€„Cš™IB‚€†CR¸KB‚ᚈC¤pOB‚ ŠC= SB‚ͬŒC…ëUB‚ÕŽC)\ZB‚×Ã�C{^B‚ ·’C®aB‚3³”C{gB‚¤°–C ×kB‚{´˜Cö(qB‚ ·šC®vB‚…‹œC\�}B‚ÍŒžC3³‚B‚3S C¤p…B‚Í,¢C{”‰B‚)¤CáúŒB‚Há¥C ×�B‚)ܧC)\•B‚…«©Cš™™B‚ W«C{žB‚R­Cáz¢B‚3Ó®CÃõ¦B‚�b°Cff«B‚²Cq½°B‚à³C=еB‚×cµC{”»B‚ö·C33ÁB‚Rx¸C)\ÆB‚®ºC WÌB‚¸ž»CfæÑB‚\½Cff×B‚�b¾C¤ðÝB‚{Ô¿C…käB‚{4ÁCš™êB‚=jÂCáúðB‚ÍÌÃC®÷B‚�ÅC3³ýB‚…+ÆCÃuC‚ÃUÇCõC‚®‡ÈCšY C‚ͬÉC…ë C‚ìÑÊC…«C‚ ×ËC¤ðC‚ÀÌC…«C‚¤°ÍC=ŠC‚q}ÎC…kC‚…‹ÏC@#C‚`ÐCfæ&C‚qýÐCf¦*C‚®çÑCff.C‚=jÒC¤°2C‚Ã5ÓCHa6C‚=ÊÓCöh:C‚EÔC®‡>C‚×ÃÔCq}BC‚á:ÕCÃuFC‚{´ÕCáºJC‚®ÖCq½NC‚\�ÖCšÙRC‚®ÇÖC®WC‚… ×C.[C‚¤P×C=J_C‚q}×CázcC‚)|×Cì‘gC‚)œ×CÍÌkC‚×£×C�pC‚)\ØCqýoC‚ WØC�ÂkC‚\OØC®‡gC‚¸>ØCöhcC‚= ØC×#_C‚{Ô×CáúZC‚…×C¸ÞVC‚Íl×C\�RC‚šÙÖCHaNC‚…ÖCöhJC‚\ÖCšFC‚\¯ÕC\BC‚.ÕC\>C‚ì‘ÔCáú9C‚RøÓC)Ü5C‚ÍLÓC¸2C‚õÒC ×-C‚×ãÑCî)C‚R8ÑCR8&C‚\OÐCáz"C‚\OÏC×£C‚H�ÎC=ÊC‚…ÍCîC‚H¡ÌC C‚ÕËC3³C‚¸^ÊCì C‚`ÉC=JC‚šÈC×£C‚ÃõÆCffC‚ÍÌÅCHaûB‚šyÄC¤põB‚ ÃC3³îB‚áÚÁCázèB‚…ÀCáúáB‚Í ¿Cö¨ÛB‚R¸½CÕB‚=J¼C\ÏB‚q½ºC®GÉB‚ö(¹CffÃB‚R¸·Cš¾B‚öCÃu¸B‚n´CìѲB‚…«²CHa­B‚î°C¤p¨B‚šY¯CÃõ£B‚®§­C¤ðžB‚\Ï«C›B‚H!ªC3³–B‚RX¨C×#’B‚Ha¦C�B�B‚�‚¤C®‰B‚)œ¢C¸†B‚)¼ Cáú�B‚¤ðžC¸~B‚=êœCq=wB‚Í ›C33pB‚H™C= jB‚ ÷–Cö(eB‚•C®G_B‚{ô’C¤pZB‚3ó�CffWB‚{ÔŽC{SB‚fæŒCq=NB‚ÍÌŠC¤pKB‚öȈCÍÌHB‚=ª†CázDB‚áš„CìQBB‚Ãu‚C®G@B‚ìq€C{@B‚ìÑ|C¤p=B‚ÍŒxC ×B‚_C…ë>B‚ö([CÃõ@B‚H¡VC)\BB‚¸ÞRCìQFB‚¤°NC\�GB‚ìQJC ×JB‚¸^FC®GOB‚EBCš™RB‚öè=C®GWB‚…ë9C= [B‚336C)\_B‚{2CeB‚Há-CÍÌkB‚\*C33pB‚¤p&C= wB‚H!"C}B‚\OC…ë‚B‚R¸C�B†B‚{ÔC{ŠB‚¸CHaŽB‚ázC�B’B‚¤0 CÃu–B‚ì‘C¸›B‚áºC.ŸB‚H¡Cq=¤B‚ WüBáz©B‚¤ðôBìQ®B‚)\îB)ܳB‚\èBÍL¸B‚ÍLáB¤ð½B‚¸žÛBázÃB‚ö(ÕB�BÉB‚áúÏB�BÏB‚fæÉB33ÕB‚\�ÃB{ÛB‚.¾B¸žáB‚)\¸B3³èB‚¤p³BïB‚®B®ÇõB‚áú¨BázüB‚¤p¤B¤pC‚…kŸB¤°C‚š™šB —C‚ ×–B�B C‚q=’B…kC‚R8ŽBH!C‚ö(ŠBìC‚Ãu†BÃõC‚¸ƒBq}C‚×£~B3s"C‚…xBöh&C‚\�rBì*C‚®GkBÃõ-C‚¤peBš2C‚)\aBî5C‚q=[BE:C‚HáWBšY>C‚R¸RB�BBC‚®GOBnFC‚ ×KB@JC‚ìQHB×£NC‚ö(FB3³RC‚�ÂCB¤ðVC‚ ×@BqýZC‚ff?B�B_C‚×£>BH¡cC‚¸?BÀgC‚š™BqýoC‚ö(>B…+tC‚R¸=B�‚xC‚ ×?B…«|C‚�Â?BÃu€C‚{ABff‚C‚q=DB®§„C‚�ÂFBR˜†C‚¸JB®ÇˆC‚\�LB ·ŠC‚33OBẌC‚š™RBH�C‚ffWB¸Þ�C‚®[Báú’C‚= aBHá”C‚ÍÌeBö—C‚HákB×™C‚R¸qB ךC‚®GwBÃõœC‚{~B¤ÐžC‚áz‚B × C‚ìцBöˆ¢C‚= ŠBޤC‚�Â�Bìq¦C‚®G’B\¨C‚fæ–Báú©C‚áz›B\¯«C‚= ŸB¸~­C‚)Ü£BÍL¯C‚33©BRذC‚�­B3“²C‚R8³B…k´C‚®¸B ×µC‚{”¾B¥·C‚×£ÃBf¹C‚ ×ÉB\¯ºC‚ÏB33¼C‚×£ÕB…‹½C‚)ÜÛBH¿C‚®áB×cÀC‚33èB×ÃÁC‚R8ïBqÃC‚×#õBöhÄC‚�ÂûBR˜ÅC‚šYC¸þÆC‚¸ÞCáÈC‚¸žCEÉC‚fæ CHaÊC‚ì‘CHaËC‚ECì‘ÌC‚ C{”ÍC‚ —CŽÎC‚\�CHaÏC‚E"C=JÐC‚¸&C ÑC‚.*CÎÑC‚×#.CͬÒC‚q=2CNÓC‚®6CáÚÓC‚Ã5:C{tÔC‚ö(>C\ÕC‚HaBCq�ÕC‚q=FC)ÖC‚¸^JCÕÖC‚3³NCÃõÖC‚®ÇRCff×C‚îVCš¹×C‚ö([CHá×C‚á:_C�ØC‚HacC`ØC‚q}gCq]ØC‚{”kC¸^ØC‚fæoCìqØC‚ìtCáZØC‚šYxC¸>ØC‚®|C¸^ØC‚…€CÃõ×C‚ìq‚C�Â×C‚ì‘„CR˜×C‚ ·†C=J×C‚¸¾ˆC®×C‚ ׊Cf¦ÖC‚ÎŒCqÖC‚ÃõŽC=ÊÕC‚… ‘C�"ÕC‚®ç’CÍŒÔC‚Rø”CìñÓC‚Ãõ–C)|ÓC‚f™Cq�ÒC‚Í ›CHÒC‚=êœC\ÑC‚�âžCRXÐC‚õ C€ÏC‚öÈ¢C¤�ÎC‚쑤CH�ÍC‚ÃU¦CH�ÌC‚q=¨CšyËC‚ìªC¸~ÊC‚3ó«C€ÉC‚õ­C�"ÈC‚¸>¯CqýÆC‚= ±C=ªÅC‚)¼²C3“ÄC‚{T´C…KÃC‚¶C{ôÁC‚Ž·C®‡ÀC‚R8¹Cš9¿C‚š¹ºC×£½C‚33¼C×#¼C‚×£½CöȺC‚š¿C 7¹C‚ì‘ÀC{´·C‚…ëÁCåµC‚\/ÃC¤p´C‚öhÄC®²C‚õÅCÃõ°C‚šÇCE¯C‚š9ÈC¤°­C‚š9ÉCš¹«C‚RxÊC ªC‚¸~ËC¸>¨C‚\�ÌC)\¦C‚H¡ÍCšy¤C‚šyÎC3³¢C‚=JÏCì± C‚ 7ÐC�âžC‚= ÑC…ËœC‚HáÑCîšC‚ö¨ÒCfæ˜C‚EÓC¸—C‚{ÔC•C‚3“ÔC®ç’C‚…+ÕCÍì�C‚ì‘ÕC{ôŽC‚%ÖCfæŒC‚¤�ÖCHÁŠC‚f×C{´ˆC‚Ã5×CẆC‚H¡×C…«„C‚¸Þ×C®‡‚C‚šØC®g€C‚š9ØC)œ|C‚ WØC€xC‚�BØCÍLtC‚q]ØCq=pCë"%!#)ÿÆ € Ç öÈÔCÍÌoCÇ fÆÔCá:tCÇ 3³ÔC@xCÇ €ÔC�B|CÇ q=ÔC€CÇ H!ÔC×#‚CÇ ¸ÞÓC=*„CÇ ®ÓCÃ5†CÇ …KÓCÍ ˆCÇ  ×ÒCìŠCÇ …kÒCšù‹CÇ ÒC¤ð�CÇ ÍŒÑC �CÇ áúÐC®’CÇ …ÐC\Ï“CÇ �ÂÏCÀ•CÇ  ÏC®§—CÇ nÎCö¨™CÇ ͬÍCìq›CÇ RøÌC¤P�CÇ šÌCá:ŸCÇ Ã5ËCà CÇ {4ÊCÃÕ¢CÇ q=ÉC=ФCÇ ¸>ÈCq]¦CÇ  ÇC�¨CÇ öÆC�â©CÇ ÅCq}«CÇ ÄC¤0­CÇ )¼ÂC{´®CÇ q}ÁC)|°CÇ ×cÀCH²CÇ =ê¾Cáz³CÇ À½CìµCÇ =J¼C —¶CÇ ¸ÞºCÍ,¸CÇ ff¹C)|¹CÇ ×#¸CqýºCÇ Õ¶CE¼CÇ \/µC\¯½CÇ 3“³Cšù¾CÇ Íì±Cö(ÀCÇ N°C)|ÁCÇ 3Ó®C\¯ÂCÇ {4­CáÚÃCÇ n«Cö(ÅCÇ ÃÕ©Cì1ÆCÇ  ¨Cf&ÇCÇ �b¦C@ÈCÇ  —¤C¸>ÉCÇ =Ê¢C ÊCÇ {ô CËCÇ ÃŸC=êËCÇ ®G�Cš¹ÌCÇ …‹›CÕÍCÇ \�™CnÎCÇ f¦—CÏCÇ À•CöÈÏCÇ ¤ð“C®gÐCÇ qý‘CÍìÐCÇ =ê�CšyÑCÇ {ô�CöÒCÇ … ŒCšyÒCÇ �ŠCšÙÒCÇ qý‡CÍ,ÓCÇ 3†CÕÓCÇ %„CáÚÓCÇ H‚CÃÔCÇ …+€C)\ÔCÇ ®|Cì‘ÔCÇ Ã5xC¸žÔCÇ ¸tCR˜ÔCÇ …+pCfÆÔCÇ îkCö¨ÔCÇ ®hC¥ÔCÇ ®ÇcCŽÔCÇ 3³_C…kÔCÇ Há[CÃ5ÔCÇ H¡WC®çÓCÇ {”SCöˆÓCÇ ¸žOCHaÓCÇ f¦KCìñÒCÇ �HCR˜ÒCÇ ÃõCCáÒCÇ ì@CRxÑCÇ E�CÇ {”ÒC\ŽCÇ = ÓC)ŒCÇ ¤pÓC{4ŠCÇ {ôÓC¤0ˆCÇ )<ÔCöH†CÇ {tÔCá:„CÇ {´ÔCì1‚CÇ áÚÔCÍ €CÇ �ÕC¸^|CÇ R8ÕC{TxCÇ ¸^ÕC@tCÇ …KÕC®ÇoCì"%!#)ÿ‹ŒC0CŒCC‹�>C*C�@CîB‹’oC*C’qCÌB‹•�C*C•‘CîB‹˜€ C1C˜€§CCí"%!#)ÿœ�C4C�CCœ !C4C &CCœ£+C4C£/CCœ¦5C4C¦8CCœ©?C4C©ACCœ¬IC4C¬JCCœ¯SC4C¯SCCœ²]C4C²\CCœµgC4CµeCCœ¸qC4C¸nCCœ»{C4C»wCCœ¾€‚C4C¾€CCœÁ€‡C4CÁ€„CCœÄ€ŒC4CĉCCœÇ€‘C4CÇ€�CCœÊ€–C4CÊ’CCœÍ€›C4CÍ€–CCœÐ€ C4CЛCCœÓ€¥C4CÓ€ŸCCî"%!#)ÿ×€ Ø)—CÃ5+CØ= šC &CØÃõ™Cöè%CØ= —CÍ +Cï"%ÍåñÿÞ€ ßR8šC�)Cß=JšC×£)Cß\šC®‡*CßqÝ™C{”+CßRØ™Cq},CßHÁ™C¸^,Cß)|™CÍ -C߸>™CRx-Cßš™C.CßìјCõ-Cß쑘Cf&.Cߤ�˜C33.CßÍ,˜Cš.Cßq˜CÃ5.Cß{ô—C…+.Cßö¨—C{Ô-CßHa—C…+-C߸>—Cì-CßÍ —Cì,Cßìñ–CRx+Cßq�–Cõ*Cß®§–C= *Cß w–Cì)Cß —–C W(Cß=Ê–C¸^'CßÀ–C�B&Cßöè–C�Â%Cߤ—CHá$Cß\o—CÍÌ$Cßšy—CšY$Cß…ë—CÃõ#Cß=J˜CÃu#CßR8˜C W#Cß{T˜C…#CßH¡˜Cáú#C߸þ˜C�$Cßqý˜Cq=$Cß`™CÃ5$CßìQ™C×c$Cߤ°™CÃu%CßRØ™C&Cß šC€&Cß%šCšY'Cßá:šC®(Cß\OšCšÙ(Cߤ°›Cf&)Cßå›Cf¦'C߸ž›C®‡&CßÍŒ›C®%Cß×c›C\$CßöèšC¤p#Cß�šCöè"CßRxšCÅ!Cߤð™Cáú Cß=Š™C¤p Cßìñ˜C…k Cß×£˜CHa Cß)Ü—CÃu CßÃ5—C.!Cߤ0—C®!Cßõ–Cqý!Cß…K–C×£"Cߤ–C¤°#Cßà•C ×$Cß®§•Cš™%Cß…k•C®'Cß=Š•CÃõ'Cßöh•C)Cß=j•C\O*Cßáz•C W+Cß=ª•C®Ç,CßqÝ•C33-Cß –C¸^.Cß×c–C= /Cß×ÖC ×/CßÍ —Cá:0Cße—C×c1Cß×#˜Cq}1CßHa˜C3s1Cß)ü˜CR¸1Cß…k™CšY1Cßî™CHá0CßìqšCfæ/Cß®§šCö¨/Cßq›C×ã.Cß{”›C¤p-C߸~›C\,CßH¡›Cq½+Cß\Ï›C¤0*Cß)Ü›C¤ð(Cð"%!#)ÿ» ¼›C)C@¼šùšC*C@¼fæšCRø*C@¼fÆšCöè+C@¼áššC®Ç,C@¼×cšC{”-C@¼�"šC=J.C@¼šÙ™C×ã.C@¼=Š™C¸^/C@¼{4™CR¸/C@¼áÚ˜Cî/C@¼€˜C0C@¼%˜Cî/C@¼…Ë—CR¸/C@¼Ãu—C¸^/C@¼f&—C×ã.C@¼qÝ–C=J.C@¼)œ–C{”-C@¼e–C®Ç,C@¼š9–Cöè+C@¼š–CRø*C@¼f–C*C@¼–C)C@¼f–C(C@¼š–C®'C@¼š9–C &C@¼e–CR8%C@¼)œ–C…k$C@¼qÝ–Cõ#C@¼f&—C)#C@¼Ãu—CH¡"C@¼…Ë—C®G"C@¼%˜Cì"C@¼€˜C"C@¼áÚ˜Cì"C@¼{4™C®G"C@¼=Š™CH¡"C@¼šÙ™C)#C@¼�"šCõ#C@¼×cšC…k$C@¼áššCR8%C@¼fÆšC &C@¼fæšC®'C@¼šùšC(C@ñ"%5<�ÿê€ ëîƒC33)Cëö‡C{$Cë ÷†C…ë#Cëq݃C= )Cò"%Íåñÿñ€ òn‡Cáz&Cò= ‡C…ë'Cò ‡Cî(Cò¤ð†C3s)Cò‡Cö¨)CòÕ†C=Š*Cò\o†C@+Còq†C{”+CòR†CR8,CòR†Cq½+Cò …Cf&,CòÃ5…CÍ ,Cò�B…CHa,Cò)…C)\,CòRø„Cá:,Cò×£„C{Ô+Cò\O„CÍL+Cò…+„Cáú*CòׄCn*Cò�âƒC¸^)Cò¸¾ƒC=Ê(Cò…«ƒC¤°'Cò=ªƒC¸Þ&Cò…‹ƒC¤0&Cò¤°ƒC¤p%Cò®çƒCÍL$CòfæƒC ×#Cò.„Cì#Còq]„CÀ"CòÍÌ„C= "Cò¤°„CšÙ!Cò)ü„C3ó!Cò=*…C�Â!Cò�‚…C)Ü!Cò=ê…CRø!Cò… †C×ã!Cò®'†C®"Còq]†CÍL"Còáz†C=Ê"Cò\¯†C¤0#CòÀ†Cq½#CòHá†C¤p$Cò‡C®‡%Cò¤0‡CR8&Còö(‡C¸Þ&Cò ׈CH!'Cò×ãˆC —%Còš™ˆC…k$Cò\�ˆCR¸#CòázˆC{”"Cò%ˆCšY!Cò\χC=Š Còf†‡C Cò×#‡C=JCòöˆ†C®‡Còî…C€Còš™…C®‡Cò…ë„C®‡Còf¦„C×ãCò¤„CCòᚃCHáCò%ƒC¸Þ Cò¤ƒC×ã!CòáÚ‚C×£"Còf†‚Cq}#Còšy‚CÍ %Cò=Š‚C…ë%Cò=J‚C3³&CòN‚Cî'Cò…k‚C®‡)Cò×£‚Cá:*Cò×ÂCáz+Cò)ƒC¤0,Còš9ƒC®G-Cò ׃CÃõ-Cò)üƒCq}.Cò\o„C=J/Cò¸>…C�Â/Cò¸ž…C¸ž/CòHá…C…/CòÍl†C…k/CòÇCšÙ.Cò\o‡C®.Cò ׇC¤p-CòˆC)\,CòáZˆC\�+Cò×£ˆCR¸*CòáÚˆC@)Cò ·ˆC®G(Còq½ˆCn'Có"%!#)ÿΠψC'C@Ïšù‡C(C@Ïfæ‡CRø(C@ÏfƇCöè)C@ÏᚇC®Ç*C@Ï×c‡C{”+C@Ï�"‡C=J,C@ÏšÙ†C×ã,C@Ï=ІC¸^-C@Ï{4†CR¸-C@ÏáÚ…Cî-C@Ï€…C.C@Ï%…Cî-C@Ï…Ë„CR¸-C@ÏÃu„C¸^-C@Ïf&„C×ã,C@Ïq݃C=J,C@Ï)œƒC{”+C@ÏeƒC®Ç*C@Ïš9ƒCöè)C@ÏšƒCRø(C@ÏfƒC(C@σC'C@ÏfƒC&C@ÏšƒC®%C@Ïš9ƒC $C@ÏeƒCR8#C@Ï)œƒC…k"C@Ïq݃Cõ!C@Ïf&„C)!C@ÏÃu„CH¡ C@Ï…Ë„C®G C@Ï%…Cì C@Ï€…C C@ÏáÚ…Cì C@Ï{4†C®G C@Ï=ІCH¡ C@ÏšÙ†C)!C@Ï�"‡Cõ!C@Ï×c‡C…k"C@ÏᚇCR8#C@ÏfƇC $C@Ïfæ‡C®%C@Ïšù‡C&C@ô"%5<�ÿý€ þEoCì-Cþ{uCš(Cþ…ëtCfæ'Cþ)oC×ã,Cõ"%Íåñÿ„€ …@uCÍ +C…nuC¸Þ+C…EuCff,C…ÃõtC®G-C…)\tC….C…\OtCì/C…RøsC¸/C…®‡sC�‚/C…îrCšÙ/C…f&sCì0C…nrC…+0C…ÅqCÍ 0C…rCR80C…¸qC×#0C…)œpCÍ 0C…{TpC®Ç/C…®ÇoCöh/C…¸^oC×£.C…Ã5oCHa.C…fænC W-C…\�nC…«,C……knC…«+C…RømC)Ü*C…¤pnCqý)C…×#nCš)C…{ÔnC=Š(C…ÍÌnC®‡'C…�BoCáú&C…3soCÀ&C…ÃupCì&C…ÍÌpC{Ô%C…)qCq}%C…�ÂqCn%C…HáqC\�%C…�rCfæ%C… ×rCHá%C…færC…+&C…ìQsC{”&C… —sC3ó&C…f&tC�‚'C…šÙtCq½'C…=ÊtCÍŒ(C…ÍLuCff)C…�BuCH!*C…ö¨uC…++C… WxC{Ô*C…ÃuxC3³)C…f&xC{”(C…RøwCöè'C…)ÜwC —&C…)wC%C…H¡vC¤p$C…@vC×ã#C…öhuCH!#C…štC…k"C…áúrC33"C…ÃurCì"C…f&qCìQ"C…pCÅ"C…ÃõnCR8#C…á:nCfæ#C…f¦mC®%C…{mCn%C…�‚lC�Â&C…Ã5lCÀ'C…šlCÅ(C…Í lCÅ)C……ëkCáº*C…\ÏkCÍ ,C…ÃõkCÍL-C…=JlCìQ.C…3³lC=J/C…3ólCf&0C…ìÑmCqý0C…á:nC=Ê1C…R8oCö¨2C…33pCfæ2C…öèpC=Š3C…¤ðqC=Ê3C…ÅrCq}3C…3ósCn3C…RøtCö(3C… ×uC —2C…ÅvC�Â1C…öhwC®‡0C…ÅwCöh/C…šÙwCf&.C…f&xCq=-C…¸^xC.,C…ÍŒxCÍ +Cö"%!#)ÿá âwC+C@â3óvC,C@âÍÌvCRø,C@âÍŒvCöè-C@âÃ5vC®Ç.C@â®ÇuC{”/C@âEuC=J0C@â3³tC×ã0C@â{tC¸^1C@âöhsCR¸1C@âõrCî1C@ârC2C@â=JqCî1C@â —pCR¸1C@â…ëoC¸^1C@âÍLoC×ã0C@âáºnC=J0C@âR8nC{”/C@â=ÊmC®Ç.C@â3smCöè-C@â33mCRø,C@âÍ mC,C@âmC+C@âÍ mC*C@â33mC®)C@â3smC (C@â=ÊmCR8'C@âR8nC…k&C@âáºnCõ%C@âÍLoC)%C@â…ëoCH¡$C@â —pC®G$C@â=JqCì$C@ârC$C@âõrCì$C@âöhsC®G$C@â{tCH¡$C@â3³tC)%C@âEuCõ%C@â®ÇuC…k&C@âÃ5vCR8'C@âÍŒvC (C@âÍÌvC®)C@â3óvC*C@÷"%5<�ÿ�€ ‘EUC))C‘ì[C $C‘îZCöè#C‘)UCî(Cø"%Íåñÿ—€ ˜q}[CHá&C˜@[C=Ê'C˜= [C=Ê(C˜.[C3³)C˜�‚ZCÍ *C˜33ZC×ã*C˜šZC®G+C˜õYC…k+C˜ìQYCÃ5,C˜3óXC ,C˜)\XCö(,C˜XC{,C˜…«WC…+,C˜\�WCH!,C˜�ÂVCšÙ+C˜VC¸ž+C˜=ÊUCö¨+C˜3sUC{Ô*C˜f¦TC�B*C˜3³TC…k)C˜q=TC×£(C˜ìTCf&(C˜×#TC 'C˜H!TCff&C˜HaTCÃu%C˜ÍÌTC…k$C˜�UCq}#C˜EUCf&#C˜áúUC…"C˜ WVCš"C˜ö¨VC®Ç!C˜{WCÅ!C˜ìQWCq½!C˜îWCR¸!C˜�BXC3ó!C˜)YC×c"C˜3³YCRø!C˜HaYCöè!C˜ ×YC3³"C˜q½ZC3s#C˜\ÏZC¸Þ#C˜33[C¸^$C˜×#[CE%C˜ÍL[C)&C˜\�[C…+'C˜¤p^C{Ô&C˜Ãu^CÃõ%C˜…«^CÃõ$C˜R8^Cf¦#C˜®^CÍL"C˜Í ]C�B!C˜ W\C×£ C˜š\C C˜q½ZC×ãC˜š™YC{”C˜{YC€C˜XC —C˜¤pWCf¦C˜¸VCnC˜{ÔTCÍŒC˜¤pTC  C˜�ÂSCáz C˜�BSCq}!C˜33RC{”"C˜3sRC.$C˜öhRCö¨$C˜f¦QCÍÌ%C˜H¡QCá:'C˜3óQCE(C˜q½QC×#)C˜áúQC\O*C˜š™RC…k+C˜¤0SCšY,C˜f¦SC=J-C˜ —TCö(.C˜¤pUCö¨.C˜¸ÞUCRø.C˜RxVCq}/C˜®ÇWC¸Þ/C˜)ÜXC3³/C˜ÅYC¤p/C˜33[CšÙ.C˜�\CRø-C˜áº\C¤°-C˜€]CšY,C˜3³]CÍÌ+C˜á:^C…k*C˜f&^Cî(C˜šY^CR8(C˜á:^CÍ 'Cù"%!#)ÿô õ]C'C@õ3ó\C(C@õÍÌ\CRø(C@õÍŒ\Cöè)C@õÃ5\C®Ç*C@õ®Ç[C{”+C@õE[C=J,C@õ3³ZC×ã,C@õ{ZC¸^-C@õöhYCR¸-C@õõXCî-C@õXC.C@õ=JWCî-C@õ —VCR¸-C@õ…ëUC¸^-C@õÍLUC×ã,C@õáºTC=J,C@õR8TC{”+C@õ=ÊSC®Ç*C@õ3sSCöè)C@õ33SCRø(C@õÍ SC(C@õSC'C@õÍ SC&C@õ33SC®%C@õ3sSC $C@õ=ÊSCR8#C@õR8TC…k"C@õáºTCõ!C@õÍLUC)!C@õ…ëUCH¡ C@õ —VC®G C@õ=JWCì C@õXC C@õõXCì C@õöhYC®G C@õ{ZCH¡ C@õ3³ZC)!C@õE[Cõ!C@õ®Ç[C…k"C@õÃ5\CR8#C@õÍŒ\C $C@õÍÌ\C®%C@õ3ó\C&C@ú"%5<�ÿ£€ ¤{.CHá*C¤ì4C{&C¤î3C…ë%C¤3ó-Cõ*Cû"%Íåñÿª€ «Ãu4C�)C«=Š4Cî)C«�‚4C×ã*C«�B4CìQ+C«)Ü3CÀ+C«®3Cq½,C«{”2C33-C«q½2C€-C«¸Þ1C¸ž-C«=Ê1Cì.C«ÍÌ1Cö(.C«áº0C®.C«�‚0C\O.C«= 0C W.C«0C..C«f&/C3s-C«áº.C.-C«=J.Cî,C«Há-CÃ5,C«õ-C3s+C«®G-CÍÌ*C«.-C= *C«…+-Cqý(C«š-C ×'C«á:-CÍŒ'C«õ-C¸ž&C«öè-Cqý%C«šY.C3s%C«)/Cáz$C«šY/C=Ê#C«š™/C¸$C«= 0CHá#C«�Â0Cq½#C«=J1C×£#C«�B1C¤°#C«q½1Cáº#C«qý1C\O$C«)œ2CÍL$C«ÍÌ2C3s$C« 3C…k%C«)Ü3C¤0&C«\O4C®‡&C«…k4C{'C«n4C®(C«öh4Cî(C« —7Cì)C«ö¨7C…ë'C«¤p7C)œ&C«f&7C)\%C« —6C $C«×#6C{”#C«®5C{”"C«ì‘4CÍŒ!C«ö(4C\!C«q=3Cf¦ C«Há1CÃ5 C«šÙ0Cá: C« ×/Cq} C«öè.Cfæ C«@.Cf&!C«R8-C\"C«áº,C�B#C«�‚,CÀ#C«šY+CÍŒ$C«ìQ+C¸Þ%C«öè*C\�&C« —*CÍÌ'C«fæ*CÃ5)C«Ãõ*C¸*C«¤ð*CìQ+C«Ã5+Cá:,C«ÍL+C3ó,C«q½+C=Š.C«áº,C{”/C«ìQ-CÍ 0C«@.CÍŒ0C«)Ü.C3ó0C«¸0Cq}1C«)1C¸ž1C«Í 2C=J1C«\O3CìQ1C«ì4C)Ü0C«áú4C¸0C«)œ5CšY/C«.6CÅ.C«€6C3s-C«ì7C×ã,C«Ãu7Cn+C« —7C…ë)C«áz7Cq½(Cü"%!#)ÿ‡ ˆ6C)C@ˆ3ó5C*C@ˆÍÌ5CRø*C@ˆÍŒ5Cöè+C@ˆÃ55C®Ç,C@ˆ®Ç4C{”-C@ˆE4C=J.C@ˆ3³3C×ã.C@ˆ{3C¸^/C@ˆöh2CR¸/C@ˆõ1Cî/C@ˆ1C0C@ˆ=J0Cî/C@ˆ —/CR¸/C@ˆ…ë.C¸^/C@ˆÍL.C×ã.C@ˆáº-C=J.C@ˆR8-C{”-C@ˆ=Ê,C®Ç,C@ˆ3s,Cöè+C@ˆ33,CRø*C@ˆÍ ,C*C@ˆ,C)C@ˆÍ ,C(C@ˆ33,C®'C@ˆ3s,C &C@ˆ=Ê,CR8%C@ˆR8-C…k$C@ˆáº-Cõ#C@ˆÍL.C)#C@ˆ…ë.CH¡"C@ˆ —/C®G"C@ˆ=J0Cì"C@ˆ1C"C@ˆõ1Cì"C@ˆöh2C®G"C@ˆ{3CH¡"C@ˆ3³3C)#C@ˆE4Cõ#C@ˆ®Ç4C…k$C@ˆÃ55CR8%C@ˆÍŒ5C &C@ˆÍÌ5C®'C@ˆ3ó5C(C@ý"%5<�ÿ¶€ ·ì!C¤p@C·=Š#C33AC·3ó&C×#BC·Há*CšÙBC·¸^/C)\CC·áú3Cö(DC·)9C®ÇDC·n>Cš™EC·šCC=ŠEC·ìÑGC…«EC·= LC…«EC·¸žPCfæDC·…kTCõDC·R¸XC\ÏCC·ì]C×#CC·H!aCáºBC·ÃueCšBC·f¦iC®AC·ìÑmC�BAC·\rC)AC·= vC�BAC·¸zC¸^AC·¸^~C{BC·š9�C\�BC·áƒCÍLCC·{T…C…ëCC·�B‡CšÙDC·q}‰C¸EC·¸^‹C€EC·…k�C\�EC·áº�C®EC·áÚ‘C�EC·{T”CõDC·q½–CEDC·öè˜C…CC·f&›C…«BC·Í,�CfæAC·šÙžC�AC·¤P C @C·öˆ¡CÃu?C· w¡C=Š>C·¤0 C×£>C·õžC)Ü>C·=êœC€>C·HášCáz?C·H¡˜CÅ?C·\o–C�‚@C·®'”C…AC·ẑC{ÔAC·¥�CRøAC·®g�CìBC·öh‹C=JBC·š™‰C)BC·Íl‡C�ÂAC·f†…CÍŒAC·NƒC×£@C·šY�Cöh@C·×£~C�@C·ÍLzC×c?C·)vC®G?C·{rC{?C·ÅmC)?C·¸^iC¤ð>C·33eC¤ð?C·¸Þ`C¤ð?C·3³\C€@C· WXC33AC·= TC×cAC·�BPCRøAC·öèKC3sBC·3óGCîAC·H!CCÃõAC·…«>CìÑAC·Rx9CÃuAC·öh4Cáú@C·{Ô/CE@C·q=+Cš™?C·Ã5'C)œ?C·Å#Cõ?C·�B!Cq}?Cþ"%5<�ÿ‰€ ŠHáC3³;CŠá:"Cì‘;CŠR¸)CCš™ßBþff?CfæÒBþ{Ô@CÃõÝBþ.DCö¨ëBþR¸GC…øBþq=KC —Cþ3sNCHáCþ¤ðQCöhCþ…ëVC€Cþ¤p[C®Cþ{^C®ÇCþ¸aC…kCþRøcCõBþ×#gC�ÂçBþ{TiC®ÙBþ{”lCáúËBþöhoC¤p¾Bþ�qC€²BþÍLrC.¾BþìuCÍÌËBþ�ÂwCázÙBþìQzC¤ðæBþ=J}Cö(ôBþ�ÂC{TCþö(�C Cþ ‚CÍŒCþ\�„C)\Cþ3ó†Cá:CþHÁˆC×# Cþ3“ŠC¤°Cþ…kŒC¤ðøBþáZŽC WìBþÍ,�C�BßBþRX‘CÍÌÓBþ\ï‘C�ÂàBþqÝ’C= ïBþfÆ“CázüBþáú”C=ŠCþHá•C�‚ CþÍì–Cq}Cþ)<˜CîCþ¤0œCö¨Cþ=jŸC{ÔCþ)¼¢C®‡Cþ{Ô¥Cáz Cþ©Cö¨Cþ3s«CšCþ…kªC¸ž Cþ…«©C�‚Cþî¨CECþRø§C×#Cþ…K§CÃ5&Cþ…‹¦C…ë,CþÍŒ¥Cš4CþìѤC ×:CþáÚ£C)œACþq}£Cš™GCþ\O C\OGCþîœCR8GCþ{4™CH!GCþš™•Cö(GCþ{’C®GGCþ\�ŽC¸ÞFCþáÚŠC×#GCþ®G‡CR8GCþ\¯ƒC¤ðFCþ)<€C3óFCþ¸yCf&GCþ¸rCGCþÅjCR8GCþ…«cCázGCþáz\C…kGCþH!UCÃ5GCþ= NCRxGCþq=GC®GGCþ)Ü?CÍLGCþšÙ8C¤pGCþÍŒ1C=JGCþ€*C —GCþš#C=ŠGCþáúC®‡GCþCRxJCþ{#Cq=JCþ�‚*C×£JCþ\�1C)\JCþ{Ô8CÀJCþ¸Þ?C�‚JCþ.GC{ÔJCþ®NCÍÌJCþ…+UC¤ðJCþáz\Cš™JCþ…«cC¸žJCþìÑjCÍÌJCþ)rC®JCþšyC3óJCþHA€C)ÜJCþö¨ƒCöèJCþHA‡C…ëJCþ�âŠC)KCþÕŽC\ÏJCþì’CH¡JCþáš•C®JCþÍ,™CÀJCþöèœCìKCþRX C¸ÞJCþ)|¤CšJCþ®¥Cq}BCþn¦C)œ;Cþ{4§Cfæ4Cþì¨C®-Cþ=ê¨C…ë&Cþ3³©CfæCþ{TªCfæCþ3«CH!CþšÙ«Cq= Cþ W¬C=ŠCþ3S¨CšYCþá¥C  Cþ{ô¡C\Ï CþHÁžCöhCþ{t›C3óCþf¦˜C®Cþ¸˜C®ÇCþìñ–Cöè Cþf&–CfæCþ¤•CûBþÃ5”C=ŠíBþ= “C¤pßBþ…‘C×£ÏBþ…K�C�BÝBþÍL�CHáéBþ®‡‹C�ÂöBþáz‰CšYCþ¤�‡C�ÂCþÍÌ…C¤ð Cþf¦„CöèCþ¥ƒC3³ Cþ`‚C×#Cþ…+�C)\Cþ®GC{”òBþÅ|CáúäBþ®zC3³×Bþ×cwC= ÊBþ®uC{¼BþÃõpCìѬBþáºlC.¼BþöèiCö¨ÉBþfæfC3³×BþìdCìQåBþázaCìÑòBþá:^C)Cþ…k[C…«Cþq½XC€ Cþ¤°VC¤0CþH!UC¤° Cþ3sQCÍLCþffNCöèCþ3³JC.õBþR8GC€èBþ×ãCCfæÚBþ®Ç>CffÌBþ�;C…ÝBþì9C WìBþ�Â6C®GúBþìÑ4CšÙCþ\�2Cáú Cþ W0CRøCþ /CÃ5CþHa*C¸žCþš$Cq=Cþ®GC¤0CþCR¸ Cþ=JC\OCþö(CHaCþ W C¸ Cþ C…+Cþ×# C CþšC¤° Cþ{”C)\'Cþ=ÊC×#.Cþ=ÊCá:5CþîC3³;Cþq}Cf¦BCþÀC)œIC�#%!#)ÿÎ ÏCIC@Ï CC@Ï0CC@Ï?CÐB@ÏWCC@ÏqC°B@Ï€„CC@Ï€‘CÒB@Ï€˜CC@ϬCC@ϤCIC@‚#%ÍåñÿÜ€Ý C¼CÝC­CÀ@Ý/C€–CÜ€áC¼Cá#C­CÀ@á4C€–CÜ€åC¼Cå)C­CÀ@å9C€–CÜ€éC¼Cé/C­CÀ@é>C€–CÜ€í%C¼Cí5C­CÀ@íCC€–CÜ€ñ,C¼Cñ;C­CÀ@ñHC€–CÜ€õ3C¼CõAC­CÀ@õMC€–CÜ€ù:C¼CùGC­CÀ@ùRC€–CÜ€ýAC¼CýMC­CÀ@ýWC€–CÜ€�HC¼C�SC­CÀ@�\C€–CÜ€…OC¼C…YC­CÀ@…aC€–CÜ€‰VC¼C‰_C­CÀ@‰fC€–CÜ€�]C¼C�eC­CÀ@�kC€–CÜ€‘|C€»C‘†C€ªCÀ@‘€ŠC’CÜ€•€�C€»C•‰C€ªCÀ@•€ŒC’CÜ€™…C€»C™ŒC€ªCÀ@™€ŽC’CÜ€�€ˆC€»C��C€ªCÀ@�€�C’CÜ€¡ŒC€»C¡’C€ªCÀ@¡€’C’CÜ€¥€�C€»C¥•C€ªCÀ@¥€”C’CÜ€©“C€»C©˜C€ªCÀ@©€–C’CÜ€­€–C€»C­›C€ªCÀ@­€˜C’CÜ€±šC€»C±žC€ªCÀ@±€šC’CÜ€µ€�C€»Cµ¡C€ªCÀ@µ€œC’CÜ€¹¡C€»C¹¤C€ªCÀ@¹€žC’CÜ€½€¤C€»C½§C€ªCÀ@½€ C’Cƒ#%!#)ÿ€ Ãf†€C챇CÃ{tƒCö(ŒCÃq�ƒCŒCÃì±€CÕ‡C„#%!#)ÿÉ€ ÊR8{CöȇCÊ…€C`ŒCʤ°€C×CŒCÊ®‡{C¤°‡C…#%!#)ÿЀ Ñ®uCšˆCÑ…+{Cš™ŒCÑ=Š{CRxŒCÑšYuCqý‡C†#%!#)ÿ×€ Ø=JoCq]ˆCØ{TuCÎŒCØ…«uC챌CØ)œoCHAˆC‡#%!#)ÿÞ€ ßffiCöˆˆCßq}oC×�CßÍÌoCöèŒCß®ÇiCöhˆCˆ#%!#)ÿå€ æ)œcC ˆCæH¡iCá:�Cæ¤ðiCH!�Cæ…ëcCf†ˆC‰#%!#)ÿì€ íH¡]C)üˆCíq½cCÃu�Cí¸dC{T�Cíáú]Cq݈CŠ#%!#)ÿó€ ôšÙ]CE‹Cô…ë`Cqý‹Cô3³eCÕŒCôffkC¸þŒCô¤0qC¸þŒCôì‘uCq}ŒCô{Cqý‹Cô ×C3S‹Cô‚Cš™ŠCô…‹ƒC�¢‰Cô{tƒCq]‰Côš¹�Cf†‰Cô®CfŠCônzC¤ðŠCôö(uCì‘‹CôqCÍ ŒCô)œkC�ŒCô@fCHA‹Cô¸^aC×ãŠCôqý]C\ïŠC‹#%5<�ÿŠ€ ‹{´ŒCH!gC‹ì±�CH!pC‹å�C¸ÞoC‹àŒCfæfCŒ#%!#)ÿ‘€ ’R8ˆC×#eC’öH‹C×#nC’)|‹C)ÜmC’öhˆC¸ÞdC�#%!#)ÿ˜€ ™ÃõƒC®GcC™à†C×#lC™{‡C)ÜkC™®'„CcCŽ#%!#)ÿŸ€  Ãõ~CH!aC )|‚C)jC ®§‚C×ãiC )\C)Ü`C�#%!#)ÿ¦€ §=JvCf&_C§f&|C)hC§q}|C×ãgC§H¡vC…ë^C�#%!#)ÿ­€ ®RxmCî\C®\OsC¸fC®¤°sCHáeC®šÙmC¤°\C‘#%!#)ÿ´€ µ…dCq=[Cµ…jC)dCµšÙjC×ãcCµ¸ÞdC[C’#%!#)ÿ»€ ¼)Ü[CRøXC¼…«aC¸bC¼Í bCHáaC¼R8\CÀXC“#%!#)ÿ€ ÃÅRCšWCÃ)ÜXC¸`CÃá:YCHá_CÃ×#SCšÙVC”#%!#)ÿÉ€ ÊEJC.UCÊ®PCH!^CÊnPC¸Þ]CÊš™JCÃõTC•#%!#)ÿЀ Ñ×cAC¸SCÑq=GC)\CÑì‘GC×ã[CÑÍÌAC)ÜRC–#%!#)ÿ×€ Ø…ë?C)\VCØ�BBC…+WCØ€EC)XCØÍŒIC…XCØÍ NCÍŒYCØáºRC= ZCØ®WC{[CØfæ[C\Cظ^_C W]Cؤ°cC¤p^CØffgCE`CØö¨kCõaCØpCöhcCØqýsC)\eCØ3sxCqýfCØ}C=ÊgCØáZ€C= iCØ\�‚CšÙiCØ×…C\ÏjCØ@‡C×ckCØᚉC)ÜkCØ ·‹C¸^lCØR¸�CÍÌlCØš9�C¤°lCØ)|�CHalCØ׃�C¸žkCØ…K�C…ëjCØRØ�CÍLjCØqÝ‹C×ãiCخljC@iCØ…k‡Cq}hCØ33…C¸hCØÅ‚C¤pgCØq�€C®fCØn}C3óeCØ®yC×ãdCØõtC€cCظžpC3óaCØ@lC¤0`Cؤ0hCÃu^CØ×cdC)œ\CØ `Cö([CØ…\C ×YCØ)œWCì‘XCؤ0SC�‚WCØq}NC�ÂVCØîICšVCØ)ÜEC€UCØ€BC3sUCØ@C…«UC—#%5<�ÿŒ€ �\�;CìÑNC�R8CC…ëOC�)œJCq=QC�{RCõRC�q}YCšÙSC�naC�BVC�…+iCÃuXC�áúpC…«ZC��ÂxC3s\C�€C®‡]C�3óƒC)œ^C�Õ‡Cš™_C�)\‹C W`C�q�C…+aC� w’C3saC�n‘C×£hC�¸^�C)ÜpC� ·�C¤0xC�¤�ŒCR¸uC�ňCìÑsC�á…CffqC�n�C{ToC�¸ž{C�BmC�Í sC)ÜjC�®kC{ThC�ÀbC —eC�HaZCÃucC�HaQC\bC�33HC{Ô`C�…k@C�Â_C�\?C¸ÞVC�{”=C�ÂLC�…k:Cq=MC�®Cá:eCö…+?CffiCö= @C3ómCöÃõ@CsCö@BC¸ÞwCöšÙCC®|CöR¸DC)¼€Cö�‚FCƒCöîGC®Ç„Cöf&JC=*‡Cö…«LCáZ‰Cö®‡OC×#‹Cö�ÂRCÍÌŒCöîUC=jŽCönYCÃõ�Cö{”\C=j‘Cö¸Þ_C�Â’Cö=JcCìQ”Cö®gC…Ë•CöîjCÍ —CöoC××Cö\sC×ã—Cö wCÕ—CöHa{Cͬ–CöázC¥•Cöà�CÍL”CöìуCöˆ’Cöš™…C=ê�Cöìq‡C=J�Cö ÷ˆCšÙ�CöH�ŠC{ô‹Cö3Ó‹C 7ŠCö¤ðŒCR8ˆCö%ŽCH!†Cö.�Cá„Cö\�C×Ã�CöÃÕ�CìQCö{T‘C= {Cö3Ó‘Cq}vCö=*’C\�qCö ’C�ÂlCö¤ð’C\OhCöšù’CqýcCö®“C®Ç`CöÍ,“C\^Cö3Ó’C¤ð]CöRx’C)œ`Cö%’CìÑcCööÈ‘C= hCö)|‘C WlCöà�CìqCöÍl�CvCö¤�C�‚zCöR˜�C)œ~CöîŽC3S�CöHá�C=ŠƒCöá�C{”…Cö…Ë‹C¤�‡Cö\ÏŠCމCö€‰C=*‹Cö\ˆC¤�Cöq½†CöˆŽCöqÝ„C¸�Cöq=ƒC=ê‘Cö W�C3““Cö¤p~CHÁ”Cö®zCRø•Cöö¨vC…Ë–Cö�sC3ó–CöffoCÃÕ–Cö)ÜkC�"–Cö…+hCšù”Cö3sdC�¢“Cö¤0aC= ’Cö{^C3“�CöîZCf&�Cö×£WC€�CöR8TC{ŒCö¤pQCšYŠCöHáNCH¡ˆCöÍŒLC®‡†Cö¤0JC×C„CöšÙHCì‘‚Cö WGC)\€CöÃ5FC{|Cö…ëDCH!wCöáºCCHarCö{”BC)\mCö{ACáúhCöÃ5@CHádCö…ë>C�‚aCö�‚>Cš_C›#%!#)ÿÖ€ ××C’CáºgC×Ãõ‘CffrCפ0‘C…«|C×Há�CqƒC×… ŽC¤�‡C×�â‹CÀ‹C×3‰C\o�C×N†Cöh’C×Ãõ‚Cáú”C×3sCö¨–Cפ0xCìÑ—C×Í qCfF˜C׸žiCìÑ—C×�ÂbCqÝ–C×î[C×ã”C×3sUCáš’C×f&OCöˆ�CךJCå‹C×ázECö¨‡C×…ëAC33ƒC×{T?CH¡|C×R¸=C…rC×@=C×#hC×)Ü=C¤p]C×ìQ?CHaSC×{BCÍŒIC×\�ECö¨@C××#JCÍL8C××cOC3ó0CךYUCRø*C×…ë[C@&C×HábC@"C×{ÔiC — C×fæpCRxC× WxC)œ C×{TC…«"C×�â‚CÃu&C×…+†Cá:+C×)<‰Cš1C×áš‹C…k8C׎Cf¦@C×õ�C3³IC×q‘CšYSC×ìñ‘Cö¨]C×…K’C hC×{´“CöègC××c“CHa]C×ìÑ’C×£RC×)\‘C —HC×)|�C{T?C××C�Cff6C×öˆŠC…ë.C×{T‡C=Š(C×3óƒC@#C×=j€CR8C×{yCöèC׸ÞpC¸^C×ö(iCf&C×®aC\OC×ZC×c#C×ÍŒSCî(C×ö(MCš/CךHCì7C×ffCC×£?C×…«?C�ÂHC×H!=CîRC×Ãu;C.]C×õ:C¸hC××#;C=ÊrC×qý˜C×�iC W™C×�qC3Ó™C×îxC\�™C×�b€CHA˜C×îƒCq}–C× w‡C ·“C× —ŠC{´�CךY�C…«ŒC׸¾�C{TˆC×áZ‘CÕƒC××£’CÍL}C×q�“CÀrC×ÃÕ“CHágCœ#%!#)ÿ³ ´“ChC@´ẒC®‡rC@´Íì‘CšÙ|C@´áš�C¸^ƒC@´…ËŽCHˆC@´f†ŒCá:ŒC@´áÚ‰C ÷�C@´3Ó†C “C@´�‚ƒC®§•C@´îC€—C@´=ŠxC ˜C@´qC™C@´ÃuiC ˜C@´ìbC€—C@´áúZC®§•C@´šYTC “C@´=JNC ÷�C@´3óHCá:ŒC@´öhDCHˆC@´=Ê@C¸^ƒC@´f&>CšÙ|C@´=ŠCf&SC@´=Ê@C�BIC@´öhDCqý?C@´3óHC=Š7C@´=JNCì0C@´šYTCÀ)C@´áúZC¤°$C@´ìbC!C@´ÃuiCÀC@´qCC@´=ŠxCÀC@´îC!C@´�‚ƒC¤°$C@´3Ó†CÀ)C@´áÚ‰Cì0C@´f†ŒC=Š7C@´…ËŽCqý?C@´áš�C�BIC@´Íì‘Cf&SC@´ẒCRx]C@�#%Íåñÿ†ã×#C3Ó¿CãÍ C¸>¼CãìÑCÍì¸Cã=J CášµCã¤ð C¤²Cã×£C¤°®Cã¤0C3“«Cã —C¸>©Cãö(CR¸¦Cãáz%C®G¤Cã¸^,C)œ¡CãìÑ.Cf¦�CãÃu1CRø™Cã{Ô3C=J–CãšÙ5Cö¨’Cãì8CìñŽCã¸Þ:Cf‹Cã¸Þ8C�b‡Cãì‘6C�„Cã\�4CẀC㤰2Cì‘zCãš™0CštCãÀ.CEmCã3³,C×ãfCãÍÌ,Cõ^Cã…«,C —VC㤰,C=ŠNCã�Â,C{FCãq=,C×£>Cã@1Cöh:Cã —6C{Ô5Cã…«;C=Ê0Cãáº@C\,CãìÑEC®'Cã×cLC¸ž%Cã\ÏRC×ã#Cã)ZC…+"Cã=Ê`CšY Cã¸^gC{CãHámC�‚Cãq=uC…ëCãff|CfæCãRØ�Cq½!CãÕ…Cq}#C㸉C=J%CãR¸ŒCÍL'Cã×C�CR¸+CãÍì‘C�‚0Cã…k”C¸5Cãqý–Cn:CãRx™C{”>C㎙C{ÔDC㥙CáúKCãÀ™C…+SCãHá™C\ZCãš¹™Cf&aCãî™CáúgCãqý˜C®‡nCãq˜C=JuCãfÆ–CÅ{CãRø•C®'�Cãö•CR˜„Cã”C¤ˆCãHá’Cš™‹CãE”Ce�CãáZ•C¤“Cã®§–CH¡–Cã…Ë—C¤PšCãf™C3žCãšyšCRø¡Cãfæ�C…«¤Cã)\¡Cî¦Cã®§¤CÕ©CãÍ̧Cì¬Cãqý¨C ¯Cã 7ªC=j²Cã\�«CõµCã…ë¬Cqý¸Cã=ê­C=j¼Cãì1¯C ÷¾Cã®g¬CHÁ¾CãfƨC ·¾Cã¸>¥Cì±¾Cã…«¡C{t¾Cã3žC쑾Cã`šC…‹¾Cã=ê–C{”¾Cã¤P“Cõ¾Cãáº�C —¾CãÍ ŒC{”¾Cã…kˆC×£¾CãšÙ„C3“¾Cã\O�Cq�¾CãÃ5{C€¾CãqýsC\¯¾CãHálC\¯¾Cã —eC)œ¾Cã)œ^CÍŒ¾Cãö(WCöˆ¾Cãf&PC®§¾CãÍ IC쑾Cã3óAC®§¾Cãáz:C=оCã333C¸~¾Cãf&,C쑾Cãqý$CH¡¾Cã®ÇCõ¾Cã…kC3³¾CãÍŒCå¾CãEC�¢¾CãáúC¤°¾CãC\OÀCãR8CEÀCã€C\OÀCãRxC¤pÀCã\ÏC®GÀCã%C¸^ÀCã33,CEÀCã.3C3SÀCã…k:C¸^ÀCãÃõAC`ÀCã{IC®GÀCãH!PC¸>ÀCã¸WCHaÀCãì‘^C)|ÀCã\�eCÃuÀCã)ÜlCÃuÀCãìtCázÀCã33{C3SÀCãÍL�CÕÀCãqÝ„CáZÀCã®gˆCìqÀCã… ŒC3sÀCãš¹�C¤�ÀCãšY“Cq]ÀCã¤ð–CfFÀCãáZšC{TÀCãÞC{tÀCã…«¡C WÀCãì1¥C\OÀCãŨC¸~ÀCã\o¬C®GÀCã\¯°Cqý¿Cã —¯CÃÕ»Cã=J®C¸~¸Cãq­CáµCã\Ï«CöȱCãq}ªCöˆ®CãR©C®«Cã�‚¥Cšy¨CãH!¢Cå¥Cã מCHa£Cã ›Cq¡CãšyšC3“�CãÍ,™CRØ™CãfÆ—C)<–Cãf†–C®’Cãff•CH�CãÃõ“C\�‹Cã%•CnˆCã×#–C…ë„CãR8—C€�CãR˜C{”|Cãš™CöèuCã\šCö(oCãq=›CÍLhCã®›CšaCã)üšC= ZCãåšC SCãÀšCîKCã…ËšC=ÊDCã ·šC×c=Cã…ë—Cöh8Cã33•CRx3C㤰’C ×.Cã�Cqý)Cã)\�C)Ü$Cãöh‰CÍ #Cã×ã…C !Cã.‚C¤0Cã×#}CÍ Cã=ÊuCázCãHámCö¨CãH¡fC×cCãfæ_C®GCã@YCÃõCã)RCf&!Cã\�KC…"Cã)DCì‘$Cãáz>CH¡)Cã)œ9Cf¦.CãšY4CHa3Cã…+/CÍ 8Cã{T)Cáz=Cã…k)CšFCã{)C…NCã W)C —VCã�)Cö¨^Cã¤ð(CngCã…k+C�BnCã�-C.uCãáz/Cì‘{Cã W1C.�Cã{3C®‡„Cãš5CˆCã\�7CRøŠCãöè4C=jŽCã —2C\/’Cã�‚0CöÈ•Cã¸.Cff™Cãq}+C �Cã®G)C׃ Cã@#C�â¢CãÃ5Cáz¥Cãö¨C\ï§CãÃuCázªCãöè C®'®CãH! CH�±Cã\OC®µCãÀC W¸Cã×cC ·»CãáúþBöH¿Cž#%!#)ÿà ÄC€¿C@ÄC«C@Ä+C¡C@Ä9C‹C@Ä+CgC@Ä+C>C@ÄEC&C@ÄnCC@Ä�C&C@ÄšC>C@Ä€šChC@Ä€“C€‹C@Ä›C€¡C@Ä€¨C€«C@İC€¿C@Ÿ#%~¡¸ÿÕ€ Öq½éC…koCÖšçCÍL{CÖ\�æCŽƒCÖHÁåC)\‰CÖÀäC`�CÖ{ÔåCöˆ•CÖ®ÇáC)šCÖHáßC\ïŸCÖ)œÝC\/¥CÖfÛC ªCÖRxÚCRذCÖ3sÕCe´CÖšÙÑC¤0¹CÖ¸>ÎC{Ô½CÖ WÊCRxÂCÖ×cÈCEÈCÖášÂC=ŠÊCÖ®ç½CeÎCÖ�B¹C{ÔÑCÖÍL´C.ÕCÖΰC=jÚCÖf¦ªCåÚCÖR8¥C=ªÝCÖqÝŸCq½ßCÖf&šC×ÃáCÖ W•CÍÌåCÖáZ�C¤�äCÖq]‰C\ÏåCÖ…«ƒCöˆæCÖá:{CÍ çCÖ pC�¢éCÖ…dCö(çCÖö¨XCÍŒæCÖ×#MC)ÜåCÖ®GACáÚäCÖ¤05CqÝåCÖ ×+C3³áCÖÃu CÅßCÖì‘CázÝCÖö¨ C3ÛCÖ€üBázÚCÖîB wÕCÖR¸ÚB=*ÒCÖšÈB)\ÎCÖR¸µBì±ÊCÖfæ�B)|ÈCÖ…ë•Bf¦ÂCÖ W†BH!¾CÖ…nBHa¹CÖ¸TBáš´CÖ+B= ±CÖHá&B®ªCÖq=B�b¥CÖq=BqýŸCÖ�ÂáA¸^šCÖÃõžA…k•CÖ\�²A×C�CÖ×£žA�‚‰CÖ)\“Af¦ƒCÖ¸�A×£{CÖHá>A ×oCÖ¸�AöhdCÖff’A=ÊXCÖ A®GMCÖ…¯ARxACÖ®G�AÍÌ4CÖ×£àA®G+CÖ33B CÖq=B{”CÖ®'Bö¨ CÖff+B¤püBÖHáSBö¨íBÖ¤poBšÚBÖš†BÃuÇBÖ)\•B{”µBÖ¸žBš™�BÖ\�µB= –BÖfæÇBš™…BÖázÚB…ëpBÖ33îBUBÖ= ýBš™+BÖẠCÃõ'BÖf¦C{BÖ{ C{BÖ=Š+CázâAÖÃ55C\�¢AÖ@AC\�²AÖEMC�¡AÖöèXCáz–AÖÍŒdC�Â�AÖ pCázLAÖ\{C…ë�AÖH�ƒC…™AÖ=J‰C�Â¥AÖìQ�C®³AÖ®g•CÍ̤AÖ 7šC×£æAÖ\ÏŸC…BÖN¥C¸BÖ\�ªCö((BÖ¸Þ°C)\,BÖ®G´C…ëUBÖ\/¹CìQqBÖfæ½C¸†BÖášÂCš™•BÖ¸^ÈCÍÌžBÖìqÊC…kµBÖ WÎC.ÈBÖ�âÑCq½ÚBÖá:ÕC3³îBÖ wÚCÍÌüBÖàÚC × CÖŽÝCšYCÖ\ÏßC¸^ CÖöèáC)œ+CÖfæåC�B5CÖ…«äCRxACÖÃõåC33MCÖ�ÂæCHáXCÖìçC\�dCÖàéC{”pCÖ ëC…koCÖìqèCšÙcCÖR8èCš™XCÖRXçCR¸LCÖ®GæCÃuACÖ¸^çC€4CÖR8ãC¸*CÖìqáC¸CÖößCCÖ�¢ÜCöè CÖÍ ÜC×#ùBÖ¤�ÖCHaéBÖ3sÓC®GÖBÖ¤ÐÏC WÃBÖ3ÓËC33²BÖH¡ÉC)Ü™BÖìqÃCHá�BÖ…ë¾C¤ð€BÖ¤PºC\�dBÖ׃µCö(LBÖằCR¸ BÖf«C= BÖáú¥C\�BÖe CffìAÖ¤0›Cö(ÌAÖ=ê•CˆAÖ\O�Cáz˜AÖމCHáˆAÖR¸ƒC®wAÖ®|C= gAÖìpCAÖR¸cClAÖ\�XCö(tAÖ�ÂLCR¸ˆAÖ�BAC×£šAÖÍL4C®G‡AÖ¸Þ)C)\ËAÖÃõCš™ëAÖ�BC ×BÖ3ó C�ÂBÖìÑùBff BÖìÑéB®GLBÖÍÌÖB�ÂfBÖ�ÂÄB3³�BÖ…²BÍÌ�BÖq½šB×#šBÖ\�B…²BÖö(‚B WÄBÖ ×gB�B×BÖ{LBq½éBÖR¸!B�ÂùBÖ¸Báú CÖ¤p BázCÖðA33CÖìQÎA…ë)CÖázŒAá:4CÖ\�œAázACÖ\�ŠA¸ÞLCÖö(€A{”XCÖq=vAÍÌcCÖffA{ÔoCÖÍÌtA@|CÖ…{AŃCÖázŠAš¹‰CÖ…ë�A®G�CÖš™�A{´•CÖ\�ÎA… ›CÖffìAáz CÖ\� BHá¥CÖìQBH«CÖq=#BR˜±CÖq=MB wµCÖ{fB%ºCÖfæ�Bö¿CÖ3³�B×cÃCÖ®™BöˆÉCÖ³BåËCÖ�BÄB…‹ÏCÖáz×BHAÓCÖ{êB{tÖCÖázùB…ËÛCÖöè CázÜCÖÃ5C… ßCÖHaC33áCÖH!*C®'ãCÖìQ4C¸^çCÖ®GACeæCÖ®LC`çCÖ=JXC¸>èCÖÅcC�¢èCÖšpC\/ëCÖ= |C�¢èCÖáÚƒCáZèCÖ®§‰C׃çCÖáZ�CHaæCÖ\Ï•CÍŒçCÖ{ôšC.ãCÖ׃ C€áCÖfæ¥C=*ßCÖ%«C\¯ÜCÖ3³±C\ïÛCÖf¦µCf†ÖCÖ)\ºCq]ÓCÖ{ô¾C ·ÏCÖ{tÃC¸þËCÖq�ÉCÃuÉCÖ3óËC�bÃCÖ ÏC¤ð¾CÖEÓCHAºCÖŽÖCH�µCÖ…ËÛCáš±CÖš™ÜC\«CÖ×#ßCà¥CÖ{TáCšy CÖ…+ãC®çšCÖÃUçCìñ•CÖ¸>æC`�CÖöhçC¸ž‰CÖ…+èCR¸ƒCÖH�èC= |CÖšëC×£pC #%!#)ÿÊ! Ë!€êCpC@Ë!RØçCR¸{C@Ë!�bçC{´ƒC@Ë!¸žæC…‰C@Ë!ŽåCöH�C@Ë!š™æC�¢•C@Ë!…âC)œšC@Ë!\�àC�" C@Ë!¤PÞCŽ¥C@Ë!…ËÛCRتC@Ë!ö(ÛC@±C@Ë!îÕCµC@Ë!)œÒC{Ô¹C@Ë!= ÏC)|¾C@Ë!á:ËCìñÂC@Ë! ÷ÈC ÷ÈC@Ë!ìñÂCá:ËC@Ë!)|¾C= ÏC@Ë!{Ô¹C)œÒC@Ë!µCîÕC@Ë!@±Cö(ÛC@Ë!RتC…ËÛC@Ë!Ž¥C¤PÞC@Ë!�" C\�àC@Ë!)œšC…âC@Ë!�¢•Cš™æC@Ë!öH�CŽåC@Ë!…‰C¸žæC@Ë!{´ƒC�bçC@Ë!R¸{CRØçC@Ë!pC€êC@Ë!®GdCRØçC@Ë! —XC�bçC@Ë!ÃõLC¸žæC@Ë!nACŽåC@Ë!áº4Cš™æC@Ë!®Ç*C…âC@Ë!áºC\�àC@Ë!×ãC¤PÞC@Ë!\O C…ËÛC@Ë!ûBö(ÛC@Ë!ìBîÕC@Ë!®ØB)œÒC@Ë!\ÆB= ÏC@Ë!R8´Bá:ËC@Ë!×#œB ÷ÈC@Ë!{“BìñÂC@Ë! ׃B)|¾C@Ë!¸kB{Ô¹C@Ë!\�PBµC@Ë!R¸&B@±C@Ë!×£!BRتC@Ë!áz BŽ¥C@Ë!= ÷A�" C@Ë!®×A)œšC@Ë!ff–A�¢•C@Ë!¸§AöH�C@Ë!{–A…‰C@Ë! ׉A{´ƒC@Ë!áz‚AR¸{C@Ë!0ApC@Ë!áz‚A®GdC@Ë! ׉A —XC@Ë!{–AÃõLC@Ë!¸§AnAC@Ë!ff–Aáº4C@Ë!®×A®Ç*C@Ë!= ÷AáºC@Ë!áz B×ãC@Ë!×£!B\O C@Ë!R¸&BûB@Ë!\�PBìB@Ë!¸kB®ØB@Ë! ׃B\ÆB@Ë!{“BR8´B@Ë!×#œB×#œB@Ë!R8´B{“B@Ë!\ÆB ׃B@Ë!®ØB¸kB@Ë!ìB\�PB@Ë!ûBR¸&B@Ë!\O C×£!B@Ë!×ãCáz B@Ë!áºC= ÷A@Ë!®Ç*C®×A@Ë!áº4Cff–A@Ë!nAC¸§A@Ë!ÃõLC{–A@Ë! —XC ׉A@Ë!®GdCáz‚A@Ë!pC0A@Ë!R¸{Cáz‚A@Ë!{´ƒC ׉A@Ë!…‰C{–A@Ë!öH�C¸§A@Ë!�¢•Cff–A@Ë!)œšC®×A@Ë!�" C= ÷A@Ë!Ž¥Cáz B@Ë!RتC×£!B@Ë!@±CR¸&B@Ë!µC\�PB@Ë!{Ô¹C¸kB@Ë!)|¾C ׃B@Ë!ìñÂC{“B@Ë! ÷ÈC×#œB@Ë!á:ËCR8´B@Ë!= ÏC\ÆB@Ë!)œÒC®ØB@Ë!îÕCìB@Ë!ö(ÛCûB@Ë!…ËÛC\O C@Ë!¤PÞC×ãC@Ë!\�àCáºC@Ë!…âC®Ç*C@Ë!š™æCáº4C@Ë!ŽåCnAC@Ë!¸žæCÃõLC@Ë!�bçC —XC@Ë!RØçC®GdC@¡#%µÖæÿ &)03:=DGNQX[belovy€ƒŠ�”—ž¡¨«²µ¼�Æ ‹/ÍÌ @01œ/ ?01×Þ»êñÎý„á�—ô£ª‡¶‰öýÎÜ/ ?01ÂÉÐ×Þåì󊑘Ÿ¦­´»ÂÉÐ׌ÏÚõÖ³âÃÕÊ!7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=• /FÒCÒCîìÇ Confession¤åæçèéêëìñò RCÒC RÃÒÆ SC€ÄC™î?‰’pA—÷%!#)ÿ‡�ŒN O N A B S O L V O 8B€ÃC PB€ÎC \B€ÃC tB€ÎC€B€ÃCŒB€ÎC’B€ÃCžB€ÎC¤B€ÃC°B€ÎC¶B€ÃCÂB€ÎCÈB€ÃCÔB€ÎCÚB€ÃCæB€ÎC!ìB€ÃC!øB€ÎC$þB€ÃC$C€ÎC'C€ÃC'C€ÎC*C€ÃC*C€ÎC-C€ÃC- C€ÎC0#C€ÃC0)C€ÎC3,C€ÃC32C€ÎC65C€ÃC6;C€ÎC9>C€ÃC9DC€ÎC<GC€ÃC<MC€ÎC?PC€ÃC?VC€ÎCBYC€ÃCB_C€ÎCEbC€ÃCEhC€ÎCHkC€ÃCHqC€ÎCKtC€ÃCKzC€ÎCN}C€ÃCN€�C€ÎCQƒC€ÃCQ†C€ÎCT€‡C€ÃCT€ŠC€ÎCWŒC€ÃCW�C€ÎCZ€�C€ÃCZ€“C€ÎC]•C€ÃC]˜C€ÎC`€™C€ÃC`€œC€ÎCcžC€ÃCc¡C€ÎCf€¢C€ÃCf€¥C€ÎCi§C€ÃCiªC€ÎCl€«C€ÃCl€®C€ÎCo°C€ÃCo³C€ÎCr€´C€ÃCr€·C€ÎCu¹C€ÃCu¼C€ÎCx€½C€ÃCx€ÀC€ÎCø%!#)ÿ|€ }= B ÂC}…ë7BöHÂC}q=SBHAÂC}R¸oBq]ÂC}.†BìQÂC}3³“Bš9ÂC}¢BR8ÂC}ìѯBšyÂC}ff¾BÃuÂC} ×ËB¤PÂC}R¸ÙBÍLÂC}.èB\oÂC}ö¨õB®GÂC}šCHaÂC}R8 C WÂC}CöHÂC}CeÂC}{C…kÂC}ö(%C)\ÂC} ,C®‡ÂC}…ë2CffÂC}f&:CÃUÂC}…+ACq}ÂC}áúGC{TÂC}.OC®gÂC} VC¸^ÂC}öè\C{TÂC}¸ÞcCÃuÂC}kC3SÂC}qýqCìQÂC}…ëxCR8ÂC}€CNÂC} —ƒCÃUÂC} ‡C�bÂC}=ŠŠC 7ÂC}qý�CHaÂC}q}‘C3SÂC}qý”C\/ÂC}3“˜C×#ÂC}šù›C…KÂC}šyŸC.ÂC}×ã¢C)<ÂC}q�¦CNÂC}áªCf&ÂC}öˆ­C3SÂC}á±CìÂC}Õ´CÂC}å·CöHÂC}R˜»C=*ÂC}Õ¾CÂC}`¿CášÅC}=ŠÀCR¸ÉC}¸^ÁC®§ÍC} wÂC�BÑC}áš¿CÃõÐC}Há»C3ÓÐC} W¸C¸ÞÐC}Rø´C¤ÐÐC}q]±C3ÓÐC}¤Ð­C®çÐC}šYªCìñÐC}å¦C¸¾ÐC}öH£CHÁÐC}ΟC×ÃÐC}¤PœC=êÐC}ìјC¤ÐÐC}E•C ×ÐC}ìÑ‘CqÝÐC}Í,ŽCÃÕÐC}…ËŠCáÚÐC}öH‡C¥ÐC}®§ƒC ×ÐC}€CöÈÐC}.yC ·ÐC}H!rCÃÕÐC}kCf¦ÐC}EdC\ÏÐC}Ã5]CR¸ÐC}= VC�¢ÐC}ìOCq½ÐC}H!HC¤°ÐC}î@CášÐC}…«9Cš¹ÐC}3³2C=ªÐC}áú+C®ÐC}=Š$CáºÐC}®C×£ÐC}3sC —ÐC}{ÔC¤°ÐC}®Cq�ÐC} WCšyÐC}š™ôB×£ÐC}×#çBH�ÐC}¤pØB3³ÐC}q=ËB¥ÐC}š™¼Bq�ÐC}ìÑ®B3³ÐC}® B…ËÐC}q½’B3“ÐC}{”„B¸žÐC}= mB¥ÐC}ÍÌPB)œÐC}ö(5B®§ÐC}ìQB�¢ÐC}…ëBÃÑC}¤p B®ÍC}q=B�ÂÉC}ÃõB¸žÅC}š™!B¤°ÁC}ffB\OÁC}…ë BEÅC}q=Bq]ÉC}¸ûAÍLÍC}ÍÌîA�âÑC}¤pB¤PÒC}{5Bì1ÒC}ÍÌPBnÒC}33mB¤0ÒC}…„B)<ÒC}{”’B¸^ÒC}š™ Bq]ÒC}áú®B wÒC}{”¼BR8ÒC}šËBŽÒC}¸žØB�bÒC}R8çB WÒC}{”ôB…KÒC})\CÍlÒC})œC×CÒC}ÍÌC…ÒC}ÃuCffÒC}f¦C=ŠÒC}®‡$C WÒC}¤ð+C�‚ÒC}R¸2CŽÒC}q½9C®gÒC}Rø@CRXÒC})HC=JÒC}{OC3SÒC}\VCÍLÒC}.]CfFÒC}®GdCHAÒC}RøjC=JÒC}šrC`ÒC}¤0yCq]ÒC}f€C×cÒC}®ƒCì1ÒC}×C‡CfFÒC}öÈŠCáZÒC}ì1ŽC…+ÒC}ΑCRÒC}×C•C\OÒC}{Ô˜Cá:ÒC}ÃUœCH!ÒC}ìÑŸCöÒC}fF£C�"ÒC}�â¦C®'ÒC} WªCÍ ÒC}3Ó­CqÒC}Ha±CöÒC}3ó´C3ÒC}šY¸CÃ5ÒC}¸Þ»C ÷ÑC}¤�¿Cq=ÒC}¥ÃC\ïÑC}ÃuÂC�bÍC}ö¨ÁC3sÉC} —ÀC=JÅC}{t¿C®ÁC}{”»C3ÓÀC}=ê·C…ëÀC}áš´CáºÀC}ì±CîÀC}…‹­CHáÀC}áªC�ÂÀC} —¦C=êÀC}î¢CÍìÀC}ázŸC�¢ÀC} ÷›CìÑÀC} —˜C)¼ÀC}šù”C×ÃÀC}Rx‘C\¯ÀC}�ŽC¸¾ÀC}®‡ŠC�¢ÀC}¤‡CÃÕÀC}R˜ƒC ·ÀC}ö€CšÙÀC}îxC=ªÀC}�rCÍÌÀC}kCRxÀC}ÍÌcCR˜ÀC}fæ\Cq½ÀC}ìVC3³ÀC}¤0OCHÁÀC}HC=ªÀC}á:ACÕÀC}33:C wÀC}{Ô2C¸~ÀC}š,CÕÀC}H!%C)|ÀC}®C=ÊÀC} Cf¦ÀC}®C —ÀC}…+ Cf¦ÀC})C3³ÀC}×£õB=ªÀC}.èB3³ÀC}q½ÙB×£ÀC}�ÂËBÅÀC}Ha¾B\¯ÀC}Ãõ¯BͬÀC}ö(¢B®ÀC}3³“Bš™ÀC}{†B)œÀC}…oBö¨ÀC}®GSBqÝÀC}338Bì±ÀC}®GBì±ÀCù%!#)ÿÙ ÚB€ÁC@Ú¿C€ÁC@ÚÃC€ÑC@ÚøA€ÑC@ú%~¡¸ÿà€ áC{4—CánC¤P—CᮇC…—Cá3s%C…«—Cá×ã,C×£—Cá×#4C=Š—Cáö(;Cö¨—CáHaBC¤�—Cáq}IC׃—CášÙPCöh—Cá ×WC\�—Cá)_C…—Cáq}fCšy—CáÍŒmC€—Cáö¨tC —CáÃõ{Cš™—CáH��C…‹—Cá%…C ·—CáöèˆC…«—CáÍLŒC{T—Cá¸þ�CÍ,—CáH�C3Ó–Cá=JŒC¸~–CáåˆC w–Cá=*…C…K–Cá�‚�C)\–Cáî{CáZ–Cáö¨tCff–CáÍŒmC¸~–CáázfCÕ–Cáš_C)œ–CášÙWCŽ–CášÙPC¥–Cá€ICÕ–Cá×cBC`–Cá…+;C�b–Cáö(4CRX–CáHá,C…K–CáÃu%C×C–CáÍŒC{T–CáffCq}–CáC ×–Cû%µÖæÿ�€ Žšù…CHáTCŽ ·…C¸\CŽ€…CîbCŽáz…CH!jCŽ3s…CáúpCŽ W…C¤0xCŽ)|…C\OCŽ®§…C{4ƒCŽ×£…CẆCŽ�¢…C×#ŠCŽf†…C®�CŽöˆ…CN‘CŽÍŒ…Cõ”Cޏ~…CÍL˜Cޏž…CÍì›CŽH�…CÍLŸCŽff…C×ã¢CŽH�…C W¦Cޏ~…Cìñ©CŽq]…CRX­Cޏ^…C¸Þ°CŽŽ…C�‚´CŽ)Ü…C¸CŽ×#†C¸CŽ W†CH�´CŽf††CqݰCŽ)|†C)\­CŽ쑆CRø©CŽ®§†CìQ¦CŽn†Cà¢CŽìq†C\OŸCŽff†C…ë›CŽq]†C=J˜CŽ\O†Cõ”CŽq]†CN‘CŽq]†C\¯�CŽHa†Cf&ŠCޤp†Cq½†CŽ€†C¤0ƒCŽ®g†CECޏ~†CÃ5xCŽ3“†CqCŽšy†CH!jCŽÍŒ†C3óbCŽHa†CH!\CŽR8†CHáTCü%µÖæÿ¾€ ¿=ÊzC33UC¿@zCöè[C¿ÀyC®GcC¿ÀyCö(jC¿�zCšYqC¿ÃõyC…+xC¿áúyC{TC¿×ãyCq=ƒC¿šzC…«†C¿EzC@ŠC¿ÍLzCÀ�C¿q=zCá:‘C¿€zC=ª”C¿R8zCÃU˜C¿¸zCHá›C¿q=zC…kŸC¿3óyCìñ¢C¿{zCq}¦C¿ zC=Ê©C¿ìÑyC\O­C¿{ÔyCöè°C¿ö(zC¤�´C¿áºzCH¸C¿E{C¸þ·C¿áz{CŽ´C¿ ×{CÍì°C¿¤0|CÃU­C¿@|C\Ï©C¿)\|Cšy¦C¿qý{C¤ð¢C¿)|C=jŸC¿f¦{C¸Þ›C¿¤°{CáZ˜C¿fæ{C…«”C¿î{CR8‘C¿3³{CÀ�C¿Há{C@ŠC¿fæ{Cö¨†C¿šÙ{Cq=ƒC¿Ãõ{C WC¿fæ{C¤0xC¿¤0|CšYqC¿f&|C¸jC¿áú{C®GcC¿…«{C¤ð[C¿öh{CÃ5UCý%µÖæÿï€ ð —iC®UCðáziC×ã[Cð ×hC¤ðbCð3³hC®jCð{ÔhCÍ qCðRøhC@xCðîhC¤0CðHáhCRƒCð�iCH¡†CðÃõhC)<ŠCð WiC{Ô�CðRxiCR8‘CðRxiCẔCðffiCöH˜Cðá:iC×ã›Cð…ëhC=JŸCð ×hCöÈ¢Cð…«hCRx¦Cð)ÜhCÃÕ©Cð3óhCšy­Cð3óhCå°Cð×ciCÍŒ´Cð�ÂiC¸þ·Cðq=jCH¸CðöèjC…‹´CðRøjCå°CðšYkCáz­CðH!kCΩCð¤ðjC{t¦CðáºjC=Ê¢CðfæjC\OŸCðfæjCöè›CðkC=J˜Cðq½jCš¹”CðõjCR8‘CðfæjC¤Ð�Cð×£jCR8ŠCðq½jCH¡†CðÀjCšƒCð�kCR8CðÍ kCq=xCðîjCqCðkC®jCðHájCáúbCð=ÊjC×ã[CðšjCUCþ%µÖæÿ € ¡ìÑXCfæTC¡{XCá:\C¡öèWC…ëbC¡…ëWCá:jC¡3óWCf&qC¡RøWC)\xC¡XC\OC¡¤ðWCá:ƒC¡3óWC)œ†C¡�BXC 7ŠC¡×cXC\Ï�C¡¸^XCöH‘C¡…+XCÀ”C¡ö(XCš9˜C¡= XC)¼›C¡…+XC×CŸC¡¸ÞWCRø¢C¡)XCìQ¦C¡f¦WCHªC¡f&XC�‚­C¡…ëWCRø°C¡@XC®g´C¡3³XC¸C¡ÍLYC¸C¡®ÇYCff´C¡×ãYCáú°C¡ö(ZCH�­C¡�ZC�ªC¡{TZC{T¦C¡\ZCRø¢C¡�BZC×CŸC¡{ÔYCR¸›C¡{ÔYCR8˜C¡…YC×ÔC¡Í ZCN‘C¡áúYC\Ï�C¡®ZCì1ŠC¡ÍÌYC —†C¡=ÊYCq=ƒC¡�ZC WC¡ö(ZCHaxC¡ÍLZCö(qC¡ìQZC33jC¡îYC¸ÞbC¡q}YC@\C¡×cYC…ëTCÿ%µÖæÿÑ€ Ò)ÜGCfæTCÒÍ GC{Ô[CÒîFCRøbCÒ{ÔFCH!jCÒqýFCìQqCÒÃ5GC…kxCÒ…ëFCìCÒ GC3ƒCÒ{GC\¯†CÒšYGC…KŠCÒšYGC®Ç�CÒ…kGC=J‘CÒ¤0GC¤°”CÒ.GC¸>˜CÒ\OGCΛCÒ�GCffŸCÒ{ÔFCfÆ¢CÒ.GC3s¦CÒ�GCáú©CÒìÑFC¸~­CÒìÑFCfæ°CÒá:GC`´CÒáºGC¸CÒEHC¸CÒ�‚HC¸^´CÒf&ICöè°CÒ¤0IC�‚­CÒq=ICqý©CÒö(ICÍl¦CÒ�ÂHC×âCÒ®IC…kŸCÒRøHCÍÌ›CÒR¸HCá:˜CÒ€HC3³”CÒ¸ÞHCÍL‘CÒ3³HC®Ç�CÒ…ëHC…KŠCÒ)ÜHCͬ†CÒ)ÜHC{ƒCÒ33IC)CÒR8IC…kxCÒÃ5IC®GqCÒ)IC¸jCÒšIC¤ðbCÒ —HCšÙ[CÒnHC…ëTC€%µÖæÿ‚€ ƒ…6C¸UCƒ336C…ë[Cƒ3ó5C=JcCƒÀ5C¸jCƒ3³5CHaqCƒR¸5Cf&xCƒ×ã5Cá:Cƒ{Ô5C×#ƒCƒ{6Cͬ†Cƒ3ó5C¸ŠCƒH!6C®�CƒHa6C¸>‘CƒÍ 6Cà”Cƒ¤06C 7˜Cƒöè5C®Ç›Cƒ¤06C×CŸCƒ6Cìñ¢Cƒ6CÃu¦CƒHá5Cìñ©CƒH¡5C¤p­Cƒõ5C…ë°Cƒ€6C…´Cƒ¤°6C¸þ·Cƒ\O7CH¸Cƒ×ã7C׃´Cƒ3ó7C×ã°Cƒ�8Cìq­Cƒ×ã7C ÷©Cƒ×#8CRx¦Cƒ{8C3ó¢CƒÍ 8C@ŸCƒõ7C®Ç›CƒÃõ7C 7˜Cƒ=Š7Cà”Cƒõ7CHA‘Cƒ)Ü7C=ª�Cƒ¸ž7C¸ŠCƒHá7Cͬ†Cƒ¸Þ7C�"ƒCƒ�8CR8Cƒ¸Þ7C×#xCƒ)8CHaqCƒ ×7C¸jCƒšÙ7C\OcCƒ¸ž7Cöè[Cƒ 7C)UC�%µÖæÿ³€ ´ÍŒ%C.UC´ìQ%C\C´fæ$C…+cC´¤ð$C@jC´š™$CìqC´3³$C xC´ÍÌ$CEC´á:%C�"ƒC´…+%CᚆC´\%C…+ŠC´×#%CÅ�C´®%CN‘C´�B%Cì±”C´š%C)\˜C´š%C×ÛC´¤ð$CìQŸC´ìÑ$CÃõ¢C´)%C€¦C´Há$C3ó©C´…«$C=j­C´�%C�±C´Ãu%C¸~´C´õ%C¸þ·C´=J&CH¸C´Ãõ&C€´C´33'C)ü°C´š'Cff­C´î&C ÷©C´š'Cq}¦C´q½&Cìñ¢C´�Â&CÃUŸC´áú&CÅ›C´®&C)\˜C´=Ê&Cì±”C´¤°&CÍL‘C´À&CfÆ�C´ ×&CÍ,ŠC´fæ&Cq�†C´'C¸ƒC´×ã&Cq=C´Í 'C{xC´Rø&C qC´\'CEjC´¸Þ&C…+cC´…«&C�\C´f&&C…+UC‚%µÖæÿä€ åq½CÅTCå= C¸\Cåq½CáúbCå=ÊCEjCå…ëC\OqCå®CÍLxCå×ãCHaCå�C�BƒCåÍ Cö¨†Cåq=CÃ5ŠCå®C=Ê�Cåq=Cö(‘CåR8CqÝ”CåÃ5C×C˜CåšC)Ü›CåÃõCfFŸCå3óC¤Ð¢CåÅCÍL¦Cå3óC)ü©Cå¸ÞCHa­Cå¸ÞCHá°Cå¤0C —´Cå3³C¸CåÍLC¸Cå×£CÕ´CåCà°Cå×ãCe­CåìQCáú©Cå¸ÞC=J¦Cå)CìÑ¢CåR¸CEŸCåÍÌCqÝ›CåÀCE˜Cå¤ðCqÝ”CåõCf&‘CåáºCÍÌ�CåqýCÃ5ŠCå=ÊCf¦†Cå)ÜC�BƒCåöèC)\CåHáCìQxCå.C{TqCå®Cq=jCåáúCÃõbCå —C×#\CåšYC=ÊTCƒ%µÖæÿ•–2C›C–3C¨CÀ@–-C€²C•š9C›Cš:C¨CÀ@š6C€²C•ž@C›CžAC¨CÀ@ž?C€²C•¢GC›C¢HC¨CÀ@¢HC€²C•€¦NC›C¦OC¨CÀ@¦QC€²C•€ªUC›CªVC¨CÀ@ªZC€²C•€®\C›C®]C¨CÀ@®cC€²C•€²cC›C²dC¨CÀ@²lC€²C•€¶jC›C¶kC¨CÀ@¶uC€²C„%!#)ÿ»€ ¼€YCfƃC¼…_Cš9ˆC¼áº_Cf&ˆC¼3³YCõƒC…%!#)ÿ€ à —RC„CÃ�ÂXCš™ˆCÃqýXCf†ˆCÃ{ÔRC=êƒC†%!#)ÿÉ€ Ê…ëKC{”„CÊRCšùˆCÊá:RCfæˆCÊö(LC¸~„C‡%!#)ÿЀ Ñ)ECfæ„CÑ�BKCáZ‰CÑq}KCE‰CÑìQEC3Ó„Cˆ%!#)ÿ×€ ØECÍ,‡CØîGCfæ‡CØf&LCq�ˆCØqýPCõˆCØ3óTCR8ˆCØ…kYC{t‡CØHa]Cq}†CØì`CÕ…CØî_C=j…CØf¦\C ·…CØ{ÔXCöȆCØ\�TCR˜‡CØ×ãPC ˆCØ3sLC=ê‡CØ�‚HC‡CØ)ECqý†C‰%5<�ÿê€ ëî\CîrCëáºbCì|Cë¤ðbCî{Cë)]C\ÏrCŠ%!#)ÿñ€ ò WXC®sCò@^C\|Cò…k^C¤ð{Cò…XC…ërC‹%!#)ÿø€ ùfæSCsCùq½YC\|Cù…ëYC¤ð{CùšTC×ãrCŒ%!#)ÿÿ€ €{OCšsC€á:UCì|C€¤pUCî{C€@OCqýrC�%!#)ÿ†€ ‡×ãJC)ÜrC‡ÀPC\|C‡…ëPC¤ð{C‡{KCq½rCŽ%!#)ÿ�€ ŽH!FC sCŽ@LC\|CŽ…kLC¤ð{CŽ\OFCRørC�%!#)ÿ”€ •)œAC®sC•ÀGC\|C•îGC¤ð{C•ìÑAC×ãrC�%!#)ÿ›€ œÍŒBC…+wCœ�‚FCšxCœ33LC@xCœ ×QC\OxCœ¤0VCxCœ ×ZC¸xCœ_CHáwCœ bC.wCœìbCìÑvCœ…ë^C\�vCœ\ÏZC ×vCœf&VCöèvCœìÑQC)\wCœq=LCqývCœš™FC®ÇvCœ —BC ×vC‘%5<�ÿ®€ ¯á:ACìwC¯{”CCqýxC¯ —GC{T{C¯fæKC\�|C¯×ãOCR8}C¯áúSC W}C¯�XCì‘|C¯H!\CR8{C¯=J`CìÑxC¯\ÏbC)wC¯¤°bC×ãvC¯\Ï_C3ówC¯R¸[C{TzC¯ÅWCáº{C¯…ëSC¤°|C¯ÃõOCáz|C¯{LC\Ï{C¯ÃõGCázzC¯= DCq=xC¯)\AC¸ÞvC’%!#)ÿÅ€ Æ…AC3óvCÆ\ÏCCHauCÆìÑFC€rCÆHaJC¤ppCÆšYNCö(oCÆšÙRC3ónCÆÍ WCÀoCÆ W[CÃõqCƤ0_C¸^uCƸžbC.wCÆHábCìÑvCƤ0`Cö(tCÆ®G\CÍŒpCÆÃuWC¤pnCÆöèRCöèmCÆ…+NCnCÆ ×IC×#oCƸÞEC33qCÆf¦BCá:tCÆR8AC®vC“%!#)ÿÜ€ Ý×cfC�ÂyCÝ fC…+~CÝ)œeCì1�CÝ33dC%ƒCÝáúbCH!…CÝEaCÍ̆CÝHa_CšˆCÝR8]CÃu‰CÝáºZCš9ŠCÝ XC{‹CÝ=ŠUC3s‹CÝfæRC\�‹CÝq}PC®‹CÝ)ÜMCá‹CÝ@KC¸^ŠCÝ)\HC3“‰CÝ WFCEˆCÝ…DC¸¾†CÝ®BCH!…CÝqý@Cš9ƒCÝÍL@CfF�CÝ\O?CÃ5~CÝ= ?C¤0zCÝE?C€uCÝ=Ê?C3sqCÝ3ó@CöhmCÝRxBCq½iCÝ=JDCázfCÝÃuFCncCÝšYHC\Ï`CÝáúJC)\_CÝ3óMC¤°]CÝ®GPC…ë\CÝ…ëRC{Ô\CÝì‘UC)Ü\CÝ®XC¤ð]CÝH¡ZC…+_CÝáú\C aCÝH!_CšÙcCÝnaC�‚fCÝ\cC×#jCÝ —dCRxmCÝÀeCÍLqCݤðeCšÙuCÝ{”fC×#zCÝ…kiC)ÜyCÝ33iCì‘uCÝõhC{ÔpCÝ®ÇgC¸^lCÝö(fCõhCÝ®GdC)ÜdCÝ@bCRxaCÝš™_CšY^Cݤp\CE\CÝÍŒYCš™ZCÝìQVCázYCݤðRC)YCÝöhOC¸^YCÝf¦LC[CÝ®GICRx\CÝ�‚FCìÑ^CÝîCC\�aCÝÅACeCÝH!@C®hCÝÍŒ>C¸žlCÝ=Š=CqCݸÞCÕƒCÝá:@C ·…CÝ)BC3s‡CÝH!DCö‰CÝ€FC쑊CÝ=ŠIC×ËCÝ�‚LC¤�ŒCÝHáOC%�CÝîRC…K�CÝö(VC{T�CÝ3³YC…ËŒCÝìÑ\C®Ç‹CÝ=Š_CõŠCÝ®GbC{4‰Cݤ0dC…«‡CÝ®GfC¤Ð…CÝ…«gC=ªƒCÝ —hC�‚�CÝšYiC�‚~CÝ×£iCáúyC”%!#)ÿ¹ ºhCzC@º=ÊgCöh~C@ºf&gCq]�C@ºšfC¤pƒC@º…«dCHa…C@º¸ÞbCf&‡C@ºÀ`C ·ˆC@ºšY^C= ŠC@ºR¸[Cš‹C@º…ëXC¸Þ‹C@ºqýUC WŒC@ºSC€ŒC@º�PC WŒC@º{MC¸Þ‹C@º®GJCš‹C@ºf¦GC= ŠC@º@EC ·ˆC@ºH!CCf&‡C@º{TACHa…C@ºfæ?C¤pƒC@ºšÙ>Cq]�C@ºÃ5>Cöh~C@º>CzC@ºÃ5>C —uC@ºšÙ>CEqC@ºfæ?C¸mC@º{TACq=iC@ºH!CC3³eC@º@ECì‘bC@ºf¦GC…ë_C@º®GJCÍÌ]C@º{MC�B\C@º�PCìQ[C@ºSC[C@ºqýUCìQ[C@º…ëXC�B\C@ºR¸[CÍÌ]C@ºšY^C…ë_C@ºÀ`Cì‘bC@º¸ÞbC3³eC@º…«dCq=iC@ºšfC¸mC@ºf&gCEqC@º=ÊgC —uC@•%Íåñÿè€ é…k(C¤�³Céá:)CắCéìÑ)C¸Þ«Cé®*C ¨Cé3ó*C¤0¤Cé —+C=J Cé…+,CRXœCé\Ï,C®˜Cé{”/Cì‘•Cé=Š2C\/’CéR¸5Cq½ŽCéÍŒ8CH!‹Cé¸8Cf¦†CéH¡7CHa‚CéH!7Cáz|CéÅ6Cá:tCéq=9CìnCé\Ï;C@gCé¤0>C¤ð`Cé{DC3s^CéÍ JC33[Cé\ÏOC…XCéqýUCîZCé3³\C.^CéR8cCÀ`Cé@gC WgCéqýjC\nCéšoCHatCéffnC…k|CéîmCöˆ‚CénmC¤°†C餰lC3‹CéÍLpC=ÊŽCé®sC¸’CéÃuwC\o•CéšÙzCẘCé3ózCìQœCé3ó{C×c Cé=J|CR8¤CéE}C\¨C鸞}CáÚ«Cé…~C{Ô¯CéáºCqݲCéH¡yC¸ž²CéšÙqC€²CéR¸jC�‚²CécCH�²Céö¨[C®‡²Cé¸ÞSC¤°²CéELC€²Cé®EC ·²Céf¦=CöȲCé¤06C)ܲCé×c.C\¯²Cé'C{Ô²Cé'C…+´Cé)\.C\O´Cé.6CÍL´Céö¨=C�B´CéìECÍl´Cé\OLCHa´CéHáSCöH´C餰[C¤P´CécCÃU´Cé3³jCn´Cé)ÜqC®g´Céf¦yC�B´CéÃ�C\ï³CéáÚ€C…«¯Cé Cš¹«Cé¸^€C®ç§CéáºC¤Cé\C@ Cé33~C\/œCé�‚}C)\˜CéáºyC¤Ð”Cé�vC�‚‘CéöèrC%ŽCé)\oC¤ÐŠCéÍÌoCׯCéá:pC —‚Cé…kpC=Š|CéšqCîsCé×#mC=ÊlCé×#iCÃ5fCéõdC)_Cé×ã]C\�[Cé3óVCR¸XCé®ÇOCázUCé)ÜHCÅXCéÅBC×£[Céáº;C¤°^CéR89C®GfCé€6CÃõlCéì‘3CõsCéáº3Cf¦|CéHa4C w‚Cé€4C)¼†Céì5C)ÜŠCéö(2Cšù�Cé=J/Cšy‘Cé)\,CÃÕ”Cé®)C¤0˜Cé3s(CÃ5œCé= (Cö( CéHa'CäCé\'Cáú§Cé3³&CẫCéìÑ%CÕ¯Cé3s%C3s³C–%!#)ÿÙ Ú 'C€³C@Ú +C€˜C@Ú 7C‹C@Ú 5CtC@Ú =C`C@Ú PCWC@Ú dC`C@Ú pCtC@Ú nC‹C@Ú |C€˜C@Ú €€C€³C@—%~¡¸ÿç € è Íì›Cáš±Cè šÙŸC3³±Cè ®£Cöh±Cè ¥§CšY±Cè  W«Cq±Cè ìQ¯CÃõ°Cè ¸³C… ±Cè H·C¤�°Cè ¸þ¶C\o°Cè š³C\o°Cè N¯Cq}°Cè ìQ«CHÁ°Cè �¢§C…ë°Cè ö¨£CÃÕ°Cè ¤ÐŸCš±Cè …ë›C{t±C˜%Ncuÿú € û )\cB׃°Cû …ë€Báú°Cû ®ÇŽBšù°Cû Ha�B×#±Cû ff¬B¸^±Cû ¸žºBn±Cû ÍLÉB×ñCû ØB쑱Cû ØBn±Cû ffÉBf&±Cû 3³ºB3ó°Cû Ãu¬Böè°Cû áz�B ·°Cû )ÜŽBÍl°Cû �Bn°Cû ffcB×c°C™%Ncuÿ� € Ž Í œC\� CŽ àŸC¥ CŽ HÁ£CŽ CŽ ¸ž§C{4 CŽ ìq«Cì1 CŽ ¸>¯Cá CŽ á³CH CŽ H·C¤�ŸCŽ ¸þ¶C\oŸCŽ {³CeŸCŽ š9¯C —ŸCŽ \o«CÍÌŸCŽ áš§C®ÇŸCŽ š¹£CáúŸCŽ )ÜŸC) CŽ … œCn Cš%Ncuÿ  € ¡ HácBf¦ŸC¡ )Ü€BfæŸC¡ Ãu�B¤ðŸC¡ �Â�B\ C¡ áú«B\/ C¡ ®ºB3“ C¡ {ÉB¤° C¡ ØBì‘ C¡ ØBn C¡ ×#ÉBì C¡ ®ÇºB¤ C¡ {¬B¤ÐŸC¡  ×�B®§ŸC¡ …�B\oŸC¡ fæ€BšYŸC¡ …ëcB…ŸC›%Ncuÿ³ € ´ Í œCH!ŽC´ ¤ðŸCÃŽC´ ảC3ó�C´ f¦§C®Ç�C´ f†«C�¢�C´ ×C¯C w�C´ {³C®‡�C´ H·C¤�C´ ¸þ¶C\ïŒC´ ¤³C3óŒC´ HA¯CìñŒC´ H�«CÍ,�C´ �¢§C W�C´  ·£C®g�C´ öèŸC=Š�C´ = œCáú�Cœ%NcuÿÆ € Ç ¤pcB®�CÇ q½€B`�CÇ ö(�B\��CÇ ÍÌ�B=ª�CÇ €¬Báº�CÇ \�ºBRØ�CÇ \ÉBšŽCÇ áú×B3ŽCÇ ØBÍì�CÇ .ÉBH��CÇ ×£ºBq]�CÇ =ЬB=J�CÇ  ×�BE�CÇ �B�B= �CÇ  ×€B{ÔŒCÇ ázcB®çŒC�%NcuÿÙ € Ú RœC¸yCÚ qÝŸCq}yCÚ q½£CH!yCÚ ¸~§CÃuxCÚ Ha«CÃuxCÚ  W¯CšYxCÚ )<³C\ÏwCÚ ·CH!wCÚ ·C¸ÞvCÚ {4³Cì‘vCÚ \O¯C¤0wCÚ `«C\�wCÚ áz§C)œwCÚ {´£CqýwCÚ šÙŸC)\xCÚ RœC{ÔxCž%Ncuÿì € í HácB�wCí ÍÌ€B×ãwCí ö¨ŽB×ãwCí = žB WxCí ¤p¬B¸^xCí ¤ðºB�ÂxCí ¤pÉBìQyCí ØB×#yCí ØB)ÜxCí =ŠÉB.xCí = »BÀwCí áz¬BÍŒwCí šžBnwCí �ÂŽB¸ÞvCí fæ€B¤°vCí …ëcBáºvCŸ%Ncuÿÿ € € öè›CÍ VC€ ¤ðŸCEVC€ =Ê£Cf&VC€ �‚§C�ÂUC€ ®‡«C WUC€ �b¯C)UC€ Ã5³CqýTC€ H·C×#TC€ ¸þ¶C)ÜSC€ \/³CõSC€ q]¯C\TC€ �‚«C —TC€ ¸~§C…ëTC€ ®Ç£C)UC€ îŸCÃ5UC€ ®ç›C®ÇUC %Ncuÿ’ € “ )\cBTC“  W€B®UC“ ff�BHáTC“ ¤ð�Bá:UC“ š™¬B)œUC“ {”ºBö(VC“ \�ÉB)\VC“ ØBf&VC“ ØBšÙUC“ ¸žÉB.UC“ ö¨ºB)UC“ ®¬B)ÜTC“ žB€TC“ Ãu�B×ãSC“ …k€BöèSC“ ¤pcBq½SC¡%Ncuÿ¥ € ¦ áú›C{6C¦ {ôŸC3s6C¦ ¥£C¸Þ5C¦ Rx§CHa5C¦ Ãu«CHa5C¦ @¯C…+5C¦ H!³C�Â4C¦ ·Cö(4C¦ ·C ×3C¦ á³C)œ3C¦ š9¯C¤04C¦ {t«C3s4C¦ Ãu§C…4C¦ q�£Cáº4C¦ îŸC335C¦ áú›C\Ï5C¢%Ncuÿ¸ € ¹ )\dBE4C¹ ö(€BR¸4C¹ R¸ŽB�B5C¹ áz�B×c5C¹ ¬B�Â5C¹ ö(»B×ã5C¹ ¸žÉB\O6C¹ áú×Bf&6C¹ ØBšÙ5C¹ R¸ÉBÍ 5C¹ R8»B¸Þ4C¹ \¬B)Ü4C¹ =Š�Bq}4C¹  ׎B×#4C¹ �B€B=Š3C¹ )\dB�4C£%NcuÿË €Ì €©C3CÌ ©CCÀ@Ì ªC€µCË €Ð «C3CÐ €ªCCÀ@Ð €«C€µCË €Ô ®C3CÔ €­CCÀ@Ô €®C€µCË €Ø €¯C3CØ ¯CCÀ@Ø °C€µC¤%!#)ÿÝ € Þ …¬C ÷µCÞ R¸¬C\Ï´CÞ H¡¬Cöh³CÞ À¬C�²CÞ fæ¬Cö(°CÞ {´¬CìQ®CÞ …«¬C3S¬CÞ šy¬C ªCÞ  w¬C¸Þ§CÞ ff¬Cq½¥CÞ ×c¬C�b£CÞ ff¬Cfæ CÞ ÃU¬C¸žžCÞ ì¬C=*œCÞ =*¬C®™CÞ {ô«CRx—CÞ �¬C)<•CÞ =ê«Cö(“CÞ šù«C‘CÞ à«CqÝŽCÞ = ¬CfÆŒCÞ ¤ð«Cf†ŠCÞ ö¬C…ˆCÞ ¸¬CšY†CÞ ¤P¬CH!„CÞ \o¬Cš‚CÞ \o¬CqýCÞ ×£¬Cáº{CÞ  ׬C3³wCÞ ¸Þ¬C¤0sCÞ î¬C WoCÞ ¤0­C…+kCÞ …K­C�‚gCÞ  7­C=JcCÞ ®g­CÍŒ_CÞ =j­CìÑ[CÞ ì‘­C\WCÞ )œ­CšYRCÞ ׃­C33MCÞ q}­Cá:HCÞ €­C)œCCÞ RX­CÍ ?CÞ )\­Cff:CÞ …K­CÃõ5CÞ �"­Cî1CÞ �­C¸^.CÞ Ãõ¬CÃõ*CÞ ẬCH!(CÞ �¢¬C&CÞ q]¬C&CÞ HA¬C¤0(CÞ �b¬Cqý*CÞ %¬C{T.CÞ f¬C\2CÞ \O¬C{6CÞ 3S¬C…k:CÞ áZ¬Cš?CÞ ¤p¬Cö¨CCÞ n¬Cq=HCÞ n¬C�BMCÞ …‹¬C×cRCÞ ¤�¬CWCÞ  w¬Cq½[CÞ =j¬Cáz_CÞ `¬C�BcCÞ e¬C…gCÞ n¬C= kCÞ ×#¬CÃ5oCÞ Ã¬Cf&sCÞ �¬C¸žwCÞ fæ«Cš™{CÞ ͬ«CöèCÞ  «C{‚CÞ 3“«C „CÞ  w«C\O†CÞ \O«CázˆCÞ …+«C…ŠCÞ ×C«C�ÂŒCÞ Ã«CRØŽCÞ ¸«CH‘CÞ «C®'“CÞ «C)<•CÞ qýªC¸~—CÞ  «C ·™CÞ Í,«C¤0œCÞ )<«C…«žCÞ =J«Cöè CÞ ×C«CHa£CÞ @«CÅ¥CÞ \o«C®ç§CÞ {t«C%ªCÞ R¸«C�b¬CÞ fÆ«C¸^®CÞ ®ç«C.°CÞ áÚ«Cqý±CÞ ¸þ«C{t³CÞ ¸>¬C3Ó´CÞ ®G¬C3óµC¥%!#)ÿ €à  C3Cà €ŸCCÀ@à € C€µC €Ç €¡C3CÇ ¡CCÀ@Ç ¢C€µC €Ë €¤C3CË ¤CCÀ@Ë ¥C€µC €Ï ¦C3CÏ €¥CCÀ@Ï €¦C€µC¦%!#)ÿÔ € Õ q=£Cf¶CÕ ¸£Cq½´CÕ �B£Cq}³CÕ {T£C¸Þ±CÕ  W£CH!°CÕ @£Cöh®CÕ �"£C®G¬CÕ ö(£C×#ªCÕ �£C…ë§CÕ Rø¢C)œ¥CÕ \Ï¢C×C£CÕ ¸¾¢Cìñ CÕ ẢC쑞CÕ ¸ž¢CÍ,œCÕ Õ¢CÀ™CÕ šy¢CÃu—CÕ ׃¢C=*•CÕ áz¢Cìñ’CÕ `¢Cî�CÕ \�¢CšÙŽCÕ ®‡¢C=ªŒCÕ 3s¢C ŠCÕ €¢CöhˆCÕ HÁ¢C¸>†CÕ fÆ¢Cq=„CÕ �â¢C)ü�CÕ H£C\ÏCÕ ¤0£CÀ{CÕ )<£C)\wCÕ áZ£CìQsCÕ ®§£C¤poCÕ  —£CH!kCÕ ÍÌ£C×cgCÕ ÍÌ£Cì‘cCÕ qý£C=Ê_CÕ Í ¤C\CÕ 3ó£Cá:WCÕ Rø£C¸RCÕ �"¤C WMCÕ {ô£C…HCÕ =ê£C�ÂCCÕ Íì£C¤ð>CÕ  ·£Cn:CÕ ®£C\O6CÕ ¸¾£Cáú1CÕ  £C�‚.CÕ öh£C\O+CÕ …K£C�B(CÕ �"£Cáú%CÕ qÝ¢C&CÕ Há¢C=J(CÕ fÆ¢C)\+CÕ ®Ç¢Cš™.CÕ Å¢CRø1CÕ ®¢C=J6CÕ õ¢C=Š:CÕ ®ç¢C= ?CÕ ìñ¢CÅCCÕ =ê¢C —HCÕ {£C)\MCÕ Ãõ¢CìRCÕ ®£C�BWCÕ 3£C= \CÕ q£C®_CÕ à¢CRxcCÕ ¸Þ¢C{TgCÕ  ×¢CìkCÕ q½¢CìQoCÕ …‹¢C.sCÕ áz¢CÍLwCÕ áZ¢Cö¨{CÕ )<¢CR¸CÕ Í,¢CÃõ�CÕ Í,¢Cš9„CÕ Í ¢C33†CÕ �â¡C)\ˆCÕ ®§¡C ŠCÕ ¤Ð¡CͬŒCÕ …«¡CÍÌŽCÕ šy¡Cöè�CÕ 3“¡Cáú’CÕ f¦¡C=*•CÕ q�¡C w—CÕ ×£¡CfÆ™CÕ ạC33œCÕ Å¡C3“žCÕ ×£¡C{ô CÕ ®Ç¡C{T£CÕ f¢C®§¥CÕ … ¢Cìñ§CÕ 3¢Cö(ªCÕ š¢C…K¬CÕ ¸¢CÃu®CÕ š9¢C¤0°CÕ …k¢C…ë±CÕ ®§¢C¸~³CÕ \¯¢C×ôCÕ šù¢Cì¶C§%!#)ÿ¹ €º  B3Cº žBCÀ@º ¢B€µC¹ €¾ ¦B3C¾ ¤BCÀ@¾ ¨B€µC¹ € ²B3C °BCÀ@ ´B€µC¹ €Æ ¸B3CÆ ¶BCÀ@Æ ºB€µC¨%!#)ÿË € Ì ö¨¬BÃõµCÌ €¬BÅ´CÌ ìѬB=j³CÌ ®G­BHá±CÌ š­B�"°CÌ Í̬B¤P®CÌ Ãõ¬BöH¬CÌ áz¬B¸ªCÌ Há«B¤¨CÌ ¬BR¸¥CÌ š™«B¤P£CÌ )ܪBסCÌ ×#«B¤�žCÌ \�ªBšœCÌ ö¨©B®Ç™CÌ …©B\�—CÌ ®©B •CÌ 33©Bì“CÌ ®©B‘CÌ ®GªBìñŽCÌ \�©BöÈŒCÌ ¸ªB —ŠCÌ = ªBöhˆCÌ =ŠªBq]†CÌ =Š«B…K„CÌ áz«B®'‚CÌ Há«BÍ €CÌ 33¬Bö¨{CÌ …k­B)œwCÌ {”­B×csCÌ áú­B¸oCÌ \�®B)\kCÌ  ×®B¤0gCÌ €¯BffcCÌ �B¯BH¡_CÌ )ܯB×#\CÌ ìѯB)\WCÌ R¸°BHaRCÌ ÍL°BÃ5MCÌ  W°B@HCÌ ÍL¯B\�CCÌ fæ¯B\?CÌ \�¯B\O:CÌ R¸®B 6CÌ  ×®BE2CÌ R8®B…k.CÌ {”­B¤ð*CÌ )ܬB)\(CÌ €¬B&CÌ €«B&CÌ .«B¸^(CÌ  תB+CÌ Í̪Báz.CÌ ázªB=J2CÌ \�ªB¤06CÌ  W«B¤p:CÌ š™«B= ?CÌ ìQ«B¸žCCÌ ìQ¬B)\HCÌ Ha¬Bá:MCÌ q=¬BšYRCÌ .¬B\OWCÌ = ¬B{\CÌ ®«B —_CÌ q½«BšYcCÌ R8«B¸gCÌ €«B=JkCÌ …ªB= oCÌ )ܪB)\sCÌ ö(ªBázwCÌ =Š©B\�{CÌ = ©B×€CÌ š™¨B�"‚CÌ áz¨BHA„CÌ �§BN†CÌ R8§BHaˆCÌ ®Ç¦B\�ŠCÌ ¤p¦B=ÊŒCÌ ìѦB{ôŽCÌ ¸ž¦Báú�CÌ š¦B“CÌ ÍÌ¥BH!•CÌ {¦B¤�—CÌ š¦BìÑ™CÌ q½¦Bö(œCÌ {§B3“žCÌ R¸¦BÍ ¡CÌ �§B¸^£CÌ �§Bš¹¥CÌ ×£§BR¨CÌ ÍL¨B.ªCÌ áz¨BÍL¬CÌ ÍL¨BÃU®CÌ )ܨBš9°CÌ 33ªB=ê±CÌ .ªBöh³CÌ 3³ªBÍÌ´CÌ ®«BqýµC©%!#)ÿ°€±xB3C±tBCÀ@±|B€µC°€µ‚B3Cµ€BCÀ@µ„B€µC°€¹ŽB3C¹ŒBCÀ@¹�B€µC°€½”B3C½’BCÀ@½–B€µCª%!#)ÿ€ ÃHaˆB®çµCÃázˆB3Ó´CîLjB\o³CÃq=‰BH²CÃ�B‰B¤0°Cà W‰B)\®CÃÃõˆBÍL¬CÃ×#ˆB�BªCÃìQˆB{ô§CÃfæ‡Bì‘¥CÃö¨‡B)<£CÃ.‡Bìñ CÚ™†B)œžCÃ\‡B…+œCÃR8†B®™CÃáú…Bì‘—CÃ…k…B×C•CÃ…k…B3ó’Cäp…B3ó�Cà W…BRøŽCÆBáÚŒCÃ)\†Bö¨ŠCÃ)\†B…ˆCÀ†BHA†CÃÃõ†B 7„CÃ.‡B‚CÃfæ‡B=ÊCÃ= ‰BšÙ{CÃq½ˆB…wCÃ= ŠBq}sCÃÃuŠB=JoCÃ33ŠBö(kCÃ�ŠB\OgCÃ…ë‹BR¸cCÀ‹BÍÌ_CÃ{”‹BìÑ[CîNjB®WCÃÃõ‹BšRCÃ33ŒB…+MCÃ33ŒB€HCÀ‹Bš™CCøž‹B®Ç>CÃìQ‹Böh:CÃö¨ŠBR86CÃffŠB�2CÃö¨‰BÃ5.CÃ{”‰B�B+CÃ�ˆB…(CÚ™ˆB�&CÃff‡Bqý%CÇB=Š(CÃHá†B=J+CÚ™†Bq=.Cøž†Bì2CÃ\�†BìQ6CÃÃu‡B�‚:CÃìQ‡BÍÌ>CÃ{”‡Bö¨CCÃìчBÍŒHCÃq½‡B.MCÃR8ˆBšRCÃ.ˆBqýVCÃ�‡BÍÌ[CøˆB{Ô_CÃáú‡B×£cCÚ™‡B…+gCÃ.‡B)kCÃÃõ†B�BoCÃR¸†B WsCÃR¸…BnwCÃ�Â…B�Â{CÃfæ„Bf¦CÃ{”„B‚CÃfæƒB…+„Cà WƒB)<†CîƒB�‚ˆCÃ{ƒBH¡ŠCÃ�‚BìÑŒCÃ{”‚B\ïŽCÃÍÌ�Bî�Cî�BÃõ’CÃ.‚B…K•CÃ\�‚Báš—CÃ�‚Bõ™CÃR¸‚B…+œCÃìQ‚Bq�žCÃ×£‚BסCøžƒB…K£CÃ\„Bš™¥CÃ33„B3ó§CÃ{”ƒB=JªCäp„Be¬CÃ= …Böh®CÃ{”…B{4°CÃ……B²CÃÃu†B3s³CÃ)܆BÃÕ´CÃ)\‡B=êµC«%!#)ÿ§€¨nCÊB¨pCR¸ÊBÀ@¨xCÊB§€¬@jCæB¬ÍÌkC¸žèBÀ@¬öèrCðB§€°`C€úB°¤°`CìQþBÀ@°eCöèC§€´RCC´×£QCCÀ@´RC C§€¸DC€úB¸¤°BCš™ýBÀ@¸?CöèC§€¼À9CæB¼ ×7CHaçBÀ@¼ 1CðB§€À6CÊBÀ4C®GÉBÀ@À,CÊB§€ÄÀ9C®BÄ338CHa«BÀ@Ä 1C¤B§€ÈDC€™BÈ\OCC®•BÀ@È?C.ˆB§€ÌRC’BÌ)\RCŽBÀ@ÌRC|B§€Ð`C€™BÐ\OaCff–BÀ@ÐeC.ˆB§€Ô@jC®BÔö(lC¸ž¬BÀ@ÔöèrC¤B¬%5<�ÿÙ€ Ú¤ð]CÃõÃBÚRøcC×#ÖBÚ…+dC)ÜÕBÚö(^C®ÃB­%!#)ÿà€ á…+YCffÄBáÍ _Cö(ÖBá®G_C ×ÕBá)\YCö(ÄB®%!#)ÿç€ è{TC¤ðÃBèö(ZC×#ÖBè¸^ZC)ÜÕBè®GTC®ÃB¯%!#)ÿî€ ïH!OCR¸ÃBï@UC×#ÖBïázUC)ÜÕBï{TOCÃuÃB°%!#)ÿõ€ öf&JCáúÃBöšYPCö(ÖBöì‘PC ×ÕBöšYJC3³ÃB±%!#)ÿü€ ýRxECffÄBý3sKCö(ÖBý…«KC ×ÕBý…«EC¸ÄB²%!#)ÿƒ€ „€@C¤pÄB„ÍŒFC×#ÖB„ÅFC)ÜÕB„R¸@C×#ÄB³%!#)ÿŠ€ ‹šACÍÌÌB‹)DCÎB‹öhHCÎB‹nMCÍLÎB‹ìRC¤pÎB‹×ãVC�BÎB‹Rø[C WÎB‹á:`C…ÍB‹…cC…kÌB‹…cC{”ËB‹H!`C…kÊB‹×ã[C=ŠËB‹¸ÞVCR¸ËB‹\RCR8ÌB‹ázMC…ëËB‹RxHC\ËB‹¸DC®ÊB‹ ACáúËB´%5<�ÿŸ€  ×£?CHaÌB nBC= ÐB 3óFCHaÕB ÃuKC WØB  —OC=ŠÙB =JTCÚB š™XC×#ØB .]C= ÕB š™aC…ëÏB \OdCR8ÌB ¤0dC®ÇËB šaC×#ÎB õ\CÓB {TXC)\ÖB á:TC\�ØB ö¨OC{ØB 3³KC€ÖB HaGC…ÓB …ëBCÍLÎB Å?CHáËBµ%!#)ÿ¶€ ·öè?CÃuÌB·�‚BCq½ÈB·qýECšÂB·ÃuIC¸½B·®ÇMC33»B·áúRC ׺B·ìÑWC=Š»B·H!\C WÁB·\O`CìQÈB· dCffÌB·öhdCš™ËB·š™aC{ÅB·f&]C¤p¾B·=JXCR¸¸B·�SCfæ·B·)œMC)\¸B·…ëHC…kºB·õDCfæ¾B·®GAC)\ÆB·®‡?Cq½ËB¶%!#)ÿÍ€ ÎÃugC…ÉBÎÍ gCázÐB΀fC®ÕBÎ=JeC…kÛBÎì‘cC ×àBÎÃõaC33æBÎRø_C×£êBÎ�‚]C¸žíBÎ[Cö¨ðBÎqýWCÍÌòBΚÙTC WôBÎRCš™ôBÎ�OC33ôBÎ.LCffóBÎfæHCìÑðBÎÃ5FCq½îBÎfæCCR8êBÎ=ŠACáúåBΚ™?CffáBÎÍL>CÍLÜBÎöèC W¸BÎö¨?C¸ž²BÎ3sAC\�­BÎáúCC�B©BÎq=FC ×¥BÎÍLICÍL£BÎÃõKC¸ž BÎ\ÏNC\�ŸBÎöèQC®ÇžBÎ.UC{ BÎÃõWCìÑ BÎ)œZC)Ü£BÎöh]CR¸¦BÎ3ó_C¸žªBÎ×ãaC{®BÎÍ dC3³²BÎ33eC×£¸BÎ…kfC¤ð½Bθ^gC¤ðÃBÎÃugC.ÊBÎ=ŠjCìÑÉBÎEjC{ÃBÎf¦iC¤ð»BÎH¡hCq½µBÎ3ófC= ¯BÎ{”dC\©BÎöhbC¸ž¤BÎHa_C\� BÎHa\CìÑœBÎHáXC…kšBÎ…«UC\�™BήRC¸ž˜BÎq=NC™BÎKC®G›BÎáúGCq½�BÎ3óDC®G¡BÎìBC¤p¤BΚY?CšªBÎH¡=C W°BÎRø;C.¶BÎ3ó:C\�¼BÎì:C×#ÃBÎ…«9C33ÊBÎá::C3³ÐBÎõ:CÍL×BÎáú;CázÞBÎö¨=CfæãBÎ…k?C®éBΚÙACš™îBήDCÃuóBÎÅGC{öBÎR8KC{”ùBÎf¦NCq½úBÎ×ãQC33ûBÎHaUC…kûBÎ×ãXCšùBÎRx\C\�÷BΚ™_C¤ðóBÎ bC{”ïBÎìÑdC®ÇêBÎÅfCR¸äBÎ…hC WÞBÎ WiC…k×BÎöhjC€ÑBΚYjCÍÌÉB·%!#)ÿª «iCÊB@«ÅhC=ŠÐB@«ìhCÃõÖB@«…ëfCšÝB@«šYeC)ÜâB@«HacC¸èB@«\aC�ÂìB@«n^C3³ðB@«ÍŒ[C ×óB@«ázXC×#öB@«EUC=Š÷B@«RCøB@«áºNC=Š÷B@«…KC×#öB@«3sHC ×óB@«ì‘EC3³ðB@«¤ðBC�ÂìB@«¸ž@C¸èB@«f¦>C)ÜâB@«{=CšÝB@«î;CÃõÖB@«á:;C=ŠÐB@«;CÊB@«á:;CÃuÃB@«î;C= ½B@«{=Cfæ¶B@«f¦>C×#±B@«¸ž@CHá«B@«¤ðBCq=§B@«ì‘ECÍL£B@«3sHCö( B@«…KC)Ü�B@«áºNCÃuœB@«RCœB@«EUCÃuœB@«ázXC)Ü�B@«ÍŒ[Cö( B@«n^CÍL£B@«\aCq=§B@«HacCHá«B@«šYeC×#±B@«…ëfCfæ¶B@«ìhC= ½B@«ÅhCÃuÃB@¸%ÍåñÿÙ€ÚÊBüBÚ&C–BÀ@ÚGCDBÙ€ÞØBüBÞ)C–BÀ@Þš™GCDBÙ€âæBüBâ,C–BÀ@â33HCDBÙ€æôBüBæ/C–BÀ@æÍÌHCDBÙ€êCüBê2C–BÀ@êffICDBÙ€îCüBî5C–BÀ@îJCDBÙ€òCüBò8C–BÀ@òš™JCDBÙ€öCüBö;C–BÀ@ö33KCDBÙ€úCüBú>C–BÀ@úÍÌKCDBÙ€þ$CüBþAC–BÀ@þffLCDBÙ€‚+CüB‚DC–BÀ@‚MCDBÙ€†2CüB†GC–BÀ@†š™MCDBÙ€Š9CüBŠJC–BÀ@Š33NCDBÙ€Ž@CüBŽMC–BÀ@ŽÍÌNCDBÙ’eC‚B’€…CÐBÀ@’�CCÙ–kC‚B–€ˆCÐBÀ@–’CCÙšqC‚Bš€‹CÐBÀ@š•CCÙžwC‚Bž€ŽCÐBÀ@ž˜CCÙ¢}C‚B¢€‘CÐBÀ@¢›CCÙ¦€�C‚B¦€”CÐBÀ@¦žCCÙª€„C‚Bª€—CÐBÀ@ª¡CCÙ®€‡C‚B®€šCÐBÀ@®¤CCÙ²€ŠC‚B²€�CÐBÀ@²§CCÙ¶€�C‚B¶€ CÐBÀ@¶ªCCÙº€�C‚Bº€£CÐBÀ@º­CCÙ¾€“C‚B¾€¦CÐBÀ@¾°CC¹%!#)ÿÀ Äö(”B…+CÄÍÌ—Bq½CÄÃõ›BázCÄ{”ŸBÅCÄ�¤B×ãCÄìQ©BÅ CÄ.®Bn CÄ×£³BšYCÄ{”¸B3sCÄHa¾Bö(CÄáúÄBöhCÄffÊB)ÜúBÄ…ÐB…kôBÄ)\×B®GîBÄÃõÝB WèBÄR8åBâBÄ)ÜëBÍLÛBÄ\óBq½ÔBÄ WúB×£ÍBÄ3³Cš™ÇBÄH¡CÃõÀBÄáúCR¸ºBÄ…ë C\�³BĤ°C¸ž­BÄ®ÇCff§BÄnCÍÌ¡BĤpCq½›BÄ@C®Ç•BÄRø"C…k�BÄ®'C¤ðŠBÄ�+C�Â…BÄÅ.C= �BÄöh2CzBÄá:6C�ÂqBÄ…ë9CffkBÄ)Ü=Cq=dBÄ…kAC�Â_BÄ�EC…YBÄ)ÜHC®VBÄ LC¸SBÄìÑOC)\QBÄH!SCRBÄ�BVC¸RBÄÃõYCázSBÄ.]C ×VBÄ{Ô`C\�ZBÄ�BdCö(^BÄhC\�cBÄqýkCìQjBÄ3soCìQrBÄ®GsCR¸zBÄìQwC3³�BÄ×ãzC{†BÄá:CHa‹BÄ)|�CÍL�BÄ×cƒCìÑ•BÄ\O…Cq½›BÄR8‡Cö(¡BÄ ‰C ×§BÄ\‹C3³­BÄ �CìQ´BÄåŽCffºBÄì±�C3³ÀBÄöˆ’CÍLÇBÄ®‡”C€ÎBÄ.–CázÔBĤð—Cö¨ÛBÄqÝ™C…áBÄÃu›C…ëçBÄ3�CR8îBÄHÁžCö(ôBÄ3S C{”úBĤð¡C{TCÄ@£C)ÜCÄŤC=ŠCÄ=*¦C=JCÄ3s§Cq} CÄ×£¨C CÄHªCÀCÄqýªCR¸CÄH!¬Cq=CÄf&­C¤ðCÄ{ô­C¸CÄ… ®CHáCÄ=J­C)œCÄ®G¬CšÙCÄ 7«CÃ5CÄ�BªCH!CÄìñ¨C{T CÄšÙ§C® CÄ®‡¦Cq}CÄ�"¥CÀCÄ�¢£C®CÄ W¢CáúþBĸ¾ CHáøBÄ%ŸC€òBÄ\o�Cö¨ìBÄ)Ü›C®GæBÄ 7šC¤ðßBÄÃU˜CfæÙBÄš™–Cq½ÒBÄìñ”C¸žÌBÄ®ç’Cö¨ÅBÄR‘CHá¾Bĸ>�Cq½¸BÄÍl�C3³²BÄe‹C¬BÄáz‰Cš¦BÄ쑇C)\ŸBÄR˜…Cö(šBÄ¥ƒC¤p”BÄÅ�Cö¨ŽBÄ®C¤ð‰BÄ…k{C)\„BÄõwC�B€BÄf¦sC= xBÄ×ãoC®GoBÄ WlCffgBÄ®GhCÃõ`BÄ…dC…ëZBÄ�aC×£WBĸ^]CÃõSBÄšZCö(PBÄ=JVC)\OBÄf&SC¸OBÄ=ÊOCR¸NBÄ3óKC…ëOBÄ…«HC)\SBÄÀDC¸VBÄ)AC…\BÄ…=C ×`Bĸž9C®hBÄfæ5CoBÄ®2C33wBÄ)\.C33BÄRx*C= „BÄáz&C W‰BÄáz"C�BÄR¸C)\”BĸÞCq=šBÄ\ÏC×# BÄ{C\�¥BÄ�Cfæ«BÄE C²BÄ@C¸¹BÄfæC®G¿BÄHáÿB ×ÅBĤðøB¸ÌBÄ…ñB¸ÓBÄ)\êB�ÂÙBÄÍÌãBÃuàBÄ)\ÜBázæBÄR¸ÕBÃuìBÄ…ëÎB®ÇòBÄq½ÈBÍLùBÄR8ÃBÿBÄHá¼BECÄ×#·BõCÄ.²B —CÄHá¬B® CÄÃõ§Bì CÄR¸£BÍLCÄÍÌžB\OCÄ)\›BšCÄ®G—B¸^CÄÍÌ“BÃõCº%!#)ÿì€ í¤plB)\Cíš™sB�Cí\�{B¤ðCíìQ‚B=JCí3³†B®G Cí{‹Bá: Cíö¨�B×£ Cí=Š”B¤0Cí.šB�ÂCí®ÇŸBÍ Cíš™¤BHaþBí3³ªB®GùBíÃu°B\ôBíö¨¶BîBíáú¼B×#çBí{ÃB33áBí.ÉB�ÂÚBí¸ÐBÍLÔBíÍLÖB�BÍBí=ŠÝBázÇBí3³äB¸ÀBíq=ëB{”¹Bí¤pòB�B²Bí.úB¬Bí\�Cq=¥Bí)CáúžBí×ãC W˜Bín CHá‘Bí¤0C×#ŒBí{ÔC……Bíš™CR¸~BíÍŒCÍÌsBíìQCffiBí×ã!C{^Bí…k%C�ÂSBí…+)Cö(JBí×#-CÃõ@BíR¸0Cff8Bí�‚4C1Bí�8C)BíE;C)\!Bí?C)\Bí€BC®GBíÀEC{Bí…+ICìQBí×£LCHá BíÀOC¸ BíÃõRCÍÌ BíšVCö( Bíš™YCHáBíš™\C= Bí®`C¸BíÃucC®GBí{ÔfCffBí=ŠjCìQ#Bí)ÜmC{*Bí —qC¤p2Bí)\uCš™:BíÃõxC…CBí¸^|C33KBíá€Cq=VBí…ë�Cö(aBíH¡ƒC�ÂkBíf†…C×£wBí¤P‡C W�Bí33‰CÃu‡Bíö(‹C…k�BíRøŒC3³“Bíf¦ŽCššBí3s�C\�¡BíRx’C…k§Bí ”Cq=®BíÃÕ•CµBíͬ—Cö(¼BíRX™C= ÃBíf&›Cš™ÉBí®ÇœC.ÐBí\OžCö¨ÖBí¸ÞŸC�ÂÝBí\¯¡CR¸ãBíH£C¸êBíq�¤CìQðBí)ü¥C)\öBí{”§C¤ðüBíHá¨CÃ5CíöhªCCíì‘«CöhCí¤ð¬C= Cí{®C\O CífF¯Cö( Cíìq°CRxCí×£±C ×Cíšy²CöhCíìq³CRøCí`´C\OCí ´C¤°CíöȳCö(Cí×ã²C\�Cí®'²C¸žCíR±C�Cí{°C¤p Cíå®C¸ž Cí®CìCí{´¬C.CíRx«C�ÂCí…ë©C33þBíq½¨C3³øBíÃ5§C®ÇñBíÀ¥CHáëBíì1¤C\�åBí ·¢C=ŠßBí®¡C×#ÙBí¸~ŸC33ÒBíÃÕ�CÌBíá:œCR8ÅBíRxšCff¾BíרCš™·Bí\Ï–C±Bí)<•C…ë©Bí¤p“CHá¢Bí…k‘C�Bí �C×#–Bíìñ�C)\�Bí�ŒCq=‰BíáŠCfæ‚Bí.ˆCR¸yBí)\†CoBíáz„CcBíR¸‚C¤pXBíÍÌ€C33NBí\�}CHáCBí@zC…ë:Bí�‚vCR¸2Bí ×rC×£)BíoCq=!Bí×ckCHáBíf¦gC\�Bí�BdCHáBí�‚`C Bí{]C{ Bí¤ðYC×£Bí�BVCìQBí�SCìQBíö¨OC…ëBí�BLC ×Bíq½HCR¸BíEEC×£ BíáºAC¸Bí�B>C¸Bíì‘:C33Bí{Ô6CÃõBí\O3CÍÌ'Bíff/C¸/Bíqý+Cq=9Bí)Ü'C…ABí×#$C33LBí)\ C®UBíÅC…ë`BíqýCkBí×#C…ëvBí{CìQ�Bí3s Cáú‡Bí…« CR¸�Bíö(C¤p”BíšYC®ÇšBíýB=Š Bíö¨õB{§Bíö¨îBö(®Bí®ÇæBHá´Bí¤ðßB W»BíìÑØB€ÂBí×#ÒBÉBí¸žËBÍÌÏBíš™ÄBö(ÖBí¸ž¾BÍÌÜBí)\¸B…âBí®Ç±B33éBíš™«B�BïBí)ܦB¸õB퀠B×#úBíff›BfæÿBíÍÌ•Bq}CíHá�B WCíŒBH¡Cí= ˆB{” CíìуBöè CíÍL€B…+Cí®GxBq½CíÍÌpB{CíìQjBÅC»%!#)ÿ­€ ®R¸ìBq}¼C®ö¨ìB×c»C®¸žíB×#ºC®)\íBq½¸C®×£íB W·C®¤píB3³µC® ×íB… ´C®®ÇíB¸²C®×£íB{T°C®�ÂíBÃU®C®…ëíB�B¬C®\îB.ªC®ÃõíBÍ̧C®33îBÍŒ¥C®q½íB.£C®®ÇíBî C®R¸íB׃žC®¸žíBöœC®®íB¥™C®fæíB×C—C®®íB\Ï”C®áúíB…+’C®…íB×Ã�C®ö(îB®G�C®îB=ÊŠC®3³íBáZˆC®=ŠíB\†C®®îBfæƒC®ÍÌîBšy�C®¸žîB3s~C®HaîB¤0zC®¸žîB…+vC® ×ïBÍ rC®šðBf&nC®)\ðBö¨jC®ÍLðB33gC®)\ñBq½cC®¸žñB×ã`C®.óBö(^C®¤ðôB@WC®®G÷BìQQC®®ùBnLC®®ÇüB WHC®š™þB¤ðDC®×#C=JBC®…+C®Ç?C®šÙCÃu=C®\OCì‘;C®q½ C\9C®×c C3ó6C®q}CšÙ3C®®ÇC×ã0C®ìQCÃu.C®…+C�B+C®õCáº(C®{ÔCf¦%C®Å C¸"C®®G$CÍ C® W'C)ÜC®¸Þ*C)\C®áz.CnC®…+2C…C®Ãõ5C=ŠC®q}9C= C®@=C3³ C®ìAC)\C®ázDC{TC®)HCÍ C®{ÔKCfæC®¸žOCEC®H!SCÍ C®\OVCÃ5C®\�YC{ÔC®=Ê\C= C®�‚`C¸C®)dC{ÔC®šÙgC × C®ffkC  C®®GoCffC®…+sCRøC®ö¨vCÍÌC®HazC×cC®q=~C\OC®fÆ€C®‡C®…‹‚C…«C®…+„Cì‘"C®HÁ…C W%C®Rx‡CšY(C®ÀˆCR8+C®.ŠC×ã-C®\O‹CìÑ0C®R˜ŒC×£2C®¸>ŽCRx6C®fÆ�CÃu9C®.‘C…ë;C®\O’C\O>C®\“C3s@C®®Ç“CCC®ÍŒ”C®FC®%•CšYIC®áš•CšYMC®f–Cf&RC®…k–C�ÂXC®\Ï–C@`C®öÈ–CcC®3—Cf¦eC®{—C�iC®R8—C¸^lC®á:—C…+pC® W—C3³sC®¸^—CõwC®�‚—C)|C®\�—CqýC®ÍŒ—C 7‚C®Õ—C…‹„C®n—C3Ó†C®�‚—C@‰C®ö¨—CRx‹C®q�—C{ô�C®R˜—C�B�C®¸^—Cõ’C®{”—CÍL•C®áz—C×£—C®{t—CÃ5šC® w—C׃œC®…K—C{ôžC®ÍL—C 7¡C® 7—CᚣC®Ã5—C{Ô¥C®ì1—C33¨C®)<—CáZªC®3—C)\¬C®H!—C)|®C®\—CÍŒ°C®{4—C@²C®\/—C´C®ö(—C3ÓµC®×C—C®g·C®ì1—CÍì¸C®@—C�BºC®=J—Cáz»C®ÃU—C¸~¼C®=ª—CH�¼C®Å—Cq}»C®RØ—C@ºC®ÍÌ—Cìñ¸C®�˜C\o·C®ì˜C{ÔµC®š˜C3´C®\/˜CHA²C®E˜CްC®\O˜C�‚®C®öh˜Cöh¬C®׃˜C…kªC®õ˜C33¨C®…‹˜C{Ô¥C®3³˜C…«£C®à˜Cq=¡C®ŘCáúžC®qݘC¤�œC®¤ð˜Cš9šC®3ó˜Cö¨—C®3ó˜C®G•C®…ë˜CR¸’C®H™C3S�C®á™Cáú�C® ™C=j‹C®RؘCì1‰C®Íì˜C¸Þ†C®3™CÕ„C®\™C.‚C®Há˜CöèC®qݘC= |C®à˜C¸žwC®ŘC\�sC®H¡˜CìpC®H¡˜CR8lC®öh˜C…ëhC®…‹˜CÃueC®\O˜C®bC®)<˜CRø_C®\¯—C¤pXC®Ã5—C{ÔQC®3ó–C ×LC®×c–CH¡HC®öÈ•CáúDC® ÷”CáºAC®¤0”C?C®¤P“Cö¨C®�ÂýBf¦@C®¤púBRøCC®Ha÷B{TGC®¸ôB —KC®q½ñB�ÂPC®HáïB{ÔVC®ffíB…«]C®¸žìB�‚`C®®ÇëB¤pcC®33ëBÃõfC®¸êB®‡jC®ìQêB®nC®ÃuéBÍÌqC®ÍLéB�vC®ÃõèB¸zC®ÃuèBRx~C®3³èB)|�C®{”èBìуC®\èBšù…C®�BçB¸^ˆC®¤ðçB3ÓŠC®�ÂçB×C�C®= èBÅ�C®×#èB®'’C®€çBÍÌ”C®)ÜçB�B—C®ìQçBq�™C®…kçB{œC®…kèBöˆžC®)ÜçBî C® WèBš9£C®®ÇèBÍŒ¥C®èB=ʧC®3³èB33ªC®\�èBfF¬C®ÍLéB)\®C®ö¨éBáZ°C®×#êB%²C®33êBö´C®= êB{´µC®\�êB)\·C®3³êBHÁ¸C®33ëB ºC®¤ðêB¸^»C®ÍLëBH�¼C¼%5<�ÿÌ€ ÍázßB®ç¼CͤðÞBn¹CÍ ×ÞB\ïµCÍ WßB¤p²CÍš™ßBRØ®CÍ\ßB®G«CÍ)\ßB ×§CÍ WàBì1¤CÍ…ëßB)œ CÍ®ßB®�CÍHaàB —™CÍ®àB¤–CÍáBöh’CÍšáBqÝŽCÍq=àB®G‹CÍ�ÂàB×ÇCͤðàB33„CÍR8áBͬ€CÍ�BáB.zCÍáB…+sCÍšáBElCÍázáB)eCÍázáB®G^CÍ ×çBÍLXCͤpíB×#RCÍ®GóB=JKCÍfæøB=ÊDCÍR8ÿBìÑ>CÍ —C.8CÍÍLC®2CÍì‘ C¸-CÍîC{Ô'CÍ…kCÀ"CÍ3³CH¡CÍ{ C WCÍR8&CR8CÍš,CÍLCÍ…«2C3s CÍ\9C×cCÍ)?C¸CÍöhECšYCÍÅKC…ëøBÍQC¸ðBÍq=VC¤ðöBÍ×c\C¤ðþBÍ=ŠbC{ÔCÍ\iC=JC͸ÞnC…« CÍá:uCÍL CÍ.{Cq½CÍ…«€CnCÍ{´ƒC¤°CÍ\O†C×#CÍ@‰C�Â"CÍqŒC.(CÍHÁŽCH¡-CÍH�‘C\Ï2CÍ\“C¤ð9CÍq�”C\ACÍE–C\�HCÍ××C®OCÍ�B™C)\WCÍ\ÏšCöh^CÍ3ÓšCá:eC͸ޚCElCÍ{ÔšCá:sCÍ…ëšC=ŠzCÍ=ªšC¤°€CÍ×ãšC¸^„CÍΚC{´‡CÍš¹šCHA‹CÍ챚CšùŽCÍΚC€’Cͤ°šCáú•CÍ3³šC�¢™CÍ…«šCÍ �CÍq½šC¤� CÍÃÕšC®'¤CÍö¨šC¥§CÍ3“šCš9«CÍ®šCHá®CÍR¸šCÍL²CÍöˆšCfæµCÍáššC�b¹CͤðšCfF¼CÍ�â—CüCÍ�b”Cö¼CÍ�Â�C%¼CÍ×#�CE¼CÍ3“‰C×#¼CÍ×ã…Cš9¼CÍ)|‚C¸>¼CÍR¸}C{¼CÍq}vCš¼CÍöhoCš¼CÍ33hC ¼CÍ=Ê`C ¼CÍšÙYC33¼CÍ\�RC{¼CÍEKCÍL¼CÍšYDC¤0¼CÍöèC¼QCC¼‡C?C¼“ChC¼’C€¼C¾%~¡¸ÿÅ€ Æ.C…ºCÆázCfƶCÆffC®G³CÆ)\C®‡¯CÆ CR¬CƸCìQ¨CÆá:CöȤCÆC33¡CÆÃ5Cq}�CƸÞC×ÙCÆ×ãCH!–CÆ)œC\�’CÆR¸C= �CÆffC×c‹CÆ€C…ˇCÆq=C×#„CÆázC®‡€CÆ{TCš™yCƸ^C�‚rCÆáºCEkCÆÍ C33dCÆ®C\]CÆìÑCnUCÆ{T C¸žMCÆ�B CšFCÆ®C®G?CÆRxCÍŒ:CÆö¨C{”5CÆ{ÔC 1CÆÍ %C×#,CÆRx+C�B(CÆ)Ü1C¸^$CÆHa8C€ CÆRø>Cì‘CÆ)ÜEC WCÆ LC33CÆö(RCì‘CÆö¨WCÃuCÆ®‡]C×ãCÆ)ÜcC®ÇCƤ°iCìCÆÅoC�‚!CÆ×ãuC.%CÆf&|C€(CÆ=*�C{”+CÆÃUƒC2CÆáš…CÍÌ8CÆ3ó‡C�B?CÆ33ŠCÃõECÆÃuŒCöhLCÆšÙ�CÅSCÆR�C…ëZCÆ —�C\ObCÆ{ô‘Cö(iCÆ)Ü‘Cf&pCÆÍì‘CÍÌvCÆ®§‘CÍÌ}CÆHá‘C€‚CƸޑCî…CÆ)¼‘Cff‰CƸ~‘C= �CÆ ‘Cn�CÆÍŒ‘Cšù“CƸ~‘C)œ—CÆf†‘C®›CÆ®g‘C�bžCÆE‘C¢CÆöh‘C׃¥CÆìQ‘Cìñ¨CÆ W‘C…¬CÆ{4‘Cf°CÆH!‘C w³CÆá:‘C ÷¶CÆ�b‘C{ô¹CÆ®‡ŽCq½¹CÆ=êŠC\�¹CÆ\o‡Cq}¹CÆfæƒCͬ¹CƸ^€C¥¹CÆ�‚yC…¹CÆ=ŠrCšy¹CÆf&kC ¹CƸdC ¹CÆq=]C —¹CÆVCÕ¹CÆ)OCH�¹CÆ3óGC쑹CÆ…ë@Cq�¹CÆf¦9Cq}¹CÆ®2C®¹CÆš™+C)¼¹CÆ —$CöȹCÆ…+C¸¾¹CÆšC{´¹CÆRøCf¦¹CÆ C�¹CÆCöȹCÆC 7»CÆH!C@»CÆ�C%»CÆ\Cš»CÆ)CHA»CÆì‘$C3S»CÆf¦+C¤P»CÆR¸2C{4»CÆ…«9CšY»CÆfæ@CR8»CÆ…ëGCe»CÆ)OC=j»CÆ®VC¸^»CÆ.]C…K»CÆìdC=Š»CÆá:kCn»CÆ\�rCHa»CÆRxyC3s»CÆq]€CRX»CÆ…ëƒCÃU»CÆ\o‡CìQ»CÆqÝŠC\o»CÆ…ŽCìq»CÆáš’C%»CÆ×ã’C{ô¶CÆ…Ë’C w³CÆöè’CÍ °CÆÍÌ’C®‡¬CÆ×ã’Cšù¨CÆ�“C…¥CÆRø’Cšù¡CÆöÈ’CnžCÆH!“C… ›CÆáÚ’Cš™—CÆ… “CH”CÆáú’CÍl�CÆ= “C\�CƤ“C\o‰CÆö“C¤ð…CÆ�“Cq}‚CƸ“C ×}CÆ “CšÙvCÆR8“C×#pCÆ®“CR¸hCÆŽ‘C\�aCÆN�C\ZCÆ �CšÙRCÆáz�C=JKCÆ ‹CõDCÆ=ʈCH!>CÆš¹†C�B7CÆ@„Cq½0CÆå�C*CƸ^}C@&CÆR8wCšÙ"CÆf&qC×#CÆ�kCÅCÆÍLeC�BCÆ®^CfæCÆ ×XCHaCÆ= RC=Š CÆ®‡JCf¦CÆá:DCq½CÆ W=C ×CÆ®6C…«CÆ�B0Cq½!CÆÍÌ)CÍŒ%CÆ®G#C{Ô)CÆÍÌC\Ï.CÆ…C@3CÆnCHa8CÆ� C)=CƤð Cö¨DCÆá:CšYLCÆ®ÇCšTCÆ×cCR¸[CÆÃuúBncCÆ=ŠúB{TkCÆ ×úB)œrCÆ®ÇúBH¡yCÆ= ûBÍŒ€CÆázûB®'„CÆ\�ûB¤Ð‡CÆ)ÜûB…k‹CÆ{üB3�CÆ\�üBR˜’CÆÃõüB=*–CÆ.ýB=Ê™CÆR8ýB…�CÆ…ëýB{4¡CÆ WýBΤCÆ)\þB W¨CÆÍLþBq¬CÆ=ŠþBöˆ¯CÆ…ëýB¤P³CƤpÿBöȶCÆ ×þB wºC¿%!#)ÿŠ ‹C€ºC@‹þBdC@‹C>C@‹$C+C@‹RCC@‹€�C+C@‹�CLC@‹€’CiC@‹’C€ºC@À%!#)ÿ–€ —×£âAH�ÑC—…ëAš™ÍC—HáôAf†ÉC—ffþA\�ÅC—)\BÍìÁC—\�#B… ÀC—\�IB\�½C— ×KB¤p¹C—®KB¤ÐµC—š™LB=J²C—)\MB…Ë®C—ìQNBÃ5«C—33OBf¦§C—×£OB¤C—š™PB¸~ C—= QB�C—ázRBšY™C—q=SBHá•C—\�RB)’C—�ÂSB쑎C—= TB ‹C—ÃõTBᚇC—)\VBšùƒC—¸VBÍl€C—= VB)œyC—ìQWBš™rC—ÃõXB=ŠkC—)\YBö(dC—33ZB@]C—…[B= VC—×£\BöèNC—š™[B ×GC—q=]Bö¨@C—)\]B\O9C—¤p^BÍL2C—…ë]Bá:+C—R¸]B=Š"C—áz9Bq}#C—B®Ç$C—Bf&'C—ìQB�B#C—ÍÌ&B=JC—9BRxC—R¸IBÍÌC—ìQ[Bî C—= lBqýC—ffB.ÿB—fæ€BáúíB—3³�B…ÞB—ìÑ‚BÎB—R¸„B…ë½B—®G†B{®B—…ë‡B\�žB—ìÑ�B�B—…ë’BR¸B—š™˜BÃõaB—=ŠœB{HB—ìÑžBÃõ^B—…¤B¤p{B—ff«Bq=‹B—)\°BHá˜B—ff²B=ЍB—\�³BìѸB—{”µBfæÉB—Ãõ·BHaÝB—ÍÌÇBÃõÓB—HaÓBö(ÌB—¤ðÞBÃõÂB—)ÜêB»B—�BöB3³±B—ÃõC×#©B—=JC)Ü B—E C{”˜B—¸CR¸�B—¤°Cáú†B—ÃuC¤p}B—×£#C¸kB—=J)C×£YB—3ó.Cš™HB—{5C{9B—Ãõ;C…ëB—)ÜBCö(B—¤ðHC®ÇA—�‚NC…ë�A—ÃõRCff6A—H¡VC…ëƒA— —[C×£®A—n`CÃõØA—@eC…B—3sjC33B— pC�Â7B—\vC×£HB—q½{C…ZB—×ã€C\�lB—R؃C¸|B—\�†C=ІB—ÍŒ‰C®G�B—€ŒC33—B— 7�C33 B—ÍL’C רB—\/•Cq=±B—= ˜Cq=¹B—›C…ëÁB—…Ë�Cq½ÊB—…« CÃõÓB—@¤CHáÛB— ·¤CìQËB—)ü¤CHa»B—f&¥C�B¬B—šy¥Cš�B—=ª¥C)ÜŽB— §Cš�B—¥¨C¸fB—3ªCq=IB—šùªCìQ/B—¸¾«C×£GB—�â¬CHábB—®C�Â}B—ìQ¯C¸ž‹B—e°Cš™˜B—¸ž°C¨B—ö±C¤p·B—ì1±C�ÂÆB—¸^±C�ÂÕB—3³±C33åB—á²C×#õB—{t²Cá:C—{Ô´C¤0C—{ô¶CẠC—{¹CnC—ìQ»C3óC—…‹½CìÑC—q½¿C $C—RÂC®'C—3“½CR¸%C—q¸CH¡#C— ×·C ,C—R¸·Cq}3C—…ë·C)\:C—3Ó·CR¸AC—×#¸C×ãHC—H¸CH¡OC—f¸C3³VC—®¸C¸^C—R¸C×ceC—®'¸C…lC— ¸Cš™sC—f&¸Cì‘zC—Í,¸Cî€C—š9¸CH�„C—ÍL¸C¤ˆC—`¸CH¡‹C—¸^¸CH!�C—33¸Cq½’C—Íl¸Cš9–C—q]¸C×ã™C— W¸C…k�C—\�¸CH¡C—Íl¸C…‹¤C—e¸C¨C—�‚¸Cš™«C—®g¸CfF¯C—ޏC�²C—�¢¸C{T¶C—\¯¸C{ô¹C—3ó¸CqݽC—¸~¼C)¼¿C—qÝ¿CÎÀC—áºÂC\ÂC—öHÃCš¹ÅC—šÙÃC)¼ÉC—)|ÄC�¢ÍC—NÅC3óÐC—q}ÂC�ÂÐC—qý¾C…ÐC—áZ»CH¡ÐC—\Ï·C®ÐC—q=´C\¯ÐC—×£°C…ÐC—{­CášÐC—…‹©C�ÂÐC—.¦CRxÐC—׃¢CášÐC—¸ÞžC=ŠÐC—šy›C×£ÐC—fÆ—CášÐC—®g”CšyÐC—q½�C wÐC—…+�Cf†ÐC—3“‰Cš™ÐC—… †C¸~ÐC—Õ‚C׃ÐC—\~Cq½ÐC—)wC)¼ÐC—\pCášÐC—öèhC�¢ÐC—{”aC¤�ÐC—áºZC×ÃÐC—¤pSC¤°ÐC—HaLC…‹ÐC—¤pEC —ÐC—E>Cš™ÐC—=J7CÀÐC—q=0CͬÐC—\Ï(C —ÐC—¸ž!C¸~ÐC—\ÏC¤ÐÐC—R¸C3“ÐC—\� CõÐC—š™CR˜ÐC— WüBq½ÐC—®ÇîB¤°ÐC—\�àBÍÌÐC—®GÒB®§ÐC—®ÇÃBÕÐC—Í̵Bf¦ÐC—.§BÅÐC—�B™B)ÜÐC—ìQ‹B¸¾ÐC—q=yBì±ÐC—)\]BfÆÐC—×£ABÀÐC—š™%B3³ÐC—š™B=ªÐC—�Â×A¸¾ÐC—q=ØAHAÒC—®B\/ÒC—…%Bá:ÒC—…AB 7ÒC—)\]B…KÒC—¤pyBEÒC—q=‹B�"ÒC—ö(™B\OÒC—ìQ§BšYÒC—…ëµBÍ,ÒC—®ÇÃB®GÒC—.ÒB®'ÒC—¤pàB×CÒC—®ÇîB�bÒC—ÃuüB{TÒC—H¡Cš9ÒC—�‚ C 7ÒC—f¦C3sÒC—)ÜC®gÒC—õ!C\OÒC—®Ç(CHAÒC—…+0C¸>ÒC—@7CöhÒC—)\>CRxÒC—ÃuEC)<ÒC—\OLC…kÒC—ffSC…kÒC—=ÊZC�bÒC—)œaC=JÒC— ×hC=jÒC—pCöˆÒC—šwCázÒC—¸~C wÒC—H¡‚CázÒC—®†C®gÒC—{”‰CH�ÒC—{4�C WÒC—)¼�C¸^ÒC—Ha”CÍlÒC—�—CöhÒC—Rx›C`ÒC—×ãžC€ÒC—®‡¢CEÒC—%¦C\oÒC—ÍŒ©CeÒC—)­CfFÒC—¸ž°CáZÒC—33´C`ÒC—ηC®‡ÒC—×c»CRxÒC—qý¾CöhÒC—H�ÂC)\ÒC—R˜ÆC)ÜÑC—á:ÆCšYÍC—�‚ÅCRxÉC—=êÄC wÅC—áÄC{ÁC—{tÀCìQ¿C—H!½C�"¾C—á:ºC®½C—`ºC…ë¹C—R8ºC=J¶C—×#ºCẲC—Í,ºCfF¯C—ö(ºC{”«C—׺C¸þ§C—ºC¤�¤C—HºC)ü C—®ç¹Cff�C—= ºC×ã™C—ìѹC¤0–C—à¹Cq½’C—×ã¹C×#�C—®Ç¹C¸ž‹C—�â¹CÍ ˆC—öȹC)|„C—3Ó¹Cå€C—޹Cq}zC—{t¹CH¡sC—®¹C€lC—Ha¹C\OeC—RX¹Cš^C—šY¹CR¸VC—q}¹C…«OC—Ha¹C{ÔHC—ìQ¹C)œAC—q¹CìQ:C—33¹CÃu3C—¤¹C ,C—…˸CR8&C—šY½C(C—×ãÂCö(*C—{´ÀC…"C—Õ¾Cö(C—fF¼C¤pC—)ºCÍÌC—)Ü·C\O C—\¯µC)ÜC—¸ž³C{TC—)\³C3³ôB—Í ³CR¸äB— ·²C)\ÕB— w²C€ÆB—®G²C{·B—=ê±Cš™§B—¤°±C{”—B—¸^°C\ŠB—¤0¯C®GzB—î­CÃõ_B—¸¾¬C�ÂDB—®çªC= 'B—éC= FB—€§Cö(bB—Rø¥C33~B—Ha¤C3³�B—ÃU¤CìÑœB—¤C¬B—î£Cö(»B—¸ž£CËB— £Cq=×B—¤p¡C ×ÏB—¥žCffÆB—®›C.¾B—=ª˜CHáµB—H–CìѬB—“Cš™¤B—®�C®Ç›B—®'�Cš™“B—�BŠCÍL‹B—¤P‡C€‚B—®‡„C®tB— ·�C®GcB—.}CR¸RB—ÃuwC33AB—¸ÞqCìQ0B—33lCìQB—¸gC\�úA—@bCázÌA—)œ]C ןA—3sXC®GmA—)œRC…A—ELC®�A—š™FCìQ¸A—¸Þ@C ×ñA—= :C®GB—3Cáz/B—Ha-C…ë?B—R¸'CffQB—qý!Cö(bB—®ÇC= tB—…ëC{‚B—)CffŠB—=J Cq=“B—€Cfæ›B—ìÑýBš™£B—ö(òB…k¬B—3³æB…µB—ìQÛBáú½B—ìQÏB=ŠÆB—¤ðÃB{”ÎB—€»Bq=×B—{”»B)\ÉB—q½¹BÍL¸B—¸¹B…ë§B—= ·Bq=—B—Ha±B¸žˆB—R¸ªBÃõuB—)\¥B…YB—=Š›Bff9B—fæ’Bq=]B—33ŒBR¸zB—3³†Bff�B—€€BR¸œB—R¸}B)\­B— ×zB�B½B—= yBázÍB—…ëuBÞB—®GsB…íB—= rB�ÂüB—ìQ`B\ÏC—ázOBìÑ C—ÍÌ>BÀC—¸-Bq=C—33B¸^C—… B= !C— ×óA®G)C—…ëB×c(C—Há;B\'C—R¸SB\�%C—R¸PBö(+C—¤pPB332C—¸NB.9C—š™MBš™@C—ÃõMB\ÏGC—HáLBšÙNC—33LBHáUC—\�JB×#]C—33KB×#dC—)\KBöhkC—×£HBnrC—IB…yC— ×FBe€C—ÃõFB)üƒC—…HB3“‡C—ö(GB3‹C—ö(FB׃ŽC—33EB{’C—…DBáÚ•C—®CB¤P™C—…DB)üœC—¸CBìq C—ÍÌBBqý£C—ö(BBR˜§C—)\@B=*«C—q=ABÅ®C—ff@Bá:²C—áz>BŵC— ×=B=j¹C—Ãõ>BÍŒ¼C—{B¥¾C—š™ïA= ÁC—)\ãA WÅC—\�ÚANÉC—¤pÓAffÍC—ffÊAöHÑCÁ%!#)ÿÛ ÜØA€ÑC@ÜøA€ÁC@ÜDB½C@ÜXB$C@ÜB(C@ÜxBþB@Ü„BžB@ÜœB@B@Ü´B˜B@ܺBÚB@Ü4C4B@ÜBCøA@ÜSC A@ÜfCB@ÜqC4B@ܤCÚB@Ü¥CŽB@Ü«C,B@ܱC˜B@ܳCC@Ü€ÂC)C@Ü€¸C%C@Ü€¹C€½C@Ü€ÃC€ÁC@ÜÆC€ÑC@Â%µÖæÿ/333?01|Ùà�¾ï Ñ‚³ä•/ÍÌL?01»ÂÉÐ×êñøÿ†�”›®ÅܹèÙ ç ú �   ³ Æ Ù ì ÿ ’ ¥ ¸ Ë /ff&?01Ý  /ff&?01Ô ¹ /ff&?01Ë °/ff&?01§01ÙàçîõüƒŠŸ¶ÍªÙ/ÍÌL?01Ãì­Ì±(ÅŠ–Û7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=• €TFD\CîìÇ Sacrifice¤åæçèéêëìñò ‚C\C ‚Ã\À å�C…ëNC…Ë�CqýZC{4‚C�[C…K‚CîNCÆ%!#)ÿ €  šÙŠC×£ÒA fæ‹C¤pßA R˜�CÃõæA Í,�CäA \/�C�ÂÏA šù�Cq=¶A q‘C×£ A �â�C)\ŸA ¤0�CHá°A {t�C33ÉA àŽC ×ÛA {´�C¤pÛA Ã5ŒC…ëÑA ìñŠC¸ÏAÇ%5<�ÿ€ ÍŒ†CEBöˆ‡CffJBÉC{NB3³ŠCìQMBìÑ‹Cö(EB\oŒC®7B)œŒC)\,B×cŒC×£+B\�‹C®G5B�"‹C®GBB�‚ŠC\�IB{4‰CR¸HB\χC{DB †C®GCBÈ%5<�ÿ-€ .®pC33IB.ÃõqCHáNB.®GuC33SB.RxxC)\RB.öhzC®HB.f&|C®G;B.¤0|Cq=0B.\Ï{C�Â/B.{TzC…8B.…+yCÃõEB.¸ÞwC�ÂMB.ì‘uC®MB.ö¨rCázGB.…+pC)\GBÉ%5<�ÿ>€ ?@ŠC…k¬B?¤‹C…ë¥B? ׋C33�B?®ŒC= “B?n�C)܈B?®�C ×B?3sŒC33iB?ΊC33YB?{ô‰C…ëFB?×CŠCìQ8B?fæŠC…ë$B?.ŒC¤pB?šY�CázB?{”ŽCÃõæA?öH�C¤pÏA?�b’C ×½A?¸>”C= ±A?ì‘•C\�¢A?n•C¤p�A?…ë“CÍÌ¢A?{Ô‘Cš™©A?{”�CHá¾A?ì‘�C{ØA?�bŒCøA? 7‹CázB?3ŠCff"B?ff‰C…ë6B?…+‰CR¸GB?3ó‰CHá\B?׃‹C…mB?f†ŒC®Ç€B?=JŒC®Ç‡B?\o‹C¤p‘B?f¦ŠC3³›B?ŠCq½¤B?…ë‰C\¬BÊ%5<�ÿe€ f…kuCö(«Bfq}tC¥BfErCÃuœBfq½oC{”’Bff&nC\‰Bf WmC¤ð‚Bf)oC…ëyBfö¨sC¸nBf�xC33aBf¤°zC®PBfqýzC…ABf�‚yC/BfÃuwCHáBf�BvC®GBfázvCq=Bf)\xCázêAf@{C\�ÌAfR8C¤p±Af®G�CHá˜Af ‚C…ë�Afà�Cö(|Afì‘€C)\‹Af¸}C33�Afö(yC¸½AfáúuC¸ÝAfáºsC…ûAf3ssC…ëBf×#uC�Â!Bf®GwCÍÌ2BfyC= CBfRøxCÍÌMBfq=vC…ëYBfErC= fBfìQmC¤prBf×£jC®Ç�Bf kC¸žŠBfq½lCR8•Bf{ÔoC®GŸBf�‚rC W§Bf3³tC¬BË%5<�ÿ�€ ‘šÙ‡C®ÙB‘fÆŠC×#ìB‘�âŠC)ÜëB‘¤ð‡C¤pÙBÌ%!#)ÿ—€ ˜3S…Cq=ÚB˜eˆC×#ìB˜q}ˆC)ÜëB˜…k…CÃõÙBÍ%!#)ÿž€ Ÿ… ƒCázÚBŸ×†C¸ìBŸá†CHáëBŸ×#ƒCq=ÚBÎ%!#)ÿ¥€ ¦q�€C€ÚB¦¸žƒCö(ìB¦)¼ƒC ×ëB¦R¸€CR8ÚBÏ%!#)ÿ¬€ ­š™|C�ÂÙB­q=�C×#ìB­RX�C)ÜëB­ÍÌ|C€ÙBÐ%!#)ÿ³€ ´ —wC®GÚB´õ}Cö(ìB´î}C ×ëB´ÍÌwCáúÙBÑ%!#)ÿº€ »{sCÚB»ÃõxC¸ìB»f&yCHáëB»=JsCq½ÙBÒ%!#)ÿÁ€ ÂÍÌsCáúáBÂf¦vC…ëãBÂÍÌzC33äBÂìQCÍLäBÂöè�C\äBÂÃU„C= äB ·†CR8äB®‰C¸žãBÂf†ŠC…kâBÂ׃ŠC{”áBÂqýˆC¤ðàBÂ챆C{”áBÂ{T„C®áBÂfæ�C.âBšYC¤ðáBšÙzC{áBÂÀvCR8áBšÙsCÍLáBÓ%5<�ÿÖ€ ×ö(rC33âBפðtCfæåB×33yC3³êB× —}CÍÌíB×\Ï€C¤ðîB׃C…ëîB×áZ…Cö(îBפp‡C= ëB×…‰C\�æB×öèŠCq=âB× ׊C�ÂáB׸>‰C×£äB×)<‡CÍLéB׸>…C®GìB×áú‚CÃuíB×ÃÕ€C{”íB×ìÑ}CšìB×ö¨yCq½èB×nuC{äB×ErC�ÂáBÔ%!#)ÿí€ î¸^rC=ŠâBîqýtC\�ÞBî)xC€ØBîRø{C)ÜÓBî×ãCÃuÑBî�‚‚CÃuÐBîͬ„Cš™ÒBîìцC3³×BC…ÞBî\ÏŠCìQâBî¤ðŠC®áBî챉Cš™ÛBî W‡CázÔBî3ó„C3³ÏBî=Š‚C= ÎBî…«C)ÜÎBî)\{CÃõÐBîÍ wCö¨ÕBî3³sC{ÜBî®rC¤ðáBÕ%!#)ÿ„€ …á—C.C…… šC33C…š9šCÃõC…�B—CáúCÖ%!#)ÿ‹€ ŒöH“CìQCŒ\O–C)\CŒ¸~–C)CŒ¤p“C)C×%!#)ÿ’€ “H¡�C WC“R˜’CázC“À’C=JC“ìÑ�C CØ%!#)ÿ™€ šöÈ‹CHáCšáÚŽCö¨Cšf�C…kCšRø‹C¸žCÙ%!#)ÿ € ¡š9ˆC¸žC¡ ‹CÍÌC¡ÍL‹C{”C¡ffˆCöhCÚ%!#)ÿ§€ ¨q]„C�ÂC¨×c‡CÃõC¨쑇CáºC¨ÍŒ„C…CÛ%!#)ÿ®€ ¯ ·€CRøC¯=ªƒC)C¯ÃÕƒC×ãC¯fæ€Cq½CÜ%!#)ÿµ€ ¶¤ðyC×cC¶HáC�BC¶š€CÍ C¶ìQzC×#CÝ%!#)ÿ¼€ ½šYrCìQC½ffxC…kC½ÀxC¤0C½õrC CÞ%!#)ÿÀ ĤðjCáºCĤðpC{”CÄÍLqC WCÄ@kC…Cß%!#)ÿÊ€ Ë…«cC¸žCËq}iCR¸CË\ÏiC�‚CËqýcCöhCà%!#)ÿÑ€ Ò)\C�ÂCÒbCHáCÒ¸^bCö¨CÒRx\C…Cá%!#)ÿØ€ ÙH¡TC)ÜCÙÍŒZC= CÙöèZC\ÏCÙáúTCH¡Câ%!#)ÿ߀ àáúSCffCàEWC�‚Càn[CÍ Cà\`C×#Cà¤0eCìÑCà�jCR8Càq=mCCàõpC@Cà=JtC{”Cà®xC)ÜCàfæ{C=ŠCà ×C{TCàš‚C\Càì„CH!Cà®'†C ×CàqˆCR¸CàŠCq}Cà׌CRxCà…Ë�C¸ÞCàq��CÃ5Cà®ç‘CöhCàff”C…+CàqÝ–CR¸CàRؘCq½Cà¤pšC WCà\�šCö¨Càq™C…+Càq=—CÍŒCàõ”C×£Cà’CfæCà…�CÅCà¤p�C®ÇCàì‘‹Cf¦Cஇ‰CõCàq�‡C®Cà¤Ð…C\OCàáÚƒCì‘CàR‚C¸^Cà33€CázCà=Š|C\Cà¸ÞxC=JCà\OuC®CàõqC)\CàîmCÃõCàH!jC —CàR¸dCìQCàá:_C)œCà×cZCR¸Cà)œVC\CàR¸SCÍÌCã%5<�ÿ”€ •=ŠžC{ÈB•áz¡Cq=ÚB•õ¡C×£ÙB•¸¾žC\�ÇBä%!#)ÿ›€ œͬšCq½ÇBœ®�C{ÚBœHá�C\�ÙBœ�âšC33ÇBå%!#)ÿ¢€ £=Ê–C ×ÇB£qÝ™CáúÙB£3šCffÙB£—CR8ÇBæ%!#)ÿ©€ ª… “C\�ÇBª= –C)ÜÙBªE–C�BÙBª×C“CÇBç%!#)ÿ°€ ±…K�CffÇB±q=’C3³ÙB±ìq’C.ÙB±�‚�C)ÜÆBè%!#)ÿ·€ ¸׃‹C¸žÇB¸nŽC{”ÙB¸H¡ŽC\ÙB¸ẋC\ÇBé%!#)ÿ¾€ ¿…‹‡CšÇB¿ᚊC€ÙB¿{ÔŠCHáØB¿À‡C\�ÆBê%!#)ÿÅ€ Æ{´ƒC×#ÇBÆ\φCìQÙBÆH‡CÍÌØBÆöèƒC\�ÆBë%!#)ÿÌ€ ÍfæC€ÇBÍ)ü‚Cq=ÙBÍ{4ƒC×£ØBÍ×#€CÃõÆBì%!#)ÿÓ€ Ôá:xC WÇBÔ)\~C{ÙBÔ�Â~C=ŠØBÔ3³xC3³ÆBí%!#)ÿÚ€ Û¤°pCö¨ÆBÛ3³vCÙBÛ…+wCHaØBÛ×#qC\ÆBî%!#)ÿဠâH!iC¤ðÆBâìoCHáØBâÍŒoCq=ØBâì‘iC)\ÆBï%!#)ÿè€ é…aC�ÂÆBéÃugCq½ØBé…ëgC×#ØBéRøaCö(ÆBð%!#)ÿï€ ð®ZCHáÆBð{Ô_C¸žØBð=J`CØBð�‚ZCq=ÆBñ%!#)ÿö€ ÷ö(RC×#ÆB÷@XC¤pØB÷H¡XC¤ð×B÷ì‘RCš™ÅBò%!#)ÿý€ þÅJCq½ÆBþ —PC)\ØBþ®QC®Ç×BþR8KC×#ÆBó%!#)ÿ„€ …\ÏICÃuÎB…ÅKC)ÜÑB…¸NCš™ÖB…š™QCÜB…HaUC¤páB…ìQYCq½æB…×c]C.ìB…H¡aC�BðB…ÃueC33ôB…3siC¤ðøB…ÍÌmC{”üB…®ÇqC3³C…\vC{”C…q½zC3óC…šCáºC… ÷�Cö(C…ÍìƒCáºC…®†CEC…š9ˆC ×C…HaŠCR¸C…=ªŒC®ÿB…®çŽC…üB…qý�C�BùB…fæ’CÃõõB…Íì”CR8óB…\—CffîB…¤�™CéB…\Ï›C®ãB…=Ê�C\ÞB…R˜ŸC�ÂÙB…Í,¡C¸žÔB…)¢Cš™ÐB…×ã¡CffÏB…¤° C®ÑB…qÝžC)ÜÔB…��C{ÙB…\ïšC.ÞB…®Ç˜Cö¨ãB…Ha–CÍLéB…)<”C\íB…N’C{”ðB…€�C{”ôB…®gŽC�B÷B…Ã5ŒCìQûB…HŠCÍLÿB…{ô‡CîC…=Ê…CáúC…öȃCH¡C…Rø�C.C…nC —C… W{C)œC…¤ðvC=JC…ìsC¤püB…)ÜnC®GøB……«jC…kôB…3ófC¸ïB…�cCÃõêB…š_C=ŠæB…=J[CÃõàB…q=WC�ÂÛB…ESC\×B…¸žOCÃuÒB…®LCq=ÏB…á:JCšÍBô%5<�ÿÇ€ÈJCÖBÈMCCÀ@È_C#CÀ@È{C=CÇ€ÍNCÖBÍQCCÀ@ÍcC#CÀ@Íš™{C=CÇ€ÒRCÖBÒUCCÀ@ÒgC#CÀ@Ò33|C=CÇ€×VCÖB×YCCÀ@×kC#CÀ@×ÍÌ|C=CÇ€ÜZCÖBÜ]CCÀ@ÜoC#CÀ@Üff}C=CÇ€á^CÖBáaCCÀ@ásC#CÀ@á~C=CÇ€æbCÖBæeCCÀ@æwC#CÀ@æš™~C=CÇ€ëfCÖBëiCCÀ@ë{C#CÀ@ë33C=CÇðjCÖBðmCCÀ@ðC#CÀ@ðÍÌC=CÇõnCÖBõqCCÀ@õ€�C#CÀ@õ33€C=CÇúrCÖBúuCCÀ@ú€ƒC#CÀ@ú€€C=CÇÿ€�C¶Bÿ˜CÜBÀ@ÿ—C CÀ@ÿ€ŠC-CÇ„�C¶B„™CÜBÀ@„˜C CÀ@„€‹C-Clj€�C¶B‰šCÜBÀ@‰™C CÀ@‰€ŒC-CÇŽ’C¶BŽ›CÜBÀ@ŽšC CÀ@Ž€�C-CÇ“€“C¶B“œCÜBÀ@“›C CÀ@“€ŽC-Cǘ•C¶B˜�CÜBÀ@˜œC CÀ@˜€�C-CÇ�€–C¶B�žCÜBÀ@��C CÀ@�€�C-Cõ%Ncuÿ£€ ¤=ê�C¸ž»B¤R�C®ÀB¤ìÑC€ÆB¤{T}C®ÍB¤…+zCÃõÕB¤=ÊwC\àB¤{ÔuC®GéB¤ÃõtC WóB¤®ÇtC…ëûB¤Í uC3óC¤q}uC{C¤ÍLvC3³ C¤ìQwC=JC¤q}xC¸žC¤{TyC®GC¤)œzC®C¤{C@!C¤…«{C{”%C¤ ×|C*C¤)œ}Cq}.C¤ö(~C{”3C¤á:C®8C¤= €C{ÔCÝņC{”CCÝ…+„CR8HCÝRx�CÅLCÝ®‡‚Cá:OCÝ.…C{”JCÝHá‡Cf&FCÝ®ŠCEACݸ^�C\ÏCÑBÝšÙ>CÃõãBÝö¨?C{”öBݤ0@C)\CÝšÙDC® CÝ)IC ×CÝ\�MC=ŠCÝ…«QCÍ CÝ WC…ë$CÝ3s\C®*CÝÍLbC)\0CÝH¡gC336CÝ�mC@;CÝì‘rC¤0@CÝšYxCÍ ECÝq½}C×#JCÝn�C…+OC÷%!#)ÿÑ Ò‚CNC@ÒiC5C@ÒSCC@ÒBCC@Ò@CÒB@ÒKC¦B@Ò^C”B@ÒsCšB@Ò‚C¼B@Ò‹C–B@Ò€—C˜B@Ò€ C´B@Ò¤CÞB@Ò¢CC@Ò€™C C@Ò€�C7C@ø%Íåñÿä€ åRÃC ×ñBå¤pÄC ×îBåNÆC ×èBå ÈC ×äBåÃÕÉCšäBå¤�ËCáúåBåqýÌCq=æBå�ÍC�ÂåBå®ËCÃõãBå)ÜÉC.âBå®ÈC3³ãBåRÆC=ŠçBåH!ÄC.íBåfÃC¤pñBù%!#)ÿõ€ ö¤p¾C×#òBöÀCq½îBöR¸ÁCáúèBöR˜ÃCÃõäBöìQÅC3³äBö ÇC×£åBöázÈC�BæBö…ÈCq½åBö\/ÇCázãBö3SÅC ×âBö€ÃC×£ãBöšyÁCÃuçBö…«¿CíBö¸^¾Cq½ñBú%!#)ÿ†€ ‡�"ºCš™òB‡¸^»C3³îB‡\O½CáúèB‡ö¿CHaäB‡®ÇÀC¤päB‡®ÂC.æB‡)üÃC®GæB‡×ÄCR¸åB‡öÈÂC¤ðãB‡¤ÐÀCHáâB‡…ë¾CfæâB‡ö½C)\çB‡®»C{íB‡Í ºC�BòBû%!#)ÿ—€ ˜q}µC\òB˜·C…ëîB˜)¼¸CìQèB˜š™ºC®GäB˜@¼CÃuäB˜¤0¾C¤ðåB˜)|¿C�BæB˜׃¿Cq½åB˜…K¾C3³ãB˜®G¼C�ÂâB˜…ºC{ãB˜€¸CÃõæB˜¤°¶CHaíB˜=jµCš™ñBü%!#)ÿ¨€ ©¸±C ×ñB©¤p²C�BîB©¸>´C\�èB©Í ¶C€äB©fæ·C\äB©q½¹C= æB©)üºC®GæB©×»CR¸åB©)ܹCHáãB©î·C WâB©ìñµCö(ãB©´Cö(çB© ²C3³ìB©ö±CÃuñBý%!#)ÿ¹€ º…¬C¸òBºšÙ­CÍÌîBº3³¯CHaèBº쑱Cq½äBºe³C3³äBº\µC×#æBºq}¶CÍLæBº�‚¶C3³åBº®'µCäBºÍl³C…ëâBºq}±CÃuãBº)|¯C\çBº…‹­CÍLíBºn¬C®ñBþ%!#)ÿÊ€ Ë®'¨C¤ðñBËìq©C WîB˸^«C¤pèBËáú¬C)\äBËHá®CìQäBËͬ°CæBË)ü±C®GæBËײCR¸åBˮǰC…ëãBË…ë®C¸žâBË×ã¬C= ãBËR«CìÑæBË{©C\�ìBË\¨C=ŠñBÿ%!#)ÿÛÜ€±C CܶCCÀ@Ü€ºCøBÛàÀ´CCà@¹CCÀ@àÀ½CCÛä¸CC䀼CCÀ@äÁCCÛè@»CCèÀ¿C CÀ@è@ÄCCÛ쀾C CìÃCCÀ@ì€ÇCøBÛðÀÁCCð@ÆCCÀ@ðÀÊCCÛôÅCCô€ÉCCÀ@ôÎCCÛø@ÈCCøÀÌC CÀ@ø@ÑCCÛü€ËC CüÐCCÀ@ü€ÔCøBÛ€ÀÎCC€@ÓCCÀ@€À×CCÛ„ÒCC„€ÖCCÀ@„ÛCCÛˆ@ÕCCˆÀÙC CÀ@ˆ@ÞCCÛŒ€ØC CŒÝCCÀ@Œ€áCøBÛ�ÀÛCC�@àCCÀ@�ÀäCCÛ”ßCC”€ãCCÀ@”èCCÛ˜@âCC˜ÀæC CÀ@˜@ëCCÛœ€åC CœêCCÀ@œ€îCøBÛ ÀèCC @íCCÀ@ ÀñCCÛ¤ìCC¤€ðCCÀ@¤õCC€%Ncuÿ©ª€¦CCª€¯C¸BÀ@ªºC¢BÀ@ª½C˜B©¯€¨CC¯€´CÍ̾BÀ@¯¿CĮ́BÀ@¯ÂCÍÌžB©´€ªCC´€¹Cš™ÅBÀ@´ÄCš™¯BÀ@´ÇCš™¥B©¹€¬CC¹€¾CffÌBÀ@¹ÉCff¶BÀ@¹ÌCff¬B©¾€®CC¾€ÃC33ÓBÀ@¾ÎC33½BÀ@¾ÑC33³B©€Ã€°CCÀÈCÚBÀ@ÃÓCÄBÀ@ÃÖCºB©€È€²CCÈ€ÍCÍÌàBÀ@ÈØCÍÌÊBÀ@ÈÛCÍÌÀB©€Í€´CCÍ€ÒCš™çBÀ@ÍÝCš™ÑBÀ@ÍàCš™ÇB©€Ò€¶CCÒ€×CffîBÀ@ÒâCffØBÀ@ÒåCffÎB©€×€¸CC×€ÜC33õBÀ@×çC33ßBÀ@×êC33ÕB©€Ü€ºCCÜ€áCüBÀ@ÜìCæBÀ@ÜïCÜB©€á€¼CCá€æCffCÀ@áñCÍÌìBÀ@áôCÍÌâB�%!#)ÿç€ è ŸCšYCèàCRøCè\o¡C3óCè ·¢CHá Cè…+¤CÅ Cè\�¥C\ÏCèáú¦CÀCè ¨C×cCè¤pªC¤ðùBèq¬Cq=óBè…ë­C€íBèͬ¯CR¸çB讇±C€âB讳CHáÞBè…Ë´C�ÂÚBè=ª¶C¤pÖBèÃU¸C×£ÒBèf&ºCÍÌÏBè{4¼Cö(ÌBè 7¾C®ÇÈBèRÀC{”ÅBè33ÂC ×ÂBè=*ÄC¸ž¿Bè=jÆCR8½B讇ÈC ׺Bè=ªÊC¸¹Bè¥ÌC×£¶Bè ·ÎCÃuµBèH!ÑC…³BèÃUÓC W²BèRØÕCR¸±Bè=jØCìQ¯Bèq½ÚCÍL®Bè= ÝC)\­Bè…‹ßC�B¬Bè×£áC\�«BèöèãC×#ªBèÅåC¤p©Bè®gçCq=¨BèàèC×£¦Bè= êCáú¤BèÃõéC£B踾èC…ë¢BèÍLçCR¸¢BèášåC= ¢Bè3³ãCìQ£Bè\oáCÃõ£Bè WßCÃõ¤BèáÚÜCìQ¦Bè…‹ÚC¤ð¦Bè¸ØC W¨Bè3“ÕCR8ªBè3ÓCš«Bè ×ÐCÍÌ­Bè3sÎCáz¯Bè3SÌC±BèHAÊC�B³Bè{4ÈC¶Bè¤ÆCìQ¸BèìÑÃC W»Bè�ÂÁCq½½Bè�¢¿C®ÇÀBèR¸½Cö(ÄBèš¹»C\�ÇBèö¨¹C®ÇÊBèš¹·C WÍBèìñµC)\ÑBèì´C\�ÕBèq=²CR8ÙBè °C®ÇÜBè —®Cö(âBè\ï¬C=ŠèBèîªC{”íBè ©C\�ôBèšY§C®ûBèš¹¥Cá:C踤CCèR¸¢CR8Cè…k¡C=Š Cè{t C  CèÍŒŸCöèCè\ÏžC…«C‚%!#)ÿ¼ € ½ f&žC3s!C½ öÈ¡Cì‘%C½ \o¥Cõ)C½  ©C..C½ R¸¬Cff2C½ ͬ°C{”2C½ )|´CÃu2C½ šY¸Cöh2C½ î»Cî1C½ ¸¾¿Cš2C½ ÅÃCáº1C½ öHÇCRx.C½ ®‡ÊCf¦+C½ \ÎCÍŒ(C½ RxÑC®Ç%C½ …ëÔC×£"C½ îØC{”C½ áÚÜCH¡C½ ®ÇàC®GC½ ×#äCq½C½ ×cçCÍŒC½ =êêC{”C½ ¸^îCH¡C½ ®ÇñC�B C½ ¤põC×#C½ á:ùC¸ÞC½ =ŠõC®ñB½ )òC®åB½ H�õCHaàB½ öˆùC\�×B½ �‚ýC= ÎB½ ÍLúCáúÂB½ )\÷C33ºB½ )|ôCq=±B½ f†ñC×£¨B½ …kòC…k›B½ =JóC¤p‹B½ ìñóC\�sB½ H¡ïC®uB½ R¸ëCÍÌyB½ šùçC{}B½ )<äCÍL€B½ q]àC{”€B½ f†ÜC®ƒB½ ׃ØC×£…B½ ÀÔC)\ˆB½ HáÐC¸žŠB½ …ËÌCìÑŒB½ ÍÌÈC=Š‘B½ ÅC®Ç•B½ �"ÁCÍLšB½ \/½C¸žžB½ ì1¹C®G£B½ öC\¬B½ %³CÃõ³B½ ÍŒ°C�½B½ f¦­CÃõÅB½ šÙªC{”ÎB½ =ê§Cq=ØB½ ¤0¦C¤ðæB½ 3Ó¤C×£õB½ q}£C¸C½ šù¡C)œ C½ ͬ CõC½ fFŸC\C½ …Ë�CöhC½ {4ŸC — C½ …Ë C®GC½ q=¢C)ÜC½ ìq£C3³ C½ )ܤCR8C½ Rx¦CR8øB½ ìѧCš™éB½ q=©C�BÜB½ Há«CÔB½ \Ï®C33ÌB½ R˜±CìÑÂB½ \O´C…ë¹B½  ·Cfæ±B½ …ë¹C�B©B½ ¸ž½C פB½  —ÁC� B½ ìqÅC\œB½ öHÉC{˜B½ ¸ÍCq½’B½ áÑCš‘B½ �ÕCÃuŽB½ ¸¾ØCq½‹B½ fÆÜC)܉B½ ¤�àC¸ž†B½ ÃUäCö(…B½  èC®ÇƒB½ ¸ÞëCš™�B½ fÆïC®GB½ ®çòC…ëzB½  7òC…ŠB½ ¤ñC¸šB½ �BðCš™ªB½ R¸óC WµB½ õöC3³½B½ ͬùCÍLÆB½ \OüCR8ÍB½ ùCš™ÓB½ {ôôCšÜB½ ¸ÞðC…åB½ ¤�ôC\�õB½ ×Ã÷CHáC½ š¹ôCõC½ %ñC C½ ÀíCẠC½ {têC×c C½ RøæCÀC½ …«ãCìQC½ ì1àC…kC½ Í ÜCÍŒC½ ¤0ØCš™C½ qÔCEC½ �ÂÐCì‘"C½ `ÍCff%C½ àÉCf¦(C½ ášÆC\O+C½  WÃC.C½ 챿C×c.C½ �â»C×£.C½ öH¸C…ë.C½ {t´C33/C½ ͬ°C W/C½ =*­CÃ5/C½ áÚ©C¸ž+C½ q=¦CRø&C½ f†¢C¤ð"C½ ÍìžCÀCƒ%!#)ÿà € Ä €žC C@Ä ­C1C@Ä €ÃC0C@Ä €ÔC!C@Ä €àCC@Ä îC C@Ä €øCC@Ä €ñCæB@Ä ýCÎB@Ä ñCªB@Ä €óCxB@Ä €àC„B@Ä ÍC�B@Ä €¹C¦B@Ä €¨CÚB@„%µÖæÿÕ € Ö qýC¸òBÖ )ÜÿBö¨ìBÖ áú÷B\çBÖ ×#ðBHaãBÖ R¸èB×#ãBÖ ¸žàBfæãBÖ ¤ðÛBq½åBÖ \ÜB�BæBÖ ¤ðàBÍÌåBÖ ÍÌèBR¸äBÖ ìÑïB×£äBÖ ¸÷B…kèBÖ =ŠþB.îBÖ ÅC…òB…%!#)ÿæ € ç  Cq=òBç ¤°CšíBç {C×£çBç fæCö¨ãBç ×£úB®âBç fæòB)ÜãBç ¤ðíBR¸åBç \îB®GæBç �BóB)ÜåBç 3³úB¸žäBç ®C\åBç H¡C{éBç �Cq½îBç )Ü Cš™òB†%!#)ÿ÷ € ø @Cö(òBø áúCq=íBø CR8çBø qý C¸ãBø …+C)\âBø ffCfæãBø ¤ðÿBq½åBø ®C�BæBø ¸žCÍÌåBø á:C¤ðãBø =Ê C)\äBø ì‘ C\�èBø ECïBø {C{”òB‡%!#)ÿˆ € ‰ …+CÃõñB‰ €CìÑìB‰ HáCÃõæB‰ H!C×#ãB‰ HaC…kâB‰ € C×#äB‰ áúC®ÇåB‰  CR8æB‰ 3³ CšæB‰ ÃuCHaäB‰ îCÃuäB‰ )\CázèB‰ HáC)\îB‰ C WòBˆ%!#)ÿ™ € š î%C)\ñBš ÍÌ#C3³ìBš ¸ C)ÜæBš îC33ãBš ázC{”âBš ÍŒC=ŠãBš RøCq½åBš ®C�BæBš ÅC�ÂåB𠮇CÍLäBš q½C€äBš )œCÃuèBš Í #CázîBš q½%CìÑñB‰%!#)ÿª € « \/CR8òB« ®‡,C33íB« 3ó(CÃuçB« f&%CR8ãB« ×#!C= ãB« =JC�BäB« áúCq½åB« C�BæB« ÃuC.æB« R8!CR¸äB« áú$C…käB« q}(Cq½èB« ×ã+Cq½îB« öè.Cš™òBŠ%!#)ÿ» € ¼ ¸8C\�ñB¼ R¸5Cq½ìB¼  2C×£çB¼ {.C)\ãB¼ .*C)\âB¼ ®‡&C×£ãB¼ Rø#C�ÂåB¼ ®$Cq=æB¼ q½&C€åB¼ Ã5*C…ëãB¼ šÙ-C®äB¼ )œ1C×#éB¼ )5C WîB¼ Rø7CÃõñB‹%!#)ÿÌ €Í %C CÍ CCÀ@Í CøBÌ €Ñ €CCÑ €CCÀ@Ñ € CCÌ €Õ CCÕ CCÀ@Õ CCÌ €Ù €CCÙ €C CÀ@Ù ÿBCÌ €Ý  C CÝ CCÀ@Ý òBøBÌ €á €CCá ÷BCÀ@á åBCÌ €å üBCå êBCÀ@å ØBCÌ €é ïBCé ÝB CÀ@é ËBCÌ €í âB Cí ÐBCÀ@í ¾BøBÌ €ñ ÕBCñ ÃBCÀ@ñ ±BCÌ €õ ÈBCõ ¶BCÀ@õ ¤BCÌ €ù »BCù ©B CÀ@ù —BCÌ €ý ®B Cý œBCÀ@ý ŠBøBÌ €� ¡BC� �BCÀ@� zBCÌ €… ”BC… ‚BCÀ@… `BCÌ €‰ ‡BC‰ jB CÀ@‰ FBCÌ €� tB C� PBCÀ@� ,BøBÌ €‘ ZBC‘ 6BCÀ@‘ BCÌ €• @BC• BCÀ@• ðACŒ%Ncuÿš €› ;CC› )C¸BÀ@› C¢BÀ@› C˜Bš €  7CC  CÍ̾BÀ@   CĮ́BÀ@  CÍÌžBš €¥ 3CC¥ Cš™ÅBÀ@¥ Cš™¯BÀ@¥ ôBš™¥Bš €ª /CCª  CffÌBÀ@ª ìBff¶BÀ@ª àBff¬B𠀝 +CC¯ C33ÓBÀ@¯ ØB33½BÀ@¯ ÌB33³Bš ´ 'CC´ îBÚBÀ@´ ÄBÄBÀ@´ ¸BºBš ¹ #CC¹ ÚBÍÌàBÀ@¹ °BÍÌÊBÀ@¹ ¤BÍÌÀBš ¾ CC¾ ÆBš™çBÀ@¾ œBš™ÑBÀ@¾ �Bš™ÇBš à CCà ²BffîBÀ@à ˆBffØBÀ@à xBffÎBš È CCÈ žB33õBÀ@È hB33ßBÀ@È PB33ÕBš Í CCÍ ŠBüBÀ@Í @BæBÀ@Í (BÜBš Ò CCÒ lBffCÀ@Ò BÍÌìBÀ@Ò BÍÌâB�%!#)ÿØ € Ù =ŠJCnCÙ ®ÇHCázCÙ EGCìQ CÙ =JECRx CÙ q½BC…CÙ {Ô?C¤0CÙ ffCR8öB® R8;C)\çB® ö(8C®GØB® f¦2CšÎB® …ë,CffÅB® ®'CHá¼B® {T!CìQ´B® \ÏC\�«B® = CÍÌ¢B® ìÑ C WžB® áúC®Ç™B® ®ÇûB\�•B® ÍÌìBš™�B® ®ÇÜB®G�B® R¸ÌBÍLŠB® …ë¼BR¸ˆB® = ®B\†B® \žBö¨ƒB® ®ŽB)Ü€B® B\�B® ÍÌ`Bff{B® Ãõ@B33yB® ®G#B¸wB® ×£þA®GtB® ×£B®GŒB® { B\›B® {B\©B® ÃõøA.±B® �ÂËA{”ºB® )\›A{ÃB® ®GMA¸žÎB® ff¨A�BØB® ¸åAš™ßB® ¤pB¤ðåB® q=æAòB® ÍÌ®AîC® \�êAÍLC® ¸B¸^ C® ®G-B¤0C® ®IB —C® …dBffC® R¸~B{ÔC® áúŒBš™C® œB{”C® q½¬B�BC® áz¼B¤°"C® …ëÉB ×%C® {ØB¸Þ(C® …kåB…«+C® ö¨òBÍŒ.C® ÃuC…1C® {”C\2C® Í C¤ð1C® EC\O2C® )ÜC�‚2C® =Š&C W2C® ¸ž.Cö¨2C® = 6C¸.C® ì=Cáº)C® …DC¸ž%C® R¸KCH!!C�%!#)ÿ´ µKC C@µ.C1C@µC0C@µ¾B!C@µŽBC@µ0B C@µ¸AC@µBæB@µ`AÎB@µBªB@µBxB@µŽB„B@µÜB�B@µC¦B@µ7CÚB@�%µÖæÿ ->e�—ž¥¬³ºÁÖí„‹’™ §®µ¼ÃÊÑØß”›¢©°·¾ÅÌÓÚáèïöý„Ç/333?01£ÜÑäõ†—¨¹ÊÛ/ff&?01©/33³?01ç¼ à Õ æ ÷ ˆ ™ ª » Ì /ff&?01š /33³?01Ø ­ ´7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=• @NEÀZEÄ4C4CîìMatch¤åæçèéêëìñò BBùI? PBPBìB A@@;%ÿ%ÿ?%Žÿ€Á °Á@A@A AÀ@Á@A@!@# Á&Üöÿÿ&G³ÿÿ'ÍÌ ?&+jÿÿ'€?ÀBÀBA"@B!&êûÿÿ!&jÈÿÌ')\�>!&:ŠÿU'R¸?!&+jÿ'€?&'(€@€@B%¨âÿÿ&+,€@€@C%¨âÿÿ&/0€@€@D%¨âÿÿ&34€@€@E%¨âÿÿ&78€@€@F%¨âÿÿ/@@01 /@@(,0487Idle;7Strike9*335 DCDCFÂ5DCDCFÂ3&5DCDCDF€?CDF€?C35DCDC DFš™™?CDFfff?CDFff†?C*F€?5DCDC DFÀ?CDF€?CDF33“?C*F€?3'5 DCDCFÐÁ5DCDCFðÁ35DCDC DFš™¹?CDF€?C*FÍÌ ?5DCDC DFš™¹?CDF€?C*FÍÌ ?5DCDCDF€?CDFÍÌL?C*3+5 DCDCF Â5DCDCFÀÀ375 DCDCF€Á5DCDCF�Á35 DCDF€ACDFÀÀC 5DCDF€ACDFÀÀC 5DCDFìQ8>CDF�Âõ½C3/5 DCDCFÀÀ5DCDCF(Â57Machine9ŠRest=•>@?A—p�EpC¾CîìÇMoon_OLD¤åæçèéêëìñò ðB¾CƒÃ Â@Á  €¿€?AA¨%ÿ  ffA@@ÍÌì@Ãõ˜@@@¤p-@¤pí@@@0ÀìQð@@@)\çÀ¤p•@@@)\Á@@R¸æÀ¸•À@@333ÀÍÌôÀ@@¤p-@�ÂíÀ@@ázä@…“À@@©%ÿª%Òæïÿ 0ÂÐA€ÁÀ#€@R Òï=Sê•6@A«%ÿ#$ %ö(ôA…MÂÀ?%®G‹A…ëHÂÀ?%ö(œ@�Â8ÂÀ?%{ÎÀHáÂÀ?%®Á33óÁÀ?%{ºÁ…›ÁÀ?%)\ßÁö(äÀÀ?%…ëíÁ¸½@À?%R¸äÁö(˜AÀ?%\�ÄÁffüAÀ?%HáŽÁáz+BÀ?%Ãõ ÁR¸QBÀ?%š™ @HánBÀ?%)\gAÍÌ€BÀ?%ÍÌ̾„BÀ?%®sÁ¤p€BÀ?%q=êÁ\�lBÀ?%)\'Â33LBÀ?%ÃõPÂìQ!BÀ?%…ëoÂffÜAÀ?%�B�š™UAÀ?%ÃõƒÂ ×ÿÀ?%ÍÌÂ×£‚ÁÀ?%\�jÂìQòÁÀ?%®GI ×*ÂÀ?%R¸ÂR¸SÂÀ?%{ÔÁ�ÂqÂÀ?%DÁR¸�ÂÀ?%q=*@HáƒÂÀ?%)\‹A×£~ÂÀ?%ìQúAázhÂÀ?%q=.BìQFÂÀ?¬%ÿ­%G³ÿÿ# €@�@H Iö(ôA…MÂÀ?I®G‹A…ëHÂÀ?Iö(œ@�Â8ÂÀ?I{ÎÀHáÂÀ?I®Á33óÁÀ?I{ºÁ…›ÁÀ?I)\ßÁö(äÀÀ?I…ëíÁ¸½@À?IR¸äÁö(˜AÀ?I\�ÄÁffüAÀ?IHáŽÁáz+BÀ?IÃõ ÁR¸QBÀ?Iš™ @HánBÀ?I)\gAÍÌ€BÀ?IÍÌ̾„BÀ?I®sÁ¤p€BÀ?Iq=êÁ\�lBÀ?I)\'Â33LBÀ?IÃõPÂìQ!BÀ?I…ëoÂffÜAÀ?I�B�š™UAÀ?IÃõƒÂ ×ÿÀ?IÍÌÂ×£‚ÁÀ?I\�jÂìQòÁÀ?I®GI ×*ÂÀ?IR¸ÂR¸SÂÀ?I{ÔÁ�ÂqÂÀ?IDÁR¸�ÂÀ?Iq=*@HáƒÂÀ?I)\‹A×£~ÂÀ?IìQúAázhÂÀ?Iq=.BìQFÂÀ?®%ÿ¯%+jÿÿ hBxÂlm4n°A°A~€?ffæ>°%ÿ±%Òæïÿ �B Brs4tpApA~€?ffæ>²%ÿ³%Òæïÿ  Á¨Âxy4z@A@A~€?ffæ>´%ÿµ%Òæïÿ~ €B @ @¶%ÿ� ‚ÁÐÁ€?‚AÐÁ€?‚A�Á€?‚PA�Á€?‚Á€?‚PÁ�Á€?‚Á�Á€?·%ÿ‹Œ �¸ñÁš™Â @�¸õA¤p  @�…ÍAö(\À @�ö(ÊÁ¤p]À @¸%ÿ¹%°ËØÿ‹ @@@” •¸ñÁš™Â @•¸õA¤p  @•…ÍAö(\À @•ö(ÊÁ¤p]À @º%ÿ»%”µÄÿœ� ÂÀAfC|€?@@¼%ÿ½%°ËØÿœ @@@@¡ ÂÀAfC|€?@@¾%ÿ¿%”µÄÿ”­¿Ê«”Ì”­¿Ê«”Ì”­¿Ê«”Ì /fff@01/š™@01$/ff¦@01$H/¸…@01Hn/333@01nt/333@01tz/333@01z~�Œ/ff¦@01Œ”/¸…@01”�/ÍÌŒ@01�¡/`@01¡?A€?7Look9d3 5 DF@ÀC2DCdDF@@35DFÍÌL¾C2DCdDFÍÌL>7Dread9d35DF€?CdDFÍ̬?5DF€?CdDFÍ̬?3G5%%DXG³ÿÿ%CdDX,AÂÿ35DF€?CdDF€¿7Pop9d3¢5DEÀFŒBCNDEÁFnCCZDEÁFcCCdDFfC35DEÀFÌÂCNDEÁF‡ÃCZDEÁF€�ÃCdDFƒÃ3ž5DEÀFŒBCNDEÁFnCCZDEÁFcCCdDFfC7Idle9–;3x5DEÁF€?C&DEÁF333?CKDEÁF€?CpDEÁF333?C–DF€?5DEÁF€?C&DEÁF333?CKDEÁF€?CpDEÁF333?C–DF€?3r5DEÁF@?C&DEÁF€?CKDEÁF@?CpDEÁF€?C–DF@?5DEÁF@?C&DEÁF€?CKDEÁF@?CpDEÁF€?C–DF@?3l5DEÁF€?C&DEÁF333?CKDEÁF€?CpDEÁF333?C–DF€?5DEÁF€?C&DEÁF333?CKDEÁF€?CpDEÁF333?C–DF€?35DEÁCKDEÁF ÀC–D5DEÁC&DEÁF�Âõ<CKDEÁCpDEÁF�Âõ¼C–D7Rest935DF€?5DF€?5 D5D5D7Hop9035DEÁF€?CDEÀFÍÌŒ?CDEÁF×£p?CDEÂFHáz?C"DEÀFq=Š?C)DEÁFHáz?C0DF€?5DEÁF€?CDEÀFö(\?CDEÁFq=Š?CDEÂF\�‚?C"DEÀFfff?C)DEÁF ׃?C0DF€?5 DC0D5DCDEÀCDEÀFÐÁCDEÂFàÁC"DC)DEÁC0D5DEÁCDEÀF ×£<CDEÁFÍÌ̽CDEÂF ×#½C"DEÀFÍÌL=C)DEÁC0D7Startle9(35DEÀF€?CDEÁF�Âu?CDEÁF®G�?C(DF€?5DEÀF€?CDEÁF®‡?CDEÁFHáz?C(DF€?5 DEÀCDEÁF ÀCDF€ÀCDFÀCDFÀÀCDFÀCDFÀÀCDFÀC DFÀÀC"DEÁF€ÀC(D5DEÀCDEÁFÀÀCDC(D5DEÀCDEÁF�Âõ½CDEÁF)\�½C(D57Machine9ŠIdle?A—>@=•9ŠAction?A—>@=•A—â÷¿Ê®ÌßùA—â÷¿Ê®Ìßù=˜•A—˜ žx d=˜•A—˜ žx drŠ Tap to hopà$á÷®¿Ê®ËÌç€;EzD€;DîPageLeft¤åæçèéêëìñòì1u? ÃC¾©C ÃÃ`u°Ã† TCìQ·B‰’B—¡E%5<�ÿ‡�Œ8á›�ᚾᚳá›�ᛈá›�á›� ᛚá›�á›’á›–áš± á›�ᛖᛊá›�á›�ᛊÁ†Ãdª: CCfæC‰ ’ ×±A†Há:?—¢E%%3ÿ‡ � Œ{á›�ᚺᛖ áš¹á›�á›�ᚾᛖᛊᛊ ᛊᚨᚹ ᚹᚺᚨá›� ᚾᛟ ᛖᚣᛖ ᛊᚺᛟᚢᛚᛞ ᛊᛖᛖ᛬ ᛊᛟ á›�ᚺᛖᚣ Á†í >» CCH¡-C‰’×£²A†€?—£E%)3Dÿ‡�Œtᛒᛟᚢᚾᛞ ᚺá›�ᛊ ᛖᚣᛖᛊ áš¹á›�á›�ᚺ ᛚá›�ᚾᛖᚾ ᚨᚾᛞ ᛊᛖᚹᛖᛞ á›�ᚺᛖ ᛚá›�ᛞᛊÁ†úík: xB�‚JC‰’ ×­A†q=Š?—¤E%#+:ÿ‡�Œ‚áš¹á›�á›�ᚺ ᚱᛖᛞ á›�ᚺᚱᛖᚨᛞ ᚨᚾᛞ ᛗᚨᛞᛖ ᚺá›�á›— ᛃᚢᛞᚷᛖ ᛟᚠ á›�ᚺᛖ ᛞᚨᚱᚲ᛬ ᚺᛖÁ†¦›Äº xBÍ gC‰’R¸®A†…+?—¥E%)3Dÿ‡�Œ‘ᛃᚢᛞᚷᛖᛊ ᚨᛚᛚ ᚹᚺᛟ ᚳᚨᚱᚱᚣ ᚨ ᛚá›�ᚷᚺá›� á›�áš¾á›�ᛟ á›�ᚺá›�ᛊ ᚺᛟᚢᛊᛖ᛬ ᚺᛖ ᚳᚨᚾᚾᛟá›�Á†oƒº xBq}�C‰’Há°A—¦E%#+:ÿ‡�Œˆᛊᛖᛖ ᚣᛟᚢᚱ ᚠᚨᚳᛖ᛬ ᚺᛖ ᛊᛖᛖᛊ ᚣᛟᚢᚱ ᛊᚺᚨᛞᛟᚹ ᚨᚾᛞ ᚺᛖ ᚹᛖá›�ᚷᚺᛊ á›�á›�᛬Á† C3ó×C‰#’¸qA—§E%5<�ÿ‡#�$Œ(ᛟᚳᚢᛚᚢᛊ ᚳᛚᚨᚢᛊᚢᛊ#Á† …‡B…ë˜C‰(’…ëqA—¨E%Ncuÿ‡(�)Œᛈᚨᛚᛈᛖᛒᚱᚨ(Á-€.CªC.C¢CÀ@.üB¢C©E%Ncuÿ-Á† ˆCÍl³C‰4’®SA—ªE%Ncuÿ‡4�5Œáš á›�ᛚᚢᛗ4Á9:pC€¸C:†C€¸C«E%Ncuÿ9Á† vC3sÌC‰?’€A—¬E%Ncuÿ‡?�@Œᛚᚨᚳᚱá›�ᛗᚨ?ÁDEbCÎCErCÓC­E%NcuÿDÁJ€ K=ŠüB)¸CKq}Cq]·CKq½C3S¶CKõCf&µCK� C¸~³CK) C…ë±CKHáCf†°CK×£CẮCK3sCöH­CKÃuCͬ«CK…ëCÍŒªCK —"Cöˆ©CK3ó%Cà¨CKáú)Cì1¨CKf¦-C¤p§CK ×1C=*§CK×ã5C3³¦CKáº9CHa¦CK=Ê=C�B¦CKBCHA¦CK®GFC.¦CK¤ðICq]¦CK\NC ¦CK)RC3Ó¦CK¤0VCá:§CK\ÏZC3Ó§CKìÑ^C`¨CK{cC33©CKšgCöªCKHájC3óªCKõnC�â«CK¤prCᚬCKffuCš™­CK WyC{ô®CKf¦|CfưCKì€Cáz²CKHa�CE´CKáÚ‚C¸ÞµCK ÷ƒCì·CKáÚ„Cá¸CK%…Cå·CK3s„Cš¹¶CKö¨ƒC×CµCKRx‚Cìq³CKR�Cáš±CKìÑ~CÀ¯CK@{CRØ­CKîvC=j¬CKš™sC¸~«CKöèoC\�ªCKRøkC ·©CKqýgCÃõ¨CKfæcC…+¨CK®‡_CE§CKE[CšÙ¦CK —VC3S¦CKffRC¤ð¥CK®GNC{”¥CK{JC�‚¥CK\OFCff¥CK= BCšy¥CKq½=CHA¥CK…9C\�¥CK)œ5CÍÌ¥CK3s1C¦CK×#-Cáz¦CKá:)CH!§CK¤0%C\ϧCK×£!C w¨CK{”C�b©CKöèC —ªCKR¸Cf&¬CK®ÇC ­CKHá Ce¯CK¤p C�±CK@C ²CKáúC×C´CK…kC…«µCK×#ÿBfæ¶CKö¨ûBšÙ·C®E%!#)ÿJÁž€ ŸHáûBì¸CŸHáÿB\ϸCŸ¸^C)ܹCŸ= C=ʺCŸ3sC×¼CŸö( Cš9½CŸqýCq}¾CŸ\CR˜¿CŸ=JC¸ÞÀCŸÅC ×ÁCŸ×#!Cš¹ÂCŸõ%C)\ÃCŸšY)CáºÃCŸH!-C=*ÄCŸq=1C¸^ÄCŸ 5CÀÄCŸ×c9CÍìÄCŸ®G=CÃÅCŸ ×ACHAÅCŸfæEC WÅCŸHaJC¸^ÅCŸRxNC{TÅCŸöhRCšÅCŸq½VCÅCŸš™ZCÍÌÄCŸšY^C¸~ÄCŸš™bCqÝÃCŸ…ëfCÃCŸá:kCÂCŸáºoCÎÀCŸ ×sC{´¿CŸ=ÊwC�‚¾CŸÀ{C ½CŸ WCö¼CŸ�b�C)ܺCŸšù‚C®§¹CŸ×#„CŸCŸ…C ¸CŸìñ„Cöè·CŸîƒCn¸CŸÕ‚C{¹CŸìñ€CÃ5ºCŸ¸^~CHA»CŸšÙzC®g¼CŸìÑvCŽCŸ¤ðrCî¾CŸRønCqÀCŸ3sjC®GÁCŸ{TfC\OÂCŸ{bCáÃCŸÃõ]C\¯ÃCŸ)\ZC\ÄCŸ¸žVC¤PÄCŸÍLRCeÄCŸ¸^NCö¨ÄCŸ)\JC3³ÄCŸîEC®ÇÄCŸ…ëACì‘ÄCŸHa=C�‚ÄCŸ�‚9C 7ÄCŸ@5C…+ÄCŸÃu1Cö¨ÃCŸšY-C…‹ÃCŸ�Â)C=êÂCŸH!&CH�ÂCŸ¤°!C\ïÁCŸq}CRøÀCŸ= C%ÀCŸ�C×þCŸ ×CfƽCŸ. Cáz¼CŸ®‡ CÃ5»CŸáúCìºCŸH!C=J¹CŸnC3s¸CŸ…küB)Ü·C¯E%!#)ÿžÁîï×ã CÍ ¶Cï¤pCÍŒ¯Cîò…«C€°Cò{TCªCîõ¤p(Cšù«CõR8&Cšy¥CîøR86Cf©Cø)5Cf†¢CîûDC¨CûDC€¡Cîþ®ÇQCf©Cþ×ãRCf†¢Cî�\�_Cšù«C�®ÇaCšy¥Cî„{TmC€°C„…«pCªCî‡){CÍ ¶C‡\�CÍŒ¯C°E%!#)ÿîÁŒ€ �)Cá·C�¸Cšy·C�)\ C\�·C�¸^C=ª·C�f&C�â·C�\CR¸C�= C×#¸C�…ëC{T¸C�áz#CšY¸C�33(C3s¸C�¤ð,CfƸC�2C)ܸC�R¸6C…˸C�{;CÃõ¸C�)Ü?C=ê¸C�R8DCθC�öhHC®Ç¸C�ÀLCìѸC�=JQC…«¸C�{VCθC�H![CޏC��`C¸ž¸C��ÂdCÍl¸C�iC�b¸C�×ãmCìQ¸C�…+rC ÷·C� vC ÷·C�ÍŒyC¸¾·C��}C=ª·C�áºC`·C���C�"·C�qý€CqݶC�f¦CζC�Ãõ|C=ª¶C�¤pyC{”¶C�îuC3³¶C�RøqCÃÕ¶C�f¦mC¤·C�¤ðhC…K·C�¸ždCìQ·C�î_C®§·C�\[Cš™·C�VCÃÕ·C��BQCöè·C�R¸LC ÷·C�¸^HC)ü·C�¤0DCö(¸C� ×?C ¸C�);Cš¸C�®Ç6Cö¸C�\2C×ã·C�)-C×÷C�)\(C)|·C�\�#CHa·C�\Cq=·C�Ã5Cqý¶C�¤0C\϶C�ÍLCšÙ¶C�…Cö¨¶C�¸^ C®¶C�33CÃÕ¶C�R8C\϶C±E%5<�ÿŒÁ΀ Ïì‘ C{ô´CÏq½CÍŒ¹CÏ= C3s¹CÏHá CšÙ´C²E%!#)ÿÎÁÖ€ ×®‡CqµC×�‚C޹C×ìÑCìq¹C×ìÑCµC³E%!#)ÿÖÁÞ€ ߀%C%µCßE+C޹C߸ž+Cìq¹CßìÑ%C= µC´E%!#)ÿÞÁæ€ çH!3C¸µCçì9CÍŒ¹Cç¸^9C3s¹CçRx3C�µCµE%!#)ÿæÁî€ ï ×@CRø´Cï)ÜFC…‹¹Cï×#GC{t¹Cï¤0ACáÚ´C¶E%!#)ÿîÁö€ ÷q½NCšù´C÷¸žTCÍŒ¹C÷îTC3s¹C÷= OCHá´C·E%!#)ÿöÁþ€ ÿ�‚\C%µCÿffbCÍŒ¹CÿõbC3s¹Cÿ)Ü\C®µC¸E%!#)ÿþÁ†€ ‡ö(jCfµC‡¤0pC…‹¹C‡RxpC{t¹C‡q}jC=ê´C¹E%!#)ÿ†ÁŽ€ �qýwCö(µC�Rø}CÍŒ¹C�@~C3s¹C�ìQxCÍ µCºE%!#)ÿŽÁ–€ —Å]C=êÄC—€[CR¸ÆC—öèXCì‘ÉC—šYWCšùËC—š™XCîÍC—…+[CRxÏC—33^C)<ÐC—…ë`C)œÏC—f&cCÎC—ÍŒdCìñËC—�‚cCŽÉC—…«`CõÆC—H!^CÃõÄC—¸Þ]C= ÅC—õ_CÃõÆC—�BbCöÈÉC—3scCîËC—Ã5bCÅÍC—�B`CEÏC—q=^CHáÏC—áº[Cf&ÏC—q}YCì±ÍC—¸žXC�ÌC—f&ZC¤ÐÉC—\�\C ÷ÆC—Í ^C)üÄC»E%5<�ÿ–Á† ­Cìñ•C‰´’ A—¼E%5<�ÿ‡´�µŒI.´Á†$—; {´¶C=Š”C‰¹’¤p¡A—½E%)3Dÿ‡¹�ºŒ@á›’á›�ᚾᛞ á›�ᚺᛖ ᛖᚣᛖ áš¹á›�á›�ᚺ ᛚá›�ᚾᛖᚾ᛬¹Á† ­Cìq¢C‰¾’ A—¾E%5<�ÿ‡¾�¿ŒII.¾Á†™»» =ªºC¸~ C‰Ã’®G¡A—¿E%#+:ÿ‡Ã�ÄŒMᛊᛖᚹ á›�ᚺᛖ ᛚá›�ᛞᛊ áš¹á›�á›�ᚺ ᚱᛖᛞ á›�ᚺᚱᛖᚨᛞ᛬ÃÁ† ­Cìñ®C‰È’ A—ÀE%5<�ÿ‡È�ÉŒIII.ÈÁ†l ù:  ¾C3­C‰Í’¢A—ÁE%#+:ÿ‡Í�ÎŒPᛊá›�ᚨᚾᛞ á›�ᚺᛖ áš¹á›�á›�ᚾᛖᛊᛊ á›�áš¾ á›�ᚺᛖ ᛞᚨᚱᚲ᛬ÍÁ† ­Cìq»C‰Ò’ A—ÂE%5<�ÿ‡Ò�ÓŒIV.ÒÁ†o» ¤0½C… ºC‰×’®G¡A—ÃE%)3Dÿ‡×�ØŒ<ᛚá›�ᚷᚺá›� ᚺá›�á›— ᚠᚱᛟᛗ ᛒᛖᚺá›�ᚾᛞ᛬×Á† ­CìñÇC‰Ü’ A—ÄE%5<�ÿ‡Ü�ÝŒV.ÜÁ† ×#; á:¹CHAÆC‰á’ סA—ÅE%%3ÿ‡á�âŒFᚺᛟᛚᛞ ᛊá›�á›�ᛚᛚ ᚢᚾá›�á›�ᛚ á›�á›� ᛒᚢᚱᚾᛊ᛬áÁ† PCáDî?‰æ’pA—ÆE%Ncuÿ‡æ�çŒclavisæÁëì*C€ DìvC€ Dëï*C€3DïvC€3Dëò*C€ Dò*C€3DëõHC€ DõHC€3DëøvC€ DøvC€3Dëû*CDûvCDëþ*C€DþvC€Dë�*C D�vC Dë„*C€&D„vC€&Dë‡*C-D‡vC-DÇE%NcuÿëÁ† 9CH¡ Dî?‰Œ’€A—ÈE%5<�ÿ‡Œ��ŒAŒÁ† ×ZCŽ D‰‘’¨A—ÉE%!#)ÿ‡‘�’Œᚨ‘Á† 9CH!Dî?‰–’€A—ÊE%5<�ÿ‡–�—ŒE–Á† EWCD‰›’¨A—ËE%!#)ÿ‡›�œŒá›–›Á† 9CH¡Dî?‰ ’€A—ÌE%5<�ÿ‡ �¡ŒI Á† �\CŽD‰¥’¨A—ÍE%!#)ÿ‡¥�¦Œá›�¥Á† 9CH!!Dî?‰ª’€A—ÎE%5<�ÿ‡ª�«ŒOªÁ† ×ãXCD‰¯’¨A—ÏE%!#)ÿ‡¯�°Œᛟ¯Á† 9CH¡'Dî?‰´’€A—ÐE%5<�ÿ‡´�µŒU´Á† ìÑWCŽ%D‰¹’¨A—ÑE%!#)ÿ‡¹�ºŒᚢ¹Á† 9CH!.Dî?‰¾’€A—ÒE%5<�ÿ‡¾�¿ŒT¾Á† )œYC,D‰Ã’¨A—ÓE%!#)ÿ‡Ã�ÄŒá›�ÃÁ†ùÉ¿ B D‰È’`A—ÔE%Ncuÿ‡È�ÉŒbᚺᛖ ᛊᚨᚹ ᚹᚺᚨá›� ᚾᛟ ᛖᚣᛖ ᛊᚺᛟᚢᛚᛞ ᛊᛖᛖ᛬ ᚺᛖ ᛊᚨᚹ᛬ÈÁ† úC8B™î?‰Í’ A—ÕE%5<�ÿ‡Í�ÎŒ/C U L T O F T H E U N S E E I N G S U N† úC@ D™î?‰Ñ’ B—ÖE%!#)ÿ‡Ñ�ÒŒ THE WITNESS† úC€D™î?‰Õ’àA—×E%!#)ÿ‡Õ�ÖŒAn eye surrendered to the dark.† úC€%D™î?‰Ù’¸A—ØE%5<�ÿ‡Ù�ÚŒThe blind shall judge.† úC/D™î?‰Ý’�A—ÙE%5<�ÿ‡Ý�ÞŒI / V . 1 úCñC†á Á™î?‰â’ØA—ÚE%5<�ÿ‡â�㌠VOW BROKENáæ€ ç.ç®GaAçö(ôÂìQ,Aç®ú¤pÝ@çáúüÂ×£0@ç)\úÂ{î¿çHaóÂq=ºÀç¸éÂ…ë!Áç ×ÚÂ= GÁç{”ÖÂö(TÁç¤pÑÂázXÁçq=ÌÂ\�bÁç×#ÆÂ®GiÁçìѿ®sÁç=йÂffrÁçR¸±Âö(xÁç×£ªÂ)\{Áç ×¢Â{€Áç{šÂ{„ÁçÍL’Â×£„Á煉¤pƒÁçÃu€ÂHá†Áç×£oÂR¸ˆÁç×£\Â)\‡ÁçìQKÂÃõ†Áç�Â8Â�‡Áçq=%ÂÍÌ„Áç{ˆÁçq=ÂÍ̆Áç…ÛÁ¤p‡Áç33µÁÃõ„Áç33‘Á®…Áç×£XÁÃõ†Áç×£Áff†Áç33£Àš™‡Áç{Ž¿š™ƒÁç¸U@= …Áç\�ê@…ëƒÁçÍÌ@A ׃Áçš™�AR¸‚Á縩Aš™ƒÁçÎAÃõ‚Áç\�òA)\�Áçáz B®�Áçš™B= Áç332B\�zÁç…EB¸yÁçÍÌXB®sÁç)\jB®GuÁç¸}BtÁçÃu‡B…oÁç33�Bö(lÁçìјB= gÁç\�¡BÍÌ`Á瀩B= [Áç)\±B¤pYÁçÍL¸B ×KÁç�¿B…ëIÁçÆB×£DÁç€ÌB…ë9Áç®ÑB®3ÁçR¸ÖB33'Áç.ÛB…ë!ÁçìBÃõÐÀçq½÷BázÀç€üBff&@ç33ûBè@çÃuôB)\?Aç¤ðæB…ëuAçR¸ãB33{Aç3³ÞB…�Aç WÙBÍ̆AçÔB…ë‹AçšÎBffŽAç33ÇBìQ’Aç×£ÀB®G•Aç\¹B{˜Aç.±B ×—Aç®G©B= �Aç.¡B×£ Aç®G˜B…ëŸAçìQ�Bff¤A皆B…¥AçìQzB¤p§AçHáhB¸©AçHáTBR¸¨Aç ×BB33©AçÃõ.BázªAçffB33­Aç)\ B®Aç…ëAq=¬AçÈA…ë­Aç…£A�«Aç ×{A…«Aç…3AR¸¬Aç\�â@×£ªAçÍÌL@q=¬AçHáš¿ffªAç…£À®G©Aç{ÁffªAçÃõ`Á®G©AçÃõ–Á33©AçffºÁìQ¨Aç¤páÁ¸©AçHáÂ…¥Aç…Â33§Aç×£) ץAçff<Â33£AçÍÌPÂö(¢Aç¤pcÂHá AçR¸vÂö( Açff„Â33�AçÍL�ÂÃõ˜Aç®Ç–Â…ë•Açö¨ŸÂ”Aç\¨Â×£�Aç°Â…ë‘Aç…ë·ÂÃõŒAç×£¿ÂÍÌŠAç�BÆÂ¸‰Açq½ÌÂ33�Aç\�Ó¸�AçHáØÂ\�rAçázÞ®GmAç�Bã®GiAçR8ç ×_Aç®ÇèÂ{€Aç€äÂq=ˆAç33ßÂŒAçÚÂR¸ŽAç WÔÂ�“Aç×£ÍÂ= —AçR8ÇÂ= �Açq=ÀÂ{¢AçÃu¸Â¸¥AçÍL°Âff¦AçÃu¨ÂHá¨Açö( ÂHá¬Aç×#—Âáz®Aç�Â�Â×£°Açfæ„Âff²Aç…w®G·Açš™c¸¹Aç…ëPš™·Aç{=Â×£¸Aç®G* ׽Aç¤pÂHá¼AçffÂHá¼AçìQâÁ¤pÁAçq=ºÁ ׿Aç¤p—Á×£ÀAç{bÁ ×ÁAç{Á¸ÃAç…£À ×ÁAçÃõ¨¿)\ÃAçÍÌL@š™ÃAçÃõà@¸ÃAç= 3A®GÅAç®G}A…ÃAç33£A¤pÁAçö(ÈA¸ÃAç…ëA¤p¿Aç®G BÍÌÂAç…ëB�¿Aç¤p/BìQ¾Aç¸CB{¼AçHáTB®G»AçiB×£¼Aç�ÂzB\�ºAç W†Bö(ºAç�Â�B33·A縞˜B\�²AçìQ¡BR¸°AçìÑ©B×£°Açš™±B¤p«AçìQ¹BÍ̪AçR8ÁBÍ̦Aç×£ÇB¤p¡Aç3³ÎBHá Aç®ÇÔBq=šAç33ÚBÍÌ”AçìQßB¤p�Açö¨äB¸�Aç…kèB®G‡Aç×£öBÍÌTAçÃuþBffþ@ç)C×£@çìQúBR¸NÀçR¸íBázÁç€ÜBš™=ÁçR¸×B{FÁç\�ÒBázTÁçšÍB\�VÁçö¨ÆBR¸bÁç×#ÀBázhÁçHá¸BÍÌpÁç®±Bq=vÁç�©B…wÁç= ¢B¸�Áç×#™BÃõ„ÁçHa�B¤p…Á箇BÃõ†Áç®}B®‰Áç×£jBÃõŽÁç= YBŽÁç ×EBìQ�Áç)\2B…�Áç= B×£�ÁçÃõ B)\“Áç®GóA×£–ÁçffÎA= —Áç33©A= —Áçq=‚A˜Áç¸AA33›Áç ×ë@®G—Áç®W@q=œÁçÃõˆ¿¤p™Á箟Àš™›ÁçázÁffœÁçö(XÁ\�œÁ箑ÁÍÌžÁçÃõ´Á…ë›Áç¸ÛÁffžÁç{ÂÃõœÁç{Â�ŸÁç)\%ÂÍÌžÁçff8Â×£žÁç¸KÂ= ¡Áç®\®G¡ÁçR¸oÂ\�žÁçÍÌ€Âáz ÁçR¸‰Â{œÁçR8’Â…ë�ÁçázšÂ= �Áçáz£Â ×™Áç×#«Âö(–Áç×#²Âáz”ÁçìѹÂáz’Áç…À¤p‘Áç{ÇÂ×£ŠÁç33͸‰Áç=ŠÒÂff„Áçáú×Â= �ÁçHáÜ®sÁçÃuëÂìQDÁçff÷ÂázüÀç=Šþ¤p=Àç3óäp-@çÿÂ�ÂAç÷Â)\KAçÍLéÂ)\�AÛE%5<�ÿ〠äáúC\�CäR8CnCä\OC®ÇCä\Ï CìÑCä@C®Cä×cC"CäÍÌCšÙ"Cä33CÍŒ"CäHáCì!Cäì‘C…+CäìÑCšÙCä×ãC¸CäÃõC…ëCä)\C¤°CÜE%5<�ÿô€õÍL,C Cõ3³.C)\ CÀ@õ3³6C Cô€ùÃu*C)ÜCù\�,C\CÀ@ùf&4C¸žCô€ý…+%C×cCýõ&CECÀ@ý)Ü,Cff#Cô€�…+C¤p"C�…ëCq½$CÀ@�ÍÌ!CÀ+Cô€……C.%C…×cCš™'CÀ@…ázC=Š/Cô€‰®‡ C�B$C‰®‡CRx&CÀ@‰®C�B.Cô€�ÍŒC=ÊC�×£ýBáz!CÀ@�\�ôB (Cô€‘{”óB¸^C‘¸ïB{TCÀ@‘fæáBšÙCô€•ìQìBC•ázçB)CÀ@•Há×BîCô€™ìQìBáúC™q½çB¤0CÀ@™Há×BìCô€�{”óB�B÷B�HáïB¸ôBÀ@�fæáBÍLìBô€¡ÍŒC…kèB¡®ÇþB.äBÀ@¡\�ôBìÑ×Bô€¥®‡ CázßB¥R8 C®ÚBÀ@¥®CázËBô€©…C×£ÝB©šC…ëØBÀ@©ázC…ëÈBô€­…+C¸ãB­\�C×#ßBÀ@­ÍÌ!C€ÐBô€±…+%CR8ïB±¤0'C…ìBÀ@±)Ü,C33áBô€µÃu*C×#CµìÑ,C33ÿBÀ@µf&4C�ÂøBÝE%5<�ÿº€ »{Ô C C»f¦&C C»…ë&CöèC» !CöèCÞE%!#)ÿÁ€ ÂHaC¸ÞC®‡ CšCÂìÑ CfæCÂ)œCõCßE%!#)ÿÈ€ ÉH¡C{CÉ…kC CÉõCöèCÉ)ÜCîCàE%!#)ÿÏ€ ÐÍŒC�CÐ{TC{CÐ{”C…ëCÐ=ÊC¸ÞCáE%!#)ÿÖ€ ×Ã5CÍ C×R8C{C×RxC…ëC×ÃuCHáCâE%!#)ÿÝ€ Þ×ãCÍ CÞšC CÞ¸^CöèCÞf&C¸ÞCãE%!#)ÿä€ åq=øB\OCåqýC Cå�BCöèCåÍÌøB¸CäE%!#)ÿë€ ììÑ÷BH! CìÍLýBfæ CìHáCÃu CìÍŒCÍL Cì¤p CHa CìšCìÑ Cì…CE Cì\ÏCÍŒ Cìf¦CRx Cì=Ê#Cqý Cì ×&C�B Cì ×&Cq½ Cìf¦#C¸ Cì�‚C×£ CìÍÌCÃõ CìRxC3ó Cì Cöh C쮇 C Cìì‘Cö¨ CìRøC)œ Cìš™ýBá: CìHá÷Bö¨ CåE%5<�ÿ„€ …ö¨ôB3ó C…¤ðøBšÙ C…ÍLCnC…3sCÃ5C…�‚CÍÌC…À C¸^C…f&C3³C…HaCH¡C…=JC®C…ö¨C=JC…¤ð!C…+C…ö¨%C×ã C… ×'Cf& C…ö¨'CšÙ C…ì%C¸Þ C…@!Cöè C…R8CR8C…3óC€C…q=Cö¨C….CÀC…šÙ CázC…{ÔCR¸C…qýCÃõC…RøCÃ5 C…ffúBR¸ C…õB×£ CæE%!#)ÿ¡€ ¢€ôBÍ C¢ìÑûBšC¢H!C33C¢®ÇCf&C¢�B C WÿB¢áúC3³ýB¢=ŠC¸žýB¢{CR¸ÿB¢CC¢=Š Cì‘C¢E$Cq½C¢{”'Cá: C¢…ë'CÅ C¢…«%CìC¢¸"Cf¦C¢Ã5C C¢×£CHaüB¢®C{”úB¢HáC)ÜúB¢šÙ C®ûB¢¤°C\þB¢=ŠC¤0C¢ìÑøBÃuC¢ìÑóBf¦ CçE%!#)ÿ† C€ìC™î?‰¼’ˆA—èE%5<�ÿ‡¼�½ŒOCULUS† CúC™î?‰À’ˆA—éE%5<�ÿ‡À�ÁŒCLAUSUSÄ€ ÅÃ¥CÍ DÅ{©C ‡DÅ{ô¬C DÅ… ­CöøDÅ{©C¸^DÅ�¥C¤DêE%5<�ÿÍ€ Î{”ÅC)üDÎ…kÉCì¡DÎ{tÍC®DÎ…‹ÍCRøDÎ…kÉCHqD΀ÅCîDëE%5<�ÿÖ€ × æC) D×öêC —D× ÷íCfD×öîCšùD×®êC…kD×�æC¸þDìE%5<�ÿ߀ àá:Dá Dà>DžDàá:D DàEDöøDà>D®wDàì1DþDíE%5<�ÿè€ é3ƒDÃD隉D¸ŽDé…{DÃDé{„D=úD隉D`DéšyDšùDîE%5<�ÿñ€ ò¤À#D{Dò¸¾%D\ŸDòáº'D DòÅ'DöøDò¸¾%DÃuDò ·#D®÷DïE%5<�ÿú€ û®ÇQC{ôßCûq}OCäCûöèMCÃÕçCû�ÂKC{ÔëCûìÑJCáúïCû.KCðCû¸^MCìCû ×NCìñçCûöèPCö(äCû33RCHàCðE%5<�ÿ‡ € ˆ \ED®àCˆ ö¸EDšäCˆ ¤@FDRèCˆ ì¡FDšìCˆ ì1GDfðCˆ NGDšùïCˆ … GD…ëëCˆ ׃FDRøçCˆ FD3óãCˆ …›EDqýßCñE%5<�ÿ” • @&D•C• \¿ D)¼ÊC• HA·CÃ5¶C• HA·C{”gC• \¿ D®‡>C” úC•CPBŒBòE%µÖæÿ” Áó€? ÃÃ`u°Ã†ž TCš™»B‰Ÿ ’B—óE%5<�ÿ‡Ÿ �  ŒDá›�ᚾᚳá›�ᛈá›�á›� á›�ᚢᚱᚨᛗᛖᚾá›�ᚢᛗ ᛗᚨᚾᚢᛊŸ Áž ¤ ¥ …ë+CÍÌUC¥ ÃõyCÍÌQCôE%Ncuÿ¤ Á†ž ÃõCÍÌEC‰ª ’…oA—õE%Ncuÿ‡ª �« Œ"ᛗᛟᚾᛊ ᛊᚨá›�ᚢᚱᚾá›�ª Áž ¯ ° ;C…C° ÃõyC…ëvCöE%Ncuÿ¯ Á†ž ÃõCRxjC‰µ ’q=vA—÷E%Ncuÿ‡µ �¶ Œ"ᛚá›�ᚾᛖᚨ ᚳᛟᚱᛞá›�ᛊµ Áž º €» š™ Cff–C» ÃõyC€‘CøE%Ncuÿº Á†ž ÃõCÀ‹C‰À ’hA—ùE%Ncuÿ‡À �Á Œᛚá›�ᚾᛖᚨ áš¡á›�á›�ᚨᛖÀ Áž Å Æ ×£"C¢CÆ ÃõyCáz£CúE%NcuÿÅ Á†ž ÃõCá:�C‰Ë ’= wA—ûE%Ncuÿ‡Ë �Ì Œᛚá›�ᚾᛖᚨ ᚠᚨá›�á›�Ë Á†ž ffTCöˆ¹C‰Ð ’®WA—üE%5<�ÿ‡Ð �Ñ Œ%ᛟᚳᚢᛚᚢᛊ ᛈᚨᛚᛗᚨᛖÐ Áž Õ € Ö ì‘CÃõ“CÖ q=C)\“CÖ {”C\O’CÖ {TC)|‘CÖ @!Cö(‘CÖ ¸^$CÍì�CÖ q='C¸‘CÖ qý)C®Ç‘CÖ �Â,Cìñ’CÖ šÙ-C דCÖ š™,C…”CÖ E*Cq}•CÖ ¸'Cf&–CÖ )$C…K–CÖ 3ó CHa–CÖ ÍLCf–CÖ ¸žCHA•CÖ \OC)\”CÖ ÍŒC×c“CÖ fæCÍl“CÖ ®C…K”CÖ R8C)”CÖ )ÜCRx“CÖ {Cì‘“CÖ ÃuC¸”CÖ ö¨C”CÖ ®GCî”CÖ ÍÌC�â•CÖ ÍÌC®–CÖ ¸Þ C¤ð–CÖ Ã5$C�â–CÖ ff'C�¢–CÖ áº*CHá•CÖ ÍL-Cå”CÖ fæ.CHá“CÖ R¸-Cf†’CÖ ¸ž*CN‘CÖ ×£'C¸~�CÖ ×c$CfF�CÖ Rø Cq]�CÖ =ÊC{Ô�CÖ …«C챑CÖ {TCÃÕ’CÖ ìÑCq}“CýE%!#)ÿÕ Áž … ×£"C=Ê“Cff¦@ff¦@þE%!#)ÿ… Áž ‰ € Š òBšY�CŠ Ha÷B®G�CŠ ÃõýBö¨�CŠ )ÜC¸žŒCŠ ÅCÍlŒCŠ )C…ËŒCŠ ¤p Cö¨�CŠ � C�CŠ H¡ C ÷�CŠ =J C.“CŠ � C…‹•CŠ ®G C¸^—CŠ ¤ð C×C™CŠ  W Cìq›CŠ …k Cìq�CŠ @ Cö¨ŸCŠ ¸ž C×áCŠ šÙ C= ¤CŠ {”C ¦CŠ .Cq¨CŠ  ×C ·©CŠ {ÔCfƪCŠ @C ªCŠ šÙCáZ©CŠ �ÂCì‘§CŠ = C¸ž¥CŠ ¸žC=Š£CŠ  W C×c¡CŠ …ë Cf†ŸCŠ {Ô C…�CŠ =Š C ›CŠ E C€™CŠ ×cC¸~—CŠ öèCŽ•CŠ ®Cš“CŠ ×ã CÎ�CŠ ì‘ Cö¨ŽCŠ ×ã C… �CŠ \C=ê‹CŠ šÙCHa‹CŠ …+CÃÕ‹CŠ ázûBáúŒCŠ R¸õBåŽCŠ ffñBì1�CÿE%5<�ÿ‰ Áž ¹ € º 3³þB)¼ƒCº ®Cš™„Cº ®CHá…Cº )Ü C\/‡Cº ¸Cö(ˆCº ázCš™ˆCº ¤0C×CˆCº Ã5C%‡Cº ×ã Cö†Cº ¸Þ$CR…Cº ìQ(CÅ„Cº Ã5-C… …Cº  ×1CÍ,†Cº ìQ6CfF‡Cº ¸ž:CÃU‡Cº \O?C®'†Cº ázCC¤ðƒCº ¸žEC…+‚Cº �BEC®‚Cº ÃuBCq}ƒCº ×c>C…‹…Cº q=:C\�†Cº ®Ç6C¤p†Cº =Š2C\o…Cº  —-CRX„Cº ®G(C%„Cº …$CR˜„Cº ¤p C)œ…Cº …«Cf¦†Cº q½CއCº =ŠCöè‡Cº H¡CÃU‡Cº �‚ C3s†Cº ®ÇC 7…Cº ×£Cö„Cº \ÿBÍŒƒC€F%5<�ÿ¹ Áž á € â áº!C{t£Câ n!C=Ê¡Câ H¡ C{tŸCâ \� C�âœCâ Rø CÅšCâ 3³!Cö¨˜Câ �#CN–Câ ¸ž#CšÙ“Câ {Ô#Cq½‘Câ �$Cá�Câ öè#CẌCâ ¸^#C챊Câ {Ô"CRX‰Câ 3s"CáZ‰Câ ×#"C¸¾ŠCâ Ãu"CfÆŒCâ ì‘"Cq�Câ ÍÌ"C)¼‘Câ À"C\Ï“Câ "C{4–Câ šÙ C¤�˜Câ ÃõC챚Câ šYCáÚœCâ ìQC�‚ŸCâ …+ C=ê¡Câ …k!C¸~£C�F%5<�ÿá Áž ÿ € € áúìBްC€ ÍLòBHá°C€ ×£øB¸^±C€ ÃuCì±±C€ 33C×ã±C€ 3³ C 7²C€ HaCöˆ²C€ �‚Cöˆ²C€ ÃõCö¨²C€ .Cq}²C€ ®GC…k²C€ 33#C®G²C€ ÍŒ'Cá²C€  ,C²C€ Ãõ/C{´±C€ \�4CÃu±C€ ¸9CH!±C€ Å=CÍì°C€ ìBC)|°C€ šEC33°C€ ÍÌGCắC€ R¸GC®‡¯C€ ¤ðDC®§¯C€ \ÏACö¨¯C€ …=C °C€ ¤ð8CáZ°C€  W4C¥°C€ À/CÍ ±C€ Rø+C¤p±C€ áz'C\�±C€ )#C¸¾±C€ á:CÍì±C€ ×#CRø±C€ ÃõCH²C€ ÍŒCìñ±C€ €CÃÕ±C€ öè Cöˆ±C€ ffCf±C€ )œCáú°C€ �BùB{”°C€ ö¨òBáZ°C€ {íBq]°C‚F%5<�ÿÿ Áž ­ € ® �BíB ·µC® ®ñB×C¶C® ö(ùB¸ž¶C® ÅCšÙ¶C® ×#CR·C® ®Ç Cšy·C® ö(Cq½·C® ×cCÃÕ·C® ÅCÍÌ·C® öèC¤°·C® ìQCq�·C® @#Cöˆ·C® \Ï'Cìq·C® 33,CÍ,·C® = 0C¸þ¶C® ×£4CÕ¶C® šY9Ce¶C® î=CÍ,¶C® =ÊAC=ªµC® …kECì1µC® ®ÇGCÃõ´C® q½GCq½´C® EECõ´C® ázACìñ´C® ö¨=CšYµC® .9C)œµC® Ãu4C=êµC®  ×/C¤P¶C® = ,Cöˆ¶C® 3³'Cå¶C® Ã5#C3·C® ÍLCq·C® ¸ÞCq·C® ÀC¸>·C® ¤pC®'·C® ®GCqý¶C® Rø CÍ̶C® ¸^CHa¶C® ÃõC¸þµC® ázùBHáµC® ¸òBR¸µC® €íB=еCƒF%5<�ÿ­ Áž Û € Ü ¤ðìB)»CÜ ¤ðñB×c»CÜ š™øB=Ê»CÜ  —CÍ ¼CÜ ×ãC׃¼CÜ f¦ C�¼CÜ ECżCÜ Ã5C= ½CÜ ìÑC¸½CÜ šC¤ð¼CÜ ìQC)ܼCÜ €#CfƼCÜ =Š'Cö¨¼CÜ fæ+C¸~¼CÜ .0C%¼CÜ ¸ž4Cå»CÜ Ã59C¤�»CÜ õ=CšY»CÜ  BC=êºCÜ ¸EC{”ºCÜ =ÊGC®'ºCÜ áºGC)ü¹CÜ 3óDC… ºCÜ \ÏACH!ºCÜ €=CᚺCÜ 9Cš¹ºCÜ ×c4CûCÜ ¤ð/Ce»CÜ áº+Cà»CÜ n'C¼CÜ ¤p#C=J¼CÜ ®GC3S¼CÜ Í C=j¼CÜ ÍÌC)|¼CÜ ìQC\o¼CÜ HaCq¼CÜ À C¼CÜ f&C ·»CÜ ìÑC…K»CÜ áúøBá»CÜ �BòBRغCÜ íBåºC„F%5<�ÿÛ Áž ‰ € Š ×£ÝB.ÐCŠ ®GÞBHáÎCŠ \�ÞB€ÍCŠ �ÂßB×ÌCŠ = àB×CÊCŠ .áBf&ÈCŠ HááB{4ÆCŠ = ãB3óÃCŠ ×#äBf¦ÁCŠ ®GåB@¿CŠ R¸æB®Ç¼CŠ šçB wºCŠ )\èB3¸CŠ ázéBášµCŠ 33êBÃU³CŠ ÍLëB.±CŠ …ìB�¯CŠ .íB×C­CŠ q½íBšy«CŠ R¸îBÃõ©CŠ HaðB{Ô¦CŠ ñBR¤CŠ fæñB3Ó¡CŠ \�òBåŸCŠ ¤ðóB…+žCŠ ®óB —œCŠ �ÂôBîšCŠ =ŠôBÍL™CŠ áúõB®ç–CŠ Ha÷B)ü”CŠ ÍÌ÷BH“CŠ  WøB¥�CŠ ¤ðöBR¸�CŠ ÍÌõBŒCŠ fæôBÊCŠ ÍLóB3ó‡CŠ áúðBÍÌ…CŠ 3³îB¸žƒCŠ \�ìB¸>�CŠ …ëêB®~CŠ ázèB3³yCŠ ×#æB…+uCŠ ÍÌäB…ëpCŠ ö(âBEmCŠ ö(ßBš™hCŠ ÝBÀcCŠ ®GÚBö(_CŠ š™×BqýZCŠ …ÕB\WCŠ q=ÓBqýRCŠ R8ÑB3sOCŠ q½ÏB…ëKCŠ áúÍB�‚FCŠ ¸ÎBšÙACŠ R¸ÍBRx=CŠ ®ÍBáº9CŠ =ŠÎBìÑ6CŠ 3³ÐB)\2CŠ 3³ÓB33/CŠ ®ÇÖB…k-CŠ …ÛB®‡,CŠ šáB¤°,CŠ .æB\.CŠ ×£êBî.CŠ š™íB®1CŠ {”óBf¦9CŠ …ëôB…+CŠ ®ÇC¤pCCŠ {ÔC¸žHCŠ ÅCH¡MCŠ ÍLC…kRCŠ HaC¸žWCŠ 3sC \CŠ ázC aCŠ �‚C…eCŠ …kCöèiCŠ )ÜCìÑmCŠ R¸CÍŒqCŠ �ÂCÍŒtCŠ C…wCŠ …+CH¡yCŠ ¸^C�¢�CŠ = Cšy�CŠ ×c!C=J|CŠ ¤ð!CR¸yCŠ ®‡"CR¸vCŠ ¸Þ"CÍÌrCŠ �#Cš™nCŠ áº#C)jCŠ áú#C{ÔdCŠ ff$C�`CŠ Ãõ$C [CŠ š™%C…ëUCŠ ¸Þ%CÃõPCŠ ®G&C ×LCŠ …&CÍŒHCŠ Há&Cá:ECŠ f&'Cq}?CŠ ìQ'Cöh:CŠ ®‡'CÀ5CŠ q½'C 2CŠ Há'CRx.CŠ ¸(C=J+CŠ ¸^(C×#(CŠ ö(*Cq}"CŠ =Š,Cf¦CŠ šY.C=JCŠ …+1CqýCŠ 3ó3C¤ðCŠ \�6CRxCŠ E8C×# CŠ =Š9CH¡!CŠ ¤°9C®+CŠ =Ê9Cf&.CŠ 339C¸1CŠ =J9C3ó4CŠ ¤ð8C)œ8CŠ n8C…ëC3srCŠ 3ó>C)ÜmCŠ f&@C33iCŠ ÃuACšdCŠ = BC…_CŠ Ã5CC…ëZCŠ @DCö(WCŠ {ÔDCf¦SCŠ öèECQCŠ áúGCšICŠ  WICRøECŠ HáJCšÙCCŠ ¤ðLCÃ5ACŠ Ã5OC)\?CŠ 3sQCìÑ>CŠ Ã5TC×c?CŠ áúVCÍŒACŠ …+YC.DCŠ ìÑYCì‘ECŠ R8YC…+HCŠ …kWC®QCŠ ÃõVC�BTCŠ ®GVC¸WCŠ {VC®ÇZCŠ \UC —^CŠ ETCÍ cCŠ {SCRxgCŠ \ORCqýkCŠ ÃuQC{ÔpCŠ .PC®ÇuCŠ ¤pOC=ÊzCŠ …+NCf¦CŠ )\MCö‚CŠ \LCÃU„CŠ nKC †CŠ …JC�¢ˆCŠ ®JC쑊CŠ ÍŒIC¸ŒCŠ RøHC×£�CŠ f¦HCR¸ŽCŠ …+HC¤°’CŠ öhKC¸þ’CŠ …ëNC®ç�CŠ …«PC…Ë�CŠ ÍÌRC\OŽCŠ �UC…kŒCŠ EWC=*ŠCŠ  ZC=*ˆCŠ ®\C\/†CŠ ¤p^C\o„CŠ q=`CÍ ƒCŠ dC¤p€CŠ qýfC…+~CŠ áºiC¤ð|CŠ ìlCÅ|CŠ €nC×#~CŠ ÃõpCáºCŠ ®sCá:�CŠ ®tCšù‚CŠ )uCq½„CŠ ®tCH!†CŠ ®ÇqC×ã‡CŠ ¸^nCáÚŠCŠ Í mC®'ŒCŠ EkC=Ê�CŠ öèhC)|�CŠ ÅfC…K‘CŠ áºdC{4“CŠ ÍŒbC®•CŠ €`C3—CŠ ¤0^CרCŠ ¸ž\C×cšCŠ ÃõYCHAœCŠ \ÏWCR¸�CŠ {”UC�âžCŠ {SC¸> CŠ 3óPC…+¢CŠ šOCö¨¤CŠ \�MC®¨CŠ \ÏLC{T©CŠ RøKC¸«CŠ 3óKCà¬CŠ îJCå®CŠ R¸JCš9±CŠ ÃõIC\O³CŠ R¸ICq�µCŠ q=ICf&¸CŠ ì‘HC{tºCŠ @HC…ë¼CŠ ö¨GC¸>¿CŠ …kGCR¸ÁCŠ \GCRøÃCŠ š™FCÍ,ÆCŠ õFCfFÈCŠ \FCÍ,ÊCŠ �FC{ÌCŠ ö¨EC\¯ÍCŠ )\EC…ëÎCŠ Ã5ECšÐCŠ …«EC¸ÐCŠ ÃõEC{ôÎCŠ ÍLFCR¸ÍCŠ ®FCšÌCŠ ®ÇFC{4ÊCŠ öhGCÍLÈCŠ ffGC33ÆCŠ Í HCÄCŠ  WHCÀÁCŠ ÅHC…K¿CŠ =JICRø¼CŠ H¡IC׃ºCŠ ¤pJCš9¸CŠ qýJC…«µCŠ  WKC�b³CŠ 3óKCÍL±CŠ nLCH¯CŠ ÍLMCRø¬CŠ \�MC)<«CŠ €NC…‹©CŠ ìOC 7¨CŠ ¤°PCå¤CŠ \�RC=Š¢CŠ ¸žTCÍÌ CŠ = WCŽŸCŠ ¤0YCfFžCŠ ×c[CfÆœCŠ Ã5^C×ãšCŠ ¤ð_C…K™CŠ ÍLbC ——CŠ q=dCáz•CŠ ¸^fC®“CŠ ÍŒhC…Ë‘CŠ �‚jCqý�CŠ HálC=JŽCŠ õnC)œŒCŠ 33pCq]‹CŠ ffsC`ˆCŠ ¤ðuCH¡†CŠ {wC ׄCŠ ÅvCö¨‚CŠ ì‘tCHÁ€CŠ )\rC{T~CŠ {”oC\O|CŠ �‚lC×ãzCŠ ö(iC)ÜzCŠ öèeCf¦|CŠ š™bCf¦CŠ =Š^Cìq‚CŠ Å\C�âƒCŠ HaZC¤°…CŠ .XCš™‡CŠ ®UC챉CŠ {SC×ã‹CŠ  QC�Â�CŠ öèNCf&�CŠ 3sMC3S�CŠ á:JCHA’CŠ f&JC…‹’CŠ õJCÍÌŽCŠ ÍÌJC=Ê�CŠ ázKCÍLŒCŠ {LC ·ŠCŠ ázLC¤ÐˆCŠ ì‘MCìцCŠ ¸NC®‡„CŠ H!OC)<‚CŠ ìPC… €CŠ =JQCö({CŠ RøQC×#vCŠ @SCá:qCŠ 33TC WlCŠ UCfægCŠ @VC€cCŠ ¸WC�_CŠ ÍÌWCÍ [CŠ \OXC¤pWCŠ îXC®TCŠ 3sYC\RCŠ @[C=ŠHCŠ =Š[C3sECŠ ö¨ZC33CCŠ ®GXC.@CŠ îTCHá=CŠ ázQC®=CŠ šYNCR¸=CŠ q½KCÍ @CŠ …ICÅBCŠ ×£GC= ECŠ )\FCš™HCŠ šDCÃuPCŠ .CC33SCŠ HaBCÀVCŠ {”AC…ZCŠ …k@C¤0_CŠ ì‘?CáºcCŠ …>C\ÏhCŠ €=C�‚mCŠ R8CŠ ×#CÀ9CŠ {CRx5CŠ CRø0CŠ öèC×#-CŠ ö¨Cq=)CŠ ¸žC ×%CŠ \OC®#CŠ  C®‡ CŠ  —C¤0CŠ .C®‡CŠ šYC¸CŠ qýCîCŠ áºC ×CŠ ÍÌ C¸^CŠ H¡ CîCŠ Ã5CöhCŠ ìÑC¸CŠ áºC®"CŠ q=CR¸&CŠ {”CHá-CŠ ÃuC…+1CŠ H!C)Ü4CŠ á:C®Ç8CŠ )ÜC=CŠ šC¤pACŠ 3sC@FCŠ …+C�KCŠ  —CöhOCŠ )ÜCÍ TCŠ ×# CH!XCŠ \O CE\CŠ � Cqý`CŠ f& CÍŒeCŠ ®‡ C WjCŠ =Š C¸ÞnCŠ =Ê C@sCŠ { CffwCŠ ×ã C¤ðzCŠ Ã5 C3ó}CŠ ) C×€CŠ ö¨ C=j‚CŠ ×£ Cš9‚CŠ ö¨ Cî|CŠ =ÊC®‡zCŠ �BCÍŒwCŠ �ÂC\OtCŠ …«C¤0pCŠ ÀCáúkCŠ = C)œgCŠ  C×ãbCŠ f&Cq=^CŠ EC¸YCŠ {TC¸žTCŠ q}C3³OCŠ ÃuÿB…+KCŠ fæüB×ãFCŠ ö(ûB{”BCŠ ÍÌùB ×>CŠ ázøB®Ç;CŠ �B÷BÍ 9CŠ ñBÍL0CŠ ×#íBq}-CŠ èBö(,CŠ \âB\Ï*CŠ ÃõÚB…«*CŠ ìÑÔB×ã+CŠ = ÐB= .CŠ .ÍB�Â1CŠ ffÊB)\6CŠ …ÉB —9CŠ ÍLÉB�‚=CŠ R¸ÉBöèACŠ áúÉB3³FCŠ HáËBELCŠ  WÍB…ëOCŠ )\ÏB®‡SCŠ …ÑB —WCŠ …kÓBH¡[CŠ q½ÖBR¸_CŠ \ÙB�BdCŠ š™ÛBšiCŠ ö¨ÞB{ÔmCŠ =ŠàB…kqCŠ \âB¸žuCŠ š™äB�BzCŠ )\çB3s~CŠ ®èBìq�CŠ .ëB ׃CŠ €íB®†CŠ ®ïB×#ˆCŠ �ÂðBq=ŠCŠ šòBö(ŒCŠ {óBÃÕ�CŠ \ôB®�CŠ ö¨óB3ó’CŠ .óB¸Þ”CŠ .òBÀ–CŠ ÃuðBš9™CŠ áúðBHášCŠ áúïB׃œCŠ q½ïB žCŠ ¸ïB…ËŸCŠ q=îB)¼¡CŠ ffíBf¤CŠ ×£ìB)¼¦CŠ ×#ëBšÙ©CŠ ®ÇêBöh«CŠ HaêB33­CŠ HaéB=ê®CŠ ffèB ±CŠ =ŠçBE³CŠ q½æB…‹µCŠ \æB׸CŠ …ëäB=jºCŠ ¤päBẼCŠ HaãB¤0¿CŠ )\âBR˜ÁCŠ šáBåÃCŠ q=àBö(ÆCŠ ázßBáÈCŠ ö¨ÞBq=ÊCŠ HaÞBšùËCŠ ®GÝB wÍCŠ R8ÝBqÝÎCŠ �ÂÜB®'ÐC…F%!#)ÿ‰ Áž á +DDC�B�Bá +DDC¤B¤B†F%NcuÿáÁž æç(D{:Cçõ(D@;Cæêš¹)DÃ5Cíq],D�‚?CæðH!-DRx@CðH.D×£ACæóÕ.Dš™BCóÅ/DÅCCæöš‰0DáºDCööx1DfæECæùq=2DšÙFCùÍ,3D®HCæü=º'DC©qÍ1DÍ CC¨¬Í\/Dš™@C¬¤À1D¤pFC¨¯H¡.D{TBC¯׳1D ×IC¨²Ãå-DÍ DC² §1Dá:MC¨µ=*-D®ÇECµ=š1D¸žPC¨€¸¸n,D€GC¸q�1DTC¨»ìa,DfæJC»ìÑ0Dq½UC¨¾ÃU,D=JNC¾f0DRxWC¨€ÁöH,D¤°QCÁáZ/D33YC¨Ä)<,D{UCÄ\Ÿ.D…ëZC¨Ç\/,DRxXCÇ×ã-Df¦\CˆF%!#)ÿ¨Á†ž á*%Dq½5Cî?ï?‰Ì’ A—‰F%5<�ÿ‡Ì�͌ᛰÌÁ†ž +DDCî?ï?‰Ñ’¨A—ŠF%!#)ÿ‡Ñ�ÒŒᛯÑÁ†ž áª(D¤pC‰Ö’ö(8A—‹F%Ncuÿ‡Ö�׌ ᛚᚢᛪÖÁ†ž q�&D\ÏoC‰Û’¤pEA—ŒF%Ncuÿ‡Û�ÜŒᚢᛗᛒᚱᚨÛÁ†ž '  ; °C)œC‰à’q=®A—�F%%3ÿ‡à�áŒ/áš á›�ᚡᛖ áš á›�ᚾᚷᛖᚱᛊ᛬ ᛟᚾᛖàÁ†ž ¦›Äº °Cöh.C‰å’ff°A†¤p½>—ŽF%%3ÿ‡å�æŒCᚢᚾᛒᚱᛟᚲᛖᚾ ᚡᛟᚹ᛬ á›�ᚺᛖ ᚺᚨᚾᛞ á›�ᛊåÁ†ž 4€·: °C�ÂIC‰ê’ff°A—�F%#+:ÿ‡ê�ëŒ7ᚱᚨá›�ᛊᛖᛞ ᚨᚾᛞ á›�ᚺᛖ ᚡᛟᚹ á›�ᛊêÁ†ž oƒº °CšgC‰ï’ÍÌ®A—�F%#+:ÿ‡ï�ðŒ9ᛊᛈᛟᚲᛖᚾ á›�áš¾á›�ᛟ á›�ᚺᛖ ᛈᚨᛚᛗ᛫ïÁ†ž  ×#; °Cš�C‰ô’ ׯA†R¸^?—‘F%)3Dÿ‡ô�õŒQᚹᚺᛖᚱᛖ á›�ᚺᛖ ᛖᚣᛖ ᚹᚨᛊ ᚳᚢá›�᛬ á›�ᚺᛖᚾ á›�ᚺᛖôÁ†ž B`e» °CRØŽC‰ù’š™±A†ìQ¸?—’F%%3ÿ‡ù�úŒ]ᚹᚱá›�ᛊá›� á›�ᛊ ᛒᛟᚢᚾᛞ á›�ᚺᚱᛖᛖ á›�á›�ᛗᛖᛊ áš¹á›�á›�ᚺ ᚱᛖᛞùÁ†ž °CìñŸC‰þ’ A—“F%5<�ÿ‡þ�ÿŒI.þÁ†ž  ×#; {´¹C{tžC‰ƒ’{¢A—”F%)3Dÿ‡ƒ�„ŒLá›� ᛊᚹᛖᚨᚱ ᛒᚣ á›�ᚺᛖ ᛖᚣᛖ á›�áš¾ ᛗᚣ ᛈᚨᛚᛗ᛬ƒÁ†ž °Cìq¬C‰ˆ’ A—•F%5<�ÿ‡ˆ�‰ŒII.ˆÁ†ž úíë: =ª½CîªC‰�’¤pŸA—–F%%3ÿ‡��ŽŒGá›� á›’á›�ᚾᛞ ᛗᚣ á›�ᛟᚾᚷᚢᛖ áš¹á›�á›�ᚺ ᚳᛟᚱᛞ᛬�Á†ž °Cìñ¸C‰’’ A——F%5<�ÿ‡’�“ŒIII.’Á†ž í >;  ÁC`·C‰—’®GŸA—˜F%)3Dÿ‡—�˜ŒJá›� á›’á›�ᚾᛞ ᛗᚣ ᚹᚱá›�ᛊá›� á›�ᚺᚱᛖᛖ á›�á›�ᛗᛖᛊ᛬—Á†ž °CìqÅC‰œ’ A—™F%5<�ÿ‡œ��ŒIV.œÁ†ž $—; ¤0ÀCÄC‰¡’�Â�A—šF%#+:ÿ‡¡�¢ŒEá›� áš·á›�ᚡᛖ ᛗᚣ ᚾᚨᛗᛖ á›�ᛟ á›�ᚺᛖ ᛞᚨᚱᚲ᛬¡Á†ž °CìñÑC‰¦’ A—›F%5<�ÿ‡¦�§ŒV.¦Á†ž _)K» á:¼C€ÐC‰«’®G¡A—œF%)3Dÿ‡«�¬Œ`ᚹᚺᚨá›� á›�ᚺᛖ ᚺᚨᚾᛞ ᛊᚹᛖᚨᚱᛊ á›�ᚺᛖ ᚺᚨᚾᛞ ᚲᛖᛖᛈᛊ᛬«Áž °€ ±®vC)<úC±\yC¤úC± }CáúC±¤ð€C×#úC±¤pƒCHáùC±\†CHaùC±ÃUˆCšyøC±…ë‰C×#÷C±n‹C wõC±�C®ÇóC± wŽCšÙñC±\¯�C ðC±šù�CRøîC± ÷‘C3sîC±33”CìñîC±®g–C¤�ðC±˜C¤óC±�¢˜C®çôC±á˜C�‚öC±ͬ–Cf†øC±š¹”C=júC±š¹’C®çûC±à�CͬüC±¸>�C3SüC±ö�C{ûC±3óŠC3³ùC±=ª‰CqøC± W‰C=*÷C±®'ŠC{TöC± ‹C\oõC±öÈ�C®ôC±š�C¸þóC±š¹’C)œóC±áú”C wóC±×£–CåóC±ΘC=ªôC±{ôšC€õC±áúœCf¦öC±)ŸCHÁ÷C±š¡C�¢øC±q�¢CášùC±3ó£CáúC±Í ¤CåùC±qÝ¢C.ùC±®g¡C øC±…‹ŸC…ëöC±®g�CàõC±¸^›C×£ôC±�"™CÎóC±{ô–C…ëòC±Í •C{tòC±¸ž’C¸žòC±�â�CóC±Ãu�C)¼óC±×C‹Cì±ôC±f¦‰C{´õC±)œˆCRøöC±ÍìˆCÍŒøC±3sŠCfFúC±�¢ŒC¸¾ûC±�C\ïüC±Ãõ�C×cýC±\“C)|üC± 7•CšùúC± —CfæøC± ˜CÍÌöC±¸^™CöèôC±ŘCì±òC±ö—CRøïC±…”C®GîC±Ãõ‘CÕíC±׃�C=JîC±�CRxïC±ì±�CöHñC±öHŒC.óC±×ÊCRØôC±{4‰CfföC±R؇Cf¦÷C±ÍÌ…CÃuøC±=JƒCHáøC±)Ü€C 7ùC±= }Cq}ùC±qýxCf¦ùC±¤ðuC ÷ùC�F%5<�ÿ°Á†ž q=vC®'þC‰ˆ’ÃõLA—žF%Ncuÿ‡ˆ�‰Œ"ᚾᛟᛞᚢᛊ ᛈᚱá›�ᛗᚢᛊˆÁž �€ Ž=êªCÃúCŽ)\¬C¤0úCŽ€®C 7úCŽáÚ°C…+úCŽ —³CÀùCŽR¶CRXùCŽá:¸CfføCŽ{ô¹Cq÷CŽìq»C¤�õC޽C×ÃóCޏ~¾C�âñCŽ¸Þ¿C=*ðCŽÁCHïCŽ{ÂC¤PîCŽRÄCHïCŽáZÆC¥ðCŽÈCóCŽR˜ÈC{ôôCŽ)üÇC€öCŽášÆC)œøCޏžÄC…‹úCŽ…«ÂCH!üCŽ ÷ÀCR¸üCŽìQ¿C@üCŽ�"½CÍ,ûCŽÃõºC\¯ùCŽ ¹C¤øCŽ�b¹C)÷CŽ{4ºC)\öCŽŽ»C3“õCŽ…«½C×ÃôCŽÃ5ÀCqýóCŽì±ÂCHaóCŽRØÄCš™óCŽš™ÆCáÚóCŽ®ÈCf¦ôCŽfÆÊC�¢õCŽÍìÌCfÆöCŽö(ÏC\Ï÷CŽ\ÑCÃÕøCŽ�ÂÒCq�ùCŽìñÓC)úCŽÔC×ãùCŽÃõÒCá:ùCŽ×cÑC�BøCŽ —ÏCf÷CŽ�bÍCqÝõCŽ33ËCöÈôCŽÃÉCì±óCŽšÙÆC3óòCŽRøÄC3“òCŽq�ÂCÍlòCޤð¿C)üòCŽ3S½C…ËóCŽ®'»Cq½ôCŽ ¹C)œõCŽ…‹¸C�âöCޏþ¸C\oøCŽìqºC×CúCŽ�¼CìÑûCŽ… ¿C¤ðüCŽ�ÁC wýCŽÃõÂC üCŽÃÅCÃûCŽ\/ÇC ùCŽ{”ÈC¤ÐöCŽ{TÉCRøôCŽõÈC®§òCŽÃõÆC\ðCŽ�‚ÄCR8îCŽìÂC�‚íCŽ�‚ÀC®GîCŽ×#¿C€ïCŽì±½CEñCŽšY¼CÍ,óCŽö¨ºCÃÕôCŽ3S¹CnöCŽ=Ê·C)œ÷CŽεCÃUøCޤp³C ×øCޏ¾°CÃ5ùCŽÃu®C®‡ùCŽšY¬Cì±ùCŽöèªCRØùCŸF%5<�ÿ�Á†ž ¤0©C\/þC‰å’LA— F%Ncuÿ‡å�æŒ%ᚾᛟᛞᚢᛊ ᚢᛚá›�á›�ᛗᚢᛊåÁ†ž PCáDî?‰ê’pA—¡F%Ncuÿ‡ê�ëŒclavisêÁž ïð*C€ DðvC€ Dïó*C-DóvC-Dïö*C€ Dö*C-DïùHC€ DùHC-DïüvC€ DüvC-Dïÿ*CDÿvCDï‚*C€D‚vC€Dï…*C D…vC Dïˆ*C€&DˆvC€&D¢F%NcuÿïÁ†ž 9CH¡ Dî?‰�’€A—£F%5<�ÿ‡��ŽŒS�Á†ž [CŽ D‰’’¨A—¤F%!#)ÿ‡’�“Œᛊ’Á†ž 9CH!Dî?‰—’€A—¥F%5<�ÿ‡—�˜ŒN—Á†ž …«YCD‰œ’¨A—¦F%!#)ÿ‡œ��Œáš¾œÁ†ž 9CH¡Dî?‰¡’€A—§F%5<�ÿ‡¡�¢ŒR¡Á†ž q½YCŽD‰¦’¨A—¨F%!#)ÿ‡¦�§Œáš±¦Á†ž 9CH!!Dî?‰«’€A—©F%5<�ÿ‡«�¬ŒH«Á†ž ìQWCD‰°’¨A—ªF%!#)ÿ‡°�±Œᚺ°Á†ž 9CH¡'Dî?‰µ’€A—«F%5<�ÿ‡µ�¶ŒLµÁ†ž {ÔZCŽ%D‰º’¨A—¬F%!#)ÿ‡º�»ŒᛚºÁ†ž ùÉ¿ B D‰¿’`A—­F%Ncuÿ‡¿�ÀŒUáš á›�ᚡᛖ áš á›�ᚾᚷᛖᚱᛊ᛬ ᛟᚾᛖ ᚢᚾᛒᚱᛟᚲᛖᚾ ᚡᛟᚹ᛬¿Á†ž $—» ØCáæC‰Ä’˜A†Ház?—®F%#+:ÿ‡Ä�ÅŒZᚳᛟᚱᛞ ᚨᚾᛞ á›�ᚺᛖ ᚲᚾᛟá›�ᛊ ᚨᚱᛖ ᛊᛖᚨᛚᛖᛞ áš¹á›�á›�ᚺÄÁ†ž ·Ñ¸ €)D¥òC‰É’®™A†…ë‘?—¯F%%3ÿ‡É�ÊŒCᚹᚨᛪ᛬ á›�ᚺᛖ ᚺᚨᚾᛞ á›�ᚺᚨá›� ᛊᚹᛖᚨᚱᛊÉÁ†ž ³{r» €)D ÿC‰Î’…ë™A†×£p?—°F%%3ÿ‡Î�ÏŒCᛊᚺᚨᛚᛚ áš¹á›�á›�ᚺᛖᚱ ᛒᚢá›� á›�ᚺᛖ ᚳᛟᚱᛞÎÁ†ž úC8B™î?‰Ó’ A—±F%5<�ÿ‡Ó�ÔŒ/C U L T O F T H E U N S E E I N G S U N†ž úC@ D™î?‰×’ B—²F%!#)ÿ‡×�ØŒTHE OATH†ž úC€D™î?‰Û’àA—³F%!#)ÿ‡Û�ÜŒFive fingers. One unbroken vow.†ž úC€%D™î?‰ß’¸A—´F%5<�ÿ‡ß�àŒ"The hand that swears shall wither.†ž úC/D™î?‰ã’�A—µF%5<�ÿ‡ã�äŒII / V . 3ž ç€ èšC3óCèì"CHá!Cè=J"Cq½!CèìQCÍÌC¶F%!#)ÿž î€ ïáúCÃõCïöèC\Ï!Cïö(Cf¦!Cï¤0CìÑC·F%!#)ÿž õ€ ööèC\ÏCö®ÇCR¸!CöC{”!Cöö(Cf¦C¸F%!#)ÿž ü€ ý3³C�ÂCý¸žCf¦!Cý¸ÞCáz!CýfæCH¡C¹F%!#)ÿž ƒ€ „¤° C…C„€CÍŒ!C„õC…k!C„öè C×cCºF%!#)ÿž Š€ ‹3sC{”C‹šY Cáz!C‹ì‘ C{T!C‹¤°C…kC»F%!#)ÿž ‘€ ’¸^C®GC’Ã5 C×c!C’…k C@!C’)œCH!C¼F%!#)ÿž ˜€ ™ ×ýBq}C™Í C{T!C™=JCö(!C™®GþB WC½F%!#)ÿž Ÿ€  Cq}C = C)\C Ã5C®GC šY C…ëC áúC33C öhC{C šCîC ÍLCšÙC E!CÍ C á:!Cf¦C = C)\C )ÜCHaC {TC×ãC �CR8C =Š CRxC �‚CÍŒC ®GCìÑC = C C¾F%5<�ÿž ´€ µázúB…ëCµ®ÇøB¸Cµ×£÷BšYCµ…øB¸"Cµ¸žþBÃõ%Cµ�ÂC3ó&Cµ�ÂC¤ð'Cµq} C®(CµÅC®(Cµö¨Cš(CµìQCÍÌ'CµRxC)Ü&Cµõ!Cáú%Cµ —%CH!"Cµöh&C…CµH!&C{Cµöh%Cq½Cµ×ã$C�ÂCµ\O$C¸CµR8$C×cCµ —#C¤0!Cµ×£ C¤p$CµìCá:%CµÍ C\&Cµ —C)œ&Cµ®ÇCH¡&Cµ=Š Cq}&Cµ�C.&CµÃ5Cá:%CµÃuCÃu$Cµq½üBHa!Cµ…kûBšYCµ WüB®GCµ×£ûBÃõC¿F%!#)ÿž Ù€ Ú)ÜCö¨CÚR8C —CÚ)CÃu CÚ®CáúCÚ€C¸^CÚìC÷BÚöèC{ðBÚáúCR8çBÚìÑ CìÑãBÚî!CâBÚšÙ"Cö¨âBÚ�‚#C®GæBÚHa$CðBÚ{”$C)ÜöBÚ¤°$CCÚõ$C�BCÚRø$Cš™ CÚìÑ$Cq½CÚöè$CqýCÚì‘%CCÚ®&CáúCÚE&CáúCÚ®&CÍÌCÚ\Ï&C\� CÚ W&C33CÚE&CCÚH!&C3³öBÚáº%C¸žïBÚ®Ç$C×£åBÚ=Ê#CfæàBÚÅ!CàBÚ…ëC¸žáBÚq½CæBÚÃuC®ïBÚšYC33÷BÚR¸CázCÚRøC{CÚ…kC{” CÚöèCf¦CÚnC…«CÀF%!#)ÿž „€ …\OC —C…ö¨CEC… —CšÙ C…�BC¤0C…®ÇCì‘C…×£C®ÇöB…)œC\ðB…{”C×#çB…¤0Cš™ãB…¸^CâB…¤0C¸ãB…H!CçB…®GCÍÌïB…CHáöB…\C ×ÿB…\OCšYC…ÃuC� C…×£C®C…R¸CÍ C…¸CC…{”CC…®CìC…=JC¤°C…öhC¤° C…áúC®GC…HáCR¸ÿB…H¡C)ÜöB……CázïB…RxC¸æB….CffáB…\OCR¸ßB…{TC\�áB…ìQCæB…fæC{”ïB…CÍÌöB…šÙCö¨C…ìQC{TC…R¸C C…¤pC WC…)ÜCš™CÁF%!#)ÿž ¯€ °= C)œC°®CšYC°.Cáz C°®‡ C¤0C° W C…kC° W CÃõöB°= C¤ðïB°HaC€çB°áºCö¨ãB°áúCÍLâB°RøCÍÌâB°îC3³æB°ffC¤ðïB°õC)\öB°®‡CÍÌÿB°ÀC=JC°ÅC� C°ÍÌC¸ÞC°RøC=ÊC°ö¨CC°×#CáúC°{TCq½C°ázC)ÜC°nC� C°®‡C�BC°)\C�ÂÿB°¸^C33öB°R¸Cš™ïB°®Cö(æB°=ÊCR8áB°šÙC= àB°HáC�ÂáB°® C�BæB°š™ C€ïB°f¦ C÷B°=Š C¤pC°R¸ C WC°¸ž C)œ C°×ã CffC°{” Cf¦CÂF%!#)ÿž Ú€ Û3sCfæCÛ�‚CnCÛR¸C\Ï CÛ®CÃõCÛ\ÏC×£CÛ…«CR8÷BÛ\�C¤pïBÛHáC\çBÛ3sCq=ãBÛq½C)\âBÛf& C\�âBÛE C\çBÛ. C…ëïBÛHa C…öBÛ×c CffÿBÛR8 C\OCÛ W Cf¦ CÛöh C ×CÛ C®ÇCÛ33 CqýCÛ3³ C�CÛ¤0 CÀCÛ) C®ÇCÛ®G CH¡ CÛö( C=JCÛÍ CHaÿBÛî CHaöBÛ\� CázïBÛ=Š CR8æBÛ  C\áBÛH¡CÍÌßBÛ3³C®GáBÛ —C®ÇåBÛf&CáúîBÛ\C�B÷BÛ¤0C3³CÛHaC{CÛ¤ðCî CÛ{TCq}CÛC¤ðCÃF%!#)ÿž …€ †¤ðùB�ÂC†…ëúBf¦C†ffúBš™ C†ö¨ùBÍ C†{ùBq}C†=ŠøB)ÜöB†…øBR¸ïB†{úBìÑæB†þBR¸ãB†…ëÿB¸žâB†q=CìÑâB†¤°Cö(æB†ö¨C®ïB†š™C€öB†áºCö¨ÿB†Í C\C†.C¸ž C†áúC\�C† CRøC†�ÂCC†q=CáúC†öhCÃõC†öèC)œC†{ÔC¸ž C†¸ÞCqýC†öhCÃuÿB†…+C…köB†ö(CìQïB†ìC…kåB†¤ðCq=áB†×£ÿBšàB†€üBš™áB†fæ÷Bq½åB†q=õBìQïB†…kõBÃõöB†š™õBÍŒC†öBö(C†…ëöBÀ C†…køBR¸C†ùBÀCÄF%!#)ÿ†ž C€ìC™î?‰°’ˆA—ÅF%5<�ÿ‡°�±ŒMANUS†ž CúC™î?‰´’ˆA—ÆF%5<�ÿ‡´�µŒLIGATAž ¸€ ¹¥CD¹Í ©C¤�D¹ ÷¬CÃD¹ö­C=úD¹… ©C®gD¹…ë¤C¤DÇF%5<�ÿž Á€ Â׃ÅC=úDÂöhÉC=ŠDÂÃuÍCfDÂ=ŠÍCšùDÂ=jÉCÍ\DÂ\oÅC)ìDÈF%5<�ÿž Ê€ Ë׿C¤DË®çéC)ŒDËÃõíC DË= îCöøDËfæéC¸^DËîåC�DÉF%5<�ÿž Ó€ Ô¤PDÍüDÔÃ5Dì‘DÔá:DfDÔEDšùDÔf6DÃeDÔÃED¸îDÊF%5<�ÿž Ü€ Ý ‡D… DÝ ‡DRˆDÝ…{DÃDÝ{„D=úDÝ ‡DÍ\DÝÍ|DþDËF%5<�ÿž å€ æ=º#DÃDæqÍ%D=šDæ…»'DfDæ{Ä'DšùDæqÍ%D…kD椰#DRøDÌF%5<�ÿž î€ ïH¡QC…ëßCï —OC\ÏãCïÃõMCåçCï\LCàëCï=ÊJCšùïCïÃ5KCfðCïq½MC\ìCïÃ5OCöèCï\OQC)üãCïìRC{ôßCÍF%5<�ÿž û€ üHá?C®àCü\�=C¤ÐãCüöè;C×ãçCü¤0:CöèëCüìÑ8CáúïCü.9CðCüš™;CìCü¸ÞCáúãCü®G@C{àCÎF%5<�ÿž ˆ€ ‰pEDHàC‰ͼED¤äC‰ö8FD)èC‰f¦FDÍ ìC‰H1GDfðC‰¸NGDšùïC‰… GDàëC‰3ƒFDáúçC‰×#FD×ããC‰öˆEDÃõßCÏF%5<�ÿž •€ –¤JDàC–ö8JD3äC–®·JD èC–qKDìC–׳KDðC–)ÌKDáúïC–š‰KDqÝëC–{KDqýçC–�¢JDöèãC–áJDáúßCÐF%5<�ÿž ¢ £@&D•C£R¸DÍ,ÁC£×£çCÃÌC£…«¯C׃­C£…«¯CRøxC£×£çC{Ô;C£R¸Df¦QC¢ úC•CPBŒBÑF%µÖæÿ¢Áó€? ÃÃ`u°Ã†® TCìQ·B‰¯’B—ÒF%5<�ÿ‡¯�°Œ1á›�ᚾᚳá›�ᛈá›�á›� ᚳᛟᚾᚠᛖᛊᛊá›�ᛟ¯Á®´ ìBºC�B�B´ ìBºC¤B¤BÓF%Ncuÿ´Á®¹ºf&CáµCºffýB¸Þ¶C¹€½ûB¤P¸C½šøB{ºC¹€Àq½õBf†»CÀìÑòB=J½C¹Ã¤pðB)¼¾CÃ=ŠíB€ÀC¹€Æö(ëB¤ðÁCÆq=èB{´ÃC¹É)ÜåBf&ÅCÉÃõâB=êÆC¹Ì{”àB)\ÈCÌ®ÝB ÊC¹Ï3³üBn´CÏ�BøBöèµC¹Ò×£ôB¸·CÒ33ðBš™¸C¹€Õ{”ìB\ϹCÕ×#èBöH»C¹Ø…äB¸~¼CØ{àBšù½C¹€Û¤pÜB\/¿CÛØBö¨ÀC¹ÞHaÔB¸ÞÁCÞ¤ðÏBšYÃC¹áìQÌB\�ÄCáHáÇB= ÆC¹äšùBHÁ³Cä×#óB3ó´C¹ç�BîBÍìµCçÍLèBq·C¹ê…kãB ¸CêÃuÝBöH¹C¹í{”ØB�BºCí¸žÒB3s»C¹ðq½ÍBÍl¼Cð®ÇÇB¸ž½C¹ófæÂBR˜¾Có¤ð¼BöÈ¿C¹ö\¸B�ÂÀCöš²B{ôÁCÔF%5<�ÿ¹Á®ûü WòB×cÄCüq½èB —ÇCûÿÃuïBšÙÂCÿâB{TÇCû‚{”ìB\OÁC‚ÍLÛBìÇCû…3³éBÅ¿C…{”ÔB\ÏÆCû€ˆìÑæBá:¾Cˆ)ÜÍBÍŒÆCû€‹¤ðãB¤°¼C‹×#ÇB=JÆCû€ŽR8ÝBn¼CŽ�BÄBÀÄCû€‘€ÖB…+¼C‘HaÁBÃ5ÃCû”®ÇÏBöè»C”€¾B…«ÁCû—\ÉBf¦»C—¸ž»BH!ÀCûš WÂB×c»Cšq½¸B —¾CÕF%!#)ÿûÁ†® ÍŒCH¡¯Cî?ï?‰Ÿ’ A—ÖF%5<�ÿ‡Ÿ� Œá›°ŸÁ†® ìBºCî?ï?‰¤’¨A—×F%!#)ÿ‡¤�¥Œᛥ¤Á†® š™ÄBáz¤C‰©’ö(8A—ØF%Ncuÿ‡©�ªŒ ᛚᚢᛪ©Á†® …ëÈB®çÏC‰®’¤pEA—ÙF%Ncuÿ‡®�¯Œᚢᛗᛒᚱᚨ®Á†®l ùº CCnC‰³’33±A†)\Ï?—ÚF%)3Dÿ‡³�´ŒLᛊᛈᛖᚨᚲ á›�ᚺᚱᛟᚢᚷᚺ á›�ᚺᛖ áš·áš±á›�ᛚᛚᛖ᛬ ᚾᛟ³Á†®à-�: CC¤p.C‰¸’…¯A†š™?—ÛF%#+:ÿ‡¸�¹ŒLᚷᛟᛞ ᛚá›�ᛊá›�ᛖᚾᛊ ᚺᛖᚱᛖ᛬ á›�ᚺᛖ ᚳᚺᚨᛈᛖᛚ¸Á†®RI�º xB JC‰½’®¯A†€>—ÜF%)3Dÿ‡½�¾Œhᚹᚨᛊ ᛒᚢá›�ᛚá›� ᚠᛟᚱ ᛟᚾᛖ ᚹᚺᛟ ᛞᛟᛖᛊ ᚾᛟá›� ᚺᛖᚨᚱ᛫ ᚨᚾᛞ½Á†®·Ñ8 xB¤0gC‰Â’š™¯A†…Ë?—ÝF%#+:ÿ‡Â�ÃŒZá›�ᚺᛖ ᛞᚨᚱᚲ ᚹᚱá›�á›�ᛖᛊ ᛞᛟᚹᚾ ᚹᚺᚨá›� ᚣᛟᚢ ᛊᚨᚣ᛬ÂÁ†®4€7» xBe�C‰Ç’…­A†¤p�?—ÞF%%3ÿ‡Ç�ÈŒVᛊᛈᛖᚨᚲ á›�ᚺᚱᛟᚢᚷᚺ á›�ᚺᛖ áš·áš±á›�ᛚᛚᛖ᛬ ᚾᛟ ᚷᛟᛞÇÁ†®4€·: xBìñŽC‰Ì’…±A†�Âu>—ßF%)3Dÿ‡Ì�ÍŒ\ᛚá›�ᛊá›�ᛖᚾᛊ ᚺᛖᚱᛖ᛬ á›�ᚺᛖ ᚳᚺᚨᛈᛖᛚ ᚹᚨᛊ ᛒᚢá›�ᛚá›�ÌÁ†® ×#» (C)<�C‰Ñ’áz²A†¸…>—àF%%3ÿ‡Ñ�ÒŒ4ᚠᛟᚱ ᛟᚾᛖ ᚹᚺᛟ ᛞᛟᛖᛊ ᚾᛟá›�ÑÁ†®l ù: (C\ïªC‰Ö’×£°A—áF%#+:ÿ‡Ö�׌#ᚺᛖᚨᚱ᛫ ᚨᚾᛞ á›�ᚺᛖÖÁ†®B`e» (Cn¹C‰Û’Ãõ°A†…ë>—âF%#+:ÿ‡Û�ÜŒ,ᛞᚨᚱᚲ ᚹᚱá›�á›�ᛖᛊ ᛞᛟᚹᚾÛÁ†®ùÉ¿ B D‰à’`A—ãF%Ncuÿ‡à�áŒ@á›�ᛖᛚᛚ á›�á›� ᚹᚺᚨá›� ᚣᛟᚢ ᛒᚢᚱá›�ᛖᛞ᛬àÁ†® úC8B™î?‰å’ A—äF%5<�ÿ‡å�æŒ/C U L T O F T H E U N S E E I N G S U N†® úC@ D™î?‰é’ B—åF%!#)ÿ‡é�êŒTHE CONFESSION†® úC€D™î?‰í’àA—æF%!#)ÿ‡í�îŒA chapel with no listening god.†® úC€%D™î?‰ñ’¸A—çF%5<�ÿ‡ñ�òŒTell it what you buried.†® úC/D™î?‰õ’�A—èF%5<�ÿ‡õ�öŒIII / V . 5® úCñC†ù Á™î?‰ú’ØA—éF%5<�ÿ‡ú�ûŒ VOW BROKENùþ€ ÿ�BçÂ…_AÿR8ôÂ�Â-Aÿ®Çú ×Û@ÿR8üÂHá*@ÿìQúÂq=Ê¿ÿóÂR¸¶Àÿ{éÂ×£ÁÿHáÚš™IÁÿ…kÖÂÃõTÁÿÒÂ�ÂYÁÿ®GÌÂázdÁÿ¸žÆÂ¸mÁÿ ׿ ×oÁÿ…k¹Â ×wÁÿ¸²ÂR¸zÁÿ€ªÂ33�Áÿö(¢Â¸�Áÿ33šÂff„Áÿq=’Âáz‚Áÿq=‰ÂHá‚Áÿ®Ç€Â)\…Áÿázn¤p…ÁÿÍÌ\Â\�†Áÿ= KÂ33‡Áÿ)\7Âff†Áÿ\�$®G‡Áÿš™Â\�ˆÁÿ®ÿÁ{ˆÁÿÜÁ{†Áÿ¤p·ÁìQ†Áÿq=�Á\�„ÁÿffZÁ®G‡Áÿ= Á33‡Áÿ…ë™Àq=†Áÿ®G�¿q=†Áÿ¤p=@= ‡Áÿ)\ï@ff„Áÿ{:A…ëƒÁÿ¤pƒA×£‚Áÿö(¨Aq=‚Áÿq=ÎA33�Áÿ¤póAÍÌ€Áÿq= BÃõ|ÁÿB{€Áÿ®1Bš™yÁÿš™EBq=zÁÿWB33sÁÿ= kBffrÁÿff}B33oÁÿš™‡B)\oÁÿÍÌ�B¤piÁÿq½˜BHáfÁÿ=Š¡Bš™aÁÿ®©BázXÁÿáz±BìQXÁÿHá¸B\�JÁÿ33¿B…KÁÿR¸ÅB®?Áÿö(ÌB\�>Áÿ¤pÑBìQ4Áÿš×B…ë)ÁÿázÛBáz Áÿ.ìBHáÒÀÿš÷B…ëÀÿR8üB¤p-@ÿìQûBffæ@ÿÍLôBš™9AÿHáæBÍÌpAÿÍÌãB)\{Aÿš™ÞBHá€Aÿ…ëÙB{„Aÿ�BÔB)\‰AÿšÎB¤p�Aÿ\ÇB�AÿÀB�“Aÿ¸ž¸BÃõ–Aÿ€±B)\™Aÿq=©BÍÌœAÿ� B¤p�Aÿ ×—BHá Aÿff�B…£Aÿ)\†Bff¤AÿÃõyBš™¥Aÿq=gB¸§AÿffTBªAÿ®ABÍ̪Aÿ®G/B…ë«Aÿ¸B®G­Aÿ¸ B33«AÿìAR¸¬Aÿ®GÉAš™«AÿR¸¢A= «Aÿ{~A)\¯Aÿ¸9A\�¬AÿHáÚ@Í̬Aÿ¤pM@…ë«Aÿff†¿33­Aÿ= ¯Àq=ªAÿázÁö(¬AÿR¸bÁ)\©Aÿ–Á שAÿö(ºÁ�§Aÿ ×áÁ= ©Aÿ�ÂÂff¦Aÿ= ÂHá¤Aÿ×£*š™¥Aÿ\�=Â×£¢Aÿ= QÂ�¡AÿcÂ…ŸAÿq=vÂÍÌžAÿ\„Â\�œAÿ®G�ÂÃõ˜Aÿáz–Â\�˜Aÿ�BŸÂ¤p—Aÿ…§Â\�”Aÿq=°Â ×�Aÿ33¸Â…�AÿÃõ¾ÂázˆAÿázÆÂ¤p‡Aÿö¨Ì„Aÿq=ÓÂHázAÿ\�Ù®wAÿö(Þš™qAÿq½âÂ\�bAÿ×£çÂHá^Aÿ)\èÂ\�€Aÿ×#äÂÃõ„AÿázßÂ…ë‹Aÿ�BÚ®G�AÿR8ÔÂ{”Aÿ3³ÍÂR¸˜AÿšÇÂÃõžAÿ¸ž¿Â Aÿ®¸Â ×£Aÿ®°Â¤Aÿ×#¨ÂázªAÿ=ŠŸÂ�«Aÿ3³–Â{®Aÿ�Â�Â\�°Aÿáz„¶Aÿš™vÂ{´Aÿš™cÂìQ¸Aÿ\�QÂq=¸Aÿ¸>Âff¼Aÿ…ë*ÂHáºAÿázÂö(¾Aÿ¤p¤p¿AÿâÁq=ÂAÿºÁ…¿Aÿ×£–Áö(ÀAÿÍÌdÁö(ÂAÿÃõÁš™ÃAÿ)\¯ÀÍÌÂAÿ®‡¿®GÃAÿö(L@�ÂÁAÿ…ëÙ@×£ÄAÿáz8AázÂAÿff~A…ëÃAÿ�£A= ÃAÿ33ÉAÃõÀAÿ�ÂëA¤pÁAÿö( B×£ÂAÿ®GBÀAÿ…/B…¿AÿÃõAB¸¿AÿUB…½Aÿ�ÂgB®G¹Aÿö(zB®¹Aÿ¸ž†B= ¹Aÿ®�B{´Aÿ×#˜B)\³Aÿ¡B33±Aÿš™©Bö(°Aÿ…ë±B¤p«AÿR8¹BázªAÿÃuÀBÃõ¢Aÿš™ÇB33£Aÿ®ÎB×£œAÿÕB…ë™Aÿ)ÜÚBq=”Aÿ.ßB)\�Aÿ®ÇäBŽAÿ®èBáz†Aÿš™öBÃõPAÿ ×þBR¸þ@ÿ®ÿBáz@ÿ¤ðùB{NÀÿ®GîBš™ÁÿáúÜB¸AÁÿfæ×B�ÂEÁÿ)\ÒB)\SÁÿš™ÌB…[ÁÿÍLÆBR¸^Áÿ�¿B¤pmÁÿÍL¹B= oÁÿfæ±BÍÌtÁÿšªB…ë}Áÿ…ë¡BR¸€Áÿ= ™BìQ„Áÿ\‘B\�†ÁÿìчB®‡ÁÿÍÌ}B�‹Áÿq=kB®G‹Áÿ¤pWBš™�ÁÿFBq=ŽÁÿ)\2B)\‘Áÿ®GB33•Áÿq= B”ÁÿôAö(”ÁÿR¸ÎAš™•ÁÿĮ́AìQ–Áÿ�ƒA= ™Áÿ= ;AHá–Áÿ…ó@= ›Áÿ×£@@q=šÁÿ€¿ö(œÁÿ×£˜À ×›ÁÿHáÁ= �Áÿ= [Á®›Áÿ�Á®G�Áÿ¸·Áš™�Áÿ¤pÛÁžÁÿ¸ÿÁ33ŸÁÿ�ÂÂ×£žÁÿš™$š™�Áÿ¸7ÂìQ Áÿö(KÂìQ Áÿ= ]ÂHážÁÿš™nÂ)\ŸÁÿ= �ÂffžÁÿ…‰Âq=œÁÿ×#’Â)\›Áÿ…kšÂÍÌœÁÿáz¢Âö(˜ÁÿÃõªÂáz˜Áÿ=вÂ{’ÁÿìѹÂq=”Áÿš™ÀÂö(�ÁÿÃuÇÂq=ŒÁÿ®GÍÂìQ†Áÿ¸Ó¤pƒÁÿ3³× ×{Áÿ×£ÜÂìQpÁÿìÑë®CÁÿ¤ðö®÷ÀÿÿÂáz4Àÿ�ÂÃìQ(@ÿ¸ÿÂ= ÿ@ÿ= ÷ÂìQLAÿ®GéÂ×£€AêF%5<�ÿ®ûüC33CüCÍL%Cûÿ€ C33Cÿ€ CÍL%Cû‚C33C‚CÍL%Cû…€C33C…€CÍL%CûˆC33CˆCÍL%CëF%!#)ÿ®Œ€ �…«C�BC�)ÜC33 C�Cš C�=ÊC.CìF%!#)ÿ®“€ ”¤°C)\C”×£C¤0 C”�ÂC) C” ×C�BCíF%!#)ÿ®š€ ›á:C=JC›ffC33 C›=ŠCš C›HaC¤0CîF%!#)ÿ®¡€ ¢=JCÍ C¢…+C¤0 C¢\OC) C¢nC…ëÿBïF%!#)ÿ®¨€ ©f& C33C©¤ðC¤0 C©{C) C©ÍL CšCðF%!#)ÿ®¯€ °¤ðC¤0C°R¸ C¤0 C°šÙ C) C°\C¸CñF%!#)ÿ®¶€ ·öhCáúÿB·q} C¤0 C·)œ C) C·ÍŒC®ÇÿBòF%!#)ÿ®½€ ¾îC{TC¾ì‘C®C¾= C®ÇC¾¤0C{C¾…kC×#C¾®ÇC¤°C¾ÍŒC�BC¾=ŠC= C¾õCõC¾)\C®GC¾Ã5CázC¾š C¤ðC¾ —CáºC¾îC= CóF%5<�ÿ®Î€ ÏšCECÏ…«C…CÏÅ CR8CÏ®‡ Cq=CÏ{TC)ÜCÏRxC¸žCÏ…kCö(CϤpC@CϸCf¦CÏìCá:CÏáúCìCÏÍÌC)CÏf&Cš™CÏ®GCš™CÏöhCH!Cϸ^C WCÏR¸ C)œCÏ® Cf¦CÏqýCÃõCÏ.CH!CôF%!#)ÿ®å€ æöèCÃ5Cæ×ãC¤ðCæîCf&Cæ×c C¸žþBæ¤pCšýBæ×cC€üBæö¨CfæýBæ=ŠCì‘CæÍÌC®CæöèCECæ×#C®Cæ�‚C=ÊCæ…+CÿBæCáúûBæ3sC=ŠúBæ=JC�BûBæ¤ð C{”üBæšC¸CæH!C¸Cæ®C3óCõF%!#)ÿ®ü€ ýö(ðBR8'Cý¤pðBöh$Cý¤ðïBš™ CýïBffCýîBH¡Cýq½íB{”Cý WîB… Cý�ÂîB Cý ×ðB)\Cýö(õBq}Cý¸úB\ûBý= C…óBý¸^Cš™ëBýÅC®äBýq} C¤ðßBýÍÌ CšÜBý×ãC{ÛBýÃõC{”ÜBýnCR¸ßBý®CåBý®‡C€ëBý×#"C.óBýHá$CHáúBý¤0'CöhCýff)C¤0Cý…k*C ×Cý+C\� Cýq=+CÍLCýRø*C3sCýö(*CnCý\*C¤ð CýšÙ)C®‡$Cý= *Cq='Cýö¨*C�B'Cý+C×£$Cý=Ê+CH!!Cýq},C3³Cý{-C…«CýÍŒ-C\OCý.-C)\ Cý{”,C…kCý¸^+C)\Cý.)C33CýšY&C)ÜøBý{”#C ×ðBýÃõC×£èBýf&C×#âBýR8CÝBýRxC×£ÙBý…ëC ××Bý=J CázÙBý� C…kÝBýf¦CHááBý)Cq=éBý¤ðüB)ÜðBý¸žöB\�øBý\�ñBnCýfæìB®‡Cý×£êBf¦Cý3³éBšY Cý®èBÍŒCý€éBìÑCýHáêB®Cý¤pìBšÙ CýîBÍŒ$Cý{ïB�B'CöF%!#)ÿ†® C€ìC™î?‰Á’ˆA—÷F%5<�ÿ‡Á�ÂŒNON†® CúC™î?‰Å’ˆA—øF%5<�ÿ‡Å�ÆŒABSOLVO®É€ ʤð¤Cq DÊ�©Cq�DÊÃõ¬C DÊ= ­CöøDÊ�©C…[DʸޤCìDùF%5<�ÿ®Ò€ Ó3sÅCìDÓq}ÉC�’DÓ wÍCÃDÓöˆÍC=úDÓ¸~ÉCffDÓq]ÅC3óDúF%5<�ÿ®Û€ Ü׿CfDÜ…ëéCf–DÜÃõíC DÜ= îCöøDÜ…ëéCqmDÜ\ïåCšùDûF%5<�ÿ®ä€ åHADšùDå@Dš™Då…;DÃDå{DD=úDå¤@D¤pDåR8DqíDüF%5<�ÿ®í€ îRxD®Dîq�D{”DîázDfDî…DšùDîq�DRhDîqmDöøDýF%5<�ÿ®ö€ ÷öÈ#DfD÷áÊ%D{¤D÷áº'D D÷Å'DöøD÷áÊ%DHqD÷\¿#DöøDþF%5<�ÿ®ÿ€ €ÅQCàC€ÍŒOC3ÓãC€¤ðMCfæçC€qýKCìC€ìÑJCáúïC€.KCðC€…kMCÍ,ìC€f&OCöèC€Ã5QCHäC€…+RC= àCÿF%5<�ÿ®Œ€ �@C�àC�q}=CöèãC�ìCÕ�CÊ {T=C@~CÊ Ã5=C¤°yCÊ ®G=C¸uCÊ ×ã>C®‡pCÊ ö¨@C×clCÊ šYCCìQiCÊ FCfæfCÊ …kICì‘eCÊ �BMC¤pdCÊ q½PC WdCÊ fæTCì‘dCÊ 33XCÀeCÊ .[C�iCÊ š™^C…kmCÊ = bC¸^oCÊ ÍŒeCîlCÊ ¸ÞhC{hCÊ Ã5lC)œdCÊ ¤ppCHácCÊ HátC{TdCÊ öhyC —eCÊ Há|C{TgCÊ  €C\jCÊ ÍŒ�CH!mCÊ E‚C.pCÊ ®ç‚CEtCÊ ì1ƒCExCÊ ÍLƒCšÙ{CÊ ¸¾‚CõCÊ 33‚C{ô�CÊ E�C®‡ƒCÊ Ã€Cq}…CÊ ®}C W‡CÊ ¸{C=*‰CÊ ¤pxC{ôŠCÊ îuC3SŒCÊ áúrC®ŽCÊ ¤0pCŽ�CÊ H¡lC¤p‘CÊ H!iCš™“CÊ ÍŒeCö•CÊ ¤°aCẕCÊ \ObCì‘–CÊ …kfCfÆ•CÊ �BjCÍ,”CÊ )nCq’CÊ ¤°qC�B�CÊ \�tC ·ŽCÊ ìQwCîŒCÊ 3óyC{”‹CÊ …«|Cš¹‰CÊ \OCöè‡CÊ  ÷€C= †CÊ ‚C¸þƒCÊ �"ƒCRX‚CÊ ÀƒCq€CÊ Ã5„C®|CÊ „C{xCÊ ÀƒC×ãsCÊ ¸ƒC�‚oCÊ ö(‚Cq=lCÊ ×£€CfæhCÊ À}CqýeCÊ îyCH!dCÊ )uC�cCÊ ×cpCH¡bCÊ ¸žkC�‚cCÊ ¤°gC¸gCÊ ì‘dCÍ lCÊ 3óaCqýmCÊ {”_CfflCÊ R8\C×#hCÊ Í YC…dCÊ ×#UC¸^cCÊ ®ÇPC{ÔbCÊ = MCšcCÊ fæHCdCÊ �BEC®eCÊ ìBC�hCÊ ¸?C3skCÊ \O=CîoCÊ \�;C=ÊtCÊ \O;C¤°yCÊ …;C®‡~CÊ �ÂCHÁƒCÊ ¤ð@CẅCÊ €CCf†‡CÊ …+FC{T‰CÊ ÍLICRØŠCÊ \LCffŒCÊ ffOCöè�CÊ šYRCŽ�CÊ �BUC=*‘CÊ Í XCÍì’CÊ Ã5[CR˜”CÊ )œ^C= –CÊ ì‘aC®‡–C G%!#)ÿÉ ÁÛ½!€ ¾!ÅYCEjC¾!×£XC®gC¾!®VCEbC¾!ì‘UCRø^C¾!.WCÍŒ\C¾!�‚ZCš™ZC¾!¤0]CìXC¾!š]C…SC¾!=Š[CšYOC¾!ÃõYC®‡LC¾!=ŠYC…«LC¾!�ZC×ãOC¾!€[CšÙSC¾!õ[C\�WC¾!3³YC\�YC¾!�‚VCìÑ[C¾!á:TC�Â^C¾!UC¸ÞbC¾!�BWC¤°gC¾!¸^YCq}jC¡G%5<�ÿ½!ÁÛÕ!€ Ö!…ëjCÍLjCÖ!{”lC¸^gCÖ!�BnC¤pbCÖ!\ÏnC^CÖ!3smC×#[CÖ!®‡kCõXCÖ!RøjCö¨VCÖ!R8lCö(SCÖ!q=nCÀNCÖ!)\oC —KCÖ!= oCöhKCÖ!¸ÞlC\NCÖ!q½jC{”RCÖ!®iC —VCÖ!ÀjCf&YCÖ!ÍŒlC®[CÖ!{”mCš^CÖ! ×lC bCÖ!ÍLkCîfCÖ!)œjC.jC¢G%5<�ÿÕ!ÁÛí!î!ÍÌ>CÀ†Cî!Ha7CqÝ‹CÀ@î!n2C —ŽCí!ò!¸ž3Cqý‚Cò!®G+CẈCÀ@ò!áº%CöÈ‹Cí!ö!n(C\Cö!¤0Cå…CÀ@ö!®C®G‰Cí!ú!@Cf&yCú!šC¤�ƒCÀ@ú! W CöH‡Cí!þ!ìC…ktCþ!�C3Ó�CÀ@þ!®GÿBHá…Cí!‚"HáCR¸pC‚" ×õBš™€CÀ@‚"fæåB)ü„Cí!†"ff÷Bš™mC†"ö¨ÝB{TCÀ@†"€ÌB�b„C£G%!#)ÿí!ÁÛŒ"€ �"šÙ>C{´†C�"=CR˜…C�"š™9C×c„C�"¤ð5C\ï‚C�"áº1C…k�C�"¤p-C…ëC�"ö()C¤°}C�"Ha%C®Ç{C�"q}!C¸ÞyC�"3sC3³wC�"ì‘C ×uC�"¤°CR8tC�"ECffrC�"ìÑC{TqC�"ö( C{ToC�"ázC)nC�"®ÇýBf¦mC�"€÷BHamC�"ÍL÷BìÑmC�"®GýB�oC�".CHáoC�"q½CÍÌpC�"ECáúrC�"ÀC=ÊsC�"…+C{TuC�"®CšwC�"®C{”xC�"Í !CR¸zC�"¸Þ$Cáº|C�"€(Cfæ~C�"ö¨,C{”€C�"õ0C�"‚C�"…ë4Cq�ƒC�"š™8C{…C�"33C¸Þ†C¤G%!#)ÿŒ"ÁÛ´"€µ"š™‚CÀ†Cµ"\O†CqÝ‹CÀ@µ"öȈC —ŽC´"€¹"¤0ˆCqý‚C¹")\ŒCẈCÀ@¹"�"�CöÈ‹C´"€½"öÈ�C\C½"®g’Cå…CÀ@½")|•C®G‰C´"€Á"`“Cf&yCÁ"3s˜C¤�ƒCÀ@Á"{Ô›CöH‡C´"€Å" ÷˜C…ktCÅ"¸~žC3Ó�CÀ@Å".¢CHá…C´"€É"\�žCR¸pCÉ"=ФCš™€CÀ@É"f†¨C)ü„C´"€Í"f&¤Cš™mCÍ"ÕªC{TCÀ@Í"à®C�b„C¥G%!#)ÿ´"ÁÛÓ"€ Ô"¤�‚CׯCÔ"\ïƒCR†CÔ" —…Cö…CÔ"Íl‡Cš™ƒCÔ"®§‰C= ‚CÔ"×£‹C�€CÔ"¸¾�C\Ï~CÔ"�‚�C®|CÔ"\o‘CÍÌzCÔ"�‚“CáúxCÔ"®‡•C�BwCÔ"n—C=ŠuCÔ"f&™C×#tCÔ"RøšC¸ÞrCÔ"{Ô�CqCÔ"ìQ C3³oCÔ"ì±¢C)œnCÔ"=*¤C\ÏmCÔ"�"¤C×cmCÔ"R˜¢CffmCÔ"f& C¸nCÔ"ì‘�C@oCÔ"¤°šC�BqCÔ")ܘC3³rCÔ"%—C�BtCÔ"¸>•CvCÔ"�B“C¸ÞwCÔ"š9‘C×ãyCÔ"HA�C¤°{CÔ"×c�Cš™}CÔ"Ã5‹C3€CÔ".‰C{T�CÔ"=ê†C®ç‚CÔ"¤…C W„CÔ"¤�ƒC3“…CÔ"3s‚CR˜†C¦G%!#)ÿÓ"Á†Û xBáÚ§C‰û"’�A—§G%5<�ÿ‡û"�ü"ŒI.û"Á†Û¦›Äº W BN¦C‰€#’…ë�A—¨G%#+:ÿ‡€#��#Œ'ᚨ ᛚᛟᚳᚲ ᛟᚠ ᚺᚨá›�ᚱ᛬€#Á†Û xBáZ²C‰…#’�A—©G%5<�ÿ‡…#�†#ŒII.…#Á†Ûoƒ» š™®Bà°C‰Š#’\��A—ªG%%3ÿ‡Š#�‹#Œ#ᚨ á›—á›�ᛚᚲ á›�ᛟᛟá›�ᚺ᛬Š#Á†Û xBáÚ¼C‰�#’�A—«G%5<�ÿ‡�#��#ŒIII.�#Á†Û¦›Ä: )ܼBR¸»C‰”#’)\�A—¬G%#+:ÿ‡”#�•#Œ,ᚨ ᛒᛚᚨᚳᚲ ᚠᛖᚨá›�ᚺᛖᚱ᛬”#Á†Û xBáZÇC‰™#’�A—­G%5<�ÿ‡™#�š#ŒIV.™#Á†Ûoƒº ®·B…ëÅC‰ž#’ö(ŽA—®G%)3Dÿ‡ž#�Ÿ#Œ3ᛊᛖᚡᛖᚾ ᛞᚱᛟᛈᛊ ᛟᚠ ᚹᚨᛪ᛬ž#Á†Û xBáÚÑC‰£#’�A—¯G%5<�ÿ‡£#�¤#ŒV.£#Á†ÛRI�9 …k©B{4ÐC‰¨#’ ×�A—°G%#+:ÿ‡¨#�©#Œ3á›�ᚺᛖ ᚾᚨᛗᛖ ᚣᛟᚢ ᛚᛟᚡᛖᛞ᛬¨#Á†Û PCáDî?‰­#’pA—±G%Ncuÿ‡­#�®#Œclavis­#ÁÛ²#³#*C€ D³#vC€ D²#¶#*C-D¶#vC-D²#¹#*C€ D¹#*C-D²#¼#HC€ D¼#HC-D²#¿#vC€ D¿#vC-D²#Â#*CDÂ#vCD²#Å#*C€DÅ#vC€D²#È#*C DÈ#vC D²#Ë#*C€&DË#vC€&D²G%Ncuÿ²#Á†Û 9CH¡ Dî?‰Ð#’€A—³G%5<�ÿ‡Ð#�Ñ#ŒFÐ#Á†Û šÙWCŽ D‰Õ#’¨A—´G%!#)ÿ‡Õ#�Ö#Œáš Õ#Á†Û 9CH!Dî?‰Ú#’€A—µG%5<�ÿ‡Ú#�Û#ŒGÚ#Á†Û šÙXCD‰ß#’¨A—¶G%!#)ÿ‡ß#�à#Œáš·ß#Á†Û 9CH¡Dî?‰ä#’€A—·G%5<�ÿ‡ä#�å#ŒPä#Á†Û .ZCŽD‰é#’¨A—¸G%!#)ÿ‡é#�ê#Œᛈé#Á†Û 9CH!!Dî?‰î#’€A—¹G%5<�ÿ‡î#�ï#ŒBî#Á†Û ö¨YCD‰ó#’¨A—ºG%!#)ÿ‡ó#�ô#Œá›’ó#Á†Û 9CH¡'Dî?‰ø#’€A—»G%5<�ÿ‡ø#�ù#ŒVø#Á†Û —WCŽ%D‰ý#’¨A—¼G%!#)ÿ‡ý#�þ#Œáš¡ý#Á†ÛùÉ¿ B D‰‚$’`A—½G%Ncuÿ‡‚$�ƒ$Œ]ᚳᛟᚱ ᛟᛒᛚᚨá›�ᚢᛗ᛬ áš·á›�ᚡᛖ á›�á›� ᚹᚺᚨá›� ᚣᛟᚢ ᛚᛟᚡᛖ᛬‚$Á†Û¦›Äº ZCRøÙC‰‡$’…™A†¸E?—¾G%#+:ÿ‡‡$�ˆ$Œ3áš¹á›�ᚾᚷᛊ ᛗᚢᛊá›� á›’á›– áš·á›�ᚡᛖᚾ‡$Á†Ûo: ZC®GæC‰Œ$’šA†ázÔ?—¿G%#+:ÿ‡Œ$��$Œ:ᛒᚨᚳᚲ᛬ ᚹᚺᚨá›� á›�á›� ᛚᛟᚡᛖᛊ á›�á›�Œ$Á†Û úC8B™î?‰‘$’ A—ÀG%5<�ÿ‡‘$�’$Œ/C U L T O F T H E U N S E E I N G S U N†Û úC@ D™î?‰•$’ B—ÁG%!#)ÿ‡•$�–$Œ THE SACRIFICE†Û úC€D™î?‰™$’àA—ÂG%!#)ÿ‡™$�š$Œ!A heart sewn into borrowed wings.†Û úC€%D™î?‰�$’¸A—ÃG%5<�ÿ‡�$�ž$ŒWhat it loves, it keeps.†Û úC/D™î?‰¡$’�A—ÄG%5<�ÿ‡¡$�¢$ŒIV / V . 7Û¥$€¦$š™-C C¦$3³.C)\ CÀ@¦$3³6C C¥$€ª$ìQ*C=JCª$H!+C¸CÀ@ª$Ha2C…C¥$€®$@!C=Š!C®${”!C×£"CÀ@®$…k&C®)C¥$€²$3sC×c&C²$á:C…'CÀ@²$=ŠCn/C¥$€¶$)ÜCq½$C¶$×#C×£%CÀ@¶$H¡C@-C¥$€º$.÷BRøCº$\õBnCÀ@º$\�éB#C¥$€¾$ÃuêB ×C¾$ö(èB�ÂCÀ@¾$ÍÌØBC¥$€Â$ÃuêBö(CÂ$€èBÍŒCÀ@Â$ÍÌØBáúC¥$€Æ$.÷B\îBÆ$öB{ìBÀ@Æ$\�éBâB¥$€Ê$)ÜC…ÞBÊ$ÍÌCR8ÜBÀ@Ê$H¡C€ÍB¥$€Î$3sCR8ÛBÎ$îC¸ÙBÀ@Î$=ŠC×#ÉB¥$€Ò$@!C…ëäBÒ$ö("C…ãBÀ@Ò$…k&C¤ðÕB¥$€Ö$ìQ*C…kùBÖ$Ãu+CùBÀ@Ö$Ha2CÃõðBÅG%5<�ÿÛÛ$€ Ü$)CìCÜ$ì$CìCÜ$®G$CîCÜ$ÍLCîCÆG%!#)ÿÛâ$€ ã$ÃõCfæCã$® CìCã$q= CîCã$33Cq½CÇG%!#)ÿÛé$€ ê$ìCq=Cê$áúCìCê$33CîCê$\OC{CÈG%!#)ÿÛð$€ ñ$�C�BCñ$îC{Cñ$ö(C…ëCñ$á:C)CÉG%!#)ÿÛ÷$€ ø$Cq=Cø$fæCìCø$šCîCø$¤0C)CÊG%!#)ÿÛþ$€ ÿ$ CîCÿ$ ×C{Cÿ${C…ëCÿ$@ C®ÇCËG%!#)ÿÛ…%€ †%¸žC= C†%\Ï CìC†%� CîC†% ×CfæCÌG%!#)ÿÛŒ%€ �%)ÜC3óC�%ÅC\C�%ÃõC¤ðC�%\CìÑCÍG%!#)ÿÛ“%€ ”%�ÂûB= C”%R¸CìC”%îCîC”%R8üB×ãCÎG%!#)ÿÛš%€ ›%¸žýB¸^ C›%)ÜCÍŒ C›%RxC� C›%{ C¤ð C›%¤ðC×ã C›%¤ðC® C›%f&C{ C›%…ëC{” C›%q=#C¤0 C›%ö(#C\Ï C›%ö¨C� C›%…ëC¤° C›%ìÑC� C›%¤ðC…ë C›%¤0 CšÙ C›%3³Cì‘ C›%šC×ã C›%�ÂýBRø CÏG%5<�ÿÛ¯%€ °%…kCR¸öB°%öè CffôB°%Ãu CfæíB°%=ÊCö¨çB°%ffC…äB°%ÍLþB…ëçB°%ÍÌöB¤pðB°%ìÑóB…ëúB°%×#ôBázC°%)\öBö(C°%ìÑùBšÙ C°%3³þBÍÌC°%33C\�C°%=ŠC�C°%¤0 Cö(C°%š C�‚C°%¤ðC¤ð C°%ìCÍŒC°%¤ðC=JC°%f¦C C°%×# C…«C°%ÍŒ"Cf¦C°%ö(%Cö( C°% ×&C¸^C°%(C{ÔC°%®G(C…ëúB°%×c&C…ðB°%Ã5#C…ëçB°%ö¨C¤ðäB°%Ã5CÃõçB°%šYCšîB°%�BC¸ôB°%…«C×#÷B°%{TC�BúB°%…+CÃõöB°%…«C.ñB°%=JCR8ëB°%ö¨CR¸èB°%×ã!C WëB°%…«$C)\òB°%á:&Cš™ûB°%š&C=ŠC°%š%C ×C°%Ha#C)\ C°%f&!CšÙC°%�ÂC3³C°%{TCqýC°%�ÂC×#C°%¸^CffC°%ÃõCRxC°%šÙ C®GC°%  C�BC°%R¸C{C°%nC×£C°%3³CC°%ýB33 C°%šúB×£C°%ázøB¤0C°%33øB=ŠûB°%ÍÌúBö¨òB°%®‡C…ëB°%RxC¤ðèB°%…«CÃõêB°%š CÃõðB°%¸Þ Cq½÷B°%{ÔCÍLúBÐG%!#)ÿ†Û C€ìC™î?‰ô%’ˆA—ÑG%5<�ÿ‡ô%�õ%ŒCOR†Û CúC™î?‰ø%’ˆA—ÒG%5<�ÿ‡ø%�ù%ŒOBLATUMÛü%€ ý%)¥CHDý% ©Cš™Dý%{ô¬C®Dý%… ­CRøDý% ©C¸nDý%ö¥C{ôDÓG%5<�ÿÛ…&€ †&f†ÅC\ÿD†&=ŠÉCq�D†&ÃuÍCfD†&=ŠÍCšùD†&…‹ÉC\oD†&{tÅC�òDÔG%5<�ÿÛŽ&€ �&öæCá D�&�êCRˆD�&ÃõíCfD�&= îCšùD�&HêCìaD�&{ôåCþDÕG%5<�ÿÛ—&€ ˜&HADD˜&š9D¤�D˜&á:DfD˜&EDšùD˜&ö8DffD˜&f6D¤DÖG%5<�ÿÛ &€ ¡&)|DšùD¡&�rDH‘D¡&=zD®D¡&Ã…DRøD¡&3sD®gD¡&ìqD)ìD×G%5<�ÿÛ©&€ ª&\Ï#D×Dª&3Ã%DH¡Dª&…»'DfDª&{Ä'DšùDª&×Ã%DöxDª& Ç#D®÷DØG%5<�ÿÛ²&€ ³&=ÊQCìàC³&q=OCšùãC³&�ÂMC ×çC³&q=LC)ÜëC³&ìÑJCáúïC³&.KCðC³&f¦MCìC³&ÍÌNCìñçC³&HáPC…+äC³&¤0RC¸àCÙG%5<�ÿÛ¿&€ À&î?CöàCÀ&\�=CÎãCÀ&ìÑ;C×ãçCÀ&¤0:CöèëCÀ&=Ê8CšùïCÀ&Ã59CfðCÀ&H¡;CìCÀ&ÍÌC«'µ'H!lCì:Cµ'{”jC{Ô>C«'¸'H¡bC…+3C¸'{”^C)6C«'»'_C(C»'ZC(C«'€¾'H¡bC{ÔC¾'{”^C×ãC«'€Á'H!lCîCÁ'{”jC…+C«'Ä'¸ÞwCîCÄ'…kyC…+C«'Ç'\¯€C{ÔCÇ'õ‚C×ãCãG%5<�ÿ«'Á¥'Ì' rC(CBBäG%!#)ÿÌ'Á†¥' rCá:BCî?‰Ð'’PA—åG%5<�ÿ‡Ð'�Ñ'ŒIÐ'Á¥'Õ' Ö'…ë“CHaCÖ'q=”CöèCÖ'…‹”CRxCÖ'ÃÕ”CÍ CÖ')•C…«CÖ'¸^•CìQCÖ')œ•CqýCÖ'ÃÕ•C®CÖ'= –Cff CÖ'š9–CH!!CÖ'e–C×ã!CÖ'=Š–Cö¨"CÖ'…«–C3s#CÖ'fÆ–Cq=$CÖ'qÝ–CÍ %CÖ'î–C¸Þ%CÖ'šù–C¤°&CÖ'¸þ–C�‚'CÖ'—C W(CÖ'áú–Cö()CÖ'¤ð–Cqý)CÖ'à–CÍÌ*CÖ'…Ë–C)œ+CÖ'¤°–Cöh,CÖ'¤�–C33-CÖ'…k–Cáú-CÖ'HA–Cáº.CÖ'3–CRx/CÖ'¸Þ•C¤00CÖ'¸Þ•C¤00CÖ'\�•Cö¨/CÖ'�B•Cš/CÖ'šù”C€.CÖ'{´”CHá-CÖ'3s”Cá:-CÖ' 7”C\�,CÖ'¸þ“C¸Þ+CÖ'=Ê“Cf&+CÖ')œ“Cöh*CÖ'ìq“Cö¨)CÖ'ÍL“C×ã(CÖ'…+“C)(CÖ'¤“C\O'CÖ'áú’C�‚&CÖ'=ê’C3³%CÖ'¸Þ’CHá$CÖ'RØ’C\$CÖ' ×’Cá:#CÖ')Ü’Cöh"CÖ'å’C —!CÖ'{ô’C®Ç CÖ'ö“CRøCÖ'H!“C…+CÖ'@“CHaCÖ'×c“C)œCÖ'ÍŒ“CšÙCÖ'š¹“C)CÖ'…ë“CHaCæG%!#)ÿÕ'Á¥'“( �C(CBBçG%!#)ÿ“(Á†¥' �Cá:BCî?‰—(’PA—èG%5<�ÿ‡—(�˜(ŒII—(Á¥'œ( �(\�§C ×C�( ¨CEC�(…«¨C®ÇC�(33©CHaC�(3³©C\C�(.ªCÍÌC�( ªC¸žC�(= «C�‚C�(…k«C3sC�(�«C3sC�(¤¬C€ C�({T¬C —!C�(ÍŒ¬Cõ"C�(ẬC¸Þ#C�(qݬCÍ %C�(3ó¬C@&C�(¸þ¬CÃu'C�(¸þ¬C…«(C�(ìñ¬CHá)C�(šÙ¬Cì+C�(õ¬C@,C�(®‡¬Cöh-C�(N¬C®‡.C�(ö¬C¸ž/C�(š¹«Cö¨0C�(Ha«Cf¦1C�(¸þªC —2C�({”ªCRx3C�(H!ªC®G4C�(H!ªC®G4C�({”©CìÑ3C�(… ©C®G3C�(öˆ¨Cö¨2C�(… ¨CRø1C�(Õ§CÃ51C�(f&§CHa0C�(À¦Cq}/C�(�b¦CÍŒ.C�(Í ¦C\�-C�(HÁ¥C�‚,C�(€¥Cn+C�(öH¥CìQ*C�()¥C…+)C�(áú¤C�(C�(×ã¤CìÑ&C�(RؤCH¡%C�(RؤC¤p$C�(�â¤Cq=#C�(šù¤C\"C�(á¥C×ã C�(fF¥CÀC�()|¥CH¡C�(q½¥CÍŒC�(ö¦C€C�(q]¦C�‚C�(ẦC\�C�( §C…«C�(\�§C ×CéG%!#)ÿœ(Á¥'Ú( ¥C(CBBêG%!#)ÿÚ(Á†¥' ¥Cá:BCî?‰Þ(’PA—ëG%5<�ÿ‡Þ(�ß(ŒIIIÞ(Á¥'ã( ä(@»C�Cä(¼CH!Cä(®Ç¼CffCä(f†½CìÑCä(¸>¾CHaCä(¤ð¾CìCä(R˜¿CfæCä({4ÀCšÙCä(×ÃÀCöèCä(fFÁC{Cä(š¹ÁC{TCä()ÂC…« Cä(\oÂC{"Cä(\¯ÂCÍŒ#Cä(qÝÂCÍ %Cä(RøÂC{”&Cä(ÃCH!(Cä({ôÂC®)Cä( ×ÂC33+Cä(¥ÂC3³,Cä(�bÂCö(.Cä(Í ÂC\�/Cä(®§ÁCHá0Cä(ì1ÁCH!2Cä(ͬÀC®G3Cä(áÀCìQ4Cä()|¿C@5Cä(3Ó¾CÍ 6Cä(H!¾Cáº6Cä(H!¾Cáº6Cä(×c½C€6Cä(…«¼C×#6Cä( ÷»Cf¦5Cä(öH»C®5Cä(×£ºCÍL4Cä(®ºC¤p3Cä(Ãu¹Cáz2Cä(\ï¸C…k1Cä( w¸CE0Cä(… ¸C= /Cä(\¯·Cáº-Cä(�b·C¸^,Cä(f&·CÃõ*Cä(áú¶C�‚)Cä(à¶C®(Cä( ×¶C=Š&Cä(¸Þ¶C\%Cä(Rø¶C{”#Cä(×#·CH!"Cä(¸^·Cõ Cä(=ª·CšYCä(f¸C= Cä(¤p¸CÍÌCä(®ç¸C×£Cä(n¹C{”Cä(¸þ¹C)œCä(ᚺCÀCä(@»C�CìG%!#)ÿã(Á¥'¡) »C(CBBíG%!#)ÿ¡)Á†¥' »Cá:BCî?‰¥)’PA—îG%5<�ÿ‡¥)�¦)ŒIV¥)Á¥'ª) «)ÙC(C«)ÍÌØC\�+C«)Ã5ØC¤ð.C«)HA×Cáú1C«)qýÕC�‚4C«)RxÔC…k6C«)®ÇÒCš™7C«)ÑC8C«)R8ÏCš™7C«)®‡ÍC…k6C«)�ÌC�‚4C«)¸¾ÊCáú1C«)=ÊÉC¤ð.C«)33ÉC\�+C«)ÉC(C«)33ÉC¤p$C«)=ÊÉC\!C«)¸¾ÊCC«)�ÌCq}C«)®‡ÍC{”C«)R8ÏCffC«)ÑCC«)®ÇÒCffC«)RxÔC{”C«)qýÕCq}C«)HA×CC«)Ã5ØC\!C«)ÍÌØC¤p$CïG%!#)ÿª)Á¥'Ê) ÑC(CBBðG%!#)ÿÊ)Á†¥' ÑCá:BCî?‰Î)’PA—ñG%5<�ÿ‡Î)�Ï)ŒVÎ)Á¥'Ó) ŠCÀC�B�BÓ) ŠCÀC¤B¤BòG%NcuÿÓ)Á¥'Ø)Ù)àŒC�"¹CÙ)�âŒC3»CØ)Ü)×ãŒCö¨¼CÜ)åŒCš™¾CØ)ß)®çŒC\/ÀCß)öèŒC ÂCØ)â)=êŒCõÃCâ)ÍìŒCf¦ÅCØ)å)îŒC)<ÇCå)\ïŒCÍ,ÉCØ)è)¤ðŒC�ÂÊCè)3óŒC3³ÌCØ)ë){ôŒCöHÎCë) ÷ŒCš9ÐCØ)î)öÈ‹C)ܸCî){T‹C\¯ºCØ)ñ){ôŠCÍ,¼Cñ)€ŠC¾CØ)ô) ŠCq}¿Cô)…«‰C¤PÁCØ)€÷)ÍL‰CÎÂC÷)R؈CH¡ÄCØ)€ú)RxˆC¸ÆCú)׈CìñÇCØ)ý)×£‡C\oÉCý)\/‡C�BËCØ)€*\φCÀÌC€*áZ†C3“ÎCØ)ƒ*챊C —¸Cƒ*fƉC…KºCØ)€†*f‰C¤°»C†*áˆCff½CØ)‰*šY‡C…˾C‰*\o†CH�ÀCØ)Œ*®…CfæÁCŒ*�„C)œÃCØ)€�*�„CHÅC�* ƒC ·ÆCØ)€’* W‚C)ÈC’*…k�CìÑÉCØ)€•*…«€C 7ËC•*€C…ëÌCóG%5<�ÿØ)Á¥'š*›*q}�CÃõÈC›*…ŽC ×ÌCš*ž*á:ŽCìÑÇCž*¸ÞŒC@ÍCš*¡*RøŒC®ÆC¡*R8‹C=ªÍCš*€¤*{´‹C=ŠÅC¤*3“‰C3ÎCš*§*ìqŠCffÄC§*Íì‡Cq}ÎCš*ª*\/‰C�BÃCª*fF†CfæÎCš*€­*öˆ‡C…«ÃC­*×…C�ÂÍCš*€°*�â…CÃÄC°*ÀƒC¸žÌCš*€³*)<„C¸~ÄC³*q}‚CázËCš*¶* —‚CöèÄC¶*á:�C WÊCš*¹*¤ð€CìQÅC¹*¤ðC33ÉCôG%!#)ÿš*Á†¥' q=�C= ³Cî?ï?‰¾*’ A—õG%5<�ÿ‡¾*�¿*Œá›°¾*Á†¥' ŠCÀCî?ï?‰Ã*’¨A—öG%!#)ÿ‡Ã*�Ä*Œá› Ã*Á†¥' q=”C�â§C‰È*’ö(8A—÷G%Ncuÿ‡È*�É*Œ ᛚᚢᛪÈ*Á†¥' á:�C®çÕC‰Í*’¤pEA—øG%Ncuÿ‡Í*�Î*ŒᚢᛗᛒᚱᚨÍ*Á†¥'·Q: xBR¸NC‰Ò*’33©A—ùG%%3ÿ‡Ò*�Ó*Œ4á›�ᚺᛖ ᛊᚢᚾ ᚺᚨᛊ ᚾᛟ ᛖᚣᛖᛊ᛬Ò*Á†¥'$—» xBö(iC‰×*’¨A†¸>—úG%)3Dÿ‡×*�Ø*ŒCá›�ᚺᛖᚣ ᚳᚱᛟᚹᚾᛖᛞ á›�á›� ᛒᛚá›�ᚾᛞ ᚨᚾᛞ×*Á†¥'oƒº xB W�C‰Ü*’¤p©A—ûG%)3Dÿ‡Ü*�Ý*Œ@ᛒᚱᛟᚲᛖ á›�á›�ᛊ ᚱᚨᚣᛊ᛬ á›�á›� ᚹᚨá›�á›�ᛊÜ*Á†¥'RI�º xBö�C‰á*’ff¨A†\�Â?—üG%)3Dÿ‡á*�â*Œ9ᛒᛖᚾᛖᚨá›�ᚺ á›�ᚺᛖ ᚳᚱᛟᚹᚾ ᚠᛟᚱá*Á†¥'RI�¹ xBáœC‰æ*’…ë¥A—ýG%)3Dÿ‡æ*�ç*Œ á›�ᚺᛖ ᛚᚨᛊá›� ᚹᚺᛟæ*Á†¥'à-�º xB{ô¨C‰ë*’= §A—þG%#+:ÿ‡ë*�ì*Œᛚᛟᛟᚲᛊ᛬ á›�ᚺᛖë*Á†¥'Ãd*; xB®ÇµC‰ð*’ö(¨A—ÿG%)3Dÿ‡ð*�ñ*Œ áš á›�áš á›�ᚺ ᚡᛟᚹ á›�ᛊð*Á†¥'™»» xB{ÔÂC‰õ*’\�¨A—€H%)3Dÿ‡õ*�ö*Œᚣᛟᚢᚱᛊ᛬õ*Á†¥' PCáDî?‰ú*’pA—�H%Ncuÿ‡ú*�û*Œclavisú*Á¥'ÿ*€+*C€ D€+vC€ Dÿ*ƒ+*C-Dƒ+vC-Dÿ*†+*C€ D†+*C-Dÿ*‰+HC€ D‰+HC-Dÿ*Œ+vC€ DŒ+vC-Dÿ*�+*CD�+vCDÿ*’+*C€D’+vC€Dÿ*•+*C D•+vC Dÿ*˜+*C€&D˜+vC€&D‚H%Ncuÿÿ*Á†¥' 9CH¡ Dî?‰�+’€A—ƒH%5<�ÿ‡�+�ž+ŒK�+Á†¥' q}[CŽ D‰¢+’¨A—„H%!#)ÿ‡¢+�£+Œáš²¢+Á†¥' 9CH!Dî?‰§+’€A—…H%5<�ÿ‡§+�¨+ŒJ§+Á†¥' ¸žYCD‰¬+’¨A—†H%!#)ÿ‡¬+�­+Œᛃ¬+Á†¥' 9CH¡Dî?‰±+’€A—‡H%5<�ÿ‡±+�²+ŒQ±+Á†¥' ×cZCŽD‰¶+’¨A—ˆH%!#)ÿ‡¶+�·+Œᛩ¶+Á†¥' 9CH!!Dî?‰»+’€A—‰H%5<�ÿ‡»+�¼+ŒX»+Á†¥' RøVCD‰À+’¨A—ŠH%!#)ÿ‡À+�Á+ŒᛪÀ+Á†¥' 9CH¡'Dî?‰Å+’€A—‹H%5<�ÿ‡Å+�Æ+ŒZÅ+Á†¥' H¡XCŽ%D‰Ê+’¨A—ŒH%!#)ÿ‡Ê+�Ë+ŒᛉÊ+Á†¥'ùÉ¿ B D‰Ï+’`A—�H%Ncuÿ‡Ï+�Ð+Œ=á›�ᚺᛖ áš á›�áš á›�ᚺ ᚡᛟᚹ á›�ᛊ ᚣᛟᚢᚱᛊ᛬Ï+Á†¥''  ; ZC æC‰Ô+’)\—A†¸…>—ŽH%)3Dÿ‡Ô+�Õ+Œ7á›�ᛖᛊá›�á›�ᛊ᛬ á›�ᚢᚱᚨᛗᛖᚾá›�ᚢᛗ᛬Ô+Á†¥' úC8B™î?‰Ù+’ A—�H%5<�ÿ‡Ù+�Ú+Œ/C U L T O F T H E U N S E E I N G S U N†¥' úC@ D™î?‰Ý+’ B—�H%!#)ÿ‡Ý+�Þ+ŒTHE CORONATION†¥' úC€D™î?‰á+’àA—‘H%!#)ÿ‡á+�â+ŒA crown for the last who looks.†¥' úC€%D™î?‰å+’¸A—’H%5<�ÿ‡å+�æ+ŒThe fifth vow is yours.†¥' úC/D™î?‰é+’�A—“H%5<�ÿ‡é+�ê+ŒV / V . 9¥'í+€ î+ÍÌCH¡Cî+qýCšÙ#Cî+×#CÀ#Cî+3óC=ŠC”H%!#)ÿ¥'ô+€ õ+®ÇCö¨Cõ+R¸CšÙ#Cõ+)ÜCÀ#Cõ+îC\�C•H%!#)ÿ¥'û+€ ü+HaCf¦Cü+¤pCšÙ#Cü+ —CÀ#Cü+…C\�C–H%!#)ÿ¥'‚,€ ƒ,¤0C®ÇCƒ,…+CšÙ#Cƒ,ìQCÀ#Cƒ,{TC¤°C—H%!#)ÿ¥'‰,€ Š,= C\ÏCŠ,fæC ×#CŠ,= C�Â#CŠ,. CR¸C˜H%!#)ÿ¥'�,€ ‘,€C…ëC‘,H¡ CšÙ#C‘,Å CÀ#C‘,ö¨CìÑC™H%!#)ÿ¥'—,€ ˜,.CC˜,)\ CšÙ#C˜,q} CÀ#C˜,ìQCîCšH%!#)ÿ¥'ž,€ Ÿ,)œC…ëCŸ,…«CnCŸ,¤° C®‡CŸ,Í C=ÊCŸ,=ŠC=ÊCŸ,�ÂC@CŸ,3³C…ëCŸ,3³C®CŸ,¤°Cq=CŸ,RxCöèCŸ,ìCìCŸ,q½ CÀCŸ,R¸CázCŸ,H¡C×£C›H%5<�ÿ¥'¯,€ °, ×CÃõC°,f¦C)\ C°,×c CšÙ!C°,×£ C#C°,šYCÍL#C°,RxC®‡#C°,ì‘CÃõ"C°,)œC®"C°,=ŠCHa C°,q=CHáC°,H!CR¸C°,ö(C®ÇC°, WC¤p!C°,¤pCn"C°,¤pC\#C°,ffC{Ô"C°,=Ê Cöh"C°,ö¨ Cá:!C°,áúCÅC°,…ëC{ÔCœH%!#)ÿ¥'Æ,€ Ç,õCìÑCÇ,¸žC=ÊCÇ,ÅC�ÂCÇ,33 C�CÇ,šYCá:CÇ, ×C¤ðCÇ,×ãC=JCÇ,q}CìQCÇ,=ŠC\�CÇ,{C¤ðCÇ,ÍLCö¨CÇ,ìQC…CÇ,á:C\OCÇ,ECìQCÇ, ×CîCÇ,á:CnCÇ,ÍÌ C= CÇ,RøCq½CÇ,õC=ÊCÇ,ázC\�C�H%!#)ÿ¥'Ý,€ Þ,š™õBÃ5CÞ,\ïBq=CÞ, WëBf¦ CÞ,�ÂéB®‡CÞ,R8êBnCÞ,ffêB×#úBÞ,HaëBHaöBÞ,¤píBq½÷BÞ,…õB=ŠþBÞ,®þB CÞ, —C®‡CÞ,Ã5CîCÞ,õCÃuöBÞ,ÍÌC= ëBÞ,Í Cq=çBÞ,Ãõ CÍÌëBÞ,�B C WøBÞ,öèC)ÜþBÞ,ì‘Cq=÷BÞ,{ÔC…ëêBÞ,C¸žåBÞ,�ÂC×#êBÞ,{ÔCìQôBÞ,ÅC33CÞ,ö(CÃuCÞ,=J$CCÞ,áz)C¤p÷BÞ,šÙ+CõBÞ,¸,CùBÞ,)œ,C=ÊCÞ,À,CìQCÞ,Å+C€ CÞ,R8*C)CÞ,R8'C×ãCÞ,®Ç$C\ÏCÞ,šY!C=ÊCÞ,¸CÍ CÞ,…kCîCÞ,nC¸ÞCÞ,…«CH¡CÞ,ìÑ C —CÞ,¸ÞCÍ CÞ,õCš™CÞ,¤púB)CÞ,ö(õBCÞ, ×óBázCÞ,ázùB¸ÞCÞ,3sCHaCÞ, —C…+CÞ,…« CÅCÞ,)œCöèCÞ,ffCÍ CÞ, —CfæCÞ,×cCq=CÞ,3³!Cq½CÞ,)\%C×£CÞ,Ha(CH¡CÞ,®,Cá:CÞ,R¸-C CÞ,áº.CÃuCÞ,n.CH¡CÞ,ì‘-C…køBÞ, W,C{òBÞ,Rx(C)ÜôBÞ,@#C WÿBÞ,@C)ÜCÞ,ECázÿBÞ,EC�ÂóBÞ,áúC)\éBÞ,¤ðC×£âBÞ,3³C…kéBÞ,®GC…õBÞ,=ÊC\üBÞ, ×C=ŠöBÞ, W CìQêBÞ,¤0 C33ãBÞ,RøCêBÞ,áºC\�õBÞ,ffC33CÞ,qýC=ŠCÞ,q}CìQCÞ,R8øB)\ûBÞ,áúïBfæóBÞ,\éBÍÌòBÞ,š™æB=ŠùBÞ,R¸åBìQCÞ,ffåBõCÞ,èBH! CÞ,ÍÌëB)\CÞ,¸žóB×cCžH%!#)ÿ†¥' C€ìC™î?‰º-’ˆA—ŸH%5<�ÿ‡º-�»-ŒREX†¥' CúC™î?‰¾-’ˆA— H%5<�ÿ‡¾-�¿-ŒCAECUS¥'Â-€ Ã-¥CHDÃ-)ü¨C•DÃ-Ãõ¬CfDÃ-= ­CšùDÃ-)ü¨C{dDÃ-)ü¤CõD¡H%5<�ÿ¥'Ë-€ Ì-…ÅC3DÌ-ìqÉC{”DÌ-{tÍC®DÌ-…‹ÍCRøDÌ-ìqÉCRhDÌ-\oÅCÃõD¢H%5<�ÿ¥'Ô-€ Õ-)üåC)üDÕ-ÃõéCášDÕ-{ôíC®DÕ-… îCRøDÕ- ÷éC)lDÕ-öèåC\ïD£H%5<�ÿ¥'Ý-€ Þ-qMDšùDÞ-@DÍœDÞ-…;DfDÞ-{DDšùDÞ-¤@DšiDÞ-{DDqíD¤H%5<�ÿ¥'æ-€ ç-¸ŽD)üDç-3ƒDRˆDç-…{DÃDç-{„D=úDç-׃DÍ\Dç-Ã…D¤ðD¥H%5<�ÿ¥'ï-€ ð-áº#DöDð-)¼%DÕDð-=º'D®Dð-ÃÅ'DRøDð-)¼%DÍlDð-H±#DÍüD¦H%5<�ÿ¥'ø-€ ù-¤ðQCÍìßCù-ö¨OCáúãCù-öèMC3óçCù-Í LCqÝëCù-\ÏJCáúïCù-¤0KCðCù-€MCfìCù-×#OC èCù-ö(QC%äCù-šYRC ÷ßC§H%5<�ÿ¥'….€ †.Há?CHàC†.3s=C×ããC†.®Ç;C ×çC†.=Ê9CHìC†.Å8CšùïC†.á:9CfðC†.ìQ;C=*ìC†.=CšùçC†.×ã>C\äC†.@@CÍ àC¨H%5<�ÿ¥'’.€ “.fæ-CHàC“.=J+C ×ãC“. *C®ççC“.= (C¤ðëC“.Å&CšùïC“.á:'CfðC“.…)C)ìC“.Ã5+C×èC“.®Ç,CHäC“.®G.CàC©H%5<�ÿ¥'Ÿ.€  .{”C)üßC .ìQCäC .{C…ëçC .®CRøëC .®ÇCšùïC .R8CfðC .ì‘C%ìC .@C= èC .¸ÞC…+äC .áúCfàCªH%5<�ÿ¥'¬.€ ­.)Ü CqýßC­.¸^C¸þãC­.áºC{ÔçC­.)ÜC�ìC­.®ÇCšùïC­.R8CfðC­.\�C\/ìC­.ÃõC ÷çC­.Í C¤0äC­.ÍL C= àC«H%5<�ÿ¥'¹.€ º.RhED¸þßCº.ö¸ED äCº.�BFD… èCº.R¨FD¤ìCº.{4GDðCº.…KGDáúïCº.GDåëCº.�FDöèçCº.{$FD×ããCº.3ƒEDìñßC¬H%5<�ÿ¥'Æ.€ Ç.qíIDÃõßCÇ.¸>JD)üãCÇ. ·JDRøçCÇ.3KD\ìCÇ.�²KDfðCÇ.qÍKDšùïCÇ.{tKD×ãëCÇ.®÷JDqÝçCÇ.{¤JD\ÏãCÇ.fJD=êßC­H%5<�ÿ¥'Ó.€ Ô.pND\ïßCÔ.®ÇND=*äCÔ.3CODšùçCÔ. OD¤ìCÔ.H1PDfðCÔ.¸NPDšùïCÔ.¸PD�âëCÔ.H‘OD ×çCÔ.×#ODäCÔ.=ŠND×ãßC®H%5<�ÿ¥'à.€ á.öøRDîßCá.öHSDÍ äCá.¸¾SD\èCá.®TD¸þëCá.{´TDðCá.…ËTDáúïCá.H�TDìÑëCá.¸TD\ïçCá.�²SD¸ÞãCá.ÃSDHáßC¯H%5<�ÿ¥'í.€ î.RhWDàCî.R¸WDRäCî.¤@XDf&èCî.{¤XDšìCî.{4YDðCî.…KYDáúïCî.¤YD…ëëCî.öˆXDèCî.áXD=êãCî.3ƒWDHàC°H%5<�ÿ¥'ú. û.@&D•Cû.=*"D׃­Cû.R¸DÍ,ÁCû..DÃÌCû.×£çCÃÌCû.\�ÆCÍ,ÁCû.…«¯C׃­Cû.€§C•Cû.…«¯CRøxCû.\�ÆCf¦QCû.×£çC{Ô;Cû..D{Ô;Cû.R¸Df¦QCû.=*"DRøxCú. úC•CPBŒB±H%µÖæÿú.Áó€? ÃÃ`u°Ã†�/ TCš™»B‰Ž/’B—²H%5<�ÿ‡Ž/��/Œ>á›�ᚾᚳá›�ᛈá›�á›� ᛚá›�á›’á›–áš± ᛚᛖᚳá›�ᛟᚱá›�ᛊŽ/ÁŽ/Áó€?†�/·Ñ8 CCq½C‰”/’…ëŸA†ìQx?—³H%)3Dÿ‡”/�•/Œ{á›�ᚺᛖ ᚱᛖᚨᛞᛖᚱ ᚳᚨᛗᛖ ᛒᚣ áš¾á›�ᚷᚺá›� áš¹á›�á›�ᚺ ᚨ ᚳᚨᚾᛞᛚᛖ ᚨᚾᛞ ᚱᛖᚨᛞ”/Á”/Áó@†�/B`e» CC0C‰š/’ö(œA†®Gá>—´H%%3ÿ‡š/�›/Œ„ᚹᚺᚨá›� á›�ᚺᛖ ᛒᛟᛟᚲ ᚠᛟᚱᛒᚨᛞᛖ᛬ áš á›�ᚡᛖ ᚡᛟᚹᛊ ᚹᛖᚱᛖ ᛒᛟᚢᚾᛞ á›�áš¾ á›�á›�᛫š/Áš/Áó@@†�/l y» xB�BJC‰ /’q=žA†€>—µH%%3ÿ‡ /�¡/Œ­ᚨᚾᛞ á›�ᚺᛖ ᚱᛖᚨᛞᛖᚱ ᛒᚱᛟᚲᛖ ᚹᚺᚨá›� á›�ᚺᛖ ᚱᛖᚨᛞᛖᚱ ᚳᛟᚢᛚᛞ᛬ á›�ᚺᛖᚾ á›�ᚺᛖ ᚳᛚᛟᚳᚲ ᛊá›�ᚱᚢᚳᚲ /Á /Áó€@†�/RI�¹ xBneC‰¦/’{ A†)\?—¶H%)3Dÿ‡¦/�§/Œ¤á›�ᚹᛖᛚᚡᛖ ᚨᚾᛞ á›�ᚺᛖ ᛞᛟᛟᚱ ᛟᛈᛖᚾᛖᛞ ᚨᚾᛞ á›�ᚺᛖ ᛚá›�ᚷᚺá›� ᚹᚨᛊ á›�ᚨᚲᛖᚾ᛬ á›�ᚺᛖ ᚱᛖᚨᛞᛖᚱ¦/Á¦/Áó @†�/RI» xBìQ€C‰¬/’…ë�A†�Âõ<—·H%)3Dÿ‡¬/�­/Œ©ᛞá›�ᛞ ᚾᛟá›� ᚳᛚᛟᛊᛖ á›�ᚺᛖ ᛒᛟᛟᚲ᛫ ᛊᛟ á›�ᚺᛖ ᛒᛟᛟᚲ ᚳᛚᛟᛊᛖᛞ ᛟᚾ á›�ᚺᛖ ᚱᛖᚨᛞᛖᚱ᛬ ᚾᛟᚹ á›�ᚺᛖ¬/Á¬/ÁóÀ@†�/ xBìñšC‰²/’ A—¸H%5<�ÿ‡²/�³/ŒI.²/Á²/Áóà@†�/Ãdªº ìÑ¢B¸Þ˜C‰¸/’…ë¡A—¹H%#+:ÿ‡¸/�¹/Œ*á›� ᚳᚨᛗᛖ ᛒᚣ áš¾á›�ᚷᚺá›�᛬¸/Á¸/ÁóA†�/ xBìq§C‰¾/’ A—ºH%5<�ÿ‡¾/�¿/ŒII.¾/Á¾/ÁóA†�/í >» ö¨²Bͬ¥C‰Ä/’Há A—»H%)3Dÿ‡Ä/�Å/Œ-á›� ᛚá›�á›� á›�ᚺᛖ ᚳᚨᚾᛞᛚᛖ᛬Ä/ÁÄ/Áó A†�/ xBìñ³C‰Ê/’ A—¼H%5<�ÿ‡Ê/�Ë/ŒIII.Ê/ÁÊ/Áó0A†�/úík» €ÂBš9²C‰Ð/’¤pŸA—½H%%3ÿ‡Ð/�Ñ/Œ=á›� ᚱᛖᚨᛞ ᚹᚺᚨá›� ᚹᚨᛊ ᚺá›�ᛞᛞᛖᚾ᛬Ð/ÁÐ/Áó@A†�/ xBìqÀC‰Ö/’ A—¾H%5<�ÿ‡Ö/�×/ŒIV.Ö/ÁÖ/ÁóPA†�/‰Ò^» �¼BöȾC‰Ü/’¤pŸA—¿H%#+:ÿ‡Ü/�Ý/ŒAá›� ᛞá›�ᛞ ᚾᛟá›� ᚳᛚᛟᛊᛖ á›�ᚺᛖ ᛒᛟᛟᚲ᛬Ü/ÁÜ/Áó`A†�/ xBìñÌC‰â/’ A—ÀH%5<�ÿ‡â/�ã/ŒV.â/Áâ/ÁópA†�/B`e» …ë¬BfËC‰è/’š™ŸA—ÁH%)3Dÿ‡è/�é/Œá›� ᛊá›�ᚨᚣᛖᛞ᛬è/Áè/Áó€A†�/ùÉ¿ B D‰î/’`A—ÂH%Ncuÿ‡î/�ï/ŒUᛚᛖᚳá›�ᛟᚱ ᛗᚨᚾᛖá›�᛬ á›�ᚺᛖ ᚱᛖᚨᛞᛖᚱ ᛊá›�ᚨᚣᛊ᛬î/Áî/ÁóˆA†�/‰Ò^» xBáº�C‰ô/’®�A†ìQ8>—ÃH%#+:ÿ‡ô/�õ/Œµᚱᛖᚨᛞᛖᚱ ᛊá›�á›�ᛊ á›�áš¾ á›�ᚺᛖ ᛊá›�ᛪá›�ᚺ ᛈᚨᚷᛖ áš¹á›�á›�ᚺ á›�ᚺᛖ ᚳᚨᚾᛞᛚᛖ á›�ᚺᚨá›� ᛞá›�ᛖᛞ᛫ ᚨᚾᛞ á›�ᚺᛖ ᛒᛟᛟᚲô/Áô/Áó�A†�/RI�9 ZC®§ÚC‰ú/’¤p�A†{.>—ÄH%#+:ÿ‡ú/�û/Œoᚱᛖᚨᛞᛊ ᛟᚾ᛬ ᛚᛖᚳá›�ᛟᚱ ᛗᚨᚾᛖá›�᛬ á›�ᚺᛖ ᚱᛖᚨᛞᛖᚱ ᛊá›�ᚨᚣᛊ᛬ú/Áú/Áó˜A†�/RI�9 ZC�âæC‰€0’…ë�A†q=ª?—ÅH%%3ÿ‡€0��0Œbá›�ᚺᛖ ᚳᚨᚾᛞᛚᛖ á›�ᛊ ᛟᚢá›� ᛒᚢá›� á›�ᚺᛖ ᛈᚨᚷᛖ á›�ᛊ ᛚá›�á›�᛬€0Á€0Áó A†�/ úC8B™î?‰†0’ A—ÆH%5<�ÿ‡†0�‡0Œ/C U L T O F T H E U N S E E I N G S U N†0Á†0Áó¨A†�/ ¥C@ D™î?‰Œ0’ B—ÇH%!#)ÿ‡Œ0��0Œ THE READERŒ0ÁŒ0Áó°A†�/ ¥C€D™î?‰’0’àA—ÈH%!#)ÿ‡’0�“0ŒOne who read past midnight.’0Á’0Áó¸A†�/ ¥C€%D™î?‰˜0’¸A—ÉH%5<�ÿ‡˜0�™0ŒNow the book reads you.˜0Á˜0ÁóÀA†�/ úC/D™î?‰ž0’�A—ÊH%5<�ÿ‡ž0�Ÿ0ŒVI / V . 11ž0Áž0ÁóÈA�/¤0€¥03³CÍÌÚB¥033C= ÛBÀ@¥033#CÍÌÚB¤0€©0 ×CÃuçB©0�‚C= æBÀ@©0\O CázîB¤0€­0)ÜC{ðB­0H!CÃuíBÀ@­0\�C…ëûB¤0€±0{TCÃõñB±0nCÃõîBÀ@±0öhCìÑþB¤0€µ0 W CázìBµ0á: C\êBÀ@µ0{CÍLöB¤0€¹0ÅCffáB¹0.CìQàBÀ@¹0{ÿB\åB¤0€½0ÅC33ÔB½0@CìÑÔBÀ@½0{ÿB=ŠÐB¤0€Á0 W C¸ÉBÁ0öh CR8ËBÀ@Á0{CÍL¿B¤0€Å0{TC×£ÃBÅ0…«C{”ÆBÀ@Å0öhC®Ç¶B¤0€É0)ÜC…ÅBÉ0šYC WÈBÀ@É0\�C®¹B¤0€Í0 ×C×#ÎBÍ0f¦CáúÏBÀ@Í0\O C¸ÇBËH%5<�ÿ¤0Á¤0ÁóÐA�/Ô0€ Õ0ÅCÓBÕ0ö¨C)ÜäBÕ0�ÂCq½äBÕ0)ÜCfæÒBÌH%!#)ÿÔ0ÁÔ0ÁóØA�/Ý0€ Þ0¤°C€ÒBÞ0ázC)ÜäBÞ0{”Cq½äBÞ0=ÊC)\ÒBÍH%!#)ÿÝ0ÁÝ0ÁóàA�/æ0€ ç0ázCìÑÒBç0=JC)ÜäBç0ffCq½äBç0{”C®ÒBÎH%!#)ÿæ0Áæ0ÁóèA�/ï0€ ð0…+CR¸ÒBð0¸C)ÜäBð033Cq½äBð0EC{”ÒBÏH%!#)ÿï0Áï0ÁóðA�/ø0€ ù0{ CÃõÒBù0îC)ÜäBù0®Cq½äBù0. C ×ÒBÐH%!#)ÿø0Áø0ÁóøA�/�1€ ‚13ó C{ÓB‚1�ÂC)ÜäB‚1 ×Cq½äB‚1® CÃõÒBÑH%!#)ÿ�1Á�1ÁóB�/Š1€ ‹1¤°C�ÂÒB‹1ì‘ C)ÜäB‹1ö¨ Cq½äB‹1®ÇC×£ÒBÒH%!#)ÿŠ1ÁŠ1ÁóB�/“1€ ”1áz C¸ÛB”1ìQ Cö¨ÛB”1{TC¸ÜB”1= C{ÜB”1ìÑC=ŠÛB”1®C)ÜÛB”1\ÏCáúÚB”1=ÊC¸žÚB”1ö¨C…kÚB”1=ÊC¤pÚB”1C.ÛB”1)\CÃõÚB”1¸^ C×#ÚB”1áz C®ÇÚBÓH%5<�ÿ“1Á“1ÁóB�/¦1€ §1îC€ÚB§1R8 CázÜB§1Há C ×ÞB§1Ã5Cö(àB§1®C{áB§133C¸žàB§1�ÂCšàB§1ìÑCšßB§1R¸CfæÜB§1f&CfæÚB§1šC3³ÚB§1ázC= ÜB§1H¡C.ÞB§1…«CìQßB§1f&CÃõßB§1\C WàB§1\OC¤pßB§1\ C\ÞB§1€ C×£ÛB§1áúCìQÚBÔH%!#)ÿ¦1Á¦1Áó B�/¿1€ À1fæC\�ÚBÀ1šY C33ÙBÀ1n CÍÌÖBÀ133 CÃuÔBÀ133C€ÓBÀ1öhC¤ðÒBÀ1®‡CHaÓBÀ1¸žCÍÌÕBÀ1nC3³ØBÀ1Í CÃõÚBÀ133C×£ÚBÀ1ÃõC€×BÀ1šCHaÔBÀ1ÀC…ëÑBÀ1ffCÍÌÑBÀ1 Cö(ÒBÀ1×ã CáúÒBÀ1¸Þ C¤pÕBÀ1� C…ë×BÀ1®ÇCR8ÚBÕH%!#)ÿ¿1Á¿1ÁóB�/Ø1€ Ù1®GC{”CÙ1®C¸CÙ1ÀC€CÙ1@C®CÙ1@C3³üBÙ1…ëC×£øBÙ1EC®GôBÙ1ffC…kðBÙ1\ÏCáúëBÙ13³C{èBÙ1€C…çBÙ1CêBÙ1šYC®ÇîBÙ1×# C×£ôBÙ1nC®ÇùBÙ1f¦Cö(þBÙ1ìQC¤ðCÙ1q½C®CÙ1RøC WCÙ1®CHaCÖH%NcuÿØ1ÁØ1ÁóB�/ñ1€ ò1=JC¤p Cò1Ã5C= Cò1=ÊC\Cò1fæC3s C×H%!#)ÿñ1Áñ1ÁóB�/ú1€ û1…ëC¸žCû1Í CšYCû1šC� Cû1\OC=Ê Cû1ÅC¸^Cû1 ×Cö(Cû1öhC×ãCû1×cC\OCû1@Cf&Cû1…+C×cCû133C…+ Cû1šCÃõ Cû1€ CÍLCû1¤p Cš™CØH%!#)ÿú1Áú1ÁóB�/�2€ Ž23³C®GCŽ2ÅC) CŽ2á:C  CŽ2{CECÙH%!#)ÿ�2Á�2Áó B�/–2€ —2¸óBH¡!C—2®ùB= C—2…+C=ŠC—233C\C—2 C3óC—2{ CEC—2¸C\� C—2áúC=JC—2\ÏC¤ðC—2®‡Cö(C—2šÙ CšYC—2�%C  C—2ìQ(C=Š!C—2áz(C�B!C—2…«%CÍ C—2×c!C…+C—2ì‘C3óC—2ffCC—2 —CázC—2¸C×£C—2¤p CRxC—2öh CC—2¸C)œC—2¸žC¸^C—2.øB\ÏC—2R¸òBšY!CÚH%!#)ÿ–2Á–2Áó$B�/µ2€ ¶2ffóB®ÇC¶2…ëùBRøC¶2 WCázC¶2H!C®GC¶2¤ðCáúC¶2R¸ Cì‘C¶2)C3óC¶2=JC —C¶2\CqýC¶2ö¨CšC¶2ẠC…kC¶2ÍÌ$C= C¶2@(C¤°C¶2ÍŒ(C\OC¶2Í &C=JC¶2®!C WC¶2õC@C¶2q=C®GC¶2ì‘CEC¶2šC\�C¶2{T CffC¶2ö¨ CázC¶2= C C¶2�‚C®C¶2�Â÷BHaC¶2®ÇòBöhCÛH%!#)ÿµ2Áµ2Áó(B†�/ C€øC™î?‰Ô2’ˆA—ÜH%5<�ÿ‡Ô2�Õ2ŒLECTORÔ2ÁÔ2Áó,B†�/ CD™î?‰Ú2’ˆA—ÝH%5<�ÿ‡Ú2�Û2ŒMANETÚ2ÁÚ2Áó0B�/à2€ á2RøQC®çßCá2ÃuOCìñãCá2õMC= èCá2ÃõKC×ãëCá2\ÏJCáúïCá2¤0KCðCá2ö¨MCììCá23óNC…+èCá2öèPCqäCá2šYRC3óßCÞH%5<�ÿà2Áà2Áó4B�/ï2€ ð2ö¨?C{ôßCð2=J=C)üãCð2×ã;CèCð2¸Þ9C×ìCð2\Ï8CáúïCð2¤09CðCð2ff;C\/ìCð2¸=Cf&èCð2fæ>C®'äCð2 @CHàCßH%5<�ÿï2Áï2Áó8B�/þ2€ ÿ2)œ-CàCÿ2¸^+CqýãCÿ2…+*C3óçCÿ2…ë'C�âëCÿ2Å&CšùïCÿ2á:'CfðCÿ2¸ž)C{ìCÿ2ö(+CèCÿ2 ×,C�"äCÿ2.CšàCàH%5<�ÿþ2Áþ2ÁóDÍüDç3{DD Dç3=:D®Dç3ÃEDRøDç3EDìqDç3{4DîDèH%5<�ÿæ3Áæ3Áó\B�/ñ3€ ò3�DDò3ÍŒD×£Dò3ázD Dò3…DöøDò3ÍŒD3sDò3 ‡D3óDéH%5<�ÿñ3Áñ3Áó`B�/ü3€ ý3ö¸#D= Dý3š¹%DH‘Dý3…»'DfDý3{Ä'DšùDý3š¹%DeDý3\¯#DqýDêH%5<�ÿü3Áü3ÁódB‡4ˆ4¤p9D×1Dˆ4R˜0D‡4€‘4ÍLqD®GPB‘4ázsDHáHB‡4”4�‚ D= /D”4µ D3s/D‡4—4Ã%ZDìQ+B—4�Ò\D×£.B‡4€š4®7mD…ËÉCš4{ôoD×ãÈC‡4�4¸¾BÃõ7B�4{”ÓBHá8B‡4 4…BÕ³C 4áz'B×ã²C‡4€£43/D '2D£4HQ1D…Û1D‡4€¦4Ha3DHáB¦4Ã54D ×#B‡4€©4îCš™ B©4�!CB‡4¬4)|šCHáAB¬4)œœC\�DB‡4€¯4ö(=B ×TB¯4…ëYB¤pVB‡4²4¤DìQØA²4f¦D…ÍA‡4µ4Ãõ7BÍÌ]Bµ4¤pSB)\ZB‡4€¸4�ODö(*B¸4\ÏQDHá/B‡4»4WB33B»4ff_B{B‡4¾4ìQB…«C¾4{+Bq=C‡4Á4{ÁCÍ|.DÁ4qÝÄC W.D‡4€Ä4ÍLpD®GïBÄ4\sDHáîB‡4€Ç4EnD33ÑBÇ43ƒpD{”ÎB‡4Ê4flD¸!BÊ4áúmD…!B‡4Í4…«$Dž1DÍ4®'DÃ2D‡4Ð4®—oD¤pôBÐ4ÃÕrD3³ñB‡4Ó4fÆpD®çDÓ4f†qDRD‡4€Ö4®WDfF3DÖ4¸®D^3D‡4Ù4 5D…ëBÙ4ff6DHáB‡4€Ü4=ºoD{¤+DÜ4…[qDå+DëH%m‰Ÿÿà4€ á4ffÀAHáÆAá4š™ùA\�ÆAá4ìQBq=ÈAá4{4BffÈAá4q=PB¸ÉAá4\�lB ×ÇAá4q½ƒBHáÈAá4ìÑ‘B…ëÅAá4HáŸB{ÆAá4q=®BázÆAá4š™»Bq=ÈAá4¸žÉB¸ÇAá4®Ç×B\�ÈAá4æB®ÉAá4)\ôBìQÈAá4=ÊCš™ÉAá4¸CìQÈAá4¤ðC�ÂËAá4�CffÌAá4öèCš™ËAá4Ãõ#CÍÌÊAá4ì+CR¸ÌAá4\2CHáÊAá4¤09C= ËAá4H!@C\�ÌAá4�GCázÌAá4qýMCÍÌÌAá4 UC…ËAá4šÙ[Cq=ÎAá4HábC{ÎAá4öèiCázÎAá4ÍÌpCÃõÎAá4×ãwCázÎAá4öè~Cö(ÎAá4qý‚Cq=ÎAá4 —†C\�ÐAá4{ô‰C ×ÏAá4q}�C×£ÐAá4f‘C\�ÐAá4�‚”CÍÌÐAá4¤˜C…ëÑAá4q}›C…ÏAá4ÃõžC\�ÐAá4¤p¢CÍÌÐAá4= ¦C\�ÒAá4šy©Cq=ÒAá4f­Cq=ÒAá4=j°C…ëÑAá4®ç³C…ÑAá4H�·C×£ÒAá4=êºC= ÕAá4\o¾CÃõÒAá4šùÁCö(ÔAá4H�ÅCÍÌÔAá4åÈC= ÕAá4…‹ÌC= ÓAá4áúÏC®GÓAá4{tÓCÍÌÔAá4××C®ÕAá4nÚC ×ÓAá4 ÞCÍÌÔAá4�báC33ÕAá4�âäCÃõÖAá4nèC¤p×Aá4… ìCìQÔAá4\�ïC®×Aá4îòCØAá4ìqöC33ÕAá4úCš™×Aá4¤pýCázØAá4fvD= ÕAá4HAD×£ÖAá43óD…ÕAá4ÍÌD{ÖAá4€DÍÌÒAá4áJ DÃõÖAá4Rø D®GÕAá4Î Dö(ÖAá4RxDÃõÒAá4f6DÍÌÔAá4á D33ÓAá4õDìQÐAá4šyD×£ÒAá4ND¤pÏAá4þD¸ÑAá4šÉD)\ÏAá4{tD= ÑAá4š9DÒAá4 D¤pÏAá4�Â!DÐAá4~#DázÐAá4HA%DÍÌÌAá4šù&D= ÍAá4µ(D®GÍAá4)Œ*D®ÏAá4RH,D×£ÎAá4\ÿ-D®GÏAá4…Ë/D¤pËAá4…‹1DázÌAá4Í<3D33ÍAá4Íü4DÃõÊAá4µ6D ×ÉAá4Í|8DÊAá4fF:DR¸ÊAá4�5Dá4á:dDÃU5Dá4)ŒbDP5Dá4qÍ`Dö85Dá4… _DÍL5Dá4 G]D G5Dá4~[DöH5Dá4�²YDÍ<5Dá4XDÃ55Dá4HAVD×C5Dá4RˆTD55Dá4¸¾RD)<5Dá4ÃQDìA5Dá4ÃEOD)<5Dá4¤€MDÃ55Dá4¸¾KDö(5Dá4¤JD¤05Dá4áJHD¸5Dá4×sFD¤ 5Dá4×ÃDD\5Dá4ÍüBD05Dá4ÃEADR(5Dá4 w?D…5Dá4ͼ=Df&5Dá4 ÷;D®5Dá4H1:Dš5Dá4q�8D=*5Dá4Å6D×#5Dá4®5DH5Dá4ö83DÍ 5Dá4{t1D 5Dá4¾/D\5Dá4šù-DR5Dá4®G,DR5Dá4�r*D35Dá4¾(D…û4Dá4ö'Dš 5Dá4E%D×ó4Dá43ƒ#Dá 5Dá4ìÁ!DRø4Dá4) Dì5Dá4¸ND 5Dá43ƒDRø4Dá4 ÇDHñ4Dá4=úD\ÿ4Dá4®7D ÷4Dá4fvD…û4Dá4f¶D{ô4Dá4õDfæ4Dá4ND×ó4Dá4)ŒD¤à4Dá4=Ê Döè4Dá4® Då4Dá4R8 D)Ü4Dá4�‚D)ì4Dá4®·D{Ô4Dá4{Dfæ4Dá4Ã5DÍÜ4Dá4{„D=Ú4Dá4R˜ýC3Ó4Dá4fæùC{Ä4Dá4 wöCÍÜ4Dá4= óC)Ü4Dá4ášïCà4Dá43óëCáÚ4Dá4š™èCRè4Dá4ìñäCšÙ4Dá4f†áC)Ü4Dá4šùÝCå4Dá4q�ÚCî4Dá4ö×CšÙ4Dá4®‡ÓCÍÜ4Dá4\ÐCHñ4Dá4ìqÌC…Û4Dá4)üÈCî4Dá4…kÅCáÚ4Dá4®ÂC=ê4Dá4=оCÍì4Dá4{ôºCÃõ4Dá4\�·Cìñ4Dá4\´C¸þ4Dá4¤�°C\ï4Dá4®ç¬C{ô4Dá4=j©C=ú4Dá4Íì¥C×5Dá4¤p¢C®÷4Dá4…ëžCÍ 5Dá4 w›C35Dá4טC5Dá4ìq”C�5Dá4f‘C5Dá4 —�CÍ 5Dá4ìŠCì5Dá4€†C35Dá4�ƒCR5Dá4qý~C…5Dá4šÙwC®5Dá4.qC¤5Dá4šjCf5Dá4�cC) 5Dá4…ë[C¸5Dá4Í UC5Dá4áúMCì5Dá4…ëFCÃ%5Dá4qý?C5Dá4¤ð8C¸5Dá4ì2CÃ%5Dá4×#+C®'5Dá4)Ü#C 5Dá4ÍÌC¸.5Dá4Í C3#5Dá4qýC),5Dá4R8CÃ%5Dá4ÃõC3#5Dá4×#ôB),5Dá4.æB 75Dá4HaØB.5Dá4)ÜÉB¤05Dá4R¸»BÃ55Dá4¤ð­Bö85Dá4�B B…;5Dá4fæ‘B55Dá4q½ƒB�25Dá4 ×kBö85Dá4¸PB)L5Dá4…ë4B G5Dá4\�B�B5Dá4ázøA…K5Dá4= ÃA`5Dá4…ëÇAqÍ3Dá4¸ÇA¸þ1Dá4ìQÈA00Dá4ö(ÆA{„.Dá4×£ÈA¤°,Dá4ÈAfö*Dá4q=ÈA5)Dá4)\ÅAu'Dá4ázÆA®§%Dá4…ÇAÍü#Dá433ÇA¸."Dá4ÍÌÆAn Dá4ÍÌÆAH±Dá4š™ÉAîDá4)\ÇAì1Dá4HáÈAÃeDá4ÍÌÆA)œDá4×£ÆAHáDá4\�ÆA¸Dá4 ×ÅA¸^Dá4HáÆA\ŸDá4¤pÇA\ßDá4ÍÌÆA…+ Dá4ìQÆARh Dá4×£ÆAö¨ Dá4ÆAÍìDá4ÈAáDá4HáÆA gDá4×£ÈA®§Dá4®ÅA\ÏDá4®ÇAq=þCá4…ÉA3“úCá4= ÇAq=÷Cá4= ÉAš™óCá4¤pÇA¤ðCá4ázÆAR˜ìCá4{ÈA®éCá433ÇAš™åCá4š™ÅA)âCá4×£ÈA®‡ÞCá4¸ÇA)üÚCá4×£ÆA ×Cá4ÃõÆA ÷ÓCá4)\ÇA\�ÐCá4®ÇAHÍCá4…ÅA�¢ÉCá4®ÇAׯCá4×£ÆAŽÂCá4R¸ÆA ÷¾Cá4\�ÈA®g»Cá4®GÇA…ë·Cá4\�ÆAe´Cá4)\ÅA…ë°Cá4{ÈAq]­Cá4 ×ÅA\ï©Cá4š™ÇAff¦Cá4\�ÆAå¢Cá4¤pÇAšyŸCá4ÍÌÆARø›Cá4¤pÇA3S˜Cá4ÍÌÈA¸Þ”Cá4= ÇA…K‘Cá4)\ÅA=Ê�Cá4q=ÆA`ŠCá4{ÈA{ô†Cá4¸ÇA3SƒCá4ö(ÆA®Cá4�ÂÇAÀxCá4)\ÅAš™qCá4®ÇA€jCá4ö(ÆA¸^cCá4\�ÆAöh\Cá4®GÅA…UCá4= ÅA WNCá4ö(ÈAffGCá4®ÅAöh@Cá4ffÄA¸ž9Cá4 ×ÅA×c2Cá4HáÆA…+Cá4ö(ÈAE$Cá4q=ÆA)\Cá4{ÆA.Cá4 ×ÅAázCá4ö(ÄAÍŒCá4×£ÆA\OCá4ìQÄAq=ôBá4…ëÇA¸æBá4�ÂÇA×£ØBá4¸ÅA33ÊBá4{ÆAö¨¼Bá4{ÈA\®Bá4 ×ÇA W Bá4\�ÄAáú‘Bá4…ëÇA3³„Bá4ÃõÆA\�kBá4q=ÆA�ÂPBá4ìQÆA×£3Bá433ÇAffBá4®ÇA ×ùAá4×£ÆA ׿Aá4)\¹Aö(ÀAá4= »A…ëùAá4×£ºAìQBá4)\¹A×£3Bá433»A ×PBá4R¸ºA\�kBá4ffºA¸ž„Bá4¸Aáú‘Bá4ffºA¤p Bá4HáºA= ®Bá4ÃõºA{”¼Bá4{¸AR8ÊBá4ÃõºAR¸ØBá4R¸ºA= æBá4\�¸AR8ôBá4 ×¹A\OCá4Í̸A®‡Cá4š™·A€Cá4®G¹A33Cá4ö(ºAHaCá4{ºAE$Cá4®G¹Aq}+Cá4�·A)\2Cá4×£¸AH¡9Cá4q=¸A3s@Cá4š™¹AöhGCá4)\¹AìQNCá433¹A=ŠUCá4ffºA…k\Cá4ºA¸^cCá4…ë¹AázjCá4¸¹Aš™qCá4= ¹AÀxCá4…ë·A®Cá4\�ºA WƒCá4Í̺Aìñ†Cá4×£¸AáZŠCá4Há¸AÍÌ�Cá4 ×¹A¤P‘Cá4R¸ºAqÝ”Cá4ìQ¸AN˜Cá4®·Ašù›Cá4ö(ºAázŸCá4ö(¸A×ã¢Cá4= ¹Ae¦Cá4…·A¤ð©Cá4R¸¸Aq]­Cá4¸A=ê°Cá4×£¸A®g´Cá4R¸¸A¤ð·Cá4×£ºAff»Cá4ö(¸Aìñ¾Cá4áz¸A¤�ÂCá4)\¹A�ÆCá4áz¸A×£ÉCá4ºA×ÍCá4š™¹A…‹ÐCá4š™·A{ôÓCá4)\·A ×Cá4 ×·AHÛCá433¹Af†ÞCá4…·AšâCá4Í̸Aq�åCá4…¹AféCá4Ãõ¸AR˜ìCá4ffºA3ðCá4š™¹A —óCá4Há¸A¸>÷Cá4�¹A{”úCá4š™¹A 7þCá4®G·A\ÏDá4Há¸Aö¨Dá4Ãõ¸AffDá4= ¹AšDá4…ë·A)ìDá4= ¹Aš© Dá4ìQ¸Aöh Dá4…¹AÍ, Dá4…¹AÞDá4¸·AÍœDá4Í̶A^Dá4×£¶A Dá4áz¸A�âDá4)\¹A¸žDá4\�ºAÃeDá4ìQ¸Aì1Dá4 ×¹AîDá4q=¸A°Dá4¤p¹An Dá4®·A¸."Dá4R¸¸Aqý#Dá4Ãõ¸Af¦%Dá4ö(¸Afv'Dá4{ºA 7)Dá4 ×¹Afö*Dá4¸¹A¸®,Dá4ff¸A׃.Dá4®G¹A¤00Dá4®·A\ÿ1Dá4×£ºA)Ì3Dá4š™¹A)¬5Dá4R¸øA ·5Dá4š™Bì±5Dá4 ×4B¤°5Dá4q=PBq½5Dá4= lB §5Dá4q½ƒB{¤5Dá4 בBö¨5Dá4�B Bõ5Dá4áú­Bf¦5Dá4®Ç»Bš©5Dá4fæÉBÕ5Dá4 WØB•5Dá4ö(æBR¨5Dá4q=ôB¤ 5Dá4áúCöˆ5Dá4¤0C®—5Dá4qýC®—5Dá4\Cö˜5Dá4\ÏC¤�5Dá4)Ü#C)Œ5Dá4H!+C®—5Dá4)2C\�5Dá4Ãõ8CÃ…5Dá4Ãõ?C ‡5Dá4îFC\�5Dá4®NCf†5Dá4\UCáz5Dá4…ë[CRx5Dá4cCRx5Dá4šjCfv5Dá433qC\o5Dá4ìÑwCRh5Dá4qý~C¸~5Dá4�ƒCRh5Dá4H�†Cq}5Dá4ìŠC g5Dá43“�CÍ|5Dá4ö‘Cìq5Dá4{t”C g5Dá4טCöh5Dá4Ãu›CÃe5Dá4îžCn5Dá4ìq¢C3S5Dá4=ê¥CÍl5Dá4\o©Ce5Dá4öè¬C¤P5Dá4ްC…[5Dá4¤´C`5Dá4¤�·C¸N5Dá4 ÷ºC=Z5Dá4ÍŒ¾C×C5Dá4öÂCáJ5Dá4öhÅCRH5Dá4qýÈCáZ5Dá4ìqÌC)<5Dá4\ÐC\O5Dá4ÍŒÓC¸>5Dá4f×C…;5Dá4ášÚCE5Dá4áúÝCÍL5Dá4öˆáC�B5Dá4ìñäCÍ<5Dá4š™èCÍ<5Dá43óëCHA5Dá4ášïC×C5Dá4… óC>5Dá4)|öC=:5Dá4=êùCf&5Dá4ÕýCš)5Dá4׃DH15Dá45D¸.5Dá4{D{45Dá4f¶Df65Dá4ì�D�B5Dá4ö8 D335Dá4f DìA5Dá4áÊ D{D5Dá4…‹DH15Dá4ÍLDÍL5Dá4ÃõD G5Dá4µD�B5Dá4ÃuDP5Dá4®7DšI5Dá4áúD…K5Dá4®ÇD…;5Dá4H�D®G5Dá4ÍLD=Z5Dá4 D¸^5Dá4ìÁ!D G5Dá43ƒ#DÃU5Dá4E%DqM5Dá4R'DšY5Dá4ͼ(DRH5Dá4Hq*Dáj5Dá4šI,D3S5Dá4öø-D¤P5Dá4ͼ/DfV5Dá4{t1D^5Dá4ö83DRX5Dá45Dff5Dá4×Ã6D�r5Dá4Ž8D¤p5Dá433:D)l5Dá4Ãõ;D`5Dá4…»=D~5Dá4 w?Dìq5Dá4EAD3s5Dá4ÍüBD=z5Dá4ÅDDìq5Dá4×sFDáj5Dá4šIHDp5Dá4¤JD€5Dá4¸¾KDÍl5Dá4\MD¤€5Dá4{DOD׃5Dá4QD¸Ž5Dá4¤ÀRD\�5Dá4RˆTDöx5Dá4¤@VDáŠ5Dá4¤XDÍŒ5Dá4H±YD®‡5Dá4q}[Dáš5Dá4 G]DÕ5Dá4Í _D®—5Dá4ÍÌ`Df†5Dá4š‰bDž5Dá4…;dD¸ž5Dá4{ôeDf–5Dá4ÃÅgD�’5Dá4®wiD\�5Dá4=JkD�¢5Dá4)ülDš™5Dá4¸¾nD §5Dá4€pD=š5Dá4)LrD°5Dá4)tD3£5Dá4�"tD¤°3Dá4Ã5tDî1Dá4\tDR80Dá4á*tD®w.Dá4 tDͬ,Dá4®tD ç*Dá4{$tDì1)Dá4�"tDÃu'Dá4q-tD…«%Dá4tD…ë#Dá4Í,tD®7"Dá433tD®g Dá4)tD3³Dá4¤ tD¤ðDá4¤ tD.Dá4Í,tDájDá4H1tDf–Dá4…tD®çDá4®'tD¤ Dá4Ã5tDìaDá4Ã%tD{¤Dá4f&tD�âDá4%tDq Dá4R(tD\_ Dá4®'tDR˜ Dá4�"tD®ÇDá4R(tD=Dá4¤ tDÍ<Dá4ì!tDH‘Dá4=tD…ËDá4¤ tD%þCá4ö(tD…kúCá4tD{÷Cá43#tD¤�óCá40tDìñïCá4ì1tD�‚ìCá43#tD®éCá4 7tDöˆåCá4�"tDHááCá4R(tD®gÞCá4Í,tD)ÜÚCá4ì!tD®G×Cá4ötD¤ðÓCá4®'tD)\ÐCá4ì!tDáÚÌCá4�2tD…kÉCá4ö(tDR¸ÅCá4�2tDfFÂCá4×3tDq½¾Cá4.tDR8»Cá4 7tDÃÕ·Cá4f6tD×C´Cá4ì1tDöȰCá45tD33­Cá433tD¤°©Cá4tD¤0¦Cá4H!tD ·¢Cá4q-tDáŸCá4¸.tD=Š›Cá4H1tD˜Cá4¤ tD)|”Cá4á:tD‘Cá4{$tDÍŒ�Cá40tD¸ŠCá4),tD׃†Cá4R8tDšƒCá4 7tDCá4¸tDìxCá4),tDÍ qCá4),tDÍÌiCá4¤0tD3óbCá4q=tDH¡[Cá4š9tD3³TCá4�2tD×£MCá4�2tDîFCá4¸>tDÍŒ?Cá4\/tD)œ8Cá4R8tD —1Cá4�"tDÅ*Cá4{4tDq}#Cá45tDHaCá4š9tDH¡Cá4>tD3sCá4q=tDECá4{$tD)œCá4…;tD\óBá4ö(tD€äBá4…+tDìQÖBá4�BtD¸žÈBá4{$tDš™ºBá4�2tDìQ¬Bá4>tD מBá4¤0tDR¸�Bá4¤0tD®G‚Bá4ÍDR¸B–<Ãõ?DffB–<q½ADázB–<ÍlCDq=B–<ìAED\� B–< GDHá B–<áºHDffB–<RˆJD)\ B–<ÃELD� B–<q ND¤p B–<HÁOD… B–<~QD × B–<USD® B–<á UD\� B–<)ÜVDHá B–<\ŸXDö( B–<öXZD × B–<ì\Dq= B–<×Ó]D33 B–<3£_D)\ B–<RhaDff B–<\cD… B–< ÷dD\� B–<¤ fDR¸ B–<¤phD= B–<)DÍ|2D–<Íl2D–<RøäCá:2D–<ÃUáC\/2D–<)¼ÝC®72D–<¤0ÚCf62D–< ×ÖC\?2D–<×CÓC×32D–<š¹ÏCö82D–<\OÌCÃE2D–<q½ÈCÃE2D–<RÅCÍL2D–<…«ÁCRH2D–<®'¾C®W2D–<\�ºC¸N2D–<3·CÃU2D–<®‡³C\O2D–< °C�R2D–<׃¬C…[2D–<)ü¨CRH2D–<f†¥C¸^2D–<®¢C�R2D–<q]žCáZ2D–<fæšC\O2D–<®g—C3c2D–<ÍÌ“C{T2D–<ÍL�C…k2D–<ÃÕŒC×c2D–<N‰Cn2D–<q½…C¸n2D–<á:‚Cp2D–<¤p}C3c2D–<ÃuvC{t2D–<ÍLoC®g2D–<=JhCÃu2D–<{aC w2D–<Í ZCÃu2D–< SC…{2D–<HáKCRx2D–<{EC…{2D–<)Ü=C�r2D–<{Ô6C{t2D–<0Cq�2D–<öè(Cu2D–<î!CÍŒ2D–<®ÇC{„2D–<\ÏC¸Ž2D–<¸Þ Cד2D–<R¸C3“2D–<…ýB�‚2D–<¸ïBq�2D–<fæàBÍŒ2D–<®GÓB\�2D–<ìÑÄBRˆ2D–<…ë¶B=š2D–<®Ç¨B{¤2D–<�BšBš©2D–<\ŒB —2D–< ×{B)¬2D–<…`Bq�2D–<š™CB°2D–<®(BÍœ2D–<¤p B�²2D–<…ë Báú0D–<= B)L/D–< × B\-D–< × B3Ã+D–<ìQB¸þ)D–<®G BÃE(D–<� B ‡&D–<Há B{´$D–<… Bìñ"D–<¤p Bq-!D–<ÍÌ B…D–<= Bö¸D–<Há B�òD–<® B�2D–<ffBHqD–<® B׳D–<ÍÌ B)ìD–<…BìAD–<¤p B¸nD–<ázBq½D–<ÍÌ B¤ð D–<¸ B> D–< Bn D–<®GBš©D–<ìQB{äD–<¸B=*D–<33BRxD–<{B §D–<\� BHáÿC–< × BeüC–< × B×ãøC–<…ë B\OõC–<š™ BHÁñC–<ÍÌ B=JîC–<¸B=ÊêC–<ÍÌ Bš9çC–<ÍÌ B¤ÐãC–<{ B×CàC–<33 BÃÕÜC–<ázB×cÙC–<¤pBR¸ÕC–<×£ BRXÒC–<š™BRØÎC–<…ë B…+ËC–<ff BáºÇC–<ÍÌ BRXÄC–<ázB¤°ÀC–<Ãõ BÍ,½C–<q= BŹC–< B 7¶C–<®G B×£²C–<¸ Bf&¯C–< × BÅ«C–<ÍÌ B{T¨C–<33Bf¦¤C–<)\ Bö(¡C–<áz Bö¨�C–< BNšC–<Há B×£–C–<q=Bš“C–<¸B{´�C–<� BöHŒC–<Ãõ B®ˆC–<q=Bì…C–<B¤°�C–<ffBšY|C–<¤pBázuC–<ÍÌ Bq}nC–<33 B×#gC–<q=Bn`C–<Há B YC–<= BR8RC–<… B¤0KC–<33BDC–<®G BH!=C–<ö(B�B6C–<®GB/C–< Bì(C–<š™ B×#!C–<…ë B\OC–<ÍÌ B¸C–<® Bá: C–<q=B®C–<ÍÌ BáúûB–<×£ B{îB–<33B)ÜßB–<Ãõ BÒB–<ö(BÃuÄB–<)\B33¶B–<ö( BÍ̧B–<×£ B\šB–<ÍÌ BìÑ‹B–<Há B= }B–<{ BaB–<\� BffCB–<R¸ B ×'B–<áz BÃõ B–<… B= B–<q= B ×'B–<×£ B)\CB–<¸ BaB–<33 B= }B–<® B ׋B–<áz B= šB–<{ BìѧB–<)\ BR8¶B–<33 B…kÄB–< BÒB–<33 BHáßB–<Há B= îB–<×£ BüB–<¸ B®C–<\� BÃ5 C–<ö( B×#C–<Há B\OC–<ff BH!!C–<ÍÌ B (C–<ff B/C–<ff B@6C–<ìQ BH!=C–<ö( BDC–<{ B…+KC–<{ BÃ5RC–<…ë BšYC–<= B¤p`C–<q= B×#gC–<ff B€nC–<= Bq}uC–< BšY|C–<{ B¤°�C–<q= B\…C–<áz B=ªˆC–<… B…KŒC–<…ë BR¸�C–<Ãõ BR“C–<š™ BH¡–C–<×£ BNšC–<š™ Bö¨�C–<Ãõ Bö(¡C–<š™ B®§¤C–<×£ B3S¨C–<×£ B�«C–<\� B®'¯C–<Há B×£²C–<ÍÌ B 7¶C–<{ BfƹC–<… B\/½C–<= B¤°ÀC–<R¸ B WÄC–<ö( Bš¹ÇC–<)\ BÍ,ËC–<= BáÚÎC–<¤p BRXÒC–<{ Bš¹ÕC–<33 BHaÙC–<×£ B3ÓÜC–< BEàC–<áz B\ÏãC–<� Bá:çC–<\� BÍÌêC–<® B=JîC–<… BÀñC–<� BNõC–<š™ BåøC–<\� BffüC–<…ë BHáÿC–<áz B®§D–<� BRxD–<… B=*D–<q= BåD–<R¸ BR¨D–<Há Bqm D–<ÍÌ B¸> D–<¸ Bìñ D–<¸ Bq½D–<ìQ B¸nD–<� BìAD–<ö( B…ëD–<33 B{´D–< BHqD–<{ Bì1D–<š™ BìñD–<ìQ B®·D–<� BÃ…D–<{ Bq-!D–<¸ B�ò"D–<ÍÌ B{´$D–<ìQ Bf†&D–<\� BfF(D–<� B\ÿ)D–<… B�Â+D–<)\ B¸~-D–< B…K/D–<áz B=ú0D–<ìQ BfÖ2D–<×£(B�Ò2D–<š™CB3ã2D–<…`BÃÕ2D–< ×{BÞ2D–<{ŒB\Ï2D–<q=šBáÚ2D–<Į́BáÚ2D–<Ãõ¶BáÊ2D–< ×ÄB…»2D–<�BÓB{Ä2D–<)ÜàBfÆ2D–<×#ïBÐ2D–<=ŠýB=º2D–<õC�Â2D–<¸Þ C3Ã2D–<ìÑC Ç2D–<=ÊCµ2D–<¤ð!CÀ2D–<öè(C¥2D–<0C\¿2D–<šÙ6Cö¨2D–<šÙ=C×£2D–<ìECH±2D–<HáKC…«2D–<šSC�²2D–<Í ZCR¨2D–<{aCq­2D–<ÍLhCR¨2D–<ÍLoCž2D–<RxvCš©2D–<3s}Cš™2D–<á:‚CÍœ2D–<q½…C\Ÿ2D–<\O‰Cž2D–<ÃÕŒC\�2D–<N�CÍœ2D–<ÍÌ“C�‚2D–<®g—C —2D–<®çšC׃2D–<q]žCq�2D–<®¢C3ƒ2D–<®‡¥C�’2D–<)ü¨C w2D–<�‚¬Cöˆ2D–<H!°C€2D–<®‡³C¸~2D–<3·CRˆ2D–<\�ºCRx2D–<ö(¾C׃2D–<ͬÁCÃu2D–<RÅC¸~2D–<¸¾ÈCfv2D–<¤PÌC¤p2D–<áºÏCÃe2D–<�BÓC×c2D–<ÃÕÖC=j2D–<ì1ÚCHa2D–<)¼ÝCe2D–<ÃUáC¤`2D–< ÷äC3c2D–<RXèC…k2D–<3ÓëC3c2D–<`ïC^2D–<Í óC\_2D–<ÍŒöCìa2D–<šùùCq]2D–< wýCáJ2D–<¸~D{d2D–<=JD=j2D–<×D¤P2D–<×ÓD3S2D–< —DáZ2D–<ìQ D¤p2D–<á D W2D–<RØ Dp2D–<ö˜D¸^2D–<q]Dqm2D–<ö(D×c2D–<ÍìDff2D–<žD{d2D–<ìaDöx2D–<¸.Dáj2D–<×óDáz2D–<ͼD\o2D–<=zDq}2D–<ö8 D®‡2D–<öø!Dfv2D–<ͼ#Dš‰2D–<öx%D=z2D–<P'Dfv2D–<)ü(Dq}2D–<öÈ*D¤€2D–<f†,D…2D–<{D.D�2D–< 0DH�2D–<ìÑ1D€2D–<ד3D)Œ2D–<=j5D¤�2D–< 7Dž2D–<Ãå8D3“2D–<®:D…‹2D–<…kD¸ž2D–< ÷?D3£2D–<)¼AD¥2D–<öhCD=š2D–<\?ED…›2D–<HñFDì¡2D–<\¿HDÃ¥2D–<¤€JD…›2D–<PLD{´2D–<¸NDf¦2D–<HÑODõ2D–<f–QD׳2D–<�RSD…»2D–<3UDR¸2D–<RÈVD¤°2D–<=ŠXD…«2D–< gZD3³2D–<ö\Dq½2D–<{Ô]D…»2D–<ͬ_D Ç2D–<šYaDqÍ2D–<33cDfÆ2D–<RødD®Ç2D–<H±fD\Ï2D–<RxhDìÑ2D–<…+jDqÍ2D–<áêkD)Ì2D–<…»mD{Ô2D–<ì�oDáÚ2D–<�BqDÀ2D–<3SqD�ò0D–<RHqD)Dáz B–<užE úC€»CzD€;DóH%µÖæÿ $)-/333?0159/333?01@D/333?01Jžî/ÍÌŒ?01ŒÎÖÞæîöþ†Ž–µº¿ÄÉÎÓØÝâçë/fff?01�’—œ¡¦«°µº¿ÄÉÎÒÖÚÞãæãô01ºÁÈÏÖÝäë„¡½ÁÄÍÖßèñú‡ ” /À@01  ¤ /333?01« ¯ /333?01¶ º /333?01Á Å /333?01Ì Ñ Õ … ‰ ¹ á ÿ ­ Û ‰ á/ÍÌL?01æ/fff?01¨/À?01ÍÒ×Üáæëðõúÿ„‰Ž“˜�¢§¬°‰�æëï/fff?01Ž“˜�¢§¬±¶»ÀÅÊÏÔØÜàäçîõüƒŠ‘˜Ÿ´Ù„¯Ú…±µ¸ÁÊÓÜåîûˆ•¢/À@01°´/ÍÌL?01¹/fff?01û/À?01 ¥ª¯´¹¾ÃÈÍÒ×Üáæêîòöûþû01Œ“𡍝¶½ÎåüÂÆÉÒÛäíöÿŒ™¦³ÀÍ/À@01Ýâçìñöú/333?01�…«³»ÃËÓÛãëó‘ ™ ¡ © ± ¹ Á É ½!Õ!í!/š™™?01Œ"´"/š™™?01Ó"ü"�#†#‹#�#•#š#Ÿ#¤#©#®#²#/fff?01Ñ#Ö#Û#à#å#ê#ï#ô#ù#þ#ƒ$ˆ$�$’$–$š$ž$¢$¥$01Û$â$é$ð$÷$þ$…%Œ%“%š%¯%õ%ù%ü%…&Ž&—& &©&²&¿&Ì&Ù&æ&ó&€'�'š'/À@01§'«'/ÍÌŒ?01Ì'/ff¦?01Ñ'Õ'“(/ff¦?01˜(œ(Ú(/ff¦?01ß(ã(¡)/ff¦?01¦)ª)Ê)/ff¦?01Ï)Ó)/ÍÌL?01Ø)/fff?01š*/À?01¿*Ä*É*Î*Ó*Ø*Ý*â*ç*ì*ñ*ö*û*ÿ*/fff?01ž+£+¨+­+²+·+¼+Á+Æ+Ë+Ð+Õ+Ú+Þ+â+æ+ê+í+ô+û+‚,‰,�,—,ž,¯,Æ,Ý,»-¿-Â-Ë-Ô-Ý-æ-ï-ø-….’.Ÿ.¬.¹.Æ.Ó.à.í.ú./À@01�/•/›/¡/§/­/³/¹/¿/Å/Ë/Ñ/×/Ý/ã/é/ï/õ/û/�0‡0�0“0™0Ÿ0¤001Ô0Ý0æ0ï0ø0�1Š1“1¦1¿1Ø1ñ1ú1�2–2µ2Õ2Û2à2ï2þ2�3œ3«3º3Å3Ð3Û3æ3ñ3ü3‡4/ff&?01à4•<®CéC¤DßDšEžE ÈEDzDîìÇ FigureHand¤åæçèéêëìñò ‚C€OD)ùÉ?Y€D[zÄ #áz€B\�pBR§è¼S�¨�A#fæìB®kBRRI�;S’\�A#�‚,C×£rBRNÑ‘=Sé7�A# WbCR8…BR4>S¢Å�AŒC˜B?#ÃõaC דBRTãEÀS¾0�A#qý+C®G�BRþÔDÀS?5�A#{ìB\�…BR½ãDÀS®6�A#¸€B)\~BRÍ;FÀSÄ1�A AxB? #ÍÌlBffæÀR0L¦¼S2æ�A#ÍÌìBffÁR0L¦¼S2æ�A#š™1Cš™ÁR0L¦¼S2æ�A#ÍÌlCÍÌ,ÁR0L¦¼S2æ�A”C@Á?#fælC33ÃÀR‡§C@Sû:žA#À1CR¸þ¿Rù1F@SZõ�A#šíBq=J¿R†ÉHÀS5ï�A#33mB ÀR¸@FÀS8žAÀÀ? #®Ç�BHáxÂR@¤_½S%u’A#)\ïBáúƒÂRvq›½S+v’A#…k.Cš�ÂR/n£½Sfw’A#.eC€•ÂR(‹½Sªq’AŽCœÂ?#)œeC)\ˆÂRJ{?@SÉö’A#�/Cq=vÂR*©C@SJ{’A#®GðB®kÂRœ¢G@SȘ’A#.‚B¤plÂRioHÀS)Ü’A ApÂ? #)×#¬BázÔARç§¼S¬­uA#))CÃõÐAR¹üÁ@Íff¨Bš™Á@ÍffØBš™?Íff¨Bš™A@Íff>A@ÌÀ[˜¿33ëAÍÌÔA‰% ÿÉÕÖ ×®À= …A@@×Ãõ Á)\WA@@×áztÁ®ß@@@×{†ÁìQ˜¿@@×q=bÁ®GÁ@@×ÍÌÁ ×kÁ@@×ff†Á@@×HáÞB…GÁ@@×ffêB¤p!Á@@×q=òB®§À@@×ÃuôB ×c?@@×…ðB…ëÙ@@@×ffçBÃõ0A@@×ìQÛBš™IA@@Š% ÿXçè #éázBÃõ„AR,Ô>S0LkA#éÃu¦BìQºAR-C>SõJkA#éö¨ýBq=ðAR›æ>S0LkA#é…k*C)\BR›U>S^KkAéVCÍÌ.B?#é*Cš™BRÝ$BÀSΈkA#éHaüB®BRZ@ÀSTRkA#é.¥B¤pÛAR:#>ÀSÖVkA#éHáB¤p™ARZ<ÀS ‰kAé€À A?è #ôffB®+AR»¸�@STRjA#ÿ…þB33“¿R•@@S jA#ÿìQ§BÃõx@RBÏB@SÅ jA#ÿ…B¸í@R¦›D@S�SjAÿ€À A?è #Š®GBÃõ(¿R}?u¾S AoA#ŠìQ¦Báz4ÁR³ês¾S-CoA#Š…ýB×£®ÁREGr¾SÁ9oA#Џ^*Cq=ÂR³ q¾S6@š™?A33³>A€??7Close9d3•5DE‘F€?C(DE’F€?C.DE‘Fö(\?C8DE‘F333?CTDE“F333?C[DE’F€?CdDFHáz?5DE‘F' ‰<C"DE‘F1,=C(DE’F9ÖE=C.DE‘FEØp<C8DE‘F' ‰;CTDE“F' ‰;C[DE’FEØð<CdDF;pÎ<3Z5DE‘F€?C(DE’F€?C.DE‘Fö(\?C8DE‘F333?CTDE“F333?C[DE’F€?CdDFHáz?5DE‘FB`e=C"DE‘F)\>C(DE’F/Ý$>C.DE‘F9´H=C8DE‘FB`e<CTDE“FB`e<C[DE’F9´È=CdDF1¬=35DF€?CdDF€?5DF€?CdDF€?5 DE”FðAC DE‘F€@C(DE“C.DE‘FR¸üAC8DE‘F33ûACTDE“F ×BC[DE’CdD5DE”F€|ÄC DE‘FˆÂC(DE“FXÂC.DE‘FR¸ZAC8DE‘Fq=iBCTDE“F…ëkBC[DE’FPBCdDFHB5DE”F�Âõ½C DE‘F ×£¼C.DE‘CTDE“C[DE’F¦›D<CdD3�5DE‘F·Q9C"DE‘Fæ?¤=C.DE’F·Q9CdDF·Q93Õ5DE‘F·Ñ8C"DE‘Fx ¤=C.DE’F·Ñ8CdDF·Ñ83^5DE‘C"DE‘F ×£½C.DE’CdD3™5DE‘F·Q¹C"DE‘Fæ?¤½C.DE’F·Q¹CdDF·Q¹3Ô5DE‘C"DE‘FÍÌL=C.DE’CdD3�5DE‘F·Ñ¸C"DE‘FñcL=C.DE’F·Ñ¸CdDF·Ñ¸3Ç5DE‘F€?C.DE’F€?C8DE‘FÍÌL?CTDE“FÍÌL?C[DE’F€?CdDF€?5DE‘FÍÌ̽C"DE‘Fš™™¾C.DE’F�Âõ½C8DE‘FÍÌL=CTDE“FÍÌL=C[DE’FìQ8¾CdDF ×#¾3Ñ5DE‘F€?C(DE’F€?C.DE‘Fö(\?C8DE‘F333?CTDE“F333?C[DE’F€?CdDFHáz?5DE‘FÃdª¼C"DE‘FôýT½C(DE’FØðt½C.DE‘F+•¼C8DE‘FÃdª»CTDE“FÃdª»C[DE’F+½CdDF$—ÿ¼3Œ5DE‘F€?C(DE’F€?C.DE‘Fö(\?C8DE‘F333?CTDE“F333?C[DE’F€?CdDFHáz?5DE‘F�Âu½C"DE‘Fš™¾C(DE’F×£0¾C.DE‘F= W½C8DE‘F�Âu¼CTDE“F�Âu¼C[DE’F= ×½CdDFìQ¸½3˜5DE‘F·Ñ8C"DE‘FñcL½C.DE’F·Ñ8CdDF·Ñ83]5DE‘C"DE‘FÍÌL½C.DE’CdD3W5DE‘F€?C&DE’F®Ga?C.DE‘F€?C8DE‘FìQx?CTDE“F…k?C[DE’F®‡?CdDF¸…?5DE‘C&DE’FÍÌL½C.DE‘F�Âõ<C8DE‘F ×#=CTDE“F�Âu=C[DE’CdD7Idle9x;3–5DE‘CDE‘C)DE‘C9DE‘CxD3[5DE‘CDE‘CDE‘F¦›D<C.DE‘CxD35 DCxD5DCxD3È5DE‘CFDE‘CSDE‘FB`e¼CeDE‘CxD3�5DE‘C5DE‘C?DE‘F¦›D<CODE‘CxD3Ò5DE‘C*DE‘C4DE‘F¦›D<CDDE‘CxD57Machine9ŠIdle?A—>@=• `8FÒCÒCîìÇConfessionShadow¤åæçèéêëìñò RCÒC RÃÒÀ \�¼AR8ÑC®GÇA®ÍCHáÒA{4ÊC)\ÝA=ÊÆC¸çAÍLÃC= õAqý¿C¸ÿAšY¼CázB\ï¸CÃõ BìqµCÃõBf&²C¸B€®C�ÂB®«Cö(B\o§CffB…ë£CázB=* Cš™BͬœCázBö(™C…B{”•CÍÌBì’C\�B)\ŽCázBHáŠC¤pBN‡C ×BöȃCÍÌBH!€C\�B�ByC\�B×#rC\�B.kC33BšdCHáBÅ\C{Bq½UC�ÂB…kNC¸B�‚GCR¸B…@CÍÌB= 9C¸B)2C)\B¤°)CÃõØAR8,C®±A®0CÃõÖA¸,C×£òAR¸%C® BìQCHáBÍLC33*B@C:B)Ü C×£KBÃuCffOB\�ýB…TBHáíBffWB¤ðÞBÃõ\BHaÏB33aBšÀBš™dB¸ž±B…ëiBq=¢BìQmB×£’B�ÂrB„BÍÌuB®jBáz�BìQNB W‰BÍÌ3B®Ç�BìQB)Ü“B¸ÿA\�—B×£B¤ðžBìQ7Bff¦BR¸TB\�¬BqB=Š®B= ˆBR¸¯BR8˜B=бBáú§B33³BÃu¸B=жB)ÜÊBHáÇBìÑÂB×#ÖBR8»BR¸ãB ײB{ñB תBÍÌÿB\�¡Bq}CìÑ’BšÙC€„BRø C)\mBÃ5CHáNBq}CHá5B=JC…GB3ó Cö(ZB W(CjBìQ0CR¸~BRø4C\�bB…+8CázIBáº;C®0B33?C�ÂBÀBCüA×#FC…ËA�ÂIC= ›A€MC¸QAáúPC®ß@�ÂRC= ·?\ÏTC×£è@á:XCffRA×c[C{ AÅ^C…ÑA=ÊaC)\B¸eC¤pB@hC®G5Bá:kC\�NB{ÔnC�ÂgB®‡rC×#‚B�‚yC ×sBCffaB3“‚C)\QB¸^…CR¸ABå‡Cff0Bn‰CR¸JB¤‹C…ëeBRøŒC€�B)¼ŽCff�BHÁ�C)ÜœB¸~’Cš™«BR8–C…k´B{´™C�½Bš�C)ÜÆB{” CázÏB=ª¤CìQØB33¥CÍLÇB¥C33¹Bö¥C W«BR¥CHáœB ¥C…ŽB…+¥C)\€B{¥C33eB®Ç¦CNBš™¨CÍÌ4B3SªCR¸BÍL¬C…Be­C®G×An®CìQBRø¯Cq=B×c±Cáz;B®ç²C\�WB…k´C33pB=ª´C�B‡B¸µC…•B3sµC.¤BáúµC=вB®g¶CÃõÀBHÁ¶C{ÐB… ·C33ÞBŽ·CÍÌìB¤¸C…kûB`¸C¤pC wºC@ C)œ¼CìC¤°¾CÃuCö¨ÀCfæC�ÂÂCHa&CÎÄC\O-C¸þÆC…ë1CìñÃC)œ/Cš™¿Cáú-CöH¿C…+6C W¿Cöh=C\O¿C…DC\o¿Cš™KC=J¿C…ëRC=j¿CqýYC3S¿CÍ aC�b¿C�BhC`¿CÍLoC=J¿C=ŠvCHa¿C)Ü}Cöh¿Cq}‚C¸~¿C®'†C®‡¿CfƉCáš¿Cì1�C —¿Cî�C®¿CHa”C3³¿Cáú—C¤�¿C®›C\�¿CHAŸCš¹¿CìÑ¢Cq�¿C…k¦Cf¦¿CªC)¼¿C¤�­C¤°ÀC 7±CáZÁC¸Þ´C�"ÂC=j¸C ÃC¼C®çÃC¸^¿CͬÄCfæÂCõÅC…‹ÆCHaÆC… ÊC×CÇC)œÍC3SÈCf†ÐC{tÅC¤ÐCÍ ÂC… ÐC¸^¾CÐC¸ÞºCáúÏC{t·CqýÏC ׳CÃÐC¤P°CÐC¤Ð¬CH!ÐCN©CšùÏCfÆ¥CÐC`¢C¤ðÏCR¸žCáÐC 7›C{ôÏCö¨—C33ÐCH!”C\ÐCš™�Cö(ÐCR8�C)ÐC®‰C= ÐC¤0†C�ÐC=ª‚CRÐC.~CH!ÐCö(wCqÐCq=pC)ÐC¸iCÍ,ÐC.bCH!ÐC¸[Cö(ÐCÍÌSCRÐC MC= ÐCH!FCáúÏC\Ï>C)ÐCÅ7C¸ÐCÍÌ0CáÐC ×)C®'ÐCR¸"CáÐC¸žCá:ÐC¸žC®GÐC{” C…+ÐC=ŠCÍ,ÐC)ÜþB®'ÐC3³ðB®'ÐCR¸âB¸ÐC�ÂÔBáÐC�BÇBfFÐCö¨¸B×#ÐC=ŠªBö(ÐC…kœB®GÐC WŽBRÐCÃu€BRÐCìQdB{ÐCázHBRXÐC\�,B=*ÐC{BÍLÐC®çA@ÐCìQ°AHAÐC®¯A¸¾ÑC…çAîÑCffB�ÂÑC…,B®§ÑC¤pHB�ÂÑC…dB=ÊÑC…€BÎÑC33ŽB¤°ÑCHaœB×ãÑC®ªB ·ÑC…¸BR¸ÑCq=ÇBìñÑC ×ÔB3ÓÑCö¨âBîÑC3³ðB®çÑC ×þBöèÑCš™C\ïÑCì‘ C…«ÑC\�C)ÜÑCf¦CàÑC®Ç"C×ãÑC{Ô)CR¸ÑCÀ0C\ïÑC{Ô7CÃõÑC¸Þ>CõÑC¸FC{ÔÑCìMC)ÜÑC®ÇSCfÆÑC¸[C…ËÑCf&bCq½ÑCÍ iC×ãÑCá:pC¤ÒC…+wCqýÑCá:~CqýÑC\¯‚C{ÔÑC{4†C…ëÑC¤°‰C®ÇÑC¤0�CÀÑCR˜�C…ëÑC)”C)ÜÑC=ª—C�ÒCHA›C®çÑCš¹žCÃÕÑC�b¢CàÑCfÆ¥C¸ÞÑC=J©CìÑÑC\ϬCHáÑCÍL°C ×ÑC{Ô³C= ÒC)|·C¤ðÑCqݺCîÑCáZ¾CìñÑC\ÂCRøÑC3sÅC{ÔÑC®ÉCf†ÑC¸ÞÈC 7ÍC ÈC®§ÉCR8ÇC¤0ÆCìqÆCq}ÂCõÅC3ó¾CÀÄC3“»CÎÃCH¸C… ÃCH�´C\/ÂCHá°C×cÁCRX­C3SÁC ÷©C33ÁCÍl¦C®GÁC{Ô¢CšYÁCÃ5ŸC¤ÁC…«›C®'ÁC¸þ—CšÁC¸^”Cì1ÁCÍì�C¸ÁC…+�C\ÁC¸¾‰CáúÀC¸†CàÀC)|‚C… ÁC ×}CÍìÀC€vC¸ÞÀC=JoC=ÊÀCEhC3óÀCšaCqýÀC¤ðYCfÆÀCHáRCÅÀCš™KC×ÃÀCRxDC ÀCff=C)¼ÀCö(6C¤PÀCqý/Cf¦ÃCRø1CR8ÈCR¸3CáÚÅCî+C¤ÐÃC %C3ÓÁCnCHÁ¿C¸CìѽCì‘CẻC¸ž Cf†¹CH¡C)<¹CÃõúB®ç¸C¸ìB¸^¸C¸žÝB�"¸C\�ÏBš™·CffÀB ·CÃõ±BŶC{”£B3S¶C•Bf¶C®†BìqµC{nB{´CázSBf¦²C¸7B=ê°CHáB׃¯CázBq}­CHáÆAš9«C= ûAN©CHáB{t§C×£/B)¼¥CìQIB�¤CcB\ï£CìQ€BìÑ£CázŽB®ç£C לB\Ï£CÍL«BRØ£CìQ¹B3ó£CÍLÇBE¤C…kÔBN¡C…ëÊBÎ�CHaÂB WšCìѹB×ÖCÃõ°Be“CÍL¨BfÆ‘C®šB�Â�C33�Bf&ŽC¸~B{ŒC×£aBq]ŠCÃõFB)<ˆC= 'Bq�„Cq=9BìÑ�CR¸HBÀ}C¤pZB)ÜwCÍÌjB.sCR¸zBÍÌpC ×cBÍÌmC…IBHájCÃõ/BH!gC®GBEdC= ûA�aCázÈA3ó]C�•A¤pZCáz@Aq}WCö(¼@×ãRC= ·¿ WNCq=²@×ãJCÃõ8AEGC¸�AnCC33¿AÍL@C…ñAfæC†C!C†CIC†#CC†8C?C†RCC†lC@C†~CC†ˆCOC†€’C#C†€ C?C†šC€›C†�C“C†‹C«C†€�C�C†uC€¶C†`C¦C†QC¹C†?C€¥C†*C€¶C†CœC† CªC†øB€“C†ÚBŸCë 'CÄBBÀAë CÄBBÀA£%!#)ÿë(7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=• €‰D€;EzD€;DîìÇ PageRight¤åæçèéêëìñò† úC@ D™œ�WDî?‰’ B—§_%!#)ÿ‡�Œ I. WITNESS¿ÊŒÌÁó¬B† úCÀD™œ�ÀKDî?‰’èA—¨_%!#)ÿ‡� ŒBring the candle close.¿ÊŒÌÁó®B¯6p? ÀëC¼“¥C ÀëÃ`u°Ã† D)Ü¿B‰’ðA—©_%5<�ÿ‡�Œ8ᛟᚳᚢᛚᚢᛊ ᚳᛚᚨᚢᛊᚢᛊ áš¡á›�ᛞᛖá›�Á €RD–CøBøB €RD–CCCª_%NcuÿÁSD®…CÍLSD{4‰C€\SDÃŒC)¼SD)œ�C€ îSDq}’C …+TD×–C€#q]TDå˜C#=šTD…kœC€&)ÌTDNŸC&š UD3Ó¢C€)…;UDõ¥C)RxUDá:©C€,=ªUDq¬C,®çUD�¢¯C/€RD®…C/€RD{4‰C2€RDÃŒC2€RD)œ�C5€RDq}’C5€RD×–C8€RDå˜C8€RD…kœC;€RDNŸC;€RD3Ó¢C>€RDõ¥C>€RDá:©CA€RDq¬CA€RD�¢¯C€DðQD®…CD3³QD{4‰CG¤€QDÃŒCG×CQD)œ�CJìQDq}’CJ{ÔPD×–CM�¢PDå˜CMÃePD…kœCP×3PDNŸCPföOD3Ó¢CS{ÄODõ¥CS®‡ODá:©CVÃUODq¬CVROD�¢¯C«_%5<�ÿÁ[\@VD¸¤C\@VD¸¨C[_€UDìQ£C_€UD…ë¨C[bÀTD…¢CbÀTDR¸©C[eTDR¸¡CeTD…ªC[h@SD…ë Ch@SDìQ«C[k€RD¸ Ck€RD¸¬C[nÀQD…ë CnÀQDìQ«C[qQDR¸¡CqQD…ªC[t@PD…¢Ct@PDR¸©C[w€ODìQ£Cw€OD…ë¨C[zÀND¸¤CzÀND¸¨C¬_%!#)ÿ[Á† €RD)\Cî?ï?‰’ A—­_%5<�ÿ‡�€Œá›°Á† €RD–Cî?ï?‰„’¨A—®_%!#)ÿ‡„�…Œá›�„Á† VDÍ iC‰‰’ö(8A—¯_%Ncuÿ‡‰�ŠŒ ᛚᚢᛪ‰Á† qND®ç¸C‰Ž’¤pEA—°_%Ncuÿ‡Ž��ŒᚢᛗᛒᚱᚨŽÁ†4€7» †CR¸C‰“’áz²A†R¸þ?—±_%)3Dÿ‡“�”Œrᛟᚳᚢᛚᚢᛊ ᚳᛚᚨᚢᛊᚢᛊ áš¡á›�ᛞᛖá›�᛬ ᛜ á›�᛬ ᚺᛖ ᛊᚨᚹ ᚨᚾᛞ ᚺᛖ ᚹᚨᛊ“Á†·Q¹ ‘CR80C‰˜’ ׯA†®Gá=—²_%)3Dÿ‡˜�™Œ{ᛒᛚá›�ᚾᛞᛖᛞ᛬ ᚺᛖ ᛊᚨᚹ ᚨᚾᛞ ᚺᛖ ᚹᚨᛊ ᛊᛖᚹᚾ᛬ á›�ᚺᛖ ᚳᛚᛟᛊᛖᛞ ᛖᚣᛖ˜Á†Ãd*; œCìÑLC‰�’Há°A†= W?—³_%#+:ÿ‡��žŒhᛊᛖᛖᛊ ᚹᚺᚨá›� á›�ᚺᛖ ᛟᛈᛖᚾ ᛖᚣᛖ áš¹á›�ᛚᛚ ᚾᛟá›�᛬ á›�á›� ᛊᛖᛖᛊ�Á†à-; §CEhC‰¢’Ãõ°A†ìQx?—´_%#+:ÿ‡¢�£Œ`á›�ᚺᛖ ᛊᚺᚨᛞᛟᚹ ᛒᛖᚺá›�ᚾᛞ á›�ᚺᛖ ᛚá›�ᚷᚺá›�᛬ á›�á›� ᛊᛖᛖᛊ¢Á†úík» €«C¤0‚C‰§’)\±A†= ×>—µ_%%3ÿ‡§�¨Œfᚣᛟᚢ᛬ á›�ᛖᛊá›�á›�ᛊ ᚾᛟᚾ áš¡á›�ᛞᛖá›� ᛊᛖᛞ á›�ᚢᛞá›�ᚳᚨá›�᛬ á›�ᚺᛖ§Á†¦›Äº ¹C®'�C‰¬’ìQ°A†š™>—¶_%#+:ÿ‡¬�­Œ]áš¹á›�á›�ᚾᛖᛊᛊ ᛞᛟᛖᛊ ᚾᛟá›� ᛊᛖᛖ ᛒᚢá›� ᚺᛖ ᛃᚢᛞᚷᛖᛊ᛬¬Á†oƒ» €ÃCà�C‰±’ff°A†{Ž?—·_%)3Dÿ‡±�²ŒWᛟᚳᚢᛚᚢᛊ ᚳᛚᚨᚢᛊᚢᛊ áš¡á›�ᛞᛖá›�᛬ ᛜ á›�᛬ ᚺᛖ ᛊᚨᚹ±Á†l ùº ÏCšÙ«C‰¶’¸±A†R¸ž?—¸_%)3Dÿ‡¶�·ŒNᚨᚾᛞ ᚺᛖ ᚹᚨᛊ ᛒᛚá›�ᚾᛞᛖᛞ᛬ ᚺᛖ ᛊᚨᚹ ᚨᚾᛞ¶Á†ÐDX; ÚC… ºC‰»’²A†33“?—¹_%)3Dÿ‡»�¼ŒGᚺᛖ ᚹᚨᛊ ᛊᛖᚹᚾ᛬ á›�ᚺᛖ ᚳᛚᛟᛊᛖᛞ ᛖᚣᛖ»Á†4€·: åC@ÈC‰À’Há°A†®Ga>—º_%)3Dÿ‡À�ÁŒrᛊᛖᛖᛊ ᚹᚺᚨá›� á›�ᚺᛖ ᛟᛈᛖᚾ ᛖᚣᛖ áš¹á›�ᛚᛚ ᚾᛟá›�᛬ á›�á›� ᛊᛖᛖᛊ á›�ᚺᛖÀÁ†l y» €ìC…ëÕC‰Å’Ãõ°A†áz?—»_%%3ÿ‡Å�ÆŒIᛊᚺᚨᛞᛟᚹ ᛒᛖᚺá›�ᚾᛞ á›�ᚺᛖ ᛚá›�ᚷᚺá›�᛬ á›�á›�ÅÁ†RIº €ðCá:äC‰Ê’ff°A†®G?—¼_%#+:ÿ‡Ê�ËŒFᛊᛖᛖᛊ ᚣᛟᚢ᛬ á›�ᛖᛊá›�á›�ᛊ ᚾᛟᚾ áš¡á›�ᛞᛖá›�ÊÁ†ùÉ? pD>C‰Ï’`A—½_%Ncuÿ‡Ï�ÐŒTᚺᛖ ᛊᚨᚹ᛬ ᚺᛖ ᛊᚨᚹ᛬ ᚺᛖ ᛊᚨᚹ᛬ á›�ᚢᛞá›�ᚳᚨá›�᛬ÏÁ† úC8B™î?‰Ô’ A—¾_%5<�ÿ‡Ô�ÕŒ/C U L T O F T H E U N S E E I N G S U N† úC/D™î?‰Ø’�A—¿_%5<�ÿ‡Ø�ÙŒI / V . 2Ü€ ÝͼUD3³CÝUUDÃuCÝöUDöèCÝîTD{CÝ\UD®‡CÝÃUUDî!CÝõUD{Ô"CÝ=ÊUDì‘"CÝH±UD…+!CÝ wUDqýCÝ×3UDCÝìaUDá:CÝ ÇUD®CÝöØUD ×CÀ_%5<�ÿí€î3“\D CîÍ,]D)\ CÀ@îÍ,_D Cí€òq\D)ÜCò×£\D\CÀ@òš‰^D¸žCí€öáÊZD×cCöq-[DECÀ@ö ·\Dff#Cí€úáÊXD¤p"CúáúXDq½$CÀ@ú3óYDÀ+Cí€þHaVD.%CþöXVDš™'CÀ@þ¸žVD=Š/C퀂ìáSD�B$C‚ì¡SDRx&CÀ@‚…+SD�B.C퀆3£QD=ÊC†{4QDáz!CÀ@†ìPD (C퀊�òOD¸^CŠ×cOD{TCÀ@ŠͼMDšÙC퀎= ODCŽ\oND)CÀ@Ž)|LDîC퀒= ODáúC’®wND¤0CÀ@’)|LDìC퀖�òOD�B÷B–)|OD¸ôBÀ@–ͼMDÍLìB퀚3£QD…kèBšöXQD.äBÀ@šìPDìÑ×B퀞ìáSDázßBžÎSD®ÚBÀ@ž…+SDázËB퀢HaVD×£ÝB¢f†VD…ëØBÀ@¢¸žVD…ëÈB퀦áÊXD¸ãB¦×#YD×#ßBÀ@¦3óYD€ÐB퀪áÊZDR8ïBª)L[D…ìBÀ@ª ·\D33áB퀮q\D×#C®{´\D33ÿBÀ@®š‰^D�ÂøBÁ_%5<�ÿ³€ ´\ŸYDH!C´=*[D{C´=:[D…ëC´H±YD¤ðCÂ_%!#)ÿº€ »š)XDqýC»3£YD{C»3³YD…ëC»…;XDÍÌCÃ_%!#)ÿÁ€ ÂדVD@CÂ…XDšCÂÍ,XDfæCÂì¡VD CÄ_%!#)ÿÈ€ ÉH!UD…ëCÉ•VD{CÉ¥VD…ëCɤ0UD�ÂCÅ_%!#)ÿÏ€ Ðf†SDìCÐq UD CиUDöèCÐ{”SDöèCÆ_%!#)ÿÖ€ ×RD¤0C×f†SD C×®—SDöèC× RDCÇ_%!#)ÿÝ€ ÞáŠPDHáCÞRD{CÞRD…ëCÞq�PD3³CÈ_%!#)ÿä€ åH�PDHa CåÍ,QDš Cå®'RDö( Cåq]SD¸ž Cå{¤TDR¸ CåR¸UD=Š CåöèVD… CåH1XDöh CåÍlYDÃu Cå3sZD¤0 Cå 7[D@ Cå{4[DÀ CåájZD W Cå®gYD=Š Cå\/XD{Ô CåfæVDáú Cå ·UDE Cåf¦TD¸ CåeSDÅ Cå¸.RD¸^ Cå¸.QD@ Cåì�PD…ë CÉ_%5<�ÿý€ þHPD  CþR¨PD) Cþ…‹QD×#CþŽRD WCþ)¬SDRøCþÃ¥TD3sCþáºUDq}Cþ�ÂVDHaCþšÙWD ×CþqíXD…CþÃõYDR8Cþ=ÚZDÃ5 CþÃu[DH! Cþ=j[D¸Þ Cþ׳ZDö( CþöÈYDÃõ Cþ=ÊXD{TCþ=ÊWD{ÔCþq½VD…kCþ=ºUDázCþš©TD®‡Cþq½SDáúCþì±RDf&CþõQD3ó Cþ×ÓPD3ó Cþ)PD\Ï CÊ_%!#)ÿš€ ›ÃPDš C›×óPD C›ÍìQD¸C›0SD®C›{TD¸žÿB›¸>UD{þB›=zVDö(þB›3ƒWD{C›3ƒXD)C›¸žYDÃuC›•ZDÍŒC›×c[DR8 C›)|[D®Ç C›¤ðZDHáC›3ZDÃuC›qÍXDö(C›áªWD€üB›׃VD×£úB›®7UDq=ûB›þSD.üB›ÃõRD33þB› —QD)\C›{„PD�BC›RøOD)œ CË_%!#)ÿ† €RD€ìC™î?‰µ’ˆA—Ì_%5<�ÿ‡µ�¶ŒOCULUS† €RDúC™î?‰¹’ˆA—Í_%5<�ÿ‡¹�ºŒCLAUSUS½€ ¾¥C¤D¾©CR˜D¾Ãõ¬CfD¾= ­CšùD¾Í ©CÃeD¾áú¤C×DÎ_%5<�ÿÆ€ Ç=ŠÅC)üDÇ3“ÉCŽDÇ wÍCfDÇöˆÍCšùDÇ{”ÉC�bDÇÃuÅCîDÏ_%5<�ÿÏ€ ÐRæCöøDФêC�¢DÐÃõíC DÐ= îCöøDÐìêCfvDÐfæC…ëDÐ_%5<�ÿØ€ Ù@D�DÙìAD�¢DÙ…;DfDÙ{DDšùDÙìADìqDÙ5D3óDÑ_%5<�ÿဠâÍ|D®Dâq�D×£DâázDfDâ…DšùDâq�D3sDâ3sDšùDÒ_%5<�ÿê€ ë)Ì#D¸þDë\¿%D —Dëáº'D DëÅ'DöøDëÀ%DRhDë¤À#D\ïDÓ_%5<�ÿó€ ôH¡QCàCô3sOC{ÔãCô33NC×ãçCô.LCìCôìÑJCšùïCô.KCfðCô¤°MC…+ìCôH!OC)üçCôÍ QC¸þãCô{RC… àCÔ_%5<�ÿ€€ �šiED)üßC�ìÁED.äC� GFDèC�×£FDRøëC��2GDðC�qMGDáúïC�¸þFD{ÔëC�{”FD¸ÞçC�\/FDRøãC�¤€ED¤ðßCÕ_%5<�ÿ� Ž@&D•CŽ\¿ D)¼ÊCŽHA·CÃ5¶CŽHA·C{”gCŽ\¿ D®‡>C� úC•CPBŒBÖ_%µÖæÿ�Áó€?  ÀëÃ`u°Ã†—·Q: xBáúöC‰˜’= ™A†ìQ8>—×_%)3Dÿ‡˜�™Œ%ᛗᚨᚾᚢᛊ ᛚá›�ᚷᚨá›�ᚨ᛬˜Á†—ùÉ? pD>C‰�’`A—Ø_%Ncuÿ‡��žŒKᛗᚨᚾᚢᛊ ᛚá›�ᚷᚨá›�ᚨ᛬ ᛗᚨᚾᚢᛊ ᛚá›�ᚷᚨá›�ᚨ᛬�Á†— úC8B™î?‰¢’ A—Ù_%5<�ÿ‡¢�£Œ/C U L T O F T H E U N S E E I N G S U N†— úC/D™î?‰¦’�A—Ú_%5<�ÿ‡¦�§ŒII / V . 4— úCñC†ª Á™î?‰«’ØA—Û_%5<�ÿ‡«�¬Œ VOW BROKENª¯€ °×£æÂš™]A°ìQô¸)A°¤ðúÂR¸Þ@°®GýÂö(<@°ÍÌùÂ\�¿°×#ôÂR¸¾À°éÂR¸Á°HaÛ¸MÁ°š™ÖÂq=RÁ°R¸ÑÂ)\[Á°ázÌÂ= cÁ°ÆÂ ×gÁ°R¸¿Â ×sÁ°®G¹Âö(tÁ°ìѱÂÍÌxÁ°\�ªÂff~Á°�B¢Â…Á°ffšÂìQ„Á°š’Â×£„Á°…‰Â×£†Á°�€ÂìQ„Á°ÍÌoÂq=ˆÁ°×£\Â…ë‡Á°¤pKÂ\�ˆÁ°)\8®‡Á°®G$ÂìQ†Á°{Âq=ˆÁ°R¸þÁ\�†Á°ìQÜÁ�‡Á°Ãõ¶ÁìQ„Á°š™‘ÁffˆÁ°®GYÁ®‡Á° ×Áö(„Á°¸¥À¤p…Á°…ë‘¿ ׃Á°×£@@……Á°¤pí@…ëƒÁ°q=>A†Á°ÍÌ€AR¸„Á° ×§Aff€Á°�ÂËA®�Á°…ëóAq=‚Á°… BÃõ€Á°q=B…Á°…2B×£xÁ°×£EBffzÁ°…ëWB)\{Á°×£iBÍÌpÁ°áz}Bš™qÁ°\�‡BÃõlÁ°®�Bš™mÁ°R¸˜B×£dÁ°€¡B33cÁ°= ©BHáZÁ°×£±B…ëQÁ°…k¸Bq=RÁ°…ë¿B�ÂIÁ°{”ÆB¤pEÁ°q½ËBìQ<Á°\ÒBHá.Á°{×B…ë-Á°ö¨ÛBö( Á°ÍLìB\�ÒÀ°š™÷B…ëÀ°…ëûB= 7@°¤pûBìQè@°ÃõôB\�:A°ìÑæBÍÌtA°®ÇãBš™yA°…ÞB…ë�A°\�ÙB®‡A°ìQÔBR¸ŠA°¸ÎB¤p�A°)\ÇB בA°×£ÀB¤p“A°{¹Báz˜A°q½°Bff˜A°…k©BffžA°áú B= ŸA° ×—B\� A°q=�Bff¤A°€†Bö(¢A°ffzBáz¦A°ÃõhB…¥A°�ÂUBáz¨A°\�BB¤p©A°= 0B®G©A°ffBÍ̪A° × B®«A°= íAìQ¬A°®ÇAff¬A° ×£A®G­A°)\A¸«A°š™5A)\¯A°33Û@¬A°š™I@ö(®A°×£�¿ffªA° ×£ÀffªA°q=Áq=ªA°Ãõ`Á= ­A°”ÁázªA°¤p¹ÁĮ́A°š™ßÁÃõ¦A°¸ÂĮ́A°®GÂ…§A°ìQ)¸¥A° ×<Âáz¢A°33QÂ{ A°ÍÌc¸¡A°q=vÂìQžA°ìQ„Â…ë™A°¤p�Â…›A°š™–Âö(˜A°šŸÂ¸•A°= ¨Â×£’A°)ܯÂáz�A°®Ç·ÂázŒA°…¿Â¤p‰A°ìQÆÂš™‡A°ÃõÌÂ= …A°®ÓÂ…A°ö¨ÙÂÍÌxA°�ÂÞÂR¸nA°ã¸iA°®Gç¤p]A°R¸è®G�A°šäÂáz†A°�Âß ׉A°¸žÚÂÃõŽA°=ŠÔ דA°q½Í®—A°fæÆÂìQžA°)Ü¿Âö(žA°¤p¸Â¸¡A°…k°Â\�¦A°Ãu¨Âq=¨A°=ŠŸÂö(¬A°š—š™­A°R¸�®G³A°áz„ÂR¸²A°q=wÂff´A°®GdÂHá¸A°ìQQÂHá¸A°)\=¤p¹A°ö(*Â)\»A°ÍÌÂ…¿A°¸ÂìQ¾A°š™ßÁ�¿A°ºÁ{¾A°)\•ÁÀA°ÍÌ`ÁR¸ÂA°š™Áö(ÀA°¸¥À®GÃA°¤p�¿)\ÁA° ×C@q=ÄA°HáÚ@{ÄA°{6Aš™ÃA°ìQ€A¸ÃA°…ë£A�ÂÁA°ÈAÃõÀA°33íA= ÁA°Há B\�ÀA°ÍÌB ×ÁA°q=0B{¾A° ×BB{ÀA°)\VB= »A°{iBìQºA° ×zB®»A°q½†Bš™·A°€�B¸·A°ö(˜B)\±A°¸¡B�±A°Há©B)\¯A°33±Bö(ªA° W¹B×£¨A°�BÁBÃõ¦A°…ëÇBff A°\�ÎBázœA° ×ÔB¤p›A°)\ÚB×£–A°×£ßBff’A°q½äBÃõŠA°ÍLèBš™‡A°Ãu÷BTA°R¸þBÍÌü@°�ÂÿB{@°.úB¸UÀ°ÍLîB®GÁ°\ÝB×£<Á°ÍÌ×BìQHÁ°fæÒB ×OÁ°®ÌB…ë]Á°šÇB\�bÁ°¤pÀB)\kÁ°R¸¸B{rÁ°…ë±B×£tÁ°=Š©Bš™yÁ°Há¡B{‚Á°™B„Á°fæ�Bq=†Á°®Ç‡B…ë‡Á°Há}B= ‹Á°ö(jBázŒÁ°¤pXB�Â�Á°�ÂEBÍÌ�Á°ÍÌ2B¸‘Á°š™BÍÌ’Á°…ë Bff’Á°ffôA\�–Á°…ËAš™•Á°\�¨Aff–Á°…ë�A)\—Á°\�>A¤p™Á°ázì@®G™Á°@@Í̘Á°q=Š¿Há˜Á°ö(¤À ×›Á°\�Áq=šÁ°= WÁ®G�Á°{’Á)\�Á°\�¶Á…�Á°…ÛÁq= Á°ÃõþÁ Á°¸Â\�žÁ°)\$Â{ Á°ö(8Âq=žÁ°q=KÂHá Á° ×\Âö( Á°33pÂR¸žÁ°¤ð€Âq=žÁ°{”‰ÂìQœÁ°ìQ’Â×£œÁ°q½šÂ®™Á°�¢ÂÃõ˜Á°…ëªÂ\�”Á°�B²Â®“Á°š™¹Â×£�Á°®GÀ®�Á°fæÆÂ{ŒÁ°ÃuÍÂR¸ˆÁ°…ëÒÂìQ‚Á°=Š×ÂÍÌ|Á° WÝÂq=vÁ°¸žëÂ33?Á°áz÷Â�ÂõÀ°R¸þÂ×£0À°ÃõÃff6@°áúþÂ…ëA°÷Â×£HA°…èš™}AÜ_%5<�ÿ—¬€ ­…‹XDÍ C­{ZDHá!C­ìZDq½!C­š™XDöèCÝ_%!#)ÿ—³€ ´\WDáúC´áúXDÍÌ!C´š YDf¦!C´ÍŒWD ×CÞ_%!#)ÿ—º€ »pVDÍŒC»ìñWDR¸!C»XDì‘!C»\VD×cCß_%!#)ÿ—Á€ ÂÃeUD…kCÂöèVDH¡!CÂföVD€!CÂ�rUD®GCà_%!#)ÿ—È€ É�bTDÍŒCÉàUDÍŒ!CÉqíUDöh!CÉ�rTD×cCá_%!#)ÿ—Ï€ Ð…[SDf¦CÐfÖTDáz!CÐ{äTD{T!CÐ)lSDázCâ_%!#)ÿ—Ö€ ×3CRD®GC×qÍSD×c!C×áÚSD@!C××SRD)Cã_%!#)ÿ—Ý€ ÞfFQD@CÞ3ÃRDìQ!CÞ�ÒRDö(!CÞfVQD{Cä_%!#)ÿ—ä€ åRˆQD�‚Cå�2RD®‡CåRXSD…Cåì‘TD\OCå�²UDf&CåqÝVD3sCåXDHáCåYDÍLCå�ÒYD= CåqÍYDö¨Cå×YDq½CåìXDÃ5Cå®×VDCå׳UDCå=šTD¸ÞCåÍlSD¸ÞCåÃERDRøCåq�QDìCå_%5<�ÿ—ù€ ú×ÓPD®‡Cú{”PDf&Cú)lPDõCú3£PD."CúffQDöè%Cú®7RD{'Cú�2SDáº'CúeTDR8(Cúš©UDáú'CúRèVD)(CúöXDö¨'CúÃYDq='Cú×óYD…ë%Cú×ÃZDH!"CúH[D3sCúÃ[D¸Cú)ÜZDÀCú ·ZDÀCúŽZD¸Cúì�ZDq=Cú×SZD W!Cú3£YDÍL$Cú)üXD×£%CúXD{&Cú3ãVDì‘&CúR¨UDÍÌ&CúöhTD®Ç&CúHASD{T&CúáZRD×#%Cúì±QD W$Cú×QDÃu!CúHñPDö¨CúHQD\OCúõPD —Cæ_%!#)ÿ—ž€ ŸÍDþD™ Ã5Dq�D™ á:DfD™ EDšùD™ Ã5D=ZD™ 5DìñDñ_%5<�ÿ—¡ € ¢ ®wD\ÿD¢ f†DŽD¢ =zD D¢ Ã…DöøD¢ f†D×cD¢ ¸nD×óDò_%5<�ÿ—ª € « ¤Ð#D= D« õ%D¤�D« …»'DfD« {Ä'DšùD« õ%D`D« ÃÅ#DÍüDó_%5<�ÿ—³ € ´  ×QC{ôßC´ ìQOCqýãC´ �NCåçC´ {ÔKCáúëC´ =ÊJCáúïC´ Ã5KCðC´ EMC�"ìC´ 3óNCèC´ QC.äC´ ÍLRC�àCô_%5<�ÿ—À € Á f¦?CàCÁ 3s=C…ëãCÁ )C‰ý ’`A—Ï`%Ncuÿ‡ý �þ ŒEᚾᛟᚾ ᚨᛒᛊᛟᛚᚡᛟ᛬ ᚾᛟᚾ ᚨᛒᛊᛟᛚᚡᛟ᛬ý Á†ó úC8B™î?‰‚’ A—Ð`%5<�ÿ‡‚�ƒŒ/C U L T O F T H E U N S E E I N G S U N†ó úC/D™î?‰†’�A—Ñ`%5<�ÿ‡†�‡ŒIII / V . 6ó Š‹€RD33C‹€RDÍL%CŠŽ TD33CŽ TDÍL%CŠ‘ÀUD33C‘ÀUDÍL%CŠ”`WD33C”`WDÍL%CŠ—YD33C—YDÍL%CÒ`%!#)ÿó ›€ œ)|WD)\Cœ ÷XD33 CœYDš CœÃ…WD�BCÓ`%!#)ÿó ¢€ £…›VD�C£ö(XD¤0 C£¤0XD) C£×£VD ×ÿBÔ`%!#)ÿó ©€ ª¸ÞUDHaCªšYWD33 Cª3cWDš Cª®çUD=JCÕ`%!#)ÿó °€ ±RUD¸C±áŠVD33 C±דVDš C±HUDCÖ`%!#)ÿó ·€ ¸á:TDÃ5C¸)¼UD33 C¸ÅUDš C¸×CTD¸C×`%!#)ÿó ¾€ ¿öxSD C¿qíTD33 C¿föTDš C¿ì�SDCØ`%!#)ÿó Å€ Æ=ªRD33CƸTD33 CÆR(TDš CÆ3³RD)CÙ`%!#)ÿó Ì€ ͤðRDRxCÍR¨SD\ÏCÍ=ºTDf&CÍ=ºUDìÑCÍRÈVD¤ðCÍqíWDR¸CÍ3£XD®GCÍ�¢XDCÍ=êWDf¦CÍfÆVD CÍö¸UD)CÍáºTDq=CÍ…«SDfæCͤðRD¤0CÚ`%5<�ÿó Ý€ ÞR¸RD)CÞá:SD…«CÞ¤ðSDö(CÞ�¢TD)CÞfVUDH¡CÞVD�‚CÞ…ÛVD.CÞH¡WD…+CÞfFXDnCÞ×ÃXDá:CÞ\¿XDìCÞH1XDšÙCÞ)ŒWD€CÞ�ÒVD)œCÞ…VD\CÞöXUD…+CÞq­TD�‚CÞ3TD€CÞìQSD®CÞ¾RD3óCÛ`%!#)ÿó ô€ õ¸ÎRDHaCõ)—í`%%3ÿ‡ë�ìŒÆᚹᚺᚨá›� á›�á›� ᛚᛟᚡᛖᛊ á›�á›� ᚲᛖᛖᛈᛊ᛬ áš·á›�ᚡᛖ á›�á›� ᚹᚺᚨá›� ᚣᛟᚢ ᛚᛟᚡᛖ᛬ ᚳᛟᚱ ᛟᛒᛚᚨá›�ᚢᛗ᛬ ᚹᚺᚨá›� á›�á›� ᛚᛟᚡᛖᛊ á›�á›�ëÁêð YD–C¸B¸Bð YD–CÌBÌBî`%NcuÿðÁêõ€ö=úUD®ŠCö®çVDf¦ŒCõù=ªWD×CŽCùR˜XD)<�Cõ€üáZYDšÙ‘CüRHZD3Ó“Cõÿá [D¤p•Cÿöø[Döh—Cõ‚…»\Df™C‚ö¨]D›Cõ……k^D)œœC…öX_DÕžCõˆ…`D33 Cˆš aD…+¢Cõ‹H�UD…K‹C‹)C‰ï’`A—õ`%Ncuÿ‡ï�ðŒ`ᚳᛟᚱ ᛟᛒᛚᚨá›�ᚢᛗ᛬ ᚹᚺᚨá›� á›�á›� ᛚᛟᚡᛖᛊ á›�á›� ᚲᛖᛖᛈᛊ᛬ïÁ†êÃdªº ³C¸žC‰ô’¸™A†ÍÌÌ=—ö`%%3ÿ‡ô�õŒ‚ᚹᚺᚨá›� á›�á›� ᛚᛟᚡᛖᛊ á›�á›� ᚲᛖᛖᛈᛊ᛬ áš·á›�ᚡᛖ á›�á›� ᚹᚺᚨá›� ᚣᛟᚢ ᛚᛟᚡᛖ᛬ ᚳᛟᚱôÁ†êRI�º öC  C‰ù’ìQ˜A†\�‚?—÷`%%3ÿ‡ù�úŒVᛟᛒᛚᚨá›�ᚢᛗ᛬ ᚹᚺᚨá›� á›�á›� ᛚᛟᚡᛖᛊ á›�á›� ᚲᛖᛖᛈᛊ᛬ùÁ†êà-�º €D33:C‰þ’…ë—A—ø`%#+:ÿ‡þ�ÿŒDáš·á›�ᚡᛖ á›�á›� ᚹᚺᚨá›� ᚣᛟᚢ ᛚᛟᚡᛖ᛬ ᚳᛟᚱþÁ†ê·Ñ9 €D®GRC‰ƒ’Ãõ–A†š™?—ù`%%3ÿ‡ƒ�„ŒVᛟᛒᛚᚨá›�ᚢᛗ᛬ ᚹᚺᚨá›� á›�á›� ᛚᛟᚡᛖᛊ á›�á›� ᚲᛖᛖᛈᛊ᛬ƒÁ†ê‰Ò^» €AD ÀC‰ˆ’…ë—A†®G�?—ú`%)3Dÿ‡ˆ�‰Œ*áš·á›�ᚡᛖ á›�á›� ᚹᚺᚨá›� ᚣᛟᚢˆÁ†êRIº ÀADÍLÍC‰�’…ë•A—û`%#+:ÿ‡��ŽŒᛚᛟᚡᛖ᛬ ᚳᛟᚱ�Á†ê úC8B™î?‰’’ A—ü`%5<�ÿ‡’�“Œ/C U L T O F T H E U N S E E I N G S U N†ê úC/D™î?‰–’�A—ý`%5<�ÿ‡–�—ŒIV / V . 8ê úCñC†š Á™î?‰›’ØA—þ`%5<�ÿ‡›�œŒ VOW BROKENšŸ€  3³æÂ…ë]A R8ô¸-A áúúÂ…Û@ �BýÂ0@  Wú¸忠\ó®GÁÀ šéÂìQÁ ö(ÛÂö(LÁ áúÖÂ= WÁ .ÒÂ)\_Á �ÂÌ ×cÁ …kÆÂ\�jÁ ìÑ¿Â×£pÁ ¤p¹Â= {Á ×#²ÂÃõ|Á )ܪÂ33Á š™¢Â= ƒÁ š™šÂš™ƒÁ ’ÂÍÌ‚Á ÍL‰Â¤p…Á q=€ÂÍ̆Á ®nÂ×£†Á R¸\Â…ë‡Á 33JÂ…ë…Á )\8ÂìQˆÁ )\%Â33‡Á  ×Â{ˆÁ ìQÂ\�†Á 33ÛÁHá†Á ff¶Á¸‡Á 33“Áff†Á ìQ\ÁìQ†Á ÍÌÁ¸…Á …ë™À×£‚Á …ëQ¿¤pƒÁ �ÂE@¸ƒÁ ¸õ@„Á R¸>A…ƒÁ ¸�AR¸€Á ìQ¨A¤p�Á ö(ÌA\�‚Á ffòAq=€Á  BHá~Á …B…Á = 3B€Á 33EB¤p}Á š™WBq=vÁ q=jB ×sÁ ®|BHárÁ ÍL‡B…kÁ 3³�BR¸jÁ q½˜B)\gÁ ×#¡BìQdÁ q=©B�ÂYÁ  W±BìQTÁ �B¸B= SÁ ÀB)\KÁ fæÅB{FÁ \ÌB ×;Á ö(ÒB4Á \×B33'Á ffÛB\�"Á =ŠìBR¸ÖÀ ÃõöB= À ¸žûB= '@ �BûB¤på@ ®GôB®G9A HaçB¤pqA .ãBHávA ¤ðÞBff‚A  ×ÙB)\…A …ÓBHáˆA )\ÍBö(ŽA fæÆB{�A …kÀBÃõ’A Ãu¸BR¸–A .±B×£šA  W©B×£œA ×#¡B ×�A )Ü—Bš™ŸA ÍÌ�B¤A \†Báz¤A ffzBq=¦A )\hBìQªA ×£UBáz¨A ®AB�©A ö(/Bö(¬A R¸Bš™«A š™BÃõ®A ®GíA33­A ázÆA�­A {¤AR¸®A …{A ׫A \�6A�­A ÍÌÜ@)\­A �ÂE@q=ªA ö(œ¿Há®A Há¢À®«A 33Ááz¨A R¸bÁö(ªA ö(–Á¸«A ¤p»Á®G©A ìQâÁ¤p¥A )\Âq=¦A ffš™§A �Â)Â= ¥A )\=ÂÃõ¤A …ëOÂÃõ A ¤pdÂ…ëŸA ffwÂö(žA Ãõ„ÂffœA ×£�Â×£šA Ha–Â{˜A \ŸÂ דA R¸§Â…“A š°Âš™�A Ãu·ÂŒA  ׿®‰A …kÆÂÍ̈A ¸ÍÂ)\ƒA ìÑÓÂ×£|A \ÙÂázxA ®GÞÂ= oA .ãÂ)\gA …kç¤p]A {”è®G�A R8äÂ= …A …kßÂö(ŠA ÚÂff�A €Ôš™“A ¤ðÍ וA = Ç כA R8Àš™�A ¸Â�¡A Ḭ́¤A q=¨Âš™«A ázŸÂ®«A —ÂHá°A ŽÂHá²A ö(…ÂHá´A  ×wÂáz´A …ëdÂ33·A R¸PÂö(¸A  ×=ÂR¸¼A ¸*ÂffºA  ×Â)\¿A 33ÂHá¾A ¤pãÁ®G¿A \�¼ÁÍÌÂA …ë•Áq=ÀA \�bÁq=ÀA ö(Á{ÂA ìQ¨À)\ÁA ö(œ¿®ÃA ffF@ÍÌÂA HáÚ@ÍÌÄA …7A ×ÁA ffzAÃõÂA �£AìQÄA ÃõÆA33ÃA ®GíA×£ÂA �ÂB ×ÁA ¸BÂA ¤p/BÍ̾A q=BB¸¿A �ÂUBÃõºA ffhBff¼A ¸{B{¼A ®G†B\�¸A .�Bö(¸A �B˜BÍ̲A )\¡Bff²A ¸ž©B ׯA q½±B…ë­A áú¸B…§A fæÀBff¦A )\ÇBHá¢A {ÎBHá A ÍLÔBìQšA {”ÚB…ë—A = àB בA �BäBö(ŒA q=éBÃõˆA fæöB\�RA ®ÇþBö(ü@ R¸ÿBš™ @ ìÑùB…ëaÀ HaîB×£Á ìÑÜB{BÁ ¤ð×B33GÁ = ÓB�ÂQÁ ìÑÌBáz\Á ¤pÆBázdÁ ÃuÀBázhÁ ö¨¸B®sÁ \�±B\�vÁ ®©B®GyÁ \�¡B…�Á ™Bff„Á  ×�BHá†Á \�‡B¸‡Á )\}B�‹Á )\jB ×�Á ¸XBö(ŒÁ …ëEB�‘Á ö(3B{’Á ¤pBÃõ’Á 33 B)\‘Á š™óA–Á ö(ÌA\�–Á ö(¨A\�”Á q=‚A33—Á ìQ@A)\™Á �Âõ@®G™Á ìQH@ÃõšÁ ázT¿š™›Á q=šÀ33›Á )\Á¤p™Á q=ZÁázœÁ áz’ÁÃõžÁ ×£¶Á{ Á …ÛÁ33�Á {ÂázžÁ ÍÌÂ= ŸÁ ¤p%Âö(žÁ \�8Â…ë�Á q=JÂ= �Á ¤p\Â…ë�Á HánÂ�ŸÁ Ha€ÂÍÌœÁ áz‰Â®G�Á ®G’ÂÍÌœÁ q½šÂ®G™Á fæ¢Â33™Á 33«Â®•Á …k²Â�•Á {ºÂq=’Á \�ÀÂ{ŽÁ ÇÂìQŒÁ ×£ÍÂ{ŠÁ šÓÂ{„Á …ØÂ33�Á šÝÂpÁ HaëÂ�Â=Á HáöÂ…ëÁ ®ÇþÂ)\?À ¤ðÃÍÌ,@ ¸ÿÂ= ÿ@ ®G÷ÂHáNA = éÂÃõ‚Aÿ`%5<�ÿ꜀�fæ\D C�Í,]D)\ CÀ@�Í,_D Cœ€¡{\D=JC¡RH\D¸CÀ@¡R^D…Cœ€¥ÐYD=Š!C¥åYD×£"CÀ@¥á[D®)Cœ€©ÍœVD×c&C©¸ŽVD…'CÀ@©�âVDn/Cœ€­ 7SDq½$C­öSD×£%CÀ@­RhRD@-Cœ€±ÃePDRøC±ì!PDnCÀ@±ì±ND#Cœ€µ¸ÎND ×Cµ…ND�ÂCÀ@µš™LDCœ€¹¸ÎNDö(C¹�NDÍŒCÀ@¹š™LDáúCœ€½ÃePD\îB½¤@PD{ìBÀ@½ì±NDâBœ€Á 7SD…ÞBÁ33SDR8ÜBÀ@ÁRhRD€ÍBœ€ÅÍœVDR8ÛBÅ…»VD¸ÙBÀ@Å�âVD×#ÉBœ€ÉÐYD…ëäBÉ= ZD…ãBÀ@Éá[D¤ðÕBœ€Í{\D…kùBÍq]\DùBÀ@ÍR^DÃõðB€a%5<�ÿêÒ€ Ó)üXD)CÓ׃ZD{CÓ3“ZD…ëCÓá YD3óC�a%!#)ÿêÙ€ Ú�XD¸CÚì�YDìCÚ\�YDîCÚHXDRøC‚a%!#)ÿêà€ á®WDCá~XD{Cáq�XD…ëCáWD)ÜCƒa%!#)ÿêç€ è®VDöèCè…{WDìCè=ŠWDîCèfVD�ÂC„a%!#)ÿêî€ ï)üTDá:CïöxVDìCï ‡VDîCï… UD{C…a%!#)ÿêõ€ öìñSDfæCöfvUDìCö׃UDîCö\ÿSD�ÂC†a%!#)ÿêü€ ýõRDH!Cý3sTDìCýH�TDîCý3SDáúC‡a%!#)ÿꃀ „ ÷QDf&C„¤pSDìC„~SDîC„×RDCˆa%!#)ÿꊀ ‹®çPDÃõC‹nRDìC‹ázRDîC‹ÃõPDìÑC‰a%!#)ÿê‘€ ’Ã%QD×c C’\ïQD{” C’ì!SD3s C’ wTDìÑ C’µUDáú C’HWD¤ð C’áJXD. C’ì�YD®G C’¸NZDR8 C’áJZD®Ç C’\oYDf¦ C’š9XDÍÌ C’áúVD¸Þ C’õUD×ã C’)|TDq½ C’ì1SDÍÌ C’3RDfæ C’=*QDRø CŠa%5<�ÿꦀ §öØUDR¸öB§föTD�BôB§{$TD)ÜíB§öHSD�ÂçB§áZRD{äB§ìAQDèB§{dPDÃuðB§…ëODö¨úB§áúOD×ãC§qMPDH!C§õPD= C§HaQDffC§×RD3³C§ÎRDC§HÑSD{TC§ÎTDš™C§×ÃUDRø C§R¸VD)\C§ ·WD®GC§3³XDC§®wYD¤°C§3#ZD)ÜC§3ÓZD×# C§3S[DšYC§׃[D®‡C§¸Ž[D ×úB§)[DR8ñB§ÃEZD¤pèB§�2YD¤ðäB§R8XD€çB§®WWD×£íB§=zVDáúóB§f¦UDfæöB§šÙUD€úB§�ÂVDR8÷B§¥WD)\ðB§Í|XDšëB§q-YD…ëèB§ ÷YD WëB§¸žZDHaóB§ì[D{”ûB§3[D\OC§ìÑZDìÑC§{tZD…k C§¸¾YD¸ÞC§ö(YDšÙC§3cXDC§q}WDšYC§¤�VDìQC§3ÃUDázC§3UDá:C§¤TD=JC§qSDqýC§=ZRDÍÌC§õQDH¡C§Í,QD33 C§f¶PDH¡C§RˆPD\�C§®wPD…kûB§×ãPD®òB§•QD¸ëB§…[RD= èB§=úRD.ëB§ÎSDìÑðB§µTDáz÷B§H±UD�BúB‹a%!#)ÿ†ê €RD€ìC™î?‰ë’ˆA—Œa%5<�ÿ‡ë�ìŒCOR†ê €RDúC™î?‰ï’ˆA—�a%5<�ÿ‡ï�ðŒOBLATUMêó€ ôì¥C{Dô=ê¨CH¡Dô ÷¬CfDôö­CšùDôöè¨CìqDô)ü¤CfDŽa%5<�ÿêü€ ýf†ÅC{Dý)œÉC�¢DýÃuÍC Dý=ŠÍCöøDý)œÉCÃuDý{tÅC®÷D�a%5<�ÿê…€ †áæC×D†ìêC\�D† ÷íCÃD†öîC=úD†ìêC)\D†®æCföD�a%5<�ÿꎀ �qMDHD�ì1D{”D�=:D®D�ÃEDRøD�ì1D¸nD�×CDÃD‘a%5<�ÿê—€ ˜�‚D\D˜…Dq�D˜…{DÃD˜{„D=úD˜{„DáZD˜®wDìD’a%5<�ÿê € ¡=º#DHD¡…»%DáŠD¡áº'DfD¡Å'DšùD¡áº%D)\D¡°#D×D“a%5<�ÿê©€ ªH¡QCÃõßCª\�OC3ÓãCª…ëMC¸ÞçCªÅKC\ïëCª=ÊJCáúïCªÃ5KCðCªöhMCqìCª OC�èCªö(QC¸þãCª®RCàC”a%5<�ÿê¶€ ·ÍÌ?CàC·q==CšùãC·\Ï;CáÚçC·Í :C\ïëC·ÍÌ8CšùïC·339CfðC·×£;CáìC·ì=CáúçC·fæ>C=*äC·q=@CáàC•a%5<�ÿêÀ Ä®-CàCÄff+C{ôãCÄ�Â)CèCĤ0(C{ÔëCÄ\Ï&CáúïCĤ0'CðCÄ)œ)CáúëCÄqý*Cf&èCÄ-CH!äCÄ{.C\àC–a%5<�ÿêЀ Ñì‘CöèßCÑ —C\ïãCÑšÙC= èCÑ{C3óëCÑÍÌCšùïCÑ33CfðCÑÍŒCšìCÑ®ÇC%èCÑR8C)äCÑCìñßC—a%5<�ÿêÝ€ ÞšiEDÍ àCÞ׳ED= äCÞH1FDÍ,èCÞ{¤FD%ìCÞ33GDðCÞÍLGDáúïCÞGDRøëCÞ¤€FD®èCÞöFDqÝãCÞì�ED�àC˜a%5<�ÿêê€ ë)ìID¸àCë®GJD=*äCëR¸JD)üçCë®'KD.ìCë�²KDðCëqÍKDáúïCëì�KDfìCëÃKD)ÜçCëͬJD)üãCëfJDìàC™a%5<�ÿê÷€ ønNDRàCø ·ND\/äCøH1ODìèCø=ªODqìCøì1PDðCøNPDáúïCø{PD{ôëCøì�ODÍìçCøÃ%OD¸þãCø ‡NDÍ àCša%5<�ÿê„€ …\ÿRDÃõßC…×CSDìäC…HÁSDRèC…R(TDìC…H±TDðC…¸ÎTDáúïC……‹TD{ÔëC…HTDáúçC…¸žSDÍìãC…RSDÍìßC›a%5<�ÿê‘ ’@&D•C’ DîÅC’ÀÐCîÅC’€§C•C’ÀÐC×#HC’ D×#HC‘ úC•CPBŒBœa%µÖæÿ‘Áó€?  ÀëÃ`u°Ãœ� €PD¥CLCLC� €PD¥CCC� €PD¥CÀBÀB�a%!#)ÿ�Áœ£¤�òQDÍ,�C¤�’SDq½dC£§HÁTD\�ŽC§áŠYDH¡jC£€ªHQWD@‘Cª)ü^D\vC£­…{YDÕC­f–cD.ƒC£° [DRØ™C°{gDÍL�C£€³ '\DHAŸC³�BiD…˘C£¶€\D¥C¶jD¥C£¹ '\D¸¾ªC¹�BiD{4±C£€¼ [D®'°C¼{gD3³¼C£€¿…{YD=ê´C¿f–cDìÑÆC£ÂHQWDÀ¸CÂ)ü^DRøÎC£€ÅHÁTD¤p»CÅáŠYD\¯ÔC£È�òQD3Ó¼CÈ�’SDH¡×C£Ëq OD3Ó¼CËqmMDH¡×C£Î¸>LD¤p»CÎuGD\¯ÔC£€Ñ¸®IDÀ¸CÑ×BDRøÎC£Ô{„GD=ê´CÔši=DìÑÆC£×àED®'°C×…ë9D3³¼C£€ÚöØDD¸¾ªCÚq½7D{4±C£Ý€DD¥CÝ7D¥C£àöØDDHAŸCàq½7D…˘C£€ãàEDRØ™Cã…ë9DÍL�C£€æ{„GDÕCæši=D.ƒC£é¸®ID@‘Cé×BD\vC£€ì¸>LD\�ŽCìuGDH¡jC£€ïq ODÍ,�CïqmMDq½dCža%Ncuÿ£Áœôõ@kD¥Cõ€lD¥Cô€øfVjDRزCø¸þlDE´Côû=jcD{ÔÊCû\dD¸>ÌCôþ{ÔdDö¨ÍCþ)\eDR¸ÎCô�Õ=D{ÔÊC�×£;DR¸ÎCô„ÃU9DÀ¿C„®w8DÀÀCô‡=š7DÀÁC‡¤@8DÁCôŠš©6DRزCŠH4DE´Cô€�š©6D®'—C�H4DẕCô�ÃU9D@ŠC�¤@8D‰Cô€“Õ=D W~C“×£;D\�vCô– CD WmC–€BD�iCô™€PD_C™€PDZCôœ)lWDf¦bCœ�"XDXCôŸà]D WmCŸ€^D�iCô¢=jcD W~C¢)\eD\�vCô¥fVjD®'—C¥¸þlDẕCŸa%5<�ÿôÁ†œ €PDpCî?ï?‰ª’pA— a%5<�ÿ‡ª�«ŒAªÁ†œ €PD€…Cî?ï?‰¯’Ãõ‚A—¡a%!#)ÿ‡¯�°Œᚨ¯Á†œ4€w> �âUD¸žrCî?ï?‰´’pA—¢a%5<�ÿ‡´�µŒB´Á†œ4€w> ETD=j†Cî?ï?‰¹’Ãõ‚A—£a%!#)ÿ‡¹�ºŒá›’¹Á†œs÷> õZD\OzCî?ï?‰¾’pA—¤a%5<�ÿ‡¾�¿ŒC¾Á†œs÷> ìÑWD)‰Cî?ï?‰Ã’Ãõ‚A—¥a%!#)ÿ‡Ã�ČᚳÃÁ†œš™9? …k_D¤PƒCî?ï?‰È’pA—¦a%5<�ÿ‡È�ÉŒDÈÁ†œš™9? ìñZD…k�Cî?ï?‰Í’Ãõ‚A—§a%!#)ÿ‡Í�ÎŒᛞÍÁ†œsw? {cD\o‹Cî?ï?‰Ò’pA—¨a%5<�ÿ‡Ò�ÓŒEÒÁ†œsw? fv]Dá“Cî?ï?‰×’Ãõ‚A—©a%!#)ÿ‡×�،ᛖ×Á†œ“©š? š‰eD… •Cî?ï?‰Ü’pA—ªa%5<�ÿ‡Ü�ÝŒFÜÁ†œ“©š? =:_D{Ô™Cî?ï?‰á’Ãõ‚A—«a%!#)ÿ‡á�âŒáš áÁ†œš™¹? ÃÕfD3“ŸCî?ï?‰æ’pA—¬a%5<�ÿ‡æ�çŒGæÁ†œš™¹? �"`D{4¡Cî?ï?‰ë’Ãõ‚A—­a%!#)ÿ‡ë�ìŒáš·ëÁ†œY†Ø? ÃÕfDÍlªCî?ï?‰ð’pA—®a%5<�ÿ‡ð�ñŒHðÁ†œY†Ø? �"`D…˨Cî?ï?‰õ’Ãõ‚A—¯a%!#)ÿ‡õ�öŒᚺõÁ†œ`v÷? š‰eD{ô´Cî?ï?‰ú’pA—°a%5<�ÿ‡ú�ûŒIúÁ†œ`v÷? =:_D…+°Cî?ï?‰ÿ’Ãõ‚A—±a%!#)ÿ‡ÿ�€Œá›�ÿÁ†œ�1 @ {cD¤�¾Cî?ï?‰„’pA—²a%5<�ÿ‡„�…ŒJ„Á†œ�1 @ fv]Då¶Cî?ï?‰‰’Ãõ‚A—³a%!#)ÿ‡‰�ŠŒᛃ‰Á†œ“©@ …k_D\¯ÆCî?ï?‰Ž’pA—´a%5<�ÿ‡Ž��ŒKŽÁ†œ“©@ ìñZD{”¼Cî?ï?‰“’Ãõ‚A—µa%!#)ÿ‡“�”Œáš²“Á†œ–!*@ õZDRØÌCî?ï?‰˜’pA—¶a%5<�ÿ‡˜�™ŒL˜Á†œ–!*@ ìÑWD×ãÀCî?ï?‰�’Ãõ‚A—·a%!#)ÿ‡��žŒᛚ�Á†œö—9@ �âUD¤°ÐCî?ï?‰¢’pA—¸a%5<�ÿ‡¢�£ŒM¢Á†œö—9@ ETDÕÃCî?ï?‰§’Ãõ‚A—¹a%!#)ÿ‡§�¨Œá›—§Á†œùI@ €PDÒCî?ï?‰¬’pA—ºa%5<�ÿ‡¬�­ŒN¬Á†œùI@ €PD€ÄCî?ï?‰±’Ãõ‚A—»a%!#)ÿ‡±�²Œáš¾±Á†œý‡X@ qKD¤°ÐCî?ï?‰¶’pA—¼a%5<�ÿ‡¶�·ŒO¶Á†œý‡X@ áºLDÕÃCî?ï?‰»’Ãõ‚A—½a%!#)ÿ‡»�¼Œᛟ»Á†œ]þg@ á FDRØÌCî?ï?‰À’pA—¾a%5<�ÿ‡À�ÁŒPÀÁ†œ]þg@ .ID×ãÀCî?ï?‰Å’Ãõ‚A—¿a%!#)ÿ‡Å�ÆŒᛈÅÁ†œ`vw@ {”AD\¯ÆCî?ï?‰Ê’pA—Àa%5<�ÿ‡Ê�ËŒQÊÁ†œ`vw@ FD{”¼Cî?ï?‰Ï’Ãõ‚A—Áa%!#)ÿ‡Ï�ÐŒᛩÏÁ†œ`vƒ@ …û=D¤�¾Cî?ï?‰Ô’pA—Âa%5<�ÿ‡Ô�ÕŒRÔÁ†œ`vƒ@ š‰CDå¶Cî?ï?‰Ù’Ãõ‚A—Ãa%!#)ÿ‡Ù�ڌᚱÙÁ†œa2‹@ fv;D{ô´Cî?ï?‰Þ’pA—Äa%5<�ÿ‡Þ�ߌSÞÁ†œa2‹@ ÃÅAD…+°Cî?ï?‰ã’Ãõ‚A—Åa%!#)ÿ‡ã�äŒᛊãÁ†œcî’@ =*:DÍlªCî?ï?‰è’pA—Æa%5<�ÿ‡è�éŒTèÁ†œcî’@ qÝ@D…˨Cî?ï?‰í’Ãõ‚A—Ça%!#)ÿ‡í�îŒá›�íÁ†œ“©š@ =*:D3“ŸCî?ï?‰ò’pA—Èa%5<�ÿ‡ò�óŒUòÁ†œ“©š@ qÝ@D{4¡Cî?ï?‰÷’Ãõ‚A—Éa%!#)ÿ‡÷�øŒᚢ÷Á†œ•e¢@ fv;D… •Cî?ï?‰ü’pA—Êa%5<�ÿ‡ü�ýŒVüÁ†œ•e¢@ ÃÅAD{Ô™Cî?ï?‰�’Ãõ‚A—Ëa%!#)ÿ‡��‚Œáš¡�Á†œÅ ª@ …û=D\o‹Cî?ï?‰†’pA—Ìa%5<�ÿ‡†�‡ŒW†Á†œÅ ª@ š‰CDá“Cî?ï?‰‹’Ãõ‚A—Ía%!#)ÿ‡‹�ŒŒáš¹‹Á†œÆÜ±@ {”AD¤PƒCî?ï?‰�’pA—Îa%5<�ÿ‡��‘ŒX�Á†œÆÜ±@ FD…k�Cî?ï?‰•’Ãõ‚A—Ïa%!#)ÿ‡•�–Œᛪ•Á†œȘ¹@ á FD\OzCî?ï?‰š’pA—Ða%5<�ÿ‡š�›ŒYšÁ†œȘ¹@ .ID)‰Cî?ï?‰Ÿ’Ãõ‚A—Ña%!#)ÿ‡Ÿ� ŒᚣŸÁ†œøSÁ@ qKD¸žrCî?ï?‰¤’pA—Òa%5<�ÿ‡¤�¥ŒZ¤Á†œøSÁ@ áºLD=j†Cî?ï?‰©’Ãõ‚A—Óa%!#)ÿ‡©�ªŒᛉ©Á†œ €PD¥Cî?ï?‰®’ B—Ôa%!#)ÿ‡®�¯Œᛄ®Á†œ €PD…k>Cî?‰³’pA—Õa%Ncuÿ‡³�´Œ rota clavis³Á†œùÉ? pD>C‰¸’`A—Öa%Ncuÿ‡¸�¹ŒCᚱᛖᛪ ᚳᚨᛖᚳᚢᛊ᛬ ᛚᛖᚷᛖ á›–á›� áš¡á›�ᛞᛖ᛬¸Á†œ úC8B™î?‰½’ A—×a%5<�ÿ‡½�¾Œ/C U L T O F T H E U N S E E I N G S U N†œ úC/D™î?‰Á’�A—Øa%5<�ÿ‡Á�ÂŒV / V . 10œ úCñC†Å Á™î?‰Æ’ØA—Ùa%5<�ÿ‡Æ�ÇŒ VOW BROKENÅÊ€ Ë33çÂÍÌ\AËôÂq=*AË×#ûÂ= ß@Ë×#ýÂ= 7@Ë×#ú ×ÿ˸óÂö(¼ÀË®èÂ×£ÁË33ÛÂ\�NÁË�B×Â×£PÁË{ÒÂìQXÁË…ëË ×_ÁËÃõÅÂ…ëmÁË…ÀÂÍÌpÁ˹ÂìQtÁ˲ÂÍÌ|ÁË×#ªÂ®G�ÁËš™¢Â®GƒÁË�šÂff‚ÁËÍL’Â{„ÁË\�‰Â®G…ÁËáz€Â�Â…ÁË…oÂHá„ÁË®G]Â\�ˆÁËHáJ ׇÁË×£7Âö(ˆÁË33%Âáz†ÁËö(Â…‡ÁËázþÁ�Â…ÁË®ÙÁ�Â…ÁË´Áš™‡ÁËR¸’Á®‡ÁË…ëYÁ�Â…ÁËHáÁ ×…ÁË\�¢ÀHá†ÁË= W¿¤pƒÁËš™I@áz‚ÁË�Âí@ö(„ÁË{:AR¸‚ÁË33�Aq=‚ÁËR¸¦A®ƒÁËìQÌA×£€ÁË= óAáz‚ÁË × B= �ÁË)\B�Â}Á˸2BR¸zÁË…ëDBR¸zÁËö(WB…{ÁˤpjB¤puÁË\�|Bš™qÁË…ë‡BìQlÁËÍL�BÃõlÁËö¨˜B\�bÁËáú B…_ÁË= ©B®_ÁË�B±BázTÁË�¸B…ëQÁËö¨¿B ×KÁËázÆB@ÁË.ÌB…;ÁËÒB337ÁË×#×B�Â%ÁË€ÛB…#ÁË®ìB¸ÍÀËHa÷Bš™ ÀËq=üBff&@Ë…ëúBìQè@Ë{õB¸9AË�ÂæB¤puAË ×ãB= AË.ßB‚AË{”ÙBq=†AËffÔBš™‰AË{”ÍBìQŒAËHáÆB®G‘AˤpÀBq=”AË=ЏBff–AË{”±B33™AË.©BffœAË…ë B®�AË=Š˜B…¡AË33�Bff¢AË=ІBìQ¤AË= zBš™¥A˸hB ×¥AË\�TB®©AËq=BBö(¨AË…/B33©AËR¸B®«AË�ÂB= «AËq=îA®G­AË33ÉA¸­AËq=¢AÍÌ®AË€AìQ¬AË{6A¤p­AËš™á@Í̬AË×£@@{¬AËÍÌŒ¿ÍÌ®AËR¸®ÀR¸¬AËR¸Á…ë©AË®_ÁÍ̪AËR¸”Á®G©AË\�ºÁ)\§AËázàÁ שAË�ÂÂÃõ¦AË…ëš™§AËÍÌ)Â×£¤AË= =ÂÃõ¢AËÃõPš™£AËffdš™ŸAËázvÂìQžAËš™„ÂìQœAˤp�Â33™AËáz–Âff–AË�BŸÂ¸“AËš™§ÂÍÌ�AˮǯÂ)\�AËö¨·Â ×�A˸¿Â33‰AË)\ÆÂ33‡AË®ÇÌÂÍÌ‚AË×£ÓÂ)\AË= ÙÂ…wAË×£ÞÂ\�jAËšãš™eAË×#çÂ)\[AË)ÜèÂìQ‚AËHaäÂázˆAËR¸ßÂ…‹AËáúÙš™�AËÃuÔÂ{’AËR¸ÍÂö(šAËHáÆÂ{œAˮǿÂHážAËq=¸Â�£AË×#°Â®¥AË\¨ÂHá¨AËR¸ŸÂö(¬AËfæ–¤p­AËHá�ÂìQ°AË\…Âff²AË= wÂ…·AËÃõd ׵AË×£QÂ…¹AËq==Âáz¼AËìQ*Â×£ºAËìQÂÍ̾AË{¤p½AËÃõàÁR¸ÀAË×£ºÁq=ÀAË33•Á ×ÁAË`Á{ÀAË×£ÁìQÂAËHá²À33ÃA˸…¿®ÃAË ×C@ÍÌÀAË)\ß@33ÃAËq=6AR¸ÂAË)\AÃõÂAËö(¢A33ÃAË)\ÉAR¸ÂA˸ïAš™ÃAËö( BÃõ¾AË ×B33¿AË…ë/B×£¾AˤpBB33½AËÍÌTB�»AËR¸hB®G»AËffzB®G·AËq½†BR¸¶AËÍL�BR¸´AË)ܘB{¶AËff¡Bff°AË€©B¤p­AË\²B33«AËÃõ¸Bq=¦AË3³ÀB…£AË=ŠÇB…£AËq=ÎBq=œAËìÑÔBš™™AËffÚB…ë—AËÃõßB®G‘AËR¸äB®�AË=ŠèB\�ˆAËq=÷B\�NAËáúþB¸AË{”ÿB\�@Ë�ÂúB¸eÀË=ŠîB×£ÁËfæÜB×£@ÁË.ØBÍÌHÁËÍÌÒBffRÁËq½ÌB\ÁË.ÇB= cÁË.ÀB ×kÁË= ¹B\�nÁËR¸±BÍÌtÁË W©B…ë}ÁË.¡B33ÁË×#™B{„ÁË=Š�Bö(†ÁË×#ˆB®‡ÁËö(}Bš™‹ÁËÃõjBìQŒÁË×£WBš™�ÁËÃõDBš™‘Á˸2Bq=�ÁË ×Báz�ÁË)\ BÍÌ”ÁË= óAìQ”ÁËHáÌA¸•ÁËÃõ¦A)\—ÁË)\�A®G•ÁËÁËÃõö¸ýÀË3³þÂ×£0ÀË…ëÃ0@Ë€ÿÂHáA˸÷ÂffNAË{éÂ…ë}AÚa%5<�ÿœÇ€ È~WDÅCÈ\ÿXDšÙ#CÈöYDÀ#CÈf†WD¤°CÛa%!#)ÿœÎ€ Ïì¡VD=ÊCÏ.XDšÙ#CÏ 7XDÀ#CÏ=ªVD3³CÜa%!#)ÿœÕ€ ÖHÑUDHáCÖ)\WDšÙ#CÖÃeWDÀ#CÖšÙUDÍÌCÝa%!#)ÿœÜ€ Ý\ÿTD3óCÝ…‹VD ×#CÝדVD�Â#CÝöUDšÙCÞa%!#)ÿœã€ ä¸>TDÅCäö¸UDšÙ#Cä3ÃUDÀ#CäRHTD…«Cßa%!#)ÿœê€ ëöhSD ×CëöèTD ×#Cë¤ðTD�Â#CëìqSDÀCàa%!#)ÿœñ€ ò…›RD�CòfTDšÙ#Cò TDÀ#Cò×£RDîCáa%!#)ÿœø€ ùåRD=ÊCù�²SD)\Cù¸¾TDÀCùfÆUD�ÂCù=ÊVDõCùðWD —Cùq­XDîCù)¬XD…«Cù…ëWDÍŒCù®ÇVD ×CùfÆUD…+Cù3ÃTDÍÌCù®·SDHaCùfæRD®‡Câa%5<�ÿœ‰€ Š\¯RD®ÇCŠH!SD¤0 CŠåSDÍ "CŠq­TDš#CŠ\_UD€#CŠáVDR8#CŠHÑVDö(#CŠ §WDqý!CŠ=ZXD. CЏÎXDHáCŠöÈXDR¸CŠìAXD=ŠCŠדWD×c!CŠšÉVD\�"CŠöVDq½"CФ`UDÍ #CŠö¸TD3s"CŠšùSD)\!CŠR8SDš™CŠõRD¸žCãa%!#)ÿœ € ¡ÃÅRD\ÏC¡×#SDR¸C¡×ÃSD¸žC¡¸NTDáºC¡\UDáúC¡¸ÞUDÍÌC¡H¡VD WC¡\oWDEC¡�"XDÅC¡ ÇXD…ëC¡HÑXD®C¡fVXDÀC¡q�WD�BC¡š¹VDEC¡¤àUDC¡RUD)C¡\/TDõC¡�’SDõC¡¸îRD)ÜC¡ ·RDH¡Cäa%!#)ÿœ·€ ¸¸>PDÃõC¸=ZODEC¸åNDáz C¸HÁND3sC¸ö¨ND¸^C¸HÑNDìQúB¸¸îNDš™öB¸×3ODq=÷B¸>PDázþB¸áZQDšYC¸ìaRD�BC¸ SDÀC¸fVSDR8öB¸=šSDHáêB¸šÉSD®æB¸H1TD¸žëB¸¸îTDšøB¸ÅUDìÑÿB¸áºVD.÷B¸…WDq½êB¸HXDR8åB¸Ã5XDR¸éB¸�rXD®GôB¸\¿XD…ëÿB¸®WYDH¡C¸דZD¸C¸áÚ[D{÷B¸šy\DõB¸ž\D…ëøB¸3³\D�C¸µ\Dq=C¸�‚\D®G C¸3#\DìÑC¸=:[D�C¸µZDf&C¸RØYDH¡C¸HÁXD=JC¸=ªWD ×C¸3cVD C¸R(UDìÑC¸\ßSDH¡C¸šÉRDÃuC¸f¦QDšÙC¸…ËPD\ÏC¸H!PD�C¸¸þODq}C¸ §PD —C¸\�QD —C¸¾RDìQC¸áÚSD…C¸H!UD¤°C¸ìaVD…+C¸3³WD{ÔC¸ ×XDš™C¸qíYD�‚C¸fÖZDîC¸š‰[DH¡C¸ì�\D®ÇC¸ìñ\D3³ C¸3#]D)\C¸¸]DîC¸ì]DÍLøB¸=š\D ×ñB¸=š[D¸žôB¸UZDHáÿB¸×cYD= C¸á YDšÿB¸¸¾XD ×óB¸RˆXD¤ðèB¸=úWD®âB¸=:WDÍLéB¸öhVD=ŠõB¸q½UDR¸üB¸®GUD=ŠöB¸{”TD ×éB¸¸ÎSD€ãB¸0SDÍÌéB¸öèRDázõB¸ÍŒRDáúÿB¸¤0RD WC¸š©QDÃuC¸ —PDÍLûB¸ wODìÑóB¸ —ND…ëòB¸)\NDš™ùB¸¸.NDÍLC¸\?NDf¦C¸®wNDî C¸qýNDÍLC¸ÃõOD…kCåa%!#)ÿ†œ €RD€ìC™î?‰”’ˆA—æa%5<�ÿ‡”�•ŒREX†œ €RDúC™î?‰˜’ˆA—ça%5<�ÿ‡˜�™ŒCAECUSœœ€ �= ¥C®D�®©Cq�D�{ô¬C®D�… ­CRøD�®©C�bD�3ó¤CRøDèa%5<�ÿœ¥€ ¦=ŠÅCD¦…ÉC=ŠD¦ÃuÍC D¦=ŠÍCöøD¦׃ÉCHaD¦ wÅCHDéa%5<�ÿœ®€ ¯qýåCRD¯RêCH¡D¯ÃõíCfD¯= îCšùD¯RêC{tD¯=êåCáúDêa%5<�ÿœ·€ ¸HQD3D¸R8Dq�D¸á:D D¸EDöøD¸ö8D=jD¸ GDföDëa%5<�ÿœÀ€ Á\DÍüDÁuD®‡DÁ=zD®DÁÃ…DRøDÁÃuD`DÁfvD¤ðDìa%5<�ÿœÉ€ ʤÀ#D¤DÊ®·%D=ŠDÊ=º'D®DÊÃÅ'DRøDÊ®·%D×cDʵ#DìDía%5<�ÿœÒ€ ÓìÑQC= àCÓ…OC…ËãCÓHáMC¸þçCÓ¤ðKC\ÏëCÓ=ÊJCáúïCÓÃ5KCðCÓ€MCšùëCÓ)ÜNC)èCÓ@QC¸þãCÓERC àCîa%5<�ÿœß€ à ×?C= àCàR8=C3óãCàÍ C�"äCà=J@CRàCïa%5<�ÿœì€ í…ë-CfàCíöh+CÃõãCíî)C×èCíì(CáÚëCíÅ&CšùïCíá:'CfðCí{”)CfìCíš+C×#èCíRø,C�"äCí®G.CìàCða%5<�ÿœù€ úqýC3óßCúH¡CäCúöèC×ãçCúõC=êëCúÅCšùïCúá:CfðCú¤pCšìCúšÙCHèCú¸C.äCú…kC¸þßCña%5<�ÿœ†€ ‡R¸ CqýßC‡�‚C)ÜãC‡õC×ãçC‡®CHáëC‡ìÑCáúïC‡.CðC‡\�CöìC‡¤ðCfèC‡ÃõCäC‡š CöàCòa%5<�ÿœ“€ ”ázEDÍìßC”)¼ED®äC”H1FDáèC”\ŸFDìC”ì1GDfðC”NGDšùïC”HGDRØëC”ázFD)üçC”),FD)ÜãC”f–EDHáßCóa%5<�ÿœ € ¡åIDHàC¡ÃEJDH!äC¡ͬJD%èC¡{$KDìC¡ì±KDfðC¡ÎKDšùïC¡Ã…KDHáëC¡šùJD×èC¡)¬JDÃõãC¡\ÿID{ôßCôa%5<�ÿœ­€ ®¤€NDšàC®¤ÀNDH!äC®ì1ODHèC®�¢ODÍ ìC®ì1PDfðC®NPDšùïC® PD¸ÞëC®fvOD�âçC®%ODšùãC®®—ND¤àCõa%5<�ÿœº€ »öèRD…ëßC»®7SD\/äC»ö¸SDèC»%TDHìC»{´TDðC»…ËTDáúïC»f†TD ×ëC»¸þSDàçC»\ŸSDäC»HSDàßCöa%5<�ÿœÇ€ È€WD ÷ßCȸÎWD¸þãCÈáJXDÃõçCÈ®XD=*ìCÈ×3YDðCÈ)LYDáúïCÈ) YD×ìCÈŽXDRØçCÈ…+XD ×ãCÈášWD=êßC÷a%5<�ÿ†œ úCD™î?‰Ô’èA—øa%µÖæÿ‡Ô�ÕŒTHE FIFTH VOW IS YOURSÔÁó€?œÙ€ ÚfæùCìÑCÚìQùC�BCÚ®øC{ÔCÚ)œøCö("CÚáÚøCõ$CÚ×CùCÍŒ&CÚfæùCöh'CÚšúCf&'CÚ�úCõ%CÚ=ŠùC¤0$CÚ®'ùC)"CÚRxùCá:CÚH!úCÀCÚ¸úC…ëCùa%µÖæÿÙÁó€?œë€ìHáDCì¸D=JCÀ@ì¸DCë€ð…{D€Cð®D¸CÀ@ð�’DáºCë€ôRXDšÙ!CôöxDõ"CÀ@ôDHá'Cë€øq=ÿCÍ 'Cø3SÿC= (CÀ@ø¸žDì/Cë€üÃûC…k)Cü)üúCff*CÀ@ü€ûC W2C뀀 ®ÇöC¸ž(C€ �‚öCÃu)CÀ@€ ŽõCq=1C뀄 =êòCÅ$C„ H�òC)\%CÀ@„  7ðC…ë+C뀈 ðCHaCˆ ׃ïC×£CÀ@ˆ ¤0ìCš#C뀌 ¤pîCìQCŒ ¤ðíCÃ5CÀ@Œ öêCRøCë€� ¤pîC® C� ¸þíCÃ5 CÀ@� öêC® C뀔 ðC¸žC” …«ïC)ÜCÀ@” ¤0ìCfæC뀘 =êòCÃuþB˜ q½òC{”üBÀ@˜  7ðCö(ðB뀜 ®ÇöC�ÂöBœ =ÊöC�ÂôBÀ@œ ŽõC…åB뀠 ÃûCö(õB  fFûCÍLóBÀ@  €ûCìQãB뀤 q=ÿCfæùB¤ ÕÿC¤pøBÀ@¤ ¸žD)ÜéB뀨 RXDf&C¨ �’DáºCÀ@¨ Dq=øB뀬 …{D€ C¬ …»Dn CÀ@¬ �’DECúa%µÖæÿëÁó€?œ² € ³ )LD C³ ×ÃD{C³ ×ÓD…ëC³ …[Dî Cûa%µÖæÿ² Áó€?œº € » )üýCq=C» {tD\C» H�D¤ðC» RþCšCüa%µÖæÿº Áó€?œ € à .ûC…+Cà fFþCìCà HaþCîCà ÍLûCCýa%µÖæÿ Áó€?œÊ € Ë q�øCf&CË �¢ûC{CË HÁûC…ëCË áºøCqý Cþa%µÖæÿÊ Áó€?œÒ € Ó )üõCöè CÓ �ùCìCÓ ¸ùCîCÓ RöCÅ Cÿa%µÖæÿÒ Áó€?œÚ € Û )|óC×ã CÛ ¸^öC{CÛ ¸~öC…ëCÛ ÕóC� C€b%µÖæÿÚ Áó€?œâ € ã ÍÌðCî Cã )¼óC{Cã qÝóC…ëCã …ëðCÅ C�b%µÖæÿâ Áó€?œê € ë �ñC¸^Cë öˆòC…+Cë {ôôCffCë Ãu÷Cq=Cë îùC3sCë ÍŒüCRxCë HAÿCšYCë )ÜDH!Cë õD33Cë �²DÍÌCë {ÔD)œCë š9ÿCöèCë ®‡üC{Cë ¤ðùC…kCë )|÷CšÙCë šùôC�ÂCë {”òC¸^Cë ñC¤ðC‚b%µÖæÿê Áó€?œ€!€ �!%ðC…ëC�!=ªñC3sC�!ôCÅC�!šyöC×ãC�!q½øCÃ5C�!NûCÍŒC�!׃ýCqýC�!áúÿC.C�!¸.D×cC�!áêDH!C�!ìáD¸ÞC�! D{TC�! ·ÿC{C�!`ýCqýC�!=JûC�ÂC�!ÅøC¤pC�!ášöCRøC�!…KôCáºC�!öèñC\�C�!R8ðC3³Cƒb%µÖæÿ€!Áó€?œ˜!€ ™!Í,ðCR8C™!H¡ñC3óC™!ÃuóC¸Þ C™!ÕõC¤0 C™!À÷CÅC™!×cúCq}C™!H!ýC�‚ C™!ì±þC{T C™!\OD33C™!3#DC™!qÝD¤0C™!\ïD\ÏC™!3sDnC™!=šDR¸ C™!¸>ÿCH¡ C™!áZýCÃõC™!núC@C™!×£÷C¤0C™!.õC¸^C™!ìÑòC×# C™!qýðCö¨C™!HðCöèC„b%µÖæÿ˜!Áó€?œ²!€ ³!¤pD@C³!…DöhC³!H�D —C³!pD{”C³!UD¤ðC³!ÃUD=ŠC³!áJD3sC³!.DÃõC³!¸DR8C³!…ûD3sC³!HÑD\�C³! §D¸ÞC³!…›Df&!C³!q]D¸Þ!C³!×3D¤p#C³!�D…+$C³!ÍÜD\�%C³!¥D¸^&C³!…kD…ë'C³!>D3³(C³!þD{”)C³!öÈD{Ô*C³!¸ŽDH¡+C³!×CDff,C³!¤DHa-C³!H±D\.C³!pD= /C³!q-DRø/C³!ìáDìQ0C³!=šD\1C³!á:Döè1C³!šùD…«2C³!ÍœD3ó2C³!®7DÍÌ3C³!®÷D)4C³!)œD…«4C³!…;D ×4C³!=ÊÿCE5C³!)ÿCÍŒ5C³!\oþCìQ6C³!ÀýC{6C³!RøüC¸ž6C³!)<üCf¦6C³!öhûC…«6C³!ÕúC×£6C³!… úC®7C³!)<ùC¸ž6C³!ì‘øC…«6C³!{Ô÷CR¸6C³!R÷C=Š6C³!q=öC336C³!ÕõCö(6C³!\ïôC¤ð5C³!%ôCRx5C³!\�óCö(5C³!áºòCõ4C³!ö(òC334C³!¤pñC3ó3C³! ×ðC®G3C³!fðC=Š2C³!…‹ïC\2C³!¸¾îCšY1C³!…+îC¸Þ0C³!ášíCš0C³!íC…k/C³!¸^ìC3s.C³!öèëCn-C³!¸>ëCÀ,C³!…ëêC¸ž+C³!HAêCÍÌ*C³!…ËéC�*C³!=jéC¸ž(C³!ÍìèC3³'C³!q}èCH¡&C³!{ôçC ×%C³!×ÃçCìÑ$C³!ìqçC)\#C³!RøæC)\"C³!3“æCff!C³!ìqæC® C³!æC¤°C³!¸ÞåC…«C³!¤ÐåC33C³!{tåC®C³!\OåC…«C³!�"åC…C³!áåC)C³!×åCöèC³!\ïäCÀC³!3óäCq=C³!RøäC�ÂC³!fæäC¤pC³!)ÜäC.C³!åCšC³!= åCš™ C³!RåCq½ C³!ÃUåCì‘ C³!ÕåC C³!)œåCÍÌC³!3óåCõC³!)æC.C³!×cæC= C³!HÁæC{C³!ö(çCáºC³!ÍLçCHaC³!¸¾çCÿB³!èCáúüB³!׃èCš™úB³!éC)ÜøB³!=jéCÍLöB³!{ÔéCö(ôB³!�bêCš™òB³!ÍìêC×#ðB³!fFëCáúîB³!3óëCÍLìB³!ìQìC…ëêB³!HíCÃõéB³!=ŠíCázèB³!EîC�ÂæB³!\ÏîC.åB³!{”ïCq½ãB³!qýïC®âB³!=ªðC®áB³!¸~ñCÃõßB³!… òC¸žßB³!�ÂòCq=ÞB³!ìqóC€ÝB³!š9ôC…ëÜB³!¤ðôC…ÜB³!¤�õC)ÜÛB³!3SöC¤pÛB³!.÷C)ÜÚB³!À÷C=ŠÚB³!…øC…ÚB³!q]ùC…kÚB³!¸þùC33ÚB³!{´úC×#ÚB³!nûC{ÚB³!ìQüC®ÚB³!¸þüCš™ÚB³!׃ýC�BÛB³!öhþCšÜB³!ö(ÿCÍLÜB³!öÈÿCR¸ÝB³!RHD®ÝB³!¤�DìQÞB³!öøD WßB³!Í<D{áB³!�’D\âB³!HñDìQãB³!ìQDÃuäB³!דD{åB³!¸ÎD)\çB³!Ã5DázèB³!RhD…ëéB³!ÀDÃuëB³!… DHáìB³!á:DHaïB³!¤�DHañB³!ÍÌD¸žòB³!áúD33ôB³!…;DÍÌöB³!®wDö¨øB³!Ã¥D ×úB³!…ëDìÑüB³!áDfæþB³!f6D…C³!qmDìÑC³!R˜D…ëC³!õD×#C³!¤àDÃuC³!3D…«C³!¤ DîC³!ö(D¤0 C³!HADÍL C³!UD� C³!®gD C³!{tD¸C³!šyDö(C³!)|D®C³!H�D\C³!¸þD¤ðC³!öøD×£C³!\ÿDH!C³!ÍüDÍÌ C³!×ãD{” C³!RØDöh C³!ÎD3³ C³!š©D®C³!3£DRxC³!ì�D{ÔC³!ìQDH¡C³!R8D{TC³!×D¸ÞC³!fÖDÅC³!�²D{ÿB³!ì‘DýB³!3cDÍÌùB³!ÃD�Â÷B³!öèD=ŠõB³!¸žDÍÌóB³!{dDR¸ñB³!…;DR8ïB³!áêDìQíB³!Ã¥D= ìB³!\oD)ÜéB³!×Dq=çB³!š¹D¸æB³!\DR8äB³!DázãB³! çD®GáB³!f†DÃuàB³!Í,Dš™ÞB³!×ÃDšÞB³!q�D3³ÜB³!¸.DHaÛB³!q½DHaÚB³! gDHáØB³!×D®ÇØB³!\oÿC= ØB³!š™þCáz×B³!=ÊýCfæÖB³!×#ýC¸ÖB³!�büC×#ÖB³!®‡ûCHáÕB³! ·úC…kÕB³!¸ÞùCö¨ÕB³!ìQùC)\ÖB³!…‹øC ×ÕB³!ͬ÷CÖB³!ÃõöC®GÖB³!%öC)\×B³!eõC\�×B³!š¹ôC\ØB³!®ôC=ŠØB³!\/óC�BÙB³!×còC®GÚB³!f¦ñC…ÛB³!qñC€ÜB³!öHðC®GÞB³!ášïC×#ßB³!RïC×#àB³!öHîCâB³!ìÑíCáúãB³!fíC®GåB³!¸žìC¸çB³!×ãëCÃõçB³!eëC\êB³!�ÂêC=ŠìB³!HAêC{”íB³!¸ÞéC)\ðB³!ì1éC…ñB³!ÅèC¸žôB³!öhèC®öB³!®ççC33øB³!ÃUçCûB³!HçC ×üB³!¤�æC33ÿB³!=JæCH!C³!=*æC WC³!{´åCf&C³!)\åCáºC³!=JåCq=C³!\ïäC¸^C³!öèäCö¨C³!öˆäCÃõ C³!HaäC¸^ C³!@äCff C³!ö(äC)Ü C³!… äC{C³!)äC —C³!¤0äC{ÔC³!ì1äC@C³!)<äC{ÔC³!fFäCH!C³!=jäC@C³!ÍläC®C³!€äCC³!�¢äCìQC³!×åCö¨C³!åC®C³!áZåC…kC³!ÍÌåC{” C³!îåC3ó!C³!)\æC{T#C³!ÀæCq=$C³!çC�‚%C³!ffçCÀ&C³!öèçC®'C³!á:èCHá(C³!{´èC�Â)C³!=*éC= +C³!¸¾éC×#,C³!ìQêCHá,C³!{´êC×ã-C³!ÃUëC×ã.C³!RØëCÀ/C³!ášìCÅ0C³!%íCq}1C³! ·íC®G2C³!EîCf&3C³!qïC®4C³!\¯ïC®G4C³!=jðC ×4C³!öñCöè5C³!®çñC�B6C³!=jòCRx6C³!×CóCE7C³!=êóCìQ7C³!…«ôC)Ü7C³!{tõC®G8C³!šöC®G8C³!…ëöCR¸8C³!Î÷CÍÌ8C³!\�øCÀ8C³! ùCÃõ8C³!úC×#9C³!áºúC×ã8C³!ÍlûC=Ê8C³!Ã5üCÅ8C³!H!ýC9C³!îýCRx8C³!¥þCöh8C³!ázÿCìÑ7C³!) DH¡7C³!×cD.7C³!ͼDõ6C³!Ã%Dn6C³!uDî5C³!{ÔD¤05C³!®7D¤°4C³!ì�DÀ3C³!�âDö(3C³!q-Dq}2C³!×sDÅ1C³!ìÑD)Ü0C³!HDHá/C³!qMD{/C³!¤ D)\.C³!ÍìDšY-C³!.D�B,C³!nD�B+C³!\¯DHa*C³!{äD.)C³!)Dáº'C³!=JDî&C³!3“D…%C³!R¸Dáz$C³!)ÜD¤0#C³!D."C³!H1Df¦ C³!fVDH¡C³!¸~DH!C³! ‡DR¸C³!×£D)œC³!®ÇDîC³!ÎDÅC³!{äD@C³!fæDC³!DfæC³!�DEC³!RøDšÙC…b%µÖæÿ²!Áó€?œ $€ ¡$¤*Dö¨yC¡$3“+Dq=�C¡$¤ +DÍ,�C¡$ *D€yC†b%µÖæÿ $Áó€?œ¨$€ ©$3#)D…yC©$¸®*DÃ5�C©$)¼*D�"�C©$ì1)D)\yC‡b%µÖæÿ¨$Áó€?œ°$€ ±$ìA(D¸^yC±$šÉ)D.�C±$RØ)DR�C±$ìQ(D33yCˆb%µÖæÿ°$Áó€?œ¸$€ ¹$)\'D…kyC¹$å(D%�C¹$×ó(D\�C¹$ši'DEyC‰b%µÖæÿ¸$Áó€?œÀ$€ Á$=z&D)\yCÁ$(D)�CÁ$(Df�CÁ$ ‡&DR8yCŠb%µÖæÿÀ$Áó€?œÈ$€ É$�%DìQyCÉ$)'Dì�CÉ$á*'D¸þ€CÉ$¸ž%Df&yC‹b%µÖæÿÈ$Áó€?œÐ$€ Ñ$š¹$D�ByCÑ$ 7&D= �CÑ$ G&D{ô€CÑ$®Ç$D)yCŒb%µÖæÿÐ$Áó€?œØ$€ Ù$fÖ#D{ÔxCÙ$�R%DH�CÙ$�b%D…ë€CÙ$å#D®xC�b%µÖæÿØ$Áó€?œà$€ á$),$D@}Cá$%D�B~Cá$e&D…kCá$ Ç'Dq}Cá${)DšYCá$\o*D…«~Cá$qM+D×£}Cá$áJ+D�B}Cá$¤`*D�}Cá$) )D®~Cá$ÃÅ'D×c~Cá$p&D¤0~Cá$×#%D¤°|Cá$\/$DšÙ|CŽb%µÖæÿà$Áó€?œò$€ ó$׃#D�‚uCó$HQ#D…+zCó$š9#DE€Có$ìñ#D=ª‚Có$Õ$D)\ƒCó$ ç%D�‚ƒCó$Ã'Dö¨ƒCó$=Z(DH¡ƒCó$f†)D…«ƒCó${”*DÍLƒCó$…k+D{Ô‚Có$U,DÃ5€Có$fv,D¸zCó$f6,D —uCó$,DH¡uCó$Hñ+DìzCó$qÍ+Dö¨Có$�+D3‚Có$)|*D\o‚Có$…{)DöÈ‚Có$RX(D¤ð‚Có$ö'Dqý‚Có$Hñ%D)¼‚Có$ìñ$Dq]‚Có$ÍL$Dî�Có$¾#Dö€Có$ìÁ#Dá:zCó$3£#D®‡uC�b%µÖæÿò$Áó€?œ’%€ “%¤À*D{”uC“%=Ú*D�ÂrC“%à*D3³nC“%áº*DfæiC“%õ*D×#eC“%…›*DÍÌ`C“%ž*Dq½]C“%\ß*D.ZC“%×3+DnXC“%Hq+DöèWC“%�+D)XC“%áº+D)ÜYC“%…ë+D\�]C“%= ,D�aC“%ì,D)fC“%¸,D{”kC“%¤,DH¡pC“%%,D…kuC“%®7,DffxC“%fV,D…kxC“%=z,D…kuC“%)|,D)œpC“%=z,D®‡kC“%ff,D fC“%…k,D…ë`C“%\?,D{T]C“%{,D¤pYC“%{Ä+D…kWC“%…k+DšÙVC“%+Dq}WC“%…‹*D=ŠYC“%=:*D3s]C“% '*DHá`C“%N*Dq=eC“%\O*D�jC“%fv*D{ÔnC“%…‹*DÅrC“%¤ *Dì‘uC�b%µÖæÿ’%Áó€?œ¼%€ ½%þ(Dš™uC½%H)D)ÜrC½%Ãõ(DHánC½%áú(D�ÂiC½%šé(Dá:eC½%ÃÕ(D3³`C½%fÆ(D…«]C½%\)DHáYC½%Rh)DÍLXC½%)œ)D�ÂWC½%�Ò)DÍLXC½%=ê)DÀYC½%%*D\�]C½%f6*D\OaC½%á**DHáeC½%…+*D…kkC½%{D*DázpC½%…;*DšYuC½%®g*DnxC½%�‚*D×cxC½%�’*D¸^uC½%{´*DRxpC½%®—*D WkC½%3“*D×ãeC½%R˜*DEaC½%¸~*D{T]C½%ìA*DHaYC½%*D=ŠWC½%ž)Dì‘VC½%®7)DffWC½%¾(Dq=YC½%áj(D¤p]C½%Rh(D®Ç`C½%u(DìQeC½%¸~(D\ÏiC½%áŠ(DÃõnC½%\¯(D�sC½%3ã(Dö¨uC‘b%µÖæÿ¼%Áó€?œæ%€ ç%=*'D…«uCç%=*'Dq½rCç%¤0'Df¦nCç%3'DÍ jCç%f'D…ëdCç%{'D{”`Cç%3'D…]Cç%¸>'DH!ZCç%~'D…+XCç%\Ï'DXCç%ì(DìQXCç%f6(D®ÇYCç%ìA(Df¦]Cç%Ha(D WaCç%×c(D¸ÞeCç%Íl(D×ckCç%p(Dq½pCç%\(D)\uCç%Õ(DöhxCç%¤°(DöhxCç%ÍÌ(D)\uCç%ÃÕ(Dq½pCç%�â(D¸^kCç%Õ(D{ÔeCç%Ð(DÃ5aCç%=ª(D¤p]Cç%�‚(DázYCç%5(D…WCç%×Ó'DfæVCç%ìQ'DìQWCç%Rè&D{”YCç%¥&DÍL]Cç%3£&D\�`Cç%3“&D¤ðdCç%3£&D…+jCç%ͼ&D®ÇnCç%)Ü&D ×rCç%q 'DáºuC’b%µÖæÿæ%Áó€?œ�&€ ‘&3c%D®uC‘&n%D=ŠrC‘&ÃU%D€nC‘&šI%DjC‘&¸.%D�BeC‘&ì1%DìÑ`C‘&®'%DR¸]C‘&`%DZC‘&°%D)\XC‘&ìñ%DÍ XC‘& &Dá:XC‘&áJ&DR¸YC‘&®w&D\�]C‘&áŠ&D{TaC‘&q}&D×ãeC‘&ד&D WkC‘&Ž&DáºpC‘&ž&Df&uC‘&HÁ&D…kxC‘&Há&DffxC‘&Hñ&D)uC‘&áú&D�ÂpC‘&3'D\OkC‘&{ô&D ×eC‘&)ü&D�BaC‘&ìÑ&D{T]C‘&=š&DšYYC‘&U&DìQWC‘&ð%D®VC‘&fv%DìQWC‘&á%Dì‘YC‘&šÉ$D…]C‘&qÍ$D\Ï`C‘&áº$D\OeC‘&×Ó$DH!jC‘&®ç$D®nC‘&ì!%D®rC‘&{D%DõuC“b%µÖæÿ�&Áó€?œº&€ »& w#D¤puC»&=š#D…«rC»&H‘#Dq}nC»&~#D�jC»&¸^#D¸ÞdC»&)L#D{”`C»&�R#D®‡]C»&•#DîYC»&öè#D�BXC»&š)$DÍ XC»&ÃE$D\OXC»&\�$D®YC»&ͼ$D=Ê]C»&\¿$D{TaC»&ö¸$Dö(fC»&3Ã$DffkC»&öÈ$D€pC»&Þ$D{TuC»&�ò$DöhxC»&) %DöhxC»&ö(%D WuC»&HA%DázpC»&�2%DšYkC»&ö(%Df&fC»&ö(%DÍLaC»&¤%D¸ž]C»&RØ$D=JYC»&׃$DEWC»&š)$DšÙVC»&áº#DÍLWC»&šI#D)\YC»&šù"DE]C»&î"D —`C»&�ò"DáúdC»&¸#D×#jC»&ö#D¸žnC»&�B#Dq½rC»&q]#DnuC”b%µÖæÿº&Áó€?œä&€ å&áJ2DmCå&öH2D=JnCå&=:2DpCå&)<2D¸ÞpCå&2D)\rCå&.2DÀsCå&á 2D{ÔtCå&þ1Dá:vCå&¸î1DìQwCå&Î1D¤pxCå&ž1DáºyCå&ì�1D¸{Cå&×c1D=J|Cå&š91D)\}Cå&ì1DÃ5~Cå&fÖ0D=ŠCå&®0D)\€Cå&)Œ0D�Cå&öH0D{t�Cå&ö0Döè�Cå&áÊ/D3s‚Cå&{¤/Dfæ‚Cå&…K/DHaƒCå&®/D×ÃCå&ÃÕ.D3S„Cå&{„.D=ª„Cå&R8.D.…Cå&ð-D{t…Cå&=ª-D†Cå&¸^-Dq=†Cå&ö-D3s†Cå&ö¨,DHá†Cå&n,D.‡Cå&f,D`‡Cå&µ+D¤°‡Cå&Ha+DˆCå&q +Df&ˆCå&f¦*D)<ˆCå&öX*D ˆCå&3*D ˆCå&ד)Dq½ˆCå&)L)D{ÔˆCå&=Ú(DqýˆCå&ì‘(D=*‰Cå&q-(D ‰Cå&=Ú'DÃõˆCå&`'D¤‰Cå&ö'Dì‰Cå&Å&D=êˆCå&)\&D…ëˆCå&3ó%D)܈Cå&�%D®§ˆCå&öH%DšyˆCå&öè$DÃUˆCå&�‚$D 7ˆCå&…;$D�"ˆCå&Ãå#D…ˇCå&\�#D)|‡Cå& '#DÍ,‡Cå&qÍ"D¤‡Cå&H‘"D)¼†Cå&f6"Dq]†Cå&Há!D�â…Cå&ì‘!D¤°…Cå&öX!DÍL…Cå&= !Dq½„Cå&¾ DRX„Cå&… D„Cå&öH D׃ƒCå&\ÿDfæ‚Cå&ìÁDŽ‚Cå&®wD3ó�Cå&{TD®‡�Cå&áDå€Cå&fÖDöˆ€Cå&f¶DìÑCå&�rD®‡~Cå&HQD�B}Cå&®'D…+|Cå&HD= {Cå&áêDÍÌyCå&¤ÀD\ÏxCå&ÍœDÍLwCå&Ã…Dö(vCå&nDìuCå&×cD)œsCå&áJDš™rCå&ND@qCå&á:DR¸oCå&�2D¤°nCå&áJDR8mCå&{DD)œkCå&{4DRxjCå&HQD —iCå&{TD)ÜgCå&HqDõfCå&q}Df¦eCå&š‰D\dCå&ͬDìcCå&õDš™aCå&¤ÐD¸^`Cå&\ÿDR8_Cå&f&D^Cå&\OD×ã\Cå&RxD3³[Cå&¥DÍÌZCå&ÍÜD)œYCå&fD�‚XCå&RHDffWCå&ì�DnVCå&\¿DffUCå&RøD€TCå&=: DázSCå&fv D…RCå&3à DR¸QCå&¸þ D¤ðPCå& G!DìPCå&)œ!D33OCå&®ç!Dš™NCå&."DR¸MCå&áŠ"DÃ5MCå&{Ô"DšYLCå&{4#DfæKCå&öx#Df¦KCå&qÝ#D{KCå&@$D=JJCå&¤€$DfæICå&à$DöèICå&öH%D×#ICå&H¡%D\ÏHCå&=ê%DÃõHCå&)L&D®HCå&š©&D®‡HCå&{'D{”HCå&Ha'D×cHCå&ÍÜ'DHaHCå&f&(DEHCå&š‰(D®HCå&šÙ(DRxHCå&\?)DšÙHCå& )D×ãHCå&)ü)D3óHCå&)L*Dq}ICå&ö¨*DÀICå&+D�JCå&×S+D…JCå& ·+Dq=KCå&) ,D×£KCå&Hq,D×#LCå&ìÁ,DìÑLCå&öø,D�BMCå&�R-DENCå&{´-DõNCå&õ-D…kOCå&HA.D€PCå&áŠ.DšQCå&qÍ.D{RCå& /DÀRCå&Ha/DÍŒSCå&…‹/Dq}TCå&öÈ/DÀUCå&\0Dš™VCå&¤P0D®WCå&\0D3³XCå&Ã¥0Dq½YCå&RØ0D ×ZCå&)1DìÑ[Cå&HA1D3ó\Cå&RX1D¸^Cå&¸Ž1Dö¨_Cå&R¨1DšÙ`Cå&áÊ1DìÑaCå& ç1Dö(cCå&õ1DšYdCå&¸þ1D —eCå&¸2DRøfCå&ö(2DìhCå&E2D�‚iCå&¸>2Dì‘jCå&RH2DlCå&3S2Dá:mCå&Å2D¤0mCå&qÍ2DìÑkCå&š¹2Dì‘jCå&\Ï2DšYiCå&µ2D�‚gCå&ž2DÃufCå&Ž2DšeCå&¸~2D�dCå&�r2D®‡bCå&3C2D®aCå&\/2D`Cå&q 2D¤°^Cå&HÑ1D.]Cå&µ1Dö(\Cå&öˆ1DáºZCå&qM1DR8YCå&ì1DH¡XCå&Ã1D…WCå&�Â0D VCå&¸n0DqýTCå&)<0DšTCå&H0DáúRCå&ìÁ/D�RCå&3s/DHáPCå&H!/D¸PCå&Þ.DöhOCå& .D3sNCå&E.D®MCå&®÷-D=ÊLCå& -D= LCå&ÍL-D33KCå&f-D®‡JCå&¥,D¸JCå&@,D WICå&ð+DqýHCå&)Œ+DÃ5HCå&R(+D¤ðGCå&ìÁ*DnGCå&p*Dq}GCå& *DÀFCå&�¢)Dš™FCå&×S)Dq½FCå&öè(D¸FCå&�’(DÍLFCå&Í,(DFCå&ìÑ'D)\FCå&^'DffFCå&H'DÍLFCå&¥&D¸^FCå&Ã5&D…kFCå&…Û%DHáFCå&{”%D)ÜFCå&3#%D@GCå&ìÁ$DáºGCå&Rh$DÍÌGCå&Ã$DìQHCå&f¦#DR8ICå&ìQ#DõICå&… #DJCå&×£"DÍÌJCå&fV"D×cKCå&\ï!DHáKCå&áš!DfæLCå&q]!DH¡MCå&�!DRxNCå&\¯ D)\OCå&3s D33PCå&. D33QCå&{äD…+RCå&)¬DÍLSCå&ffDìTCå&),D¸^UCå&D3sVCå&¸¾D —WCå&׃D…«XCå&=ZD¸ÞYCå&fD3³ZCå&RøD…+\Cå&ÅDÃ5]Cå&)¬Dì‘^Cå&~D®Ç_Cå&HaD=JaCå&¤PDH¡bCå&¤0Dš™cCå&Í D×ceCå&×DfffCå&…ûDš™gCå&¸îD\OiCå&ÍÜD WjCå&HáDÀkCå&{äD\mCå&\ÏD)œnCå&ìáDöèoCå&�âD×cqCå&ðD®ÇrCå&3óD¤ðsCå&… D�‚uCå&�2D)œvCå&¤@D�ÂwCå&RhDRxyCå&3“D€zCå& §D¸ž{Cå&HÁD¸Þ|Cå&=êDÍ ~Cå&ìD3sCå& WDöh€Cå&š‰D��Cå&{ÄD)|�Cå&¸îD= ‚Cå&®D\�‚Cå&nD=JƒCå&q­D)œƒCå&qíD¤0„Cå&5 Dš¹„Cå&®w D�"…Cå&ìÁ Dq}…Cå&\!D†Cå&q]!D®g†Cå&3£!Dͬ†Cå&3ó!Dá:‡Cå&…["D®‡‡Cå&{¤"D�â‡Cå&×#D¤ˆCå&Í\#DHaˆCå&ì±#D챈Cå&R$DqýˆCå&öh$D¸‰Cå&®Ç$D�b‰Cå&á*%D)œ‰Cå&×s%D¸ž‰Cå&¸Þ%DšÙ‰Cå&3S&Då‰Cå&¸®&D׊Cå&þ&DÍ,ŠCå&ši'DìŠCå&¤Ð'D®ŠCå&(D 7ŠCå& (D=*ŠCå&×ó(D®ŠCå&)\)D¤ð‰Cå&R¨)DÃõ‰Cå&Ã*D�‰Cå&ì�*Dö¨‰Cå&ÍÌ*DìQ‰Cå&š)+D×c‰Cå&f–+D�‰Cå&Íì+DͬˆCå&¸>,DnˆCå&=ª,DNˆCå&Íì,Dà‡Cå&šY-Dš™‡Cå&ž-DöH‡Cå&Rø-Dfæ†Cå&RH.D¸^†Cå&Ã….Dì†Cå&Õ.Dq�…Cå&0/DR8…Cå&áz/DR˜„Cå&3³/DšY„Cå& 0Dq�ƒCå&00Dö(ƒCå&®w0D×ÂCå&=ª0Dì1‚Cå& ÷0D)œ�Cå&®'1D¸Þ€Cå&¤P1D\o€Cå&�’1Dì‘Cå&f¶1D×c~Cå&HÑ1DÃ5}Cå&… 2D= |Cå&ì!2Df¦zCå&fV2DnyCå&Íl2DìÑwCå&Rx2DH¡vCå&H‘2D€uCå&°2DtCå&®2D¤prCå&\¯2DH!qCå&)¼2Df&pCå&)¼2D…knCå&®Ç2D.mC•b%µÖæÿä&Áó€?œÒ)Ó)f¦D�¢ÂCÓ)f¦D®'ÌCÒ)Ö)Í D�¢ÂCÖ)Í D®'ÌCÒ)Ù)3sD�¢ÂCÙ)3sD®'ÌCÒ)Ü)šÙD�¢ÂCÜ)šÙD®'ÌCÒ)ß)@D�¢ÂCß)@D®'ÌC–b%µÖæÿÒ)Áó€?œä)€ å)\ßD ×»Cå)�RDeÀCå)áZDáZÀCå)ÃåDλC—b%µÖæÿä)Áó€?œì)€ í)š)D{ô»Cí)¤ DeÀCí)R¨DáZÀCí)ì1Döè»C˜b%µÖæÿì)Áó€?œô)€ õ)¤pDÍì»Cõ)¸îDeÀCõ)föDáZÀCõ)öxD�â»C™b%µÖæÿô)Áó€?œü)€ ý)׳Dqý»Cý)q=DeÀCý)×CDáZÀCý)…»D3ó»Cšb%µÖæÿü)Áó€?œ„*€ …*öD¸þ»C…*=ŠDeÀC…*�’DáZÀC…* DÃõ»C›b%µÖæÿ„*Áó€?œŒ*€ �*¸ND3ó»C�*öØDeÀC�*àDáZÀC�*ÃUDöè»Cœb%µÖæÿŒ*Áó€?œ”*€ •*�¢DšÙ»C•*f&DeÀC•*¸.DáZÀC•*š©D¤Ð»C�b%µÖæÿ”*Áó€?œœ*€ �*Í Då½C�*áªDá¾C�*š‰DN¾C�*uDá¾C�*q]DÃ5¾C�*öXD×#¾C�*ðD\ï½C�*\ïD¤Ð½C�*fVDẽC�*Í\DRؽC�*{tDšÙ½C�*=ŠD{ô½C�*°D3³½C�*q D®Ç½Cžb%µÖæÿœ*Áó€?œ®*€ ¯*\ÏDšù½C¯*š9D…¾C¯*)ÜD×C¿C¯* wD�¢¿C¯*Í,DHÁ¿C¯*ÃÅD3Ó¿C¯*nDš¹¿C¯*qýD=*¿C¯*µD쑾C¯*Í D®ç½C¯*®DRؽC¯*H¡D®G¾C¯*qíDfæ¾C¯*eDšy¿C¯*ÅD —¿C¯*¸.D3“¿C¯*~Dq]¿C¯*áêD�¿C¯*áJD®G¾C¯*{ÔD®ç½CŸb%µÖæÿ®*Áó€?œÆ*€ Ç*ÕDìñ½CÇ*�RDn½CÇ*¸®D׃¼CÇ*ìAD×ûCÇ*¤àDìq»CÇ*ì¡Döh»CÇ*q=D®»CÇ*®×D3s¼CÇ*�‚D…K½CÇ*{DÍì½CÇ*D3Ó½CÇ*\¯D{Ô¼CÇ*qýDÃõ»CÇ*HQD�B»CÇ*¥D{»CÇ*…ÛDì»CÇ*…+D)\»CÇ*f†D%¼CÇ*{$Dì½CÇ*)ÌDšÙ½C b%µÖæÿÆ*Áó€?œÞ*€ ß*) DÍìÌCß*D3“ËCß*DáºÉCß*¤ðD)\ÇCß*RèDšùÄCß*®çDÍlÂCß*ÃõD\/ÀCß* 7D{t¾Cß*ͬDöˆ¼Cß*šID×£ºCß*f&D=ª¸Cß*þDζCß*åD\oµCß*)¬D¤�´Cß*�rD ´Cß*q=Dìq´Cß*fDH�µCß*föDöè¶Cß*�ÂDö¨¸Cß*öˆDöˆºCß*Ã5D®‡¼Cß*ö¸D3s¾Cß*föD×CÀCß*) D�‚ÂCß*®÷DÃÕÄCß*×ãDÍlÇCß*öÈDáºÉCß*\¿D…ËCß*ÕD¸þÌCß*qýD¸þÌCß*3D3“ËCß*qMDáÚÉCß*ÍlD׃ÇCß*=ŠDöèÄCß*ÕDH�ÂCß*®‡DìÀCß*0Dì¾Cß*=ªDRø»Cß*=êD¤ð¹Cß*×DøCß*á:D3S¶Cß*RHD…Ë´Cß*šiD¥³Cß*¸nD¸>³Cß*\DHÁ³Cß*q­DδCß*ͼD)<¶Cß*ÍÌD¸Cß*)ìD\ºCß*¤0DRø»Cß*¾D¤¾Cß*RXDáú¿Cß*q]D®gÂCß*�RD¸þÄCß*qmDìqÇCß*q�D ×ÉCß*ìÁD�¢ËCß*×ãD{ôÌC¡b%µÖæÿÞ*Áó€?œœ+€ �+Ãå!DffÀC�+¸þ!Dö(ÁC�+Ãå!D=ªÁC�+ìñ!D…KÂC�+HÑ!DÍìÂC�+Ð!D¤�ÃC�+=º!D=*ÄC�+¥!DšùÄC�+�!D�‚ÅC�+ g!DÃõÅC�+{D!DÍÌÆC�+q-!D`ÇC�+)ü D…ËÇC�+RØ D¤�ÈC�+3à DÍ ÉC�+H‘ Dì‘ÉC�+e D®'ÊC�+¸. DŽÊC�+\ßD¸ËC�+ì±DÍÌËC�+pD%ÌC�+×CDÎÌC�+D33ÍC�+áÊD{´ÍC�+€DìñÍC�+\Dq]ÎC�+\ïD ×ÎC�+)œDR8ÏC�+UD®ÏC�+fDìñÏC�+…»D=JÐC�+ájD¸žÐC�+ÍD×ãÐC�+q­DÑC�+�RD×cÑC�+HDÃÕÑC�+µDfæÑC�+¸NDá:ÒC�+þDÍLÒC�+q­DÃUÒC�+ÍLDázÒC�+áêD…‹ÒC�+דDÎÒC�+%D{´ÒC�+®×D�ÂÒC�+RhD�ÂÒC�+) DfæÒC�+ìÁDHÁÒC�+UDÀÒC�+3D…«ÒC�+f–D�¢ÒC�+)LD�‚ÒC�+×ãDfFÒC�+)ŒD×CÒC�+@D= ÒC�+�âDÀÑC�+f†Df¦ÑC�+.Dš9ÑC�+RÈDìÑC�+ŽD¸¾ÐC�+®7DNÐC�+RØDH!ÐC�+öˆDö¨ÏC�+á:DH�ÏC�+HDÃõÎC�+ͬDõÎC�+ájDqÎC�+RD=ÊÍC�+RØD{4ÍC�+áªDÀÌC�+fVDHAÌC�+¸.DHÁËC�+àDö(ËC�+\¯DáºÊC�+Í|D ÊC�+ÍLD)¼ÉC�+q-D¤ÉC�+®÷ D)œÈC�+qÍ DöèÇC�+® D{tÇC�+¸Ž DÃÕÆC�+×c D3ÆC�+RH D3“ÅC�+f& DîÄC�+× DšYÄC�+)ü D¸žÃC�+š D ÷ÂC�+šù D×cÂC�+ ç D —ÁC�+å D{ôÀC�+öè DšyÀC�+…ë D×ÿC�+3ã D ¿C�+3ó D`¾C�+öø D\ϽC�+  D)½C�+á* DR˜¼C�+Ã5 Då»C�+fV Dq=»C�+n D챺C�+3ƒ D\ï¹C�+Ã¥ D®‡¹C�+šÙ D×øC�+ð DÃ5¸C�+Dì±·C�+Í\D¸>·C�+ŽD…‹¶C�+ͬD�¶C�+HñDR˜µC�+=*Dqý´C�+…[D…´C�+ášD ÷³C�+HÑD\�³C�+\Dá³C�+×cD{´²C�+¤ DH!²C�+×óD×ã±C�+3SDöh±C�+f†Dî°C�+=ÚD¸ž°C�+×3DfF°C�+×sD3°C�+\ßDH¡¯C�+RD)|¯C�+~D®G¯C�+šéD\¯C�+…;DÃÕ®C�+¸ŽDÕ®C�+®×DÍŒ®C�+á:D=J®C�+דD×C®C�+¤D¸þ­C�+šIDRø­C�+=ªD3ó­C�+{$D®C�+uDÃõ­C�+×ÓDå­C�+5DH!®C�+דD¤®C�+RèDÃ5®C�+¤@D¸>®C�+)œD w®C�+×Dìq®C�+PD…‹®C�+=ºDà®C�+D®¯C�+PD=J¯C�+ ·D{”¯C�+3DáÚ¯C�+¸^Dö(°C�+�¢D\�°C�+)üDÃÕ°C�+RHDá±C�+H‘De±C�+)ÜD�â±C�+=*Dá:²C�+\DẲC�+°D.³C�+fD)¼³C�+öHD¤´C�+3ƒD�¢´C�+׳DáµC�+\ïDö¨µC�+R D.¶C�+q] DÍ̶C�+)Œ D¸·C�+š© D{´·C�+áê Dq=¸C�+{!Dáú¸C�+)ÇCÚ/¤0ØCHáÇCÚ/ÃØC\�ÈCÚ/H¡×C¤ðÈCÚ/=*×Cì‘ÉCÚ/)¼ÖCq=ÊCÚ/€ÖCö¨ÊCÚ/RÖCö(ËCÚ/¤�ÕC…ËËCÚ/.ÕC®GÌCÚ/3“ÔCq½ÌCÚ/.ÔCq=ÍCÚ/q�ÓC�¢ÍCÚ/ÓCìñÍCÚ/ÍŒÒCŽÎCÚ/àÑCRøÎCÚ/€ÑCÍlÏCÚ/3óÐCÀÏCÚ/f&ÐCÐCÚ/ —ÏCnÐCÚ/áúÎC×£ÐCÚ/öhÎCqýÐCÚ/…«ÍCEÑCÚ/)üÌC¤�ÑCÚ/…kÌCq½ÑCÚ/�¢ËCšÙÑCÚ/ ÷ÊC3ÒCÚ/×#ÊC)<ÒCÚ/ázÉCffÒCÚ/š¹ÈC wÒCÚ/ÍìÇCHÁÒCÚ/öHÇC×£ÒCÚ/š™ÆCáÚÒCÚ/)ÜÅCìñÒCÚ/ì1ÅC¤ÐÒCÚ/\OÄCåÒCÚ/¸žÃCHÁÒCÚ/îÂCö¨ÒCÚ/Í ÂC=ªÒCÚ/…kÁCH¡ÒCÚ/š¹ÀCì‘ÒCÚ/\ÀC)\ÒCÚ/q]¿C=*ÒCÚ/f¦¾C)üÑCÚ/Rø½CÍÌÑCÚ/@½CffÑCÚ/×£¼CRXÑCÚ/Há»CìñÐCÚ/ö(»Cì±ÐCÚ/…«ºC{tÐCÚ/×ã¹CìÐCÚ/=j¹C\¯ÏCÚ/ẸC�bÏCÚ/.¸C{ôÎCÚ/¤°·CÕÎCÚ/·CÎCÚ/q]¶C�¢ÍCÚ/šùµC×CÍCÚ/…kµC¤ÐÌCÚ/{Ô´C3SÌCÚ/Rx´CRØËCÚ/á´C\oËCÚ/¥³C ·ÊCÚ/q³Cö(ÊCÚ/…˲Cš™ÉCÚ/�‚²C�"ÉCÚ/ö²CšyÈCÚ/¤Ð±CqÝÇCÚ/ ±CHaÇCÚ/Í,±C¥ÆCÚ/Rø°C×#ÆCÚ/¸¾°CÃuÅCÚ/=аC{ôÄCÚ/׃°CÃ5ÄCÚ/ÃU°Cš™ÃCÚ/¸°CàÂCÚ/¸°Cq]ÂCÚ/%°Cš¹ÁCÚ/Rø¯CÃÁCÚ/å¯C®‡ÀCÚ/Í °CÀ¿CÚ/q°C… ¿CÚ/qý¯C�‚¾CÚ/®'°C¸¾½CÚ/33°Cì1½CÚ/3s°C®§¼CÚ/®°CfÆ»CÚ/õ°C{4»CÚ/ñCÀºCÚ/ff±C ºCÚ/׃±C�b¹CÚ/ằCà¸CÚ/3²Cö(¸CÚ/¸^²CR¸·CÚ/ìñ²C�"·CÚ/ö(³C\�¶CÚ/¤�³Cö(¶CÚ/)´C wµCÚ/¸~´C¸þ´CÚ/�µC¸~´CÚ/×cµC´CÚ/ÃõµC{t³CÚ/®‡¶C³CÚ/)·CR˜²CÚ/׃·CR8²CÚ/¸C3Ó±CÚ/×øC×c±CÚ/)\¹Cö(±CÚ/šÙ¹Cš™°CÚ/\�ºC¤P°CÚ/ûC°CÚ/3ó»CìѯCÚ/3s¼CH�¯CÚ/)½C�B¯CÚ/ ÷½CRø®CÚ/R˜¾C ·®CÚ/@¿CH¡®CÚ/)ü¿C…k®CÚ/R¸ÀC W®CÚ/HaÁC ®CÚ/q=ÂC�"®CÚ/HÃCá®CÚ/×ÃÃCà­CÚ/…KÄC=ê­CÚ/öÅCqÝ­CÚ/ÅÅC ÷­CÚ/¸žÆCf®CÚ/®GÇC.®CÚ/3óÇCR®CÚ/®ÇÈC W®CÚ/3sÉCìQ®CÚ/)ÊCšy®CÚ/®çÊC…Ë®CÚ/×£ËC3Ó®CÚ/®GÌC¯CÚ/ìÑÌCšY¯CÚ/ ÍC�¢¯CÚ/×CÎCà¯CÚ/®çÎCR8°CÚ/q½ÏC{t°CÚ/%ÐC®§°CÚ/ ·ÐCš±CÚ/)|ÑCޱCÚ/\ïÑCfƱCÚ/�¢ÒC=j²CÚ/šÓC®§²CÚ/ —ÓC ³CÚ/®'ÔC —³CÚ/õÔC\´CÚ/¸>ÕCŽ´CÚ/¥ÕC µCÚ/¤ðÕC…‹µCÚ/nÖC%¶CÚ/{ôÖCf¦¶CÚ/HA×Cö(·CÚ/×£×C�¢·CÚ/öØCff¸CÚ/=*ØC�â¸CÚ/ÃuØCe¹CÚ/¸¾ØC3ºCÚ/{ôØC…˺CÚ/NÙC{T»CÚ/f†ÙC®ç»CÚ/ö¨ÙC¥¼CÚ/3ÓÙCì1½CÚ/…ËÙCÃÕ½CÚ/3óÙC=j¾CÚ/HÚC%¿CÚ/®ÚCà¿CÚ/Í,ÚC{tÀCÚ/fÛCÃUÀCÚ/�ÛC×ÿCÚ/®çÚC{¿CÚ/HáÚC W¾CÚ/fæÚC)¼½CÚ/fÆÚC= ½CÚ/H¡ÚCÍl¼CÚ/ázÚC®»CÚ/ÍLÚC®çºCÚ/¸þÙC3SºCÚ/ÀÙC{´¹CÚ/{tÙC¤ð¸CÚ/33ÙC®g¸CÚ/{ôØCìñ·CÚ/)|ØCH!·CÚ/.ØCš™¶CÚ/qÝ×C ÷µCÚ/¤P×C`µCÚ/�âÖCfÆ´CÚ/šyÖCìq´CÚ/ ÖCRسCÚ/šyÕC\/³CÚ/HáÔC…˲CÚ/ìqÔC…+²CÚ/áºÓC\¯±CÚ/…KÓCšy±CÚ/ŽÒC=ê°CÚ/\ÒC °CÚ/¸^ÑCš°CÚ/…«ÐCq½¯CÚ/×#ÐCáz¯CÚ/ffÏCf&¯CÚ/fÆÎC¸¾®CÚ/qýÍC…®CÚ/=JÍC\O®CÚ/öÈÌC3ó­CÚ/)ÜËC®§­CÚ/áËC�¢­CÚ/{tÊC¸~­CÚ/×£ÉC{­CÚ/åÈCì1­CÚ/ ÈC¸þ¬CÚ/¸^ÇCÃõ¬CÚ/�ÂÆC¸Þ¬CÚ/qÝÅC\ϬCÚ/RÅCŬCÚ/)<ÄC챬CÚ/)œÃCå¬CÚ/àÂCÍì¬CÚ/ö(ÂCÃõ¬CÚ/Í,ÁC%­CÚ/3“ÀCöh­CÚ/HÁ¿CöH­CÚ/�¿CậCÚ/q]¾CậCÚ/ —½C®CÚ/®Ç¼C=j®CÚ/)¼Cö¨®CÚ/ —»CήCÚ/ ·ºC ¯CÚ/¸ºCšy¯CÚ/�b¹C×ã¯CÚ/HÁ¸CìQ°CÚ/áZ¸CH¡°CÚ/…‹·Cö±CÚ/áÚ¶Cìq±CÚ/…¶C=ê±CÚ/{ôµC×C²CÚ/áZµCìѲCÚ/)¼´Cšy³CÚ/=j´Cöè³CÚ/{Ô³CáZ´CÚ/=j³C=ê´CÚ/šÙ²CR˜µCÚ/׃²C=*¶CÚ/)<²Cf¦¶CÚ/®Ç±Cq=·CÚ/)\±CÅ·CÚ/±CÕ¸CÚ/¤Ð°Cf&¹CÚ/=аC3Ó¹CÚ/šY°C WºCÚ/�°CÍìºCÚ/šÙ¯Cq�»CÚ/õ¯Cn¼CÚ/Ãu¯Cf½CÚ/Rx¯C×£½CÚ/q=¯C w¾CÚ/RX¯C)¿CÚ/×c¯C×£¿CÚ/ ¯CÃuÀCÚ/Ã5¯CR8ÁCÚ/=J¯C=ÊÁCÚ/@¯CHaÂCÚ/áZ¯CìÃCÚ/{´¯C…ËÃCÚ/q½¯C®GÄCÚ/¸¾¯CìÅCÚ/®ç¯CöÈÅCÚ/N°C¤pÆCÚ/f†°C ÷ÆCÚ/®ç°CR¸ÇCÚ/= ±C.ÈCÚ/×c±C¤ÐÈCÚ/�±Cq�ÉCÚ/)²C×ÊCÚ/…k²Cö¨ÊCÚ/Rø²C®GËCÚ/€³CRØËCÚ/\¯³C\oÌCÚ/fF´C3óÌCÚ/Íì´CffÍCÚ/¸^µCfæÍCÚ/¤ÐµCRXÎCÚ/q}¶CÍÌÎCÚ/3·CáZÏCÚ/®§·CáºÏCÚ/…K¸C{ÐCÚ/¸Þ¸CöˆÐCÚ/öh¹CRØÐCÚ/ 7ºC`ÑCÚ/ÃÕºC…‹ÑCÚ/Ãu»C3ÓÑCÚ/öH¼CöHÒCÚ/×ã¼C¤pÒCÚ/{”½C)¼ÒCÚ/RX¾CÓCÚ/R¿C33ÓCÚ/�¿C=jÓCÚ/€ÀC —ÓCÚ/šYÁCÎÓCÚ/®ÂC=ªÓCÚ/qÝÂC3ÓÓCÚ/ wÃC)¼ÓCÚ/¸>ÄCÔCÚ/ì1ÅC)ÜÓCÚ/ÃÕÅCšùÓCÚ/�ÂÆC�âÓCÚ/áZÇC3ÓÓCÚ/Í ÈCÃÕÓCÚ/HÉC¥ÓCÚ/¤°ÉCìqÓCÚ/šYÊC3SÓCÚ/@ËC¤0ÓCÚ/åËC\ïÒCÚ/=ªÌCRØÒCÚ/)\ÍC —ÒCÚ/)ÎC3SÒCÚ/{ÔÎCÃõÑCÚ/ÃuÏCÎÑCÚ/33ÐCRxÑCÚ/\¯ÐC×ÑCÚ/…kÑCÀÐCÚ/f&ÒC®GÐCÚ/š™ÒC\ïÏCÚ/RXÓCRxÏCÚ/{ÔÓC®çÎCÚ/öHÔC3³ÎCÚ/ìÕCáÎCÚ/�bÕC wÍCÚ/HáÕC… ÍCÚ/3sÖC…‹ÌCÚ/¤ðÖCÃÕËCÚ/�b×C WËCÚ/�Â×C)ÜÊCÚ/qØC�"ÊCÚ/HaØC{”ÉCÚ/3óØC ÉCÚ/@ÙCÍLÈCÚ/)|ÙCõÇCÚ/{ÔÙCÍ ÇCÚ/áÚC€ÆCÚ/ WÚCHÁÅCÚ/…ÚCšÅCÚ/öˆÚCáZÄCÚ/HÁÚCöÈÃCÚ/{ÔÚC\ÃCÚ/áúÚC`ÂCÚ/åÚC¸ÞÁCÚ/RÛC®ÁCÚ/áÛC®gÀC¯b%µÖæÿÙ/Áó€?œÇ2€ È2Ã5§C®G{CÈ2Ã5ªCÂCÈ2EªC… ‚CÈ2�B§CÃ5{C°b%µÖæÿÇ2Áó€?œÏ2€ Ð2�Â¥Cš{CÐ2Į́CÂCÐ2)ܨC… ‚CÐ2ìÑ¥C{C±b%µÖæÿÏ2Áó€?œ×2€ Ø2=J¤C¸^{CØ2×c§CÂCØ23s§C… ‚CØ2RX¤C=J{C²b%µÖæÿ×2Áó€?œß2€ à2f£Cá:{Cà2áú¥CÂCà2= ¦C… ‚Cà2ãCf&{C³b%µÖæÿß2Áó€?œç2€ è2q�¡C¸{Cè2쑤CÂCè2H¡¤C… ‚Cè2®¡C®{C´b%µÖæÿç2Áó€?œï2€ ð2@ C{Cð2®'£CÂCð2š9£C… ‚Cð2¤P CîzCµb%µÖæÿï2Áó€?œ÷2€ ø2áÚžCÍ {Cø2À¡CÂCø2\Ï¡C… ‚Cø2=êžCRøzC¶b%µÖæÿ÷2Áó€?œÿ2€ €3š™ŸCìC€3ẠCáºC€3×£¢C…ëC€3RX¤CáºC€3×C¦CõC€3 ¨Cf¦C€3ìq©C@C€3ìq©C�C€3q¨CìÑ~C€3HA¦C…ë~C€3ÃU¤CH!C€3¥¢CÃ5C€3Å Cöè~C€3q�ŸCHá~C·b%µÖæÿÿ2Áó€?œ‘3€ ’3×#ŸC)\C’3)ÜŸCN€C’3q¡C)ü€C’3=j¢C×c�C’3ảCšy�C’3… ¥C®§�C’3Ha¦CRx�C’33³§Cî€C’3\ϨCR€C’3…«©C33C’3×£©C\C’3ö¨¨C¤°C’3ާC®€C’3\O¦Cš9�C’3= ¥CÍl�C’3À£CfF�C’3šy¢C)�C’3q=¡Cì±€C’3f Cf€C’3\/ŸCR8C¸b%µÖæÿ‘3Áó€?œ©3€ ª3R8ŸCöhCª3áúŸC~Cª3à C�‚|Cª3î¡C¸{Cª3¸£C¸zCª3¤°¤CÍLzCª3f¦C3³zCª3á:§C.|Cª33“¨CšÙ}Cª3)œ©CR8Cª33³©C= Cª3fæ¨CÃõ|Cª3¸~§CÍL{Cª3Í,¦C ×yCª3š¹¤CRxyCª3ì£CÃuyCª3)¼¡CìQzCª33“ C…«{Cª3 —ŸCE}Cª3qŸC�BC¹b%µÖæÿ©3Áó€?œÁ3€ Â3… ›C×#uCÂ3¸>™C\ÏqCÂ3H¡˜C ×lCÂ3@˜CöhgCÂ3Ãu˜CõbCÂ3ÍŒ˜C�Â`CÂ3=Š™C¤ðaCÂ3ö(œC�‚fCÂ3q½žC3shCÂ3% C®ÇcCÂ3áÚ C)\]CÂ3…K¡C…ëYCÂ3=ª¡CRø[CÂ3öè¢C.aCÂ3šy¤C3³dCÂ3î¥C{aCÂ3öˆ§C¸ž[CÂ3…+¨C33YCÂ3)¼¨Cì‘\CÂ3{4©C�cCÂ3áZªCÃõgCÂ3{´¬CR¸eCÂ3\ï®CšÙ`CÂ3°C®`CÂ3ì°CR8bCÂ3×c°C@gCÂ3\/°CöhlCÂ3E¯C×£qCÂ3 ÷­C{”tCÂ3H�¬C…kuCÂ3¤°ªCRxvCÂ3ì1¨C\ÏvCÂ3�¢¥CnwCÂ3®£CnwCÂ3�¢ CwCÂ3öHžCáºvCÂ3{TœC ×uCÂ3q½šCÀtCÂ3RxšCRxvCÂ3)œCnwCÂ3f&žCnxCÂ3ÍŒ CyCÂ3qý¢CffyCÂ3¤°¥C¤pyCÂ3…K¨C¤ðxCÂ3šÙªC…xCÂ3ìѬC)œwCÂ3Õ®C{TvCÂ3{4°Cö¨rCÂ3.±CÍÌlCÂ3Ã5±C…+gCÂ33Ó°CqýaCÂ3�b°Cö¨^CÂ3 w®C×£_CÂ3á:¬C{”dCÂ3=ªªC3sfCÂ33ó©Cš™bCÂ33S©CE\CÂ3�b¨C×ãWCÂ3fæ¦C\ÏZCÂ3)\¥CšY`CÂ3Ãu¤CHábCÂ3Ž£C¤p`CÂ3f†¢C[CÂ3…ë C@XCÂ3ÃÕŸC®Ç\CÂ3H!ŸC cCÂ3ffžC®‡fCÂ33³œCöèdCÂ3%šC®G`CÂ3¤0˜CHá^CÂ3�‚—C×cbCÂ3 7—CázgCÂ3¤°—Cq=mCÂ3H�˜C…«rCÂ3¸^šC…vCºb%µÖæÿÁ3Áó€?œ‘4€ ’43“¹CáúlC’4¤P¹C¤0nC’4ìQ¹C\ÏoC’4á:¹C×#qC’4q=¹C¸^rC’4ì¹CH¡sC’4=ê¸CÍÌtC’4 ·¸C)vC’4=ЏCö(wC’4 7¸CffxC’4… ¸C{zC’4¤Ð·C¤0{C’4�¢·C®|C’4×C·C W}C’4öè¶CìQ~C’4f†¶CÀC’4×C¶C W€C’4¸¾µC=Ê€C’4¤pµCq]�C’4×ã´C)ü�C’4ìq´C3s‚C’4)ü³CqÝ‚C’4¤p³CRxƒC’43Ó²C×ÃC’4)|²C)<„C’4RرC\Ï„C’4�b±C=*…C’4¤Ð°C{t…C’4š°CšÙ…C’4…¯CöH†C’4H¯C×£†C’4öH®Cà†C’4áš­Cš9‡C’4¤­C�‚‡C’4×C¬Cq½‡C’4¤�«Cšù‡C’4«CHAˆC’4š9ªC=JˆC’4n©CázˆC’4ìѨCšyˆC’4š¨C…«ˆC’4ff§C챈C’4€¦C=êˆC’4šù¥C׉C’4@¥CRøˆC’4f†¤C׉C’4=ª£C)üˆC’4®ç¢C… ‰C’4N¢Cö‰C’4�b¡Cq݈C’4ẠCàˆC’4  CÀˆC’4)\ŸC€ˆC’4׃žC¤pˆC’4 ÷�C\OˆC’4fF�C�ˆC’4R˜œC¸ž‡C’4)¼›CއC’4)›C33‡C’4ÍŒšCÍì†C’4šC †C’4N™C×C†C’4ẘC�â…C’4á˜Cìq…C’4ÃU—Cì…C’4öè–C×ÄC’4\O–C×c„C’4R¸•C�„C’4áZ•CH�ƒC’4×ÔCî‚C’4R8”C®‡‚C’4ẓC‚C’4®G“Cáz�C’4דC=ê€C’4…’C¤p€C’4’C�ÂC’4öè‘C)\~C’4�b‘C)œ}C’4)<‘Cf&|C’4×ã�CîzC’4€�CÀyC’4E�CšÙxC’4Ã�CÍLwC’4{ô�C)\vC’43³�CìuC’4R¸�C)œsC’4 �CffrC’4¤P�C¤ðpC’4\O�C¸ÞoC’4`�C€nC’4 7�CìmC’4…K�CRøkC’4{T�C€jC’4×c�CniC’4¤��C.hC’4 �C…«fC’4 ×�CneC’4fæ�C.dC’43�C×ãbC’4Ã5�C®aC’4Ãu�Cff`C’4)¼�C×£_C’4ì1‘C�B^C’4{t‘C×ã\C’4å‘CìÑ[C’4¤0’C=ŠZC’4ÍŒ’CöhYC’4{Ô’C)\XC’4RX“C…WC’4)¼“C×cVC’4š”C=JUC’4×ÔC)œTC’4 W•C=JSC’4=Ê•CáºRC’43S–C=ŠQC’4Íì–CÀPC’4\o—C®PC’4öè—CH!OC’4챘C×£NC’4¸>™Cš™MC’4{Ô™C…kMC’4×£šCq}LC’4 7›CLC’4¤ð›CHaKC’4RxœC�ÂJC’4Í,�C=ŠJC’4ìÑ�CîIC’4�¢žCõIC’4×cŸC3sIC’4 CÍÌHC’4{´ CÅHC’4q}¡C3³HC’4{4¢C WHC’4šÙ¢CšYHC’4=ª£C¸HC’43s¤C\OHC’4=*¥C®‡HC’4qý¥Cá:HC’4¸~¦C…HC’4)\§C®HC’4®'¨CIC’4¤Ð¨Cö(IC’4®g©C�ÂIC’43SªCìÑIC’4 ÷ªC WJC’4챫C€JC’4ì1¬CÅJC’43Ó¬C®KC’4®­CH!LC’4á:®C×£LC’4…Ë®C)œMC’4×£¯C NC’4)°C3óNC’4\¯°C�‚OC’4R8±C¤0PC’4®ç±C@QC’4H�²CRC’4{ô²CõRC’4€³C{”SC’4ö´C¸žTC’4Rx´C=JUC’4šÙ´C=JVC’4fFµC…«WC’4fƵCR¸XC’4)<¶Cf¦YC’4{t¶C{ÔZC’4à¶CìÑ[C’4¸·CÃõ\C’4áz·CÃ5^C’4×ã·Cff_C’4®'¸Cq}`C’4)\¸C…ëaC’4�¢¸C®cC’4)¼¸C)\dC’4Ãõ¸C®eC’4Í ¹C)œfC’4.¹C®GhC’4e¹Cá:iC’4 w¹CáºjC’4áZ¹C{lC’4×c¹C×cmC’4…kºC®mC’4HAºC{lC’4RXºCÅjC’4…KºCfæhC’4%ºCîgC’4®'ºC.fC’4{Ô¹CšeC’4õ¹C3ócC’4áš¹CÃubC’43S¹CÃ5aC’4�"¹C{Ô_C’4Há¸C W^C’4\o¸C]C’4q¸C3ó[C’4šÙ·C…«ZC’4šy·Cf¦YC’433·CffXC’4�¢¶CÍ WC’4%¶C33VC’4ì±µC\UC’4�BµC3óSC’4å´CöèRC’4�B´CõQC’4 ³CQC’4)<³C PC’4)œ²C{TOC’4î±C)NC’4¸>±C=ŠMC’4ìѰCìÑLC’4×#°C LC’4`¯CöhKC’4RØ®C®JC’4š®C×ãIC’4…K­C…kIC’4f¦¬C{ÔHC’4 ÷«C®GHC’4…K«CHC’4ŽªC×cGC’4¸ž©CšYGC’4\©CáúFC’4N¨C¤ðFC’4…‹§CH¡FC’4{´¦C�BFC’4¸þ¥CFC’4%¥Cq=FC’43“¤C®FC’4�¢£CqýEC’4À¢C.FC’4®¢C WFC’4ÃU¡CÍÌFC’4ͬ C ×FC’4HÁŸC×ãFC’4{ŸCH¡GC’4q}žCÅGC’4R˜�CÍ HC’43ÓœC¤pHC’4…+œCìIC’4�‚›CöhIC’4…ËšC¸JC’4=*šC×£JC’4öh™C=ŠKC’4Í̘C�LC’4\/˜CÃõLC’4)|—C3³MC’4fæ–CH¡NC’4Íl–CÃ5OC’4{´•C¸PC’4.•CffQC’4q½”CîQC’4×#”C…+SC’4Ž“CH!TC’4Í “CšYUC’4¥’C®GVC’4=*’CöhWC’4®ç‘C3³XC’4Ž‘CÅYC’4=*‘C¤ðZC’4 ×�CR8\C’4…�CÃu]C’4�C¤°^C’4®Ç�C\Ï_C’4…‹�C�BaC’4šY�C¤pbC’4\�CšÙcC’4ì�Cö(eC’4fæŽC¸^fC’4HÁŽC¤ðgC’4 ·ŽCR8iC’4×£ŽCÍLjC’4¤pŽCÍÌkC’4)|ŽC¤0mC’4쑎C)œnC’4{”ŽC{ÔoC’4쑎Cá:qC’4\ÏŽC¸ÞrC’4=êŽCR¸sC’4…ëŽC¸^uC’4¸>�C\ÏvC’4×C�CR¸wC’43“�CHayC’4 ×�C3szC’4�"�Cq½{C’4×c�CÍÌ|C’4ͬ�C3s~C’4 ‘CHaC’4×c‘C)<€C’4Íì‘C ÷€C’4ìQ’C�b�C’4…’Cìñ�C’4ÓC®‚C’4 ·“C)ƒC’4á”CÕƒC’4�¢”C33„C’4.•C)œ„C’4®Ç•C 7…C’43s–C¤p…C’4öÈ–C…ë…C’4×£—C\O†C’4@˜C®§†C’4)ܘC¸þ†C’4H�™C)|‡C’4{šC·C’4�¢šC ˆC’4…k›CöˆˆC’43SœC®ˆC’4åœCR؈C’4×£�CR8‰C’4 WžCq]‰C’4f&ŸC쑉C’4=êŸC…«‰C’4)œ CR؉C’4)<¡Cà‰C’4q¢C%ŠC’4)ü¢C@ŠC’4\¯£CŠC’4)|¤C 7ŠC’4E¥C¸ŠC’4f¦Cö(ŠC’4õ¦C¤ŠC’4{”§CÍì‰C’4®G¨CR؉C’4… ©C3³‰C’4áš©C…‹‰C’4�bªC\o‰C’4ÍL«C\O‰C’4qý«C ÷ˆC’4{”¬C¸¾ˆC’4Ha­C׃ˆC’4®'®C WˆC’4�®Cà‡C’4)|¯C¸ž‡C’4ö(°CÍ,‡C’4¥°C®Ç†C’4�b±C®‡†C’4f²CÍ †C’4q}²C�¢…C’4\O³C¸…C’4f¦³Cͬ„C’4H!´CfF„C’43³´Cö¨ƒC’4öHµCRXƒC’4¸¾µCõ‚C’4áZ¶C)ü�C’4=жCáz�C’4%·CH!�C’4f†·CÍl€C’4\ï·CnC’4)¸C¸^~C’4q�¸C)}C’4ìѸCÃõ{C’4ö¹CõzC’4\O¹Cö(yC’4…‹¹CHáwC’4®§¹Cq½vC’4¸þ¹C)\uC’4Rø¹C\tC’4×CºCÅrC’4{TºCö(qC’4R8ºCìÑoC’4HAºC=ŠnC’4\oºCáºmC»b%µÖæÿ‘4Áó€?œÿ6€ €7Í úC@C€7öÈúC WC€7ì‘ûCìÑC€7¤PüC¸žC€7®gýC{TC€7ÃUþCf¦C€7ÃUÿC\C€7š)D®C€7°D=JC€7\?DnC€7�ÒD@!C€7ÍlDì$C€7HD= 'C€7…›D×ã)C€7f&DšY-C€7)ÜD�B1C€7~Dö¨4C€7áDì‘8C€7R¨D =C€7×SD)AC€7föDÃuEC€7)¬DRøIC€7�R D —NC€7 D WSC€7 ‡ DázXC€7> D�B]C€7®ç D=JbC€7áz D×#gC€7¤0 D®GlC€7RÈ D®qC€7×sDÃõvC€7ÍüDf&|C€7š©D×ÀC€7fFD{TƒC€7šÉD†C€7ffD¥ˆC€7ìÑD׃‹C€7öXD= ŽC€7qÝD…Ë�C€7 wDq]“C€7föD¤ð•C€7¤PDq}˜C€7=ÊD×›C€7¤@D€�C€7f–D�âŸC€7q D{T¢C€7®WDR˜¤C€7õDqݦC€7…ûDf©C€73SDá:«C€7f–DHA­C€7ÎD¤P¯C€7îD®G±C€7…Döè²C€7�2D{´´C€7UD…K¶C€7RHDšÙ·C€7`Dö(¹C€7šID¸žºC€7HADq½»C€7�BDfæ¼C€7¤ D ·½C€7 çD®g¾C€7°DqݾC€7ázDRx¿C€7>D…ë¿C€7{$DÀC€7�²DáÀC€7ÃeD×#ÀC€7)ÜDq=ÀC€7¸nD�"ÀC€7öØD×CÀC€7 GD= ÀC€73£D¤Ð¿C€7HDff¿C€7Ã5D¤¿C€7 gD\ϾC€7)œD{T¾C€7¸¾D×ã½C€7)ÜDÍL½C€7öè Dö¨¼C€7š D×ã»C€7® D »C€7 ÷ DÍlºC€7å Dšy¹C€7öØDͬ¸C€7®·D)Ü·C€7ö˜D¤Ð¶C€7šyD¶C€7ÃED ÷´C€7… DöȳC€7áÚDš¹²C€7\ŸDằC€7ÎþC®‡°C€7¤0üC�b¯C€7šÙùC ®C€7fF÷C…ˬC€7ÍŒôCR˜«C€7{òCšYªC€7 wïC.©C€7RØìC×çC€7Ã5êC{t¦C€7¸¾çC)¥C€7×#åCfÆ£C€7ͬâCÍL¢C€7àC{¡C€7…ÝC{´ŸC€7ÎÚC{4žC€7ìqØCẜC€7\ïÕCq]›C€7@ÓC=*šC€7RøÐC쑘C€7×cÎC3S—C€7fFÌCå•C€7š¹ÉCq}”C€7ŽÇC%“C€7)<ÅCq½‘C€7{ÃC=j�C€7×ÃÀCRøŽC€7=ʾC)œ�C€7)¼¼C×cŒC€7�ºC¤‹C€7�¸C3³‰C€7áÚ¶CRxˆC€7×CµC¸^‡C€7Íl³C †C€7=ʱCqÝ„C€7š9°C)¼ƒC€7)Ü®C�¢‚C€7áz­C¸^�C€7HA¬Cq}€C€7šÙªC®Ç~C€7R¸©C¤ð|C€7å¨CÃõzC€7î§CÍÌxC€7§C…wC€7q}¦C=ÊuC€7{Ô¥CÍLtC€7=j¥CR¸rC€7… ¥CÍLqC€7�â¤C)\pC€7HÁ¤C\OoC€7 ·¤C)\nC€7{Ô¤C3³mC€7á¥C¸mC€7�b¥CšYlC€7¤Ð¥CRxkC€7áz¦C\ÏjC€7… §C×#jC€7H¨C�BiC€7\ϨCf¦hC€7ìªCH¡gC€7.«Cö(gC€7®g¬C®fC€7®Ç­C¸ÞeC€7�B¯C�‚eC€7{´°C€dC€7)|²Cö(dC€7ì1´CÍŒcC€7{ôµC¸ÞbC€7¸¾·C¸bC€7q½¹CõaC€7öÈ»Cq=aC€7þC ×`C€733ÀC `C€7šyÂC¤ð_C€7ö¨ÄCáz_C€7qÇCáz_C€7ášÉC{Ô^C€7¸ÌC®^C€7ì‘ÎCH!^C€7= ÑC ×]C€7š¹ÓC\�]C€7HaÖC×#]C€7¤0ÙC�]C€7\ïÛC�‚\C€7 —ÞC…k\C€7náC®‡\C€7eäCìQ\C€7 çC33\C€7qêCR8\C€7öÈìCö¨[C€73³ïCHá[C€7š™òCšÙ[C€7ÕõCõ[C€7�¢øCH¡[C€7¸~ûC€[C€7ÃUþCš™[C€7\ŸDöè[C€7¸Dáº[C€7áŠDH!\C€7föD×£[C€7ìqD)\\C€7åDq=\C€7öH DRx\C€7® DRx\C€7q DÍŒ\C€7×c Dš]C€7ÎD�‚]C€7¸D¸^]C€7ÍlDš^C€7…«D…+^C€73DÍŒ^C€7R8DHá^C€7öhDq=_C€7¤ DÃu_C€7ÎD.`C€7HáD…+`C€7öD¸Þ`C€7RDì‘aC€7¤ D3óaC€7 D¤0bC€7DÍÌbC€7ÃõD¸^cC€7qÍ D@dC€7ö¨!D=ŠdC€7¸n"D…keC€7),#D�fC€7fÖ#D33fC€7�r$D®GgC€7%D�hC€7•%DšYhC€7&DR8iC€7ff&D ×iC€7¾&D¸ÞjC€73'Dö¨kC€7áZ'DázlC€7Rˆ'D®ÇlC€7�‚'DÍŒmC€7¸Ž'Dq=nC€7¸Ž'DšoC€7{„'D…+pC€7áz'Dq}qC€73C'D×ãrC€7Í 'D tC€7¤À&D…«uC€7{t&DÍŒwC€73&D…+yC€7ž%D){C€7)%D…ë|C€7Ž$Dš™~C€7…ë#DH�€C€75#D…k�C€7áš"D ·‚C€7¤Ð!D…˃C€7!DšÙ„C€7=J D)†C€7ìqDáZ‡C€7ÕDf†ˆC€7q�D=ʉC€7®§Df‹C€7f–DnŒC€7�’Dáº�C€7=ŠD¤�C€7öxD3S�C€7ÍlDÀ‘C€7š9D.“C€7¸D®‡”C€7�òD3Ó•C€7R¸D.—C€7{”D{´˜C€7fVD\šC€7HDáš›C€7\ß DìñœC€7�’ Dq=žC€7=J DöÈŸC€73 D¤¡C€7)¼D3S¢C€7ffD)œ£C€7.D×#¥C€7šÉDHa¦C€7€D3Ó§C€733D\/©C€7)üDf†ªC€7×CÿCáš«C€7{ÔüC¤ð¬C€7š9úC¸®C€7f¦÷C®G¯C€7Í,õC=аC€7H¡òC…±C€7EðCẲC€7…ëíC)ܳC€7ÍlëCî´C€7H!éC3óµC€7�âæC�â¶C€7 —äCš¹·C€7NâC챸C€7¸àCš™¹C€7�"ÞC3SºC€7öÜC¤0»C€7qýÙCÍì»C€7=*ØC®‡¼C€7®GÖC\/½C€7ìqÔC ·½C€7¸ÞÒC¸>¾C€73ÑCì±¾C€7{”ÏCR¿C€7… ÎC¤�¿C€7{´ÌCÀ¿C€7RxËC3ÀC€7=*ÊCöHÀC€733ÉC¤PÀC€7ìÈCÃ5ÀC€7®gÇC�bÀC€7¸žÆCÍ ÀC€7öèÅC)ÀC€7šYÅCÍÌ¿C€7¸ÞÄC�‚¿C€7…ÄC…ë¾C€7fÄCáz¾C€7šùÃC¤�½C€7ázÃC\ϼC€7nÃC�¢»C€7š9ÃC¤�ºC€7RXÃC=J¹C€7nÃCà·C€7\OÃC×c¶C€7 —ÃC)¼´C€7¤°ÃCöè²C€7 ÄCH!±C€7 wÄC…K¯C€7îÄCE­C€7…KÅCR«C€73ÓÅC%©C€7=ŠÆC…˦C€7%ÇC®§¤C€7ìÑÇCš9¢C€7R¸ÈC¤ðŸC€7q]ÉCff�C€7×CÊC…ëšC€7{TËC3“˜C€7R8ÌC¸Þ•C€7… ÍCš9“C€7{ôÍCHÁ�C€7…+ÏC\/ŽC€7Í,ÐCq}‹C€7ÃuÑCšÙˆC€7{TÒC¤†C€7q½ÓC{”ƒC€7®ÇÔC=Ê€C€73ÖCì|C€7®×CRøvC€7 —ØC3³qC€7ÍÌÙCš™lC€7RØÚCìQgC€7¤PÜC…kbC€7ÕÝC®]C€7{ÔÞCH!XC€7šàCì‘SC€7)|áC®NC€7®âC JC€7áúãC…«EC€73SåC×#AC€7¤°æCšÙÂC3½C€7öˆÂC¸þ½C€7ÎÂCš¿C€7\�ÃCếC€7®çÃC�bÀC€7ö¨ÄCáúÀC€7š™ÅCHaÁC€7`ÆC{tÁC€7¸>ÇCf¦ÁC€7 ÈCõÁC€7Ã5ÉC —ÁC€7=JÊCq�ÁC€7 ·ËC)\ÁC€7áúÌC%ÁC€7)\ÎCšÙÀC€7ÃõÏC¸^ÀC€7)\ÑC…ë¿C€7¸>ÓC챿C€7åÔCq¿C€7õÖC=оC€7…«ØC=ê½C€7®gÚC ½C€7�‚ÜC€¼C€7®ÞC×£»C€7ÕàCõºC€7¸¾âCìѹC€7 åC3¹C€7 WçC�¸C€7×£éC33·C€7)üëCq=¶C€7…îC×#µC€7šÙðC®ç³C€7R8óC3Ó²C€7R¸õCì±±C€7Í,øC)\°C€7{´úCÃ5¯C€7®gýC�"®C€7qÝÿC ׬C€7q=D\�«C€7Í|DEªC€7RÈDfæ¨C€7®D×£§C€7¸~D3S¦C€7¾D{Ô¤C€7à Dšy£C€7®W D)¢C€7ì‘ DfÆ C€7…Û D…KŸC€7R(DמC€7)\D¸žœC€7š©D¤0›C€7åD)¼™C€7š Dá:˜C€7@D®ç–C€7ájDÍŒ•C€7=ŠDš9”C€7HÁDÅ’C€7RÈDE‘C€7�ÒD)ü�C€7�âDÀŽC€7îD¸~�C€7\ÿD\ŒC€7×óD…ËŠC€7ìáDöh‰C€7®ÇD¤PˆC€7×£ DׇC€7n!D=ª…C€7ì!"D3³„C€7fö"D3“ƒC€7áš#DÃU‚C€7á:$D=J�C€7¤ð$DR8€C€7{t%Dì‘~C€7á &DR¸|C€7e&D�‚zC€7×Ó&D)ÜxC€7ì1'D�wC€7Rˆ'D…kuC€7¸®'DRøsC€7ì(D)\rC€7�(D€pC€7ì!(DR8oC€7f(DqýmC€7H(DmC€7×ã'D3³kC€7\Ÿ'D…ëjC€7…['DšjC€7á 'DÍ iC€7 &D¤0hC€7¤@&DázgC€7…»%Dì‘fC€70%D×ãeC€7š™$DHaeC€7\ï#DÍŒdC€7@#DR8dC€7H‘"DHacC€7¤À!D€bC€7Há D×#bC€7š D…«aC€7DRø`C€7\/D.`C€7š)D®`C€7®'Df¦_C€7=D_C€7=êD3s^C€7šÙDq=^C€7¸®Dn]C€7¸nDš]C€7¸>DÃ5]C€7… D®\C€7¤°DÍŒ\C€7RxDH!\C€7Ã%D�‚[C€7HÑDáz[C€7Íl DE[C€7× D=ÊZC€7¤° D{”ZC€7áJ D…kZC€7fæDöhZC€7 wD=JZC€7®÷D ZC€7)ŒD33ZC€7HDq½YC€7\ŸD×ãYC€7áZþC¸ÞYC€7¸~ûCáºYC€7 øC{ÔYC€7¤�õCõYC€7ÕòC)ZC€7 ·ïC= ZC€7×ÃìCHáYC€73êCq=ZC€7šçCEZC€7)\äC3³ZC€7ÍláCìÑZC€7 —ÞC�ÂZC€7fæÛCšÙZC€7×#ÙCÍ [C€7ìQÖC@[C€7ͬÓCìÑ[C€7HÑC{Ô[C€7)|ÎC\C€7… ÌC)œ\C€7f†ÉCR¸\C€7… ÇCšY]C€7)œÄCff]C€7`ÂC\Ï]C€7RÀCq}^C€7H¾CÃ5_C€7¤°»CH!_C€7¸ž¹CHá_C€7¸ž·C…k`C€7öȵCÍ aC€7= ´Cf¦aC€7ÃU²CìbC€7׃°C¤°bC€7�¯C3scC€7Õ­Cö(dC€7š9¬C)ÜdC€7{ôªCÃõdC€7¸¾©C)ÜeC€7€¨CqýfC€7×£§CìQgC€7쑦C®GhC€7H¦CáúhC€7ì1¥C…«iC€7 —¤CfæjC€7 7¤CõkC€7öè£Cö¨lC€7R˜£C= nC€7¥£C�ÂoC€7î£C…ëpC€7¤CH!rC€7ìq¤CìÑsC€7H¥C�‚uC€7\¯¥CwC€7ÍL¦C=ÊxC€7š§CRxzC€7… ¨C®‡|C€7שCöh~C€7�"ªCš9€C€7¸~«CÃu�C€7)¼¬C\O‚C€7f&®CšyƒC€7…‹¯Cf¦„C€7\/±Cf¦…C€7®§²C×#‡C€7)œ´C)\ˆC€7R8¶C…k‰C€7 ¸C3³ŠC€7�"ºCfŒC€7=*¼CfF�C€7 ¾C ŽC€7%ÀCî�C€7RxÂCff‘C€7 ÄC ·’C€7HáÆC¸>”C€7H!ÉCH�•C€7R˜ËCf—C€7ÃÕÍCìQ˜C€7 WÐCö¨™C€7{´ÒC¸›C€7{TÕCf†œC€7fÆ×C=ê�C€7á:ÚC 7ŸC€7ÍìÜC� C€7…kßC\/¢C€7âC…£C€7šyäC)ü¤C€7 çC{T¦C€7=ªéC…‹§C€7öHìC¤Ð¨C€7àîC¸^ªC€7{”ñC=j«C€7šùóCHÁ¬C€7®öCì®C€7NùC{4¯C€7×£ûCÃu°C€7\/þCRرC€7¸^Dfæ²C€7f–Dî³C€7ͼDáµC€7\ÿD33¶C€7š9DHA·C€7fVDq¸C€7RxD®¹C€7{”D= ºC€7�¢ D3ÓºC€7¸¾ D)œ»C€7áÊ Dff¼C€7öÈ D)½C€7᪠D¤ð½C€7…«D�‚¾C€7�’D¿C€7)lDÍŒ¿C€7š9Dö(ÀC€7�D׃ÀC€7 ×DöÈÀC€7\D¸ÁC€7=*DHAÁC€7šÉD —ÁC€7¸nD)œÁC€7ÞDq�ÁC€7®wD\�ÁC€7fÆDffÁC€7�BDEÁC€7H¡D= ÁC€7öøDöhÀC€73CD ׿C€73ƒDÃ5¿C€7)¼DÃ5¾C€7åD ½C€7îDRØ»C€7… Dq½ºC€7Df&¹C€7öDηC€7šùD33¶C€7ìáD\�´C€7ÕDf¦²C€7RˆDÍ ±C€7{tD¸¯C€73CDRø¬C€7) D3ÓªC€7ͬD ¨C€7RhDÃu¦C€7 Dì1¤C€7¾Då¡C€7=JD…kŸC€7îD= �C€7nD=ŠšC€7ìDö˜C€7 —D…•C€73#D¤Ð’C€7=ŠDá:�C€7DH��C€7q}D׋C€7áúDì1ˆC€7{dD€…C€7ÐDáÚ‚C€7ì1D¸>€C€7š‰D…+{C€7á D×ãuC€7)\DÍŒpC€7f¶ Dq=kC€7 DáúeC€7u Dö(aC€7� DH!\C€7®' D@WC€7H‘ D33RC€7Há D{TMC€7ö8 D×£HC€7=zD…+DC€7HÑDî?C€7ìADÀ;C€7f¦DìQ7C€7ÍüD\O3C€7`DÅ/C€7ͬD×ã+C€73Dáz(C€7×sD)œ%C€7šéD€"C€7®GD®C€7)¬D¸ÞC€7Dš™C€7ì‘D…kC€7… DšYC€7ÿC¸žC€7ÍìýC®GC€7\ÏüC\OC€7®üC —C€7)üúC ×C€7fúCC¼b%µÖæÿÿ6Áó€?œë<€ ì<qýÖC�‹Cì<3óÖCìñ‰Cì<\¯×CHáˆCì<HÁØC{”‡Cì<×ÚC3†Cì<\ÏÛCRØ„Cì<q�ÝCNƒCì< wßC…ë�Cì<õáC Cì<ͬãCá:~Cì<ö¨åC¤ð{Cì<)\çC{ÔyCì<… éC®ÇwCì<ëCš™uCì<¤ðìCáºsCì<�ÂîC{”qCì<ÃuðCRøoCì<¤PòC{oCì<¸>ôC\nCì<)öC¤pmCì< øCRølCì<¸ÞùC)mCì<×ãûCffmCì<\ÏýC=ÊmCì<3“ÿC ×nCì<…ÛDš™oCì<¸ÞDRøpCì<öØD×#sCì<3óDÃutCì<öØD3³vCì<¸îD@xCì<ö¸DìQzCì<�ÂD…«|Cì<=ÚDÃ5Cì<)ì Dìñ€Cì<� D\O‚Cì<3# D�„Cì<f D\�…Cì<)Ü D ÷†Cì<ìaDÃUˆCì<RØD\ωCì<{ôDH‹Cì<ö¸DöŒCì<¸ND�B�Cì<ÃÅ DÍŒŽCì<¤à DR˜�Cì<H D%‘Cì<š D®G’Cì<ÃÕ DáZ“Cì<ÃÅDì±”Cì<HÁD ÷•Cì<š¹D¤Ð–Cì<fÆDÅ—Cì<HÁD×ã˜Cì<×ÓD�™Cì<öÈD\�šCì<ÀDáz›Cì<®×D@œCì<ÀÿC3ÓœCì<šÙýC=*�Cì<{ÔûCšY�Cì<ìúCöˆ�Cì<…+øC¤p�Cì<á:öC\�Cì<q]ôCÕœCì<¥òC®ç›Cì<HÁðC 7›Cì<=ÊîC=*šCì<ÃõìC®G™Cì<{ôêC˜Cì<= éCH!—Cì<×CçC\–Cì<qåC•Cì<�ãCì”Cì<¤°àCöè’Cì< wÞCqý‘Cì<R˜ÜC¤��Cì<¥ÚCHa�Cì<fÙC 7ŽCì<¤ð×CšùŒCì<á×C®ç‹Cì<áÚÖC ׊Cì<%ÕCö(‹Cì<�bÕCR¸ŒCì<ázÖC ŽCì<ö¨×C ·�Cì< —ÙC�‘Cì<׃ÛC…+’Cì<q}ÝC —“Cì<ÀßCå”Cì<f&âC¸Þ•Cì<�"äC—Cì<®GæCqý—Cì<RèC×ã˜Cì<qÝéCìñ™Cì<®çëC ›Cì<=ÊíCá:œCì<áúïCH�Cì<)ÜñC=ê�Cì<�ÂóCf†žCì<¤ÐõCáŸCì<ìñ÷CNŸCì<šúC ŸCì<�üC=JŸCì<\/þC×CŸCì<qD…žCì<qD3ó�Cì<3#DšY�Cì<á*DNœCì<®7D…k›Cì<3#DöHšCì<H!Dì1™Cì<ÍD…k˜Cì<RD{4—Cì<), D–Cì<á: D ×”Cì<ši D…«“Cì< w D¸>’Cì<Í\ D)Ü�Cì<×3Döˆ�Cì<RØDH!ŽCì<®gD�ÂŒCì<ášD3‹Cì<nDHa‰Cì<RDöˆ‡Cì<�rDRØ…Cì<š‰ D{T„Cì<š™ DšÙ‚Cì<Rx D¤0�Cì<)\ D×#Cì<ìA Dq}|Cì<š)DqýyCì<q-D@wCì<ìAD)œuCì<fFDffsCì<ìQDq=qCì<ö8DázoCì<0DìÑmCì<öDnlCì<¤DöèjCì<.þC=ÊiCì<šüC€iCì<= úCR¸hCì<3ó÷C®hCì<…ËõCöhiCì<RØóCìjCì<fÆñCîjCì<fÆïC�BlCì<)ÜíCîmCì<=êëC®ÇoCì<qýéC�ÂqCì<¤èCìQtCì<á:æCRøuCì<f†äC@xCì<q}âCÀzCì<ŽàC�Â}Cì<NÞC\/€Cì<)\ÜCR¸�Cì<3sÚC\/ƒCì<ÃÕØC…Ë„Cì<Ã5×CE†Cì<¤0ÖCà‡Cì<ÃUÕC)\‰Cì<Í ÕC3ÓŠC½b%µÖæÿë<Áó€?œ“>€ ”>DöˆŠC”>…+D.‹C”>¤0Dö¨‹C”>…+D…KŒC”>=D×ÃŒC”>×DáZ�C”>þD)ü�C”> çD¸žŽC”>îDR8�C”>qÍDáº�C”>…»D W�C”>\¯D®ç�C”>�‚D…K‘C”>áŠD’C”>…[D¸~’C”>ÃED\“C”>D…“C”>áD3”C”>HñD=j”C”>)ÜD3ó”C”>f¦D)<•C”>fvD¤ð•C”>×cD¤–C”>5D3s–C”>3DRø–C”>fÖD`—C”>H±D¤°—C”>=zDf˜C”>)\D¸^˜C”>¤ D�â˜C”>D®'™C”>ÍÌÿC.™C”>šÿCš™™C”>×ÿCΙC”>HaþCRØ™C”>%þCÃ5šC”>ÃuýCáZšC”>q]ýCH¡šC”>…ëüC{´šC”>öhüC)ÜšC”>×üCö›C”>ÀûC¸þšC”>{4ûCq=›C”>3óúC 7›C”>)|úC¸>›C”> 7úCš9›C”>áºùC�"›C”>×CùCq›C”>…«øC®›C”>Ã5øCf›C”>à÷C{ôšC”>3s÷CöÈšC”>÷CìÑšC”>)¼öC)œšC”>öHöC)|šC”>ÃÕõCf&šC”>q}õCEšC”>{õC¸Þ™C”>š™ôC\¯™C”>�bôC w™C”>3ÓóCH™C”>`óCå˜C”>ì1óC쑘C”>{ÔòCö(˜C”>ÃuòC3ó—C”>Í,òC�‚—C”>q½ñC{—C”>ì‘ñCR¸–C”>RñCRX–C”>\ÏðCìÑ•C”>RxðCìq•C”>q=ðCÍì”C”>…ëïCš™”C”> ·ïC= ”C”>ÍŒïC…“C”>�"ïC= “C”>\ïC…’C”>3ÓîCî‘C”>¸¾îCRx‘C”>öhîCÎ�C”>=*îC¸^�C”>)üíC¤°�C”>áúíCì1�C”>öÈíCÅŽC”>®çíCì1ŽC”>ÎíC3s�C”>š¹íC�ÂŒC”>=ªíCá:ŒC”>ìqíC —‹C”>…‹íC\‹C”>ÕíC —ŠC”>öˆíC\ωC”>®‡íC3S‰C”> ·íCR¸ˆC”>)¼íC.ˆC”>ͬíC…‹‡C”>¸¾íC¸þ†C”>ìñíC…K†C”>×ãíCšÙ…C”>f&îC@…C”>R8îC¤°„C”>®gîCR„C”>3“îCÍŒƒC”>{ÔîC{ô‚C”>šùîC¸~‚C”> WïC®‚C”>šYïCn�C”>öÈïC{�C”>3ðC3“€C”>3SðC3³C”>H�ðCRø~C”>qÝðCf&~C”>¤ñC¸^}C”>{tñC\Ï|C”>…«ñCR¸{C”>… òC¸{C”>H�òCÍLzC”>{ÔòC\�yC”>HAóC¸ÞxC”>�¢óCöèwC”>ÍìóC{”wC”>\/ôCf&wC”>¸~ôCÍ wC”>Í õC®GvC”>H¡õC®uC”>…ëõC.uC”>�"öCuC”>¤°öC)ÜtC”> ÷Cq}tC”>3³÷C\tC”>¤ð÷C×£sC”> øCš™sC”>\¯øCtC”>¸^ùC —sC”>¥ùC=JsC”>=êùCHasC”>ázúC)œsC”>{ôúCq}sC”>ÃûCHasC”> —ûC�tC”> üCìÑsC”>H�üC®GtC”>áÚüC —tC”>×cýC¤ðtC”>\¯ýC\uC”>öþCq½uC”>…‹þCšÙuC”>q½þC®GvC”>RXÿCqývC”>R˜ÿCázwC”>¸þÿCõwC”>\DnxC”>\_D33yC”>דDá:zC”>áÊD¤pzC”>šéDš{C”>\ÿD3ó{C”>Í<DÍÌ|C”>`Df¦}C”>HqDšY~C”>q­DázC”>ÃÅDá:€C”>×óD{´€C”>D¸þ€C”>{$D —�C”>=ZDÃõ�C”>`D W‚C”>šyD{ƒC”>\�DÍ̃C”>š©D„C”>®D{´„C”>=ÚD33…C”>)ÜDRØ…C”>\ÿDn†C”> DÍì†C”>ìD w‡C”>RD)ü‡C”>{D\¯ˆC”>H!D®G‰C”>Í,D…ˉC”>×#DH�ŠC”>)ÜD¸~ŠC”>HÑD®Ç‰C”>…ÛD¤‰C”>¾D…‹ˆC”>3ÃD¤ð‡C”>f¶D�b‡C”>׳D)¼†C”>R˜D†C”>®‡DÕ…C”>3ƒDöè„C”>ìqD¤P„C”>ffDͬƒC”>áJD ƒC”>áDö¨‚C”>¸D… ‚C”>=úDÃu�C”>×ãD¤Ð€C”>ͼD 7€C”>®—D\ÏC”>H�DHá~C”>®WDšÙ}C”>f&D…|C”>) D|C”>ÍÜD)ÜzC”>ͬD ×yC”>áŠD@yC”>×CDxC”>®DázwC”>3ãD×#wC”>õD¤0vC”>ázD{TuC”>f6DÃutC”>q DöhtC”>®§ÿC�ÂsC”>Í,ÿCÍ sC”>®ÇþC¸ÞrC”>ìqþC.rC”>)ÜýCrC”>áZýC…kqC”>áúüC\�qC”>q}üC\qC”>fæûC®pC”>{tûCáºpC”>HáúCEpC”>q}úCf¦pC”>�"úC)\pC”>=ŠùC3spC”>3óøCöhpC”>q}øCÍÌpC”>H!øCöèpC”>RX÷CÍ qC”>÷CšÙqC”>�ÂöCRøqC”>{TöCrC”>=ÊõC¤prC”>Ã5õCõrC”>öÈôC…sC”>ázôC¸tC”>ÃõóCá:tC”>H�óCf¦tC”>fæòCRxuC”>=ÊòCšYvC”>ÍLòC¤ðvC”>ìññCÃõwC”>×£ñCH¡xC”>EñC¤pyC”>¤ÐðC�BzC”>�bðCR8{C”>šðC…+|C”>fðCöè|C”>öˆïCf¦}C”>¸^ïC¸Þ~C”>RøîC�€C”>…ËîC`€C”>…kîC3ó€C”>×#îC¤��C”>)üíCqý�C”>®íCöˆ‚C”>öˆíC®GƒC”>RxíCÃÕƒC”>)<íCRx„C”> 7íCšù„C”>fæìCáš…C”>qÝìC…+†C”>fÆìC ׆C”>)¼ìC{t‡C”>ÍŒìC ˆC”>®‡ìCÍŒˆC”>nìC)<‰C”>…ìC3Ó‰C”>…kìCÕŠC”>€ìCH‹C”>3sìC×£‹C”>f†ìCq}ŒC”>)¼ìC\ïŒC”>®ÇìCöˆ�C”>öÈìC{4ŽC”>3ÓìC¤ÐŽC”>\ÏìC w�C”>ÃíC…ë�C”>)<íCR¸�C”>ÍŒíC®'‘C”>׃íCÀ‘C”>®íC¤p’C”>…+îC�â’C”>ì1îCRX“C”>HaîC= ”C”>R˜îCÍŒ”C”>×ïC.•C”>R8ïC{t•C”>=jïC×#–C”>=êïC)|–C”>qðC®—C”>€ðC€—C”> ·ðCH˜C”>¤PñCöH˜C”>šyñCfƘC”>�âñCR™C”>H!òC¤�™C”>q½òC)Ü™C”>\óC®'šC”>ÍŒóC¸~šC”>\ïóC\ÏšC”>HaôCqýšC”>öèôC×c›C”>�bõC¸ž›C”>š¹õC…«›C”>ÃöC…ë›C”>R˜öC œC”> ÷CNœC”>…‹÷C=jœC”>×øC¤pœC”>nøC쑜C”>ÃùC®œC”>\�ùCR¸œC”>{ôùCÅœC”>ì‘úCöèœC”>{ûC®œC”>…‹ûCHÁœC”>ìüC¸~œC”> WüC¸žœC”>®ýC…KœC”>Ã5ýC¤0œC”>qýýC®'œC”>¸^þC ×›C”>�âþCŽ›C”>=*ÿC®g›C”>�¢ÿC%›C”>) D�âšC”>Í<DH�šC”>=zD`šC”>¤°Dà™C”>…ëDáz™C”>RD 7™C”>R8DRؘC”>HqD쑘C”>áªD�˜C”>=ÚDöˆ—C”>) D)—C”>R(D×£–C”>)<D=*–C”>=zDìÑ•C”>=šDq•C”>fÆD®§”C”>…ÛDö”C”>ÃõD�¢“C”>D×#“C”>)<D\o’C”>ìADẑC”>®gDe‘C”>eD3“�C”>€D33�C”>{”Dn�C”>=šD�ÂŽC”>ì¡D3SŽC”>\¿Dáš�C”>×ÃD…ëŒC”>®ÇDázŒC”>=ÚDẋC”>šÙDì‹C”>3ÓDHaŠC¾b%µÖæÿ“>Áó€?œ�A€ ‚Aö¨ùCÃõxC‚A¸øC…{C‚A=ê÷CRxC‚A×Ã÷CR‚C‚AføC ׄC‚A øC)\‡C‚A)<øCìŠC‚AÕøC\OŒC‚A€øC3ÓŽC‚A¤0øCöh‘C‚A�BøC…ë“C‚AÍ,øC×c–C‚ARØøC=J˜C‚AqýùC…™C‚A�ûCáz™C‚AüC)ü—C‚A 7üCš–C‚AfüC¤°“C‚Aš™ûC®'‘C‚AfûC ·ŽC‚AÅúC=*ŒC‚Af¦úC׊C‚A×ûC w‡C‚Aš9ûCà„C‚A¸~ûC\O‚C‚AöèûC¤ðC‚A¥ûC…ë{C‚A…‹úC�ByC¿b%µÖæÿ�AÁó€?œ¡A€ ¢A wDÃ5‹C¢A{tDn‹C¢AÍŒDH�‹C¢A¤€D×#‹C¢A\D)ÜŠC¢AÍŒD®§ŠC¢A{tD¸žŠC¢AfvDÃõŠCÀb%µÖæÿ¡AÁó€?œ­A€ ®A. DRx˜C®AqÝ D šC®AáŠD\�›C®A3SDqÝœC®A¤`D�¢œC®AµD\ÏšC®A×D¸^™C®Aš9 D@˜CÁb%µÖæÿ­AÁó€?œ¹A€ ºA\¯Dqý¡CºAqDצCºAì±D{Ô©CºAÎDö¨©CºAeDÕ¥CºARÈDÃÕ¡CÂb%µÖæÿ¹AÁó€?œÃA€ ÄA¸ÞùCšy¥CÄA…«ùC ªCÄA)ÜùC€®CÄA×#úC€®CÄA…kúC ªCÄA¸úCRx¥CÃb%µÖæÿÃAÁó€?œÍA€ ÎA{tèCöè¡CÎA�BåCì‘¥CÎA®gâC…«©CÎAR˜âC¤Ð©CÎA×ÃåC ÷¥CÎAö¨èC3¢CÄb%µÖæÿÍAÁó€?œ×A€ ØAR˜ÛC¤0˜CØA ÷×CN™CØA¤°ÔCáÚšCØA@ÑC×£œCØARXÑC)ÜœCØA¸þÔC\�›CØAšYØCÃ5šCØA3³ÛC¤p˜CÅb%µÖæÿ×AÁó€?œãA€ äAö×C®ÇŠCäAåÒC�‚ŠCäA®çÎCH�ŠCäAËCáÚŠCäAËC%‹CäA=êÎC×c‹CäAfæÒC…K‹CäAö×C… ‹CÆb%µÖæÿãAÁó€?œïA€ ðA=ªÛC3s{CðAeØC3³wCðAáúÔC…ëtCðAáZÑC@rCðAq=ÑCÀrCðA…«ÔC)\vCðA{ØCH!yCðAŽÛC×ã{CÇb%µÖæÿïAÁó€?œûA€ üA׃èC{hCüAq½åCõ_CüA)œâCšYXCüA×câC®XCüA¸åC×£`CüA¤PèC¸^hCÈb%µÖæÿûAÁó€?œ…B€ †BìúCÃ5aC†B\OúCR8XC†B×#úCOC†B)ÜùCOC†B®§ùCÃ5XC†B®ÇùC33aCÉb%µÖæÿ…BÁó€?œ�B€ �B®ÇDìhC�B3sD3ó`C�BÍÌDö¨XC�B3³D¸^XC�B×#Dáú_C�B)¬DõgCÊb%µÖæÿ�BÁó€?œ™B€ šBì! D®‡{CšBHD�ByCšB¤ÀDÍLvCšB¤`Dq½rCšB3SD�BrCšB®—DìÑtCšBfÖ Dš™wCšBf D {CËb%µÖæÿ™BÁó€?  ÀëÃ`u°Ã†¥B D)Ü¿B‰¦B’ðA—Ìb%5<�ÿ‡¦B�§BŒ"ᛚᛖᚳá›�ᛟᚱ ᛗᚨᚾᛖá›�¦BÁ¦BÁó€?†¥B @+D)œCî?‰¬B’ˆA—Íb%Ncuÿ‡¬B�­BŒnomina lectorum¬BÁ¬BÁó@¥B²B³BD0C³B€TD0C²B¶BDOC¶B€TDOC²B¹BDnC¹B€TDnC²B¼BD€†C¼B€TD€†C²B¿BD–C¿B€TD–C²BÂBD€¥CÂB€TD€¥C²BÅBDµCÅB€TDµC²BÈBD€ÄCÈB€TD€ÄC²BËBDÔCËB€TDÔC²BÎB D0CÎB DÔCÎb%Ncuÿ²BÁ²BÁó@@†¥B € D€7Cî€?‰ÔB’pA—Ïb%5<�ÿ‡ÔB�ÕBŒI.ÔBÁÔBÁó€@†¥B €D3³/C‰ÚB’ A—Ðb%#+:ÿ‡ÚB�ÛBŒ-ᚨᚷᚾᛖᛊ ᛟᚠ á›�ᚺᛖ á›—á›�ᛚᛚÚBÁÚBÁó @¥BàB€ áBöˆD�Â@CáB) D…ë@CáBq­D¤ð@CáB�rD…ë@CáB3#D ACáBöDÃ5ACáBqíDfæ@CáBfæD)Ü@CáB ÷D3ó@CáBföD…@CáB)Dì‘@CáBH1D W@CáB×cD\O@CáBázDš@CáB §Dáú?CáBHÑD)Ü?CáBDì‘?CáBö(D W?CáBfV D=J?CáB)l!D®‡?CáB®‡"DšY?CáBáª#D…+?CáB�²$Dš?CáBÃ¥%D W?CáBRÈ&D…+?CáBfÖ'D{T?CáBì)Dá:?CáBÃ*D)œ?CáB)L+DìQ?CáBáz,DÍŒ?CáBf¦-D=Š?CáB\Ï.D…«?CáB®÷/D\@CáB…1DH!@CáBÃE2DÍ @CáBšY3D{T@CáB3c4Dš™@CáBši5D�‚@CáBáZ6D®@CáB=J7Dq}@CáB8D¤ð@CáB3ó8D ×@CáBͬ9DÅ@CáBHA:Dáz@CáB¸Î:Dn@CáB\Ï:Dš@CáB@:Dfæ?CáBͬ9Dqý?CáBõ8Dö¨?CáBá8D®‡?CáBN7D×#?CáBáZ6Dq=?CáBáj5Dš?CáB{d4Dš?CáB¸^3D ?CáBöH2D{”>CáBá1D¤°>CáBáú/Dq½>CáB�Ò.D€>CáB §-DRx>CáBÍ|,Dn>CáB…K+DÃ5>CáBf*D€>CáB{)DH!>CáBÃÕ'D@>CáBRÈ&D®G>CáB §%D\O>CáB׳$D)>CáBö¨#D…+>CáBÃ…"DHa>CáB)l!DÃu>CáB®W D×c>CáB®'D{T>CáBá D€>CáB¸ÎDÀ>CáBÃ¥DR¸>CáB®wD{Ô>CáBìaDf&?CáB0D�?CáBáDH!?CáB�òD)?CáB�òD=Š?CáBÃåD{”?CáB=êD¸ž?CáBÃDq½?CáB×#D¸Þ?CáB�rD)Ü?CáB=ªDRø?CáBá D{T@CáBš‰D¤p@CÑb%5<�ÿàBÁàBÁóÀ@†¥B € D€VCî€?‰¿C’pA—Òb%5<�ÿ‡¿C�ÀCŒII.¿CÁ¿CÁóà@†¥B €D3³NC‰ÅC’ A—Ób%#+:ÿ‡ÅC�ÆCŒ)á›�ᛟᛗᚨᛊ á›�ᚺᛖ ᚳᛚᛖᚱᚲÅCÁÅCÁóA¥BËC€ ÌC=zD�`CÌC3DRø_CÌCö¸D=J`CÌC=ŠD.`CÌC gDö(`CÌC3CDáú_CÌCfFDî_CÌCÃeDì‘_CÌC�‚D®‡_CÌC\ŸDáz_CÌCšÉDìQ_CÌC=úDìQ_CÌCá:D\_CÌCìaD¤°^CÌCÕD{”^CÌC{ÄD)œ^CÌC¸þD…^CÌCR( Dì‘^CÌC)�CŠE)\D…+�CŠE 'Dá:�CŠE=ÚDE�CŠE3³D{t�CŠE…›D®‡�CŠEìqDšy�CŠE)\D¸~�CŠEá:D…‹�CŠEfFD®Ç�CŠEUD ·�CŠEöxDáÚ�CŠEõD3ó�CŠEq DqŽCŠEì�DšŽCÚb%5<�ÿ‰EÁ‰EÁópA†¥B € DÀ™Cî€?‰ÜE’pA—Ûb%5<�ÿ‡ÜE�ÝEŒV.ÜEÁÜEÁó€A†¥B €DšÙ•C‰âE’ A—Üb%#+:ÿ‡âE�ãEŒ(ᛒᚱᛟá›�ᚺᛖᚱ ᚨᚾᛊᛖᛚᛗâEÁâEÁóˆA¥BèE€ éE®‡DR8žCéE… DÃUžCéEìÁD�bžCéEáŠD{tžCéE�bD`žCéE…KDöHžCéEHADšYžCéE{dDq=žCéE\oDìžCéE{”DRžCéEq½D�žCéERèD¤Ð�CéE®'D¤°�CéEPD�¢�CéE=ŠDÕ�CéEÀD�‚�CéE{äDöˆ�CéE) D¤��CéEf&!DáZ�CéEfF"Dn�CéEÍL#D…k�CéE w$DÃu�CéE…›%Df†�CéEÐ&D׃�CéE¤ð'D\��CéE5)D×£�CéE…[*D®�CéE�+D¸Þ�CéE{Ä,DšÙ�CéEH.D¸Þ�CéE�/Dfæ�CéEÍ,0D{žCéEÃE1Dö(žCéER82D\/žCéE\/3D%žCéE×ó3D\/žCéEšÉ4D3žCéEq}5DÞCéE{6DìžCéEÃ6D=ê�CéE¤€5Dq½�CéE=Ê4Dáš�CéE×ó3DÍŒ�CéE\/3D�‚�CéEö82D…‹�CéEöH1Dn�CéEì10Dq]�CéE /D 7�CéEH.D×#�CéE×Ã,D)<�CéEì‘+D)<�CéE^*D×#�CéEf6)Dš�CéEìñ'D\�CéEÐ&DH�CéE)œ%Dš�CéERx$D= �CéEqM#DH�CéE®G"D®çœCéE{$!D¤ðœCéEš Df�CéEåDÍ �CéEÀDqýœCéERˆDö�CéEND×#�CéEÃ%D=*�CéE{äD{4�CéEš¹D¤P�CéE�’D¸^�CéEÍlD…k�CéE\_DH��CéE@Dáš�CéEöHD3“�CéEq]D¸¾�CéERˆDÃÕ�CéEìÁD®ç�CéE) Dáú�CéE®‡DÍ žCÝb%5<�ÿèEÁèEÁó�A†¥B € D@©Cî€?‰»F’pA—Þb%5<�ÿ‡»F�¼FŒVI.»FÁ»FÁó˜A†¥B €DšY¥C‰ÁF’ A—ßb%#+:ÿ‡ÁF�ÂFŒ&ᛗᚨᚱá›�ᚨ ᚹᚺᛟ ᛊᚨᚾᚷÁFÁÁFÁó A¥BÇF€ ÈFH�D=Š­CÈF¤ D¥­CÈFfÆDfÆ­CÈF�’D=ª­CÈFöxD=ª­CÈFšiDšy­CÈF gD…­CÈF¤�D¸~­CÈF)¼Döh­CÈF)ÜDá:­CÈF D…+­CÈFÍLD®'­CÈF3ƒD­CÈF\¯D)ܬCÈFåDHá¬CÈFHDìѬCÈFf6D ·¬CÈFf6 D)¼¬CÈF…[!D�¢¬CÈFHq"DÍ̬CÈF•#D=ê¬CÈF…Û$DöȬCÈF&D=ê¬CÈF®G'D­CÈF w(D¤­CÈF¤ )Dö(­CÈF)Ì*D=*­CÈF{ô+DRX­CÈFÃ-DRX­CÈFq .D{t­CÈFá/D®‡­CÈFöø/D w­CÈF ·0Dáz­CÈF`1DRX­CÈFì2DáZ­CÈF32D33­CÈF¤`1Dö­CÈF®·0D ÷¬CÈF=ú/D)ܬCÈF…/DÍ̬CÈF.D ׬CÈFR-DR¸¬CÈFöø+D¥¬CÈFÐ*Dšy¬CÈFì¡)DRx¬CÈFšy(D{t¬CÈFšI'D)\¬CÈFì&D�b¬CÈF…Û$DHA¬CÈF{”#D`¬CÈF{t"D{T¬CÈFÍ\!DÃ5¬CÈFÃ5 DR8¬CÈF5Dq=¬CÈF¸DÃU¬CÈFåD3s¬CÈF¸®DHa¬CÈF\Dq}¬CÈF)LD)œ¬CÈFfDq}¬CÈF®×DR˜¬CÈF®·DẬCÈFŽDάCÈF gDà¬CÈF gD ׬CÈFuDqý¬CÈFŽDqý¬CÈF�ÂDR8­CÈFH!D¤P­CÈFì�D`­Càb%5<�ÿÇFÁÇFÁó¨A†¥B € DÀ¸Cî€?‰’G’pA—áb%5<�ÿ‡’G�“GŒVII.’GÁ’GÁó°A†¥B €DšÙ´C‰˜G’ A—âb%#+:ÿ‡˜G�™GŒ)á›�ᚺᛖ á›’á›�ᛊᚺᛟᛈᛊ ᛊᛟᚾ˜GÁ˜GÁó¸A¥BžG€ ŸG…{Dá½CŸGRDÍ ½CŸG{ÄDš½CŸGq}D%½CŸGqMD= ½CŸG),D ½CŸGq-D ½CŸGR(D�½CŸG5D�â¼CŸGÃeDfƼCŸGÃuDì±¼CŸG3£D®§¼CŸG�âDáš¼CŸGšùD€¼CŸG 7Dšy¼CŸGUD=J¼CŸG{tDöH¼CŸGášDö(¼CŸGq½ Dö(¼CŸGHÁ!Dö¼CŸGq½"D®'¼CŸG=ê#D®'¼CŸGRø$DH!¼CŸGš)&D×#¼CŸG W'Dì1¼CŸG)l(DÃU¼CŸG¤ )DH�¼CŸGÐ*DH�¼CŸGqý+DH¡¼CŸGá*-D3“¼CŸG3C.DẼCŸGU/DżCŸG W0D ·¼CŸGN1D×üCŸGÍ<2D½CŸGì3D3ó¼CŸG®Ç3Dšù¼CŸGši4D�¼CŸG)ü4DfƼCŸGþ4D)œ¼CŸGöh4Dff¼CŸGfÆ3D3s¼CŸG33D3S¼CŸG3C2DN¼CŸGU1Dö¼CŸG W0D… ¼CŸG{T/Df¼CŸGÃE.D{¼CŸGÍ,-Dìñ»CŸG¸þ+D¼CŸGHÑ*DáÚ»CŸG�¢)Dî»CŸGp(D…Ë»CŸGöX'Dì±»CŸG=*&D¤°»CŸG®÷$D¥»CŸGöè#D¤°»CŸG¸¾"DHÁ»CŸGHÁ!D×£»CŸG)¼ Dͬ»CŸGö˜D…«»CŸG�rDáÚ»CŸG3SDìÑ»CŸG{4Dà»CŸG®÷Dà»CŸG\ßDRø»CŸGì¡D… ¼CŸG×sD¼CŸG�bDq¼CŸG¤0D%¼CŸG3#DÍL¼CŸG…+De¼CŸGq-DÍl¼CŸG)LDÃU¼CŸG®wDn¼CŸG�ÂD×£¼CŸGÃDq½¼CŸGöxD\ï¼Cãb%5<�ÿžGÁžGÁóÀA†¥B € D@ÈCî€?‰ñG’pA—äb%5<�ÿ‡ñG�òGŒVIII.ñGÁñGÁóÈA†¥B €DšYÄC‰÷G’ A—åb%5<�ÿ‡÷G�øGŒ á›�ᚢ ᛩᚢá›� ᛚᛖᚷá›�ᛊ÷GÁ÷GÁóÐA¥BýGþGÍŒ,D= ÐCþG€RD= ÐCæb%5<�ÿýGÁýGÁóØA¥B„H ÌCœCØBØB„H ÌCœCìBìBçb%Ncuÿ„HÁ„HÁóàA¥BŠH€‹HͬÔC=ª�C‹H`ÓCŽ“CŠHŽH\OÒC…ë•CŽHHÑC\ϘCŠH€‘H¤ðÏCÍ,›C‘H×£ÎC¤žCŠH€”H3“ÍCn C”HfFÌCìQ£CŠH€—HÃ5ËC\¯¥C—HöèÉC3“¨CŠHšHRØÈC¤ðªCšH=ŠÇC{Ô­CŠH€�HšyÆC¤0°C�HÍ,ÅC{³CŠH€ HáºÓC�C HfÒC\¯’CŠH€£H�¢ÐCÃÕ”C£HîÎCRx—CŠH¦H=ŠÍC¸ž™C¦H ×ËC@œCŠH©HìqÊC®gžC©H¸¾ÈCö¡CŠH¬HšYÇC\/£C¬Hf¦ÅC¤Ð¥CŠH¯HHAÄCRø§C¯HŽÂCš™ªCŠH€²Hö(ÁCÀ¬C²HÃu¿C�b¯CŠH€µHöÈÒCìq�CµH®ÐC¤Ð‘CŠH¸HÃõÎCHÁ“C¸H)ÜÌC –CŠH»H×#ËC¤˜C»HöÉC¤pšCŠH€¾H¤PÇCHaœC¾HÃ5ÅCÀžCŠHÁHq}ÃC¤° CÁH×cÁC\£CŠH€ÄH…«¿C¥CÄH¤�½C¸^§CŠHÇHRØ»C\O©CÇHq½¹C\¯«Cèb%NcuÿŠHÁŠHÁóèA¥BÍH€ÎHffÌC\/©CÎHÈCfæ¯CÍHÑHH¡ËCq�§CÑH\OÆC ׯCÍH€ÔH)ÜÊC… ¦CÔH\�ÄC®Ç¯CÍH×H ÊCRx¤C×H\ÏÂCR¸¯CÍH€ÚHìQÉCfæ¢CÚH¤ÁC=ª¯CÍHÝHÍŒÈC{T¡CÝH¤P¿CᚯCÍH€àHÍÌÆCE¡CàH…‹¾Cö®CÍHãHÅC 7¡CãHfƽC w¬CÍH€æHNÃC®'¡CæHH½C×ãªCÍH€éHŽÁCR¡CéH)<¼CìQ©CÍH€ìH\Ï¿Cö¡CìH w»CÀ§Céb%!#)ÿÍHÁÍHÁóðA¥BòH€ óHöˆÕC�†CóHš9ÖCÕ†CóH\ïÖC׃†CóH¥×C¤�†CóHÃUØCš¹†CóH¸þØCqý†CóHášÙCáZ‡CóHf&ÚC¤Ð‡CóHq�ÚCáZˆCóHqýÚCÃõˆCóH×CÛCq�‰CóH\oÛCNŠCóHq}ÛC׋CóH\oÛCš¹‹CóH×CÛC…kŒCóHqýÚC3�CóHq�ÚC®�CóHf&ÚCR8ŽCóHášÙCͬŽCóH¸þØC… �CóHÃUØC\O�CóH¥×CRx�CóH\ïÖC׃�CóHš9ÖC3s�CóHöˆÕCfF�CóH×ÃÙC3“ŽCóH{ÚC\oŽCóHHaÚCHAŽCóHö¨ÚC= ŽCóHÍìÚC…Ë�CóH=*ÛC׃�CóH`ÛCÃ5�CóH\�ÛC�âŒCóHõÛCöˆŒCóH{ÔÛC…+ŒCóH…ëÛC…Ë‹CóHRøÛC®g‹CóHqýÛC׋CóHRøÛC ŠCóH…ëÛCq=ŠCóH{ÔÛCq݉CóHõÛC€‰CóH\�ÛCf&‰CóH`ÛC3ÓˆCóH=*ÛC…ˆCóHÍìÚCq=ˆCóHö¨ÚC¸þ‡CóHHaÚC®Ç‡CóH{ÚCš™‡CóH×ÃÙCÃu‡Cêb%!#)ÿòHÁòHÁóøA†¥B ÅC›Cî?ï?‰©I’�A—ëb%5<�ÿ‡©I�ªIŒá›°©IÁ©IÁóB¥B¯I°I€ÀC€–C°I€ÉC€ŸC¯I³I€ÉC€–C³I€ÀC€ŸCìb%!#)ÿ¯IÁ¯IÁóB†¥B ÐC�Cî?ï?‰¹I’¨A—íb%!#)ÿ‡¹I�ºIŒá›�¹IÁ¹IÁóB†¥B WÁC�B~C‰¿I’ö(lA—îb%Ncuÿ‡¿I�ÀIŒ ᛚᚢᚾᚨ¿IÁ¿IÁó B†¥B á:ÃC®çºC‰ÅI’¤pEA—ïb%Ncuÿ‡ÅI�ÆIŒᚢᛗᛒᚱᚨÅIÁÅIÁóB†¥B ¸^¸C)œhC‰ËI’ázHA—ðb%5<�ÿ‡ËI�ÌIŒ"ᛚᚢᛪ ᛖᛪá›�á›�ᚾᚳá›�ᚨËIÁËIÁóB†¥BùÉ? pD>C‰ÑI’`A—ñb%Ncuÿ‡ÑI�ÒIŒZᚾᛟᛗᛖᚾ á›�ᚢᚢᛗ ᚺá›�ᚳ᛬ ᚣᛟᚢᚱ ᚾᚨᛗᛖ á›�ᛊ ᚺᛖᚱᛖ᛬ÑIÁÑIÁóB†¥B_)K» €�CöèC‰×I’¸™A—òb%#+:ÿ‡×I�ØIŒ&ᚾᛟᛗᛖᚾ á›�ᚢᚢᛗ ᚺá›�áš³×IÁ×IÁóB†¥B™»; €�C)!C‰ÝI’×£˜A†…ëÑ>—ób%%3ÿ‡ÝI�ÞIŒ?ᛊᚳᚱá›�ᛈá›�ᚢᛗ ᛖᛊá›�᛬ ᚣᛟᚢᚱ ᚾᚨᛗᛖÝIÁÝIÁó B†¥Búík» ŒC×£9C‰ãI’ ×—A†ÍÌ @—ôb%#+:ÿ‡ãI�äIŒ6á›�ᛊ ᚹᚱá›�á›�á›�á›–áš¾ ᚺᛖᚱᛖ᛬ á›�ᚺᛖãIÁãIÁó$B†¥B|ò0; :CR8�C‰éI’¤p—A—õb%)3Dÿ‡éI�êIŒ&ᛒᛟᛟᚲ ᚲᛖᛖᛈᛊ á›�á›�ᛊéIÁéIÁó(B†¥Boƒ: -C33›C‰ïI’®G—A†R¸¾?—öb%%3ÿ‡ïI�ðIŒ+ᚱᛖᚨᛞᛖᚱᛊ᛬ ᛚᛖᚳá›�ᛟᚱïIÁïIÁó,B†¥B™»; Cà§C‰õI’¸—A†ö(Ü>—÷b%)3Dÿ‡õI�öIŒ/ᛗᚨᚾᛖá›�᛬ ᚾᛟᛗᛖᚾ á›�ᚢᚢᛗõIÁõIÁó0B†¥BÃd*; C3s´C‰ûI’q=šA—øb%)3Dÿ‡ûI�üIŒ/ᚺá›�áš³ ᛊᚳᚱá›�ᛈá›�ᚢᛗ ᛖᛊá›�᛬ûIÁûIÁó4B†¥Búík» ¢B¸žÀC‰�J’šA†®?—ùb%)3Dÿ‡�J�‚JŒFᚣᛟᚢᚱ ᚾᚨᛗᛖ á›�ᛊ ᚹᚱá›�á›�á›�á›–áš¾ ᚺᛖᚱᛖ᛬�JÁ�JÁó8B†¥Bà-» xB wÍC‰‡J’–A†ÍÌÌ=—úb%)3Dÿ‡‡J�ˆJŒá›�ᚺᛖ ᛒᛟᛟᚲ ᚲᛖᛖᛈᛊ á›�á›�ᛊ ᚱᛖᚨᛞᛖᚱᛊ᛬ ᛚᛖᚳá›�ᛟᚱ ᛗᚨᚾᛖá›�᛬ ᚾᛟᛗᛖᚾ‡JÁ‡JÁó—ûb%%3ÿ‡�J�ŽJŒÍá›�ᚢᚢᛗ ᚺá›�áš³ ᛊᚳᚱá›�ᛈá›�ᚢᛗ ᛖᛊá›�᛬ ᚣᛟᚢᚱ ᚾᚨᛗᛖ á›�ᛊ ᚹᚱá›�á›�á›�á›–áš¾ ᚺᛖᚱᛖ᛬ á›�ᚺᛖ ᛒᛟᛟᚲ ᚲᛖᛖᛈᛊ á›�á›�ᛊ ᚱᛖᚨᛞᛖᚱᛊ᛬�JÁ�JÁó@B†¥BRI�º xB×#æC‰“J’–A†\�Â>—üb%%3ÿ‡“J�”JŒÃᛚᛖᚳá›�ᛟᚱ ᛗᚨᚾᛖá›�᛬ ᚾᛟᛗᛖᚾ á›�ᚢᚢᛗ ᚺá›�áš³ ᛊᚳᚱá›�ᛈá›�ᚢᛗ ᛖᛊá›�᛬ ᚣᛟᚢᚱ ᚾᚨᛗᛖ á›�ᛊ ᚹᚱá›�á›�á›�á›–áš¾ ᚺᛖᚱᛖ᛬ á›�ᚺᛖ“JÁ“JÁóDB†¥B4€7º xBÍ óC‰™J’¸™A—ýb%%3ÿ‡™J�šJŒ?ᛒᛟᛟᚲ ᚲᛖᛖᛈᛊ á›�á›�ᛊ ᚱᛖᚨᛞᛖᚱᛊ᛬™JÁ™JÁóHB†¥B4€7º xB¤�ÿC‰ŸJ’…—A†{.?—þb%)3Dÿ‡ŸJ� JŒBᛚᛖᚳá›�ᛟᚱ ᛗᚨᚾᛖá›�᛬ ᚾᛟᛗᛖᚾ á›�ᚢᚢᛗŸJÁŸJÁóLB†¥B úC8B™î?‰¥J’ A—ÿb%5<�ÿ‡¥J�¦JŒ/C U L T O F T H E U N S E E I N G S U N¥JÁ¥JÁóPB†¥B úC/D™î?‰«J’�A—€c%5<�ÿ‡«J�¬JŒVI / V . 12«JÁ«JÁóTB¥B±J€²JͬXDÍÌÚB²JÍLXD= ÛBÀ@²JÍLZDÍÌÚB±J€¶JÃ5XDÃuçB¶J¤àWD= æBÀ@¶JדYDázîB±J€ºJ ÷VD{ðBºJRÈVDÃuíBÀ@ºJ×£WD…ëûB±J€¾JUUDÃõñB¾J…[UDÃõîBÀ@¾J=UDìÑþB±J€ÂJÃÕSDázìBÂJ¸TD\êBÀ@ÂJÅRDÍLöB±J€ÆJHñRDffáBÆJ…KSDìQàBÀ@ÆJ�bQD\åB±J€ÊJHñRD33ÔBÊJPSDìÑÔBÀ@ÊJ�bQD=ŠÐB±J€ÎJÃÕSD¸ÉBÎJ=TDR8ËBÀ@ÎJÅRDÍL¿B±J€ÒJUUD×£ÃBÒJájUD{”ÆBÀ@ÒJ=UD®Ç¶B±J€ÖJ ÷VD…ÅBÖJfÖVD WÈBÀ@ÖJ×£WD®¹B±J€ÚJÃ5XD×#ÎBÚJšéWDáúÏBÀ@ÚJדYD¸ÇB�c%5<�ÿ±JÁ±JÁóXB¥BáJ€ âJ{¤VD¤pÒBâJá*XD)ÜäBâJ0XDq½äBâJ=ªVDìQÒB‚c%!#)ÿáJÁáJÁó\B¥BêJ€ ëJšVDö¨ÒBëJ¸žWD)ÜäBëJ¥WDq½äBëJ¤ VD…ÒBƒc%!#)ÿêJÁêJÁó`B¥BóJ€ ôJ\ŸUD{”ÒBôJ3WD)ÜäBôJöWDq½äBôJÃ¥UDÃuÒB„c%!#)ÿóJÁóJÁódB¥BüJ€ ýJáúTDÃuÒBýJ®‡VD)ÜäBýJq�VDq½äBýJHUDìQÒB…c%!#)ÿüJÁüJÁóhB¥B…K€ †KÃuTD\�ÒB†K…ûUD)ÜäB†KìVDq½äB†K…{TD¤pÒB†c%!#)ÿ…KÁ…KÁólB¥BŽK€ �KšùSD¤pÒB�K¤pUD)ÜäB�KÃuUDq½äB�KTDìQÒB‡c%!#)ÿŽKÁŽKÁópB¥B—K€ ˜K gSD…ëÒB˜KåTD)ÜäB˜K=êTDq½äB˜KÍlSDÍÌÒBˆc%!#)ÿ—KÁ—KÁótB¥B K€ ¡KáÚSD®ÚB¡KNTDö¨ÛB¡KRUD®ÛB¡Kq½UD{ÜB¡KfvVDö(ÜB¡K¤@WD¸žÛB¡K׳WDÛB¡K�²WDš™ÚB¡Kq=WDHaÚB¡K{tVD{ÛB¡K¾UD®GÛB¡K= UD×£ÚB¡KHQTD®GÚB¡K)ÜSDìQÚB‰c%5<�ÿ KÁ KÁóxB¥B³K€ ´K®·SD3³ÚB´K=úSD¸žÜB´K®‡TDÍLßB´K¸þTDR8àB´K ‡UDÍLáB´K ÷UD\�àB´KáŠVD¤pàB´KqýVD)ÜÞB´K¸nWDšÝB´K=ÊWDfæÚB´KÃÅWD3³ÚB´K\_WD�BÜB´KHñVD\ÞB´KÃ…VDR¸ßB´K{ôUDìÑßB´K®‡UD¸žàB´KUD€ßB´K{”TDffÞB´Kš TD ×ÛB´K…»SD…ÚBŠc%!#)ÿ³KÁ³KÁó|B¥BÌK€ ÍK3³SDìQÛBÍK�TDšÙBÍKuTD)ÜÖBÍK3ÓTD¤pÔBÍKEUDR8ÓBÍK®çUD®ÒBÍK)\VDÍLÓBÍK�ÒVD{”ÕBÍK\_WD.ÙBÍK×ÃWD¤ðÚBÍK)ÌWDö¨ÚBÍK{„WDq½×BÍK¸îVD®GÔBÍK…kVDÃõÑBÍK®çUD¸žÑBÍK>UDÒBÍK)¼TD= ÓBÍK×STD€ÕBÍKHñSD…ë×BÍKáªSD\ÛB‹c%!#)ÿÌKÁÌKÁó€B¥BåK€ æK�ÂUD{TCæK¤0VD¤ðCæK{ÄVD)œCæK�ÒVD×ãCæKq=VDHáüBæKájUDìÑøBæKš UD{õBæKÃeUDö(ñBæKRVDáúëBæK)lVDèBæK¤`VD{”çBæKÐUD¸êBæK%UD…ïBæKÃÅTDR8õBæK GUD×#úBæK VDHaþBæKR˜VDECæKázVDÃõCæKöøUDf&CæK�²UD¸CŒc%NcuÿåKÁåKÁó‚B¥BþK€ ÿKöØUDìQ CÿKqÍUD= CÿK�²UD\CÿK)¼UD W C�c%!#)ÿþKÁþKÁó„B¥B‡L€ ˆLšIUD —CˆLRHUDšYCˆL®7UDö¨ CˆL)LVD¸ž CˆLq-VD¸^CˆL®GVD{CˆLöUD{ÔCˆL=UD¸^CˆLÍœVDCˆL�’VD)\CˆLÍŒVD×ã CˆL×óTD × CˆL{ÔTDšYCˆL®çTD¸žCŽc%!#)ÿ‡LÁ‡LÁó†B¥BšL€ ›L®·UD=JC›L׳UDš C›L)ÌUDš C›LÐUD=JC�c%!#)ÿšLÁšLÁóˆB¥B£L€ ¤L…ëODR¸!C¤LfÆPD C¤LfÖQDõC¤LáÚRDá:C¤L¸¾SD{C¤L¾TD)C¤L…ËUD\Ï C¤LìÑVD×cC¤LÅWD WC¤L §XD C¤Lq­YDì‘C¤L)¼ZDá: C¤L•[D=Š!C¤Lž[D�B!C¤LÃåZD.C¤LRØYDá:C¤LR¨XDö¨C¤L3£WDá:C¤L®·VD�‚C¤LÎUD{ÔC¤LöØTDá:C¤LÍÜSDfæC¤LÕRD¸ÞC¤LH±QD¤pC¤LÍœPDfæC¤L¸ÞOD…k!C�c%!#)ÿ£LÁ£LÁóŠB¥BÂL€ ÃLHñOD\�CÃLöÈPDH!CÃLìáQD)œCÃL¸ÞRDöèCÃLö¸SDÍ CÃLR¸TD3sCÃLÀUDš™CÃL�ÒVD\OCÃL3ÃWDf&CÃL®§XDqýCÃL3“YDöhCÃLf¶ZD¸^CÃL¤�[DR¸CÃL�¢[D®GCÃL…ûZDÅCÃLfÖYD)\CÃL®§XD CÃL3“WD —CÃL¸®VD¸CÃLÀUDHaCÃLÃåTDîCÃLfæSD¸žCÃL®×RDÅCÃLö¨QD¸ÞCÃL ‡PDázCÃL¸ÞOD×#C‘c%!#)ÿÂLÁÂLÁóŒB†¥B €RD€øC™î?‰áL’ˆA—’c%5<�ÿ‡áL�âLŒLECTORáLÁáLÁóŽB†¥B €RDD™î?‰çL’ˆA—“c%5<�ÿ‡çL�èLŒMANETçLÁçLÁó�B¥BíL€ îLeED)àCîL ·EDáúãCîL{DFD�"èCîLH¡FD{ìCîL33GDðCîLÍLGDáúïCîL¤GDfæëCîLq�FDèCîL FDÍÌãCîLH�ED\àC”c%5<�ÿíLÁíLÁó’B¥BüL€ ýL ÷ID¤àCýL5JD�"äCýLH±JDáúçCýL%KD®ìCýL3³KDðCýLÍÌKDáúïCýL¤€KD¸ÞëCýL ÷JDáÚçCýL —JDšùãCýLìJDfàC•c%5<�ÿüLÁüLÁó”B¥B‹M€ ŒM¸~NDáàCŒM�²NDÍ,äCŒMq-OD%èCŒMR˜OD= ìCŒMH1PDfðCŒM¸NPDšùïCŒM®PD ×ëCŒMq}OD¸þçCŒM×ODfäCŒMš™NDìàC–c%5<�ÿ‹MÁ‹MÁó–B¥BšM€ ›M ÷RDšàC›Mì1SDäC›MµSDH!èC›MqTD ìC›M׳TDðC›M)ÌTDáúïC›Mf†TD\ïëC›M…ûSDHèC›MÍœSDšÙãC›M3SD\àC—c%5<�ÿšMÁšMÁó˜B¥B©M€ ªM®gWDàCªMáÊWD)äCªMfFXD… èCªMáªXD…+ìCªMì1YDðCªMNYDáúïCªM\YDìCªMf†XD\ïçCªMR(XD¤ðãCªM3ƒWDìñßC˜c%5<�ÿ©MÁ©MÁóšB¥B¸M€ ¹M\ÿ[D)üßC¹M.\D®äC¹M Ç\DöèC¹M×]Dì1ìC¹M�²]DfðC¹MqÍ]DšùïC¹Máz]DfìC¹M) ]D=êçC¹MÕ\DáÚãC¹MR\D3óßC™c%5<�ÿ¸MÁ¸MÁóœB¥BÇM€ ÈMÅYD×ëCÈMš¹[D…ëèCÈM¸ž]D{´æCÈMÃ…_D3äCÈM=z_DÍìãCÈMu]D=*æCÈM\�[Dq]èCÈM=ºYDàêCšc%!#)ÿÇMÁÇMÁóžB¥BÔM€ ÕMì¥C®DÕM×ã¨C®—DÕMÃõ¬C DÕM= ­CöøDÕM×ã¨CnDÕM¸þ¤CáúD›c%5<�ÿÔMÁÔMÁó B¥BßM€ àMöˆÅCDàMeÉC¸ŽDàMÃuÍC DàM=ŠÍCöøDàM×cÉC^DàMìqÅC Dœc%5<�ÿßMÁßMÁó¢B¥BêM€ ëM¤æCRDëM®çéCžDëMÃõíC DëM= îCöøDëM®çéC¸nDëMáúåC=úD�c%5<�ÿêMÁêMÁó¤B¥BõM€ öM 7DDöMšID…›DöMá:D DöMEDöøDöM=JDšiDöM.D�òDžc%5<�ÿõMÁõMÁó¦B¥B€N€ �N)|D\D�N…‹DRˆD�NázDfD�N…DšùD�NáŠD¤`D�NHqD¤DŸc%5<�ÿ€NÁ€NÁó¨B¥B‹N€ ŒN3Ó#DDŒN®·%D•DŒN=º'D®DŒNÃÅ'DRøDŒN®·%DöhDŒN®Ç#D ÷D c%5<�ÿ‹NÁ‹NÁóªB–N—NfÆnD{D—NffoDD–NšN×£FD×#2DšNHIDö¨1D–N€�N)œœC\�(B�N×#¢C®'B–N€ N…kC{T5D N¸žCÎ5D–N€£N®GGB�Â�C£N33hB{ÔŒC–N¦NìñËC)\;B¦N= ÐCÃõ:B–N€©NqýoD@öC©N\rD\ÏöC–N¬N…+¡C{ÌA¬N ¤C¤p¿A–N¯N®EB{7B¯NázoB®G/B–N€²Nî¢C�ò.D²N)œ¤CÃå.D–N€µNeèCš™ZBµNffìCö(SB–N¸N®‡@C¤pMB¸N�BMC¤pHB–N»NÕîCö(èA»N\ÏôCðA–N€¾N\� Bq}ÙC¾N®$B�âØC–NÁN×C°C¸>BÁNÃU¶C\�@B–NÄNHaàC׳4DÄNåâCH15D–NÇN¤pBR8‹BÇNš™:D¤pÉAçNÃõ;DÊAçN¾=D®ËAçN¤€?DffÊAçNÃ5ADö(ÈAçN=úBD®GÇAçNö¸DDffÈAçN3sFD= ÉAçN=JHDázÈAçNšùID¸ÇAçN=ºKD¸ÇAçNuMDö(ÆAçN…KOD= ÇAçN ÷PDR¸ÆAçNÅRD ×ÅAçN)|TDq=ÆAçN\?VDÍÌÆAçN\ÿWD…ëÅAçN׳YD®ÅAçNu[D×£ÄAçN¤@]DázÄAçNÃ_D�ÂÃAçNÅ`DÄAçNázbD…ÃAçN�2dD)\ÁAçN�òeDq=ÂAçNõgDázÂAçNq�iD�ÂÁAçNqMkDáz¾AçN{ôlD)\ÁAçNR¸nDHá¾AçNì�pD×£ÀAçN�BrD…¿AçNÎsDìQ¾AçNRØsDö(ðAçN…ËsD)\BçNHÑsDÍÌ0BçNÍÜsD®GMBçNRÈsDHáhBçN¸ÎsD€‚BçNÐsD ×�BçNÀsDffžBçNöØsDff¬BçN3ÃsD)ܺBçN3ÃsD…ÈBçN)ÜsD)ÜÖBçN{ÔsDö¨äBçNöÈsD.óBçNìÁsDšYCçNÎsD3³CçNÕsD{”CçNšÉsD¸^CçN…ËsDÍŒCçN×ÃsDR¸#CçN\ÏsDÅ*CçNHÑsDRx1CçN\ÏsDö¨8CçN=ÚsDÀ?CçNáÚsDîFCçNìÁsDáºMCçNfÖsDöèTCçN�ÒsD\CçN=ÊsDÀbCçN=ÚsD\jCçNqÍsDH!qCçNìÑsD�ÂwCçNRÈsD¸Þ~CçN�ÂsDšù‚CçN�ÒsD�¢†CçN=ÚsDšŠCçNÞsD…�CçNqÍsD¤‘CçNqÍsDáš”CçN®×sD¸˜CçN ×sD\�›CçNÃåsD=*ŸCçNHásD¸¾¢CçN×ÓsD\¦CçNRÈsD®©CçN¤ÐsD®'­CçN\ÏsD�¢°CçN{äsD33´CçNqÍsDf¦·CçNHÑsDHA»CçNÎsD ·¾CçN¤ÐsDHAÂCçN\ßsDqÝÅCçNRÈsD¸^ÉCçN�âsDÎÌCçNàsDá:ÐCçN)ÌsDÎÓCçNqÍsD\O×CçN…ËsD=ÊÚCçNqÍsDÃuÞCçNÃÕsD{ôáCçN=ÚsD¤påCçNÍÌsDšÙèCçNÍÌsD¸^ìCçN…ÛsDÃðCçNÕsD)|óCçNšÙsDáúöCçN\ÏsDázúCçNÃÕsDþCçNÍÌsDÃÅDçNöØsD…‹DçNqÝsDEDçN®×sD¸þDçN×ÓsD{ÄDçNÎsD3ƒ DçN{ÔsDN DçN¸ÎsDà DçN¤ÐsD®×DçNHásD¤�DçN�âsDq]DçN çsD…DçNáÚsDáêDçN ×sDš™DçN…ËsDöhDçN�âsDÍ,DçN\ßsD=êDçNìásD¥DçNáÚsD¸n DçNìásD%"DçN…ÛsDöø#DçN×ãsD §%DçNàsDöh'DçNÍÌsD{4)DçN=ÚsD{ô*DçNìásD°,DçN×ÓsDRx.DçN ÇsD®70DçN¤ÐsD2DçNHÑsD…Ë3DçNîsD�r5DçNqMrD)L5DçNšypDE5DçNš¹nD\_5DçN)ülDHa5DçN33kDP5DçN�‚iDÍL5DçN¸¾gD®G5DçNq fDP5DçN…KdDÍ\5DçNöˆbD{D5DçN�²`DqM5DçN¤_D�R5DçN=J]DÍ<5DçNáŠ[DP5DçN{ÄYDš95DçNq XD¤@5DçNá:VD=:5DçN3sTD G5DçN ·RDÍ<5DçNöQD),5DçN{DOD\/5DçN)ŒMDá:5DçN\¿KDö85DçNÃJD=:5DçNEHDH15DçN…{FDÍ,5DçN)¼DD.5DçNCD…5DçNHAADf&5DçN×s?D)5DçN׳=D%5DçN3D�ò4DçN…{D3ã4DçNöÈ D®ç4DçN¤ D)Ü4DçN 7 D¸î4DçNf†D{ä4DçNR¸Dà4DçN3óDšé4DçN…KDÃå4DçN\Dìá4DçNöˆýC¤Ð4DçNìúC¤Ð4DçNázöC Ç4DçN×óC×ã4DçNq}ïCHá4DçNöìC3Ó4DçN=jèCÍÌ4DçN= åC¤à4DçN=jáC×ã4DçN{ÞC®ç4DçN®‡ÚCÞ4DçNîÖC)Ü4DçN�‚ÓC=ê4DçNÍ ÐCÍÜ4DçN{tÌC¤à4DçN�ÉC\ï4DçNìqÅCšé4DçN3óÁC×ó4DçN쑾Cöø4DçN»Cšé4DçNÃu·C{ä4DçNšù³C¤ð4DçN׃°C{ô4DçN®­C)ü4DçN=Š©Cšé4DçNìñ¥CHñ4DçNŽ¢C×5DçNÍ ŸCþ4DçNR˜›Cöø4DçN\˜CH5DçNì‘”CÃõ4DçNfæ�Cq 5DçN)œ�Cšù4DçN…ë‰C¸þ4DçNRx†CÍ 5DçN{ƒCì5DçNö(Cqý4DçN\xCf5DçN�qC×5DçN33jC) 5DçN¤ðbC®5DçN{\CR5DçNf&UC)5DçNH!NCì!5DçNìÑFC…5DçN33@Cš5DçNìÑ8C3#5DçNö(2C{$5DçN¸Þ*C '5DçN®Ç#CÃ%5DçNîC×35DçN×ãC%5DçN¤ðC¤05DçNf&C '5DçNìCf&5DçN®óB335DçN)ÜåB®75DçN…ë×Bq-5DçNö(ÊB=*5DçN¸¼B\/5DçN®Bö(5DçNö¨ŸB¤@5DçN®G’B{45DçN W„B)L5DçN ×kB¸.5DçN)\OBìA5DçN®G4BÍ<5DçN{B¤P5DçNHáøAU5DçN33ÇA¤`5DçN\�ÈAÅ3DçN®GÇAHñ1DçN®ÅAÃ50DçN�ÂÇA{t.DçN¸ÇAµ,DçNq=ÆA…ë*DçNffÆA 7)DçN®ÅAÍ|'DçNázÆA…»%DçN…ÇA¤ð#DçN�ÂÇA%"DçNffÆA¤p DçN®GÇAö¨DçN33ÅA ÷DçNìQÆA{$DçNq=ÈA3sDçN¸ÇAžDçN¤pÅAìñDçN ×ÇA®'DçN{ÆA×cDçNÃõÆA…«DçN®GÇAåDçN…ëÇAf& DçN= ÉAU DçN®ÇA)œ DçN{ÈA)ìDçNš™ÇAÃ%DçNÃõÈAöXDçNÃõÆAH‘DçN®GÅAšÙDçNffÆAÍ,þCçN\�ÆAášúCçN¤pÉA)<÷CçNìQÈA3³óCçNìQÈAáðCçNÃõÆA…«ìCçN…ÅA®'éCçNö(ÈA —åCçN…ÅARâCçNq=ÆA�¢ÞCçN×£ÈA¸þÚCçNìQÆA)|×CçN ×ÅAÍ,ÔCçN�ÂÇAR˜ÐCçNR¸ÈAöÍCçNš™ÇA×£ÉCçN¸ÇA ÷ÅCçN)\ÇAìqÂCçN¤pÅA\¿CçNq=ÆAöh»CçNq=ÆA¤ð·CçN33ÉA×c´CçN= ÉA�â°CçNffÆA׃­CçNìQÈA=ê©CçNö(ÈA¤p¦CçN�ÂÇA×£CçNq=ÆA¤PŸCçN®GÇAå›CçN…ëÇAáZ˜CçN×£ÄAî”CçN¤pÅA®G‘CçN®GÇAöè�CçNÈAHaŠCçN{ÈAÃÕ†CçNÈAšYƒCçN33ÅA®‡CçN ×ÇA3³xCçN33ÇA�‚qCçNö(ÆA3sjCçNš™ÇA…cCçN×£ÄA)œ\CçN{ÈAšYUCçN…ëÅAì‘NCçNffÄA\OGCçN…ÅAÍL@CçN�ÂÅAff9CçN�ÂÇAH¡2CçN= ÇA×c+CçN…ëÇAì‘$CçNq=ÈA WCçNffÄAf&CçNHáÄAH!CçNö(ÆAECçN¸ÇAìQCçN33ÇAÍLôBçN¤pÇAffæBçN…ÅAfæØBçN{ÆA)\ÊBçNq=ÈAR¸¼BçNHáÆAáú­BçNÍÌÄA)ÜŸBçNÍÌÄA¤p’BçN ×ÅA…„BçN ×ÇAq=mBçNÃõÆAR¸OBçN®GÅA334BçNÆAHáBçNázÆA…ë÷AçNR¸ÆA…ë¿AçN®G¹A{ÀAçNR¸ºA ×÷AçNR¸¸A ×BçNázºA®G4BçN{ºAÍÌOBçN\�ºAö(mBçN33¹AÃu„BçNHá¸A¤p’BçN…ë¹A¤ðŸBçN ×»A®BçN\�ºA3³¼BçNHáºAÍLÊBçNáz¸AfæØBçNºAázæBçN¼AÍLôBçN)\»A=JCçNìQ¸AR8CçN¸A¸CçNìQ¸A¤0CçN¸»A¸^CçN®¹A\�$CçNÍ̺Aff+CçNq=ºA)œ2CçN¤p¹AHa9CçN®G¹A®G@CçNq=¸A\OGCçNš™¹A)œNCçN{ºA{TUCçNáz¸A)œ\CçN\�ºA®‡cCçN ×·A¤pjCçNázºA=ŠqCçNÃõºA…«xCçNö(¸A…CçNö(ºAq]ƒCçN¤p¹AÃÕ†CçN…ë¹A`ŠCçN= ¹Aå�CçNáz¸AE‘CçNff¸A¤ð”CçNR¸¸A¸^˜CçN®G¹AHá›CçN)\·AìQŸCçNHáºAf£CçN®G¹A¤p¦CçNR¸ºAöè©CçN\�¸A׃­CçN ×¹A®ç°CçN ×¹A¸^´CçNáz¸A…ë·CçN= ·Aöh»CçN\�¸A3¿CçNq=ºA3sÂCçN\�¸AÃõÅCçN\�¸A®§ÉCçN…ë¹A… ÍCçNö(ºA{”ÐCçN…ë·A=*ÔCçNìQ¸A€×CçN33¹A)üÚCçN\�¶Aq�ÞCçNq=¸A)âCçNff¸A —åCçNff¸A®'éCçN…ë¹A¤°ìCçN= »A)ðCçN ×¹A3³óCçN�¹AR8÷CçN ×·AÕúCçN…ë·A=*þCçN…·A=ÚDçNÃõ¸AדDçN�¹AšYDçN�¹A%DçN ×¹A)ìDçNö(ºAÍœ DçN®G¹A{T DçN®¹Af& DçN…ë¹A{äDçN{ºAš©DçNHá¶A{dDçNq=ºA®'DçN)\·AðDçN®·AH¡DçN ×¹A3sDçNìQ¸Aì!DçN¤p·A®÷DçN ×·AáªDçN= ¹Aìq DçN= ¹A%"DçNÃõ¸A\ï#DçNìQ¸Aš¹%DçN ×·Aq}'DçN¸¹A®7)DçNq=¸A…ë*DçN×£¸Aõ,DçNÍ̸A3s.DçN®·AÃ50DçNš™¹A×ó1DçNö(ºAÃÅ3DçN¼AR¸5DçNÃõøA\¿5DçNq=BR¸5DçN)\4B3³5DçN¤pOB®5DçN�ÂkBÃ¥5DçNìQ„Bf¶5DçNìQ’Bͬ5DçNR¸ŸBáª5DçN= ®Bš™5DçN¸¼Bš©5DçN.ÊBÕ5DçN)Ü×B=š5DçNìÑåBÃ¥5DçN®ÇóBš©5DçNšC)Œ5DçNH!CÕ5DçNîCf–5DçN×ãCž5DçNîCö˜5DçN=Ê#Cq�5DçN×ã*C)œ5DçN.2C®‡5DçN ×8C{„5DçNR8@C€5DçNÍÌFC)|5DçN¸NCÕ5DçN.UCì�5DçN \C¤€5DçNÃõbC®w5DçNR8jC3s5DçN�qC w5DçN{xCp5DçNf&C…k5DçNìƒC\o5DçNáz†Cáj5DçN\ï‰C¸n5DçNš™�C`5DçN®ç�C�r5DçN{””CHa5DçN\˜C3s5DçNáš›Cff5DçN= ŸCff5DçN¤�¢Cn5DçNRø¥Cq]5DçN=Š©C�R5DçN­CU5DçN…°C�b5DçNqý³CšY5DçNRx·C3S5DçN�»CšI5DçN¤�¾CÃU5DçN{ôÁCN5DçNìqÅCÃU5DçNfÉCìQ5DçNRxÌC®75DçN= ÐC55DçNH�ÓCÃE5DçN\ïÖC)<5DçNf†ÚC¤@5DçN3ÞC@5DçNÍláC{D5DçN\åC×35DçNÍlèCÍ,5DçNìC '5DçNázïCìA5DçNöóC®75DçN¸~öC{$5DçN¤úC{$5DçN…ýCá*5DçN~D 75DçNáJDá:5DçN×óDR85DçNR¸D\/5DçN{„D¤@5DçN®7 D\?5DçNH D=:5DçNRÈ DÍ<5DçNázDR85DçNq=D@5DçN�Dq=5DçN{´DìA5DçN…{D=J5DçNìADÍ<5DçN�D¸>5DçN=ÊDN5DçN…‹DfF5DçNf6D…K5DçNá DP5DçNÍÌ!D\O5DçN3ƒ#D W5DçN{D%DìQ5DçNfö&DfV5DçNÃÅ(DqM5DçNöˆ*D\O5DçNÍ<,D®g5DçNqý-D\O5DçN=º/DšY5DçN)Œ1D¸n5DçNRH3D\_5DçN×5DRh5DçN¾6DÍl5DçN)Œ8Dn5DçN{4:Dìa5DçNìCR¸BœV…+EC\�BœV®GLC…ëBœVR8SC= BœVö(ZCHáBœVffaCö(BœV�BhCázBœV€oCázBœV\�vC ×BœV3s}CHáBœV 7‚C¸BœV…«…C…BœV¤P‰CÍÌBœV{ÔŒC…BœVe�C…ëBœV…Ë“C®BœVšY—Cq=BœV{ÔšCHáBœV)|žC�ÂBœV=ê¡C®BœV®g¥C ×BœV\©CR¸BœVf†¬CìQBœV3ó¯C×£BœV¤p³C\�BœV)·C…BœV챺C¸BœV¾CÍÌBœV=ªÁCffBœVì1ÅC33BœV3³ÈCBœV®GÌC¤pBœV=ÊÏC{BœVÍLÓCBœVÃÕÖCÍÌBœVfFÚC ×BœV ×ÝC ×BœVeáC…ëBœV×ãäCš™BœVìqèC×£BœV3óëCázBœVázïC= BœV®óC ×BœVì‘öCBœVšúC×£BœV�‚ýCázBœVH�D®GBœV�BD)\BœVöDìQBœVÃÕD¸BœV=ŠD)\BœV{T DHáBœVá D{BœVqÍ D)\BœV)œDÍÌBœVq]DBœVq-DìQBœV…ÛD…BœV¤°D×£BœV`D33BœVq-Dš™BœVÍìDš™BœVÀD…ëBœV{tDÍÌBœV 7 DHáBœVH"D ×BœVõ#D33BœVšy%Dö(BœVHQ'D33BœVÍ )Dq=BœVöØ*D¸BœV3ƒ,DHáBœV{D.DHáBœV¤ 0D�ÂBœVöØ1DBœV)œ3D)\BœV=Z5DÃõBœV37DR¸BœVà8D33BœVÃ¥:DR¸BœV¤`D)\BœVÃå?Dö(BœVͬAD= BœV¤€CDR¸BœVÃEED)\BœV¸îFDö( BœV\¿HD…ë BœV�rJD BœVö8LD® BœV{ND\� BœV)¼OD… BœVö˜QD BœVÃESDš™ BœVRUDš™ BœV{ÔVD33 BœVq�XD®G BœV¸NZD×£ BœV…\D…ë BœV ç]Dáz BœVš™_D� BœVöXaD{ BœVö(cD®G BœVRèdD¸ BœV¥fD)\ BœV3shDáz BœVH1jDö( BœVHñkD33 BœV¾mD BœV~oDö( BœV 7qDff BœV×3qD¸$BœVÃ5qD…ë?BœV×3qD= ]BœVÃ5qD…ëxBœVH1qD…ŠBœV.qDìQ˜BœV5qD®¦BœVf&qDR8´BœVì1qD{”ÂBœVf&qD€ÐBœV�"qD…ÞBœV33qD33ìBœVR(qDázúBœV3#qD@CœVq-qDH! CœV qD¸^CœVqqDÃ5CœVáqDq= CœVÍ,qD@'CœVÍ,qD)\.CœV®'qDöh5CœV…+qDHa(DœV 7qD3ó)DœVR8qD�²+DœV…+qD�‚-DœV=:qDRH/DœV 'qD®÷0DœVÃ5qD)¬2DœV{„oD¤°2DœVõmD¤ 2DœV�òkDž2DœV¸>jDö˜2DœV3shD=š2DœV\¯fD¤ 2DœVìádDH¡2DœV0cD�’2DœV gaDö˜2DœV®_D…‹2DœVáÚ]DÃ¥2DœV)\DR˜2DœVUZD�’2DœV�’XDR˜2DœV)ÜVD ‡2DœVìUDáŠ2DœVqMSDRˆ2DœV¤�QDÕ2DœV¸¾ODì�2DœV®NDš‰2DœVq=LDu2DœV…‹JDöˆ2DœV3ÃHDRx2DœV3GD\2DœVá:ED\2DœVH�CD׃2DœV…«ADì�2DœV{ô?D�r2DœV®7>Dqm2DœVÃuC�r2DœVì7C{t2DœV{Ô/C�r2DœV= )Cöˆ2DœV=Ê!C3ƒ2DœVRøC¤�2DœVáºC¸~2DœVÅ C€2DœVÀC…2DœV…ýBq�2DœVfæîB�‚2DœV¤ðàBf†2DœV€ÒB�’2DœV.ÅB)œ2DœVìQ¶B{¤2DœVR8¨Bì¡2DœVö(šBH¡2DœVÍÌŒB3£2DœV{}BÍœ2DœV)\`B)œ2DœVR¸DB=ª2DœVáz'B¤ 2DœVáz B 2DœVff Bf1DœV= B¤@/DœVìQBì�-DœVq= B Ç+DœV= Bì*DœV®GB=:(DœVffB\o&DœV\� B{Ä$DœV…Bf#DœVBì1!DœVÃõ BÃuDœV33 B°DœV…ë BÃõDœV… BÍ,DœV BájDœV¸B®DœV¤p B¸îDœVö( B@DœV= B¸nDœV)\ BR¸DœV33 BÃå DœVHá B% DœVÃõ B×c DœVq= BH±DœV × B¤ðDœV®G B{$DœVö(BÃeDœV®GBö¸DœV= B×ÃÿCœV® BáZüCœV × BöÈøCœV…ë Bá:õCœVB ×ñCœV® B`îCœVff B=ÊêCœV®GB WçCœVìQBq½ãCœV… B¤PàCœVR¸ B)ÜÜCœVÍÌ B 7ÙCœV� B\¯ÕCœV… Bá:ÒCœVš™ B®ÇÎCœV33B…KËCœVö( BÎÇCœV¸B WÄCœVìQ BͬÀCœVff B)<½CœV¸ B{´¹CœV…ë Bf&¶CœVš™B¤Ð²CœV= B¤0¯CœVq= B «CœVÍÌ B{4¨CœVÃõ B ·¤CœV{BöH¡CœVÍÌ BöÈ�CœV= B�"šCœV… BR¸–CœVáz B®'“CœVBáš�CœV® B×#ŒCœVHá B{´ˆCœV…B…+…CœVq= B �CœVázB¸^|CœV¸Bq=uCœV{ BR8nCœV®G Bq=gCœVÃõ Bá:`CœV)\ Bá:YCœVHá BÃuRCœV… BR8KCœVÍÌ B{DCœV� B�=CœVÃõ B336CœVR¸ BìQ/CœV= B33(CœVq=B�B!CœVáz B CœV= B= CœV B CœV� B¸CœV® B€üBœV B®îBœVR¸ B)ÜßBœV\� BÒBœV� B×£ÄBœVìQBáúµBœV{Báz¨BœV{ BffšBœV®G BìQŒBœV®G B®{BœVÍÌ BR¸_BœV¸Bq=DBœV×£ B®G(BœVff B BœVš™ B BœV\� BìQ(BœV®G Bq=DBœV� B®_BœV×£ B×£{BœVáz BÍLŒBœVö( B…kšBœV33 B…¨BœV)\ BÃõµBœVHá B¸žÄBœVR¸ BÒBœV® B ×ßBœVHá B3³îBœVR¸ B…üBœV…ë B)CœVö( Bqý CœV…ë BÍ CœV×£ BšCœV{ B@!CœV…ë B33(CœV × BìQ/CœV33 B336CœV� B�=CœVHá BìDCœV¤p BR8KCœV� BÃuRCœVö( B@YCœVö( Bá:`CœV33 Bá:gCœV33 Bá:nCœV B�BuCœV33 B)\|CœVÃõ B �CœVö( BÍ,…CœVš™ B3³ˆCœV® B%ŒCœV� Báš�CœVff Bf&“CœVq= B ·–CœVR¸ B×#šCœV… B…Ë�CœVHá B®G¡CœVHá B ·¤CœV33 BÃ5¨CœV®G BH¡«CœVR¸ B33¯CœV= B\ϲCœVff B×#¶CœV\� Bõ¹CœV B)<½CœV…ë B®ÀCœV… BÃUÄCœVHá BÎÇCœV\� BÍLËCœVö( BfÆÎCœVáz Bš9ÒCœV\� B\¯ÕCœV� BR8ÙCœVš™ BáÚÜCœV¤p BìQàCœV= B¸¾ãCœVš™ BÃUçCœVö( BöÈêCœV33 BHaîCœVR¸ BÃÕñCœVáz Bá:õCœVR¸ B=ÊøCœV¤p BšYüCœV×£ BÅÿCœV® B=ºDœVš™ BeDœV × B×#DœV®G B¤ðDœV® BH±DœV®G B{d DœV… B{$ DœV{ Bå DœV® Bö¸DœV × B¸nDœV × B\?DœV…ë BðDœVff Bq­DœVR¸ B=jDœVHá B.DœVR¸ BÃõDœV…ë B°DœV… BfvDœV… B�2!DœV × BÃ#DœV{ B{Ä$DœV¸ B¤p&DœVq= Bš9(DœVÃõ B¤*DœVq= BRÈ+DœV¸ B�‚-DœV…ë B@/DœV Bf1DœVHá B=Ê2DœV¤p'B ×2DœVR¸DBqÝ2DœVff`B{Ô2DœV= }B�Ò2DœVÍÌŒBÕ2DœVö(šBHÑ2DœVR8¨B ×2DœV W¶B{Ô2DœV33ÅB{Ô2DœV=ŠÒB®Ç2DœVáúàB=º2DœVfæîBö¸2DœV…ýBÀ2DœV�ÂCáº2DœVÅ CR¸2DœVR¸C׳2DœVRøCRÈ2DœVÍÌ!C�²2DœVÍ )CÀ2DœVšÙ/CÃ¥2DœVì7CR¨2DœVö(>C{¤2DœV…ëDCͬ2DœVöèKCì¡2DœV=JSCö¨2DœV®ZC=ª2DœV WaCž2DœV)hC�¢2DœVšYoCì¡2DœV®‡vCR˜2DœVE}Cö˜2DœV�"‚Cš™2DœV)Ü…Cq�2DœV\O‰CH‘2DœV®ÇŒC)œ2DœV®g�Cì‘2DœVRØ“CRˆ2DœV{t—C=š2DœVàšCö˜2DœV3sžC3ƒ2DœVqý¡CÕ2DœVáz¥C€2DœVqݨCì�2DœV{t¬CŽ2DœVá°Cq�2DœV)œ³C)|2DœV×·CÍ|2DœV׃ºC®w2DœV… ¾C¸n2DœV®ÁC€2DœVÅC�r2DœV —ÈC=j2DœVRÌCe2DœVìÑÏC�b2DœV¤0ÓC3s2DœV®ÖC{t2DœV3SÚCHa2DœVHáÝC3c2DœV…káCáZ2DœVÃõäCff2DœVHaèCÍ\2DœV ×ëC3S2DœVHaïC¤`2DœVóC¤`2DœV¸~öC{d2DœVúC¸N2DœV¸~ýCöH2DœV{„Dìa2DœV\OD×c2DœVšD{T2DœV¤ÐD W2DœV{„D®W2DœV\_ D=j2DœV) Dìq2DœV®× D¸n2DœVžDu2DœV�bDÍl2DœV…+D×s2DœVöØD�r2DœV×£Dqm2DœVffDšy2DœVÍ,D)l2DœV3óDìq2DœV¸¾D¸n2DœV…kD׃2DœV¤0 D\2DœV)ü!D®‡2DœV)¼#D=z2DœV=z%Dáz2DœVš9'D3ƒ2DœVÍü(DŽ2DœV®Ç*D�’2DœV)Œ,D�2DœVÃE.D¤€2DœV�"0D{„2DœVÍÜ1D�‚2DœV®§3Döˆ2DœV)\5DRˆ2DœV¸7D —2DœV×ã8D¤�2DœVq�:D\Ÿ2DœVÃuD¤�2DœV3ó?Dáš2DœVáªAD=ª2DœVH�CDö¨2DœVá:EDÃ¥2DœV×GDì¡2DœV�ÂHD 2DœV…‹JD…«2DœVq=LD¸ž2DœV NDR¨2DœV¾OD=ª2DœV¤�QD=º2DœVNSDì±2DœV�UD\¯2DœV…ÛVD §2DœVì‘XD=º2DœVUZD3³2DœVá\D)¼2DœV…Û]D=Ê2DœV¸®_D׳2DœVffaD¾2DœV0cDš¹2DœVHádD3Ã2DœV°fD=Ê2DœV×shD=º2DœV>jD¸¾2DœVìñkD3Ã2DœVµmD�Â2DœV{„oDöØ2DœV�RqD®Ç2DœV GqDRø0DœVq]qDöH/DœVHQqDì�-DœV WqD3³+DœV`qD3ó)DœV\OqDÍ<(DœVfFqDìq&DœV3SqDq­$DœV…[qD ç"DœVÃUqDÃ5!DœVfFqD×sDœV…KqDì±DœVfFqD…ëDœV WqD=*DœVÍ\qDHqDœVRXqD�²DœV^qD{äDœV=ZqDH!DœVHQqD)lDœV¸^qDH¡DœV=ZqD\ï DœV)LqD¤ DœV3SqD)\ DœV=ZqD)œDœV�RqD ×DœV3SqD¤DœVfFqDÍ\DœV3CqDf¦DœV…KqDH¡ÿCœVRXqDf&üCœV\_qDÀøCœVšIqD\õCœVÍLqD3³ñCœV{TqDÃ5îCœV^qD ·êCœVfFqD=*çCœVfVqDö¨ãCœV®GqD… àCœV)LqDÍŒÜCœV\_qD¤ÙCœV…KqDÕÕCœV®GqDšÒCœV)LqDR˜ÎCœV`qDìËCœV�bqD…‹ÇCœV¤PqDRÄCœV=ZqD —ÀCœV\_qD3ó¼CœVÍLqDöh¹CœVöHqD�¶CœVRXqD�b²CœVÃUqDRø®CœVRXqDff«CœVöXqDšÙ§CœVöXqD=j¤CœV¸NqD\ï CœV¸^qD\O�CœVšYqDHšCœV^qDq]–CœV�RqD=ê’CœVÍLqDN�CœVšIqDöÈ‹CœV=JqD{TˆCœVPqD=ê„CœVáZqDfF�CœV`qD¤°{CœV)\qDq}tCœV`qDÃumCœVšYqDì‘fCœVHQqDš™_CœVšYqDš™XCœV…[qDš™QCœV®GqD€JCœVÍLqD WCCœVÃUqDHaD)\ BœV`CHá BœVH!7C� BœVÃõ/C BœV)CÍÌ BœVî!C®G BœVqýC BœV¤ðCff BœVÀ C¤p BœVÀC × BœV.ýBš™ BœV)ÜîB\� BœVìÑàB¤p BœV WÓB{ BœVR¸ÄBö( BœVìѶBš™ BœVö¨¨B…ë BœVìÑšBHá BœVHáŒB\� BœVR¸|B¸ BœV…`Bff BœV®CBìQ BœV ×'Bff BœVR¸ Bff B£c%5<�ÿ´]€ µ]ö(@B)Ü)Cµ]IB€"Cµ]š™PBšYCµ]®WB®ÇCµ]q=^B…k Cµ]…eB¤°Cµ]®GiBq½ûBµ]š™{B®ÇCµ]R8ˆB€Cµ]ff”B — Cµ]¤ð’B{ÔCµ]¸ž�B.üBµ]Ãu�B)ÜíBµ]…ë‰B ×ßBµ]{”†B¤pÒBµ]¤ð•Bq=ÏBµ]Ha¥BázÌBµ]šµB×£ÈBµ]�ÂÅBR¸ÄBµ]ìQ¾BìQ±Bµ]Ãu·Bš™ Bµ]q=ÅB¸žžBµ]�ÂÓB)\œBµ]q=âB×£™Bµ]fæðBáz–Bµ]{”ÿBö¨“Bµ]qýCš�Bµ]\C…ŒBµ]¤ð Cáz‹Bµ]®ÇC.ŽBµ]áúþBff�Bµ]¸ðBáz’Bµ]…áB{–Bµ]\ÓBÍL˜Bµ]=ŠÄBáúšBµ]= ´B�BŸBµ]…ëºBö¨²Bµ]…kÂB€ÃBµ]€´BÆBµ]q½¤Bš™ÉBµ]¤p•BÃõÌBµ]q½„BšÑBµ]¤p‡BffàBµ]š™ŠB¤pîBµ]×#�Bö¨üBµ]= �B)Cµ]×#“Bq= Cµ]=ŠŠBECµ]33€BázCµ]{gB¤pøBµ]Ãõ]B@Cµ]¸VBRø Cµ]×£PBöhCµ]{JBáúCµ]\�DBq="Cµ]¤p>BÀ)C¤c%5<�ÿï]€ ð]ánDHá)Cð]š©mD)\"Cð]3cmDõCð]fölDq=Cð]ŽlDõ Cð]q-lD¸^Cð])ŒkD×#øBð]3jD…Cð])¬hD WCð]ÍœgDq= Cð]¸hDìQCð]Í\hDÍÌûBð]q­hD×#îBð]3iD�BàBð]ìaiD¤ðÐBð] ggD)ÜÌBð]ÃueDÃuÉBð]HqcD…ëÅBð]áªaDö(ÃBð]•bD³Bð]RxcD.ŸBð]H�aDq½›Bð] §_D.˜Bð]ÍÌ]D€•Bð]\D€’Bð]f6ZDÃõ�Bð]UXD)Ü�Bð]3ƒVD=Š‹Bð]Í|VDÃuŒBð]RHXD…ë�Bð]H!ZD\�“Bð] ÷[D–Bð]3³]D¸ž™Bð]�_Dq½›Bð])laD×#ŸBð]cD®G Bð]¸.bDq½±Bð]HQaDq=ÄBð]Í\cDìÑÈBð]{deD…ëËBð]ìQgD�ÂÏBð]×#iDÍLÒBð]…»hDö¨ßBð]RXhDš™íBð]öhD WûBð]õgD\Cð]�rgDš™ Cð]šùhDf¦Cð]3SjDšÙCð]3ckD¤ðûBð]f¶kD=ÊCð]\lD¸ Cð]öxlD3³Cð]ÃõlD Cð])lmD{”"Cð]ÍümD�*C¥c%5<�ÿª^€ «^R¸>BfvD«^®GDB{tD«^)\JB GD«^\�PB.D«^¸VB¤D«^Há\B…ëD«^)\fBáúD«^ ×~Bö¨D«^)ÜŠBšiD«^ìÑ’Bì1D«^×£�BÅD«^¸ž�BázD«^3³ŠB=:D«^Í̇B×D«^ÍL…Bìá D«^\�•B×c!D«^€¤BÍÌ!D«^3³³BöH"D«^ázÂBž"D«^š™»Bö¨$D«^…ë³B¤ 'D«^€ÄB\�'D«^ÃuÒBfæ'D«^×£áB3C(D«^…ëïBÃ¥(D«^ÃuþB)D«^ÍŒC\?)D«^3ó C�)D«^Í Cp)D«^®ÇCõ(D«^×#ÿB¤�(D«^q½ðBf&(D«^ìQâB×Ó'D«^33ÓB\o'D«^×#ÅB'D«^R8·Böø&D«^áz¾BqÍ$D«^ìQÅB®w"D«^áz´Bìá!D«^×#¥BHq!D«^ö(–Bq !D«^=ЇBq­ D«^¤pŠB{D«^ìQ�B…KD«^Ãõ�BRˆD«^=Š’BÃÕD«^\�”BÕD«^ÍLˆBìD«^¤pzBq]D«^iB ‡D«^¸dBHÑD«^š™]BRèD«^ÍÌWBfD«^…ëPB¸.D«^…ëHB3cD«^š™@BpD¦c%5<�ÿå^€ æ^õmD…Dæ^{tmDÍ\Dæ^{mDq=Dæ^¤€lD=Dæ^�lD)ìDæ^q­kD¤àDæ^®wkD¤€Dæ^`jD�RDæ^RøhDÃDæ^®ggDÃÕDæ^f¦gDRÈDæ^þgD�‚Dæ^öXhDNDæ^šÉhD®Dæ^3iDö¨ Dæ^fFgD\ÿ Dæ^{TeD3ƒ!Dæ^Í\cDšÙ!Dæ^áZaDöh"Dæ^3#bDšÙ$Dæ^¤cDð&Dæ^)laD\'Dæ^f–_DÍ|'Dæ^=Ê]DHÑ'Dæ^î[D¸.(Dæ^ìZDöˆ(Dæ^qMXD)Dæ^q}VD\o)Dæ^�‚VD¤�)Dæ^=ZXDN)Dæ^…+ZDÍü(Dæ^�\DR˜(Dæ^à]DšI(Dæ^¸®_D\ÿ'Dæ^Ã…aDž'Dæ^¸~cD'Dæ^�’bD¸®$Dæ^õaD)Œ"Dæ^¸ncD\/"Dæ^ÃeeDìÑ!Dæ^=ZgDìQ!Dæ^{TiD=Ú Dæ^iDšùDæ^¸®hD)<Dæ^q]hDpDæ^á hD{´Dæ^®—gD33Dæ^׳hDHaDæ^¤jDR¨Dæ^H¡kDáúDæ^lD®÷Dæ^H‘lDöDæ^ÍülDR8Dæ^ÍlmD{TDæ^ö¸mD…kDæ^nDÍŒD§c%5<�ÿ _ úC€»CzD€;D¨c%µÖæÿ _Áó€>¤_ úC€»CzD€;D©c%µÖæÿ /ÍÌL?01/fff?01[/À?01€…Š�”™ž£¨­²·¼ÁÆËÐÕÙÜí01³ºÁÈÏÖÝäýš¶º½ÆÏØáêó€�/À@01™ž£§¬¯¬³ºÁÈÏÖÝäùžÉôŸÊöúý† � ˜ ¡ ª ³ À Í Ú ç /À@01õ ù /ÍÌŒ?01¯ /33³?01Æ Ë Ð Õ Ú ß ä é î ó ø ý ‚ ‡ Œ ‘ – ›   ¥ ª ¯ ´ ¹ ¾ à È Í Ò × Ü á æ ë ð õ ú ÿ „ ‰ Ž “ ˜ � ¢ § ¬ ± ¶ » À Å Ê Ï Ô Ù Þ ã ç /fff?01† ‹ � • š Ÿ ¤ © ® ³ ¸ ½  Ç Ì Ñ Ö Û à å ê ï ô ù þ ƒ‡Š01›¢©°·¾ÅÌÝô‹ÑÕØáêóü…Ž›¨µÂÏÜ/À@01ìð/ÍÌL?01õ/fff?01·/À?01Üáæëðõúÿ„‰Ž“—œŸœ01ÒÙàçîõüƒŠ‘¦ìðóü…Ž— ©¶ÃÐÝê÷„‘/À@01�01£/š™?01ô/ff¦?01«°µº¿ÄÉÎÓØÝâçìñöû€…Š�”™ž£¨­²·¼ÁÆËÐÕÚßäéîóøý‚‡Œ‘–› ¥ª¯´¹¾ÂÇÊÇÎÕÜãêñø‰ ·•™œ¥®·ÀÉÒßìù†“ ­ºÇÕÙë01² º  Ê Ò Ú â ê €!˜!²! $¨$°$¸$À$È$Ð$Ø$à$ò$’%¼%æ%�&º&ä&Ò)01ä)ì)ô)ü)„*Œ*”*œ*®*Æ*Þ*œ+Š.01Á.É.Ñ.Ù.á.é.ñ.ù.�/‰/›/Ù/Ç2Ï2×2ß2ç2ï2÷2ÿ2‘3©3Á3‘4ÿ6ë<“>�A¡A­A¹AÃAÍA×AãAïAûA…B�B™B§B­B²B/ÍÌL?01ÕBÛBàBÀCÆCËCŸD¥DªDþD„E‰EÝEãEèE¼FÂFÇF“G™GžGòGøGýG/fff?01„H/ÍÌL?01ŠH/fff?01ÍH/À?01òHªI¯I/33³?01ºIÀIÆIÌIÒIØIÞIäIêIðIöIüI‚JˆJŽJ”JšJ J¦J¬J±J01áJêJóJüJ…KŽK—K K³KÌKåKþK‡LšL£LÂLâLèLíLüL‹MšM©M¸MÇMÔMßMêMõM€N‹N–N/ff&?01æN›V´]ï]ª^å^ _¤_7Still957Page9ŠBinds>@?A—=• °5Ep�EaD Dîì Haunting_OLD¤åæçèéêëìñò €@D*C°A°Ai%�‚Šÿ† É’€A—j%�‚Šÿ‡�Œ(moonTab: move down, the moon slides down  @A@Ak%ÿl%Žÿ ‚C\C°A°Am%�‚Šÿ† ð ‰’€A—n%�‚Šÿ‡�Œ+door: rotate, the wardrobe door swings open@A@Ao%ÿp%Žÿ *CÈC°A°Aq%�‚Šÿ† ðÂB‰!’€A—r%�‚Šÿ‡!�"Œ6clock: rotate, the dial turns (negative winds it back)%&@A@As%ÿt%Žÿ €"DzC*+°A°Au%�‚Šÿ†* ðÂB‰.’€A—v%�‚Šÿ‡.�/Œ3handReach: move left, the hand reaches for the lamb*23@A@Aw%ÿx%Žÿ €6D×C78°A°Ay%�‚Šÿ†7 ðÂB‰;’€A—z%�‚Šÿ‡;�<Œ%fangs: move up, the fence grows fangs7?@@A@A{%ÿ|%Žÿ ëC>CDE°A°A}%�‚Šÿ†D ð ‰H’€A—~%�‚Šÿ‡H�IŒ,ghost: up = rise, right = float to the flameDLM@A@A%ÿ€%Žÿ†Q áCÐAî?‰R’ A—�%ÿ‡R�SŒFThe Haunting: keyed nulls the renderer reads while the candle is still†Q BõC‰V’`A—‚%�‚Šÿ‡V�WŒ left page†Q WDõCî€?‰Z’`A—ƒ%�‚Šÿ‡Z�[Œ right pageQ^_áCÜB_áCëC„%�‚ŠÿQ áC‘CcMD´C`A…%�‚ŠÿQ áCŒCfaD D†%Òæïÿ/À? /À? /À?/À?/À?"&/À?&+/À?/3/À?38/À?<@/À?@E/À?IM/À?MSW[^/À?c/@f7Haunting9Ð;3L5 DCèDE‡C�DE‡FACœDFÈBCØDE‡FÈBC”DCÐ5DCŽDE‡CèDFÈÂCØDE‡FÈÂC”DCÐ5DCèDE‡C�DE‡F ×£=C¸DE‡F�Âu½CàDE‡F)\�=CˆDE‡F ×#½CœDCÐ35DCChDE‡F ×£=C–DE‡F®Ga>CªDE‡F ×#>C¬DE‡Fš™Y?C¤DE‡Fff†?CœDE‡FÍÌŒ?CØDE‡FÍÌL>C€DCÐ3?5DCxDE‡C–DE‡FðÁCªDE‡F°ÁC˜DFÈÂCØDE‡FÈÂC²DCÐ3%5CxFôlÖ½C–FôlV¾C´FÓÞ ¾CÒFzÖ¾CðF¦ ¿CŽFEØ ¿C¬Fã¥;¿CÊFzV¿CèF®Gq¿C†F¦ †¿C¤Fvq“¿CÂFEØ ¿CœDE‡FEØ ¿C”DCÐ3 5DC$DE‡C´DFpBCÄDFŒBCÖDE‡F€BCúDFœBCœDE‡FœBC”DCÐ325 DC–DE‡CÒDE‡F@ÁCðDE‡FÀÀCÊDE‡F\ÂCèDE‡F@ÂCÂDFÈÂCœDE‡FÈÂC°DE‡F´ÂCÄDE‡FÈÂC”DCÐ57Machine9ŠHaunt=•>@?A— €íDp�EHD Bî PullTab_OLD¤åæçèéêëìñò D B3D B/DÐA€3D B/DXB!%ÿ  €9D°A €9DhB =D°A=DhB"%³ €D B@A@A#%Žÿ €@AÀ@>DAÀ@FDÐAÀ@FDXBÀ@>D�BÀ@€@�BÀ@$%ÿ%%Òæïÿ/ @01 /@@01/`@01 ÀAF¾CúCîìÇOath¤åæçèéêëìñò >CúC >ÃúÆ @C€ãC™î?‰’°A—«%5<�ÿ‡�Œ V O V E O C€ÕC CâCÀ@ úB€óC C€ÕC  CâCÀ@ C€óC C€ÕCCâCÀ@C€óCC€ÕCCâCÀ@ C€óCC€ÕCCâCÀ@C€óCC€ÕCCâCÀ@C€óC! C€ÕC!#CâCÀ@!C€óC%%C€ÕC%(CâCÀ@% C€óC)*C€ÕC)-CâCÀ@)%C€óC-/C€ÕC-2CâCÀ@-*C€óC14C€ÕC17CâCÀ@1/C€óC59C€ÕC5C€ÕC9ACâCÀ@99C€óC=CC€ÕC=FCâCÀ@=>C€óCAHC€ÕCAKCâCÀ@ACC€óCEMC€ÕCEPCâCÀ@EHC€óCIRC€ÕCIUCâCÀ@IMC€óCMWC€ÕCMZCâCÀ@MRC€óCQ\C€ÕCQ_CâCÀ@QWC€óCUaC€ÕCUdCâCÀ@U\C€óCYfC€ÕCYiCâCÀ@YaC€óC]kC€ÕC]nCâCÀ@]fC€óCapC€ÕCasCâCÀ@akC€óCeuC€ÕCexCâCÀ@epC€óC¬%!#)ÿj€ kÍŒuC¤ðËCkáºsC=ÊÌCkHápCHaÎCk WnCš9ÐCk{ÔkCq}ÒCk�ÂiC)ÜÔCkf¦gCÃõÖCkšÙfCöÙCk¤pgCázÛCk ×iCöÈÝCkÍŒlCÍÌßCk®nCöèáCkqýoCäCk¸oCì1æCk®ÇmC€èCk…lC®GëCkìkCáºíCkH¡iC¸ÞïCk¸žiC3sñCkHajCÍŒñCk3ókCfFðCk{ÔmC33îCkEoC=ªëCk\qCÍìèCkRøqCÃuæCk¤prCfæãCk ×pCÃuáCkáznC 7ßCkH¡kCHAÝCkš™iC%ÛCkiCšÙCk…kjCq}×CkšlC=jÕCkáznC 7ÓCk�BqC×#ÑCk�‚sC=JÏCkÅuC{tÍCk…+vCšÌC­%5<�ÿ“€ ”…k}CÍ ÈC”…Ë�C¸žÌC”ׂCšyÌC” ×}C®çÇC®%!#)ÿš€ ›¤0uC…+ÈC›R8{C ·ÌC›ö¨{Cì‘ÌC›H¡uCfÈC¯%!#)ÿ¡€ ¢õlCHAÈC¢{ÔrC¤ÐÌC¢ÍLsC®§ÌC¢H!mCqÈC°%!#)ÿ¨€ ©®GdCìQÈC©njC=êÌC©¤ðjCq½ÌC©®dC\/ÈC±%!#)ÿ¯€ °š\CÃuÈC°\bCHÍC°ì‘bCÃÕÌC°=Š\C¤PÈC²%!#)ÿ¶€ ·ÍÌSC¤°ÈC·3³YCRÍC·.ZC\ïÌC·á:TC…‹ÈC³%!#)ÿ½€ ¾{TKCR¸ÈC¾ WQC\/ÍC¾®ÇQCöÍC¾ÀKC{”ÈC´%!#)ÿÄ€ Å CC ×ÈCÅáúHCEÍCÅ×cIC�"ÍCÅ —CCͬÈCµ%!#)ÿË€ Ì×c:C)üÈCÌš™@C¸^ÍCÌACš9ÍC̸Þ:C¤ÐÈC¶%!#)ÿÒ€ Ó¸^2C¤ÉCÓ338CRxÍCÓ…«8C¤PÍCÓ{Ô2C=êÈC·%!#)ÿÙ€ Ú*C ÉCÚšÙ/CŽÍCÚ®G0C=jÍCÚRx*CáúÈC¸%!#)ÿà€ á�‚!C 7ÉCáq}'C¥ÍCá×ã'C�‚ÍCá"C… ÉC¹%!#)ÿç€ è®GC¤PÉCèšCq½ÍC讇Cš™ÍCèq½C=*ÉCº%!#)ÿî€ ïš™C¸^ÉC擄CšÙÍCï.C®ÍCï C33ÉC»%!#)ÿõ€ öÃ5C`ÉCö{TC\ïÍCö=ÊC®ÇÍCö×£Cá:ÉC¼%!#)ÿü€ ýšCÃuÉCýÃõCfÎCý…kCHáÍCý…C3SÉC½%!#)ÿƒ€ „{þB=ªËC„H!Cì1ÌC„f&CÍC„\ÏCq�ÍC„) C`ÎC„=ÊCRøÎC„�ÂCŽÏC„�ÂCÐC„\ÏC¸>ÐC„33#CffÐC„)'C¤pÐC„q½*Cì1ÐC„)Ü.Cq=ÐC„Há2CîÏC„qý6Cš¹ÏC„î:Cš¹ÏC„ ?C=JÏC„=ŠCCÍLÏC„×£GC= ÏC„= LC®ÇÎC„qýOCÍŒÎC„®TCH�ÎC„ÃuXC�"ÎC„Í ]CöÈÍC„šÙaC ·ÍC„=ŠfC®GÍC„=JkCìñÌC„)ÜoC{tÌC„ì‘tC¸>ÌC„3óxC…ëËC„�‚|C{tËC„®€C{ËC„€�C)|ÊC„…‚C)<ÊC„áz‚C×ÃÉC„áZ�C¤°ÉC„f¦CáÚÉC„qý{CìÑÉC„®GxC\/ÊC„¸tC=ŠÊC„ WoCÃÕÊC„ö¨jCRXËC„\fC ×ËC„q}aC)ÌC„õ\C¸^ÌC„Í XCÍÌÌC„3³SCfÍC„¤°OC¤PÍC„�ÂKCõÍC„×cGCÍìÍC„)\CCö(ÎC„fæ>CšYÎC„R¸:C¸žÎC„fæ6Cö¨ÎC„f¦2C)¼ÎC„q½.CìñÎC„R¸*CRØÎC„= 'C\ÏÎC„ÍL#CöÈÎC„š C®ÇÎC„®GC WÎC„öhCáúÍC„)œC�bÍC„\ C{´ÌC„f¦Cì1ÌC„RøC ·ËC„H¡C3sËC„×£þBq=ËC¾%5<�ÿÊ€ Ë\�}CR¸½CËÍÌ�C¸ÂCËׂCšùÁCËRø}C{”½C¿%!#)ÿÑ€ Ò=JuCš¹½CÒ33{CR8ÂCÒ®{C\ÂCÒ3³uCÕ½CÀ%!#)ÿØ€ Ùš™lC×ã½CÙ ×rC¤PÂCÙ=JsC®'ÂCÙ)mCõ½CÁ%!#)ÿ߀ रdCöȽCànjCöhÂCà¤ðjC@ÂCàšeC®§½CÂ%!#)ÿæ€ çRø[CR¾Cç bC€ÂCç=ŠbCRXÂCçÃu\Cî½CÃ%!#)ÿí€ î=ÊSCH¾CîR¸YCÕÂCîf&ZCìqÂCîÃ5TCqݽCÄ%!#)ÿô€ õÃuKC®G¾Cõ{TQC\¯ÂCõ=ÊQCöˆÂCõ3óKC¸¾CÅ%!#)ÿû€ üöèBC…K¾Cü3óHC®ÇÂCü…kIC ÂCü¸^CC%¾CÆ%!#)ÿ‚€ ƒ¤°:C{T¾Cƒ\�@CHáÂCƒìAC ·ÂCƒf&;C.¾CÇ%!#)ÿ‰€ Џ2C¤�¾CŠR88C ÷ÂCŠö¨8C¤ÐÂCŠ…2Cn¾CÈ%!#)ÿ�€ ‘ö¨)C¸ž¾C‘)Ü/CÃC‘E0C=êÂC‘f&*C3s¾CÉ%!#)ÿ—€ ˜×c!Cáš¾C˜Rx'Cf&ÃC˜fæ'CHÃC˜)Ü!C3s¾CÊ%!#)ÿž€ Ÿ\C ×¾CŸ{CHAÃCŸÍŒC ÃCŸázCì±¾CË%!#)ÿ¥€ ¦îC¸Þ¾C¦3³CRXÃC¦…+C¤0ÃC¦ WC)¼¾CÌ%!#)ÿ¬€ ­ÍLCà¾C­ìQC¤pÃC­ÍÌC®GÃC­R¸C)¼¾CÍ%!#)ÿ³€ ´¤pÿB{¿C´îC=ŠÃC´¤pCq]ÃC´á:C®ç¾CÎ%!#)ÿº€ »�ÂýBR8ÁC»�BC®§ÁC» WCìqÂC»ÅCf&ÃC»� C{ôÃC»ö¨C{”ÄC»q}CR8ÅC»f¦C=ŠÅC»)ÜC ·ÅC» W#CR¸ÅC»š'C=êÅC»�+CÎÅC»…«.CͬÅC»H¡2C�bÅC»ö¨6CHaÅC»Ãõ:C\/ÅC»¤p?C¤ÅC»HaCC®ÄC»ázGC�‚ÄC»3³KC×cÄC»¸^PC 7ÄC»Ã5TCÃõÃC»�ÂXC®§ÃC»Ha]CÍLÃC»)bC@ÃC»)œfCR¸ÂC»�‚kC\oÂC»)pC®çÁC»\OtCÍÌÁC»¸ÞxC\oÁC»®|C\ïÀC»)ÜC¤�ÀC»šY�C¤ÀC»…‚CR¸¿C»áz‚C®G¿C» 7�CÍ,¿C»nC�B¿C»®|CÃU¿C»®GxCìÑ¿C»fæsC)ü¿C»…«oC3SÀC»¸ÞjCq�ÀC»= fC¤0ÁC»×£aC…‹ÁC»qý\C)ÜÁC»öhXCffÂC»)ÜSCRxÂC»áúOC ×ÂC»3sKC¸>ÃC»šYGCq}ÃC»H!CCázÃC»)?CÍÌÃC»=Ê:C ÄC»ÍŒ6Cf&ÄC»…2C®GÄC»®‡.C¸>ÄC»ìÑ*C@ÄC»×#'CšyÄC»ì‘#CHAÄC» CH!ÄC»qýC×ÄC»R8C)|ÃC»q}C\ïÂC»� CHaÂC»×ãCR˜ÁC»R8CÃÁC»ö¨C�âÀC»{þBìÑÀCÏ%5<�ÿ�€ ‚f¦}Cö´C‚=Ê�C ¸C‚f‚CRx¸C‚×#~CHá³CÐ%!#)ÿˆ€ ‰×cuCN´C‰R8{C ·¸C‰ö¨{C쑸C‰)ÜuCf&´CÑ%!#)ÿ�€ � ×lC{T´C�ìÑrC¤Ð¸C�ÍLsC®§¸C�\OmC…+´CÒ%!#)ÿ–€ —ÍŒdCáZ´C—ÃujCfæ¸C—öèjCHÁ¸C—\eC¤0´CÓ%!#)ÿ�€ žö(\C{t´CžšbCqý¸Cž…bCáÚ¸Cž —\C¤P´CÔ%!#)ÿ¤€ ¥ÍŒSC3“´C¥R¸YC ¹C¥f&ZC¤ð¸C¥TC…k´CÕ%!#)ÿ«€ ¬R8KC…Ë´C¬šYQC\/¹C¬®ÇQCö¹C¬õKCH¡´CÖ%!#)ÿ²€ ³áºBC×ã´C³qýHCfF¹C³×cICH!¹C³Ã5CCR¸´C×%!#)ÿ¹€ º…:C®Ç´Cº\�@CHa¹CºìAC 7¹CºRø:C�¢´CØ%!#)ÿÀ€ Á332Cà´CÁá:8CÃu¹CÁf¦8CìQ¹CÁ¸ž2Cq½´CÙ%!#)ÿÇ€ Èáº)CÍ µCÈ{Ô/C¤�¹CÈÍL0C®g¹CÈÃ5*C�â´CÚ%!#)ÿ΀ Ï=J!C 7µCÏÃu'C®§¹CÏöè'C€¹CÏ�Â!CÍ µCÛ%!#)ÿÕ€ Ö…ëC…KµCÖšC¸¾¹CÖ…Cš™¹CÖ…kC µCÜ%!#)ÿÜ€ Ý�‚C¸>µCÝáºCÃÕ¹CÝ×#Cì±¹CÝ�C3µCÝ%!#)ÿ〠ä¤pC׃µCäšYCî¹Cä®ÇCöȹCä ×CHaµCÞ%!#)ÿê€ ëÃõÿB…µCëÃõCfºCëöhCHá¹CëázCáZµCß%!#)ÿñ€ ò WýB{Ô·Cò…+C¤P¸CòìQC\¹CòÀC¸¾¹Còáú CHaºCòšÙCûCòq½Cì‘»CòÀCš¼CòÍÌCÍL¼Còöh#C®g¼Cò\'C`¼Cò ×*CöH¼Cò®Ç.CR¼Cò¸Þ2Cfæ»CòÍÌ6Cà»Cò{Ô:C�¢»Cò?C W»Còá:CCR8»Còq½GC®'»Cò3óKC{´ºCò¸PCͬºCò®TCáZºCò)œXC�"ºCò®]CιCòÍÌaC¸ž¹Cò¸ÞfC)<¹Còq=kC… ¹Cò33pC�b¸Cò=ŠtCšY¸CòH¡xCáÚ·Còáº|C¸~·CòšÙC\·CòRx�C�¢¶Còöˆ‚Cá:¶Cò w‚CŵCò W�Cì±µCò)\C\¯µCòö(|CáúµCòìxCq=¶Cò= tCöˆ¶Còq½oCà¶Còö¨jC×C·Cò×cfCŽ·Cò WaC®¸Cò¸ž\Cöh¸CòR8XCqݸCòR¸SC 7¹CòfæOC{t¹CòõKC)œ¹Cò×cGC×ã¹CòšCC×CºCòHá>C=JºCò…:C…kºCòH¡6C¤ÐºCò=Ê2CöȺCò×£.C�âºCòq½*CqݺCòì'CàºCòÍŒ#CR¸ºCò� C=ªºCòR8CRxºCò×cC¸þ¹CòR¸C{t¹Còî C×£¸Còì‘C\O¸Còf&CHÁ·Còì‘C{”·CòìÑýB`·Cà%5<�ÿ¸€¹îB€˜C¹C¤CÀ@¹ C€ªC¸€½öB€˜C½C¤CÀ@½C€ªC¸€ÁþB€˜CÁ C¤CÀ@ÁC€ªC¸€ÅC€˜CÅC¤CÀ@ÅC€ªC¸€ÉC€˜CÉC¤CÀ@ÉC€ªC¸€Í C€˜CÍC¤CÀ@Í#C€ªC¸€ÑC€˜CÑC¤CÀ@Ñ(C€ªC¸€ÕC€˜CÕ#C¤CÀ@Õ-C€ªC¸€ÙC€˜CÙ(C¤CÀ@Ù2C€ªC¸Ý^C€�CÝgC€¥CÀ@ÝfC€¯C¸ábC€�CájC€¥CÀ@áiC€¯C¸åfC€�CåmC€¥CÀ@ålC€¯C¸éjC€�CépC€¥CÀ@éoC€¯C¸ínC€�CísC€¥CÀ@írC€¯C¸ñrC€�CñvC€¥CÀ@ñuC€¯C¸õvC€�CõyC€¥CÀ@õxC€¯C¸ùzC€�Cù|C€¥CÀ@ù{C€¯C¸ý~C€�CýC€¥CÀ@ý~C€¯C¸��C€�C��C€¥CÀ@�€€C€¯Cá%Ncuÿ†€‡vC€‘C‡�C)Ü‘CÀ@‡…C€‘C†€‹@qC=ê›C‹q½{C מCÀ@‹�¢�C@ C†€�îcC×C¤C� ×jC.©CÀ@�ffpC{¬C†€“®PCfæ¨C“f¦RC3Ó®CÀ@“H!UCf¦²C†€—ìQ;Cfæ¨C—3ó7C=ª®CÀ@—¸Þ6Cf¦²C†€›ì(C×C¤C›® CẨCÀ@›š™C{¬C†€ŸÀC=ê›CŸH¡C¤0žCÀ@ŸáºC@ C†€£C€‘C£ C×#‘CÀ@£C€‘C†€§ÀCÇC§�BCö(„CÀ@§áºCÀ‚C†€«ì(CRx}C«ö(!C×£sCÀ@«š™C ×mC†€¯ìQ;C33tC¯šY9CšYhCÀ@¯¸Þ6C3³`C†€³®PC33tC³Í TC…«hCÀ@³H!UC3³`C†€·îcCRx}C·RøkC=ŠtCÀ@·ffpC ×mC†€»@qCÇC»¸^|C\Ï„CÀ@»�¢�CÀ‚Câ%5<�ÿÀ ®‡CCf�C33S@ffž@ã%Íåñÿà FC€‘CffAÍ̸Aä%!#)ÿÆ€ ÇESC…‘CǸ^SC ’CÇ®ÇRCšy“CÇ�RC ”CÇšÙPC{t•CÇö¨OCáz–CÇ —NC —CÇ{ÔLCR¸—CǤpKC�B˜CÇ®IC®§˜CǤ°GC ·˜CÇÃ5FCÃõ˜CÇÃ5DC3³˜CÇ×#BC�¢˜CÇ{T@CöH˜CÇ —>CšÙ—CÇ×#=C)\—CÇ Cq=‹CÇ®@CÃÕŠCÇ®GBCÍlŠCÇÍ DC@ŠCǤ0FC)<ŠCÇH!HC…+ŠCÇ×£ICffŠCÇ…KCìÑŠCÇ= MC 7‹CÇ€NCÍÌ‹CÇ…«OC)œŒCÇ\QC¤p�CÇšRC\OŽCÇš™RC3S�CǤ0SC®g�CÇffSC€‘CÇÍLVC€‘CÇ…VC{4�CÇ3óUCqÝŽCÇÍ UCH¡�CÇ®SC ŒCÇ�ÂRC®‡‹CÇQC®‡ŠCÇáúNCHÁ‰CÇ®MC33‰CÇÀJCöȈCÇ®‡HCq}ˆCÇ®FC{tˆCÇ\�CC ˆCÇ@ACîˆCÇ=J?CáZ‰CÇ.=CR؉CÇ@;C¸ÞŠCÇõ9C)¼‹CÇ�B8C¥ŒCǤ07C¸¾�CÇ�‚6Cf�CÇ6C{T�CÇHá5CH�‘CǸÞ5C¤Ð’CǸž6C… ”CÇö¨7Cö(•CÇ=Š8Cf&–CÇ×ã9CÃ5—CÇ�;CÍL˜CÇ= =C= ™CǤð>C\¯™CÇ�BACì1šCÇ®‡CCÃušCǤ0FC¸¾šCÇÃuHCšyšCÇ{”JCì1šCÇ3óLCR¸™CÇÍÌNCš9™CÇ×#QC¸~˜CÇš™RC w—CÇáúSC{T–CÇ®ÇTC@•CǤðUCqý“CÇ)\VCHÁ’CÇÃ5VCìq‘Cå%!#)ÿ£ ¤šÙTC€‘C@¤3³TCͬ’C@¤@TC3Ó“C@¤�‚SCÍì”C@¤q}RCÃõ•C@¤R8QC®ç–C@¤R¸OC)¼—C@¤®NC¤p˜C@¤…+LCH™C@¤.JC=j™C@¤)HC=ª™C@¤FCÀ™C@¤×ãCC=ª™C@¤ìÑAC=j™C@¤{Ô?CH™C@¤Rø=C¤p˜C@¤®GC×ÇC‚RxBC¤p‡C‚ —FCRx‡C‚\ÏJC�¢‡C‚®ÇNCìˆC‚ázRCH�ˆC‚f&VC¸^‰C‚ WZC�‚ŠC‚= ^C\ï‹C‚Í bCff�C‚)œeC ׎C‚ iC�B�C‚3slCì‘C‚…ënCͬ‘C‚{”oC3S‘C‚)nC¤�C‚š™kC챎C‚HahC@�C‚ÃõdCÕ‹C‚q½`CŠC‚…\C3³ˆC‚=ÊWCÍŒ‡C‚€SCHá†C‚öhOCe†C‚…+KC�B†C‚áºFCöè…C‚\OBCÍ †C‚ —=Cq†C‚{”9C¤�†C‚=Š5Cöè†C‚Ha1C\o‡C‚…-C…ˆC‚¸)Cìñ‰C‚¤p%CáZ‹C‚33"C¸þŒC‚3sCͬŽC‚ ×C@�C‚HaC¤P‘Cè%!#)ÿ´€ µ)DCšy¬CµqýCCîªCµ)\CC3Ó¨Cµ=ÊBCq]¦CµîAC\¯£Cµ3óAC¡Cµ)BCf&ŸCµ×ãBC�CµÅCCöèšCµšÙDC ·˜CµìQFC…K–CµH!GC×ã“Cµ�‚GCŽ‘Cµ×£GC)|�Cµ®HC3S�CµáºGC¸þŠCµ�ÂGC\¯ˆCµ€GCìQ†CµÃuGC¸„Cµ×ãFC®g‚Cµö¨FC�€Cµq=FCqý~Cµ�ÂEC�Cµ —ECÅ€Cµ{TECìq‚Cµq}EC.„Cµ…«ECq]†Cµ®FCš¹ˆCµ®GFC׋CµšYFC3S�Cµ\OFC w�CµšYFC…‘CµÅEC…Ë“Cµ= ECf&–Cµ×£CCÍŒ˜CµÃuBCÀšCµ3sACšÙœCµì‘@C… ŸCµf&@Cf¡Cµ¸@CÀ£CµšÙ@C¸~¦Cµq}AC)ü¨Cµ{ÔBCÍ «Cµö¨CC�‚¬Cé%!#)ÿ〠ä= CìkCäqý C�ÂlCä¤p C…nCä¤ðCRxpCäšÙCH¡rCä)œC×£tCä= C@wCäšY!CÅxCäq½%CÍLzCä*C×£{Cä×#.C¸^|Cä W2CšÙ{Cä)6CšYzCä)Ü9Cö¨xCäÍÌ=C¤ðvCäR¸AC…ktCä…ECìÑrCä®GIC×ãpCäR¸LC3soCä@PCáºnCä×ãSC\oCäÀWC{TpCä¤0\C —qCäšÙ_CöèsCä×#dCì‘uCä)ÜgCHávCäÍLkC…kxCäìQoCExCä —sC3³vCä\�wC\�sCä\�{CpCäf&~CfækCä�b€C=ŠhCäq�C¤0fCä�â€C\ÏeCä\ÏC3³gCäf¦|C¤°jCä×£yCEnCä¤ðuC¸žqCä=JrCntCä®ÇnCR¸uCäáºkCHáuCäH¡hC\ÏtCä×ãdC{”sCäšÙ`C)ÜqCä3ó\CìÑoCä¸^XCšYnCä®GTC�mCä)PC¤ðlCäR8LC\ÏmC䮇HCq=oC䤰DC qCäÃõ@CqýrCäfæ¡C« = CHÁ£C« q½Cš9¦C« ö¨CHA¨C« \ÏCHaªC«  ×C¤�¬C« ö("C¸Þ®C« .%C{±C« ÍL(CR³C« )œ*C×µC« ¸^-CqݶC« ¸Þ/C¤¸C« f¦1Cá¹C« šY2Cå¸C« =J1Cì‘·C« =Š/Cì¶C« ö(-CÃ5´C« fæ*C33²C« f¦'C{4°C« \%C¸þ­C« šY"C®ç«C« ÍL C=Ê©C« RxCš¹§C« ¸^C)ü¥C« RøCÅ£C« ¤pC w¡C« ¸^CHaŸC« RxCÃ5�C« á:!C›C« ì‘"C{´˜C« …«#C…«–C« ×ã#C{t”C« �$C…+’C« ×c#C¸¾�C« =J"C®g�C« ×£!Cq=‹C« ×# CHA‰C« ¸ÞC¸ž‡C« ×#CÍì…C« \OCáÚƒC« ffCq=ƒC« …« C®ÇƒC« \ÏCìÑ„C« ¸^Cff†C«  C�BˆC« \�þBöŠC« \�ûBq]‹Cë%!#)ÿñ € ò ì‘�C ’Cò EŽC… “Cò š™�Cöˆ“Cò ‘Cáš“Cò ®'’CfF“Cò ¸^“CÅ’Cò = ”C’Cò Ãõ“Cìñ‘Cò ¸“CìQ’Cò qý‘CqÝ’Cò šù�C{T“Cò {´�Cá“Cò nŽCáš’Cò )œ�CH�’Cì%Ncuÿ‚ € ƒ ffŒCH��Cƒ ¸~�C\o�Cƒ {T�CבCƒ ‘C.‘Cƒ ¤Ð’C¤ð�Cƒ áz”C�Cƒ ÍŒ•C �Cƒ 3s•CöèŽCƒ {”C\O�Cƒ ì‘’C\O�Cƒ �‘C®�Cƒ �‚�C{T�Cƒ {Ô�Cf¦�Cƒ €ŒC¤P�Cí%!#)ÿ“ € ” ×c€CÃ5NC” ×c�CR8OC” 3³‚C¤ðOC” =êƒC…kPC” R8…Cq½OC” fF†C¤pNC” ö‡C)MC”  ÷†C×ãLC” ö†CõMC” {…CšOC” ®çƒC¤°OC” …Ë‚C¤0OC” …�CffNC” n€CáúMCî%Ncuÿ¤ € ¥ fæ~C@HC¥  w€CšÙIC¥ ®G‚Cf&KC¥ qýƒC{TKC¥ {Ô…C=ÊJC¥ ׃‡CáúHC¥ ÍŒˆC.GC¥ 3sˆCìÑFC¥  ‡Cš™GC¥ R˜…CÍŒIC¥ ÃõƒCìQJC¥ ìq‚CHáIC¥ =Ê€C\OHC¥ \C×ãGCï%!#)ÿµ € ¶ )QC\&C¶ R¸RCH!'C¶  —UC ×'C¶ šÙWC{(C¶ ¸žZCáº'C¶  ×\CÃu&C¶ ì^Cš%C¶ î]Cfæ$C¶ ÍL\CH¡%C¶ ìQZCfæ&C¶ {ÔWCáz'C¶ ÀUC×#'C¶ Í SC…+&C¶ 33QCìÑ%Cð%NcuÿÆ € Ç HáNC) CÇ {ÔPCÃõ!CÇ {TTCf&#CÇ )XC…k#CÇ 3³[C¤p"CÇ ×ã^C�!CÇ šaC33CÇ fæ`CÍÌCÇ š^CázCÇ R8[C�B!CÇ �XC W"CÇ ö¨TCìÑ!CÇ \�QCHa CÇ ìOCÅCñ%!#)ÿ× € Ø  × Cö(CØ {”"C CØ ×c%C{Ô CØ .(C€!CØ ®G*CÃu CØ ®Ç,CšYCØ ì.CšCØ î-CfæCØ ¸^,Cš™CØ Rø)C ×CØ H!(C{Ô CØ  —%C×# CØ )Ü"C)CØ fæ C¤ðCò%Ncuÿè € é HáC3óCé f&!CìÑCé …$C×ãCé š(Cf¦Cé ×£+C€Cé q=/Cf&Cé )1Cö(Cé ×ã0C ×Cé q}.CR¸Cé 33+CöhCé \(C —Cé î$C=ŠCé q½!CöhCé Í C¸žCó%!#)ÿù € ú ×£ëB 1Cú )\ïB)2Cú ¤pôB¸3Cú ìQúB�B3Cú …ëþB…2Cú ×ãC{”1Cú {Cš0Cú …ëCfæ/Cú ×cCR¸0Cú �BþBáº1Cú 33úBáº2Cú  ×ôB\O2Cú = ðB@1Cú ìÑëB ×0Cô%NcuÿŠ € ‹ èB3ó*C‹ ÍLìBÍÌ,C‹ ö(óBá:.C‹ �ÂùB×£.C‹ �‚CìÑ-C‹ ÃõC¤ð+C‹  C…+*C‹ öèC{Ô)C‹ 33Cì‘*C‹ fæÿB€,C‹ ¸žùB¤°-C‹ ôBáú,C‹ ®ÇíBìQ+C‹ )\èB¸ž*Cõ%!#)ÿ› € œ qžC®GrCœ Í,žC —oCœ {žC�BlCœ ìžC{jCœ ®žC)œhCœ …ŸC hCœ Íl CÅgCœ HA¡CH¡hCœ …Ë¡C{jCœ =J¢Cì‘kCœ 3s¢CáúmCœ Rx¢C.qCœ š™¢CRxsCœ ÍÌ¢C®‡sCœ =J£CEqCœ �B£C ×mCœ Rø¢C{kCœ Ha¢C33iCœ ¸ž¡Cf¦gCœ € CõfCœ ®gŸC gCœ q]žC¸žgCœ áZ�C�‚iCœ ®G�CÍLlCœ e�C�ÂoCœ …ë�CšYrCö%!#)ÿ¸ € ¹ ͬˆC\O C¹ ×ÈC¤ð C¹ ᚈCázC¹ f¦ˆCfæC¹ ×#‰C)œC¹ ŠC{ÔC¹ {ÔŠC\C¹ ͬ‹CÍÌC¹ ìqŒCH¡C¹ šÙŒC{TC¹ 3óŒC�C¹ RØŒCqý C¹ R�C€ C¹ N�C€ C¹ áš�Cì C¹ À�CC¹ Õ�CöèC¹ HáŒCÅC¹ î‹C¤°C¹ 3óŠCH!C¹ ìñ‰C®ÇC¹  ·ˆCffC¹ Íì‡CnC¹ Í̇C�‚C¹ \ï‡Cö( C¹ ¸~ˆCHa C÷%!#)ÿÕ € Ö )\XC W¬BÖ ÍLXC€¦BÖ �XCÃužBÖ ¤0XCHá—BÖ ÍŒYCáú”BÖ f¦[C”BÖ ¸^Cq½“BÖ õ_C¤p•BÖ  WaCq½—BÖ ÃubC®›BÖ õbCR8¢BÖ R¸bCö(©BÖ qýbCÃõ®BÖ öhcC= ¯BÖ ÍLdC®G©BÖ .dCš¢BÖ RøcC)ÜšBÖ ffbC®Ç•BÖ ìQ`CR8“BÖ ÍL^C{”‘BÖ €[CR¸‘BÖ ¤ðXCÍÌ’BÖ öèVC ×–BÖ �BVC¤pžBÖ q½VCÃõ¦BÖ �XC€¬Bø%!#)ÿò € ó ì#CÃuŽBó Rø"C\ˆBó …k"C{Bó áº"C…ësBó ¤p$C ×mBó \Ï&Cš™jBó Å(CffhBó ×£*Cq=mBó �‚,C{sBó ö¨-C ×zBó ).C…ëƒBó šÙ-C.ŒBó �B.C{”‘Bó ¸ž.C¸ž‘Bó  W/C)\ŒBó ¸ž/C)܃Bó á:/CÍÌxBó ®‡-C{oBó ¤0+C�ÂiBó 3ó(CR¸dBó q}&CR¸eBó Å#C¸iBó ×c!C®GqBó ¤ð Cq=Bó ì‘!C€ˆBó …«"C¸žŽBù%!#)ÿ� € � ö(ÑBR8ÕB� ö(ÒB\ÐB� fæÐB\ÈB� =ŠÑBR¸ÂB� …ÓB×£ÀB� R8ØBfæ¾B� .ÜB)\¾B� ffßBö(ÀB� ázâB¸žÂB� äB…ÆB� fæäB{”ËB� )\äB…ëÒB� q=åBáú×B� ÃõåBØB� ¤pçB×#ÓB� ö(èB€ËB� ×#çB=ŠÅB� €äBÁB� q½àB{¾B� {”ÜB{¼B� š™×B…k¼B� ®GÒB€¾B� ìÑÎB=ŠÁB� {”ÍB×#ÈB� ÃõÎB¤pÐB� …kÐBq=ÕBú%!#)ÿ¬ €­ ÈBÈB­ ÒB CÀ@­ îB;CÀ@­ CkC¬ €² ÎBÈB² ØB CÀ@² ôB;CÀ@² CkC¬ €· ÔBÈB· ÞB CÀ@· úB;CÀ@·  CkC¬ €¼ ÚBÈB¼ äB CÀ@¼ C;CÀ@¼  CkC¬ €Á àBÈBÁ êB CÀ@Á C;CÀ@Á CkC¬ €Æ æBÈBÆ ðB CÀ@Æ C;CÀ@Æ CkC¬ €Ë ìBÈBË öB CÀ@Ë  C;CÀ@Ë CkC¬ Ð C„BÐ CîBÀ@Ð #C'CÀ@Ð &C]C¬ Õ C„BÕ "CîBÀ@Õ &C'CÀ@Õ )C]C¬ Ú "C„BÚ %CîBÀ@Ú )C'CÀ@Ú ,C]C¬ ß %C„Bß (CîBÀ@ß ,C'CÀ@ß /C]C¬ ä (C„Bä +CîBÀ@ä /C'CÀ@ä 2C]C¬ é +C„Bé .CîBÀ@é 2C'CÀ@é 5C]C¬ î .C„Bî 1CîBÀ@î 5C'CÀ@î 8C]C¬ ó XCœBó TCCÀ@ó RCACÀ@ó OCcC¬ ø [CœBø WCCÀ@ø UCACÀ@ø RCcC¬ ý ^CœBý ZCCÀ@ý XCACÀ@ý UCcC¬ ‚ aCœB‚ ]CCÀ@‚ [CACÀ@‚ XCcC¬ ‡ dCœB‡ `CCÀ@‡ ^CACÀ@‡ [CcC¬ Œ gCœBŒ cCCÀ@Œ aCACÀ@Œ ^CcC¬ ‘ €ŠCC‘ €…C3CÀ@‘ {CgCÀ@‘ sC€†C¬ – €‹CC– €†C3CÀ@– }CgCÀ@– uC€†C¬ › €ŒCC› €‡C3CÀ@› CgCÀ@› wC€†C¬   €�CC  €ˆC3CÀ@  €€CgCÀ@  yC€†C¬ ¥ €ŽCC¥ €‰C3CÀ@¥ €�CgCÀ@¥ {C€†Cû%Ncuÿ« € ¬ )ÜÚB�¢ùC¬  ×ÜB®öC¬ \�ÞB¸>òC¬ ìQßB×£îC¬ ¤páB)ÜêC¬ ¸žâB33çC¬ ®GäB¤�ãC¬ .æB)ÜßC¬ šèBš9ÜC¬ éB ØC¬ ö(ëBšÙÔC¬ ÃõëB®GÑC¬ )\íBR˜ÍC¬ )\ïB®ÊC¬ šñB33ÆC¬ ffòBR˜ÂC¬ …kôBšù¾C¬ =ŠõBÃ5»C¬ ®öB¸ž·C¬ )ÜøBqý³C¬ ®ÇùB\o°C¬ )ÜúB{Ô¬C¬ \�üB®G©C¬ \�ýBấC¬ ¸ÿB×#¢C¬ ìC¸žžC¬ )œCq›C¬ ÃõCö—C¬ \OCqý’C¬ C{ôŽC¬  WCÍ ‹C¬ ¤°CšÙ†C¬ R¸C=JƒC¬ ìÑþB)\C¬ š™ûB3ówC¬ )ÜøBÅpC¬ ÍLõBáziC¬ òB3³bC¬  ×îBìQ[C¬ …këBáúSC¬ fæçBÅLC¬ \�äB®EC¬ {”áBöh>C¬ fæÝBöh7C¬ )ÜØBRø/C¬  WÕBšÙ(C¬ \ÑBRx!C¬ R¸ÍB@C¬ šÉB@C¬ R8ÆBÀ C¬ ÍLÁBÍŒC¬  WÁB)\ûB¬ =ŠÀB×#ìB¬ ÍLÀB®ÝB¬ ÀBìQÎB¬ Ãu¿B…ÀB¬ ÇB…k°B¬ 3³ÍBö(¡B¬ \ÛB…ë¢B¬ HáçBHa¢B¬  WîB�B°B¬ ÃõöB)ܽB¬ HáþB¤pËB¬ ®‡C רB¬ ¸C33æB¬ ×ãCö(ôB¬ ×#C¤ðC¬ ÃuCÍŒC¬ =ŠC�‚C¬ � C=ŠC¬ ẠC@C¬ \O C.#C¬ ¤0 C¸^*C¬ …«CR81C¬ €Cì8C¬ ö¨CÍÌ>C¬ Í C\�EC¬ ECÀLC¬ f&CìQSC¬ �‚Cì[C¬  —CR8`C¬ f& CÍLWC¬ ¤°C®OC¬ )œCÃõGC¬  C¤p@C¬ ×£C¤°8C¬ = CR81C¬ ö¨C)œ)C¬ ÃuC."C¬ =JCáºC¬ ®ÇC ×C¬ .CÃu C¬ .C…kC¬ fæCHaùB¬ ¸Cq=ëB¬ f&CHáÛB¬ =ŠCÎB¬ {ÔC®Ç¾B¬ fæC×£°B¬ \�Cff¢B¬ {ÔCö(‘B¬ 3óCÍÌ€B¬ š™Cö(bB¬ …+CJB¬ š™!C)\1B¬ )Ü'CÍÌ1B¬ …k.C1B¬ f¦2Cš™LB¬ {T6CÍÌiB¬ ®Ç6C)\‚B¬ 3ó6C×#�B¬  7CÍLžB¬ ìQ7Cš¬B¬ ìÑ7C×£¹B¬ ¸^7C{ÈB¬ �B8CÃõÕB¬ = 8Cq½ãB¬ Ha8C×#òB¬ E8Cf&C¬ Ãu8C×#C¬ ¸9C= C¬ \9C×#C¬ )9C×#C¬ )œ9C×ã"C¬ )œ9C¸*C¬ 3ó9Cöè0C¬ ìÑ9Cöè7C¬ ×ã9C33?C¬ ®:C FC¬ î:C×#MC¬  ×:CnTC¬ 33CCáúXC¬ ìÑDC…ëPC¬ …EC WIC¬ ázFCöhBC¬ šGC{Ô:C¬ \ÏGCÍŒ3C¬ ¤0HCÍL,C¬ Í ICìÑ$C¬ ÃuICf¦C¬ šYJC…+C¬ ÃõJC= C¬ ¸žKCáºC¬ {”LC€C¬ ×cMC×#òB¬ ®‡MC�ÂãB¬ ÍLNCffÕB¬  NC\�ÇB¬ ¸ÞNC×#¹B¬ �BOC«B¬ šÙOCœB¬ ö(PCÍLŽB¬ ¤pSC{�B¬ �BWCHáfB¬ €ZCq=LB¬ …+aC33VB¬ �BhC¤p`B¬ RøiCš™yB¬ ÀkCáú‹B¬ áºmCš™šB¬ ¤ðlCÍ̧B¬ f¦lCHa¶B¬  lC{ÅB¬ q}kC33ÓB¬ q½jC¤ðàB¬ 3sjCÃõïB¬ �ÂiCšþB¬ ¤piCÍLC¬ )ÜhC{ C¬ nhCš™C¬ =ŠgC�‚C¬ …ëfCÍÌ"C¬ ÃufCšÙ)C¬  fC…ë0C¬ �ÂeC 8C¬ \eC×#?C¬ q}dCnFC¬ \ÏcCö¨MC¬ )\cCR¸TC¬ R¸bCn\C¬ �ÂkCnfC¬  ×nCqý]C¬ ì‘pC×cVC¬ ×crC�BOC¬ EtCfæGC¬ ö(vC=Š@C¬ \xCff9C¬  —yCáú1C¬ ì‘{C)Ü*C¬ qý|CÍL#C¬ fæ~C×#C¬ á:€CH¡C¬ �"�C®G C¬ ö¨‚Cö¨C¬ N„C WüB¬ \�…CáúíB¬ ¥ˆC)ÜåB¬ \o‹C¸ÝB¬ ìqŽCáúæB¬ ìÑ‘C…ïB¬ ìQ‘C×#þB¬ 3ó�CìC¬ R¸�CÀC¬ \�CR¸C¬ ÃU�CnC¬ š™ŽCRx#C¬ fŽC{*C¬ �B�C{T1C¬ ¸~ŒC{8C¬ ŒC?C¬ )<‹C�ÂEC¬ ö¨ŠC®LC¬ 3³‰CR¸SC¬ @‰Cf¦ZC¬ šyˆCf¦aC¬ �â‡C…hC¬ R‡Cö(oC¬ �b†CRøuC¬ ͬ…C�}C¬ f…CÃÕ�C¬ …K„CRX…C¬ õƒCšY‰C¬ ¸~ˆCîŒC¬ š‹Cq}‰C¬ f�C׃†C¬ \ÏŽC×cƒC¬ ͬ�CH�€C¬ ö¨’CfæzC¬ 3s”CuC¬ N–CÍ oC¬  ˜C×ciC¬ {ôšC®dC¬ áº�Cq}^C¬ q= C=ÊYC¬ HA£CÍ \C¬ {t¦C×#^C¬ �B¨CáºfC¬ �ªCìÑnC¬ š¨CázuC¬ ¸>¦Cš}C¬ á:¤C×#‚C¬ ì1¢Cq}…C¬ 3S CöȈC¬ 3“žCì1ŒC¬ NœC׃�C¬ ׃šC\“C¬ \¯˜C¸^–C¬ �–Cq½™C¬ =ª”C¤�C¬ ÍÌ’CfF C¬ Há�CH¡£C¬ ¸>�C3ó¦C¬ ¸>�C 7ªC¬ ì‘‹C¸ž­C¬ H¡‰C=ʰC¬ R¸‡C¤0´C¬ ìQ‡C)¸C¬ à†CR˜»C¬ ×C†Cá:¿C¬ á†CRøÂC¬ š¹…CR˜ÆC¬ Í,…C.ÊC¬ 3Ó„C{ÔÍC¬ {”„CöˆÑC¬ = „Cf&ÕC¬ �ƒC)¼ØC¬ NƒCöHÜC¬ fƒC×ãßC¬ Ãu‚CH¡ãC¬ q=‚CHAçC¬ )Ü�CìñêC¬ ¤p�C®gîC¬ =ê€C\òC¬ ìq€C3³õC¬ �b€C=êøC¬ ¤ðzC®ÇøC¬ ®ÇsC¥øC¬ …«lC\�øC¬ \�eCRØøC¬ €^CÀøC¬  WWC=ŠøC¬ PC€øC¬ H¡HC —øC¬ \�AC®§øC¬ H¡:C¤°øC¬ Ha3C ·øC¬ \O,C øC¬ ì%Cö¨øC¬ )ÜC øC¬ fæC¥øC¬ �ÂC ·øC¬ €C ·øC¬ €CRØøC¬ ®ôB ·øC¬ ¸æBš¹øC¬ áú×BRØøC¬ ØB®'úC¬ {æBá:úC¬ ¸žôBq]úC¬ �‚C�BúC¬ \�CÃUúC¬ ÍÌCqúC¬ ×ãC\/úC¬ ÍÌCöHúC¬ Í %C=júC¬ ®G,CHaúC¬ )\3CázúC¬ ö¨:CeúC¬ ¸žAC×cúC¬ ¤°HCHAúC¬ �PC¤PúC¬ EWC WúC¬ n^CRXúC¬ )œeCáZúC¬ ÀlC3SúC¬ õsCš9úC¬ HázCnúC¬ ®�C¸>úC¬ =J‚CåõC¬ ¤°‚C®GòC¬ šƒCášîC¬ ¤pƒC¸ëC¬ q݃CeçC¬ á„CÍÌãC¬ R˜„C{àC¬ = …CázÜC¬ H�…C\ïØC¬ ¤ð…C)\ÕC¬ fF†C¤°ÑC¬ €†CRøÍC¬ î†CeÊC¬ ×c‡C\ÏÆC¬ šÙ‡CH!ÃC¬ \/ˆC=j¿C¬ šyˆCλC¬ ¸þˆCìQ¸C¬ ¤p‰Cq½´C¬ ö(‹C=ª±C¬ áúŒC®g®C¬ \ÏŽCR«C¬ fÆ�C…˧C¬ áz’Cq}¤C¬ q]”C=*¡C¬ ×#–C\ï�C¬ =*˜C3“šC¬  šCì1—C¬ ®œCfæ“C¬ מC�‚�C¬ ¸þŸCö�C¬ H¢Cš¹‰C¬ 3Ó£C¤p†C¬ áÚ¥CÍ ƒC¬ ì±§C¸ž~C¬ �©Cq=wC¬ å«CHánC¬ RØ©CšYeC¬ =ª§C¸Þ[C¬ qÝ£C{”XC¬ qÝŸC¤pVC¬ ¸~œC¸Þ[C¬ ®Ç™C —aC¬ ®–CîfC¬ ÍÌ”Cö(mC¬ �â’C\sC¬  ‘CáúxC¬ =*�C C¬ )\�C…‚C¬ Ž‹C)œ…C¬  ‰CÍŒˆC¬ €ˆC)‹C¬ 3…Cf¦ˆC¬ Í †Cš¹…C¬ öȆC…+‚C¬ ÍL‡Cö¨}C¬ =*ˆCf¦vC¬ ŽˆCq½oC¬ q]‰CH!iC¬  ÷‰C�BbC¬ \ÏŠC�B[C¬ n‹CöhTC¬ Í,ŒCšYMC¬ H�CnFC¬ Íl�C…?C¬ f&ŽCR¸8C¬ öÈŽC¤ð1C¬ =j�C×£*C¬ fF�C¤0$C¬ �‘C×#C¬ �‘C{TC¬ ¸’CìC¬ …’C{TC¬ …Ë’Cö¨þB¬ … “C.íB¬ n�C€áB¬ q}‹C=Š×B¬ )¼‡C€àB¬ 3S„Cö(êB¬ fÆ‚CúB¬ Íl�C…«C¬ š™C…k C¬ …ë}C®C¬ î{CnC¬ ffzCR¸"C¬ õxC×#*C¬ �‚vC@1C¬ {TuC\Ï8C¬ ¤°sC¸Þ?C¬ \OqCf&GC¬ …ëoC®NC¬ Ã5nC ×UC¬ \�lCáz]C¬ {TlC{”cC¬ RxeC¤0[C¬ H!fCîTC¬ RxfCìÑMC¬ �ÂfCš™FC¬  WgC W?C¬ RøgC=J8C¬ ¸ÞhC{1C¬ �iCqý)C¬ ì‘iC#C¬ q=jCÅC¬ {ÔjC=ÊC¬ ö(kC@ C¬ áúkCázC¬ ¤0lCÃuþB¬ ìmCHaðB¬ ®‡mC)\áB¬ Ã5nC×£ÓB¬ …nCffÅB¬ …ënC®¶B¬ H¡oC�B¨B¬ Ã5pCššB¬ ¤ðmC ׊B¬ šlCázwB¬ ¸jC¸YB¬ …ëaC×£MB¬ q}YC¤pBB¬ ¸UCffbB¬ )œQC)\~B¬ RøMC= �B¬ q=MC3³›B¬ …+MCq½ªB¬ ¤0LCR¸¸B¬ ìLC…kÇB¬ šÙKC¸ÕB¬ 3óJCffãB¬ =ÊJCHáñB¬ ×cJC@C¬ �BICázC¬ HáHC)ÜC¬ HC…ëC¬ 33GC¤pC¬ RxFC¸ž$C¬ ×#FCH!,C¬ \OEC{T3C¬ H¡DC¸ž:C¬ šDCö(BC¬ {CCìIC¬ ÍŒBC¤°PC¬ nBC3óVC¬ ìÑC¬ ì‘C…k7C¬ \OC…k0C¬ )ÜC®)C¬ RxC —"C¬ ìC€C¬  — C�ÂC¬ @ CìÑ C¬ Rø CšÙC¬ EC=JC¬ qýCÃõòB¬ ×ãC\�äB¬ ÍLCR8×B¬ ®ÇC¤ðÈB¬ {”ýB…ë¹B¬ HáôB¤p¬B¬ ¸žëBq½œB¬ ìQÛB¤ð›B¬ áúÉBš™›B¬ áúÀBáz­B¬ ®Ç·B�¾B¬ áz¹B…ÎB¬ Í̸B�ÂÝB¬ ¤p¹B…kìB¬ ºB=ŠûB¬ 33ºBH!C¬ =оB\Ï C¬ ®ÂB)C¬ ¤pÆBq=C¬ ®GÊBšY"C¬ áúÍBHá)C¬ ®ÒB×ã0C¬ ®ÇÖBn8C¬ =ŠÚBq=?C¬ ffÝB¤pFC¬ ìQàB®MC¬ ffäBìÑTC¬ ìQçB×#\C¬ ®ÇêB…cC¬ 3³íB…kjC¬ �ÂñB×£qC¬ ffõB¸žxC¬ ®GøBH€C¬ ÍLûB¥ƒC¬ )ÜþB¸þ†C¬ …kýB3óŠC¬ ®üBqÝŽC¬ HaüB=ê’C¬ {”ûB¤ð–C¬ …ëùB¸þšC¬  WùB¸~žC¬ Ãõ÷B¢C¬ ff÷BR˜¥C¬ …õB)©C¬ R¸ôB¤°¬C¬ = óB=J°C¬ �ÂñBìѳC¬ š™ðB{t·C¬ HáîB\»C¬ ¤píB…˾C¬ HáëB=jÂC¬ ffêBöÆC¬ ÃõèBšÙÉC¬ ¤pçBÍlÍC¬ \�åBH!ÑC¬ ¸äB=ªÔC¬  WâBÃuØC¬ �BáB¤ÜC¬ ×£ßB=ªßC¬ šÞBHaãC¬ ×#ÜB= çC¬ \ÛB{´êC¬ ®ÙB€îC¬ šØBšòC¬  ×ÖBšÙõC¬ ®ÇÔB…kùCü%!#)ÿþ ÿØB€ùC@ÿôB€·C@ÿþB›C@ÿC‡C@ÿÞB?C@ÿ¾BC@ÿ¼BÀB@ÿÌBžB@ÿêB B@ÿCÊB@ÿCZC@ÿC_C@ÿCC@ÿC¢B@ÿC`B@ÿ!C,B@ÿ/C,B@ÿ8ChB@ÿ@?A—=• ¯ED¯DîìÇFigure¤åæçèéêëìñò –C¯D€,ćà   ì  œÂ’ #ö(ÔÁ ×±ARüË?SF%Í@#HáÔÁ ×%BR)\Ç?S­úÌ@#{ÐÁ×£rBRÊÃÂ?S½ãÌ@#�ÂÅÁö¨ŸBR÷¿?SCÍ@¸ÁÆB?#{ÐÁ�ŸBRuÚ¿SýöÍ@#ÍÌàÁHárBR¼Ò¿S‡Í@#š™åÁ{&BR7È¿S�Í@#ázÞÁq=²AR7À¿SòÍ@ÐÁ@@? ##†AÃõ¬AR ³?SŸÍÔ@##R¸žAq=%BR§¸?SîZÔ@##R¸®A¤ptBR[±¿?SîZÔ@##¶A= ¢BRmVÅ?SÐÕÔ@#¸AÊB?##×£¬A®G¢BRHáÒ¿SÀ[Ô@##š™ŸA33uBR±¿Ô¿S0LÔ@##š™�A&BRt$׿SÐDÔ@##®GyA…ë­AR%Ù¿SHPÔ@#PA@?ÿ% ÿ/ #0ÂRȘ{¿Sçûù@#0`Á@@R.� ? @š™)Á?@ÍÌìÀfff?@33 ÁÍÌœ@š™™>? D33ÀÀ¿Dš™™>ÍÌŒ¿Dš™™¿š™Ù?š™™>? HffÆ@€ÀHÍÌAfffÀHAš™™?š™™>? LÍÌ�%ÿ>Q RˆÁ€@?#RÁÀ?R².n¾StFP@#R@¿RÓ¼ƒ¾Sh‘Q@#R0A`ÀRû\í¾SBÏ>@R�AÁ?#R0AR,e@SÉå[@#R@�@RÏ÷3@Sù1V@#RÁÐ@RaGÀS<½J@‚*�Á"�A[&Žÿ[&.zÿÿ'ffæ>[&Žÿ'€?QÁ €ÁœÂ`abcde €Àffæ¿fgÍÌÌ??ƒ%©«œÿgÁe�Âu½k l Àš™?#lÀ\�B¿RAñã½S¡ø‘?#lffæ?\�B¿R $(>Sp_—?l @ÍÌÌ>š™?#l@‘í|?R¶„D@Sçû™?#lÍÌ ÀÕxi?Rð@ÀSBÏ–?„"°@s&½¾°ÿs&—”ÿ'ffæ>s&]P:ÿ'€?kÁóR¸?e�Âu½®Ga>xy�A�A…"A{&€w\8{&\N7'33³>{&H7&'€?yÁóìQ8= €AœÂ€�‚ƒ„… €@ff濆‡ÍÌÌ??†%©«œÿ‡Á…)\=‹ Œš™yÀš™?#Œ®Ç¿š™¿RÔšæ½SÓ¼c?#ŒF¶³?š™¿RGr9>S[Ól?Œš™y@ÍÌÌ>š™?#Œ®Ç?®G?RºkE@Sp?#Œã¥Û¿ìQ8?Rû?ÀS±Pk?‡"®G‰@“&½¾°ÿ“&—”ÿ'ffæ>“&]P:ÿ'€?‹ÁóR¸?…)\=®Ga>˜™�A�Aˆ"A›&€w\8›&\N7'33³>›&H7&'€?™ÁóìQ8=ŒÂ ˜B˜B‰"B¢&lfR ¢&?3#'ÍÌ ?¢& '€?* \¨ Á¨ #©ÂÃR‡y¿S' A#©ÁÃRìÀ¹=S¢EA#©¨A ÃRù 7?SìQ&A#©BØÂRA‚²?SǺEA#©B€ÂRÃdÊ?SØ€A#©B@ÁRñcÜ?S�(xA#© AàARÚ¬&@S½ãA#© Á€ARû&ÀS2U-A#©Â ÀR×ú¿S"ýNA#©Â`ÂR‡§Ï¿S;��A#©$ÂÌÂR' Á¿SR¸eAŠ%ÿ ÍÌL¿š™™¿¶ #·= ÂÍÌÃRÐt¿S™»(A#·ö($Á€ÃR33³=Ss×'A#·…¿AÍLÃRŠ3?S'Â:A#·®G-BÍÌÞÂRг±?SÀYA#·= B|ÂRÞqÊ?SÙÎŒA#·R¸(Bš™¹ÀRäÝ?SΙˆA#·ff¶AÍÌBRq¬'@SÎ$A#·ff6ÁÈARrù'ÀS9ÖCA#·ö($Â33ó?Rq¬û¿S]ÜdA#· ×1ÂÍÌXÂRÉåÏ¿S8xŽA#·Ãõ:š™ÑÂRW[Á¿SŒ¹|A‹%ÿ `ÁÃÄÅÆÇÈÉÊ #ËÍ̆Á®ÂR[±ß¾S!°œ@#ËìQXÀR¸)ÂR/�¾S-²™@#Ë…ë)A…6ÂRNѾS·™@#Ë33ÉA{:ÂR;pN¼S µœ@Ë B8Â?#ËìQÌAq=3ÂR×B@SÊ2š@#Ëö(4Aff+ÂRª‚=@S±P™@#Ë)\/Àš™ÂRQÚ7@S†Z™@#Ë®ƒÁ × ÂR#J3@S*:š@ËðÁðÁ?Œ% ÿÉ× #ØL ARY†ÀSòA{@#Ø@ÂÐÁR«Ï�¿SB>SXÊ”@#‰HáBA)\?ÃR¢´×>S ”@#‰×£ÄAö(9ÃR7‰?S¹ü“@#‰ÍÌBöè1ÃRo?SXÊ”@‰@B*Ã?#‰33B —0ÃR¼)ÀS)í“@#‰ö(¼A= 7ÃRà¾*ÀSé“@#‰…ë1Aq==ÃRŽ,ÀSÆÜ“@#‰33³¿¤0CÃRl -ÀS)í“@‰`ÁIÃ?�% ÿñ• –šÂÀA @#–�ÂÀÁR†8¾¿Ss×�A#–ˆÂ¤ÂRˡſS c•A#–ŠÂÃRvq»¿SIŠA#–dÂ9ÃRNÑ‘¿Só_A#–ÂTÃR®Ø¿S™**A#–@À[ÃRµ7øA#–hB6ÃRƒ�?SõJZA#–†BÃR{¾?SKêxA#–„B²ÂRAñÃ?S¤p…A#–ŽBÂRÍ;¶?So’‘A–¤B˜A€@#–XBHBRª‚@S&XA#–˜AŒBR˜nF@S•ÔBA#–˜ÁTBR.�DÀS6Í=A#–P‚BR·b+ÀSWì,A�% ÿñ ÍÌŒ?ÍÌL?© ªšÂÀA @#ª�ÂÀÁR†8¾¿Ss×�A#ªˆÂ¤ÂRˡſS c•A#ªŠÂÃRvq»¿SIŠA#ªdÂ9ÃRNÑ‘¿Só_A#ªÂTÃR®Ø¿S™**A#ª@À[ÃRµ7øA#ªhB6ÃRƒ�?SõJZA#ª†BÃR{¾?SKêxA#ª„B²ÂRAñÃ?S¤p…A#ªŽBÂRÍ;¶?So’‘Aª¤B˜A€@#ªXBHBRª‚@S&XA#ª˜AŒBR˜nF@S•ÔBA#ª˜ÁTBR.�DÀS6Í=A#ªP‚BR·b+ÀSWì,A‘%#ÿ 𽾿ÀÁ #Âq=ŸÂš™EARÒoÇ?S'1aA#Â)Ü¡Â�ÂYBR"lÐ?S�`A#Â…ë¨ÂÍÌÀBRV}Ö?SÚ¬`A#€³Âá: CR¾ŸÚ?SJ aAÂÀÂ4C?#Â…ë·Â{ CR_¾¿SrŠ`A#€±ÂR8ÀBR%Á¿Sú~`A#Â)\­Âq=XBR6ÍÿS.�`A#Â{”ªÂ…?ARòÁ¿SØ�`A¤ÂðÁ?Á #Í�ÂÿÁq=EBRúíÃ?Sd]C?#Í= Â\ÏCRÃÓÿS9Ö;A#ÍázÂq=ïBRZÄ¿SgÕ;A#ͮ רBR Å¿SQÚ;A#Í×£  ×DBRh‘Å¿S#Û;AÍÂ`A?Á #ØázºA×£ABRºIÄ?STRBA#Ø�ÂÅA×£©BR¨ÆÃ?S�SBA#Ø\�ÒA¤pòBRCÃ?SQBA#ØHáàA)œCR1™Â?SøSBAØðABC?#Ø)\ÉAq½CRõÛ׿S ÒBA#Ø\�¬A)ÜòBRœ3Ò¿SˆcBA#Ø�ŸA\ªBR¥,Ë¿SffBA#ØÃõ¢Aö(BBR�Å¿S‰ÒBAذA@A?Á #ã®Ç¥BR¸ARá Ã?SC\A#ã�§BÍÌIBRØðÄ?S�1\A#ãš«Bff·BR¬Â?SC\A#ãR¸°B¸ÞCR„ ¿?S£#\Aã¸B.C?#ãÍL¬BCR¥½Ù¿SŸ«\A#〢Bfæ·BR�Õ¿SgD\A#ã�BœBö(KBROÏ¿S-!\A#ã¤pšBARk+Æ¿S•Ô\Aã BÂ?’% ÿÀï #ð@À@ÀR.� h¾S½ã1A#ðÔBÂRÁ9?Sš+A#ðCÁRýö�?S¼bA#ðC(BRœ3Ê?SÖV•A#ðCÐBRôÜ?SâØ´A#ðâB0CRxzí?Sì@“A#ðÄBRCR±á=@SÎ A#ðxB9CRð.ÀS]þVA#ðÀA2CR~Œ=@Sÿ²PA#ðpÁGCR+=@SgÕHA#ðHÂ@CRq1@SeªpA#ðÆÂhCR=›EÀSížEA#ðøÂS÷ä}A“% ÿÀ ÍÌŒ?ÍÌL?† #‡@À@ÀR.� h¾S½ã1A#‡ÔBÂRÁ9?Sš+A#‡CÁRýö�?S¼bA#‡C(BRœ3Ê?SÖV•A#‡CÐBRôÜ?SâØ´A#‡âB0CRxzí?Sì@“A#‡ÄBRCR±á=@SÎ A#‡xB9CRð.ÀS]þVA#‡ÀA2CR~Œ=@Sÿ²PA#‡pÁGCR+=@SgÕHA#‡HÂ@CRq1@SeªpA#‡ÆÂhCR=›EÀSížEA#‡øÂS÷ä}A”%#ÿ ´ÂèÂ�žŸ )¡P�Ï?YÍ,ŠC¢£¤¥¦ #§¸gB{Î@R+•¼S™A#§ÍLæBÍ̼@R.� ;Siï˜A#§áz,Cà@RpÎ=Syé˜A#§ÅeC®AR‹lg=S™A§f†�C®WA?#§R¸eCR¸JAR“HÀSÉå˜A#§×c,C®ÿ@?¦ #²×£óB�ÂÍÀR�ÂõhØA#¿…WC= oÁR8øÂ?ÁÊ‘¿ß #à� Bff†ÁR¼thØA#à…WC= oÁR8øÂ› B×£0@À?›š™Y@À?š�€Æ¿\�A × A˜% ÿ—£¤ ¥= ¿Há‚@@¥R¸ÀázT@@¥®GqÀö(Ü?@¥ö(„Àáz”¾@¥R¸^ÀR¸À@¥¤pý¿ÃõhÀ@¥áz„À@¥= 6B33cÀ@¥š™@¥{@BìQø?@¥Há:Bš™I@@¥4B�Âe@@¤¾Ð¿®G)A\�A™% ÿ–¶· ¸ff&¿…ë‘@@¸0À…k@@¸{†Àázô?@¸Há’ÀÃõ¨¾@¸®wÀ)\À@¸¤p ÀÃõ€À@¸33“À@¸q=bBq=zÀ@¸áziBHáJÀ@¸ffnB…ëÑ¿@¸�ÂoB)\�>@¸ìQmBÃõ@@¸š™gB{^@@¸`B¤p}@@š% ÿ‘ ×#>ÍÌL@ÈÉÊ)Ëݵ„¼YxB(ÌÍÌL½YDB(Í ×£½Y(BÎÏÐ Ñ33cÀÀ?Ñ(BìQ8ÀÀ?Ñ`BÍÌÌ>Ñ(BìQ8@À?Ñ33c@À?Ð缿®G!A…ëA›% ÿÍÙÚ Ûö(¿×£ˆ@@Û¸%À¤p]@@Û…{Àffæ?@Û…ë‰Àš™™¾@ÛÃõhÀ¸À@Û¸À\�rÀ@Ûq=ŠÀ@Û¸FB¤pmÀ@ÛÃõLB@À@Û×£QBffÆ¿@Û…ëRB¸…>@Ûš™PB®G@@Ûö(KB…ëQ@@ÛDBp@@Út$ǿף0A®G!Aœ% ÿÌìí î…+¿ìQ˜@@îìQ8À�Âu@@î…‹ÀR¸þ?@îÃõ˜À{®¾@î®G�À�Â%À@î33ÀR¸†À@îš™™À@î)\zB\�‚À@î¤ð€B ×SÀ@Bö(Ü¿@îq=„Bš™™>@îÃõ‚BR¸@@î…ëB®g@@îxBö(„@@�% ÿ‘ ìQ8¾fffÀþÿ€)� ‰°½YhB(‚ÍÌL½Y‡ B×£0@À?‡š™Y@À?†Añ³¿\�A × Až% ÿƒ�� ‘áz¿Há‚@@‘R¸ÀázT@@‘×£pÀ¤pÝ?@‘ö(„Àáz”¾@‘)\_ÀR¸À@‘¤pý¿ìQhÀ@‘áz„À@‘= >B33cÀ@‘š™DBìQ8À@‘= IBR¸¾¿@‘ìQJB€>@‘{HBìQø?@‘HáBBš™I@@‘@¤ìQuBÃõ@@¤š™oB{^@@¤hBÍÌ|@@ % ÿ‘ \�¿ ×Á´µ¶)·�%¾Y½B¤p@À?½…ëA@À?¼¨Wª¿� A®Gù@¡% ÿ¹ÅÆ Ç¸¿š™i@@Ǥp À¤p=@@ÇffVÀ ×Ã?@Ç…kÀ¸…¾@Ç= GÀR¸þ¿@Ç\�â¿R¸NÀ@Çö(lÀ@ÇÍÌBHáJÀ@Ç×£B ×#À@Ç×£#Bq=ª¿@Ç�Â$B…k>@Ç�Â"Bö(Ü?@ǸB333@@ÇBö(L@@Æ•´¿HáA� A¢% ÿ¸ØÙ Úáz¿…ë�@@ÚÍÌÀ…ëQ@@ÚR¸nÀHáÚ?@ÚHá‚Àáz”¾@ÚÍÌ\À¤p À@Úö(ü¿fffÀ@Ú33ƒÀ@Ú>B)\_À@Ú¤pDB¸5À@ÚÍÌHBö(¼¿@Ú{JB€>@Ú ×GBázô?@Ú�ÂBB�ÂE@@ÚYB(YBïðñ òÍÌlÀÀ?òBffFÀÀ?ò0BÍÌÌ>òBffF@À?òÍÌl@À?ñt$׿AA¤% ÿîúû ü333¿{ž@@ü)\?À€@@üš™‘À�Â@@ü®ŸÀìQ¸¾@üR¸†ÀÍÌ,À@üš™ÀázŒÀ@ü À@üìQB…ë�À@ü ×!B…ëQÀ@üHá&BHáÚ¿@ü)\(Báz”>@üÍÌ%B{@@üHáBfff@@üB33ƒ@@¥% ÿ�Œ�Ž #�¸]A®gÀRcÙ½S]m•@#�{ÞA= ŸÀR0L¦½SX•@#�…ë&Báz¼ÀRÍÌL½Sj•@#�Ãõ^B ×ËÀRð…ɼS|•@�€‹B\�ÒÀ?#�ìQ_BR¸žÀRþCB@S]m•@#�\�'B= gÀR˜ÝC@SX•@#�)\ßAö(,ÀRÆÜE@S)\•@#�R¸^A¤p ÀRî|G@S|•@�ÍÌ̽À?Ž #šff~A®�@Rœ3¢¼S “‘@#šìQìA33‹@RÊTÁ;S‘~‘@#šR¸,BÍÌ”@R-²=S‘~‘@#š33cBÍ̬@RJ{ƒ=S¯”‘@š ׌BÍÌÌ@?#š{cBš™Ù@R’ËG@S “‘@#š…,B{Þ@RO¯HÀSvq‘@#šìAázÔ@R1™FÀS‘~‘@#š…ë}Aáz¼@RÃõDÀSË¡‘@š@ázœ@?¦% ÿ�¦ #§…ëyA…ëùÀRf÷ä½SøS0A#§…ë=B337ÁR9´È½S®Ø*A§�žB®GaÁ€@§ ×™B×£€A€@#§š™JBR¸6ARZ@ÀS8gA#§…“A¸AREØDÀS•6A#§)\�Á¸Ý@Rš4ÀSGÎ@#§ בÁq=‚ÀRF%Õ¾SÅ Â@¦²�Ï¿ q=™B¤p!A(A A¦²�Ï¿ =Š˜B33S@(A A¦²�Ï¿ ×—B)\_À(A A¦²�Ï¿ .—B{Á(A A§% ÿ‡µ¶·¸ #¹®$B¸%ÀRÒ^½SÛù[A#¹q½¤B= �ÀRJ{½S¤ß[A#¹ö(÷B)\§ÀRuš»SÜ×[A#¹\Ï$C…›ÀRçŒÀR’ËG@SŸÍ[A#¹®G÷B… ÀRQÚG@SÍÌ[A#¹)ܤB�µ¿RéG@SÙ[A#¹ ×$B333¿R+öG@S®Ø[A¹?¨% ÿ·Å #Æ…ë4B)\‰ÁRà-@@ÒÃÕ€C¤p]@@@Ò)\C ׳@@@Ò=J|CÍÌÌ@@@©% ÿ· d;??7‰‘¿â #ã…ë4B)\‰ÁRà-@@ïÃÕ€C¤p]@@@ï)\C ׳@@@ï=J|CÍÌÌ@@@ª%#ÿ ´BèÂÿ€�‚)ƒ£’Â?YÍ,ŠC„…†‡ˆ #‰…ëfB{ÁRí ¾¼Ssè˜A#‰¸æBff*ÁR “©¼S­é˜A#‰×c,C<ÁRà-�¼Smç˜A#‰R¸eCR¸JÁRþew¼SÉå˜A‰f†�C®WÁ?#‰ÅeC®ÁRGrE@S™A#‰áz,CàÀRÀìF@Syé˜A#‰ÍLæBÍ̼ÀR±¿H@Siï˜A#‰¸gB{ÎÀRÉåGÀS™A‰…ëÑ>®ÿÀ?ˆ #”…óB ׋@R+‡½SÐDvA#”šÙ'Cà?RèÙ,½S¬vA#”RøUC�Âõ>R©P¼SevA#”¤‚Cáz?R£#9G@SovA#”×£óB�ÂÍ@Rt$G@SµvA”ff—BHáú@?«% ÿ‡  #¡¸—Á\�ˆAR h&ÀS}ÐA#¡®G©ÁR¸ˆÁRìÀY¿SðA#¡…ë«Aš™çÁR®¾S˜ÌƒA#¡…k¯BÍÌüÁRê•2¼SΈ¯A#¡�Â'CìQôÁRuš;Sö—¶A#¡¸ÞoC¸÷ÁR/]¼SèY¨A¡šC�ÂÂ@¡À‘C{²Á€?¡×£®C×£‚Á@¡�b˜Cq=òÀ€?¡¸¤CìQh@@¡×ã�C33;A€?#¡…WC= oARfˆG@S cÑA#¡®æB�Â}AR8gH@S>hØA#¡� Bff†AR…|H@S¡A  ±ffÆ¿q=.A@@±\�ÒÀÃõ A@@± Á\�’@@@±…/Á®G¿@@±ö(Áff¾À@@±Ãõ¨ÀffÁ@@±0Á@@±¤ÐŠC\�Á@@±¸ÞŒCR¸æÀ@@±EŽCpÀ@@±=ªŽC ×#?@@± ÷�C…›@@@±ÃUŒCÍÌü@@@±.ŠCA@@¬% ÿ‡ HáZ?‹l‡¿Á #¸—Á\�ˆAR h&ÀS}ÐA#®G©ÁR¸ˆÁRìÀY¿SðA#Â…ë«Aš™çÁR®¾S˜ÌƒA#Â…k¯BÍÌüÁRê•2¼SΈ¯A#Â�Â'CìQôÁRuš;Sö—¶A#¸ÞoC¸÷ÁR/]¼SèY¨AšC�ÂÂ@ÂÀ‘C{²Á€?Â×£®C×£‚Á@Â�b˜Cq=òÀ€?¸¤CìQh@@Â×ã�C33;A€?#Â…WC= oARfˆG@S cÑA#®æB�Â}AR8gH@S>hØA#Â� Bff†AR…|H@S¡AÁ ÒffÆ¿q=.A@@Ò\�ÒÀÃõ A@@Ò Á\�’@@@Ò…/Á®G¿@@Òö(Áff¾À@@ÒÃõ¨ÀffÁ@@Ò0Á@@ҤЊC\�Á@@Ò¸ÞŒCR¸æÀ@@ÒEŽCpÀ@@Ò=ªŽC ×#?@@Ò ÷�C…›@@@ÒÃUŒCÍÌü@@@Ò.ŠCA@@­%#ÿ„ Í,ŠCâãäåæç)è_)K;Y=J|Cé =J|Cêëìíîï)ð³{r»Y33œBñ 33œBòó \�? ×Áôõö)÷EØp½Y`B(øÍÌL=Y4B(ù ×£=Y Búûü ýš™YÀÀ?ý B×£0ÀÀ?ýXBÍÌÌ>ý B×£0@À?ýš™Y@À?üVŸË¿\�A × A®% ÿù…† ‡= ¿33ƒ@@‡{ÀázT@@‡×£pÀ¤pÝ?@‡ö(„Àáz”¾@‡R¸^À)\À@‡R¸þ¿ÃõhÀ@‡áz„À@‡6B33cÀ@‡š™@‡{@BìQø?@‡Há:BÃõH@@‡4B�Âe@@†åaÁ¿®G)A\�A¯% ÿø˜™ šff&¿…ë‘@@š0Àö(l@@š{†Àázô?@šHá’ÀÃõ¨¾@š®wÀ)\À@š¤p À®G�À@š33“À@šq=bBq=zÀ@šáziBHáJÀ@šffnB33Ó¿@š�ÂoB)\�>@š®GmBÃõ@@šš™gB{^@@š`BÍÌ|@@°% ÿó ×#>ÍÌLÀª«¬)­ݵ„³(BìQ8@À?³33c@À?²ï8Õ¿®G!A…ëA±% ÿ¯»¼ ½ö(¿Ãõˆ@@½¸%À¤p]@@½…{Àffæ?@½…ë‰ÀR¸ž¾@½ÃõhÀ�ÂÀ@½ázÀ\�rÀ@½q=ŠÀ@½¸FBÍÌlÀ@½ÃõLB@À@½š™QB®Ç¿@½ÃõRBq=Š>@½š™PB…ë@@½ö(KB\�R@@½DBp@@¼ûʿף0A®G!A²% ÿ®ÎÏ Ð{.¿˜@@ÐìQ8À�Âu@@Ð…‹À@@ЮG™À{®¾@ЮG�À�Â%À@Ð33ÀR¸†À@К™™À@ÐìQzB\�‚À@ÐÃõ€B ×SÀ@ЀƒBö(Ü¿@Ðq=„Báz”>@Фð‚BR¸@@Ð…ëB®g@@ÐxBö(„@@³% ÿó ìQ8¾fff@àáâ)ã ‰°=YhB(äÍÌL=Yé B×£0@À?éš™Y@À?è².Þ¿\�A × A´% ÿåñò ó= ¿33ƒ@@óR¸À ×S@@ó×£pÀ¤pÝ?@óö(„Àáz”¾@ó)\_ÀR¸À@ó¤pý¿ìQhÀ@óáz„À@ó= >B ×cÀ@óš™DB®7À@ó= IBR¸¾¿@óìQJB¸…>@ó{HBìQø?@óHáBBš™I@@ó@† ìQuBÃõ@@† š™oBR¸^@@† hBÍÌ|@@¶% ÿó \�¿ ×A– — ˜ )™ �%>YŸ B¤p@À?Ÿ …ëA@À?ž KÈç¿� A®Gù@·% ÿ› § ¨ © ¸¿š™i@@© ¤p À¤p=@@© ffVÀ ×Ã?@© …kÀ¸…¾@© ffFÀR¸þ¿@© ®Gá¿)\OÀ@© ö(lÀ@© ÍÌBHáJÀ@© ®B ×#À@© š™#Bq=ª¿@© �Â$B…k>@© �Â"B¤pÝ?@© ö(B ×3@@© BÍÌL@@¨ ÛŠÝ¿HáA� A¸% ÿš º » ¼ áz¿…ë�@@¼ ÍÌÀ\�R@@¼ {nÀHáÚ?@¼ Há‚Àáz”¾@¼ ÍÌ\À¤p À@¼ ö(ü¿fffÀ@¼ 33ƒÀ@¼ Ãõ=B)\_À@¼ ¤pDB¸5À@¼ ÍÌHBö(¼¿@¼ = JB€>@¼ HáGBázô?@¼ �ÂBB�ÂE@@¼ YBÑ Ò Ó Ô ÍÌlÀÀ?Ô BffFÀÀ?Ô 0BÍÌÌ>Ô BffF@À?Ô ÍÌl@À?Ó ûº¿AAº% ÿÐ Ü Ý Þ �Â5¿ffž@@Þ )\?À€@@Þ ®G‘À¸@@Þ ®ŸÀ33³¾@Þ R¸†À¤p-À@Þ š™ÀázŒÀ@Þ  À@Þ ìQB…ë�À@Þ ÍÌ!B…ëQÀ@Þ …ë&BHáÚ¿@Þ )\(B)\�>@Þ ÍÌ%B¤p @@Þ  ×Bfff@@Þ B33ƒ@@»% ÿñî ï ð #ñ R¸^A¤p @Rð…É@Rœ3¢S|A¨ \ÏUC¤p=Á@¨ ¤pHC= �À€?¨ À_Cff*A@#¨ šY?CÃõ�ARòE@S㶘A#¨ 3³ÚB�Â�ARz¥HÀS•ÔÂA#¨ …ë4B)\‰ARÌH@S—¥A§ ´ …«¿\�A@@´ {¶À…ó@@@´ q= ÁÍÌ|@@@´ ®Á…+¿@@´ ®ÿÀáz¤À@@´ …ë‘À¤pÁ@@´ Á@@´ ¤0}C\�ÊÀ@@´ €C ×£À@@´ �CHá*À@@´ ÃU�Cffæ>@@´ ÃÕ€C¤p]@@@´ šYC…³@@@´ ®G|CÍÌÌ@@@¿% ÿ™ #ÛY?Ù·¿Ä #Å ¤pmÁázŠAR®¶&ÀSŒJ;A#Å {rÁ…ë•ÁRL7)¿SY,A#Å ffBáz²ÁR¯%d½Srù´A#Å ®ÇðBffÒÁRNÑS|AÅ \ÏUC¤p=Á@Å ¤pHC= �À€?Å À_Cff*A@#Å šY?CÃõ�ARòE@S㶘A#Å 3³ÚB�Â�ARz¥HÀS•ÔÂA#Å …ë4B)\‰ARÌH@S—¥AÄ Ñ …«¿\�A@@Ñ {¶À…ó@@@Ñ q= ÁÍÌ|@@@Ñ ®Á…+¿@@Ñ ®ÿÀáz¤À@@Ñ …ë‘À¤pÁ@@Ñ Á@@Ñ ¤0}C\�ÊÀ@@Ñ €C ×£À@@Ñ �CHá*À@@Ñ ÃU�Cffæ>@@Ñ ÃÕ€C¤p]@@@Ñ šYC…³@@@Ñ ®G|CÍÌÌ@@@À%#ÿ á â #ã …ë(¸MÁRd;¯?SþTœA#ã Âáz3BRòA·?Sá›A#ã ö(ÐÁ…ëÍBR9Ö½?SÃõ›A#ã ²Á×c!CR³{Â?S�BœAã  Á\C?#ã 33ÉÁÀ!CRˡտSé›A#ã ®ûÁ�BÏBReªØ¿S/Ý›A#ã ázÂHá6BRœ¢Û¿Sá›A#ã ázAÂÍÌ@ÁRøSÛ¿Sßà›Aã `ÂŒÂ?â #î ®+B×£¦ÁRŸÍÚ?S,T”A#î … BR¸BR33Û?S W”A#î ®ÙA¸ž²BR×£Ø?SBO”A#î = ©A —CRDúÕ?SsW”Aî €AHC?#î ¸•A=JCR7‰Á¿Sç�”A#î ff´AÃu±BR¤p½¿S‚b”A#î  ×åA ×BRù ·¿S·Q”A#î š™B ׫ÁR̰¿SC­”Aî HB˜Â?Á% ÿá ú #û BòÂRøSƒ>Sk+¨A#û ¨B¾ÂRd;?S².‚A#û ¸BÂRYÇ?S†Z­A#û ¬B BRÚ?S–2ÓA#û ŽBìBR¬­Ø?S®6ÐA#û †B>CRbÐ?SZõÂA#û |B„CRΈ@SÙN°A#û ˜CRw¾C@Sí� A#û d‰CR¸@ÀSO¯©A#û €ÂBCR×Ò¿SM„ÐA#û ˆÂìBR§Ø¿SÉvÅA#û ¤ÂB#ž (B€êCR¬­Ð¿SÄñœB#ž €AVCR›U׿Stµ§BÄ% ÿŒ t۩ ª « ¬ #­ {BÁÅ"CR®GÑ?S—�*B#­ )\«Áö(‘CRh"Ô?S†x*B#­ HáÂ�ÂÐCRΪ×?SŒy*B#­ ¸J®DRˆ…Ú?Sì‘*B­ ŠÂÀ'D?#­ {RÂá DR“:¹¿SÒ€*B#­ �š™ÐCRo»¿S”v*B#­ ¸ÅÁ‘CRB`½¿S®v*B#­ …ëaÁì‘"CR8¿¿Sì€*B­  À B?Å%%ÿ« ¹ #º €ÁVCR›U×?Stµ§B#º (€êCR¬­Ð?SÄñœB#º 0Â+DRaÛ?S]>B#º –€.DR4)ÀSàœ A#º ´ÂÀ$DRÆ¿S<DB#º ˆÂÊCR£’º¿S!_¢B#º  Â/CRޏ¿SP-…B#º pÁAR¥,«¿S0* B#º `AøÁRаÉ?SµU BÆ% ÿŒ Å Æ #Ç 33¯ÁìQø?RаÉ?SjÚA#Ç ff¶Á¸ž§BRÈÍ?S�(ÚA#Ç �Â×Ááz%CRŠÓ?S ÚA#Ç š™Â)ÜvCR7‰Ù?S€ÚAÇ @¤C?#Ç Ãõ&ÂRxvCRÐÕ¾¿SÑÚA#Ç � ÂRø$CRÙ¾¿SÚA#Ç ®åÁHá¦BR€·À¿S7 ÚA#Ç ìQÂÁ¸å?R}ÐÿSkÚAÇ °Á Â?Æ #Ò ÍÌl@ö(kBR1Ì?S�€·A#Ò  ×3@.ÿBRC­É?Sx·A#Ò \�B@×cDCRÐDÈ?S³{·A#Ò q=j@š™„CR™*È?S|·AÒ €@§C?#Ò Há:¿Õ„CR†ϿSœÄ·A#Ò ¤p=ÀšYDCRÇ)Ê¿S¹|·A#Ò �Âõ¿¸ÿBRÍÌÄ¿S+‡·A#Ò )\Ï?¸kBRгÁ¿S€··AÒ À@ Á?Æ #Ý …óAš™áÀRŒÛÀ?SJ{ÝA#Ý \�B=Š—BRÔš¾?SŽuÝA#Ý 0Bq}CR-²½?S yÝA#Ý ázMBR8qCR[B¾?SÏwÝAÝ hB¢C?#Ý 333BáºqCRXÊÚ¿SpßÝA#Ý { B¤0CRÍÌÔ¿Sô}ÝA#Ý ×£ìA¸ž˜BR"ýοS’ÝA#Ý ×£ÚA…ëÙÀR}ÐË¿SdÌÝAÝ ÐA´Â?Æ #è {ošÙCRþeÏ?Sö—tA#è ö(zÂ)œ5CRµÓ?SB`tA#è Há…ÂÃ5cCRΪ×?S’\tA#è ¤ð‘Â3SˆCR†ZÛ?S1™tAè  ÂŸC?#è ®Ç—Â\/ˆCRj½¿SyXtA#è  W�ÂÀbCR;½¿SmVtA#è =ІÂf&5CR(~¼¿S½RtA#è �ÂzÂì‘CRM¼¿SìQtAè h´B?Ç% ÿÅ ô #õ hBÃRê?SÞ»A#õ |BhÂRM¼?SûËãA#õ –B BRü©¹?SÌnôA#õ ªBøBR猸?SÍ»øA#õ ÆB\CRé··?S»8B#õ àB¡CRÏ÷»?SOBõ ôBÞC€@#õ ŒB€ãCRçŒ<@SH‰A#õ ¨AèCR= G@SŽu}A#õ ÈÁåCR•eH@SØ€A#õ –€èCRKYBÀS™»~Aõ ðÂàC€@#õ àŸCRßO½¿S©¤B#õ ÆÂ\CR)\·¿S{”B#õ ªÂøBR猸¿SÍ»øA#õ – BRio¸¿S_©ìA#õ xÂPÂR׺¿SÇ:äA#õ \ÂÃRÕç¿S‹ÂAÈ% ÿŒ ÀÀÝC‰ Š ‹ Œ � Ž #� …ÏÁ×£BR+‡Æ?S�€3A#� )\ÍÁš™ŠBR%uÊ?SQ3A#� )\ÕÁÍÌÍBR€HÏ?SBA#š = ׿®Ç•BRPüÈ¿Sz6BA#š = W¿ ×BRZÄ¿S�BAš €?@?Ž #¥ ff B)\ïAR}л?SøÂA#¥ 33B¤pgBRw-Á?S¼tA#¥ 33BR¸«BRÙÎÇ?S4€A#¥ ffB ×ãBR�(Í?S´ÈA¥ BC?#¥ BäBRˡͿSÆmA#¥  B¬BRˡͿSÆmA#¥ BhBRˡͿSÆmA#¥ BðARˡͿSÆmA¥ B@?É% ÿ� ± ² PÂÀÀ@² ÀÀÀÀ@#² ff~ÁÂBRÊÃÒ?S‡ØA² Í̪ÁDC@² 33?ÂKC@#² = 9ÂÂBRœ¢Ë¿SxúÞA± ¹ ¸ÁÀÀ@¹ ¨AÀÀ@#¹ 33›AÐBRŠŽÌ?SP|æA¹ š™qARC@¹ 33#ÁYC@#¹ q=ÁÐBR•eпS'BîA± À à@ÀÀ@À TBÀÀ@#À ff(B¦BRz6Ë?S*)ÂAÀ ÍÌGB0C@À B"C€?À 33ÅA-C@#À  ×;A¦BR¥Õ¿SõÛ¿AÊ% ÿ� ÍÌŒ?ÍÌL?É Ê PÂÀÀ@Ê ÀÀÀÀ@#Ê ff~ÁÂBRÊÃÒ?S‡ØAÊ Í̪ÁDC@Ê 33?ÂKC@#Ê = 9ÂÂBRœ¢Ë¿SxúÞAÉ Ñ ¸ÁÀÀ@Ñ ¨AÀÀ@#Ñ 33›AÐBRŠŽÌ?SP|æAÑ š™qARC@Ñ 33#ÁYC@#Ñ q=ÁÐBR•eпS'BîAÉ Ø à@ÀÀ@Ø TBÀÀ@#Ø ff(B¦BRz6Ë?S*)ÂAØ ÍÌGB0C@Ø B"C€?Ø 33ÅA-C@#Ø  ×;A¦BR¥Õ¿SõÛ¿AË%#ÿŒ „ÂÝCá â ã ä å æ #ç )\¤pBRù ×?S@A#ç R¸ Â{“BRÖVÜ?Sé·?A#ç …9ÂHáÙBRÇ)â?S^º?A#ç �ÂXÂ\CR¤ßæ?SÞ@Aç |Â3C?#ç = bÂf¦CR¼²¿SO¯?A#ç …HÂ\�ØBRŒ²¿S¬­?A#ç R¸/Â�‘BR33³¿SŸ«?A#ç ×£ÂÍÌBRF¶³¿S¬?Aç Â@?æ #ò š™¿33#BRVÎ?SÚOA#ò ÍÌ À33ŸBRVÎ?SÚOA#ò 33sÀÍÌìBRVÎ?SÚOA#ò Í̬À33CRVÎ?SÚOAò àÀDC?#ò øÀšCRJ Ê¿SÌ]OA#ò 33óÀázìBR².Æ¿SF%OA#ò ÀÀHážBR,eÁ¿SF%OA#ò ÍÌ<ÀÍÌ"BRM„½¿SKYOAò €?@?Ì% ÿå þ ÿ lÂÀÀ@ÿ ÁÀÀ@#ÿ ¬ÁËBRîZâ?SΈåAÿ MÂMC@ÿ  ÂTC@#ÿ ZÂËBR?Ƽ¿SœéAþ † ÈÁÀÀ@† ¸AÀÀ@#† ffžAÜBRòÑ?S?WüA† 33Ó@fC@† àÀXC€?† ffžÁcC@#† {>ÁÜBR³êË¿S_˜øAÍ% ÿå ÍÌŒ?ÍÌL?� � lÂÀÀ@� ÁÀÀ@#� ¬ÁËBRîZâ?SΈåA� MÂMC@�  ÂTC@#� ZÂËBR?Ƽ¿SœéA� — ÈÁÀÀ@— ¸AÀÀ@#— ffžAÜBRòÑ?S?WüA— 33Ó@fC@— àÀXC€?— ffžÁcC@#— {>ÁÜBR³êË¿S_˜øAÎ%#ÿŒ xBÝC  ¡ ¢ £ ¤ ¥ #¦ �ÂEÀ{BRC­Á?S·5A#¦ Ãõˆ¿\ŒBR\ Á?Stµ5A#¦ ×£�?\ÐBR°rÀ?S€·5A#¦ ×£`@ CRé¿?Sé·5A¦ À@,C?#¦ áz”?…+ CRW[Ù¿S‘6A#¦ Há*À\�ÐBR8gÔ¿SƒÀ5A#¦  ×›À\�ŒBR[BοSÇ5A#¦ {®À®BRS}г?#„ÃõLA)\éARës%?Sj¥?#„\�vA�ÂÿAR{ƒ?SH¿¥?#„ö(ˆAÍÌBR\ ¡?S]þ³?„�A B?#„áz\AÍÌBRNb0ÀS}г?#„= #AìQBRÿ²ÀSj¥?#„Háò@¸BRw- ÀSH¿¥?#„)\¿@ffòAR—ÿð¿S]þ³?„ @ÐA?ü #�®Ç¾¸íAR>y ?S4ž?#�R¸ž>ö(BR(Ë?S猈?#�Háú¾ö(BR½ã@S猈?#�\�2À\�BR$(@S$(ž?�ÀÀ$B?#�…óÀ¤pBRµ¦ñ¿S4ž?#�ÃõÁ ×BRËÇ¿S猈?#�ìQðÀ®÷ARyXˆ¿S猈?#�R¸¦ÀHáâARVŸ;¿S$(ž?�ÀÐA?ü #š…CÁ®GíARŒ¹@SO@ë?#šq=~Á¤pBRáz@S°rà?#šìQ¢Á×£BRÎ-@SNbà?#š)\ËÁq=BR à9@Soë?šøÁB?#šq=ÞÁ)\ BR´Ye¿SO@ë?#šHáÀÁ¸óARaT2¿S°rà?#š®�ÁR¸ÜAR[±ß¾SNbà?#š®GiÁ…ÏARÅþr¾Soë?šÁÈA?ü €ÀˆAPAÒ% ÿø §¨ #©A¤BRŒÊ?SKYåA#©A,CRzÇÉ?SðA#©à@ƒCRÊÃÊ?S�ÈA#©À@¡CR6<Í?SÉvuA#©€@±CRǺÐ?S£’A©@@ºC@©ÁºC@#©Á²CRM¼¿S•eÖ@#© À¦CRžï¿¿S:’`A#©@ÀˆCRùÉ¿SÈA#© À6CRqÍ¿SÃuýA#©Á¤BR•Ì¿S'ÂòA© Á@@© A@@Ó% ÿö ÀAÎùº @@ºC»¼½¾ ¿ÁÀÀ@@¿AÀÀ@@#¿PA€AR¯?SÑ"¹@¿pAàA@¿0ÁàA@#¿ Á`ARd̽¿SÕ ¶@¾ #Æ)\¿ÀffòAR—ÿð?S]þ³?#ÆHáòÀ¸BRw- @SH¿¥?#Æ= #ÁìQBRÿ²@Sj¥?#Æáz\ÁÍÌBRNb0@S}г?Æ�Á B?#Æö(ˆÁÍÌBR\ ¡¿S]þ³?#Æ\�vÁ�ÂÿAR{ƒ¿SH¿¥?#ÆÃõLÁ)\éARës%¿Sj¥?#Æ…ÁffÚAR]mžS}г?Æ ÀÐA?¾ #ÑR¸¦@HáâARVŸ;?S$(ž?#ÑìQð@®÷ARyXˆ?S猈?#ÑÃõA ×BRËÇ?S猈?#Ñ…ó@¤pBRµ¦ñ?S4ž?ÑÀ@$B?#Ñ\�2@\�BR$(ÀS$(ž?#ÑHáú>ö(BR½ãÀS猈?#ÑR¸ž¾ö(BR(Ë¿S猈?#Ñ®Ç>¸íAR>y ¿S4ž?Ñ@ÐA?¾ #Ü®GiA…ÏARÅþr>Soë?#Ü®�AR¸ÜAR[±ß>SNbà?#ÜHáÀA¸óARaT2?S°rà?#Üq=ÞA)\ BR´Ye?SO@ë?ÜøAB?#Ü)\ËAq=BR à9ÀSoë?#ÜìQ¢A×£BRÎ-ÀSNbà?#Üq=~A¤pBRázÀS°rà?#Ü…CA®GíARŒ¹ÀSO@ë?ÜAÈA?¾€ÀˆAPAÔ% ÿºéê ë Á@@ë A@@#ëA¤BR•Ì?S'ÂòA#ë @6CRqÍ?SÃuýA#ë@@ˆCRùÉ?SÈA#ë @¦CRžï¿?S:’`A#ëA²CRM¼?S•eÖ@ëAºC@ë@ÀºC@#ë€À±CRǺпS£’A#ëÀÀ¡CR6<Í¿SÉvuA#ëàÀƒCRÊÃÊ¿S�ÈA#ëÁ,CRzÇÉ¿SðA#ëÁ¤BRŒÊ¿SKYåAÕ% ÿ”­¿Ê«”Ì”­¿Ê«”Ì”­¿Ê«”Ì”­¿Ê«”Ì/?Qgky‡‹™ ¨¶Ê×äò•©Á¾ßš¤·ÐÚí†�£¼ÆÙñûަ¸Å∠Áü†™²¼Ïèò… ž ¨ » Ó Ý ð ˆ š § Ä â ú � � ¬ ¹ Æ ô Ž ± É æ þ � ¥ È ß ü ¨¾ê?A€??š™>@š™?A33³>7Walk9T;3º5DEÖF€?CDEÖFš™y?C*DEÖF€?CTDF€?5 DEÖCDEÖFÁC*DEÖCTD5DE×F€ÀCDEÖF333ÁCDEÖF€ÁC DEØFffæÀC*DEÖC?DEÖCODEØFš™™¿CTDF€À3µ 5DEÖF¸ÅÁCDEÖFÏæßÁC*DEÖF¸ÅÁC=DEÖF9Ö±ÁCTDF¸ÅÁ3› 5DEÖF @CDEÖF’Ë›@C*DEÖF @C=DEÖF÷£@CTDF @3ž5DEÖCDEÖF¼t“<CDEÖF�Âõ¼C*DEÖC2DEÖF¼t“¼CFDEÖF�Âõ<CTD3å5DEÖC DEÖF$—<C"DEÖF;pμC*DEÖC4DEÖF$—¼CLDEÖF;pÎ<CTD3à 5DEÖF`ACDEÖF`AC*DEÖF`AC=DEÖF`ACTDF`A3¼5DEÖF€?C*DEÖF€?CTDF€?5DEÖF€?C*DEÖF€?CTDF€?3ú 5DEÖF€?C*DEÖF€?CTDF€?5DEÖF€?C*DEÖF€?CTDF€?3 5DEÖFpÁCDEÖFºkpÁC*DEÖFpÁC=DEÖF–²oÁCTDFpÁ3Á 5DEÖF ÂCDEÖFmÅÂC*DEÖF ÂC=DEÖFóÂCTDF Â3‹5DEÖC DEÖF�Âõ<C&DEÖFìQ8½C*DEÖC6DEÖF�Âõ¼CPDEÖFìQ8=CTD3ø 5DEÖF€?C*DEÖF€?C?DEÖFš™y?CTDF€?5 DEÖC*DEÖC?DEÖFACTD5DEÖCDEÖC%DEØFffæ¿C*DE×FÀÀC2DEÖFff†ÁC?DEÖFÀÁCJDEØFÍÌ,ÁCTD3— 5DEÖF¸JBCDEÖFUÁ4BC*DEÖF¸JBC=DEÖF�€YBCTDF¸JB3À 5DEÖFˆÂCDEÖFšy’ÂC*DEÖFˆÂC=DEÖF?u€ÂCTDFˆÂ3± 5DEÖF¸JÂCDEÖFntiÂC*DEÖF¸JÂC=DEÖF�3ÂCTDF¸JÂ3¦ 5DEÖF(BCDEÖF_‡BC*DEÖF(BC=DEÖFF”4BCTDF(B35 DEÖCDEÖF€ÀCDEÖF@ÁC#DEÖF€ÀC*DEÖC1DEÖF@CADEÖFACODEÖF@@CTD5DE×CDEÖFÀ@C DEÖF@@CDEÖF@ÀC%DEØC*DE×C-DEÖF€@C7DEÖF@CDDEÖFÀCPDEØCTD5DEÖCDEÖF¼t“¼C*DEÖCBDEÖF¦›D<CTD3 5 DEÖCDEÖF AC*DEÖCADEÖFàÀCTD5DE×CDEÖF33SÀC DEÖF33Ó¿CDEÖF33Ó?C%DEØC*DE×C-DEÖFÍÌ ÀC7DEÖFÍÌŒ¿CDDEÖFÍÌŒ?CPDEØCTD5DEÖCDEÖFoƒ<C*DEÖC@DEÖFoƒ¼CTD3Å5DEÖCDEÖF¦›D<CDEÖFo¼C*DEÖC2DEÖF¦›D<CCDEÖFo¼CTD3® 5DEÖF{BÁCDEÖF@¤ZÁC*DEÖF{BÁC=DEÖF,e0ÁCTDF{BÁ3¡ 5DEÖF BCDEÖFbBC*DEÖF BC=DEÖFòRBCTDF B3¿ 5DEÖF´ÂCDEÖFEGÈÂC*DEÖF´ÂC=DEÖF?f¥ÂCTDF´Â3Š 5DE×F€?CDEÖFìQx?CDEÖF\�‚?C*DE×F€?C1DEÖFìQx?C@DEÖF\�‚?CTDF€?5DEÖCDEÖFÍÌL½C*DEÖCHDEÖFÍÌL=CTD3´ 5DEÖF�ÂÂCDEÖF££+ÂC*DEÖF�ÂÂC=DEÖF¾ÂCTDF�ÂÂ3¾5DE×F€?CDEÖF ׃?CDEÖF¤p}?C*DE×F€?C2DEÖF ׃?CADEÖF¤p}?CTDF€?3¾ 5DEÖF–ÂCDEÖFKê«ÂC*DEÖF–ÂC=DEÖF“8†ÂCTDF–Â3¤ 5DEÖF–BCDEÖḞBC*DEÖF–BC=DEÖF' BCTDF–B3˜ 5DEÖFHáBCDEÖFÃäóAC*DEÖFHáBC=DEÖFË¡BCTDFHáB3’ 5DEÖF…ëaACDEÖFœ3QAC*DEÖF…ëaAC=DEÖFñômACTDF…ëaA3½ 5DEÖF0ÂCDEÖFÉ¥ZÂC*DEÖF0ÂC=DEÖF)KÂCTDF0Â3° 5DEÖFHáÂCDEÖF1ÈÂC*DEÖFHáÂC=DEÖF†8òÁCTDFHáÂ3Ÿ 5DEÖF`ÁCDEÖF`ÁC*DEÖF`ÁC=DEÖF`ÁCTDF`Á3“ 5DEÖF¸ÅACDEÖF)ܲAC*DEÖF¸ÅAC=DEÖFgDÒACTDF¸ÅA3¼ 5DEÖF(ÂCDEÖFÙŸAÂC*DEÖF(ÂC=DEÖFçŒÂCTDF(Â3¢ 5DEÖFˆBCDEÖF¦Û€BC*DEÖFˆBC=DEÖFg$�BCTDFˆB3ƒ5DEÖC DEÖFôýÔ<C"DEÖF1,½C*DEÖC4DEÖFôýÔ¼CLDEÖF1,=CTD3€5DEÖCDEÖF|ò0<CDEÖF¼t“¼C*DEÖC2DEÖF|ò0¼CFDEÖF¼t“<CTD35DEÖCDEÖF ×£<C*DEÖCADEÖF ×£¼CTD3³ 5DEÖF{RÂCDEÖF2fqÂC*DEÖF{RÂC=DEÖF®‡;ÂCTDF{RÂ3· 5DEÖF ÀCDEÖFk+¦ÀC*DEÖF ÀC=DEÖFóŽ›ÀCTDF À3™ 5DEÖF)\«ACDEÖF£™AC*DEÖF)\«AC=DEÖF÷†¸ACTDF)\«A3§ 5DEÖF€ACDEÖFÅgAC*DEÖF€AC=DEÖF$¹ˆACTDF€A3” 5DEÖF�ÂBCDEÖF¨×BC*DEÖF�ÂBC=DEÖF4€ BCTDF�ÂB3» 5DEÖF€ÁCDEÖFÐÄ‘ÁC*DEÖF€ÁC=DEÖF­ifÁCTDF€Á3¥ 5DEÖF0BCDEÖFìBC*DEÖF0BC=DEÖFžïDBCTDF0B3¶ 5DEÖF…ëaÁCDEÖF qzÁC*DEÖF…ëaÁC=DEÖFþCPÁCTDF…ëaÁ3š 5DEÖF{BACDEÖF2U1AC*DEÖF{BAC=DEÖF:#NACTDF{BA3¡ 5DEÖF€?CDEÖFfff?C*DEÖF€?C?DEÖF€?CTDF€?5DEÖCDEÖF�Âu½C*DEÖCHDEÖF�Âu=CTD3• 5DEÖF{RBCDEÖFÛ¹DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¼t¼C>DEÖFÉv>¾CWDEÖF+‡–¾CdDFš™™¾3 5DEÖF€?CDEÖFI�€?C>DEÖF–²Œ?CWDEÖF”?CdDFáz”?5DEÖF€?CDEÖFI�€?C>DEÖF–²Œ?CWDEÖF”?CdDFáz”?5DEÖCDEÖF®G@C>DEÖFÃõ€BCWDEÖF ×ËBCdDFÐB3>5DEÖF?C7DEÖF?CdDF€?5DEÖCDEÖC>DEÖCWDEÖCdD3“5DEÖF€?CDEÖF¬‹{?C>DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¼t<C>DEÖFÉv>>CWDEÖF+‡–>CdDFš™™>3«5DEÖF€?CDEÖF¬‹{?C>DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¦›D»C>DEÖF¶ó}½CWDEÖF9´È½CdDFÍÌ̽3Ÿ5DEÖCDEÖF—ÿ�<C>DEÖFµ»>CWDEÖF˜Ý?CdDFëâ?3æ5DEÖCDEÖFI�€<C>DEÖF¹�¦>CWDEÖFœ¢?CdDF½R?3ã5 DEÖCDEÖF"ý^ÀC>DEÖF-�ÂCWDEÖFå¡ãÂCdDF+GèÂ3Œ5DEÖCDEÖFí ¾;C>DEÖFF%õ=CWDEÖFn£A>CdDFË¡E>3Œ5DEÖF€?CDEÖF‘í|?C>DEÖF÷u@?CWDEÖF:’?CdDFð…?3‘5 DEÖCDEÖF7p¿C>DEÖFÑ›ÁCWDEÖFõÁCdDF¬úÁ3ÿ5DEÖF€?CDEÖF¬‹{?C>DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¦›D»C>DEÖF¶ó}½CWDEÖF9´È½CdDFÍÌ̽3‚5DEÖF€?CDEÖFÒ~?C>DEÖF™»V?CWDEÖFmÅ>?CdDF¤p=?3…5DEÖF€?CDEÖF?Æ|?C>DEÖFRI=?CWDEÖF¹�?CdDF8g?3Í 5DEÖCDEÖF1,¼C>DEÖF?5^¾CWDEÖF²�¯¾CdDF33³¾35DEÖCFDEÖF¼t“¼CdDFÍÌL½3ë5DEÖCDEÖF1,<C>DEÖF?5^>CWDEÖF²�¯>CdDF33³>3„5DEÖCDEÖF3ı¼C>DEÖFxzå¾CWDEÖFB`5¿CdDFù9¿3É5DEÖF€?CDEÖF¬‹{?C>DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¦›D;C>DEÖF¶ó}=CWDEÖF9´È=CdDFÍÌÌ=3— 5DEÖF€?CDEÖF?5~?C>DEÖFÇZ?CWDEÖFF%E?CdDFAñC?3‰5 DEÖCDEÖF)íÅ¿C>DEÖF�¨ÿÁCWDEÖFj JÂCdDF-NÂ3£5DEÖF€?CDEÖFvà|?C>DEÖF`v??CWDEÖFZõ?CdDF‚â?3b5DEÖF€?CDEÖFÒ~?C>DEÖF™»V?CWDEÖFmÅ>?CdDF¤p=?3µ5DEÖF€?CDEÖF¬‹{?C>DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¼t¼C>DEÖFÉv>¾CWDEÖF+‡–¾CdDFš™™¾3á5DEÖF€?CDEÖF¬‹{?C>DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¦›D;C>DEÖF¶ó}=CWDEÖF9´È=CdDFÍÌÌ=3ó5 DEÖCDEÖF7p¿C>DEÖFÑ›ÁCWDEÖFõÁCdDF¬úÁ3î 5DEÖF€?CDEÖF‘í|?C>DEÖF÷u@?CWDEÖF:’?CdDFð…?3�5 DEÖCDEÖFÅWÀC>DEÖF7Z‹ÂCWDEÖFMDÜÂCdDFÃàÂ3î5DEÖCDEÖF·Q»C>DEÖFKȇ½CWDEÖFÐÕÖ½CdDFÑ"Û½3— 5DEÖF€?CDEÖF¬‹{?C>DEÖFAñ#?CWDEÖF­úÜ>CdDF= ×>5DEÖCDEÖF¼t<C>DEÖFÉv>>CWDEÖF+‡–>CdDFš™™>3ë5 DEÖCDEÖF–Cã¿C>DEÖFmÅÂCWDEÖF]þgÂCdDF^ºlÂ3µ5DEÖF€?CDEÖF;p~?C>DEÖF—�_?CWDEÖF±¿L?CdDFÿ²K?3�5DEÖCDEÖFŒJj¼C>DEÖFs—¾CWDEÖFDiï¾CdDFtFô¾35DEÖF€?CDEÖF'1€?C>DEÖFÏ÷ƒ?CWDEÖF¢E†?CdDFff†?5DEÖF€?CDEÖF'1€?C>DEÖFÏ÷ƒ?CWDEÖF¢E†?CdDFff†?5DEÖCDEÖFq= ?C>DEÖF\�2ACWDEÖF¸�ACdDF�A5DEÖCFDEÖF�Âu<CdDF)\½3Æ5DEÖF€?CDEÖF[±?C>DEÖFµ¦y?CWDEÖFýöu?CdDF�Âu?5DEÖCDEÖF¦›ÄºC>DEÖF¶óý¼CWDEÖF9´H½CdDFÍÌL½7Reach9d3Š5 DEÖC DEÖFu“ÖÂCdDFu“ÖÂ3‚5 DEÖC DEÖF#[BCdDF#[B3�5DEÖF€?CDEÖF€?CDEÖCdD5DEÖCDEÖFÍÌÌ>CdDFÍÌÌ>3 5DEÖC DEÖFlxš¾CdDFlxš¾3…5DEÖC DEÖF§è¾CdDF§è¾3¤5DEÖF€?C DEÖFmV�?CdDFmV�?3¶5DEÖF€?C DEÖFVî>CdDFVî>7Eyes9d3_5óDCdD3 5DCdD35óDCdDFìQ8=3”5&%DX+#ÿ%C2DXƒgÿ%CdDX½¾°ÿ3§5óDCdD3w5óDCdDFR¸?3t5&%DX+#ÿ%C2DXƒgÿ%CdDX½¾°ÿ3•5&%DX+ ÿ%C2DXi_Dÿ%CdDX—”ÿ3Ÿ5óDCdDFìQ8=3d5DEÖFÍÌL?CdDF€?5DEÖFff&?CdDF€?5DCDEÖFÍÌÌ=C7DEÖFš™?CdDF33s?3–5&%DX ÿ%C2DXJ=&ÿ%CdDX]P:ÿ3—5óDCdDFR¸?3j5óDCdD3v5&%DX ÿ%C2DXJ=&ÿ%CdDX]P:ÿ3„5DEÖFÍÌL?CdDF€?5DEÖFff&?CdDF€?5DCDEÖFÍÌÌ=C7DEÖFš™?CdDF33s?3Š5óDCdD3u5&%DX+ ÿ%C2DXi_Dÿ%CdDX—”ÿ7Idle9è;3º5DEÖF ×£½CfDEÖF ×£½CÀDEÖFìQ¸¾CèDEÖFìQ¸¾CÌDEÖF ×£½CèDF ×£½3œ 5DEÖF ×£=C˜DEÖF ×£=CòDEÖFìQ¸>CšDEÖFìQ¸>CãDEÖF ×£=CèDF ×£=3Ž 5DEÖC¥DEÖFo<C‰DEÖFoƒ»CèD3¹5DEÖFÍÌL½CfDEÖFÍÌL½CÀDEÖFáz”¾CèDEÖFáz”¾CÌDEÖFÍÌL½CèDFÍÌL½3æ5DEÖF ×£=CŠDEÖF ×£=CäDEÖFìQ¸>CŒDEÖFìQ¸>CãDEÖF ×£=CèDF ×£=3Î5DEÖF ×£½CJDEÖF ×£½C¤DEÖFìQ¸¾CÌDEÖFìQ¸¾C°DEÖF ×£½CèDF ×£½3 5DEÖF€?CnDEÖFƒ€?C´DEÖF€?C‰DEÖFNb€?CèDF€?5DEÖF€?CnDEÖF×£€?C´DEÖFÅ €?C‰DEÖF`å€?CèDF€?3å5DEÖFÍÌL=CŠDEÖFÍÌL=CäDEÖFáz”>CŒDEÖFáz”>CãDEÖFÍÌL=CèDFÍÌL=3ª 5DEÖCnDEÖFo¼C‰DEÖFoƒ;CèD3—5DEÖFÍÌL½CCðDEÖFáz”>CÔDEÖFÍÌL=CèDFÍÌL=35DEÖC(DEÖC‚DF®Ga=CÈDE×F®Ga=CÍDEÖFsh‘=CÖDF¶ó}=CŒDEÖF¶ó}=CÙDCèD3È5DEÖCdDEÖF¼t<CÜDEÖF¦›Ä»CèD3› 5DEÖFÍÌL=C˜DEÖFÍÌL=CòDEÖFáz”>CšDEÖFáz”>CãDEÖFÍÌL=CèDFÍÌL=3¯5DEÖFÍÌL=C|DEÖFÍÌL=CÖDEÖFáz”>CþDEÖFáz”>CâDEÖFÍÌL=CèDFÍÌL=3Œ 5DEÖC(DEÖC‚DEÖFB`e<C„DEÖF¦›D¼CèD3ä 5DEÖCZDEÖFB`e<CÜDEÖF¦›D¼CèD3ƒ5DEÖFÍÌL½CXDEÖFÍÌL½C²DEÖFáz”¾CÚDEÖFáz”¾C¾DEÖFÍÌL½CèDFÍÌL½3°5DEÖF ×£=C|DEÖF ×£=CÖDEÖFìQ¸>CþDEÖFìQ¸>CâDEÖF ×£=CèDF ×£=3Í5DEÖFÍÌL½CJDEÖFÍÌL½C¤DEÖFáz”¾CÌDEÖFáz”¾C°DEÖFÍÌL½CèDFÍÌL½3ú5DEÖF ×£=CnDEÖF ×£=CÈDEÖFìQ¸>CðDEÖFìQ¸>CÔDEÖF ×£=CèDF ×£=3„5DEÖF ×£½CXDEÖF ×£½C²DEÖFìQ¸¾CÚDEÖFìQ¸¾C¾DEÖF ×£½CèDF ×£½3˜5DEÖF ×£½C@=•9ŠAction?A—>@=•A—â÷¿Ê®Ìßù=˜•A—˜ ž– d9ŠEyes?A—>@=•A—â÷¿Ê®Ìßù=˜• A—˜  d9ŠGlint?A—>@=• €tEp�EÈC\CîConfessionShutters¤åæçèéêëìñò€ ÍŒ7CR¸ÜBšY?CÍÌáBáúGC=ŠäB)\PCq=áB×cXCR8ÛB@XC\ÚB®OC¤ðÛBÃõGC…áB…ë?CHaÜB…«7C¤pÛBú%!#)ÿ€�Â;C33ÕB¸=Cö(äB€…@C33ÕBHáACö(äB€®GEC33ÕB×£FCö(äB€= JC33ÕBffKCö(äB€ÍÌNC33ÕBö(PCö(äB€ \�SC33ÕB …ëTCö(äBû%!#)ÿ$€ %33C@)\ñA%�ÂAq=B%�Â}Aq=B%�±A\�B%R¸æAHá%B%×£ B ×1B%×£(B ×;B%{CB×£GB%®\B ×PB%š™vB…ë\B%ÃõˆBHágB%\�•Bš™qB%3³¢B33|B%®G°B=ŠƒB%×#½BÍ̈B%HaÊB{”ŽB%Ha×B×#”B%R¸äB טB%¸òB¤pžB%šÿB)Ü£B% C®Ç¨B%…« Cáú­B%ö(C…³B%R¸C\�¸B%)\ C= ¾B% 'CÍÌÃB%×£-C33ÉB%…+4CfæÍB%Rx:CfæÓB%…kAC\�ØB%3óGC¸ÞB%R8NCÍLãB%Í UC×#éB%ff[C=ŠîB%RøaCq=ôB%{”hCÃuùB%)oCR¸þB%R¸uC.C% W|C…C%…k�C¸^C%q½„Cff C%šÙ‡CšÙ C%H!‹C{”C% —ŽC{TC%=Ê‘C)ÜC%= •CHáC%n˜C�BC%�‚›C¤ðC%åžC…«C%f&¢C®"C%)\¥C¸%C%®§¨CÍÌ'C%{ô«CR8*C%�B¯C�B-C%f¦²Cáº/C%\ϵC…2C%á¹Cö(5C%\�¼C¤p7C%\Ï¿Cš:C%�"ÃC¸ÞC%=JÃCH!Cë“à@JC“ˆALC� %!#)ÿ—˜€¿C A˜€ÄC°A—›€¿CB›€ÄCB—ž€¿C@Bž€ÄCHB—¡€¿CxB¡€ÄC€B—¤€¿C˜B¤€ÄCœB—§€¿C´B§€ÄC¸B—ª€¿CÐBª€ÄCÔB—­€¿CìB­€ÄCðB—°€¿CC°€ÄCC—³€¿CC³€ÄCC—¶€¿C C¶€ÄC"C—¹€¿C.C¹€ÄC0C—¼€¿CC—¿€¿CJC¿€ÄCLC‚ %!#)ÿÀ Ä®ÿ@ÍÌAÄ×£tA)\AÄff²Aázü@Ä\�êAHáú@Ä33B)\ÿ@Ä×£.Bö(AÄR¸JB= AÄ×£gB)\AÄö(‚B33AÄ= �B�Âý@Ä)Ü�Bš™AÄÃu¬B{AÄ ׺Bš™AÄ=ŠÈB)\ÿ@Ä ×ÖB…AÄÍLåB®AĸžóB33AÄ\CÍÌAÄ3óC= AÄ C®GAÄ= CAÄšYCAÄ�‚$CÍÌü@Äff+Cö(AÄÍŒ2C…ëAÄ)œ9C×£AÄšÙ@Cffþ@ÄHáGCÍÌAÄOC¸AÄ�VCÃõAÄq=]CázAÄRxdCq=AÄH¡kC¸AÄR¸rCq=AĸžyC�ÂAÄ)\€C= ÿ@ÄöèƒC= AÄ=ЇCázAĸ‹C{Aĸ¾ŽC= AÄq=’C= ÿ@Ä3³•C…û@Äq=™C…ëAÄ®çœC�Âý@Ä®g C…û@Ä3¤CìQAÄ3“§C\�AÄ\/«CAÄ×îCö(AÄ\/²C®ÿ@Ä ×µCAÄÍL¹Cš™ù@Äfæ¼CÍÌAÄöhÀCázü@Ä ·ÃCð@ÄÍŒÃCffbAÄ®‡ÃC�©AÄŽÃCìQâAÄH�ÃC® BÄÃuÃC)\)BÄ…ÃCffGBÄq}ÃC…cBÄH¡ÃCš™~BÄ€ÃC{”�BÄf¦ÃCfæ›BÄ…kÃCq=ªBÄ=ªÃC)ܸBÄf¦ÃC€ÆBÄ®§ÃC ×ÔBÄͬÃCR¸âBÄö¨ÃCšñBÄH�ÃC=ŠÿBÄö¨ÃC�ÂCÄq�ÃCRø CÄázÃCHáCÄH�ÃC×cCÄ�¢ÃCR8#CÄ)œÃCR8*CÄì‘ÃCì‘1CÄ=ŠÃC{”8CÄf¦ÃC×ã?CÄ…«ÃCHáFCÄ\�ÃCqýMCÄR¸ÃC®TCÄHaÀCÍLTCÄå¼C= TCÄ W¹CÍ TCÄẵCöèSCĸ>²C…TCÄ ®C33TCÄëC®GTCÄ׃§CìTCÄ®ç£C= TCÄÃU CáúSCÄqýœCšTCÄHA™C¸TCÄÀ•C=JTCÄ)<’CR8TCĤ°ŽC\TCÄ�‹Cf&TCÄö¨‡C¤0TCÄšùƒCšÙSCÄ…‹€CÃ5TCÄöèyC×#TCÄö¨rCTCÄ…«kCR8TCÄq}dCìÑSCÄìQ]C�BTCÄšVCìQTCÄ\OC\TCÄHCRøSCÄáú@C�ÂSCÄ…ë9C TCÄ ×2CìTCĤ°+CÍÌSCÄq}$CìTCÄ®‡CR¸SCÄf&C{ÔSCÄšCìÑSCÄH!CÃõSCÄÍ C®TCÄR¸óB)ÜSCÄÃuåBîSCĤp×B TCÄ\ÉB{”SCÄ»B TCÄHá¬B�TCÄ€žB¤°SCÄ®�Bq½SCÄš™�B×#TCÄ…fB®SCÄázKB×£SCÄ…-BR¸SCÄ)\BqýSCÄ{ìAq½SCÄff²A)œSCÄš™uAÀSCÄö(AîSCÄš™ANCÄ ×AÍÌFCÄ×£A�Â?CÄ)\A×£8CÄffAÍŒ1CÄázA@*CÄHáA\#CÄffAšCÄš™A{CÄÍÌAH!CÄÃõARøCÄ…A®ÇÿBÄ…AR8ñBÄö(AãBÄAÍÌÔBÄ)\A\�ÆBÄÍÌA�B¸BÄR¸A\�ªBÄ= A¸œBÄázA)Ü�BÄ×£A= €BÄ33AcBÄÃõAìQFBÄ\�AìQ)BÄ×£A¤p BÄ)\A®áAÄš™AHá¨AÄHáA)\_AÄ)\Aà@Ä®Gá@à@Ä…ã@)\_AÄ®ß@Į́AÄìQà@¤páAÄR¸Ö@¤p BÄ ×Û@ff)BÄ…Û@q=FBÄ…Û@cBÄ�ÂÝ@š€BÄÍÌÜ@ ×�BÄ®×@œBÄázÔ@{”ªBÄ= ß@ÍL¸BÄ…Û@{”ÆBÄö(Ü@HáÔBÄ�ÂÝ@ãBÄ ×Û@.ñBÄ®×@®ÇÿBÄš™Ù@CÄffÞ@H!CÄÃõØ@= CÄö(Ô@šCÄÍÌÜ@ì#CÄ…Û@@*CÄ�ÂÝ@=Š1CÄ\�Ò@)œ8CÄìQØ@®Ç?CÄq=Ú@{ÔFCÄš™Ù@®NCÄHáê@f¦UCĸuA¸^VCÄ\�²A=JVCÄ�ÂëAq=VCÄázB®GVCÄ×£-BHáUCĤpKB@VCÄìQfBìVCÄ{”�BÍLVCÄ�Â�B…+VCĤpžB�BVCÄìѬBEVCÄš»BR8VCÄ\ÉB¸VCÄ W×B®GVCÄ=ŠåBöhVCÄR¸óB= VCÄCffVCÄ.C®GVCÄH!C= VCÄö(CqýUCÄq}CÃõUCÄRx$C¤0VCĤ°+C¸VCÄ{Ô2C VCÄ3ó9CqýUCÄRø@C…ëUCÄ3óGCÃ5VCÄ= OC=JVCÄšVC)VCĸ^]C= VCÄázdCìÑUCÄ×£kCö(VCÄ…«rC)VCÄfæyC�VCÄ\�€CšVCÄ)üƒC ×UCÄ®§‡C�ÂUCÄ‹C=ÊUCĤ°ŽC —UCÄ 7’CR¸UCÄHÁ•C VCÄE™C®UCÄ�C=ÊUCÄ W C)œUCÄ×ã£C¤°UCÄq}§CÃõUCÄëC×#VCÄ ®CáºUCÄ@²CfæUCĸ¾µCÀUCÄ{T¹C×ãUCÄ�â¼C¸ÞUCÄq]ÀC×ãUCÄ{4ÄCö¨UCÄ WÄC�NCÄšyÄC…ëFCÄ\�ÄC)Ü?CÄÍLÄC\�8CÄ…kÄCš™1CÄ{tÄCá:*CÄ`ÄC33#CÄ{TÄC¸^Cĸ^ÄC…ëCÄ=ŠÄCCÄHaÄCq½CÄ)|ÄC\�ÿBĤpÄC×#ñBÄ€ÄCq½âBÄ=ŠÄC ×ÔBÄ€ÄC€ÆBÄ…ÄCÍ̸BÄìqÄCR8ªBÄ�‚ÄCfæ›BÄ)\ÄC{”�Bĸ~ÄC®~BĤ�ÄC¤pcBÄ3sÄC®GGBÄeÄC¤p)BÄR˜ÄC� BĤpÄCffâAÄH¡ÄC…ë©AÄ{”ÄCffbAÄ=jÄC33Ã@Ä®gÀCÍ̼@Ä®ç¼CR¸¶@Ä…K¹C33»@Ä{ÔµC ×»@ÄÍ,²CìQÀ@ÄHÁ®C= ¿@Ĥ0«C¸½@ÄR˜§CÀ@Äš¤C33³@Äff C¸@Ä×ãœCq=º@ĸ>™C®¿@Äõ•C= ·@Äá:’Cq=º@Äq½ŽCÍÌ´@Äq‹Cš™¹@Äf†‡Cö(¼@ÄÍìƒC…ë¹@Äq]€C…³@Ä\�yC®G¹@ÄáºrC ×»@Ä…«kC= ·@Ä3sdCff¶@ÄÃ5]C®GÁ@Ä�VCö(¼@Ä�OC…ëÁ@ĤðGCÃõ¸@Ä ×@C¸@Ä)œ9CHáº@Ä®‡2CHá²@Äff+C33»@Ä\�$C®·@ÄšYC{¶@ÄC ׳@Ä®C ×»@ÄöèCáz¼@ÄìCázÄ@Ä®óBÃõÀ@ÄìQåB®G¹@ÄHáÖBáz¼@Äš™ÈB\�º@Ä�ºB{¶@ÄHa¬B�½@Ĥð�BR¸¾@Ä\�B\�º@ĸ‚B= ¿@Äš™gBHáº@Äš™JBö(Ä@Ä�Â.BÍÌÄ@Ä)\BR¸¾@Ä×£êA�½@Ä{²A33»@ÄìQtA33Ã@Ä×£A¸½@ƒ %!#)ÿ”•\OnC\�÷B•\OsC\�õB”˜R8áBìC˜R8ëBìC”›šYB”‡= „Bö(ŒB‡= ŽBö(ŠB”Šá:4CázgBŠá:9CázcB”� w¬C ,C� ÷®C +C”� ×CBö(B� ×WBö(B”“…K®Cq½ËB“…˰Cq½ÉB”– WC�BéB– WC�BçB”™ffdCHaC™ffiCHa C”œ¤°ˆC×#Cœ¤0‹C×#C”Ÿ×£�Cö(nBŸ×#„Cö(jB”¢)\Bö(ÝB¢)\.Bö(ÛB”¥š¹ƒC®ÇïB¥š9†C®ÇíB”¨¤Ð³C@EC¨¤P¶C@DC”«ÀC¸–B«À#C¸”B”®öh¸C\�òA®öèºC\�êA”±33%Bö(C±339Bö(C”´¤�®CázCC´¤±CázBC”· €C)\©A· —‚C)\¡A”ºÃõ¿Cq=jBºÃuÂCq=fB”½�â¹C€C½�b¼C€C”À)œ*C×£CÀ)œ/C×£C”Ã×£~C)Ü…BÃìÑ�C)܃B”Æ ”Cì$CÆ —Cì#C”É{”fCÃõ�AÉ{”kCÃõˆA”ÌHá¦C ×BÌHa©C®ÿA”ϸž C€ŽBϸžC€ŒB”Ò «C�Â}BÒ ­C�ÂyB”Õ…‹¥C\�ÌBÕ… ¨C\�ÊB”ØÃuœC…ë¥BØÃõžC…ë£B”Û{HCq=ùBÛ{MCq=÷B”ÞÃu¯Cf¦0CÞÃõ±Cf¦/C”áq=´A®GÞBáq=ÜA®GÜB”äRØ¿CHáÛBäRXÂCHáÙB”çšYC ×ôBçšYC ×òB”ê3³þBÃ5+CêšYCÃ5*C”í�‚8CázØAí�‚=CázÐA”ð)Ü‚B:Bð)ÜŒB6B”ó)|²C¤05Có)ü´C¤04C„ %m‰Ÿÿ÷ HCÜBÈC\C… %�·Íÿ/À?01$¡ ý¬ë/š™™?01—/š™™?01Ô/š™?01÷ à]FD\CîìÇSacrificeShadow¤åæçèéêëìñò ‚C\C ‚Ã\À �b‚C®RC C¤°LCHáxC�BGCq½rC€BCìÑlC×c=C…+gCÀ7C= aC)Ü2Cq=[C×c.CšYUCì*C®GOCá:&C�ÂICRø!C×#CCffCHá;C¤0!C\Ï5C�B$C ×/CÃõ'Cq½)C�‚+C\O#Cqý.C¸C…+2Cš™CH¡5Cf&C)\8C)C…k;CÃuCff>C¤ðøBH¡AC…ûB¤p:CýB)Ü1C¸þBfæ'C�BíBì)C\ßB —*CR¸ÐBáz,Cq=ÃB….Cáú´B�B0C×#¦Bá:3Cö(—B€5C®ŒB�9CÃu�Bî1C¤ð”B…ë)Cš™—B®!CHašBH¡C…k†BõCR¸lB)CKBÀC{*B.!CÍÌ B%C…ÝA®‡(C33¯A…+,C¤pÉA=Ê'CázÞA — CðA®ÇC®GB®C= BÀ C¤pÉAöh C ×�A{C(A�BC…ë¡@ ×Cš™A WCR¸VAšÙ Cq=ˆAÃuC33§A×£ûBR¸ÆA®ÇîB33åA ×àB{àAÍLÐBHáØA×£ÁB33ÕA�²B)\ÏA…ë£BìQÊA…k”BìQÂAáú…B= ¿AR¸lB33¹AÃõNB×£°A×£1B®G§A…B\�ÌA…ë&B\�þA®G4Bš™B¸BB®1BR¸MB33KBáz[B¸eB)\hB{~B\�uBÃu‹B33�Báú—BÃõ‡B�B¥B33ŽB¸²B”B¸ž¿BìÑ™BHáÌB¤ðŸB×£ÚBÃu¥B®GèB�«Bq=õBáú°B¤ðC\�¶B\ C ׳BöèC€±B¤ðC€­B=ŠC תBöh$Cff¨BìQ+C€¥BÅ1CHá¡B®Ç8C W§Báz@C¤ð¬B×£GC…ë±B�BOC.·BEWCfæ»B¤ð]C¸ž®B{ÔcCHá B×#jCq=“Bá:iC\�‚BhC×£gB®fC¸KB�BeCq=-B=JcC{Bq½gCìQ*B�BmC33>BÍŒrCffTBf&xC×£jB¸ž{C®G�BRxC¸�B�‚C…šBR˜„C×£ŒB…k†CffB)\ˆC\�fB)<‹C\�RB×#ŽCÃõáC�B�BfFäC ×uBH�çC= iBŽêCHáZB…ËíCázNBRØðCq=@BHôC…ë4Bì1÷Cff%BöhùCHáBöÈøCR¸1B¤�øC®NB¤0øC×£lBöÈ÷C{”…Böh÷CÍÌ”B@÷C\¤BìÑöC W²B3SöC�BÁBáÚõC{”ÐB\¯õC\�àB×Ã÷CHáîB¸¾ùCR8ûBH�ûC®‡CšYýC{ C�‚ÿCÃ5C®D ×CÍŒþCìQC{ÔúC…+C÷Cq= C�‚òCHá C€óC®ÇC ×ôCf¦C¤öCì‘ Cì1÷C\Ï'CRøøCõ,C\/öCöh(C…«òCÍ %C×ÃîC®‡!C¸žêCìÑCRxæCá:C®gâC)ÜCNÝC\�CHÞC=Ê!C…ëÞCfæ)C)¼ßC®2C¤ÐàC{Ô8C=*ÞC¤ð5C=jÚC®G3CáºÖCH!0CEÓC…k.C®ÇÏCÀ,C ÌC)+Cf¦ÈC\)CffÄC{Ô'C…‹ÄCìÑ1C¸>ÅC)œ:CfÆCR¸AC wÃC�‚>Cq½¿C…k;CRX¼C�B8CìѸC=Š5C\OµC\�2C\/²Cáú.Cš¯CÍL+C�â«C×#(C®Ç¨C×c$C�‚¥C=Ê C×ã¡Cf&CH�žC\"C…›C�Â&Cìq˜C�+C —•C\O/CÃu’C)œ3C�¢�Cq½8CìñŒC¤0>CfŠCáúBCq‡CšHCff„C{MC€�C=ÊQC€‚CÃ5TC�b…C WOCÈCEJC‹C=JEC)Ü�Cq=@CÍÌ�Cq=;C{t“C×#6Cáš–C¸2C�b™C®‡-C�bœCö()C3“ŸC×ã$CÍ ¢Cáz C=ª¤CìÑ#C�â§CÃu'C®«Cq=+Cq=®CÃu.CN±C)2CH¡´Cöh5C.¸C�‚8Cq�»Cõ;Cq¿C®G>CHÁÂCöèACf&ÇCqýCC\ÏÆC¤0:C®GÆCn1CͬÅC= *CÃ5ÈC�B,Cì±ËC¸^.CáZÏC×#0C=ÊÒC…+2C®'ÖCÀ3CRØÙC W6C)œÝC9C âC=J;C=ªáCE1Cì±àC{)C×£ßC= !C׃ÞCHaCàáC\�CfæCšYC êC®"CáîC¸Þ$CHáñCHa(CÍLõC)Ü+CÃÕùCn/C)üøC€&Cš™÷C®‡CŽöC×cC¤õC —CÍŒóC®G C×cöC®C®'úC®‡CRØýCö¨C@D¸^CpD —C¸ÞþCÃ5 CöýC{ÔCìûC¸øB�"ùC€ëB.÷C×#ßB®÷C�BÑBìñ÷CáúÁB×cøC{³BÀøC€¤BHáøC33•B®GùC33†Bì±ùCÃõmB=*úCR¸OBNúC®2BázúCázB׃öCázB�BóCáz)B=*ðC×£5B… íC¸CBáÚéC33PBR¸æCff]BR˜ãC33kB€àCwB�bÝCR8‚B¸>ÚC3³ˆBìÑÖC€�B¸~ÓC…k”B ÐCHá™BfæÌCìÑ Bq]ÉC=Š¥B¸ÆC3³«B�âÂCš™±B)¼¿Cš®B… ¼C®Ç«B)œ¸C×#©B¸µC{¦B®‡±Cö(£B®C¤p B\oªC�B�Bö¨¦C¸£Báú¢C{©BHaŸC)\®B{Ô›CR¸³B¸ž˜C¸ž¹B¸Þ•C®G®B)ü’C…ë¡B��C{—BÅ�C€ˆB®‘C®GpB`’C ×PBRX“C1Bìñ“CÃõ B¤P�C®G!Bq]�C¸6BH�ŠC= LBìq‡Cö(`B)\…CffzB3“ƒC×#ŠB ÷�C.•Bì±€C3³ŠBff}C¸~B=ÊyC…eBÃ5tCHáMB3³nC¤p8Bf¦iC)\"B®GbCáz BHábCÃõ.BR8dCÃõLB —eCìQiBáºfC�BƒBö¨gC…k‘B�ÂaC.�Bš\CìQ«B —VC®G·B®PCÃu²B×cHCR¸­BnAC)ܧB3³9C.¢Bfæ1CìQ�B®Ç*C…ë BRø#Cq½£B{C¦BöhCfæ¨BšYC¤ð«BázCÃõ­Bö(C=бBÍL÷B¬Bö¨êBq=¦B×£ÜB¸ž BáúÎB.›B{ÂBáz”B…k´Bš™ŽB€§B)\‰B�šB=Š‚B\ŽBffxB3³�BìQkB= jBR¸^B\�PBffQB¸7B33CB ×B= 6BìQB�Â(BHáÖA{B= —A®GBáz˜AHá2B®G�A…PBff¤A�ÂmB¸§A×£†B\�°A×#•B×£´A\�¤B×£¼A�B³Bö(¾AR8ÂBR¸ÆAáúÐBö(ÌAÃußB®AëB®G�AHá÷B®cA)ÜCö($AÃõCš™Ñ@H¡C¸%@q=C®G=A×cCáz˜A=ŠCìQÔA¸ÞC)\BE C{èAH¡CìQÔAH¡C¸ÁAìQC ×­A…&C×£žA…/C®GëA{,CÍÌBn(CìQ/B€$C®GOB@"C…ëpBRxCffˆBqýC¸ž•Bö(C\��BÃõ C=Š�B×#)C¸ŠBE1CˆB W;Cö¨™B)Ü8CìQ¨B¸^6C®G·BÍÌ3C¤ðÄBõ1C3³ÒB�B0C)ÜàBìQ.C×#ïB®Ç,Cq=ùBáú)C=ŠöB®‡1CR¸ôB):C ×óB\ODC¤ðCšÙAC×£ C�Â>CnCHa;C\ÏC3s8C{ÔC3s5C=Ê$C¤°1CE+C=J.C€1CìÑ*Cš™7C¤p'CRx=C{$C3óBCẠCq½GC®$C€MCÍÌ(Cq}SCÀ,C@YCÍ 1C\_C¸^5CöèdC\O:C ×jC{”?C{ÔpCìÑDC3óvCf¦IC{T}C®NCn�C®TC’%!#)ÿÍ Î‚CSC@Î`C4C@ÎCCC@ÎC4C@ÎöBCC@ÎüB)C@ζB2C@ΊB:C@ΘBC@Î,B#C@ΨA.C@ÎB C@΀@C@ÎØAàB@ΠAB@ΦBŒB@ÎC´B@Î2C B@ÎWCºB@ÎiC’B@ÎcCB@ÎyChB@΂C˜B@ΈCdB@΀“CB@΀�C˜B@΀˜C¼B@΀ªC B@ÎÃC´B@΀ÚCŒB@ÎúCB@΀öCàB@ÎDC@ÎóC C@΀ùC.C@΀îC#C@ÎÞCC@΀áC:C@΀ÖC2C@ÎÅC)C@΀ÆCCC@εC4C@΢CC@ΓC5C@Í ûZCÆBûqCÐBûzCðBûoCCû]CîBÍ �‰CÊB�–C¶B�€—CÞB�€ŽCúB�€‡CèBÍ ‡wC C‡€…CC‡‹CC‡€†CC‡‰C+C‡€C?C‡pC.C‡wC C‡mCC“%!#)ÿÍ(7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=• @¯Dp�EŒC¾CîìÇ Ghost_OLD¤åæçèéêëìñò C¾CàÁ ÀA(à @Á# `A€ÁS @ ðA@Á €@# °ARøSc=S0LÀ@  B@€@A#`A€AS @ðA@A¶%ÿVà ÐÁ @@ÀÀ @À@·%Òæïÿ °A @@ÀÀ @À@¸%Òæïÿ  ¸‡Á@@ ìQ�ÁÍÌä@@@ = «Á33GA@@ ÐÁ�ÂaA@@ )\óÁ\�>A@@ {Âffæ@@@ …ë Â@@ ìQÂÃõàÀ@@ …ëóÁš™AÁ@@ ÐÁÃõ`Á@@ {¬Á¤pAÁ@@ áz�Áö(äÀ@@ -{úA@@-…ëíAffÞ@@@-33ÓA…ë=A@@-°AfffA@@-)\‹A¤pEA@@-ffbAš™á@@@-ázLA@@-ffbAš™áÀ@@-= �Aáz<Á@@-°A…cÁ@@-q=ÔA33CÁ@@-®ïAÍÌäÀ@@¹%ÿ À&Ã;<= >ìQA@@>33ó@33»@@@>{Ž@ ×#A@@>DA@@>…“Àq=*A@@>\�úÀ×£À@@@>ÍÌÁ@@>ffþÀ ×ÃÀ@@>ö(”À= +Á@@>ázDÁ@@>\�’@¤p)Á@@>š™ù@ÀÀ@@º%ÿ  ÂÃLMNO #P)\¯?…[ÀRı†?SO@#P ×Ã?…ë™@RÄBý?SP�C@#PÍ̼ÀffVARÇ)@Scy@#Pff†ÁR¸šARÉv:@S�äb@#PÃõÔÁ®‘AR³ê'ÀS¨W&@#PÍÌòÁ…ë9AR³êË¿S²�'@#P�Â×Á @ROf¿SÓ¼c@#PázˆÁHá¢ÀR�å¾S>y|@#Pö(´À®÷ÀRé·=SåaE@»%ÿ¼%ÒæïÿN €@�@\ #])\¯?…[ÀRı†?SO@#] ×Ã?…ë™@RÄBý?SP�C@#]Í̼ÀffVARÇ)@Scy@#]ff†ÁR¸šARÉv:@S�äb@#]ÃõÔÁ®‘AR³ê'ÀS¨W&@#]ÍÌòÁ…ë9AR³êË¿S²�'@#]�Â×Á @ROf¿SÓ¼c@#]ázˆÁHá¢ÀR�å¾S>y|@#]ö(´À®÷ÀRé·=SåaE@½%ÿ¾%°ËØÿ  BÃijkl #m®GåA ×oAR%@SdÌ@#m= ³Aö(žARZdC@SR'<@#m¤p1Aff„ARY+ÀSñôv@#mö(Ü?¸ARPüÀS4¢`@#mÃõÀ¤p½>RVŸË¿Sû\%@#máz´?�ÂÅÀR4¿SS'@#mR¸2AR¸îÀRxze>S c@#m®G±Aš™¹¿R/-?S}?y@#m¸ëA¤på@RÓÞ˜?SÑ‘<@¿%ÿÀ%Òæïÿk €@�@y #z®GåA ×oAR%@SdÌ@#z= ³Aö(žARZdC@SR'<@#z¤p1Aff„ARY+ÀSñôv@#zö(Ü?¸ARPüÀS4¢`@#zÃõÀ¤p½>RVŸË¿Sû\%@#záz´?�ÂÅÀR4¿SS'@#zR¸2AR¸îÀRxze>S c@#z®G±Aš™¹¿R/-?S}?y@#z¸ëA¤på@RÓÞ˜?SÑ‘<@Á%ÿÂ%°ËØÿ†‡ #ˆ¬ÂpÂRioпSÉåŠA#ˆ´Â ÃR-²Å¿SŸ¼ÊA#ˆ¤ÂTÃRgÕ§¿Sµ•°A#ˆ`†ÃRâéE¿S¿˜A#ˆ’ÃSgU•A#ˆ`B†ÃRâéE?S¿˜A#ˆ¤BTÃRgÕ§?Sµ•°A#ˆ´B ÃR`vÇ?SYÕA#ˆ¨BPÂR5ïà?SÃÓ�A#ˆŒBÂR�EÀS—ÿª@#ˆPBXÂRKYB@SÉË@#ˆBðÁRÆÜE@Sš™Õ@#ˆ@APÂRÆÜE@Sš™Õ@#ˆÁàÁRÆÜE@Sš™Õ@#ˆàÁHÂRÆÜEÀSš™Õ@#ˆ@ÂðÁRùI@SeªÊ@#ˆ„ÂHÂRV}>ÀSL¦Â@#ˆ¨ÂÂR·b+ÀSäƒn@Ã%ÿÄ%Òæïÿ† €@ @� #ž¬ÂpÂRioпSÉåŠA#ž´Â ÃR-²Å¿SŸ¼ÊA#ž¤ÂTÃRgÕ§¿Sµ•°A#ž`†ÃRâéE¿S¿˜A#ž’ÃSgU•A#ž`B†ÃRâéE?S¿˜A#ž¤BTÃRgÕ§?Sµ•°A#ž´B ÃR`vÇ?SYÕA#ž¨BPÂR5ïà?SÃÓ�A#žŒBÂR�EÀS—ÿª@#žPBXÂRKYB@SÉË@#žBðÁRÆÜE@Sš™Õ@#ž@APÂRÆÜE@Sš™Õ@#žÁàÁRÆÜE@Sš™Õ@#žàÁHÂRÆÜEÀSš™Õ@#ž@ÂðÁRùI@SeªÊ@#ž„ÂHÂRV}>ÀSL¦Â@#ž¨ÂÂR·b+ÀSäƒn@Å%ÿÆ%°ËØÿ”­¿Ê«”Ì”­¿Ê«”Ì”­¿Ê«”Ì/@@01=O/ff¦@01O\/¸…@01\l/ff¦@01ly/¸…@01y‡/ff¦@01‡�/¸…@01�??š™>@š™?A33³>A€?7Look9d35 DFðÁC2DFÐÁCdDF°Á35 DF�AC2DF°ACdDFÐA35DF)\�½C2DCdDF)\�=7Dread9d3L5DCdDFfff?3;5DF€?CdDF33³?5DF€?CdDFffÆ?35DF€?CdDFff¦?3i5DCdDFfff¿7Pop9d35DEÇFÍÌŒ?CRDEÈFHáz?CdDF€?5DEÇFÍÌ ?CC–D35DEÈFàÁCKDEÈF ÂC–DFàÁ5DEÈC&DEÈF)\=CKDEÈCpDEÈF)\½C–D3M5DEÈCKDEÈFš™¾C–D7Blow9H3<5DEÈF€?CDEÈFff¦?CDEÉFffæ>C6DEÈF?CHDF€?5DEÈF€?CDEÈFff¦?CDEÉFš™?C6DEÈFš™?CHDF€?35DCDEÇC"DF€?C4DEÊFÍÌL?C>DCHD5 DFÀACDEÇFÀAC>DF´BCHDFÀA35DEÈF€?CDEÈFff†?CDEÉF\�‚?C4DEÈF€?CHDF€?5DEÈF€?CDEÈFq=Š?CDEÉF33s?C4DEÈFHáz?CHDF€?5 DEÈCDEÈFÀÀCDEÉF AC4DEÈFACHD5DCHD5DEÈCDEÈF�Âu½CDEÉFìQ¸=C4DEÈF�Âu=CHD7Rest93<5DF€?5DF€?35D5 DFÀA35DF€?5DF€?5 D5D5D7Hop903<5DF€?C0DF€?5DF€?C0DF€?35DC0D5 DFÀAC0DFÀA35DEÈF€?CDEÇFÍÌŒ?CDEÈF×£p?CDEÊFHáz?C"DEÇFq=Š?C)DEÈFHáz?C0DF€?5DEÈF€?CDEÇFö(\?CDEÈFq=Š?CDEÊF\�‚?C"DEÇFfff?C)DEÈF ׃?C0DF€?5 DC0D5DCDEÇCDEÇFÐÁCDEÊFàÁC"DC)DEÈC0D5DEÈCDEÇF ×£<CDEÈFÍÌ̽CDEÊF ×#½C"DEÇFÍÌL=C)DEÈC0D57Machine9ŠIdle?A—>@=•9ŠAction?A—>@=•A—â÷¿Ê®ÌßùA—â÷¿Ê®Ìßù=˜•A—˜ žx d=˜•A—˜ žx drŠ Tap to hopà‡á÷®¿Ê®ËÌç  pFðCðCîìÇCoronationShadow¤åæçèéêëìñò pCðC pÃðÀ )qCfæ§BöhvC¸šBšÙ{CR8�B�b€C®G~Bf‚C¤pdB{tƒC…KB ÷„CìQ0B ·†CHáBR8ˆC®GýAq½‰C\�ÈA…K‹C×£–AÍ ŒCHáRAÃõ�CìQ A…k�C…ëÝAšÙ’C…ë BšÙ’C33&B¤“CHáAB\“CHá_Bq“C®G{B¤“CffŒB×C“C33›B¤p“Cš™©BÍl”CÍ̸BÃU•C3³ÆB3“–CìQ×BE�CìQáBH!¡C)\ÛB¤°¤C{ÖB W¨Cö¨ÐBn«CR¸ÇB¤°®C®¾BöȱCš™µBìÑ´C W¬B)Ü·C€¤B ׺CHášB\ï½C×£’B%ÀCHá‰B\ïÀC¤p•B�âÁCö¨£BqýÂCÃõ¯B3“ÁC)Ü»BìÀC=ŠÉBe¾C{”ÖBå¼CšäBšY»CìQñB{”¹C…ÿBá¹CÍLC쑸C.C…Ë·CffCî¸Cš™C�BºCfæ#C�‚¾C®Ç'CázÂC×c,C®‡ÆCš™+CeÊCRø*C=jÎCÍL*CÍ,ÒCÃu)CáÖC33)CÚC�B(CÃÝC{'C\ÏÛC¸^,C ÷ÚC\Ï3C=JÚCö(:CHA×C…k>C×ÔC�BCC… ÑC —GC�âÍC{TLC3sÊC¸žQCÉCR¸YCf†ÇC¸žaC{TÈCniCš9ÉCHápCRØËC®xC33ÎCn€CͬÑCöH‚C{ÔÔCÍ,„C\ï×CáÚ…C\ÛC…‡C%ÞCq=‰C¸>áC‹CöäCHá‹C)œàC ·�Cì±ÜC=*�C¸þØC¸^’Cq}ÕCáz’C×ÃÑC…Ë’CáúÍCì1“Cš9ÊCÍ,“C×cÆCf†“C…kÂCR¸“C…K¿CRx–C¸>¼C¤0™C쑼C¤ð�CR8½CRX¢C)|¾Cq¦Cì‘¿Cá:ªCÁC\®CfÃCRX±CÃõÄC®G´CqÇC¤P·CöÉCöˆºCÃõÊCš™½C¸þÌC¸žÀC=êÎCŽÃCfæÐC)üÅC¤ðÍCR¸ÅC{TÊC\�ÅCöÈÆCͬÅCffÃC¸žÅC�"ÀCšÙÃCõ¼CÀÁCÍL¹CRØ¿C= ¶C®Ç½C{´²Cà»C®‡¯C ·¹C¬C ·CÃõ¦CHÁ¶CÍÌ¡C×õC×cŸC)ü¸Cf�CÍ ¼C\¯œC¸~ÀCš9œCìÑÄCf†›Cš9ÉCf&œC)ÍC®‡œCì±ÐCÃõœCÍlÔC…�C×CØCš¹�CÜC×#žC¤°ßC\�žC¤pãCŸC@çCÃÕŸCffêC3sœC3óèC®‡˜CåçCšÙ”CÃÕæCfF“C=ŠãCHA‘C@àCHA�C®ÝC×C�Cq�ÙC�b‹Cq=ÖCq]‰C¸ÓCn‡C3“ÏCö¨„C¸¾ÌCfÆ�C3óÉC¤ð}C¸þÆC{ÔoCáÆCšYhCÍŒÉCR¸`CöÈÌCÍ ^CÍLÐC{[Cq½ÓCÃuXC ÷ÖCÍŒUC¤0ÚC)SCq�ÝCáúOCšÙàC¤pMC=*äC…ëJC¤�çC3óHC¤�êCÃ5DC¸èCHá>C¤ÐåCáº9C —ãC×#9CåßCš™8CHÜCf&8Cö(ØCff7C¸>ÔCq½6C¤pÐC)6CffÌCÃu1C�BÈC×c,CRÄC®&C)ÂCRøC 7ÀCR8C¤ÀCR8Cà¿CÍLC33ÂC®CHaÄC�ÂõBf¦ÆCö¨èBfÉCHaÜBì1ËC�BÏB¸^ÍC®ÅBͬÏCÅB=ÊËC�ÂÃB…kÇCö¨ÁBHaÃC33ÈBšù¿CÍÌÎB3“¼C®GÖB ¹C{ÜB®§µC\�âB=*²C33éB׃®C33æBÃuªCìÑáB=j¦CffÒB®G¤CìÑÄBÃU¢C·BÍì Cš©BáÚŸC.›BΞC…ë‹BΞC…zB=*ŸCR¸[B=jŸC×£?BŽŸCáz BH�ŸCš™BõŸCÍÌÔA)< C…ëõAHžCÃõ B\¯šC\�B\�—C*BRX”C33BBÍŒ’C…ëYB�¢�Cö(sBàŽC\…BHÁŒC�B‘BåŠC{”�B¸ÞˆC= «Báú†C{”´B…ë‚C ×¾Bff}C¸µBvCff¬BìÑnC¤ð�BEiCR8�BndCHá‚BRø^CffjB)Ü[C ×NBRøXCö(5BšÙUC)\Bì‘RC¤pBázOC®ÍAf&LC®G—AázIC¸YAÀGCÍÌžAšDCØAáú>CR¸B¸:Cq= B\:Cö(=Bn9C×£YB�Â9C¤puBf¦9Cš‰B@9C3³—B 9C{”¦B…«8C\µBáº6CáúÃB3s4Cš™ÔB×#2CâB ×%C{ÝB®C)Ü×B×#CÍÌÓB\C=ŠÊB®Ç CHaÁB¤pCfæ¸Bq=ûB°B33ïBáz¦BÃuâBÍÌ�B®G×B×#•BÃõÉB)\�B®ÇÁBö(˜B€¿B= ¦B{”ºBq=²BìQµB)ܽBÍ̺BÃuÊB WÁB€×B…ÆB ×äB¤ðÌBfæñB…kÒB�ÂÿB\ØB) CffÛB —Cš™ÞB=ŠCÍLØB= #C¸žÓBöè&C)\ÃB{”+C…ë³B)+CìÑ£Bq}*Cfæ”BÃõ)C�B†B\�)C®GnBÃõ(C¸PB= (C¸2Bqý&CázB=Ê,C¤p#B×£3CìQ-Báz:C®4B ?C×£KB…«CCìQeBì‘HC�Â~BîLCÍLŒB=JRCáz™BR8ZCÍÌžB=ŠaC ×¢B\�hC=ЦBq½oC)ܨB�BpC×#£Bq=iCR8 B{TbC= �B…+[C…˜BáúSC\�”BRxOC€ˆBfæJC¸xB…kFCq=]B®‡ACö(DB)\¿C)Ü$CÍŒ»C W!C�¢ºCq}Cö¨¹C¤0C 7ºC®ÇCqݺCìÑCÃU»C)ÜC½Cš™ôBáš¾Cö(çB)ü¿CázÙB…‹ÁC)\ÌBì1ÃCfæ¾BHáÄC¤p°BHÁÃCÍL¡B®‡ÂCq=“B�¢ÀCö¨‚BμC…ŒBìѹCff•BfƶC{”žBHá³C×#§B=ʰCR8°B{´­Cq=¹B׃ªC¸žÂB¸ž§CËB\¤C®GÏB=Š CffÕB¤p�CR8ÚBͬ—C\ÒBÍ —C)ÜÄB¸þ•C.·Bq=•C=ЍBf•C ךBšÙ”Cö(ŒB…«”Cq={BšÙ”CÍÌ_B)œ”Cq=AB{T”CR¸%Bq=”Cq=BHá‘Cö(ÎA¤0�C)\“AfFŒC×£ Aq½‰C×£ŠAHaˆCáz¾AR؆C\�òAöH…CB…«ƒCìQ+B¸‚CázFBf†€C\�^B{~CR¸wB33yCö(‰BÃõsCÍL–B)ÜnC{”¤BÓ%!#)ÿÅ ÆpC¦B@Æ€C…{B@Æ×#ŒCáz8A@ÆR˜“Cö(B@ÆHA”C€©B@ÆÃ5—CÍLÔB@ÆE�C®ÇÝB@ÆH¨C�ÂÍB@Ƹ~ÀC…k†B@ÆîÃC®G°B@ÆŽºC\OC@Ƥ°¸CöhC@ÆšùºCö¨"C@Æ{´ÂC{T*C@ÆõÝCÃõ%C@ÆåÚC;C@Æ@ËC×£RC@ÆÍlÈCîaC@ÆqÊCpC@Æ…ëÎC)ÜC@ÆqÝäCŒC@ÆáZÙCÃ5“C@ÆfÆÂC�b”C@Ƹþ¼CŽ™C@Æöè½Cš¢C@ÆͬÁCέC@Æ)|ÑC¤PÆC@ÆH!ÃC)\ÆC@Æ ·«CöH¸C@Æà¡CHa¶C@ÆÅ�C)<¼C@ÆNœCÃ5ÉC@Æ{ CšÙêC@Æ3“”C)<çC@ÆHá†CHÐC@Ƹ^}C¤°ÇC@ÆpC¥ÆC@Æ3³aC)<ÍC@ÆìICH!ëC@Æ\�8C®çãC@Æ3ó4Cq�ÌC@Ƹž+CšyÄC@Æ3sCHÁÀC@Æ{”CŽÀC@Æ.ÄBì1ÐC@Æ{”¿B{4ÃC@ÆHáæBH�®C@ÆÃõÞBî¦C@Æ�BÃBqÝ¢C@Æ›B…ŸC@ƸËA)¼ C@ÆìQ%B�“C@Æ×#¨B W†C@Æ»B¸^}C@Æ שBpC@Æq½€BH¡`C@ÆR¸:Aq½GC@ƸBáz8C@Æ)Ü¥B{Ô6C@ÆìÑÑB�1C@Æ)ÜÝBáz%C@ÆšÐB\ÏC@Æ)\‰B€ÀB@ƲB²B@Æf&C…kÕB@Æ…C3³ÚB@Æõ!CÍÌÐB@ÆHá)Cq=³B@Æ)&CÃõB@Æn;C®G/B@ÆÃõRCö¨–B@Æ�bCš B@Å �ìQ8C€¢C� ×+Cf&žC�ö¨ C¸þ˜C�áúC�"“C�áúC=ªŒC�ÍÌCR¸…C�\�C{Ô|C�šYC=ÊmC�.C{”^C�{Cq}OC��CÍÌ@C�×ã C®Ç2C�¸žC®%C�Í CÀC��*C33C�=J6Cq=C�®CC\þB�…ëQCHaóB��Â`C®ìB�öèoC= êB� C=ŠëB�‡C×#ñB�)<ŽCq½úB�\•C{C�q]›Cì‘ C�= ¡C3³C�šù¥CE"C�{ªCì/C�®G­C)Ü¥CqýC�á¡C®GC�RXœC®Ç C�Í —Cf¦C�3S‘C= üB�E‹CáúóB�¸þ„C®GïB�q=}C= îB�®‡pCq=ðB�{dCHáõB�H!XC ×þB�×ãLCRxC�{”BCqý C�Ha9C ×C�Rx1CšÙC�áú*CšÙ*C�Í &C¸ž6C�À"C3óBC�f&!C)œOC�=J!CHa\C�f&#CiC�õ&C�BuC�×ã+CÃu€C�)œ2C×ã…C�áº:C\ÏŠC�¸DC�"�C� —NCöÈ’CÅ Ê,C\CÊ@CRCÊXCUCÊcC]CÊOC\CÊJCiCÊ;CkCÔ%!#)ÿÅ(7 Ink breath9´;35Foƒ»CZDFoƒ;C´DFoƒ»57Machine9ŠBinds>@?A—=•