§
    Ÿ²Åj¥  ã            	       ó  — U d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	Z	d dl	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z?m@ZA i ZBeeeef         ef         eCd<   i ZDeeeef         ef         eCd <   d!d"gZEd#„ ZFe G d$„ d%¦  «        ¦   «         ZGd&„ ZHd'„ ZId(„ ZJd)„ ZKd*ed+ed,e	jL        fd-„ZM eFee¦  «        d.„ ¦   «         ZN eFee¦  «        d/„ ¦   «         ZO eFee¦  «        d0„ ¦   «         ZP eFee¦  «        d1„ ¦   «         ZQ eFee¦  «        d2„ ¦   «         ZR eFee¦  «        d3„ ¦   «         ZS eFee¦  «        d4„ ¦   «         ZT eFee¦  «        d5„ ¦   «         ZU eFe e ¦  «        d6„ ¦   «         ZV eFe$e$¦  «        d7„ ¦   «         ZW eFe"e"¦  «        d8„ ¦   «         ZX eFe&e&¦  «        d9„ ¦   «         ZY eFe*e*¦  «        d:„ ¦   «         ZZ eFe.e.¦  «        d;„ ¦   «         Z[ eFe1e.¦  «        d<„ ¦   «         Z\ eFe.e1¦  «        d=„ ¦   «         Z] eFe1e1¦  «        d>„ ¦   «         Z^ eFe3e3¦  «        d?„ ¦   «         Z_ eFe5e5¦  «        d@„ ¦   «         Z` eFe7e7¦  «        dA„ ¦   «         Za eFe9e9¦  «        dB„ ¦   «         Zb eFe;e;¦  «        dC„ ¦   «         Zc eFe=e=¦  «        dD„ ¦   «         Zd eFee9¦  «        dE„ ¦   «         Ze eFee¦  «        dF„ ¦   «         Zf eFee7¦  «        dG„ ¦   «         Zg eFee¦  «        dH„ ¦   «         Zh eFee ¦  «        dI„ ¦   «         Zi eFee3¦  «        dJ„ ¦   «         Zj eFee=¦  «        dK„ ¦   «         Zk eFee7¦  «        dL„ ¦   «         Zl eFee¦  «        dM„ ¦   «         Zm eFee3¦  «        dN„ ¦   «         Zn eFee=¦  «        dO„ ¦   «         Zo eFee¦  «         eFee¦  «         eFee7¦  «         eFee=¦  «        dP„ ¦   «         ¦   «         ¦   «         ¦   «         Zp eFee ¦  «        dQ„ ¦   «         Zq eFee$¦  «        dR„ ¦   «         Zr eFee3¦  «        dS„ ¦   «         Zs eFe e¦  «         eFe e¦  «         eFe e7¦  «         eFe e=¦  «        dT„ ¦   «         ¦   «         ¦   «         ¦   «         Zt eFe e¦  «        dU„ ¦   «         Zu eFe e$¦  «        dV„ ¦   «         Zv eFe e3¦  «        dW„ ¦   «         Zw eFe$e¦  «         eFe$e¦  «         eFe$e¦  «         eFe$e ¦  «         eFe$e7¦  «         eFe$e=¦  «        dX„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zx eFe$e3¦  «        dY„ ¦   «         Zy eFe*e¦  «         eFe*e¦  «         eFe*e¦  «         eFe*e ¦  «         eFe*e7¦  «         eFe*e=¦  «        dZ„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zz eFe*e3¦  «        d[„ ¦   «         Z{ eFe3e¦  «         eFe3e¦  «         eFe3e¦  «         eFe3e ¦  «         eFe3e7¦  «         eFe3e=¦  «        d\„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z| eFe3e$¦  «        d]„ ¦   «         Z} eFe3e*¦  «        d^„ ¦   «         Z~ eFe7e¦  «         eFe7e¦  «         eFe7e=¦  «        d_„ ¦   «         ¦   «         ¦   «         Z eFe7e¦  «        d`„ ¦   «         Z€ eFe7e ¦  «        da„ ¦   «         Z� eFe7e3¦  «        db„ ¦   «         Z‚ eFe9e¦  «         eFe9e¦  «        dc„ ¦   «         ¦   «         Zƒ eFe=e¦  «        dd„ ¦   «         Z„ eFe=e¦  «        de„ ¦   «         Z… eFe=e¦  «        df„ ¦   «         Z† eFe=e ¦  «        dg„ ¦   «         Z‡ eFe=e$¦  «        dh„ ¦   «         Zˆ eFe=e3¦  «        di„ ¦   «         Z‰ eFe=e7¦  «        dj„ ¦   «         ZŠ eFe(e(¦  «        dk„ ¦   «         Z‹ eFee¦  «        dl„ ¦   «         ZŒdm„ Z�dS )né    N)Útotal_ordering)ÚCallableÚDictÚTupleÚType)Úinfé   )Ú	Bernoulli)ÚBeta)ÚBinomial)ÚCategorical)ÚCauchy)ÚContinuousBernoulli)Ú	Dirichlet)ÚDistribution)ÚExponentialFamily)ÚExponential)ÚGamma)Ú	Geometric)ÚGumbel)Ú
HalfNormal)ÚIndependent)ÚLaplace)Ú_batch_lowrank_logdetÚ_batch_lowrank_mahalanobisÚLowRankMultivariateNormal)Ú_batch_mahalanobisÚMultivariateNormal)ÚNormal)ÚOneHotCategorical)ÚPareto)ÚPoisson)ÚTransformedDistribution)ÚUniform)Ú_sum_rightmostÚeuler_constantÚ_KL_REGISTRYÚ_KL_MEMOIZEÚregister_klÚkl_divergencec                 ó  ‡ ‡— t          ‰ t          ¦  «        s't          ‰ t          ¦  «        rt	          d‰ › �¦  «        ‚t          ‰t          ¦  «        s't          ‰t          ¦  «        rt	          d‰› �¦  «        ‚ˆ ˆfd„}|S )a[  
    Decorator to register a pairwise function with :meth:`kl_divergence`.
    Usage::

        @register_kl(Normal, Normal)
        def kl_normal_normal(p, q):
            # insert implementation here

    Lookup returns the most specific (type,type) match ordered by subclass. If
    the match is ambiguous, a `RuntimeWarning` is raised. For example to
    resolve the ambiguous situation::

        @register_kl(BaseP, DerivedQ)
        def kl_version1(p, q): ...
        @register_kl(DerivedP, BaseQ)
        def kl_version2(p, q): ...

    you should register a third most-specific implementation, e.g.::

        register_kl(DerivedP, DerivedQ)(kl_version1)  # Break the tie.

    Args:
        type_p (type): A subclass of :class:`~torch.distributions.Distribution`.
        type_q (type): A subclass of :class:`~torch.distributions.Distribution`.
    z6Expected type_p to be a Distribution subclass but got z6Expected type_q to be a Distribution subclass but got c                 óR   •— | t           ‰‰f<   t                               ¦   «          | S ©N)r'   r(   Úclear)ÚfunÚtype_pÚtype_qs    €€úGC:\Projects\Historical\venv\Lib\site-packages\torch/distributions/kl.pyÚ	decoratorzregister_kl.<locals>.decoratorV   s(   ø€ Ø'*��V˜V�^Ñ$Ý×ÒÑÔÐØˆ
ó    )Ú
isinstanceÚtypeÚ
issubclassr   Ú	TypeError)r0   r1   r3   s   `` r2   r)   r)   3   s®   øø€ õ4 �f�dÑ#Ô#ð 
­
°6½<Ñ(HÔ(Hð 
ÝØMÀVÐMÐMñ
ô 
ð 	
õ �f�dÑ#Ô#ð 
­
°6½<Ñ(HÔ(Hð 
ÝØMÀVÐMÐMñ
ô 
ð 	
ðð ð ð ð ð ð
 Ðr4   c                   ó&   — e Zd ZdgZd„ Zd„ Zd„ ZdS )Ú_MatchÚtypesc                 ó   — || _         d S r-   ©r;   )Úselfr;   s     r2   Ú__init__z_Match.__init__b   s   € ØˆŒ
ˆ
ˆ
r4   c                 ó"   — | j         |j         k    S r-   r=   )r>   Úothers     r2   Ú__eq__z_Match.__eq__e   s   € ØŒz˜Uœ[Ò(Ð(r4   c                 óx   — t          | j        |j        ¦  «        D ]\  }}t          ||¦  «        s dS ||ur nŒdS )NFT)Úzipr;   r7   )r>   rA   ÚxÚys       r2   Ú__le__z_Match.__le__h   sT   € Ý˜œ
 E¤KÑ0Ô0ð 	ð 	‰DˆAˆqÝ˜a Ñ#Ô#ð Ø�u�uØ˜ˆzˆzØ�ð àˆtr4   N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r?   rB   rG   © r4   r2   r:   r:   ^   sH   € € € € € à�	€Iðð ð ð)ð )ð )ðð ð ð ð r4   r:   c                 ó‚  ‡ ‡— ˆ ˆfd„t           D ¦   «         }|st          S t          d„ |D ¦   «         ¦  «        j        \  }}t          d„ |D ¦   «         ¦  «        j        \  }}t           ||f         }t           ||f         }||ur;t	          j        d‰ j        › d‰j        › d|j        › d|j        › d�	t          ¦  «         |S )zP
    Find the most specific approximate match, assuming single inheritance.
    c                 ó^   •— g | ])\  }}t          ‰|¦  «        ¯t          ‰|¦  «        ¯%||f‘Œ*S rL   )r7   )Ú.0Úsuper_pÚsuper_qr0   r1   s      €€r2   ú
<listcomp>z _dispatch_kl.<locals>.<listcomp>u   sV   ø€ ð ð ð áˆG�WÝ�f˜gÑ&Ô&ðõ ,6°f¸gÑ+FÔ+FðØ	�'Ððð ð r4   c              3   ó(   K  — | ]}t          |Ž V — Œd S r-   )r:   ©rO   Úms     r2   ú	<genexpr>z_dispatch_kl.<locals>.<genexpr>   s&   è è € Ð5Ð5¨� ˜Ð5Ð5Ð5Ð5Ð5Ð5r4   c              3   óB   K  — | ]}t          t          |¦  «        Ž V — Œd S r-   )r:   ÚreversedrT   s     r2   rV   z_dispatch_kl.<locals>.<genexpr>€   s-   è è € ÐAÐA°A�6¥8¨A¡;¤;Ð/ÐAÐAÐAÐAÐAÐAr4   zAmbiguous kl_divergence(z, z). Please register_kl(ú))r'   ÚNotImplementedÚminr;   ÚwarningsÚwarnrH   ÚRuntimeWarning)	r0   r1   ÚmatchesÚleft_pÚleft_qÚright_qÚright_pÚleft_funÚ	right_funs	   ``       r2   Ú_dispatch_klrf   q   s  øø€ ðð ð ð ð å ,ðñ ô €Gð
 ð ÝÐõ Ð5Ð5¨WÐ5Ñ5Ô5Ñ5Ô5Ô;�N€FˆFÝÐAÐA¸ÐAÑAÔAÑAÔAÔGÑ€GˆWÝ˜F F˜NÔ+€HÝ˜W gÐ-Ô.€IØ�yÐ Ð ÝŒðI v¤ð Ið I¸&¼/ð Ið IØ"(¤/ðIð IØ5<Ô5EðIð Ið Iåñ	
ô 	
ð 	
ð
 €Or4   c                 ó6   — t          j        | t          ¦  «        S )zI
    Helper function for obtaining infinite KL Divergence throughout
    )ÚtorchÚ	full_liker   ©Útensors    r2   Ú_infinite_likerl   Œ   s   € õ Œ?˜6¥3Ñ'Ô'Ð'r4   c                 ó0   — | |                       ¦   «         z  S )z2
    Utility function for calculating x log x
    )Úlogrj   s    r2   Ú_x_log_xro   “   s   € ð �F—J’J‘L”LÑ Ð r4   c                 ó  — |                       d¦  «        }|                       d¦  «        }|                      d||z  ¦  «                             d¦  «                             d¦  «        }|                     | j        dd…         ¦  «        S )zp
    Utility function for calculating the trace of XX^{T} with X having arbitrary trailing batch dimensions
    éÿÿÿÿéþÿÿÿé   N)ÚsizeÚreshapeÚpowÚsumÚshape)ÚbmatÚnrU   Ú
flat_traces       r2   Ú_batch_trace_XXTr|   š   ss   € ð 	�	Š	�"‰Œ€AØ�	Š	�"‰Œ€AØ—’˜b ! a¡%Ñ(Ô(×,Ò,¨QÑ/Ô/×3Ò3°BÑ7Ô7€JØ×Ò˜dœj¨¨"¨œoÑ.Ô.Ð.r4   ÚpÚqÚreturnc                 ó”  — 	 t           t          | ¦  «        t          |¦  «        f         }n`# t          $ rS t          t          | ¦  «        t          |¦  «        ¦  «        }|t           t          | ¦  «        t          |¦  «        f<   Y nw xY w|t          u r)t          d| j        j        › d|j        j        › �¦  «        ‚ || |¦  «        S )a"  
    Compute Kullback-Leibler divergence :math:`KL(p \| q)` between two distributions.

    .. math::

        KL(p \| q) = \int p(x) \log\frac {p(x)} {q(x)} \,dx

    Args:
        p (Distribution): A :class:`~torch.distributions.Distribution` object.
        q (Distribution): A :class:`~torch.distributions.Distribution` object.

    Returns:
        Tensor: A batch of KL divergences of shape `batch_shape`.

    Raises:
        NotImplementedError: If the distribution types have not been registered via
            :meth:`register_kl`.
    z(No KL(p || q) is implemented for p type z and q type )r(   r6   ÚKeyErrorrf   rZ   ÚNotImplementedErrorÚ	__class__rH   )r}   r~   r/   s      r2   r*   r*   ¤   sË   € ð&,Ý�$˜q™'œ'¥4¨¡7¤7Ð*Ô+ˆˆøÝð ,ð ,ð ,Ý�4 ™7œ7¥D¨¡G¤GÑ,Ô,ˆØ(+�•D˜‘G”G�T !™WœWÐ$Ñ%Ð%Ð%ð,øøøð �nÐÐÝ!Øo°q´{Ô7KÐoÐoÐYZÔYdÔYmÐoÐoñ
ô 
ð 	
ð ˆ3ˆq�!‰9Œ9Ðs   ‚), ¬AB	ÂB	c                 ó  — | j         t          j        j                             |j         ¦  «        t          j        j                             | j         ¦  «        z
  z  }t          ||j         dk    <   d|| j         dk    <   d| j         z
  t          j        j                             |j        ¦  «        t          j        j                             | j        ¦  «        z
  z  }t          ||j         dk    <   d|| j         dk    <   ||z   S ©Nr   r	   )Úprobsrh   ÚnnÚ
functionalÚsoftplusÚlogitsr   ©r}   r~   Út1Út2s       r2   Ú_kl_bernoulli_bernoullirŽ   Ê   sÖ   € à	
ŒÝŒÔ×$Ò$ a¤h YÑ/Ô/Ý
Œ(Ô
×
&Ò
&¨¬ yÑ
1Ô
1ñ	2ñ
€Bõ €B€q„w�!‚|ÑØ€B€q„w�!‚|ÑØ
ˆaŒg‰+ÝŒÔ×$Ò$ Q¤XÑ.Ô.µ´Ô1D×1MÒ1MÈaÌhÑ1WÔ1WÑWñ
€Bõ €B€q„w�!‚|ÑØ€B€q„w�!‚|ÑØ�‰7€Nr4   c                 óR  — | j         | j        z   }|j         |j        z   }|j                              ¦   «         |j                             ¦   «         z   |                     ¦   «         z   }| j                              ¦   «         | j                             ¦   «         z   |                     ¦   «         z   }| j         |j         z
  t          j        | j         ¦  «        z  }| j        |j        z
  t          j        | j        ¦  «        z  }||z
  t          j        |¦  «        z  }||z
  |z   |z   |z   S r-   )Úconcentration1Úconcentration0Úlgammarh   Údigamma)	r}   r~   Úsum_params_pÚsum_params_qrŒ   r�   Út3Út4Út5s	            r2   Ú_kl_beta_betar™   Ú   s	  € àÔ# aÔ&6Ñ6€LØÔ# aÔ&6Ñ6€LØ	
Ô	×	 Ò	 Ñ	"Ô	" QÔ%5×%<Ò%<Ñ%>Ô%>Ñ	>À,×AVÒAVÑAXÔAXÑ	X€BØ	
Ô	×	 Ò	 Ñ	"Ô	" QÔ%5×%<Ò%<Ñ%>Ô%>Ñ	>À,×AVÒAVÑAXÔAXÑ	X€BØ
Ô
˜QÔ-Ñ
-µ´¸qÔ?OÑ1PÔ1PÑ	P€BØ
Ô
˜QÔ-Ñ
-µ´¸qÔ?OÑ1PÔ1PÑ	P€BØ
˜Ñ
%­¬°|Ñ)DÔ)DÑ	D€BØ�‰7�R‰<˜"Ñ˜rÑ!Ð!r4   c                 ób  — | j         |j         k                          ¦   «         rt          d¦  «        ‚| j         | j        | j        |j        z
  z  | j                              ¦   «         z   |j                              ¦   «         z
  z  }| j         |j         k    }t          ||         ¦  «        ||<   |S )NzKKL between Binomials where q.total_count > p.total_count is not implemented)Útotal_countÚanyr‚   r†   rŠ   Úlog1prl   )r}   r~   ÚklÚinf_idxss       r2   Ú_kl_binomial_binomialr    æ   s«   € ð 	
Œ˜œÒ%×*Ò*Ñ,Ô,ð 
Ý!ØYñ
ô 
ð 	
ð 
ŒØ	Œ�1”8˜aœhÑ&Ñ'¨A¬G¨8×*:Ò*:Ñ*<Ô*<Ñ<ÀÄÀ×?OÒ?OÑ?QÔ?QÑQñ
€Bð Œ}˜qœ}Ò,€HÝ! " X¤,Ñ/Ô/€B€x�LØ€Ir4   c                 óè   — | j         | j        |j        z
  z  }t          ||j         dk                         |¦  «        <   d|| j         dk                         |¦  «        <   |                     d¦  «        S )Nr   rq   )r†   rŠ   r   Ú	expand_asrw   )r}   r~   Úts      r2   Ú_kl_categorical_categoricalr¤   ö   sc   € à	Œ�1”8˜aœhÑ&Ñ'€AÝ%(€A€q„w�!‚|×Ò˜qÑ!Ô!Ñ"Ø%&€A€q„w�!‚|×Ò˜qÑ!Ô!Ñ"Ø�5Š5�‰9Œ9Ðr4   c                 óþ   — | j         | j        |j        z
  z  }|                      ¦   «         t          j        | j         ¦  «        z   }|                     ¦   «          t          j        |j         ¦  «        z
  }||z   |z   S r-   )ÚmeanrŠ   Ú_cont_bern_log_normrh   r�   r†   ©r}   r~   rŒ   r�   r–   s        r2   Ú-_kl_continuous_bernoulli_continuous_bernoullir©   þ   sp   € à	
Œ�1”8˜aœhÑ&Ñ	'€BØ	
×	Ò	Ñ	 Ô	 ¥5¤;°´¨xÑ#8Ô#8Ñ	8€BØ
×
Ò
Ñ
!Ô
!Ð	!¥E¤K°´°Ñ$9Ô$9Ñ	9€BØ�‰7�R‰<Ðr4   c                 ó$  — | j                              d¦  «        }|j                              d¦  «        }|                     ¦   «         |                     ¦   «         z
  }| j                              ¦   «         |j                              ¦   «         z
                       d¦  «        }| j         |j         z
  }| j                              ¦   «         |                     ¦   «                              d¦  «        z
  }||z
  ||z                       d¦  «        z   S )Nrq   )Úconcentrationrw   r’   r“   Ú	unsqueeze)r}   r~   Úsum_p_concentrationÚsum_q_concentrationrŒ   r�   r–   r—   s           r2   Ú_kl_dirichlet_dirichletr¯     sç   € ð œ/×-Ò-¨bÑ1Ô1ÐØœ/×-Ò-¨bÑ1Ô1ÐØ	×	#Ò	#Ñ	%Ô	%Ð(;×(BÒ(BÑ(DÔ(DÑ	D€BØ
Œ/×
 Ò
 Ñ
"Ô
" Q¤_×%;Ò%;Ñ%=Ô%=Ñ
=×	BÒ	BÀ2Ñ	FÔ	F€BØ	
Œ˜1œ?Ñ	*€BØ	
Œ×	 Ò	 Ñ	"Ô	"Ð%8×%@Ò%@Ñ%BÔ%B×%LÒ%LÈRÑ%PÔ%PÑ	P€BØ�‰7�b˜2‘g—]’] 2Ñ&Ô&Ñ&Ð&r4   c                 óZ   — |j         | j         z  }|                     ¦   «          }||z   dz
  S ©Nr	   ©Úratern   )r}   r~   Ú
rate_ratiorŒ   s       r2   Ú_kl_exponential_exponentialrµ     s0   € à”˜!œ&‘€JØ
�.Š.Ñ
Ô
Ð	€BØ�
‰?˜QÑÐr4   c                 ó´  — t          | ¦  «        t          |¦  «        k    st          d¦  «        ‚d„ | j        D ¦   «         }|j        } | j        |Ž }t          j                             |                     ¦   «         |d¬¦  «        } |j        |Ž |z
  }t          |||¦  «        D ]3\  }}}	||z
  |	z  }
|t          |
t          |j        ¦  «        ¦  «        z  }Œ4|S )Nz‡The cross KL-divergence between different exponential families cannot                             be computed using Bregman divergencesc                 óZ   — g | ](}|                      ¦   «                              ¦   «         ‘Œ)S rL   )ÚdetachÚrequires_grad_)rO   Únps     r2   rR   z+_kl_expfamily_expfamily.<locals>.<listcomp>   s,   € ÐJÐJÐJ°"�—’‘”×+Ò+Ñ-Ô-ÐJÐJÐJr4   T)Úcreate_graph)r6   r‚   Ú_natural_paramsÚ_log_normalizerrh   ÚautogradÚgradrw   rD   r%   ÚlenÚevent_shape)r}   r~   Ú	p_nparamsÚ	q_nparamsÚ	lg_normalÚ	gradientsÚresultÚpnpÚqnpÚgÚterms              r2   Ú_kl_expfamily_expfamilyrË     sì   € å�‰7Œ7•d˜1‘g”gÒÐÝ!ðCñ
ô 
ð 	
ð KÐJ¸Ô8IÐJÑJÔJ€IØÔ!€IØ!�Ô! 9Ð-€IÝ”×#Ò# I§M¢M¡O¤O°YÈTÐ#ÑRÔR€IØˆQÔ 	Ð*¨YÑ6€FÝ˜9 i°Ñ;Ô;ð ;ð ;‰ˆˆS�!Ø�c‘	˜Q‰ˆØ•. ¥s¨1¬=Ñ'9Ô'9Ñ:Ô:Ñ:ˆˆØ€Mr4   c                 ó`  — |j         | j        |j        z                       ¦   «         z  }t          j        |j         ¦  «        t          j        | j         ¦  «        z
  }| j         |j         z
  t          j        | j         ¦  «        z  }|j        | j        z
  | j         | j        z  z  }||z   |z   |z   S r-   )r«   r³   rn   rh   r’   r“   ©r}   r~   rŒ   r�   r–   r—   s         r2   Ú_kl_gamma_gammarÎ   +  s‘   € à	
Œ˜AœF Q¤V™O×0Ò0Ñ2Ô2Ñ	2€BÝ	Œ�a”oÑ	&Ô	&­¬°a´oÑ)FÔ)FÑ	F€BØ
Œ/˜AœOÑ
+­u¬}¸Q¼_Ñ/MÔ/MÑ	M€BØ
Œ&�1”6‰/˜aœo°´Ñ6Ñ	7€BØ�‰7�R‰<˜"ÑÐr4   c                 ó*  — | j         |j         z  }|j        |j         z  }| j        |j         z  }|                     ¦   «          |z
  |z   }|t          z  }t	          j        |d|z                        ¦   «         z   |z
  ¦  «        }||z   |z   dt          z   z
  S r±   )ÚscaleÚlocrn   Ú_euler_gammarh   Úexpr’   )r}   r~   Úct1Úct2Úct3rŒ   r�   r–   s           r2   Ú_kl_gumbel_gumbelr×   4  sŽ   € à
Œ'�A”GÑ
€CØ
Œ%�!”'‰/€CØ
Œ%�!”'‰/€CØ
�'Š'‰)Œ)ˆ�cÑ	˜CÑ	€BØ	�|Ñ	€BÝ	Œ�3˜!˜c™'×)Ò)Ñ+Ô+Ñ+¨cÑ1Ñ	2Ô	2€BØ�‰7�R‰<˜1�|Ñ+Ñ,Ð,r4   c                 ó‚   — |                       ¦   «          t          j        |j         ¦  «        | j        z  z
  |j        z
  S r-   )Úentropyrh   r�   r†   rŠ   ©r}   r~   s     r2   Ú_kl_geometric_geometricrÛ   ?  s3   € à�IŠI‰KŒKˆ<�%œ+ q¤w hÑ/Ô/°!´'Ñ9Ñ9¸A¼HÑDÐDr4   c                 ó6   — t          | j        |j        ¦  «        S r-   )Ú_kl_normal_normalÚ	base_distrÚ   s     r2   Ú_kl_halfnormal_halfnormalrß   D  s   € å˜Qœ[¨!¬+Ñ6Ô6Ð6r4   c                 óö   — | j         |j         z  }| j        |j        z
                       ¦   «         }|                     ¦   «          }||j         z  }|t	          j        | | j         z  ¦  «        z  }||z   |z   dz
  S r±   )rÐ   rÑ   Úabsrn   rh   rÓ   )r}   r~   Úscale_ratioÚloc_abs_diffrŒ   r�   r–   s          r2   Ú_kl_laplace_laplacerä   I  sy   € ð ”'˜AœGÑ#€KØ”E˜AœE‘M×&Ò&Ñ(Ô(€LØ
�/Š/Ñ
Ô
Ð	€BØ	˜œÑ	€BØ	•u”y , °´Ñ!8Ñ9Ô9Ñ	9€BØ�‰7�R‰<˜!ÑÐr4   c                 óŽ  — | j         |j         k    rt          d¦  «        ‚t          |j        |j        |j        ¦  «        t          | j        | j        | j        ¦  «        z
  }t          |j        |j        |j        | j        z
  |j        ¦  «        }|j        j        |j         	                    d¦  «        z  }t          j                             |j        |d¬¦  «        }| j        |j        z                       d¦  «        }t          | j        |j                             ¦   «          	                    d¦  «        z  ¦  «        }t          || j                             ¦   «          	                    d¦  «        z  ¦  «        }t          |                     | j        ¦  «        ¦  «        }	||z   |z
  |	z
  }
d||
z   |z   | j         d         z
  z  S )NzKL-divergence between two Low Rank Multivariate Normals with                          different event shapes cannot be computedrr   F©Úupperrq   ç      à?r   )rÁ   Ú
ValueErrorr   Ú_unbroadcasted_cov_factorÚ_unbroadcasted_cov_diagÚ_capacitance_trilr   rÑ   ÚmTr¬   rh   ÚlinalgÚsolve_triangularrw   r|   ÚrsqrtÚsqrtÚmatmul)r}   r~   Úterm1Úterm3Ú	qWt_qDinvÚAÚterm21Úterm22Úterm23Úterm24Úterm2s              r2   Ú7_kl_lowrankmultivariatenormal_lowrankmultivariatenormalrü   T  s³  € à„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
õ
 "Ø	Ô# QÔ%>ÀÔ@Sñô åØ	Ô# QÔ%>ÀÔ@Sñ	ô 	ñ€Eõ
 'Ø	Ô#Ø	Ô!Ø	Œ�”‰Ø	Ôñ	ô €Eð Ô+Ô.°Ô1J×1TÒ1TÐUWÑ1XÔ1XÑX€IÝŒ×%Ò% aÔ&9¸9ÈEÐ%ÑRÔR€AØÔ'¨!Ô*CÑC×HÒHÈÑLÔL€FÝØ	Ô# aÔ&?×&EÒ&EÑ&GÔ&G×&QÒ&QÐRTÑ&UÔ&UÑUñô €Fõ ˜a !Ô";×"@Ò"@Ñ"BÔ"B×"LÒ"LÈRÑ"PÔ"PÑPÑQÔQ€FÝ˜aŸhšh qÔ'BÑCÔCÑDÔD€FØ�V‰O˜fÑ$ vÑ-€EØ�%˜%‘- %Ñ'¨!¬-¸Ô*:Ñ:Ñ;Ð;r4   c                 ó  — | j         |j         k    rt          d¦  «        ‚t          |j        |j        |j        ¦  «        d| j                             dd¬¦  «                             ¦   «          	                    d¦  «        z  z
  }t          |j        |j        |j        | j        z
  |j        ¦  «        }|j        j        |j                             d¦  «        z  }t          j                             |j        |d¬¦  «        }t#          | j        |j                             ¦   «                              d¦  «        z  ¦  «        }t#          |                     | j        ¦  «        ¦  «        }||z
  }d||z   |z   | j         d	         z
  z  S )
Nú�KL-divergence between two (Low Rank) Multivariate Normals with                          different event shapes cannot be computedrs   rr   rq   ©Údim1Údim2Fræ   rè   r   )rÁ   ré   r   rê   rë   rì   Ú_unbroadcasted_scale_trilÚdiagonalrn   rw   r   rÑ   rí   r¬   rh   rî   rï   r|   rð   rò   )	r}   r~   ró   rô   rõ   rö   r÷   rø   rû   s	            r2   Ú0_kl_multivariatenormal_lowrankmultivariatenormalr  v  sx  € à„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
õ
 "Ø	Ô# QÔ%>ÀÔ@Sñô à	ˆAÔ'×0Ò0°b¸rÐ0ÑBÔB×FÒFÑHÔH×LÒLÈRÑPÔPÑPñQ€Eõ 'Ø	Ô#Ø	Ô!Ø	Œ�”‰Ø	Ôñ	ô €Eð Ô+Ô.°Ô1J×1TÒ1TÐUWÑ1XÔ1XÑX€IÝŒ×%Ò% aÔ&9¸9ÈEÐ%ÑRÔR€AÝØ	Ô# aÔ&?×&EÒ&EÑ&GÔ&G×&QÒ&QÐRTÑ&UÔ&UÑUñô €Fõ ˜aŸhšh qÔ'BÑCÔCÑDÔD€FØ�V‰O€EØ�%˜%‘- %Ñ'¨!¬-¸Ô*:Ñ:Ñ;Ð;r4   c                 ó  — | j         |j         k    rt          d¦  «        ‚d|j                             dd¬¦  «                             ¦   «                              d¦  «        z  t          | j        | j        | j	        ¦  «        z
  }t          |j        |j        | j        z
  ¦  «        }t          j                             |j        j        d d…         | j        j        d d…         ¦  «        }| j         d         }|j                             |||fz   ¦  «        }| j                             ||| j                             d¦  «        fz   ¦  «        }t          j        | j                             ¦   «         ¦  «                             |||fz   ¦  «        }t+          t          j                             ||d¬¦  «        ¦  «        }	t+          t          j                             ||d¬¦  «        ¦  «        }
|	|
z   }d	||z   |z   | j         d         z
  z  S )
Nrþ   rs   rr   rq   rÿ   r   Fræ   rè   )rÁ   ré   r  r  rn   rw   r   rê   rë   rì   r   rÑ   rh   Ú_CÚ_infer_sizerx   ÚexpandÚ
cov_factorrt   Ú
diag_embedrñ   r|   rî   rï   )r}   r~   ró   rô   Úcombined_batch_shaperz   Úq_scale_trilÚp_cov_factorÚ
p_cov_diagr÷   rø   rû   s               r2   Ú0_kl_lowrankmultivariatenormal_multivariatenormalr  ”  s  € à„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
ð
 �Ô+×4Ò4¸"À2Ð4ÑFÔF×JÒJÑLÔL×PÒPØ
ñô ñ åØ	Ô# QÔ%>ÀÔ@Sñ	ô 	ñ€Eõ
 ˜qÔ:¸Q¼UÀQÄU¹]ÑLÔL€Eõ !œ8×/Ò/Ø	Ô#Ô)¨#¨2¨#Ô.°Ô0KÔ0QÐRUÐSUÐRUÔ0Vñô Ðð 	
Œ�aÔ€AØÔ.×5Ò5Ð6JÈaÐQRÈVÑ6SÑTÔT€LØÔ.×5Ò5Ø  1¤<×#4Ò#4°RÑ#8Ô#8Ð9Ñ9ñô €Lõ Ô! !Ô";×"@Ò"@Ñ"BÔ"BÑCÔC×JÒJØ  1˜vÑ%ñô €Jõ ÝŒ×%Ò% l°LÈÐ%ÑNÔNñô €Fõ ÝŒ×%Ò% l°JÀeÐ%ÑLÔLñô €Fð �V‰O€EØ�%˜%‘- %Ñ'¨!¬-¸Ô*:Ñ:Ñ;Ð;r4   c                 ó"  — | j         |j         k    rt          d¦  «        ‚|j                             dd¬¦  «                             ¦   «                              d¦  «        | j                             dd¬¦  «                             ¦   «                              d¦  «        z
  }t          j                             |j        j	        d d…         | j        j	        d d…         ¦  «        }| j         d         }|j         
                    |||fz   ¦  «        }| j         
                    |||fz   ¦  «        }t          t          j                             ||d¬¦  «        ¦  «        }t          |j        |j        | j        z
  ¦  «        }|d||z   |z
  z  z   S )	NzvKL-divergence between two Multivariate Normals with                          different event shapes cannot be computedrr   rq   rÿ   r   Fræ   rè   )rÁ   ré   r  r  rn   rw   rh   r  r  rx   r  r|   rî   rï   r   rÑ   )	r}   r~   Ú
half_term1r  rz   r  Úp_scale_trilrû   rô   s	            r2   Ú)_kl_multivariatenormal_multivariatenormalr  ¹  sŽ  € ð 	„}˜œÒ%Ð%ÝðEñ
ô 
ð 	
ð
 Ô,×5Ò5¸2ÀBÐ5ÑGÔG×KÒKÑMÔM×QÒQØ
ñô à	Ô#×,Ò,°"¸2Ð,Ñ>Ô>×BÒBÑDÔD×HÒHÈÑLÔLñM€Jõ !œ8×/Ò/Ø	Ô#Ô)¨#¨2¨#Ô.°Ô0KÔ0QÐRUÐSUÐRUÔ0Vñô Ðð 	
Œ�aÔ€AØÔ.×5Ò5Ð6JÈaÐQRÈVÑ6SÑTÔT€LØÔ.×5Ò5Ð6JÈaÐQRÈVÑ6SÑTÔT€LÝÝŒ×%Ò% l°LÈÐ%ÑNÔNñô €Eõ ˜qÔ:¸Q¼UÀQÄU¹]ÑLÔL€EØ˜˜u u™}¨qÑ0Ñ1Ñ1Ð1r4   c                 óÚ   — | j         |j         z                       d¦  «        }| j        |j        z
  |j         z                       d¦  «        }d||z   dz
  |                     ¦   «         z
  z  S ©Nrs   rè   r	   ©rÐ   rv   rÑ   rn   )r}   r~   Ú	var_ratiorŒ   s       r2   rÝ   rÝ   Ò  sa   € à”˜1œ7Ñ"×'Ò'¨Ñ*Ô*€IØŒ5�1”5‰=˜AœGÑ
#×	(Ò	(¨Ñ	+Ô	+€BØ�)˜b‘. 1Ñ$ y§}¢}¡¤Ñ6Ñ7Ð7r4   c                 ó6   — t          | j        |j        ¦  «        S r-   )r¤   Ú_categoricalrÚ   s     r2   Ú'_kl_onehotcategorical_onehotcategoricalr  Ù  s   € å& q¤~°q´~ÑFÔFÐFr4   c                 óþ   — | j         |j         z  }|j        | j        z  }|j        |                     ¦   «         z  }|                     ¦   «          }||z   |z   dz
  }t          || j        j        |j        j        k     <   |S r±   )rÐ   Úalpharn   r   ÚsupportÚlower_bound)r}   r~   râ   Úalpha_ratiorŒ   r�   rÆ   s          r2   Ú_kl_pareto_paretor   Þ  sy   € ð ”'˜AœGÑ#€KØ”'˜AœGÑ#€KØ	
Œ�;—?’?Ñ$Ô$Ñ	$€BØ
�/Š/Ñ
Ô
Ð	€BØ�"‰W�{Ñ" QÑ&€FÝ<?€Fˆ1Œ9Ô  1¤9Ô#8Ò8Ñ9Ø€Mr4   c                 ó˜   — | j         | j                              ¦   «         |j                              ¦   «         z
  z  | j         |j         z
  z
  S r-   r²   rÚ   s     r2   Ú_kl_poisson_poissonr"  ê  s5   € àŒ6�Q”V—Z’Z‘\”\ A¤F§J¢J¡L¤LÑ0Ñ1°Q´V¸a¼f±_ÑEÐEr4   c                 ó’   — | j         |j         k    rt          ‚| j        |j        k    rt          ‚t          | j        |j        ¦  «        S r-   )Ú
transformsr‚   rÁ   r*   rÞ   rÚ   s     r2   Ú_kl_transformed_transformedr%  ï  s@   € à„|�q”|Ò#Ð#Ý!Ð!Ø„}˜œÒ%Ð%Ý!Ð!Ý˜œ a¤kÑ2Ô2Ð2r4   c                 óº   — |j         |j        z
  | j         | j        z
  z                       ¦   «         }t          ||j        | j        k    |j         | j         k     z  <   |S r-   )ÚhighÚlowrn   r   ©r}   r~   rÆ   s      r2   Ú_kl_uniform_uniformr*  ø  sL   € àŒv˜œ‰~ !¤&¨1¬5¡.Ñ1×6Ò6Ñ8Ô8€FÝ25€FˆAŒE�A”EŠM˜aœf q¤všoÑ.Ñ/Ø€Mr4   c                 ó€   — |                       ¦   «          | j        |j                             ¦   «         z  |j        z
  z
  S r-   )rÙ   r†   r³   rn   rÚ   s     r2   Ú_kl_bernoulli_poissonr,     s/   € à�IŠI‰KŒKˆ<˜1œ7 Q¤V§Z¢Z¡\¤\Ñ1°A´FÑ:Ñ;Ð;r4   c                 ó¬   — |                       ¦   «          | j        |j        z  z
  t          j        |j         ¦  «        z
  |                     ¦   «         z
  S r-   )rÙ   r¦   rŠ   rh   r�   r†   r§   rÚ   s     r2   Ú_kl_beta_continuous_bernoullir.    sS   € ð 
�Š‰ŒˆØ
Œ&�1”8Ñ
ñ	å
Œ+�q”w�hÑ
Ô
ñ	 ð ×
Ò
Ñ
!Ô
!ñ	"ðr4   c                 ó*   — t          | j        ¦  «        S r-   )rl   r�   rÚ   s     r2   Ú_kl_beta_infinityr0    s   € å˜!Ô*Ñ+Ô+Ð+r4   c                 ó    — |                       ¦   «          |j                             ¦   «         z
  |j        | j        | j        | j        z   z  z  z   S r-   )rÙ   r³   rn   r�   r‘   rÚ   s     r2   Ú_kl_beta_exponentialr2    sK   € ð 
�Š‰ŒˆØ
Œ&�*Š*‰,Œ,ñ	à
Œ&�AÔ$¨Ô(8¸1Ô;KÑ(KÑLÑ
Mñ	Nðr4   c                 ó‚  — |                       ¦   «          }|j                             ¦   «         |j        |j                             ¦   «         z  z
  }|j        dz
  | j                             ¦   «         | j        | j        z                        ¦   «         z
  z  }|j        | j        z  | j        | j        z   z  }||z   |z
  |z   S r±   )rÙ   r«   r’   r³   rn   r�   r“   r‘   rÍ   s         r2   Ú_kl_beta_gammar4    s­   € à
�)Š)‰+Œ+ˆ€BØ	
Œ×	Ò	Ñ	!Ô	! A¤O°a´f·j²j±l´lÑ$BÑ	B€BØ
Œ/˜AÑ
Ø	Ô× Ò Ñ"Ô" aÔ&6¸Ô9IÑ&I×%RÒ%RÑ%TÔ%TÑTñ
€Bð 
Œ�!Ô"Ñ	" aÔ&6¸Ô9IÑ&IÑ	J€BØ�‰7�R‰<˜"ÑÐr4   c                 ó´  — | j         | j         | j        z   z  }|j                             d¦  «        }|                      ¦   «          }d|dz  t
          j        z                       ¦   «         z  }|d|z
  z  | j         | j        z   dz   z  |                     d¦  «        z   dz  }|j        |z  }|j                             d¦  «        dz  }||z   ||z
  |z   |z  z   S r  )	r�   r‘   rÐ   rv   rÙ   ÚmathÚpirn   rÑ   )	r}   r~   ÚE_betaÚ
var_normalrŒ   r�   r–   r—   r˜   s	            r2   Ú_kl_beta_normalr:  +  s×   € àÔ Ô!1°AÔ4DÑ!DÑE€FØ”—’˜Q‘”€JØ
�)Š)‰+Œ+ˆ€BØ	�
˜Q‘¥¤Ñ(×-Ò-Ñ/Ô/Ñ	/€Bà�!�f‘*Ñ Ô!1°AÔ4DÑ!DÀqÑ!HÑIØ
�*Š*�Q‰-Œ-ñ	àñ
€Bð 
Œ�‰€BØ	
Œ�Š�1‰Œ˜Ñ	€BØ�‰7�b˜2‘g ‘l jÑ0Ñ0Ð0r4   c                 óÚ   — |                       ¦   «          |j        |j        z
                       ¦   «         z   }t          ||j        | j        j        k    |j        | j        j        k     z  <   |S r-   )rÙ   r'  r(  rn   r   r  r  Úupper_boundr)  s      r2   Ú_kl_beta_uniformr=  :  sV   € à�iŠi‰kŒkˆ\˜QœV a¤e™^×0Ò0Ñ2Ô2Ñ2€FÝQT€FˆAŒE�A”IÔ)Ò)¨a¬f°q´yÔ7LÒ.LÑMÑNØ€Mr4   c                 ó*   — t          | j        ¦  «        S r-   )rl   r†   rÚ   s     r2   Ú!_kl_continuous_bernoulli_infinityr?  D  s   € å˜!œ'Ñ"Ô"Ð"r4   c                 ó€   — |                       ¦   «          t          j        |j        ¦  «        z
  |j        | j        z  z   S r-   )rÙ   rh   rn   r³   r¦   rÚ   s     r2   Ú$_kl_continuous_bernoulli_exponentialrA  I  s0   € à�IŠI‰KŒKˆ<�%œ) A¤FÑ+Ô+Ñ+¨a¬f°q´v©oÑ=Ð=r4   c                 óž  — |                       ¦   «          }dt          j        dt          j        z  ¦  «        t	          j        |j        |j        z  ¦  «        z   z  t	          j        |j        ¦  «        z   }| j        t	          j        | j	        ¦  «        z   d|j        z  | j	        z  z
  dt	          j        |j        ¦  «        z  z  }||z   |z   S )Nrè   g       @)
rÙ   r6  rn   r7  rh   ÚsquarerÑ   rÐ   Úvariancer¦   r¨   s        r2   Ú_kl_continuous_bernoulli_normalrE  R  s±   € à
�)Š)‰+Œ+ˆ€BØ	•”˜�tœw™Ñ'Ô'­%¬,°q´u¸q¼w±Ñ*GÔ*GÑGÑ	HÍ5Ì9Ø	ŒñLô Lñ 
€Bð Œ*•u”| A¤FÑ+Ô+Ñ
+¨c°A´E©k¸A¼FÑ.BÑ
BØ�eŒl˜1œ7Ñ#Ô#Ñ#ñ
€Bð �‰7�R‰<Ðr4   c           	      ó~  — |                       ¦   «          |j        |j        z
                       ¦   «         z   }t	          j        t	          j        t	          j        |j        | j        j	        ¦  «        t	          j
        |j        | j        j        ¦  «        ¦  «        t	          j        |¦  «        t          z  |¦  «        S r-   )rÙ   r'  r(  rn   rh   ÚwhereÚmaxÚger  r  Úler<  Ú	ones_liker   r)  s      r2   Ú _kl_continuous_bernoulli_uniformrL  ^  s�   € à�iŠi‰kŒkˆ\˜QœV a¤e™^×0Ò0Ñ2Ô2Ñ2€FÝŒ;ÝŒ	ÝŒH�Q”U˜AœIÔ1Ñ2Ô2ÝŒH�Q”V˜QœYÔ2Ñ3Ô3ñ	
ô 	
õ 	Œ˜ÑÔ¥#Ñ%Øñô ð r4   c                 ó*   — t          | j        ¦  «        S r-   ©rl   r³   rÚ   s     r2   Ú_kl_exponential_infinityrO  k  s   € õ
 ˜!œ&Ñ!Ô!Ð!r4   c                 óÎ   — |j         | j         z  }|j         t          j        |¦  «        z  }||z   |j                             ¦   «         z   |j        t
          z  z   dt
          z   z
  S r±   )r³   r«   rh   rn   r’   rÒ   )r}   r~   ÚratiorŒ   s       r2   Ú_kl_exponential_gammarR  s  sn   € àŒF�Q”V‰O€EØ
Œ/Ð	�EœI eÑ,Ô,Ñ	,€Bà
Ø
ñ	à
Œ/×
 Ò
 Ñ
"Ô
"ñ	#ð Œ/�LÑ
(ñ	)ð �|Ññ		ðr4   c                 óä   — | j         |j        z  }|j        |j        z  }|                     ¦   «         dz
  }t	          j        |¦  «        |z  |dz   z  }|                     ¦   «         }||z
  |z   |z   S r±   )r³   rÐ   rÑ   rn   rh   rÓ   Ú
reciprocal)r}   r~   Úscale_rate_prodÚloc_scale_ratiorŒ   r�   r–   s          r2   Ú_kl_exponential_gumbelrW  €  sw   € à”f˜qœwÑ&€OØ”e˜aœg‘o€OØ	×	Ò	Ñ	Ô	 Ñ	"€BÝ	Œ�?Ñ	#Ô	# oÑ	5¸È1Ñ9LÑ	M€BØ	×	#Ò	#Ñ	%Ô	%€BØ�Ñ "Ñ$ rÑ)Ð)r4   c                 ó`  — |j                              d¦  «        }| j                             d¦  «        }dt          j        ||z  dz  t
          j        z  ¦  «        z  }|                     ¦   «         }|j        | j        z  }|j                             d¦  «        dz  }|dz
  ||z
  |z   |z  z   S r  )	rÐ   rv   r³   rh   rn   r6  r7  rT  rÑ   )r}   r~   r9  Úrate_sqrrŒ   r�   r–   r—   s           r2   Ú_kl_exponential_normalrZ  �  s™   € à”—’˜Q‘”€JØŒv�zŠz˜!‰}Œ}€HØ	�uŒy˜ JÑ.°Ñ2µT´WÑ<Ñ=Ô=Ñ	=€BØ	×	Ò	Ñ	Ô	€BØ	
Œ�”‰€BØ	
Œ�Š�1‰Œ˜Ñ	€BØ�‰6�R˜"‘W˜r‘\ ZÑ/Ñ/Ð/r4   c                 ó*   — t          | j        ¦  «        S r-   )rl   r«   rÚ   s     r2   Ú_kl_gamma_infinityr\  ˜  s   € õ
 ˜!œ/Ñ*Ô*Ð*r4   c                 ó�   — |                       ¦   «          |j                             ¦   «         z
  |j        | j        z  | j        z  z   S r-   )rÙ   r³   rn   r«   rÚ   s     r2   Ú_kl_gamma_exponentialr^     s6   € à�IŠI‰KŒKˆ<˜!œ&Ÿ*š*™,œ,Ñ&¨¬°!´/Ñ)AÀAÄFÑ)JÑJÐJr4   c                 ó¨  — | j         |j        z  }|j        |j        z  }| j        dz
  | j                             ¦   «         z  | j                             ¦   «         z
  | j        z
  }|                     ¦   «         | j        |z  z   }t          j        |¦  «        d| 	                    ¦   «         z    
                    | j         ¦  «        z  |z
  }||z   |z   S r±   )r³   rÐ   rÑ   r«   r“   r’   rn   rh   rÓ   rT  rv   )r}   r~   Úbeta_scale_prodrV  rŒ   r�   r–   s          r2   Ú_kl_gamma_gumbelra  ¥  sÕ   € à”f˜qœwÑ&€OØ”e˜aœg‘o€Oà	
Œ˜1Ñ	 ¤× 7Ò 7Ñ 9Ô 9Ñ9Ø
Œ/×
 Ò
 Ñ
"Ô
"ñ	#à
Œ/ñ	ð ð
 
×	Ò	Ñ	Ô	 ¤°?Ñ!BÑ	B€BåŒ	�/Ñ"Ô"Øˆ×)Ò)Ñ+Ô+Ñ+×
0Ò
0°!´/Ð1AÑ
BÔ
Bñ	Cà
ñ	ð ð
 �‰7�R‰<Ðr4   c                 ó   — |j                              d¦  «        }| j                             d¦  «        }dt          j        ||z  dz  t
          j        z  ¦  «        z  | j        z
  | j                             ¦   «         z
  }d| j                             d¦  «        | j        z   z  |z  }|j	        | j        z  | j        z  }d|j	                             d¦  «        z  }|| j        dz
  | j         
                    ¦   «         z  z   ||z
  |z   |z  z   S r  )rÐ   rv   r³   rh   rn   r6  r7  r«   r’   rÑ   r“   )r}   r~   r9  Úbeta_sqrrŒ   r�   r–   r—   s           r2   Ú_kl_gamma_normalrd  º  sþ   € à”—’˜Q‘”€JØŒv�zŠz˜!‰}Œ}€Hà�eŒi˜ :Ñ-°Ñ1µD´GÑ;Ñ<Ô<Ñ<Ø
Œ/ñ	à
Œ/×
 Ò
 Ñ
"Ô
"ñ	#ð ð
 
�”×#Ò# AÑ&Ô&¨¬Ñ8Ñ	9¸HÑ	D€BØ	
Œ�”Ñ	  1¤6Ñ	)€BØ	ˆqŒu�yŠy˜‰|Œ|Ñ	€Bà
ØŒ?˜QÑ !¤/×"9Ò"9Ñ";Ô";Ñ
;ñ	<à�‰7�R‰<˜:Ñ
%ñ	&ðr4   c                 ó*   — t          | j        ¦  «        S r-   ©rl   rÑ   rÚ   s     r2   Ú_kl_gumbel_infinityrg  Í  ó   € õ ˜!œ%Ñ Ô Ð r4   c                 ó~  — | j         |j         z  }|t          j        dt          j        z  ¦  «        z                       ¦   «         }t          j        |z  dz                       d¦  «        dz  }| j        | j         t          z  z   |j        z
  |j         z                       d¦  «        dz  }| |z   |z   t          dz   z
  S )Nrs   rè   é   r	   )rÐ   r6  rñ   r7  rn   rv   rÑ   rÒ   )r}   r~   Úparam_ratiorŒ   r�   r–   s         r2   Ú_kl_gumbel_normalrl  Ú  s¨   € à”'˜AœGÑ#€KØ
�œ	 !¥d¤g¡+Ñ.Ô.Ñ
.×	3Ò	3Ñ	5Ô	5€BÝ
Œ'�KÑ
 #Ñ
%×	*Ò	*¨1Ñ	-Ô	-°Ñ	1€BØŒ5�1”7�\Ñ)Ñ)¨A¬EÑ1°Q´WÑ
<×	AÒ	AÀ!Ñ	DÔ	DÀsÑ	J€BØˆ3�‰8�b‰=�L¨1Ñ,Ñ-Ð-r4   c                 ó*   — t          | j        ¦  «        S r-   rf  rÚ   s     r2   Ú_kl_laplace_infinityrn  ã  rh  r4   c                 óz  — |j                              d¦  «        }| j                              d¦  «        |z  }dt          j        d|z  t          j        z  ¦  «        z  }d| j                             d¦  «        z  }| j        |j        z  }d|j                             d¦  «        z  }| |z   ||z
  |z   |z  z   dz
  S r  )rÐ   rv   rh   rn   r6  r7  rÑ   )r}   r~   r9  Úscale_sqr_var_ratiorŒ   r�   r–   r—   s           r2   Ú_kl_laplace_normalrq  í  s©   € à”—’˜Q‘”€JØœ'Ÿ+š+ a™.œ.¨:Ñ5ÐØ	�uŒy˜Ð0Ñ0µ4´7Ñ:Ñ;Ô;Ñ	;€BØ	ˆqŒu�yŠy˜‰|Œ|Ñ	€BØ	
Œ�”‰€BØ	ˆqŒu�yŠy˜‰|Œ|Ñ	€BØˆ3Ð$Ñ$¨¨R©°"©¸
Ñ'BÑBÀQÑFÐFr4   c                 ó*   — t          | j        ¦  «        S r-   rf  rÚ   s     r2   Ú_kl_normal_infinityrs  ø  rh  r4   c                 óX  — | j         |j        z  }| j        |j        z                       d¦  «        }|j         |j        z  }|                     ¦   «         dz  }||z
  }t	          j        | d|z  z   |z   ¦  «        }| |z   |z   ddt          j        dt          j        z  ¦  «        z   z  z
  S r  )rÑ   rÐ   rv   rn   rh   rÓ   r6  r7  )r}   r~   Úmean_scale_ratioÚvar_scale_sqr_ratiorV  rŒ   r�   r–   s           r2   Ú_kl_normal_gumbelrw    s¬   € à”u˜qœw‘ÐØœ7 Q¤WÑ,×1Ò1°!Ñ4Ô4ÐØ”e˜aœg‘o€OØ	×	 Ò	 Ñ	"Ô	" SÑ	(€BØ	˜OÑ	+€BÝ	ŒÐ$Ð$ sÐ-@Ñ'@Ñ@À?ÑRÑ	SÔ	S€BØˆ3�‰8�b‰=˜C 1¥t¤x°µD´G±Ñ'<Ô'<Ñ#<Ñ=Ñ>Ð>r4   c                 óì  — | j         |j         z
  }| j        |j        z  }|| j        z  }t          j        |¦  «        }t	          j        dt          j        z  ¦  «        | j        z  t          j        d|                     d¦  «        z  ¦  «        z  }|t          j	        t	          j        d¦  «        |z  ¦  «        z  }| ||z   |j        z  z   ddt	          j        dt          j        z  ¦  «        z   z  z
  S )Nrs   g      à¿rè   r	   )
rÑ   rÐ   rh   rn   r6  rñ   r7  rÓ   rv   Úerf)r}   r~   Úloc_diffrâ   Úloc_diff_scale_ratiorŒ   r�   r–   s           r2   Ú_kl_normal_laplacer|    s×   € àŒu�q”u‰}€HØ”'˜AœGÑ#€KØ# a¤gÑ-ÐÝ	Œ�;Ñ	Ô	€BåŒ	�!•d”g‘+ÑÔ ¤Ñ(­5¬9°TÐ<P×<TÒ<TÐUVÑ<WÔ<WÑ5WÑ+XÔ+XÑXð ð 
•E”I�dœi¨™nœnÐ/CÑCÑDÔDÑ	D€BØˆ3�"�r‘'˜QœWÑ$Ñ$¨¨qµ4´8¸CÅ$Ä'¹MÑ3JÔ3JÑ/JÑ(KÑLÐLr4   c                 ó*   — t          | j        ¦  «        S r-   )rl   rÐ   rÚ   s     r2   Ú_kl_pareto_infinityr~    s   € õ ˜!œ'Ñ"Ô"Ð"r4   c                 óô   — | j         |j        z  }| j        |z                       ¦   «         }| j                             ¦   «         }| j        |z  | j        dz
  z  }||z
  |z   dz
  }t
          || j        dk    <   |S r±   )rÐ   r³   r  rn   rT  r   )r}   r~   rU  rŒ   r�   r–   rÆ   s          r2   Ú_kl_pareto_exponentialr€  !  sy   € à”g ¤Ñ&€OØ
Œ'�OÑ
#×	(Ò	(Ñ	*Ô	*€BØ	
Œ×	Ò	Ñ	Ô	€BØ	
Œ�?Ñ	" a¤g°¡kÑ	2€BØ�"‰W�r‰\˜AÑ€FÝ€Fˆ1Œ7�aŠ<ÑØ€Mr4   c                 óº  — | j                              ¦   «         | j                             ¦   «         z   }| j                             ¦   «         |z
  }|j                             ¦   «         |j        |j                             ¦   «         z  z
  }d|j        z
  |z  }|j        | j        z  | j         z  | j        dz
  z  }||z   |z   |z   dz
  }t          || j        dk    <   |S r±   )rÐ   rn   r  rT  r«   r’   r³   r   ©r}   r~   Úcommon_termrŒ   r�   r–   r—   rÆ   s           r2   Ú_kl_pareto_gammar„  ,  s¾   € à”'—+’+‘-”- !¤'×"4Ò"4Ñ"6Ô"6Ñ6€KØ	
Œ�Š‰Œ˜Ñ	$€BØ	
Œ×	Ò	Ñ	!Ô	! A¤O°a´f·j²j±l´lÑ$BÑ	B€BØ
ˆaŒoÑ
 Ñ	,€BØ	
Œ�!”'Ñ	˜AœGÑ	# q¤w°¡{Ñ	3€BØ�"‰W�r‰\˜BÑ Ñ"€FÝ€Fˆ1Œ7�aŠ<ÑØ€Mr4   c                 ó  — d|j                              d¦  «        z  }| j         | j        dz
  z  }t          j        dt          j        z  ¦  «        |j         z  | j        z  | j         z                       ¦   «         }| j                             ¦   «         }| j        |                     d¦  «        z  | j        dz
  z  }| j        |z  |j        z
                       d¦  «        }||z
  ||z   |z  z   dz
  }t          || j        dk    <   |S )Nrs   r	   )
rÐ   rv   r  r6  rñ   r7  rn   rT  rÑ   r   )	r}   r~   r9  rƒ  rŒ   r�   r–   r—   rÆ   s	            r2   Ú_kl_pareto_normalr†  ;  sè   € à�Q”W—[’[ ‘^”^Ñ#€JØ”'˜QœW q™[Ñ)€KÝ
Œ)�A�œ‘KÑ
 Ô
  1¤7Ñ
*¨Q¬WÑ
4°q´wÑ
>×	CÒ	CÑ	EÔ	E€BØ	
Œ×	Ò	Ñ	Ô	€BØ	
Œ�;—?’? 1Ñ%Ô%Ñ	%¨¬°1©Ñ	5€BØ
Œ'�KÑ
 !¤%Ñ
'×	,Ò	,¨QÑ	/Ô	/€BØ�"‰W˜˜R™ :Ñ-Ñ-°Ñ1€FÝ€Fˆ1Œ7�aŠ<ÑØ€Mr4   c                 ó*   — t          | j        ¦  «        S r-   rN  rÚ   s     r2   Ú_kl_poisson_infinityrˆ  H  s   € õ ˜!œ&Ñ!Ô!Ð!r4   c                 óf  — | j         | j        z
  }t          j        |¦  «        }|j        dz
  t          | j         ¦  «        t          | j        ¦  «        z
  |z
  z  |z  }|j        dz
  t          d| j         z
  ¦  «        t          d| j        z
  ¦  «        z
  |z   z  |z  }|j                             ¦   «         |j                             ¦   «         z   |j        |j        z                        ¦   «         z
  }||z   |z
  |z
  }t          || j         |j	        j
        k    | j        |j	        j        k     z  <   |S r±   )r'  r(  rh   rn   r�   ro   r‘   r’   r   r  r<  r  r‚  s           r2   Ú_kl_uniform_betarŠ  N  s2  € à”&˜1œ5‘.€KÝ	Œ�;Ñ	Ô	€Bà	
Ô	˜AÑ	Ý�A”FÑÔ�h q¤u™oœoÑ-°Ñ;ñ	=à
ñ	ð ð 
Ô	˜AÑ	Ý�A˜œ‘JÑÔ¥(¨1¨q¬u©9Ñ"5Ô"5Ñ5¸ÑCñ	Eà
ñ	ð ð 	
Ô×ÒÑ!Ô!Ø
Ô
×
!Ò
!Ñ
#Ô
#ñ	$àÔ˜aÔ.Ñ.×
6Ò
6Ñ
8Ô
8ñ	9ð ð
 �"‰W�r‰\˜BÑ€FÝQT€FˆAŒF�Q”YÔ*Ò*¨q¬u°q´yÔ7LÒ/LÑMÑNØ€Mr4   c           	      óº  — |                       ¦   «          | j        |j        z  z
  t          j        |j         ¦  «        z
  |                     ¦   «         z
  }t          j        t          j        t          j	        | j
        |j        j        ¦  «        t          j        | j        |j        j        ¦  «        ¦  «        t          j        |¦  «        t"          z  |¦  «        S r-   )rÙ   r¦   rŠ   rh   r�   r†   r§   rG  rH  rI  r'  r  r<  rJ  r(  r  rK  r   r)  s      r2   Ú _kl_uniform_continuous_bernoullirŒ  f  s»   € ð 
�Š‰ŒˆØ
Œ&�1”8Ñ
ñ	å
Œ+�q”w�hÑ
Ô
ñ	 ð ×
Ò
Ñ
!Ô
!ñ	"ð õ Œ;ÝŒ	ÝŒH�Q”V˜QœYÔ2Ñ3Ô3ÝŒH�Q”U˜AœIÔ1Ñ2Ô2ñ	
ô 	
õ 	Œ˜ÑÔ¥#Ñ%Øñô ð r4   c                 óÈ   — |j         | j        | j        z   z  dz  | j        | j        z
  |j         z                       ¦   «         z
  }t          || j        |j        j        k     <   |S )Nrs   )r³   r'  r(  rn   r   r  r  r)  s      r2   Ú_kl_uniform_exponetialrŽ  x  sV   € àŒV�q”v ¤‘~Ñ&¨Ñ*¨q¬v¸¼©~ÀÄÑ.G×-LÒ-LÑ-NÔ-NÑN€FÝ,/€Fˆ1Œ5�1”9Ô(Ò(Ñ)Ø€Mr4   c                 ó¼  — | j         | j        z
  }|                     ¦   «         }|j                             ¦   «         |j        |j                             ¦   «         z  z
  }d|j        z
  t          | j         ¦  «        t          | j        ¦  «        z
  |z
  z  |z  }|j        | j         | j        z   z  dz  }| |z   |z   |z   }t          || j        |j        j	        k     <   |S )Nr	   rs   )
r'  r(  rn   r«   r’   r³   ro   r   r  r  r‚  s           r2   Ú_kl_uniform_gammar�    sÌ   € à”&˜1œ5‘.€KØ	�ŠÑ	Ô	€BØ	
Œ×	Ò	Ñ	!Ô	! A¤O°a´f·j²j±l´lÑ$BÑ	B€Bà	
ˆQŒ_Ñ	Ý�A”FÑÔ�h q¤u™oœoÑ-°Ñ;ñ	=à
ñ	ð ð
 
Œ�1”6˜AœE‘>Ñ	" QÑ	&€BØˆS�2‰X˜‰]˜RÑ€FÝ,/€Fˆ1Œ5�1”9Ô(Ò(Ñ)Ø€Mr4   c                 ó,  — |j         | j        | j        z
  z  }| j        |j        z
  |j         z  }| j        |j        z
  |j         z  }|                     ¦   «         d||z   z  z   }|t          j        | ¦  «        t          j        | ¦  «        z
  z  }||z
  S )Nrè   )rÐ   r'  r(  rÑ   rn   rh   rÓ   )r}   r~   rƒ  Úhigh_loc_diffÚlow_loc_diffrŒ   r�   s          r2   Ú_kl_uniform_gumbelr”  �  sŒ   € à”'˜QœV a¤e™^Ñ,€KØ”V˜aœe‘^ q¤wÑ.€MØ”E˜AœE‘M Q¤WÑ,€LØ	�ŠÑ	Ô	˜S M°LÑ$@ÑAÑ	A€BØ	�œ	 = .Ñ1Ô1µE´I¸|¸mÑ4LÔ4LÑLÑ	M€BØ�‰7€Nr4   c                 óx  — | j         | j        z
  }t          j        t          j        dz  ¦  «        |j        z  |z                       ¦   «         }|                     d¦  «        dz  }| j         | j        z   d|j        z  z
  dz                       d¦  «        }|d||z   z  |j                             d¦  «        z  z   S )Nrs   é   rè   )	r'  r(  r6  rñ   r7  rÐ   rn   rv   rÑ   )r}   r~   rƒ  rŒ   r�   r–   s         r2   Ú_kl_uniform_normalr—  œ  s£   € à”&˜1œ5‘.€KÝ
Œ)•D”G˜a‘KÑ
 Ô
  1¤7Ñ
*¨[Ñ
8×	=Ò	=Ñ	?Ô	?€BØ
×	Ò	˜1Ñ	Ô	 Ñ	"€BØŒ6�A”E‰>˜A ¤™IÑ%¨Ñ
*×	/Ò	/°Ñ	2Ô	2€BØ��r˜B‘w‘ !¤'§+¢+¨a¡.¤.Ñ0Ñ0Ð0r4   c                 óT  — | j         | j        z
  }|j        |j                             |j        ¦  «        z  |z                       ¦   «         }t          | j         ¦  «        t          | j        ¦  «        z
  |z
  |z  }||j        dz   z  |z
  }t          || j        |j        j	        k     <   |S r±   )
r'  r(  r  rÐ   rv   rn   ro   r   r  r  )r}   r~   Úsupport_uniformrŒ   r�   rÆ   s         r2   Ú_kl_uniform_paretorš  ¥  s’   € à”f˜qœu‘n€OØ
Œ'�A”G—K’K ¤Ñ(Ô(Ñ
(¨OÑ
<×	AÒ	AÑ	CÔ	C€BÝ
�1”6Ñ
Ô
�X a¤e™_œ_Ñ
,¨Ñ
>À/Ñ	Q€BØ�1”7˜Q‘;Ñ "Ñ$€FÝ,/€Fˆ1Œ5�1”9Ô(Ò(Ñ)Ø€Mr4   c                 óŽ   — | j         |j         k    rt          ‚t          | j        |j        ¦  «        }t	          || j         ¦  «        S r-   )Úreinterpreted_batch_ndimsr‚   r*   rÞ   r%   r)  s      r2   Ú_kl_independent_independentr�  ¯  s?   € àÔ" aÔ&AÒAÐAÝ!Ð!Ý˜1œ;¨¬Ñ4Ô4€FÝ˜& !Ô"=Ñ>Ô>Ð>r4   c                 ó  — | j         |j         z                        d¦  «        | j        |j        z
                       d¦  «        z                        ¦   «         }d| j         z  |j         z                       ¦   «         }||z
  S )Nrs   é   r  r‹   s       r2   Ú_kl_cauchy_cauchyr   ·  sn   € ð Œ7�Q”WÑ×
!Ò
! !Ñ
$Ô
$¨¬°´©×':Ò':¸1Ñ'=Ô'=Ñ
=×	BÒ	BÑ	DÔ	D€BØ
ˆaŒg‰+˜œÑ
×	$Ò	$Ñ	&Ô	&€BØ�‰7€Nr4   c                  ó  — dg} t          t          d„ ¬¦  «        D ]+\  }}|                      d|j        › d|j        › d�¦  «         Œ,d                     | ¦  «        }t
          j        rt
          xj        |z  c_        dS dS )	zHAppends a list of implemented KL functions to the doc for kl_divergence.zLKL divergence is currently implemented for the following distribution pairs:c                 ó6   — | d         j         | d         j         fS r…   )rH   )Úp_qs    r2   ú<lambda>z_add_kl_info.<locals>.<lambda>Å  s   €  s¨1¤v¤¸¸A¼¼Ð&H€ r4   )Úkeyz* :class:`~torch.distributions.z#` and :class:`~torch.distributions.ú`z
	N)Úsortedr'   ÚappendrH   Újoinr*   Ú__doc__)Úrowsr}   r~   Úkl_infos       r2   Ú_add_kl_infor­  ¿  s·   € ð 	Wð€Dõ ÝÐHÐHðñ ô ð 
ð 
‰ˆˆ1ð 	�ŠØj¨a¬jÐjÐjÐ]^Ô]gÐjÐjÐjñ	
ô 	
ð 	
ð 	
ð �kŠk˜$ÑÔ€GÝÔð )ÝÐÔ Ñ(ÐÔÐÐð)ð )r4   )Žr6  r\   Ú	functoolsr   Útypingr   r   r   r   rh   r   Ú	bernoullir
   Úbetar   Úbinomialr   Úcategoricalr   Úcauchyr   Úcontinuous_bernoullir   Ú	dirichletr   Údistributionr   Ú
exp_familyr   Úexponentialr   Úgammar   Ú	geometricr   Úgumbelr   Úhalf_normalr   Úindependentr   Úlaplacer   Úlowrank_multivariate_normalr   r   r   Úmultivariate_normalr   r   Únormalr   Úone_hot_categoricalr    Úparetor!   Úpoissonr"   Útransformed_distributionr#   Úuniformr$   Úutilsr%   r&   rÒ   r'   Ú__annotations__r(   Ú__all__r)   r:   rf   rl   ro   r|   ÚTensorr*   rŽ   r™   r    r¤   r©   r¯   rµ   rË   rÎ   r×   rÛ   rß   rä   rü   r  r  r  rÝ   r  r   r"  r%  r*  r,  r.  r0  r2  r4  r:  r=  r?  rA  rE  rL  rO  rR  rW  rZ  r\  r^  ra  rd  rg  rl  rn  rq  rs  rw  r|  r~  r€  r„  r†  rˆ  rŠ  rŒ  rŽ  r�  r”  r—  rš  r�  r   r­  rL   r4   r2   ú<module>rÌ     s¿  ðà €€€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à €€€Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &Ø )Ð )Ð )Ð )Ð )Ð )Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 HÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Að
 ð ˆdØ	ˆ$�ˆ*Ô�xÐôð ð ñ ð
 ð ˆTØ	ˆ$�ˆ*Ô�xÐôð ð ñ ð ˜/Ð
*€ð(ð (ð (ðV ðð ð ð ð ñ ô ñ „ðð$ð ð ð6(ð (ð (ð!ð !ð !ð/ð /ð /ð�\ð  lð °u´|ð ð ð ð ðL €ˆY˜	Ñ"Ô"ðð ñ #Ô"ðð €ˆT�4ÑÔð"ð "ñ Ôð"ð €ˆX�xÑ Ô ðð ñ !Ô ðð €ˆ[˜+Ñ&Ô&ðð ñ 'Ô&ðð €Ð Ð"5Ñ6Ô6ðð ñ 7Ô6ðð €ˆY˜	Ñ"Ô"ð'ð 'ñ #Ô"ð'ð €ˆ[˜+Ñ&Ô&ðð ñ 'Ô&ðð €ÐÐ 1Ñ2Ô2ðð ñ 3Ô2ðð" €ˆU�EÑÔðð ñ Ôðð €ˆV�VÑÔð-ð -ñ Ôð-ð €ˆY˜	Ñ"Ô"ðEð Eñ #Ô"ðEð €ˆZ˜Ñ$Ô$ð7ð 7ñ %Ô$ð7ð €ˆW�gÑÔðð ñ Ôðð €Ð&Ð(AÑBÔBð<ð <ñ CÔBð<ðB €ÐÐ!:Ñ;Ô;ð<ð <ñ <Ô;ð<ð: €Ð&Ð(:Ñ;Ô;ð!<ð !<ñ <Ô;ð!<ðH €ÐÐ!3Ñ4Ô4ð2ð 2ñ 5Ô4ð2ð0 €ˆV�VÑÔð8ð 8ñ Ôð8ð €ÐÐ 1Ñ2Ô2ðGð Gñ 3Ô2ðGð €ˆV�VÑÔðð ñ Ôðð €ˆW�gÑÔðFð Fñ ÔðFð €Ð$Ð&=Ñ>Ô>ð3ð 3ñ ?Ô>ð3ð €ˆW�gÑÔðð ñ Ôðð €ˆY˜Ñ Ô ð<ð <ñ !Ô ð<ð €ˆTÐ&Ñ'Ô'ðð ñ (Ô'ðð €ˆT�6ÑÔð,ð ,ñ Ôð,ð €ˆT�;ÑÔðð ñ  Ôðð €ˆT�5ÑÔðð ñ Ôðð €ˆT�6ÑÔð1ð 1ñ Ôð1ð €ˆT�7ÑÔðð ñ Ôðð €Ð  &Ñ)Ô)ð#ð #ñ *Ô)ð#ð €Ð  +Ñ.Ô.ð>ð >ñ /Ô.ð>ð €Ð  &Ñ)Ô)ðð ñ *Ô)ðð €Ð  'Ñ*Ô*ð	ð 	ñ +Ô*ð	ð €ˆ[˜$ÑÔØ€ˆ[Ð-Ñ.Ô.Ø€ˆ[˜&Ñ!Ô!Ø€ˆ[˜'Ñ"Ô"ð"ð "ñ #Ô"ñ "Ô!ñ /Ô.ñ  Ôð"ð €ˆ[˜%Ñ Ô ð	ð 	ñ !Ô ð	ð €ˆ[˜&Ñ!Ô!ð*ð *ñ "Ô!ð*ð €ˆ[˜&Ñ!Ô!ð0ð 0ñ "Ô!ð0ð €ˆU�DÑÔØ€ˆUÐ'Ñ(Ô(Ø€ˆU�FÑÔØ€ˆU�GÑÔð+ð +ñ Ôñ Ôñ )Ô(ñ Ôð+ð €ˆU�KÑ Ô ðKð Kñ !Ô ðKð €ˆU�FÑÔðð ñ Ôðð( €ˆU�FÑÔðð ñ Ôðð$ €ˆV�TÑÔØ€ˆVÐ(Ñ)Ô)Ø€ˆV�[Ñ!Ô!Ø€ˆV�UÑÔØ€ˆV�VÑÔØ€ˆV�WÑÔð!ð !ñ Ôñ Ôñ Ôñ "Ô!ñ *Ô)ñ Ôð!ð €ˆV�VÑÔð.ð .ñ Ôð.ð €ˆW�dÑÔØ€ˆWÐ)Ñ*Ô*Ø€ˆW�kÑ"Ô"Ø€ˆW�eÑÔØ€ˆW�fÑÔØ€ˆW�gÑÔð!ð !ñ Ôñ Ôñ Ôñ #Ô"ñ +Ô*ñ Ôð!ð €ˆW�fÑÔðGð Gñ ÔðGð €ˆV�TÑÔØ€ˆVÐ(Ñ)Ô)Ø€ˆV�[Ñ!Ô!Ø€ˆV�UÑÔØ€ˆV�VÑÔØ€ˆV�WÑÔð!ð !ñ Ôñ Ôñ Ôñ "Ô!ñ *Ô)ñ Ôð!ð €ˆV�VÑÔð?ð ?ñ Ôð?ð €ˆV�WÑÔð	Mð 	Mñ Ôð	Mð €ˆV�TÑÔØ€ˆVÐ(Ñ)Ô)Ø€ˆV�WÑÔð#ð #ñ Ôñ *Ô)ñ Ôð#ð €ˆV�[Ñ!Ô!ðð ñ "Ô!ðð €ˆV�UÑÔðð ñ Ôðð €ˆV�VÑÔð	ð 	ñ Ôð	ð €ˆW�iÑ Ô Ø€ˆW�hÑÔð"ð "ñ  Ôñ !Ô ð"ð €ˆW�dÑÔðð ñ Ôðð. €ˆWÐ)Ñ*Ô*ðð ñ +Ô*ðð" €ˆW�kÑ"Ô"ðð ñ #Ô"ðð €ˆW�eÑÔðð ñ Ôðð €ˆW�fÑÔðð ñ Ôðð €ˆW�fÑÔð1ð 1ñ Ôð1ð €ˆW�fÑÔðð ñ Ôðð €ˆ[˜+Ñ&Ô&ð?ð ?ñ 'Ô&ð?ð €ˆV�VÑÔðð ñ Ôðð)ð )ð )ð )ð )r4   