§
    ‚ÛgÒ9  ã            
       óì  — d dl Z d dlmZmZmZmZmZmZmZ d dl	m
Z
 d dlmZmZ d„ Z G d„ de¦  «        Zd„ Zd	„ Zd
„ ZddddœZdd„Zd„ Z G d„ de
j        ¦  «        Z eg d¢¦  «        Z eg d¢¦  «        Z G d„ de
j        ¦  «        Z G d„ de
j        ¦  «        Zd„ Z ee¦  «        ge
j        j         _!         ee¦  «        ge
j        j"        _!        ee
j        j"        _#         ee¦  «        ge
j        j$        _!         ee¦  «        ge
j        j%        _!        ege
j        j&        _!        ee
j        j&        _#        ege
j        j'        _!        e
j(        e
j        j'        _#        e
j(         ee¦  «        ge
j        j)        _!        e
j(        ge
j        j*        _!        e
j(        e
j+        ge
j        j,        _!        ee
j        j,        _#        e
j(        e
j+        ege
j        j-        _!        ee
j        j-        _#        e
j(        e
j+        ge
j        j.        _!        ee
j        j.        _#        e
j(        e
j+        ge
j        j/        _!        ee
j        j/        _#        e ee¦  «        ge
j        j0        _!        e
j1        e
j        j0        _#        e
j1        ge
j        j2        _!        ee
j        j2        _#        e
j1        ge
j        j3        _!        ee
j        j3        _#        e
j1        eeeeeeeeeg
e
j        j4        _!        e
j5        e
j        j4        _#        e
j5        ge
j        j6        _!        e
j5         ee¦  «        ge
j        j7        _!        e
j5        ege
j        j8        _!        e
j5        e
j9        ge
j        j:        _!        e
j5        e
j;        e ee¦  «        ge
j        j<        _!        e
j=        e
j        j<        _#        e
j=        ge
j        j>        _!        ee
j        j>        _#        e
j=        ge
j        j?        _!        ee
j        j?        _#        e
j=        ge
j        j@        _!        e
j5        ge
j        jA        _!        e
j(        e
j        jA        _#        g e
j        jB        _!        ee
j        jB        _#        dS )é    N)ÚPOINTERÚc_char_pÚ
c_longlongÚc_intÚc_size_tÚc_void_pÚ	string_at)Úffi)Ú_decode_stringÚ_encode_stringc                  ó¸   — t          j        ¦   «         5 } t           j                             | ¦  «         t	          | ¦  «        cddd¦  «         S # 1 swxY w Y   dS )a  
    Return a target triple suitable for generating code for the current process.
    An example when the default triple from ``get_default_triple()`` is not be
    suitable is when LLVM is compiled for 32-bit but the process is executing
    in 64-bit mode.
    N)r
   ÚOutputStringÚlibÚLLVMPY_GetProcessTripleÚstr©Úouts    úN/granary/edev/quantum/lib/python3.11/site-packages/llvmlite/binding/targets.pyÚget_process_tripler   	   s“   € õ 
Ô	Ñ	Ô	ð ˜sÝŒ×'Ò'¨Ñ,Ô,Ð,Ý�3‰xŒxðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ó   ”.AÁAÁAc                   ó   — e Zd ZdZdd„ZdS )Ú
FeatureMapz…
    Maps feature name to a boolean indicating the availability of the feature.
    Extends ``dict`` to add `.flatten()` method.
    Tc                 óØ   ‡— |r!t          |                      ¦   «         ¦  «        n t          |                      ¦   «         ¦  «        }dddœŠd                     ˆfd„|D ¦   «         ¦  «        S )ap  
        Args
        ----
        sort: bool
            Optional.  If True, the features are sorted by name; otherwise,
            the ordering is unstable between python session due to hash
            randomization.  Defaults to True.

        Returns a string suitable for use as the ``features`` argument to
        ``Target.create_target_machine()``.

        ú+ú-)TFú,c              3   óV   •K  — | ]#\  }}d                       ‰|         |¦  «        V — Œ$dS )z{0}{1}N)Úformat)Ú.0ÚkÚvÚflag_maps      €r   ú	<genexpr>z%FeatureMap.flatten.<locals>.<genexpr>*   sM   øè è € ð .ð .Ù ˜A˜qð !Ÿš¨°¬°QÑ7Ô7ð .ð .ð .ð .ð .ð .ó    )ÚsortedÚitemsÚiterÚjoin)ÚselfÚsortÚiteratorr"   s      @r   ÚflattenzFeatureMap.flatten   s}   ø€ ð ,0ÐG•6˜$Ÿ*š*™,œ,Ñ'Ô'Ð'µT¸$¿*º*¹,¼,Ñ5GÔ5GˆØ cÐ*Ð*ˆØ�xŠxð .ð .ð .ð .Ø$,ð.ñ .ô .ñ .ô .ð 	.r$   N)T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r,   © r$   r   r   r      s2   € € € € € ðð ð
.ð .ð .ð .ð .ð .r$   r   c                  óh  — t          j        ¦   «         5 } t          ¦   «         }t           j                             | ¦  «        s|cddd¦  «         S dddœ}t          | ¦  «        }|r3|                     d¦  «        D ]}|r||d                  ||dd…         <   Œ|cddd¦  «         S # 1 swxY w Y   dS )ac  
    Returns a dictionary-like object indicating the CPU features for current
    architecture and whether they are enabled for this CPU.  The key-value pairs
    are the feature name as string and a boolean indicating whether the feature
    is available.  The returned value is an instance of ``FeatureMap`` class,
    which adds a new method ``.flatten()`` for returning a string suitable for
    use as the "features" argument to ``Target.create_target_machine()``.

    If LLVM has not implemented this feature or it fails to get the information,
    this function will raise a RuntimeError exception.
    NTF)r   r   r   r   é   )r
   r   r   r   ÚLLVMPY_GetHostCPUFeaturesr   Úsplit)r   Úoutdictr"   ÚcontentÚfeats        r   Úget_host_cpu_featuresr9   .   s$  € õ 
Ô	Ñ	Ô	ð 
˜sÝ‘,”,ˆÝŒw×0Ò0°Ñ5Ô5ð 	Øð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð  EÐ*Ð*ˆÝ�c‘(”(ˆØð 	:ØŸš cÑ*Ô*ð :ð :�Øð :Ø(0°°a´Ô(9�G˜D   œHÑ%øØð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ”/B'ÁA
B'Â'B+Â.B+c                  ó¸   — t          j        ¦   «         5 } t           j                             | ¦  «         t	          | ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zR
    Return the default target triple LLVM is configured to produce code for.
    N)r
   r   r   ÚLLVMPY_GetDefaultTargetTripler   r   s    r   Úget_default_tripler<   G   s“   € õ 
Ô	Ñ	Ô	ð ˜sÝŒ×-Ò-¨cÑ2Ô2Ð2Ý�3‰xŒxðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð r   c                  ó¸   — t          j        ¦   «         5 } t           j                             | ¦  «         t	          | ¦  «        cddd¦  «         S # 1 swxY w Y   dS )zm
    Get the name of the host's CPU, suitable for using with
    :meth:`Target.create_target_machine()`.
    N)r
   r   r   ÚLLVMPY_GetHostCPUNamer   r   s    r   Úget_host_cpu_namer?   P   s“   € õ
 
Ô	Ñ	Ô	ð ˜sÝŒ×%Ò% cÑ*Ô*Ð*Ý�3‰xŒxðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð r   ÚCOFFÚELFÚMachO)r3   é   é   c                 ó”   — | €t          ¦   «         } t          j                             t	          | ¦  «        ¦  «        }t
          |         S )z~
    Get the object format for the given *triple* string (or the default
    triple if omitted).
    A string is returned
    )r<   r
   r   ÚLLVMPY_GetTripleObjectFormatr   Ú_object_formats)ÚtripleÚress     r   Úget_object_formatrJ   a   s<   € ð €~Ý#Ñ%Ô%ˆÝ
Œ'×
.Ò
.­~¸fÑ/EÔ/EÑ
FÔ
F€CÝ˜3ÔÐr$   c                 ót   — t          t          j                             t	          | ¦  «        ¦  «        ¦  «        S )zE
    Create a TargetData instance for the given *layout* string.
    )Ú
TargetDatar
   r   ÚLLVMPY_CreateTargetDatar   )Úlayouts    r   Úcreate_target_datarO   m   s*   € õ •c”g×5Ò5µnÀVÑ6LÔ6LÑMÔMÑNÔNÐNr$   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	rL   z{
    A TargetData provides structured access to a data layout.
    Use :func:`create_target_data` to create instances.
    c                 óÌ   — | j         rdS t          j        ¦   «         5 }t          j                             | |¦  «         t          |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nz<dead TargetData>)Ú_closedr
   r   r   Ú LLVMPY_CopyStringRepOfTargetDatar   ©r)   r   s     r   Ú__str__zTargetData.__str__z   s£   € ØŒ<ð 	'Ø&Ð&ÝÔÑÔð 	 3ÝŒG×4Ò4°T¸3Ñ?Ô?Ð?Ý�s‘8”8ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �/AÁAÁ Ac                 ó:   — | j                              | ¦  «         d S ©N)Ú_capiÚLLVMPY_DisposeTargetData©r)   s    r   Ú_disposezTargetData._dispose�   s   € ØŒ
×+Ò+¨DÑ1Ô1Ð1Ð1Ð1r$   c                 óB   — t           j                             | |¦  «        S )z1
        Get ABI size of LLVM type *ty*.
        )r
   r   ÚLLVMPY_ABISizeOfType)r)   Útys     r   Úget_abi_sizezTargetData.get_abi_size„   s   € õ Œw×+Ò+¨D°"Ñ5Ô5Ð5r$   c                 ó´   — t           j                             | ||¦  «        }|dk    r0t          d                     |t          |¦  «        ¦  «        ¦  «        ‚|S )zL
        Get byte offset of type's ty element at the given position
        éÿÿÿÿzQCould not determined offset of {}th element of the type '{}'. Is it a structtype?)r
   r   ÚLLVMPY_OffsetOfElementÚ
ValueErrorr   r   )r)   r^   ÚpositionÚoffsets       r   Úget_element_offsetzTargetData.get_element_offsetŠ   s\   € õ
 ”×/Ò/°°b¸(ÑCÔCˆØ�RŠ<ˆ<Ýð %ç%+¢V¨Hµc¸"±g´gÑ%>Ô%>ñ@ô @ð @ð ˆr$   c                 óv   — t           j                             | |¦  «        }|dk    rt          d|›�¦  «        ‚|S )zI
        Get ABI size of pointee type of LLVM pointer type *ty*.
        ra   úNot a pointer type: )r
   r   ÚLLVMPY_ABISizeOfElementTypeÚRuntimeError©r)   r^   Úsizes      r   Úget_pointee_abi_sizezTargetData.get_pointee_abi_size–   s>   € õ Œw×2Ò2°4¸Ñ<Ô<ˆØ�2Š:ˆ:Ý�,¸2¸2Ð?Ñ@Ô@Ð@Øˆr$   c                 óv   — t           j                             | |¦  «        }|dk    rt          d|›�¦  «        ‚|S )zV
        Get minimum ABI alignment of pointee type of LLVM pointer type *ty*.
        ra   rh   )r
   r   Ú LLVMPY_ABIAlignmentOfElementTyperj   rk   s      r   Úget_pointee_abi_alignmentz$TargetData.get_pointee_abi_alignmentŸ   s>   € õ Œw×7Ò7¸¸bÑAÔAˆØ�2Š:ˆ:Ý�,¸2¸2Ð?Ñ@Ô@Ð@Øˆr$   N)
r-   r.   r/   r0   rU   r[   r_   rf   rm   rp   r1   r$   r   rL   rL   t   sx   € € € € € ðð ð
ð ð ð2ð 2ð 2ð6ð 6ð 6ð
ð 
ð 
ðð ð ðð ð ð ð r$   rL   )ÚdefaultÚstaticÚpicÚdynamicnopic)rq   Ú
jitdefaultÚsmallÚkernelÚmediumÚlargec                   ó”   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	ed„ ¦   «         Z
d„ Z	 	 	 dd„ZdS )ÚTargetÚ c                 óH   — t          ¦   «         }|                      |¦  «        S )zB
        Create a Target instance for the default triple.
        )r<   Úfrom_triple)ÚclsrH   s     r   Úfrom_default_triplezTarget.from_default_triple´   s!   € õ
 $Ñ%Ô%ˆØ�Š˜vÑ&Ô&Ð&r$   c                 ó&  — t          j        ¦   «         5 }t           j                             |                     d¦  «        |¦  «        }|st          t          |¦  «        ¦  «        ‚ | |¦  «        }||_        |cddd¦  «         S # 1 swxY w Y   dS )zK
        Create a Target instance for the given triple (a string).
        Úutf8N)r
   r   r   ÚLLVMPY_GetTargetFromTripleÚencoderj   r   Ú_triple)r   rH   ÚouterrÚtargets       r   r~   zTarget.from_triple¼   sÑ   € õ
 ÔÑÔð 	 6Ý”W×7Ò7¸¿ºÀfÑ8MÔ8MØ8>ñ@ô @ˆFàð 0Ý"¥3 v¡;¤;Ñ/Ô/Ð/Ø�S˜‘[”[ˆFØ#ˆFŒNØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ”A%BÂB
ÂB
c                 ó^   — t           j                             | ¦  «        }t          |¦  «        S rW   )r
   r   ÚLLVMPY_GetTargetNamer   ©r)   Úss     r   ÚnamezTarget.nameÊ   s%   € åŒG×(Ò(¨Ñ.Ô.ˆÝ˜aÑ Ô Ð r$   c                 ó^   — t           j                             | ¦  «        }t          |¦  «        S rW   )r
   r   ÚLLVMPY_GetTargetDescriptionr   rŠ   s     r   ÚdescriptionzTarget.descriptionÏ   s%   € åŒG×/Ò/°Ñ5Ô5ˆÝ˜aÑ Ô Ð r$   c                 ó   — | j         S rW   )r…   rZ   s    r   rH   zTarget.tripleÔ   s
   € àŒ|Ðr$   c                 óB   — d                      | j        | j        ¦  «        S )Nz<Target {0} ({1})>)r   rŒ   r�   rZ   s    r   rU   zTarget.__str__Ø   s   € Ø#×*Ò*¨4¬9°dÔ6FÑGÔGÐGr$   rC   rq   ru   Fc	                 óô  — d|cxk    rdk    sn J ‚|t           v sJ ‚|t          v sJ ‚| j        }	t          j        dk    r|dk    r|	dz  }	t
          j                             | t          |	¦  «        t          |¦  «        t          |¦  «        |t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        ¦
  «
        }
|
rt          |
¦  «        S t          d¦  «        ‚)am  
        Create a new TargetMachine for this target and the given options.

        Specifying codemodel='default' will result in the use of the "small"
        code model. Specifying codemodel='jitdefault' will result in the code
        model being picked based on platform bitness (32="small", 64="large").

        The `printmc` option corresponds to llvm's `-print-machineinstrs`.

        The `jit` option should be set when the target-machine is to be used
        in a JIT engine.

        The `abiname` option specifies the ABI. RISC-V targets with hard-float
        needs to pass the ABI name to LLVM.
        r   rD   Úntru   z-elfzCannot create target machine)ÚRELOCÚ	CODEMODELr…   ÚosrŒ   r
   r   ÚLLVMPY_CreateTargetMachiner   ÚintÚTargetMachinerj   )r)   ÚcpuÚfeaturesÚoptÚrelocÚ	codemodelÚprintmcÚjitÚabinamerH   Útms              r   Úcreate_target_machinezTarget.create_target_machineÛ   sü   € ð$ �Cˆ}ˆ}Š}ˆ}˜1Š}ˆ}ˆ}ˆ}ˆ}ˆ}Ø�ˆ~ˆ~ˆ~ˆ~Ø�IÐ%Ð%Ð%Ð%Ø”ˆõ Œ7�dŠ?ˆ?˜y¨LÒ8Ð8Ø�fÑˆFÝŒW×/Ò/°Ý0>¸vÑ0FÔ0FÝ0>¸sÑ0CÔ0CÝ0>¸xÑ0HÔ0HØ03Ý0>¸uÑ0EÔ0EÝ0>¸yÑ0IÔ0IÝ03°G±´Ý03°C±´Ý0>¸wÑ0GÔ0Gñ
2ô 
2ˆð ð 	?Ý  Ñ$Ô$Ð$åÐ=Ñ>Ô>Ð>r$   N)r|   r|   rC   rq   ru   FFr|   )r-   r.   r/   r…   Úclassmethodr€   r~   ÚpropertyrŒ   r�   rH   rU   r£   r1   r$   r   r{   r{   ®   sÑ   € € € € € Ø€Gð
 ð'ð 'ñ „[ð'ð ðð ñ „[ðð ð!ð !ñ „Xð!ð ð!ð !ñ „Xð!ð ðð ñ „XððHð Hð Hð 68Ø@LØ@Bð)?ð )?ð )?ð )?ð )?ð )?r$   r{   c                   ó`   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Ze	d„ ¦   «         Z
e	d	„ ¦   «         Zd
S )r™   c                 ó:   — | j                              | ¦  «         d S rW   )rX   ÚLLVMPY_DisposeTargetMachinerZ   s    r   r[   zTargetMachine._dispose	  s   € ØŒ
×.Ò.¨tÑ4Ô4Ð4Ð4Ð4r$   c                 óF   — t           j                             | |¦  «         dS )zW
        Register analysis passes for this target machine with a pass manager.
        N)r
   r   ÚLLVMPY_AddAnalysisPasses)r)   Úpms     r   Úadd_analysis_passesz!TargetMachine.add_analysis_passes  s"   € õ 	Œ×(Ò(¨¨rÑ2Ô2Ð2Ð2Ð2r$   c                 óF   — t           j                             | |¦  «         dS )z 
        Set whether this target machine will emit assembly with human-readable
        comments describing control flow, debug information, and so on.
        N)r
   r   Ú#LLVMPY_SetTargetMachineAsmVerbosity)r)   Úverboses     r   Úset_asm_verbosityzTargetMachine.set_asm_verbosity  s"   € õ
 	Œ×3Ò3°D¸'ÑBÔBÐBÐBÐBr$   c                 ó0   — |                       |d¬¦  «        S )z…
        Represent the module as a code object, suitable for use with
        the platform's linker.  Returns a byte string.
        T©Ú
use_object)Ú_emit_to_memory©r)   Úmodules     r   Úemit_objectzTargetMachine.emit_object  s   € ð
 ×#Ò# F°tÐ#Ñ<Ô<Ð<r$   c                 óJ   — t          |                      |d¬¦  «        ¦  «        S )z�
        Return the raw assembler of the module, as a string.

        llvm.initialize_native_asmprinter() must have been called first.
        Fr²   )r   r´   rµ   s     r   Úemit_assemblyzTargetMachine.emit_assembly   s%   € õ ˜d×2Ò2°6ÀeÐ2ÑLÔLÑMÔMÐMr$   Fc                 ó  — t          j        ¦   «         5 }t           j                             | |t	          |¦  «        |¦  «        }|st          t          |¦  «        ¦  «        ‚	 ddd¦  «         n# 1 swxY w Y   t           j                             |¦  «        }t           j                             |¦  «        }	 t          ||¦  «        t           j         
                    |¦  «         S # t           j         
                    |¦  «         w xY w)z¨Returns bytes of object code of the module.

        Args
        ----
        use_object : bool
            Emit object code or (if False) emit assembly code.
        N)r
   r   r   Ú LLVMPY_TargetMachineEmitToMemoryr˜   rj   r   ÚLLVMPY_GetBufferStartÚLLVMPY_GetBufferSizer	   ÚLLVMPY_DisposeMemoryBuffer)r)   r¶   r³   r†   ÚmbÚbufptrÚbufszs          r   r´   zTargetMachine._emit_to_memory(  s$  € õ ÔÑÔð 	0 6Ý”×9Ò9¸$ÀÝ:=¸j¹/¼/Ø:@ñBô BˆBð ð 0Ý"¥3 v¡;¤;Ñ/Ô/Ð/ð0ð		0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0õ ”×.Ò.¨rÑ2Ô2ˆÝ”×,Ò,¨RÑ0Ô0ˆð	3Ý˜V UÑ+Ô+åŒG×.Ò.¨rÑ2Ô2Ð2Ð2ø�CŒG×.Ò.¨rÑ2Ô2Ð2Ð2øøøs   ”AA/Á/A3Á6A3Â9C( Ã(!D	c                 óZ   — t          t          j                             | ¦  «        ¦  «        S rW   )rL   r
   r   ÚLLVMPY_CreateTargetMachineDatarZ   s    r   Útarget_datazTargetMachine.target_data>  s    € å�#œ'×@Ò@ÀÑFÔFÑGÔGÐGr$   c                 óº   — t          j        ¦   «         5 }t           j                             | |¦  «         t	          |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S rW   )r
   r   r   ÚLLVMPY_GetTargetMachineTripler   rT   s     r   rH   zTargetMachine.tripleB  s“   € åÔÑÔð 	 3ÝŒG×1Ò1°$¸Ñ<Ô<Ð<Ý�s‘8”8ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ”/AÁAÁAN)F)r-   r.   r/   r[   r¬   r°   r·   r¹   r´   r¥   rÄ   rH   r1   r$   r   r™   r™     s²   € € € € € ð5ð 5ð 5ð3ð 3ð 3ðCð Cð Cð=ð =ð =ðNð Nð Nð3ð 3ð 3ð 3ð, ðHð Hñ „XðHð ðð ñ „Xðð ð r$   r™   c                  óN   — t           j                             ¦   «         dk    rdS dS )zG
    Returns True if SVML was enabled at FFI support compile time.
    r   FT)r
   r   ÚLLVMPY_HasSVMLSupportr1   r$   r   Úhas_svmlrÉ   I  s'   € õ „w×$Ò$Ñ&Ô&¨!Ò+Ð+Øˆuàˆtr$   rW   )Cr–   Úctypesr   r   r   r   r   r   r	   Úllvmlite.bindingr
   Úllvmlite.binding.commonr   r   r   Údictr   r9   r<   r?   rG   rJ   rO   Ú	ObjectRefrL   Ú	frozensetr”   r•   r{   r™   rÉ   r   r   Úargtypesr4   Úrestyper;   r>   rF   rM   ÚLLVMTargetDataRefrS   rY   ÚLLVMTypeRefr]   rb   ri   ro   rƒ   ÚLLVMTargetRefr‰   rŽ   r—   ÚLLVMTargetMachineRefr¨   rÆ   r®   ÚLLVMPassManagerRefrª   ÚLLVMModuleRefr»   ÚLLVMMemoryBufferRefr¼   r½   r¾   rÃ   rÈ   r1   r$   r   ú<module>rÙ      s–  ðØ 	€	€	€	ð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð !Ð  Ð  Ð  Ð  Ð  Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bð	ð 	ð 	ð.ð .ð .ð .ð .�ñ .ô .ð .ð2ð ð ð2ð ð ðð ð ð ØØðð €ð	 ð 	 ð 	 ð 	 ðOð Oð Oð2ð 2ð 2ð 2ð 2�”ñ 2ô 2ð 2ðj 	ˆ	Ð>Ð>Ð>Ñ?Ô?€ØˆIð  ð  ð  ñ !ô !€	ðV?ð V?ð V?ð V?ð V?ˆSŒ]ñ V?ô V?ð V?ðr?ð ?ð ?ð ?ð ?�C”Mñ ?ô ?ð ?ðDð ð ð -4¨G°HÑ,=Ô,=Ð+>€„Ô Ô (à.5¨g°hÑ.?Ô.?Ð-@€„Ô !Ô *Ø,1€„Ô !Ô )à29°'¸(Ñ2CÔ2CÐ1D€„Ô %Ô .à*1¨'°(Ñ*;Ô*;Ð)<€„Ô Ô &à19°
€„Ô $Ô -Ø/4€„Ô $Ô ,à,4¨:€„Ô Ô (Ø*-Ô*?€„Ô Ô 'ð ÔØ€GˆHÑÔð5€„Ô (Ô 1ð Ôð-€„Ô  Ô )ð *-Ô)>Ø),¬ð):€„Ô Ô %à'1€„Ô Ô $à+.Ô+@Ø+.¬?Ø+0ð+2€„Ô Ô 'ð *4€„Ô Ô &à03Ô0EØ03´ð0A€„Ô #Ô ,à.8€„Ô #Ô +à58Ô5JØ58´_ð5F€„Ô (Ô 1à3=€„Ô (Ô 0à/7¸¸ÀÑ9JÔ9JÐ.K€„Ô "Ô +Ø-0Ô->€„Ô "Ô *à),Ô):Ð(;€„Ô Ô %Ø'/€„Ô Ô $à03Ô0AÐ/B€„Ô #Ô ,Ø.6€„Ô #Ô +ð Ôàààà	ààà	à	àð'/€„Ô "Ô +ð* .1Ô-E€„Ô "Ô *à03Ô0HÐ/I€„Ô #Ô ,à25Ô2JØ29°'¸(Ñ2CÔ2Cð2E€„Ô %Ô .ð Ô˜eð8%€„Ô +Ô 4ð ÔØÔð-€„Ô  Ô )ð ÔØÔØ	Ø€GˆHÑÔð	5€„Ô (Ô 1ð 47Ô3J€„Ô (Ô 0à*-Ô*AÐ)B€„Ô Ô &Ø(0€„Ô Ô %à),Ô)@Ð(A€„Ô Ô %Ø'/€„Ô Ô $à/2Ô/FÐ.G€„Ô "Ô +ð Ôð3€„Ô &Ô /ð 25Ô1F€„Ô &Ô .à)+€„Ô Ô &Ø(-€„Ô Ô %Ð %Ð %r$   