
    '	4j                        U d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
 ddlmZ dZeed	<   i d
ddddd
ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddi dddddd ddd dddd!d"ddd"d!ddd#d$ddd$d#ddd%d&ddd&d%ddd'd(ddd(d'ddd)d*ddd*d)ddd+d,ddd,d+ddd-d.ddd.d-ddi d/d0ddd0d/ddd1d2ddd2d1ddd3d4ddd4d3ddd5d6ddd6d5ddd7d8ddd8d7ddd9d:ddd:d9ddd;d<ddd<d;ddd=d>ddd>d=ddd?d@ddi d@d?dddAdBdddBdAdddCdDdddDdCdddEdFdddFdEdddGdHdddHdGdddIdJdddKdLdddLdKdddJdIdddMdNdddNdMdddOdPdddPdOddi dQdRdddRdQdddSdTdddTdSdddUdVdddVdUdddWdXdddXdWdddYdZdddZdYddd[d\ddd\d[ddd]d^ddd^d]ddd_d`ddd`d_dddadbddi dbdadddcdddddddcdddedfdddfdedddgdhdddhdgdddidjdddjdidddkdldddldkdddmdndddndmdddodpdddpdodddqdrdddrdqddi dsdtdddtdsdddudvdddvdudddwdxdddxdwdddydzdddzdyddd{d|ddd|d{ddd}d~ddd~d}dddddddddddddddddddddddddddddddddddddddddddddddddd	Zeeeeef   f   ed<    G d d      Ze G d d             Z G d d      Z	 ddedededefdZdee   dee   fdZ G d d      Zy)    N)deque)	dataclassreplace)
itemgetter)Optional	TypedDict   )TextDirection}   	MAX_DEPTH()o)pairtypec[]{}u   ༺u   ༻u   ༼u   ༽u   ᚛u   ᚜u   ⁅u   ⁆u   ⁽u   ⁾u   ₍u   ₎u   ⌈u   ⌉u   ⌊u   ⌋u   〈   〉u   ❨u   ❩u   ❪u   ❫u   ❬u   ❭u   ❮u   ❯u   ❰u   ❱u   ❲u   ❳u   ❴u   ❵u   ⟅u   ⟆u   ⟦u   ⟧u   ⟨u   ⟩u   ⟪u   ⟫u   ⟬u   ⟭u   ⟮u   ⟯u   ⦃u   ⦄u   ⦅u   ⦆u   ⦇u   ⦈u   ⦉u   ⦊u   ⦋u   ⦌u   ⦍u   ⦐u   ⦎u   ⦏u   ⦑u   ⦒u   ⦓u   ⦔u   ⦕u   ⦖u   ⦗u   ⦘u   ⧘u   ⧙u   ⧚u   ⧛u   ⧼u   ⧽u   ⸢u   ⸣u   ⸤u   ⸥u   ⸦u   ⸧u   ⸨u   ⸩u   ⹕u   ⹖u   ⹗u   ⹘u   ⹙u   ⹚u   ⹛u   ⹜u   〈   〉u   《u   》u   「u   」u   『u   』u   【u   】u   〔u   〕u   〖u   〗u   〘u   〙u   〚u   〛u   ﹙u   ﹚u   ﹛u   ﹜u   ﹝u   ﹞u   （   ）   ］   ［   ｝   ｛   ｠   ｟   ｣   ｢)	r   r   r   r   r   r   r   r!   r    BIDI_BRACKETSc            
       X    e Zd Zg dZdededededdf
dZdefd	Zd
eddfdZ	defdZ
y)BidiCharactercharacter_index	character
bidi_classoriginal_bidi_classembedding_level	directionr&   r'   r*   debugreturnNc                     || _         || _        |r|j                         rd| _        nt	        j
                  |      | _        | j                  | _        || _        d | _        y )NR)	r&   r'   isupperr(   unicodedatabidirectionalr)   r*   r+   )selfr&   r'   r*   r,   s        6/DATA/.local/lib/python3.12/site-packages/fpdf/bidi.py__init__zBidiCharacter.__init__   sU      /"Y&&(!DO)77	BDO#'?? .    c                 (    | j                   dz  rdS dS )N   r/   L)r*   r3   s    r4   get_direction_from_levelz&BidiCharacter.get_direction_from_level   s    **Q.s7C7r6   clsc                     || _         y N)r(   )r3   r<   s     r4   	set_classzBidiCharacter.set_class   s	    r6   c                     d| j                    d| j                   d| j                   d| j                   z   d| j                   d| j
                   z   S )Nzcharacter_index: z character: z bidi_class: z original_bidi_class: z embedding_level: z direction: r%   r:   s    r4   __repr__zBidiCharacter.__repr__   sh     4 45\$..AQRdoo..DTE]E]D^_`"4#7#7"8T^^DTUV	
r6   )__name__
__module____qualname__	__slots__intstrboolr5   r;   r?   rA    r6   r4   r$   r$      sa    I"/2EHQU	8# 8S T 
# 
r6   r$   c                   4    e Zd ZU g dZeed<   eed<   eed<   y)DirectionalStatusr*   directional_override_statusdirectional_isolate_statusr*   rM   rN   N)rB   rC   rD   rE   rF   __annotations__rG   rH   rI   r6   r4   rK   rK      s    I
 !$$ $$r6   rK   c                   f    e Zd Zg dZdee   dededdfdZddZdee	e
e
f      fd	Zdd
ZddZy)IsolatingRun)
charactersprevious_directionnext_directionrR   soseosr-   Nc                     || _         || _        || _        | j                          | j	                          | j                          y r>   )rR   rS   rT   resolve_weak_typesresolve_neutral_typesresolve_implicit_levels)r3   rR   rU   rV   s       r4   r5   zIsolatingRun.__init__   s=    $"%!!""$$$&r6   c                 v    t         j                        D ]  \  }}|j                  dk(  s|dk(  r|j                   j                         7|j                   j                  |dz
     j                  dv rdn j                  |dz
     j                           j                  } j                  D ]c  }|j                  dv r|j                  }|j                  dk(  r|j                  d       |j                  d	k(  sM|dk(  sS|j                  d
       e t         j                        D ]  \  }}|dt         j                        dz
  fv r$|j                  dk(  rO j                  |dz
     j                  d	k(  r0 j                  |dz      j                  d	k(  r|j                  d	       |j                  dk(  s j                  |dz
     j                  dv s j                  |dz      j                   j                  |dz
     j                  k(  s|j                   j                  |dz
     j                          dt        dt        f fddt        dt        f fdt         j                        D ]U  \  }}|j                  dk(  r! |      s |      r|j                  d	       |j                  dv sE|j                  d       W  j                  } j                  D ]C  }|j                  dv r|j                  }|j                  d	k(  s-|dk(  s3|j                  d       E y )NNSMr   r	   )LRIRLIFSIPDION)r/   r9   ALrb   r/   ENANESCSrd   rc   ir-   c                     | dk(  ryj                   | dz
     j                  dk(  r | dz
        S j                   | dz
     j                  dk(  S )Nr   Fr	   ETrc   )rR   r(   )rh   
prev_is_enr3   s    r4   rk   z3IsolatingRun.resolve_weak_types.<locals>.prev_is_en  sU    Avq1u%00D8!!a%((??1q5)44<<r6   c                     | t        j                        dz
  k(  ryj                  | dz      j                  dk(  r | dz         S j                  | dz      j                  dk(  S )Nr	   Frj   rc   )lenrR   r(   )rh   
next_is_enr3   s    r4   rn   z3IsolatingRun.resolve_weak_types.<locals>.next_is_en  sd    C(1,,q1u%00D8!!a%((??1q5)44<<r6   rj   )rj   re   rf   r9   )	enumeraterR   r(   r?   rS   rm   rF   rH   )r3   rh   	bidi_charlast_strong_typern   rk   s   `   @@r4   rX   zIsolatingRun.resolve_weak_types   s    &doo6LAy##u,6''(?(?@''??1q51<<78  "__QU3>>	 7   22I##'77#,#7#7 ##t+##C(##t+0@D0H##D) ) &doo6LAyQDOO,q011$$,OOAE*55=OOAE*55=##D) $$,OOAE*55EOOAE*55??1q5)445 ##DOOAE$:$E$EF! 7(	=# 	=$ 	=	=# 	=$ 	= &doo6LAy##t+a=JqM''-##'99##D) 7  22I##'77#,#7#7 ##t+0@C0G##C(	 )r6   c                 r   g }d}g }t        | j                        D ]  \  }}|j                  t        v s|j                  dk(  s*t        |j                     d   dk(  r+|dk\  rg c S |j                  |j                  |f       |dz  }t        |j                     d   dk(  s|dk(  rt        |dd      D ]f  }||dz
     \  }}t        |   d	   |j                  k(  st        |   d	   d
v s6|j                  d
v sE|j                  ||f       |d|dz
   }|dz
  }   t        |t        d            S )a  
        Calculate all the bracket pairs on an isolate run, to be used on rule N0
        How to calculate bracket pairs:
        - Basic definitions 14, 15 and 16: http://www.unicode.org/reports/tr9/#BD14
        - BIDI brackets for dummies: https://www.unicode.org/notes/tn39/
        r   ra   r   r   ?   r	   r   r   )r   r   N)key)	ro   rR   r'   r"   r(   appendrangesortedr   )	r3   open_bracketsopen_bracket_countbracket_pairsindexcharcurrent_open_bracket	open_char
open_indexs	            r4   pair_bracketszIsolatingRun.pair_brackets#  sP    02/1$T__5KE4~~.4??d3J 08C?)R/!	!(($..%)@A&!+& 08C?)Q. 056H!R0P,0=>RUV>V0W-	:))4V<N))4V<N $. @)00*e1DE,9:T<PST<T,UM1E1I.! 1Q 6( mA77r6   c                 :    dt         dt        f fddt         dt        f fd j                         }|r j                  d   j	                         }|D ]\  }d}d}d }t        |d   |d         D ]  } j                  |   j                  dk(  r|dk(  s  j                  |   j                  d	v r	|d
k(  rd} nG j                  |   j                  dk(  r|d
k(  s" j                  |   j                  d	v s|dk(  sd} |r|}n|r|d
k(  rdnd
} |d         |k(  r|}n|}|s| j                  |d      _        | j                  |d      _        t         j                        |d   dz   kD  s j                  |d   dz      }	|	j                  dk(  sE|	j                  dk(  sV||	_        _ t         j                        D ]H  \  }
}|j                  dv s |
       |
      k(  r |
      |_        4|j	                         |_        J y )Nr|   r-   c                     | dk(  rj                   S j                  | dz
     j                  dk(  ryj                  | dz
     j                  dv ry | dz
        S )Nr   r	   r9   r/   rd   rc   r/   )rS   rR   r(   )r|   previous_strongr3   s    r4   r   z;IsolatingRun.resolve_neutral_types.<locals>.previous_strongD  sb    z...uqy)44;uqy)448II"519--r6   c                     | t        j                        dz
  k\  rj                  S j                  | dz      j                  dk(  ryj                  | dz      j                  dv ry | dz         S )Nr	   r9   r   r/   )rm   rR   rT   r(   )r|   next_strongr3   s    r4   r   z7IsolatingRun.resolve_neutral_types.<locals>.next_strongM  sq    DOO,q00***uqy)44;uqy)448IIuqy))r6   r   Fr	   r9   r   r/   Tr\   ra   )BSWSra   r_   r]   r^   r`   )
rF   rG   r   rR   r;   rw   r(   rm   r)   ro   )r3   bracketsembedding_directionbstrong_same_directionstrong_opposite_directionresulting_directionr|   opposite_direction	next_charrh   rp   r   r   s   `           @@r4   rY   z"IsolatingRun.resolve_neutral_typesC  s1   	.3 	.3 	.	*s 	*s 	* %%'"&//!"4"M"M"O(-%,1)&*#"1Q41.E.99S@/36.99=NN/3604-.99S@/36.99=NN/36481# /$ )*='.0Cs0JPS&&qt,0BB.@+.A+&7JDOOAaD)47JDOOAaD)44??+adQh6$(OOAaD1H$=	%99UB ) 4 4 <3FI0O R &doo6LAy## 	( 	 #1%Q7+:1+=I(+4+M+M+OI( 7r6   c                 $   | j                   D ]  }|j                  dz  dk(  rI|j                  dk(  r|xj                  dz  c_        |j                  dv sH|xj                  dz  c_        ^|j                  dv sm|xj                  dz  c_         y )Nr8   r   r/   r	   rg   )r9   rc   rd   )rR   r*   r(   )r3   rp   s     r4   rZ   z$IsolatingRun.resolve_implicit_levels  s    I ((1,1''3.--2-''<7--2- ''+<<--2- )r6   r-   N)rB   rC   rD   rE   listr$   rG   r5   rX   tuplerF   r   rY   rZ   rI   r6   r4   rQ   rQ      s[    FI'4#6 'S 's 't 'O)b8tE#s(O4 8@PPd3r6   rQ   stringstop_at_pdir,   r-   c                 b   d}| D ]  }t        j                  |      }|r|j                         rd}|dk(  r|dk(  r|rt        j                  c S |dv r|dz  }|dk(  r
|dkD  r|dz  }|dv r|dk(  rt        j
                  c S |dk(  s|dk(  st        j                  c S  t        j                  S )aH  
    This function applies rules P2 and P3 to detect the direction of a paragraph, retuning
    the first strong direction and skipping over isolate sequences.
    P1 must be applied before calling this function (breaking into paragraphs)
    stop_at_pdi can be set to True to get the direction of a single isolate sequence
    r   r/   r`   r]   r^   r_   r	   )r/   rb   r9   )r1   r2   r0   r
   LTRRTL)r   r   r,   isolater}   r(   s         r4   auto_detect_base_directionr     s     G ..t4
Z'')J7a<K $$$..qLG7Q;qLG$A $$$A $$$  r6   	paragraphc           	          G d dt               }g }g }| d   j                  }| D ]G  }|j                  |k7  r%|j                  ||dddd       g }|j                  }|j                  |       I |j                  ||dddd       dt        dt        fd	}t        |      D ]  \  }}|d
   r|dk(  r ||d         }	n |t        |d   ||dz
     d               }	|t        |      dz
  k(  r ||d         }
n>|d   d   j                  dv r ||d         }
n |t        |d   ||dz      d               }
|	|d<   |
|d<    g }t        |      D ]  \  }}|d
   r|d   }	|d   }
|d   }d|d
<   |d   d   j                  dv r_||dz   d  D ]T  }|d   |d   k(  s|d   d   j                  dk(  s%|dxx   |d   z  cc<   d|d
<   |d   }
|d   d   j                  dvsT n |j                  t        ||	|
              |S )Nc                   F    e Zd ZU eed<   ee   ed<   eed<   eed<   eed<   y)(calculate_isolate_runs.<locals>.LevelRunleveltextcompleterU   rV   N)	rB   rC   rD   rF   rO   r   r$   rH   rG   rI   r6   r4   LevelRunr     s!    
=!!r6   r   r   F )r   r   r   rU   rV   r   r-   c                     | dz  dk(  ryy)Nr8   r   r9   r/   rI   )r   s    r4   level_to_directionz2calculate_isolate_runs.<locals>.level_to_direction  s    19>r6   r   r	   r   rt   r   rU   rV   Tr`   )rR   rU   rV   )
r   r*   rv   rF   rG   ro   maxrm   r)   rQ   )r   r   	level_runlrlr_embedding_levelrp   r   r|   lr1rU   rV   isolate_runslr2ir_charsnlrs                  r4   calculate_isolate_runsr     s   9  !#I B'l::	$$(::/ % B!*!:!:
		)  '	
# #   	*
sz?A:$S\2C$SWy7KG7T%UVCC	NQ&&$S\2C6{2226KK(W6(Gi	&:7&CD E
E
% +* (*L	*
sz?%j%jv;Jv;r?..2GG -LCL0FA::eCK3v;.K&*C
Oe*C6{2::BWW . 	LH#3OP% +( r6   c            	           e Zd ZdZ	 	 ddedee   deddfdZde	e
   fdZde	e
   fd	Zdee
d
f   fdZdee	e
   ee
d
f   f   fdZdefdZdeeeef   d
f   fdZddZdeeeef   d
f   fdZdee
d
f   fdZy)BidiParagraph)r   base_directionr,   base_embedding_levelrR   Nr   r   r,   r-   c                     || _         |st        | j                   |      n|| _        || _        | j                  t        j
                  k(  rdnd| _        g | _        | j                          y )Nr   r	   )	r   r   r   r,   r
   r   r   rR   get_bidi_characters)r3   r   r   r,   s       r4   r5   zBidiParagraph.__init__"  si     	 " 'tyy%8 	
 
$$(9(99Aq 	! 02  "r6   c                     | j                   S r>   )rR   r:   s    r4   get_characterszBidiParagraph.get_characters5  s    r6   c                 :    | j                          | j                  S r>   )reorder_resolved_levelsrR   r:   s    r4   #get_characters_with_embedding_levelz1BidiParagraph.get_characters_with_embedding_level8  s     	$$&r6   .c                 "    | j                         S r>   )r   r:   s    r4   get_reordered_charactersz&BidiParagraph.get_reordered_characters>  s    ++--r6   c                 :    | j                   | j                         fS r>   )rR   r   r:   s    r4   get_allzBidiParagraph.get_allA  s     < < >>>r6   c                 N    dj                  d | j                         D              S )zUsed for conformance validationr   c              3   4   K   | ]  }|j                     y wr>   )r'   ).0r   s     r4   	<genexpr>z5BidiParagraph.get_reordered_string.<locals>.<genexpr>F  s     K,Jqq{{,Js   )joinr   r:   s    r4   get_reordered_stringz"BidiParagraph.get_reordered_stringD  s     wwKD,H,H,JKKKr6   c                 "    | j                         S r>   )split_bidi_fragmentsr:   s    r4   get_bidi_fragmentsz BidiParagraph.get_bidi_fragmentsH  s    ((**r6   c                 8   t               }t        | j                  dd      }|j                  t	        |             d}d}d}g }t        | j                        D ]!  \  }}t        |||j                  | j                        }	d }
|	j                  dk(  rBt        | j                  |dz   d  d| j                        t        j                  k(  rd	nd
|	_
        |	j                  dv r	|	j                  d   dk(  r|j                  dz   dz  }n|j                  dz   dz  }|	j                  d   dk(  r|j                  dk7  r|j                  }
|t        k  rz|dk(  ru|dk(  rp||_        |	j                  d   dk(  r|	j                  d   nd|_        |	j                  d   dk(  r|dz  }d|_        nd|_        |j                  t	        |             n"|	j                  d   dk(  r|dz  }n
|dk(  r|dz  }|	j                  dvr|j                  dk7  r|j                  }
|	j                  dk(  r|dkD  r|dz  }nL|dkD  rGd}	 |d   j                   s|j#                          !	 |j#                          t	        |d         }|dz  }t%        |t              sJ |j                  |	_        |j                  dk7  r|j                  }
|	j                  dk(  rH|dk(  rC|dkD  r|dz  }n8|j                   s,t'        |      dkD  r|j#                          t	        |d         }|
r|
|	_
        |	j                  dvs|	j                  dk(  r| j                  |	_        n|	j(                  dvr|j                  |	_        |j                  |	       $ |sg | _        y || _        t-        |       y )NNFrL   r   r_   r	   T)r   r,   r]   r^   )RLELRERLOLROr^   r]   r/   r8   IO)	r   BNr   r   r   r   PDFr_   r`   r`   rt   r   )r   r   r   r   r   r   r   r   )r   rK   r   rv   r   ro   r   r$   r*   r,   r(   r   r
   r   rM   r   rN   pop
isinstancerm   r)   rR   r   )r3   stackcurrent_statusoverflow_isolate_countoverflow_embedding_countvalid_isolate_countresultsr|   r}   rp   new_bidi_classnew_embedding_levels               r4   r   z!BidiParagraph.get_bidi_charactersK  s    +0'* 55(+',

 	W^,-!"#$ ') %TYY/KE4%t^;;TZZI "N##u, 2		%!)+.D

 %(() 
  $ ##'QQ''*c1&66:+'
 '66:+' ((+s2&BBcI%3%O%ON'94.!30A55HN2 %//2c9 ",,Q/  #>
 !++A.#5+q0+DHADIALL!89 ++A.#5.!3.1Q6494## 
, 
 "==D%3%O%ON##u,)A-*a/*(1,/0,$RyCC!IIK$IIK%,U2Y%7N'1,'!.2CDDD,:,J,J	)!==D%3%O%ON##u,)Q./!30A50 !/ I I #E
Q!IIK-4U2Y-?N'5	$## ,  ''3.040I0II-22:OO0>0N0NI-y)c 0f  DO!w'r6   c                    g }t        | j                        dk(  ryd}d}| j                  D ]n  }|j                         |k7  rJ|r6|j                  ||dk(  rt        j
                  nt        j                  f       d}|j                         }||j                  z  }p |r6|j                  ||dk(  rt        j
                  nt        j                  f       t        |      S )Nr   rI   r   r/   )	rm   rR   r;   rv   r
   r   r   r'   r   )r3   bidi_fragmentscurrent_fragmentcurrent_directionr   s        r4   r   z"BidiParagraph.split_bidi_fragments  s    :<t1$A))+/@@#")), $5#; !. 1 1%2%6%6	 $& $%$>$>$@!+ !  !!$ -3 &))*..	 ^$$r6   c                    d}d}d}d}t        | j                        D ]  }|j                  dv r| j                  |_        d}n(|j                  dv r|s|r| j                  |_        nd}d}|j                  |kD  r|j                  }|j                  dz  dk7  s{|j                  |k  s|j                  } | j                  j                         }t        ||dz
  d	      D ]q  }g }g }	|D ]M  }|j                  |k\  r|	j                  |       $|	r|	j                          ||	z  }g }	|j                  |       O |	r|	j                          ||	z  }|}s t        |      S )
NTr   i  )r   r   )r   r   r_   r]   r^   r`   Fr8   r	   rt   )
reversedrR   r)   r   r*   copyrw   rv   reverser   )
r3   before_separatorend_of_line	max_levelmin_odd_levelrp   reordered_paragraphr   temp_resultsrevs
             r4   r   z%BidiParagraph.reorder_resolved_levels  sv   	!$//2I ,,
:,0,E,E	)#' .. 3  ${040I0II-#( #((94%55	))A-2--= ) 9 95 3< #oo2249ma&7<E02L')C0	,,5JJy)$+  ''	2 1 #". =  ())r6   )NFr   )rB   rC   rD   rE   rG   r   r
   rH   r5   r   r$   r   r   r   r   r   r   r   r   r   r   rI   r6   r4   r   r     s
   I 37	## !/# 	#
 
#&] 3 T-5H .%s0B*C .?tM2E-:L4MMN ?Lc L+E%]0B*CS*H$I +G(R!%eE#}2D,Es,J&K !%F4*}c/A)B 4*r6   r   )FF)r1   collectionsr   dataclassesr   r   operatorr   typingr   r   enumsr
   r   rF   rO   r"   dictrG   r$   rK   rQ   rH   r   r   r   r   rI   r6   r4   <module>r      s+
  
   *  &  	3 
A,#s	#A,#s	#A, #s	#A, #s	#	A,
 #s	#A, #s	#A, 
E3'A, 
E3'A, 
E3'A, 
E3'A, 
E3'A, 
E3'A, 
E3'A, 
E3'A, 
E3'A,  
E3'!A," 
E3'#A,$ 
E3'%A,& 
E3''A,( 
E3')A,* 
E3'+A,, 
E3'-A,. 
E3'/A,0 
E3'1A,2 
E3'3A,4 
E3'5A,6 
E3'7A,8 
E3'9A,: 
E3';A,< 
E3'=A,> 
E3'?A,@ 
E3'AA,B 
E3'CA,D 
E3'EA,F 
E3'GA,H 
E3'IA,J 
E3'KA,L 
E3'MA,N 
E3'OA,P 
E3'QA,R 
E3'SA,T 
E3'UA,V 
E3'WA,X 
E3'YA,Z 
E3'[A,\ 
E3']A,^ 
E3'_A,` 
E3'aA,b 
E3'cA,d 
E3'eA,f 
E3'gA,h 
E3'iA,j 
E3'kA,l 
E3'mA,n 
E3'oA,p 
E3'qA,r 
E3'sA,t 
E3'uA,v 
E3'wA,x 
E3'yA,z 
E3'{A,| 
E3'}A,~ 
E3'A,@ 
E3'AA,B 
E3'CA,D 
E3'EA,F 
E3'GA,H 
E3'IA,J 
E3'KA,L 
E3'MA,N 
E3'OA,P 
E3'QA,R 
E3'SA,T 
E3'UA,V 
E3'WA,X 
E3'YA,Z 
E3'[A,\ 
E3']A,^ 
E3'_A,` 
E3'aA,b 
E3'cA,d 
E3'eA,f 
E3'gA,h 
E3'iA,j 
E3'kA,l 
E3'mA,n 
E3'oA,p 
E3'qA,r 
E3'sA,t 
E3'uA,v 
E3'wA,x 
E3'yA,z 
E3'{A,| 
E3'}A,~ 
E3'A,@ 
E3'AA,B 
E3'CA,D 
E3'EA,F 
E3'GA,H 
E3'IA,J 
E3'KA,L 
E3'MA,N 
E3'OA,P 
E3'QA,R 
E3'SA,T 
E3'UA,V 
E3'WA,X 
E3'YA,Z 
E3'[A,\ 
E3']A,^ 
E3'_A,` 
E3'aA,b 
E3'cA,d 
E3'eA,f 
E3'gA,h 
E3'iA,j 
E3'kA,l 
E3'mA,n 
E3'oA,p 3'3'3'3'3'3'3'3'3'AA,tCc3h'( AH"
 "
J % % %[3 [3~ ;@"378Ud=&9 Ud<>P UpR* R*r6   