coverband 5.2.2 → 5.2.5.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +1 -1
- data/README.md +14 -9
- data/changes.md +9 -0
- data/diagram.svg +1 -1
- data/lib/coverband/adapters/hash_redis_store.rb +1 -1
- data/lib/coverband/collectors/coverage.rb +7 -1
- data/lib/coverband/integrations/background.rb +2 -0
- data/lib/coverband/utils/configuration_template.rb +52 -0
- data/lib/coverband/utils/tasks.rb +8 -0
- data/lib/coverband/version.rb +1 -1
- data/test/coverband/collectors/coverage_test.rb +20 -0
- data/test/coverband/integrations/resque_worker_test.rb +37 -32
- data/test/test_helper.rb +14 -3
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69f663da4501fa93d690f8c37e52050efe7f0bdc14498ce19ab9c6f31c171189
|
4
|
+
data.tar.gz: d771a178a1bbe9b81e8d6904e798ba99a428db75a08a681fdb177eb826807cd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39f3d345ec6705d97f2db34aa60c819eada4a5ef5312c24afee0e8a86f779a050c05f01d52c0adc47b6e76801fd0c72caaa1198aa97837067ffbd58c90a3afe8
|
7
|
+
data.tar.gz: b6b673708835816c99b6334dc999c7975ff6fdfa2de27deb55f8189a49dd3cd72c48bdf7ad4d12c5e35349d6a91665daad9a8f1ffd0f1590e6872af151a26649
|
data/.github/workflows/main.yml
CHANGED
@@ -17,7 +17,7 @@ jobs:
|
|
17
17
|
# remove until I sort out CI issues for truffle
|
18
18
|
# truffleruby,
|
19
19
|
# truffleruby-head,
|
20
|
-
ruby: [2.3, 2.4, 2.5, 2.6, 2.7, "3.0",
|
20
|
+
ruby: [2.3, 2.4, 2.5, 2.6, 2.7, "3.0", "3.1", jruby]
|
21
21
|
redis-version: [4, 5, 6]
|
22
22
|
runs-on: ${{ matrix.os }}-latest
|
23
23
|
steps:
|
data/README.md
CHANGED
@@ -29,12 +29,10 @@ The primary goal of Coverband is giving deep insight into your production runtim
|
|
29
29
|
- Low performance overhead
|
30
30
|
- Simple setup and configuration
|
31
31
|
- Out of the box support for all standard code execution paths (web, cron, background jobs, rake tasks, etc)
|
32
|
-
- Splits
|
32
|
+
- Splits code loading usage (Rails eager load) and runtime usage metrics
|
33
33
|
- Easy to understand actionable insights from the report
|
34
|
-
- Development mode, offers deep insight of code usage details (number of LOC execution during single request, etc) during development.
|
35
34
|
- Mountable web interface to easily share reports
|
36
35
|
|
37
|
-
|
38
36
|
# Installation
|
39
37
|
|
40
38
|
## Redis
|
@@ -45,7 +43,7 @@ Coverband stores coverage data in Redis. The Redis endpoint is looked for in thi
|
|
45
43
|
2. `ENV['REDIS_URL']`
|
46
44
|
3. `localhost:6379`
|
47
45
|
|
48
|
-
The redis store can also be explicitly defined within the coverband.rb
|
46
|
+
The redis store can also be explicitly defined within the `config/coverband.rb`. See [advanced config](#advanced-config).
|
49
47
|
|
50
48
|
## Gem Installation
|
51
49
|
|
@@ -162,12 +160,12 @@ Take Coverband for a spin on the live Heroku deployed [Coverband Demo](https://c
|
|
162
160
|
If you need to configure coverband, this can be done by creating a `config/coverband.rb` file relative to your project root.
|
163
161
|
|
164
162
|
- See [lib/coverband/configuration.rb](https://github.com/danmayer/coverband/blob/master/lib/coverband/configuration.rb) for all options
|
165
|
-
- By default Coverband will try to
|
163
|
+
- By default Coverband will try to store data to Redis \* Redis endpoint is looked for in this order: `ENV['COVERBAND_REDIS_URL']`, `ENV['REDIS_URL']`, or `localhost`
|
166
164
|
|
167
165
|
Below is an example config file for a Rails 5 app:
|
168
166
|
|
169
167
|
```ruby
|
170
|
-
#config/coverband.rb
|
168
|
+
# config/coverband.rb NOT in the initializers
|
171
169
|
Coverband.configure do |config|
|
172
170
|
config.store = Coverband::Adapters::RedisStore.new(Redis.new(url: ENV['MY_REDIS_URL']))
|
173
171
|
config.logger = Rails.logger
|
@@ -239,7 +237,7 @@ config.after_initialize do
|
|
239
237
|
end
|
240
238
|
```
|
241
239
|
|
242
|
-
or if you know you are manually calling eager load anywhere in your initialization process immediately
|
240
|
+
or if you know you are manually calling eager load anywhere in your initialization process immediately after call those two lines. A user reported an issue after calling `ResqueWeb::Engine.eager_load!` for example.
|
243
241
|
|
244
242
|
```ruby
|
245
243
|
Rails.application.routes.draw do
|
@@ -251,7 +249,7 @@ end
|
|
251
249
|
|
252
250
|
### Avoiding Cache Stampede
|
253
251
|
|
254
|
-
If you have many servers and they all hit Redis at the same time you can see spikes in your Redis CPU, and memory. This is
|
252
|
+
If you have many servers and they all hit Redis at the same time you can see spikes in your Redis CPU, and memory. This is due to a concept called [cache stampede](https://en.wikipedia.org/wiki/Cache_stampede). It is better to spread out the reporting across your servers. A simple way to do this is to add a random wiggle on your background reporting. This configuration option allows a wiggle. The right amount of wiggle depends on the numbers of servers you have and how willing you are to have delays in your coverage reporting. I would recommend at least 1 second per server. Note, the default wiggle is set to 30 seconds.
|
255
253
|
|
256
254
|
Add a wiggle (in seconds) to the background thread to avoid all your servers reporting at the same time:
|
257
255
|
|
@@ -339,6 +337,10 @@ gem 'coverband', require: ['alternative_coverband_patch']
|
|
339
337
|
|
340
338
|
This conflict happens when a ruby method is patched twice, once using module prepend, and once using method aliasing. See this ruby issue for details. The fix is to apply all patches the same way. Coverband by default will apply its patch using prepend, but you can change that to method aliasing by adding require: ['alternative_coverband_patch'] to the gem line as shown above.
|
341
339
|
|
340
|
+
### Redis Sizing Info
|
341
|
+
|
342
|
+
A few folks have asked about what size of Redis is needed to run coverband. I have some of our largest services with hundreds of servers on cache.m3.medium with plenty of room to spare. I run most apps on the smallest AWS Redis instances available and bump up only if needed or if I am forced to be on a shared Redis instance, which I try to avoid. On Heroku, I have used it with most of the 3rd party and also been fine on the smallest Redis instances, if you have hundreds of dynos you would likely need to scale up. Also note there is a tradeoff one can make, `Coverband::Adapters::HashRedisStore` will use LUA on Redis and increase the Redis load, while being nicer to your app servers and avoid potential lost data during race conditions. While the `Coverband::Adapters::RedisStore` uses in app memory and merging and has lower load on Redis.
|
343
|
+
|
342
344
|
# Newer Features
|
343
345
|
|
344
346
|
### Dead Method Scanning (ruby 2.6+)
|
@@ -372,7 +374,7 @@ Outputs:
|
|
372
374
|
|
373
375
|
We will match Heroku & Ruby's support lifetime, supporting the last 3 major Ruby releases. For details see [supported runtimes](https://devcenter.heroku.com/articles/ruby-support#supported-runtimes).
|
374
376
|
|
375
|
-
For Rails, we will follow the policy of the [Rails team maintenance policy](https://guides.rubyonrails.org/maintenance_policy.html). We officially support the last two major release versions, while providing minimal support (major bugs / security fixes) for an additional version. This means at the moment we
|
377
|
+
For Rails, we will follow the policy of the [Rails team maintenance policy](https://guides.rubyonrails.org/maintenance_policy.html). We officially support the last two major release versions, while providing minimal support (major bugs / security fixes) for an additional version. This means at the moment we primarily target Rails 6.x, 5.x, and will try to keep current functionality working for Rails 4.x but may release new features that do not work on that target.
|
376
378
|
|
377
379
|
### JRuby Support
|
378
380
|
|
@@ -416,6 +418,9 @@ If you submit a change please make sure the tests and benchmarks are passing.
|
|
416
418
|
- **Coverage does NOT work when used alongside Scout APM Auto Instrumentation**
|
417
419
|
- In an environment that uses Scout's `AUTO_INSTRUMENT=true` (usually production or staging) it stops reporting any coverage, it will show one or two files that have been loaded at the start but everything else will show up as having 0% coverage
|
418
420
|
- Bug tracked here: https://github.com/scoutapp/scout_apm_ruby/issues/343
|
421
|
+
- **Coverband, [Elastic APM](https://github.com/elastic/apm-agent-ruby) and resque**
|
422
|
+
- In an environment that uses the Elastic APM ruby agent, resque jobs will fail with `Transactions may not be nested. Already inside #<ElasticAPM::Transaction>` if the `elastic-apm` gem is loaded _before_ the `coverband` gem
|
423
|
+
- Put `coverage` ahead of `elastic-apm` in your Gemfile
|
419
424
|
|
420
425
|
### Debugging Redis Store
|
421
426
|
|
data/changes.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
### Coverband 5.2.4
|
2
|
+
|
3
|
+
- add install task with example configuration file
|
4
|
+
|
5
|
+
### Coverband 5.2.3
|
6
|
+
|
7
|
+
- fix for thread error bubbling up
|
8
|
+
- additional documentation around Redis
|
9
|
+
|
1
10
|
### Coverband 5.2.2
|
2
11
|
|
3
12
|
- fix for deprecated redis pipeline usage by @casperisfine
|
data/diagram.svg
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<svg width="1000" height="1000" style="background:white;font-family:sans-serif;overflow:visible" xmlns="http://www.w3.org/2000/svg"><defs><filter id="glow" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="4" result="coloredBlur"></feGaussianBlur><feMerge><feMergeNode in="coloredBlur"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter></defs><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(320.05278510421743, 687.1888317552961)"><circle r="41.02686253409208" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(661.4739464012941, 565.1525940520748)"><circle r="305.54789617372023" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(288.9446148006314, 583.3162075384366)"><circle r="51.42920953120628" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(198.2891527109141, 337.6275401336221)"><circle r="194.45210382627974" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(208.9051878769345, 675.5662315227997)"><circle r="54.70966844243992" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(467.64934284998765, 199.47656012282764)"><circle r="92.26988960977079" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(310.0907236198107, 685.7179209401585)"><circle style="transition:all 0.5s ease-out" r="13.300857858126326" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(346.0165211619199, 685.8796262787218)"><circle style="transition:all 0.5s ease-out" r="12.030139489563343" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(328.9466511941986, 706.7487925555989)"><circle style="transition:all 0.5s ease-out" r="11.745253805637438" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(329.0361970229883, 668.172254099714)"><circle style="transition:all 0.5s ease-out" r="9.317172191675139" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(309.0652831396369, 660.2975753298866)"><circle style="transition:all 0.5s ease-out" r="8.977510190902327" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(305.76575793424087, 710.3540983830818)"><circle style="transition:all 0.5s ease-out" r="8.512070147472894" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(345.7050368701448, 666.4051770222653)"><circle style="transition:all 0.5s ease-out" r="4.2450706027757965" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(344.8177894115119, 702.5388439484115)"><circle style="transition:all 0.5s ease-out" r="1.474755216145815" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(701.4589559060596, 607.5340388830822)"><circle style="transition:all 0.5s ease-out" r="16.535306787267473" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(778.9298100490219, 569.2335053185501)"><circle r="61.70085052094055" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(718.0456378253056, 692.6266513313196)"><circle r="61.86091466301157" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(725.3817284274363, 442.7646657023312)"><circle r="61.70085052094055" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(816.2816934235759, 664.2575884385592)"><circle r="26.456961150656365" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(830.9692025954813, 472.5160324290972)"><circle r="34.07610790959535" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(896.8080909819834, 618.6200035425279)"><circle r="52.16697062669988" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(853.6188969858955, 526.5250361983335)"><circle style="transition:all 0.5s ease-out" r="15.963598759946366" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(526.8807534485549, 561.719237677234)"><circle r="155.77913280010404" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(917.5981483673086, 513.3714567913652)"><circle r="41.24176725834204" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(856.6229812677991, 559.4311708179415)"><circle style="transition:all 0.5s ease-out" r="8.027407260857935" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(705.555188346689, 541.9461512306874)"><circle style="transition:all 0.5s ease-out" r="8.00803140045019" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(852.1784454708078, 573.0237013406306)"><circle style="transition:all 0.5s ease-out" r="3.0733195084119522" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(722.5775458286824, 615.7579426587129)"><circle style="transition:all 0.5s ease-out" r="2.7981512845408214" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(792.1026519276675, 497.7579577346186)"><circle style="transition:all 0.5s ease-out" r="2.3910014110919815" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(727.9336461969131, 517.7589681729329)"><circle style="transition:all 0.5s ease-out" r="2.1731650651509984" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(271.1396693216024, 583.3162075384366)"><circle r="29.925996370392696" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(320.7197450119164, 583.3162075384366)"><circle style="transition:all 0.5s ease-out" r="15.955811638136696" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(304.6299002742906, 600.9779224884129)"><circle style="transition:all 0.5s ease-out" r="4.237745195069611" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(24.117532119668937, 337.6275401336221)"><circle style="transition:all 0.5s ease-out" r="16.582215553249995" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(216.7205021050564, 337.6275401336221)"><circle r="172.32248675035288" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(39.17354638943601, 354.48962108036903)"><circle style="transition:all 0.5s ease-out" r="2.3251209273423563" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(182.6683295338562, 668.3488685356715)"><circle style="transition:all 0.5s ease-out" r="23.653949316723175" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(235.13534743737245, 665.6001264513915)"><circle style="transition:all 0.5s ease-out" r="23.650008414913128" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(211.18144765753073, 709.4144661535273)"><circle r="17.784982059135757" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(213.48828755384392, 636.3461683305135)"><circle style="transition:all 0.5s ease-out" r="9.557506149465466" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(192.75869544367958, 635.002635476575)"><circle style="transition:all 0.5s ease-out" r="8.050596737942403" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(209.61361862937596, 680.2208448651129)"><circle style="transition:all 0.5s ease-out" r="2.5905847014322756" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(184.74057946790586, 697.7082855802952)"><circle style="transition:all 0.5s ease-out" r="2.5785633618507924" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(236.2339591647381, 694.9941686669931)"><circle style="transition:all 0.5s ease-out" r="2.566485715304795" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(208.2316977038055, 653.8023004737119)"><circle style="transition:all 0.5s ease-out" r="2.554350963091773" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(228.76507676577899, 636.9108082622723)"><circle style="transition:all 0.5s ease-out" r="2.52990685089718" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(201.49718492805303, 645.8087959105818)"><circle style="transition:all 0.5s ease-out" r="2.517595795595629" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#f1e05a;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(414.8418509669641, 225.19320090936452)"><circle style="transition:all 0.5s ease-out" r="30.533386374394464" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#563d7c;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(512.4318482502173, 234.71421656370595)"><circle style="transition:all 0.5s ease-out" r="30.5303334936815" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(458.9628747214288, 257.86837572657817)"><circle style="transition:all 0.5s ease-out" r="21.234134102173222" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#f1e05a;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(463.6593599535501, 209.83257143600954)"><circle style="transition:all 0.5s ease-out" r="17.642553155266707" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(429.9627533835309, 163.46197958394123)"><circle r="24.55478034885625" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(500.17174024487065, 164.9106101942246)"><circle r="31.80926143464667" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(450.85879892399527, 229.49086777812806)"><circle style="transition:all 0.5s ease-out" r="2.614461562870325" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(469.032733943703, 232.6562568601669)"><circle style="transition:all 0.5s ease-out" r="2.5785633618507924" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(476.6874352505937, 229.13179678538074)"><circle style="transition:all 0.5s ease-out" r="2.566485715304795" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(431.98797175038516, 257.16288249464213)"><circle style="transition:all 0.5s ease-out" r="2.554350963091773" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(476.3914251030035, 237.43516445115353)"><circle style="transition:all 0.5s ease-out" r="2.542158287446353" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(320.03944016452, 805.0443907534664)"><circle style="transition:all 0.5s ease-out" r="30.540508575948227" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(392.2290511816614, 805.9750295872786)"><circle style="transition:all 0.5s ease-out" r="29.42021809981024" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(363.38169699184044, 856.9765091535775)"><circle style="transition:all 0.5s ease-out" r="14.434531595282959" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(357.263098231521, 775.4358179440483)"><circle style="transition:all 0.5s ease-out" r="13.86135420494426" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(331.8068318458336, 760.2481149009906)"><circle style="transition:all 0.5s ease-out" r="12.60031409017641" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(336.3397238208624, 844.7045378998322)"><circle style="transition:all 0.5s ease-out" r="9.162491679417919" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#cb171e;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(390.1119915470945, 764.4523454336505)"><circle style="transition:all 0.5s ease-out" r="8.942834471553088" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(360.28062366687135, 831.3291153919491)"><circle style="transition:all 0.5s ease-out" r="8.226211261017479" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#199f4b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(315.5445420442267, 846.7435167784812)"><circle style="transition:all 0.5s ease-out" r="8.192148128113256" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(356.5283885763992, 815.7953286548743)"><circle style="transition:all 0.5s ease-out" r="4.555742324587926" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000000;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(382.05789575081985, 841.3362903818669)"><circle style="transition:all 0.5s ease-out" r="4.193524035109541" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(377.484585641176, 773.305254957797)"><circle style="transition:all 0.5s ease-out" r="3.2787550334410565" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(345.38836790298717, 831.9574379572792)"><circle style="transition:all 0.5s ease-out" r="3.269265129214724" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(315.1361084990308, 768.712405045698)"><circle style="transition:all 0.5s ease-out" r="2.896361746936783" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(373.60407320598824, 835.870787308166)"><circle style="transition:all 0.5s ease-out" r="2.6732208447497956" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(354.6418590511309, 794.8470755960159)"><circle style="transition:all 0.5s ease-out" r="2.4927912912174177" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(361.27273195318276, 793.1885971981334)"><circle style="transition:all 0.5s ease-out" r="1.1423404783730522" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(753.6284732642852, 534.7881657437051)"><circle style="transition:all 0.5s ease-out" r="15.961652335655774" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(798.7317718860941, 547.2678567171027)"><circle r="19.786918209702588" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(766.3555344615226, 588.107765599529)"><circle r="36.02156244339023" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(769.1055004236889, 544.6021575854606)"><circle style="transition:all 0.5s ease-out" r="3.755768778421076" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(778.7433829856935, 547.5178541655988)"><circle style="transition:all 0.5s ease-out" r="3.1134953248155464" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(696.5208130542511, 655.5183149794069)"><circle style="transition:all 0.5s ease-out" r="15.961652335655774" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(737.9982702072493, 671.328242523252)"><circle r="20.304322249925235" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(703.9853995158896, 710.6408395745278)"><circle r="36.00919089040944" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(711.9738787431851, 668.122859481966)"><circle style="transition:all 0.5s ease-out" r="3.755768778421076" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(719.57053858369, 672.8550139898922)"><circle style="transition:all 0.5s ease-out" r="1.9942330329739342" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(700.0803916426989, 408.31932612748676)"><circle style="transition:all 0.5s ease-out" r="15.961652335655774" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(745.1836902645081, 420.7990171008834)"><circle r="19.786918209702595" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(712.8074528399374, 461.63892598331023)"><circle r="36.02156244339023" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(715.5574188021029, 418.1333179692419)"><circle style="transition:all 0.5s ease-out" r="3.755768778421076" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(725.1953013641074, 421.0490145493799)"><circle style="transition:all 0.5s ease-out" r="3.1134953248155464" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(804.0223575254626, 664.2575884385592)"><circle style="transition:all 0.5s ease-out" r="10.499357570758374" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(828.6301848352266, 664.2575884385592)"><circle style="transition:all 0.5s ease-out" r="10.410202057221097" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(814.8648219157174, 471.02449609299117)"><circle style="transition:all 0.5s ease-out" r="14.204536368652036" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(842.9270885445717, 471.02449609299117)"><circle style="transition:all 0.5s ease-out" r="10.159462578417608" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(832.6450726820685, 492.69556936596496)"><circle style="transition:all 0.5s ease-out" r="10.128834041493167" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(832.449848001576, 450.96347568748786)"><circle style="transition:all 0.5s ease-out" r="8.774483708073364" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(885.098197856105, 618.6213395719097)"><circle r="37.45707742460506" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(936.8125307280841, 618.6760075077726)"><circle style="transition:all 0.5s ease-out" r="9.162491679417919" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(931.4378656061928, 631.9218354440653)"><circle style="transition:all 0.5s ease-out" r="3.063193222206166" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(930.9559764118504, 606.7433682152455)"><circle style="transition:all 0.5s ease-out" r="2.2296203123526483" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(928.2054930062459, 600.0978976606784)"><circle style="transition:all 0.5s ease-out" r="1.762669626102606" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(927.3479817181728, 638.6331963432075)"><circle style="transition:all 0.5s ease-out" r="1.5961652335655774" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(924.8900130095353, 595.0044358817061)"><circle style="transition:all 0.5s ease-out" r="1.1148101561763242" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(509.62820754349076, 561.930187930815)"><circle style="transition:all 0.5s ease-out" r="16.914282359268313" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(594.5127540100636, 565.7196336313368)"><circle r="57.3298183886401" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(458.2963003732875, 592.8644556371767)"><circle r="35.25148967950471" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(415.0924981165682, 523.0994375193583)"><circle r="34.507821847685385" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(524.8169246807847, 653.6190967130316)"><circle r="42.49852976602614" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(504.4637948926772, 488.24845556417125)"><circle r="49.11320280459719" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(583.2020796277612, 639.7102806788039)"><circle style="transition:all 0.5s ease-out" r="9.750606588823683" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(527.855381830473, 545.1838989285333)"><circle style="transition:all 0.5s ease-out" r="4.670242987223319" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(907.7711447817325, 513.2482117903616)"><circle style="transition:all 0.5s ease-out" r="26.692662018186713" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(946.6342651462187, 511.4284560655352)"><circle style="transition:all 0.5s ease-out" r="9.00170371747843" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(941.1281264746449, 530.5147279752091)"><circle style="transition:all 0.5s ease-out" r="7.6630528892753205" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(934.0637532161218, 491.52721208568994)"><circle style="transition:all 0.5s ease-out" r="4.200926554613529" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(937.2215421578056, 500.565552597475)"><circle style="transition:all 0.5s ease-out" r="2.1731650651509984" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000000;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(929.9987409321275, 534.7854170386676)"><circle style="transition:all 0.5s ease-out" r="1.0576017756615632" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(259.5622597722147, 583.3162075384366)"><circle style="transition:all 0.5s ease-out" r="14.650319139220384" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(287.6391223017151, 583.3162075384366)"><circle style="transition:all 0.5s ease-out" r="9.728275708495415" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(277.2782590946742, 598.6632134324577)"><circle style="transition:all 0.5s ease-out" r="5.090423864271462" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(276.79113545900447, 571.9138349082589)"><circle style="transition:all 0.5s ease-out" r="2.3117195423644463" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(145.27991664551217, 347.74021295101136)"><circle style="transition:all 0.5s ease-out" r="23.17491635100855" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(238.20552794277444, 347.74021295101136)"><circle r="66.05242726446909" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(150.4249394418804, 415.6521575419848)"><circle r="41.23337569314359" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(157.3106356803777, 295.9351778297362)"><circle r="26.310458794794698" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(227.19270633783123, 461.38401066064205)"><circle r="44.42546279944096" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(207.24321899657255, 225.62866371555498)"><circle r="56.225076660684095" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(127.79065180541863, 318.5345022648296)"><circle style="transition:all 0.5s ease-out" r="7.168671400362757" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(248.71269337555373, 274.53883456798)"><circle style="transition:all 0.5s ease-out" r="4.200926554613529" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(208.03836016016285, 708.6402130884395)"><circle style="transition:all 0.5s ease-out" r="2.566485715304795" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(216.08969562958833, 710.7408958462271)"><circle style="transition:all 0.5s ease-out" r="2.554350963091773" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(210.26180694127223, 716.6458004364747)"><circle style="transition:all 0.5s ease-out" r="2.542158287446353" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(213.88151762567836, 702.7505942610769)"><circle style="transition:all 0.5s ease-out" r="2.52990685089718" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(200.6653739490094, 704.8633248756566)"><circle style="transition:all 0.5s ease-out" r="2.517595795595629" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(202.21332749895342, 714.5130203947449)"><circle style="transition:all 0.5s ease-out" r="2.505224242614839" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(221.8377580162277, 704.8268899008674)"><circle style="transition:all 0.5s ease-out" r="2.4927912912174177" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(425.62801162059003, 162.4309699588159)"><circle style="transition:all 0.5s ease-out" r="2.638122330779551" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(434.08942328945795, 162.66030370635704)"><circle style="transition:all 0.5s ease-out" r="2.626318592239341" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(429.6748010811701, 169.8545429194235)"><circle style="transition:all 0.5s ease-out" r="2.614461562870325" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(430.0688411764744, 155.25229373571705)"><circle style="transition:all 0.5s ease-out" r="2.6025505143052747" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(421.68033938804496, 154.97748800506895)"><circle style="transition:all 0.5s ease-out" r="2.5905847014322756" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(421.28397911343416, 169.639990715497)"><circle style="transition:all 0.5s ease-out" r="2.5785633618507924" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(438.4346842774501, 155.47921513498704)"><circle style="transition:all 0.5s ease-out" r="2.566485715304795" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(438.2998544162875, 169.90633141284525)"><circle style="transition:all 0.5s ease-out" r="2.554350963091773" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(417.256881952504, 162.03916104753114)"><circle style="transition:all 0.5s ease-out" r="2.542158287446353" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(412.99097326900045, 169.12640908533558)"><circle style="transition:all 0.5s ease-out" r="2.52990685089718" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(442.4330114739164, 162.73429656096613)"><circle style="transition:all 0.5s ease-out" r="2.517595795595629" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(446.56186259410987, 169.84536946214908)"><circle style="transition:all 0.5s ease-out" r="2.505224242614839" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(434.48129447051156, 148.2277845460431)"><circle style="transition:all 0.5s ease-out" r="2.4927912912174177" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(495.7122278282152, 164.87292647764485)"><circle style="transition:all 0.5s ease-out" r="23.65132212181124" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(525.5917244827082, 164.87292647764485)"><circle style="transition:all 0.5s ease-out" r="2.52990685089718" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(524.2907210946759, 173.50887716953054)"><circle style="transition:all 0.5s ease-out" r="2.505224242614839" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(524.2819324081546, 156.25087975873555)"><circle style="transition:all 0.5s ease-out" r="2.4927912912174177" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(794.3795613919326, 547.5370290912864)"><circle style="transition:all 0.5s ease-out" r="4.480094552759926" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(806.1585992150003, 548.637750905736)"><circle style="transition:all 0.5s ease-out" r="4.148831561746903" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#cb171e;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(799.7400087876413, 556.9624313914727)"><circle style="transition:all 0.5s ease-out" r="3.162997559076949" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(801.3814383334847, 539.3490262704985)"><circle style="transition:all 0.5s ease-out" r="3.093472639157631" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(788.3765278727969, 538.8554419538648)"><circle style="transition:all 0.5s ease-out" r="2.874827160141511" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(788.3749688639425, 555.7946860962957)"><circle style="transition:all 0.5s ease-out" r="2.52990685089718" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(810.0042020226454, 539.7464647224883)"><circle style="transition:all 0.5s ease-out" r="2.338445511655355" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(749.1795641922929, 588.107765599529)"><circle r="9.23009620152057" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(780.3933786493631, 588.107765599529)"><circle r="12.368222282909727" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(729.9363711721548, 672.0268545769922)"><circle style="transition:all 0.5s ease-out" r="7.059486351073043" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(749.1688674216498, 671.1030731119871)"><circle style="transition:all 0.5s ease-out" r="6.131455858969782" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(740.7355166425065, 681.9242224155433)"><circle style="transition:all 0.5s ease-out" r="4.389011973880357" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(739.743874556321, 661.4775400221446)"><circle style="transition:all 0.5s ease-out" r="4.141335924980193" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(730.5622912970716, 659.7889380495906)"><circle style="transition:all 0.5s ease-out" r="1.9942330329739342" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(686.8218007996408, 710.6408395745278)"><circle r="9.23009620152057" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(718.0232437037301, 710.6408395745278)"><circle r="12.355850729928937" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(740.8314797703466, 421.0681894750669)"><circle style="transition:all 0.5s ease-out" r="4.480094552759926" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(752.6105175934144, 422.16891128951653)"><circle style="transition:all 0.5s ease-out" r="4.148831561746903" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#cb171e;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(746.1919271660554, 430.4935917752532)"><circle style="transition:all 0.5s ease-out" r="3.162997559076949" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(747.8333567118988, 412.88018665427904)"><circle style="transition:all 0.5s ease-out" r="3.093472639157631" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(734.828446251211, 412.38660233764534)"><circle style="transition:all 0.5s ease-out" r="2.874827160141511" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(734.8268872423567, 429.32584648007634)"><circle style="transition:all 0.5s ease-out" r="2.52990685089718" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(756.4561204010595, 413.2776251062688)"><circle style="transition:all 0.5s ease-out" r="2.338445511655355" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(695.6314825707077, 461.63892598331023)"><circle r="9.23009620152057" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(726.8452970277779, 461.63892598331023)"><circle r="12.368222282909727" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(867.2951997514213, 618.6213395719097)"><circle style="transition:all 0.5s ease-out" r="15.955811638136696" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(902.903143335134, 618.6213395719097)"><circle style="transition:all 0.5s ease-out" r="15.953864263791472" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(580.5994512459434, 566.9865630746375)"><circle style="transition:all 0.5s ease-out" r="16.954646253514127" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(615.7539671784529, 566.1179339099)"><circle style="transition:all 0.5s ease-out" r="15.010661056932387" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(600.7794043900725, 595.6144539060078)"><circle style="transition:all 0.5s ease-out" r="14.869244084331903" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(599.3053764414972, 539.0604522887568)"><circle style="transition:all 0.5s ease-out" r="13.45414677043166" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(569.5679975821047, 535.394717839547)"><circle style="transition:all 0.5s ease-out" r="13.30786384115527" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(568.7326483618918, 596.2236049326299)"><circle style="transition:all 0.5s ease-out" r="11.398899775636952" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(626.9579768047995, 539.1512315872092)"><circle style="transition:all 0.5s ease-out" r="10.990920057725338" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(628.7400040035728, 591.3896333585903)"><circle style="transition:all 0.5s ease-out" r="10.202188052632996" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(552.770224630623, 555.7304454440331)"><circle style="transition:all 0.5s ease-out" r="9.864652648815204" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(553.3693629841375, 578.0132419562747)"><circle style="transition:all 0.5s ease-out" r="9.223327777504446" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(639.5508499668365, 557.087653995564)"><circle style="transition:all 0.5s ease-out" r="7.241977014465438" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(639.3281951072534, 574.2617042459568)"><circle style="transition:all 0.5s ease-out" r="6.730536486287027" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(443.33408405519566, 589.4442020417193)"><circle style="transition:all 0.5s ease-out" r="16.205060811225696" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(476.38319416071744, 589.4442020417193)"><circle style="transition:all 0.5s ease-out" r="13.145781612511485" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(462.5506079944669, 613.2715397588119)"><circle style="transition:all 0.5s ease-out" r="10.70740189672338" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(462.21252140944733, 570.1994470018951)"><circle style="transition:all 0.5s ease-out" r="7.055083802250041" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(405.77414002802794, 526.4107977640444)"><circle style="transition:all 0.5s ease-out" r="10.371329990766196" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(436.673589994387, 522.0097725983281)"><circle style="transition:all 0.5s ease-out" r="9.899237991287483" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(423.814201888801, 539.9560711454075)"><circle style="transition:all 0.5s ease-out" r="8.987886819514484" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(419.3877374719484, 508.87101478356414)"><circle style="transition:all 0.5s ease-out" r="8.624481480424532" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(399.9360167588252, 505.778480686308)"><circle style="transition:all 0.5s ease-out" r="7.871064982773736" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(408.9134423217849, 542.6307206117442)"><circle style="transition:all 0.5s ease-out" r="2.94951043229163" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(506.6273442271014, 643.7733612180987)"><circle style="transition:all 0.5s ease-out" r="18.116951311611338" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(544.8874300945921, 643.7733612180987)"><circle style="transition:all 0.5s ease-out" r="16.4448668740948" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(527.3912806527327, 675.8638544320072)"><circle style="transition:all 0.5s ease-out" r="16.407036442404415" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(486.1776624599119, 488.01540619630083)"><circle style="transition:all 0.5s ease-out" r="19.062927699946265" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(534.4811731142831, 485.75894235884704)"><circle style="transition:all 0.5s ease-out" r="15.992766697222738" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(513.7560650943647, 512.2183387710296)"><circle style="transition:all 0.5s ease-out" r="14.42591910549755" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(511.40120246933145, 467.56047105028256)"><circle style="transition:all 0.5s ease-out" r="10.208277094089818" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(491.03766945076694, 456.22174173816245)"><circle style="transition:all 0.5s ease-out" r="9.899237991287483" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(489.19620128267985, 517.6530789492638)"><circle style="transition:all 0.5s ease-out" r="7.528064612150518" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(218.95409142724824, 348.9392897027776)"><circle style="transition:all 0.5s ease-out" r="23.241853456362474" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(263.95276073417017, 348.9392897027776)"><circle style="transition:all 0.5s ease-out" r="18.05854816877487" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(245.8131435606099, 379.17197543513987)"><circle style="transition:all 0.5s ease-out" r="13.500254331109119" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(245.69492261317197, 319.9842405240539)"><circle style="transition:all 0.5s ease-out" r="12.473923635973478" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(219.22618214959127, 309.8185499641062)"><circle style="transition:all 0.5s ease-out" r="12.181564805355562" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(217.8728285253944, 387.95382573554934)"><circle style="transition:all 0.5s ease-out" r="12.08939527335062" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(273.56346182691794, 316.694398695185)"><circle style="transition:all 0.5s ease-out" r="11.889856668215302" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(274.1319671162762, 380.2213447785757)"><circle style="transition:all 0.5s ease-out" r="11.139737347834595" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(194.9820339474174, 320.19228862430117)"><circle style="transition:all 0.5s ease-out" r="10.490476116268226" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(194.73013113210112, 376.73583550228545)"><circle style="transition:all 0.5s ease-out" r="9.930574688823723" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(239.84104421122646, 294.9493633934994)"><circle style="transition:all 0.5s ease-out" r="9.537981090973918" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(236.51457440602854, 402.32045497549655)"><circle style="transition:all 0.5s ease-out" r="7.7477300774072155" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(286.95219044203645, 333.53391339437314)"><circle style="transition:all 0.5s ease-out" r="5.925297256835906" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(285.97093005802856, 364.23642473194764)"><circle style="transition:all 0.5s ease-out" r="5.053669420594331" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(132.80409811208816, 415.6521575419848)"><circle style="transition:all 0.5s ease-out" r="19.914266681566744" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(172.18833996433946, 415.6521575419848)"><circle style="transition:all 0.5s ease-out" r="15.771707488899962" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(155.74760214322026, 439.347472961222)"><circle style="transition:all 0.5s ease-out" r="9.370375605960287" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(155.33704516837884, 397.27030547670574)"><circle style="transition:all 0.5s ease-out" r="5.467118117230394" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(149.12136237968227, 295.895891670394)"><circle style="transition:all 0.5s ease-out" r="10.208277094089818" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(169.95858425802882, 295.895891670394)"><circle style="transition:all 0.5s ease-out" r="6.93067710247213" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(162.4838137986038, 311.24960913983057)"><circle style="transition:all 0.5s ease-out" r="6.447613228187565" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(162.14537464719356, 283.17945764915515)"><circle style="transition:all 0.5s ease-out" r="4.295998721142864" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(151.32527367557722, 278.21639583658936)"><circle style="transition:all 0.5s ease-out" r="3.9097903674059977" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(205.41330357629866, 457.9537174383662)"><circle style="transition:all 0.5s ease-out" r="18.67930868290157" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(243.0845151199693, 457.9537174383662)"><circle style="transition:all 0.5s ease-out" r="15.2936351789845" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(227.4135209815617, 487.5834818755933)"><circle style="transition:all 0.5s ease-out" r="14.526793383141952" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(227.1336278778726, 432.06939523903725)"><circle style="transition:all 0.5s ease-out" r="11.412520164980855" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(195.50840027831418, 225.23315263484199)"><circle style="transition:all 0.5s ease-out" r="19.734029182601166" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(237.19603257234263, 225.23315263484199)"><circle style="transition:all 0.5s ease-out" r="18.25533542964267" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(217.76924362959193, 259.2920120883943)"><circle style="transition:all 0.5s ease-out" r="17.256166537258668" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(217.68517018719788, 193.984488601247)"><circle style="transition:all 0.5s ease-out" r="14.88595110542705" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(187.1197164374895, 190.63973116662135)"><circle style="transition:all 0.5s ease-out" r="12.163697649874706" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(190.08089890299595, 255.21111708683787)"><circle style="transition:all 0.5s ease-out" r="7.033029719522905" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(242.9034026246607, 197.03363573223936)"><circle style="transition:all 0.5s ease-out" r="6.817681643589638" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(745.7367738640658, 586.2814767208089)"><circle style="transition:all 0.5s ease-out" r="1.634632564607362" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#2b2b2b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(752.6658393440233, 586.2814767208089)"><circle style="transition:all 0.5s ease-out" r="1.5961652335655774" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ece2a9;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(749.2391092758277, 592.1434800884824)"><circle style="transition:all 0.5s ease-out" r="1.4956747747304506" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(776.0266490128752, 588.107765599529)"><circle style="transition:all 0.5s ease-out" r="4.303224964637198" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(786.5457374548926, 588.107765599529)"><circle style="transition:all 0.5s ease-out" r="2.517595795595629" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(683.3790104714136, 708.8145506958077)"><circle style="transition:all 0.5s ease-out" r="1.634632564607362" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#2b2b2b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(690.3080759513712, 708.8145506958077)"><circle style="transition:all 0.5s ease-out" r="1.5961652335655774" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ece2a9;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(686.8813458831755, 714.6765540634813)"><circle style="transition:all 0.5s ease-out" r="1.4956747747304506" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(713.668885620223, 710.6408395745278)"><circle style="transition:all 0.5s ease-out" r="4.303224964637198" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(724.1756025092596, 710.6408395745278)"><circle style="transition:all 0.5s ease-out" r="2.505224242614839" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(692.1886922424806, 459.8126371045901)"><circle style="transition:all 0.5s ease-out" r="1.634632564607362" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#2b2b2b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(699.1177577224381, 459.8126371045901)"><circle style="transition:all 0.5s ease-out" r="1.5961652335655774" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ece2a9;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(695.6910276542425, 465.67464047226366)"><circle style="transition:all 0.5s ease-out" r="1.4956747747304506" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(722.47856739129, 461.63892598331023)"><circle style="transition:all 0.5s ease-out" r="4.303224964637198" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(732.9976558333074, 461.63892598331023)"><circle style="transition:all 0.5s ease-out" r="2.517595795595629" stroke-width="0" stroke="#374151"></circle></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(320.05278510421743, 687.1888317552961)"><path fill="none" d="M 0 46.02686253409208 A 46.02686253409208 46.02686253409208 0 0 1 0 -46.02686253409208 A 46.02686253409208 46.02686253409208 0 0 1 0 46.02686253409208" id="CircleText--1" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--1" startOffset="50%">views</textPath></text><path fill="none" d="M 0 46.02686253409208 A 46.02686253409208 46.02686253409208 0 0 1 0 -46.02686253409208 A 46.02686253409208 46.02686253409208 0 0 1 0 46.02686253409208" id="CircleText--2" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--2" startOffset="50%">views</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(661.4739464012941, 565.1525940520748)"><path fill="none" d="M 0 310.54789617372023 A 310.54789617372023 310.54789617372023 0 0 1 0 -310.54789617372023 A 310.54789617372023 310.54789617372023 0 0 1 0 310.54789617372023" id="CircleText--3" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--3" startOffset="50%">test</textPath></text><path fill="none" d="M 0 310.54789617372023 A 310.54789617372023 310.54789617372023 0 0 1 0 -310.54789617372023 A 310.54789617372023 310.54789617372023 0 0 1 0 310.54789617372023" id="CircleText--4" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--4" startOffset="50%">test</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(288.9446148006314, 583.3162075384366)"><path fill="none" d="M 0 56.42920953120628 A 56.42920953120628 56.42920953120628 0 0 1 0 -56.42920953120628 A 56.42920953120628 56.42920953120628 0 0 1 0 56.42920953120628" id="CircleText--5" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--5" startOffset="50%">lua</textPath></text><path fill="none" d="M 0 56.42920953120628 A 56.42920953120628 56.42920953120628 0 0 1 0 -56.42920953120628 A 56.42920953120628 56.42920953120628 0 0 1 0 56.42920953120628" id="CircleText--6" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--6" startOffset="50%">lua</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(198.2891527109141, 337.6275401336221)"><path fill="none" d="M 0 199.45210382627974 A 199.45210382627974 199.45210382627974 0 0 1 0 -199.45210382627974 A 199.45210382627974 199.45210382627974 0 0 1 0 199.45210382627974" id="CircleText--7" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--7" startOffset="50%">lib</textPath></text><path fill="none" d="M 0 199.45210382627974 A 199.45210382627974 199.45210382627974 0 0 1 0 -199.45210382627974 A 199.45210382627974 199.45210382627974 0 0 1 0 199.45210382627974" id="CircleText--8" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--8" startOffset="50%">lib</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(208.9051878769345, 675.5662315227997)"><path fill="none" d="M 0 59.70966844243992 A 59.70966844243992 59.70966844243992 0 0 1 0 -59.70966844243992 A 59.70966844243992 59.70966844243992 0 0 1 0 59.70966844243992" id="CircleText--9" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--9" startOffset="50%">docs</textPath></text><path fill="none" d="M 0 59.70966844243992 A 59.70966844243992 59.70966844243992 0 0 1 0 -59.70966844243992 A 59.70966844243992 59.70966844243992 0 0 1 0 59.70966844243992" id="CircleText--10" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--10" startOffset="50%">docs</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(467.64934284998765, 199.47656012282764)"><path fill="none" d="M 0 97.26988960977079 A 97.26988960977079 97.26988960977079 0 0 1 0 -97.26988960977079 A 97.26988960977079 97.26988960977079 0 0 1 0 97.26988960977079" id="CircleText--11" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--11" startOffset="50%">public</textPath></text><path fill="none" d="M 0 97.26988960977079 A 97.26988960977079 97.26988960977079 0 0 1 0 -97.26988960977079 A 97.26988960977079 97.26988960977079 0 0 1 0 97.26988960977079" id="CircleText--12" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--12" startOffset="50%">public</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(778.9298100490219, 569.2335053185501)"><path fill="none" d="M 0 62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 -62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 62.70085052094055" id="CircleText--13" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--13" startOffset="50%">rails6_dummy</textPath></text><path fill="none" d="M 0 62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 -62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 62.70085052094055" id="CircleText--14" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--14" startOffset="50%">rails6_dummy</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(718.0456378253056, 692.6266513313196)"><path fill="none" d="M 0 62.86091466301157 A 62.86091466301157 62.86091466301157 0 0 1 0 -62.86091466301157 A 62.86091466301157 62.86091466301157 0 0 1 0 62.86091466301157" id="CircleText--15" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--15" startOffset="50%">rails5_dummy</textPath></text><path fill="none" d="M 0 62.86091466301157 A 62.86091466301157 62.86091466301157 0 0 1 0 -62.86091466301157 A 62.86091466301157 62.86091466301157 0 0 1 0 62.86091466301157" id="CircleText--16" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--16" startOffset="50%">rails5_dummy</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(725.3817284274363, 442.7646657023312)"><path fill="none" d="M 0 62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 -62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 62.70085052094055" id="CircleText--17" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--17" startOffset="50%">rails4_dummy</textPath></text><path fill="none" d="M 0 62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 -62.70085052094055 A 62.70085052094055 62.70085052094055 0 0 1 0 62.70085052094055" id="CircleText--18" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--18" startOffset="50%">rails4_dummy</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(816.2816934235759, 664.2575884385592)"><path fill="none" d="M 0 27.45696115065637 A 27.45696115065637 27.45696115065637 0 0 1 0 -27.45696115065637 A 27.45696115065637 27.45696115065637 0 0 1 0 27.45696115065637" id="CircleText--19" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--19" startOffset="50%">integration</textPath></text><path fill="none" d="M 0 27.45696115065637 A 27.45696115065637 27.45696115065637 0 0 1 0 -27.45696115065637 A 27.45696115065637 27.45696115065637 0 0 1 0 27.45696115065637" id="CircleText--20" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--20" startOffset="50%">integration</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(830.9692025954813, 472.5160324290972)"><path fill="none" d="M 0 35.07610790959535 A 35.07610790959535 35.07610790959535 0 0 1 0 -35.07610790959535 A 35.07610790959535 35.07610790959535 0 0 1 0 35.07610790959535" id="CircleText--21" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--21" startOffset="50%">forked</textPath></text><path fill="none" d="M 0 35.07610790959535 A 35.07610790959535 35.07610790959535 0 0 1 0 -35.07610790959535 A 35.07610790959535 35.07610790959535 0 0 1 0 35.07610790959535" id="CircleText--22" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--22" startOffset="50%">forked</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(896.8080909819834, 618.6200035425279)"><path fill="none" d="M 0 53.16697062669988 A 53.16697062669988 53.16697062669988 0 0 1 0 -53.16697062669988 A 53.16697062669988 53.16697062669988 0 0 1 0 53.16697062669988" id="CircleText--23" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--23" startOffset="50%">fixtures</textPath></text><path fill="none" d="M 0 53.16697062669988 A 53.16697062669988 53.16697062669988 0 0 1 0 -53.16697062669988 A 53.16697062669988 53.16697062669988 0 0 1 0 53.16697062669988" id="CircleText--24" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--24" startOffset="50%">fixtures</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(526.8807534485549, 561.719237677234)"><path fill="none" d="M 0 156.77913280010404 A 156.77913280010404 156.77913280010404 0 0 1 0 -156.77913280010404 A 156.77913280010404 156.77913280010404 0 0 1 0 156.77913280010404" id="CircleText--25" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--25" startOffset="50%">coverband</textPath></text><path fill="none" d="M 0 156.77913280010404 A 156.77913280010404 156.77913280010404 0 0 1 0 -156.77913280010404 A 156.77913280010404 156.77913280010404 0 0 1 0 156.77913280010404" id="CircleText--26" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--26" startOffset="50%">coverband</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(917.5981483673086, 513.3714567913652)"><path fill="none" d="M 0 42.24176725834204 A 42.24176725834204 42.24176725834204 0 0 1 0 -42.24176725834204 A 42.24176725834204 42.24176725834204 0 0 1 0 42.24176725834204" id="CircleText--27" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--27" startOffset="50%">benchmarks</textPath></text><path fill="none" d="M 0 42.24176725834204 A 42.24176725834204 42.24176725834204 0 0 1 0 -42.24176725834204 A 42.24176725834204 42.24176725834204 0 0 1 0 42.24176725834204" id="CircleText--28" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--28" startOffset="50%">benchmarks</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(271.1396693216024, 583.3162075384366)"><path fill="none" d="M 0 30.925996370392696 A 30.925996370392696 30.925996370392696 0 0 1 0 -30.925996370392696 A 30.925996370392696 30.925996370392696 0 0 1 0 30.925996370392696" id="CircleText--29" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--29" startOffset="50%">test</textPath></text><path fill="none" d="M 0 30.925996370392696 A 30.925996370392696 30.925996370392696 0 0 1 0 -30.925996370392696 A 30.925996370392696 30.925996370392696 0 0 1 0 30.925996370392696" id="CircleText--30" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--30" startOffset="50%">test</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(216.7205021050564, 337.6275401336221)"><path fill="none" d="M 0 173.32248675035288 A 173.32248675035288 173.32248675035288 0 0 1 0 -173.32248675035288 A 173.32248675035288 173.32248675035288 0 0 1 0 173.32248675035288" id="CircleText--31" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--31" startOffset="50%">coverband</textPath></text><path fill="none" d="M 0 173.32248675035288 A 173.32248675035288 173.32248675035288 0 0 1 0 -173.32248675035288 A 173.32248675035288 173.32248675035288 0 0 1 0 173.32248675035288" id="CircleText--32" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--32" startOffset="50%">coverband</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(429.9627533835309, 163.46197958394123)"><path fill="none" d="M 0 25.554780348856255 A 25.554780348856255 25.554780348856255 0 0 1 0 -25.554780348856255 A 25.554780348856255 25.554780348856255 0 0 1 0 25.554780348856255" id="CircleText--33" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--33" startOffset="50%">images</textPath></text><path fill="none" d="M 0 25.554780348856255 A 25.554780348856255 25.554780348856255 0 0 1 0 -25.554780348856255 A 25.554780348856255 25.554780348856255 0 0 1 0 25.554780348856255" id="CircleText--34" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--34" startOffset="50%">images</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(500.17174024487065, 164.9106101942246)"><path fill="none" d="M 0 32.80926143464667 A 32.80926143464667 32.80926143464667 0 0 1 0 -32.80926143464667 A 32.80926143464667 32.80926143464667 0 0 1 0 32.80926143464667" id="CircleText--35" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--35" startOffset="50%">colorbox</textPath></text><path fill="none" d="M 0 32.80926143464667 A 32.80926143464667 32.80926143464667 0 0 1 0 -32.80926143464667 A 32.80926143464667 32.80926143464667 0 0 1 0 32.80926143464667" id="CircleText--36" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--36" startOffset="50%">colorbox</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(798.7317718860941, 547.2678567171027)"><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--37" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--37" startOffset="50%">config</textPath></text><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--38" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--38" startOffset="50%">config</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(766.3555344615226, 588.107765599529)"><path fill="none" d="M 0 33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 -33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 33.02156244339023" id="CircleText--39" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--39" startOffset="50%">app</textPath></text><path fill="none" d="M 0 33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 -33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 33.02156244339023" id="CircleText--40" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--40" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(737.9982702072493, 671.328242523252)"><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--41" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--41" startOffset="50%">config</textPath></text><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--42" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--42" startOffset="50%">config</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(703.9853995158896, 710.6408395745278)"><path fill="none" d="M 0 33.00919089040944 A 33.00919089040944 33.00919089040944 0 0 1 0 -33.00919089040944 A 33.00919089040944 33.00919089040944 0 0 1 0 33.00919089040944" id="CircleText--43" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--43" startOffset="50%">app</textPath></text><path fill="none" d="M 0 33.00919089040944 A 33.00919089040944 33.00919089040944 0 0 1 0 -33.00919089040944 A 33.00919089040944 33.00919089040944 0 0 1 0 33.00919089040944" id="CircleText--44" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--44" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(745.1836902645081, 420.7990171008834)"><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--45" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--45" startOffset="50%">config</textPath></text><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--46" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--46" startOffset="50%">config</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(712.8074528399374, 461.63892598331023)"><path fill="none" d="M 0 33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 -33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 33.02156244339023" id="CircleText--47" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--47" startOffset="50%">app</textPath></text><path fill="none" d="M 0 33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 -33.02156244339023 A 33.02156244339023 33.02156244339023 0 0 1 0 33.02156244339023" id="CircleText--48" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--48" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(885.098197856105, 618.6213395719097)"><path fill="none" d="M 0 34.45707742460506 A 34.45707742460506 34.45707742460506 0 0 1 0 -34.45707742460506 A 34.45707742460506 34.45707742460506 0 0 1 0 34.45707742460506" id="CircleText--49" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--49" startOffset="50%">app</textPath></text><path fill="none" d="M 0 34.45707742460506 A 34.45707742460506 34.45707742460506 0 0 1 0 -34.45707742460506 A 34.45707742460506 34.45707742460506 0 0 1 0 34.45707742460506" id="CircleText--50" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--50" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(594.5127540100636, 565.7196336313368)"><path fill="none" d="M 0 54.32981838864009 A 54.32981838864009 54.32981838864009 0 0 1 0 -54.32981838864009 A 54.32981838864009 54.32981838864009 0 0 1 0 54.32981838864009" id="CircleText--51" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--51" startOffset="50%">utils</textPath></text><path fill="none" d="M 0 54.32981838864009 A 54.32981838864009 54.32981838864009 0 0 1 0 -54.32981838864009 A 54.32981838864009 54.32981838864009 0 0 1 0 54.32981838864009" id="CircleText--52" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--52" startOffset="50%">utils</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(458.2963003732875, 592.8644556371767)"><path fill="none" d="M 0 32.25148967950471 A 32.25148967950471 32.25148967950471 0 0 1 0 -32.25148967950471 A 32.25148967950471 32.25148967950471 0 0 1 0 32.25148967950471" id="CircleText--53" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--53" startOffset="50%">reporters</textPath></text><path fill="none" d="M 0 32.25148967950471 A 32.25148967950471 32.25148967950471 0 0 1 0 -32.25148967950471 A 32.25148967950471 32.25148967950471 0 0 1 0 32.25148967950471" id="CircleText--54" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--54" startOffset="50%">reporters</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(415.0924981165682, 523.0994375193583)"><path fill="none" d="M 0 31.507821847685385 A 31.507821847685385 31.507821847685385 0 0 1 0 -31.507821847685385 A 31.507821847685385 31.507821847685385 0 0 1 0 31.507821847685385" id="CircleText--55" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--55" startOffset="50%">integrations</textPath></text><path fill="none" d="M 0 31.507821847685385 A 31.507821847685385 31.507821847685385 0 0 1 0 -31.507821847685385 A 31.507821847685385 31.507821847685385 0 0 1 0 31.507821847685385" id="CircleText--56" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--56" startOffset="50%">integrations</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(524.8169246807847, 653.6190967130316)"><path fill="none" d="M 0 39.49852976602614 A 39.49852976602614 39.49852976602614 0 0 1 0 -39.49852976602614 A 39.49852976602614 39.49852976602614 0 0 1 0 39.49852976602614" id="CircleText--57" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--57" startOffset="50%">collectors</textPath></text><path fill="none" d="M 0 39.49852976602614 A 39.49852976602614 39.49852976602614 0 0 1 0 -39.49852976602614 A 39.49852976602614 39.49852976602614 0 0 1 0 39.49852976602614" id="CircleText--58" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--58" startOffset="50%">collectors</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(504.4637948926772, 488.24845556417125)"><path fill="none" d="M 0 46.11320280459719 A 46.11320280459719 46.11320280459719 0 0 1 0 -46.11320280459719 A 46.11320280459719 46.11320280459719 0 0 1 0 46.11320280459719" id="CircleText--59" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--59" startOffset="50%">adapters</textPath></text><path fill="none" d="M 0 46.11320280459719 A 46.11320280459719 46.11320280459719 0 0 1 0 -46.11320280459719 A 46.11320280459719 46.11320280459719 0 0 1 0 46.11320280459719" id="CircleText--60" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--60" startOffset="50%">adapters</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(238.20552794277444, 347.74021295101136)"><path fill="none" d="M 0 63.05242726446909 A 63.05242726446909 63.05242726446909 0 0 1 0 -63.05242726446909 A 63.05242726446909 63.05242726446909 0 0 1 0 63.05242726446909" id="CircleText--61" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--61" startOffset="50%">utils</textPath></text><path fill="none" d="M 0 63.05242726446909 A 63.05242726446909 63.05242726446909 0 0 1 0 -63.05242726446909 A 63.05242726446909 63.05242726446909 0 0 1 0 63.05242726446909" id="CircleText--62" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--62" startOffset="50%">utils</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(150.4249394418804, 415.6521575419848)"><path fill="none" d="M 0 38.23337569314359 A 38.23337569314359 38.23337569314359 0 0 1 0 -38.23337569314359 A 38.23337569314359 38.23337569314359 0 0 1 0 38.23337569314359" id="CircleText--63" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--63" startOffset="50%">reporters</textPath></text><path fill="none" d="M 0 38.23337569314359 A 38.23337569314359 38.23337569314359 0 0 1 0 -38.23337569314359 A 38.23337569314359 38.23337569314359 0 0 1 0 38.23337569314359" id="CircleText--64" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--64" startOffset="50%">reporters</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(157.3106356803777, 295.9351778297362)"><path fill="none" d="M 0 23.310458794794698 A 23.310458794794698 23.310458794794698 0 0 1 0 -23.310458794794698 A 23.310458794794698 23.310458794794698 0 0 1 0 23.310458794794698" id="CircleText--65" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--65" startOffset="50%">integrations</textPath></text><path fill="none" d="M 0 23.310458794794698 A 23.310458794794698 23.310458794794698 0 0 1 0 -23.310458794794698 A 23.310458794794698 23.310458794794698 0 0 1 0 23.310458794794698" id="CircleText--66" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--66" startOffset="50%">integrations</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(227.19270633783123, 461.38401066064205)"><path fill="none" d="M 0 41.42546279944096 A 41.42546279944096 41.42546279944096 0 0 1 0 -41.42546279944096 A 41.42546279944096 41.42546279944096 0 0 1 0 41.42546279944096" id="CircleText--67" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--67" startOffset="50%">collectors</textPath></text><path fill="none" d="M 0 41.42546279944096 A 41.42546279944096 41.42546279944096 0 0 1 0 -41.42546279944096 A 41.42546279944096 41.42546279944096 0 0 1 0 41.42546279944096" id="CircleText--68" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--68" startOffset="50%">collectors</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(207.24321899657255, 225.62866371555498)"><path fill="none" d="M 0 53.225076660684095 A 53.225076660684095 53.225076660684095 0 0 1 0 -53.225076660684095 A 53.225076660684095 53.225076660684095 0 0 1 0 53.225076660684095" id="CircleText--69" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--69" startOffset="50%">adapters</textPath></text><path fill="none" d="M 0 53.225076660684095 A 53.225076660684095 53.225076660684095 0 0 1 0 -53.225076660684095 A 53.225076660684095 53.225076660684095 0 0 1 0 53.225076660684095" id="CircleText--70" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--70" startOffset="50%">adapters</textPath></text></g><g style="fill:#CED6E0;transition:transform 0s ease-out" transform="translate(182.6683295338562, 668.3488685356715)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">coverban...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">coverban...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">coverban...</text></g><g style="fill:#CED6E0;transition:transform 0s ease-out" transform="translate(235.13534743737245, 665.6001264513915)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">coverban...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">coverban...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">coverban...</text></g><g style="fill:#f1e05a;transition:transform 0s ease-out" transform="translate(414.8418509669641, 225.19320090936452)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">dependenci...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">dependenci...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">dependenci...</text></g><g style="fill:#563d7c;transition:transform 0s ease-out" transform="translate(512.4318482502173, 234.71421656370595)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">applicatio...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">applicatio...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">applicatio...</text></g><g style="fill:#083fa1;transition:transform 0s ease-out" transform="translate(320.03944016452, 805.0443907534664)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">README.md</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">README.md</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">README.md</text></g><g style="fill:#083fa1;transition:transform 0s ease-out" transform="translate(392.2290511816614, 805.9750295872786)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">changes.md</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">changes.md</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">changes.md</text></g><g style="fill:#701516;transition:transform 0s ease-out" transform="translate(907.7711447817325, 513.2482117903616)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">benchmark...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">benchmark...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">benchmark...</text></g><g style="fill:#701516;transition:transform 0s ease-out" transform="translate(145.27991664551217, 347.74021295101136)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">configur...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">configur...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">configur...</text></g><g style="fill:#CED6E0;transition:transform 0s ease-out" transform="translate(495.7122278282152, 164.87292647764485)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">loading.gif</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">loading.gif</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">loading.gif</text></g><g style="fill:#701516;transition:transform 0s ease-out" transform="translate(218.95409142724824, 348.9392897027776)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">source_f...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">source_f...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">source_f...</text></g><g transform="translate(940, 740)"><g transform="translate(0, 0)"><circle r="5" fill="#563d7c"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.css</text></g><g transform="translate(0, 15)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.erb</text></g><g transform="translate(0, 30)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.gemspec</text></g><g transform="translate(0, 45)"><circle r="5" fill="#000000"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.gitignore</text></g><g transform="translate(0, 60)"><circle r="5" fill="#ece2a9"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.haml</text></g><g transform="translate(0, 75)"><circle r="5" fill="#f1e05a"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.js</text></g><g transform="translate(0, 90)"><circle r="5" fill="#000080"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.lua</text></g><g transform="translate(0, 105)"><circle r="5" fill="#083fa1"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.md</text></g><g transform="translate(0, 120)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.rake</text></g><g transform="translate(0, 135)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.rb</text></g><g transform="translate(0, 150)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.ru</text></g><g transform="translate(0, 165)"><circle r="5" fill="#89e051"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.sh</text></g><g transform="translate(0, 180)"><circle r="5" fill="#2b2b2b"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.slim</text></g><g transform="translate(0, 195)"><circle r="5" fill="#ff9900"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.svg</text></g><g transform="translate(0, 210)"><circle r="5" fill="#199f4b"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.txt</text></g><g transform="translate(0, 225)"><circle r="5" fill="#cb171e"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.yml</text></g><g fill="#9CA3AF" style="font-weight:300;font-style:italic;font-size:12px">each dot sized by file size</g></g></svg>
|
1
|
+
<svg width="1000" height="1000" style="background:white;font-family:sans-serif;overflow:visible" xmlns="http://www.w3.org/2000/svg"><defs><filter id="glow" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="4" result="coloredBlur"></feGaussianBlur><feMerge><feMergeNode in="coloredBlur"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter></defs><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(322.0966950424136, 687.1586397018629)"><circle r="40.708589271580074" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(662.3624008060656, 565.766003356731)"><circle r="304.56166046288274" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(291.20463666336934, 583.9531981743552)"><circle r="51.04682980659243" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(199.2450599361703, 338.1048598159357)"><circle r="195.4383395371173" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(211.63237403815083, 675.611846932317)"><circle r="54.339295096693746" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(469.6601656915811, 201.4122508673131)"><circle r="91.56198845297864" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(312.1485638919366, 685.6927858105522)"><circle style="transition:all 0.5s ease-out" r="13.172743425378815" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(347.85842652022075, 685.8623477259151)"><circle style="transition:all 0.5s ease-out" r="11.914264670584116" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(330.8805528301428, 706.510707748561)"><circle style="transition:all 0.5s ease-out" r="11.632123017771342" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(330.9787983501903, 668.3434798608511)"><circle style="transition:all 0.5s ease-out" r="9.227428789942742" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(311.19119382526634, 660.4842834806049)"><circle style="transition:all 0.5s ease-out" r="8.891038428113752" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(307.89919872049063, 710.1288865803488)"><circle style="transition:all 0.5s ease-out" r="8.430081523123809" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(347.5129118738927, 666.5452685546429)"><circle style="transition:all 0.5s ease-out" r="4.204181900855306" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(346.6434934109983, 702.3899180484585)"><circle style="transition:all 0.5s ease-out" r="1.4605503107199207" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(705.1047135257415, 528.1136359453902)"><circle style="transition:all 0.5s ease-out" r="16.716762381779297" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(780.4504916105582, 570.4082481346313)"><circle r="61.495022248911845" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(718.9616616416419, 692.9174704871716)"><circle r="61.66074378060827" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(726.458724246479, 444.2714124857001)"><circle r="61.49502224891186" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(817.0116818726259, 665.2981704133666)"><circle r="26.258620879843303" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(831.6547324570616, 473.697363720168)"><circle r="33.817465692954634" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(897.3701330938491, 620.5381359084525)"><circle r="51.777484755605805" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(854.446613791023, 527.1948585127834)"><circle style="transition:all 0.5s ease-out" r="15.809836692750839" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(527.8671364370132, 562.6345304452636)"><circle r="155.67180662825604" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(918.2414352744368, 516.0680187459228)"><circle r="40.90101910166387" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(858.0065411824668, 561.8829832045078)"><circle style="transition:all 0.5s ease-out" r="7.950086930197477" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(871.3502412019417, 548.2938703300412)"><circle style="transition:all 0.5s ease-out" r="7.930897698907313" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(853.1724778190635, 575.2045521527584)"><circle style="transition:all 0.5s ease-out" r="3.043717163234533" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(720.3171859546719, 611.5046847507405)"><circle style="transition:all 0.5s ease-out" r="2.771199371484954" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(792.9236611748778, 498.9605675747989)"><circle style="transition:all 0.5s ease-out" r="2.367971183060984" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(729.7655079826469, 518.8654421750615)"><circle style="transition:all 0.5s ease-out" r="2.1522330461370203" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(273.55235774452274, 583.9531981743552)"><circle r="29.694242203716808" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(322.7490332091007, 583.9531981743552)"><circle style="transition:all 0.5s ease-out" r="15.802124576832064" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(306.80432426787513, 601.4867641553091)"><circle style="transition:all 0.5s ease-out" r="4.196927051789992" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(23.92952402567954, 338.1048598159357)"><circle style="transition:all 0.5s ease-out" r="16.42249494259753" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(217.51770922078234, 338.1048598159357)"><circle r="173.46538156847623" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(38.83326833131977, 354.8614332022066)"><circle style="transition:all 0.5s ease-out" r="2.3027252629533987" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(184.53342099319616, 668.9191305364109)"><circle style="transition:all 0.5s ease-out" r="23.42611346348166" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(237.93938000092706, 666.2681298720216)"><circle style="transition:all 0.5s ease-out" r="23.422210520606686" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(213.35933810504392, 709.2056194448874)"><circle r="17.701162620073326" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(213.9461582464402, 639.3735504786)"><circle style="transition:all 0.5s ease-out" r="9.465447840754836" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(193.88714880677458, 636.042440427385)"><circle style="transition:all 0.5s ease-out" r="7.973053045245146" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(229.14747387272553, 638.4318669344071)"><circle style="transition:all 0.5s ease-out" r="2.5656320785978317" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(186.87916833463814, 697.9921374833693)"><circle style="transition:all 0.5s ease-out" r="2.5537265290742357" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(238.5831807350697, 695.4140280560672)"><circle style="transition:all 0.5s ease-out" r="2.5417652149372207" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(237.3303424942153, 637.0703050489027)"><circle style="transition:all 0.5s ease-out" r="2.529747345177413" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(211.8078761844154, 678.9931076000385)"><circle style="transition:all 0.5s ease-out" r="2.5055386797187533" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(210.69194900066438, 656.1732320410188)"><circle style="transition:all 0.5s ease-out" r="2.4933462050293196" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#f1e05a;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(417.3665488218823, 227.2369499450756)"><circle style="transition:all 0.5s ease-out" r="30.239287488672876" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#563d7c;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(512.0746166606298, 236.73094316958603)"><circle style="transition:all 0.5s ease-out" r="30.236264013437733" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(459.75734715096024, 261.35799513046)"><circle style="transition:all 0.5s ease-out" r="21.0296060127521" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#f1e05a;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(465.70284027815376, 211.83983671555436)"><circle style="transition:all 0.5s ease-out" r="17.47261932740283" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(432.00093236600975, 165.80734897930535)"><circle r="24.434342788267674" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(501.8417151504147, 167.15619551782666)"><circle r="31.560611306362674" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(460.47251738067564, 234.51844305506023)"><circle style="transition:all 0.5s ease-out" r="2.5892789570835366" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(476.41976385239013, 240.54454792860457)"><circle style="transition:all 0.5s ease-out" r="2.5537265290742357" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(476.4709314404536, 232.24765148194794)"><circle style="transition:all 0.5s ease-out" r="2.5417652149372207" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(452.2298271314118, 235.6208165410965)"><circle style="transition:all 0.5s ease-out" r="2.529747345177413" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(468.7479268395721, 235.17569536998147)"><circle style="transition:all 0.5s ease-out" r="2.5176721099061896" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(323.3010712902609, 804.4628615668756)"><circle style="transition:all 0.5s ease-out" r="30.246341088876132" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(393.506610305658, 805.1501050610594)"><circle style="transition:all 0.5s ease-out" r="29.3981915089263" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(341.8067819838697, 848.512273763481)"><circle style="transition:all 0.5s ease-out" r="14.295497568528372" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(363.49494928980755, 769.8656888904302)"><circle style="transition:all 0.5s ease-out" r="13.727841047370458" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(335.7081566871599, 760.2410930918238)"><circle style="transition:all 0.5s ease-out" r="12.478947325015685" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(358.705919981837, 828.0093265028577)"><circle style="transition:all 0.5s ease-out" r="9.074238167006671" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#cb171e;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(388.5981362938616, 763.9866202327325)"><circle style="transition:all 0.5s ease-out" r="8.856696706778921" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(382.2799708502877, 844.3180654403636)"><circle style="transition:all 0.5s ease-out" r="8.146976041709985" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#199f4b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(316.3830117469142, 845.4421530672809)"><circle style="transition:all 0.5s ease-out" r="8.113241006361287" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(404.1882621630398, 769.5959950230335)"><circle style="transition:all 0.5s ease-out" r="4.511861219332614" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000000;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(368.5900990433569, 851.6148454187664)"><circle style="transition:all 0.5s ease-out" r="4.153131831937257" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(358.94145373298676, 795.838986377491)"><circle style="transition:all 0.5s ease-out" r="3.2471739244849376" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(366.94206144773005, 841.1529484621448)"><circle style="transition:all 0.5s ease-out" r="3.237775427422695" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(372.6848885236254, 833.8293511904241)"><circle style="transition:all 0.5s ease-out" r="2.8684638664994178" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(355.1656044582381, 787.5651993868224)"><circle style="transition:all 0.5s ease-out" r="2.6474722670424784" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#083fa1;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(345.0378049289483, 775.8629808513759)"><circle style="transition:all 0.5s ease-out" r="2.468780618699995" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(364.5205058269014, 787.9200675449345)"><circle style="transition:all 0.5s ease-out" r="1.1313374059432642" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(755.4065020190761, 535.8396464640649)"><circle style="transition:all 0.5s ease-out" r="15.807909016502405" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(800.2867833241633, 548.5570051406821)"><circle r="19.68406616376903" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(767.7932633644596, 589.0802033289426)"><circle r="35.93737747707881" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(770.7820044635176, 545.6879236131132)"><circle style="transition:all 0.5s ease-out" r="3.719593052636272" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(780.3431907429589, 548.6282800372788)"><circle style="transition:all 0.5s ease-out" r="3.083506004453247" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(697.632937593538, 655.7495948712638)"><circle style="transition:all 0.5s ease-out" r="15.807909016502405" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(738.954156095436, 671.7127487702887)"><circle r="20.185155667138353" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(704.8573504168653, 710.7493734208578)"><circle r="35.92512508742638" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(712.980069670259, 668.3419058964632)"><circle style="transition:all 0.5s ease-out" r="3.719593052636272" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(720.5252764098553, 673.0519028904106)"><circle style="transition:all 0.5s ease-out" r="1.9750244949599964" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(701.4147346549972, 409.7028108151336)"><circle style="transition:all 0.5s ease-out" r="15.807909016502405" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(746.2950159600845, 422.42016949175115)"><circle r="19.68406616376904" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(713.8014960003803, 462.94336768001136)"><circle r="35.93737747707881" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(716.7902370994387, 419.55108796418193)"><circle style="transition:all 0.5s ease-out" r="3.719593052636272" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(726.35142337888, 422.49144438834765)"><circle style="transition:all 0.5s ease-out" r="3.083506004453247" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(804.8515969856171, 665.2981704133666)"><circle style="transition:all 0.5s ease-out" r="10.398227308805446" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(829.2600635234459, 665.2981704133666)"><circle style="transition:all 0.5s ease-out" r="10.309930544994312" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(815.6734024913944, 472.2203411211659)"><circle style="transition:all 0.5s ease-out" r="14.067717665774211" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(843.5030350407909, 472.2203411211659)"><circle style="transition:all 0.5s ease-out" r="10.061606199593268" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(833.3016212288851, 493.7156180578121)"><circle style="transition:all 0.5s ease-out" r="10.031272678048722" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(833.1085386208558, 452.31955050944805)"><circle style="transition:all 0.5s ease-out" r="8.689967505065805" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(885.7454398488884, 620.5517295933882)"><circle r="37.15278356255559" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(937.0733557438193, 620.4945368029804)"><circle style="transition:all 0.5s ease-out" r="9.074238167006671" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(929.9298748177214, 639.0189932102489)"><circle style="transition:all 0.5s ease-out" r="3.033688413851328" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(931.2620773237162, 608.6546927958431)"><circle style="transition:all 0.5s ease-out" r="2.208144513978871" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(928.5127875214196, 602.0503680245943)"><circle style="transition:all 0.5s ease-out" r="1.7456915167446871" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(930.8927444113151, 631.2640613345396)"><circle style="transition:all 0.5s ease-out" r="1.5807909016502404" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(925.2020747911647, 596.986888693824)"><circle style="transition:all 0.5s ease-out" r="1.1040722569894357" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(511.11385606241345, 561.932192601535)"><circle style="transition:all 0.5s ease-out" r="16.751363266913305" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(595.4131053020263, 565.7824737772714)"><circle r="56.870944360893674" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(460.3172900868969, 592.8988543916855)"><circle r="34.970433455498224" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(416.7174991789197, 523.3844656002349)"><circle r="34.795560280890825" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(526.5159332501916, 654.5808660426848)"><circle r="43.171811720138464" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(506.06965448913, 488.806164752801)"><circle r="48.71726439287624" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(585.1744569835133, 639.3709874365509)"><circle style="transition:all 0.5s ease-out" r="9.656688328408016" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(529.2384577117699, 545.3564215833569)"><circle style="transition:all 0.5s ease-out" r="4.62525900667987" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(908.4918282886603, 515.945846897006)"><circle style="transition:all 0.5s ease-out" r="26.435557154014983" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(947.0116007701158, 514.1455509479564)"><circle style="transition:all 0.5s ease-out" r="8.914998921605335" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#89e051;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(941.546433664027, 533.0765820822725)"><circle style="transition:all 0.5s ease-out" r="7.589242035532239" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(934.5267150045925, 494.38029116949787)"><circle style="transition:all 0.5s ease-out" r="4.160463050056232" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(937.679234099709, 503.3554240509379)"><circle style="transition:all 0.5s ease-out" r="2.1522330461370203" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000000;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(930.4990067617111, 537.326382839429)"><circle style="transition:all 0.5s ease-out" r="1.0474149100468124" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(262.0676308624324, 583.9531981743552)"><circle style="transition:all 0.5s ease-out" r="14.509206637597455" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(289.9117187241347, 583.9531981743552)"><circle style="transition:all 0.5s ease-out" r="9.634572540075807" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(279.63348746446127, 599.186234802049)"><circle style="transition:all 0.5s ease-out" r="5.041392683518179" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#000080;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(279.15170837822035, 572.6243855236862)"><circle style="transition:all 0.5s ease-out" r="2.28945296068976" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(149.21951774316946, 347.529995852413)"><circle style="transition:all 0.5s ease-out" r="22.951694563816343" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(244.75821615500357, 347.529995852413)"><circle r="68.88669516398872" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(153.4706007634546, 414.9407988437249)"><circle r="40.89270836438095" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(160.54501947573968, 295.9273521158903)"><circle r="26.178857336598398" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(228.08340018085718, 463.1727127808747)"><circle r="44.2517203249549" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(207.92398593229618, 224.5423509213732)"><circle r="55.798047157864254" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(131.49440419901734, 318.80731166178134)"><circle style="transition:all 0.5s ease-out" r="7.099622450302019" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(251.37280115671965, 271.0681037719391)"><circle style="transition:all 0.5s ease-out" r="4.160463050056232" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(210.23434137213033, 708.4392835749069)"><circle style="transition:all 0.5s ease-out" r="2.5417652149372207" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(218.2390055099274, 710.5234654990841)"><circle style="transition:all 0.5s ease-out" r="2.529747345177413" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(212.4485698689663, 716.3963611062288)"><circle style="transition:all 0.5s ease-out" r="2.5176721099061896" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(216.03989394977262, 702.5815064613504)"><circle style="transition:all 0.5s ease-out" r="2.5055386797187533" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(202.90818093748095, 704.678401281032)"><circle style="transition:all 0.5s ease-out" r="2.4933462050293196" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ff9900;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(204.43995328829124, 714.2736783096664)"><circle style="transition:all 0.5s ease-out" r="2.481093815376883" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(223.95036669959228, 704.6415833692752)"><circle style="transition:all 0.5s ease-out" r="2.468780618699995" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(427.6922348238109, 164.78175661558936)"><circle style="transition:all 0.5s ease-out" r="2.612711823462546" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(436.1029629651864, 165.00952551078137)"><circle style="transition:all 0.5s ease-out" r="2.601021779037671" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(431.7148857666006, 172.1608279432257)"><circle style="transition:all 0.5s ease-out" r="2.5892789570835366" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(432.10625428164315, 157.64586068969604)"><circle style="transition:all 0.5s ease-out" r="2.577482636248578" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(423.7677341898445, 157.3730239925389)"><circle style="transition:all 0.5s ease-out" r="2.5656320785978317" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(423.37406263891734, 171.9476954709912)"><circle style="transition:all 0.5s ease-out" r="2.5537265290742357" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(440.42233271487254, 157.87122920108578)"><circle style="transition:all 0.5s ease-out" r="2.5417652149372207" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(440.2877015161325, 172.2127700822354)"><circle style="transition:all 0.5s ease-out" r="2.529747345177413" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(419.37091058894936, 164.39304329824088)"><circle style="transition:all 0.5s ease-out" r="2.5176721099061896" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(415.13009168942733, 171.43837159042496)"><circle style="transition:all 0.5s ease-out" r="2.5055386797187533" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(444.3970045371512, 165.08343374529406)"><circle style="transition:all 0.5s ease-out" r="2.4933462050293196" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(448.5009755048916, 172.15300883444502)"><circle style="transition:all 0.5s ease-out" r="2.481093815376883" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(436.4921676239169, 150.66263863415278)"><circle style="transition:all 0.5s ease-out" r="2.468780618699995" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(497.40508001658696, 167.11900012263365)"><circle style="transition:all 0.5s ease-out" r="23.42351157382367" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(527.0344389541584, 167.11900012263365)"><circle style="transition:all 0.5s ease-out" r="2.5055386797187533" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(525.7365553080803, 175.7084381188482)"><circle style="transition:all 0.5s ease-out" r="2.481093815376883" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#CED6E0;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(525.727862338554, 158.54333523987256)"><circle style="transition:all 0.5s ease-out" r="2.468780618699995" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(795.9670851915256, 548.8198789882875)"><circle style="transition:all 0.5s ease-out" r="4.436942090083892" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(807.6626935339673, 549.919723686428)"><circle style="transition:all 0.5s ease-out" r="4.108869838392839" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#cb171e;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(801.2833356573922, 558.185721001232)"><circle style="transition:all 0.5s ease-out" r="3.1325314310733834" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(802.9241895674024, 540.6895743923338)"><circle style="transition:all 0.5s ease-out" r="3.0636761781614332" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(789.9767659013432, 540.2156951742149)"><circle style="transition:all 0.5s ease-out" r="2.84713670176678" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(789.9910218725091, 557.0147849383362)"><circle style="transition:all 0.5s ease-out" r="2.5055386797187533" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(811.494413514156, 541.0905206421934)"><circle style="transition:all 0.5s ease-out" r="2.3159215042994195" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(750.6772767267372, 589.0802033289426)"><circle r="9.200588260881018" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(781.8042529145783, 589.0802033289426)"><circle r="12.305585348484575" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(730.9546329974637, 672.4112115650935)"><circle style="transition:all 0.5s ease-out" r="6.991489076084954" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(750.0646739866621, 671.4896160881406)"><circle style="transition:all 0.5s ease-out" r="6.072397413441897" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(741.6829997373691, 682.2225843127594)"><circle style="transition:all 0.5s ease-out" r="4.346736822506405" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(740.6958140877026, 661.9475893789715)"><circle style="transition:all 0.5s ease-out" r="4.101446399920607" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(731.5740869986995, 660.260281707906)"><circle style="transition:all 0.5s ease-out" r="1.9750244949599964" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(687.7536161687955, 710.7493734208578)"><circle r="9.200588260881018" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(718.8683399669841, 710.7493734208578)"><circle r="12.293332958832137" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(741.9753178274467, 422.68304333935686)"><circle style="transition:all 0.5s ease-out" r="4.436942090083892" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(753.6709261698884, 423.7828880374972)"><circle style="transition:all 0.5s ease-out" r="4.108869838392839" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#cb171e;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(747.2915682933134, 432.0488853523012)"><circle style="transition:all 0.5s ease-out" r="3.1325314310733834" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(748.9324222033235, 414.552738743403)"><circle style="transition:all 0.5s ease-out" r="3.0636761781614332" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(735.9849985372648, 414.078859525284)"><circle style="transition:all 0.5s ease-out" r="2.84713670176678" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(735.99925450843, 430.8779492894053)"><circle style="transition:all 0.5s ease-out" r="2.5055386797187533" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(757.5026461500771, 414.95368499326247)"><circle style="transition:all 0.5s ease-out" r="2.3159215042994195" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(696.685509362658, 462.94336768001136)"><circle r="9.200588260881018" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(727.8124855504991, 462.94336768001136)"><circle r="12.305585348484575" style="transition:all 0.5s ease-out" stroke="#290819" stroke-opacity="0.2" stroke-width="1" fill="white"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(868.0950895471939, 620.5517295933882)"><circle style="transition:all 0.5s ease-out" r="15.802124576832064" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(903.397718767735, 620.5517295933882)"><circle style="transition:all 0.5s ease-out" r="15.800195959679971" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(581.6158011789091, 567.0370839754167)"><circle style="transition:all 0.5s ease-out" r="16.791338374400404" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(616.4627169393519, 566.1840862682874)"><circle style="transition:all 0.5s ease-out" r="14.866077726519672" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(601.6109689105723, 595.420184696441)"><circle style="transition:all 0.5s ease-out" r="14.726022888258104" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(600.1628034395453, 539.3570864843635)"><circle style="transition:all 0.5s ease-out" r="13.32455585231336" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(570.681618428018, 535.7200225861344)"><circle style="transition:all 0.5s ease-out" r="13.179681926479063" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(569.8717089285834, 596.0291830954817)"><circle style="transition:all 0.5s ease-out" r="11.289105084626913" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(627.5798657311681, 539.452501565019)"><circle style="transition:all 0.5s ease-out" r="10.885055044837586" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(629.3342659985959, 591.2415773152833)"><circle style="transition:all 0.5s ease-out" r="10.103920140210494" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(554.0242789274756, 555.8822137445934)"><circle style="transition:all 0.5s ease-out" r="9.769635891863542" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(554.6242475207298, 577.9810231540923)"><circle style="transition:all 0.5s ease-out" r="9.134488289189983" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(640.0536838095696, 557.2153136836276)"><circle style="transition:all 0.5s ease-out" r="7.172221981588976" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(639.8406064919525, 574.2548590232649)"><circle style="transition:all 0.5s ease-out" r="6.665707670489988" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(445.4805061238399, 589.4998392754796)"><circle style="transition:all 0.5s ease-out" r="16.048972971207117" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(478.2489486598818, 589.4998392754796)"><circle style="transition:all 0.5s ease-out" r="13.019160880805778" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(464.5311852256569, 613.130530903641)"><circle style="transition:all 0.5s ease-out" r="10.604267742909366" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(464.1967399468655, 570.4069546685396)"><circle style="transition:all 0.5s ease-out" r="6.987128932800836" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(406.9982804240877, 526.756687745485)"><circle style="transition:all 0.5s ease-out" r="10.896247906452702" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(438.2262451953754, 522.5708904759797)"><circle style="transition:all 0.5s ease-out" r="10.271432895948927" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(425.23074260369884, 540.7732931614148)"><circle style="transition:all 0.5s ease-out" r="8.901315108594545" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(420.96166543934544, 508.9291721141029)"><circle style="transition:all 0.5s ease-out" r="8.541410105300338" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(401.72636775512257, 505.50946219740865)"><circle style="transition:all 0.5s ease-out" r="7.795250547634071" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(410.4425750850039, 543.4219129893987)"><circle style="transition:all 0.5s ease-out" r="2.921100621439841" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(507.0038768545752, 645.4825220525819)"><circle style="transition:all 0.5s ease-out" r="17.94244806038057" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(546.3221373575756, 645.4825220525819)"><circle style="transition:all 0.5s ease-out" r="17.675503758590736" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(526.91961462078, 677.7623852937003)"><circle style="transition:all 0.5s ease-out" r="16.28646921180448" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(487.9389754975506, 488.576926732574)"><circle style="transition:all 0.5s ease-out" r="18.87931276361392" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(535.8464233206828, 486.3421775589007)"><circle style="transition:all 0.5s ease-out" r="15.838723683205698" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(515.2838899345458, 512.556824369358)"><circle style="transition:all 0.5s ease-out" r="14.286968034613569" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(512.9542996016545, 468.3129459286813)"><circle style="transition:all 0.5s ease-out" r="10.109950531759127" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(492.76455865721516, 457.06021749666655)"><circle style="transition:all 0.5s ease-out" r="9.803888106835364" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(490.93352967841986, 517.9595916594395)"><circle style="transition:all 0.5s ease-out" r="7.455553971276101" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(225.16364496059532, 347.356957941969)"><circle style="transition:all 0.5s ease-out" r="23.01931082808049" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(269.7695757957299, 347.356957941969)"><circle style="transition:all 0.5s ease-out" r="17.886311323025097" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(251.7848473422484, 377.3351083355966)"><circle style="transition:all 0.5s ease-out" r="13.372498382408" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(251.66790214209865, 318.6437691118201)"><circle style="transition:all 0.5s ease-out" r="12.356240830806179" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(225.41019749721073, 308.57136486694645)"><circle style="transition:all 0.5s ease-out" r="12.0667571984643" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(224.07045745248362, 386.0366270838581)"><circle style="transition:all 0.5s ease-out" r="11.975494699556812" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(279.3110492913711, 315.38583246676967)"><circle style="transition:all 0.5s ease-out" r="11.77792076033781" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(280.3960807348708, 378.7691665796327)"><circle style="transition:all 0.5s ease-out" r="11.574342866748278" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(200.59553967238094, 318.69293661834286)"><circle style="transition:all 0.5s ease-out" r="11.032438920432627" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(200.328152647501, 375.05576368240713)"><circle style="transition:all 0.5s ease-out" r="10.482873924222082" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(246.24759032600522, 292.756218892229)"><circle style="transition:all 0.5s ease-out" r="10.392364197367312" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(243.25377420284283, 402.8579111215332)"><circle style="transition:all 0.5s ease-out" r="9.838021069458405" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(294.95575050255866, 332.4566089395257)"><circle style="transition:all 0.5s ease-out" r="7.677074167767865" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(293.0904670627061, 361.85487410399696)"><circle style="transition:all 0.5s ease-out" r="5.873415363049086" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(264.1126945606245, 301.6445913736653)"><circle style="transition:all 0.5s ease-out" r="5.0110773594375075" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(136.0006526947916, 414.9407988437249)"><circle style="transition:all 0.5s ease-out" r="19.72245161168891" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(175.04320671715803, 414.9407988437249)"><circle style="transition:all 0.5s ease-out" r="15.619793726648485" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(158.74284675296204, 438.4412450626122)"><circle style="transition:all 0.5s ease-out" r="9.280119746662065" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(158.3366365145167, 396.7010340283788)"><circle style="transition:all 0.5s ease-out" r="5.414458601293633" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(152.28829285910967, 295.92461278822606)"><circle style="transition:all 0.5s ease-out" r="10.21192235513608" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(173.06444442196002, 295.92461278822606)"><circle style="transition:all 0.5s ease-out" r="6.863920523685229" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(165.67751706388472, 311.1800035687832)"><circle style="transition:all 0.5s ease-out" r="6.385509541334022" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(165.334131821672, 283.28180679215586)"><circle style="transition:all 0.5s ease-out" r="4.254619477404312" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(154.61093874945558, 278.2925722729537)"><circle style="transition:all 0.5s ease-out" r="3.8721310990772357" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(206.64437001459123, 459.76794963034763)"><circle style="transition:all 0.5s ease-out" r="18.499388781377057" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(244.5494710809904, 459.76794963034763)"><circle style="transition:all 0.5s ease-out" r="15.705403600993055" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(228.19074433030244, 489.33703353584167)"><circle style="transition:all 0.5s ease-out" r="14.386870686893873" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(227.963402301773, 433.92414157787937)"><circle style="transition:all 0.5s ease-out" r="11.302594281797106" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(196.25233060028376, 224.1666607922091)"><circle style="transition:all 0.5s ease-out" r="19.603113061784182" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(237.63525160275512, 224.1666607922091)"><circle style="transition:all 0.5s ease-out" r="18.07949925665814" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(218.40292459325732, 257.94499737596266)"><circle style="transition:all 0.5s ease-out" r="17.08995440185367" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(218.31649983787568, 193.1719863034109)"><circle style="transition:all 0.5s ease-out" r="14.742568986610271" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(188.01526190463196, 189.7897755389307)"><circle style="transition:all 0.5s ease-out" r="12.046536392973232" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(190.934279476641, 253.96453115386566)"><circle style="transition:all 0.5s ease-out" r="6.965287275943406" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(243.32774327274822, 196.20847111556628)"><circle style="transition:all 0.5s ease-out" r="6.75201344190384" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(747.2488185282598, 587.2606217351284)"><circle style="transition:all 0.5s ease-out" r="1.6188877137113478" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#2b2b2b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(754.1488058276504, 587.2606217351284)"><circle style="transition:all 0.5s ease-out" r="1.5807909016502404" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ece2a9;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(750.7362543258138, 593.0987817733434)"><circle style="transition:all 0.5s ease-out" r="1.4812683712199974" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(777.4607523675345, 589.0802033289426)"><circle style="transition:all 0.5s ease-out" r="4.26177611741171" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(787.9161833740046, 589.0802033289426)"><circle style="transition:all 0.5s ease-out" r="2.4933462050293196" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(684.3251579703181, 708.9297918270436)"><circle style="transition:all 0.5s ease-out" r="1.6188877137113478" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#2b2b2b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(691.2251452697087, 708.9297918270436)"><circle style="transition:all 0.5s ease-out" r="1.5807909016502404" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ece2a9;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(687.812593767872, 714.7679518652585)"><circle style="transition:all 0.5s ease-out" r="1.4812683712199974" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(714.5370918095927, 710.7493734208578)"><circle style="transition:all 0.5s ease-out" r="4.26177611741171" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(724.9802704264104, 710.7493734208578)"><circle style="transition:all 0.5s ease-out" r="2.481093815376883" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(693.2570511641806, 461.1237860861972)"><circle style="transition:all 0.5s ease-out" r="1.6188877137113478" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#2b2b2b;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(700.1570384635712, 461.1237860861972)"><circle style="transition:all 0.5s ease-out" r="1.5807909016502404" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#ece2a9;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(696.7444869617345, 466.9619461244121)"><circle style="transition:all 0.5s ease-out" r="1.4812683712199974" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(723.4689850034553, 462.94336768001136)"><circle style="transition:all 0.5s ease-out" r="4.26177611741171" stroke-width="0" stroke="#374151"></circle></g><g style="fill:#701516;transition:transform 0s ease-out, fill 0.1s ease-out" transform="translate(733.9244160099254, 462.94336768001136)"><circle style="transition:all 0.5s ease-out" r="2.4933462050293196" stroke-width="0" stroke="#374151"></circle></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(322.0966950424136, 687.1586397018629)"><path fill="none" d="M 0 45.708589271580074 A 45.708589271580074 45.708589271580074 0 0 1 0 -45.708589271580074 A 45.708589271580074 45.708589271580074 0 0 1 0 45.708589271580074" id="CircleText--1" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--1" startOffset="50%">views</textPath></text><path fill="none" d="M 0 45.708589271580074 A 45.708589271580074 45.708589271580074 0 0 1 0 -45.708589271580074 A 45.708589271580074 45.708589271580074 0 0 1 0 45.708589271580074" id="CircleText--2" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--2" startOffset="50%">views</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(662.3624008060656, 565.766003356731)"><path fill="none" d="M 0 309.56166046288274 A 309.56166046288274 309.56166046288274 0 0 1 0 -309.56166046288274 A 309.56166046288274 309.56166046288274 0 0 1 0 309.56166046288274" id="CircleText--3" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--3" startOffset="50%">test</textPath></text><path fill="none" d="M 0 309.56166046288274 A 309.56166046288274 309.56166046288274 0 0 1 0 -309.56166046288274 A 309.56166046288274 309.56166046288274 0 0 1 0 309.56166046288274" id="CircleText--4" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--4" startOffset="50%">test</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(291.20463666336934, 583.9531981743552)"><path fill="none" d="M 0 56.04682980659243 A 56.04682980659243 56.04682980659243 0 0 1 0 -56.04682980659243 A 56.04682980659243 56.04682980659243 0 0 1 0 56.04682980659243" id="CircleText--5" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--5" startOffset="50%">lua</textPath></text><path fill="none" d="M 0 56.04682980659243 A 56.04682980659243 56.04682980659243 0 0 1 0 -56.04682980659243 A 56.04682980659243 56.04682980659243 0 0 1 0 56.04682980659243" id="CircleText--6" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--6" startOffset="50%">lua</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(199.2450599361703, 338.1048598159357)"><path fill="none" d="M 0 200.4383395371173 A 200.4383395371173 200.4383395371173 0 0 1 0 -200.4383395371173 A 200.4383395371173 200.4383395371173 0 0 1 0 200.4383395371173" id="CircleText--7" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--7" startOffset="50%">lib</textPath></text><path fill="none" d="M 0 200.4383395371173 A 200.4383395371173 200.4383395371173 0 0 1 0 -200.4383395371173 A 200.4383395371173 200.4383395371173 0 0 1 0 200.4383395371173" id="CircleText--8" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--8" startOffset="50%">lib</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(211.63237403815083, 675.611846932317)"><path fill="none" d="M 0 59.339295096693746 A 59.339295096693746 59.339295096693746 0 0 1 0 -59.339295096693746 A 59.339295096693746 59.339295096693746 0 0 1 0 59.339295096693746" id="CircleText--9" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--9" startOffset="50%">docs</textPath></text><path fill="none" d="M 0 59.339295096693746 A 59.339295096693746 59.339295096693746 0 0 1 0 -59.339295096693746 A 59.339295096693746 59.339295096693746 0 0 1 0 59.339295096693746" id="CircleText--10" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--10" startOffset="50%">docs</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(469.6601656915811, 201.4122508673131)"><path fill="none" d="M 0 96.56198845297864 A 96.56198845297864 96.56198845297864 0 0 1 0 -96.56198845297864 A 96.56198845297864 96.56198845297864 0 0 1 0 96.56198845297864" id="CircleText--11" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--11" startOffset="50%">public</textPath></text><path fill="none" d="M 0 96.56198845297864 A 96.56198845297864 96.56198845297864 0 0 1 0 -96.56198845297864 A 96.56198845297864 96.56198845297864 0 0 1 0 96.56198845297864" id="CircleText--12" transform="rotate(1)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:15px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--12" startOffset="50%">public</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(780.4504916105582, 570.4082481346313)"><path fill="none" d="M 0 62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 -62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 62.49502224891185" id="CircleText--13" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--13" startOffset="50%">rails6_dummy</textPath></text><path fill="none" d="M 0 62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 -62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 62.49502224891185" id="CircleText--14" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--14" startOffset="50%">rails6_dummy</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(718.9616616416419, 692.9174704871716)"><path fill="none" d="M 0 62.66074378060827 A 62.66074378060827 62.66074378060827 0 0 1 0 -62.66074378060827 A 62.66074378060827 62.66074378060827 0 0 1 0 62.66074378060827" id="CircleText--15" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--15" startOffset="50%">rails5_dummy</textPath></text><path fill="none" d="M 0 62.66074378060827 A 62.66074378060827 62.66074378060827 0 0 1 0 -62.66074378060827 A 62.66074378060827 62.66074378060827 0 0 1 0 62.66074378060827" id="CircleText--16" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--16" startOffset="50%">rails5_dummy</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(726.458724246479, 444.2714124857001)"><path fill="none" d="M 0 62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 -62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 62.49502224891185" id="CircleText--17" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--17" startOffset="50%">rails4_dummy</textPath></text><path fill="none" d="M 0 62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 -62.49502224891185 A 62.49502224891185 62.49502224891185 0 0 1 0 62.49502224891185" id="CircleText--18" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--18" startOffset="50%">rails4_dummy</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(817.0116818726259, 665.2981704133666)"><path fill="none" d="M 0 27.258620879843306 A 27.258620879843306 27.258620879843306 0 0 1 0 -27.258620879843306 A 27.258620879843306 27.258620879843306 0 0 1 0 27.258620879843306" id="CircleText--19" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--19" startOffset="50%">integration</textPath></text><path fill="none" d="M 0 27.258620879843306 A 27.258620879843306 27.258620879843306 0 0 1 0 -27.258620879843306 A 27.258620879843306 27.258620879843306 0 0 1 0 27.258620879843306" id="CircleText--20" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--20" startOffset="50%">integration</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(831.6547324570616, 473.697363720168)"><path fill="none" d="M 0 34.817465692954634 A 34.817465692954634 34.817465692954634 0 0 1 0 -34.817465692954634 A 34.817465692954634 34.817465692954634 0 0 1 0 34.817465692954634" id="CircleText--21" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--21" startOffset="50%">forked</textPath></text><path fill="none" d="M 0 34.817465692954634 A 34.817465692954634 34.817465692954634 0 0 1 0 -34.817465692954634 A 34.817465692954634 34.817465692954634 0 0 1 0 34.817465692954634" id="CircleText--22" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--22" startOffset="50%">forked</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(897.3701330938491, 620.5381359084525)"><path fill="none" d="M 0 52.777484755605805 A 52.777484755605805 52.777484755605805 0 0 1 0 -52.777484755605805 A 52.777484755605805 52.777484755605805 0 0 1 0 52.777484755605805" id="CircleText--23" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--23" startOffset="50%">fixtures</textPath></text><path fill="none" d="M 0 52.777484755605805 A 52.777484755605805 52.777484755605805 0 0 1 0 -52.777484755605805 A 52.777484755605805 52.777484755605805 0 0 1 0 52.777484755605805" id="CircleText--24" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--24" startOffset="50%">fixtures</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(527.8671364370132, 562.6345304452636)"><path fill="none" d="M 0 156.67180662825604 A 156.67180662825604 156.67180662825604 0 0 1 0 -156.67180662825604 A 156.67180662825604 156.67180662825604 0 0 1 0 156.67180662825604" id="CircleText--25" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--25" startOffset="50%">coverband</textPath></text><path fill="none" d="M 0 156.67180662825604 A 156.67180662825604 156.67180662825604 0 0 1 0 -156.67180662825604 A 156.67180662825604 156.67180662825604 0 0 1 0 156.67180662825604" id="CircleText--26" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--26" startOffset="50%">coverband</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(918.2414352744368, 516.0680187459228)"><path fill="none" d="M 0 41.90101910166387 A 41.90101910166387 41.90101910166387 0 0 1 0 -41.90101910166387 A 41.90101910166387 41.90101910166387 0 0 1 0 41.90101910166387" id="CircleText--27" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--27" startOffset="50%">benchmarks</textPath></text><path fill="none" d="M 0 41.90101910166387 A 41.90101910166387 41.90101910166387 0 0 1 0 -41.90101910166387 A 41.90101910166387 41.90101910166387 0 0 1 0 41.90101910166387" id="CircleText--28" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--28" startOffset="50%">benchmarks</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(273.55235774452274, 583.9531981743552)"><path fill="none" d="M 0 30.69424220371681 A 30.69424220371681 30.69424220371681 0 0 1 0 -30.69424220371681 A 30.69424220371681 30.69424220371681 0 0 1 0 30.69424220371681" id="CircleText--29" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--29" startOffset="50%">test</textPath></text><path fill="none" d="M 0 30.69424220371681 A 30.69424220371681 30.69424220371681 0 0 1 0 -30.69424220371681 A 30.69424220371681 30.69424220371681 0 0 1 0 30.69424220371681" id="CircleText--30" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--30" startOffset="50%">test</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(217.51770922078234, 338.1048598159357)"><path fill="none" d="M 0 174.46538156847623 A 174.46538156847623 174.46538156847623 0 0 1 0 -174.46538156847623 A 174.46538156847623 174.46538156847623 0 0 1 0 174.46538156847623" id="CircleText--31" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--31" startOffset="50%">coverband</textPath></text><path fill="none" d="M 0 174.46538156847623 A 174.46538156847623 174.46538156847623 0 0 1 0 -174.46538156847623 A 174.46538156847623 174.46538156847623 0 0 1 0 174.46538156847623" id="CircleText--32" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--32" startOffset="50%">coverband</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(432.00093236600975, 165.80734897930535)"><path fill="none" d="M 0 25.43434278826767 A 25.43434278826767 25.43434278826767 0 0 1 0 -25.43434278826767 A 25.43434278826767 25.43434278826767 0 0 1 0 25.43434278826767" id="CircleText--33" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--33" startOffset="50%">images</textPath></text><path fill="none" d="M 0 25.43434278826767 A 25.43434278826767 25.43434278826767 0 0 1 0 -25.43434278826767 A 25.43434278826767 25.43434278826767 0 0 1 0 25.43434278826767" id="CircleText--34" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--34" startOffset="50%">images</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(501.8417151504147, 167.15619551782666)"><path fill="none" d="M 0 32.560611306362674 A 32.560611306362674 32.560611306362674 0 0 1 0 -32.560611306362674 A 32.560611306362674 32.560611306362674 0 0 1 0 32.560611306362674" id="CircleText--35" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--35" startOffset="50%">colorbox</textPath></text><path fill="none" d="M 0 32.560611306362674 A 32.560611306362674 32.560611306362674 0 0 1 0 -32.560611306362674 A 32.560611306362674 32.560611306362674 0 0 1 0 32.560611306362674" id="CircleText--36" transform="rotate(2)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:14px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--36" startOffset="50%">colorbox</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(800.2867833241633, 548.5570051406821)"><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--37" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--37" startOffset="50%">config</textPath></text><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--38" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--38" startOffset="50%">config</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(767.7932633644596, 589.0802033289426)"><path fill="none" d="M 0 32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 -32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 32.93737747707881" id="CircleText--39" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--39" startOffset="50%">app</textPath></text><path fill="none" d="M 0 32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 -32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 32.93737747707881" id="CircleText--40" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--40" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(738.954156095436, 671.7127487702887)"><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--41" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--41" startOffset="50%">config</textPath></text><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--42" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--42" startOffset="50%">config</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(704.8573504168653, 710.7493734208578)"><path fill="none" d="M 0 32.92512508742638 A 32.92512508742638 32.92512508742638 0 0 1 0 -32.92512508742638 A 32.92512508742638 32.92512508742638 0 0 1 0 32.92512508742638" id="CircleText--43" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--43" startOffset="50%">app</textPath></text><path fill="none" d="M 0 32.92512508742638 A 32.92512508742638 32.92512508742638 0 0 1 0 -32.92512508742638 A 32.92512508742638 32.92512508742638 0 0 1 0 32.92512508742638" id="CircleText--44" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--44" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(746.2950159600845, 422.42016949175115)"><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--45" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--45" startOffset="50%">config</textPath></text><path fill="none" d="M 0 20 A 20 20 0 0 1 0 -20 A 20 20 0 0 1 0 20" id="CircleText--46" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--46" startOffset="50%">config</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(713.8014960003803, 462.94336768001136)"><path fill="none" d="M 0 32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 -32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 32.93737747707881" id="CircleText--47" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--47" startOffset="50%">app</textPath></text><path fill="none" d="M 0 32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 -32.93737747707881 A 32.93737747707881 32.93737747707881 0 0 1 0 32.93737747707881" id="CircleText--48" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--48" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(885.7454398488884, 620.5517295933882)"><path fill="none" d="M 0 34.15278356255559 A 34.15278356255559 34.15278356255559 0 0 1 0 -34.15278356255559 A 34.15278356255559 34.15278356255559 0 0 1 0 34.15278356255559" id="CircleText--49" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--49" startOffset="50%">app</textPath></text><path fill="none" d="M 0 34.15278356255559 A 34.15278356255559 34.15278356255559 0 0 1 0 -34.15278356255559 A 34.15278356255559 34.15278356255559 0 0 1 0 34.15278356255559" id="CircleText--50" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--50" startOffset="50%">app</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(595.4131053020263, 565.7824737772714)"><path fill="none" d="M 0 53.870944360893674 A 53.870944360893674 53.870944360893674 0 0 1 0 -53.870944360893674 A 53.870944360893674 53.870944360893674 0 0 1 0 53.870944360893674" id="CircleText--51" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--51" startOffset="50%">utils</textPath></text><path fill="none" d="M 0 53.870944360893674 A 53.870944360893674 53.870944360893674 0 0 1 0 -53.870944360893674 A 53.870944360893674 53.870944360893674 0 0 1 0 53.870944360893674" id="CircleText--52" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--52" startOffset="50%">utils</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(460.3172900868969, 592.8988543916855)"><path fill="none" d="M 0 31.970433455498224 A 31.970433455498224 31.970433455498224 0 0 1 0 -31.970433455498224 A 31.970433455498224 31.970433455498224 0 0 1 0 31.970433455498224" id="CircleText--53" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--53" startOffset="50%">reporters</textPath></text><path fill="none" d="M 0 31.970433455498224 A 31.970433455498224 31.970433455498224 0 0 1 0 -31.970433455498224 A 31.970433455498224 31.970433455498224 0 0 1 0 31.970433455498224" id="CircleText--54" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--54" startOffset="50%">reporters</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(416.7174991789197, 523.3844656002349)"><path fill="none" d="M 0 31.795560280890825 A 31.795560280890825 31.795560280890825 0 0 1 0 -31.795560280890825 A 31.795560280890825 31.795560280890825 0 0 1 0 31.795560280890825" id="CircleText--55" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--55" startOffset="50%">integrations</textPath></text><path fill="none" d="M 0 31.795560280890825 A 31.795560280890825 31.795560280890825 0 0 1 0 -31.795560280890825 A 31.795560280890825 31.795560280890825 0 0 1 0 31.795560280890825" id="CircleText--56" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--56" startOffset="50%">integrations</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(526.5159332501916, 654.5808660426848)"><path fill="none" d="M 0 40.171811720138464 A 40.171811720138464 40.171811720138464 0 0 1 0 -40.171811720138464 A 40.171811720138464 40.171811720138464 0 0 1 0 40.171811720138464" id="CircleText--57" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--57" startOffset="50%">collectors</textPath></text><path fill="none" d="M 0 40.171811720138464 A 40.171811720138464 40.171811720138464 0 0 1 0 -40.171811720138464 A 40.171811720138464 40.171811720138464 0 0 1 0 40.171811720138464" id="CircleText--58" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--58" startOffset="50%">collectors</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(506.06965448913, 488.806164752801)"><path fill="none" d="M 0 45.71726439287624 A 45.71726439287624 45.71726439287624 0 0 1 0 -45.71726439287624 A 45.71726439287624 45.71726439287624 0 0 1 0 45.71726439287624" id="CircleText--59" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--59" startOffset="50%">adapters</textPath></text><path fill="none" d="M 0 45.71726439287624 A 45.71726439287624 45.71726439287624 0 0 1 0 -45.71726439287624 A 45.71726439287624 45.71726439287624 0 0 1 0 45.71726439287624" id="CircleText--60" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--60" startOffset="50%">adapters</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(244.75821615500357, 347.529995852413)"><path fill="none" d="M 0 65.88669516398872 A 65.88669516398872 65.88669516398872 0 0 1 0 -65.88669516398872 A 65.88669516398872 65.88669516398872 0 0 1 0 65.88669516398872" id="CircleText--61" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--61" startOffset="50%">utils</textPath></text><path fill="none" d="M 0 65.88669516398872 A 65.88669516398872 65.88669516398872 0 0 1 0 -65.88669516398872 A 65.88669516398872 65.88669516398872 0 0 1 0 65.88669516398872" id="CircleText--62" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--62" startOffset="50%">utils</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(153.4706007634546, 414.9407988437249)"><path fill="none" d="M 0 37.89270836438095 A 37.89270836438095 37.89270836438095 0 0 1 0 -37.89270836438095 A 37.89270836438095 37.89270836438095 0 0 1 0 37.89270836438095" id="CircleText--63" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--63" startOffset="50%">reporters</textPath></text><path fill="none" d="M 0 37.89270836438095 A 37.89270836438095 37.89270836438095 0 0 1 0 -37.89270836438095 A 37.89270836438095 37.89270836438095 0 0 1 0 37.89270836438095" id="CircleText--64" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--64" startOffset="50%">reporters</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(160.54501947573968, 295.9273521158903)"><path fill="none" d="M 0 23.178857336598398 A 23.178857336598398 23.178857336598398 0 0 1 0 -23.178857336598398 A 23.178857336598398 23.178857336598398 0 0 1 0 23.178857336598398" id="CircleText--65" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--65" startOffset="50%">integrations</textPath></text><path fill="none" d="M 0 23.178857336598398 A 23.178857336598398 23.178857336598398 0 0 1 0 -23.178857336598398 A 23.178857336598398 23.178857336598398 0 0 1 0 23.178857336598398" id="CircleText--66" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--66" startOffset="50%">integrations</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(228.08340018085718, 463.1727127808747)"><path fill="none" d="M 0 41.2517203249549 A 41.2517203249549 41.2517203249549 0 0 1 0 -41.2517203249549 A 41.2517203249549 41.2517203249549 0 0 1 0 41.2517203249549" id="CircleText--67" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--67" startOffset="50%">collectors</textPath></text><path fill="none" d="M 0 41.2517203249549 A 41.2517203249549 41.2517203249549 0 0 1 0 -41.2517203249549 A 41.2517203249549 41.2517203249549 0 0 1 0 41.2517203249549" id="CircleText--68" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--68" startOffset="50%">collectors</textPath></text></g><g style="pointer-events:none;transition:all 0.5s ease-out" transform="translate(207.92398593229618, 224.5423509213732)"><path fill="none" d="M 0 52.79804715786426 A 52.79804715786426 52.79804715786426 0 0 1 0 -52.79804715786426 A 52.79804715786426 52.79804715786426 0 0 1 0 52.79804715786426" id="CircleText--69" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151" stroke="white" stroke-width="6"><textPath href="#CircleText--69" startOffset="50%">adapters</textPath></text><path fill="none" d="M 0 52.79804715786426 A 52.79804715786426 52.79804715786426 0 0 1 0 -52.79804715786426 A 52.79804715786426 52.79804715786426 0 0 1 0 52.79804715786426" id="CircleText--70" transform="rotate(3)" style="pointer-events:none"></path><text text-anchor="middle" style="font-size:13px;transition:all 0.5s ease-out" fill="#374151"><textPath href="#CircleText--70" startOffset="50%">adapters</textPath></text></g><g style="fill:#CED6E0;transition:transform 0s ease-out" transform="translate(184.53342099319616, 668.9191305364109)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">coverban...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">coverban...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">coverban...</text></g><g style="fill:#CED6E0;transition:transform 0s ease-out" transform="translate(237.93938000092706, 666.2681298720216)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">coverban...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">coverban...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">coverban...</text></g><g style="fill:#f1e05a;transition:transform 0s ease-out" transform="translate(417.3665488218823, 227.2369499450756)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">dependenci...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">dependenci...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">dependenci...</text></g><g style="fill:#563d7c;transition:transform 0s ease-out" transform="translate(512.0746166606298, 236.73094316958603)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">applicatio...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">applicatio...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">applicatio...</text></g><g style="fill:#083fa1;transition:transform 0s ease-out" transform="translate(323.3010712902609, 804.4628615668756)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">README.md</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">README.md</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">README.md</text></g><g style="fill:#083fa1;transition:transform 0s ease-out" transform="translate(393.506610305658, 805.1501050610594)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">changes.md</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">changes.md</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">changes.md</text></g><g style="fill:#701516;transition:transform 0s ease-out" transform="translate(908.4918282886603, 515.945846897006)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">benchmark...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">benchmark...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">benchmark...</text></g><g style="fill:#701516;transition:transform 0s ease-out" transform="translate(149.21951774316946, 347.529995852413)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">configur...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">configur...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">configur...</text></g><g style="fill:#CED6E0;transition:transform 0s ease-out" transform="translate(497.40508001658696, 167.11900012263365)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">loading.gif</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">loading.gif</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">loading.gif</text></g><g style="fill:#701516;transition:transform 0s ease-out" transform="translate(225.16364496059532, 347.356957941969)"><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;transition:all 0.5s ease-out" fill="#4B5563" text-anchor="middle" dominant-baseline="middle" stroke="white" stroke-width="3" stroke-linejoin="round">source_f...</text><text style="pointer-events:none;opacity:1;font-size:14px;font-weight:500;transition:all 0.5s ease-out" text-anchor="middle" dominant-baseline="middle">source_f...</text><text style="pointer-events:none;opacity:0.9;font-size:14px;font-weight:500;mix-blend-mode:color-burn;transition:all 0.5s ease-out" fill="#110101" text-anchor="middle" dominant-baseline="middle">source_f...</text></g><g transform="translate(940, 740)"><g transform="translate(0, 0)"><circle r="5" fill="#563d7c"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.css</text></g><g transform="translate(0, 15)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.erb</text></g><g transform="translate(0, 30)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.gemspec</text></g><g transform="translate(0, 45)"><circle r="5" fill="#000000"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.gitignore</text></g><g transform="translate(0, 60)"><circle r="5" fill="#ece2a9"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.haml</text></g><g transform="translate(0, 75)"><circle r="5" fill="#f1e05a"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.js</text></g><g transform="translate(0, 90)"><circle r="5" fill="#000080"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.lua</text></g><g transform="translate(0, 105)"><circle r="5" fill="#083fa1"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.md</text></g><g transform="translate(0, 120)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.rake</text></g><g transform="translate(0, 135)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.rb</text></g><g transform="translate(0, 150)"><circle r="5" fill="#701516"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.ru</text></g><g transform="translate(0, 165)"><circle r="5" fill="#89e051"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.sh</text></g><g transform="translate(0, 180)"><circle r="5" fill="#2b2b2b"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.slim</text></g><g transform="translate(0, 195)"><circle r="5" fill="#ff9900"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.svg</text></g><g transform="translate(0, 210)"><circle r="5" fill="#199f4b"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.txt</text></g><g transform="translate(0, 225)"><circle r="5" fill="#cb171e"></circle><text x="10" style="font-size:14px;font-weight:300" dominant-baseline="middle">.yml</text></g><g fill="#9CA3AF" style="font-weight:300;font-style:italic;font-size:12px">each dot sized by file size</g></g></svg>
|
@@ -119,7 +119,7 @@ module Coverband
|
|
119
119
|
|
120
120
|
data = coverage_data_from_redis(data_from_redis)
|
121
121
|
hash[file] = data_from_redis.select { |meta_data_key, _value| META_DATA_KEYS.include?(meta_data_key) }.merge!("data" => data)
|
122
|
-
hash[file][LAST_UPDATED_KEY] = hash[file][LAST_UPDATED_KEY].
|
122
|
+
hash[file][LAST_UPDATED_KEY] = (hash[file][LAST_UPDATED_KEY].nil? || hash[file][LAST_UPDATED_KEY] == '') ? nil : hash[file][LAST_UPDATED_KEY].to_i
|
123
123
|
hash[file].merge!(LAST_UPDATED_KEY => hash[file][LAST_UPDATED_KEY], FIRST_UPDATED_KEY => hash[file][FIRST_UPDATED_KEY].to_i)
|
124
124
|
end
|
125
125
|
|
@@ -99,7 +99,13 @@ module Coverband
|
|
99
99
|
puts "Coverband: detected SimpleCov in test Env, allowing it to start Coverage"
|
100
100
|
puts "Coverband: to ensure no error logs or missing Coverage call `SimpleCov.start` prior to requiring Coverband"
|
101
101
|
else
|
102
|
-
if Coverage.
|
102
|
+
if ::Coverage.respond_to?(:state)
|
103
|
+
if ::Coverage.state == :idle
|
104
|
+
::Coverage.start(oneshot_lines: Coverband.configuration.use_oneshot_lines_coverage)
|
105
|
+
elsif ::Coverage.state == :suspended
|
106
|
+
::Coverage.resume
|
107
|
+
end
|
108
|
+
elsif Coverage.ruby_version_greater_than_or_equal_to?("2.6.0")
|
103
109
|
::Coverage.start(oneshot_lines: Coverband.configuration.use_oneshot_lines_coverage) unless ::Coverage.running?
|
104
110
|
elsif Coverage.ruby_version_greater_than_or_equal_to?("2.5.0")
|
105
111
|
::Coverage.start unless ::Coverage.running?
|
@@ -0,0 +1,52 @@
|
|
1
|
+
####
|
2
|
+
# This is an example coverband configuration file. In a typical Rails app
|
3
|
+
# it would be placed in config/coverband.rb
|
4
|
+
#
|
5
|
+
# Uncomment or adjust the code to your apps needs
|
6
|
+
####
|
7
|
+
# Coverband.configure do |config|
|
8
|
+
####
|
9
|
+
# set a redis URL and set it with with some reasonable timeouts
|
10
|
+
####
|
11
|
+
# redis_url = ENV["COVERBAND_REDIS"] || ENV["REDIS_URL"] || "redis://localhost:6379"
|
12
|
+
# config.store = Coverband::Adapters::RedisStore.new(
|
13
|
+
# Redis.new(
|
14
|
+
# url: redis_url,
|
15
|
+
# timeout: ENV.fetch("REDIS_TIMEOUT", 1),
|
16
|
+
# reconnect_attempts: ENV.fetch("REDIS_RECONNECT_ATTEMPTS", 1),
|
17
|
+
# reconnect_delay: ENV.fetch("REDIS_RECONNECT_DELAY", 0.25),
|
18
|
+
# reconnect_delay_max: ENV.fetch("REDIS_RECONNECT_DELAY_MAX", 2.5)
|
19
|
+
# )
|
20
|
+
# )
|
21
|
+
|
22
|
+
# Allow folks to reset the coverband data via the web UI
|
23
|
+
# config.web_enable_clear = true
|
24
|
+
|
25
|
+
###
|
26
|
+
# Redis Performance Options. If you running hundreds of web server processes
|
27
|
+
# you may want to have some controls on how often they are calling redis
|
28
|
+
# This can help a relatively small Redis handle hundreds / thousands of reporting servers.
|
29
|
+
###
|
30
|
+
# reduce the CPU and Redis overhead, we don't need reporting every 30s... This is how often each process will try to save reports
|
31
|
+
# config.background_reporting_sleep_seconds = 400
|
32
|
+
# add a wiggle to avoid cache stampede and flatten out Redis CPU...
|
33
|
+
# This can help if you have many servers restart around a deploy and are all hitting redis at the same time.
|
34
|
+
# config.reporting_wiggle = 90
|
35
|
+
|
36
|
+
# ignore various files for whatever reason. I often ignore the below list as some are setup before coverband and not always
|
37
|
+
# tracked correctly... Accepts regex or exact match strings.
|
38
|
+
# config.ignore = %w[config/*
|
39
|
+
# config/locales/*
|
40
|
+
# config/environments/*
|
41
|
+
# config/initializers/*]
|
42
|
+
|
43
|
+
# config options false, true, or 'debug'. Always use false in production
|
44
|
+
# true and debug can give helpful and interesting code usage information
|
45
|
+
# they both increase the performance overhead of the gem a little.
|
46
|
+
# they can also help with initially debugging the installation.
|
47
|
+
# defaults to false
|
48
|
+
# config.verbose = false
|
49
|
+
|
50
|
+
# allow the web UI to display raw coverband data, generally only useful for coverband development
|
51
|
+
# config.web_debug = true
|
52
|
+
# end
|
@@ -4,6 +4,14 @@ namespace :coverband do
|
|
4
4
|
# handles configuring in require => false and COVERBAND_DISABLE_AUTO_START cases
|
5
5
|
Coverband.configure unless Coverband.configured?
|
6
6
|
|
7
|
+
desc "install coverband configuration file defaults"
|
8
|
+
task :install do
|
9
|
+
require "fileutils"
|
10
|
+
full_path = Gem::Specification.find_by_name("coverband").full_gem_path
|
11
|
+
config_template = File.expand_path("lib/coverband/utils/configuration_template.rb", full_path)
|
12
|
+
FileUtils.cp(config_template, "./config/coverband.rb")
|
13
|
+
end
|
14
|
+
|
7
15
|
desc "report runtime Coverband code coverage"
|
8
16
|
task :coverage do
|
9
17
|
Coverband::Reporters::ConsoleReport.report(Coverband.configuration.store)
|
data/lib/coverband/version.rb
CHANGED
@@ -77,8 +77,25 @@ class CollectorsCoverageTest < Minitest::Test
|
|
77
77
|
assert_match %r{Oh no}, error.message
|
78
78
|
end
|
79
79
|
|
80
|
+
test "using coverage state idle with ruby >= 3.1.0" do
|
81
|
+
return unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.1.0")
|
82
|
+
|
83
|
+
::Coverage.expects(:state).returns(:idle)
|
84
|
+
::Coverage.expects(:start).with(oneshot_lines: false)
|
85
|
+
Coverband::Collectors::Coverage.send(:new)
|
86
|
+
end
|
87
|
+
|
88
|
+
test "using coverage state suspended with ruby >= 3.1.0" do
|
89
|
+
return unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.1.0")
|
90
|
+
|
91
|
+
::Coverage.expects(:state).returns(:suspended).at_least_once
|
92
|
+
::Coverage.expects(:resume)
|
93
|
+
Coverband::Collectors::Coverage.send(:new)
|
94
|
+
end
|
95
|
+
|
80
96
|
test "one shot line coverage disabled for ruby >= 2.6" do
|
81
97
|
return unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.5.0")
|
98
|
+
::Coverage.expects(:respond_to?).returns(false)
|
82
99
|
|
83
100
|
Coverband::Collectors::Coverage.expects(:ruby_version_greater_than_or_equal_to?).with("2.6.0").returns(true)
|
84
101
|
::Coverage.expects(:running?).returns(false)
|
@@ -88,6 +105,7 @@ class CollectorsCoverageTest < Minitest::Test
|
|
88
105
|
|
89
106
|
test "one shot line coverage enabled for ruby >= 2.6" do
|
90
107
|
return unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.5.0")
|
108
|
+
::Coverage.expects(:respond_to?).returns(false)
|
91
109
|
|
92
110
|
Coverband.configuration.expects(:use_oneshot_lines_coverage).returns(true)
|
93
111
|
Coverband::Collectors::Coverage.expects(:ruby_version_greater_than_or_equal_to?).with("2.6.0").returns(true)
|
@@ -98,6 +116,7 @@ class CollectorsCoverageTest < Minitest::Test
|
|
98
116
|
|
99
117
|
test "one shot line coverage for ruby >= 2.6 when already running" do
|
100
118
|
return unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.5.0")
|
119
|
+
::Coverage.expects(:respond_to?).returns(false)
|
101
120
|
|
102
121
|
Coverband::Collectors::Coverage.expects(:ruby_version_greater_than_or_equal_to?).with("2.6.0").returns(true)
|
103
122
|
::Coverage.expects(:running?).returns(true)
|
@@ -107,6 +126,7 @@ class CollectorsCoverageTest < Minitest::Test
|
|
107
126
|
|
108
127
|
test "no one shot line coverage for ruby < 2.6" do
|
109
128
|
return unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.5.0")
|
129
|
+
::Coverage.expects(:respond_to?).returns(false)
|
110
130
|
|
111
131
|
Coverband::Collectors::Coverage.expects(:ruby_version_greater_than_or_equal_to?).with("2.6.0").returns(false)
|
112
132
|
Coverband::Collectors::Coverage.expects(:ruby_version_greater_than_or_equal_to?).with("2.5.0").returns(true)
|
@@ -3,45 +3,50 @@
|
|
3
3
|
require File.expand_path("../../test_helper", File.dirname(__FILE__))
|
4
4
|
|
5
5
|
class ResqueWorkerTest < Minitest::Test
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
# NOTE: It appears there are some bugs in resque for JRUBY, not coverband, so excluding these tests on JRUBY
|
7
|
+
# if folks hit issues with Coverband and resque this could be a resque issue, reach out with details.
|
8
|
+
# I also highly recommend moving to sidekiq.
|
9
|
+
unless RUBY_PLATFORM == "java"
|
10
|
+
def enqueue_and_run_job
|
11
|
+
Resque.enqueue(TestResqueJob)
|
12
|
+
ENV["QUEUE"] = "resque_coverband"
|
13
|
+
worker = Resque::Worker.new
|
14
|
+
worker.startup
|
15
|
+
worker.work_one_job
|
16
|
+
end
|
13
17
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
+
def setup
|
19
|
+
super
|
20
|
+
Coverband.configure do |config|
|
21
|
+
config.background_reporting_enabled = false
|
22
|
+
end
|
23
|
+
Coverband.start
|
24
|
+
redis = Coverband.configuration.store.instance_eval { @redis }
|
25
|
+
Resque.redis = redis
|
18
26
|
end
|
19
|
-
Coverband.start
|
20
|
-
redis = Coverband.configuration.store.instance_eval { @redis }
|
21
|
-
Resque.redis = redis
|
22
|
-
end
|
23
27
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
+
test "resque job coverage" do
|
29
|
+
relative_job_file = "./test/coverband/integrations/test_resque_job.rb"
|
30
|
+
resque_job_file = File.expand_path("./test_resque_job.rb", File.dirname(__FILE__))
|
31
|
+
require resque_job_file
|
28
32
|
|
29
|
-
|
33
|
+
enqueue_and_run_job
|
30
34
|
|
31
|
-
|
35
|
+
assert !Coverband::Background.running?
|
32
36
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
+
# TODO: There is a test only type issue where the test is looking at eager data
|
38
|
+
# it merged eager and eager for merged and runtime is eager
|
39
|
+
Coverband.runtime_coverage!
|
40
|
+
report = Coverband.configuration.store.get_coverage_report
|
37
41
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
if RUBY_PLATFORM == "java"
|
43
|
+
# NOTE: the todo test only issue seems to be slightly different in JRuby
|
44
|
+
# were nothing is showing up as runtime Coverage... This appears to be a test only issue
|
45
|
+
assert_equal 1, report[Coverband::EAGER_TYPE][relative_job_file]["data"][6]
|
46
|
+
else
|
47
|
+
assert_equal 0, report[Coverband::EAGER_TYPE][relative_job_file]["data"][6]
|
48
|
+
assert_equal 1, report[Coverband::RUNTIME_TYPE][relative_job_file]["data"][6]
|
49
|
+
end
|
45
50
|
end
|
46
51
|
end
|
47
52
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,11 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'bigdecimal'
|
4
|
+
|
3
5
|
original_verbosity = $VERBOSE
|
4
6
|
$VERBOSE = nil
|
7
|
+
|
8
|
+
if ENV['SKIP_SIMPLECOV'] || BigDecimal(RUBY_VERSION[0, 3]) >= BigDecimal('3.1')
|
9
|
+
$SKIP_SIMPLECOV = true
|
10
|
+
end
|
11
|
+
|
5
12
|
require "rubygems"
|
6
13
|
require "pry-byebug" unless ENV["CI"]
|
7
|
-
|
8
|
-
|
14
|
+
|
15
|
+
unless $SKIP_SIMPLECOV
|
16
|
+
require "simplecov"
|
17
|
+
require "coveralls"
|
18
|
+
end
|
19
|
+
|
9
20
|
require "minitest/autorun"
|
10
21
|
require "minitest/stub_const"
|
11
22
|
require "mocha/minitest"
|
@@ -29,7 +40,7 @@ require "webmock/minitest"
|
|
29
40
|
require_relative "unique_files"
|
30
41
|
$VERBOSE = original_verbosity
|
31
42
|
|
32
|
-
unless ENV["ONESHOT"] || ENV["SIMULATE_ONESHOT"]
|
43
|
+
unless ENV["ONESHOT"] || ENV["SIMULATE_ONESHOT"] || $SKIP_SIMPLECOV
|
33
44
|
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
34
45
|
SimpleCov.start do
|
35
46
|
add_filter "test/forked"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coverband
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.2.
|
4
|
+
version: 5.2.5.rc.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Mayer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-08-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: benchmark-ips
|
@@ -315,6 +315,7 @@ files:
|
|
315
315
|
- lib/coverband/reporters/html_report.rb
|
316
316
|
- lib/coverband/reporters/web.rb
|
317
317
|
- lib/coverband/utils/absolute_file_converter.rb
|
318
|
+
- lib/coverband/utils/configuration_template.rb
|
318
319
|
- lib/coverband/utils/dead_methods.rb
|
319
320
|
- lib/coverband/utils/file_hasher.rb
|
320
321
|
- lib/coverband/utils/file_list.rb
|
@@ -495,11 +496,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
495
496
|
version: '2.3'
|
496
497
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
497
498
|
requirements:
|
498
|
-
- - "
|
499
|
+
- - ">"
|
499
500
|
- !ruby/object:Gem::Version
|
500
|
-
version:
|
501
|
+
version: 1.3.1
|
501
502
|
requirements: []
|
502
|
-
rubygems_version: 3.
|
503
|
+
rubygems_version: 3.3.7
|
503
504
|
signing_key:
|
504
505
|
specification_version: 4
|
505
506
|
summary: Rack middleware to measure production code usage (LOC runtime usage)
|