§
    eŠtjBA  ã                  óº
  — U d Z ddl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 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   ej!        d!e¬"¦  «        Z"ej#        rdd#lm$Z$ dd$lm%Z% dd%lm&Z& dd& e'd¦  «        e(fdd'œd—d9„Z)	 	 d˜d™d=„Z*d&dd>œdšdB„Z+d›dD„Z,dœdG„Z-d�dJ„Z.d›dK„Z/dždN„Z0dŸdO„Z1dŸdP„Z2dŸdQ„Z3d›dR„Z4dŸdS„Z5d dV„Z6d¡dZ„Z7d¢d^„Z8d£d`„Z9i dae,e j:        f“dbe,e j:        f“dce1e j:        f“dde+e j:        f“dee+e j:        f“dfe+e j:        f“dge+e j:        f“dhe+e j:        f“die+e j:        f“dje+e j:        f“dke+e j:        f“dle3e j:        f“dme+e j:        f“dne+e j:        f“doe+e j:        f“dpe+e j:        f“dqe*e j:        f“i dre+e j:        f“dse+e j:        f“dte+e j:        f“due- e j;        dEej<        i¦  «        f“dve- e j;        dEej=        i¦  «        f“dwe) e j;        d.ej>        i¦  «        f“dxe) e j;        d.ej?        i¦  «        f“dye) e j;        d.ej@        i¦  «        f“dze) e j;        d.ejA        i¦  «        f“d{e) e j;        d.ejB        i¦  «        f“d|e) e j;        d.ejC        i¦  «        f“d}e) e j;        d.ejD        i¦  «        f“d~e) e j;        d.ejE        i¦  «        f“de) e j;        d.ejF        i¦  «        f“d€e) e j;        d.ejG        i¦  «        f“d�e) e j;        d.ejH        i¦  «        f“d‚e) e j;        d.ejI        i¦  «        f“¥i dƒe) e j;        d.ejJ        i¦  «        f“d„e) e j;        d.ejK        i¦  «        f“d…e) e j;        d.ejL        i¦  «        f“d†e) e j;        d.ejM        i¦  «        f“d‡e) e j;        d.ejN        i¦  «        f“dˆe) e j;        d.ejO        i¦  «        f“d‰e- e j;        dEejP        i¦  «        f“dŠe- e j;        dEejQ        i¦  «        f“d‹e- e j;        dEejR        i¦  «        f“dŒe- e j;        dEejS        i¦  «        f“d�e. e j;        d.ejT        i¦  «        f“dŽe. e j;        d.ejU        i¦  «        f“d�e) e j;        d.ejV        i¦  «        f“d�e) e j;        d.ejW        i¦  «        f“d‘e7e j:        f“d’e4e j:        f“d“e4e j:        f“¥e5e j:        fe6e j:        fe6e j:        fe2e j:        fe/e j:        fe0e j:        fe0e j:        fe0e j:        fe8e j:        fe8e j:        fe9e j:        fd”œ¥ZXd•eYd–<   dS )¤z4Default implementation of SQL comparison operations.é    )ÚannotationsN)ÚAny)ÚCallable)ÚDict)ÚNoReturn)ÚOptional)ÚTuple)ÚType)ÚUnioné   )Ú	coercions)Ú	operators)Úroles)Útype_api)Úand_)ÚBinaryExpression)ÚClauseElement)ÚCollationClause)ÚCollectionAggregate)ÚExpressionClauseList)ÚFalse_)ÚNull)ÚOperatorExpression)Úor_)ÚTrue_)ÚUnaryExpression)ÚOperatorTypeé   )Úexc)ÚutilÚ_T)Úbound)ÚColumnElement)Ú	custom_op)Ú
TypeEngineF)Ú	negate_opÚreverseÚ_python_is_typesÚresult_typeÚexprúColumnElement[Any]Úopr   Úobjr   r&   úOptional[OperatorType]r'   Úboolr(   úTuple[Type[Any], ...]r)   úOptional[TypeEngine[bool]]ÚkwargsÚreturnúOperatorExpression[bool]c               ó®  — |€t           j        }t          ||t          t          t
          fz   ¦  «        �rÊ|t          j        t          j        fv rYt          |t          t          t
          f¦  «        r7t          j        | t          j        t          j        |¦  «        ||||¬¦  «        S |t          j        t          j        fv r7t          j        | t          j        t          j        |¦  «        ||||¬¦  «        S | j        r#t          j        t          j        ||| ¬¦  «        }nþ|t          j        t          j        fv rJt          j        | t          j        t          j        |¦  «        t          j        t          j        |¬¦  «        S |t          j        t          j        fv rJt          j        | t          j        t          j        |¦  «        t          j        t          j        |¬¦  «        S t+          j        d¦  «        ‚t          j        t          j        ||| ¬¦  «        }|rt          j        || ||||¬¦  «        S t          j        | |||||¬¦  «        S )N)Útype_ÚnegateÚ	modifiers)ÚelementÚoperatorr*   )r7   r6   z~Only '=', '!=', 'is_()', 'is_not()', 'is_distinct_from()', 'is_not_distinct_from()' operators can be used with None/True/False)r   ÚBOOLEANTYPEÚ
isinstancer   r   r   r   ÚeqÚner/   r   Ú_construct_for_opr   Úexpectr   ÚConstExprRoleÚis_distinct_fromÚis_not_distinct_fromÚ_is_collection_aggregateÚis_Úis_notr   ÚArgumentErrorÚBinaryElementRole)r*   r,   r-   r&   r'   r(   r)   r2   s           ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/sql/default_comparator.pyÚ_boolean_comparerJ   2   s  € ð ÐÝÔ*ˆå�#Ð'­4µ½Ð*?Ñ?Ñ@Ô@ñ :
ð •)”,¥	¤Ð-Ð-Ð-µ*Ø•$��vÐ&ñ3
ô 3
Ð-õ &Ô7ØÝÔ ¥Ô!4°cÑ:Ô:ØØ!Ø Ø ðñ ô ð ð ÝÔ&ÝÔ*ð
ð 
ð 
õ &Ô7ØÝÔ ¥Ô!4°cÑ:Ô:ØØ!Ø Ø ðñ ô ð ð Ô*ð 	ÝÔ"ÝÔ#¨S¸2ÀDðñ ô ˆCˆCð
 •i”l¥I¤MÐ2Ð2Ð2Ý)Ô;ØÝÔ$¥UÔ%8¸#Ñ>Ô>Ý”MÝ$Ô+Ø%ðñ ô ð ð �	œ¥iÔ&6Ð7Ð7Ð7Ý)Ô;ØÝÔ$¥UÔ%8¸#Ñ>Ô>ÝÔ$Ý$œ=Ø%ðñ ô ð õ Ô'ðAñô ð õ ÔÝÔ#¨S¸2ÀDð
ñ 
ô 
ˆð ð 
Ý!Ô3ØØØØØØð
ñ 
ô 
ð 	
õ "Ô3ØØØØØØð
ñ 
ô 
ð 	
ó    úcustom_op[Any]úOptional[TypeEngine[Any]]Úkwc                ón   — |€"|j         r|j         }n|j        rt          j        }t	          | ||f||dœ|¤ŽS )N©r'   r)   )Úreturn_typeÚis_comparisonr   r;   Ú_binary_operate)r*   r,   r-   r'   r)   rN   s         rI   Ú_custom_op_operaterT   �   s`   € ð ÐØŒ>ð 	/Øœ.ˆKˆKØÔð 	/Ý"Ô.ˆKåØˆb�#ðØ&°Kðð ØCEðð ð rK   rP   úroles.BinaryElementRole[Any]úOptional[TypeEngine[_T]]úOperatorExpression[_T]c               óØ   — t          j        t          j        || |¬¦  «        }|r|| }}n| |}}|€#|j                             ||j        ¦  «        \  }}t          j        |||||¬¦  «        S )N©r*   r:   )r6   r8   )r   r@   r   rH   Ú
comparatorÚ_adapt_expressionr   r?   )	r*   r,   r-   r'   r)   rN   Úcoerced_objÚleftÚrights	            rI   rS   rS   £   s•   € õ Ô"ÝÔ ¨4¸"ðñ ô €Kð ð (Ø! 4ˆeˆˆà˜KˆeˆàÐØœ/×;Ò;Ø�Ô ñ
ô 
‰ˆˆKõ Ô/Øˆe�R˜{°bðñ ô ð rK   Úotherc                ó–   — |t           j        u rt          | |¦  «        S |t           j        u rt          | |¦  «        S t          ¦   «         ‚©N)r   r   r   ÚNotImplementedError©r*   r,   r_   rN   s       rI   Ú_conjunction_operaterd   ¿   sJ   € ð 
�YŒ^ÐÐÝ�D˜%Ñ Ô Ð Ø	�yŒ}Ð	Ð	Ý�4˜ÑÔÐå!Ñ#Ô#Ð#rK   Úfnú2Callable[[ColumnElement[Any]], ColumnElement[Any]]c                ó   —  || ¦  «        S ra   © )r*   r,   re   rN   s       rI   Ú_scalarri   Ê   s   € ð ˆ2ˆd‰8Œ8€OrK   Úseq_or_selectabler   c                óš   — t          j        t          j        || |¬¦  «        }d|j        v r|j        d         \  }}t          | ||fd|i|¤ŽS )NrY   Úin_opsr&   )r   r@   r   ÚInElementRoleÚ_annotationsrJ   )r*   r,   rj   r&   rN   s        rI   Ú_in_implro   Ó   sz   € õ "Ô(ÝÔÐ.°TÀBðñ ô Ðð Ð$Ô1Ð1Ð1Ø)Ô6°xÔ@‰ˆˆIåØˆbÐ#ðð Ø/8ðØ<>ðð ð rK   c                óJ  — t          | j        t          j        ¦  «        sCt          | j        t          j        ¦  «        rUt          | j        j        t          j        ¦  «        r1t          j        t          j	        || |¬¦  «        }t          | ||fi |¤ŽS t          | ||fi |¤Ž d S )NrY   )r<   Útyper   Ú	INDEXABLEÚTypeDecoratorÚimpl_instancer   r@   r   rH   rS   Ú_unsupported_implrc   s       rI   Ú_getitem_implrv   å   s¯   € õ 	�4”9�hÔ0Ñ1Ô1ð
1å�d”i¥Ô!7Ñ8Ô8ð
1õ �t”yÔ.µÔ0BÑCÔCð
1õ
 Ô ÝÔ# U°Àð
ñ 
ô 
ˆõ ˜t R¨Ð5Ð5°"Ð5Ð5Ð5å˜$  EÐ0Ð0¨RÐ0Ð0Ð0Ð0Ð0rK   Úargr   c                ó0   — t          d|j        z  ¦  «        ‚)Nz1Operator '%s' is not supported on this expression)rb   Ú__name__)r*   r,   rw   rN   s       rI   ru   ru   õ   s    € õ Ø;¸b¼kÑIñô ð rK   c                óX   — t          | d¦  «        r| j        S |                      ¦   «         S )z%See :meth:`.ColumnOperators.__inv__`.Únegation_clause)Úhasattrr{   Ú_negate©r*   r,   rN   s      rI   Ú	_inv_implr   ý   s.   € õ ˆtÐ&Ñ'Ô'ð ØÔ#Ð#à�|Š|‰~Œ~ÐrK   c                óD   — t          | t          j        | j        ¬¦  «        S )z%See :meth:`.ColumnOperators.__neg__`.©r:   r6   )r   r   Únegrq   r~   s      rI   Ú	_neg_implrƒ   
  s   € õ ˜4­)¬-¸t¼yÐIÑIÔIÐIrK   c                óD   — t          | t          j        | j        ¬¦  «        S )z)See :meth:`.ColumnOperators.bitwise_not`.r�   )r   r   Úbitwise_not_oprq   r~   s      rI   Ú_bitwise_not_implr†     s'   € õ
 Ø•yÔ/°t´yðñ ô ð rK   c           
     óê   — t          | t          j        t          j        t
          j        || t          j        ¬¦  «        ft          j        |t          j        u rt          j	        nt          j        dœ|¤ŽS )z#See :meth:`.ColumnOperators.match`.rY   )r)   r&   )
rJ   r   Úmatch_opr   r@   r   rH   r   Ú	MATCHTYPEÚnot_match_oprc   s       rI   Ú_match_implr‹     sƒ   € õ
 ØÝÔÝÔÝÔ#ØØÝÔ'ð		
ñ 	
ô 	
ðõ Ô&ð •YÔ'Ð'Ð'õ Ô"Ð"åÔ#ðð ð ðð ð rK   c                óD   — t          | t          j        | j        ¬¦  «        S )z&See :meth:`.ColumnOperators.distinct`.r�   )r   r   Údistinct_oprq   r~   s      rI   Ú_distinct_implrŽ   3  s'   € õ Ø•yÔ,°D´Iðñ ô ð rK   ÚcleftÚcrightc                óp  — t          | t          j        t          j        t
          j        t          j        t          j
        || t          j        ¬¦  «        t          j        t          j
        || t          j        ¬¦  «        d¬¦  «        ||t          j        u rt          j        nt          j        |¬¦  «        S )z%See :meth:`.ColumnOperators.between`.rY   F©Úgroup©r7   r8   )r   r   Ú_construct_for_listr   r   r   ÚNULLTYPEr   r@   r   rH   Ú
between_opÚnot_between_op)r*   r,   r�   r�   rN   s        rI   Ú_between_implr™   <  sº   € õ ØÝÔ0ÝŒNÝÔÝÔÝÔ'ØØÝ"œð	ñ ô õ ÔÝÔ'ØØÝ"œð	ñ ô ð ð	
ñ 	
ô 	
ð" 	ð •YÔ)Ð)Ð)õ Ô$Ð$åÔ%àð3ñ ô ð rK   úColumnElement[str]Ú	collationÚstrc                ó,   — t          j        | |¦  «        S ra   )r   Ú_create_collation_expression)r*   r,   r›   rN   s       rI   Ú_collate_implrŸ   a  s   € õ Ô7¸¸iÑHÔHÐHrK   ÚpatternÚflagsúOptional[str]c           	     ó–   — t          | t          j        t          j        || t
          j        ¬¦  «        |t
          j        d|i¬¦  «        S )NrY   r¡   r”   )r   r   r@   r   rH   r   Úcomma_opÚnot_regexp_match_op)r*   r,   r    r¡   rN   s        rI   Ú_regexp_match_implr¦   g  sX   € õ ØÝÔÝÔ#ØØÝÔ'ð		
ñ 	
ô 	
ð 	ÝÔ,Ø˜EÐ"ðñ ô ð rK   Úreplacementc                ó*  — t          | t          j        t          j        t
          j        t          j        t          j
        || t          j        ¬¦  «        t          j        t          j
        || t          j        ¬¦  «        d¬¦  «        |d|i¬¦  «        S )NrY   Fr’   r¡   )r8   )r   r   r•   r   r¤   r   r–   r   r@   r   rH   )r*   r,   r    r§   r¡   rN   s         rI   Ú_regexp_replace_implr©   |  s¡   € õ ØÝÔ0ÝÔÝÔÝÔÝÔ'ØØÝ"Ô+ð	ñ ô õ ÔÝÔ'ØØÝ"Ô+ð	ñ ô ð ð	
ñ 	
ô 	
ð" 	Ø˜EÐ"ð)ñ ô ð rK   r   r   ÚinvÚaddÚmulÚsubÚdivÚmodÚbitwise_xor_opÚbitwise_or_opÚbitwise_and_opr…   Úbitwise_lshift_opÚbitwise_rshift_opÚtruedivÚfloordivr$   Újson_path_getitem_opÚjson_getitem_opÚ	concat_opÚany_opÚall_opÚltÚler>   ÚgtÚger=   rB   rC   Úlike_opÚilike_opÚnot_like_opÚnot_ilike_opÚcontains_opÚicontains_opÚstartswith_opÚistartswith_opÚendswith_opÚiendswith_opÚdesc_opÚasc_opÚnulls_first_opÚnulls_last_opÚin_opÚ	not_in_oprE   rF   Úcollaterˆ   rŠ   )r�   r—   r˜   r‚   ÚgetitemÚlshiftÚrshiftÚcontainsÚregexp_match_opr¥   Úregexp_replace_opz„Dict[str, Tuple[Callable[..., ColumnElement[Any]], util.immutabledict[str, Union[OperatorType, Callable[..., ColumnElement[Any]]]]]]Úoperator_lookup)r*   r+   r,   r   r-   r   r&   r.   r'   r/   r(   r0   r)   r1   r2   r   r3   r4   )FN)r*   r+   r,   rL   r-   r   r'   r/   r)   rM   rN   r   r3   r+   )r*   r+   r,   r   r-   rU   r'   r/   r)   rV   rN   r   r3   rW   )
r*   r+   r,   r   r_   r   rN   r   r3   r+   )
r*   r+   r,   r   re   rf   rN   r   r3   r+   )r*   r+   r,   r   rj   r   r&   r   rN   r   r3   r+   )
r*   r+   r,   r   rw   r   rN   r   r3   r   )r*   r+   r,   r   rN   r   r3   r+   )r*   r+   r,   r   r�   r   r�   r   rN   r   r3   r+   )
r*   rš   r,   r   r›   rœ   rN   r   r3   rš   )r*   rš   r,   r   r    r   r¡   r¢   rN   r   r3   r+   )r*   r+   r,   r   r    r   r§   r   r¡   r¢   rN   r   r3   r+   )ZÚ__doc__Ú
__future__r   Útypingr   r   r   r   r   r	   r
   r   Ú r   r   r   r   Úelementsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    ÚTypeVarr!   ÚTYPE_CHECKINGr#   r$   r%   rq   r/   rJ   rT   rS   rd   ri   ro   rv   ru   r   rƒ   r†   r‹   rŽ   r™   rŸ   r¦   r©   Ú
EMPTY_DICTÚimmutabledictÚ_create_anyÚ_create_allr¿   r¾   r=   r½   r¼   r>   rC   rB   rÂ   rÃ   rÀ   rÁ   Únot_contains_opÚnot_icontains_opÚnot_startswith_opÚnot_istartswith_opÚnot_endswith_opÚnot_iendswith_opÚ_create_descÚ_create_ascÚ_create_nulls_firstÚ_create_nulls_lastrÏ   rÎ   rE   rF   r×   Ú__annotations__rh   rK   rI   ú<module>rî      s~  ðð ;Ð :Ð :à "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø )Ð )Ð )Ð )Ð )Ð )Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€V„^�D Ð$Ñ$Ô$€à	Ôð %Ø'Ð'Ð'Ð'Ð'Ð'Ø$Ð$Ð$Ð$Ð$Ð$Ø$Ð$Ð$Ð$Ð$Ð$ð )-ØØ/3¨t°D©z¬z¸4Ð.@Ø.2ð[
ð [
ð [
ð [
ð [
ð [
ðD Ø-1ðð ð ð ð ð0 Ø,0ðð ð ð ð ð ð8$ð $ð $ð $ðð ð ð ðð ð ð ð$1ð 1ð 1ð 1ð ð ð ð ð
ð 
ð 
ð 
ðJð Jð Jð Jðð ð ð ðð ð ð ð0ð ð ð ð"ð "ð "ð "ðJIð Ið Ið Iðð ð ð ð*ð ð ð ðTAØ
Ð! 4¤?Ð3ðAà	Ð  $¤/Ð2ðAð 
ˆI�t”Ð'ðAð 
ˆO˜Tœ_Ð-ð	Að
 
ˆO˜Tœ_Ð-ðAð 
ˆO˜Tœ_Ð-ðAð 
ˆO˜Tœ_Ð-ðAð 
ˆO˜Tœ_Ð-ðAð �¨¬Ð8ðAð �o t¤Ð7ðAð �¨¬Ð8ðAð Ð(¨$¬/Ð:ðAð ˜/¨4¬?Ð;ðAð ˜/¨4¬?Ð;ðAð � ¤Ð1ðAð  � $¤/Ð2ð!Að" Ð$ d¤oÐ6ð#Að Að$ ˜_¨d¬oÐ>ð%Að& ˜¨¬Ð9ð'Að( �/ 4¤?Ð3ð)Að* ØØˆÔ˜DÐ"5Ô"AÐBÑCÔCðð+Að2 ØØˆÔ˜DÐ"5Ô"AÐBÑCÔCðð3Að: 	ÐÐ/˜TÔ/°¸i¼lÐ0KÑLÔLÐ
Mð;Að< 	ÐÐ/˜TÔ/°¸i¼lÐ0KÑLÔLÐ
Mð=Að> 	ÐÐ/˜TÔ/°¸i¼lÐ0KÑLÔLÐ
Mð?Að@ 	ÐÐ/˜TÔ/°¸i¼lÐ0KÑLÔLÐ
MðAAðB 	ÐÐ/˜TÔ/°¸i¼lÐ0KÑLÔLÐ
MðCAðD 	ÐÐ/˜TÔ/°¸i¼lÐ0KÑLÔLÐ
MðEAðF ØØˆÔ˜K¨Ô)GÐHÑIÔIððGAðN ØØˆÔ˜K¨Ô)CÐDÑEÔEððOAðV ØØˆÔ˜K¨Ô)>Ð?Ñ@Ô@ððWAð^ ØØˆÔ˜K¨Ô)?Ð@ÑAÔAðð_Aðf ØØˆÔ˜K¨Ô):Ð;Ñ<Ô<ððgAðn ØØˆÔ˜K¨Ô);Ð<Ñ=Ô=ððoAð Að Aðv ØØˆÔ˜K¨Ô)BÐCÑDÔDððwAð~ ØØˆÔ˜K¨Ô)CÐDÑEÔEððAðF ØØˆÔ˜K¨Ô)DÐEÑFÔFððGAðN ØØˆÔ˜K¨Ô)EÐFÑGÔGððOAðV ØØˆÔ˜K¨Ô)BÐCÑDÔDððWAð^ ØØˆÔ˜K¨Ô)CÐDÑEÔEðð_Aðf ØØˆÔ˜D /Ô">Ð?Ñ@Ô@ððgAðn ØØˆÔ˜D /Ô"=Ð>Ñ?Ô?ððoAðv ØØˆÔ˜D /Ô"EÐFÑGÔGððwAð~ ØØˆÔ˜D /Ô"DÐEÑFÔFððAðF ØØˆÔ˜K¨Ô)<Ð=Ñ>Ô>ððGAðN ØØˆÔ˜K¨¬Ð9Ñ:Ô:ððOAðV 
ØØˆÔ˜K¨¬Ð7Ñ8Ô8ððWAð^ ØØˆÔ˜K¨Ô)9Ð:Ñ;Ô;ðð_Aðf �˜tœÐ/ðgAðh �˜dœoÐ.ðiAðj �[ $¤/Ð2ðkAð Aðl # D¤OÐ4Ø  $¤/Ð2Ø$ d¤oÐ6Ø�t”Ð'Ø˜tœÐ/Ø  $¤/Ð2Ø  $¤/Ð2Ø" D¤OÐ4Ø*¨D¬OÐ<Ø.°´Ð@Ø.°´Ð@ðAAð Að Að ð Ið Ið Iñ Ið Ið IrK   