hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Ë
nñúh°7ãóR—ddlZddlZddlZddlZddlmZddlmZ    ddl
m Z m Z m Z ddlmZej"d„«Zej"d„«Zej"d„«Zej"d„«Zej"d    „«Zej"d
„«Zej"d „«Zej"d „«Zej"d „«Zej"d„«Zej"d„«Zej:j=ej> d¬«Gd„d««Z y)éN)Úoption_context)Ú    DataFrameÚIndexÚSeries)Ú expressionscóˆ—ttjjd«j    d«t d«d¬«S)Né©i'éÚABCDÚfloat64©ÚcolumnsÚdtype©rÚnpÚrandomÚ default_rngÚstandard_normalÚlist©óúPH:\Change_password\venv_build\Lib\site-packages\pandas/tests/test_expressions.pyÚ_framers6€ä Ü
    ‰    ×јaÓ ×0Ñ0°Ó<ܐV“ Øô ðrcóˆ—ttjjd«j    d«t d«d¬«S)Nr    )édr r r rrrrrÚ_frame2rs6€ä Ü
    ‰    ×јaÓ ×0Ñ0°Ó:ܐV“ Øô ðrcó°—t|dj«|djd«|djd«|djd«dœ«S©    NÚAÚBÚfloat32ÚCÚint64ÚDÚint32)r r!r#r%©rÚcopyÚastype©rs rÚ_mixedr+#sZ€ä à˜‘×!Ñ!Ó#ؘ‘×#Ñ# IÓ.ؘ‘×#Ñ# GÓ,ؘ‘×#Ñ# GÓ,ñ        
ó ðrcó°—t|dj«|djd«|djd«|djd«dœ«Srr'©rs rÚ_mixed2r./sZ€ä à˜‘×"Ñ"Ó$ؘ‘×$Ñ$ YÓ/ؘ‘×$Ñ$ WÓ-ؘ‘×$Ñ$ WÓ-ñ        
ó ðrcóŽ—ttjjd«j    ddd¬«t d«d¬«S)    Nr    érr
©Úsizer r$r©rrrrÚintegersrrrrÚ_integerr5;s=€ä Ü
    ‰    ×јaÓ ×)Ñ)¨!¨S°zÐ)ÓBܐV“ Øô ðrcó—|tjjd«jddtj|«¬«zS)Nr    rr1)rrrr4Úshape)r5s rÚ_integer_integersr8Ds9€ð ”b—i‘i×+Ñ+¨AÓ.×7Ñ7¸¸1Ä2Ç8Á8ÈHÓCUÐ7ÓVÑ VÐVrcóŽ—ttjjd«j    ddd¬«t d«d¬«S)    Nr    r0r)éer r1r r$rr3rrrÚ    _integer2r;Js=€ä Ü
    ‰    ×јaÓ ×)Ñ)¨!¨S°xÐ)Ó@ܐV“ Øô ðrcó<—|djj«S©Nr ©Úvaluesr(r*s rÚ_arrayr@Só€à #‰;× Ñ × "Ñ "Ó $Ð$rcó<—|djj«Sr=r>r-s rÚ_array2rCXó€à 3‰<× Ñ × #Ñ #Ó %Ð%rcó<—|djj«S©Nr%r>)r+s rÚ _array_mixedrG]rArcó<—|djj«SrFr>)r.s rÚ _array_mixed2rIbrDrznot using numexpr)Úreasonc óÖ—eZdZededefd„«Zejjdgd¢«ejjdddg«ejjdgd    ¢«d
„«««Z
ejjdgd¢«ejjdddg«d „««Z d „Z ejjd «ejjdgd¢«ejjdddg«d„«««Zejjdddg«d„«Zejjdddg«ejjdgd¢«d„««Zejjdgd¢«d„«Zejjdgd¢«d„«Zejjdegd¢gd¢ggd¢¬ «eddgddggd!d"g¬ «fegd#¢gd$¢gd%¢ggd¢¬ «eddgddgddggd!d"g¬ «fg«d&„«Zejjdd    «ejjd'd(«d)„««Zejjd*gd+¢«ejjd,eeeg«ejjd-d.d/g«d0„«««Zy1)2ÚTestExpressionsÚflexÚopnamecó؇—|r ˆfd„}‰|_ntt‰«}tdd«5|||«}ddd«t    j
«|||«}|fS#1swYŒ*xYw)Ncó(•—t|‰«|«S)N)Úgetattr)ÚxÚyrNs  €rú<lambda>z)TestExpressions.call_op.<locals>.<lambda>lsø€Ð0œg a¨Ó0°Ó3€rúcompute.use_numexprF)Ú__name__rQÚoperatorrÚexprÚget_test_result)ÚdfÚotherrMrNÚopÚexpectedÚresults   `   rÚcall_opzTestExpressions.call_opismø€á Û3ˆBØ ˆBK䜠6Ó*ˆBä Ð1°5Ó 9ñ    %Ù˜"˜e“}ˆH÷    %ô     ×ÑÔáB˜“ˆØxÐÐ÷     %ð    %ús ­
A Á A)Úfixture)r5r;r8rrr+r.TFÚarith)ÚaddÚsubÚmulÚmodÚtruedivÚfloordivcóx—|j|«}|j«5}|jtdd«|j    ||||«\}}    |dk(r(t d„|    j jD««sJ‚tj|    |«tt|j««D]q}
|j    |jdd…|
f|jdd…|
f||«\}}    |dk(r|    jjdk(sJ‚tj|    |«Œs    ddd«y#1swYyxYw)NÚ _MIN_ELEMENTSrrfc3ó:K—|]}|jdk(–—Œy­w)ÚfN)Úkind)Ú.0rRs  rú    <genexpr>z6TestExpressions.test_run_arithmetic.<locals>.<genexpr>sèø€ÒI¨Q˜1Ÿ6™6 S=ÑIùs‚rk)ÚgetfixturevalueÚcontextÚsetattrrXr_ÚallÚdtypesr?ÚtmÚ assert_equalÚrangeÚlenrÚilocrrl) ÚselfÚrequestr`rMraÚ monkeypatchrZÚmr^r]Úis            rÚtest_run_arithmeticz#TestExpressions.test_run_arithmeticys€ð"× $Ñ $ WÓ -ˆØ ×  Ñ  Ó "ð    2 aØ I‰I”d˜O¨QÔ /Ø#Ÿ|™|¨B°°D¸%Ó@Ñ ˆFHà˜    Ò!ÜÑI°(·/±/×2HÑ2HÔIÔIÐIÐIÜ O‰O˜H fÔ -äœ3˜rŸz™z›?Ó+ò 2Ø#'§<¡<Ø—G‘GšA˜q˜D‘M 2§7¡7ª1¨a¨4¡=°$¸ó$Ñ ˜ð˜IÒ%Ø#Ÿ>™>×.Ñ.°#Ò5Ð5Ð5Ü—‘ ¨&Õ1ñ  2÷    2÷    2ñ    2ús ¢DD0Ä0D9cóš—|j|«}|j}tdd«5|j«dz}ddd«|j    «5}    |    j t dd«t jd«|j|||«\}
} t j«} | sJd«‚tj| |
«tt|j««D]=} |jdd…| fdz}|j|jdd…| f||d    «Œ?    ddd«y#1swYŒøxYw#1swYyxYw)
        tests solely that the result is the same whether or not numexpr is
        enabled.  Need to test whether the function does the correct thing
        elsewhere.
        rUFr0NrirTz Did not use numexpr as expected.rb)rorVrr(rprqrXÚ set_test_moder_rYrtrurvrwrrx)ryrzr`rMÚ comparison_opr{rZrar[r|r^r]Ú used_numexprr}Ú binary_comps               rÚtest_run_binaryzTestExpressions.test_run_binary›s1€ð&× $Ñ $ WÓ -ˆØ×&Ñ&ˆÜ Ð1°5Ó 9ñ    "Ø—G‘G“I ‘MˆE÷    "ð×  Ñ  Ó "ð     F aØ I‰I”d˜O¨QÔ /Ü × Ñ ˜tÔ $à#Ÿ|™|¨B°°t¸UÓCÑ ˆFHä×/Ñ/Ó1ˆLÙÐ CÐ!CÓ C<Ü O‰O˜H fÔ -äœ3˜rŸz™z›?Ó+ò FØ#Ÿj™jª¨A¨Ñ.°Ñ2 Ø— ‘ ˜RŸW™W¢Q¨ T™]¨K¸¸uÕEñ F÷     Fð     F÷    "ð    "ú÷     Fð     FúsªD5ÁCEÄ5D>ÅE
có¾—tjjd«jd«}tjjd«jd«}t    j
t jd||d«}|rJ‚t    j
t jd||d«}|rJ‚t    j
t jd||d«}|sJ‚y)Nr    iABrÚevaluateú+)rrrrrXÚ_can_use_numexprrWrb)ryÚarrayÚarray2r^s    rÚ test_invalidzTestExpressions.test_invalidÁs±€Ü—    ‘    ×%Ñ% aÓ(×8Ñ8¸ÓCˆÜ—‘×&Ñ& qÓ)×9Ñ9¸#Ó>ˆô×&Ñ&¤x§|¡|°T¸5À%ÈÓTˆÙЈzô×&Ñ&¤x§|¡|°S¸&À&È*ÓUˆÙЈzô×&Ñ&¤x§|¡|°S¸%ÀÈÓTˆÙˆ ‰vrz2ignore:invalid value encountered in:RuntimeWarningz opname,op_str))rbr‡)rcú-)rdÚ*)rfú/)Úpowú**zleft_fix,right_fix)r@rC)rGrIcó$—|j|«}|j|«}d„}tdd«5|||||«ddd«tjd«|||||«tj«|||||«y#1swYŒIxYw)Ncó"—|dk(rtj|«}tt|«}t    j
|||d¬«}t    j
|||d¬«}t j||«t    j||||d«}|rJ‚y)NrT©Ú use_numexprFr†)    rÚabsrQrWrXr†rtÚassert_numpy_array_equalrˆ)ÚleftÚrightrNÚop_strr\r^r]s       rÚtestitz/TestExpressions.test_binary_ops.<locals>.testitÝs~€Ø˜ŠÜ—v‘v˜d“|äœ 6Ó*ˆBô—]‘] 2 t¨T¸tÔDˆFÜ—}‘} R¨¨tÀÔGˆHÜ × 'Ñ '¨°Ô 9ä×*Ñ*¨2¨v°u¸eÀZÓPˆFÙÐ :vrrUFr0©rorrXÚset_numexpr_threads)    ryrzrNr™Úleft_fixÚ    right_fixr—r˜ršs             rÚtest_binary_opszTestExpressions.test_binary_opsÑs‘€ð×&Ñ& xÓ0ˆØ×'Ñ'¨    Ó2ˆò     ôÐ1°5Ó 9ñ    0Ù 4˜ ¨Ô /÷    0ô     × Ñ  Ô#ÙˆtU˜F FÔ+Ü × Ñ Ô"ÙˆtU˜F FÕ+÷     0ð    0ús ² BÂBc󇇇—|j|«Š|j|«Šˆˆˆfd„}tdd«5|«ddd«tjd«|«tj«|«y#1swYŒAxYw)Ncóè•—‰dz}‰dz}‰}tj|‰|d¬«}tj|‰|d¬«}tj||«tj||‰|d«}|rJ‚y)Nr0Tr“Fr†)rXr†rtr–rˆ)Úf12Úf22r\r^r]rr—r˜s     €€€rršz3TestExpressions.test_comparison_ops.<locals>.testitústø€Ø˜‘(ˆCؘ!‘)ˆCàˆBä—]‘] 2 t¨S¸dÔCˆFÜ—}‘} R¨¨sÀÔFˆHÜ × 'Ñ '¨°Ô 9ä×*Ñ*¨2¨r°5¸#¸zÓJˆFÙÐ :vrrUFr0r›)ryrzrrržršr—r˜s  `   @@rÚtest_comparison_opsz#TestExpressions.test_comparison_opsóswú€ð×&Ñ& xÓ0ˆØ×'Ñ'¨    Ó2ˆö     ôÐ1°5Ó 9ñ    Ù ŒH÷    ô     × Ñ  Ô#ÙŒÜ × Ñ Ô"ٍ÷     ð    ús ¹BÂB
Úcond)rrr+r.cóô‡‡—|j|«Šˆˆfd„}tdd«5|«ddd«tjd«|«tj«|«y#1swYŒAxYw)Ncój•—tj‰jtj¬«}|j    ‰«t j |‰j‰jdz«}tj |‰j‰jdz«}tj||«y)N)rr0)
rÚemptyr7Úbool_ÚfillrXÚwherer?rtr–)Úcr^r]r¥rZs   €€rršz*TestExpressions.test_where.<locals>.testitsrø€Ü—‘˜Ÿ™¬¯©Ô2ˆAØ F‰F4ŒLÜ—Z‘Z  2§9¡9¨b¯i©i¸!©mÓ<ˆFÜ—x‘x  2§9¡9¨b¯i©i¸!©mÓ<ˆHÜ × 'Ñ '¨°Õ 9rrUFr0r›)ryrzr¥r`ršrZs  `  @rÚ
test_wherezTestExpressions.test_wheresgù€ð× $Ñ $ WÓ -ˆõ    :ôÐ1°5Ó 9ñ    Ù ŒH÷    ô     × Ñ  Ô#ÙŒÜ × Ñ Ô"ٍ÷     ð    ús ¦A.Á.A7z op_str,opname))rŽrf)z//rg)rrcó0—ttjjd«jd«dkDtjjd«jd«dkDdœ«}d|›d}t    t
|«}t j|«}tjt|¬«5|||«ddd«tjt|¬«5||j|j«ddd«tjt|¬«5||jd«ddd«tjt|¬«5|d    |j«ddd«tjt|¬«5|d    |«ddd«tjt|¬«5||d«ddd«y#1swYŒxYw#1swYŒßxYw#1swYŒ´xYw#1swYŒ‰xYw#1swYŒhxYw#1swYyxYw)
Nr    é
çà?©ÚaÚbz
operator 'z!' not implemented for bool dtypes)ÚmatchTF) rrrrrQrWÚreÚescapeÚpytestÚraisesÚNotImplementedErrorr²r³)ryr™rNrZÚmsgrkÚerr_msgs       rÚ!test_bool_ops_raise_on_arithmeticz1TestExpressions.test_bool_ops_raise_on_arithmetic#s®€ôä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°RÓ8¸3Ñ>Ü—Y‘Y×*Ñ*¨1Ó-×4Ñ4°RÓ8¸3Ñ>ñ ó
ˆð˜6˜(Ð"CÐDˆÜ ”H˜fÓ %ˆÜ—)‘)˜C“.ˆä ]‰]Ô.°gÔ >ñ    Ù ˆb"ŒI÷    ô]‰]Ô.°gÔ >ñ    Ù ˆbd‰dB—D‘DŒM÷    ô]‰]Ô.°gÔ >ñ    Ù ˆbd‰dDŒM÷    ô]‰]Ô.°gÔ >ñ    Ù ˆeR—T‘TŒN÷    ô]‰]Ô.°gÔ >ñ    Ù ˆeRŒL÷    ô]‰]Ô.°gÔ >ñ    Ù ˆb$ŒK÷    ð    ÷    ñ    ú÷    ð    ú÷    ð    ú÷    ð    ú÷    ð    ú÷    ð    úsHÂ3
GàGÄ!G(ÅG4Æ
HÆ<
H ÇGÇG%Ç(G1Ç4G=ÈH    È H))r‡rb)rrd)rŒrccó—d}ttjjd«j|«dkDtjjd«j|«dkDdœ«}ddddœ}d    d
d d œ}t    t
|«}t    t
|||«}|d k(ryt jdd¬«5t j«5|||«}    |||«}
t j|    |
«ddd«t j«5||j|j«}    ||j|j«}
t j|    |
«ddd«t j«5||jd«}    ||jd«}
t j|    |
«ddd«t j«5|d|j«}    |d|j«}
t j|    |
«ddd«t j«5|d|«}    |d|«}
t j|    |
«ddd«t j«5||d«}    ||d«}
t j|    |
«ddd«ddd«y#1swYŒ¼xYw#1swYŒ\xYw#1swYŒxYw#1swYŒÃxYw#1swYŒŠxYw#1swYŒQxYw#1swYyxYw)Nr¯r    r°r±ú|ú&ú^)r‡rrŒÚor_Úand_Úxor)r¾r¿rÀrŒTé)Ú min_elementsF) rrrrrQrWrtr”Úassert_produces_warningÚassert_frame_equalr²r³Úassert_series_equal) ryr™rNÚnrZÚsubsÚ    sub_funcsrkÚfeÚrÚes            rÚ test_bool_ops_warn_on_arithmeticz0TestExpressions.test_bool_ops_warn_on_arithmeticDs€ð ˆÜ ä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7¸#Ñ=Ü—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7¸#Ñ=ñ ó
ˆð˜s¨Ñ-ˆØ f°5Ñ9ˆ    ä ”H˜fÓ %ˆÜ ”X˜y¨¨f©Ñ6Ó 7ˆà SŠ=à ä ^‰^˜D¨qÔ 1ñ    ,Ü×+Ñ+Ó-ñ ,ِb˜"“IÙr˜2“JÜ×%Ñ% a¨Ô+÷ ,ô
×+Ñ+Ó-ñ -ِb—d‘d˜BŸD™D“MÙr—t‘t˜RŸT™T“NÜ×&Ñ& q¨!Ô,÷ -ô
×+Ñ+Ó-ñ -ِb—d‘d˜D“MÙr—t‘t˜T“NÜ×&Ñ& q¨!Ô,÷ -ô
×+Ñ+Ó-ñ -ِe˜RŸT™T“NÙu˜bŸd™d“OÜ×&Ñ& q¨!Ô,÷ -ô
×+Ñ+Ó-ñ ,ِe˜R“LÙu˜b“MÜ×%Ñ% a¨Ô+÷ ,ô
×+Ñ+Ó-ñ ,ِb˜$“KÙr˜4“LÜ×%Ñ% a¨Ô+÷ ,÷5    ,ð    ,÷ ,ñ ,ú÷
 -ñ -ú÷
 -ñ -ú÷
 -ð -ú÷
 ,ð ,ú÷
 ,ð ,ú÷5    ,ð    ,úsÂ>LÃ)J6Ã<LÄAKÅ)LÆ=KÇLÇ=KÈLÈ7)K)É LÉ<)K5Ê%LÊ6K    Ê;LËK     ËLËK    ËLËK&    Ë"LË)K2    Ë.LË5K>    Ë:LÌL
ztest_input,expected)rr0r    Úaa)r²r³r¬r)rr²r)rér    rÐ)rr r    rÐ)rr0r0Úbbcóž—|jdd…ddgfj|jdd…ddgf«}tj||«y)Nr²r)ÚlocÚnertrÇ)ryÚ
test_inputr]r^s    rÚtest_bool_ops_column_name_dtypez/TestExpressions.test_bool_ops_column_name_dtypeysH€ð.—‘¢ C¨ >Р1Ñ2×5Ñ5°j·n±nÂQÈÈgÈÐEVÑ6WÓXˆÜ
×јf hÕ/rÚaxis)rr0có†—|}|dk(r|jddd…f}n|jdd…df}|j«5}|jtdd«t    ||«}t dd«5|||¬«}    ddd«|||¬«}
t j    |
«ddd«y#1swYŒ2xYw#1swYyxYw)Nr0rrirUF)rØ)rxrprqrXrQrrtrÇ) ryrØrarr{rZr[r|Úop_funcr]r^s            rÚtest_frame_series_axisz&TestExpressions.test_frame_series_axis“sÀ€ðˆØ 1Š9Ø—G‘G˜Ašq˜D‘M‰Eà—G‘GšA˜q˜D‘MˆEà ×  Ñ  Ó "ð        4 aØ I‰I”d˜O¨QÔ /ä˜b %Ó(ˆGäР5°uÓ=ñ 5Ù" 5¨tÔ4÷ 5ñ˜U¨Ô.ˆFÜ × !Ñ ! (¨FÔ 3÷        4ð        4÷
 5ð 5ú÷         4ð        4ús#¿0B7Á/ B+Á:(B7Â+B4    Â0B7Â7Cr\)Ú__mod__Ú__rmod__Ú __floordiv__Ú __rfloordiv__ÚboxÚscalaréûÿÿÿrÄcó*—|j«5}|jtdd«tjdd«}||«}t ||«}||«}    t dd«5||«}
ddd«tj|    
«t|«D]H\} } |tk(r|    j| df} n|    | }     t t| «|«|«}
| |
k(rŒHJ‚    ddd«y#1swYŒxYw#t$rYŒlwxYw#1swYyxYw)NririÎÿÿÿé2rUF)rprqrXrÚarangerQrrtruÚ    enumeraterrxÚintÚZeroDivisionError)ryr\ràrár{r|ÚdataÚobjÚmethodr^r]r}ÚelemÚ scalar_results              rÚ,test_python_semantics_with_numexpr_installedz<TestExpressions.test_python_semantics_with_numexpr_installed«s €ð×  Ñ  Ó "ð    5 aØ I‰I”d˜O¨QÔ /Ü—9‘9˜S "Ó%ˆDِd“)ˆCܘS "Ó%ˆFÙ˜F“^ˆFô Ð 5°uÓ=ñ *Ù! &›>÷ *ô O‰O˜F HÔ -ô% T›?ò
5‘4Øœ)Ò#Ø$*§K¡K°°1°Ñ$5‘Mà$*¨1¡IMð5Ø5œw¤s¨4£y°"Ó5°fÓ=Hð)¨HÓ4Ð4Ð4ñ
5÷    5ð    5÷ *ð *ûô)òÙðú÷+    5ð    5úsO‘AD    Á'    C.Á0AD    ÃC:ÃD    Ã!D    Ã.C7    Ã3D    Ã:    DÄD    ÄDÄD    Ä    DN)rVÚ
__module__Ú __qualname__Ú staticmethodÚboolÚstrr_r·ÚmarkÚ parametrizer~r„r‹ÚfilterwarningsrŸr¤r­r¼rÏrr×rÛrrrîrrrrLrLgs[„àð   ð  ¨sò  óð  ð ‡[[×ÑØò    
ó ð ‡[[×јV d¨E ]Ó3Ø ‡[[×ÑØÒDóñ2óó4ó ð 2ð$ ‡[[×ÑØò    
ó ð ‡[[×јV d¨E ]Ó3ñFó4ó ðFò2ð  ‡[[×ÑРTÓUØ ‡[[×ÑØÚSóð ‡[[×ÑØÐ4Ð6WÐXóñ,óó    óVð,ð4 ‡[[×ÑØÐ4Ð6WÐXóñóðð2 ‡[[×јV d¨E ]Ó3Ø ‡[[×јYÒ(RÓSñóTó4ðð$ ‡[[×ÑØÒNóñóðð< ‡[[×ÑØÒCóñ0,óð0,ðd ‡[[×ÑØñÚ$¢oÐ6Ò@Xôñ˜E 5˜>¨E°5¨>Ð:ÀSÈ'ÀNÔSð     ñÚ$¢o²ÐGÚ4ôñؘU^ e¨U ^°e¸U°^ÐDØ  '˜Nôð      ð    
óñ*0ó+ð*0ð
 ‡[[×ÑØÐDóð ‡[[×јV VÓ,ñ4ó-óð4ð( ‡[[×ÑØ ò    
óð ‡[[×јU Y°¸Ð$>Ó?Ø ‡[[×јX¨¨A wÓ/ñ5ó0ó@óñ5rrL)!rWrµÚnumpyrr·ÚpandasrÚpandas._testingÚ_testingrtÚpandas.core.apirrrÚpandas.core.computationrrXr`rrr+r.r5r8r;r@rCrGrIrôÚskipifÚ USE_NUMEXPRrLrrrú<module>rÿskðÛÛ    ãÛ å!Ý÷ñõ
8ð‡ñóðð‡ñóðð‡ñóðð‡ñóðð‡ñóðð‡ñWóðWð
‡ñóðð‡ñ%óð%ð‡ñ&óð&ð‡ñ%óð%ð‡ñ&óð&ð‡×ј×(Ñ(Ð(Ð1DÐÓE÷j5ðj5óFñj5r