ó
    ´OÂfìÑ  ã            	       ó¶  • S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKJrJrJrJrJrJrJrJrJr  SSKJrJrJrJr   " S S	5      r " S
 S\5      r " S S\5      r " S S5      r " S S\5      r " S S\5      r  " S S\5      r! " S S\!5      r" " S S\!5      r# " S S\!5      r$ " S S\!5      r% " S S\!5      r& " S  S!\!5      r' " S" S#\!5      r( " S$ S%\!5      r) " S& S'5      r* " S( S)5      r+ " S* S+\,5      r-\.S,:X  GaF  \	" S-5      r/\/Ra                  S.S/S0S1S2S3S49  \/Ra                  S5S6S7S1S2S8S49  \/Ra                  S9S:S;S1S2S<S49  \/Ra                  S=S>S?S1S2S@S49  \/Rc                  5       u  r2r3\4" \35      SA:w  a  \/Rk                  SB5        \+" \2Rl                  SC9r7\" \75      Rq                  \3S   Rs                  SD5      \2Rt                  \2Rv                  SE9r<\<c	  \=" S5        g\<R}                  5       R                  5       r<\2R€                  (       a%  \=" \<R�                  5       Rƒ                  5       5        g\<R…                  5         gg)Fa€  
An interface to Boxer.

This interface relies on the latest version of the development (subversion) version of
C&C and Boxer.

Usage
=====

Set the environment variable CANDC to the bin directory of your CandC installation.
The models directory should be in the CandC root directory.
For example::

    /path/to/candc/
    bin/
        candc
        boxer
    models/
        boxer/
é    N)Úreduce)ÚOptionParser©Úfind_binary)	ÚDRSÚDrtApplicationExpressionÚDrtEqualityExpressionÚDrtNegatedExpressionÚDrtOrExpressionÚ	DrtParserÚDrtPropositionÚ	DrtTokensÚDrtVariableExpression)ÚExpectedMoreTokensExceptionÚLogicalExpressionExceptionÚUnexpectedTokenExceptionÚVariablec                   óš   • \ rS rSrSr     SS jrSS jrSS jrSS jr SS	 jr	 SS
 jr
SS jrSS jrSS jr/ S4S jrS rS rSrg)ÚBoxeré;   z”
This class is an interface to Johan Bos's program Boxer, a wide-coverage
semantic parser that produces Discourse Representation Structures (DRSs).
NFc                 ód   • Uc
  [        5       nXl        XPl        X l        U R	                  X45        g)aj  
:param boxer_drs_interpreter: A class that converts from the
    ``AbstractBoxerDrs`` object hierarchy to a different object.  The
    default is ``NltkDrtBoxerDrsInterpreter``, which converts to the NLTK
    DRT hierarchy.
:param elimeq: When set to true, Boxer removes all equalities from the
    DRSs and discourse referents standing in the equality relation are
    unified, but only if this can be done in a meaning-preserving manner.
:param resolve: When set to true, Boxer will resolve all anaphoric DRSs and perform merge-reduction.
    Resolution follows Van der Sandt's theory of binding and accommodation.
N)ÚNltkDrtBoxerDrsInterpreterÚ_boxer_drs_interpreterÚ_resolveÚ_elimeqÚset_bin_dir)ÚselfÚboxer_drs_interpreterÚelimeqÚbin_dirÚverboseÚresolves         Ú0/usr/lib/python3/dist-packages/nltk/sem/boxer.pyÚ__init__ÚBoxer.__init__A   s1   € ð& !Ñ(Ü$>Ó$@Ð!Ø&;Ô#àŒØŒà×Ñ˜Õ*ó    c                 óþ   • U R                  SX5      U l        [        R                  R	                  [        R                  R                  U R                  S S S5      5      U l        U R                  SX5      U l        g )NÚcandcéûÿÿÿz	../modelsÚboxer)Ú_find_binaryÚ
_candc_binÚosÚpathÚnormpathÚjoinÚ_candc_models_pathÚ
_boxer_bin)r   r    r!   s      r#   r   ÚBoxer.set_bin_dir]   s`   € Ø×+Ñ+¨G°WÓFˆŒÜ"$§'¡'×"2Ñ"2Ü�G‰G�L‰L˜Ÿ™¨¨"Ð-¨{Ó;ó#
ˆÔð ×+Ñ+¨G°WÓFˆ�r&   c                 óp   • Ub  U/OSnU R                  U//XSU5      u  nU(       d  [        SU S35      eU$ )a  
Use Boxer to give a first order representation.

:param input: str Input sentence to parse
:param occur_index: bool Should predicates be occurrence indexed?
:param discourse_id: str An identifier to be inserted to each occurrence-indexed predicate.
:return: ``drt.DrtExpression``
NúUnable to interpret: "Ú"©Úinterpret_multi_sentsÚ	Exception©r   ÚinputÚdiscourse_idÚquestionr!   Údiscourse_idsÚds          r#   Ú	interpretÚBoxer.interpretd   sI   € ð +7Ñ*B˜™ÈˆØ×)Ñ)¨E¨7¨)°]ÈgÓV‰ˆÞÜÐ4°U°G¸1Ð=Ó>Ð>Øˆr&   c                 ón   • Ub  U/OSnU R                  U/XSU5      u  nU(       d  [        SU S35      eU$ )a8  
Use Boxer to give a first order representation.

:param input: list of str Input sentences to parse as a single discourse
:param occur_index: bool Should predicates be occurrence indexed?
:param discourse_id: str An identifier to be inserted to each occurrence-indexed predicate.
:return: ``drt.DrtExpression``
Nr5   r6   r7   r:   s          r#   Úinterpret_multiÚBoxer.interpret_multis   sG   € ð +7Ñ*B˜™ÈˆØ×)Ñ)¨5¨'°=ÈGÓT‰ˆÞÜÐ4°U°G¸1Ð=Ó>Ð>Øˆr&   c                 óT   • U R                  U Vs/ s H  oU/PM     snX#U5      $ s  snf )aK  
Use Boxer to give a first order representation.

:param inputs: list of str Input sentences to parse as individual discourses
:param occur_index: bool Should predicates be occurrence indexed?
:param discourse_ids: list of str Identifiers to be inserted to each occurrence-indexed predicate.
:return: list of ``drt.DrtExpression``
)r8   )r   Úinputsr>   r=   r!   r;   s         r#   Úinterpret_sentsÚBoxer.interpret_sents‚   s0   € ð ×)Ñ)Ù"(Ó)¢&˜‹W¡&Ñ)¨=ÀGó
ð 	
ùÚ)s   �%c           
      óš  • UbE  [        U5      [        U5      :X  d   e[        [        R                  S U 5       5      (       d   eSnO-[	        [        [        [        [        U5      5      5      5      nSnU R                  XX4S9nU R                  XdS9nU R                  Xu5      nU V	s/ s H  o˜R                  U	S5      PM     sn	$ s  sn	f )a3  
Use Boxer to give a first order representation.

:param inputs: list of list of str Input discourses to parse
:param occur_index: bool Should predicates be occurrence indexed?
:param discourse_ids: list of str Identifiers to be inserted to each occurrence-indexed predicate.
:return: ``drt.DrtExpression``
Nc              3   ó(   #   • U  H  oS Lv •  M
     g 7f©N© )Ú.0Úids     r#   Ú	<genexpr>Ú.Boxer.interpret_multi_sents.<locals>.<genexpr>ž   s   é € Ð)QÂ=¸R°D­.Â=ùs   ‚TF)r!   )Úlenr   ÚoperatorÚand_ÚlistÚmapÚstrÚrangeÚ_call_candcÚ_call_boxerÚ_parse_to_drs_dictÚget)
r   rF   r>   r=   r!   Úuse_disc_idÚ	candc_outÚ	boxer_outÚdrs_dictrN   s
             r#   r8   ÚBoxer.interpret_multi_sents‘   s½   € ð Ñ$Ü�v“;¤# mÓ"4Ó4Ð4Ð4Üœ(Ÿ-™-Ñ)QÁ=Ó)Q×RÑRÐRÐRØ‰Kä ¤¤S¬%´°F³Ó*<Ó!=Ó>ˆMØˆKà×$Ñ$ V¸HÐ$ÐVˆ	Ø×$Ñ$ YÐ$Ð@ˆ	ð
 ×*Ñ*¨9ÓBˆÙ1>Ó?²¨2—‘˜R Ö&±Ñ?Ð?ùÒ?s   Â*Cc                 óö   • S[         R                  R                  U R                  SS/U   5      SS/nU R	                  SR                  [        S [        X5       5       / 5      5      U R                  UU5      $ )a  
Call the ``candc`` binary with the given input.

:param inputs: list of list of str Input discourses to parse
:param discourse_ids: list of str Identifiers to be inserted to each occurrence-indexed predicate.
:param filename: str A filename for the output file
:return: stdout
z--modelsr*   Ú	questionsz--candc-printerÚ
c              3   ó:   #   • U  H  u  pS U S3/U-   v •  M     g7f)z<META>'Ú'NrL   )rM   r?   rN   s      r#   rO   Ú$Boxer._call_candc.<locals>.<genexpr>¿   s$   é € ÐSÒ8R©u¨q˜ ˜t 1�oÐ&¨Ö*Ò8Rùs   ‚)r-   r.   r0   r1   Ú_callÚsumÚzipr,   )r   rF   r>   r=   r!   Úargss         r#   rX   ÚBoxer._call_candc­   s|   € ð Ü�G‰G�L‰L˜×0Ñ0°7¸KÐ2HÈÑ2RÓSØØð	
ˆð �z‰zØ�I‰IÜÙS¼¸FÔ8RÓSØóóð �O‰OØØó

ð 
	
r&   c                 óÔ  • Sn [         R                  " SSSS9u  pE[        R                  " US5      nUR	                  UR                  S5      5        U(       a  UR                  5         SS	S
SSS	S/U R                     SS	S/U R                     SSSSSU/nU R                  SU R                  Xb5      n[        R                  " U5        U$ ! U(       a  UR                  5         f f = f)zo
Call the ``boxer`` binary with the given input.

:param candc_out: str output from C&C parser
:return: stdout
Nzboxer-z.inT)ÚprefixÚsuffixÚtextÚwúutf-8z--boxÚfalsez--semanticsÚdrsz	--resolveÚtruez--elimeqz--formatÚprologz--instantiatez--input)ÚtempfileÚmkstempr-   ÚfdopenÚwriteÚdecodeÚcloser   r   rg   r2   Úremove)r   r]   r!   ÚfÚfdÚtemp_filenamerj   Ústdouts           r#   rY   ÚBoxer._call_boxerÈ   sê   € ð ˆð	Ü (× 0Ò 0Ø¨°Dñ!ÑˆBô —	’	˜"˜cÓ"ˆAØ�G‰G�I×$Ñ$ WÓ-Ô.æØ—‘”	ð ØØØàØ�fÐ˜dŸm™mÑ,ØØ�fÐ˜dŸl™lÑ+ØØØØØØð
ˆð" —‘˜D $§/¡/°4ÓAˆÜ
�	Š	�-Ô Øˆøö- Ø—‘•	ð ús   „AC ÃC'c           	      ó(   • [        UUS/SXS-   /US9$ )NÚCANDCz)http://svn.ask.it.usyd.edu.au/trac/candc/z.exe)Úpath_to_binÚenv_varsÚurlÚbinary_namesr!   r   )r   Únamer    r!   s       r#   r+   ÚBoxer._find_binaryï   s*   € ÜØØØ�YØ;Ø v¡Ð.Øñ
ð 	
r&   c                 óø  • U(       aE  [        SU5        [        SU5        [        SU5        [        SUS-   SR                  U5      -   5        Uc9  U/U-   n[        R                  " U[        R                  [        R                  S9nOTSR                  XSR                  U5      5      n[        R                  " U[        R                  [        R                  SS	9nUR                  5       u  pxU(       a>  [        S
UR                  5        U(       a  [        SUS5        U(       a  [        SUS5        UR                  S:w  a6  [        SR                  USR                  U5      UR                  U5      5      eU$ )zÖ
Call the binary with the given input.

:param input_str: A string whose contents are used as stdin.
:param binary: The location of the binary to call
:param args: A list of command-line arguments.
:return: stdout
zCalling:zArgs:zInput:zCommand:Ú )r€   Ústderrzecho "{}" | {} {}T)r€   rŒ   ÚshellzReturn code:zstdout:
rc   zstderr:
r   z&ERROR CALLING: {} {}
Returncode: {}
{})	Úprintr0   Ú
subprocessÚPopenÚPIPEÚformatÚcommunicateÚ
returncoder9   )	r   Ú	input_strÚbinaryrj   r!   ÚcmdÚpr€   rŒ   s	            r#   rg   ÚBoxer._callù   s+  € ö Ü�*˜fÔ%Ü�'˜4Ô Ü�(˜IÔ&Ü�*˜f s™l¨S¯X©X°d«^Ñ;Ô<ð ÑØ�(˜T‘/ˆCÜ× Ò  ¬Z¯_©_ÄZÇ_Á_ÑU‰Aà%×,Ñ,¨YÀÇÁÈÃÓOˆCÜ× Ò ØœJŸO™O´J·O±OÈ4ñˆAð Ÿ™›‰ˆæÜ�. !§,¡,Ô/ÞÜ�k 6¨4Ô0ÞÜ�k 6¨4Ô0Ø�<‰<˜1ÓÜØ:×AÑAØ˜CŸH™H T›N¨A¯L©L¸&óóð ð ˆr&   c                 ób  • UR                  S5      R                  S5      n0 nSnU[        U5      :  Gaz  X5   nUR                  S5      (       GaH  UR	                  S5      nUSU nUS   S:X  a  US   S:X  a  US	S nXgS	-   UR	                  S
5       n	US	-  nX5   nUR                  SU	 S35      (       d   eUSS  S:X  a  US S S-   nUR                  S5      (       d
   SU 35       e[        SU	 S35      n
S	nSn[        XjS  5       HB  u  pÞUS:X  a  US	-  nUS:X  d  M  US	-  nUS:X  d  M%  X­-   S	-   nXlUS-    S:X  a  US-   nOUS	-   n  O   US:”  d   eXlS R                  5       nU R                  XøU5      nU R                  R                  U5      XH'   US	-  nU[        U5      :  a  GMz  U$ )Nrq   rc   r   zid(Ú,é   re   éÿÿÿÿé   Ú)zsem(éüÿÿÿz').'z).zcan't parse line: z,[Ú[Ú]z','éþÿÿÿ)rz   ÚsplitrQ   Ú
startswithÚindexÚendswithÚ	enumerateÚstripÚ
_parse_drsr   r@   )r   r^   r\   Úlinesr_   ÚiÚlineÚ	comma_idxr<   Údrs_idÚsearch_startÚbrace_countÚ	drs_startÚjÚcÚ	drs_inputÚparseds                    r#   rZ   ÚBoxer._parse_to_drs_dict"  s  € Ø× Ñ  Ó)×/Ñ/°Ó5ˆØˆØˆØ”#�e“*ŒnØ‘8ˆDØ�‰˜u×%Ò%Ø ŸJ™J s›O�	Ø# A iÐ0�Ø ‘? cÓ)¨l¸2Ñ.>À#Ó.EØ#/°°"Ð#5�LØ¨!™m¨d¯j©j¸«oÐ>�Ø�Q‘�Ø‘x�Ø—‘¨¨f¨X°QÐ'7×8Ñ8Ð8Ð8Ø˜˜�9 Ó&Ø  ˜9 tÑ+�DØ—}‘} T×*Ñ*ÐGÐ.@ÀÀÐ,GÓGÐ*ä" T¨&¨°Ð#4Ó5�Ø�Ø�	Ü% d¨=Ð&9Ö:‘D�AØ˜C“xØ# qÑ(˜Ø˜C•xØ# qÑ(˜Ø&¨!Õ+Ø(4Ñ(8¸1Ñ(<˜IØ#°	¸A±Ð>À%ÓGØ,5¸©M¡	à,5¸©M 	Ù!ñ ;ð ! 2“~Ð%�~à ¨2Ð.×4Ñ4Ó6�	ØŸ™¨À+ÓN�Ø)-×)DÑ)D×)NÑ)NÈvÓ)V�Ñ&Ø�‰FˆAðG ”#�e“*ŽnðH ˆr&   c                 ó@   • [        S U/U   5      R                  U5      $ rK   )ÚBoxerOutputDrsParserÚparse)r   Ú
drs_stringr<   r\   s       r#   rª   ÚBoxer._parse_drsL  s"   € Ü# T¨<Ð$8¸Ñ$EÓF×LÑLÈZÓXÐXr&   )r2   r   r,   r1   r   r   )NFNFT©F)NFF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r$   r   r@   rC   rG   r8   rX   rY   r+   rg   rZ   rª   Ú__static_attributes__rL   r&   r#   r   r   ;   so   † ñð #ØØØØô+ô8Gôôð  CHô
ð  CHô@ô8
ô6%ôN
ð -/¸ô 'òR(õTYr&   r   c                   óÖ   • \ rS rSrS#S jrS#S jrS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S  r!S! r"S"r#g)$r¹   iP  Nc                 óZ   • [         R                  " U 5        Xl        SU l        S/U l        g)zb
This class is used to parse the Prolog DRS output from Boxer into a
hierarchy of python objects.
N)re   re   Ú\F)r   r$   r<   Úsentence_id_offsetÚquote_chars©r   r<   s     r#   r$   ÚBoxerOutputDrsParser.__init__Q  s+   € ô
 	×Ò˜4Ô Ø(ÔØ"&ˆÔØ3Ð4ˆÕr&   c                 ó0   • [         R                  " XU5      $ rK   )r   rº   )r   ÚdataÚ	signatures      r#   rº   ÚBoxerOutputDrsParser.parse[  s   € Ü�Š˜t¨9Ó5Ð5r&   c                 ó
   • / SQ$ )N)Ú(rŸ   r›   r¡   r¢   Ú:rL   ©r   s    r#   Úget_all_symbolsÚ$BoxerOutputDrsParser.get_all_symbols^  s   € Ú-Ð-r&   c                 ó$   • U R                  U5      $ rK   )Ú
handle_drs)r   ÚtokÚcontexts      r#   ÚhandleÚBoxerOutputDrsParser.handlea  s   € Ø�‰˜sÓ#Ð#r&   c                 ó   • U$ rK   rL   ©r   Ú
expressionrØ   s      r#   Úattempt_adjunctsÚ%BoxerOutputDrsParser.attempt_adjunctsd  ó   € ØÐr&   c                 ód   • U R                  5       nU R                  X!5      nUc  [        U5      eU$ )z;
Parse a DRS condition

:return: list of ``DrtExpression``
)ÚtokenÚhandle_conditionr   )r   Úindicesr×   Úaccums       r#   Úparse_conditionÚ$BoxerOutputDrsParser.parse_conditiong  s4   € ð �j‰j‹lˆØ×%Ñ% cÓ3ˆØ‰=Ü*¨3Ó/Ð/Øˆr&   c                 óÐ   • US:X  a  U R                  5       $ US;   a"  U R                  U R                  5      " S / 5      $ US;   a"  U R                  U R                  5      " S / 5      $ g )Nrs   )ÚmergeÚsmerge)Úalfa)Ú	parse_drsÚ_handle_binary_expressionÚ_make_merge_expressionÚ_handle_alfa)r   r×   s     r#   rÖ   ÚBoxerOutputDrsParser.handle_drss  sh   € Ø�%‹<Ø—>‘>Ó#Ð#ØÐ'Ó'Ø×1Ñ1°$×2MÑ2MÔNÈtÐUWÓXÐXØ�H‹_Ø×$Ñ$ T×%@Ñ%@ÔAÀ$ÈÓKÐKð r&   c                 óº  ^• US:X  a  U R                  5       /$ US:X  a  U R                  U R                  5      /mOüUS:X  a  U R                  U R                  5      /mOÙUS:X  a  U R	                  5       /mOÁUS:X  a  U R                  5       /mO©US:X  a  U R                  5       /mO‘US:X  a  U R                  5       /mOyUS:X  a  U R                  5       /mOaUS	:X  a  U R                  5       mOJUS
:X  a  U R                  5       /mO2US:X  a  U R                  5       /mOUS:X  a  U R                  5       /mO/ m[        U4S jU R                  U5       5       / 5      $ )zX
Handle a DRS condition

:param indices: list of int
:return: list of ``DrtExpression``
ÚnotÚorÚimpÚeqÚpropÚpredÚnamedÚrelÚtimexÚcardÚwhqÚduplexc              3   ób   >#   • U  H  u  pT Vs/ s H
  o3" X5      PM     snv •  M!     g s  snf 7frK   rL   )rM   Ú
sent_indexÚword_indicesÚcondÚcondss       €r#   rO   Ú8BoxerOutputDrsParser.handle_condition.<locals>.<genexpr>¢  s6   øé € ð â0TÑ,�Jñ =BÓBºE°D��jÖ/¹EÖBÚ0Tùò Cùs   ƒ/�* /)Ú_handle_notrí   Ú_make_or_expressionÚ_make_imp_expressionÚ
_handle_eqÚ_handle_propÚ_handle_predÚ_handle_namedÚ_handle_relÚ_handle_timexÚ_handle_cardÚ_handle_whqÚ_handle_duplexrh   Ú_sent_and_word_indices)r   r×   rä   r  s      @r#   rã   Ú%BoxerOutputDrsParser.handle_condition{  sb  ø€ ð �%‹<Ø×$Ñ$Ó&Ð'Ð'à�$‹;Ø×3Ñ3°D×4LÑ4LÓMÐN‰EØ�E‹\Ø×3Ñ3°D×4MÑ4MÓNÐO‰EØ�D‹[Ø—_‘_Ó&Ð'‰EØ�F‹]Ø×&Ñ&Ó(Ð)‰Eà�F‹]Ø×&Ñ&Ó(Ð)‰EØ�G‹^Ø×'Ñ'Ó)Ð*‰EØ�E‹\Ø×%Ñ%Ó'Ð(‰EØ�G‹^Ø×&Ñ&Ó(‰EØ�F‹]Ø×&Ñ&Ó(Ð)‰Eà�E‹\Ø×%Ñ%Ó'Ð(‰EØ�H‹_Ø×(Ñ(Ó*Ð+‰Eð ˆEäôà04×0KÑ0KÈGÔ0Tóð ó
ð 	
r&   c                 óº   • U R                  U R                  5       S5        U R                  S 5      nU R                  U R                  5       S5        [        U5      $ )NrÐ   rŸ   )ÚassertTokenrâ   Úprocess_next_expressionÚBoxerNot©r   rs   s     r#   r  Ú BoxerOutputDrsParser._handle_not©  sH   € Ø×Ñ˜Ÿ™› sÔ+Ø×*Ñ*¨4Ó0ˆØ×Ñ˜Ÿ™› sÔ+Ü˜‹}Ðr&   c                 óö  ^ ^^^^• T R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        [        T R                  5       5      mT R                  T R                  5       S5        UUU UU4S jnU$ )NrÐ   r›   rŸ   c           	      ó8   >• [        TR                  XTTTT5      $ rK   ©Ú	BoxerPredr<   )rÿ   r   rˆ   Úposr   ÚsenseÚvariables     €€€€€r#   Ú_handle_pred_fÚ9BoxerOutputDrsParser._handle_pred.<locals>._handle_pred_f»  s$   ø€ ÜØ×!Ñ! :¸XÀtÈSÐRWóð r&   ©r  râ   Úparse_variableÚint)r   r  rˆ   r  r  r  s   ` @@@@r#   r	  Ú!BoxerOutputDrsParser._handle_pred¯  s·   ü€ à×Ñ˜Ÿ™› sÔ+Ø×&Ñ&Ó(ˆØ×Ñ˜Ÿ™› sÔ+Ø�z‰z‹|ˆØ×Ñ˜Ÿ™› sÔ+Ø�j‰j‹lˆØ×Ñ˜Ÿ™› sÔ+Ü�D—J‘J“LÓ!ˆØ×Ñ˜Ÿ™› sÔ+÷	ñ 	ð
 Ðr&   c                 ó  ^ ^^^^• T R                  T R                  5       S5        / mT R                  T R                  5       S5        T R                  T R                  5       S5        T R                  S 5      mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  S 5      mT R                  T R                  5       S5        UUUUU 4S j$ )NrÐ   rü   r›   rŸ   c           	      ó8   >• [        TR                  XTTTT5      $ rK   ©ÚBoxerWhqr<   ©rÿ   r   Ú	ans_typesÚd1Úd2Úrefr   s     €€€€€r#   Ú<lambda>Ú5BoxerOutputDrsParser._handle_duplex.<locals>.<lambda>ß  ó   ø€ ´Ø×Ñ˜z¸ÀBÈÈRô1
r&   )r  râ   r  r"  )r   r*  r+  r,  r-  s   `@@@@r#   r  Ú#BoxerOutputDrsParser._handle_duplexÂ  sË   ü€ à×Ñ˜Ÿ™› sÔ+àˆ	ð" 	×Ñ˜Ÿ™› uÔ-Ø×Ñ˜Ÿ™› sÔ+Ø×)Ñ)¨$Ó/ˆØ×Ñ˜Ÿ™› sÔ+Ø×!Ñ!Ó#ˆØ×Ñ˜Ÿ™› sÔ+Ø×)Ñ)¨$Ó/ˆØ×Ñ˜Ÿ™› sÔ+÷
ð 
ð 	
r&   c                 óà  ^ ^^^^• T R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        UU UUU4S j$ )NrÐ   r›   rŸ   c           	      ó8   >• [        TR                  XTTTT5      $ rK   )Ú
BoxerNamedr<   )rÿ   r   rˆ   r   r  Útyper  s     €€€€€r#   r.  Ú4BoxerOutputDrsParser._handle_named.<locals>.<lambda>î  s   ø€ ´
Ø×Ñ˜z¸À4ÈÈuô1
r&   ©r  râ   r"  )r   rˆ   r  r5  r  s   `@@@@r#   r
  Ú"BoxerOutputDrsParser._handle_namedã  s¯   ü€ à×Ñ˜Ÿ™› sÔ+Ø×&Ñ&Ó(ˆØ×Ñ˜Ÿ™› sÔ+Ø�z‰z‹|ˆØ×Ñ˜Ÿ™› sÔ+Ø�z‰z‹|ˆØ×Ñ˜Ÿ™› sÔ+Ø—
‘
“ˆØ×Ñ˜Ÿ™› sÔ+÷
ð 
ð 	
r&   c                 óò  ^ ^^^^• T R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        [        T R                  5       5      mT R                  T R                  5       S5        UU UUU4S j$ )NrÐ   r›   rŸ   c           	      ó8   >• [        TR                  XTTTT5      $ rK   )ÚBoxerRelr<   )rÿ   r   rù   r   r  Úvar1Úvar2s     €€€€€r#   r.  Ú2BoxerOutputDrsParser._handle_rel.<locals>.<lambda>ý  s   ø€ ´Ø×Ñ˜z¸¸tÀSÈ%ô1
r&   r!  )r   rù   r  r<  r=  s   `@@@@r#   r  Ú BoxerOutputDrsParser._handle_relò  s·   ü€ à×Ñ˜Ÿ™› sÔ+Ø×"Ñ"Ó$ˆØ×Ñ˜Ÿ™› sÔ+Ø×"Ñ"Ó$ˆØ×Ñ˜Ÿ™› sÔ+Ø�j‰j‹lˆØ×Ñ˜Ÿ™› sÔ+Ü�D—J‘J“LÓ!ˆØ×Ñ˜Ÿ™› sÔ+÷
ð 
ð 	
r&   c                 ó  • U R                  U R                  5       S5        U R                  5       nU R                  U R                  5       S5        U R                  U5      nU R                  U R                  5       S5        U$ )NrÐ   r›   rŸ   )r  râ   r"  Ú_handle_time_expression)r   ÚargÚ	new_condss      r#   r  Ú"BoxerOutputDrsParser._handle_timex  sh   € à×Ñ˜Ÿ™› sÔ+Ø×!Ñ!Ó#ˆØ×Ñ˜Ÿ™› sÔ+Ø×0Ñ0°Ó5ˆ	Ø×Ñ˜Ÿ™› sÔ+ØÐr&   c                 ó^  ^ ^^• T R                  5       mT R                  T R                  5       S5        TS:X  a  T R                  T5      nOTS:X  a  T R                  T5      nOg T R                  T R                  5       S5        S nUU U4S j/U Vs/ s H
  oC" U5      PM     sn-   $ s  snf )NrÐ   ÚdateÚtimerŸ   c                 ó   ^ • U 4S j$ )Nc                 ó   >• T$ rK   rL   )rÿ   r   Úxs     €r#   r.  ÚPBoxerOutputDrsParser._handle_time_expression.<locals>.func_gen.<locals>.<lambda>  s   ø€ ±Ar&   rL   )rJ  s   `r#   Úfunc_genÚ>BoxerOutputDrsParser._handle_time_expression.<locals>.func_gen  s	   ø€ Ü5Ð5r&   c           	      ó8   >• [        TR                  XTTSS5      $ )NÚnr   r  )rÿ   r   rB  r   r×   s     €€€r#   r.  Ú>BoxerOutputDrsParser._handle_time_expression.<locals>.<lambda>  s   ø€ ¬YØ×!Ñ! :¸SÀ#ÀsÈAô.r&   )râ   r  Ú_handle_dateÚ_handle_time)r   rB  r  rL  r  r×   s   ``   @r#   rA  Ú,BoxerOutputDrsParser._handle_time_expression
  s¡   ú€ à�j‰j‹lˆØ×Ñ˜Ÿ™› sÔ+Ø�&‹=Ø×%Ñ% cÓ*‰EØ�F‹]Ø×%Ñ% cÓ*‰EàØ×Ñ˜Ÿ™› sÔ+ò	6öð
ñ ).Ó.ª ˆX�dŽ^©Ñ.ñ	/ð 	/ùò /s   ÂB*c                 ó’  • / nU R                  U R                  5       5      u  u  p4U R                  U R                  5       S5        U R                  5       nU R                  U R                  5       S5        UR	                  [        U R                  UUUSU 3SS5      5        U R                  U R                  5       S5        U R                  U R                  5       5      u  u  p4U R                  5       nUS:w  a?  UR                  SS	5      nUR	                  [        U R                  UUUS
U 3SS5      5        U R                  U R                  5       S5        U R                  U R                  5       5      u  u  p4U R                  5       nUS:w  a-  UR	                  [        U R                  UUUSU 3SS5      5        U R                  U R                  5       S5        U R                  U R                  5       5      u  u  p4U R                  5       nUS:w  a-  UR	                  [        U R                  UUUSU 3SS5      5        U$ )NrÐ   rŸ   Ú	date_pol_Úar   r›   ÚXXXXrÑ   Ú_Ú
date_year_ÚXXÚdate_month_Ú	date_day_)r  Ú_parse_index_listr  râ   Úappendr  r<   Úreplace)	r   rB  r  rÿ   r   ÚpolÚyearÚmonthÚdays	            r#   rQ  Ú!BoxerOutputDrsParser._handle_date  s;  € àˆØ(,×(CÑ(CØ×"Ñ"Ó$ó)
Ñ%Ñ	#ˆ*ð 	×Ñ˜Ÿ™› sÔ+Ø�j‰j‹lˆØ×Ñ˜Ÿ™› sÔ+Ø�‰ÜØ×!Ñ!ØØØØ˜C˜5Ð!ØØóô
	
ð 	×Ñ˜Ÿ™› sÔ+à(,×(CÑ(CØ×"Ñ"Ó$ó)
Ñ%Ñ	#ˆ*ð �z‰z‹|ˆØ�6‹>Ø—<‘<  SÓ)ˆDØ�L‰LÜØ×%Ñ%ØØ ØØ   Ð'ØØóô
ð 	×Ñ˜Ÿ™› sÔ+à(,×(CÑ(CØ×"Ñ"Ó$ó)
Ñ%Ñ	#ˆ*ð —
‘
“ˆØ�D‹=Ø�L‰LÜØ×%Ñ%ØØ ØØ! % Ð)ØØóô
ð 	×Ñ˜Ÿ™› sÔ+à(,×(CÑ(CØ×"Ñ"Ó$ó)
Ñ%Ñ	#ˆ*ð �j‰j‹lˆØ�$‹;Ø�L‰LÜØ×%Ñ%ØØ ØØ ˜uÐ%ØØóô
ð ˆr&   c                 ó4  • / nU R                  5         U R                  5       nUS:w  a!  UR                  U R                  SX5      5        U R	                  U R                  5       S5        U R                  5         U R                  5       nUS:w  a!  UR                  U R                  SX5      5        U R	                  U R                  5       S5        U R                  5         U R                  5       nUS:w  a!  UR                  U R                  SX5      5        U$ )NrZ  Úr_hour_2r›   Úr_min_2Úr_sec_2)r]  râ   r^  Ú
_make_atomr  )r   rB  r  ÚhourÚminÚsecs         r#   rR  Ú!BoxerOutputDrsParser._handle_timem  s×   € àˆØ×ÑÔ Ø�z‰z‹|ˆØ�4‹<Ø�L‰L˜Ÿ™¨°SÓ?Ô@Ø×Ñ˜Ÿ™› sÔ+à×ÑÔ Ø�j‰j‹lˆØ�$‹;Ø�L‰L˜Ÿ™¨°CÓ=Ô>Ø×Ñ˜Ÿ™› sÔ+à×ÑÔ Ø�j‰j‹lˆØ�$‹;Ø�L‰L˜Ÿ™¨°CÓ=Ô>àˆr&   c                 ó|  ^ ^^^• T R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        U UUU4S j$ )NrÐ   r›   rŸ   c                 ó6   >• [        TR                  XTTT5      $ rK   )Ú	BoxerCardr<   )rÿ   r   r   r5  Úvaluer  s     €€€€r#   r.  Ú3BoxerOutputDrsParser._handle_card.<locals>.<lambda>Œ  s   ø€ ´	Ø×Ñ˜z¸À5È$ô1
r&   r7  )r   r5  rq  r  s   `@@@r#   r  Ú!BoxerOutputDrsParser._handle_cardƒ  s‰   û€ à×Ñ˜Ÿ™› sÔ+Ø×&Ñ&Ó(ˆØ×Ñ˜Ÿ™› sÔ+Ø—
‘
“ˆØ×Ñ˜Ÿ™› sÔ+Ø�z‰z‹|ˆØ×Ñ˜Ÿ™› sÔ+÷
ð 	
r&   c                 ó  ^ ^^• T R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  S 5      mT R                  T R                  5       S5        UU U4S j$ )NrÐ   r›   rŸ   c                 ó4   >• [        TR                  XTT5      $ rK   )Ú	BoxerPropr<   )rÿ   r   rs   r   r  s     €€€r#   r.  Ú3BoxerOutputDrsParser._handle_prop.<locals>.<lambda>—  s   ø€ ´	Ø×Ñ˜z¸À3ô1
r&   )r  râ   r"  r  )r   rs   r  s   `@@r#   r  Ú!BoxerOutputDrsParser._handle_prop�  sm   ú€ à×Ñ˜Ÿ™› sÔ+Ø×&Ñ&Ó(ˆØ×Ñ˜Ÿ™› sÔ+Ø×*Ñ*¨4Ó0ˆØ×Ñ˜Ÿ™› sÔ+ö
ð 	
r&   c                 óŠ  • / nU R                  U R                  5       S5        U R                  S5      S:w  a[  UR                  U R                  5       5        U R                  S5      S:X  a  U R                  5         U R                  S5      S:w  a  M[  U R                  5         U R                  U R                  5       S5        U$ )Nr¡   r   r¢   r›   rÑ   )r  râ   r^  Úparse_index)r   rä   s     r#   r]  Ú&BoxerOutputDrsParser._parse_index_list›  s“   € àˆØ×Ñ˜Ÿ™› sÔ+Ø�j‰j˜‹m˜sÓ"Ø�N‰N˜4×+Ñ+Ó-Ô.Ø�z‰z˜!‹} Ó#Ø—
‘
”ð �j‰j˜‹m˜sÕ"ð 	�
‰
ŒØ×Ñ˜Ÿ™› sÔ+Øˆr&   c                 óÆ  • U R                  U R                  5       S5        U R                  U R                  5       S5        [        5       nU R                  S5      S:w  ak  U R                  5       nUR	                  U R                  5       5        U R                  S5      S:X  a  U R                  5         U R                  S5      S:w  a  Mk  U R                  5         U R                  U R                  5       S5        U R                  U R                  5       S5        / nU R                  S5      S:w  al  U R                  5       nUR                  U R                  U5      5        U R                  S5      S:X  a  U R                  5         U R                  S5      S:w  a  Ml  U R                  5         U R                  U R                  5       S5        [        [        U5      U5      $ )NrÐ   r¡   r   r¢   r›   rŸ   )
r  râ   Úsetr]  Úaddr"  Úextendræ   ÚBoxerDrsrT   )r   Úrefsrä   r  s       r#   rì   ÚBoxerOutputDrsParser.parse_drs§  sc  € ð 	×Ñ˜Ÿ™› sÔ+Ø×Ñ˜Ÿ™› sÔ+Ü‹uˆØ�j‰j˜‹m˜sÓ"Ø×,Ñ,Ó.ˆGØ�H‰H�T×(Ñ(Ó*Ô+Ø�z‰z˜!‹} Ó#Ø—
‘
”ð	 �j‰j˜‹m˜sÕ"ð
 	�
‰
ŒØ×Ñ˜Ÿ™› sÔ+Ø×Ñ˜Ÿ™› sÔ+ØˆØ�j‰j˜‹m˜sÓ"Ø×,Ñ,Ó.ˆGØ�L‰L˜×-Ñ-¨gÓ6Ô7Ø�z‰z˜!‹} Ó#Ø—
‘
”ð	 �j‰j˜‹m˜sÕ"ð
 	�
‰
ŒØ×Ñ˜Ÿ™› sÔ+Üœ˜T›
 EÓ*Ð*r&   c                 ó  ^^^• U R                  U R                  5       S5        U R                  S 5      mU R                  U R                  5       S5        U R                  S 5      mU R                  U R                  5       S5        UUU4S j$ )NrÐ   r›   rŸ   c                 ó   >• T" XTT5      $ rK   rL   ©rÿ   r   Údrs1Údrs2Úmake_callbacks     €€€r#   r.  Ú@BoxerOutputDrsParser._handle_binary_expression.<locals>.<lambda>Æ  ó   ø€ ±Ø d¨Dô1
r&   ©r  râ   r  )r   rˆ  r†  r‡  s    `@@r#   rí   Ú.BoxerOutputDrsParser._handle_binary_expressionÀ  so   ú€ Ø×Ñ˜Ÿ™› sÔ+Ø×+Ñ+¨DÓ1ˆØ×Ñ˜Ÿ™› sÔ+Ø×+Ñ+¨DÓ1ˆØ×Ñ˜Ÿ™› sÔ+ö
ð 	
r&   c                 ó|  ^^^• U R                  U R                  5       S5        U R                  5       nU R                  U R                  5       S5        U R                  S 5      mU R                  U R                  5       S5        U R                  S 5      mU R                  U R                  5       S5        UUU4S j$ )NrÐ   r›   rŸ   c                 ó   >• T" XTT5      $ rK   rL   r…  s     €€€r#   r.  Ú3BoxerOutputDrsParser._handle_alfa.<locals>.<lambda>Ò  rŠ  r&   r‹  )r   rˆ  r5  r†  r‡  s    ` @@r#   rï   Ú!BoxerOutputDrsParser._handle_alfaÊ  s�   ú€ Ø×Ñ˜Ÿ™› sÔ+Ø�z‰z‹|ˆØ×Ñ˜Ÿ™› sÔ+Ø×+Ñ+¨DÓ1ˆØ×Ñ˜Ÿ™› sÔ+Ø×+Ñ+¨DÓ1ˆØ×Ñ˜Ÿ™› sÔ+ö
ð 	
r&   c                 ó  ^ ^^• T R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        T R                  5       mT R                  T R                  5       S5        U UU4S j$ )NrÐ   r›   rŸ   c                 ó4   >• [        TR                  XTT5      $ rK   )ÚBoxerEqr<   )rÿ   r   r   r<  r=  s     €€€r#   r.  Ú1BoxerOutputDrsParser._handle_eq.<locals>.<lambda>Ü  s   ø€ ´Ø×Ñ˜z¸¸tô1
r&   r7  )r   r<  r=  s   `@@r#   r  ÚBoxerOutputDrsParser._handle_eqÖ  sk   ú€ Ø×Ñ˜Ÿ™› sÔ+Ø×"Ñ"Ó$ˆØ×Ñ˜Ÿ™› sÔ+Ø×"Ñ"Ó$ˆØ×Ñ˜Ÿ™› sÔ+ö
ð 	
r&   c                 ó  ^ ^^^^• T R                  T R                  5       S5        T R                  T R                  5       S5        / mT R                  S5      S:w  aÝ  T R                  5       nT R                  T R                  5       S5        US:X  a   TR                  T R                  5       5        OpUS:X  aK  TR                  S5        T R                  5       nUS	:X  a  TR                  S
5        O1TR                  U5        OTR                  T R                  5       5        T R                  S5      S:w  a  MÝ  T R                  5         T R                  T R                  5       S5        T R                  S 5      mT R                  T R                  5       S5        T R	                  5       mT R                  T R                  5       S5        T R                  S 5      mT R                  T R                  5       S5        UUUUU 4S j$ )NrÐ   r¡   r   r¢   rÑ   ÚdesÚnumÚnumberÚcouÚcountr›   rŸ   c           	      ó8   >• [        TR                  XTTTT5      $ rK   r'  r)  s     €€€€€r#   r.  Ú2BoxerOutputDrsParser._handle_whq.<locals>.<lambda>û  r0  r&   )r  râ   r^  r  r"  )r   ÚcatÚtypr*  r+  r,  r-  s   `  @@@@r#   r  Ú BoxerOutputDrsParser._handle_whqà  s‰  ü€ Ø×Ñ˜Ÿ™› sÔ+Ø×Ñ˜Ÿ™› sÔ+Øˆ	Ø�j‰j˜‹m˜sÓ"Ø—*‘*“,ˆCØ×Ñ˜TŸZ™Z›\¨3Ô/Ø�e‹|Ø× Ñ  §¡£Õ.Ø˜“Ø× Ñ  Ô*Ø—j‘j“l�Ø˜%“<Ø×$Ñ$ WÕ-à×$Ñ$ SÕ)à× Ñ  §¡£Ô.ð �j‰j˜‹m˜sÕ"ð 	�
‰
Œà×Ñ˜Ÿ™› sÔ+Ø×)Ñ)¨$Ó/ˆØ×Ñ˜Ÿ™› sÔ+Ø×!Ñ!Ó#ˆØ×Ñ˜Ÿ™› sÔ+Ø×)Ñ)¨$Ó/ˆØ×Ñ˜Ÿ™› sÔ+÷
ð 
ð 	
r&   c                 óv   • [        UR                  UR                  -   UR                  UR                  -   5      $ rK   ©r€  r�  r  ©r   rÿ   r   r†  r‡  s        r#   rî   Ú+BoxerOutputDrsParser._make_merge_expressionÿ  s)   € Ü˜Ÿ	™	 D§I¡IÑ-¨t¯z©z¸D¿J¹JÑ/FÓGÐGr&   c                 ó0   • [        U R                  XX45      $ rK   )ÚBoxerOrr<   r£  s        r#   r  Ú(BoxerOutputDrsParser._make_or_expression  s   € Ü�t×(Ñ(¨*ÀDÓOÐOr&   c                 óD   • [        UR                  UR                  U5      $ rK   r¢  r£  s        r#   r  Ú)BoxerOutputDrsParser._make_imp_expression  s   € Ü˜Ÿ	™	 4§:¡:¨tÓ4Ð4r&   c                 ól   • U R                  5       n[        R                  " SU5      (       d   U5       eU$ )Nz^[exps]\d+$)râ   ÚreÚmatch©r   Úvars     r#   r"  Ú#BoxerOutputDrsParser.parse_variable  s.   € Ø�j‰j‹lˆÜ�xŠx˜¨×,Ñ,Ð1¨cÓ1Ð,Øˆ
r&   c                 ó4   • [        U R                  5       5      $ rK   )r#  râ   rÒ   s    r#   rz  Ú BoxerOutputDrsParser.parse_index  s   € Ü�4—:‘:“<Ó Ð r&   c                 ó,  • U Vs1 s H  o"S:¼  d  M
  US-  S-
  iM     nnU(       aD  / nU H:  nU Vs/ s H  o%US-  S-
  :X  d  M  US-  S-
  PM     nnUR                  XV45        M<     U$ U Vs/ s H
  o"S-  S-
  PM     nnSU4/$ s  snf s  snf s  snf )z4
:return: list of (sent_index, word_indices) tuples
r   iè  rž   N)r^  )r   rä   r¬   Úsent_indicesÚpairsrÿ   r   s          r#   r  Ú+BoxerOutputDrsParser._sent_and_word_indices  s¼   € ñ 18ÓB²¨1À¹6›˜˜T™ Qœ±ˆÐBÞØˆEÛ*�
á,3ó Ú,3 qÀaÈ$ÁhÐRSÁ^Ñ7S“N�Q˜‘X ”N©Gð ð  ð —‘˜jÐ7Ö8ñ	 +ð
 ˆLá4;Ó<²G¨q ™X¨œN±GˆLÐ<Ø˜<Ð(Ð)Ð)ùò Cùò ùò =s   …	B’B²BÁBÁ/B)r<   rÈ   rÇ   rK   )$r¾   r¿   rÀ   rÁ   r$   rº   rÓ   rÙ   rÞ   ræ   rÖ   rã   r  r	  r  r
  r  r  rA  rQ  rR  r  r  r]  rì   rí   rï   r  r  rî   r  r  r"  rz  r  rÃ   rL   r&   r#   r¹   r¹   P  s¤   † ô5ô6ò.ò$òò
òLò,
ò\òò&
òB
ò
òò/ò*Lò\ò,
ò	
ò
ò+ò2
ò

ò
ò
ò>HòPò5òò
!õ*r&   r¹   c                   ó@   • \ rS rSrSrSS jrS rS rS rS r	S	 r
S
rg)ÚBoxerDrsParseri"  z<
Reparse the str form of subclasses of ``AbstractBoxerDrs``
Nc                 ó<   • [         R                  " U 5        Xl        g rK   )r   r$   r<   rÉ   s     r#   r$   ÚBoxerDrsParser.__init__'  s   € Ü×Ò˜4Ô Ø(Õr&   c                 óœ   • [         R                  [         R                  [         R                  [         R                  [         R
                  /$ rK   )r   ÚOPENÚCLOSEÚCOMMAÚOPEN_BRACKETÚCLOSE_BRACKETrÒ   s    r#   rÓ   ÚBoxerDrsParser.get_all_symbols+  s3   € ä�N‰NÜ�O‰OÜ�O‰OÜ×"Ñ"Ü×#Ñ#ð
ð 	
r&   c                 ó   • U$ rK   rL   rÜ   s      r#   rÞ   ÚBoxerDrsParser.attempt_adjuncts4  rà   r&   c           	      ó¤  •  US:X  Ga¸  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        U R                  5       nU R                  [        R
                  5        [        [        [        U R                  5       5      5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        U R	                  5       nU R                  [        R
                  5        U R	                  5       nU R                  [        R
                  5        [        U R	                  5       5      n	U R                  [        R                  5        [        X4XVXxU	5      $ US:X  Ga¸  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        [        [        U R                  5       5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        U R	                  5       nU R                  [        R
                  5        U R	                  5       n
U R                  [        R
                  5        [        U R	                  5       5      n	U R                  [        R                  5        [        X4XVXzU	5      $ US:X  GaÁ  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        U R                  5       nU R                  [        R
                  5        [        [        [        U R                  5       5      5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        U R	                  5       nU R                  [        R
                  5        [        U R	                  5       5      n	U R                  [        R                  5        [        X4X[XÍU	5      $ US:X  GaZ  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        [        [        [        U R                  5       5      5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        U R                  S 5      nU R                  [        R                  5        [!        X4XVU5      $ US:X  aZ  U R                  [        R                  5        U R                  S 5      nU R                  [        R                  5        [#        U5      $ US:X  a   U R                  [        R                  5        U R                  S 5      nU R                  [        R
                  5        U R                  S 5      nU R                  [        R                  5        [%        UR&                  UR(                  U5      $ US:X  Ga@  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        U R                  5       nU R                  [        R
                  5        [        [        U R                  5       5      nU R                  [        R
                  5        U R                  S 5      nU R                  [        R
                  5        U R                  S 5      nU R                  [        R                  5        [+        X4X_U5      $ US:X  GaY  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        U R                  5       nU R                  [        R
                  5        [        [        [        U R                  5       5      5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R                  5        [-        X4X[U5      $ US	:X  Gax  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        U R                  5       nU R                  [        R
                  5        [        [        U R                  5       5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        U R	                  5       nU R                  [        R
                  5        U R	                  5       n
U R                  [        R                  5        [/        X4UUUU
5      $ US
:X  Ga³  U R                  [        R                  5        U R                  b  U R                  OU R	                  5       nU R                  [        R
                  5        U R                  5       nU R                  [        R
                  5        [        [        [        U R                  5       5      5      nU R                  [        R
                  5        U R                  5       nU R                  [        R
                  5        U R                  S 5      nU R                  [        R
                  5        [        U R	                  5       5      nU R                  [        R
                  5        U R                  S 5      nU R                  [        R                  5        [1        X4UUUUU5      $   [;        U5      5       e! [2         a%  n[5        U R6                  [9        U5      5      UeS nAff = f)Nr÷   rø   rù   rö   rò   rô   ró   rõ   rû   rü   )ÚassertNextTokenr   r»  r<   râ   r½  ÚnullableIntTokenrT   rU   r#  Úhandle_refsr¼  r  r4  r;  r  rv  r  r€  r�  r  r¦  r“  rp  r(  r9   r   Ú_currentIndexrV   Úrepr)r   r×   rØ   Údisc_idÚsent_idÚword_idsr  rˆ   r  r  r5  r<  r=  rù   rs   r†  r‡  r®  rq  r*  Úes                        r#   rÙ   ÚBoxerDrsParser.handle7  s‰	  € ðc	Pð �fŒ}Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ø×/Ñ/Ó1�Ø×$Ñ$¤Y§_¡_Ô5Ü¤¤C¨×)9Ñ)9Ó);Ó <Ó=�Ø×$Ñ$¤Y§_¡_Ô5Ü˜tŸz™z›|Ó,�Ø×$Ñ$¤Y§_¡_Ô5Ø—z‘z“|�Ø×$Ñ$¤Y§_¡_Ô5Ø—j‘j“l�Ø×$Ñ$¤Y§_¡_Ô5Ü˜DŸJ™J›LÓ)�Ø×$Ñ$¤Y§_¡_Ô5Ü  °8ÀtÐRWÓXÐXØ˜”Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ü˜dŸj™j›lÓ+�Ø×$Ñ$¤Y§_¡_Ô5Üœs D×$4Ñ$4Ó$6Ó7�Ø×$Ñ$¤Y§_¡_Ô5Ü˜tŸz™z›|Ó,�Ø×$Ñ$¤Y§_¡_Ô5Ø—z‘z“|�Ø×$Ñ$¤Y§_¡_Ô5Ø—z‘z“|�Ø×$Ñ$¤Y§_¡_Ô5Ü˜DŸJ™J›LÓ)�Ø×$Ñ$¤Y§_¡_Ô5Ü!Ø h¸$Àeóð ð ˜”Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ø×/Ñ/Ó1�Ø×$Ñ$¤Y§_¡_Ô5Ü¤¤C¨×)9Ñ)9Ó);Ó <Ó=�Ø×$Ñ$¤Y§_¡_Ô5Ü˜4Ÿ:™:›<Ó(�Ø×$Ñ$¤Y§_¡_Ô5Ü˜4Ÿ:™:›<Ó(�Ø×$Ñ$¤Y§_¡_Ô5Ø—j‘j“l�Ø×$Ñ$¤Y§_¡_Ô5Ü˜DŸJ™J›LÓ)�Ø×$Ñ$¤Y§_¡_Ô5Ü °(À$ÈUÓSÐSØ˜”Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ü˜dŸj™j›lÓ+�Ø×$Ñ$¤Y§_¡_Ô5Ü¤¤C¨×)9Ñ)9Ó);Ó <Ó=�Ø×$Ñ$¤Y§_¡_Ô5Ü˜tŸz™z›|Ó,�Ø×$Ñ$¤Y§_¡_Ô5Ø×2Ñ2°4Ó8�Ø×$Ñ$¤Y§_¡_Ô5Ü  °8ÀsÓKÐKØ˜“Ø×$Ñ$¤Y§^¡^Ô4Ø×2Ñ2°4Ó8�Ø×$Ñ$¤Y§_¡_Ô5Ü “}Ð$Ø˜“Ø×$Ñ$¤Y§^¡^Ô4Ø×3Ñ3°DÓ9�Ø×$Ñ$¤Y§_¡_Ô5Ø×3Ñ3°DÓ9�Ø×$Ñ$¤Y§_¡_Ô5Ü §	¡	¨4¯:©:°tÓ<Ð<Ø˜”Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ø×/Ñ/Ó1�Ø×$Ñ$¤Y§_¡_Ô5Üœs D×$4Ñ$4Ó$6Ó7�Ø×$Ñ$¤Y§_¡_Ô5Ø×3Ñ3°DÓ9�Ø×$Ñ$¤Y§_¡_Ô5Ø×3Ñ3°DÓ9�Ø×$Ñ$¤Y§_¡_Ô5Ü˜w°ÀÓFÐFØ˜”Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ø×/Ñ/Ó1�Ø×$Ñ$¤Y§_¡_Ô5Ü¤¤C¨×)9Ñ)9Ó);Ó <Ó=�Ø×$Ñ$¤Y§_¡_Ô5Ü˜4Ÿ:™:›<Ó(�Ø×$Ñ$¤Y§_¡_Ô5Ü˜4Ÿ:™:›<Ó(�Ø×$Ñ$¤Y§_¡_Ô5Ü˜w°ÀÓFÐFØ˜”Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ø×/Ñ/Ó1�Ø×$Ñ$¤Y§_¡_Ô5Üœs D×$4Ñ$4Ó$6Ó7�Ø×$Ñ$¤Y§_¡_Ô5Ü˜$Ÿ*™*›,Ó'�Ø×$Ñ$¤Y§_¡_Ô5ØŸ
™
›�Ø×$Ñ$¤Y§_¡_Ô5Ø—z‘z“|�Ø×$Ñ$¤Y§_¡_Ô5Ü  °8¸SÀ%ÈÓNÐNØ˜”Ø×$Ñ$¤Y§^¡^Ô4à)-×):Ñ):Ñ)F�D×%Ò%ÈDÏJÉJËLð ð ×$Ñ$¤Y§_¡_Ô5Ø×/Ñ/Ó1�Ø×$Ñ$¤Y§_¡_Ô5Ü¤¤C¨×)9Ñ)9Ó);Ó <Ó=�Ø×$Ñ$¤Y§_¡_Ô5Ø ×,Ñ,Ó.�	Ø×$Ñ$¤Y§_¡_Ô5Ø×3Ñ3°DÓ9�Ø×$Ñ$¤Y§_¡_Ô5Ü˜$Ÿ*™*›,Ó'�Ø×$Ñ$¤Y§_¡_Ô5Ø×3Ñ3°DÓ9�Ø×$Ñ$¤Y§_¡_Ô5Ü °(¸IÀtÈSÐRVÓWÐWð% ð* 	 ”d˜3“iÓˆuøô ó 	PÜ,¨T×-?Ñ-?ÄÀQÃÓHÈaÐOûð	PúsW   ‚F>v  ÇF>v  Î Gv  ÕE v  Ú)Av  Ü	B%v  Þ/Ev  ã6Ev  éE>v  ïF9v  ö 
wö* w
÷
wc                 óH   • U R                  5       nUS:w  a  [        U5      $ S $ )NÚNone)râ   r#  )r   Úts     r#   rÅ  ÚBoxerDrsParser.nullableIntTokenÞ  s"   € Ø�J‰J‹LˆØ˜f›Œs�1‹vÐ.¨$Ð.r&   c                 óv   •  U R                  5       $ ! [         a  n[        UR                  S5      UeS nAff = f)NzVariable expected.)râ   r   r¦   )r   ÚdescriptionrÌ  s      r#   Úget_next_token_variableÚ&BoxerDrsParser.get_next_token_variableâ  s;   € ð	TØ—:‘:“<ÐøÜ*ó 	TÜ-¨a¯g©gÐ7KÓLÐRSÐSûð	Tús   ‚ ’
8œ3³8)r<   rK   )r¾   r¿   rÀ   rÁ   rÂ   r$   rÓ   rÞ   rÙ   rÅ  rÔ  rÃ   rL   r&   r#   r·  r·  "  s(   † ñô)ò
òòe òN/õTr&   r·  c                   óD   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)ÚAbstractBoxerDrsié  c                 ó@   • U R                  5       u  pnXU-  -
  X#U-
  4$ ©z;
:return: (set<variables>, set<events>, set<propositions>)
)Ú
_variables)r   Ú	variablesÚeventsÚpropositionss       r#   rÛ  ÚAbstractBoxerDrs.variablesê  s-   € ð +/¯/©/Ó*;Ñ'ˆ	˜<Ø lÑ2Ñ3°VÈFÑ=RÐSÐSr&   c                 ój   • 0 n[        SU R                  5       5       H  u  p#U H  nX!U'   M	     M     U$ )N)ÚzrÌ  r˜   )ri   rÛ  )r   ÚvartypesrÐ  ÚvarsÚvs        r#   Úvariable_typesÚAbstractBoxerDrs.variable_typesñ  s9   € ØˆÜ˜?¨D¯N©NÓ,<Ö=‰GˆAÛ�Ø˜“ó ñ >ð ˆr&   c                 ó<   • [        5       [        5       [        5       4$ rÙ  ©r}  rÒ   s    r#   rÚ  ÚAbstractBoxerDrs._variablesø  s   € ô “”s“uœc›eÐ$Ð$r&   c                 ó   • [        5       $ rK   rç  rÒ   s    r#   ÚatomsÚAbstractBoxerDrs.atomsþ  ó	   € Ü‹uˆr&   c                 ó   • U $ rK   rL   rÒ   s    r#   ÚcleanÚAbstractBoxerDrs.clean  ó   € Øˆr&   c                 óF   • UR                  SS5      R                  SS5      $ )NÚ-rX  re   )r_  )r   rˆ   s     r#   Ú_clean_nameÚAbstractBoxerDrs._clean_name  s    € Ø�|‰|˜C Ó%×-Ñ-¨c°3Ó7Ð7r&   c                 ó   • U $ rK   rL   ©r   r}   s     r#   Úrenumber_sentencesÚ#AbstractBoxerDrs.renumber_sentences  rð  r&   c                 ó   • [        U  5      $ rK   )ÚhashrÒ   s    r#   Ú__hash__ÚAbstractBoxerDrs.__hash__
  s   € Ü�t�f‹Ðr&   rL   N)r¾   r¿   rÀ   rÁ   rÛ  rä  rÚ  rê  rî  ró  r÷  rû  rÃ   rL   r&   r#   r×  r×  é  s+   † òTòò%òòò8òõr&   r×  c                   ó`   • \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 r\R                  rSrg)r€  i  Nc                 óR   • [         R                  U 5        Xl        X l        X0l        g rK   )r×  r$   r�  r  Ú
consequent)r   r�  r  rÿ  s       r#   r$   ÚBoxerDrs.__init__  s   € Ü×!Ñ! $Ô'ØŒ	ØŒ
Ø$�r&   c                 ó`  • [        5       [        5       [        5       4nU R                   H6  n[        XR                  5       5       H  u  p4UR	                  U5        M     M8     U R
                  b=  [        XR
                  R                  5       5       H  u  p4UR	                  U5        M     U$ rK   )r}  r  ri   rÚ  Úupdaterÿ  )r   rÛ  r  Úsrã  s        r#   rÚ  ÚBoxerDrs._variables  s�   € Ü“UœC›E¤3£5Ð)ˆ	Ø—J”JˆDÜ˜I§¡Ó'8Ö9‘�Ø—‘˜–ó :ñ ð �?‰?Ñ&Ü˜I§¡×'AÑ'AÓ'CÖD‘�Ø—‘˜–ñ EàÐr&   c                 óÚ   • [        [        R                  S U R                   5       [	        5       5      nU R
                  b)  UR                  U R
                  R                  5       5        U$ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7frK   )rê  )rM   r  s     r#   rO   Ú!BoxerDrs.atoms.<locals>.<genexpr>   s   é € Ð%Jºz°t§j¡j§l lºzùs   ‚)r   rR   Úor_r  r}  rÿ  r  rê  )r   rê  s     r#   rê  ÚBoxerDrs.atoms  sH   € Ü”x—|‘|Ñ%J¸t¿zºzÓ%JÌCËEÓRˆØ�?‰?Ñ&Ø�L‰L˜Ÿ™×.Ñ.Ó0Ô1Øˆr&   c                 óä   • U R                   (       a  U R                   R                  5       OS n[        U R                  U R                   Vs/ s H  o"R                  5       PM     snU5      $ s  snf rK   )rÿ  rî  r€  r�  r  )r   rÿ  r´   s      r#   rî  ÚBoxerDrs.clean%  sI   € Ø04··�T—_‘_×*Ñ*Ô,ÀTˆ
Ü˜Ÿ	™	°t·z²zÓ#B²z°!§G¡G¦I±zÑ#BÀJÓOÐOùÒ#Bs   ÁA-
c           	      óè   • U R                   (       a  U R                   R                  U5      OS n[        U R                  U R                   Vs/ s H  o3R                  U5      PM     snU5      $ s  snf rK   )rÿ  r÷  r€  r�  r  )r   r}   rÿ  r´   s       r#   r÷  ÚBoxerDrs.renumber_sentences)  sV   € Ø>B¿o¿o�T—_‘_×7Ñ7¸Ô:ÐSWˆ
ÜØ�I‰I¸¿ºÓDº°A×,Ñ,¨QÖ/¹ÑDÀjó
ð 	
ùÚDs   ÁA/
c                 óê   • SR                  SR                  S U R                   5       5      SR                  S U R                   5       5      5      nU R                  b  SU SU R                   S3nU$ )Nzdrs([{}], [{}])ú, c              3   ó,   #   • U  H
  nS U-  v •  M     g7f©ú%sNrL   )rM   Úrs     r#   rO   Ú$BoxerDrs.__repr__.<locals>.<genexpr>1  s   é € Ð2ª	 1�d˜Q–hª	ùó   ‚c              3   ó,   #   • U  H
  nS U-  v •  M     g7fr  rL   )rM   r´   s     r#   rO   r  2  s   é € Ð3ª
 1�d˜Q–hª
ùr  zimp(rŸ   )r’   r0   r�  r  rÿ  )r   r  s     r#   Ú__repr__ÚBoxerDrs.__repr__/  sh   € Ø×$Ñ$Ø�I‰IÑ2¨¯	ª	Ó2Ó2Ø�I‰IÑ3¨¯
ª
Ó3Ó3ó
ˆð �?‰?Ñ&Ø�q�c˜˜DŸO™OÐ,¨AÐ.ˆAØˆr&   c                 ó¤  • U R                   UR                   :H  =(       a±    U R                  UR                  :H  =(       a‘    [        U R                  5      [        UR                  5      :H  =(       a_    [	        [
        R                  S [        U R                  UR                  5       5       5      =(       a    U R                  UR                  :H  $ )Nc              3   ó.   #   • U  H  u  pX:H  v •  M     g 7frK   rL   )rM   Úc1Úc2s      r#   rO   Ú"BoxerDrs.__eq__.<locals>.<genexpr>>  s   é € ÐTÒ7S©V¨R ¦Ò7Sùó   ‚)	Ú	__class__r�  rQ   r  r   rR   rS   ri   rÿ  ©r   Úothers     r#   Ú__eq__ÚBoxerDrs.__eq__8  s�   € à�N‰N˜eŸo™oÑ-÷ 4Ø—	‘	˜UŸZ™ZÑ'÷4ä�D—J‘J“¤3 u§{¡{Ó#3Ñ3÷4ô Ü—‘ÑT´s¸4¿:¹:ÀuÇ{Á{Ô7SÓTó÷4ð —‘ 5×#3Ñ#3Ñ3ð	
r&   c                 ó   • X:X  + $ rK   rL   r   s     r#   Ú__ne__ÚBoxerDrs.__ne__C  ó   € ØÒ Ð r&   )r  rÿ  r�  rK   ©r¾   r¿   rÀ   rÁ   r$   rÚ  rê  rî  r÷  r  r"  r%  r×  rû  rÃ   rL   r&   r#   r€  r€    s8   † ô%òòòPò
òò	
ò!ð  ×(Ñ(ƒHr&   r€  c                   ó\   • \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  rS
rg)r  iI  c                 ó:   • [         R                  U 5        Xl        g rK   )r×  r$   rs   r  s     r#   r$   ÚBoxerNot.__init__J  s   € Ü×!Ñ! $Ô'Ø�r&   c                 ó6   • U R                   R                  5       $ rK   )rs   rÚ  rÒ   s    r#   rÚ  ÚBoxerNot._variablesN  s   € Ø�x‰x×"Ñ"Ó$Ð$r&   c                 ó6   • U R                   R                  5       $ rK   ©rs   rê  rÒ   s    r#   rê  ÚBoxerNot.atomsQ  ó   € Ø�x‰x�~‰~ÓÐr&   c                 óH   • [        U R                  R                  5       5      $ rK   )r  rs   rî  rÒ   s    r#   rî  ÚBoxerNot.cleanT  s   € Ü˜Ÿ™Ÿ™Ó(Ó)Ð)r&   c                 óJ   • [        U R                  R                  U5      5      $ rK   )r  rs   r÷  rö  s     r#   r÷  ÚBoxerNot.renumber_sentencesW  s   € Ü˜Ÿ™×3Ñ3°AÓ6Ó7Ð7r&   c                 ó    • SU R                   -  $ )Nznot(%s)©rs   rÒ   s    r#   r  ÚBoxerNot.__repr__Z  s   € Ø˜DŸH™HÑ%Ð%r&   c                 ót   • U R                   UR                   :H  =(       a    U R                  UR                  :H  $ rK   )r  rs   r   s     r#   r"  ÚBoxerNot.__eq__]  s'   € Ø�~‰~ §¡Ñ0×J°T·X±XÀÇÁÑ5JÐJr&   c                 ó   • X:X  + $ rK   rL   r   s     r#   r%  ÚBoxerNot.__ne__`  r'  r&   r7  Nr(  rL   r&   r#   r  r  I  s8   † òò%ò ò*ò8ò&òKò!ð  ×(Ñ(ƒHr&   r  c                   óJ   • \ rS rSrS rS rS rS r\R                  r	S r
Srg)	ÚBoxerIndexedif  c                 óR   • [         R                  U 5        Xl        X l        X0l        g rK   )r×  r$   r<   rÿ   r   )r   r<   rÿ   r   s       r#   r$   ÚBoxerIndexed.__init__g  s!   € Ü×!Ñ! $Ô'Ø(ÔØ$ŒØ(Õr&   c                 ó   • U 1$ rK   rL   rÒ   s    r#   rê  ÚBoxerIndexed.atomsm  s	   € Øˆvˆr&   c                 óV  • U R                   UR                   :H  =(       aŠ    U R                  UR                  :H  =(       aj    U R                  UR                  :H  =(       aJ    U R                  UR                  :H  =(       a*    [	        [
        R                  S [        X5       5       5      $ )Nc              3   ó.   #   • U  H  u  pX:H  v •  M     g 7frK   rL   )rM   r  Úos      r#   rO   Ú&BoxerIndexed.__eq__.<locals>.<genexpr>v  s   é € Ð&KÒ:J±$°! q¦vÒ:Jùr  )r  r<   rÿ   r   r   rR   rS   ri   r   s     r#   r"  ÚBoxerIndexed.__eq__p  s†   € à�N‰N˜eŸo™oÑ-÷ MØ×!Ñ! U×%7Ñ%7Ñ7÷Mà—‘ 5×#3Ñ#3Ñ3÷Mð ×!Ñ! U×%7Ñ%7Ñ7÷Mô ”x—}‘}Ñ&K¼#¸dÔ:JÓ&KÓLð	
r&   c                 ó   • X:X  + $ rK   rL   r   s     r#   r%  ÚBoxerIndexed.__ne__y  r'  r&   c           	      óÚ   • SR                  U R                  5       U R                  U R                  SR	                  S U R
                   5       5      5      nU  H  nUSU-  -  nM     US-   $ )Nz{}({}, {}, [{}]r  c              3   ó,   #   • U  H
  nS U-  v •  M     g7fr  rL   )rM   Úwis     r#   rO   Ú(BoxerIndexed.__repr__.<locals>.<genexpr>ƒ  s   é € Ð<Ò*; B�d˜R–iÒ*;ùr  z, %srŸ   )r’   Ú_predr<   rÿ   r0   r   )r   r  rã  s      r#   r  ÚBoxerIndexed.__repr__~  se   € Ø×$Ñ$Ø�J‰J‹LØ×ÑØ�O‰OØ�I‰IÑ<¨$×*;Ò*;Ó<Ó<ó	
ˆó ˆAØ�˜!‘‰OŠAñ à�3‰wˆr&   )r<   rÿ   r   N)r¾   r¿   rÀ   rÁ   r$   rê  r"  r%  r×  rû  r  rÃ   rL   r&   r#   r>  r>  f  s(   † ò)òò
ò!ð  ×(Ñ(€Hõ	r&   r>  c                   ó>   • \ rS rSrS rS rS rS rS rS r	S r
S	rg
)r  iŠ  c                 ó`   • [         R                  XX#5        X@l        XPl        X`l        Xpl        g rK   )r>  r$   r®  rˆ   r  r  )r   r<   rÿ   r   r®  rˆ   r  r  s           r#   r$   ÚBoxerPred.__init__‹  s&   € Ü×Ñ˜d°*ÔKØŒØŒ	ØŒØ�
r&   c                 óB   • U R                   1[        5       [        5       4$ rK   ©r®  r}  rÒ   s    r#   rÚ  ÚBoxerPred._variables’  ó   € Ø—‘�
œC›E¤3£5Ð)Ð)r&   c           	      óœ   • [        U R                  U R                  U R                  UU R                  U R
                  U R                  5      $ rK   )r  r<   rÿ   r   rˆ   r  r  r­  s     r#   Ú
change_varÚBoxerPred.change_var•  s@   € ÜØ×ÑØ�O‰OØ×ÑØØ�I‰IØ�H‰HØ�J‰Jó
ð 	
r&   c           	      óÎ   • [        U R                  U R                  U R                  U R                  U R                  U R                  5      U R                  U R                  5      $ rK   )	r  r<   rÿ   r   r®  ró  rˆ   r  r  rÒ   s    r#   rî  ÚBoxerPred.clean   sO   € ÜØ×ÑØ�O‰OØ×ÑØ�H‰HØ×Ñ˜TŸY™YÓ'Ø�H‰HØ�J‰Jó
ð 	
r&   c           	      óÀ   • U" U R                   5      n[        U R                  UU R                  U R                  U R
                  U R                  U R                  5      $ rK   )rÿ   r  r<   r   r®  rˆ   r  r  )r   r}   Únew_sent_indexs      r#   r÷  ÚBoxerPred.renumber_sentences«  sN   € Ù˜4Ÿ?™?Ó+ˆÜØ×ÑØØ×ÑØ�H‰HØ�I‰IØ�H‰HØ�J‰Jó
ð 	
r&   c                 óp   • [        U R                  U R                  U R                  U R                  45      $ rK   )Úiterr®  rˆ   r  r  rÒ   s    r#   Ú__iter__ÚBoxerPred.__iter__·  s&   € Ü�T—X‘X˜tŸy™y¨$¯(©(°D·J±JÐ?Ó@Ð@r&   c                 ó   • g)Nr÷   rL   rÒ   s    r#   rN  ÚBoxerPred._predº  ó   € Ør&   )rˆ   r  r  r®  N©r¾   r¿   rÀ   rÁ   r$   rÚ  rX  rî  r÷  ra  rN  rÃ   rL   r&   r#   r  r  Š  s&   † òò*ò	
ò	
ò

òAõr&   r  c                   ó>   • \ rS rSrS rS rS rS rS rS r	S r
S	rg
)r4  i¾  c                 ó`   • [         R                  XX#5        X@l        XPl        X`l        Xpl        g rK   )r>  r$   r®  rˆ   r5  r  )r   r<   rÿ   r   r®  rˆ   r5  r  s           r#   r$   ÚBoxerNamed.__init__¿  s&   € Ü×Ñ˜d°*ÔKØŒØŒ	ØŒ	Ø�
r&   c                 óB   • U R                   1[        5       [        5       4$ rK   rT  rÒ   s    r#   rÚ  ÚBoxerNamed._variablesÆ  rV  r&   c           	      óœ   • [        U R                  U R                  U R                  UU R                  U R
                  U R                  5      $ rK   )r4  r<   rÿ   r   rˆ   r5  r  r­  s     r#   rX  ÚBoxerNamed.change_varÉ  s@   € ÜØ×ÑØ�O‰OØ×ÑØØ�I‰IØ�I‰IØ�J‰Jó
ð 	
r&   c           	      óÎ   • [        U R                  U R                  U R                  U R                  U R                  U R                  5      U R                  U R                  5      $ rK   )	r4  r<   rÿ   r   r®  ró  rˆ   r5  r  rÒ   s    r#   rî  ÚBoxerNamed.cleanÔ  sO   € ÜØ×ÑØ�O‰OØ×ÑØ�H‰HØ×Ñ˜TŸY™YÓ'Ø�I‰IØ�J‰Jó
ð 	
r&   c           	      ó¼   • [        U R                  U" U R                  5      U R                  U R                  U R
                  U R                  U R                  5      $ rK   )r4  r<   rÿ   r   r®  rˆ   r5  r  rö  s     r#   r÷  ÚBoxerNamed.renumber_sentencesß  sI   € ÜØ×ÑÙˆd�o‰oÓØ×ÑØ�H‰HØ�I‰IØ�I‰IØ�J‰Jó
ð 	
r&   c                 óp   • [        U R                  U R                  U R                  U R                  45      $ rK   )r`  r®  rˆ   r5  r  rÒ   s    r#   ra  ÚBoxerNamed.__iter__ê  s&   € Ü�T—X‘X˜tŸy™y¨$¯)©)°T·Z±ZÐ@ÓAÐAr&   c                 ó   • g)Nrø   rL   rÒ   s    r#   rN  ÚBoxerNamed._predí  s   € Ør&   )rˆ   r  r5  r®  Nrf  rL   r&   r#   r4  r4  ¾  s&   † òò*ò	
ò	
ò	
òBõr&   r4  c                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
r;  iñ  c                 ó`   • [         R                  XX#5        X@l        XPl        X`l        Xpl        g rK   )r>  r$   r<  r=  rù   r  )r   r<   rÿ   r   r<  r=  rù   r  s           r#   r$   ÚBoxerRel.__init__ò  s&   € Ü×Ñ˜d°*ÔKØŒ	ØŒ	ØŒØ�
r&   c                 óX   • U R                   U R                  1[        5       [        5       4$ rK   ©r<  r=  r}  rÒ   s    r#   rÚ  ÚBoxerRel._variablesù  ó    € Ø—‘˜DŸI™IÐ&¬«¬s«uÐ5Ð5r&   c           
      óÎ   • [        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  5      U R                  5      $ rK   )	r;  r<   rÿ   r   r<  r=  ró  rù   r  rÒ   s    r#   rî  ÚBoxerRel.cleanü  sO   € ÜØ×ÑØ�O‰OØ×ÑØ�I‰IØ�I‰IØ×Ñ˜TŸX™XÓ&Ø�J‰Jó
ð 	
r&   c           	      ó¼   • [        U R                  U" U R                  5      U R                  U R                  U R
                  U R                  U R                  5      $ rK   )r;  r<   rÿ   r   r<  r=  rù   r  rö  s     r#   r÷  ÚBoxerRel.renumber_sentences  sI   € ÜØ×ÑÙˆd�o‰oÓØ×ÑØ�I‰IØ�I‰IØ�H‰HØ�J‰Jó
ð 	
r&   c                 óp   • [        U R                  U R                  U R                  U R                  45      $ rK   )r`  r<  r=  rù   r  rÒ   s    r#   ra  ÚBoxerRel.__iter__  s&   € Ü�T—Y‘Y §	¡	¨4¯8©8°T·Z±ZÐ@ÓAÐAr&   c                 ó   • g)Nrù   rL   rÒ   s    r#   rN  ÚBoxerRel._pred  ó   € Ør&   )rù   r  r<  r=  N)r¾   r¿   rÀ   rÁ   r$   rÚ  rî  r÷  ra  rN  rÃ   rL   r&   r#   r;  r;  ñ  s!   † òò6ò	
ò	
òBõr&   r;  c                   óD   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)rv  i  c                 óH   • [         R                  XX#5        X@l        XPl        g rK   )r>  r$   r®  rs   )r   r<   rÿ   r   r®  rs   s         r#   r$   ÚBoxerProp.__init__  s   € Ü×Ñ˜d°*ÔKØŒØ�r&   c                 ó¶   • [        [        [        R                  [	        5       [	        5       U R
                  14U R                  R                  5       5      5      $ rK   )ÚtuplerU   rR   r  r}  r®  rs   rÚ  rÒ   s    r#   rÚ  ÚBoxerProp._variables  s=   € ÜÜ”—‘œs›u¤c£e¨d¯h©h¨ZÐ8¸$¿(¹(×:MÑ:MÓ:OÓPó
ð 	
r&   c                 ó   • U R                   1$ rK   r7  rÒ   s    r#   Úreferenced_labelsÚBoxerProp.referenced_labels$  s   € Ø—‘ˆzÐr&   c                 ó6   • U R                   R                  5       $ rK   r/  rÒ   s    r#   rê  ÚBoxerProp.atoms'  r1  r&   c                 ó    • [        U R                  U R                  U R                  U R                  U R
                  R                  5       5      $ rK   )rv  r<   rÿ   r   r®  rs   rî  rÒ   s    r#   rî  ÚBoxerProp.clean*  s=   € ÜØ×ÑØ�O‰OØ×ÑØ�H‰HØ�H‰H�N‰NÓó
ð 	
r&   c           	      ó®   • [        U R                  U" U R                  5      U R                  U R                  U R
                  R                  U5      5      $ rK   )rv  r<   rÿ   r   r®  rs   r÷  rö  s     r#   r÷  ÚBoxerProp.renumber_sentences3  sF   € ÜØ×ÑÙˆd�o‰oÓØ×ÑØ�H‰HØ�H‰H×'Ñ'¨Ó*ó
ð 	
r&   c                 óD   • [        U R                  U R                  45      $ rK   )r`  r®  rs   rÒ   s    r#   ra  ÚBoxerProp.__iter__<  s   € Ü�T—X‘X˜tŸx™xÐ(Ó)Ð)r&   c                 ó   • g)Nrö   rL   rÒ   s    r#   rN  ÚBoxerProp._pred?  re  r&   )rs   r®  N)r¾   r¿   rÀ   rÁ   r$   rÚ  r�  rê  rî  r÷  ra  rN  rÃ   rL   r&   r#   rv  rv    s*   † òò

ò
ò ò
ò
ò*õr&   rv  c                   ó8   • \ rS rSrS rS rS rS rS rS r	Sr
g	)
r“  iC  c                 óH   • [         R                  XX#5        X@l        XPl        g rK   )r>  r$   r<  r=  )r   r<   rÿ   r   r<  r=  s         r#   r$   ÚBoxerEq.__init__D  ó   € Ü×Ñ˜d°*ÔKØŒ	Ø�	r&   c                 óX   • U R                   U R                  1[        5       [        5       4$ rK   rz  rÒ   s    r#   rÚ  ÚBoxerEq._variablesI  r|  r&   c                 ó   • [        5       $ rK   rç  rÒ   s    r#   rê  ÚBoxerEq.atomsL  rì  r&   c                 ó�   • [        U R                  U" U R                  5      U R                  U R                  U R
                  5      $ rK   )r“  r<   rÿ   r   r<  r=  rö  s     r#   r÷  ÚBoxerEq.renumber_sentencesO  ó;   € ÜØ×ÑÙˆd�o‰oÓØ×ÑØ�I‰IØ�I‰Ió
ð 	
r&   c                 óD   • [        U R                  U R                  45      $ rK   )r`  r<  r=  rÒ   s    r#   ra  ÚBoxerEq.__iter__X  ó   € Ü�T—Y‘Y §	¡	Ð*Ó+Ð+r&   c                 ó   • g)Nrõ   rL   rÒ   s    r#   rN  ÚBoxerEq._pred[  ó   € Ør&   )r<  r=  N)r¾   r¿   rÀ   rÁ   r$   rÚ  rê  r÷  ra  rN  rÃ   rL   r&   r#   r“  r“  C  s    † òò
6òò
ò,õr&   r“  c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	rp  i_  c                 óT   • [         R                  XX#5        X@l        XPl        X`l        g rK   )r>  r$   r®  rq  r5  )r   r<   rÿ   r   r®  rq  r5  s          r#   r$   ÚBoxerCard.__init__`  s!   € Ü×Ñ˜d°*ÔKØŒØŒ
Ø�	r&   c                 óB   • U R                   1[        5       [        5       4$ rK   rT  rÒ   s    r#   rÚ  ÚBoxerCard._variablesf  rV  r&   c                 ó¦   • [        U R                  U" U R                  5      U R                  U R                  U R
                  U R                  5      $ rK   )rp  r<   rÿ   r   r®  rq  r5  rö  s     r#   r÷  ÚBoxerCard.renumber_sentencesi  sB   € ÜØ×ÑÙˆd�o‰oÓØ×ÑØ�H‰HØ�J‰JØ�I‰Ió
ð 	
r&   c                 óZ   • [        U R                  U R                  U R                  45      $ rK   )r`  r®  rq  r5  rÒ   s    r#   ra  ÚBoxerCard.__iter__s  s    € Ü�T—X‘X˜tŸz™z¨4¯9©9Ð5Ó6Ð6r&   c                 ó   • g)Nrû   rL   rÒ   s    r#   rN  ÚBoxerCard._predv  re  r&   )r5  rq  r®  N)
r¾   r¿   rÀ   rÁ   r$   rÚ  r÷  ra  rN  rÃ   rL   r&   r#   rp  rp  _  s   † òò*ò
ò7õr&   rp  c                   ó>   • \ rS rSrS rS rS rS rS rS r	S r
S	rg
)r¦  iz  c                 óH   • [         R                  XX#5        X@l        XPl        g rK   )r>  r$   r†  r‡  )r   r<   rÿ   r   r†  r‡  s         r#   r$   ÚBoxerOr.__init__{  rœ  r&   c                 óª   • [        [        [        R                  U R                  R                  5       U R                  R                  5       5      5      $ rK   )rŠ  rU   rR   r  r†  rÚ  r‡  rÒ   s    r#   rÚ  ÚBoxerOr._variables€  s4   € Ü”SœŸ™ t§y¡y×';Ñ';Ó'=¸t¿y¹y×?SÑ?SÓ?UÓVÓWÐWr&   c                 ól   • U R                   R                  5       U R                  R                  5       -  $ rK   ©r†  rê  r‡  rÒ   s    r#   rê  ÚBoxerOr.atomsƒ  ó#   € Ø�y‰y�‰Ó  4§9¡9§?¡?Ó#4Ñ4Ð4r&   c                 ó¼   • [        U R                  U R                  U R                  U R                  R                  5       U R                  R                  5       5      $ rK   )r¦  r<   rÿ   r   r†  rî  r‡  rÒ   s    r#   rî  ÚBoxerOr.clean†  sD   € ÜØ×ÑØ�O‰OØ×ÑØ�I‰I�O‰OÓØ�I‰I�O‰OÓó
ð 	
r&   c                 ó�   • [        U R                  U" U R                  5      U R                  U R                  U R
                  5      $ rK   )r¦  r<   rÿ   r   r†  r‡  rö  s     r#   r÷  ÚBoxerOr.renumber_sentences�  r£  r&   c                 óD   • [        U R                  U R                  45      $ rK   )r`  r†  r‡  rÒ   s    r#   ra  ÚBoxerOr.__iter__˜  r¦  r&   c                 ó   • g)Nró   rL   rÒ   s    r#   rN  ÚBoxerOr._pred›  r©  r&   )r†  r‡  N©r¾   r¿   rÀ   rÁ   r$   rÚ  rê  rî  r÷  ra  rN  rÃ   rL   r&   r#   r¦  r¦  z  s&   † òò
Xò5ò
ò
ò,õr&   r¦  c                   ó>   • \ rS rSrS rS rS rS rS rS r	S r
S	rg
)r(  iŸ  c                 ó`   • [         R                  XX#5        X@l        XPl        X`l        Xpl        g rK   )r>  r$   r*  r†  r  r‡  )r   r<   rÿ   r   r*  r†  r  r‡  s           r#   r$   ÚBoxerWhq.__init__   s(   € ô 	×Ñ˜d°*ÔKØ"ŒØŒ	Ø ŒØ�	r&   c           	      óè   • [        [        [        R                  U R                  1[        5       [        5       4U R                  R                  5       U R                  R                  5       5      5      $ rK   )	rŠ  rU   rR   r  r  r}  r†  rÚ  r‡  rÒ   s    r#   rÚ  ÚBoxerWhq._variables©  sR   € ÜÜÜ—‘Ø—-‘-�¤#£%¬«Ð/Ø—	‘	×$Ñ$Ó&Ø—	‘	×$Ñ$Ó&ó	ó
ð 	
r&   c                 ól   • U R                   R                  5       U R                  R                  5       -  $ rK   r»  rÒ   s    r#   rê  ÚBoxerWhq.atoms³  r½  r&   c           
      óè   • [        U R                  U R                  U R                  U R                  U R
                  R                  5       U R                  U R                  R                  5       5      $ rK   )	r(  r<   rÿ   r   r*  r†  rî  r  r‡  rÒ   s    r#   rî  ÚBoxerWhq.clean¶  sR   € ÜØ×ÑØ�O‰OØ×ÑØ�N‰NØ�I‰I�O‰OÓØ�M‰MØ�I‰I�O‰OÓó
ð 	
r&   c           	      ó¼   • [        U R                  U" U R                  5      U R                  U R                  U R
                  U R                  U R                  5      $ rK   )r(  r<   rÿ   r   r*  r†  r  r‡  rö  s     r#   r÷  ÚBoxerWhq.renumber_sentencesÁ  sI   € ÜØ×ÑÙˆd�o‰oÓØ×ÑØ�N‰NØ�I‰IØ�M‰MØ�I‰Ió
ð 	
r&   c                 óš   • [        SSR                  U R                  5      -   S-   U R                  U R                  U R
                  45      $ )Nr¡   r›   r¢   )r`  r0   r*  r†  r  r‡  rÒ   s    r#   ra  ÚBoxerWhq.__iter__Ì  s>   € ÜØ�3—8‘8˜DŸN™NÓ+Ñ+¨cÑ1°4·9±9¸d¿m¹mÈTÏYÉYÐWó
ð 	
r&   c                 ó   • g)Nrü   rL   rÒ   s    r#   rN  ÚBoxerWhq._predÑ  r…  r&   )r*  r†  r‡  r  NrÆ  rL   r&   r#   r(  r(  Ÿ  s%   † òò
ò5ò	
ò	
ò
õ
r&   r(  c                   ó   • \ rS rSrS rSrg)ÚPassthroughBoxerDrsInterpreteriÕ  c                 ó   • U$ rK   rL   )r   Úexs     r#   r@   Ú(PassthroughBoxerDrsInterpreter.interpretÖ  s   € Øˆ	r&   rL   N)r¾   r¿   rÀ   rÁ   r@   rÃ   rL   r&   r#   r×  r×  Õ  s   † õr&   r×  c                   ó0   • \ rS rSrSS jrS rS rS rSrg)	r   iÚ  c                 ó   • Xl         g rK   ©Ú_occur_index)r   Úoccur_indexs     r#   r$   Ú#NltkDrtBoxerDrsInterpreter.__init__Û  s   € Ø'Õr&   c           	      óÊ  • [        U[        5      (       a†  [        UR                   Vs/ s H  n[	        U5      PM     sn[        [        U R                  UR                  5      5      5      nUR                  b   U R                  UR                  5      Ul	        U$ [        U[        5      (       a$  [        U R                  UR                  5      5      $ [        U[        5      (       aF  U R                  UR                   SUR                    3U5      nU R#                  XAR$                  5      $ [        U[&        5      (       aG  U R                  SUR(                   SUR                    3U5      nU R#                  XAR$                  5      $ [        U[*        5      (       aE  U R                  SUR,                  -  U5      nU R#                  XAR.                  UR0                  5      $ [        U[2        5      (       a8  [5        [	        UR$                  5      U R                  UR                  5      5      $ [        U[6        5      (       aD  [9        [;        [	        UR.                  5      5      [;        [	        UR0                  5      5      5      $ [        U[<        5      (       aG  U R                  SUR(                   SUR>                   3U5      nU R#                  XAR$                  5      $ [        U[@        5      (       a>  [C        U R                  URD                  5      U R                  URF                  5      5      $ [        U[H        5      (       ap  U R                  URD                  5      nU R                  URF                  5      n[        UR                  UR                  -   UR                  UR                  -   5      $  URJ                  RL                   SU 35       es  snf )z<
:param ex: ``AbstractBoxerDrs``
:return: ``DrtExpression``
rX  Úne_r  Úcard_z: )'Ú
isinstancer€  r   r�  r   rT   rU   r@   r  rÿ  r  r
   rs   r  Ú_add_occur_indexingr  rˆ   ri  r®  r4  r5  r;  rù   r<  r=  rv  r   r“  r	   r   rp  rq  r¦  r   r†  r‡  r(  r  r¾   )r   rÙ  r  rs   r÷   r†  r‡  s          r#   r@   Ú$NltkDrtBoxerDrsInterpreter.interpretÞ  sÈ  € ô
 �bœ(×#Ñ#ÜØ&(§g¢gÓ.¢g ”˜!–¡gÑ.´´S¸¿¹ÈÏÉÓ5RÓ0SóˆCð �}‰}Ñ(Ø!%§¡°·±Ó!>�”ØˆJÜ˜œH×%Ñ%Ü'¨¯©°r·v±vÓ(>Ó?Ð?Ü˜œI×&Ñ&Ø×+Ñ+¨r¯v©v¨h°a¸¿¹°yÐ,AÀ2ÓFˆDØ—?‘? 4¯©Ó0Ð0Ü˜œJ×'Ñ'Ø×+Ñ+¨c°"·'±'°¸!¸B¿G¹G¸9Ð,EÀrÓJˆDØ—?‘? 4¯©Ó0Ð0Ü˜œH×%Ñ%Ø×+Ñ+¨D°B·F±F©O¸RÓ@ˆDØ—?‘? 4¯©°"·'±'Ó:Ð:Ü˜œI×&Ñ&Ü!¤(¨2¯6©6Ó"2°D·N±NÀ2Ç6Á6Ó4JÓKÐKÜ˜œG×$Ñ$Ü(Ü%¤h¨r¯w©wÓ&7Ó8Ü%¤h¨r¯w©wÓ&7Ó8óð ô ˜œI×&Ñ&Ø×+Ñ+¨e°B·G±G°9¸A¸b¿h¹h¸ZÐ,HÈ"ÓMˆDØ—?‘? 4¯©Ó0Ð0Ü˜œG×$Ñ$Ü" 4§>¡>°"·'±'Ó#:¸D¿N¹NÈ2Ï7É7Ó<SÓTÐTÜ˜œH×%Ñ%Ø—>‘> "§'¡'Ó*ˆDØ—>‘> "§'¡'Ó*ˆDÜ�t—y‘y 4§9¡9Ñ,¨d¯j©j¸4¿:¹:Ñ.EÓFÐFØ6˜Ÿ™×.Ñ.Ð/¨r°"°Ð6Ó6ˆuùòA /s   ©O c           	      ó|   • [        [        U5      5      nU H!  n[        U[        [        U5      5      5      nM#     U$ rK   )r   r   r   )r   r÷   rj   rå   rB  s        r#   ri  Ú%NltkDrtBoxerDrsInterpreter._make_atom  s:   € Ü%¤h¨t£nÓ5ˆÛˆCÜ,ØÔ,¬X°c«]Ó;óŠEñ ð ˆr&   c                 óè   • U R                   (       a`  UR                  bS  UR                  (       a  USUR                  -  -  nUSUR                  -  -  nUS[        UR                  5      S   -  -  nU$ )Nz_%sz_s%sz_w%sr   )rÞ  rÿ   r<   Úsortedr   )r   ÚbaserÙ  s      r#   rå  Ú.NltkDrtBoxerDrsInterpreter._add_occur_indexing  sc   € Ø×× §¡Ñ!:Ø��Ø˜ §¡Ñ/Ñ/�Ø�F˜RŸ]™]Ñ*Ñ*ˆDØ�FœV B§O¡OÓ4°QÑ7Ñ7Ñ7ˆDØˆr&   rÝ  Nr½   )	r¾   r¿   rÀ   rÁ   r$   r@   ri  rå  rÃ   rL   r&   r#   r   r   Ú  s   † ô(ò'7òRõr&   r   c                   ó   • \ rS rSrSrg)ÚUnparseableInputExceptioni  rL   N)r¾   r¿   rÀ   rÁ   rÃ   rL   r&   r#   rî  rî    s   † Úr&   rî  Ú__main__zusage: %prog TEXT [options]z	--verbosez-vzdisplay verbose logsÚ
store_trueFr!   )ÚhelpÚactionÚdefaultÚdestz--folz-fz
output FOLÚfolz
--questionz-qzinput is a questionr=   z--occurz-ozoccurrence indexrß  rž   zincorrect number of arguments)rß  z\n)r=   r!   )CrÂ   rR   r-   r«  r�   rv   Ú	functoolsr   Úoptparser   Únltk.internalsr   Únltk.sem.drtr   r   r	   r
   r   r   r   r   r   Únltk.sem.logicr   r   r   r   r   r¹   r·  r×  r€  r  r>  r  r4  r;  rv  r“  rp  r¦  r(  r×  r   r9   rî  r¾   ÚoptsÚ
add_optionÚ
parse_argsÚoptionsrj   rQ   Úerrorrß  ÚinterpreterrC   r¤   r=   r!   rs   rŽ   ÚsimplifyÚeliminate_equalityrõ  Ú	normalizeÚpretty_printrL   r&   r#   Ú<module>r     sŽ  ðñó* Û 	Û 	Û Û Ý Ý !å &÷
÷ 
õ 
÷ó ÷RYñ RYôjO*˜9ô O*ôdDT�Yô DT÷N"ñ "ôJ8)Ðô 8)ôv)Ðô )ô:!Ð#ô !ôH1�ô 1ôh0�ô 0ôf%ˆ|ô %ôP'�ô 'ôTˆlô ô8�ô ô6"ˆlô "ôJ3ˆ|ô 3÷lñ ÷
;ñ ;ô|	 	ô 	ð ˆzÔÙÐ5Ó6€DØ‡O�OØØØ#ØØØð ñ ð 	‡O�OØ�˜L°ÀuÐSXð ñ ð 	‡O�OØØØ"ØØØð ñ ð 	‡O�OØØØØØØð ñ ð —o‘oÓ'�O€Wˆdá
ˆ4ƒy�Aƒ~Ø�
‰
Ð2Ô3á,¸×9LÑ9LÑM€KÙ
�Ó
×
,Ñ
,ØˆQ‰�‰�eÓ w×'7Ñ'7ÀÇÁð -ð €Cð �{Ùˆd�à�l‰l‹n×/Ñ/Ó1ˆØ�;�;Ù�#—'‘'“)×%Ñ%Ó'Õ(à×ÑÕð[ r&   