+
    Qi c                  s   R t ^ RIHt RtRtRtRtRt^ RIt	^ RI
t	^ RIt	^ RIHtHt ^ RIt]P                   ! R	R
4       ^ RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RI H!t! ^RI"H#t# ^RI$H%t% ^RI&H't' ^RI(H)t) ^RI*H+t+ ^RI,H-t- ]'       d   ^RIH.t.  ! R  R!4      t/]/! 4       .t0R"t1R#t2R$t3R%t4R&t5R't6]1]Pn                  ]2]Pp                  ]3]Pr                  ]4]Pt                  ]5]Pt                  ]6]Pt                  /t; ! R( R)]Px                  4      t=R# )*4Produces speech presentation for accessible objects.)annotationsz$Id:$z$Revision:$z$Date:$z-Copyright (c) 2005-2009 Sun Microsystems Inc.ZLGPLN)AnyTYPE_CHECKINGAtspiz2.0)r   )acss)debug)focus_manager)	generator)input_event_manager)mathsymbols)messages)object_properties)settings)settings_manager)speech)speech_and_verbosity_manager)
AXDocument)AXHypertext)AXObject)AXTable)AXText)AXUtilities)AXValue)scriptc                  s2    ] tR t^ItRtR R ltR R ltRtR# )PausezFA dummy class to indicate we want to insert a pause into an
utterance.c                   V ^8  d   QhRR/# )   returnNone Zformat   ":/usr/lib/python3.14/site-packages/orca/speech_generator.py__annotate__Pause.__annotate__L   s      $     c                	    R # Nr   self   &r!   __init__ZPause.__init__L   s    r$   c               r   )r   r   strr   r   r    r!   r"   r#   O   s       r$   c                	r%   PAUSEr   r'   r)   r!   __str__ZPause.__str__O   s    r$   r   N)__name__
__module____qualname____firstlineno____doc__r*   r.   __static_attributes__r   r$   r!   r   r   I   s     r$   r   ZdefaultZ	uppercaseZ	hyperlinkZsystemZstateZvaluec                  sZ  a  ] tR t^dtRtR V 3R llt]R 4       tR R ltR R lt	R	 R
 lt
R V 3R lltR tR R ltR R ltR R ltERR R lltR R lt]R V 3R ll4       t]R V 3R ll4       t]R V 3R ll4       t]R V 3R ll4       t]R  V 3R! ll4       t]R" V 3R# ll4       tR$ tR% t]R& R' l4       t]R( R) l4       t]R* R+ l4       t]R, R- l4       t]R. R/ l4       t]R0 R1 l4       t]R2 R3 l4       t ]R4 V 3R5 ll4       t!]R6 V 3R7 ll4       t"]R8 R9 l4       t#]R: R; l4       t$]R< R= l4       t%]R> R? l4       t&R@ t']RA RB l4       t(RC RD lt)]RE RF l4       t*]RG RH l4       t+RI t,RJ RK lt-]RL RM l4       t.]RN RO l4       t/]RP RQ l4       t0]RR RS l4       t1]RT RU l4       t2]RV RW l4       t3]RX RY l4       t4]RZ R[ l4       t5]R\ R] l4       t6]R^ R_ l4       t7]R` Ra l4       t8]Rb Rc l4       t9]Rd Re l4       t:]Rf Rg l4       t;]Rh Ri l4       t<]Rj Rk l4       t=]Rl Rm l4       t>]Rn Ro l4       t?]Rp Rq l4       t@]Rr Rs l4       tA]Rt Ru l4       tB]Rv Rw l4       tC]Rx Ry l4       tD]Rz R{ l4       tE]R| R} l4       tF]R~ R l4       tG]R R l4       tH]R R l4       tI]R R l4       tJ]R R l4       tK]R R l4       tL]R R l4       tM]R R l4       tN]R R l4       tO]R R l4       tP]R R l4       tQ]R V 3R ll4       tR]R V 3R ll4       tS]R V 3R ll4       tT]R V 3R ll4       tU]R V 3R ll4       tV]R R l4       tW]R V 3R ll4       tX]R V 3R ll4       tY]R V 3R ll4       tZ]R V 3R ll4       t[]R V 3R ll4       t\]R V 3R ll4       t]]R V 3R ll4       t^]R R l4       t_]R V 3R ll4       t`]R V 3R ll4       ta]R R l4       tb]R R l4       tcV 3R ltdV 3R lte]R V 3R ll4       tf]R V 3R ll4       tg]R V 3R ll4       th]R R l4       ti]R V 3R ll4       tj]R R l4       tk]R R l4       tl]R R l4       tm]R V 3R ll4       tn]R R l4       to]R V 3R ll4       tp]R R l4       tq]R R l4       tr]R V 3R ll4       ts]R R l4       ttR R ltuR R ltvR R ltwR R ltxR R ltyR R ltzR R lt{R R lt|R R lt}R R lt~R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltER  ER ltER ER ltER ER ltER ER ltER ER	 ltER
 ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER  ER! ltER" ER# ltER$ ER% ltER& ER' ltER( ER) ltER* ER+ ltER, ER- ltER. ER/ ltER0 ER1 ltER2 ER3 ltER4 ER5 ltER6 ER7 ltER8 ER9 ltER: ER; ltER< ER= ltER> ER? ltER@ ERA ltERB ERC ltERD ERE ltERF ERG ltERH ERI ltERJ ERK ltERL ERM ltERN ERO ltERP ERQ ltERR ERS ltERT ERU ltERV ERW ltERX ERY ltERZ ER[ ltER\ ER] ltER^ ER_ ltER` ERa ltERb ERc ltERd ERe ltERf ERg ltERh ERi ltERj ERk ltERl ERm ltERn ERo ltERp ERq ltERr ERs ltERt ERu ltERv ERw ltERx ERy ltERz ER{ ltER| ER} ltER~ ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER ltER ER lEt ER ER lEtER ER lEtER ER lEtER ER lEtER ER lEtEREtV ;Et# (  SpeechGeneratorr    c                    V ^8  d   QhRRRR/# )r   r   zscript.Scriptr   r   r   r   r    r!   r"   SpeechGenerator.__annotate__g   s     + +} + +r$   c                	s(   < \         SV `  VR 4       R# )r   N)superr*   )r(   r   	__class__s   &&r!   r*   ZSpeechGenerator.__init__g   s    *r$   c                s   a  V 3R lpV# )zDecorator for logging.c                 s   < S! V / VB pR SP                    R2V.p\        P                  ! \        P                  VR4       V# )SPEECH GENERATOR: Z:T)r/   r   print_tokens
LEVEL_INFO)argsZkwargsresulttokensfuncs   *,  r!   wrapperZ5SpeechGenerator.log_generator_output.<locals>.wrappern   sF    4*6*F*4==/;VDFu//>Mr$   r   )r@   rA   s   f r!   log_generator_outputZ$SpeechGenerator.log_generator_outputj   s    	
 r$   c               r6   r   objAtspi.Accessibler   	list[Any]r   r   r    r!   r"   r7   u   s     	 	#3 		 	r$   c                s    V P                   ! V3/ VB pV'       dJ   \        \        R V4      4      '       g.   RVR.p\        P                  ! \        P
                  VR4       . pV# )z&Generates speech presentation for obj.c                s,    \        V \        4      '       * # r&   )
isinstancer   xr)   r!   <lambda>Z1SpeechGenerator.generate_speech.<locals>.<lambda>y   s    
1e0D,Dr$   zSPEECH GENERATOR: Results forzare pauses onlyT)generatelistZfilterr   r;   r<   )r(   rD   r=   rvr?      &&,  r!   generate_speechZSpeechGenerator.generate_speechu   s[     ]]3'$'d6"DbIJJ5s<MNFu//>B	r$   c               r6   r   rD   rE   r   r+   r   r   r    r!   r"   r7      s      ,  r$   c                N    V P                   ! V3/ VB pV'       d
   V^ ,          # R# )z.Returns the generated name of obj as a string. )_generate_accessible_namer(   rD   r=   Z	generated   &&, r!   get_nameZSpeechGenerator.get_name   s)     223?$?	Q<r$   c               r6   rP   r   r   r    r!   r"   r7      s      %5 # r$   c                rQ   )z8Returns the generated error message for obj as a string.rR   )_generate_state_invalidrT   rU   r!   get_error_messageZ!SpeechGenerator.get_error_message   s)     00==	Q<r$   c               r6   rP   r   r   r    r!   r"   r7      s     < <+; < <r$   c                	sJ  < \         P                  ! V\        P                  4      '       d   \        P
                  # \        P                  ! WP                  R 4      4      '       d-   \        P                  ! V4      '       d   \        P                  # \        SV `,  ! V3/ VB # role)r   find_ancestor_inclusiver   Zis_editable_combo_boxr   ZROLE_EDITABLE_COMBO_BOXis_linkget
is_visitedZROLE_VISITED_LINKr8   get_localized_role_namer(   rD   r=   r9      &&,r!   r_   Z'SpeechGenerator.get_localized_role_name   st    ++C1R1RSS$<<<sHHV$455+:P:PQT:U:U$666w.s;d;;r$   c                rQ   )z2Returns the generated rolename of obj as a string.rR   )_generate_accessible_rolerT   rU   r!   get_role_nameZSpeechGenerator.get_role_name   s)     223?$?	Q<r$   c               r6   rC   r   r   r    r!   r"   r7      s      )9 i r$   c                s   . pV P                   P                  P                  V4      w  rEV'       dD   V P                  V4      pV'       g   V P	                  V4      pV'       d   VP                  V4       V'       d,   V P                  V4      ;p'       d   VP                  V4       Mf\        P                  ! WP                   P                  P                  4      ;p'       d+   V P                  V4      ;p	'       d   VP                  V	4       \        \        P                  ! V4      4      p
V
^ 8  dQ   \        P                  ! V
4      .pVP                  V P                  ! \         3RV/VB 4       VP                  V4       V# )zRReturns an array of strings the represents details about the window title for obj.rD   )_script	utilitiesframe_and_dialog#_generate_accessible_label_and_namerb   appendr   find_ancestoris_spreadsheet_tablelenr    get_unfocused_alerts_and_dialogsr   dialog_count_speechextendvoiceDEFAULT)r(   rD   r=   r>   framedialogZframe_resultZdialog_resultZspreadsheetZspreadsheet_resultalert_and_dialog_countZdialogs   &&,         r!   generate_window_titleZ%SpeechGenerator.generate_window_title   s7    ..??DCCEJL#==eDl+ $ H H PP}Pm,$22\\++@@B B[ B%)%M%Mk%ZZ!Z01!$[%Q%QRU%V!W!A%334JKLGNN4::g?3?$?@MM'"r$   c               r6   rC   r   r   r    r!   r"   r7      s       
	r$   c                	s    \         # r&   r,   r(   rD   r=      &&,r!   _generate_result_separatorZ*SpeechGenerator._generate_result_separator   s	    
 r$   c               r6   rC   r   r   r    r!   r"   r7      s       
	r$   c                	s   \         P                  ! 4       P                  R 4      '       d   VP                  RR4      '       d   . # \         P                  ! 4       P                  R4      \        P
                  8X  d   . # \        # )ZenablePauseBreaksZeliminatePausesFZverbalizePunctuationStyle)r   get_managerget_settingr]   r   ZPUNCTUATION_STYLE_ALLr-   rv   rw   r!   _generate_pauseZSpeechGenerator._generate_pause   sf    
  ++-99:MNNhh(%00I'')556QR))*Ir$   c               r6   )r   keyz
str | Noner   zlist[acss.ACSS]r   r   r    r!   r"   r7      s     $ $ $ $r$   c                s   \         P                  T;'       g    \        \         P                  \        4      4      p\        P                  ! 4       P                  R4      p\        P                  ! VP                  \         P                  \        4      \        P                  ! 4       4      4      pVP                  R4      pVP                  RR4      pRV RV RV R2p\        P                  ! \        P                  VR	4       R
p	V'       d>   V	'       d6   \        P                  ! 4       p
V
'       g   Q R4       hV
P                  Wg4       VR\        39   Ed,   VP                  RR4      pVP                  R4      p\        P                  ! V4      '       dO   VP!                  VP                  \         P                  \"        4      \        P                  ! 4       4      4       V.# \%        V\&        4      '       d   VP)                  4       '       dp   VP+                  4       P-                  4       '       dL   VP!                  VP                  \         P                  \.        4      \        P                  ! 4       4      4       V.# VP                  V4      pV'       d*   VP                  RR	4      '       d   VP!                  V4       V.# )z$Returns an array containing a voice.voiceslanguagedialectrR   r:   z  voice requested with language='z', dialect=''TFzNo speech server availableNstringrD   Zestablished)	voiceTyper]   rp   r   ry   rz   r   ZACSSr   print_messager<   r   Zget_speech_serverZ should_change_voice_for_languager   r\   Zupdate	HYPERLINKrG   r+   ZisupperstripZisalpha	UPPERCASE)r(   r|   r=   Z	voicenamer}   ro   r~   r   msgZcheck_voices_for_languageZserverr   rD   Zoverrides   &&,           r!   ro   ZSpeechGenerator.voice   s    MM#..)--2HI	!--/;;HE		&**Y]]7%;TYY[IJ88J'((9b)  &!
,wiq: 	 	E,,c48
 %*!1--/F777633HF4/!XXh+F((5/C""3''VZZ	i(@$))+NO w FC((V^^-=-=&,,.BXBXBZBZVZZ	i(@$))+NO w	 zz),HHLL==X&wr$   c               r6   )r   
utterancesrF   r   r+   r   r   r    r!   r"   r7      s     
 
y 
S 
r$   c                s   RpV Fq  p\        V\        4      '       d   VRV 2,          pK'  \        V\        4      '       g   K?  V'       g   KI  VR,          P                  4       '       g   Kh  VR,          pKs  	  VP	                  4       # )z Converts utterances to a string.rR    .)rG   r+   r   Zisalnumr   )r(   r   r   Zus   &&  r!   utterances_to_stringZ$SpeechGenerator.utterances_to_string   sj     A!S!!AaS'!Au%%&&VBZ5G5G5I5I#	  ||~r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	sB  < \         P                  ! 4       pVP                  R 4      '       d   VP                  R4      '       d   . # VP                  R4      '       d   VP                  R4      '       g   . # VP                  R4      pWA8X  d   . # \        P
                  ! V4      '       d   . # \        SV `  ! V3/ VB pV'       dY   \        P                  ! 4       pVP                  W^ ,          4      V^ &   VP                  V P                  ! \        3RV/VB 4       V# )ZspeakDescriptiononlySpeakDisplayedTextinMouseReviewZpresentToolTipspriorObjrD   )r   ry   rz   r]   r   is_tool_tipr8    _generate_accessible_descriptionr   adjust_for_presentationrn   ro   SYSTEM)r(   rD   r=   Zmgr	prior_objr>   managerr9      &&,    r!   r   Z0SpeechGenerator._generate_accessible_description  s     **,122cooF^6_6_I88O$$S__=N-O-OIHHZ(	I""9--I9#FF2>>@G77AYGF1IMM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7   #         
	r$   c                	   < \         P                  ! 4       P                  R 4      '       d   . # \        SV `  ! V3/ VB pV'       d)   VP                  V P                  ! \        3RV/VB 4       V# r   rD   )r   ry   rz   r8   &_generate_accessible_image_descriptionrn   ro   r   r(   rD   r=   r>   r9      &&, r!   r   Z6SpeechGenerator._generate_accessible_image_description"  s`     '')556NOOI?LtLMM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7   1         
	r$   c                	   < \         SV `  ! V3/ VB pV'       d)   VP                  V P                  ! \        3R V/VB 4       V# rD   )r8   _generate_accessible_labelrn   ro   rp   r   r   r!   r   Z*SpeechGenerator._generate_accessible_label0  s@     3C@4@MM$**W>#>>?r$   c               r6   rC   r   r   r    r!   r"   r7   <         
	r$   c                	s  < \         P                  ! WP                  R 4      4      pV'       d-   \        P                  ! 4       P                  R4      '       d   . # \        SV `  ! V3/ VB pV'       d[   V'       d+   VP                  V P                  ! \        3RV/VB 4       V# VP                  V P                  ! \        3RV/VB 4       V# )rZ   r   rD   )r   is_layered_paner]   r   ry   rz   r8   rS   rn   ro   r   rp   )r(   rD   r=   r   r>   r9      &&,  r!   rS   Z)SpeechGenerator._generate_accessible_name;  s     &55c88F;KL/;;=IIJbccI23?$?djjASADAB  djjBcBTBCr$   c               r6   rC   r   r   r    r!   r"   r7   O  r   r$   c                	s
  < \         SV `  ! V3/ VB pV'       di   \        P                  ! 4       pVP	                  W^ ,          4      V^ &   \        V4      ^8X  d)   VP                  V P                  ! \        3RV/VB 4       V#     rD   )	r8   rg   r   ry   r   rk   rn   ro   rp   r(   rD   r=   r>   r   r9   r   r!   rg   Z3SpeechGenerator._generate_accessible_label_and_nameN  sr     <SIDI2>>@G77AYGF1I6{adjjBcBTBCr$   c               r6   rC   r   r   r    r!   r"   r7   ]       
 

 
	
r$   c                	s   < \         SV `  ! V3/ VB pV'       dY   \        P                  ! 4       pVP	                  W^ ,          4      V^ &   VP                  V P                  ! \        3RV/VB 4       V# r   )r8   %_generate_accessible_placeholder_textr   ry   r   rn   ro   rp   r   r   r!   r   Z5SpeechGenerator._generate_accessible_placeholder_text\  sf     >sKdK2>>@G77AYGF1IMM$**W>#>>?r$   c                	s   aaaa VP                  R \        P                  ! S4      4      oVP                  R^ 4      oVP                  R^4      oVVVV3R lp\        P                  ! SV4      # )rZ   indextotalc                s4  < \         P                  ! V 4      '       g   \         P                  ! V 4      '       g   R # \        P                  ! V 4      S8X  d   R # SS^,
          8H  ;'       g.    \        P
                  ! V 4      \        P
                  ! S4      8H  # )F)r   Z
is_headingr\   r   get_rolerV   )rI   r   rD   rZ   r   s   &r!   use_ancestor_roleZISpeechGenerator._get_ancestor_with_usable_role.<locals>.use_ancestor_rolen  sp    **1--1D1DQ1G1G  #t+EAI%WW):):1)=ARARSVAW)WWr$   )r]   r   r   ri   )r(   rD   r=   r   r   rZ   r   s   &f, @@@r!   _get_ancestor_with_usable_roleZ.SpeechGenerator._get_ancestor_with_usable_rolei  s`    xx 1 1# 67!$!$	X 	X %%c+<==r$   c                	s,
   \         P                  ! 4       pVP                  R 4      '       d   R# \        P                  ! 4       P	                  4       w  rEV\        P
                  8X  d   R# VP                  R\        P                  ! V4      4      pV P                  4       w  rxWh9   d   R# \        P                  P                  \        P                  P                  \        P                  P                  \        P                  P                  \        P                  P                   \        P                  P"                  \        P                  P$                  \        P                  P&                  \        P                  P(                  \        P                  P*                  \        P                  P,                  \        P                  P.                  \        P                  P0                  .p	VP                  R4      \2        P4                  8X  dD   V	P7                  \        P                  P8                  \        P                  P:                  .4       VP                  R4      '       d   V	P7                  R.4       VP                  R4      R8w  dD   V	P7                  \        P                  P<                  \        P                  P>                  .4       VP                  R	4      f   VP                  R
4      e   V	P7                  \        P                  P@                  \        P                  PB                  \        P                  PD                  \        P                  PF                  \        P                  PH                  \        P                  PJ                  .4       VP                  R^4      ^8  d+   V	P7                  \        P                  PL                  .4       Wi9   d   R# \N        PP                  ! \        PR                  ! V4      4      '       d   R# V PT                  PV                  PY                  V4      '       d   R# \N        PZ                  ! V4      '       d   R# \N        P\                  ! V4      '       d   R# \N        P^                  ! W4      '       dV   \N        P`                  ! V4      '       d   R# VP                  R4      p
V
'       d   \N        Pb                  ! V
4      '       g   R# WP                  R4      8X  d   R# R# )r   FTrZ   speechVerbosityLevelr   ROLE_CONTENT_SUGGESTION
formatTypebasicWhereAmIstartOffset	endOffsetr   
ancestorOfr   )2r   ry   rz   r   Z&get_active_mode_and_object_of_interestZOBJECT_NAVIGATORr]   r   r   '_get_enabled_and_disabled_context_rolesr   RoleZARTICLEZEXTENDEDZFILLERZFOOTERFORMZLABELZ	MENU_ITEMZ	PARAGRAPHZREDUNDANT_OBJECTZSECTIONZSTATICZ
TABLE_CELLZUNKNOWNr   VERBOSITY_LEVEL_BRIEFrn   ZCANVASICONLISTZ	LIST_ITEMZALERTZDOCUMENT_FRAMEZDOCUMENT_PRESENTATIONZDOCUMENT_SPREADSHEETZDOCUMENT_TEXTZDOCUMENT_WEBZ
ROW_HEADERr   is_combo_box
get_parentrd   re   Z	is_anchorZis_desktop_frameZis_docked_frameZis_panelis_selectedZ	is_widget)r(   rD   r=   Zsettings_mgrZmodeZ_accrZ   _enableddisabledZdo_not_speakchilds   &&,        r!   _should_speak_roleZ"SpeechGenerator._should_speak_rolew  sa   '335##$<=="..0WWY
=111xx 1 1# 67!IIK

**

++

))

))



((

,,

,,

33

**

))

--

**, ##$:;x?]?]]

!!

! 
 88H)!  88L!_4



$$!  88M".$((;2G2S

  

))

00

//

((

''!  88GQ!#

%%!  ##H$7$7$<==<<!!++C00'',,&&s++**&&s++HH\*Ek33E::((:&&r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	s^   V P                   ! V3/ VB '       g   . # \        P                  ! V4      p\        P                  ! WP                  R 4      4      '       d.   \        P                  ! V4      '       d   V P                  V4      # \        P                  ! V4      '       dW   V P                  V\        P                  P                  R7      .pVP                  V P                  ! \        3RV/VB 4       V# \        P                   ! V4      pV'       dX   \"        P$                  R V P                  ! V3/ VB RV/,          .pVP                  V P                  ! \        3RV/VB 4       V# V P                  ! V3/ VB .pVP                  V P                  ! \        3RV/VB 4       V# )rZ   rY   rD   level)r   r   r   r   is_menur]   r   rb   Z!is_single_line_autocomplete_entryr_   r   r   ZAUTOCOMPLETErn   ro   r   Zget_heading_levelr   ZROLE_HEADING_LEVEL_SPEECH)r(   rD   r=   parentr>   r      &&,   r!   rb   Z)SpeechGenerator._generate_accessible_role  sl    &&s3d33I$$S)sHHV$455+:R:RSY:Z:Z11&9988==!%!=!=c

H_H_!=!` aFMM$**V===>M--c2'AA44SADAE    !F MM$**V===>M..s;d;<djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7     s     ; ;; 
	;r$   c                s   \         P                  ! 4       P                  R4      '       g*   VP                  RR4      P	                  R4      '       g   . # \
        P                  ! V4      pV'       g   . # W0P                  ! \        3RV/VB .# )z&Provides the tutorial message for obj.ZenableTutorialMessagesr   rR   WhereAmIrD   )	r   ry   rz   r]   endswithr   Zget_help_textro   r   )r(   rD   r=   textrU   r!   _generate_tutorialZ"SpeechGenerator._generate_tutorial  st      ++-99:RSS88L"-66zBBI%%c*Ijj9S9D9::r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	    . # r&   r   rv   rw   r!   _generate_has_click_actionZ*SpeechGenerator._generate_has_click_action  	     	r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r&   r   rv   rw   r!   _generate_has_long_descriptionZ.SpeechGenerator._generate_has_long_description  r   r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r&   r   rv   rw   r!   _generate_has_detailsZ%SpeechGenerator._generate_has_details
  r   r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r&   r   rv   rw   r!   _generate_details_forZ%SpeechGenerator._generate_details_for  r   r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r&   r   rv   rw   r!   _generate_all_detailsZ%SpeechGenerator._generate_all_details  r   r$   c               r6   rC   r   r   r    r!   r"   r7   #  s       
	r$   c                	sf  < \         P                  ! V4      '       g   . # \        SV `  ! V3/ VB pV'       g   . # VP	                  V P
                  ! \        3R V/VB 4       VP                  RR4      p\         P                  ! V4      '       g   V# \         P                  ! V4      pWE9  d   V# . # )rD   r   N)	r   Zis_radio_buttonr8   _generate_radio_button_grouprn   ro   rp   r]   Zget_is_member_of)r(   rD   r=   r>   r   Zmembersr9   s   &&,   r!    _generate_new_radio_button_groupZ0SpeechGenerator._generate_new_radio_button_group"  s     **3//I5cBTBIdjj:c:T:;HHZ.	**955M ..s3#M	r$   c               r6   rC   r   r   r    r!   r"   r7   =  r   r$   c                	r   r   )r8   _generate_term_value_countrn   ro   r   r   r   r!   r   Z*SpeechGenerator._generate_term_value_count<  @     3C@4@MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7   H  s     & && 
	&r$   c                	s   \         P                  ! 4       P                  R 4      '       g8   \         P                  ! 4       P                  R4      \        P                  8X  d   . # \
        P                  ! V\        P                  4      '       dz   V P                  P                  P                  V4      pV'       dK   \        P                  ! \        V4      4      .pVP                  V P                   ! \"        3RV/VB 4       V# . # VP%                  R4      p\        P&                  ! W4      '       g   \        P(                  ! W4      '       db   \        P*                  ! V4      pV'       dB   \        P,                  ! V4      .pVP                  V P                   ! \"        3RV/VB 4       V# . # \        P.                  ! W4      '       dr   \1        \
        P2                  ! V\        P4                  4      4      pV'       g<   \        P6                  .pVP                  V P                   ! \"        3RV/VB 4       V# . # )r   r   rD   rZ   )r   ry   rz   r   r   r   ri   r   Zis_tree_or_tree_tablerd   re   child_nodesr   Z
item_countrk   rn   ro   r   r]   Zis_listZis_list_boxget_set_sizeZlist_item_countr   rL   iter_childrenZis_icon_or_canvasZ
ZERO_ITEMS)r(   rD   r=   r   r>   rZ   Zset_sizechildren   &&,     r!   _generate_number_of_childrenZ,SpeechGenerator._generate_number_of_childrenG  s    '')556NOO**,889OP001I!!#{'H'HII,,00<<SAK"--c+.>?@djjASADABIxxs))[-D-DS-O-O"//4H"228<=djjASADABI &&s11H2238U8UVWH"--.djjASADAB	r$   c               r6   rC   r   r   r    r!   r"   r7   q         
	r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # Tp\        P                  ! V4      '       g5   \        P
                  ! V4      p\        P                  ! V4      '       g   . # . p\        P                  ! V4      p\        V P                  P                  P                  V4      4      pVP                  \        P                  ! We4      4       VP                  V P                  ! \         3RV/VB 4       VP                  \"        P$                  R\        P&                  ! V4      ^,           RV/,          4       VP                  V P                  ! \         3RV/VB 4       V# )r   rD   r   r   )r   ry   rz   r   supports_selectionr   get_child_countrk   rd   re   selected_childrenrh   r   Zselected_items_countrn   ro   r   r   ZICON_INDEX_SPEECHget_index_in_parent)r(   rD   r=   	containerr>   child_countZselected_count   &&,    r!   _generate_selected_item_countZ-SpeechGenerator._generate_selected_item_countp  s)    '')556NOOI	**955 ++C0I..y99	..y9T\\33EEiPQh33NPQdjj9S9D9:'99 8#?#?#Dq#H ;00 	1 	djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7     s"     S SS 
	Sr$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # Tp\        P                  ! V4      '       g5   \        P
                  ! V4      p\        P                  ! V4      '       g   . # V P                  P                  P                  V4      p\        \        V P                  V4      4      # )r   )r   ry   rz   r   r   r   rd   re   r   rL   Zmaprg   )r(   rD   r=   r   Zselected_itemsrN   r!   _generate_selected_itemsZ(SpeechGenerator._generate_selected_items  s     '')556NOOI	**955 ++C0I..y99	//AA)LC@@.QRRr$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	sH   \         P                  ! 4       P                  R 4      '       d   . # . p\        \        P
                  ! V4      4      pV^ 8  dN   VP                  \        P                  ! V4      4       VP                  V P                  ! \        3RV/VB 4       V# r   )r   ry   rz   rk   r   rl   rh   r   rm   rn   ro   r   )r(   rD   r=   r>   rs   rN   r!    _generate_unfocused_dialog_countZ0SpeechGenerator._generate_unfocused_dialog_count  s     '')556NOOI!$[%Q%QRU%V!W!A%MM(667MNOMM$**V===>r$   c                	s\   \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P
                  \         P                  P                  R R\         P                  P                  R\         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  R\         P                  P                  \         P                  P                  .p. . r2\        P                   ! 4       P#                  4       '       Ed   \$        P                   ! 4       P'                  R4      '       d*   VP)                  \         P                  P                  4       \$        P                   ! 4       P'                  R4      '       d,   VP+                  \         P                  P                  R .4       \$        P                   ! 4       P'                  R4      '       dd   VP)                  \         P                  P                  4       VP)                  \         P                  P                  4       VP)                  R4       \$        P                   ! 4       P'                  R4      '       d   VP+                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P
                  \         P                  P                  R.4       \$        P                   ! 4       P'                  R4      '       d*   VP)                  \         P                  P                  4       \$        P                   ! 4       P'                  R	4      '       d*   VP)                  \         P                  P                  4       EM\$        P                   ! 4       P'                  R
4      '       d*   VP)                  \         P                  P                  4       \$        P                   ! 4       P'                  R4      '       d-   VP+                  \         P                  P                  R R.4       \$        P                   ! 4       P'                  R4      '       dd   VP)                  \         P                  P                  4       VP)                  \         P                  P                  4       VP)                  R4       \$        P                   ! 4       P'                  R4      '       d   VP+                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P
                  \         P                  P                  R.4       \$        P                   ! 4       P'                  R4      '       d*   VP)                  \         P                  P                  4       \$        P                   ! 4       P'                  R4      '       d*   VP)                  \         P                  P                  4       \-        \/        V4      P1                  V4      4      pW#3# )ROLE_DPUB_LANDMARKROLE_DPUB_SECTION	ROLE_FEEDROLE_REGIONZsayAllContextBlockquoteZsayAllContextLandmarkZsayAllContextListZsayAllContextPanelZsayAllContextNonLandmarkFormZsayAllContextTableZspeakContextBlockquoteZspeakContextLandmarkspeakContextListZspeakContextPanelZspeakContextNonLandmarkFormZspeakContextTable)r   r   BLOCK_QUOTECONTENT_DELETIONCONTENT_INSERTIONMARK
SUGGESTIONDESCRIPTION_LISTr   GROUPINGLANDMARKr   PANELTABLETOOL_TIPr   ry   
in_say_allr   rz   rh   rn   rL   ZsetZsymmetric_difference)r(   Z	all_rolesenabledr   s   &   r!   r   Z7SpeechGenerator._get_enabled_and_disabled_context_roles  sB   ZZ++JJ//JJ00JJOOJJ))('JJ//JJOOJJ''JJ''JJOOJJ$$!JJ$$JJ''!)	$ $$&1133++-99:STTuzz556++-99:QRR

 3 35IJK++-99:MNNuzz/uzz::;{+++-99:NOO

 0 0 %

 3 3 %

 ; ; %

 < < %

 3 3 %

 %

 5 5 3 5 6  ++-99:XYYuzz/++-99:NOOuzz//0++-99:RSSuzz556++-99:PQQ

 3 35I=YZ++-99:LMMuzz/uzz::;{+++-99:MNN

 0 0 %

 3 3 %

 ; ; %

 < < %

 3 3 %

 %

 5 5 3 5 6  ++-99:WXXuzz/++-99:MNNuzz//0I;;GDE  r$   c               r6   rC   r   r   r    r!   r"   r7     s"     F FF 
	Fr$   c                	s   VP                  R 4      '       g   . # VP                  R\        P                  ! V4      4      pV P                  4       w  rE\	        \
        P                  ! V4      4      pW49   g   V'       g   . # VP                  R^4      p. pV'       d"   VP                  \        P                  4       EMV\        P                  P                  8X  dP   V^8  d(   VP                  \        P                  ! V4      4       EM?VP                  \        P                  4       EMV P                  P                   P#                  V4      '       dP   V^8  d(   VP                  \        P$                  ! V4      4       EMVP                  \        P&                  4       EMVR8X  d"   VP                  \        P(                  4       EM|V\        P                  P*                  8X  d   \
        P,                  ! V4      '       d"   VP                  \        P.                  4       EM V P                  P                   P1                  V4      '       d"   VP                  \        P2                  4       E
MR.pE
MV\        P                  P4                  8X  d"   VP                  \        P6                  4       E
MV\        P                  P8                  8X  dM   V P                  P                   P;                  V4      '       d"   VP                  \        P<                  4       E
M$VR8X  Ed   \
        P>                  ! V4      '       d"   VP                  \        P@                  4       E	M\
        PB                  ! V4      '       d"   VP                  \        PD                  4       E	M\
        PF                  ! V4      '       d"   VP                  \        PH                  4       E	Me\
        PJ                  ! V4      '       d"   VP                  \        PL                  4       E	M(\
        PN                  ! V4      '       d"   VP                  \        PP                  4       EM\
        PR                  ! V4      '       d"   VP                  \        PT                  4       EM\
        PV                  ! V4      '       d"   VP                  \        PX                  4       EMq\
        PZ                  ! V4      '       d"   VP                  \        P\                  4       EM4\
        P^                  ! V4      '       d"   VP                  \        P`                  4       EM\
        Pb                  ! V4      '       d"   VP                  \        Pd                  4       EM\
        Pf                  ! V4      '       d"   VP                  \        Ph                  4       EM}\
        Pj                  ! V4      '       d"   VP                  \        Pl                  4       EM@\
        Pn                  ! V4      '       d"   VP                  \        Pp                  4       EM\
        Pr                  ! V4      '       d"   VP                  \        Pt                  4       EM\
        Pv                  ! V4      '       d"   VP                  \        Px                  4       EM\
        Pz                  ! V4      '       d"   VP                  \        P|                  4       EML\
        P~                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d    VP                  \        P                  4       EMVR8X  Ed   \
        P                  ! V4      '       d"   VP                  \        P                  4       EMP\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d    VP                  \        P                  4       EM\
        P                  ! V4      '       Ed   \
        P                  ! V4      '       d"   VP                  \        P                  4       EMK\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EMW\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EM\
        P                  ! V4      '       d"   VP                  \        P                  4       EMR.pEMV\        P                  P                  8X  d"   VP                  \        P                  4       EM[V\        P                  P                  8X  d"   VP                  \        P                  4       EMV\        P                  P                  8X  d!   VP                  \        P                  4       MV\        P                  P                  8X  d!   VP                  \        P                  4       MV\        P                  P                  8X  d!   VP                  \        P                  4       M^V\        P                  P                  8X  d=   \
        P                  ! W4      '       g!   VP                  \        P                  4       MR.pV'       d)   VP                  V P                  ! \        3RV/VB 4       V# )leavingrZ   countr   rR   r   r   rD   )ur]   r   r   r   boolr   Zget_is_details_forrh   r   ZLEAVING_DETAILSr   r   r   Zleaving_n_blockquotesZLEAVING_BLOCKQUOTErd   re   Zis_document_listZleaving_n_listsZLEAVING_LISTZLEAVING_FEEDr   Z	is_figureZLEAVING_FIGUREZis_document_panelZLEAVING_PANELr   ZLEAVING_GROUPINGr   is_text_document_tableZLEAVING_TABLEZis_dpub_acknowledgmentsZLEAVING_ACKNOWLEDGMENTSZis_dpub_afterwordZLEAVING_AFTERWORDZis_dpub_appendixZLEAVING_APPENDIXZis_dpub_bibliographyZLEAVING_BIBLIOGRAPHYZis_dpub_chapterZLEAVING_CHAPTERZis_dpub_conclusionZLEAVING_CONCLUSIONZis_dpub_creditsZLEAVING_CREDITSZis_dpub_endnotesZLEAVING_ENDNOTESZis_dpub_epilogueZLEAVING_EPILOGUEZis_dpub_errataZLEAVING_ERRATAZis_dpub_forewordZLEAVING_FOREWORDZis_dpub_glossaryZLEAVING_GLOSSARYZis_dpub_indexZLEAVING_INDEXZis_dpub_introductionZLEAVING_INTRODUCTIONZis_dpub_pagelistZLEAVING_PAGELISTZis_dpub_partZLEAVING_PARTZis_dpub_prefaceZLEAVING_PREFACEZis_dpub_prologueZLEAVING_PROLOGUEZis_dpub_tocZLEAVING_TOCZis_dpub_abstractZLEAVING_ABSTRACTZis_dpub_colophonZLEAVING_COLOPHONZis_dpub_creditZLEAVING_CREDITZis_dpub_dedicationZLEAVING_DEDICATIONZis_dpub_epigraphZLEAVING_EPIGRAPHZis_dpub_exampleZLEAVING_EXAMPLEZis_dpub_pullquoteZLEAVING_PULLQUOTEZis_dpub_qnaZLEAVING_QNAZis_landmarkZis_landmark_bannerZLEAVING_LANDMARK_BANNERZis_landmark_complementaryZLEAVING_LANDMARK_COMPLEMENTARYZis_landmark_contentinfoZLEAVING_LANDMARK_CONTENTINFOZis_landmark_mainZLEAVING_LANDMARK_MAINZis_landmark_navigationZLEAVING_LANDMARK_NAVIGATIONZis_landmark_regionZLEAVING_LANDMARK_REGIONZis_landmark_searchZLEAVING_LANDMARK_SEARCHZis_landmark_formZLEAVING_FORMr   r   ZLEAVING_TOOL_TIPr   CONTENT_DELETION_ENDr   CONTENT_INSERTION_ENDr   CONTENT_MARK_ENDr   is_inline_suggestionZLEAVING_SUGGESTIONrn   ro   r   )	r(   rD   r=   rZ   r   Z	_disabledZ
is_detailsr   r>   	   &&,      r!   _generate_leavingZ!SpeechGenerator._generate_leaving  s
    xx	""Ixx 1 1# 67!IIK+88=>
:I!$MM(223UZZ+++qyh<<UCDh99:\\##44S99qyh66u=>h334[ MM(//0UZZ%%%$$S))h556''99#>>h445UZZ(((MM(334UZZ%%%$,,*@*@*W*WX[*\*\MM(001))22377h>>?..s33h889--c22h77811#66h;;<,,S11h667//44h99:,,S11h667--c22h778--c22h778++C00h556--c22h778--c22h778**3//h44511#66h;;<--c22h778))#..h334,,S11h667--c22h778((--h223((++C00h778--c22h778++C00h556//44h99:--c22h778,,S11h667..s33h889((--h223$$S))--c22h>>?66s;;hEEF44S99hCCD--c22h<<=33C88hBBC//44h>>?//44h>>?--c22h334UZZ__$MM(//0UZZ(((MM(334UZZ000MM(778UZZ111MM(889UZZ__$MM(334UZZ***;3S3STW3^3^MM(556TFMM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7   z  s"     k kk 
	kr$   c                	s	  a a . pVP                  R 4      pV'       d,   VP                  R4      '       d   TpVP                  R4      pMVP                  R4      pV'       d   \        P                  ! V4      '       d   . # \        P                  ! V4      '       d   . # V'       d2   \        P
                  ! V4      \        P
                  ! V4      8X  d   . # \        P                  ! V4      '       d   . # \        P                  ! V4      '       d   . # \        P                  ! WQ4      pW8X  d   . # VP                  R. 4      pVP                  R. 4      pVP                  \        P                  P                  4       S P                  4       w  rVP                  V
4       VP                  R. 4      pVP                  \        P                  P                  \        P                  P                  .4       VP                  R. 4      pVP                  \        P                  P                   .4       \        P                  P"                  \        P                  P$                  .pRpV'       d{   V'       gs   S P'                  V4      oSV9   d[   VV 3R lp\        P(                  ! W4      p\        P(                  ! W_4      pS P+                  V4      pS P+                  V4      pVV8g  p. p. p\        P,                  ! V4      pV'       Ed%   S P'                  V4      pVV9   d   EM
VV9   d-   S P.                  P0                  P3                  V4      '       g   MV'       d	   VV9  d   M\        P4                  ! V4      '       d   M\        P6                  ! V4      '       d   MeVV8w  g	   V'       dW   RpV F$  p\        P8                  ! VV4      '       g   K"  Rp M	  V'       g#   VP                  V4       VP                  V4       VV8X  g   VV9   d   M\        P,                  ! V4      pEK-  . p\;        V4       Fg  w  ppVV,          pVV9   d
   VV9   d   K  VP                  V4       VP=                  V4      pVP                  S P?                  VR	VVVWR
7      4       Ki  	  V'       g   VPA                  4        V# )r   r   includeOnlyZ	skipRolesstop_at_rolesstop_after_rolesFc                s,   < SP                  V 4      S8H  # r&   )_get_functional_role)rI   common_roler(   s   &r!   predZ1SpeechGenerator._generate_ancestors.<locals>.pred  s    44Q7;FFr$   Tancestor)r   rZ   r   r   r   r   )!r]   r   Zis_deadr   r   r   is_page_tabZget_common_ancestorrh   r   r   Z	TREE_ITEMr   rn   ZAPPLICATIONZMENU_BARr   r   r   r	  ri   _get_nesting_levelZget_parent_checkedrd   re   rj   Zis_layout_onlyZis_button_with_popupZis_redundant_object	enumerater   rK   Zreverse) r(   rD   r=   r>   r   r   Zcommon_ancestorZinclude_onlyZ
skip_rolesr   r   r  r  Zpresent_onceZpresent_common_ancestorr  Zobj_ancestorZprior_ancestorZ	obj_levelZprior_levelZ	ancestorsZancestor_rolesr   Zparent_roleZis_redundantr  Zpresented_rolesirI   Zalt_roler   r
  s    f&,                            @r!   _generate_ancestorsZ#SpeechGenerator._generate_ancestorsz  s   
 ((9%txx
++I((:&C,I)))44I""9--I,,Y78;N;Ns;SSI""3''I""3''I"66yF!Ixxr2XXk2.
%**../!IIK(#"5ejj44ejj6I6IJK88$6;!4!4 56

..

@"'733ODKl*G'55c@!)!7!7	!H 33LA	"55nE*3{*B',.	+-,,S1f33F;Km+ j( LL22GGOO+\"A++F3311&99?*.E$ )H"66xHH'+ !* $$$V,"))+6(K;K,K008Fi(DAq%a(H<'H,G""8,"((2EMMaJX&-Us  `a ) NNr$   c               r6   rC   r   r   r    r!   r"   r7     s     7 77 
	7r$   c                	s  a \         P                  ! 4       P                  R 4      '       d   . # V P                  P                  P                  4       '       d   . # VP                  R4      oS'       d$   VS8X  g   \        P                  ! S4      '       g   . # \        P                  ! V4      '       d   . # \        P                  ! V4      \        P                  ! S4      8w  g"   \        P                  ! VV3R l4      '       d   . # V P                  P                  P                  V4      w  r4V'       d   . # RVR&   \        P                  P                   \        P                  P"                  \        P                  P$                  \        P                  P&                  \        P                  P(                  \        P                  P*                  \        P                  P,                  \        P                  P.                  RRR\        P                  P0                  \        P                  P2                  R\        P                  P4                  \        P                  P6                  .VR	&   . p\        P8                  ! S4      '       d4   VP;                  V P=                  SV P?                  S4      R
RR7      4       VP;                  V P@                  ! V3/ VB 4       VPC                  R4       VPC                  R	4       V# )r   r   c                s   < V S8H  # r&   r   )rI   r   s   &r!   rJ   Z9SpeechGenerator._generate_old_ancestors.<locals>.<lambda>  s	    ANr$   Tr   r   r   r   r   r  focused)rZ   r   r   )"r   ry   rz   rd   re   in_find_containerr]   r   Zis_validr   r  Zget_applicationri   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zis_block_quotern   rK   r	  r  pop)r(   rD   r=   Z_framerr   r>   r   s   &&,   @r!   _generate_old_ancestorsZ'SpeechGenerator._generate_old_ancestors  s    '')556NOOI<<!!3355IHHZ(	C9,H4E4Ei4P4PI""3''I&&s+{/J/J9/UU$$S*BCCI//@@EIY$zz55$zz::$zz$zz22$zz::$zz;;$zz$zz4432*$zz$zz//,$zz//$zz224]" %%i00MM$--	-1-F-Fy-Q3<04 ( 6 7
 	d..s;d;<r$   c               r6   rC   r   r   r    r!   r"   r7   "  s       
	r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # V P                  P                  P                  4       '       d   . # VP                  R4      pW18X  d   . # VP                  R\        P                  ! V4      4      p\        P                  ! W4      '       g   \        P                  ! W4      '       d   . # \        P                  ! W4      '       d'   V'       d   \        P                  ! V4      '       d   . # Ve   V P                  ! V3/ VB # V P                  P                  P                  V4      w  rVT;'       g    Tp\        P                  ! V4      '       d   V P                  ! V3/ VB # . # )r   r   rZ   )r   ry   rz   rd   re   r  r]   r   r   r   Zis_frameZ	is_windowZis_menu_item_of_any_kindr  rf   Zis_dialog_or_alert)r(   rD   r=   r   rZ   rq   rr   Z	top_levelr   r!   _generate_new_ancestorsZ'SpeechGenerator._generate_new_ancestors!  s4    '')556NOOI<<!!3355IHHZ(	Ixx 1 1# 67**k.C.CC.N.NI//::!6!6y!A!AI ++C8488..??DOOe	)))44++C8488	r$   c                	s    VP                  R 4      V8X  d   . # V P                  ! V3/ VB pVP                  V P                  ! V3/ VB 4       V# )r   )r]   r  rh   r  r(   rD   r=   r>   rU   r!   generate_contextZ SpeechGenerator.generate_contextC  sN    88J3&I--c:T:d223?$?@r$   c               r6   rC   r   r   r    r!   r"   r7   K  s"     H HH 
	Hr$   c                	s   VP                  R \        P                  ! V4      4      \        P                  P
                  8X  d)   VP                  RR4      R9   d   \        P                  .# \        P                  ! V4      p\        P                  ! V4      '       g   \        P                  ! V4      '       d   TpV P                  \        P                  ! V4      4      # )rZ   r   N)r   detailedWhereAmI)r]   r   r   r   r   r   r   ZROLE_ICON_PANELr   r   Zis_table_cellr   rb   )r(   rD   r=   r   rU   r!   _generate_parent_role_nameZ*SpeechGenerator._generate_parent_role_nameK  s    
 88FH--c23uzzFxxd+78%5566$$S)$$V,,0C0CF0K0KC--h.A.A#.FGGr$   c               r6   rC   r   r   r    r!   r"   r7   [  s          
	 r$   c                	sJ   \         P                  ! 4       P                  R 4      '       gY   \         P                  ! 4       P                  R4      '       g   VP                  RR4      '       d   VP                  R4      R8X  d   . # VP                  R^ 4      ^,           VP                  R^4      8  d   . # . p\        P
                  ! V4      p\        P                  ! V4      pV^ 8  d   . # \        P                  pV^ 8  d/   \        P                  ! V4      '       g   . # \        P                  pV^8X  d   \        P                  ! V4      '       d   . # V^,          pVP                  VRVRV/,          4       VP                  V P                  ! \        3RV/VB 4       V# )	r   ZenablePositionSpeakingZ	forceListFr   r  r   r   rD   )r   ry   rz   r]   r   Zget_position_in_setr   r   ZGROUP_INDEX_SPEECHget_set_size_is_unknownZ GROUP_INDEX_TOTAL_UNKNOWN_SPEECHr   rh   rn   ro   r   )r(   rD   r=   r>   Zpositionr   r   r   r!   _generate_position_in_listZ*SpeechGenerator._generate_position_in_listZ  sP    '')556NOO#//1==>VWWhh{E22hh|$
2I88GQ!#dhhw&::I2237((-a<I"551966s;;	&GGFA:+--c22IAf7EBBCdjj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # . p\        P                  ! V4      pV'       d:   VP                  V4       VP                  V P                  ! \        3RV/VB 4       V# r   )	r   ry   rz   r   Zget_acceleratorrh   rn   ro   r   )r(   rD   r=   r>   ZacceleratorrN   r!   _generate_keyboard_acceleratorZ.SpeechGenerator._generate_keyboard_accelerator  sl     '')556NOOI..s3MM+&MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # . p\         P                  ! 4       P                  R4      '       g   VP                  RR4      '       dQ   \        P
                  ! V4      pV'       d3   VR,          .pVP                  V P                  ! \        3RV/VB 4       V# )r   ZenableMnemonicSpeakingZforceMnemonicFrD   r   )	r   ry   rz   r]   r   Zget_mnemonicrn   ro   r   )r(   rD   r=   r>   ZmnemonicrN   r!   _generate_keyboard_mnemonicZ+SpeechGenerator._generate_keyboard_mnemonic  s     '')556NOOI'')556NOOhh..,,S1H"2,djjASADABr$   c               r6   rC   r   r   r    r!   r"   r7     s     & && 
	&r$   c                	sP   . p\         P                  ! V4      pV'       g   VP                  V P                  V4      4       VP                  V P	                  V4      4       VP                  \        P                  ! V4      4       VP                  V P                  ! \        3R V/VB 4       V# \        P                  P                  V4      pV^ ,          R9   d{   V^,          P                  R4      pVP                  \        P                  RV^ ,          RVR,          /,          4       VP                  V P                  ! \        3R V/VB 4       V# \        P                   V^ ,          ,          p\        P                  ! V4      p\"        P$                  ! V4      '       g    \        P                   V^ ,          ,          pM\        P&                  V^ ,          ,          pV'       g   \         P(                  ! V4      pV'       d   VRV,           ,          pVP                  V4       \*        P,                  ! V^ 4      p	\"        P.                  ! V	4      '       d!   VP                  V P	                  V	4      4       VP                  V P                  ! \        3R V/VB 4       V# )rD   fileZ/urir   )ZftpZftpsr   r   )r   get_link_urirn   r   rb   rh   r   get_all_textro   r   urllibparseurlparsesplitr   ZLINK_TO_FILEZLINK_WITH_PROTOCOLr   r^   ZLINK_WITH_PROTOCOL_VISITEDZget_link_basenamer   	get_childZis_image)
r(   rD   r=   r>   link_urilink_uri_infoZ	file_nameZlink_outputr   r   
   &&,       r!   _generate_link_infoZ#SpeechGenerator._generate_link_info  s    ++C0MM$99#>?MM$88=>MM&--c23MM$**V===>M--h766%a(..s3IMM%%q1A6IVXM(ZZ\MM$**V===>M11M!4DD""3'%%c**"55a8HHK"==a@PPK005D3:%Kk"""3*&&MM$88?@djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7          " "" 
	"r$   c                	s   \         P                  ! V4      pV'       g   . # \        P                  P	                  V4      p\
        P                  ! V P                  P                  P                  4       4      pV'       g   . # . p\        P                  P	                  V4      pV^,          V^,          8X  dV   V^,          V^,          8X  d!   VP                  \        P                  4       MVP                  \        P                  4       MV^,          P                  R4      pV^,          P                  R4      p	\        V4      ^8  d[   \        V	4      ^8  dK   VR,          V	R,          8X  d6   VR,          V	R,          8X  d!   VP                  \        P                  4       MVP                  \        P                   4       V'       d)   VP#                  V P$                  ! \&        3RV/VB 4       V# )   r   rD   r   i)r   r"  r$  r%  r&  r   Zget_urird   re   Zactive_documentrh   r   ZLINK_SAME_PAGEZLINK_SAME_SITEr'  rk   ZLINK_DIFFERENT_SITErn   ro   r   )
r(   rD   r=   r)  r*  Zdoc_urir>   Zdoc_uri_infoZlink_domainZ
doc_domainr+  r!   _generate_link_site_descriptionZ/SpeechGenerator._generate_link_site_description  sf    ++C0I--h7$$T\\%;%;%K%K%MNI||,,W5|A.Q<?2h556h556'*005K%a..s3J;!#J!(;r?jn4r?jn4h556h::;MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	sd   . pR p\         P                  ! V4      pV'       g   V#  \        P                  P	                  V4      ;_uu_ 4       p VP                  4       R,          pRRR4       T'       d   \        T4      pTR8  d'   TP                  \        P                  ! T4      4       M{TR8  d8   TP                  \        P                  \!        T4      R,          ,          4       M=TR8  d7   TP                  \        P"                  \!        T4      R,          ,          4       T'       d)   TP%                  T P&                  ! \(        3RT/TB 4       T#   \         d     ELi ; i  + '       g   i     EL; i  \        \        P                  P                  \        3 d     EL@i ; i)rR   zContent-lengthNi'  i@B gMbP?gư>rD   )r   r"  r$  ZrequestZurlopenZinfoZKeyErrorZ
ValueErrorZerrorZURLErrorZOSErrorintrh   r   Zfile_size_bytesZFILE_SIZE_KBZfloatZFILE_SIZE_MBrn   ro   r   )r(   rD   r=   r>   Zsize_stringr!  rI   Zsizer   r!   _generate_link_file_sizeZ(SpeechGenerator._generate_link_file_size  sC    &&s+M	'',,"#&&(+;"<K - {#De|h66t<=h33uT{T7IJKh33uT{W7LMNMM$**V===>    -,,
 FLL117; 		sM   'F E-E&F E*&E-)E**E--E>	8F >F *F/.F/c               r6   rC   r   r   r    r!   r"   r7     r   r$   c           	     	s   . p\        \        P                  ! V4      4      pV'       g    \        P                  ! V4      '       g   V.pV F  p\        P
                  ! V4      '       d?   \        P                  ! V4      '       d#   VP                  V P                  V4      4       K]  VP                  V P                  WPP                  V4      R 7      4       K  	  V# rY   )rL   r   r   r   Zis_mathis_math_layout_onlyr   rn   _generate_math_contentsrK   r	  )r(   rD   r=   r>   r   r   r   r!   r5  Z'SpeechGenerator._generate_math_contents  s     ..s34 3 3C 8 8uHE..u55(:R:RSX:Y:Yd::5ABMM$--4M4Me4T-UV	  r$   c               r6   rC   r   r   r    r!   r"   r7   (  s     9 99 
	9r$   c                	s   . p\         P                  ! V4      pVP                  R R4      P                  4       pRV9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                  4       R	V9   d    VP	                  \
        P                  4       R
V9   d    VP	                  \
        P                  4       RV9   d    VP	                  \
        P                   4       RV9   d    VP	                  \
        P"                  4       RV9   d    VP	                  \
        P$                  4       RV9   d    VP	                  \
        P&                  4       RV9   d    VP	                  \
        P(                  4       RV9   d    VP	                  \
        P*                  4       RV9   d    VP	                  \
        P,                  4       V'       g-   RV.p\.        P0                  ! \.        P2                  VR4       . # \5        V4      ^8X  d!   \
        P6                  V^ ,          ,          .pMVP9                  R\
        P:                  4       \5        V4      ^8X  d)   \
        P6                  RP=                  V4      ,          .pM'\
        P6                  RP=                  V4      ,          .pVP?                  V P@                  ! \B        3RV/VB 4       V# )ZnotationZlongdivZ	actuarialZboxZcircleZradicalZ
roundedboxZhorizontalstrikeZverticalstrikeZdowndiagonalstrikeZupdiagonalstrikeZnortheastarrowZbottomZleftZrightZtopZphasorangleZmadruwbz5SPEECH GENERATOR: Could not get enclosure message forTr   z, rD   r   )"r   get_attributes_dictr]   r'  rh   r   ZMATH_ENCLOSURE_ACTUARIALZMATH_ENCLOSURE_BOXZMATH_ENCLOSURE_CIRCLEZMATH_ENCLOSURE_LONGDIVZMATH_ENCLOSURE_RADICALZMATH_ENCLOSURE_ROUNDEDBOXZMATH_ENCLOSURE_HORIZONTALSTRIKEZMATH_ENCLOSURE_VERTICALSTRIKEZ!MATH_ENCLOSURE_DOWNDIAGONALSTRIKEZMATH_ENCLOSURE_UPDIAGONALSTRIKEZMATH_ENCLOSURE_NORTHEASTARROWZMATH_ENCLOSURE_BOTTOMZMATH_ENCLOSURE_LEFTZMATH_ENCLOSURE_RIGHTZMATH_ENCLOSURE_TOPZMATH_ENCLOSURE_PHASOR_ANGLEZMATH_ENCLOSURE_MADRUWBr   r;   r<   rk   ZMATH_ENCLOSURE_ENCLOSED_BYZinsertZMATH_ENCLOSURE_ANDZjoinrn   ro   r   )r(   rD   r=   ZstringsattrsZ
enclosuresr?   r>   r   r!   "_generate_math_enclosed_enclosuresZ2SpeechGenerator._generate_math_enclosed_enclosures'  s    ,,S1YYz95;;=
*$NN8<<=JNN8667z!NN899:
"NN8::;
"NN8::;:%NN8==>+NN8CCDz)NN8AAB:-NN8EEF+NN8CCDz)NN8AABz!NN899:ZNN8778j NN8889JNN8667J&NN8??@
"NN8::;MzZFu//>Iw<199GAJFGFNN2x::;7|q "==@QQR"==		'@RRSdjj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   d         
	r$   c                	s  a	 . p\         P                  ! V4      p\        VP                  R R4      4      o	\         P                  ! V4      pS	P                  V	3R l\        \        S	4      V^,
          4       4       4       S	P                  R4       \        \         P                  ! V4      4       F  w  rgVP                  V P                  ! V3/ VB 4       \        P                  ! S	V,          4      pVP                  V4       VP                  V P                  ! \        3RV/VB 4       V'       g   K  VP                  V P                   ! V3/ VB 4       K  	  V# )
separatorsZ,c              3  s6   <"   T F  pSR,          x  K  	  R# 5i)r.  Nr   r   )Z.0Z_r:     & r!   Z	<genexpr>ZASpeechGenerator._generate_math_fenced_contents.<locals>.<genexpr>m  s     Z2YQ*R..2Ys   rR   rD   )r   r6  rL   r]   r   rn   Zrangerk   rh   r  r   r5  r
   get_character_namero   rp   r{   )
r(   rD   r=   r>   r7  r   r  r   Zseparator_namer:  s
   &&,      @r!   _generate_math_fenced_contentsZ.SpeechGenerator._generate_math_fenced_contentsc  s    ,,S1%))L#67
..s3Z%JWX2YZZ"!("8"8"=>HAMM$66uEEF(;;JqMJNMM.)MM$**W>#>>?~d223?$?@ ? r$   c               r6   rC   r   r   r    r!   r"   r7   {  r   r$   c                	s    \         P                  ! V^ 4      p\        P                  ! V4      '       d   V P	                  V4      # V P                  W0P                  V4      R7      pV# r   rY   r   r(  r   r4  r5  rK   r	  )r(   rD   r=   Z	numeratorr>   rN   r!   !_generate_math_fraction_numeratorZ1SpeechGenerator._generate_math_fraction_numeratorz  sX     &&sA.	**955//	::y/H/H/STr$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	s    \         P                  ! V^4      p\        P                  ! V4      '       d   V P	                  V4      # V P                  W0P                  V4      R7      pV# )r.  rY   r?  )r(   rD   r=   Zdenominatorr>   rN   r!   #_generate_math_fraction_denominatorZ3SpeechGenerator._generate_math_fraction_denominator  sX     ((a0**;77//<<{1J1J;1WXr$   c               r6   rC   r   r   r    r!   r"   r7     s       
	r$   c                	sx    \         P                  .pVP                  V P                  ! \        3R V/VB 4       V# r   )r   ZMATH_FRACTION_LINErn   ro   r   r  rU   r!   _generate_math_fraction_lineZ,SpeechGenerator._generate_math_fraction_line  s6     --.djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	s   \         P                  ! V4      pV'       d   TpM\        P                  ! V^ 4      pV'       g   . # V'       g9   \         P                  ! V4      '       g   \         P
                  ! V4      '       d   V P                  V4      # V P                  ! V3/ VB .pVP                  V P                  W@P                  V4      R7      4       V# r>  )r   is_math_square_rootr   r(  Zis_math_tokenr4  r5  r{   rn   rK   r	  )r(   rD   r=   Zis_square_rootbaser>   r   r!   _generate_math_root_baseZ(SpeechGenerator._generate_math_root_base  s     %88=D%%c1-DI[66t<<--d33//55&&s3d34dmmD/H/H/NmOPr$   c               r6   rC   r   r   r    r!   r"   r7     s     	2 	2	2 
		2r$   c                	sf    \         P                  ! V^ 4      pV'       g   . # V P                  V4      # )r   )r   r(  r5  )r(   rD   r=   rE  rU   r!   _generate_math_script_baseZ*SpeechGenerator._generate_math_script_base  s/     !!#q)I++D11r$   c               r6   rC   r   r   r    r!   r"   r7          	 		 
		r$   c                	s    \         P                  ! V4      '       d   V P                  V4      # V P                  WP	                  V4      R 7      pV# r3  )r   r4  r5  rK   r	  r  rU   r!   _generate_math_script_scriptZ,SpeechGenerator._generate_math_script_script  sF     **3////44s)B)B3)GHr$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	6   \         P                  ! VR 4      R8X  d   . # \         P                  ! V^4      pV'       g   . # \        P                  .pVP                  V P                  ! \        3RV/VB 4       VP                  V P                  V4      4       V# )tagmsuprD   )	r   get_attributer(  r   MATH_SUBSCRIPTrn   ro   r   rI  )r(   rD   r=   Z	subscriptr>   rN   r!   _generate_math_script_subscriptZ/SpeechGenerator._generate_math_script_subscript  s     !!#u-7I&&sA.	I))*djj9S9D9:d77	BCr$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	f   \         P                  ! VR 4      pVR8X  d   \         P                  ! V^4      pM!VR8X  d   \         P                  ! V^4      pM. # \        P                  .pVP                  V P                  ! \        3RV/VB 4       VP                  V P                  V4      4       V# )rL  rM  ZmsubsuprD   )	r   rN  r(  r   MATH_SUPERSCRIPTrn   ro   r   rI  )r(   rD   r=   rL  Zsuperscriptr>   r   r!   !_generate_math_script_superscriptZ1SpeechGenerator._generate_math_script_superscript  s     $$S%0&=",,S!4KI",,S!4KI++,djj9S9D9:d77DEr$   c               r6   rC   r   r   r    r!   r"   r7     rJ  r$   c                	rK  )rL  moverrD   )	r   rN  r(  r   ZMATH_UNDERSCRIPTrn   ro   r   rI  )r(   rD   r=   Zunderscriptr>   rN   r!   !_generate_math_script_underscriptZ1SpeechGenerator._generate_math_script_underscript  s     !!#u-8I((a0I++,djj9S9D9:d77DEr$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	rQ  )rL  rT  Z
munderoverrD   )	r   rN  r(  r   ZMATH_OVERSCRIPTrn   ro   r   rI  )r(   rD   r=   rL  Z
overscriptr>   r   r!    _generate_math_script_overscriptZ0SpeechGenerator._generate_math_script_overscript  s     $$S%0'>!++C3JL !++C3JI**+djj9S9D9:d77
CDr$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	s<   . pR p\         P                  ! V4       F>  p\         P                  ! VR4      R8X  d   RpK#  V'       g   K-  VP                  V4       K@  	  . p\	        V4       F  w  rx\
        P                  ! V4      '       d   K#  V^,          '       d   \        P                  .p	M\        P                  .p	V	P                  V P                  ! \        3RV/VB 4       V	P                  V P                  V4      4       VP                  V	4       K  	  V# )FrL  mprescriptsTrD   )r   r   rN  rh   r  r   r4  r   ZMATH_PRE_SUPERSCRIPTZMATH_PRE_SUBSCRIPTrn   ro   r   rI  )
r(   rD   r=   Z
prescriptsZfound_separatorr   r>   r  r   rM   r+  r!    _generate_math_script_prescriptsZ0SpeechGenerator._generate_math_script_prescripts  s     
++C0E%%eU3}D"&!!%( 1 ":.IA..v661uu334112IIdjj9S9D9:IId77?@MM" / r$   c               r6   rC   r   r   r    r!   r"   r7   4  r   r$   c                	sP   . p\         P                  ! V^4      pV'       dF   \         P                  ! VR4      R8w  d*   VP                  V4       \         P                  ! V4      pKM  . p\        V4       F  w  rg\        P                  ! V4      '       d   K#  V^,          '       d   \        P                  .pM\        P                  .pVP                  V P                  ! \        3RV/VB 4       VP                  V P                  V4      4       VP                  V4       K  	  V# )r.  rL  rX  rD   )r   r(  rN  rh   Zget_next_siblingr  r   r4  r   rR  rO  rn   ro   r   rI  )	r(   rD   r=   Zpostscriptsr   r>   r  r   rM   r  r!   !_generate_math_script_postscriptsZ1SpeechGenerator._generate_math_script_postscripts3  s     ""3*..ue<Mu%--e4E";/IA..v661uu//0--.IIdjj9S9D9:IId77?@MM" 0 r$   c               r6   rC   r   r   r    r!   r"   r7   N  rH  r$   c           	     	s    . p\         P                  ! V4       F3  pVP                  V P                  W@P	                  V4      R 7      4       K5  	  V# r3  )r   r   rn   rK   r	  )r(   rD   r=   r>   rowrN   r!   _generate_math_table_rowsZ)SpeechGenerator._generate_math_table_rowsM  sG     ))#.CMM$--2K2KC2P-QR / r$   c               r6   rC   r   r   r    r!   r"   r7   \         
	r$   c                	   \         P                  ! 4       P                  R 4      '       d   . # VP                  R^ 4      pV^ 8w  d   . # . p\        P
                  ! V\        P                  4      pV'       d   V\        P                  ! V^ 4      8X  dk   VP                  \        P                  .4       VP                  V P                  ! \        3RV/VB 4       VP                  V P                  ! V3/ VB 4       VP                  \        P                   .4       VP                  V P                  ! \        3RV/VB 4       V# r   r   rD   )r   ry   rz   r]   r   ri   r   r  r(  rn   r   r   ro   r   r{   r   ZCONTENT_DELETION_STARTr(   rD   r=   start_offsetr>   
suggestionr   r!   _generate_start_of_deletionZ+SpeechGenerator._generate_start_of_deletion[  s     '')556NOOIxxq11I++C1Q1QR
#!3!3J!BBMM,DDEFMM$**V===>MM$..s;d;<x6678djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   t         
	r$   c                	   \         P                  ! 4       P                  R 4      '       d   . # VP                  R4      pVe'   \        P
                  ! V4      pV'       d	   WC8w  d   . # \        P                  .pVP                  V P                  ! \        3RV/VB 4       \        P                  ! V\        P                  4      pV'       Ed   V\        P                  ! V\        P                   ! V4      ^,
          4      8X  d   VP                  V P"                  ! V3/ VB 4       VP                  \        P$                  .4       VP                  V P                  ! \        3RV/VB 4       \        P                  ! VR 4      p\        P&                  ! V4      '       dC   VP                  V P"                  ! V3/ VB 4       VP                  V P)                  V4      4       V# )r   r   rD   c                @    \        \        P                  ! V 4      4      # r&   r   r   Zget_detailsrH   r)   r!   rJ   Z;SpeechGenerator._generate_end_of_deletion.<locals>.<lambda>      d;CZCZ[\C]>^r$   )r   ry   rz   r]   r   get_character_countr   r   rn   ro   r   r   ri   r   r  r(  r   r{   CONTENT_SUGGESTION_ENDis_suggestionr   r(   rD   r=   
end_offsetlengthr>   rb  r   r   r!   _generate_end_of_deletionZ)SpeechGenerator._generate_end_of_deletions  sv    '')556NOOIXXk*
!//4F&.	//0djj9S9D9:++C1Q1QR
:#!3!3H44Z@1D"F FMM$..s;d;<MM8::;<MM$**V===> ..s4^_I((33d223?$?@d88CDr$   c               r6   rC   r   r   r    r!   r"   r7     r]  r$   c                	r^  r_  )r   ry   rz   r]   r   ri   r   r  r(  rn   r   r   ro   r   r{   r   ZCONTENT_INSERTION_STARTr`  r   r!   _generate_start_of_insertionZ,SpeechGenerator._generate_start_of_insertion  s     '')556NOOIxxq11I++C1Q1QR
#!3!3J!BBMM,DDEFMM$**V===>MM$..s;d;<x7789djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7     rd  r$   c                	re  )r   r   rD   c                rf  r&   rg  rH   r)   r!   rJ   Z<SpeechGenerator._generate_end_of_insertion.<locals>.<lambda>  rh  r$   )r   ry   rz   r]   r   ri  r   r  rn   ro   r   r   ri   r   r  r(  r   r{   rj  rk  r   rl  r   r!   _generate_end_of_insertionZ*SpeechGenerator._generate_end_of_insertion  sv    '')556NOOIXXk*
!//4F&.	001djj9S9D9:++C1Q1QR
:#!3!3H44Z@1D"F FMM$..s;d;<MM8::;<MM$**V===> ..s4^_I((33d223?$?@d88CDr$   c               r6   rC   r   r   r    r!   r"   r7     r]  r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # VP                  R^ 4      pV^ 8w  d   . # . p\        P
                  ! V4      pV'       d\   VP                  V4       VP                  V P                  ! \        3RV/VB 4       VP                  V P                  ! V3/ VB 4       VP                  \        P                  4       VP                  V P                  ! \        3RV/VB 4       V# r_  )r   ry   rz   r]   r   Zget_role_descriptionrh   rn   ro   r   r{   r   ZCONTENT_MARK_START)r(   rD   r=   ra  r>   Zrole_descriptionr   r!   _generate_start_of_markZ'SpeechGenerator._generate_start_of_mark  s     '')556NOOIxxq11I#88=MM*+MM$**V===>MM$..s;d;<h112djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	sF   \         P                  ! 4       P                  R 4      '       d   . # VP                  R4      pVe'   \        P
                  ! V4      pV'       d	   WC8w  d   . # \        P                  .pVP                  V P                  ! \        3RV/VB 4       V# )r   r   rD   )r   ry   rz   r]   r   ri  r   r  rn   ro   r   )r(   rD   r=   rm  rn  r>   r   r!   _generate_end_of_markZ%SpeechGenerator._generate_end_of_mark  s     '')556NOOIXXk*
!//4F&.	++,djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	,   \         P                  ! 4       P                  R 4      '       d   . # \        P                  ! V4      pVP                  RR4      p\        P                  ! V4      .pVP                  V P                  ! \        3RV/VB 4       V# )r   ZopenZ(rD   r   ry   rz   r   r6  r]   r
   r<  rn   ro   rp   )r(   rD   r=   r7  Zfence_startr>   r   r!   _generate_start_of_math_fencedZ.SpeechGenerator._generate_start_of_math_fenced  s{     '')556NOOI,,S1ii,00=>djj:c:T:;r$   c               r6   rC   r   r   r    r!   r"   r7     rt  r$   c                	ru  )r   ZcloseZ)rD   rv  )r(   rD   r=   r7  Z	fence_endr>   r   r!   _generate_end_of_math_fencedZ,SpeechGenerator._generate_end_of_math_fenced  s{     '')556NOOI,,S1IIgs+	00;<djj:c:T:;r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	s,   \         P                  ! 4       P                  R 4      '       d   . # \        P                  ! V4      '       d   \
        P                  .pM\
        P                  .pVP                  V P                  ! \        3RV/VB 4       V# r   )r   ry   rz   r   Zis_math_fraction_without_barr   ZMATH_FRACTION_WITHOUT_BAR_STARTZMATH_FRACTION_STARTrn   ro   r   r  rU   r!    _generate_start_of_math_fractionZ0SpeechGenerator._generate_start_of_math_fraction  su     '')556NOOI33C88>>?F223Fdjj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   %  r   r$   c                	    \         P                  ! 4       P                  R 4      '       d   . # \        P                  .pVP                  V P                  ! \        3RV/VB 4       V# r   )r   ry   rz   r   ZMATH_FRACTION_ENDrn   ro   r   r  rU   r!   _generate_end_of_math_fractionZ.SpeechGenerator._generate_end_of_math_fraction$  sV     '')556NOOI,,-djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   2  s       
	r$   c                	sr   \         P                  ! 4       P                  R 4      '       d   . # . p\        P                  ! V4      '       d   \
        P                  .pEM)\        P                  ! V^4      p\        P                  ! V4      pVR8X  d   \
        P                  .pMVR8X  d   \
        P                  .pMV'       d%   V.pVP                  \
        P                  .4       M\        P                  ! V4      '       d3   V P                  V4      pVP                  \
        P                  .4       MPVP                  V P!                  W@P#                  V4      R7      4       VP                  \
        P                  .4       V'       d)   VP                  V P$                  ! \&        3RV/VB 4       V# )r   Z2Z3rY   rD   )r   ry   rz   r   rD  r   ZMATH_SQUARE_ROOT_OFr   r(  r   r#  ZMATH_CUBE_ROOT_OFrn   ZMATH_ROOT_OFr4  r5  rK   r	  ro   r   )r(   rD   r=   r>   r   r   r   r!   _generate_start_of_math_rootZ,SpeechGenerator._generate_start_of_math_root1  sH    '')556NOOI**3//223F&&sA.E((/F}"6673"445 x4456007755e<x4456dmmE8Q8QRW8XmYZx4456MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7   T  r   r$   c                	rz  r   )r   ry   rz   r   ZMATH_ROOT_ENDrn   ro   r   r  rU   r!   _generate_end_of_math_rootZ*SpeechGenerator._generate_end_of_math_rootS  sV     '')556NOOI(()djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   a  rC  r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # \        P                  ! V4      '       g   . # \
        P                  ! V4      p\
        P                  ! V4      pV P                  V4      pV^ 8  d   \        P                  ! W44      .pM\        P                  ! W44      .pVP                  V P                  ! \        3RV/VB 4       V# r   )r   ry   rz   r   Zsupports_tabler   get_row_countget_column_countr  r   Zmath_nested_table_sizeZmath_table_sizern   ro   r   )r(   rD   r=   rowscolumnsnesting_levelr>   r   r!   _generate_start_of_math_tableZ-SpeechGenerator._generate_start_of_math_table`  s     '')556NOOI&&s++I$$S)**3///4155dDEF..t=>Fdjj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   w  r  r$   c                	s$   \         P                  ! 4       P                  R 4      '       d   . # V P                  V4      pV^ 8  d   \        P
                  .pM\        P                  .pVP                  V P                  ! \        3RV/VB 4       V# r   )
r   ry   rz   r  r   ZMATH_NESTED_TABLE_ENDZMATH_TABLE_ENDrn   ro   r   )r(   rD   r=   r  r>   rN   r!   _generate_end_of_math_tableZ+SpeechGenerator._generate_end_of_math_tablev  s|     '')556NOOI//41445F--.Fdjj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   _generate_state_currentrn   ro   STATEr   r   r!   r  Z'SpeechGenerator._generate_state_current  `     '')556NOOI0==MM$**U<<t<=r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   _generate_state_checkedrn   ro   r  r   r   r!   r  Z'SpeechGenerator._generate_state_checked  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   "_generate_state_checked_for_switchrn   ro   r  r   r   r!   r  Z2SpeechGenerator._generate_state_checked_for_switch  s`     '')556NOOI;CH4HMM$**U<<t<=r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   $_generate_state_checked_if_checkablern   ro   r  r   r   r!   r  Z4SpeechGenerator._generate_state_checked_if_checkable  s`     '')556NOOI=cJTJMM$**U<<t<=r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   _generate_state_expandedrn   ro   r  r   r   r!   r  Z(SpeechGenerator._generate_state_expanded  s`     '')556NOOI1#>>MM$**U<<t<=r$   c               r6   rC   r   r   r    r!   r"   r7     s"     I II 
	Ir$   c                	s   \         P                  ! 4       P                  R 4      '       g8   \         P                  ! 4       P                  R4      \        P                  8X  d   . # \
        P                  ! V4      '       g   \
        P                  ! V4      '       g   . # \        P                  V P                  ! \        3RV/VB .# )r   r   rD   )r   ry   rz   r   r   r   r   Z	has_popupr   Z	HAS_POPUPro   r   rv   rw   r!   _generate_state_has_popupZ)SpeechGenerator._generate_state_has_popup  s     '')556NOO**,889OP001Is##;+@+@+E+EI""DJJv$G3$G$$GHHr$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   rW   rn   ro   r   r   r   r!   rW   Z'SpeechGenerator._generate_state_invalid  s`     '')556NOOI0==MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   _generate_state_multiselectablern   ro   r  r   r   r!   r  Z/SpeechGenerator._generate_state_multiselectable  s`     '')556NOOI8EEMM$**U<<t<=r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	r   r   )r   ry   rz   r8   _generate_state_pressedrn   ro   r  r   r   r!   r  Z'SpeechGenerator._generate_state_pressed  r  r$   c               r6   rC   r   r   r    r!   r"   r7   
  r   r$   c                	r   r   )r8   _generate_state_read_onlyrn   ro   r   r   r   r!   r  Z)SpeechGenerator._generate_state_read_only	  s@     23?$?MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                	s  < \         P                  ! 4       P                  R 4      '       d   . # VP                  R4      '       d   . # \        SV `  ! V3/ VB pV'       d)   VP                  V P                  ! \        3RV/VB 4       V# )r   ZalreadyFocusedrD   )	r   ry   rz   r]   r8   _generate_state_requiredrn   ro   r   r   r   r!   r  Z(SpeechGenerator._generate_state_required  su     '')556NOOI88$%%I1#>>MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7   &  r   r$   c                	r   r   )r   ry   rz   r8   )_generate_state_selected_for_radio_buttonrn   ro   r  r   r   r!   r  Z9SpeechGenerator._generate_state_selected_for_radio_button%  s`     '')556NOOIB3O$OMM$**U<<t<=r$   c               r6   rC   r   r   r    r!   r"   r7   4  r   r$   c                	r   r   )r   ry   rz   r8   _generate_state_sensitivern   ro   r  r   r   r!   r  Z)SpeechGenerator._generate_state_sensitive3  s`     '')556NOOI23?$?MM$**U<<t<=r$   c               r6   rC   r   r   r    r!   r"   r7   B  s     - -- 
	-r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # VP                  R4      '       d   . # V'       g   . # \        P
                  ! V4      '       g   . # \        P                  ! V4      '       d   . # \        P                  ! WP                  R4      4      '       d   . # \        P                  ! WP                  R4      4      '       d<   \        P                  .pVP                  V P                  ! \        3RV/VB 4       V# \        P                  ! V4      p\         P"                  ! V4      pV'       dx   \$        P                  ! 4       P'                  4       '       d   . # \         P(                  ! V4      '       d   . # V P*                  P,                  P/                  V4      '       g   . # MJ\        P0                  ! V4      '       d-   WP*                  P,                  P3                  V4      9   d   . # M. # \        P4                  .pVP                  V P                  ! \        3RV/VB 4       V# )r   r   rZ   rD   )r   ry   rz   r]   r   Zis_selectabler   Zis_textZis_list_itemr   ZSTATE_UNSELECTED_LIST_ITEMrn   ro   r  r   r   r   	get_tabler	   Zlast_event_was_left_or_rightis_layout_tablerd   re   Zis_gui_cellr   r   ZSTATE_UNSELECTED_TABLE_CELL)r(   rD   r=   r>   r   tabler   r!   _generate_state_unselectedZ*SpeechGenerator._generate_state_unselectedA  s    '')556NOOI88O$$II((--I""3''IsHHV$455I##C&)9::'BBCFMM$**U<<t<=M$$S)!!#&"..0MMOO	&&u--	<<))55c::	 ;((00ll,,>>vFF	 G I#??@djj8C8489r$   c               r6   rC   r   r   r    r!   r"   r7   t  rH  r$   c                	r   r   )r8   _generate_nesting_levelrn   ro   r   r   r   r!   r  Z'SpeechGenerator._generate_nesting_levels  s@     0==MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7     rt  r$   c                	s   < \         P                  ! 4       P                  R 4      '       d   . # RVR&   \        SV `  ! V3/ VB pV'       d)   VP                  V P                  ! \        3RV/VB 4       V# )r   TnewOnlyrD   )r   ry   rz   r8   _generate_tree_item_levelrn   ro   r   r   r   r!   r  Z)SpeechGenerator._generate_tree_item_level  si     '')556NOOIY23?$?MM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                	sX   VP                  R 4      '       d   V P                  ! V3/ VB '       g   . # . pV P                  4       ^ ,          pWA8w  dY   V P                  V4      ^ ,          p\        P
                  V,          .pVP                  V P                  ! \        3RV/VB 4       V# )isProgressBarUpdaterD   )	r]   #_should_present_progress_bar_updateZ$_get_most_recent_progress_bar_updateZ"_get_progress_bar_number_and_countr   ZPROGRESS_BAR_NUMBERrn   ro   r   )r(   rD   r=   r>   ZaccZnumberr   r!   _generate_progress_bar_indexZ,SpeechGenerator._generate_progress_bar_index  s     xx-..::3G$GGI779!<:<<SA!DF22f=>FMM$**V===>r$   c               r6   rC   r   r   r    r!   r"   r7     rJ  r$   c                	s>   VP                  R 4      '       d   V P                  ! V3/ VB '       g   R.# . p\        P                  ! V4      pVeN   VP	                  \
        P                  ! V4      4       VP                  V P                  ! \        3RV/VB 4       V# )r  rR   rD   )
r]   r  r   get_value_as_percentrh   r   
percentagern   ro   r   )r(   rD   r=   r>   ZpercentrN   r!   _generate_progress_bar_valueZ,SpeechGenerator._generate_progress_bar_value  s     88)**;;CH4HH4K..s3MM(--g67MM$**V===>r$   c                	s   < \         P                  ! 4       P                  R 4      pVf   \        SV `  4       p\        V4      # )ZprogressBarSpeechInterval)r   ry   rz   r8   !_get_progress_bar_update_intervalr1  )r(   Zintervalr9   r;  r!   r  Z1SpeechGenerator._get_progress_bar_update_interval  s:    #//1==>YZw@BH8}r$   c                	s~   < \         P                  ! 4       P                  R 4      '       g   R# \        SV `  ! V3/ VB # )ZspeakProgressBarUpdatesF)r   ry   rz   r8   r  r`   ra   r!   r  Z3SpeechGenerator._should_present_progress_bar_update  s6    ++-99:STTw:3G$GGr$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                	s  < \         SV `  ! V3/ VB pV'       d   V^ ,          '       g   \        P                  ! 4       P	                  R4      '       d~   VP                  RR4      '       gf   VP                  R4      R8w  dP   VP                  \        P                  4       V'       d)   VP                  V P                  ! \        3RV/VB 4       V# )r   speakBlankLines
readingRowFr   r  rD   )r8   _generate_real_table_cellr   ry   rz   r]   rh   r   BLANKrn   ro   rp   r   r   r!   r  Z)SpeechGenerator._generate_real_table_cell  s     23?$?6!99++-99:KLL88L%00xx%3MM(..)djjBcBTBCr$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                	s0  < \         P                  ! 4       P                  R 4      '       g   . # \        P                  ! 4       P	                  4       '       d   . # V P
                  P                  P                  WP                  R4      4      '       g*   VP                  RR4      P                  R4      '       g   . # V P                  V4      '       * VR&   \        SV `0  ! V3/ VB pV'       d)   VP                  V P                  ! \        3RV/VB 4       V# )speakCellHeadersr   r   rR   r   r  rD   )r   ry   rz   r   r   rd   re   cell_column_changedr]   r   Z_get_is_nameless_toggler8   "_generate_table_cell_column_headerrn   ro   rp   r   r   r!   r  Z2SpeechGenerator._generate_table_cell_column_header  s      ++-99:LMMI$$&1133I||%%99#xx
?STT88L"-66zBBI"::3??Y;CH4HMM$**W>#>>?r$   c               r6   rC   r   r   r    r!   r"   r7            
	r$   c                	s:  < VP                  R 4      '       d   . # \        P                  ! 4       P                  R4      '       g   . # \        P                  ! 4       P                  4       '       d   . # V P                  P                  P                  WP                  R4      4      '       g*   VP                  RR4      P                  R4      '       g   . # RVR&   \        SV `,  ! V3/ VB pV'       d)   VP                  V P                  ! \        3RV/VB 4       V# )	r  r  r   r   rR   r   Tr  rD   )r]   r   ry   rz   r   r   rd   re   cell_row_changedr   r8   _generate_table_cell_row_headerrn   ro   rp   r   r   r!   r  Z/SpeechGenerator._generate_table_cell_row_header  s     88L!!I++-99:LMMI$$&1133I||%%66sHHZ<PQQ88L"-66zBBIY8EEMM$**W>#>>?r$   c               r6   rC   r   r   r    r!   r"   r7   	  r-  r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # VP                  R4      '       d   . # \        P
                  ! V4      '       d   . # V P                  P                  P                  V4      '       d   . # \         P                  ! 4       P                  R4      \        P                  8X  d   V P                  ! V3/ VB # V P                  P                  P                  V4      '       dA   VP                  R\        P                  ! V4      4      pV P                  4       w  rEW59   d   . # \        P                   ! V4      p\        P"                  ! V4      pV^ 8  g   V^ 8  d   \$        P&                  ! V4      '       g   . # \(        P*                  ! Wg4      .pVP-                  V P.                  ! \0        3RV/VB 4       V# )r   r   r   rZ   rD   )r   ry   rz   r]   r   r  rd   re   rj   r   r   rb   r   r   r   r   r~  r  r   r  r   Z
table_sizern   ro   r   )	r(   rD   r=   rZ   r   r   r  Zcolsr>   r  r!   _generate_table_sizeZ$SpeechGenerator._generate_table_size	  su    '')556NOOI88II""3''I<<!!66s;;I'')556LM,,-11#>>><<!!88==88FH$5$5c$:;D!%!M!M!OH	$$S)'',1Hq+*M*Mc*R*RI%%d12djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   +	  r   r$   c                	r   r   )r8   _generate_table_sort_orderrn   ro   r   r   r   r!   r  Z*SpeechGenerator._generate_table_sort_order*	  r   r$   c               r6   rC   r   r   r    r!   r"   r7   6	  r9  r$   c                	s   VP                  R 4      '       d   . # \        P                  ! 4       P                  R4      '       g   . # V P                  P
                  P                  V4      '       g   . # \        P                  ! VRR7      ^,          pVR8X  d   . # \        P                  V^,           ,          .pVP                  V P                  ! \        3RV/VB 4       V# r  ZspeakCellCoordinatesTZ	find_cellrD   r   )r]   r   ry   rz   rd   re   r  r   get_cell_coordinatesr   ZTABLE_COLUMNrn   ro   r   )r(   rD   r=   colr>   rN   r!   !_generate_table_cell_column_indexZ1SpeechGenerator._generate_table_cell_column_index5	  s     88L!!I++-99:PQQI||%%99#>>I**3$?B"9I''3734djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   M	  r9  r$   c                	s   V P                   P                  P                  V4      '       g   . # VP                  R 4      '       d   . # \        P
                  ! 4       P                  R4      '       g   . # \        P                  ! VRR7      ^ ,          pVR8X  d   . # \        P                  V^,           ,          .pVP                  V P                  ! \        3RV/VB 4       V# r  )rd   re   r  r]   r   ry   rz   r   r  r   	TABLE_ROWrn   ro   r   )r(   rD   r=   r[  r>   rN   r!   _generate_table_cell_row_indexZ.SpeechGenerator._generate_table_cell_row_indexL	  s     ||%%66s;;I88L!!I++-99:PQQI**3$?B"9I$$a01djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   d	  r   r$   c                	sZ   \         P                  ! 4       P                  R 4      '       d   . # \        P                  ! VRR7      w  r4VR8X  g   VR8X  d   . # \        P
                  ! V4      pVf   . # . p\        P                  ! V4      p\        P                  ! V4      pVP                  \        P                  RV^,           RV/,          4       VP                  \        P                  RV^,           RV/,          4       VP                  V P                  ! \        3RV/VB 4       V# )r   Tr  r   r   rD   r   )r   ry   rz   r   r  r  r~  r  rh   r   ZTABLE_COLUMN_DETAILEDZTABLE_ROW_DETAILEDrn   ro   r   )	r(   rD   r=   r[  r  r  r>   r  r  r  r!   _generate_table_cell_positionZ-SpeechGenerator._generate_table_cell_positionc	  s     '')556NOOI//tD"9r	I!!#&=I$$U+**51h4437WW^7__`h11Wa'TX4YYZdjj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   	  r  r$   c                	sn  < \         SV `  ! V3/ VB pV'       g   . # VP                  V P                  ! \        3R V/VB 4       V^ ,          R9   d   VP                  R^4      ^8  d   R.# \        P                  ! 4       P                  R4      '       do   \        P                  ! 4       P                  4       '       gF   \        P                  ! V4      '       g*   VP                  R4      R8w  d   \        P                  V^ &   \        P                  ! 4       pVP!                  W^ ,          4      V^ &   V# )rD   rR   r   r  r   r  )
rR   )r8   _generate_text_substringrn   ro   rp   r]   r   ry   rz   r   r   r   is_table_cell_or_headerr   r  r   r   r   r   r!   r  Z(SpeechGenerator._generate_text_substring	  s     1#>>Idjj:c:T:;!9
"xx#a't++-99:KLL$002==??"::3??88L)Z7$NNq	.::<33CCq	r$   c               r6   rC   r   r   r    r!   r"   r7   	  s     0 00 
	0r$   c           	     	s   VP                  R 4      '       d   \        P                  ! V4      '       d   . # V P                  ! V3/ VB pV'       d   V# \        P
                  ! V4      R,          w  rEVR8X  d   VP                  R^4      ^8  d   R.# \        P                  ! 4       P                  R4      '       d   \        P                  ! 4       P                  4       '       gk   \        P                  ! V4      '       gO   VP                  R4      R8w  d9   \        P                  .pVP                  V P                  ! RRVR	V/VB 4       V# V\!        V4      ,           pV P"                  P$                  P'                  WV4       F  w  rxrpV	P)                  R
R4      p	V	'       g   K#  WuVR&   VR&   RV9   dP   RVP                  R4       RV	 R2p\*        P,                  ! \*        P.                  VR4       VP1                  R4       V P                  ! RRV	R	V/VB p\2        P                  ! 4       pVP5                  WV4      .pVP                  V4       VP                  V4       K  	  V# )r   :r   r   Nr  r   rR   r  r   r  r   rD   u   ￼r~   r   zINFO: Found existing string 'z
'; using 'r   Tr   )r]   r   Zis_editabler  r   get_line_at_offsetr   ry   rz   r   r   r  r   r  rn   ro   rk   rd   re   Zsplit_substring_by_languageZreplacer   r   r<   r  r   r   )r(   rD   r=   r>   r   ra  rm  Zstart_endr   r~   r   r   ro   r   rM   s   &&,             r!   _generate_text_lineZ#SpeechGenerator._generate_text_line	  s    88O$$)@)@)E)EI..s;d;M#66s;C@4<xx#a't++-99:KLL$002==??"::3??88L)Z7"..)djjFF#FFG!CI-
&&BB3V`a 3E7^^Hb1F08-Dd9o45dhhx6H5ITZS[[\]##E$4$4c4@"JJ>f>#>>E2>>@G$<<S%PQBIIe MM"' b* r$   c               r6   rC   r   r   r    r!   r"   r7   	  r  r$   c                	s:  < V P                   ! V3/ VB pV'       d   V^ ,          '       d   V# \        SV `  ! V3/ VB pV'       d   V^ ,          '       g   . # V^ ,          P                  4       p\	        V4      ^8X  dE   \
        P                  ! V4      '       d)   \        P                  ! V4      pV'       d   WT8w  d   WS^ &   \        P                  ! 4       pVP                  W^ ,          4      V^ &   VP                  V P                  ! \        3RV/VB 4       V# r   )r  r8   _generate_text_contentr   rk   r   Zis_math_relatedr
   r<  r   ry   r   rn   ro   rp   )r(   rD   r=   r>   r   Zcharnamer   r9   r   r!   r  Z&SpeechGenerator._generate_text_content	  s     ..s;d;fQiiM/<t<6!99I"v;! ; ;C @ @"55f=HH.$q	.::<33CCq	djj:c:T:;r$   c               r6   rC   r   r   r    r!   r"   r7   	  r   r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # \        P                  ! V4      '       g   . # \
        P                  .pVP                  V P                  ! \        3RV/VB 4       V# r   )
r   ry   rz   r   Zis_all_text_selectedr   ZTEXT_SELECTEDrn   ro   r   r  rU   r!   _generate_text_selectionZ(SpeechGenerator._generate_text_selection	  sl     '')556NOOI**3//I(()djj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   	  r   r$   c                	s   \         P                  ! 4       P                  R 4      '       g   . # \        P                  ! 4       P	                  4       '       d   . # VP                  RR4      pRpVP                  R4      '       d   Rp\        P                  ! WP                  R4      4      ^ ,          p\        P                  ! 4       P                  WT4      pV'       g   . # V.pVP                  V P                  ! \        3RV/VB 4       V# )ZenableSpeechIndentationr   	unfocusedNr   Fr   rD   )r   ry   rz   r	   Zlast_event_was_word_navigationr]   r   r   r  r   Zget_indentation_descriptionrn   ro   r   )r(   rD   r=   format_typeZonly_if_changedZlineZdescriptionr>   r   r!   _generate_text_indentationZ*SpeechGenerator._generate_text_indentation	  s      ++-99:STTI**,KKMMIhh|[9
++#O((hh}.EFqI2>>@\\#I(Mdjj9S9D9:r$   c               r6   rC   r   r   r    r!   r"   r7   
  rH  r$   c                	r   r   )r8   _generate_valuern   ro   rp   r   r   r!   r  ZSpeechGenerator._generate_value
  s@     (55MM$**W>#>>?r$   c               r6   rC   r   r   r    r!   r"   r7   
  s       
	r$   c                	s   \         P                  ! 4       P                  R 4      '       d   . # \        P                  ! V4      pVeB   \
        P                  ! V4      .pVP                  V P                  ! \        3RV/VB 4       V# . # r   )
r   ry   rz   r   r  r   r  rn   ro   r   )r(   rD   r=   Zpercent_valuer>   rN   r!   _generate_value_as_percentageZ-SpeechGenerator._generate_value_as_percentage
  sv     '')556NOOI44S9$))-89FMM$**V===>M	r$   c               r6   rC   r   r   r    r!   r"   r7   0
  s       
	r$   c                s$   VP                  R4      RJ d   . # VP                  RR4      pVR9   d   V P                  ! V3/ VB # VR8X  d,   V P                  ! V3/ VB V P                  ! V3/ VB ,           # VR8X  d   V P                  ! V3/ VB # . # )zEProvides the default/role-agnostic information to present before obj.includeContextFr   r  r  r  r  )r]   r   r  r  r  )r(   rD   r=   r  rU   r!   _generate_default_prefixZ(SpeechGenerator._generate_default_prefix0
  s     88$%.Ihh|[911--c:T::+%//<t<,,S9D9: :,,++C8488	r$   c               r6   rC   r   r   r    r!   r"   r7   D
         
	r$   c                s   V P                   ! V3/ VB pVP                  RR4      pVR9   d   V# W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z5Provides a default/role-agnostic presentation of obj.r   r  r  )r  r]   rg   rb   r  r{   r  _generate_default_suffixr(   rD   r=   r>   r  rN   r!   _generate_default_presentationZ.SpeechGenerator._generate_default_presentationD
  s     ..s;d;hh|[911M::3G$GG00===00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   X
  s     * ** 
	*r$   c                sX   VP                  R4      RJ d   . # WP                  R4      8X  d   . # VP                  RR4      pVR9   d   . # . pVP                  R4      '       dX   W@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pVR8X  d   W@P                  ! V3/ VB ,          pV# )	zDProvides the default/role-agnostic information to present after obj.r  Fr   r   r  r   r  r   )r]   r   r   rG   r   r{   r  r   r   r   r   r  r(   rD   r=   r  r>   rN   r!   r  Z(SpeechGenerator._generate_default_suffixX
  s    88$%.I((:&&I hh|[911I
++--c:T::FjU;;..s;d;;..s;d;;*VBZ77**37$77F11#>>>*VBZ77**37$77F,,S9D99,,S9D9977DtDD*VBZ77**37$77F00===+%--c:T::Fr$   c               r6   rC   r   r   r    r!   r"   r7   
  "     @ @@ 
	@r$   c                (    V P                   ! V3/ VB # )z0Generates speech for the accelerator-label role.r  rv   rw   r!   _generate_accelerator_labelZ+SpeechGenerator._generate_accelerator_label
       223?$??r$   c               r6   rC   r   r   r    r!   r"   r7   
  rt  r$   c                    V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z$Generates speech for the alert role.)r  rb   rg   r{    _generate_accessible_static_textr  rU   r!   _generate_alertZSpeechGenerator._generate_alert
  s~     ..s;d;00===::3G$GG&&s3d3377DtDDr$   c               r6   rC   r   r   r    r!   r"   r7   
  r  r$   c                r  )z(Generates speech for the animation role.r  rv   rw   r!   _generate_animationZ#SpeechGenerator._generate_animation
  r  r$   c               r6   rC   r   r   r    r!   r"   r7   
  r  r$   c                r  )z*Generates speech for the application role.r  rv   rw   r!   _generate_applicationZ%SpeechGenerator._generate_application
  r  r$   c               r6   rC   r   r   r    r!   r"   r7   
  r  r$   c                r  )z$Generates speech for the arrow role.r  rv   rw   r!   _generate_arrowZSpeechGenerator._generate_arrow
  r  r$   c               r6   rC   r   r   r    r!   r"   r7   
  r  r$   c                \   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pVP                  RR4      pVR9   d   V# W0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z&Generates speech for the article role.r   r  r  r  rg   rb   r]   r{   r  r  r  rN   r!   _generate_articleZ!SpeechGenerator._generate_article
  s     ..s;d;::3G$GG00===hh|[911M&&s3d33**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   
  s"     C CC 
	Cr$   c                sT   . pW0P                   ! V3/ VB ,          pV'       g   W0P                  ! V3/ VB ,          pV'       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV P
                  ! V3/ VB V,           # )zDGenerates speech for the article role when the article is in a feed.)rg   r  rb   r  r  r  r  rU   r!   _generate_article_in_feedZ)SpeechGenerator._generate_article_in_feed
  s     ::3G$GG..s;d;;F44SADAAF11#>>>//<t<<,,S9D9FBBr$   c               r6   rC   r   r   r    r!   r"   r7   
  r  r$   c                r  )z$Generates speech for the audio role.r  rv   rw   r!   _generate_audioZSpeechGenerator._generate_audio
  r  r$   c               r6   rC   r   r   r    r!   r"   r7   
  r  r$   c                r  )z+Generates speech for the autocomplete role.r  rv   rw   r!   _generate_autocompleteZ&SpeechGenerator._generate_autocomplete
  r  r$   c               r6   rC   r   r   r    r!   r"   r7   
  r9  r$   c                s   . pVP                  R4      V8w  de   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pVP                  RR4      pVR9   d   V P                  ! V3/ VB ;'       g    T# W0P                  ! V3/ VB ,          pV# )z*Generates speech for the block-quote role.r   r   r  r  )r]   r  rb   r{   r  r  r  r  r  rN   r!   _generate_block_quoteZ%SpeechGenerator._generate_block_quote
  s     88J3&33C@4@@F44SADAAF**37$77F223?$??F**37$77hh|[911))#66@@&@//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z'Generates speech for the calendar role.r  rv   rw   r!   _generate_calendarZ"SpeechGenerator._generate_calendar  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                
   V P                   ! V3/ VB pVP                  RR4      pVP                  R4      '       d3   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pVP                  R4      '       dM   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pMW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z%Generates speech for the canvas role.r   r  r   r  r]   r   r  r{   rg   r   rb   r   r   r  r  r  r  rN   r!   _generate_canvasZ SpeechGenerator._generate_canvas  w    ..s;d;hh|[9
++55cBTBBF**37$77F::3G$GG>>sKdK ; ;--c:T:	<&&s3d33
++88EEEF**37$77F33C@4@@F55cBTBBF11#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   )  s"     C CC 
	Cr$   c                sD   . pV P                   ! V3/ VB '       d   W0P                  ! V3/ VB ,          pV'       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV P
                  ! V3/ VB V,           # )z&Generates speech for the caption role.)r  r  rg   rb   r  r  r  rU   r!   _generate_captionZ!SpeechGenerator._generate_caption)  s     ((555..s;d;;F>>sKdKKF00===//<t<<,,S9D9FBBr$   c               r6   rC   r   r   r    r!   r"   r7   9  r  r$   c                r  )z$Generates speech for the chart role.r  rv   rw   r!   _generate_chartZSpeechGenerator._generate_chart9  r  r$   c               r6   rC   r   r   r    r!   r"   r7   B  r   r$   c                s   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z(Generates speech for the check-box role.r   r  r  )r]   r  r  rg   r  rb   r  r{   rW   r  r  r  r  rN   r!   _generate_check_boxZ#SpeechGenerator._generate_check_boxB  sU    hh|[911//<t<<..s;d;::3G$GG00===00===..s;d;;//<t<<&&s3d33..s;d;;00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   [  r   r$   c                <   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pVP                  R4      '       d3   W@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z.Generates speech for the check-menu-item role.r   r  r   r  )r]   r  r  r   r  r{   rg   rb   r  r  r  r  r  r  rN   r!   _generate_check_menu_itemZ)SpeechGenerator._generate_check_menu_item[  s    hh|[911//<t<<..s;d;
++..s;d;;F**37$77F::3G$GG00===..s;d;;00===&&s3d33223?$??&&s3d3355cBTBB&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   x  r]  r$   c                s   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pVP                  R4      '       d   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z,Generates speech for the color-chooser role.r   r  r   r  )	r]   r  r  rg   rb   r   r  r  r  r  rN   r!   _generate_color_chooserZ'SpeechGenerator._generate_color_chooserx  s     hh|[911''4t44..s;d;::3G$GG00===&&s3d33
++88EEEF55cBTBB//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     s"     C CC 
	Cr$   c                sp   . pVP                  RR4      pVR8w  d3   V P                  ! V3/ VB '       d   W0P                  ! V3/ VB ,          pV'       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV P                  ! V3/ VB V,           # )z,Generates speech for the column-header role.r   r  r  )r]   r  r  rg   rb   r  r{   r  r  r  r  r  rN   r!   _generate_column_headerZ'SpeechGenerator._generate_column_header  s,    hh|[9)#(E(Ec(RT(R(R..s;d;;F>>sKdKKF00===11#>>>&&s3d3355cBTBB&&s3d3388EEE//<t<<,,S9D9FBBr$   c               r6   rC   r   r   r    r!   r"   r7     s"     C CC 
	Cr$   c                s   . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pVP                  RR4      pVR9   d   W0P                  ! V3/ VB ,          pV# W0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV P                  ! V3/ VB V,           # )z(Generates speech for the combo-box role.r   r  r  )rg   rb   r]   r  r  r{   r  r  rW   r  r  r  r  rN   r!   _generate_combo_boxZ#SpeechGenerator._generate_combo_box  sb    ::3G$GG00===hh|[91133C@4@@FM&&s3d33&&s3d3311#>>>&&s3d33//<t<<&&s3d33..s;d;;223?$??//<t<<,,S9D9FBBr$   c               r6   rC   r   r   r    r!   r"   r7     s       
	r$   c                r  )z&Generates speech for the comment role.r   r  r  r  r  rN   r!   _generate_commentZ!SpeechGenerator._generate_comment  s     ..s;d;::3G$GG00===hh|[911M&&s3d33**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                   VP                  RR4      pVR9   d/   V P                  ! V3/ VB ;'       g    V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z/Generates speech for the content-deletion role.r   r  r  )r]   r  rc  r  r{   r  ro  r  r  rN   r!   _generate_content_deletionZ*SpeechGenerator._generate_content_deletion  s    hh|[911))#66 A A33C@4@A ..s;d;223?$??&&s3d33--c:T::&&s3d3300===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                r  )z0Generates speech for the content-insertion role.r   r  r  )r]   r  rp  r  r{   r  rq  r  r  rN   r!   _generate_content_insertionZ+SpeechGenerator._generate_content_insertion  s    hh|[911))#66 B B44SADAB ..s;d;33C@4@@&&s3d33--c:T::&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z*Generates speech for the date-editor role.r  rv   rw   r!   _generate_date_editorZ%SpeechGenerator._generate_date_editor  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                    V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z)Generates speech for the definition role.)r  rb   r  r  r  rU   r!   _generate_definitionZ$SpeechGenerator._generate_definition  sf     ..s;d;00===--c:T:://<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                s   VP                  RR4      pVR9   d   V P                  ! V3/ VB pV'       d   V# V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pY@P                  ! V3/ VB ;'       g    V P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z/Generates speech for the description-list role.r   r  r  )r]   r  r  rg   r   rb   r  r  r  rN   r!   _generate_description_listZ*SpeechGenerator._generate_description_list  s     hh|[911++C848F..s;d;::3G$GG44SADA ; ;--c:T:	<..s;d;;//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   '         
	r$   c                s   VP                  RR4      pVR9   d   . # V P                  ! V3/ VB pV P                  ! V3/ VB '       d   W@P                  ! V3/ VB ,          pM4Y@P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          p\
        P                  ! 4       P                  R4      '       d   VP                  R^ 4      ^,           VP                  R^4      8  d   V# W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z/Generates speech for the description-term role.r   r  r   r   r   r  )r]   r  r  r  rg   r   ry   rz   rb   r{   r   r  r  r  rN   r!   _generate_description_termZ*SpeechGenerator._generate_description_term'  sv    hh|[911I..s;d;((555..s;d;;F??LtL 6 6((557F '')556HIIxx#a'$((7A*>>44SADAAF**37$77F55cBTBBF**37$77F55cBTBBF//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   G  r   r$   c                sF   VP                  RR4      pVR9   d   . # V P                  ! V3/ VB pY@P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          p\        P
                  ! 4       P                  R4      '       d|   VP                  R^ 4      ^,           VP                  R^4      8  d   V# W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z0Generates speech for the description-value role.r   r  r   r   r   r  )r]   r  rg   r  r   ry   rz   rb   r{   r  r  r  rN   r!   _generate_description_valueZ+SpeechGenerator._generate_description_valueG  s    hh|[911I..s;d;;;CH4H 2 2$$S1D1	3 '')556HIIxx#a'$((7A*>>44SADAAF**37$77F55cBTBBF//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   a  r  r$   c                r  )z,Generates speech for the desktop-frame role.r  rv   rw   r!   _generate_desktop_frameZ'SpeechGenerator._generate_desktop_framea  r  r$   c               r6   rC   r   r   r    r!   r"   r7   j       0 00 
	0r$   c                r  )z+Generates speech for the desktop-icon role.)_generate_iconrv   rw   r!   _generate_desktop_iconZ&SpeechGenerator._generate_desktop_iconj       ""3/$//r$   c               r6   rC   r   r   r    r!   r"   r7   s  r]  r$   c                sF   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z#Generates speech for the dial role.r   r  r  )r]   r  r  rg   rb   r  r  r  r{   r  r  r  rN   r!   _generate_dialZSpeechGenerator._generate_dials  s%    hh|[911''4t44..s;d;::3G$GG00===&&s3d33//<t<<44SADAA00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s`   V P                   ! V3/ VB pVP                  RR4      pVR8w  d   V P                  ! V3/ VB pV'       d   V# W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z%Generates speech for the dialog role.r   r  r  )r  r]   )_generate_text_expanding_embedded_objectsrg   rb   r  r  r  rN   r!   _generate_dialogZ SpeechGenerator._generate_dialog  s     ..s;d;hh|[9)#CCCP4PF::3G$GG00===77DtDD//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z-Generates speech for the directory_pane role.r  rv   rw   r!   _generate_directory_paneZ(SpeechGenerator._generate_directory_pane  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s   . pRpVP                  R4      ;p'       d&   \        P                  ! V\        P                  4      pWA8w  de   W0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pWA8w  d   W0P                  ! V3/ VB ,          pV# )z,Generates speech for document-related roles.Nr   )r]   r   r[   r   Zis_documentr  rg   r  rb   r  r  )r(   rD   r=   r>   Z	prior_docr   r   r!   _generate_documentZ"SpeechGenerator._generate_document  s     	,,9, 88KD[D[\I33C@4@@F>>sKdKKF44SADAAF44SADAAF**37$7733C@4@@Fr$   c               r6   rC   r   r   r    r!   r"   r7          4 44 
	4r$   c                r  )z-Generates speech for the document-email role.r  rv   rw   r!   _generate_document_emailZ(SpeechGenerator._generate_document_email       &&s3d33r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z-Generates speech for the document-frame role.r  rv   rw   r!   _generate_document_frameZ(SpeechGenerator._generate_document_frame  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z4Generates speech for the document-presentation role.r  rv   rw   r!   _generate_document_presentationZ/SpeechGenerator._generate_document_presentation  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z3Generates speech for the document-spreadsheet role.r  rv   rw   r!   _generate_document_spreadsheetZ.SpeechGenerator._generate_document_spreadsheet  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z,Generates speech for the document-text role.r  rv   rw   r!   _generate_document_textZ'SpeechGenerator._generate_document_text  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z+Generates speech for the document-web role.r  rv   rw   r!   _generate_document_webZ&SpeechGenerator._generate_document_web  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pVP                  RR4      pVR9   d   V P                  ! V3/ VB ;'       g    T# W0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# z+Generates speech for the dpub section role.r   r  r  r  rg   rb   r]   r  r{   r  r  r  rN   r!   _generate_dpub_landmarkZ'SpeechGenerator._generate_dpub_landmark       ..s;d;::3G$GG00===hh|[911))#66@@&@&&s3d33**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   	  r  r$   c                r  r  r	  r  rN   r!   _generate_dpub_sectionZ&SpeechGenerator._generate_dpub_section	  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z+Generates speech for the drawing-area role.r  rv   rw   r!   _generate_drawing_areaZ&SpeechGenerator._generate_drawing_area  r  r$   c               r6   rC   r   r   r    r!   r"   r7   &  rC  r$   c                sR   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z&Generates speech for the editbar role.)
r  rg   r  r{   rb   r  r  r  r  r  r  rU   r!   _generate_editbarZ!SpeechGenerator._generate_editbar&  s&    ..s;d;::3G$GG00===&&s3d3300===&&s3d3311#>>>**37$77//<t<<&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   ;  r  r$   c                s   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pVP                  RR4      pVR8w  d5   Y0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z'Generates speech for the embedded role.r   r  r  )r  rg   r]   r  r  rb   r  r  r  rN   r!   _generate_embeddedZ"SpeechGenerator._generate_embedded;  s     ..s;d;::3G$GGhh|[9)#EEcRTR F F88EEGF 	00===00===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   O  r]  r$   c                s   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pY0P
                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z$Generates speech for the entry role.)r  rg   r  rb   r  r  r   r  r  r{   rW   r  r  r  rU   r!   _generate_entryZSpeechGenerator._generate_entryO  s`    ..s;d;::3G$GG00===00===11#>>>++C848 G G99#FF	H//<t<<//<t<<&&s3d33..s;d;;&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   f  r  r$   c                sp   V P                   ! V3/ VB pVP                  RR4      pVR9   d$   W0P                  ! V3/ VB ,          pV'       d   V# W0P                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g    V P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z#Generates speech for the feed role.r   r  r  )r  r]   r  rg   r   rb   r  r  rN   r!   _generate_feedZSpeechGenerator._generate_feedf  s     ..s;d;hh|[911,,S9D99F::3G$GG44SADA ; ;--c:T:	<//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   z       2 22 
	2r$   c                r  )z+Generates speech for the file-chooser role.r  rv   rw   r!   _generate_file_chooserZ&SpeechGenerator._generate_file_chooserz       $$S1D11r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                r  )z%Generates speech for the filler role.r  rg   rb   r  r  rU   r!   _generate_fillerZ SpeechGenerator._generate_filler  f     ..s;d;::3G$GG00===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z+Generates speech for the font-chooser role.r  rv   rw   r!   _generate_font_chooserZ&SpeechGenerator._generate_font_chooser  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                r  )z%Generates speech for the footer role.r  rb   r  r  r  rU   r!   _generate_footerZ SpeechGenerator._generate_footer  f     ..s;d;00===**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                r  )z'Generates speech for the footnote role.r  r  rU   r!   _generate_footnoteZ"SpeechGenerator._generate_footnote  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r9  r$   c                s   VP                  RR4      pVR9   dG   V P                  ! V3/ VB ;'       g,    V P                  ! V3/ VB V P                  ! V3/ VB ,           # V P                  ! V3/ VB pV P
                  ! V3/ VB '       d   W@P                  ! V3/ VB ,          pMW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z#Generates speech for the form role.r   r  r  )r]   r  rg   rb   r  r  r  r  r  rN   r!   _generate_formZSpeechGenerator._generate_form  s     hh|[911))#66 A A<<SIDI223?$?@A ..s;d;((555..s;d;;F>>sKdKKF00===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                sL   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pV# )z$Generates speech for the frame role.r   r  r  )r]   rg   r  rb   r   r  r  rN   r!   _generate_frameZSpeechGenerator._generate_frame  s     hh|[911;;CH4HH..s;d;::3G$GG00===77DtDD//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z)Generates speech for the glass-pane role.r  rv   rw   r!   _generate_glass_paneZ$SpeechGenerator._generate_glass_pane  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                   V P                   ! V3/ VB pVP                  RR4      pVR9   d$   W0P                  ! V3/ VB ,          pV'       d   V# V P                  ! V3/ VB '       d   W0P                  ! V3/ VB ,          pV'       g   W0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z'Generates speech for the grouping role.r   r  r  	r  r]   r  r  r  rg   r  rb   r  r  rN   r!   _generate_groupingZ"SpeechGenerator._generate_grouping  s     ..s;d;hh|[911,,S9D99F((555..s;d;;F>>sKdKKF77DtDD00===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                r  )z%Generates speech for the header role.r  r  rU   r!   _generate_headerZ SpeechGenerator._generate_header  r  r$   c               r6   rC   r   r   r    r!   r"   r7   	  rt  r$   c                r  )z&Generates speech for the heading role.)r  r  rb   r  r  r  rU   r!   _generate_headingZ!SpeechGenerator._generate_heading	  s~     ..s;d;--c:T::00===//<t<<//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z-Generates speech for the html-container role.r  rv   rw   r!   _generate_html_containerZ(SpeechGenerator._generate_html_container  r  r$   c               r6   rC   r   r   r    r!   r"   r7      r   r$   c                r  )z#Generates speech for the icon role.r   r  r   r  r  rN   r!   r  ZSpeechGenerator._generate_icon   r  r$   c               r6   rC   r   r   r    r!   r"   r7   =  rt  r$   c                r  )z$Generates speech for the image role.)r  rg   rb   r   r  r  rU   r!   _generate_imageZSpeechGenerator._generate_image=  s~     ..s;d;::3G$GG00===55cBTBB//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   K  r   r$   c                r  )z(Generates speech for the image-map role.r  r  rU   r!   _generate_image_mapZ#SpeechGenerator._generate_image_mapK  r  r$   c               r6   rC   r   r   r    r!   r"   r7   X  rt  r$   c                r  )z'Generates speech for the info-bar role.)r  rg   rb   r  r  r  rU   r!   _generate_info_barZ"SpeechGenerator._generate_info_barX  s~     ..s;d;::3G$GG00===77DtDD//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   f  r  r$   c                r  )z2Generates speech for the input-method-window role.r  rv   rw   r!   _generate_input_method_windowZ-SpeechGenerator._generate_input_method_windowf  r  r$   c               r6   rC   r   r   r    r!   r"   r7   o  r   r$   c                r  )z-Generates speech for the internal-frame role.r  r  rU   r!   _generate_internal_frameZ(SpeechGenerator._generate_internal_frameo  r  r$   c               r6   rC   r   r   r    r!   r"   r7   |  r   r$   c                sP   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pY0P                  V4      ;'       g    V P                  V4      ,          pW0P	                  V4      ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z$Generates speech for the label role.)r  r   r  rS   r  rb   r  r  rU   r!   _generate_labelZSpeechGenerator._generate_label|  s     ..s;d;11#>>>..s3ZZt7U7UVY7Z[//4400===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                sl   VP                  RR4      pVR9   dP   V P                  ! V3/ VB pV'       g3   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# V P                  ! V3/ VB pVP                  R4      pV'       dU   W8w  dO   \
        P                  ! WQ4      '       g3   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z'Generates speech for the landmark role.r   r  r   r  )
r]   r  rb   rg   r  r   is_ancestorr  r{   r  )r(   rD   r=   r  r>   r   r   r!   _generate_landmarkZ"SpeechGenerator._generate_landmark  s"    hh|[911++C848F88EEEBB3O$OOM..s;d;HHZ(	)(2F2Fy2V2V44SADAAF>>sKdKKF**37$77&&s3d33//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r]  r$   c                s   V P                   ! V3/ VB pY0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pVP                  RR4      pVP                  R4      '       g   V# W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z+Generates speech for the layered-pane role.r   r  r   )r  rg   rb   r  r   r]   r   r   r{   r   r  r  rN   r!   _generate_layered_paneZ&SpeechGenerator._generate_layered_pane  s    ..s;d;;;CH4H ; ;--c:T:	<00===33C@4@@hh|[9##J//M44SADAA&&s3d33//<t<<//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                s   VP                  RR4      pVR9   d   V P                  ! V3/ VB # . pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z(Generates speech for the level-bar role.r   r  r  )r]   r  rg   rb   r  r{   r  r  r  rN   r!   _generate_level_barZ#SpeechGenerator._generate_level_bar  s     hh|[911''4t44::3G$GG00===&&s3d3300===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rW  r$   c                sB   V P                   ! V3/ VB pVP                  RR4      pVP                  R4      '       d   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# Y0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z#Generates speech for the link role.r   r  r   )r  r]   r   r,  r{   r/  r2  rg   r  rb   r  r  r  r  r  rN   r!   _generate_linkZSpeechGenerator._generate_link  s    ..s;d;hh|[9
++..s;d;;F**37$77F::3G$GGF**37$77F33C@4@@FM;;CH4H 8 8**37$7	900===//<t<<&&s3d33223?$??&&s3d3355cBTBB//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s   V P                   ! V3/ VB pVP                  RR4      pVR9   d$   W0P                  ! V3/ VB ,          pV'       d   V# W0P                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g    V P
                  ! V3/ VB ,          p\        P                  ! V4      '       d   W0P                  ! V3/ VB ,          pMW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z#Generates speech for the list role.r   r  r  )r  r]   r  rg   r   rb   r   Zis_gui_listr  r  r  r  rN   r!   _generate_listZSpeechGenerator._generate_list  s     ..s;d;hh|[911,,S9D99F::3G$GG44SADA ; ;--c:T:	<""3'';;CH4HHF223?$??F//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                s   V P                   ! V3/ VB pVP                  RR4      pW0P                  ! V3/ VB ,          pVR9  d3   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z'Generates speech for the list-box role.r   r  r  )	r  r]   rg   Z_generate_focused_itemr{   r  r   rb   r  r  rN   r!   _generate_list_boxZ"SpeechGenerator._generate_list_box  s     ..s;d;hh|[9::3G$GG5511#>>>F**37$77F66sCdCC44SADA ; ;--c:T:	<//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rd  r$   c                s   V P                   ! V3/ VB pVP                  RR4      pVR9   dN   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# Y0P
                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          p\        P                  ! V4      '       d   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z(Generates speech for the list-item role.r   r  r  )r  r]   r  r{   r  r  rg   rb   r  r   is_focusable_generate_descendantsr  r  r  rN   r!   _generate_list_itemZ#SpeechGenerator._generate_list_item  s    ..s;d;hh|[911??LtLLF**37$77F33C@4@@FM++C848 B B44SADA	C00===;;CH4HH&&s3d3311#>>>&&s3d33//<t<<##C((00===F&&s3d3311#>>>&&s3d33//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   8  r  r$   c                r  )z"Generates speech for the log role.r  rv   rw   r!   _generate_logZSpeechGenerator._generate_log8  r  r$   c               r6   rC   r   r   r    r!   r"   r7   A  r  r$   c                r  )z#Generates speech for the mark role.r   r  r  )r]   r  rr  r  r{   r  rs  r  r  rN   r!   _generate_markZSpeechGenerator._generate_markA  s     hh|[911))#66cc$:V:VWZ:c^b:cc..s;d;..s;d;;&&s3d33--c:T::&&s3d33,,S9D99//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   U  r  r$   c                r  )z&Generates speech for the marquee role.r  rv   rw   r!   _generate_marqueeZ!SpeechGenerator._generate_marqueeU  r  r$   c               r6   rC   r   r   r    r!   r"   r7   ^  s     9 99 
	9r$   c                r  )z#Generates speech for the math role.)r5  rv   rw   r!   _generate_mathZSpeechGenerator._generate_math^  s     ++C8488r$   c               r6   rC   r   r   r    r!   r"   r7   h  r   r$   c                sn    . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z,Generates speech for the math-enclosed role.)r5  r8  r  rU   r!   _generate_math_enclosedZ'SpeechGenerator._generate_math_enclosedh  s>     ..s;d;;99#FFFr$   c               r6   rC   r   r   r    r!   r"   r7   u  rJ  r$   c                s   . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z*Generates speech for the math-fenced role.)rw  r{   r=  rx  r  rU   r!   _generate_math_fencedZ%SpeechGenerator._generate_math_fencedu  s     55cBTBB&&s3d3355cBTBB&&s3d3333C@4@@r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s   . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z,Generates speech for the math-fraction role.)ry  r{   r@  rB  rA  r{  r  rU   r!   _generate_math_fractionZ'SpeechGenerator._generate_math_fraction  s     77DtDD&&s3d3388EEE33C@4@@::3G$GG&&s3d3355cBTBB&&s3d33r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                6   . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z/Generates speech for the math-multiscript role.)rG  r{   rY  rZ  r  rU   r!   _generate_math_multiscriptZ*SpeechGenerator._generate_math_multiscript  s     11#>>>&&s3d3377DtDD&&s3d3388EEE&&s3d33r$   c               r6   rC   r   r   r    r!   r"   r7     rJ  r$   c                s   . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z(Generates speech for the math-root role.)r|  rF  r{   r}  r  rU   r!   _generate_math_rootZ#SpeechGenerator._generate_math_root  s     33C@4@@//<t<<&&s3d3311#>>>&&s3d33r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                sv   \         P                  \        P                  ! V4      ^,           ,          .pW0P                  ! \
        3RV/VB ,          pW0P                  ! V3/ VB ,          p\        P                  ! V4       F3  pW0P                  V4      ,          pW0P                  ! V3/ VB ,          pK5  	  V# )z'Generates speech for the math-row role.rD   )	r   r  r   r   ro   r   r{   r   r5  )r(   rD   r=   r>   r   rN   r!   _generate_math_rowZ"SpeechGenerator._generate_math_row  s     $$(D(DS(IA(MNO::f6#667&&s3d33++C0E22599F**59D99F 1 r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                r>  )z3Generates speech for the math script subsuper role.)rG  r{   rP  rS  r  rU   r!   _generate_math_script_subsuperZ.SpeechGenerator._generate_math_script_subsuper  s     11#>>>&&s3d3366sCdCC&&s3d3388EEE&&s3d33r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                r>  )z4Generates speech for the math script underover role.)rG  r{   rU  rV  r  rU   r!   _generate_math_script_underoverZ/SpeechGenerator._generate_math_script_underover  s     11#>>>&&s3d3388EEE&&s3d3377DtDD&&s3d33r$   c               r6   rC   r   r   r    r!   r"   r7     rJ  r$   c                s   . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z)Generates speech for the math-table role.)r  r{   r\  r  r  rU   r!   _generate_math_tableZ$SpeechGenerator._generate_math_table  s     44SADAA&&s3d3300===223?$??&&s3d33r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s   V P                   ! V3/ VB pVP                  RR4      pVR9   d5   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# VP	                  R4      '       dN   Y0P
                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z#Generates speech for the menu role.r   r  r   r  )r  r]   rg   rb   r   r  r  r{   r  r  r  r  r  r  r  rN   r!   _generate_menuZSpeechGenerator._generate_menu  s    ..s;d;hh|[911>>sKdKKF44SADAAFM
++//<t< @ @223?$?AF**37$77F::3G$GG00===//<t<<00===&&s3d33223?$??&&s3d3355cBTBB&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   !  r   r$   c                r  )z'Generates speech for the menu-bar role.r  r  rU   r!   _generate_menu_barZ"SpeechGenerator._generate_menu_bar!  r  r$   c               r6   rC   r   r   r    r!   r"   r7   .  r0  r$   c                sn   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pVP                  R4      '       d3   W@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z(Generates speech for the menu-item role.r   r  r   r  )r]   r  r  r   r  r{   rg   rb   r  r  r  r  r  r  r  rN   r!   _generate_menu_itemZ#SpeechGenerator._generate_menu_item.  s    hh|[91100===..s;d;
++..s;d;;F**37$77F::3G$GG00===;;CH4HH//<t<<00===&&s3d33223?$??&&s3d3355cBTBB&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   L  rJ  r$   c                s:   . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pV# )z+Generates speech for the notification role.)rb   rg   r{   r  r  r  r  rU   r!   _generate_notificationZ&SpeechGenerator._generate_notificationL  s     00===::3G$GG&&s3d33AA#NN B B44SADA	C//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   ]  r  r$   c                r  )z*Generates speech for the option-pane role.r  rv   rw   r!   _generate_option_paneZ%SpeechGenerator._generate_option_pane]  r  r$   c               r6   rC   r   r   r    r!   r"   r7   f  r   r$   c                s&   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pV# )z#Generates speech for the page role.)r  rg   r  rb   r  r  r  rU   r!   _generate_pageZSpeechGenerator._generate_pagef  s     ..s;d;::3G$GG00===00===**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   u  r   r$   c                s|   VP                  RR4      pVR8X  d/   V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pV# V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z'Generates speech for the page-tab role.r   r  r  )
r]   rg   rb   r  r  r  r{   r  r  r  r  rN   r!   _generate_page_tabZ"SpeechGenerator._generate_page_tabu  s@    hh|[9*$==cJTJF44SADAAFM..s;d;::3G$GG//<t<<00===00===&&s3d33223?$??&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z,Generates speech for the page-tab-list role.r  rv   rw   r!   _generate_page_tab_listZ'SpeechGenerator._generate_page_tab_list  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                r!  )z$Generates speech for the panel role.r   r  r  r"  r  rN   r!   _generate_panelZSpeechGenerator._generate_panel  s     ..s;d;hh|[911,,S9D99F((555..s;d;;F>>sKdKKF 	77DtDD00===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                s   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z(Generates speech for the paragraph role.)	r  rg   r  rb   r  r  r{   r  r  r  rU   r!   _generate_paragraphZ#SpeechGenerator._generate_paragraph  s     ..s;d;::3G$GG00===00===11#>>>**37$77&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s    V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z,Generates speech for the password-text role.)
r  rg   rb   r  r  r  r{   rW   r  r  r  rU   r!   _generate_password_textZ'SpeechGenerator._generate_password_text  s    ..s;d;::3G$GG00===**37$77//<t<<//<t<<&&s3d33..s;d;;&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z)Generates speech for the popup-menu role.)rE  rv   rw   r!   _generate_popup_menuZ$SpeechGenerator._generate_popup_menu  r  r$   c               r6   rC   r   r   r    r!   r"   r7     rJ  r$   c                s:   . pW0P                   ! V3/ VB ,          pVP                  RR4      pVR8w  d   W0P                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pV# )z+Generates speech for the progress-bar role.r   r  r  )r  r]   rg   r  rb   r  r  rN   r!   _generate_progress_barZ&SpeechGenerator._generate_progress_bar  s     33C@4@@hh|[9)#>>sKdKKF44SADA ; ;--c:T:	<//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r]  r$   c                sF   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z*Generates speech for the push-button role.r   r  r  )
r]   r  r  rg   rb   r  r{   r  r  r  r  rN   r!   _generate_push_buttonZ%SpeechGenerator._generate_push_button  s%    hh|[91100===..s;d;::3G$GG//<t<<00===00===&&s3d33223?$??&&s3d3355cBTBB//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     s     7 77 
	7r$   c                r  )z/Generates speech for the push-button-menu role.)rR  rv   rw   r!   _generate_push_button_menuZ*SpeechGenerator._generate_push_button_menu  s     ))#666r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                sH   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pVP                  R4      '       d   W@P                  ! V3/ VB ,          pMW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          p\        P                  ! V4      '       g   V# W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z+Generates speech for the radio-button role.r   r  r   r  )r]   r  r  r   r   r   r{   rg   rb   r   Z
is_focusedr  r  r  r  r  rN   r!   _generate_radio_buttonZ&SpeechGenerator._generate_radio_button  s    hh|[911AA#NNN..s;d;
++77DtDDF;;CH4HHF&&s3d33::3G$GG@@MMM00===%%c**M00===&&s3d33223?$??&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   0  r   r$   c                r  )z.Generates speech for the radio-menu-item role.r   r  r   r  )r]   r  r  r   r  r{   rg   rb   r  r  r  r  r  r  rN   r!   _generate_radio_menu_itemZ)SpeechGenerator._generate_radio_menu_item0  s    hh|[911AA#NNN..s;d;
++..s;d;;F**37$77F::3G$GG00===@@MMM00===&&s3d33223?$??&&s3d3355cBTBB&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   M  r  r$   c                r  )z%Generates speech for the rating role.r  rv   rw   r!   _generate_ratingZ SpeechGenerator._generate_ratingM  r  r$   c               r6   rC   r   r   r    r!   r"   r7   V  r9  r$   c                s   V P                   ! V3/ VB pVP                  R4      pV'       dU   W8w  dO   \        P                  ! WA4      '       g3   W0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pVP                  RR4      pVR9   d   V P                  ! V3/ VB ;'       g    T# W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z.Generates speech for the region landmark role.r   r   r  r  )
r  r]   r   r-  rg   rb   r  r{   r  r  )r(   rD   r=   r>   r   r  r   r!   _generate_regionZ SpeechGenerator._generate_regionV  s     ..s;d;HHZ(	)(2F2Fy2V2V>>sKdKKF44SADAAFhh|[911))#66@@&@&&s3d33**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   l  r  r$   c                r  )z(Generates speech for the root-pane role.r  rv   rw   r!   _generate_root_paneZ#SpeechGenerator._generate_root_panel  r  r$   c               r6   rC   r   r   r    r!   r"   r7   u  r9  r$   c                sb   V P                   ! V3/ VB pVP                  RR4      pVR8w  d3   V P                  ! V3/ VB '       d   W0P                  ! V3/ VB ,          pV'       g   W0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z)Generates speech for the row-header role.r   r  r  )r  r]   r  r  rg   rb   r  r{   r  r  r  r  rN   r!   _generate_row_headerZ$SpeechGenerator._generate_row_headeru  s&    ..s;d;hh|[9)#(E(Ec(RT(R(R..s;d;;F>>sKdKKF00===11#>>>&&s3d3355cBTBB&&s3d3388EEE//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z$Generates speech for the ruler role.r  rv   rw   r!   _generate_rulerZSpeechGenerator._generate_ruler  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r9  r$   c                   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z)Generates speech for the scroll-bar role.r   r  r  
r]   r  r  rg   rb   r  r  r{   r  r  r  rN   r!   _generate_scroll_barZ$SpeechGenerator._generate_scroll_bar      hh|[911''4t44..s;d;::3G$GG00===&&s3d3344SADAA00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rt  r$   c                r  )z*Generates speech for the scroll-pane role.)r  rg   rb   r  r  r  rU   r!   _generate_scroll_paneZ%SpeechGenerator._generate_scroll_pane  s~     ..s;d;::3G$GG00===**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                s   VP                  RR4      pV P                  ! V3/ VB p\        P                  ! V4      '       dx   \        P                  ! V4      '       g*   \
        P                  ! 4       P                  4       '       d3   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pVR8X  d   V# W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z&Generates speech for the section role.r   r  r  )r]   r  r   r4  Zhas_explicit_namer   ry   Zget_in_focus_moderg   r{   r  r  rb   r  r  r  rN   r!   _generate_sectionZ!SpeechGenerator._generate_section  s5    hh|[9..s;d;##C((--c22++-??AA>>sKdKKF**37$77F*$M11#>>>**37$7700===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r]  r$   c                s   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pVP                  RR4      pVR9   d   V# Y0P                  ! V3/ VB ;'       g/    V P
                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z(Generates speech for the separator role.r   r  r  )
r  rb   r  r]   rg   r  r  r{   r  r  r  rN   r!   _generate_separatorZ#SpeechGenerator._generate_separator  s
    ..s;d;00===00===hh|[911M;;CH4H 1 1**37$71 1##C040	2 	&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r9  r$   c                r[  )z%Generates speech for the slider role.r   r  r  r\  r  rN   r!   _generate_sliderZ SpeechGenerator._generate_slider  r^  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s   VP                  RR4      pVR9   d/   V P                  ! V3/ VB ;'       g    V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB V,           ,          pW@P
                  ! V3/ VB ,          pY@P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z*Generates speech for the spin-button role.r   r  r  )r]   r  r  r  rg   rb   r  r{   rW   r  r  r  r  rN   r!   _generate_spin_buttonZ%SpeechGenerator._generate_spin_button  sv    hh|[911..s;d;``t?S?STW?`[_?``..s;d;::3G$G&PP00===..s;d;``t?S?STW?`[_?`a//<t<<&&s3d33..s;d;;00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s&   VP                  RR4      pVR8X  d   V P                  ! V3/ VB # VR8X  d   . # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z)Generates speech for the split-pane role.r   r  r  r  r\  r  rN   r!   _generate_split_paneZ$SpeechGenerator._generate_split_pane  s    hh|[9)#''4t44*$I..s;d;::3G$GG00===&&s3d3344SADAA00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   .  r   r$   c                s   V P                   ! V3/ VB p\        P                  ! V4      '       d4   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pM4Y0P
                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z%Generates speech for the static role.)	r  r   Zis_coder  r  r  rS   rb   r  r  rU   r!   _generate_staticZ SpeechGenerator._generate_static.  s     ..s;d;s##55cBTBBF..s;d;;F223?$? ? ?11#>>@F00===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   @  r   r$   c                s:   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pVP                  RR4      pVR9   d   V# V P                  ! V3/ VB ;'       g    V P
                  ! V3/ VB pV'       gD   \        P                  ! V4      ^8X  d)   V P
                  ! \        P                  ! V^ 4      3/ VB pV'       d!   W0P                  ! V3/ VB V,           ,          pW0P                  ! V3/ VB ,          pV# )z)Generates speech for the status-bar role.r   r  r  )r  rg   rb   r]   r5  r  r   r   r(  r{   r  )r(   rD   r=   r>   r  contentr   r!   _generate_status_barZ$SpeechGenerator._generate_status_bar@  s    ..s;d;::3G$GG00===hh|[911M,,S9D9 8 8**37$7 	833C8A=11(2D2DS!2LUPTUG**37$7'AAF//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   Y  r   r$   c                    . pW0P                   ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z(Generates speech for the subscript role.rb   r  r  r  rU   r!   _generate_subscriptZ#SpeechGenerator._generate_subscriptY  V     00===**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   f  rJ  r$   c                s   VP                  RR4      pVR9   d/   V P                  ! V3/ VB ;'       g    V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pV# )z)Generates speech for the suggestion role.r   r  r  )r]   r  rb   r  r  r  r  rN   r!   _generate_suggestionZ$SpeechGenerator._generate_suggestionf  s     hh|[911))#66 ? ?11#>>? ..s;d;--c:T:://<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   w  r   r$   c                rh  )z*Generates speech for the superscript role.ri  r  rU   r!   _generate_superscriptZ%SpeechGenerator._generate_superscriptw  rk  r$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                s   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z%Generates speech for the switch role.r   r  r  )	r]   r  r  rg   rb   r  r{   r  r  r  rN   r!   _generate_switchZ SpeechGenerator._generate_switch  s     hh|[911::3G$GG..s;d;::3G$GG99#FFF00===00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                s`   VP                  RR4      pVR9   d   V P                  ! V3/ VB pV'       d   V# V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z$Generates speech for the table role.r   r  r  )r]   r  r  rg   r{   r  r  r  rN   r!   _generate_tableZSpeechGenerator._generate_table  s     hh|[911++C848F..s;d;::3G$GG&&s3d33++C8488//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rd  r$   c                sX   V P                   ! V3/ VB pV P                  ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g/    V P
                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                   ! V3/ VB ,          pW0P"                  ! V3/ VB ,          pV# )z)Generates speech for the table-cell role.r   )r  r  r   _generate_state_checked_for_cellZ/_generate_real_active_descendant_displayed_textrg   r   r  r   r  rG   r   r{   rW   r  r  r  r  r  rU   r!   _generate_table_cellZ$SpeechGenerator._generate_table_cell  s    ..s;d;55cBTB99#FFF77DtDDGGTtT H H77DtDH H::3G$G	I 	//<t<<33C@4@@//<t<<*VBZ77**37$77F..s;d;;*VBZ77**37$77F00===*VBZ77**37$77F00===11#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     s     , ,, 
	,r$   c                s4   VP                  RR4      pVR8X  d   V P                  ! V3/ VB pV'       d7   \        VR,          \        4      '       g   W@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# VR8X  d   V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# VP                  R4      '       Ed.   V P                  ! V3/ VB pV'       d7   \        VR,          \        4      '       g   W@P                  ! V3/ VB ,          pV P                  ! V3/ VB pV'       d7   \        VR,          \        4      '       g   W@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P                  ! V3/ VB ,          pW@P                   ! V3/ VB ,          pV# V P                  ! V3/ VB pV# )zCGenerates speech for the table-cell role in the context of its row.r   r  r  r  r   r   )r]   rp  rG   r   r{   r  r   r  r  r  r  r   rY  r  rb   Z_generate_table_cell_rowr  r  rN   r!   _generate_table_cell_in_rowZ+SpeechGenerator._generate_table_cell_in_row  s    hh|[9)#::3G$GFjU;;..s;d;;33C@4@@FjU;;..s;d;;77DtDDFM*$99#FFF==cJTJJFjU;;..s;d;;99#FFFFjU;;..s;d;;<<SIDIIFM
++..s;d;FjU;;..s;d;;11#>>FjU;;..s;d;;44SADAAF33C@4@@FjU;;..s;d;;88EEEFM..s;d;r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                   V P                   ! V3/ VB pVP                  RR4      pVR8w  d3   V P                  ! V3/ VB '       d   W0P                  ! V3/ VB ,          pV'       g   W0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z2Generates speech for the table-column-header role.r   r  r  r   r  r]   r  r  rg   rb   r  rG   r   r{   r  r  r  r  rN   r!   _generate_table_column_headerZ-SpeechGenerator._generate_table_column_header  L    ..s;d;hh|[9)#(E(Ec(RT(R(R..s;d;;F>>sKdKKF00===11#>>>*VBZ77**37$77F55cBTBB*VBZ77**37$77F88EEE//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     rC  r$   c                s   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pY@P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z(Generates speech for the table-row role.r   r  r  )r]   r  r  rg   r  r{   r  r  r  rN   r!   _generate_table_rowZ#SpeechGenerator._generate_table_row  s     hh|[91100===..s;d;;;CH4H 8 8**37$7	9&&s3d33//<t<<&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   '  r  r$   c                rs  )z/Generates speech for the table-row-header role.r   r  r  r   rt  r  rN   r!   _generate_table_row_headerZ*SpeechGenerator._generate_table_row_header'  rv  r$   c               r6   rC   r   r   r    r!   r"   r7   ?  rC  r$   c                sR   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z0Generates speech for the tearoff-menu-item role.)
r  rg   rb   r  r  r{   r  r  r  r  r  rU   r!   _generate_tearoff_menu_itemZ+SpeechGenerator._generate_tearoff_menu_item?  s&    ..s;d;::3G$GG00===//<t<<00===&&s3d33223?$??&&s3d3355cBTBB&&s3d3311#>>>//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   T  r   r$   c                sx   V P                   ! V3/ VB pVP                  RR4      pVP                  R4      '       g   W0P                  ! V3/ VB ,           # W0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z'Generates speech for the terminal role.r   r  r   )r  r]   r   r  rg   rb   r  r  rN   r!   _generate_terminalZ"SpeechGenerator._generate_terminalT  s     ..s;d;hh|[9##J//44SADAAA::3G$GG00===**37$77//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   f  rC  r$   c                sV   V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P
                  ! V3/ VB ,          pY0P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z#Generates speech for the text role.)r  rg   r  rb   r{   r  r  r   r  r  r  r  rU   r!   _generate_textZSpeechGenerator._generate_textf  s0    ..s;d;::3G$GG00===00===&&s3d3311#>>>++C848 G G99#FF	H//<t<<&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7   {  r  r$   c                r  )z$Generates speech for the timer role.r  rv   rw   r!   _generate_timerZSpeechGenerator._generate_timer{  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z(Generates speech for the title-bar role.r  rv   rw   r!   _generate_title_barZ#SpeechGenerator._generate_title_bar  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r]  r$   c                sN   VP                  RR4      pVR9   d/   V P                  ! V3/ VB ;'       g    V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pY@P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z,Generates speech for the toggle-button role.r   r  r  )
r]   r  r  r  rg   rb   r  r{   r  r  r  rN   r!   _generate_toggle_buttonZ'SpeechGenerator._generate_toggle_button  s5    hh|[91100== = =//<t<= ..s;d;::3G$GG00===00== = =//<t<	>00===&&s3d33223?$??//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z'Generates speech for the tool-bar role.r  rv   rw   r!   _generate_tool_barZ"SpeechGenerator._generate_tool_bar  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                sP   VP                  RR4      pVR9   d/   V P                  ! V3/ VB ;'       g    V P                  ! V3/ VB # V P                  ! V3/ VB pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pV# )z'Generates speech for the tool-tip role.r   r  r  )r]   r  rb   r  rg   r  r  rN   r!   _generate_tool_tipZ"SpeechGenerator._generate_tool_tip  s     hh|[911))#66 ? ?11#>>? ..s;d;00===::3G$GG//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z#Generates speech for the tree role.r  rv   rw   r!   _generate_treeZSpeechGenerator._generate_tree  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                sp   VP                  RR4      pVR9   d   V P                  ! V3/ VB # V P                  ! V3/ VB pVP                  R4      '       d3   W@P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pY@P                  ! V3/ VB ;'       g    V P                  ! V3/ VB ,          pW@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV'       d7   \        VR,          \        4      '       g   W@P
                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pW@P                  ! V3/ VB ,          pV# )z(Generates speech for the tree-item role.r   r  r   r  r   )r]   r  r  r   r  r{   rg   r  rG   r   r  r  r  r  rN   r!   _generate_tree_itemZ#SpeechGenerator._generate_tree_item  s    hh|[91100===..s;d;
++..s;d;;F**37$77F;;CH4H 8 8**37$7	9&&s3d33//<t<<*VBZ77**37$77F11#>>>*VBZ77**37$77F00===//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z)Generates speech for the tree-table role.r  rv   rw   r!   _generate_tree_tableZ$SpeechGenerator._generate_tree_table  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r   r$   c                s    V P                   ! V3/ VB pW0P                  ! V3/ VB ,          pW0P                  ! V3/ VB ,          pV# )z&Generates speech for the unknown role.)r  rg   r  r  rU   r!   _generate_unknownZ!SpeechGenerator._generate_unknown  sN     ..s;d;::3G$GG//<t<<r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z$Generates speech for the video role.r  rv   rw   r!   _generate_videoZSpeechGenerator._generate_video  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z'Generates speech for the viewport role.r  rv   rw   r!   _generate_viewportZ"SpeechGenerator._generate_viewport  r  r$   c               r6   rC   r   r   r    r!   r"   r7     r  r$   c                r  )z%Generates speech for the window role.r  rv   rw   r!   _generate_windowZ SpeechGenerator._generate_window  r  r$   c               r6   )r   contentsz,list[tuple[Atspi.Accessible, int, int, str]]r   rF   r   r   r    r!   r"   r7     s      > 
	r$   c                sX   . pV F_  pVw  rVrxV'       g   K  V P                  WXR7      p	V	'       d    \        V	\        4      '       d
   V	^ ,          MT	p
VP                  W.4       Ka  	  V'       d&   \	        V4      ^8X  d   V^ ,          ^ ,          R8X  d   \
        P                  ! 4       P                  4       '       gA   \        P                  ! 4       P                  R4      '       d   VP                  R4      R8X  d   RpM\        P                  pWP                   ! \        3/ VB ..pV# )zBGenerates speech for a list of [obj, start, end, string] contents.)rD   r   r  r  r   r  rR   )ro   rG   rL   rh   rk   r   ry   r   r   rz   r]   r   r  rp   )r(   r  r=   r>   rf  rD   Z_startr  r   r}   ro   r   rt   r!   generate_contentsZ!SpeechGenerator.generate_contents  s     G&-#CZZCZ5F!'Jvt,D,DF1I&EMM4-(   #f+*vay|t/C((*5577&224@@ARSS((<(J6!zz':T:;<Fr$   r   r&   (  r/   r0   r1   r2   r3   r*   ZstaticmethodrB   rO   rV   rX   r_   rc   ru   rx   r{   ro   r   r   r   r   rS   rg   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r,  r/  r2  r5  r8  r=  r@  rA  rB  rF  rG  rI  rP  rS  rU  rV  rY  rZ  r\  rc  ro  rp  rq  rr  rs  rw  rx  ry  r{  r|  r}  r  r  r  r  r  r  r  r  rW   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  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  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  r  r  r  r  r  r  r  r  r  r   r#  r$  r%  r&  r  r'  r(  r)  r*  r+  r,  r.  r/  r0  r1  r2  r3  r6  r7  r8  r9  r:  r;  r<  r=  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r]  r_  r`  ra  rb  rc  rd  re  rg  rj  rl  rm  rn  ro  rq  rr  ru  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r4   Z__classcell__)r9   s   @r!   r5   r5   d   s
   >+ +  	< <6$ $L
  4      $   
 
>Qf  : ; ;"            2   & &P  2 S S"  C!J F FPkZ 7 7r  BH    H     ( & &P " "H  @  $ 9 9v  , 
 
 
 
    * 	2 	2 	 	  "  $  "  $  8  2 	 	  .  >  .  >  .  $       
 
  B 
 
  *  $           I I                - -b 	 	     $  "H     *  0 " "H    ,  ,  6  0 0 0d  0    8 	 	  $((*X@@@@(C"@@,@:C @2:.C,C4&**@*@4@0.(@0444444((@*(.(22,$@0@:@2.*80*>@(@9"($"$$"@<"@2@2$(0".7@:@,@,@,2.,00$2"*(>,\0*0*$*@@.@$@:@ @
 
@ @@ @@ @  r$   r5   )>r3   Z
__future__r   Z__id__Z__version__Z__date__Z__copyright__Z__license__Zurllib.errorr$  Zurllib.parseZurllib.requestZtypingr   r   ZgiZrequire_versionZgi.repositoryr   rR   r   r   r   r   r	   r
   r   r   r   r   r   r   Zax_documentr   Zax_hypertextr   Z	ax_objectr   Zax_tabler   Zax_textr   Zax_utilitiesr   Zax_valuer   r   r   r-   rp   r   r   r   r  ZVALUEZDEFAULT_VOICEZUPPERCASE_VOICEZHYPERLINK_VOICEZSYSTEM_VOICEr   Z	Generatorr5   r   r$   r!   <module>r     s  < ; #?    % 	   7E "      !       * # %    %   
			 X##x''x''
H!!	8  	8  	JOi)) JOr$   