§
    ~›Áj§"  ã                   ó6  — 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mZ ddlZddlZddlmZmZmZmZmZmZmZmZ dZ ed¦  «        Zd„ Zdd„Zej                             d	dd
g¦  «        d„ ¦   «         Zej                             d	ddg¦  «        d„ ¦   «         Zg d¢Z ej                             dddg¦  «        ej                             de ¦  «        d„ ¦   «         ¦   «         Z!ej                             dg d¢¦  «        d„ ¦   «         Z"d„ Z#d„ Z$dS )zMNetwork-free provider contracts, safe failures and single-provider selection.é    N©ÚSimpleNamespace)ÚCF_STT_MODELÚCloudflareWorkersAISttProviderÚOpenAICompatibleSTTÚTranscriptionErrorÚVoiceManagerÚVoiceRequestÚconfigured_sttÚwav_pcmztest-private-key-never-logsÐ  public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!public-audio-marker!c                 óz   ‡‡‡‡— t           j        Šg Šˆˆfd„Šˆˆfd„}|                      t           d|¦  «         ‰S )Nc                 óD   •— ‰                      | ¦  «          ‰| ¦  «        S ©N©Úappend)ÚrequestÚcallsÚhandlers    €€úW/home/lighthouse/esp32-dev/.cache/downlink-investigation-0.5.1/server/tests/test_stt.pyÚhandlezmock_http.<locals>.handle   s%   ø€ Ø�Š�WÑÔÐØˆw�wÑÔÐó    c                  ó�  •— dddœ}| |k    }|s—t          j        d|fd| |f¦  «        dt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚d x}} ‰di | ¤d
t          j	        ‰¦  «        i¤ŽS )Né   F)ÚtimeoutÚfollow_redirects©ú==©z%(py0)s == %(py3)sÚkwargs©Úpy0Úpy3úassert %(py5)sÚpy5Ú	transport© )
Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚhttpxÚMockTransport)r   Ú@py_assert2Ú@py_assert1Ú@py_format4Ú@py_format6Úclientr   s        €€r   Úfactoryzmock_http.<locals>.factory   sü   ø€ Ø%'¸UÐCÐCÐCˆvÐCÒCÐCÐCÐCÕCÔCÐCÐCÐCÐCˆvÐCÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔCˆvÑCÔCÐCÕCÔCˆvÑCÔCÐCÐCÕCÔCÐCÑCÔCÐCÐCÑCÐCÐCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCÐCÐCØˆvÐFÐF˜ÐFÐF­%Ô*=¸fÑ*EÔ*EÐFÐFÐFÐFr   ÚAsyncClient)r/   r7   Úsetattr)Úmonkeypatchr   r6   r   r5   r   s    ` @@@r   Ú	mock_httpr:      st   øøøø€ ÝÔ€FØ€Eð ð  ð  ð  ð  ð  ðGð Gð Gð Gð Gð Gð ×Ò�˜}¨gÑ6Ô6Ð6Ø€Lr   c                 ól   — | dk    rt          dt          |¬¦  «        S t          dt          d|¬¦  «        S )NÚ
cloudflareútest-account)Úinitial_promptzhttps://api.groq.com/openai/v1/úwhisper-large-v3-turbo)r   ÚKEYr   )ÚnameÚprompts     r   Úmake_providerrC   $   sH   € Øˆ|ÒÐÝ-¨n½cÐRXÐYÑYÔYÐYÝÐ@Å#Ø7ÈðPñ Pô Pð Pr   rB   z"Codex, Pi, session, branch, pytestc                 óf  ‡— ˆfd„}t          | |¦  «        }t          d‰¦  «        }t          j        }|j        } |t
          ¦  «        } ||¦  «        }d}	||	k    }
|
�sst          j        d|
fd||	f¦  «        dt          j	        ¦   «         v st          j
        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j	        ¦   «         v st          j
        t
          ¦  «        rt          j        t
          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        d	œz  }d
d|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}
}	t          |¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        t          ¦  «        rt          j        t          ¦  «        nddt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}d S )Nc                 óL  •— | j         }t          |¦  «        }d}|t          z   }||k    }|�sMt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddœz  }dd	|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}}| j        d
         }d}	|	t          z   }||k    }|s´t          j        d|fd||f¦  «        t          j        |¦  «        t          j        |	¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}	}| j        d         }d}	||	k    }|slt          j        d|fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }
t          t          j
        |
¦  «        ¦  «        ‚d x}x}}	t          j        | j        ¦  «        }t           j        }|j        }d} ||¦  «        }d} |||¬¦  «        }|t&          k    }|�s‹t          j        d|fd|t&          f¦  «        dt          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        t&          ¦  «        rt          j        t&          ¦  «        nddœ	z  }dd |iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}x}x}}‰rd!‰d"œnd#d!i}||k    }|s—t          j        d|fd$||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d%œz  }d&d'|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}}t)          j        d(dg d)d*d+id,œd-œ¬.¦  «        S )/NzBhttps://api.cloudflare.com/client/v4/accounts/test-account/ai/run/r   )zU%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.url
})
} == (%(py8)s + %(py9)s)Ústrr   r   )r!   Úpy1r"   r$   Úpy8Úpy9zassert %(py12)sÚpy12ÚauthorizationúBearer ©z%(py1)s == (%(py4)s + %(py5)s)r@   ©rG   Úpy4r$   úassert %(py8)srH   úcontent-typezapplication/json©z%(py1)s == %(py4)s©rG   rO   úassert %(py6)sÚpy6ÚaudioT)Úvalidate)zœ%(py13)s
{%(py13)s = %(py2)s
{%(py2)s = %(py0)s.b64decode
}(%(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.pop
}(%(py7)s)
}, validate=%(py11)s)
} == %(py15)sÚbase64ÚpayloadÚWAV)	r!   Úpy2r"   r$   Úpy7rI   Úpy11Úpy13Úpy15úassert %(py17)sÚpy17Ú
transcribe)Útaskr>   rc   r   r    r#   r$   éÈ   u6    è¯· resume Codex sessionï¼Œç„¶å�Ž checkout branchã€‚ ÚlanguageÚzh)ÚtextÚtranscription_info)ÚsuccessÚerrorsÚresult©Újson)ÚurlrF   r   r'   r(   r)   r*   r+   r,   r-   r.   Úheadersr@   rm   ÚloadsÚcontentrX   Ú	b64decodeÚpoprZ   r/   ÚResponse)r   r1   Ú@py_assert4Ú@py_assert7Ú@py_assert10Ú@py_assert6Ú@py_format11Ú@py_format13Ú@py_assert0Ú@py_assert3Ú@py_format7Ú@py_format9Ú@py_format5rY   r2   Ú@py_assert8Ú@py_assert12Ú@py_assert14Ú@py_format16Ú@py_format18r3   r4   rB   s                         €r   r   z9test_cloudflare_serialization_and_success.<locals>.handle-   s(  ø€ Ø”;ð 	a�s�;ÑÔð 	aØPð	aØPÕS_Ñ_ð	aÐØ_òað 	að 	añ 	aõ 	aÜO`ð	að 	að 	að 	aÐØ_ð	añ 	aô 	að 	aõ 	aÜZ`ñ	aô 	að 	að 	aõ 	aÜH`õ ñ 	aô 	að 	aõ 	aÜW`õ ñ 	aô 	að 	að 	að 	aõ 	aÜZ`ñ	aô 	að 	að 	aõ 	aÜH`ð ñ 	aô 	að 	aõ 	aÜW`ð ñ 	aô 	að 	að 	aõ 	aÜW`ð ñ 	aô 	aõ 	aÜW`ð  ñ 	aô 	aõ 	aÜW`ÐPñ	aô 	að 	aõ 	aÜZ`ñ	aô 	að 	að 	aõ 	aÜH`ÕS_ñ	aô 	að 	aõ 	aÜW`ÕS_ñ	aô 	að 	að 	að 	að 	añ 	að 	að 	að 	að 	að 	añ 	að 	aõ 	aõ 	aÜM`ð	añ 	aô 	añ 	aô 	að 	að 	að 	að 	að 	að 	að 	að 	að 	að 	að 	aàŒ˜Ô/ÐB°9ÐB°9½s±?ÐBÐ/°?ÒBÐBÐBÐBÕBÔBÐBÐBÐBÐBÐ/°?ÐBÑBÔBÕBÔBÐ/ÑBÔBÕBÔB°9ÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔB½sÑBÔBÐBÕBÔB½sÑBÔBÐBÐBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBØŒ˜~Ô.ÐDÐ2DÐDÐ.Ð2DÒDÐDÐDÐDÕDÔDÐDÐDÐDÐDÐ.Ð2DÐDÑDÔDÕDÔDÐ.ÑDÔDÕDÔDÐ2DÑDÔDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÕDÕDÔDÐDÑDÔDÑDÔDÐDÐDÐDÐDÐDÐDÐDÝ”*˜Wœ_Ñ-Ô-ˆÝÔÐK ¤ÐK¨GÐK  ¨GÑ 4Ô 4ÐK¸tÐKÐÐÐ 4¸tÐDÑDÔDÐKÐDÍÒKÐKÐKÑKÕKÔKÐKÐKÐKÐKÐDÍÐKÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔK�vÑKÔKÐKÕKÔK�vÑKÔKÐKÐKÕKÔKÐÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔK ÑKÔKÐKÕKÔK ÑKÔKÐKÐKÕKÔK ÑKÔKÕKÔK¨GÑKÔKÕKÔKÐ 4ÑKÔKÕKÔK¸tÑKÔKÕKÔKÐDÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔKÍÑKÔKÐKÕKÔKÍÑKÔKÐKÐKÐKÐKÑKÐKÐKÐKÐKÐKÑKÐKÕKÕKÔKÐKÑKÔKÑKÔKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKà$ðA LÀFÐKÐKÐKØ+1°<Ð*@ð	Bˆwð Aò Bð 	Bð 	Bð 	Bõ 	BÜ0Að	Bð 	Bð 	Bð 	Bˆwð Að 	Bñ 	Bô 	Bð 	Bõ 	BÜ;Añ	Bô 	Bð 	Bð 	Bõ 	BÜ)Að ñ 	Bô 	Bð 	Bõ 	BÜ8Að ñ 	Bô 	Bð 	Bð 	Bõ 	BÜ8AðAñ 	Bô 	Bð 	Bð 	Bñ 	Bð 	Bð 	Bð 	Bð 	Bð 	Bñ 	Bð 	Bõ 	Bõ 	BÜ.Að	Bñ 	Bô 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	BåŒ~˜c°DÀBØWØ.8¸$Ð-?ðAð Að)Bð )Bð Cñ Cô Cð 	Cr   r<   u4   è¯· resume Codex sessionï¼Œç„¶å�Ž checkout branchã€‚r   )zŠ%(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.run
}(%(py8)s
{%(py8)s = %(py5)s
{%(py5)s = %(py3)s.transcribe
}(%(py6)s)
})
} == %(py13)sÚasyncioÚproviderrZ   )r!   r[   r"   r$   rU   rH   Úpy10r^   zassert %(py15)sr_   é   ©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenr   ©r!   rG   r"   rU   rP   rH   r   )ú>=)z<%(py2)s
{%(py2)s = %(py0)s.last_request_seconds
} >= %(py5)s©r!   r[   r$   úassert %(py7)sr\   )r:   rC   r…   Úrunrb   rZ   r'   r(   r)   r*   r+   r,   r-   r.   rŠ   Úlast_request_seconds)r9   rB   r   r   r†   r2   ru   rv   Ú@py_assert9r�   Ú@py_assert11Ú@py_format14rƒ   r1   Ú@py_assert5r}   r~   r|   r4   Ú@py_format8s    `                  r   Ú)test_cloudflare_serialization_and_successr–   +   s  ø€ ðCð Cð Cð Cð Cõ �k 6Ñ*Ô*€EÝ˜\¨6Ñ2Ô2€HÝŒ;Ðj�xÔ*ÐjÐ*Ð*­3Ñ/Ô/Ðjˆ;ˆ;Ð/Ñ0Ô0ÐjÐ4jÐjÐ0Ð4jÒjÐjÐjÑjÕjÔjÐjÐjÐjÐjÐ0Ð4jÐjÑjÔjÐjÕjÔjÑjÔjÐjÐjÕjÔj�7ÑjÔjÐjÕjÔj�7ÑjÔjÐjÐjÕjÔjˆ;ÑjÔjÐjÕjÔjÑjÔjÐjÐjÕjÔj�xÑjÔjÐjÕjÔj�xÑjÔjÐjÐjÕjÔjÐ*ÑjÔjÐjÕjÔjÑjÔjÐjÐjÕjÔj­3ÑjÔjÐjÕjÔj­3ÑjÔjÐjÐjÕjÔjÐ/ÑjÔjÕjÔjÐ0ÑjÔjÕjÔjÐ4jÑjÔjÐjÐjÑjÐjÐjÐjÐjÐjÑjÐjÕjÕjÔjÐjÑjÔjÑjÔjÐjÐjÐjÐjÐjÐjÐjÐjÐjÐjÐjÐjÐjÝˆu‰:Œ:Ð˜Ðˆ:˜Š?ÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆuÑÔÐÕÔˆuÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔ(Ð-¨AÐ-Ð(¨AÒ-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð(¨AÐ-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆ8Ñ-Ô-Ð-Õ-Ô-ˆ8Ñ-Ô-Ð-Ð-Õ-Ô-Ð(Ñ-Ô-Õ-Ô-¨AÑ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-r   úCodex, pytestc                 óÌ  ‡— ˆfd„}t          | |¦  «        }t          j        }d}t          |‰¦  «        }|j        } |t
          ¦  «        } ||¦  «        }	d}
|	|
k    }|�sát          j        d|fd|	|
f¦  «        dt          j	        ¦   «         v st          j
        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j	        ¦   «         v st          j
        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j	        ¦   «         v st          j
        ‰¦  «        rt          j        ‰¦  «        ndt          j        |¦  «        t          j        |¦  «        d	t          j	        ¦   «         v st          j
        t
          ¦  «        rt          j        t
          ¦  «        nd	t          j        |¦  «        t          j        |	¦  «        t          j        |
¦  «        d
œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}x}	x}}
t          |¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        t          ¦  «        rt          j        t          ¦  «        nddt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}d S )Nc                 ó”  •— | j         }t          |¦  «        }d}||k    }|�st          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}}| j
        d	         }d
}|t          z   }||k    }|s´t          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddœz  }	dd|	iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}}| j
        d         }|j        }d} ||¦  «        }|ssdt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}x}}| j        }t          |v }|sät          j        d|fdt          |f¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }	t          t          j	        |	¦  «        ¦  «        ‚d x}}d}| j        }||v }|sªt          j        d|fd||f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}}d}| j        }||v }|sªt          j        d|fd||f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}}d }| j        }||v}|sªt          j        d!|fd"||f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}}d#}| j        }||v}|sªt          j        d!|fd"||f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}}d$}| j        }||v }t          ‰¦  «        }||k    }|�sbt          j        d|fd||f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        dœz  }t          j        d|fd%||f¦  «        |d&t	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd&d't	          j        ¦   «         v st          j        ‰¦  «        rt          j        ‰¦  «        nd't          j        |¦  «        d(œz  }d)d*|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}}t!          j        d+d,d-i¬.¦  «        S )/Nz3https://api.groq.com/openai/v1/audio/transcriptionsr   )zI%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.url
})
} == %(py8)srF   r   ©r!   rG   r"   r$   rH   úassert %(py10)sr‡   rK   rL   rM   r@   rN   rP   rH   rQ   zmultipart/form-data; boundary=zLassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.startswith
}(%(py5)s)
})rG   r"   r$   r\   ©Úin)z/%(py0)s in %(py4)s
{%(py4)s = %(py2)s.content
}rZ   ©r!   r[   rO   rT   rU   s&   name="model"

whisper-large-v3-turbo)z/%(py1)s in %(py5)s
{%(py5)s = %(py3)s.content
})rG   r"   r$   rŽ   r\   s   filename="voice.wav"s   name="language"©únot in)z3%(py1)s not in %(py5)s
{%(py5)s = %(py3)s.content
}s   name="initial_prompt"s   name="prompt")z5(%(py7)s) == %(py12)s
{%(py12)s = %(py9)s(%(py10)s)
}ÚboolrB   )r\   rI   r‡   rJ   zassert %(py14)sÚpy14rd   rg   ú
run pytestrl   )rn   rF   r'   r(   r)   r*   r+   r,   r-   r.   ro   r@   Ú
startswithrq   rZ   r¡   r/   rt   )r   r1   ru   rv   rx   r~   ry   r{   r|   r}   r•   r2   r   r4   r’   r€   rz   Ú@py_format15rB   s                     €r   r   z6test_groq_openai_compatible_regression.<locals>.handleC   s3	  ø€ Ø”;ÐX�s�;ÑÔÐXÐ#XÐXÐÐ#XÒXÐXÐXÑXÕXÔXÐXÐXÐXÐXÐÐ#XÐXÑXÔXÐXÕXÔXÑXÔXÐXÐXÕXÔX�sÑXÔXÐXÕXÔX�sÑXÔXÐXÐXÐXÕXÔXÑXÔXÐXÐXÕXÔX�7ÑXÔXÐXÕXÔX�7ÑXÔXÐXÐXÕXÔX�;ÑXÔXÕXÔXÐÑXÔXÕXÔXÐ#XÑXÔXÐXÐXÑXÐXÐXÐXÐXÐXÑXÐXÕXÕXÔXÐXÑXÔXÑXÔXÐXÐXÐXÐXÐXÐXÐXÐXÐXØŒ˜Ô/ÐB°9ÐB°9½s±?ÐBÐ/°?ÒBÐBÐBÐBÕBÔBÐBÐBÐBÐBÐ/°?ÐBÑBÔBÕBÔBÐ/ÑBÔBÕBÔB°9ÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔB½sÑBÔBÐBÕBÔB½sÑBÔBÐBÐBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBØŒ˜~Ô.Ð[Ð.Ô9Ð[Ð:ZÐ[Ð9Ð9Ð:ZÑ[Ô[Ð[Ð[Ð[Ð[Õ[Ô[Ð.Ñ[Ô[Õ[Ô[Ð9Ñ[Ô[Õ[Ô[Ð:ZÑ[Ô[Õ[Ô[Ð[Ñ[Ô[Ð[Ð[Ñ[Ð[Õ[Õ[Ô[Ð[Ñ[Ô[Ñ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ø”oÐ%�s�oÐ%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%�s�oÐ%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�sÑ%Ô%Ð%Õ%Ô%�sÑ%Ô%Ð%Ð%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�gÑ%Ô%Ð%Õ%Ô%�gÑ%Ô%Ð%Ð%Õ%Ô%�oÑ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ø<ÐOÀÄÐOÐ<ÀÐOÐOÐOÐOÕOÔOÐOÐOÐOÐOÐ<ÀÐOÑOÔOÕOÔOÐ<ÑOÔOÐOÕOÔOÑOÔOÐOÐOÕOÔOÀÑOÔOÐOÕOÔOÀÑOÔOÐOÐOÕOÔOÀÑOÔOÐOÐOÑOÐOÐOÐOÐOÐOÑOÐOÕOÕOÔOÐOÑOÔOÑOÔOÐOÐOÐOÐOÐOÐOÐOØ&Ð9¨'¬/Ð9Ð&¨/Ð9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9Ð&¨/Ð9Ñ9Ô9Õ9Ô9Ð&Ñ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9¨'Ñ9Ô9Ð9Õ9Ô9¨'Ñ9Ô9Ð9Ð9Õ9Ô9¨/Ñ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø!Ð8¨¬Ð8Ð!¨Ð8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð!¨Ð8Ñ8Ô8Õ8Ô8Ð!Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8¨Ñ8Ô8Ð8Õ8Ô8¨Ñ8Ô8Ð8Ð8Õ8Ô8¨Ñ8Ô8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ø'Ð>¨w¬Ð>Ð'¨Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð'¨Ð>Ñ>Ô>Õ>Ô>Ð'Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>¨wÑ>Ô>Ð>Õ>Ô>¨wÑ>Ô>Ð>Ð>Õ>Ô>¨Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ø ÐD G¤OÐDÐ  OÐ3ÐD½¸V¹¼ÐDÐD¸ÒDÐDÐDÑDÕDÔDÐDÐDÐDÐDÐ  OÐDÑDÔDÕDÔDÐ ÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔD GÑDÔDÐDÕDÔD GÑDÔDÐDÐDÕDÔD OÑDÔDÐDÐDÑDÐDÕDÔDÐDÐDÐDÐDÐD¸ÐDÑDÔDÐDÐDÕDÔDÑDÔDÐDÐDÕDÔD½ÑDÔDÐDÕDÔD½ÑDÔDÐDÐDÐDÕDÔDÑDÔDÐDÐDÕDÔD¸VÑDÔDÐDÕDÔD¸VÑDÔDÐDÐDÕDÔD¸ÑDÔDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÕDÕDÔDÐDÑDÔDÑDÔDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÝŒ~˜c¨°Ð(>Ð?Ñ?Ô?Ð?r   Úgroqr£   r   )z¶%(py15)s
{%(py15)s = %(py2)s
{%(py2)s = %(py0)s.run
}(%(py13)s
{%(py13)s = %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py3)s(%(py5)s, %(py6)s)
}.transcribe
}(%(py11)s)
})
} == %(py18)sr…   rC   rB   rZ   )r!   r[   r"   r$   rU   rH   r‡   r]   r^   r_   Úpy18úassert %(py20)sÚpy20rˆ   r‰   rŠ   r   r‹   rP   rH   )r:   r…   r�   rC   rb   rZ   r'   r(   r)   r*   r+   r,   r-   r.   rŠ   )r9   rB   r   r   r2   ru   rv   r‘   r�   r‚   Ú@py_assert17Ú@py_assert16Ú@py_format19Ú@py_format21r1   r”   r}   r~   s    `                r   Ú&test_groq_openai_compatible_regressionr®   A   s…  ø€ ð
@ð 
@ð 
@ð 
@ð 
@õ �k 6Ñ*Ô*€EÝŒ;ÐU VÐU•} V¨VÑ4Ô4ÐUÐ4Ô?ÐUÐ?Ð?ÅÑDÔDÐUˆ;ˆ;ÐDÑEÔEÐUÈÐUÐEÈÒUÐUÐUÑUÕUÔUÐUÐUÐUÐUÐEÈÐUÑUÔUÐUÕUÔUÑUÔUÐUÐUÕUÔU�7ÑUÔUÐUÕUÔU�7ÑUÔUÐUÐUÕUÔUˆ;ÑUÔUÐUÕUÔUÑUÔUÐUÐUÕUÔU•}ÑUÔUÐUÕUÔU•}ÑUÔUÐUÐUÕUÔU VÑUÔUÐUÕUÔUÑUÔUÐUÐUÕUÔU¨VÑUÔUÐUÕUÔU¨VÑUÔUÐUÐUÕUÔUÐ4ÑUÔUÕUÔUÐ?ÑUÔUÐUÕUÔUÑUÔUÐUÐUÕUÔUÅÑUÔUÐUÕUÔUÅÑUÔUÐUÐUÕUÔUÐDÑUÔUÕUÔUÐEÑUÔUÕUÔUÈÑUÔUÐUÐUÑUÐUÐUÐUÐUÐUÑUÐUÕUÕUÔUÐUÑUÔUÑUÔUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUÝˆu‰:Œ:Ð˜Ðˆ:˜Š?ÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆuÑÔÐÕÔˆuÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐr   )é‘  é“  é­  éô  i÷  i.  r   Únetworkúinvalid-jsonÚemptyÚblankÚmissingú
non-stringú
non-objectú
bad-resultúenvelope-errorrA   r<   r¦   Úfailurec                 óf  ‡‡— ˆˆfd„}t          | |¦  «        }|                     t          j        ¦  «         t	          j        t          ¦  «        5 }t          j        t          ‰¦  «         
                    t          ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |j        }t          |¦  «        }d}	||	k    }
|
�st          j        d|
fd||	f¦  «        dt!          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt!          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd	|iz  }t)          t          j        |¦  «        ¦  «        ‚d x}x}x}
}	t-          |¦  «        }d
}||k    }|sòt          j        d|fd||f¦  «        dt!          j        ¦   «         v st          j        t,          ¦  «        rt          j        t,          ¦  «        nddt!          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t)          t          j        |¦  «        ¦  «        ‚d x}x}}g }d}|j        }
||
v }|}|rd}|j        }||v }|}|�s~t          j        d|fd||
f¦  «        t          j        |¦  «        dt!          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        dœz  }dd|iz  }|                     |¦  «         |ržt          j        d|fd||f¦  «        t          j        |¦  «        dt!          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t)          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}
x}x}}t4          d t7          j        t          ¦  «                             ¦   «         d!fD ]è}|j        }||v}|sÕt          j        d"|fd#||f¦  «        d$t!          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd$dt!          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d%œz  }d&d'|iz  }t)          t          j        |¦  «        ¦  «        ‚d x}}Œéd S )(Nc                 ó  •— ‰dv r3‰dk    rt           j        nt           j        } |t          dz   | ¬¦  «        ‚t	          ‰t
          ¦  «        r!t          j        ‰t          dz   ddi¬¦  «        S ‰dk    rt          j        d	t          ¬
¦  «        S dddddœ                     ‰¦  «        i}‰dk    ri }‰dk    rg }‰dk    r6d|g dœ}‰dk    rd |d<   ‰dk    r|                     ddt          ig¬¦  «         t          j        d	|¬¦  «        S )N)r   r³   r   z public-audio-marker!©r   ÚLocationzhttps://untrusted.example/)rg   ro   r´   rd   ©rg   rg   Ú z 
 é*   )rµ   r¶   r¸   r·   r¹   r<   T)ri   rk   rj   rº   rk   r»   FÚmessage)ri   rj   rl   )	r/   ÚReadTimeoutÚConnectErrorr@   Ú
isinstanceÚintrt   ÚgetÚupdate)r   ÚerrorrY   r¼   rA   s      €€r   r   z:test_safe_failures_no_retry_or_secret_logs.<locals>.handle[   sX  ø€ ØÐ,Ð,Ð,Ø)0°IÒ)=Ð)=•EÔ%Ð%Å5ÔCUˆEØ�%�Ð5Ñ5¸wÐGÑGÔGÐGÝ�g�sÑ#Ô#ð 	VÝ”> 'µÐ6MÑ0MØ+5Ð7SÐ*TðVñ Vô Vð Và�nÒ$Ð$Ý”> #­CÐ0Ñ0Ô0Ð0Ø R°)È2ÐNÐN×RÒRÐSZÑ[Ô[Ð\ˆØ�iÒÐØˆGØ�lÒ"Ð"ØˆGØ�<ÒÐØ"&°'ÀRÐHÐHˆGØ˜,Ò&Ð&Ø$(�˜Ñ!ØÐ*Ò*Ð*Ø—’ u°yÅ#Ð6FÐ5G�ÑHÔHÐHÝŒ~˜c¨Ð0Ñ0Ô0Ð0r   úTranscription failedr   )zK%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.value
})
} == %(py8)srF   Úexcrš   r›   r‡   rˆ   r‰   rŠ   r   r‹   rP   rH   zSTT provider=zrequest_seconds=rœ   )z,%(py3)s in %(py7)s
{%(py7)s = %(py5)s.text
}Úcaplog)r"   r$   r\   z%(py9)srI   )z0%(py12)s in %(py16)s
{%(py16)s = %(py14)s.text
})rJ   r¢   Úpy16z%(py18)sr§   r   zassert %(py21)sÚpy21zpublic-audio-marker!ÚAuthorizationrŸ   )z0%(py0)s not in %(py4)s
{%(py4)s = %(py2)s.text
}Úprivaterž   rT   rU   )r:   Ú	set_levelÚloggingÚDEBUGÚpytestÚraisesr   r…   r�   rC   rb   rZ   ÚvaluerF   r'   r(   r)   r*   r+   r,   r-   r.   rŠ   rg   r   Ú_format_boolopr@   rX   Ú	b64encodeÚdecode)r9   rÎ   rA   r¼   r   r   rÍ   r1   ru   rv   rx   r~   ry   r”   r}   r2   r{   r’   Ú@py_assert15Ú@py_assert13r•   Ú@py_format10Ú@py_format17r¬   Ú@py_format20Ú@py_format22rÒ   r|   r   s     ``                         r   Ú*test_safe_failures_no_retry_or_secret_logsrâ   X   s~  øø€ ð1ð 1ð 1ð 1ð 1ð 1õ, �k 6Ñ*Ô*€EØ
×Ò•W”]Ñ#Ô#Ð#Ý	ŒÕ)Ñ	*Ô	*ð 9¨cÝŒ•M $Ñ'Ô'×2Ò2µ3Ñ7Ô7Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9àŒyÐ3�3ˆy‰>Œ>Ð3Ð3Ð3ˆ>Ð3Ò3Ð3Ð3Ñ3Õ3Ô3Ð3Ð3Ð3Ð3ˆ>Ð3Ð3Ñ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3�3Ñ3Ô3Ð3Õ3Ô3�3Ñ3Ô3Ð3Ð3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3ˆsÑ3Ô3Ð3Õ3Ô3ˆsÑ3Ô3Ð3Ð3Õ3Ô3ˆyÑ3Ô3Õ3Ô3ˆ>Ñ3Ô3Õ3Ô3Ð3Ñ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ýˆu‰:Œ:Ð˜Ðˆ:˜Š?ÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆuÑÔÐÕÔˆuÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØOÐOˆ?ÐO˜fœkÐOˆ?˜kÐ)ÐOÐOÐOÐOÐOÐ.@ÐOÀFÄKÐOÐ.@ÀKÐ.OÐOÐOÐOÐOÑOÕOÔOÐOÐOÐOÐOˆ?˜kÐOÑOÔOÕOÔOˆ?ÑOÔOÐOÕOÔOÑOÔOÐOÐOÕOÔO˜fÑOÔOÐOÕOÔO˜fÑOÔOÐOÐOÕOÔO˜kÑOÔOÐOÐOÑOÐOÐOÐOÐOÐOÑOÐOÐO×OÒOÐOÑOÔOÐOÐOÐOÕOÔOÐOÐOÐOÐOÐ.@ÀKÐOÑOÔOÕOÔOÐ.@ÑOÔOÐOÕOÔOÑOÔOÐOÐOÕOÔOÀFÑOÔOÐOÕOÔOÀFÑOÔOÐOÐOÕOÔOÀKÑOÔOÐOÐOÑOÐOÐOÐOÐOÐOÑOÐOÐO×OÒOÐOÑOÔOÐOÕOÔOÐOÐOÑOÔOÐOÑOÐOÐOÐOÐOÐOÑOÐOÕOÕOÔOÐOÑOÔOÑOÔOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÝÐ/µÔ1AÅ#Ñ1FÔ1F×1MÒ1MÑ1OÔ1OÐQ`Ðað *ð *ˆØ$œkÐ)ˆw˜kÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)ˆw˜kÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆwÑ)Ô)Ð)Õ)Ô)ˆwÑ)Ô)Ð)Ð)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)˜fÑ)Ô)Ð)Õ)Ô)˜fÑ)Ô)Ð)Ð)Õ)Ô)˜kÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)ð*ð *s   Á:BÂBÂB)r¯   r°   r±   r²   r   rµ   c                 óp   ‡— ˆfd„}t          | |¦  «         d„ }t          j         |¦   «         ¦  «         d S )Nc                 ó¾   •— ‰dk    rt          j        t          | ¬¦  «        ‚‰dk    rt          j        ddddidœ¬	¦  «        S t          j        ‰t          ¬
¦  «        S )Nr   r¿   rµ   rd   Trg   rÂ   )ri   rk   rl   rÁ   )r/   rÅ   r@   rt   )r   r¼   s    €r   r   z?test_cloudflare_failure_never_sends_agent_input.<locals>.handle~   sf   ø€ Ø�iÒÐÝÔ#¥C°Ð9Ñ9Ô9Ð9Ø�gÒÐÝ”> #¸ÈÐQSÈÐ,UÐ,UÐVÑVÔVÐVÝŒ~˜g­CÐ0Ñ0Ô0Ð0r   c               “   ó`	  ‡‡‡K  — g g cŠŠˆfd„} ˆfd„Št          t          d¦  «        d„ ˆfd„| d„ d„ ¦  «        }t          dd	¬
¦  «        }t          dddddddt	          ddz  ¦  «        ¬¦  «        }||j        d<   	 |                     ||¦  «        ƒ d {V —† ‰d         d         }d}||k    }|slt          j        d|fd||f¦  «        t          j	        |¦  «        t          j	        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}‰d         d         }d}||k    }|slt          j        d|fd||f¦  «        t          j	        |¦  «        t          j	        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}‰d         d         }d}||k    }|slt          j        d|fd||f¦  «        t          j	        |¦  «        t          j	        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                     |d dd!d"œ¦  «        ƒ d {V —† g }	g }
‰|
k    }|}|r|j        }d#}||k    }|}|r|j        }| }|}|�sÚt          j        d|fd$‰|
f¦  «        d%t          j        ¦   «         v st          j        ‰¦  «        rt          j	        ‰¦  «        nd%t          j	        |
¦  «        d&œz  }d'd(|iz  }|	                     |¦  «         |�rt          j        d|fd)||f¦  «        d*t          j        ¦   «         v st          j        |¦  «        rt          j	        |¦  «        nd*t          j	        |¦  «        t          j	        |¦  «        d+œz  }d,d-|iz  }|	                     |¦  «         |rld.d*t          j        ¦   «         v st          j        |¦  «        rt          j	        |¦  «        nd*t          j	        |¦  «        d/œz  }|	                     |¦  «         t          j        |	d0¦  «        i z  }d1d2|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}
x}x}x}x}}|                     ¦   «         ƒ d {V —† d S # |                     ¦   «         ƒ d {V —† w xY w)3Nc              “   ó6   •K  — ‰                      |¦  «         d S r   r   )ÚdevicerÄ   Úsents     €r   ÚsendzOtest_cloudflare_failure_never_sends_agent_input.<locals>.exercise.<locals>.send‰   s   øè è € ¨¯ª°WÑ)=Ô)=Ð)=Ð)=Ð)=r   c               —   ó6   •K  — ‰                      | ¦  «         d S r   r   )ÚargsÚinputss    €r   Ú
send_inputzUtest_cloudflare_failure_never_sends_agent_input.<locals>.exercise.<locals>.send_inputŠ   s   øè è €  V§]¢]°4Ñ%8Ô%8Ð%8Ð%8Ð%8r   r<   c                 ó   — dS )Nú
agent:pi:sr&   ©Ú_s    r   ú<lambda>zStest_cloudflare_failure_never_sends_agent_input.<locals>.exercise.<locals>.<lambda>‹   s   € Àl€ r   c                 ó$   •— t          ‰¬¦  «        S )N)rí   r   )rñ   rí   s    €r   rò   zStest_cloudflare_failure_never_sends_agent_input.<locals>.exercise.<locals>.<lambda>Œ   s   ø€ •o°Ð<Ñ<Ô<€ r   c                 ó   — dS )NTr&   rð   s    r   rò   zStest_cloudflare_failure_never_sends_agent_input.<locals>.exercise.<locals>.<lambda>Œ   s   € Èd€ r   c                  ó   — dS )NFr&   r&   r   r   rò   zStest_cloudflare_failure_never_sends_agent_input.<locals>.exercise.<locals>.<lambda>Œ   s   € Ð\a€ r   ÚcÚd)Úconnection_idÚ	device_idÚvrï   ÚpiÚsÚsessionÚTRANSCRIBINGs     i:  )ÚstateÚpcméÿÿÿÿÚtypeÚvoice_errorr   rR   rS   rT   rU   rÿ   ÚFAILEDrÄ   rÌ   Úvoice_decisionré   )r  Úvoice_idÚdecisionrÂ   )z%(py2)s == %(py5)srì   )r[   r$   z%(py7)sr\   )z5%(py11)s
{%(py11)s = %(py9)s.transcript
} == %(py14)sr   )rI   r]   r¢   z%(py16)srÏ   z'not %(py20)s
{%(py20)s = %(py18)s.pcm
})r§   r©   r   zassert %(py24)sÚpy24)r	   rC   r   r
   Ú	bytearrayÚrequestsrb   r'   r(   r,   r-   r.   r   Ú
transcriptr   r)   r*   r+   r   rÙ   Úclose)ré   Úmanagerrç   r   r{   r|   r1   r   r}   r2   ru   rw   rÝ   r�   Ú@py_assert19Ú@py_assert21r4   r•   r¥   rß   rá   Ú@py_format23Ú@py_format25rì   rí   rè   s                          @@@r   ÚexercisezAtest_cloudflare_failure_never_sends_agent_input.<locals>.exercise‡   s  øøøè è € Ø˜2ˆˆˆfØ=Ð=Ð=Ð=Ð=Ø8Ð8Ð8Ð8Ð8Ý�}¨\Ñ:Ô:Ð<RÐ<RØ<Ð<Ð<Ð<¸dÀNÀNÐTaÐTañcô cˆå ¨s¸cÐBÑBÔBˆÝ˜s C¨°t¸SÀ)Ø%3½À7ÈTÁ>Ñ9RÔ9RðTñ Tô Tˆà 'ˆÔ˜Ñð	"Ø×$Ò$ V¨WÑ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø˜”8˜FÔ#Ð4 }Ð4Ð# }Ò4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4Ð# }Ð4Ñ4Ô4Õ4Ô4Ð#Ñ4Ô4Õ4Ô4 }Ñ4Ô4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ø˜”8˜GÔ$Ð0¨Ð0Ð$¨Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð$¨Ð0Ñ0Ô0Õ0Ô0Ð$Ñ0Ô0Õ0Ô0¨Ñ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ø˜”8˜IÔ&Ð@Ð*@Ð@Ð&Ð*@Ò@Ð@Ð@Ð@Õ@Ô@Ð@Ð@Ð@Ð@Ð&Ð*@Ð@Ñ@Ô@Õ@Ô@Ð&Ñ@Ô@Õ@Ô@Ð*@Ñ@Ô@Ð@Ð@Ñ@Ð@Ð@Ð@Ð@Ð@Ñ@Ð@Õ@Õ@Ô@Ð@Ñ@Ô@Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø—.’. Ð2BÐPSÐagÐ)hÐ)hÑiÔiÐiÐiÐiÐiÐiÐiÐiØPÐP˜RÐP�6˜R’<ÐPÐPÐPÐPÐP GÔ$6ÐP¸"ÐPÐ$6¸"Ò$<ÐPÐPÐPÐPÐPÀWÄ[ÐPÀ[ÀÐPÀÐPÐPÑPÕPÔPÐPÐPÐPÐP�6˜RÐPÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔP�6ÑPÔPÐPÕPÔP�6ÑPÔPÐPÐPÕPÔP˜RÑPÔPÐPÐPÑPÐPÐPÐPÐPÐPÑPÐPÐP×PÒPÐPÑPÔPÐPÐPÑPÕPÔPÐPÐPÐPÐPÐ$6¸"ÐPÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔP GÑPÔPÐPÕPÔP GÑPÔPÐPÐPÕPÔPÐ$6ÑPÔPÕPÔP¸"ÑPÔPÐPÐPÑPÐPÐPÐPÐPÐPÑPÐPÐP×PÒPÐPÑPÔPÐPÐPÐPÐPÐPÕPÔPÑPÔPÐPÐPÕPÔPÀWÑPÔPÐPÕPÔPÀWÑPÔPÐPÐPÕPÔPÀ[ÑPÔPÐPÐPÑPÐPÐP×PÒPÐPÑPÔPÐPÕPÔPÐPÐPÑPÔPÐPÑPÐPÐPÐPÐPÐPÑPÐPÕPÕPÔPÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPà—-’-‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ø�'—-’-‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!øøøs   Á?O6R ÒR-)r:   r…   r�   )r9   r¼   r   r  s    `  r   Ú/test_cloudflare_failure_never_sends_agent_inputr  |   s[   ø€ ð1ð 1ð 1ð 1ð 1õ ˆk˜6Ñ"Ô"Ð"ð"ð "ð "õ( „K��‘
”
ÑÔÐÐÐr   c                 ó,  — d„ }t          | |¦  «        }t          j        t          j        ¦  «        5  t          j        t          d¦  «                             t          ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |¦  «        }d}||k    }|sòt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }d	d
|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}}d S )Nc                 ó(   — t          j        ¦   «         ‚r   )r…   ÚCancelledErrorr¿   s    r   r   z,test_cancellation_propagates.<locals>.handleŸ   s   € �wÔ5Ñ7Ô7Ð7r   r<   rˆ   r   r‰   rŠ   r   r‹   rP   rH   )r:   rÖ   r×   r…   r  r�   rC   rb   rZ   rŠ   r'   r(   r)   r*   r+   r,   r-   r.   )r9   r   r   r1   r”   ru   r}   r~   s           r   Útest_cancellation_propagatesr  ž   sÙ  € Ø7Ð7Ð7Ý�k 6Ñ*Ô*€EÝ	Œ•wÔ-Ñ	.Ô	.ð Að AÝŒ•M ,Ñ/Ô/×:Ò:½3Ñ?Ô?Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aåˆu‰:Œ:Ð˜Ðˆ:˜Š?ÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆuÑÔÐÕÔˆuÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐs   ²:A8Á8A<Á?A<c                 ó.  — dd l }t          |j        ¦  «        D ]2}|                     d¦  «        s|dk    r|                      |¦  «         Œ3|                      dt          ¦  «         t          ¦   «         }d }||u }|s´t          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                      d
d¦  «         t          ¦   «         }d }||u }|s´t          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                      dd¦  «         t          ¦   «         }d }||u }|s´t          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                      dt          ¦  «         t          ¦   «         }t!          |t"          ¦  «        }|�sddt          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        ndt          j        |¦  «        dœz  }	t          t          j        |	¦  «        ¦  «        ‚d }g }|j        }|t&          k    }
|
}|
r|j        }d }||u }|}|�s¸t          j	        d|
fd|t&          f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        t&          ¦  «        rt          j        t&          ¦  «        nddœz  }dd|iz  }|                     |¦  «         |
ržt          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}
x}x}}|                      d
d ¦  «         |                      d!d"¦  «         |                      d#d$¦  «         t          ¦   «         }g }t!          |t.          ¦  «        }
|
}|
r|j        }|t          k    }|}|�sd%dt          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndd&t          j        ¦   «         v st          j        t.          ¦  «        rt          j        t.          ¦  «        nd&t          j        |
¦  «        d'œz  }|                     |¦  «         |
rØt          j	        d|fd(|t          f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d)t          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd)d*œz  }d+d,|iz  }|                     |¦  «         t          j        |d¦  «        i z  }d-d|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}}|                      d!d.¦  «         t          ¦   «         }d }||u }|s´t          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                      d/d0¦  «         t          ¦   «         }t!          |t.          ¦  «        }
|
�s%d1dt          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        d&t          j        ¦   «         v st          j        t.          ¦  «        rt          j        t.          ¦  «        nd&t          j        |
¦  «        d2œz  }t          t          j        |¦  «        ¦  «        ‚d x}}
|                      d3d4¦  «         t          ¦   «         }|j        }d4}||k    }
|
sÇt          j	        d|
fd5||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d6œz  }d7d8|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}
}|                      d
d9¦  «         t          ¦   «         }d }||u }|s´t          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}d S ):Nr   )ÚGATEWAY_STT_ÚGATEWAY_CF_ÚGROQ_API_KEY)Úis)z)%(py2)s
{%(py2)s = %(py0)s()
} is %(py5)sr   r�   rŽ   r\   ÚGATEWAY_STT_PROVIDERzcloudflare-workers-aiÚGATEWAY_CF_ACCOUNT_IDr=   ÚGATEWAY_CF_API_TOKENz5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}rÇ   r†   r   )r!   rG   r[   rO   r   )z-%(py4)s
{%(py4)s = %(py2)s.model
} == %(py6)sr   )r[   rO   rU   z%(py8)srH   )z:%(py12)s
{%(py12)s = %(py10)s.initial_prompt
} is %(py15)s)r‡   rJ   r_   z%(py17)sra   r¨   r©   zopenai-compatibleÚGATEWAY_STT_BASE_URLzhttps://api.groq.com/openai/v1ÚGATEWAY_STT_MODELr?   z.%(py6)s
{%(py6)s = %(py2)s(%(py3)s, %(py4)s)
}r   )r[   r"   rO   rU   )z2%(py10)s
{%(py10)s = %(py8)s.api_key
} == %(py12)sr@   )rH   r‡   rJ   z%(py14)sr¢   r`   z#https://another-provider.example/v1ÚGATEWAY_STT_API_KEYzother-authorized-keyzLassert %(py6)s
{%(py6)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s()
}, %(py4)s)
})r!   rG   r"   rO   rU   ÚGATEWAY_STT_INITIAL_PROMPTr—   )zM%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s()
}.initial_prompt
} == %(py7)s)r!   r[   rO   r\   zassert %(py9)srI   Úunknown)ÚosÚlistÚenvironr¤   ÚdelenvÚsetenvr@   r   r'   r(   r)   r*   r+   r,   r-   r.   rÇ   r   Úmodelr   r>   r   rÙ   r   Úapi_key)r9   r%  Úkeyr2   ru   r|   r4   r•   r†   r   r”   r{   r’   r‚   rÝ   r}   r~   rƒ   r„   r¬   r­   r‘   rz   r¥   r1   rx   rÞ   s                              r   Ú*test_configuration_is_explicit_no_fallbackr-  ¦   s¼  € Ø€I€I€IÝ�B”JÑÔð $ð $ˆØ�>Š>Ð9Ñ:Ô:ð 	$¸cÀ^Ò>SÐ>SØ×Ò˜sÑ#Ô#Ð#øØ×Ò�~¥sÑ+Ô+Ð+ÝÑÔÐ#˜tÐ#Ð˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#�>Ñ#Ô#Ð#Õ#Ô#�>Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×ÒÐ-Ð/FÑGÔGÐGÝÑÔÐ#˜tÐ#Ð˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#�>Ñ#Ô#Ð#Õ#Ô#�>Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×ÒÐ.°Ñ?Ô?Ð?ÝÑÔÐ#˜tÐ#Ð˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#�>Ñ#Ô#Ð#Õ#Ô#�>Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×ÒÐ-­sÑ3Ô3Ð3ÝÑÔ€HÝ�hÕ >Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�:Ñ?Ô?Ð?Õ?Ô?�:Ñ?Ô?Ð?Ð?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�hÑ?Ô?Ð?Õ?Ô?�hÑ?Ô?Ð?Ð?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?Õ >Ñ?Ô?Ð?Õ?Ô?Õ >Ñ?Ô?Ð?Ð?Õ?Ô?Ð?Ñ?Ô?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?ØMÐMˆ8Œ>ÐMˆ>�\Ò)ÐMÐMÐMÐMÐM¨hÔ.EÐMÈÐMÐ.EÈÐ.MÐMÐMÐMÐMÑMÕMÔMÐMÐMÐMÐMˆ>�\ÐMÑMÔMÐMÕMÔMÑMÔMÐMÐMÕMÔMˆ8ÑMÔMÐMÕMÔMˆ8ÑMÔMÐMÐMÕMÔMˆ>ÑMÔMÐMÕMÔMÑMÔMÐMÐMÕMÔM�\ÑMÔMÐMÕMÔM�\ÑMÔMÐMÐMÐMÐMÑMÐMÐMÐMÐMÐMÑMÐMÐM×MÒMÐMÑMÔMÐMÐMÐMÕMÔMÐMÐMÐMÐMÐ.EÈÐMÑMÔMÐMÕMÔMÑMÔMÐMÐMÕMÔM¨hÑMÔMÐMÕMÔM¨hÑMÔMÐMÐMÕMÔMÐ.EÑMÔMÕMÔMÈÑMÔMÐMÐMÑMÐMÐMÐMÐMÐMÑMÐMÐM×MÒMÐMÑMÔMÐMÕMÔMÐMÐMÑMÔMÐMÑMÐMÐMÐMÐMÐMÑMÐMÕMÕMÔMÐMÑMÔMÑMÔMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMØ×ÒÐ-Ð/BÑCÔCÐCØ×ÒÐ-Ð/OÑPÔPÐPØ×ÒÐ*Ð,DÑEÔEÐEÝÑÔ€HØPÐP�:�hÕ 3Ñ4Ô4ÐPÐ4ÐPÐ4ÐP¸Ô9IÐPÐ9IÍSÒ9PÐPÐPÐPÐPÑPÐPÐPÕPÔPÑPÔPÐPÐPÕPÔP�:ÑPÔPÐPÕPÔP�:ÑPÔPÐPÐPÐPÕPÔPÑPÔPÐPÐPÕPÔP�hÑPÔPÐPÕPÔP�hÑPÔPÐPÐPÐPÕPÔPÑPÔPÐPÐPÕPÔPÕ 3ÑPÔPÐPÕPÔPÕ 3ÑPÔPÐPÐPÕPÔPÐ4ÑPÔPÐPÐPÑPÐPÐP×PÒPÐPÑPÔPÐPÐ4ÐPÕPÔPÐPÐPÐPÐPÐ9IÍSÐPÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔP¸ÑPÔPÐPÕPÔP¸ÑPÔPÐPÐPÕPÔPÐ9IÑPÔPÐPÕPÔPÑPÔPÐPÐPÕPÔPÍSÑPÔPÐPÕPÔPÍSÑPÔPÐPÐPÐPÐPÑPÐPÐPÐPÐPÐPÑPÐPÐP×PÒPÐPÑPÔPÐPÕPÔPÐPÐPÑPÔPÐPÑPÐPÐPÐPÐPÐPÑPÐPÕPÕPÔPÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPØ×ÒÐ-Ð/TÑUÔUÐUÝÑÔÐ#˜tÐ#Ð˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#�>Ñ#Ô#Ð#Õ#Ô#�>Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×ÒÐ,Ð.DÑEÔEÐEÝ$Ñ&Ô&Ð<�:Ð&Õ(;Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<�:Ñ<Ô<Ð<Õ<Ô<�:Ñ<Ô<Ð<Ð<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<•nÑ<Ô<Ð<Õ<Ô<•nÑ<Ô<Ð<Ð<Õ<Ô<Ð&Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<Õ(;Ñ<Ô<Ð<Õ<Ô<Õ(;Ñ<Ô<Ð<Ð<Õ<Ô<Ð<Ñ<Ô<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ø×ÒÐ3°_ÑEÔEÐEÝÑÔÐ=ÐÔ*Ð=¨oÐ=Ð*¨oÒ=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð*¨oÐ=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=�>Ñ=Ô=Ð=Õ=Ô=�>Ñ=Ô=Ð=Ð=Õ=Ô=ÐÑ=Ô=Õ=Ô=Ð*Ñ=Ô=Õ=Ô=¨oÑ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ø×ÒÐ-¨yÑ9Ô9Ð9ÝÑÔÐ#˜tÐ#Ð˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#�>Ñ#Ô#Ð#Õ#Ô#�>Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#r   r   )%Ú__doc__Úbuiltinsr)   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter'   r…   rX   rm   rÔ   Útypesr   r/   rÖ   Údevice_gateway.voicer   r   r   r   r	   r
   r   r   r@   rZ   r:   rC   ÚmarkÚparametrizer–   r®   ÚFAILURESrâ   r  r  r-  r&   r   r   ú<module>r8     s;  ðØ SÐ SØ  € € € € € € € € € € € € €€€€Ø €€€Ø €€€Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !à €€€Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
 #€Ø€gÐ+Ñ,Ô,€ðð ð ð Pð Pð Pð Pð „×Ò˜ DÐ*NÐ#OÑPÔPð.ð .ñ QÔPð.ð* „×Ò˜ D¨/Ð#:Ñ;Ô;ðð ñ <Ô;ðð$eð eð e€ð „×Ò˜ ,°Ð!7Ñ8Ô8Ø„×Ò˜ HÑ-Ô-ð*ð *ñ .Ô-ñ 9Ô8ð*ðD „×Ò˜Ð$LÐ$LÐ$LÑMÔMðð ñ NÔMððBð ð ð$ð $ð $ð $ð $r   