§
    ¥-Çjä1  ã                   ó  — d Z ddlZddlmc mZ ddlZddlZddl	Z	ddl
Z
ddlZddlmZ ej        j        dk    r(	 ej                             d¬¦  «         n# e$ r Y nw xY w ee¦  «                             ¦   «         j        j        Zedz  Zedz  Zej                             d ee¦  «        ¦  «         ddlmZmZmZmZ g d	¢Z g d
¢Z!g d¢Z" G d„ dej#        ¦  «        Z$d„ Z%e&dk    r ej'         e%¦   «         ¦  «         dS dS )uª  
Adversarial Verification Test Suite: Anti-Male-Tears Directive & Character Roster Lines 17-20
Project: Tháº­p NgÅ© NiÃªn (The Fifteen Springs) - EP01
Challenger: teamwork_preview_challenger (M1 Iteration 2 Challenger 1)

Empirical Challenge Objectives:
1. Scan lines 17-20 and the entire Character Roster table for male characters associated with weeping keywords:
   - khÃ³c, rÆ¡i lá»‡, giá»�t lá»‡, ngáº¥n lá»‡, Ä‘áº§m Ä‘Ã¬a, chÃ¢u sa (plus variations: nÆ°á»›c máº¯t, gÃ o khÃ³c, náº¥c ngháº¹n, etc.).
2. Scan the full 188-shot screenplay across all 15 scenes for any male character crying/weeping.
3. Confirm 0 occurrences.
4. Execute official test suites and stress harnesses.
é    N)ÚPathúutf-8©ÚencodingÚ	FilmMakerz6TAP_01_XUAN_SAC_THE_NGUYEN_VA_GIONG_BAO_DOAN_TRUONG.md)Úread_ep01_screenplayÚfind_male_crying_violationsÚget_screenplay_scenesÚMALE_CHARACTERS)õ   khÃ³cõ	   rÆ¡i lá»‡õ   giá»�t lá»‡õ   ngáº¥n lá»‡õ   Ä‘áº§m Ä‘Ã¬aõ   chÃ¢u sa)r   r   r   r   r   r   u   nÆ°á»›c máº¯tu   rÆ¡i nÆ°á»›c máº¯tu
   gÃ o khÃ³cu
   khÃ³c thanu   khÃ³c ngáº¥tu   khÃ³c rá»‘ngu   náº¥c ngháº¹nu
   sá»¥t sÃ¹iu   thÃºt thÃ­tu   chÃ¢u tuÃ´nu	   lá»‡ rÆ¡iu
   lá»‡ trÃ nu   Ä‘áº«m lá»‡u   chan chá»©a giá»�t lá»‡)õ   KIM TRá»ŒNGõ   Kim Trá»�ngzKim sinhu
   chÃ ng Kimõ   VÆ¯Æ NG QUANõ   VÆ°Æ¡ng Quanõ   VÆ¯Æ NG Ã”NGõ   VÆ°Æ¡ng Ã”ngu   VÆ°Æ¡ng viÃªn ngoáº¡iu	   cá»¥ Ã´ngu
   cha Kiá»�uu
   Tá»ª Háº¢Iu
   Tá»« Háº£iu
   THÃšC SINHu
   ThÃºc Sinhu
   THÃšC Ã”NGu
   ThÃºc Ã”ngõ   MÃƒ GIÃ�M SINHu   MÃ£ GiÃ¡m Sinhu
   Sá»ž KHANHu
   Sá»Ÿ Khanhu   Há»’ TÃ”N HIáº¾Nu   Há»“ TÃ´n Hiáº¿nu   Báº C Háº NHu   Báº¡c Háº¡nhc                   óH   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dS )	ÚTestAdversarialMaleWeepingM1c                 óÒ   — t          t          dd¬¦  «        5 }|                     ¦   «         | _        d d d ¦  «         n# 1 swxY w Y   | j                             ¦   «         | _        d S )NÚrr   r   )ÚopenÚ
TAP01_PATHÚreadÚscreenplay_textÚ
splitlinesÚlines)ÚclsÚfs     ú?C:\Projects\KieuStory\tests\test_adversarial_male_weeping_m1.pyÚ
setUpClassz'TestAdversarialMaleWeepingM1.setUpClass=   s“   € å•*˜c¨GÐ4Ñ4Ô4ð 	+¸Ø"#§&¢&¡(¤(ˆCÔð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+àÔ'×2Ò2Ñ4Ô4ˆŒ	ˆ	ˆ	s   ˜>¾AÁAc                 óÞ  — t          d¦  «         t          | j        ¦  «        dk    r| j        d         ndt          | j        ¦  «        dk    r| j        d         ndt          | j        ¦  «        dk    r| j        d         ndt          | j        ¦  «        dk    r| j        d         nddœ}g }|                     ¦   «         D ]u\  }}t          d	|› d
|› �¦  «         t          D ]S}t          j        dt          j        |¦  «        z   dz   |t
          j        ¦  «        r| 	                    |||dœ¦  «         ŒTŒv|  
                    t          |¦  «        dd|› �¦  «         t          d¦  «         dS )zVChallenge 1: Verify lines 17-20 have exactly 0 occurrences of target weeping keywords.z?
--- Challenge 1: Character Roster Lines 17-20 Keyword Scan ---é   é   Ú é   é   é   )r(   r+   r,   r-   zLine ú: z\b©Úline_numÚkeywordÚcontentr   z4FAIL: Found target weeping keywords in lines 17-20: z=PASS: Exactly 0 target weeping keywords found in lines 17-20.N)ÚprintÚlenr"   ÚitemsÚTARGET_WEEPING_KEYWORDSÚreÚsearchÚescapeÚ
IGNORECASEÚappendÚassertEqual)ÚselfÚlines_17_20Ú
violationsr0   r2   Úkws         r%   Ú1test_01_lines_17_to_20_exact_zero_target_keywordszNTestAdversarialMaleWeepingM1.test_01_lines_17_to_20_exact_zero_target_keywordsC   s�  € åÐPÑQÔQÐQå"% d¤j¡/¤/°RÒ"7Ð"7�”
˜2”�¸RÝ"% d¤j¡/¤/°RÒ"7Ð"7�”
˜2”�¸RÝ"% d¤j¡/¤/°RÒ"7Ð"7�”
˜2”�¸RÝ"% d¤j¡/¤/°RÒ"7Ð"7�”
˜2”�¸Rð	
ð 
ˆð ˆ
Ø!,×!2Ò!2Ñ!4Ô!4ð 	ð 	ÑˆH�gÝÐ/˜(Ð/Ð/ gÐ/Ð/Ñ0Ô0Ð0Ý-ð ð �Ý”9˜U¥R¤Y¨r¡]¤]Ñ2°UÑ:¸GÅRÄ]ÑSÔSð Ø×%Ò%Ø$,Ø#%Ø#*ð'ð 'ñ ô ð øðð 	×ÒÝ�
‰OŒO˜QØOÀ:ÐOÐOñ	
ô 	
ð 	
õ 	ÐMÑNÔNÐNÐNÐNó    c                 ón  — t          d¦  «         d| j        d         fd| j        d         fd| j        d         fg}g }|D ]>\  }}t          D ]1}||                     ¦   «         v r|                     |||dœ¦  «         Œ2Œ?|                      t          |¦  «        dd	|› �¦  «         t          d
¦  «         dS )z_Challenge 2: Verify lines 17-20 have 0 extended weeping keywords and 0 negated weeping phrases.zD
--- Challenge 2: Lines 17-20 Extended Keywords & Negation Purge ---r(   r)   r,   r+   r-   r/   r   zQFAIL: Found extended weeping keywords in male character roster lines 17, 19, 20: zmPASS: Zero extended weeping keywords or negated weeping phrases in male character entries (lines 17, 19, 20).N)r3   r"   ÚEXTENDED_WEEPING_KEYWORDSÚlowerr;   r<   r4   )r=   Úlines_to_checkr?   r0   r2   r@   s         r%   Ú6test_02_lines_17_to_20_extended_keywords_and_negationszSTestAdversarialMaleWeepingM1.test_02_lines_17_to_20_extended_keywords_and_negations^   sø   € åÐUÑVÔVÐVà�”˜B”Ð Ø�”˜B”Ð Ø�”˜B”Ð ð
ˆð ˆ
Ø!/ð 	ð 	ÑˆH�gÝ/ð ð �Ø˜Ÿš™œÐ(Ð(Ø×%Ò%Ø$,Ø#%Ø#*ð'ð 'ñ ô ð øðð 	×ÒÝ�
‰OŒO˜QØlÐ`jÐlÐlñ	
ô 	
ð 	
õ 	Ð}Ñ~Ô~Ð~Ð~Ð~rB   c           	      óÈ  ‡— t          d¦  «         | j        dd…         }g }t          |d¦  «        D ]y\  }Št          ˆfd„dD ¦   «         ¦  «        }|rWt          d|› d‰d	d
…         › d�¦  «         t          D ]1}|‰                     ¦   «         v r|                     ||‰dœ¦  «         Œ2Œz|                      t          |¦  «        dd|› �¦  «         t          d¦  «         d	S )zZChallenge 3: Verify entire Character Roster (lines 15-26) has 0 male weeping associations.zF
--- Challenge 3: Entire Character Roster Table Scan (Lines 15-26) ---é   é   é   c              3   ó    •K  — | ]}|‰v V — Œ	d S ©N© )Ú.0Úmr2   s     €r%   ú	<genexpr>z\TestAdversarialMaleWeepingM1.test_03_entire_character_roster_male_entries.<locals>.<genexpr>~   s?   øè è € ð   Dð   D°  W ð   Dð   Dð   Dð   Dð   Dð   DrB   )r   r   r   zSAI NHAr   zChecking male entry Line r.   NéP   z...r/   r   zCFAIL: Found male weeping keyword associations in Character Roster: zHPASS: Entire Character Roster male entries confirmed 0 weeping keywords.)	r3   r"   Ú	enumerateÚanyr6   rE   r;   r<   r4   )r=   Úroster_linesr?   ÚoffsetÚis_male_entryr@   r2   s         @r%   Ú,test_03_entire_character_roster_male_entrieszITestAdversarialMaleWeepingM1.test_03_entire_character_roster_male_entriesw   sN  ø€ åÐWÑXÔXÐXØ”z " R %Ô(ˆØˆ
Ý(¨°rÑ:Ô:ð 	ð 	‰OˆF�Gåð   Dð   Dð   Dð   Dð  7Cð   Dñ   Dô   Dñ  Dô  DˆMØð ÝÐM°&ÐMÐM¸GÀCÀRÀC¼LÐMÐMÐMÑNÔNÐNÝ1ð ð �BØ˜WŸ]š]™_œ_Ð,Ð,Ø"×)Ò)Ø(.Ø')Ø'.ð+ð +ñ ô ð øøð 	×ÒÝ�
‰OŒO˜QØ^ÐR\Ð^Ð^ñ	
ô 	
ð 	
õ 	ÐXÑYÔYÐYÐYÐYrB   c           
      ó  ‡
‡— t          d¦  «         g }t          j        dt          j        ¦  «        }|                     | j        ¦  «        }d}t          | j        d¦  «        D �]Î\  }}|                     ¦   «         Š
‰
sŒt          j	        d‰
¦  «        }|re| 
                    d¦  «                             ¦   «         Št          ˆfd„dD ¦   «         ¦  «        r‰}n t          ˆfd„d	D ¦   «         ¦  «        rd
}nd}|rv|dvrrt          D ]j}|‰
                     ¦   «         v rRt          ˆ
fd„dD ¦   «         ¦  «        rŒ4t          ˆ
fd„dD ¦   «         ¦  «        rŒP|                     |||‰
dœ¦  «         ŒkdD ]º}	|	‰
v r´t          D ]¬}|‰
                     ¦   «         v r”t          ˆ
fd„dD ¦   «         ¦  «        rCd‰
                     ¦   «         v s,d‰
                     ¦   «         v sd‰
                     ¦   «         v rŒvt          ˆ
fd„dD ¦   «         ¦  «        rŒ’|                     ||	|‰
dœ¦  «         Œ­Œ»�ŒÐt          dt          |¦  «        › �¦  «         |                      t          |¦  «        dd|› �¦  «         t          d¦  «         dS )zXChallenge 4: Adversarially audit all 188 shots to confirm 0 active male weeping actions.zK
--- Challenge 4: Full Screenplay (188 Shots) Active Male Weeping Audit ---z7#####\s+Shot\s+(\d+):\s+`?(ep01_scene(\d+)_shot(\d+))`?Né   u!   ^\*{0,2}([A-ZÃ€-á»¸\s]+)\*{0,2}:?c              3   óD   •K  — | ]}|                      ¦   «         ‰v V — Œd S rM   )Úupper)rO   rP   Úspeakers     €r%   rQ   zeTestAdversarialMaleWeepingM1.test_04_full_screenplay_active_male_weeping_detection.<locals>.<genexpr>£   s0   øè è € ÐeÐe°�q—w’w‘y”y GÐ+ÐeÐeÐeÐeÐeÐerB   )r   r   r   c              3   ó    •K  — | ]}|‰v V — Œ	d S rM   rN   )rO   r$   r]   s     €r%   rQ   zeTestAdversarialMaleWeepingM1.test_04_full_screenplay_active_male_weeping_detection.<locals>.<genexpr>¥   s'   øè è € ÐmÐm¨!˜˜g˜ÐmÐmÐmÐmÐmÐmrB   )u   THÃšY KIá»€Uu
   THÃšY VÃ‚Nu   VÆ¯Æ NG BÃ€u   Ä�áº M TIÃŠNÚFEMALEÚOTHER)r_   r`   c              3   óD   •K  — | ]}|‰                      ¦   «         v V — Œd S rM   ©rE   ©rO   r$   Úline_strs     €r%   rQ   zeTestAdversarialMaleWeepingM1.test_04_full_screenplay_active_male_weeping_detection.<locals>.<genexpr>¯   s2   øè è € ÐwÐw¸˜q H§N¢NÑ$4Ô$4Ð4ÐwÐwÐwÐwÐwÐwrB   )õ   kiá»�uõ   nÃ ngu
   thÃºy vÃ¢nu   vÆ°Æ¡ng bÃ u   máº¹c              3   óD   •K  — | ]}|‰                      ¦   «         v V — Œd S rM   rb   ©rO   Únegrd   s     €r%   rQ   zeTestAdversarialMaleWeepingM1.test_04_full_screenplay_active_male_weeping_detection.<locals>.<genexpr>²   s2   øè è € ÐyÐy¸3˜s h§n¢nÑ&6Ô&6Ð6ÐyÐyÐyÐyÐyÐyrB   )u   khÃ´ngu   tuyá»‡t Ä‘á»‘i khÃ´ngu	   khÃ´ rÃ¡oz0%)r0   r]   r1   Útext)r   r   r   c              3   óD   •K  — | ]}|‰                      ¦   «         v V — Œd S rM   rb   rc   s     €r%   rQ   zeTestAdversarialMaleWeepingM1.test_04_full_screenplay_active_male_weeping_detection.<locals>.<genexpr>Á   s2   øè è € Ð"hÐ"h¸Q 1¨¯ªÑ(8Ô(8Ð#8Ð"hÐ"hÐ"hÐ"hÐ"hÐ"hrB   )re   rf   u   chiáº¿c quáº¡tu   giá»�t lá»‡ kiá»�uu!   giá»�t nÆ°á»›c máº¯t cá»§a kiá»�uu   quáº¡t ngá»�cc              3   óD   •K  — | ]}|‰                      ¦   «         v V — Œd S rM   rb   rh   s     €r%   rQ   zeTestAdversarialMaleWeepingM1.test_04_full_screenplay_active_male_weeping_detection.<locals>.<genexpr>Å   s2   øè è € Ð"}Ð"}¸s 3¨(¯.ª.Ñ*:Ô*:Ð#:Ð"}Ð"}Ð"}Ð"}Ð"}Ð"}rB   )r0   Ú	characterr1   rj   z/Active male weeping findings across 188 shots: r   z2FAIL: Detected active male weeping in screenplay: zKPASS: Confirmed 0 active male weeping actions or cues across all 188 shots.)r3   r7   Úcompiler:   Úsplitr    rS   r"   ÚstripÚmatchÚgrouprT   r6   rE   r;   r4   r<   )r=   Úactive_male_weepingÚshot_patternÚsplitsÚcurrent_speakerÚidxÚlineÚspeaker_matchr@   rP   rd   r]   s             @@r%   Ú5test_04_full_screenplay_active_male_weeping_detectionzRTestAdversarialMaleWeepingM1.test_04_full_screenplay_active_male_weeping_detection�   s‡  øø€ åÐ\Ñ]Ô]Ð]Ø Ðõ ”zÐ"\Õ^`Ô^kÑlÔlˆØ×#Ò# DÔ$8Ñ9Ô9ˆð ˆÝ" 4¤:¨qÑ1Ô1ð 2	ñ 2	‰IˆC�Ø—z’z‘|”|ˆHØð Øõ œHÐ%IÈ8ÑTÔTˆMØð .Ø'×-Ò-¨aÑ0Ô0×6Ò6Ñ8Ô8�ÝÐeÐeÐeÐeÐ5dÐeÑeÔeÑeÔeð .Ø&-�O�OÝÐmÐmÐmÐmÐ/lÐmÑmÔmÑmÔmð .Ø&.�O�Oà&-�Oð ð  ?Ð:MÐ#MÐ#MÝ1ð ð �BØ˜XŸ^š^Ñ-Ô-Ð-Ð-åÐwÐwÐwÐwÐ>vÐwÑwÔwÑwÔwð %Ø$åÐyÐyÐyÐyÐBxÐyÑyÔyÑyÔyð %Ø$Ø+×2Ò2Ø(+Ø'6Ø')Ø$,ð	4ð 4ñ ô ð øð Eð ð �Ø˜�=�=Ý5ð ð ˜Ø §¢Ñ!1Ô!1Ð1Ð1å"Ð"hÐ"hÐ"hÐ"hÐBgÐ"hÑ"hÔ"hÑhÔhð -Ø#7¸8¿>º>Ñ;KÔ;KÐ#KÐ#KÐOrÐv~÷  wEò  wEñ  wGô  wGð  PGð  PGð  KZð  ^f÷  ^lò  ^lñ  ^nô  ^nð  Knð  KnØ$,å"Ð"}Ð"}Ð"}Ð"}ÐF|Ð"}Ñ"}Ô"}Ñ}Ô}ð )Ø (Ø/×6Ò6Ø,/Ø-.Ø+-Ø(0ð	8ð 8ñ ô ð øøñõ$ 	ÐZÅÐDWÑ@XÔ@XÐZÐZÑ[Ô[Ð[Ø×ÒÝÐ#Ñ$Ô$ aØVÐATÐVÐVñ	
ô 	
ð 	
õ 	Ð[Ñ\Ô\Ð\Ð\Ð\rB   c           
      ón  — t          d¦  «         t          | j        ¦  «        }t          dt          |¦  «        › �¦  «         |D ],}t          d|d         › d|d         › d|d         › �¦  «         Œ-|                      t          |¦  «        d	d
t          |¦  «        › �¦  «         t          d¦  «         dS )zHChallenge 5: Verify tests.find_male_crying_violations returns exactly 0.zA
--- Challenge 5: Official Helper find_male_crying_violations ---zViolations count: z  Violation at Line r0   r.   rm   z -> rj   r   zExpected 0 violations, got z,PASS: Official helper confirms 0 violations.N)r3   r	   r    r4   r<   )r=   r?   Úvs      r%   Ú3test_05_official_helper_find_male_crying_violationszPTestAdversarialMaleWeepingM1.test_05_official_helper_find_male_crying_violationsÕ   sÈ   € åÐRÑSÔSÐSÝ0°Ô1EÑFÔFˆ
ÝÐ4¥3 z¡?¤?Ð4Ð4Ñ5Ô5Ð5Øð 	[ð 	[ˆAÝÐY¨¨:¬ÐYÐY¸!¸K¼.ÐYÐYÈaÐPVÌiÐYÐYÑZÔZÐZÐZØ×Ò�˜Z™œ¨!Ð-\Í3ÈzÉ?Ì?Ð-\Ð-\Ñ]Ô]Ð]ÝÐ<Ñ=Ô=Ð=Ð=Ð=rB   c                 ó°  ‡‡‡— t          d¦  «         | j        d         Š| j        d         Š| j        d         Š|                      t          ˆfd„dD ¦   «         ¦  «        d¦  «         |                      t          ˆfd„d	D ¦   «         ¦  «        d
¦  «         |                      t          ˆfd„dD ¦   «         ¦  «        d¦  «         t          d¦  «         dS )zRChallenge 6: Verify presence of codified positive stoic indicators in lines 17-20.z>
--- Challenge 6: Stoic Positive Indicators in Lines 17-20 ---r)   r+   r,   c              3   óD   •K  — | ]}|‰                      ¦   «         v V — Œd S rM   rb   )rO   ÚwÚline_17s     €r%   rQ   zZTestAdversarialMaleWeepingM1.test_06_stoic_positive_indicators_presence.<locals>.<genexpr>è   s0   øè è € ÐgÐg¨��W—]’]‘_”_Ð$ÐgÐgÐgÐgÐgÐgrB   )u   kháº¯c ká»·u   kiÃªn Ä‘á»‹nhu   nÃ©n sÃ¢u hÆ¡i thá»Ÿu9   Kim Trá»�ng (Line 17) must have positive stoic indicatorsc              3   óD   •K  — | ]}|‰                      ¦   «         v V — Œd S rM   rb   )rO   r€   Úline_19s     €r%   rQ   zZTestAdversarialMaleWeepingM1.test_06_stoic_positive_indicators_presence.<locals>.<genexpr>í   s0   øè è € Ð`Ð`¨��W—]’]‘_”_Ð$Ð`Ð`Ð`Ð`Ð`Ð`rB   )u
   sáº¯t Ä‘Ã¡õ   kiÃªn cÆ°á»�ngu   trÆ°á»£ng phuu:   VÆ°Æ¡ng Quan (Line 19) must have positive stoic indicatorsc              3   óD   •K  — | ]}|‰                      ¦   «         v V — Œd S rM   rb   )rO   r€   Úline_20s     €r%   rQ   zZTestAdversarialMaleWeepingM1.test_06_stoic_positive_indicators_presence.<locals>.<genexpr>ò   s0   øè è € Ð~Ð~¨��W—]’]‘_”_Ð$Ð~Ð~Ð~Ð~Ð~Ð~rB   )u   khÃ­ tiáº¿tu   gia trÆ°á»Ÿngr„   u   tráº§m Ä‘á»¥c Ä‘anh thÃ©pu:   VÆ°Æ¡ng Ã”ng (Line 20) must have positive stoic indicatorszDPASS: Positive feudal stoic indicators verified in all male entries.N)r3   r"   Ú
assertTruerT   )r=   r�   rƒ   r†   s    @@@r%   Ú*test_06_stoic_positive_indicators_presencezGTestAdversarialMaleWeepingM1.test_06_stoic_positive_indicators_presenceß   s   øøø€ åÐOÑPÔPÐPØ”*˜R”.ˆØ”*˜R”.ˆØ”*˜R”.ˆð 	�ŠÝÐgÐgÐgÐgÐ.fÐgÑgÔgÑgÔgØGñ	
ô 	
ð 	
ð
 	�ŠÝÐ`Ð`Ð`Ð`Ð._Ð`Ñ`Ô`Ñ`Ô`ØHñ	
ô 	
ð 	
ð
 	�ŠÝÐ~Ð~Ð~Ð~Ð.}Ð~Ñ~Ô~Ñ~Ô~ØHñ	
ô 	
ð 	
õ 	ÐTÑUÔUÐUÐUÐUrB   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr&   rA   rG   rX   rz   r}   rˆ   rN   rB   r%   r   r   ;   sœ   € € € € € àð5ð 5ñ „[ð5ð
Oð Oð Oð6ð ð ð2Zð Zð Zð0D]ð D]ð D]ðL>ð >ð >ðVð Vð Vð Vð VrB   r   c                  óÜ  — t          j        ¦   «                              t          ¦  «        } t          j        d¬¦  «        }|                     | ¦  «        }|j        |                     ¦   «         t          |j	        ¦  «        t          |j
        ¦  «        d„ |j	        D ¦   «         |                     ¦   «         rdnddœ}t          dz  dz  }t          |d	d
¬¦  «        5 }t          j        ||dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          d¦  «         t          d|d         › �¦  «         t          d|› �¦  «         t          d¦  «         |                     ¦   «         rdndS )Né   )Ú	verbosityc                 ó8   — g | ]}t          |d          ¦  «        ‘ŒS )rZ   )Ústr)rO   r$   s     r%   ú
<listcomp>z"run_and_export.<locals>.<listcomp>  s"   € Ð8Ð8Ð8 1•S˜˜1œ‘Y”YÐ8Ð8Ð8rB   ÚAPPROVEÚREQUEST_CHANGES)Ú	tests_runÚwas_successfulÚfailures_countÚerrors_countÚfailuresÚverdictÚtestsz(adversarial_male_weeping_m1_results.jsonr€   r   r   F)ÚindentÚensure_asciiz8
=======================================================zEMPIRICAL VERDICT: rš   zResults exported to z7=======================================================r   rZ   )ÚunittestÚ
TestLoaderÚloadTestsFromTestCaser   ÚTextTestRunnerÚrunÚtestsRunÚwasSuccessfulr4   r™   ÚerrorsÚBASE_DIRr   ÚjsonÚdumpr3   )ÚsuiteÚrunnerÚresultÚreportÚreport_pathr$   s         r%   Úrun_and_exportr®   ø   s«  € ÝÔÑ!Ô!×7Ò7Õ8TÑUÔU€EÝÔ$¨qÐ1Ñ1Ô1€FØ�ZŠZ˜ÑÔ€Fð ”_Ø ×.Ò.Ñ0Ô0Ý˜fœoÑ.Ô.Ý˜FœMÑ*Ô*Ø8Ð8¨¬Ð8Ñ8Ô8Ø &× 4Ò 4Ñ 6Ô 6ÐM�9�9Ð<Mðð €Fõ ˜WÑ$Ð'QÑQ€KÝ	ˆk˜3¨Ð	1Ñ	1Ô	1ð ;°QÝŒ	�&˜! A°EÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;õ 
Ð
FÑGÔGÐGÝ	Ð
3  yÔ 1Ð
3Ð
3Ñ4Ô4Ð4Ý	Ð
. Ð
.Ð
.Ñ/Ô/Ð/Ý	Ð
DÑEÔEÐEà×$Ò$Ñ&Ô&Ð-ˆ1ˆ1¨AÐ-s   ÃDÄDÄ
DÚ__main__)(Ú__doc__ÚbuiltinsÚ@py_builtinsÚ_pytest.assertion.rewriteÚ	assertionÚrewriteÚ
@pytest_arÚsysÚosr7   r§   rž   Úpathlibr   Ústdoutr   ÚreconfigureÚ	ExceptionÚ__file__ÚresolveÚparentr¦   ÚFILMMAKER_DIRr   ÚpathÚinsertr‘   r›   r   r	   r
   r   r6   rD   ÚALL_MALE_CHARACTERSÚTestCaser   r®   r‰   ÚexitrN   rB   r%   ú<module>rÆ      sí  ððð ð € € € € € € € € € € € € €
€
€
€
Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ð „:Ô˜'Ò!Ð!ðØŒ
×Ò¨ÐÑ0Ô0Ð0Ð0øØð ð ð Øˆðøøøð ˆ4�‰>Œ>×!Ò!Ñ#Ô#Ô*Ô1€Ø˜;Ñ&€ØÐUÑU€
à „‡‚��3�3�x‘=”=Ñ !Ô !Ð !Ø kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kÐ kðð ð Ð ðð ð Ð ð
ð 
ð 
Ð ðzVð zVð zVð zVð zV 8Ô#4ñ zVô zVð zVðz.ð .ð .ð4 ˆzÒÐØ€C„Hˆ^ˆ^ÑÔÑÔÐÐÐð Ðs   »A ÁAÁA