Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEAT-#4501: Add RSS Memory Profiling to Modin Logging #4502

Merged
merged 15 commits into from
Jun 3, 2022

Conversation

naren-ponder
Copy link
Collaborator

@naren-ponder naren-ponder commented May 26, 2022

Signed-off-by: Naren Krishna naren@ponder.io

What do these changes do?

Add RSS Memory Profiling at LogMemoryInterval interval to Modin logging. This helps with out-of-core measurements.

  • commit message follows format outlined here
  • passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
  • passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
  • signed commit with git commit -s
  • Resolves Add RSS Memory to Modin Logging #4501?
  • tests added and passing
  • module layout described at docs/development/architecture.rst is up-to-date
  • added (Issue Number: PR title (PR Number)) and github username to release notes for next major release

Signed-off-by: Naren Krishna <naren@ponder.io>
@naren-ponder naren-ponder requested a review from a team as a code owner May 26, 2022 18:48
Signed-off-by: Naren Krishna <naren@ponder.io>
Signed-off-by: Naren Krishna <naren@ponder.io>
mvashishtha
mvashishtha previously approved these changes May 26, 2022
Copy link
Collaborator

@mvashishtha mvashishtha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with one fix.

modin/logging/config.py Outdated Show resolved Hide resolved
@codecov
Copy link

codecov bot commented May 26, 2022

Codecov Report

Merging #4502 (a96bb27) into master (49fc2cf) will increase coverage by 2.73%.
The diff coverage is 56.25%.

@@            Coverage Diff             @@
##           master    #4502      +/-   ##
==========================================
+ Coverage   86.64%   89.37%   +2.73%     
==========================================
  Files         226      229       +3     
  Lines       18298    21229    +2931     
==========================================
+ Hits        15854    18974    +3120     
+ Misses       2444     2255     -189     
Impacted Files Coverage Δ
modin/logging/config.py 30.26% <40.00%> (+0.41%) ⬆️
modin/config/envvars.py 86.63% <63.63%> (+2.34%) ⬆️
modin/core/storage_formats/base/query_compiler.py 87.02% <0.00%> (-12.20%) ⬇️
...ns/pandas_on_ray/partitioning/virtual_partition.py 78.57% <0.00%> (-11.23%) ⬇️
modin/core/dataframe/pandas/dataframe/dataframe.py 94.68% <0.00%> (-0.39%) ⬇️
...entations/pandas_on_dask/partitioning/partition.py 91.46% <0.00%> (ø)
modin/experimental/batch/pipeline.py 100.00% <0.00%> (ø)
modin/experimental/batch/__init__.py 100.00% <0.00%> (ø)
modin/experimental/batch/test/test_pipeline.py 100.00% <0.00%> (ø)
... and 20 more

📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

@modin-bot
Copy link

modin-bot commented May 26, 2022

TeamCity Python test results bot

Tests PASSed

Tests Logs
3%]
ssssssxxxx.xssss.xssss.xxxxxxxx.xxssss.xssss.xx.xxxxx.xxxx.xxxxxxxxxxxxx [ 93%]
xxssss.xxxxxxx.xxssss.xxxxsssss.sss.xssss.x..x.xxxxxssss.xxxxxxxxxx.xsss [ 93%]
xssssssssssssx.xxxxx.xx.xxx.xxx..xssss.xxx.xxxxxxssss.xxxxxxxx.xssss.xss [ 93%]
ss.xxxxxxxxxx.xxxx.xx.xxssss.xssss.xxxxxxx.ssss.xxssss..xxxxxxxssss.ssss [ 93%]
.xxxxxxxs..x.ssss.xxxxsssssssssssssssssssssssssssssss.xx.xx.xxxxx.xsssss [ 93%]
ssssss.ssss.xxx.xx.xxssss.ssss.ssss.ssss.xxxssss.xx.xxssss.xssss.x.ssss. [ 93%]
.xx.ssss..ssss..x.xxxssss.xxx.x.xx.x..xxxxxx.xxxxssss...ssssssssssssssss. [ 94%]
sssssssssss.sxx.xxxxssss..x..xxxxxxssss.x.xxxxx.xx.xxxxssss.xxxxxxxssss. [ 94%]
xxxxxxssss.s.x.x.xx.sss.x.x.xxx.ssss.x.xxxxx.x.x.xxssssssssssssssssssxxx [ 94%]
xx..ssss.x.xxx.xxxxx..xx..xx.xx.xxx.x.xxxxx.x.xssss.xssss...ssssssssssss [ 94%]
ssssssss.ssxs.s.sxsxxx..xxxx.xx.xx..x.ss.xxx.sss..xx.x.xxx.sssssssssssss [ 94%]
sss.s...x.xssss.xxx.x.....sss.sssss.xxxx..ssxssssssssssss.s...xx....xx.x [ 94%]
..x...xssss..xx.x.x..xx.ss.x.x.xx....x..x.xssssx....x.xxssss...xx..x.x.. [ 94%]
xx.x...xx.s.sss..ssss..x.ssss......ssss......xxssss.x...x..............x [ 95%]
...ssss.x.xx.x.....x.....xssss.ssss..x..........sss......x....x....xsss. [ 95%]
.x........x...xxx....xx....x..x.........x.x...ssss....xx..x....x.....sss [ 95%]
.........ssss............x.......x...x.....x.x......x.....xx..........x. [ 95%]
.x.....xx...................x..x..........xx....x....................... [ 95%]
..x.....xssss.........x..xx.....x..............x........x.............x. [ 95%]
.....x.....x.......s..........................ssss...................... [ 95%]
..x.....x..........x.................................x.................. [ 96%]
.s.........................xx....x...................................... [ 96%]
...........sss...x.............x........................................ [ 96%]
...................ss.s................................................. [ 96%]
.....................................x......x........................... [ 96%]
...........x........x.................x................................. [ 96%]
....xx.................................................................. [ 96%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 98%]
........................................................................ [ 98%]
........................................................................ [ 98%]
................................x....................................... [ 98%]
....ss..s..s.s.s..............ssss.ss..................sssssss.sss.ss.ss [ 98%]
ss.sssssssss.sssssssssssss........s.................ssss.x.x..sss....... [ 98%]
..........s.....xx..................x..........................x........ [ 98%]
...............x......s..s..................s..............s.xs...s..... [ 99%]
......ssss.................sss.ssss..s.......x...........s...ss.s.s.ss.s [ 99%]
.sx......sssss.s...s.s...s...ss...........s..........s.x............sx.. [ 99%]
....ss....s....ssss.....x......s....x.ss..s.......ss...s.ssss...ss...... [ 99%]
.sss.sss.sss..s.............s.........................ss.s.ss.s......... [ 99%]
....s.s..........x....s.x.......................s....................... [ 99%]
......s.............s................................................... [ 99%]
.............sssssssssssssss..........................                   [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates
fatal: bad object HEAD


---------- coverage: platform linux, python 3.8.13-final-0 -----------
Coverage XML written to file coverage.xml

= 8861 passed, 37801 skipped, 2917 xfailed, 30840 warnings in 177.16s (0:02:57) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
Tests are successful
============================= test session starts ==============================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.4.1, cov-2.11.0, forked-1.4.0, xdist-2.5.0
collected 2464 items

modin/pandas/test/test_io.py ........................................... [  1%]
........................................................................ [  4%]
.............................................ssssssssssssssssssss.ss.ss. [  7%]
ss.ss.ss.ss.ss.ss.ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss. [ 10%]
ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.sssssssss [ 13%]
sssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ssssssssssssssssssss.ss.ss. [ 16%]
ss.ss.ss.ss.ss.ss.ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss. [ 19%]
ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.sssssssss [ 22%]
sssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss............................ [ 25%]
........................................................................ [ 28%]
........................................................................ [ 30%]
........................................................................ [ 33%]
........................................................................ [ 36%]
........................................................................ [ 39%]
........................................................................ [ 42%]
........................................................................ [ 45%]
........................................................................ [ 48%]
.................................s...................................... [ 51%]
........................................................................ [ 54%]
........................................................................ [ 57%]
........................................................................ [ 60%]
........................................................................ [ 63%]
........................................................................ [ 66%]
........................................................................ [ 68%]
........................................................................ [ 71%]
........................................................................ [ 74%]
........................................................................ [ 77%]
........................................................................ [ 80%]
................................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [ 83%]
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [ 86%]
xxxxxxxx................................................................ [ 89%]
........................................................................ [ 92%]
........................................................................ [ 95%]
.............................................................X.......ss. [ 98%]
...x....................xx.........ss........                            [100%]

---------- coverage: platform linux, python 3.8.13-final-0 -----------
Coverage XML written to file coverage.xml


= 1999 passed, 341 skipped, 123 xfailed, 1 xpassed, 3914 warnings in 135.52s (0:02:15) =
============================= test session starts ==============================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.4.1, cov-2.11.0, forked-1.4.0, xdist-2.5.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [49579] / gw1 [49579] / gw2 [49579] / gw3 [49579] / gw4 [49579] / gw5 [49579] / gw6 [49579] / gw7 [49579] / gw8 [49579] / gw9 [49579] / gw10 [49579] / gw11 [49579] / gw12 [49579] / gw13 [49579] / gw14 [49579] / gw15 [49579] / gw16 [49579] / gw17 [49579] / gw18 [49579] / gw19 [49579] / gw20 [49579] / gw21 [49579] / gw22 [49579] / gw23 [49579] / gw24 [49579] / gw25 [49579] / gw26 [49579] / gw27 [49579] / gw28 [49579] / gw29 [49579] / gw30 [49579] / gw31 [49579] / gw32 [49579] / gw33 [49579] / gw34 [49579] / gw35 [49579] / gw36 [49579] / gw37 [49579] / gw38 [49579] / gw39 [49579] / gw40 [49579] / gw41 [49579] / gw42 [49579] / gw43 [49579] / gw44 [49579] / gw45 [49579] / gw46 [49579] / gw47 [49579]

........................................................................ [  0%]
........................................................................ [  0%]
........................................................................ [  0%]
........................................................................ [  0%]
............x........................................................... [  0%]
........................................................................ [  0%]
........................................................................ [  1%]
........................................................................ [  1%]
........................................................................ [  1%]
.......................x................................................ [  1%]
.............................................x.......................... [  1%]
........................................................................ [  1%]
........................................................................ [  1%]
...............................x........................................ [  2%]
........................................................................ [  2%]
............................................................x........... [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  4%]
........................................................................ [  4%]
........................................................................ [  4%]
........................................................................ [  4%]
........................................................................ [  4%]
........................................................................ [  4%]
........................................................................ [  4%]
..............................x......................................... [  5%]
........................................................................ [  5%]
..............................................x......................... [  5%]
........................................................................ [  5%]
..........................................x............................. [  5%]
........................................................................ [  5%]
........................................................................ [  5%]
........................................................................ [  6%]
........................................................................ [  6%]
........................................................................ [  6%]
..........................x............................................. [  6%]
................................x....................................... [  6%]
....................sssssssssssssssssssssssssssssssssssssss.s.ssssss.s.s [  6%]
.ss.ss..ss.s.s.ss.ss.s..sssssssssssssssssssssssssss..s.sss.s.s.s.xss..s. [  6%]
..s.ss.s...ss..s.ss.s.s.s.ssssssssssssssssssssssssssssssssssssssssssssss [  7%]
sssss.s.ssssssssssss.ss.ssssssssssssssssssssssssssssssssssssssssssssssss [  7%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [  7%]
.s.ss.s..ss..sss.ss.ssssssssssssssssssssssssssssssssssssssssssssssss.sss [  7%]
sss.ssssssssssssssssssssss.ssssssssssssssssssssssssssss.sssssss.sss..ss. [  7%]
ss.s.sss.ss..ssss.ssss.....sssss........................................ [  7%]
................ssssssssssssssssssssssssssss.ssss..ss.s.s..s.s.s.s...s.s [  7%]
s.s....ss.sss..s.s.s.sx.ss.ss.ss.ssssssssssssss.ssssssssssssssssssssssss [  8%]
ssssssssssssssssss.sssssssssss.ssssssssssssssssssssssssssss.sss..ss..sss [  8%]
.s.ss.s.ss..ss.sss.s.sss.s.......................s.......sssssssssssssss [  8%]
ssssssssssssss..ssssss.ssssssss.ss..s.ss..ssss..ssssssssssssssssssssssss [  8%]
ssssssssssssssssssssssssssss.s.ss.ssssssssssss.sssss.sssssssssssssssssss [  8%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [  8%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [  8%]
ssssssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssss [  9%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [  9%]
ssssss.sssssssssssssssssssssssssssssssss.sssssssssssssss.ssssss.ssssssss [  9%]
sssssssssssssssssssssssssssssssssssssssss.ssss.sssssssssssss.sssssssssss [  9%]
sss.sss..sss.ssss..ss.sss.ss.ss..sss.s.ss.ss.s.ss.ssss.s..sss.ss..sss.s. [  9%]
ss.s.s.sss.ssss..ss.ss.ss.s.ss.sssss.s.sss.ss.sssss.sssss.ss.ss.ss.ss.ss. [  9%]
s.ssssssss.sss.ssss.ss..sssssssssssssssssssssssssssssssssssssssssssssssss [ 10%]
ssssssssssssssssssssssssssssssssssssssss.sssssssssss..sss.sss.sssssssssss [ 10%]
ssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssss.sss..s.ss [ 10%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 10%]
ssssssss.ssssssssss.s.ss..sss.ssssssssssssssssssssssssssssssssssss.sssss [ 10%]
sssssssssssssssssssssssssssssss.ssssss.s.sssssssssss..ss..ssss.sss.s.ss. [ 10%]
ss..sss..ssss.ss.ss.ss.ss.ss.sss.ss..sss.sssssss.ssssssssssssssssssss.ss [ 10%]
sssssss.ssssssssss.ssssssssssssssssssssss.sssssssssssssssss.ss.sssssssss [ 11%]
sssssssssssssssssss.sssssssssssssssssss.ssssssssssssssssssssssssssssssss [ 11%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 11%]
ssssssssssssssssssssssssssssssssssss.sssssssssssssssssssssssssssssssssss [ 11%]
sssssssssssssssss.s.s.sss.sssss.sssssss.ss.sss.s.ss.s.ssss..ss..ssss..ss [ 11%]
s.ss..ssss.ss.sss.sss.s.sssssss.sssss.ssss.s..s.ss.s.ssssss..sss.s.sssss [ 11%]
sssssssssssssssssssssssssssssssssssssss.sssssssssssssss.ssssssssssssssss [ 11%]
sssssssssssssssssssssssssssss.sssssssss.sssssssss..ssssssssssssss.ssssss [ 12%]
ssssssssss.ssssss.sssssssssssssss.ssssssss..sssssssssssssssssssssss.ss.s [ 12%]
ssssss.sss.sssssssssssssssssssss.ssssssssssssssss.ssssssssssssssssss.sss [ 12%]
ssssssssssssss.sssssssss.sssssssssssssssssss.ssssssssss.sss..sssssss.sss [ 12%]
sssssssssssssssssssss.ssssssssssssssssssssssss.sssssssssss.sssssssssss.s [ 12%]
sssssssssssss.ssssssssssssssssssssssssssssss.ssssssssssssss.ssssssssss.s [ 12%]
ssssssssss.sssssssssssssssssssssssssssssssss.sssssssssssssssssssssss.sss [ 12%]
ssssssssssssss.ssssssssssssss.sssssssssssssssssssssss.sssss.ssssssssssss [ 13%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 13%]
sss.sssssssssssssssssssssss.sssssssssss.ssssssss..ssssssssssssssssssss.s [ 13%]
ssssssssssssssssss.sssss..sssss.ssss.sssssssssssssssssssssssssssssssssss [ 13%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 13%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 13%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 13%]
sssssssssssssssssssssssssssssssssssss.sssssssssssssssssss.ssssssssssssss [ 14%]
ssssssssssssssss.ssssssssss.ssssssssssssss..sssssssssssss.ssssssssssssss [ 14%]
sssssssssss..ssssssssssssssssss.sssssss.ssss.sssssssssssssssssssss.sssss [ 14%]
sssssssssssssssss.sssssss..sssssssssss.sssssss.sssssssssssssssss.sssssss. [ 14%]
sssssssssss..ssssssssssss.sssssssssss.sssssssssssss..sssssssssssssss.sss [ 14%]
ssssssssssssssssss..sss.ssssssssssssss..ss.ssssss.sssss.sss..sssssssssss [ 14%]
ssssssssssssssss.s.ssssssssssssssss.ssssssssssssssssss.sssssssssssssssss [ 14%]
s.ssssssssssss.ssssssssssssssssssssss.ss.ssssssssss.sssssssss.sssssss.ss [ 15%]
sssssssssssssssssssss.s.ssssssssssssssss..ss.sssssssss..ssssssssssssssss [ 15%]
ssssssssssssssss.ssssssssssss.ssssss.sssssssssss.sssss.sssssssssssssssss [ 15%]
s.sssssssss.ssssss.sssssssssssssssssssssssss.ssssssssss.sss.ss.sssssssss [ 15%]
ssssssssssssssssss.sssssssssss.ssssssssssss.ssssssssssss.sssssssssssssss [ 15%]
ssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssss [ 15%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 15%]
sssssssssssssssssssssssssssssssssssssssss.ssssssssssssssssssssss.sssssss [ 16%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 16%]
ssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 16%]
ssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssss. [ 16%]
.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 16%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 16%]
sssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssss [ 16%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 17%]
ssssssssssssssssssssssssssssssssssssssssssssssssssss.sssssssssssssssssss [ 17%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 17%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 17%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 17%]
sssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 17%]
ss.ssssssssssssssss.ssssssssss.sss.ssssss.ssssss.sssssssssss..ssssssssss [ 18%]
sssssssss.sssssssssssssss..sssssssssssssssssssssss.sssssss.sssssssssssss [ 18%]
ssssss.sssssssssssssssssssssssssssssssssssssssssssssss.sssssssss.sssssss [ 18%]
ssssssssssss.ssssssssssssss.sssssssssssss.sssssssssss.sss.ssssssss.sssss [ 18%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 18%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.ssssss [ 18%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 18%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 19%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 19%]
ssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 19%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 19%]
sssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssss [ 19%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 19%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.ssssssss [ 19%]
sssssssss.ssssssssss.sssssssssssssssssssssssssssssssssss.sssssssssssssss [ 20%]
sssssssssssssssssssssssssssssssssssssssssssss.ssssssssssssssssssssssssss [ 20%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.sssssssssssss [ 20%]
ssssssssssssssssss..ssssssssssssssssssssssssssssssssssssssssssssssssssss [ 20%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 20%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 20%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 20%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 21%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 21%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssss.ssssssssssssss [ 21%]
sssssssssssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssss [ 21%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss..sssssss [ 21%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 21%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 21%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssss.ss.ssssssssssssssssssssssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 22%]
ssssssss.sssssssssssssssssssssssssssssssssssss.sssssssssssssssssssssssss [ 22%]
sssss.sss.ss...sss.ss.ss.ss.ss.sssssssssssssssssssssssssssssssss.sssssss [ 23%]
sssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss. [ 23%]
ss.ss...sssssss.ssssss.ss.ss.s.s.s.ssssss.s....s....ssssssssssssssssssss [ 23%]
ssssssss.s.ssssssssss.sss..s.sssss.sssssss.s.s.s.ss.ss.ssss.ss.ss.s.ss.s [ 23%]
.ss.s.ss.ss.s.ss.s.ssss.sss.ss.ss.s.s.s.ss.s.s..s....s.s..sss.ssssssssss [ 23%]
ssssssss......s.s.s...sssss....s.............ssssssssssssssssssssss...s. [ 23%]
....s..s..s.....s...sssss......s..s.ssssssssssssssssssssssssssssssssss.s [ 23%]
sss.sss.ssss.s.ss.s.ss.sss.s.ss.s..ss.ss.s.ss.ss..sss.s.s.sss.s.s.s.s.ss [ 24%]
.ss.ss.s.ss.sss.s.s.s..ss.s.sssssssssssssssssssssssssssssssssssss.ss..ss [ 24%]
s.ss.s.ss.s.sss.s.sss.ss.sssssssss.sssssssssssss.ssssssssss.ss.sssssssss [ 24%]
ssssssssssssssssssssssssss.ssssss.ssssssss..sssssssss.ssss.ss.s.ssssssss [ 24%]
sssssssssssssssssssssssssssssssssss.sssssssssssss.ssssssssssssssssssssss [ 24%]
sss.sssssssss.ssssssssssss.sssssssss..ssssssssssssssssss.sssssss.sss.sss [ 24%]
sssssssssssss.s.sssssssssss.ssssssssss.sssssssssssssssssssssssssssssssss [ 24%]
ss.sssss.ssssssss..sss.ssssss.s..sssssssssssssssssssssssssssssssssssssss [ 25%]
ss.ssssssssssssssssssss.sssssssss.ssssssssss..ss.s.s.ss.sss.ss.s.ss.s.ss [ 25%]
..s..ssss.ss.s.ss.s.sss.ss.s.s..ssss...sssssssssssssssssssssssssssssssss [ 25%]
ssssssssssssssssssssssssssssssssssss.ssssss.sss.ss.ss.ss.ss.s.ss.ss.s.ss [ 25%]
s.ss..ss.sssss.sssssssssssssssssssssssssssssssssssssssssssss.sss.ss..s.s [ 25%]
.ssss.s.s.sss.s.ss.s.s..sss.s.sssssssssssssssssssssssssss.ssssssssssssss [ 25%]
sssssssssssssss.sssssssss.ssss.sssssssssssssssssssssssssssssssssssssssss [ 26%]
sssss.s.ssss.ssssssss.ssssssssss.s.ssssss.sssssssssssssssssss.ssssssssss [ 26%]
sss.sssss.sssssssss.s.sssss.sssssssss.ss.ssssssssss.ssssssssssssssssssss [ 26%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 26%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.sssssss [ 26%]
sssssssss.ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 26%]
sssssssss.ssssssssssssssssssssssssssssssssssssssssss.sssssssssssssssssss [ 26%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 27%]
sssssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssss [ 27%]
sssssssssssss.ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss. [ 27%]
sssssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssss [ 27%]
sssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssssssssss [ 27%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.s [ 27%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 27%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 28%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 28%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 28%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 28%]
ssssssssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssss [ 28%]
ssssssssssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssss [ 28%]
sssssssssssssssssssssssssssssssssssssssssssssssssssss.ssssssssssssssssss [ 28%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 29%]
sssssssssssssssssssssssssssssssssssssssssssssssssss..sssssssssssssssssss [ 29%]
sssssssssssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssss [ 29%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 29%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 29%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 29%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 29%]
ssssssssssssssssssssssssssssssssssssss..ssssssssssssssssssssssssssssssss [ 30%]
ssssssssssssssssssssssss.sssss..ssssssssssssssssss.sssssssssssssssssssss [ 30%]
ssssssssssssssss..sssss..s.....sssssssssss..s......s.s.s.............ss. [ 30%]
ss.ss.s.s.....s...s.sssssssssssss.sssssssssssssssssssssssss.ssss.ssss.ss. [ 30%]
.sss..ss.ss.ss.ss..s..sssss.ss.ssssssssssssssssssssssssssssssss.ssssssss [ 30%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 30%]
ssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 30%]
ssssssssssssssssssssssssssssssssssssssssssssssss.s.sssss..sssss.sssss... [ 31%]
...s.s.s...x.....xs.s..sssssssssssssssssssssssssssssss.sssss.ss..ss...sss [ 31%]
.sssss.ss.sssssssssssssssssssssssssssssssss.s..sssssssssssssssssssssssss [ 31%]
sssssss.ss.sssss.ss..sss.ss.sss.sss.ss.ssxs.s..ssss.s.s.s.ss.ss.ss..ssss [ 31%]
s.s.ssxss..sssss.s.ss.sss.s..ssss.s.xsssss.s.s.ss..sssssssssssssssssssss [ 31%]
ssssssssssss.s.sss.sss..s.ss.ss.ssss.ss.ss.ss..ss.sss.ssssssssssssssssss [ 31%]
ssssss.sssssxsssssssssssssssss.sssss.sss..ss.s.ssssssssssss.ssssssssssss [ 31%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.sssssss [ 32%]
ssssssssssssssssss.ssssssssssss.sssssssss..ssxs.sss.ss.s.xs.ss.sss.ss... [ 32%]
s....sx..x..x............x..ss...ss......s..ss.xs..ss.ss.s.ssss...ssxxs. [ 32%]
x.s.ss..sssxs.sss....s..ss.ss.....s..sxs...s..ss...s...sxxxs..ssssss..xs [ 32%]
s.s.ss.ss.s.ss.ss.s.sx.ss.ssss.sss.ssss..xx...x.s.s.ss.....s.xs.ss..sssss [ 32%]
sss...s..s..sssss.ss.s.ss.ss.s.sssxxss.ssxs...s..ss.sss.ssssss.ss.ss..ss [ 32%]
..sssss.s..s.ss.ssss....s.s.s.sss..x..sssssssssss.ssssssssssssssssss.s.s [ 32%]
.sss.ss..ss..ssss.ssssss.s..s.ss..sss..sss.ssssssss..ss.sss.ss...s.s..s.s [ 33%]
.ss.ssssssss.ss.sssssssssss.sss.sss.ssss.s.s.ssss...s..s...s.s..s.ss..s.s [ 33%]
sssssssss.s..sss.sxs.s.s.sssss.sss.ssss.s..ss.s.....ss..ssssxsssssssss.ss. [ 33%]
ss.s..s...s..xss.s..s..sss.s..s.s.xsxs..s.sssss.sxsss.ssssss.sss.s.ss.s. [ 33%]
s.sxss..sss.sssss.ss.sssxsx.x..s.ssss..ss.xss.sss..sss.sssss.s.ssssssxs.s [ 33%]
ssss.ss.ssssss.ssssxsxssxs.ssssss.ssss.s.xsssssss.sssssssss.ss.s.ssxs.ssss [ 33%]
sssssssss.ss.ssx.xssxs..ssssss.sxssssssssssssss..ssss.sssss.sssssssssss. [ 33%]
sxssssssss.s.xssssxsx.ss.sssssxs.s.sssssssss.ss.ss.s.ssssss...ss.ssss.s. [ 34%]
s.ssssssssssssxsxsssxssssssss.sss..s.ssss.ssssss..sssss.ss.sss.sssssssss [ 34%]
ssss.sssssssssss.ssss.s.sss.ss..s.sssss.ssss.s.sssss.ssssssssssssssssssss [ 34%]
sssss.sssss..s.ss.s.sxsss.ssssss.ssssss.sssssssss.sssssssss.sss.ssssssss [ 34%]
s.sss.ss.sssssss.ss.s.sssss.sssssssss.sssssss.ss..sssssss.sss.sss.sss.ss [ 34%]
.s.s.s.ssssss.sssss.sssssssssssss.s.sssss.s.s.ssssss.ssss.sss.sss.sss.ss [ 34%]
ss..ssssssssssss..ssssssss...ssssss.ss.sssssss..ss.ss.ss.s.ssssssssssssss [ 35%]
ssss.ssssss.s.sssss.sss.sss.sssssssss.ssssss.sssssssssssss.sssssssssss.. [ 35%]
ss.ssssssss..ss.ssssssss.ssss.ssssssssssssssssssss.sssssssssss.s.sssssss [ 35%]
sssssssss.ssssssssssss.ss.sssssss.ssssssss.ss.sss.s.sssssssssssssssssss.s [ 35%]
ssssssssssssss.ss.ssssssss.s.ssss.ssss..sss.sssssss.ssssssss.sss.ssssss.s. [ 35%]
sss.ssssssssssss.ssss.ssssssss.sssssssssssssssssssssssssssss.sss.sssss.s [ 35%]
s.ss..ss..ssssss..ss.sssss.ssssss.ssssssssssss..s.sssss.ssssss.sssss.ss. [ 35%]
sssss.ssss.ssssssssssssssssssssss.sssss..ssss.s.sss.sss..s.ss...ss.sssss [ 36%]
ssssssssssssssss.ssssssss.ss.ssss.sssssss.sssssss.sssss.sssssss.sssss.ss [ 36%]
.s..s.sssssss..sssss..ss.ssssssssss.ssss.sssssssssssssssssss.sssssssssssss [ 36%]
sssssss..ssss.sss..sssssss..ssss.ssssss.sss.ssss...sssssssss.sssssss.ssss [ 36%]
ssssss.ssssss.sssssssss.ssssssssssssssssssssss.ss.sss.s.sss.ss.s.ss.ss.sss [ 36%]
ssss..ssssssssssssss.sssssssssss.s.ss.ssssssssssssssssss.sssssssssssssss [ 36%]
ssss.sss.ssssssssss.ssssss.s.sss.sss..s.s.sss.ssss.sssssssssssssssss.sss. [ 36%]
sssssssssssssssssssssssssssssssss.sss..s.s..ss.sss.ss..ss.sss.sss...ssss [ 37%]
ssssss.ssssssssssssss.sssssxsss.ssssss.ss.ssssssss.s.sss.sssssss.ss.s.ss [ 37%]
s.sss..ssss.sss.sss.ss..sxsssxsss..xsssss.sssssssssss.ssssssssssssssssss [ 37%]
ssssssssssssss.ssxs.s..sxss.sss.xss.sss.s.ssss.sss.sss..ssssss.sssssssssss [ 37%]
sss.ss.ssss.ssssxsxsssssxsssssss.sxsssssssssssssssss.s.ss.ss.ss.s.ss.s.s [ 37%]
ss.ssss..ssxs.ssxssss.sxssssxs.sssssss.ssssssssssss.ssssss.ssssssssssssss [ 37%]
sssxss.sx.sss.sx..ssss.sssxss.sssssss.ss...sssss.sssssssssssssssss.sssssss [ 37%]
ssss.xssss.xsssssssxssss.sssssssssssss..sss.sss.sss.ssss.sssss.sss.ss.ssss [ 38%]
sssss.ssss.ssxssssssss.sssssssssssssssssssssssssssssssss.sssssssss.ss.s. [ 38%]
.sss.ss.ssssxssss.ssssss.sss.ss.sssss.sssssssssssssss.sssssss.ssssssssss [ 38%]
ssssssssssssssssssssss.s.s.s.sssss.s.s..ss.sssssss.ss.ss.ssss.ssssss.sss [ 38%]
ssssssssssssssss.sssssssxss.ssssss.ssss.sssssssssssssssssssss.ss.s.ss.ssss [ 38%]
ssssssss.sss.s.sssxssxssss.ss.sxssss.sssssssss.ssssssssssssssssssssssssssss [ 38%]
ssssssssssssxsssx.sssssx.ssssss.sssssssssss.sss.ss.ssssssss.ssssssss.ssss [ 38%]
.sssssssssssxssxsssxsssssssssssxsssssssssssssss.sssssssss.sss.ss.ssssssss [ 39%]
ss.ss.xssx.ssss.xsssssssssxsssss.s.sssssssssssssssssssssssssssssssss.sss.. [ 39%]
sxsssxsss.sssssss.xssxssssss.sssssss.sssssss.sssssssssssssss..s.sssssss.sssx [ 39%]
sssssxsssssss.xssssssssssssssssss.ssssss.ssssss.sssssss.sssssssssssssss. [ 39%]
s.s..ssssssxssssss.sss.ssssssssssssss.ssssssssssssssssssss.ssssss.sss.ss [ 39%]
ss.ssssssssssxsssss.ss.ssssssssssssss.sssssssssssssss.ssss.sssss.sssssss [ 39%]
ssssssssssssss.sssssssssssssssssss.s.ssssssss.ssssssss..ssssssssssssssssss [ 39%]
.sssssssss.ssssssssssss.ssssssssssssssssss.sssssssssssssssssss.sssss.ss.ssss [ 40%]
sssssssssssssssssssss.ssssssssssssssssss.sssssssssssssssssss.sssssssssss [ 40%]
sssssssss.ssssssssssssssssssssssssssssssssss.sssssssss.sssssssssssssssss [ 40%]
ssss.s..sssssssssssssssssssssssssss.ssssssssssssssssssssssssssss.sssssss [ 40%]
sssssssssssssssss.s..sss.ssssssss.sss.ssssssssssssssssssss.ssssssss.ssss. [ 40%]
sssssss.sssss.ssssssssssssssssssssssssss.ssss.sss..ssss.sssssssssss.ss.s [ 40%]
ss.sss.sssssssssssssssssss.sss.ssssssssssssssssss.sssssssssssss.ssssssss [ 41%]
ssssss.s.ss.sssss.sssssssss..ssssss.ssssssssssssssssssssssssssss.sssssss [ 41%]
sssssssssssssssssssssss.sss.sssssssss.sss.s.sss.ssss.sssss.ssss.sssssssssss [ 41%]
.ssssssssss.sssssss.ssssssssssssssss..ssssssssssssssssssssssssssssss.sss.ss. [ 41%]
ss.ssssssssssss...ssss.ssssssssssssssssssssss.s.ssssss.ssss.ssss.sssssss [ 41%]
sssss..sssss.ssssssssssssss.s.sss.ssss.sssssss.s..sssssssssssxsssss.sss. [ 41%]
.ssssss.sss.sssssssssssss.sssssssssssssssssssssssss.sss.ss.sss.ss.sssssss [ 41%]
sxs.s.sssssss..ssssssss.ssssss.ssss.sss.ss..sss.ssssssssssssssssssxsssss [ 42%]
.sssssssss.s.ssss.sss.s.ss.ss.ss..s..sss.ssssssssssss..sssssxssssss.ss.sssss [ 42%]
sss.sssssss.ssssssssx.xssssssss.sssss.s..sss.s..ssssssxsss.ss.s.sssss.sss [ 42%]
ss.s.sss.ssxsssssxs.sss.sssss.ssssssssssssssssxs.ssssssssssssssxss..ss.s [ 42%]
s.s..ssssssssssx.xsss.s.ss.ssssssss..sssssx.ssssss.ss.sssssss.sssxsssssssss [ 42%]
ssssxs.ssxss.sssssssss.s..sss..ss.sssss.sss..ssss.ssssxsssssssss.s.sssss [ 42%]
xssssxs..ssssxssssssssssss.sssssssssssxsssssssss.xss.s..sss.s...sssssx.ssx [ 42%]
ssssssssx..ssssss.ss.ssssssxsssss..s.sss.sssssssssxs.ssssssssss.sss.ssssx [ 43%]
s.ssss.ss.ssss.ss.sss.ssssxs.s.ssssss.s.ssxsssss.s.ssss.sssssss..ssssssxss [ 43%]
sssssssss.sss.sssssxssssssssssssssss.ss.ss.sss..sssssxss.sssssx.ssss.ssss [ 43%]
ss.s.sssssss.xssss.ss..sssss.sssssssssssssssssxsssssss.ssxss.sssss.ss.sss [ 43%]
s.s.ssssssssss.s...ssss.sssssssss.sssss.sxsssssssss..sssssss.sssssssssssss [ 43%]
.sssxsssxssssssssssssssss..ss..s.sssssssxssss.ssss.ssssssss.sssssss.sssss [ 43%]
xsssssxs..sssssssssssssssssssss.ssssssssssssssssssssssxssss.sss.ssssssss [ 43%]
ssxxssssssss..ssssss.ssssss.sssssssssssss.ssss.sssssssssssssssssssssxsss [ 44%]
xssssss..sssssss.sssss.ssssssssss.sssssssss.ssssssssss.sssssssssxsxs..sss [ 44%]
sxxssssssssssss.ssss.ss.sssssssssssssssssss.s.sss.sssssssssssssssssxs.ss [ 44%]
.sssss.ss.ssssssssssss.s.ssssss.ssssxsssssssssssssssssss.ssxsss.ss.sssss [ 44%]
ss.sss.ssssxssssss..ssss.sssssssssssss.ssssss.ssss.ss.ssssssx.ssssssssss [ 44%]
sssss.sssss.sssssssssssssssss.s..ssssss.sssssssssssss.sssssss.sssssss.ss [ 44%]
sssxsxsssss.ssssssssss.sssssssssssssssss.sssssssssss.sssssssssss..sssssss [ 45%]
ssxsss.ssss.sssssssssss.ssssssssssss.ss.sssssssssssssssssssssss.sxsssssss [ 45%]
ssssssssssssssss..s.ssss.sxssssssssssssssssssssssssssssssssssssssx.ssssss [ 45%]
ssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssssssxssssss [ 45%]
ssssssss.ssssssssssssssssssss.s.ssssssssssssssssssssssssssssssxsssssssss.sss [ 45%]
ssssssssssssssssssssssssssssssssssssssssssss.ssssssssssss.ssssssssssssss [ 45%]
ssssssss.sssss.sssssss.ssssssssssssssssssssssssssssssssssssssssss.ssssssss [ 45%]
sss.ssssssssssssss.ssssssssssssssssssssssssssssss.ss.ssssssssssss..sssss [ 46%]
sssssssssssss.ssssssssssssssssssssss.sssssssssss.ssssssssssssssss.ssssss [ 46%]
ssssss.sss.s.sssssssssssssssssssssssssssssss.ssssssssssssssssxssss.ssssss [ 46%]
sssssx.sssssssssssssssssssssssssssssss.sssssssssssssssssxsssss.ssssssssss [ 46%]
sssxsssssssssssss.ssss.sssssssssssss.sssssssssssssssxssssssssssssssssxsss [ 46%]
..sssssssssssssssssssssssssssssssssssssssss.xssssssss.sssssssssxss.sss.ss [ 46%]
sssssssssssssssssssssssssss..ssssssssssssssxssssssssssssssssssssssssssss [ 46%]
ssssssssssss.sssssssxss.ss.sssssssssssssssxssss.ssssssssss..sssssssssssss [ 47%]
sssssssssssssssssssssssssssssssssssssssss...ssssssssssss.ssssssssssssssss [ 47%]
sss.s.sssssssss..sssssssssssssssssssssxssssssssssssssssssssssss.sssss.s.s.s [ 47%]
ssssssssss.ssssssssssssssssssss.sss.ssssss..sssssssssss.sss.ssssssssssss [ 47%]
sssssssssssssssss.ss.ss.sssssss.sssss.sssssssxsss.ssssssss.sssssssssss..s [ 47%]
sssssssssssssssssssxsssssssssssssssssxsxss.ss.sss.ssssssssss.sssssssssss [ 47%]
ssssss.ssxsssss..ssssssssssssssxsxssssssssssssssssssssssss.ss.sssss.ssxss [ 47%]
ssssss.sssssssxxsss.sssssss.s.s.ssssssssssssssssssxssssssssssssssssxxs.ss.ss [ 48%]
s.sssssss..sssssssssssssss.sssxssss.s.sssssssxssssssssssxsssssxsssssssss [ 48%]
s.s.ss.ssssssxsssss.sssssssssssssss.xsssxsss..sssssssssssssssssssssssss.s [ 48%]
sssssssssss.sssss.ssssssssssssx.sssssssssssss.sssssssssss..sssssssssssss [ 48%]
ssssssxsssssssssss.ss.ss.sssssssssssssssssssssssss..ssxs..ssssssssssss.s [ 48%]
sssssssssssssssssss.sssssssss.ssssssxssssssssxsssss.ssssssss.sssssssssss [ 48%]
ssssssxssssssssssssssssssxs.sssssssssssssssssssssssssssss.sxssss.sssssssx [ 48%]
sssssssssssssssssssssssss.ssssssssxssssssssssssssssxssss.ssssss.s.ssssss [ 49%]
sssssssssssssxssssssssssssssx.ss.sssssssss.ssssssssssssssss.sxssssss.ssss [ 49%]
ssssss.ssssssssssxssssssssss.sssssssssssssssssssssssssxsss.ssssxsxssssss [ 49%]
ssssssssssssssssssssssssssss.sxssssxssssssssssssssssss.ss.ssssssssssssss [ 49%]
ss.ssssxssxsssssssssssssssssss.ss.sssssssssssssssssssssxsssssssssssssssss [ 49%]
ssssssxssssssssssssssssssssxssssssssssssssssssssssxsssssss.ssssssssxssss [ 49%]
sssssssssssssssssssssssxssssssssssssssssssssssssssssss.sssssssxsssssssss. [ 50%]
ssssssssxsssssssssssssssssssssssssssss.ssssssssssssssxsssssss.ssssssssssss [ 50%]
sxssssssssssssssssssssssss.sssssssssssssssss.ssssssssssssssssssssss.sssss [ 50%]
sssssssssss.ssssssssssssssssss.sss.ssssssssssssssssssssssssssss.ssssssssxs [ 50%]
sssss..ssssssssssssssssssxsssssssssssssssss.sx.ssssssssss..sssssssssssss [ 50%]
ssss.sssssssss.ssssssssss...sxss.sssssssssssssssssssss.sssxs.sss.ss.sssss [ 50%]
sx.sssssssssssss.sxsssss.ssss.ssssssssssssssssssssssss.sss.ssssss.ssssssss [ 50%]
sssssssss.sssssssxssssssssss.ss.ssssxssssssss.ssxssssssssssss.ss.sssssss [ 51%]
sssssssssssssssxsssssssssssxssssssssssssssssxsssssssssssss.sssss.ss.ssssssssss [ 51%]
sssxssssssssssssssssssssssssss.ssssssssssssssssxssssssssssssssssssssssssxs [ 51%]
sssssssssssssssssssssss.ssssx.s.ss.ssssssssssssssssssssssssssssssssssssxs [ 51%]
ssssssssssssssssssxssssss.sssssss.s.ssssssssssxssssssssssssssssssssssssss [ 51%]
sss.sssssssssssssssssssssssssssssxssss.s.sxss.sxx.ss.sssssssssssssssssss [ 51%]
ss.s.s.s.xssss.s.s.sxsssssssssxssssss.ssss.s.s.sssssssssssssssssssssssss [ 51%]
sssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssss..sssss [ 52%]
xssssssssssssssssx.s.ssssssssssssssssssssxsssx.s.sssssssssssssssssssssss [ 52%]
ssssssssssssssxsssssssssxsss.sx.sxssssssssssssssssssssssssssssssssssssss [ 52%]
ssss.ssxssssssssssssssssssssssssssssssss.sxxxssssssssssxssssssssssssssss [ 52%]
.ssssssssssssssssssssssss.sssssssssssssssssssxxxsssssssssssssssssxssss.s [ 52%]
s.sssssssssssxssssssssssssssssssssssssssssssssss.sssssssssssssssssssssss [ 52%]
sssssxxssssssssssssssssss.ssssssssssssssx.ss.ssssssssssssx..s..ssssssssxx [ 52%]
.sssssxsssssssssxx.xssssssss.ssxsxssssssssssssxssssssx.ssxsssssssssssssss [ 53%]
sssssssxssssxsxsssssssxxsssssssx.ssssxssssssssssssssssssssssssssssssxsss [ 53%]
s..sssssssssssssssssssssssssxssxsss.ssxssxsss.sssssss.ssssssssxxss..ssss [ 53%]
sssssssssssxsssssssssssssssssssssssssssssxssssssxssssxsxssssssxssss.ssss [ 53%]
xssssssssssssssssssssssssxsssssssssxsssssxsssssssssssssssssssssssxssssssx [ 53%]
xsssssxssssssssssssssssssssssxsssssssssssssssssssssssssssssssssssssssssss [ 53%]
ssssssssssssssssxsxssxssssssxssssssssxsssssssssssssssxssssssssssssssssss [ 54%]
sssssssssssssssssssssssssssssssxsssssssssssssssss.ssxssxsssxssssssssssss [ 54%]
ssssssssssssssssssssssssssxs.ssssssssssssssssssxss.ssssssssssssssssssssss [ 54%]
sssssssssssssssssssssssss.xxxssssssssssssssss.sssssssssssssssxssssssssss [ 54%]
ssssssssxxsssssssssssss.sssssssssssxxssssssssssssssxsssssssssssxssssssss [ 54%]
sssssssxxssssssssssssssssssssssssssssssssssssssssssssss..ssssx.ssssssxss [ 54%]
sssssssssxsssssssssssssssssssssssx.ssssssssssssssssssss..sssssssssssssss [ 54%]
sssssssssssssssssssssssssssssssssssss.sssssssssssssssssssssxssssssssxxss [ 55%]
ssssssxxssssssxsssssssssssssssssssssssssssssssssssssssssssssssssssssssxx [ 55%]
sssssssssssss.xsssssssssssssssxxxxssssssssssssssssssssssssssssssssssssss [ 55%]
ssssssssssssssssssssssssssssssssxxsssssssssssssssssssssxssssssssssssxsss [ 55%]
ssssxsssssssssssssssssssssxssssssssssssssssssssssssssssxssssssssssssssss [ 55%]
sssxsxx.ssssssssssssssssxsssssssss.xssssssssssssssssssssssssssssssssssss [ 55%]
sssxsssss.sxssssxssssssx.sss.ssssxsssssssssssssssssssssxxssxxssxsxssssssx [ 55%]
s.sssssssxssssssssssssxssssssssxxsxssssssssssssssssssxssssxsxsssssssssss [ 56%]
sssxsssssssssssssssxssssxssssssssss.sss.x.sssssssssssssssxssssssxsssssss [ 56%]
sssssxsssssssss.ssssssssssssss.sssssssss.ssssssss.sssssxxsssssssssssssss [ 56%]
ssss.xssssssssssx.xsssssxssssssxssssssssssssss.x.xxsssssssssssssxxxsssss [ 56%]
xsxsxssss.sss.x.xxxssxxssssssxsssssxssssssssssxs.sssx.xx..xxs.xxxsssssss [ 56%]
sxxxssss.sssss.xxsssssssssssxxxss..ssssssxssss.xxxxs..x..xxxxxssss.x.sxs [ 56%]
ss.sssssxsssssssssssssssssssxssss.xxxss.ssssssssssssssssssssxx.sssssssss [ 56%]
sssx.xxxssssssssxssxxxss.sxxsxxsssssxsssxssssxsssxsxxsxsssss.xxsssssssss [ 57%]
sss..sxssxsxssxssxssssssssssssssssxssssssssssssssssssssxxs.sxss.ssxx.s.s [ 57%]
ssssssssssssssssssssssxssssssssssssss.xssxxxxxss.sssxsssssxssxssssssssss [ 57%]
ssssssssssssxssssssssssssssssss.xxssssssxxxxssssssssssssssssssxxxxssssxs [ 57%]
sssssssxsssssssxssssssssss.xssxssxxss.sssssxsssssxssssxssss.xxssssssssss [ 57%]
sssssssssssssssssxxsssssssssssssxssxsssss.ssssssxss.ssssssxsssssssssssss [ 57%]
ssssssssssxsxxsssssssssssssssssxxsssssssssssssssssssssssxsssss..ssssssss [ 57%]
sssss.xssss.xxxsssssssssssssssssssssxssxxxssssssssssssssssssssssssssssxs [ 58%]
sssssssssssssssssssss...ssssssssssxx.sxxxs.ssssssssssssss.ssssssssssssss [ 58%]
ssssssssss.ssssssssssxx.s.xxxxxss.sxsssxxsssssssxsssssxsssssssx..sssssssss [ 58%]
sxsssssssxssxsxssssssxssssxsssssssssssssxsssss.xxsss.ssssxxxsss.sxs.ssss [ 58%]
ssssssssxssssssssssssssxsssssxxxsssxx.s.ssssssss.sxsssssxs.ssssssssssssssx [ 58%]
xssssssssssssxsssssssssssssssxsss.sxssxsss.sssxssssxsxsxxsxssssssssxssss [ 58%]
sssssssssssssssssssssssssssssssxxssssssssssssxxssssssxssssssssssssx.ssssxss [ 58%]
sssxsssssssssssssxxsssx.x.xxxxxxxxxsssssssxxxxxxxxxxxsssssssssssxxsxxxxs [ 59%]
sssss.sssssxxxxxssssssss..sssssssssxxs.s.s..x..ssssxsssxs.s.....xxssssss [ 59%]
sxsx.xx.xxx.sssssx.x.xxxxss.sssxxxxxxxssxx.sxxxxxssxsxsxxsssxsxxxx.ssssss [ 59%]
sxsss.sxssssxxsssssss...sssssssssssssssssssssssssx.ssxxsss.sssssssssxsss [ 59%]
xsxsss.xssssssssssssss.ssssssssss.xxsssxssss.xsssssssssssxsssssssxssssss [ 59%]
ssssssxxs.sxssssxssssssssssxxsss.xxxxxxssxxss.xxxssxxssssxxss.x.xsssssss [ 59%]
ssssssssssssssssxxssxss.sxsssssssssssssssxs.x.xsssssssssssssssxsxsssssss [ 59%]
sss..xsssssssssssxxssssss.sssxssssssxx..x.ssssssssxxsssssxxxxxssssssssss [ 60%]
sssssss.ssssssxxxxxssssssssssssssssssssssssssssssssssssss.ssssssssssssss [ 60%]
sssssssxsssssssssssssssssssxxssssxxsssssssssssxssssssssssssxssssssssssss [ 60%]
sssss.ssssssssssssssssssssssxsssssxssssxsssssssssssssssssssssssssssssssx [ 60%]
xssssssssssssssssssssssssssssssssssssssssssss.ssssssxxxsssssssssssssssss [ 60%]
ssssssssssssssssssssssssssssssssxssssxxssssssssssssssssssssssssssxssssss [ 60%]
sssssssssssssssssssssxsssssssssssssssssssssssssssssssssssssssssssssxs.ss [ 60%]
ssssssssssxs.sssssxssssssssssssssxsssssssssssssssssxxssssssss..xxxxxx.xs [ 61%]
sxssssxsxsxsssssxsssxxsssxxs.s..xsssxxsssssss.sssss..sss.s.ssx.sssss.s.x [ 61%]
ssss.xsssssssssssssssssx.xs.sxsssssx..sssssxxxxxxxxx.xx.xxxxxxx.xxxxssss [ 61%]
xssssssssssxsxssxssxsssxsxssssssssssxssssssxxsssssxssxxsssssxssssssssxss [ 61%]
s.sssxxssssssssssssssssssssssssssssssssssssssssssssssxssssssssxxxsssssss [ 61%]
sssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssssssssxssssx [ 61%]
xsssssssssssss..ssssssssssssxsssssssxxxsssssssssssssssssssssssssssssssss [ 62%]
ssssssssssssssssssssssssxxssssssssssssssssssssssssssssssss.sssssssssssss [ 62%]
ssssssxssssxxsssssssssxssssssssssssssssssss..xssssssssssssss..sssssssssx [ 62%]
sss.xxssssss.ssx.xssssssssxsssssssxssssss.xsxsssssssss.sssssssssssssssxx [ 62%]
sssssxsssssssssssssss.xssssssssssssssssssssssssssssssssss.xxxs.ssxsssxxsx [ 62%]
sssxxss.ssssxsxsxsssssxssssssssssssss.xsssssssssssssxsssxsssssssss.sssss [ 62%]
xxssssssssssxssssssssssssxsssxsxsssssssssssssssss.ssxssssxsxssss.sssss.x [ 62%]
ssssssssssssssssssxsssssxssssxxsssssssssssssssssssssxxsssxssssssssssxss.s [ 63%]
ssssssss.xssssssssssssssssssssxsssxsssssssssssssxsxsxsxsssssxssssxsssssssss [ 63%]
xsssxx.xssssssssssssssxssssssxssxssss.ssss.ssss.ssxxxsssxsssxsssssssssss [ 63%]
sxsssssssssssssssssxssss.x..xxsssssssssssssssssssssssssssssssssssssssxxx [ 63%]
xsssss.sssssxsssssssssssssssssssssssxsssssssssssssssss.sssssssxsssssssss [ 63%]
xssssssssxxsssssssssxssssxssss...sssss.ssssssssssssxssssssssxsssssssxxxs [ 63%]
ssssssssssss.sssssxsssssssssssssssxsssssssssssssssssssssssssssssssssssss [ 63%]
ssssssssssssss..sssssssssssssssssssssss.xssssssssssss.xxxsssssssssssssss [ 64%]
ssssxssssssxxssssssssssssssssssxxxsssssssxssssxssssssssssssssssss.sssssx [ 64%]
sssssssssxxsssxxxssssssssssssssssssssssssssxxxxxxsssxssssxsxssssssssssss [ 64%]
ssssssssssssssx.sssssssssssssssssssssssssssssssssxsss.xsssssssssssssssss [ 64%]
sxssssssssssx.ssssssssssssssssssssssssxsssssssssssssssss.xxsssssssssssxs [ 64%]
sssssssxxssssssssssxsssssssssssssssssxssss....xx.sssssssssssssssssssssss [ 64%]
ss.xssss.sssss.xxxsssssssssssssssssssssssxxxsssxssss..xsssssssssssssx.ss [ 64%]
ssssssssssxxsssxxxxxssssssxsssss.sssssssssssssx.xxssxsssssxsxsxxsssxsxsss [ 65%]
.sssssssxxs.ssssssxsssssssxxsssssssssssx.sssssssssssxsxssxssssss.ss.xxsss [ 65%]
sxxsssss.sssxsssssssssssssssssxxsssssssssssssssssssssssss.ssx.sxxsssxsxx [ 65%]
x....xxxxxxxssxxxxxsssssss.xssssssssssssxxxxxxsssxxxs.ssssssssssssxsssss [ 65%]
sssssssssssssssxxssssxsssssssssssssssssxxssssssssss.sss.sssssssss..xssss [ 65%]
ssxsssssssssssssssssxssssxssssss.xsssssssssssssssssssxssssssss..ssss.x.x [ 65%]
.sxx.sxsssssssssssxxs.xsxxs.xxsssssssxxxxxxsx.xssxsssxxxsssxxssssssssxxs [ 65%]
s.sssxssssssssssssssssssssssssssssssxssssss.ssssssssssxsssssssssssssssss [ 66%]
sssxxssssss.xxsssssssxxssssssssxsssssssssssssssssssssssssssxssssss..x.ss [ 66%]
sssssssssssssssssxssssssssssxssss.xssssssssssssss.sxxxx.x..xxsssxsxxssxx [ 66%]
xxsssssssssssssssssssssssssssssss.xsssssssssssssxssss.xxxxssssssssssssss [ 66%]
ssssxxxssssssssssssssssssssssssssssssssssssssssssssssxsssssssssss.xxxx.s [ 66%]
sssssssssssssssssssssssssss.sssssssxsssssssssssssssssssxxssssxsxxsssssss [ 66%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssss.xsssssssssssssxx [ 66%]
ssssssssssssssssssssss.ss.x.xsssssssssssssssssxxssssssssssxssssxssssxxss [ 67%]
ssssssssssssssssssssssssssx.sssssssssxsss.xssssssssssssssx.sssxsssssssss [ 67%]
ssssssssssssssssssssssssssxxxxssssssssssssssssss.sssssssssxxssssssssssss [ 67%]
xxxxssssxxssssssssssx.xxxssss.x.xxxssssssssssssssssssssss.xsssssss.xssss [ 67%]
sssssssxxxxsss..sssssssssssssssxsssssssssssssssx..sssssssssxss.xxxssssss [ 67%]
sssxxxssxsssssssssssss.ssssssxsxssssxs.ss.xsssx.sssssssssss.ssssssx.sssss [ 67%]
sssssxssssssssxssssssssxsssssss.ss.xssssxssxsssssssss.ssxssssssssssssssssx [ 67%]
.sssxsssssssssssssssssxsxsxsxssxssss.sssxsssssssssxsssxxxxxsssssssssssssxss [ 68%]
sssss.sssxxssssssssssssssssssssxxx.ssssssssssssssssssssxxsssxsxsxsssssss [ 68%]
ssssssssxssss.sxxsssssssssssssssssxssssxsss.sssssxxsssssssssxsssxsxsssss [ 68%]
ssssssssssssssssssxx..xxx.ssxsxxssxsssssssssssssssxssss.ssssxxxssxxssssx [ 68%]
s.ssssssssssxssssssssssssssssssssssxssssssxssssssssx.sssssssssssssssxxs. [ 68%]
sssss.xssssxxsssssssssssssssssssxssssxx.ssssssssssssxx.sssssssssssssssss [ 68%]
sssxsssssssssssssssssssssssssssssssssssssssx.s.xxxssssssssssssssssssss.s [ 69%]
sssssssss.xsssssssssssssssssssssx.xxxxsssxssss.sssssssssssssssssssxsssss [ 69%]
sssssssxxxxxxsssssxssssssssssssssssssssx..xssss..x.xxxxssssssssssssssxss [ 69%]
ssssssssssssssxxssssssssssssssss.ssssssssssss.xxxsssssss.xsssssssssssssx [ 69%]
xxxxx.ssssssssssssssssssssssxxxssssssssssssx.sssssssssssssssssssssssssss [ 69%]
sssxxxx.xxsxssssxsssssssssssssssssssssssxsssssssssssssssssssxsssssssssss [ 69%]
ssssssssssss..ssssssssssssssssssssssssssssssx.xxxssxssssss.ssxxsssssssssss [ 69%]
ssxsssssss.ss.ssssssss.ss.s.sxssxssssssssssssssssss.s.ssxsssssssssxsss.. [ 70%]
sssxx..sssxxxssssxxxxsssxxxssssxsssxxxssxssssx.xxxxxxsxssssxsxsssssssssx [ 70%]
sssss.ss.ssssx..xx.ssss..x.xxsssssssssssssssssssssxs.xssssssssssssssx.xx [ 70%]
.sssssssssxxxxsxsssssxsxsxx.sssxsssssssxssxsxssssxssssssssssssssssxsxssss [ 70%]
ssx.sssssssssssssxss.sxxssssssssssssssssssssxsssssxssxxssssssssssssssss. [ 70%]
xssssssssssssssssssxsss.xsxssssxsssxsssssssssxssssssssssssssssssssssxsss [ 70%]
sssssssxsssxssxxssssss.sssssssss.sssssss.xsssssssssxssssssssssxssxssssxx..xx [ 70%]
xxx.xxxxsssssxxxxxxsx.xxxssssssssssxxxxxxxssssssssssssssxxxxsxsxsss.ss.sss [ 71%]
ssssxxxxxssss..s..s.sssssxsxssss.x..xss.ssssxsss.xxxxsxs.ssssxsssx.xxsxx [ 71%]
sx.ssssssssssssssxsssssssssssssssssssssssssssxssssssssxssssxsssssss.sssx [ 71%]
xssssssssssssssssssssssssss.ssssssssssss.sssssssssssssssssssssxsssssssss [ 71%]
sssssssssxssssssssssssssssssssssxxsssssssssxss.ssssssssssss.xssssxsssxss [ 71%]
ssssssssssssssssssssssssssxssssssssssssssssssssssssssssssssssssssssssssx [ 71%]
sssxsssssssssssssssssssssssssssx.sxsssssssssssxxssssssssssssssssxssssxss [ 71%]
sssssssssssxssssxssssssssssssssssssssssssssssssssssssssss.ssssssssssssss [ 72%]
ssssssxxsssssssssssssssssssxsssssssssssssssxxxsssssssssssssssssssssssxss [ 72%]
sssssssssssssssssssssssssssxssssssssssssssssssssssssssssssssssssssssssss [ 72%]
xssssssssssssxxsxssssssssssssxsssxsssssssssssssssssssssssssssssssss.sssssss [ 72%]
ssssssssssssxsssxssssssssssssssssssssssssssssssssssssssssssssssss.ssssss [ 72%]
ssxsssssssssssssssssss.ssssssssssssss.sssssssssxsssssss.sssssssssssssxss [ 72%]
ssssssxss.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssxsssss [ 72%]
sssssssxsssssssssssssssxsxssssssssssssssssssssssssssssssssssssssssssssssx [ 73%]
ssssss.ssssssxsssssssssssssssssssssssxx.ssssssssssssssssssssssssssssssssx [ 73%]
sssssss.sssssssssssssssssssssssssssssssssssssssssssssssxxsssssssssssssss [ 73%]
sssssssssssssssssssssssssssssssssssssxsssssssssssssssssssssssssssssssss. [ 73%]
xxssssssssssssssssssssssssssssssssssssssssssxssssssssssssssssssssxssssss [ 73%]
ssssssssssssxxssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 73%]
ssssssssssssssssssssssssssssssssssssssssssssss.sssssssssssssssssssssssss [ 73%]
sssssssssssssssssssxxsssssssssssssssxsssssssssssxsssssssssssssssssssxssss [ 74%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 74%]
sssssssssssssssssssssssssssxssssssssssssssxxssssssssssssssssssssssssssss [ 74%]
sssssssssssssxsssss..sxsxsssssss.sssssssssssxssssss.ssssssss..sssss.sssss [ 74%]
sssxssssssssssssssssxxsssssssss.ssssssssssssssssss.sssssxxssssssssssssss [ 74%]
ssssssssxssssssssssssssssssssssssssssx.ssxss.sssssssssssss.xssssssssssss [ 74%]
ssssxxxssssssssssssss.sssssssssssssssssssssss.xsssssssx.ssssssssssssssss [ 74%]
sssssxxxs.sssssssssssxsssssssssss.xsssssxxxssssssssssxsssssssssssssssx.s [ 75%]
ssssssxxsssssssssssssssssssssssssssssssssssssssssssssxxssssssxssssssssss [ 75%]
sssssssssxssssssssssssssssssssssssssxsssssssssssssssssssssxsssssssssssssx [ 75%]
sxsxssssxxxxxssssssssssxsxsssxsssssssssssssssssssssssssssssxsssssssssssss [ 75%]
ssssssssssssssssssxssssssssssssssxsssssssssssss.ssssssssxxssssssssssssss [ 75%]
sssxsssssss.sssssxssssxssxsssxss.ssssssssssxssssssssss.sssssssssssssssss [ 75%]
sssssssssssssssssssssssssssssssssssssssssxsssssssssssssx.sssssssssssssss [ 76%]
ssssssss..sxsssssssxssssssssssssssssssssssssssss..xxsssssxssssssssssssss [ 76%]
sssssssssxsssssssssssss.ssssssssssxssssssssssssssssssssssssssssssxssssssx [ 76%]
ssxssssssssssssssssxxsssssssssssssssssssssssssssssssssssssssssssxsssssss [ 76%]
ssssssssssssssxssssssssssssssssssssssssssxsssssssss.sssssssssss.xsssssss [ 76%]
sssssssssssssss.sssss.xssssssxxsssssssssssssssssssssssssssssssssssssssss [ 76%]
sxsssssssxssss.sssssssss..sssssss.xssxsssxssssssssssssssssxsssxsssssssss [ 76%]
s.sssssssssxsssxsssxsssssssssssssssssssssssssssssssssssssssssssxxsssssss [ 77%]
ssssssssssssssssssssssssssssssssssssssssxsssssssssssssssxsssssssssssssss [ 77%]
ssssxxssssssssxsssssssssssssssssxsssssssssssssssssssxsssssssssssssssssss [ 77%]
ssssssssssssssssssxxsssssssssssssssssssxsssssssssssssssssssssxxsssssssss [ 77%]
sssssssssssssssxxsssssssssssssssssssssxssssssssssssssssssssssssssss.ssss [ 77%]
ssssssssssssssssssssssssssssssssxsssssssxsssssxsssssssssssssssssssssssss [ 77%]
sssssssssssssssssssssssssssssssssssssssssssssssx.ssssssssssssssssssxssss [ 77%]
ssssssssssssssxsssssssssssssssssssssssssssssssssssssssssss....xxs.s.ssxs [ 78%]
ss.s.xsxss.ssssssss.ssssss.sssss.sssss.ssssssss.ssssss.sxsssss.xssssx.ss.s [ 78%]
ssssssssssssssssssssssssssssssssss.sssssssssssssssssssssssssssxs...xssss [ 78%]
sssssssssssssssssxssssssssssssssssssssssxsssssssssssssssssssssssssssssss [ 78%]
ssssssxssssxsssssssssssssssssxsssss.....sssssssssxssssssssssssssssssssss [ 78%]
ssss.ssssssssssssss........ssssssssssssssssxsssssss.xxssssssssssssssssss [ 78%]
sssssssssssssssss.ssssss.....ssssss.s..sxsssssssxsssss.xssssssssssssssss [ 78%]
ssssssssssss.xssssxssssssssss..sssssssssssssx.sxss.ssssssssxxxssssxxxss. [ 79%]
.ss.xsxxxssssxssss.s.sssssxxxssss.xx.xsss....xsssssssssssssssssssssssss. [ 79%]
.ssssssxx..sssssssssssssssssssxsssssssss.xxxxx..sssss.xxxssx.s.ss..sssxs [ 79%]
.sxsxsssssssssssssxsssssssssssssss..xx..xxxxx.xxxx..sxxsssssssssxssxssss [ 79%]
sssssssssssssssssxssssxxxssssssssssssssssssssssss..ssssssssssssss.xxssss [ 79%]
ssssssssxxsssxssssssssssssssssssssssssssssssssssxxxxxxxsx.ssxssssx.sxsss [ 79%]
ss.xxsssssxsssssxsssssxssssssssssxxssssxssssssss.ssxssssssssxss.ss.sssss [ 79%]
ssxsssxsssssxs.sxssssxsssssssssssssxxssxssssssssssssssssssssx.sssss.xxxx [ 80%]
sssssssssxxxxxxsssxssssssssssssssssss.sx.xxsssssxxssssssssssssssssssssss [ 80%]
ssssssssssssssssssssssssssssssssxxsssssssssssssxssssssssssxxssssssssssss [ 80%]
ssssssssssssxxssssssssssxxssssx.xxssssssssssssssssssssss.sssssssssssssss [ 80%]
ssssssssssssss.xssssxsssssssxsssxssssxssssssssssssssssssss.sssssssssssss [ 80%]
.xssssxxxssssssxssss.ssssxxssssssssxssssss..xsxss.xssssss..xsssssxssxsss [ 80%]
ssssssssssssssssssssssssssssssssss..ssssssssssssssssssssssssssssssssssss [ 80%]
sssxxx..sssssssssssssssssssxssssssssssssssxssssssssssssxssss.ssssssx.sss [ 81%]
sxssssssssss.xsssxx.sssssssssssssssssssssxxxsssxxsssssssssssssss.sssssss [ 81%]
sssxxxsssssssssssxxxsssssssssssssssxsssssssssxsssssssxxssssxxxssssssssssx [ 81%]
sssssssssssssssssssssssssssssssssx.sssssssssssssssssssssssssssssssssssss [ 81%]
sssssssssssssssssssxsssssssxsss.xsssssssssssssssssssssssssssssssssxxxxss [ 81%]
ssxssss.sssssssssssssssssssssxxxxsssssssssss.xssxssss..sssssssssssssssss [ 81%]
sss.sssssssssssssssssssxssssxssssssssssssxssssssssssssssss.xx.sxxxssssss [ 81%]
sssssssxxssssssssssxssssssssssssssssxxxxxsssssssssssssssss.xxxssssxxsssss [ 82%]
sssssssssssssssssssxsssssssssssssssssssssssssssssssssssssssssssss.xxxsss [ 82%]
s.sssssssss.xssssx.xxxssssssssss.xxx.xssssssxsssssssssssssssxssss.xxxxss [ 82%]
ssssssssssssssssssssssssssssssssx.xsssssssssssssssssssssssssssssssssssss [ 82%]
ssssssssssssssssssssssssssssssssxssss.s.xxsssssssssss.x.s.xxssssssssssss [ 82%]
ssssssssssssssx..sx.xxssssssxxxssssssssxssssssss.xssxssxssssssssssssxssx [ 82%]
ssxsx.xx.ssssssssxssssssxxxsssssxsssxssssssssssxssssxxsssxsssssssxsssssxx [ 82%]
sssxsssssssxsxsssssssssssxxxssssssssssss.ssssxxssssssxssxxssssssssssssss [ 83%]
ssxsxssssssxs.ssssssssssssssssssxsssssssss.xssssss.xssss.x..x..xxssssxxx [ 83%]
..ssssxssxsss.xs.xxs.xxxssxxs...xxxsssxxsssssssssssssssssss.xss.xxxsssss [ 83%]
sssssss.sssxxxsssssss.sssssss.xx.sxssx.xxxsssssssssxxxxsssssssxx..x..xxsss [ 83%]
.ssxsxssssxxx..sssssxsxxsssxsss.s.xxxxxsx..s.sxx.xxxx.xxxxxs.ssxxxxxxxxxxsxxxs [ 83%]
xxsxsssxxxxxxxxxxxssssxsssssxxxxsssxxsssssssxsssxxsssssssx..sssssxssssxx [ 83%]
ssss......ssssxsssx..x....sssxxxxxsx.s.sssxxxsx.sssxxxx.sxxxssxx.xxssxsxxx. [ 84%]
xsxsxsssxxssssssssxsssssxssxsx.x.sssssss.sxssxssxsssssxsssssssxssssssxsxs [ 84%]
sssxs.sssxsx....xssssxxsssxxsssssssssssssssssssssssss.xsssssssssssssssss [ 84%]
ssssssssssssxssss.ssssssssssssxssssxx.sssx..xssssssssssssss.x.sssxsssxsss [ 84%]
xxsss.xsssssssx.ssxssxssxxssxsssssxx.xxsssssss.xssxssssssssxxsssssssssss [ 84%]
sssssssxssssssssssssssssssssssxxxssssssssssss.xxssssssssssxxssssssxxssss [ 84%]
sssssssssxx.xxxsxxsssxsssxssssssssxsxssssxssssssxssssxsssx.ssxssxsssxsxs [ 84%]
sxsss.sssxs.ssxssxssssxssxsssssssssssssssssssssxssssssxsxsssssssssssssxs.ssss [ 85%]
sssssssssss.s.ssssxsssssssss.sssxsssssssssssss.ssxssxsssssss.sxsxssx.sss [ 85%]
sssssxssssxxsssxsssssxsssssssss..x.sxssxx.ssssssssssssss.sssssssssssssss [ 85%]
sssssssxxssssssssxxxxxxsssxssss.ssssssxsssssxsxsssssxx.xssssssssxssssssss [ 85%]
ssxssss.ssssxssssssssxssssxxxs.ssssssssssssssxssssssssssssssxssxsssssssss [ 85%]
sss.ssssssssssssssssssssss.xssssxs.xssssssssssssssssssssssssssssssssssssx [ 85%]
xsssssssssxssssssssssssssssssssssssssssssssxssssssssssssssssssssssssssss [ 85%]
sssssss.xssssssssss.xssssssssssss.xxsssssssssssssssssssxssssssssssssssss [ 86%]
sssssssssxssssssxx.xss.xsxssssxssssssssssssxxxxxssssssxssssssxxsssssssss [ 86%]
sssssssssssssssssxxxssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%]
sssssssssssssssxxsssssssssssssxsssssssssssssssssssssxxssssssssssssssssss [ 86%]
ssssxssss.ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%]
ssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssxssssxsssss [ 86%]
ssssssssssssssxsssssssxsssssssxssssssssssss.ssssssssssssssxsssssssssssss [ 86%]
sssssssssxssssssssssssss.ssssssssssssssssssxsssssssssssssssssxssssssssss [ 87%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 87%]
sssxssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxsssssssss [ 87%]
ssssssssssssssssssssssssssssssxs.sssssssssssssssssssssssssssssssssssssss [ 87%]
ssssssssssssssssssssxxssssssssssssssssssssssssssssssssssssssssxsssssssss [ 87%]
sssssssssssssssssssssxxsssssssssssss.sxss..ssssssssssssssx.sxsxsssssssss [ 87%]
ssxxxxsssssssssxx.xxsssssssssssssssxxsssssssssssssssss..xxs..xssssssx.x. [ 87%]
xx.ssss.sssxssssssssssxxxsssssssssssssssssssssssssssssssss.sssssssssssss [ 88%]
ssssssssssssssssssssssssxsssssssssssssssss.sssssssssssss.sssssssssssssss [ 88%]
sssssssssssssxssssssssssssssssssssssssssssssssssssssss.sssssssssssssssss [ 88%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 88%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssss.sssssssssssssssss [ 88%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 88%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 88%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 89%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 89%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 89%]
ssssssssssxsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 89%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 89%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 89%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 90%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 90%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 90%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 90%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 90%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxssssssssss [ 90%]
sssssssssssssssssssssssssssssssssssssssssxsssssssss.sssssxssssssssssssss [ 90%]
sssssssss.sss.ssssssssssssssxss.ssssxxssssssss.ssxssssssxssssssssssssssx [ 91%]
s.sxxsssssssssssssssssssxsssxsss..ssssssssssss.xx...x.x....x.xsxsss..x.s [ 91%]
sss.xxx..sssssssssssssssssssss.s.xs.xsxssss.sxssssxsx.sxs.sxxs.s.sxs.xss [ 91%]
xxss.sx.ssss.xxxxxx.xxsssssssssssssssss.sxxxxxx.sssssssssssssssssxxs.ssx [ 91%]
sxsxsxssx.ssxs.ssxssxs.xsssxssssss.ssssssxssssss.sssssxsssxsxssxssxssxss [ 91%]
ssxsxssxssxsxsssxssssxsxsss.ssssssssssssssssssssssssssssssssssssssssss.s [ 91%]
sssssssssssxsssssssssssssssssssxssssssssssssssssssssssssssssssssssssssss [ 91%]
sssssssssxssssssssssssssssssssssssssssssxsssxxssssssssssssssssssssssssss [ 92%]
sssssssssssssssssxssxssssssssssssssssxssssssxssssssxsssssssssssssssssssx [ 92%]
sssssssssssssssssssxssssssssxsxxssssssssssssssss.ssxssssssssssssssssssss [ 92%]
sssssxsssssssssssssssssxsssssssssssssssxsssssssssssssssssssssssss.ssssss [ 92%]
sssssssssssssssssssssssxs.sssssssssssxssssssssssssxssxssssssssssssssssxs [ 92%]
ssssssssssxxssssssssssssssssssssxsssssxsssssssssssssssxssssssssssxssssss [ 92%]
ssssssssssssssssxssssssss.sssssssssssssssssssssssssssssssssssssxxsssssss [ 92%]
sssssssssssssssssssss.xssssssssssssssssssssssssssssssssxsssssssssxssssss [ 93%]
ssssssxxxx.xssss.xssss.xxxxxxxx.xxssss.xssss.xx.xxxxx.xxxx.xxxxxxxxxxxxx [ 93%]
xxssss.xxxxxxx.xxssss.xxxxsssss.sss.xssss.x..x.xxxxxssss.xxxxxxxxxx.xsss [ 93%]
xssssssssssssx.xxxxx.xx.xxx.xxx..xssss.xxx.xxxxxxssss.xxxxxxxx.xssss.xss [ 93%]
ss.xxxxxxxxxx.xxxx.xx.xxssss.xssss.xxxxxxx.ssss.xxssss..xxxxxxxssss.ssss [ 93%]
.xxxxxxxs..x.ssss.xxxxsssssssssssssssssssssssssssssss.xx.xx.xxxxx.xsssss [ 93%]
ssssss.ssss.xxx.xx.xxssss.ssss.ssss.ssss.xxxssss.xx.xxssss.xssss.x.ssss. [ 93%]
.xx.ssss..ssss..x.xxxssss.xxx.x.xx.x..xxxxxx.xxxxssss...ssssssssssssssss. [ 94%]
sssssssssss.sxx.xxxxssss..x..xxxxxxssss.x.xxxxx.xx.xxxxssss.xxxxxxxssss. [ 94%]
xxxxxxssss.s.x.x.xx.sss.x.x.xxx.ssss.x.xxxxx.x.x.xxssssssssssssssssssxxx [ 94%]
xx..ssss.x.xxx.xxxxx..xx..xx.xx.xxx.x.xxxxx.x.xssss.xssss...ssssssssssss [ 94%]
ssssssss.ssxs.s.sxsxxx..xxxx.xx.xx..x.ss.xxx.sss..xx.x.xxx.sssssssssssss [ 94%]
sss.s...x.xssss.xxx.x.....sss.sssss.xxxx..ssxssssssssssss.s...xx....xx.x [ 94%]
..x...xssss..xx.x.x..xx.ss.x.x.xx....x..x.xssssx....x.xxssss...xx..x.x.. [ 94%]
xx.x...xx.s.sss..ssss..x.ssss......ssss......xxssss.x...x..............x [ 95%]
...ssss.x.xx.x.....x.....xssss.ssss..x..........sss......x....x....xsss. [ 95%]
.x........x...xxx....xx....x..x.........x.x...ssss....xx..x....x.....sss [ 95%]
.........ssss............x.......x...x.....x.x......x.....xx..........x. [ 95%]
.x.....xx...................x..x..........xx....x....................... [ 95%]
..x.....xssss.........x..xx.....x..............x........x.............x. [ 95%]
.....x.....x.......s..........................ssss...................... [ 95%]
..x.....x..........x.................................x.................. [ 96%]
.s.........................xx....x...................................... [ 96%]
...........sss...x.............x........................................ [ 96%]
...................ss.s................................................. [ 96%]
.....................................x......x........................... [ 96%]
...........x........x.................x................................. [ 96%]
....xx.................................................................. [ 96%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 98%]
........................................................................ [ 98%]
........................................................................ [ 98%]
................................x....................................... [ 98%]
....ss..s..s.s.s..............ssss.ss..................sssssss.sss.ss.ss [ 98%]
ss.sssssssss.sssssssssssss........s.................ssss.x.x..sss....... [ 98%]
..........s.....xx..................x..........................x........ [ 98%]
...............x......s..s..................s..............s.xs...s..... [ 99%]
......ssss.................sss.ssss..s.......x...........s...ss.s.s.ss.s [ 99%]
.sx......sssss.s...s.s...s...ss...........s..........s.x............sx.. [ 99%]
....ss....s....ssss.....x......s....x.ss..s.......ss...s.ssss...ss...... [ 99%]
.sss.sss.sss..s.............s.........................ss.s.ss.s......... [ 99%]
....s.s..........x....s.x.......................s....................... [ 99%]
......s.............s................................................... [ 99%]
.............sssssssssssssss..........................                   [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates
fatal: bad object HEAD


---------- coverage: platform linux, python 3.8.13-final-0 -----------
Coverage XML written to file coverage.xml

= 8861 passed, 37801 skipped, 2917 xfailed, 30840 warnings in 177.16s (0:02:57) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
Tests are successful


<b>Remaining output truncated<b>


@naren-ponder naren-ponder marked this pull request as draft May 26, 2022 22:08
Signed-off-by: Naren Krishna <naren@ponder.io>
Signed-off-by: Naren Krishna <naren@ponder.io>
@naren-ponder naren-ponder marked this pull request as ready for review May 31, 2022 16:04
Signed-off-by: Naren Krishna <naren@ponder.io>
Signed-off-by: Naren Krishna <naren@ponder.io>
@naren-ponder naren-ponder changed the title FEAT-#4501: Add RSS Memory Profiling to Modin Logging FEAT-#4501, #4503: Add RSS Memory Profiling to Modin Logging May 31, 2022
Signed-off-by: Naren Krishna <naren@ponder.io>
@naren-ponder naren-ponder changed the title FEAT-#4501, #4503: Add RSS Memory Profiling to Modin Logging FEAT-#4501: Add RSS Memory Profiling to Modin Logging May 31, 2022
Signed-off-by: Naren Krishna <naren@ponder.io>
Signed-off-by: Naren Krishna <naren@ponder.io>
modin/error_message.py Outdated Show resolved Hide resolved
Copy link
Collaborator

@devin-petersohn devin-petersohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For logging memory specifically, I think we should probably use this: https://docs.python.org/3/library/logging.handlers.html#rotatingfilehandler

Signed-off-by: Naren Krishna <naren@ponder.io>
Signed-off-by: Naren Krishna <naren@ponder.io>
Signed-off-by: Naren Krishna <naren@ponder.io>
Signed-off-by: Naren Krishna <naren@ponder.io>
Copy link
Collaborator

@RehanSD RehanSD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

left a quick question, but looks good to me otherwise! I think instead of writing over the file maybe it would be better to truncate the middle part? So that way users have start and end?

logfile = RotatingFileHandler(
filename=log_filename,
mode="a",
maxBytes=100000000,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have maxBytes set so high?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I set it to 10MB for each file (since it is being stored locally I think this is reasonable), and logging a max of 10GB.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is the 10GB max?

Copy link
Collaborator Author

@naren-ponder naren-ponder Jun 1, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.python.org/3/library/logging.handlers.html#rotatingfilehandler -- because backupCount is set to 100. At maximum you get 100 files of 10MB each. If people are running logs at that level anyhow and need support, they would likely reach out to us somehow.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good to me!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like 100 MB (10^8)? Is that what you meant to put? I think something like int(1e8) would be more readable.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be better to make this configurable instead of hard coded.

I think setting a default max of 10GB of logs is way too high. This is 10GB per Modin job, not total. I prefer to cap it at 100MB per job by default. If more is needed, they can set a configuration.

Copy link
Collaborator Author

@naren-ponder naren-ponder Jun 2, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So 10MB per file, and a max of 10 files, for a total of 100MB per job? Was looking through Google and the max MB per file for logs people recommend for a local filesystem is somewhere in the 10-50MB range.

RehanSD
RehanSD previously approved these changes Jun 1, 2022
Copy link
Collaborator

@RehanSD RehanSD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

logfile = RotatingFileHandler(
filename=log_filename,
mode="a",
maxBytes=100000000,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be better to make this configurable instead of hard coded.

I think setting a default max of 10GB of logs is way too high. This is 10GB per Modin job, not total. I prefer to cap it at 100MB per job by default. If more is needed, they can set a configuration.

Signed-off-by: Naren Krishna <naren@ponder.io>
Copy link
Collaborator

@devin-petersohn devin-petersohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This LGTM, @naren-ponder thanks!

I want to separate the different kinds of logs in a separate PR. Will open an issue for that.

@devin-petersohn devin-petersohn merged commit c1d5dbd into modin-project:master Jun 3, 2022
@naren-ponder naren-ponder deleted the mem_rss branch June 3, 2022 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add RSS Memory to Modin Logging
6 participants