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
Ë
IñúhØ0ãóŽ—dZddlZddlZddlmZddlmZddlmZddlmZddlmZddlmZdd    lm    Z    dd
lm
Z
dd lm Z dd l m Z dd l mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZGd„de«ZGd„de«ZGd„de«ZGd„d e«ZGd!„d"e«Zy)#z±Contracts tests. These tests mainly check API sanity in terms of
returned types and APIs availability.
Some of these are duplicates of tests test_system.py and test_process.py.
éN)ÚAIX)ÚFREEBSD)ÚLINUX)ÚMACOS)ÚNETBSD)ÚOPENBSD)ÚPOSIX)ÚSUNOS)ÚWINDOWS)ÚAARCH64)ÚGITHUB_ACTIONS)Ú HAS_CPU_FREQ)ÚHAS_NET_IO_COUNTERS)ÚHAS_SENSORS_FANS)ÚHAS_SENSORS_TEMPERATURES)Ú SKIP_SYSCONS)ÚPsutilTestCase)Úcreate_sockets)Úenum)Ú is_namedtuple)Úkernel_version)Úpytestcór—eZdZd„Zd„Zd„Zd„Zejje
xre d¬«d„«Z y)    ÚTestAvailConstantsAPIscóV—ttd«txstxstk(sJ‚y)NÚ PROCFS_PATH)ÚhasattrÚpsutilrr
r©Úselfs úNH:\Change_password\venv_build\Lib\site-packages\psutil/tests/test_contracts.pyÚtest_PROCFS_PATHz'TestAvailConstantsAPIs.test_PROCFS_PATH/s!€Ü”v˜}Ó-´%Ò2G¼5Ò2GÄCÒHÐHÑHócó0—ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚y)NÚABOVE_NORMAL_PRIORITY_CLASSÚBELOW_NORMAL_PRIORITY_CLASSÚHIGH_PRIORITY_CLASSÚIDLE_PRIORITY_CLASSÚNORMAL_PRIORITY_CLASSÚREALTIME_PRIORITY_CLASS©rrr rs r!Útest_win_priorityz(TestAvailConstantsAPIs.test_win_priority2s†€Ü”vÐ<Ó=ÄÒHÐHÐHÜ”vÐ<Ó=ÄÒHÐHÐHÜ”vÐ4Ó5¼Ò@Ð@Ð@Ü”vÐ4Ó5¼Ò@Ð@Ð@Ü”vÐ6Ó7¼7ÒBÐBÐBÜ”vÐ8Ó9¼WÒDÐDÑDr#có̗ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚y)NÚIOPRIO_CLASS_NONEÚIOPRIO_CLASS_RTÚIOPRIO_CLASS_BEÚIOPRIO_CLASS_IDLE©rrrrs r!Útest_linux_ioprio_linuxz.TestAvailConstantsAPIs.test_linux_ioprio_linux:sZ€Ü”vÐ2Ó3´uÒ<Ð<Ð<Ü”vÐ0Ó1´UÒ:Ð:Ð:Ü”vÐ0Ó1´UÒ:Ð:Ð:Ü”vÐ2Ó3´uÒ<Ð<Ñ<r#có̗ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚y)NÚ IOPRIO_HIGHÚ IOPRIO_NORMALÚ
IOPRIO_LOWÚIOPRIO_VERYLOWr+rs r!Útest_linux_ioprio_windowsz0TestAvailConstantsAPIs.test_linux_ioprio_windows@sW€Ü”v˜}Ó-´Ò8Ð8Ð8Ü”v˜Ó/´7Ò:Ð:Ð:Ü”v˜|Ó,´Ò7Ð7Ð7Ü”vÐ/Ó0´GÒ;Ð;Ñ;r#ú%unsupported on GITHUB_ACTIONS + LINUX©Úreasoncóþ—ttd«tk(stsJ‚ttd«tk(stsJ‚ttd«tk(stsJ‚ttd«tk(stsJ‚ttd«tk(stsJ‚ttd«tk(stsJ‚ttd«tk(stsJ‚ttd«tk(stsJ‚ttd    «tk(stsJ‚ttd
«tk(stsJ‚ttd «tk(stsJ‚ttd «tk(sJ‚tr¾t «d k\rttd«tk(sJ‚t «dk\rttd«tk(sJ‚t «dk\rttd«tk(sJ‚t «dk\rttd«tk(sJ‚t «d k\rttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚ttd«tk(sJ‚y)NÚ RLIM_INFINITYÚ    RLIMIT_ASÚ RLIMIT_COREÚ
RLIMIT_CPUÚ RLIMIT_DATAÚ RLIMIT_FSIZEÚRLIMIT_MEMLOCKÚ RLIMIT_NOFILEÚ RLIMIT_NPROCÚ
RLIMIT_RSSÚ RLIMIT_STACKÚ RLIMIT_LOCKS)éééÚRLIMIT_MSGQUEUE)rJrKé Ú RLIMIT_NICEÚ RLIMIT_RTPRIO)rJrKéÚ RLIMIT_RTTIMEÚRLIMIT_SIGPENDINGÚ RLIMIT_SWAPÚ RLIMIT_SBSIZEÚ RLIMIT_NPTS)rrrrr    rrs r!Ú test_rlimitz"TestAvailConstantsAPIs.test_rlimitFsû€ô
”v˜Ó/´5Ò8½GÐCÐCÜ”v˜{Ó+¬uÒ4½Ð?Ð?Ü”v˜}Ó-´Ò6½'ÐAÐAÜ”v˜|Ó,´Ò5½Ð@Ð@Ü”v˜}Ó-´Ò6½'ÐAÐAÜ”v˜~Ó.´%Ò7½7ÐBÐBÜ”vÐ/Ó0´EÒ9½WÐDÐDÜ”v˜Ó/´5Ò8½GÐCÐCÜ”v˜~Ó.´%Ò7½7ÐBÐBÜ”v˜|Ó,´Ò5½Ð@Ð@Ü”v˜~Ó.´%Ò7½7ÐBÐBä”v˜~Ó.´%Ò7Ð7Ð7Ý ÜÓ 9Ò,ÜœvÐ'8Ó9¼UÒBÐBÐBÜÓ :Ò-Üœv }Ó5¼Ò>Ð>Ð>ÜÓ :Ò-Üœv Ó7¼5Ò@Ð@Ð@ÜÓ :Ò-Üœv Ó7¼5Ò@Ð@Ð@ÜÓ 9Ò,ÜœvÐ':Ó;¼uÒDÐDÐDä”v˜}Ó-´Ò8Ð8Ð8Ü”v˜Ó/´7Ò:Ð:Ð:Ü”v˜}Ó-´Ò8Ð8Ñ8r#N) Ú__name__Ú
__module__Ú __qualname__r"r,r3r9rÚmarkÚskipifr rrW©r#r!rr.sK„òIòEò=ò <ð  ‡[[×ÑØÒ ˜5Ø6ðóñ9ó    ñ9r#rcóx—eZdZd„Zd„Zej jexre    d¬«d„«Z
d„Z d„Z d„Z y    )
ÚTestAvailSystemAPIscó6—ttd«tk(sJ‚y)NÚwin_service_iterr+rs r!Útest_win_service_iterz)TestAvailSystemAPIs.test_win_service_iterjs€Ü”vÐ1Ó2´gÒ=Ð=Ñ=r#có6—ttd«tk(sJ‚y)NÚwin_service_getr+rs r!Útest_win_service_getz(TestAvailSystemAPIs.test_win_service_getms€Ü”vÐ0Ó1´WÒ<Ð<Ñ<r#úskipped due to #1892r;cóv—ttd«txstxstxst
xst k(sJ‚y)NÚcpu_freq)rrrrr rrrs r!Ú test_cpu_freqz!TestAvailSystemAPIs.test_cpu_freqps2€ä”v˜zÓ*Ü Ò ;”UÒ ;œgÒ ;¬Ò ;´Gò
ð    
ñ
r#cóF—ttd«txstk(sJ‚y)NÚsensors_temperatures)rrrrrs r!Útest_sensors_temperaturesz-TestAvailSystemAPIs.test_sensors_temperaturesvs€Ü”vÐ5Ó6¼5Ò;KÄGÒLÐLÑLr#có6—ttd«tk(sJ‚y)NÚ sensors_fansr2rs r!Útest_sensors_fansz%TestAvailSystemAPIs.test_sensors_fansys€Ü”v˜~Ó.´%Ò7Ð7Ñ7r#cóf—ttd«txstxstxst
k(sJ‚y)NÚsensors_battery)rrrr rrrs r!Ú test_batteryz TestAvailSystemAPIs.test_battery|s.€Ü”vÐ0Ó1Ü Ò 0”WÒ 0¤Ò 0¬5ò
ð    
ñ
r#N)rXrYrZrbrerr[r\rr rirlrorrr]r#r!r_r_isK„ò>ò=ð ‡[[×јÒ) 'Ð2HÐÓIñ
óJð
ò
Mò8ó
r#r_cóœ—eZdZd„Zd„Zd„Zd„Zd„Zejje xre d¬«d„«Z d    „Zd
„Zd „Zd „Zd „Zd„Zy)ÚTestAvailProcessAPIscóº—ttjd«txs6txs.t
xs&t xstxstxstxstk(sJ‚y)NÚenviron) rrÚProcessrrr rr
rrrrs r!Ú test_environz!TestAvailProcessAPIs.test_environƒsd€Ü”v—~‘~ yÓ1Ü ò Üò äò ôò ôò     ô
ò  ô ò  ôò    
ð        
ñ    
r#cóJ—ttjd«tk(sJ‚y©NÚuids©rrrwr    rs r!Ú    test_uidszTestAvailProcessAPIs.test_uidsó€Ü”v—~‘~ vÓ.´%Ò7Ð7Ñ7r#cóJ—ttjd«tk(sJ‚yrzr|rs r!Ú    test_gidszTestAvailProcessAPIs.test_gids’r~r#cóJ—ttjd«tk(sJ‚y)NÚterminalr|rs r!Ú test_terminalz"TestAvailProcessAPIs.test_terminal•s€Ü”v—~‘~ zÓ2´eÒ;Ð;Ñ;r#cóZ—ttjd«txstk(sJ‚y)NÚionice)rrrwrr rs r!Ú test_ionicez TestAvailProcessAPIs.test_ionice˜s €Ü”v—~‘~ xÓ0´UÒ5E¼gÒFÐFÑFr#r:r;cóZ—ttjd«txstk(sJ‚y)NÚrlimit)rrrwrrrs r!rWz TestAvailProcessAPIs.test_rlimit›s"€ô
”v—~‘~ xÓ0´UÒ5E¼gÒFÐFÑFr#có`—ttjd«}|txst k(sJ‚y)NÚ io_counters)rrrwrr
©r Úhasits  r!Útest_io_countersz%TestAvailProcessAPIs.test_io_counters¢s'€ÜœŸ™¨ Ó6ˆØœešn¤uÐ-Ò.Ð.Ñ.r#cóJ—ttjd«tk(sJ‚y)NÚnum_fdsr|rs r!Ú test_num_fdsz!TestAvailProcessAPIs.test_num_fds¦s€Ü”v—~‘~ yÓ1´UÒ:Ð:Ñ:r#cóJ—ttjd«tk(sJ‚y)NÚ num_handles)rrrwr rs r!Útest_num_handlesz%TestAvailProcessAPIs.test_num_handles©s€Ü”v—~‘~ }Ó5¼Ò@Ð@Ñ@r#cój—ttjd«txstxst
k(sJ‚y)NÚ cpu_affinity)rrrwrr rrs r!Útest_cpu_affinityz&TestAvailProcessAPIs.test_cpu_affinity¬s,€Ü”v—~‘~ ~Ó6Ü Ò '”WÒ '¤ò
ð    
ñ
r#cój—ttjd«txstxst
k(sJ‚y)NÚcpu_num)rrrwrrr
rs r!Ú test_cpu_numz!TestAvailProcessAPIs.test_cpu_num±s,€Ü”v—~‘~ yÓ1Ü Ò %”WÒ %¤ò
ð    
ñ
r#có€—ttjd«}|txstxst
xst k(sJ‚y)NÚ memory_maps)rrrwrrrrr‹s  r!Útest_memory_mapsz%TestAvailProcessAPIs.test_memory_maps¶s2€ÜœŸ™¨ Ó6ˆØœgÒ?¬Ò?´3Ò?¼%Ð@ÒAÐAÑAr#N)rXrYrZrxr}r€rƒr†rr[r\r rrWrrr“r–r™rœr]r#r!rtrt‚sq„ò
 
ò8ò8ò<òGð ‡[[×ÑØÒ ˜5Ø6ðóñGó    ðGò/ò;òAò
ò
 
ó
Br#rtcó—eZdZdZed„«Zedfd„Zd„Zd„Z    d„Z
d„Z e jjexred    ¬
«e jje d ¬
«d „««Zd „Zd„Ze jjed¬
«d„«Zd„Zd„Ze jje d ¬
«d„«Ze jje d ¬
«d„«Ze jje d ¬
«d„«Zd„Zd„Z y)ÚTestSystemAPITypeszhCheck the return types of system related APIs.
    https://github.com/giampaolo/psutil/issues/1039.
    có6—tj«|_y©N)rrwÚproc)Úclss r!Ú
setUpClasszTestSystemAPITypes.setUpClassÅs€ä—>‘>Ó#ˆr#Tcó\—t|«sJ‚|D]}t||«sJ‚|sŒ|dk\rŒJ‚y©Nr)rÚ
isinstance)r ÚntÚtype_ÚgezeroÚns     r!Úassert_ntuple_of_numsz(TestSystemAPITypes.assert_ntuple_of_numsÉs=€Ü˜RԠРРØò    ˆAܘa Ô'Ð 'Ð'ÚØ˜A“v vñ    r#có¢—|jtj««tjd¬«D]}|j|«Œy)NT)Úpercpu)r«rÚ    cpu_times)r r§s  r!Útest_cpu_timesz!TestSystemAPITypes.test_cpu_timesÐsA€Ø ×"Ñ"¤6×#3Ñ#3Ó#5Ô6Ü×"Ñ"¨$Ô/ò    +ˆBØ × &Ñ & rÕ *ñ    +r#cóœ—ttjd¬«t«sJ‚ttjd¬«t«sJ‚y)N©Úintervalgñh㈵øä>)r¦rÚ cpu_percentÚfloatrs r!Útest_cpu_percentz#TestSystemAPITypes.test_cpu_percentÕs8€Üœ&×,Ñ,°dÔ;¼UÔCÐCÐCÜœ&×,Ñ,°gÔ>ÄÔFÐFÑFr#có˜—|jtjd¬««|jtjd¬««y)Nr±g-Cëâ6?)r«rÚcpu_times_percentrs r!Útest_cpu_times_percentz)TestSystemAPITypes.test_cpu_times_percentÙs4€Ø ×"Ñ"¤6×#;Ñ#;ÀTÔ#JÔKØ ×"Ñ"¤6×#;Ñ#;ÀVÔ#LÕMr#cóL—ttj«t«sJ‚yr )r¦rÚ    cpu_countÚintrs r!Útest_cpu_countz!TestSystemAPITypes.test_cpu_countÝs€Üœ&×*Ñ*Ó,¬cÔ2Ð2Ñ2r#rfr;z not supportedcó´—tj«€tjd«S|j    tj«t
t f¬«y)Nzcpu_freq() returns None©r¨)rrhrÚskipr«r´r»rs r!riz TestSystemAPITypes.test_cpu_freqás?€ô ?‰?Ó Ð $Ü—;‘;Ð8Ó9Ð 9Ø ×"Ñ"¤6§?¡?Ó#4¼UÄC¸LÐ"ÕIr#có®—tjd¬«j«D].\}}t|t«sJ‚|j |t ¬«Œ0y)NT)Úperdiskr¾)rÚdisk_io_countersÚitemsr¦Ústrr«r»)r ÚkÚvs   r!Útest_disk_io_countersz(TestSystemAPITypes.test_disk_io_countersèsL€ä×+Ñ+°DÔ9×?Ñ?ÓAò    5‰DˆAˆqܘa¤Ô%Ð %Ð%Ø × &Ñ & q´Ð &Õ 4ñ    5r#có—tj«D]r}t|jt«sJ‚t|j
t«sJ‚t|j t«sJ‚t|jt«rŒrJ‚yr )rÚdisk_partitionsr¦ÚdevicerÄÚ
mountpointÚfstypeÚopts)r Údisks  r!Útest_disk_partitionsz'TestSystemAPITypes.test_disk_partitionsîsj€ä×*Ñ*Ó,ò    .ˆDܘdŸk™k¬3Ô/Ð /Ð/ܘdŸo™o¬sÔ3Ð 3Ð3ܘdŸk™k¬3Ô/Ð /Ð/ܘdŸi™i¬Õ-Ð -Ð-ñ        .r#z requires rootcóڗt«5tjd«}t|«tt    |««k(sJ‚|D]}t |«rŒJ‚    ddd«y#1swYyxYw)NÚall)rrÚnet_connectionsÚlenÚsetr)r ÚretÚconns   r!Útest_net_connectionsz'TestSystemAPITypes.test_net_connectionsösd€ä Ó ñ    +Ü×(Ñ(¨Ó/ˆCܐs“8œs¤3 s£8›}Ò,Ð ,Ð,Øò +Ü$ TÕ*Ð*Ð*ñ +÷    +÷    +ñ    +ús‹AA!ÁA!Á!A*c    óª—tj«j«D]®\}}t|t«sJ‚|D]’}t|j
t j«sJ‚t|jt«sJ‚t|jttd«f«sJ‚t|jttd«f«rŒ’J‚Œ°yr ) rÚ net_if_addrsrÃr¦rÄÚfamilyrÚIntEnumÚaddressÚnetmaskÚtypeÚ    broadcast)r ÚifnameÚaddrsÚaddrs    r!Útest_net_if_addrsz$TestSystemAPITypes.test_net_if_addrsþs°€ä#×0Ñ0Ó2×8Ñ8Ó:ò    E‰MˆFEܘf¤cÔ*Ð *Ð*Øò EÜ! $§+¡+¬t¯|©|Ô<Ð<Ð<Ü! $§,¡,´Ô4Ð4Ð4Ü! $§,¡,´´d¸4³jÐ0AÔBÐBÐBÜ! $§.¡.´3¼¸T»
Ð2CÕDÐDÐDñ     Eñ    Er#cóp—tj«j«D]‘\}}t|t«sJ‚t|j
t «sJ‚t|jtj«sJ‚t|jt«sJ‚t|jt«rŒ‘J‚yr ) rÚ net_if_statsrÃr¦rÄÚisupÚboolÚduplexrrÛÚspeedr»Úmtu)r ràÚinfos   r!Útest_net_if_statsz$TestSystemAPITypes.test_net_if_statss‹€ä"×/Ñ/Ó1×7Ñ7Ó9ò    -‰LˆFDܘf¤cÔ*Ð *Ð*ܘdŸi™i¬Ô.Ð .Ð.ܘdŸk™k¬4¯<©<Ô8Ð 8Ð8ܘdŸj™j¬#Ô.Ð .Ð.ܘdŸh™h¬Õ,Ð ,Ð,ñ     -r#có^—tjd¬«D]}t|t«rŒJ‚y)NT)Úpernic)rÚnet_io_countersr¦rÄ)r ràs  r!Útest_net_io_countersz'TestSystemAPITypes.test_net_io_counterss.€ô×,Ñ,°DÔ9ò    +ˆFܘf¤cÕ*Ð *Ð*ñ    +r#c
ó—tj«j«D]f\}}t|t«sJ‚|D]J}t|j
t«sJ‚t|j tttd«f«rŒJJ‚Œhyr )
rrnrÃr¦rÄÚlabelÚcurrentr´r»rÞ©r ÚnameÚunitsÚunits    r!roz$TestSystemAPITypes.test_sensors_fanss€ô"×.Ñ.Ó0×6Ñ6Ó8ò    J‰KˆD%ܘd¤CÔ(Ð (Ð(Øò JÜ! $§*¡*¬cÔ2Ð2Ð2Ü! $§,¡,´¼¼TÀ$»ZÐ0HÕIÐIÐIñ Jñ    Jr#c
óÊ—tj«j«D]¾\}}t|t«sJ‚|D]¢}t|j
t«sJ‚t|j tttd«f«sJ‚t|jtttd«f«sJ‚t|jtttd«f«rŒ¢J‚ŒÀyr ) rrkrÃr¦rÄròrór´r»rÞÚhighÚcriticalrôs    r!rlz,TestSystemAPITypes.test_sensors_temperatures s½€ô"×6Ñ6Ó8×>Ñ>Ó@ò    K‰KˆD%ܘd¤CÔ(Ð (Ð(Øò KÜ! $§*¡*¬cÔ2Ð2Ð2Ü! $§,¡,´¼¼TÀ$»ZÐ0HÔIÐIÐIÜ! $§)¡)¬e´S¼$¸t»*Ð-EÔFÐFÐFÜ! $§-¡-´%¼¼dÀ4»jÐ1IÕJÐJÐJñ     Kñ    Kr#cóL—ttj«t«sJ‚yr )r¦rÚ    boot_timer´rs r!Útest_boot_timez!TestSystemAPITypes.test_boot_time+s€äœ&×*Ñ*Ó,¬eÔ4Ð4Ñ4r#có°—tj«D]¿}t|jt«sJ‚t|j
tt d«f«sJ‚t|jtt d«f«sJ‚t|jtt d«f«sJ‚t|jt«sŒ¯|jdkDrŒ¿J‚yr¥)
rÚusersr¦rõrÄr‚rÞÚhostÚpidr»)r Úusers  r!Ú
test_userszTestSystemAPITypes.test_users/s €ä—L‘L“Nò    $ˆDܘdŸi™i¬Ô-Ð -Ð-ܘdŸm™m¬c´4¸³:Ð->Ô?Ð ?Ð?ܘdŸi™i¬#¬t°D«zÐ):Ô;Ð ;Ð;ܘdŸh™h¬¬d°4«jÐ(9Ô:Ð :Ð:ܘ$Ÿ(™(¤CÕ(Ø—x‘x !“|Ð#|ñ     $r#N)!rXrYrZÚ__doc__Ú classmethodr£r´r«r¯rµr¸r¼rr[r\rr rrirÇrÏrr×rãrìrrðrrorrlrýrr]r#r!ržržÀs`„ñðñ$óð$ð/4¸Dóò+ò
GòNò3ð ‡[[×јÒ) 'Ð2HÐÓIØ ‡[[×јLÐ(°ÐÓAñJóBóJðJò
5ò .ð ‡[[×ј ¨_ÐÓ=ñ+ó>ð+òEò-ð ‡[[×ÑÐ/Ð/¸ÐÓHñ+óIð+ð
 ‡[[×ÑÐ,Ð,°_ÐÓEñJóFðJð ‡[[×ÑÐ4Ð4¸_ÐÓMñKóNðKò5ó$r#ržcóT—eZdZejj e d¬«d„«Zy)ÚTestProcessWaitTypez    not POSIXr;có—tj|j«j«}|j    «|j «}|t j k(sJ‚t|tj«sJ‚yr ) rrwÚ spawn_subprocrÚ    terminateÚwaitÚsignalÚSIGTERMr¦rrÛ)r ÚpÚcodes   r!Útest_negative_signalz(TestProcessWaitType.test_negative_signal;s[€ä N‰N˜4×-Ñ-Ó/×3Ñ3Ó 4ˆØ     ‰ Œ ؏v‰v‹xˆØœŸ™Ò&Ð&Ð&ܘ$¤§ ¡ Ô-Ð-Ñ-r#N)rXrYrZrr[r\r    rr]r#r!rr:s*„Ø ‡[[×јE˜    ¨+ÐÓ6ñ.ó7ñ.r#r)rr rrrrrrrr    r
r Ú psutil.testsr r rrrrrrrrrrrrr_rtržrr]r#r!ú<module>rs—ðñó
ã ÝÝÝÝÝÝÝÝÝÝ Ý'Ý%Ý,Ý)Ý1Ý%Ý'Ý'ÝÝ&Ý'Ýô89˜^ô89ôv
˜.ô
ô26B˜>ô6Bô|w$˜ôw$ôt.˜.õ.r#