Initial auto-converted .adoc files from xooki2asciidoc convertor
|
|
@ -0,0 +1,182 @@
|
|||
|
||||
The main and most frequent way to use ivy is from an ant build file. However, ivy can also be called as a standalone application
|
||||
|
||||
If you use ant version *1.6.0* or superior, you just have to add ivy namespace to your project (
|
||||
[source]
|
||||
----
|
||||
xmlns:ivy="antlib:org.apache.ivy.ant"
|
||||
----
|
||||
|
||||
attribute of your project tag), and you can call ivy tasks.
|
||||
|
||||
If you want to make your build handle ivy.jar in either ant lib dir or a local lib dir, you can use a taskdef like this:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<path id="ivy.lib.path">
|
||||
<fileset dir="path/to/dir/with/ivy/jar" includes="*.jar"/>
|
||||
</path>
|
||||
<taskdef resource="org/apache/ivy/ant/antlib.xml"
|
||||
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
|
||||
|
||||
----
|
||||
|
||||
Combined with the antlib definition in the project namespace, it will load Ivy classes either from your ant lib or a local directory (path/to/dir/with/ivy/jar in this example).
|
||||
|
||||
If you use ant *1.5.1* or superior, you have to define the tasks you use in your build file. For instance:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<taskdef name="ivy-configure" classname="org.apache.ivy.ant.IvyConfigure"/>
|
||||
<taskdef name="ivy-resolve" classname="org.apache.ivy.ant.IvyResolve"/>
|
||||
<taskdef name="ivy-retrieve" classname="org.apache.ivy.ant.IvyRetrieve"/>
|
||||
<taskdef name="ivy-deliver" classname="org.apache.ivy.ant.IvyDeliver"/>
|
||||
<taskdef name="ivy-publish" classname="org.apache.ivy.ant.IvyPublish"/>
|
||||
|
||||
----
|
||||
|
||||
_Note: the tasks listed above are non exhaustive. For a complete list of tasks with the corresponding classes, see the link:https://git-wip-us.apache.org/repos/asf?p=ant-ivy.git;a=blob;f=src/java/org/apache/ivy/ant/antlib.xml[antlib.xml] file in git or the version you use._
|
||||
|
||||
Then you can use the tasks, but check their name, following samples assume you use the ivy namespace (ivy:xxx tasks), whereas with ant 1.5 you cannot use namespace, and should therefore use ivy-xxx tasks if you have followed the taskdefs above.
|
||||
|
||||
If you use an ant version lower than 1.5.1, you can not use the ivy tasks... you should then call ivy as any external program.
|
||||
|
||||
== Calling ivy from ant: first steps
|
||||
|
||||
Once your build file is ok to call ivy tasks, the simplest way to use ivy is to call the ivy retrieve task with no parameters:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<ivy:retrieve />
|
||||
|
||||
----
|
||||
|
||||
This calls ivy with default values, which might be ok in several projects. In fact, it is equivalent to:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<target name="resolve">
|
||||
<ivy:configure />
|
||||
|
||||
<ivy:resolve file="${ivy.dep.file}" conf="${ivy.configurations}" />
|
||||
|
||||
<ivy:retrieve pattern="${ivy.retrieve.pattern}" conf="${ivy.configurations}" />
|
||||
</target>
|
||||
|
||||
----
|
||||
|
||||
Those 3 tasks follow the 3 main steps of the ivy retrieving dependencies process:
|
||||
|
||||
|
||||
* First the configure task tells it how it can find dependencies giving it a path to an link:settings.html[xml settings file]. +
|
||||
|
||||
* Then the resolve task actually resolves dependencies described by an link:ivyfile.html[ivy file], and puts those dependencies in the ivy cache (a directory configured in the settings file). +
|
||||
|
||||
* Finally the retrieve task copies dependencies from the cache to anywhere you want in your file system. You can then use those dependencies to make your classpath with standard ant paths. +
|
||||
|
||||
|
||||
To understand more accurately the behaviour of ivy tasks, one should know that a property file is loaded in ant by ivy at the beginning of the configure call. This property file contains the following properties:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ivy.project.dir = ${basedir}
|
||||
ivy.lib.dir = ${ivy.project.dir}/lib
|
||||
ivy.build.artifacts.dir = ${ivy.project.dir}/build/artifacts
|
||||
ivy.distrib.dir = ${ivy.project.dir}/distrib
|
||||
|
||||
ivy.resolver.default.check.modified = false
|
||||
ivy.default.always.check.exact.revision = true
|
||||
|
||||
ivy.configurations = *
|
||||
ivy.resolve.default.type.filter = *
|
||||
ivy.status = integration
|
||||
ivy.dep.file = ivy.xml
|
||||
ivy.settings.file = ivysettings.xml
|
||||
ivy.retrieve.pattern = ${ivy.lib.dir}/[artifact]-[revision].[ext]
|
||||
ivy.deliver.ivy.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]
|
||||
ivy.publish.src.artifacts.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]
|
||||
|
||||
ivy.report.output.pattern = [organisation]-[module]-[conf].[ext]
|
||||
|
||||
ivy.buildlist.ivyfilepath = ivy.xml
|
||||
|
||||
ivy.checksums=sha1,md5
|
||||
|
||||
----
|
||||
|
||||
_For the latest version of these properties, you can check the link:https://git-wip-us.apache.org/repos/asf?p=ant-ivy.git;a=blob;f=src/java/org/apache/ivy/core/settings/ivy.properties[git version]._
|
||||
|
||||
*__since 2.0__* After calling the first Ivy task, the property ivy.version will be available and contains the version of the used Ivy library.
|
||||
|
||||
|
||||
== Ivy tasks attributes : generalities
|
||||
|
||||
Some tasks attributes values may be given through different places. The three possible places are :
|
||||
|
||||
|
||||
. task attribute +
|
||||
|
||||
. ivy instance +
|
||||
|
||||
. project property +
|
||||
|
||||
The places are queried in this order, so anything set in task attribute will overwrite what would have been found in ivy instance, for example.
|
||||
|
||||
The ivy instance considered here is an instance of the class Ivy, which is setup by a call to the configure task, and then reused for other tasks. Because most of the tasks need an ivy instance, they first check if one is available (i.e. configure has been called), and if none is available, then a default configure is called and the resulting ivy instance is used in the remaining tasks (unless another configure is called).
|
||||
|
||||
It isn't generally necessary to understand this, but it can lead to some issues if you forget to call configure before another task and if the configure step was required in your environment.
|
||||
|
||||
|
||||
== Usual cycle of main tasks
|
||||
|
||||
image::images/main-tasks.png[]
|
||||
|
||||
== Example
|
||||
|
||||
Here is a more complete example of build file using ivy:
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="sample" default="resolve">
|
||||
|
||||
<target name="resolve">
|
||||
<ivy:configure file="../ivysettings.xml" />
|
||||
|
||||
<ivy:resolve file="my-ivy.xml" conf="default, myconf" />
|
||||
|
||||
</target>
|
||||
|
||||
<target name="retrieve-default" depends="resolve">
|
||||
<ivy:retrieve pattern="lib/default/[artifact]-[revision].[ext]" conf="default" />
|
||||
</target>
|
||||
|
||||
<target name="retrieve-myconf" depends="resolve">
|
||||
<ivy:retrieve pattern="lib/myconf/[artifact]-[revision].[ext]" conf="myconf" />
|
||||
</target>
|
||||
|
||||
<target name="retrieve-all" depends="resolve">
|
||||
<ivy:retrieve pattern="lib/[conf]/[artifact]-[revision].[ext]" conf="*" />
|
||||
</target>
|
||||
|
||||
<target name="deliver" depends="retrieve-all">
|
||||
<ivy:deliver deliverpattern="distrib/[artifact]-[revision].[ext]"
|
||||
pubrevision="1.1b4" pubdate="20050115123254" status="milestone" />
|
||||
</target>
|
||||
|
||||
<target name="publish" depends="deliver">
|
||||
<ivy:publish resolver="internal"
|
||||
artifactspattern="distrib/[artifact]-[revision].[ext]"
|
||||
pubrevision="1.1b4" />
|
||||
</target>
|
||||
</project>
|
||||
|
||||
----
|
||||
|
||||
All ivy tasks are documented in the following pages.
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
|
||||
Here are some recommendations and best practices we have gathered throughout our experience and consultancies with our customers.
|
||||
|
||||
|
||||
== Add module descriptors for all your modules
|
||||
|
||||
In Ivy world, module descriptors are ivy files, which are basically simple xml files describing both what the module produces as artifacts and its dependencies.
|
||||
|
||||
It is a good practice to write or download module descriptors for all the modules involved in your development, even for your third party dependencies, and even if they don't provide such module descriptors themselves.
|
||||
|
||||
First, it will seem like extra work and require time. But when you have several modules using the same third party library, then you will only need to add one line to your ivy file to get this library and all its own dependencies that you really need (if you have good module descriptors in your repository, especially with the use of module link:concept.html#configurations[configurations]). It will also be very helpful when you want to upgrade a dependency. One single change in your module ivy file and you will get the updated version with its updated (or not) dependencies.
|
||||
|
||||
Therefore we recommend adding ivy files for all the modules in your repository. You can even enforce this rule by setting the descriptor attribute to required on your link:settings/resolvers.html[resolvers]. Hence you shouldn't need to use the dependency artifact inclusion/exclusion/specification feature of Ivy, which should only be used in very specific cases.
|
||||
|
||||
|
||||
== Use your own enterprise repository
|
||||
|
||||
This is usually not a valid recommendation for open source projects, but for the enterprise world we strongly suggest to avoid relying on a public repository like maven ibiblio or ivyrep. Why? Well, there are a couple of reasons:
|
||||
|
||||
|
||||
* control +
|
||||
The main problem with these kinds of public repositories is that you don't have control over the repository. This means that if a module descriptor is broken you cannot easily fix it. Sure you can use a chain between a shared repository and the public one and put your fixed module descriptor in the shared repository so that it hides the one on the public repository, but this makes repository browsing and maintenance cumbersome.
|
||||
Even more problematic is the possible updates of the repository. We know that versions published in such repositories should be stable and not be updated, but we also frequently see that a module descriptor is buggy, or an artifact corrupted. We even see sometimes a new version published with the same name as the preceding one because the previous one was simply badly packaged. This can occur even to the best; it occurred to us with Ivy 1.2 :-) But then we decided to publish the new version with a different name, 1.2a. But if the repository manager allows such updates, this means that what worked before can break. It can thus break your build reproducibility.
|
||||
|
||||
* reliability +
|
||||
The Maven repository is not particularly well known for its reliability (we often experience major slow downs or even complete failures of the site), and ivyrep is only supported by a small company (yes we are only a small company!). So slow down and site hangs occur also. And if the repository you rely on is down, this can cause major slow downs in your development or release process.
|
||||
|
||||
* accuracy +
|
||||
A public repository usually contains much more than what you actually need. Is this a problem? We think so. We think that in an enterprise environment the libraries you use should step through some kind of validation process before being used in every projects of your company. And what better way to do so? Setup an enterprise repository with only the libraries you actually want to use. This will not only ensure better quality for your application dependencies, but help to have the same versions everywhere, and even help when declaring your module dependencies, if you use a tool like IvyDE, the code completion will only show relevant information about your repository, with only the libraries you actually want to see.
|
||||
|
||||
* security +
|
||||
The artifacts you download from a module repository are often executable, and are thus a security concern. Imagine a hacker replacing commons-lang by another version containing a virus? If you rely on a public repository to build your software, you expose it to a security risk. You can read more about that in this link:http://www.fortifysoftware.com/servlet/downloads/public/fortify_attacking_the_build.pdf[Forrester article].
|
||||
|
||||
Note that using an enterprise repository doesn't mean you have to build it entirely by hand. Ivy features an link:use/install.html[install] task which can be used to install modules from one repository to another one, so it can be used to selectively install modules from a public repository to your enterprise repository, where you will then be able to ensure control, reliability and accuracy.
|
||||
|
||||
|
||||
== Always use patterns with at least organisation and module
|
||||
|
||||
Ivy is very flexible and can accomodate a lot of existing repositories, using the concept of link:concept.html#pattern[patterns]. But if your repository doesn't exist yet, we strongly recommend always using the organisation and the module name in your pattern, even for a private repository where you put only your own modules (which all have the same organisation). Why? Because the Ivy listing feature relies on the token it can find in the pattern. If you have no organisation token in your pattern, Ivy won't be able to list the (only?) organisation in your repository. And this can be a problem for code completion in IvyDE, for example, but also for repository wide tasks like link:use/install.html[install] or link:use/repreport.html[repreport].
|
||||
|
||||
|
||||
== Public ivysettings.xml with public repositories
|
||||
|
||||
If you create a public repository, provide a URL to the link:settings.html[ivysettings.xml] file. It's pretty easy to do, and if someone wants to leverage your repository, he will just have to load it with link:use/settings.html[settings] with the URL of your ivysettings.xml file, or link:configuration/include.html[include] it in its own configuration file, which makes it really easy to combine several public repositories.
|
||||
|
||||
|
||||
== Dealing with integration versions
|
||||
|
||||
Very often, especially when working in a team or with several modules, you will need to rely on intermediate, non-finalized versions of your modules. These versions are what we call integration versions, because their main objective is to be integrated with other modules to make and test an application or a framework.
|
||||
|
||||
If you follow the continuous integration paradigm across modules, these integration versions can be produced by a continuous integration server, very frequently.
|
||||
|
||||
So, how can you deal with these, possibly numerous, integration versions?
|
||||
|
||||
There are basically two ways to deal with them, both ways being supported by Ivy:
|
||||
|
||||
|
||||
* use a naming convention like a special suffix +
|
||||
the idea is pretty simple, each time you publish a new integration of your module you give the same name to the version (in maven world this is for example 1.0-SNAPSHOT). The dependency manager should then be aware that this version is special because it changes over time, so that it does not trust its local cache if it already has the version, but checks the date of the version on the repository and sees if it has changed. In Ivy this is supported using the link:ivyfile/dependency.html[changing attribute] on a dependency or by configuring the link:configuration/resolvers.html[changing pattern] to use for all your modules.
|
||||
|
||||
* automatically create a new version for each +
|
||||
in this case you use either a build number or a timestamp to publish each new integration version with a new version name. Then you can use one of the numerous ways in Ivy to link:ivyfile/dependency.html[express a version constraint]. Usually selecting the very latest one (using 'latest.integration' as version constraint) is enough.
|
||||
|
||||
|
||||
So, which way is the best? As often, it depends on your context, and if one of the two was really bad it wouldn't be supported in Ivy :-)
|
||||
|
||||
But usually we recommend using the second one, because using a new version each time you publish a new version better fits the version identity paradigm, and can make *all* your builds reproducible, even integration ones. And this is interesting because it enables, with some work in your build system, the ability to introduce a mechanism to promote an integration build to a more stable status, like a milestone or a release.
|
||||
|
||||
Imagine you have a customer who comes on a Monday morning and asks for the latest version of your software, for testing or demonstration purposes. Obviously he needs it for the afternoon :-) Now if you have a continuous integration process and good tracking of your changes and your artifacts, it may occur to you that you are actually able to fulfill his request without needing the use of a DeLorean to give you some more time :-) But it may also occur to you that your latest version is stable enough to be used for the purpose of the customer, but was actually built a few days ago, because the very latest just broke a feature or introduced a new one you don't want to deliver. You can deliver this 'stable' integration build if you want, but rest assured that a few days, or weeks, or even months later, the customer will ask for a bug fix on this demo only version. Why? Because it's a customer, and we all know how they are :-)
|
||||
|
||||
So, with a build promotion feature of any build in your repository, the solution would be pretty easy: when the customer asks for the version, you not only deliver the integration build, but you also promote it to a milestone status, for example. This promotion indicates that you should keep track of this version for a long period, to be able to come back to it and create a branch if needed.
|
||||
|
||||
Unfortunately Ivy does not by its own allow you to have such reproducible builds out of the box, simply because Ivy is a dependency manager, not a build tool. But if you publish only versions with a distinct name and use Ivy features like versions constraint replacement during the publication or recursive delivery of modules, it can really help.
|
||||
|
||||
On the other hand, the main drawback of this solution is that it can produce a lot of intermediate versions, and you will have to run some cleaning scripts in your repository unless your company name starts with a G and ends with oogle :-)
|
||||
|
||||
|
||||
== Inlining dependencies or not?
|
||||
|
||||
With Ivy 1.4 you can resolve a dependency without even writing an ivy file. This pratice is called inlining. But what is it good for, and when should it be avoided?
|
||||
|
||||
Putting ivy dependencies in a separate file has the following advantages:
|
||||
|
||||
|
||||
* separate revision cycle +
|
||||
if your dependencies may change more often than your build, it's a good idea to separate the two, to isolate the two concepts: describing how to build / describing your project dependencies
|
||||
|
||||
* possibility to publish +
|
||||
if you describe dependencies of a module which can itself be reused, you may want to use ant to publish it to a repository. In this case the publication is only possible if you have a separate ivy file
|
||||
|
||||
* more flexible +
|
||||
inline dependencies can only be used to express one dependency and only one. An ivy file can be used to express much more complex dependencies
|
||||
|
||||
On the other hand, using inline dependencies is very useful when:
|
||||
|
||||
|
||||
* you want to use a custom task in your ant build +
|
||||
Without ivy you usually either copy the custom task jar in ant lib, which requires maintenance of your workstation installation, or use a manual copy or download and a taskdef with the appropriate classpath, which is better. But if you have several custom tasks, or if they have themselves dependencies, it can become cumbersome. Using Ivy with an inline dependency is an elegant way to solve this problem.
|
||||
|
||||
* you want to easily deploy an application +
|
||||
If you already build your application and its modules using Ivy, it is really easy to leverage your ivy repository to download your application and all its dependencies on the local filesystem, ready to be executed. If you also put your configuration files as artifacts in your repository (maybee packaged as a zip), the whole installation process can rely on ivy, easing the automatic installation of *any* version of your application available in your repository!
|
||||
|
||||
|
||||
== Hire an expert
|
||||
|
||||
Build and dependency management is often given too low a priority in the software development world. We often see build management implemented by developers when they have time. Even if this may seem like a time and money savings in the short term, it often turns out to be a very bad choice in the long term. Building software is not a simple task, when you want to ensure automatic, tested, fully reproducible builds, releases and installations. On the other hand, once a good build system fitting your very specific needs is setup, it can then only rely on a few people with a good understanding of what is going on, with a constant quality ensured.
|
||||
|
||||
Therefore hiring a build and dependency expert to analyse and improve your build and release system is most of the time a very good choice.
|
||||
|
||||
|
||||
== Feedback
|
||||
|
||||
These best practices reflect our own experience, but we do not pretend to own the unique truth about dependency management or even Ivy use.
|
||||
|
||||
So feel free to comment on this page to add your own experience feedback, suggestions or opinion.
|
||||
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
|
||||
== JVM compability
|
||||
|
||||
|
||||
Up to Ivy 2.3.x, a minimum of Java 1.4 is required.
|
||||
|
||||
For Ivy 2.4.0, a minimum of Java 5 is required.
|
||||
|
||||
Since Ivy 2.5.0, a minimum of Java 7 is required.
|
||||
|
||||
|
||||
== Apache Ant
|
||||
|
||||
|
||||
Ivy doesn't require a specific version of Ant as long as the Ant being used complies with the JVM compatibility requirements noted above.
|
||||
|
||||
|
||||
== Other optional dependencies
|
||||
|
||||
|
||||
The required versions of the Apache HttpClient, Jsch or any optional dependency are to be checked against Ivy's dependency descriptor. In Ivy's source, check for the ivy.xml file at the root. Or the pom.xml of `org.apache.ivy#ivy` in the Maven Central repository.
|
||||
|
||||
|
||||
== Environment / Configuration Requirements
|
||||
|
||||
|
||||
Ivy does not at this time support multithreaded use. It thus should not be used with the ant `<parallel>` task.
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,404 @@
|
|||
|
||||
|
||||
== [[dependency-resolver]]Dependency Resolver
|
||||
|
||||
A dependency resolver is a pluggable class in ivy which is used to:
|
||||
|
||||
|
||||
* find dependencies' ivy files +
|
||||
|
||||
* download dependencies' artifacts +
|
||||
|
||||
The notion of artifact "downloading" is large: an artifact can be on a web site, or on the local file system of your machine. The download is thus the act of bring a file from a repository to the ivy cache.
|
||||
|
||||
Moreover, the fact that it is the responsibility of the resolver to find ivy files and download artifacts helps to implement various resolving strategies.
|
||||
|
||||
As you see, a dependency resolver can be thought of as a class responsible for describing a repository.
|
||||
|
||||
If you want to see which resolvers are available in ivy, you can go to the link:settings/resolvers.html[resolvers configuration page].
|
||||
|
||||
|
||||
== [[configurations]]Module configurations explained
|
||||
|
||||
Module configurations are described in the terminology page as _a way to use or construct a module_. Configurations being a central part of Ivy, they need more explanations as a concept.
|
||||
|
||||
|
||||
When you define a way to use or construct a module, you are able to define which artifacts are published by this module in this configuration, and you are also able to define which dependencies are needed in this configuration.
|
||||
|
||||
Moreover, because dependencies in ivy are expressed on modules and not on artifacts, it is important to be able to define which configurations of the dependency are required in the configuration you define of your module. That's what is called *configuration mapping*.
|
||||
|
||||
If you use only simple modules and do not want to worry about configurations, you don't have to worry about them. They're still there under the hood because ivy can't work without configurations. But most of the time if you declare nothing, ivy assumes that the artifacts of your module are published in all configurations, and that all the dependencies' configurations are required in all configurations. And it works in simple cases. But whenever you want to separate things within a module, or get more control over things published and get better dependencies resolution, configurations will meet most of your needs.
|
||||
|
||||
For details on how to declare your module configurations, how to declare in which configuration your artifacts are published, and how to declare configuration mapping, please refer to link:ivyfile.html[ivy file documentation]. The link:tutorial/conf.html[configurations tutorial] is also a good place to go to learn more about this concept.
|
||||
|
||||
|
||||
== [[variables]]Variables
|
||||
|
||||
During configuration, ivy allows you to define what are called ivy variables. Ivy variables can be seen as ant properties, and are used in a very similar way. In particular, you use a properties tag in the configuration file to load a properties file containing ivy variables and their values.
|
||||
|
||||
But the main differences between ant properties and ivy variables are that ivy variables can be overridden, whereas ant
|
||||
properties can't, and that they are defined in separate environments.
|
||||
|
||||
Actually all ant properties are imported into ivy variables when the configuration is done (if you call ivy from ant).
|
||||
This means that if you define an ant property after the call to configure, it will not be available as an ivy variable.
|
||||
On the other hand, ivy variables are NOT exported to ant, thus if you define ivy variables in ivy, do not try to use them as ant properties.
|
||||
|
||||
To use ivy variables, you just have to follow the same syntax as for ant properties:
|
||||
${__variablename__}
|
||||
where __variablename__ is the name of the variable.
|
||||
|
||||
Finally, it's also important to be aware of the time of substitution of variables. This substitution is done as soon as possible. This means that when ivy encounters a reference to a variable, it tries to substitute it if such a variable is defined. Consequently, *any later modification of the variable will not alter the value already substituted*.
|
||||
|
||||
Moreover, in an ant environment, a bunch of variables are going to be set by default via the ant property file loading mechanism (actually they are first loaded as ant properties and then imported as ivy variables, see link:ant.html[Ant Tasks]), and even in the ant properties themselves there is going to be eager substitution on loading, effectively making it impossible to override some variable purely via the ivysettings.properties file. Some variables will really only be able to be overridden via ant properties because of this.
|
||||
|
||||
Moreover, it's also important to understand the difference between ivy variables and ivy pattern tokens.
|
||||
See the Patterns chapter below for what pattern tokens are.
|
||||
|
||||
== [[patterns]]Patterns
|
||||
|
||||
|
||||
Ivy patterns are used in many dependency resolvers and ivy tasks, and are a simple way to structure the way ivy works.
|
||||
|
||||
First let's give an example. You can for instance configure the file system dependency resolver by giving it
|
||||
a pattern to find artifacts. This pattern can be like this:
|
||||
myrepository/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]
|
||||
|
||||
This pattern indicates that the repository we use is in a directory called myrepository.
|
||||
|
||||
In this directory we have directories having for name the name of the organisation of the module we look for.
|
||||
Then we have a directory per module, each having for name the name of the module.
|
||||
Then in module directories we find a directory per artifact type (jars, wars, ivys, ...), in which we find artifacts named by the artifact id, followed by a hyphen, then the revision, a dot, and the artifact extension.
|
||||
Not too difficult to understand is it? That's it, you have understood the pattern concept!
|
||||
|
||||
To give a bit more explanation, a pattern is composed of tokens, which are replaced by actual values when evaluated for a particular artifact or module. Those tokens are different from variables because they are replaced differently for each artifact, whereas variables are usually given the same value.
|
||||
|
||||
You can mix variables and tokens in a pattern:
|
||||
${repository.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]
|
||||
|
||||
|
||||
|
||||
The tokens available depends on where the pattern is used (will it be evaluated with artifacts or modules, for instance).
|
||||
But here are all the tokens currently available:
|
||||
|
||||
|
||||
* [organisation] +
|
||||
the organisation name
|
||||
|
||||
* [orgPath] *__(since 2.3)__* +
|
||||
the organisation name where '.' has been replaced by '/'. This can be used to configure maven2-like repositories.
|
||||
|
||||
* [module] +
|
||||
the module name
|
||||
|
||||
* [branch] +
|
||||
the branch name
|
||||
|
||||
* [revision] +
|
||||
the revision name
|
||||
|
||||
* [artifact] +
|
||||
the artifact name (or id)
|
||||
|
||||
* [type] +
|
||||
the artifact type
|
||||
|
||||
* [ext] +
|
||||
the artifact file extension
|
||||
|
||||
* [conf] +
|
||||
the configuration name
|
||||
|
||||
* [originalname] *__(since 1.4)__* +
|
||||
the original artifact name (including the extension)
|
||||
|
||||
|
||||
The difference between type and extension is explained in the ivy file documentation.
|
||||
|
||||
*__since 1.2__* [organization] can be used instead of [organisation].
|
||||
|
||||
*__since 1.3__* Optional parts can be used in patterns.
|
||||
This provides the possibility to avoid some input when a token is not defined, instead of having only the token as blank. Parenthesis are used to delimit the optional part, and only one token can be found inside the parenthesis.
|
||||
So if you surround a token with '(' and ')', any other text which is between the parenthesis will be ignored if the token has no value.
|
||||
|
||||
For instance, suppose the pattern: "abc(def[type]ghi)"
|
||||
type = "jar" -> the substituted pattern: abcdefjarghi
|
||||
type = null or "" -> the substitued pattern: abc
|
||||
|
||||
A more real life example:
|
||||
The pattern
|
||||
[source]
|
||||
----
|
||||
[artifact](-[revision]).[ext]
|
||||
----
|
||||
|
||||
lets you accept both myartifact-1.0.jar when a revision is set, and myartifact.jar (instead of myartifact-.jar) when no revision is set.
|
||||
This is particularly useful when you need to keep control of artifact names.
|
||||
|
||||
*__since 1.4__* Extra attributes can be used as any other token in a pattern.
|
||||
|
||||
|
||||
== [[latest]]Latest Strategy
|
||||
|
||||
Ivy often needs to know which revision between two is considered the "latest". To know that, it uses the concept of latest strategy. Indeed, there are several ways to consider a revision to be the latest. You can choose an existing one or plug in your own.
|
||||
|
||||
But before knowing which revision is the latest, ivy needs to be able to consider several revisions of a module. Thus ivy has to get a list of files in a directory, and it uses the dependency resolver for that. So check if the dependency resolver you use is compatible with latest revisions before wondering why ivy does not manage to get your latest revision.
|
||||
|
||||
Finally, in order to get several revisions of a module, most of the time you need to use the [revision] token in your pattern so that ivy gets all the files which match the pattern, whatever the revision is. It's only then that the latest strategy is used to determine which of the revisions is the latest one.
|
||||
|
||||
Ivy has three built-in latest strategies:
|
||||
|
||||
|
||||
* latest-time +
|
||||
This compares the revisions date to know which is the latest. While this is often a good strategy in terms of pertinence, it has the drawback of being costly to compute for distant repositories. If you use ivyrep, for example, ivy has to ask the http server what is the date of each ivy file before knowing which is the latest.
|
||||
|
||||
* latest-revision +
|
||||
This compares the revisions as strings, using an algorithm close to the one used in the php version_compare function.
|
||||
This algorithm takes into account special meanings of some text. For instance, with this strategy, 1.0-dev1 is considered before 1.0-alpha1, which in turn is before 1.0-rc1, which is before 1.0, which is before 1.0.1.
|
||||
|
||||
* latest-lexico +
|
||||
This compares the revisions as strings, using lexicographic order (the one used by the Java string comparison).
|
||||
|
||||
|
||||
See also how to configure new latest strategies link:settings/latest-strategies.html[here].
|
||||
|
||||
|
||||
== [[conflict]]Conflict Manager
|
||||
|
||||
A conflict manager is able to select, among a list of module revisions in conflict, a list of revisions to keep.
|
||||
Yes, it can select a list of revisions, even if most conflict managers select only one revision.
|
||||
But in some cases you will need to keep several revisions, and load in separate class loaders, for example.
|
||||
|
||||
A list of revisions is said to be in conflict if they correspond to the same module, i.e. the same organisation/module name couple.
|
||||
|
||||
The list of available conflict managers is available on the link:settings/conflict-managers.html[conflict manager configuration page].
|
||||
|
||||
For more details on how to setup your conflict managers by module, see the link:ivyfile/conflicts.html[conflicts] section in the ivy file reference.
|
||||
|
||||
|
||||
== [[matcher]]Pattern matcher
|
||||
|
||||
*__since 1.3__*
|
||||
In several places Ivy uses a pattern to match a set of objects. For instance, you can exclude several modules at once when declaring a dependency by using a pattern matching all the modules to exclude.
|
||||
|
||||
Ivy uses a pluggable pattern matcher to match those object names. 3 are defined by default:
|
||||
|
||||
|
||||
* exact +
|
||||
This matcher matches only using strings
|
||||
|
||||
* regexp +
|
||||
This matcher lets you use a regular expression as supported by the Pattern class of java 1.4 or greater
|
||||
|
||||
* glob +
|
||||
This matcher lets you use a Unix-like glob matcher, i.e. where the only meta characters are * which matches any sequence of characters and ? which matches exactly one character. Note that this matcher is available only with jakarta oro 2.0.8 in your classpath.
|
||||
|
||||
Note also that with any matcher, the character '*' has the special meaning of matching anything. This is particularly useful with default values which do not depend on the matcher.
|
||||
|
||||
|
||||
== [[extra]]Extra attributes
|
||||
|
||||
*__since 1.4__*
|
||||
Several tags in ivy xml files are extensible with what is called extra attributes.
|
||||
The idea is very simple: if you need some more information to define your modules, you can add the attribute you want and you will then be able to access it as any other attribute in your patterns.
|
||||
|
||||
*__since 2.0__*
|
||||
It's possible and recommended to use xml namespaces for your extra attributes. Using an Ivy extra namespace is the easiest way to add your own extra attributes.
|
||||
|
||||
Example:
|
||||
Here is an ivy file with the attribute 'color' set to blue:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
|
||||
<info organisation="apache"
|
||||
module="foo"
|
||||
e:color="blue"
|
||||
status="integration"
|
||||
revision="1.59"
|
||||
/>
|
||||
</ivy-module>
|
||||
|
||||
----
|
||||
|
||||
Then you must use the extra attribute when you declare a dependency on foo. Those extra attributes
|
||||
will indeed be used as identifiers for the module like the org the name and the revision:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<dependency org="apache" name="foo" e:color="blue" rev="1.5+" />
|
||||
|
||||
----
|
||||
|
||||
And you can define your repository pattern as:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
${repository.dir}/[organisation]/[module]/[color]/[revision]/[artifact].[ext]
|
||||
|
||||
----
|
||||
|
||||
Note that in patterns you must use the unqualified attribute name (no namespace prefix).
|
||||
|
||||
If you don't want to use xml namespaces, it's possible but you will need to disable ivy file validation, since your files won't fulffill anymore the official ivy xsd. See the link:settings/settings.html[settings documentation] to see how to disable validation.
|
||||
|
||||
== [[checksum]]Checksums
|
||||
|
||||
*__since 1.4__*
|
||||
Ivy allows the use of checksums, also known as digests, to verify the correctness of a downloaded file.
|
||||
|
||||
The configuration of using the algorithm can be done globally or by dependency resolver.
|
||||
Globally, use the ivy.checksums variable to list the check to be done.
|
||||
On each resolver you can use the checksums attribute to override the global setting.
|
||||
|
||||
The setting is a comma separated list of checksum algorithms to use.
|
||||
During checking (at download time), the first checksum found is checked, and that's all. This means that if you have a "SHA-256, sha1, md5" setting, then if ivy finds a SHA-256 file, it will compare the downloaded file SHA-256 against this SHA-256, and if the comparison is ok, it will assume the file is ok. If no SHA-256 file is found, it will look for an sha1 file. If that isn't found, then it checks for md5 and so on. If none is found no checking is done.
|
||||
During publish, all listed checksum algorithms are computed and uploaded.
|
||||
|
||||
By default checksum algorithms are "sha1, md5".
|
||||
|
||||
If you want to change this default, you can set the variable ivy.checksums. Hence, to disable checksum validation you just have to set ivy.checksums to "".
|
||||
|
||||
|
||||
=== Supported algorithms
|
||||
|
||||
*__since 1.4__*
|
||||
|
||||
|
||||
* md5 +
|
||||
|
||||
* sha1 +
|
||||
|
||||
*__since 2.5__*
|
||||
Starting 2.5 version, in addition to md5 and sha1, Ivy supports SHA-256, SHA-512 and SHA-384 algorithms, if the Java runtime in which Ivy is running, supports those. For example, Java 6 runtime supports SHA-256 and SHA-512 as standard algorithms. If Ivy 2.5 and later versions are run under Java 6 or higher runtimes, these algorithms are supported by Ivy too.
|
||||
|
||||
|
||||
== [[event]]Events and Triggers
|
||||
|
||||
*__since 1.4__*
|
||||
When Ivy performs the dependency resolution and some other tasks, it fires events before and after the most important steps. You can listen to these events using Ivy API, or you can even register a trigger to perform a particular action when a particular event occur.
|
||||
|
||||
This is a particularly powerful and flexible feature which allows, for example, you to perform a build of a dependency just before it is resolved, or follow what's happening during the dependency resolution process accuratly, and so on.
|
||||
|
||||
For more details about events and triggers, see the link:settings/triggers.html[triggers] documentation page in the configuration section of this documentation.
|
||||
|
||||
|
||||
== [[circular]]Circular Dependencies
|
||||
|
||||
*__since 1.4__*
|
||||
Circular dependencies can be either direct or indirect. For instance, if A depends on A, it's a circular dependency, and if A depends on B which itself depends on A, this is also a circular dependency.
|
||||
|
||||
Prior to Ivy 1.4 circular dependencies where causing a failure in Ivy. As of Ivy 1.4, the behaviour of Ivy when it finds a circular dependency is configurable through a circular dependency strategy.
|
||||
|
||||
3 built-in strategies are available:
|
||||
|
||||
|
||||
* ignore +
|
||||
circular dependencies are only signaled in verbose messages
|
||||
|
||||
* warn +
|
||||
same as ignore, except that they are signaled as a warning (default)
|
||||
|
||||
* error +
|
||||
halt the dependency resolution when a circular dependency is found
|
||||
|
||||
|
||||
See the link:settings/settings.html[configuration page] to see how to configure the circular dependency strategy you want to use.
|
||||
|
||||
|
||||
== Cache and Change Management
|
||||
|
||||
Ivy heavily relies on local caching to avoid accessing remote repositories too often, thus saving a lot of network bandwidth and time.
|
||||
|
||||
|
||||
=== [[cache]]Cache types
|
||||
|
||||
An Ivy cache is composed of two different parts:
|
||||
|
||||
|
||||
* the repository cache +
|
||||
The repository cache is where Ivy stores data downloaded from module repositories, along with some meta information concerning these artifacts, like their original location.
|
||||
This part of the cache can be shared if you use a well suited link:settings/lock-strategies.html[lock strategy].
|
||||
|
||||
* the resolution cache +
|
||||
This part of the cache is used to store resolution data, which is used by Ivy to reuse the results of a resolve process.
|
||||
This part of the cache is overwritten each time a new resolve is performed, and should never be used by multiple processes at the same time.
|
||||
|
||||
|
||||
While there is always only one resolution cache, you can link:settings/caches.html[define multiple repository caches], each link:settings/resolvers.html[resolver] being able to use a separate cache.
|
||||
|
||||
|
||||
=== [[change]]Change management
|
||||
|
||||
To optimize the dependency resolution and the way the cache is used, Ivy assumes by default that a revision never changes. So once Ivy has a module in its cache (metadata and artifacts), it trusts the cache and does not even query the repository. This optimization is very useful in most cases, and causes no problem as long as you respect this paradigm: a revision never changes. Besides performance, there are several link:bestpractices.html[good reasons] to follow this principle.
|
||||
|
||||
However, depending on your current build system and your dependency management strategy, you may prefer to update your modules sometimes. There are two kinds of changes to consider:
|
||||
|
||||
==== Changes in module metadata
|
||||
|
||||
Since pretty often module metadata are not considered by module providers with as much attention as their API or behavior (if they even provide module metadata), it happens more than we would like that we have to update module metadata: a dependency has been forgotten, or another one is missing, ...
|
||||
|
||||
In this case, setting checkModified="true" on your dependency resolver will be the solution. This flag tells Ivy to check if module metadata has been modified compared to the cache. Ivy first checks the metadata last modified timestamp on the repository to download it only if necessary, and then updates it when needed.
|
||||
|
||||
==== Changes in artifacts
|
||||
|
||||
Some people, especially those coming from maven 2 land, like to use one special revision to handle often updated modules. In maven 2 this is called a SNAPSHOT version, and some argue that it helps save disk space to keep only one version for the high number of intermediary builds you can make whilst developing.
|
||||
|
||||
Ivy supports this kind of approach with the notion of "changing revision". A changing revision is just that: a revision for which Ivy should consider that the artifacts may change over time. To handle this, you can either specify a dependency as changing on the link:ivyfile/dependency.html[dependency] tag, or use the changingPattern and changingMatcher attributes on your link:settings/resolvers.html[resolvers] to indicate which revision or group of revisions should be considered as changing.
|
||||
|
||||
Once Ivy knows that a revision is changing, it will follow this principle to avoid checking your repository too often: if the module metadata has not changed, it will considered the whole module (including artifacts) as not changed. Even if the module descriptor file has changed, it will check the publication data of the module to see if this is a new publication of the same revision or not. Then if the publication date has changed, it will check the artifacts' last modified timestamps, and download them accordingly.
|
||||
|
||||
So if you want to use changing revisions, use the link:use/publish.html[publish] task to publish your modules, it will take care of updating the publication date, and everything will work fine. And remember to set checkModified=true" on your resolver too!
|
||||
|
||||
== [[paths]]Paths handling
|
||||
|
||||
As a dependency manager, Ivy has a lot of file related operations, which most of the time use paths or path patterns to locate the file on the filesystem.
|
||||
|
||||
These paths can obviously be relative or absolute. We recommend to always use absolute paths, so that you don't have to worry about what is the base of your relative paths. Ivy provides some variables which can be used as the base of your absolute paths. For instance, Ivy has a concept of base directory, which is basically the same as for Ant. You have access to this base directory with the ivy.basedir variable. So if you have a path like
|
||||
[source]
|
||||
----
|
||||
${ivy.basedir}/ivy.xml
|
||||
----
|
||||
|
||||
, you have an absolute path. In link:settings.html[settings files], you also have a variable called ivy.settings.dir which points to the directory in which your settings file is located, which makes defining paths relative to this directory very easy.
|
||||
|
||||
If you really want to use relative paths, the base directory used to actually locate the file depends on where the relative path is defined:
|
||||
|
||||
|
||||
* In an Ivy file, paths are relative to the Ivy file itself (the only possible path in an Ivy file is for configurations declaration inclusion) +
|
||||
|
||||
* In settings files, paths for file inclusion (namely properties file loading and settings inclusion) are relative to the directory in which the settings file is located. All other paths must be absolute unless explicitly noted. +
|
||||
|
||||
* In Ivy Ant tasks and Ivy parameters or options, paths are relative to Ivy base directory, which when called from Ant is the same as your Ant basedir. +
|
||||
|
||||
|
||||
|
||||
== [[packaging]]Packaging
|
||||
|
||||
|
||||
Most of the artifacts found in a repository are jars. They can be downoaded and used as is. But some other kind of artifacts required some __unpacking__ after being downloaded and before being used. Such artifacts can be zipped folders and packed jars. Ivy supports that kind of artifact with *packaging*.
|
||||
|
||||
A __packaged__ artifact needs to be declared as such in the module descriptor via the attribute link:ivyfile/artifact.html[packaging]. The value of that attribute defined which kind of unpacking algorithm must be used. Here are the list of currently supported algorithms:
|
||||
|
||||
|
||||
* `zip`, `jar` or `war`: the artifact will be uncompressed as a folder +
|
||||
|
||||
* `pack200`: the artifact will be unpacked to a file via the link:http://docs.oracle.com/javase/7/docs/technotes/tools/share/pack200.html[pack200] algorithm +
|
||||
|
||||
* `bundle`: the OSGi artifact will be uncompressed as a folder, and every embedded jar file entry which is packed via the the link:http://docs.oracle.com/javase/7/docs/technotes/tools/share/pack200.html[pack200] algorithm will be unpacked +
|
||||
|
||||
|
||||
So, if in an `ivy.xml`, there would be declared a such artifact:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<artifact name="mymodule" type="jar" ext="jar.pack.gz" packaging="pack200" />
|
||||
|
||||
----
|
||||
|
||||
A file `mymodule-1.2.3.jar.pack.gz` would be download into the cache, and also uncompressed in the cache to `mymodule-1.2.3.jar`. Then any post resolve task which supports it, like the link:use/cachepath.html[cachepath], will use the uncompressed file instead of the orginal compressed file.
|
||||
|
||||
It is possible to chain packing algorithm. The attribute link:ivyfile/artifact.html[packaging] of a artifact expects a comma separated list of packing types, in packing order. For instance, an artifact '`mymodule-1.2.3.jar.pack.gz`' can have the packaging '`jar,pack200`', so it would be uncompressed as a folder '`mymodule-1.2.3`'.
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:settings.html[here].
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/caches.html[here].
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../../settings/caches/cache.html[here].
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../../settings/caches/ttl.html[here].
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/classpath.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/settings.html[here].
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/conflict-managers.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/include.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/latest-strategies.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/lockstrategies.html[here].
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/macrodef.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../../settings/macrodef/attribute.html[here].
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/module.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/modules.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/namespace.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../../settings/namespace/dest.html[here].
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../../settings/namespace/fromtosystem.html[here].
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../../settings/namespace/rule.html[here].
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../../settings/namespace/src.html[here].
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/namespaces.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/outputters.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/parsers.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/properties.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/property.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/resolvers.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/status.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/statuses.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/triggers.html[here].
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/typedef.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
This page has moved. If your browser doesn't automatically redirect to its new location, click
|
||||
link:../settings/version-matchers.html[here].
|
||||
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
|
||||
|
||||
== Building from source
|
||||
|
||||
To build Ivy from source it's really easy.
|
||||
|
||||
=== Requirements
|
||||
|
||||
All you need is
|
||||
|
||||
|
||||
* an link:http://subversion.tigris.org/[svn] client +
|
||||
_to check out Ivy sources from apache svn, not required if you build from sources packaged in a release_
|
||||
|
||||
* link:http://ant.apache.org/[Apache Ant] 1.6.0 or greater +
|
||||
_We recommend either ant 1.6.5 or 1.7.0_
|
||||
|
||||
* link:http://junit.org[junit] 3.8.2 jar in your ant lib +
|
||||
_ this is not required if you use ant 1.7_
|
||||
|
||||
* a link:http://java.sun.com/[jdk] 1.5 or greater +
|
||||
_Build instructions have been successfully tested with sun jdk 1.5.0 and 1.6.0_
|
||||
|
||||
|
||||
|
||||
=== Procedure
|
||||
|
||||
|
||||
==== Get the source
|
||||
|
||||
You can either get the sources from a release, or get them directly from svn. For instance, to get the trunk version:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
svn co https://svn.apache.org/repos/asf/ant/ivy/core/trunk ivy
|
||||
|
||||
----
|
||||
|
||||
|
||||
==== Build
|
||||
|
||||
Go to the directory where you get the Ivy sources (you should see a file named build.xml) and run:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant
|
||||
|
||||
----
|
||||
|
||||
|
||||
==== Check the result
|
||||
|
||||
The ant build will compile the core classes of Ivy and use them to resolve the dependencies (used for some optional features). Then it will compile and run tests with coverage metrics.
|
||||
|
||||
If everything goes well, you should see the message
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
BUILD SUCCESSFUL
|
||||
|
||||
----
|
||||
|
||||
Then you can check the test results in the build/doc/reports/test directory, the jars are in build/artifacts, and the test coverage report in build/doc/reports/coverage
|
||||
|
||||
== Coding conventions
|
||||
|
||||
The Ivy code base is supposed to follow the standard java conventions:
|
||||
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
|
||||
|
||||
This is a work in progress though (see link:https://issues.apache.org/jira/browse/IVY-511[IVY-511]), but patches helping migration to these conventions are welcome.
|
||||
|
||||
|
||||
== Developing with eclipse
|
||||
|
||||
Even though you can develop Ivy with your IDE of choice, we support eclipse development by providing ad hoc metadata.
|
||||
|
||||
We currently provide two options:
|
||||
|
||||
=== Eclipse alone
|
||||
|
||||
To develop with a simple eclipse install all you need is eclipse 3.1 or greater, with no particular plugin.
|
||||
First call the following ant target in your Ivy workspace:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant eclipse-default
|
||||
|
||||
----
|
||||
|
||||
This will resolve the dependencies of Ivy and produce a .classpath using the resolved jars for the build path.
|
||||
Then you can use the "Import->Existing project into workspace" eclipse feature to import the Ivy project in your workspace.
|
||||
|
||||
=== Eclipse + IvyDE
|
||||
|
||||
You can also leverage the latest IvyDE version to be able to easily resolve the ivy dependencies from Eclipse.
|
||||
To do so all you need is call the following ant target in your Ivy workspace:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant eclipse-ivyde
|
||||
|
||||
----
|
||||
|
||||
or if you don't have ant installed you can simply copy the file .classpath.ivyde and rename it to .classpath
|
||||
Then you can import the project using "Import->Existing project into workspace" as long as you already have latest IvyDE installed.
|
||||
|
||||
To install latest IvyDE version compatible with the latest Ivy used to resolve Ivy dependencies, you will need to use a snapshot build, not endorsed by the ASF, available here:
|
||||
http://people.apache.org/~xavier/ivyde/snapshot/
|
||||
|
||||
Download the file and unzip its content in your eclipse installation directory.
|
||||
|
||||
|
||||
=== recommended plugins
|
||||
|
||||
The Ivy project comes with settings for the link:http://eclipse-cs.sourceforge.net/[checkstyle plugin] we recommend to use to avoid introducing new disgression to the checkstyle rules we use.
|
||||
If you use this plugin, you will many errors in Ivy. As we said, following strict checkstyle rules is a work in progress and we used to have pretty different code conventions (like using _ as prefix for private attributes), so we still have things to fix. We usually use the filter in the problems view to filter out checkstyle errors from this view, which helps to know what the real compilation problem are.
|
||||
|
||||
Besides this plugin we also recommend to use a subversion plugin, link:http://www.eclipse.org/subversive/[subversive] or link:http://subclipse.tigris.org[subclipse] being the two options currently available in the open source landscape.
|
||||
|
|
@ -0,0 +1,318 @@
|
|||
|
||||
|
||||
== Making a release
|
||||
|
||||
|
||||
=== Requirements
|
||||
|
||||
Requirements for making a release are similar to the requirements for building from source, except that JDK 1.6+ and Apache Ant 1.9+ are required.
|
||||
|
||||
=== Procedure
|
||||
|
||||
|
||||
==== 1. Check the files which needs to be updated for the release.
|
||||
|
||||
On the master, check that files which require update for the release are up to date.
|
||||
This includes particularly:
|
||||
doc/release-notes.html
|
||||
|
||||
==== 2. Check out a clean copy of the branch
|
||||
|
||||
Run the following git command to checkout the branch, revert any change and remove untracked and ignored files:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
git checkout 2.0.x
|
||||
git reset --hard
|
||||
git clean -d -x -f
|
||||
|
||||
----
|
||||
|
||||
|
||||
==== 3. Add Ivy xsd file.
|
||||
|
||||
You need to store the current ivy xml schema in the documentation, so that it will later be accessible on public web site. To do so, run the following command in the directory in which you checked out the release branch:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant -f build-release.xml release-xsd
|
||||
|
||||
----
|
||||
|
||||
And commit your changes in the branch:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
git add doc/ivy.xsd
|
||||
git commit -m "release the ivy.xsd"
|
||||
|
||||
----
|
||||
|
||||
|
||||
==== 4. Launch the release script
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant -f build-release.xml release
|
||||
|
||||
----
|
||||
|
||||
The status should be release only for final releases, and milestone for any other intermediate release.
|
||||
If the release script is successful, release artifacts will be waiting for you in the build/distrib directory.
|
||||
|
||||
|
||||
==== 5. Verify the release
|
||||
|
||||
Check that all zips can be opened correctly, and that running 'ant' after unzipping the source distribution works properly.
|
||||
You can also do a smoke test with the generated ivy.jar, to see if it is able to resolve properly a basic module (for instance you can run some tutorials provided in the src/example directory in all distributions).
|
||||
|
||||
|
||||
==== 6. Sign the artifacts
|
||||
|
||||
It's now time to sign the release artifacts and upload them to a location accessible by other Apache commiters.
|
||||
|
||||
Here is a simple way to sign the files using gnupg:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
gpg --armor --output file.zip.asc --detach-sig file.zip
|
||||
|
||||
----
|
||||
|
||||
Here is a ruby script you can use to sign the files:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
require 'find'
|
||||
|
||||
Find.find('build/distrib') do |f|
|
||||
`gpg --armor --output #{f}.asc --detach-sig #{f}` if File.file?(f) && ['.zip', '.gz', '.jar', '.pom'].include?(File.extname(f))
|
||||
end
|
||||
|
||||
----
|
||||
|
||||
Be prepared to enter your passphrase several times if you use this script, gpg will ask for your passphrase for each file to sign.
|
||||
|
||||
|
||||
==== 7. Prepare the Eclipse update site
|
||||
|
||||
|
||||
To be able to test the release within IvyDE, it can be deployed in the IvyDE update site. See link:http://ant.apache.org/ivy/ivyde/history/trunk/dev/updatesite.html[that page] to know how to process.
|
||||
|
||||
|
||||
==== 8. Publish the release candidate
|
||||
|
||||
|
||||
All artifacts in `build/distrib/dist` needs to be published on the 'dist' svn of the ASF, in the *dev* part.
|
||||
|
||||
The following command lines should do the job:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
svn checkout -N https://dist.apache.org/repos/dist/dev/ant/ivy build/distrib/dist
|
||||
svn add build/distrib/dist/*
|
||||
svn commit build/distrib/dist -m 'Ivy 2.4.0 distribution'
|
||||
|
||||
----
|
||||
|
||||
|
||||
==== 9. Publish the Maven artifact to Nexus
|
||||
|
||||
|
||||
Having your GPG key ID, its password, your apache ID and the associated password, just launch ant and enter the information as required:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant -f build-release.xml upload-nexus
|
||||
|
||||
----
|
||||
|
||||
Once uploaded, log in https://repository.apache.org/ with your prefered web browser (use your Apache ID).
|
||||
|
||||
You should find there an __open__ repository with the name of the form `orgapacheant-XXXX`. It should contain the Maven artifacts: the pom, the jar, the sources, the javadocs and the md5 and asc files.
|
||||
|
||||
Now __close__ the staging repository, with the description "Ivy 2.0.0-beta1". Closing means you finished the upload and some automatic checks will run. You can see them in the __Activity__ tab of the repository.
|
||||
|
||||
Once the checks passed, you can find in the __Summary__ the URL of the staging repository. It will something like: https://repository.apache.org/content/repositories/orgapacheant-XXXX/
|
||||
|
||||
|
||||
==== 10. Create a signed tag
|
||||
|
||||
As soon as you are happy with the artifacts to be released, it is time to tag the release
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
git tag -s 2.0.0-beta1 -m 'Release Ivy 2.0.0-beta1'
|
||||
|
||||
----
|
||||
|
||||
And push the changes to the ASF repo
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
git push --tags
|
||||
|
||||
----
|
||||
|
||||
|
||||
==== 11. Call for a vote to approve the release
|
||||
|
||||
Cast a vote to approve the release on the dev@ant.apache.org mailing list.
|
||||
|
||||
Here is an example:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
Subject: [VOTE] Ivy ${version} Release
|
||||
|
||||
I have built a release candidate for Ivy ${version}
|
||||
|
||||
The svn tag of this release is: https://git-wip-us.apache.org/repos/asf?p=ant-ivy.git;a=tag;h=refs/tags/2.0.0-beta1
|
||||
|
||||
The artifacts has been published to: https://dist.apache.org/repos/dist/dev/ant/ivy/$VERSION at revision ${svn-rev-of-the-check-in}
|
||||
|
||||
The staging maven repository is availble there: https://repository.apache.org/content/repositories/orgapacheant-XXXX
|
||||
|
||||
The Eclipse updatesite has been build there: https://dist.apache.org/repos/dist/dev/ant/ivyde/updatesite/ivy-2.0.0.beta1_20141213170938/
|
||||
|
||||
Do you vote for the release of these binaries?
|
||||
|
||||
[ ] Yes
|
||||
[ ] No
|
||||
|
||||
Regards,
|
||||
|
||||
${me}, Ivy ${version} release manager
|
||||
|
||||
----
|
||||
|
||||
|
||||
==== 12. Publish the release
|
||||
|
||||
|
||||
If the release is approved, it's now time to make it public. The artifacts in the __dev__ part needs to be moved into the __release__ one:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
$ svn mv https://dist.apache.org/repos/dist/dev/ant/ivy/$VERSION https://dist.apache.org/repos/dist/release/ant/ivy/$VERSION
|
||||
|
||||
----
|
||||
|
||||
In order to keep the main dist area of a reasonable size, old releases should be removed. They will disapear from the main dist but will still be available via the link:http://archive.apache.org/dist/ant/ivy/[archive]. To do so, just use the `svn rm` command against the artifacts or folders to remove.
|
||||
|
||||
|
||||
==== 13. Promote the Maven staging repository
|
||||
|
||||
|
||||
Go log in https://repository.apache.org/ with your prefered web browser (use your Apache ID).
|
||||
|
||||
Select the appropriate `orgapacheant-XXXX` repository and select the __Release__ action.
|
||||
|
||||
|
||||
==== 14. Update the web site
|
||||
|
||||
|
||||
It's time to update the download image used on the home page and the download page. Use site/images/ivy-dl.xcf as a basis if you have link:http://www.gimp.org/[gimp] installed. Then you can update the home page to refer to this image, and add a news item announcing the new version. Update also the download page with the new image and update the links to the download location (using a search/replace on the html source is recommended for this).
|
||||
|
||||
The just release documentation should be added to the site. To do so, you need to:
|
||||
|
||||
|
||||
. edit the toc.json file in the site component of Ivy +
|
||||
and add a piece of json with a title and an url; note that the version in the url must be the same as the tag in the git repo.
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
{
|
||||
"title":"2.0.0-beta1",
|
||||
"url":"http://ant.apache.org/ivy/history/2.0.0-beta1/index.html"
|
||||
}
|
||||
|
||||
----
|
||||
|
||||
|
||||
. generate the part of the site for the new version: +
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant checkout-history -Dhistory.version=2.0.0-beta1
|
||||
ant generate-history -Dhistory.version=2.0.0-beta1
|
||||
|
||||
----
|
||||
|
||||
|
||||
. if the 'latest-milestone' needs to be update too, run: +
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant checkout-history -Dhistory.version=2.0.0-beta1 -Dtarget.history.folder=latest-milestone
|
||||
|
||||
----
|
||||
|
||||
|
||||
|
||||
Now let's generate the website with the new toc:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ant /all generate-site
|
||||
|
||||
----
|
||||
|
||||
You should verify that the site generated in the production directory is OK. You can open the files with your prefered web browser like it was deployed.
|
||||
|
||||
And once your happy with it, commit the changes in the source directory, and in the production directoy to get it actually deployed via svnpubsub.
|
||||
|
||||
Tip: lot's of files might need to be 'added' to svn. An handy command to `add` any file which is not yet under version control is the following one:
|
||||
|
||||
[source]
|
||||
----
|
||||
svn add --force sources
|
||||
----
|
||||
|
||||
|
||||
==== 15. Deploy the Eclipse updatesite
|
||||
|
||||
|
||||
If the Eclipse update site has already been prepared to include that new Ivy release, it is now needed to be deployed. Then follow the deployment instruction on link:http://ant.apache.org/ivy/ivyde/history/trunk/dev/updatesite.html[that page].
|
||||
|
||||
|
||||
==== 16. Announce
|
||||
|
||||
Announce the release on the dev@ant.a.o, ivy-user@ant.a.o, user@ant.apache.org and announce@apache.org mailing lists.
|
||||
You can also announce the release on popular web sites, like freshmeat.net (xavier is the owner of the Ivy project on freshmeat), javalobby.org, theserverside.com, dzone.com, ...
|
||||
|
||||
|
||||
==== 17. Update this doc
|
||||
|
||||
If you feel like anything is missing or misleading in this release doc, update it as soon as you encounter the problem.
|
||||
|
||||
|
||||
==== 18. Merge your modifications back to the master if necessary.
|
||||
|
||||
Modifications on the template files do not need to be merged, but if you had troubles during your release you may want to merge your fixes back to the trunk.
|
||||
|
||||
|
||||
==== 19. Prepare next release
|
||||
|
||||
In the master branch, update the file version.properties with the version of the next release so that anyone building from the trunk will obtain jar with the correct version number.
|
||||
|
||||
If the version just release is a final one (not an alpha, beta or rc), the list of changes should be emptied in doc/release-notes.html, and update there the next expected version. The announcement in the file should also be changed accordingly to the next expected version.
|
||||
|
||||
Release the version in link:https://issues.apache.org/jira/browse/IVY[jira], and create a new unreleased version for the next planned version.
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
|
||||
Many things are configurable in Ivy, and many things are available with Ivy core. But when you want to do something not built in ivy core, you can still plug your own code.
|
||||
|
||||
Many things are pluggable in Ivy:
|
||||
|
||||
|
||||
* module descriptor parsers +
|
||||
|
||||
* dependency resolvers +
|
||||
|
||||
* lock strategies +
|
||||
|
||||
* latest strategies +
|
||||
|
||||
* circular dependency strategies +
|
||||
|
||||
* conflict managers +
|
||||
|
||||
* report outputters +
|
||||
|
||||
* version matchers +
|
||||
|
||||
* triggers +
|
||||
|
||||
|
||||
Before trying to implement your own, we encourage you to check if the solution to your problem cannot be addressed by existing features, or by contributed ones. Do not hesitate to ask for help on the mailing-lists.
|
||||
|
||||
If you still don't find what you need, then you'll have to develop your own plugin or find someone who could do that for you.
|
||||
|
||||
All ivy plug-ins use the same code patterns as ant specific tasks for parameters. This means that if you want to have a "myattribute" of type String, you just have to declare a method called setMyattribute(String val) on your plug-in. The same applies to child tags, you just have to follow Ant specifications.
|
||||
|
||||
All pluggable code in Ivy is located in the link:https://git-wip-us.apache.org/repos/asf?p=ant-ivy.git;a=tree;f=src/java/org/apache/ivy/plugins[org.apache.ivy.plugins] package. In each package you will find an interface that you must implement to provide a new plugin. We usually also provide an abstract class easing the implementation and making your code more independent of interface changes. We heavily recommend using these abstract classes as a base class.
|
||||
|
||||
To understand how your implementation can be done, we suggest looking at existing implementations we provide, it's the best way to get started.
|
||||
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
|
|
@ -0,0 +1,951 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 697.32 518.74" xml:space="preserve" viewBox="0 0 680.49139 191.48885" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<g transform="translate(.77474 .076835)">
|
||||
<g stroke="#010101">
|
||||
<path d="m679.14 164.41c-50.58-12.83-278.12-31.26-340.63-44.1-154.18-31.203-207.09-48.383-338.51-110.78 8.242 13.5 38.485 27.738 51.058 37.347 19.865 10.676 50.899 22.75 68.428 28.635 67.796 22.739 138.83 44.402 211.58 56.294 90.439 14.816 293.15 25.048 348.07 32.605z" stroke-width=".59560" fill="#010101"/>
|
||||
<linearGradient id="bq" y2="3507.4" gradientUnits="userSpaceOnUse" x2="-3432.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3621.6" x1="-3428.2">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m484.63 188.6-5.271-1.703-4.654-2.01-4.189-2.167-3.721-2.334-3.572-2.471-3.106-2.631-2.953-2.634-2.784-2.943-2.801-2.955-2.642-3.091-2.784-3.259-2.945-3.248-2.953-3.418-3.259-3.409-3.731-3.409-3.873-3.564-2.481-0.306-2.789-0.156-2.79-0.309-2.795-0.316-2.787-0.3-2.79-0.312-2.476-0.153-2.331-0.145 2.79 0.92 3.106 2.03 3.567 3.093 3.881 3.874 4.192 4.65 4.498 4.955 4.654 5.134 4.973 5.102 5.271 4.965 5.284 4.641 5.587 4.029 5.588 3.101 5.74 2.325 5.737 0.923 5.742-0.475 5.888-2.014-0.021-0.01z" stroke-width="0.254" fill="url(#bq)"/>
|
||||
<linearGradient id="bf" y2="3488.6" gradientUnits="userSpaceOnUse" x2="-3471.3" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3582.5" x1="-3467.7">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m503.91 187.82h-3.111l-3.26-0.767-3.411-1.4-3.42-2.009-3.409-2.477-3.586-2.942-3.401-3.259-3.418-3.417-3.259-3.565-3.104-3.718-2.953-3.56-2.792-3.564-2.331-3.259-2.173-3.099-1.703-2.64-1.402-2.167-1.861-0.158h-1.862l-1.861-0.147-1.861-0.153-1.856-0.147-1.711-0.313-1.867-0.15-1.706-0.15-1.7-0.166-1.701-0.143-1.706-0.316-1.716-0.15-1.698-0.15-1.553-0.158h-1.714l-1.543-0.147 4.029 3.57 3.881 3.865 3.887 4.182 3.873 4.185 3.729 4.18 3.884 4.345 3.876 4.029 4.192 3.718 4.188 3.56 4.648 3.101 4.661 2.642 5.124 2.162 5.576 1.397 5.894 0.606 6.354-0.152 6.837-1.097 0.016-0.002z" stroke-width="0.254" fill="url(#bf)"/>
|
||||
<linearGradient id="au" y2="3512.3" gradientUnits="userSpaceOnUse" x2="-3508.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3612.3" x1="-3504.6">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m516.58 187.95-2.953-2.021-2.632-2.32-2.642-2.325-2.635-2.315-2.336-2.483-2.479-2.634-2.322-2.629-2.318-2.637-2.183-2.801-2.334-2.62-2.167-2.793-2.328-2.629-2.323-2.789-2.334-2.484-2.32-2.634-2.496-2.481h-5.73l-2.48-0.287-2.477-0.316-2.479-0.309-2.486-0.309-2.483-0.158-2.637 0.008 4.351 6.511 4.188 5.734 4.039 5.263 3.879 4.81 3.723 4.023 3.57 3.729 3.572 3.099 3.573 2.629 3.575 2.325 3.406 1.706 3.415 1.393 3.572 0.772 3.568 0.616 3.567 0.146 3.72-0.304 3.882-0.469-0.026-0.017z" stroke-width="0.254" fill="url(#au)"/>
|
||||
<linearGradient id="aj" y2="3491.3" gradientUnits="userSpaceOnUse" x2="-3541.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3585.3" x1="-3538.1">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m530.08 187.31-2.948-2.156-2.786-2.173-2.646-2.328-2.479-2.326-2.48-2.31-2.173-2.341-2.176-2.471-2.175-2.323-2.012-2.481-1.869-2.479-2.025-2.476-1.861-2.486-1.859-2.466-1.854-2.491-2.02-2.474-1.869-2.479-16.599-1.545 2.484 2.483 2.789 2.948 2.953 3.406 3.111 3.871 3.262 3.876 3.254 4.039 3.583 4.024 3.404 3.878 3.578 3.716 3.567 3.095 3.567 2.79 3.417 2.025 3.412 1.381 3.267 0.473 3.249-0.62 2.947-1.566-0.013-0.014z" stroke-width="0.254" fill="url(#aj)"/>
|
||||
<linearGradient id="y" y2="3510.3" gradientUnits="userSpaceOnUse" x2="-3583.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3606.7" x1="-3579.6">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m557.56 183.74-2.173-0.152-2.48-0.306-2.486-0.612-2.79-0.928-2.79-1.089-2.945-1.242-3.111-1.703-3.103-1.856-3.109-2.173-3.256-2.471-3.106-2.792-3.105-2.942-3.26-3.259-2.953-3.729-2.945-3.871-2.95-4.187-2.64-0.148-2.021-0.147-1.397 0.003-1.393-0.158-1.395-0.158-1.559-0.15-2.167-0.15-2.787-0.467 3.259 4.501 3.262 4.651 3.417 4.638 3.414 4.493 3.578 4.174 3.404 4.2 3.739 3.567 3.72 3.409 3.89 2.779 3.868 2.181 4.028 1.39 4.183 0.775h4.351l4.495-0.938 4.49-2.025 4.812-3.106h0.011z" stroke-width="0.254" fill="url(#y)"/>
|
||||
<linearGradient id="n" y2="3494" gradientUnits="userSpaceOnUse" x2="-3612.3" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3588" x1="-3608.7">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m568.25 181.23-3.731-1.863-3.567-2.168-3.564-2.317-3.415-2.474-3.108-2.489-3.096-2.637-2.961-2.457-2.623-2.489-2.336-2.32-2.173-2.173-1.709-1.858-1.548-1.559-1.244-1.239-0.775-0.77-0.309-0.316-0.772-0.147-1.706-0.158-2.323-0.143-2.795-0.312-3.264-0.152-3.251-0.312-3.417-0.301-3.106-0.158 2.79 4.029 2.953 3.881 2.958 3.718 3.101 3.415 3.254 3.256 3.412 2.942 3.42 2.637 3.726 2.318 3.726 2.164 3.881 1.712 4.182 1.395 4.195 0.918 4.493 0.614 4.653 0.316 4.802-0.324 4.973-0.623-3.726-1.556z" stroke-width="0.254" fill="url(#n)"/>
|
||||
<linearGradient id="c" y2="3519.2" gradientUnits="userSpaceOnUse" x2="-3648.3" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3600.6" x1="-3645.4">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m589.5 183.1-2.175-1.234-2.795-1.703-3.099-2.184-3.425-2.325-3.567-2.637-3.718-2.795-3.729-2.784-3.57-2.618-3.425-2.643-3.09-2.483-2.643-2.165-2.175-1.703-1.543-1.403-0.625-0.765v-0.311l-1.711-0.306-2.009-0.158-2.484-0.166-2.483-0.299h-2.633l-2.476-0.145-2.325-0.161h-1.867l2.637 3.104 2.795 3.108 3.104 3.102 3.265 3.253 3.42 3.102 3.569 2.942 3.718 2.795 3.724 2.626 4.042 2.471 4.031 2.012 4.026 1.719 4.189 1.382 4.185 0.772 4.185 0.459 4.042-0.309 4.185-0.775-1.55-0.775z" stroke-width="0.254" fill="url(#c)"/>
|
||||
<linearGradient id="b" y2="3496.9" gradientUnits="userSpaceOnUse" x2="-3685.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3590.8" x1="-3681.9">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m612.11 183.7-2.795-1.558-2.637-1.696-2.798-1.708-2.786-1.706-2.637-1.854-2.787-1.861-2.632-1.867-2.795-2.009-2.645-1.856-2.784-1.861-2.647-2.015-2.79-1.849-2.629-1.722-2.805-1.846-2.787-1.709-2.784-1.697-2.643-0.153-2.476-0.163-2.486-0.158-2.486-0.29-2.315-0.169-2.325-0.147-2.181-0.143-2.018-0.155 0.78 0.619 1.712 1.548 2.631 2.323 3.57 2.787 4.045 3.417 4.646 3.56 4.968 3.71 5.276 3.723 5.284 3.404 5.432 3.113 5.109 2.613 4.971 1.864 4.495 1.078 4.032-0.002 3.267-1.087 2.476-2.473-0.026-0.005z" stroke-width="0.254" fill="url(#b)"/>
|
||||
<linearGradient id="a" y2="3562.4" gradientUnits="userSpaceOnUse" x2="-3715.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3606.1" x1="-3714.9">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m627.66 183.99-2.953-0.62-3.259-1.086-3.412-1.551-3.409-1.851-3.573-2.173-3.414-2.164-3.412-2.477-3.262-2.476-3.262-2.483-2.789-2.311-2.645-2.339-2.329-2.02-1.855-1.7-1.4-1.247-0.928-0.929-0.312-0.467-0.47-0.145-1.244-0.158-1.856-0.155-2.325-0.15-2.635-0.15-2.631 0.002-2.945-0.158-2.645-0.158 6.212 3.876 5.585 3.718 5.123 3.57 4.81 3.249 4.34 2.953 3.884 2.784 3.57 2.479 3.411 2.167 3.111 1.861 2.945 1.551 2.79 1.073 2.632 0.788 2.646 0.446 2.632-0.15 2.629-0.467 2.64-0.931 0.005-0.001z" stroke-width="0.254" fill="url(#a)"/>
|
||||
<linearGradient id="ca" y2="3536.2" gradientUnits="userSpaceOnUse" x2="-3739.1" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3631.3" x1="-3753.7">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m638.96 182.28-2.481-0.611-2.483-0.783-2.323-1.076-2.488-1.252-2.16-1.39-2.339-1.543-2.162-1.703-2.17-1.714-2.181-1.856-2.17-1.856-2.012-1.861-2.02-2.015-2.02-1.863-1.856-1.709-2.027-1.701-1.859-1.703-2.481-0.155-2.47-0.298-2.337-0.147-2.167-0.169-2.328-0.301-2.315-0.147-2.333-0.164-2.484-0.152 0.939 0.938 1.55 1.382 2.004 2.02 2.647 2.32 2.948 2.795 3.411 2.79 3.729 2.945 3.879 2.786 4.034 2.795 4.351 2.463 4.182 2.018 4.343 1.55 4.182 1.084 4.045 0.293 3.879-0.617 3.56-1.393h-0.017z" stroke-width="0.254" fill="url(#ca)"/>
|
||||
<linearGradient id="bz" y2="3563.4" gradientUnits="userSpaceOnUse" x2="-3772.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3607.2" x1="-3772.1">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m649.98 177.78-2.649-0.312-2.471-0.608-2.477-0.625-2.333-0.765-2.32-1.087-2.176-1.083-2.024-1.247-2.01-1.239-1.7-1.546-1.717-1.55-1.545-1.551-1.4-1.708-1.097-1.712-1.094-1.851-0.778-1.867-2.479-0.145-2.64-0.301-2.48-0.158-2.326-0.301-2.167-0.158-2.015-0.152-1.861-0.307-1.709-0.168 2.793 2.494 2.792 2.629 2.792 2.792 2.945 2.626 2.953 2.632 2.953 2.483 3.101 2.474 2.953 2.02 3.099 1.854 3.101 1.39 3.104 0.938 3.111 0.612 3.106-0.158 3.105-0.623 3.091-1.399 3.098-2.168-2.629-0.155z" stroke-width="0.254" fill="url(#bz)"/>
|
||||
<linearGradient id="by" y2="3527.3" gradientUnits="userSpaceOnUse" x2="-3796.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3622.5" x1="-3811.3">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m662.69 174.98-2.173-0.47-2.006-0.617-1.87-0.611-1.848-0.622-1.706-0.768-1.709-0.772-1.542-0.775-1.405-0.923-1.39-1.097-1.411-0.926-1.242-1.236-1.239-1.245-1.239-1.395-1.244-1.553-1.097-1.562-2.64-0.145-2.325-0.158-2.176-0.15-2.004-0.153-2.024-0.155-2.015-0.309-1.861-0.15-1.864-0.16 0.934 2.642 1.397 2.637 1.861 2.315 2.17 2.178 2.486 2.004 2.634 1.706 2.951 1.558 3.111 1.393 3.253 0.926 3.26 0.931 3.411 0.464 3.104 0.153 3.268-0.006 2.939-0.464 2.792-0.78 2.643-1.076-2.184-0.629z" stroke-width="0.254" fill="url(#by)"/>
|
||||
<linearGradient id="bx" y2="3564.4" gradientUnits="userSpaceOnUse" x2="-3823.4" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3608.1" x1="-3822.6">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m667.97 172.49-3.724-1.543-3.733-2.02-3.713-2.01-3.108-2.02-2.333-1.708-1.385-1.237v-0.619l-1.089 0.003-1.086-0.003-1.245-0.147-1.392-0.158-1.39-0.153-1.551-0.155-1.247-0.146-1.387-0.169 1.239 2.021 1.399 1.861 1.854 1.858 2.175 1.701 2.176 1.559 2.479 1.384 2.486 1.242 2.483 1.094 2.476 0.771 2.484 0.777 2.32 0.456 2.173 0.153h1.861l1.7-0.316 1.405-0.617 0.934-0.926-3.261-0.933z" stroke-width="0.254" fill="url(#bx)"/>
|
||||
<linearGradient id="bw" y2="3564.6" gradientUnits="userSpaceOnUse" x2="-3837.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3608.4" x1="-3836.4">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m675.73 169.06-1.556-0.464-1.866-0.775-2.012-0.765-2.168-1.089-2.024-0.931-1.854-0.928-1.566-0.781-0.929-0.616-12.092-1.379 0.155 0.308 0.773 0.617 1.244 0.926 1.7 1.242 1.867 1.407 2.328 1.543 2.326 1.542 2.483 1.4 2.483 1.242 2.323 0.926 2.323 0.777 2.02 0.306 1.703-0.309 1.234-0.63 0.777-1.393 0.316-2.17 0.012-0.006z" stroke-width="0.254" fill="url(#bw)"/>
|
||||
<linearGradient id="bv" y2="3550.8" gradientUnits="userSpaceOnUse" x2="-3852" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3578.8" x1="-3851.6">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m663.92 163.65 2.637 1.395 2.953 1.548 2.789 1.408 2.793 0.767 2.175-0.005 1.39-1.395 0.472-2.956-2.336-0.459-2.017-0.311-2.012-0.148-1.864-0.16-2.018-0.15-2.17-0.147-2.323-0.158-2.639-0.158 2.17 0.929z" stroke-width="0.254" fill="url(#bv)"/>
|
||||
<linearGradient id="bu" y2="3564.9" gradientUnits="userSpaceOnUse" x2="-3852.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3608.6" x1="-3851.9">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m662.21 161.18 2.022-0.628 2.635-0.928 3.104-0.783 3.103-0.609 2.943 0.135 2.175 0.777 1.397 2.173-0.152 3.417-2.331-0.622-2.173-0.469-1.859-0.467-1.855-0.462-2.025-0.306-2.012-0.459-2.323-0.309-2.645-0.456-0.004-0.004z" stroke-width="0.254" fill="url(#bu)"/>
|
||||
<linearGradient id="bt" y2="3725.2" gradientUnits="userSpaceOnUse" x2="-3477.1" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3591.5" x1="-3436.6">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m500.88 98.168-3.562-0.617-3.873 0.158-3.879 0.934-3.876 1.561-4.037 2.012-3.876 2.492-3.86 2.784-3.886 3.101-3.565 3.267-3.56 3.418-3.262 3.414-2.945 3.412-2.787 3.111-2.333 3.101-2.004 2.647-1.548 2.162-1.867-0.312-2.017-0.15-1.851-0.3-1.867-0.161-1.709-0.153-1.854-0.303-1.866-0.166-1.709-0.143-1.706-0.158-1.861-0.147-1.703-0.153-1.714-0.158-1.551-0.309-1.706-0.158-1.703-0.155-1.556-0.29 4.49-3.272 4.346-3.572 4.335-3.729 4.337-3.876 4.351-4.034 4.479-3.884 4.493-3.721 4.654-3.423 4.807-2.953 4.97-2.639 5.113-1.859 5.584-1.255 5.737-0.306 6.038 0.459 6.526 1.695 6.821 2.639 0.012-0.011z" stroke-width="0.254" fill="url(#bt)"/>
|
||||
<linearGradient id="bs" y2="3761.1" gradientUnits="userSpaceOnUse" x2="-3569.1" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3655" x1="-3496.2">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m512.49 100.8-3.259 1.408-3.104 1.703-3.106 1.714-2.942 2.018-2.787 2.325-2.637 2.334-2.787 2.32-2.637 2.48-2.634 2.64-2.483 2.642-2.629 2.632-2.629 2.626-2.479 2.647-2.792 2.647-2.632 2.483-2.79 2.32-3.098-0.475-2.645-0.453-2.32-0.312-2.176-0.306-2.162-0.312-2.333-0.158-2.474-0.287-2.795-0.158 5.121-6.359 4.801-5.743 4.496-5.126 4.487-4.495 4.185-3.89 4.026-3.251 3.887-2.8 3.87-2.176 3.724-1.711 3.564-1.086 3.721-0.778 3.557-0.313 3.736 0.313 3.557 0.617 3.729 0.918 3.887 1.395-0.018 0.007z" stroke-width="0.254" fill="url(#bs)"/>
|
||||
<linearGradient id="br" y2="3705.2" gradientUnits="userSpaceOnUse" x2="-3543.1" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3571.6" x1="-3502.6">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m525.54 104.21-3.415 1.402-3.256 1.551-3.104 1.711-2.948 2.012-2.786 2.021-2.64 2.178-2.479 2.32-2.484 2.325-2.167 2.331-2.32 2.489-2.162 2.637-2.175 2.479-2.157 2.479-2.02 2.483-2.17 2.489-2.17 2.481-16.912-2.01 2.792-2.322 2.953-2.801 3.404-3.259 3.403-3.562 3.727-3.878 3.873-3.734 4.021-3.73 4.034-3.567 4.034-3.259 4.029-2.79 3.871-2.173 3.881-1.556 3.56-0.77 3.564 0.301 3.272 1.239 2.945 2.479v0.004z" stroke-width="0.254" fill="url(#br)"/>
|
||||
<linearGradient id="bp" y2="3722.2" gradientUnits="userSpaceOnUse" x2="-3625.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3616.1" x1="-3552.9">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m550.98 115.03-2.479 0.011h-2.629l-2.645 0.3-2.624 0.319-2.789 0.617-2.948 0.777-2.787 0.929-2.947 1.252-3.111 1.548-2.948 1.867-3.104 2.178-3.245 2.476-3.104 2.951-3.254 3.417-3.104 3.723-3.251 4.188-2.803-0.454-2.312-0.316-2.022-0.3-1.854-0.312-1.867-0.306-2.017-0.158-2.474-0.143-2.953-0.163 3.724-4.493 3.718-4.501 3.712-4.501 3.876-4.188 3.724-4.034 4.034-3.733 3.865-3.256 4.028-2.787 4.032-2.02 4.185-1.562 4.187-0.622 4.34 0.153 4.346 1.239 4.343 2.164 4.501 3.246 4.648 4.504 0.008-0.01z" stroke-width="0.254" fill="url(#bp)"/>
|
||||
<linearGradient id="bo" y2="3683" gradientUnits="userSpaceOnUse" x2="-3616.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3549.3" x1="-3576">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m569.13 119.21-4.346 0.931-4.187 1.408-4.021 1.553-3.728 1.719-3.718 2.004-3.418 2.025-3.101 2.167-2.947 2.02-2.632 2.181-2.328 2.01-2.004 1.716-1.714 1.701-1.39 1.405-1.089 1.081-0.778 0.622-0.306 0.306-0.772 0.006-2.02-0.147-2.629-0.327-3.409-0.459-3.731-0.464-3.73-0.464-3.721-0.451-3.251-0.467 3.251-4.034 3.265-3.733 3.401-3.409 3.572-3.109 3.558-2.792 3.876-2.483 3.72-2.176 4.029-1.698 4.034-1.402 4.192-0.934 4.337-0.627 4.501-0.006 4.49 0.312 4.807 0.765 4.808 1.392 5.133 1.872-0.004-0.014z" stroke-width="0.254" fill="url(#bo)"/>
|
||||
<linearGradient id="bn" y2="3682.4" gradientUnits="userSpaceOnUse" x2="-3683.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3576.3" x1="-3610.9">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m592.09 121.98-2.007 0.467-2.494 0.777-3.085 1.248-3.428 1.565-3.71 1.852-4.042 2.009-4.032 2.181-3.867 2.186-3.874 2.154-3.72 2.178-3.262 2.025-2.79 1.698-2.325 1.563-1.54 1.084-0.772 0.774-0.006 0.312h-1.708l-2.32-0.147-2.64-0.312-2.953-0.303-2.948-0.314-2.792-0.303-2.476-0.304-2.007-0.152 2.942-2.953 3.246-2.948 3.567-2.945 3.573-2.803 4.026-2.639 4.028-2.64 4.185-2.173 4.182-2.015 4.501-1.714 4.34-1.397 4.488-0.928 4.501-0.478 4.345-0.003 4.488 0.465 4.192 1.244 4.187 1.692 0.007-0.003z" stroke-width="0.254" fill="url(#bn)"/>
|
||||
<linearGradient id="bm" y2="3659.3" gradientUnits="userSpaceOnUse" x2="-3694.6" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3525.6" x1="-3654.1">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m613.8 126.44-2.95 1.081-2.945 1.258-2.945 1.236-2.79 1.408-2.786 1.244-2.953 1.388-2.785 1.55-2.789 1.416-2.787 1.548-2.95 1.553-2.785 1.554-2.795 1.402-2.787 1.556-2.95 1.545-2.787 1.411-2.953 1.399-2.789-0.466-2.787-0.467-2.953-0.296-2.942-0.316-2.793-0.155-2.645-0.298-2.471-0.312-2.173-0.469 0.932-0.473 2.006-1.39 2.953-1.855 3.863-2.489 4.653-2.948 5.123-2.953 5.424-3.105 5.894-2.948 5.732-2.64 5.89-2.333 5.585-1.709 5.12-1.083h4.646l4.034 0.759 3.259 2.018 2.175 3.409 0.001-0.03z" stroke-width="0.254" fill="url(#bm)"/>
|
||||
<linearGradient id="bl" y2="3562.9" gradientUnits="userSpaceOnUse" x2="-3744.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3606.7" x1="-3743.9">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m639.08 133.74h-2.486l-2.489 0.47-2.624 0.767-2.484 0.936-2.642 1.239-2.621 1.244-2.486 1.556-2.479 1.556-2.477 1.712-2.483 1.705-2.479 1.704-2.325 1.55-2.326 1.701-2.17 1.41-2.175 1.387-2.471-0.3-2.334-0.316-2.007-0.312-2.17-0.147-2.03-0.147-2.004-0.309-2.325-0.314-2.479-0.3 0.928-0.781 1.698-1.239 2.326-1.861 2.944-2.022 3.257-2.17 3.721-2.483 4.182-2.331 4.192-2.325 4.485-2.025 4.495-1.703 4.648-1.413 4.509-0.765 4.335-0.003 4.034 0.602 3.871 1.405 3.417 2.471-2.476-0.149z" stroke-width="0.254" fill="url(#bl)"/>
|
||||
<linearGradient id="bk" y2="3541" gradientUnits="userSpaceOnUse" x2="-3707.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3636.1" x1="-3722.4">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m631.33 129.41-3.721 0.003-3.726 0.451-3.876 0.791-3.884 1.233-3.876 1.556-3.868 1.72-3.57 2.014-3.562 2.015-3.251 2.022-2.953 2.025-2.789 1.858-2.323 1.709-1.858 1.392-1.396 1.256-1.094 0.765-0.306 0.321-0.617 0.143-1.403-0.143-1.851-0.316-2.481-0.316-2.797-0.451-2.787-0.316-2.793-0.298-2.483-0.16 6.676-3.109 6.036-3.101 5.579-2.8 5.123-2.635 4.646-2.486 4.335-2.331 3.882-1.858 3.73-1.717 3.394-1.244 3.27-1.092 2.948-0.617 2.789-0.152 2.787 0.3 2.642 0.623 2.787 1.239 2.643 1.711v-0.005z" stroke-width="0.254" fill="url(#bk)"/>
|
||||
<linearGradient id="bj" y2="3532.6" gradientUnits="userSpaceOnUse" x2="-3762.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3627.8" x1="-3777.1">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m653.98 141.79-2.789-0.316-2.632-0.292-2.642-0.003-2.635 0.147-2.476 0.316-2.352 0.456-2.315 0.625-2.17 0.771-2.015 0.931-2.024 1.094-1.695 1.097-1.551 1.393-1.556 1.551-1.234 1.708-1.091 1.714-0.929 2.01-2.645-0.301-2.632-0.316-2.795-0.298-2.628-0.319-2.481-0.295-2.326-0.465-2.017-0.155-1.859-0.309 3.254-2.009 3.259-2.342 3.252-2.325 3.414-2.168 3.415-2.183 3.409-2.173 3.262-1.698 3.401-1.708 3.256-1.103 3.417-0.777 3.257-0.304 3.108 0.146 3.101 0.931 2.951 1.545 2.942 2.325 2.797 3.101h-0.006z" stroke-width="0.254" fill="url(#bj)"/>
|
||||
<linearGradient id="bi" y2="3524.4" gradientUnits="userSpaceOnUse" x2="-3815.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3619.6" x1="-3830.5">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m673.07 152-3.884-0.145-3.876 0.625-4.031 1.086-3.567 1.255-3.101 1.387-2.643 1.245-1.545 0.934-0.617 0.316h-1.236l-1.247-0.169-1.548-0.147-1.711-0.301-1.701-0.312-1.698-0.306-1.389-0.312 1.542-1.866 1.711-1.709 2.162-1.55 2.331-1.245 2.471-1.092 2.64-0.925 2.795-0.631 2.631-0.461 2.79-0.15 2.481-0.005 2.48 0.147 2.168 0.464 1.861 0.622 1.709 0.923 1.239 1.084 0.782 1.242v-0.004z" stroke-width="0.254" fill="url(#bi)"/>
|
||||
<linearGradient id="bh" y2="3564.7" gradientUnits="userSpaceOnUse" x2="-3838.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3608.4" x1="-3837.6">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m675.09 158.06-2.02 0.005-2.167 0.301-2.17 0.464-2.165 0.617-1.859 0.62-1.7 0.472-1.095 0.453-12.411-2.159 0.316-0.146 0.773-0.614 1.553-0.625 1.861-0.928 2.165-0.934 2.483-0.931 2.634-0.936 2.632-0.931 2.787-0.62 2.483-0.312 2.326-0.163 2.015 0.316 1.7 0.77 1.097 1.245 0.614 1.866-0.142 2.466-1.71-0.296z" stroke-width="0.254" fill="url(#bh)"/>
|
||||
<linearGradient id="bg" y2="3564" gradientUnits="userSpaceOnUse" x2="-3802.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3607.7" x1="-3802">
|
||||
<stop stop-color="#F6EE61" offset="0"/>
|
||||
<stop stop-color="#F6D65D" offset=".186"/>
|
||||
<stop stop-color="#F4C35B" offset=".3825"/>
|
||||
<stop stop-color="#F3BC5A" offset=".5198"/>
|
||||
<stop stop-color="#F5DA5D" offset=".7809"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m666.55 147.98-1.864-0.303-2.02-0.155-2.01 0.005-2.012 0.15-2.02 0.161-1.864 0.311-2.012 0.47-1.861 0.622-1.856 0.611-1.717 0.781-1.703 0.928-1.548 0.934-1.39 1.092-1.241 1.083-1.087 1.247-0.933 1.38-2.637-0.293-2.489-0.464-2.326-0.148-2.164-0.316-2.17-0.311-2.025-0.146-1.851-0.313-2.022-0.158 1.395-2.787 1.703-2.483 2.17-2.168 2.629-1.866 2.792-1.551 2.951-1.242 3.256-1.097 3.257-0.627 3.406-0.293 3.417-0.003 3.254 0.443 3.265 0.619 3.259 0.937 2.953 1.387 2.637 1.551 2.478 2.012z" stroke-width="0.254" fill="url(#bg)"/>
|
||||
<linearGradient id="be" y2="3635.3" gradientUnits="userSpaceOnUse" x2="-2786.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3729.3" x1="-2818.8">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m114.4 73.81 0.771 0.309 0.774 0.316 0.606 0.158 0.62 0.313 0.633 0.146 0.772 0.309 0.62 0.163 0.772 0.301-0.628 2.015-0.76 2.325-0.622 2.331-0.459 2.637-0.616 2.637-0.47 2.795-0.301 2.935-0.306 2.956-0.153 2.947-0.147 2.798v2.945l0.158 2.795 0.306 2.787 0.459 2.476 0.475 2.476 0.78 2.339-4.814-1.556-3.723-2.167-2.637-2.779-1.709-3.114-0.777-3.409-0.203-3.712 0.321-3.729 0.923-3.882 1.224-3.718 1.405-3.728 1.548-3.262 1.566-2.945 1.392-2.484 1.079-2.009 0.777-1.247 0.312-0.475 0.032 0.007z" stroke-width="0.254" fill="url(#be)"/>
|
||||
<linearGradient id="bd" y2="3627" gradientUnits="userSpaceOnUse" x2="-2811.1" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3721" x1="-2843.1">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m119.63 75.969 1.092 0.314 1.239 0.306 1.545 0.469 1.408 0.454 1.693 0.467 1.708 0.616 1.872 0.615 1.852 0.622-0.923 3.259-0.765 3.106-0.628 3.411-0.459 3.257-0.298 3.417-0.166 3.257 0.005 3.411 0.164 3.265 0.306 3.254 0.47 3.105 0.475 3.091 0.616 3.111 0.628 2.787 0.775 2.787 0.928 2.48 0.929 2.481h-1.556l-1.704-0.153-1.855-0.303-2.188-0.775-2.004-1.078-2.021-1.408-2.009-2.009-1.867-2.481-1.402-3.099-1.244-3.723-0.931-4.34-0.314-5.121 0.153-5.896 0.765-6.663 1.548-7.752 2.164-8.54v-0.001z" stroke-width="0.254" fill="url(#bd)"/>
|
||||
<linearGradient id="bc" y2="3617.2" gradientUnits="userSpaceOnUse" x2="-2839.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3711.2" x1="-2871.8">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m132.21 79.848 1.078 0.301 1.406 0.475 1.547 0.617 1.862 0.614 1.861 0.619 1.866 0.617 1.856 0.617 1.556 0.617-0.931 3.253-0.617 3.42-0.614 3.268-0.306 3.409-0.298 3.409v3.259l0.155 3.409 0.312 3.257 0.622 3.259 0.617 3.259 0.934 3.111 0.928 3.251 1.244 2.945 1.406 3.101 1.705 2.942 1.709 2.801-4.487 1.244-3.893-0.163-3.401-1.229-2.958-2.326-2.315-3.101-2.021-3.876-1.396-4.493-1.102-4.807-0.775-5.128-0.47-5.273-0.008-5.269 0.166-5.276 0.29-4.807 0.633-4.34 0.918-3.887 0.934-3.101h-0.013z" stroke-width="0.254" fill="url(#bc)"/>
|
||||
<linearGradient id="bb" y2="3606.6" gradientUnits="userSpaceOnUse" x2="-2871.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3700.5" x1="-2903.2">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m171.7 144.17-1.866-1.078-1.706-1.695-1.553-2.339-1.248-2.782-1.086-3.264-0.944-3.724-0.69-3.892-0.633-4.192-0.453-4.177-0.47-4.498-0.155-4.34-0.158-4.188-0.156-4.179-0.163-4.048v-3.56-3.257l-2.02-0.611-1.856-0.617-2.02-0.622-1.852-0.62-1.872-0.617-1.851-0.461-1.722-0.628-1.709-0.611-1.39 4.81-0.923 5.126-0.469 5.275 0.011 5.269 0.316 5.271 0.774 5.269 1.25 5.126 1.556 4.814 2.02 4.487 2.173 4.029 2.64 3.56 3.104 2.958 3.259 2.162 3.56 1.545 4.039 0.623 4.198-0.324h0.065z" stroke-width="0.254" fill="url(#bb)"/>
|
||||
<linearGradient id="ba" y2="3517.5" gradientUnits="userSpaceOnUse" x2="-2978.6" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3636.1" x1="-2999.2">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#6E2A80" offset=".0752"/>
|
||||
<stop stop-color="#81287F" offset=".1935"/>
|
||||
<stop stop-color="#A2237C" offset=".3399"/>
|
||||
<stop stop-color="#D11C75" offset=".5088"/>
|
||||
<stop stop-color="#ED2272" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m160.58 89.115 0.316 5.276 0.006 5.121 0.158 5.12 0.15 4.957 0.171 4.965 0.158 4.654 0.448 4.498 0.633 4.343 0.944 3.884 1.239 3.723 1.708 3.396 2.179 2.953 2.637 2.483 3.105 2.162 3.724 1.551 4.487 1.086-2.173-2.009-1.708-2.494-1.4-2.943-1.236-3.253-0.772-3.418-0.783-3.72-0.465-4.026-0.306-4.04-0.158-4.023-0.163-4.203-0.006-4.171-0.005-3.881-0.153-3.879-0.158-3.726-0.163-3.401-0.313-3.106-1.537-0.619-1.562-0.467-1.397-0.459-1.55-0.464-1.563-0.312-1.39-0.464-1.551-0.462-1.556-0.619 0.005-0.013z" stroke-width="0.254" fill="url(#ba)"/>
|
||||
<linearGradient id="az" y2="3585.4" gradientUnits="userSpaceOnUse" x2="-2935.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3658.3" x1="-2945.8">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m201.74 155.31-4.656-5.421-3.733-5.263-3.102-5.424-2.483-5.123-1.698-4.963-1.408-4.814-0.791-4.638-0.458-4.192-0.169-4.034 0.158-3.567 0.316-3.109 0.301-2.787 0.464-2.178 0.316-1.711 0.306-1.089 0.158-0.459-1.719-0.462-1.554-0.308-1.39-0.467-1.545-0.459-1.571-0.459-1.387-0.472-1.551-0.459-1.703-0.462 0.316 4.338 0.306 4.656v4.957l0.011 5.284v5.11l0.163 5.286 0.47 5.107 0.62 4.962 1.094 4.815 1.692 4.337 2.036 3.879 2.789 3.412 3.576 2.631 4.332 2.015 5.281 1.239 6.201 0.295 0.012-0.003z" stroke-width="0.254" fill="url(#az)"/>
|
||||
<linearGradient id="ay" y2="3580.8" gradientUnits="userSpaceOnUse" x2="-2967" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3653.7" x1="-2977.5">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m222.87 161.97-3.578-2.945-3.259-3.407-2.956-3.723-2.474-4.029-2.33-4.192-1.867-4.335-1.703-4.345-1.408-4.493-1.247-4.49-0.778-4.343-0.774-4.188-0.456-3.881-0.325-3.726-0.152-3.243 0.147-2.956 0.153-2.479-14.739-4.644-1.239 5.898-0.617 5.889 0.163 6.201 0.775 6.06 1.25 6.027 1.877 5.898 2.331 5.579 2.626 5.126 3.117 4.809 3.417 4.335 3.729 3.567 3.87 2.94 4.034 2.17 4.029 1.405 4.192 0.29 4.192-0.77v-0.005z" stroke-width="0.254" fill="url(#ay)"/>
|
||||
<linearGradient id="ax" y2="3496.7" gradientUnits="userSpaceOnUse" x2="-2989.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3657.5" x1="-3006.5">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m199.52 100.89 0.312 8.369 0.786 7.916 1.244 7.121 1.571 6.679 2.004 6.191 2.342 5.421 2.473 4.968 2.79 4.189 3.106 3.879 3.105 3.096 3.27 2.473 3.259 2.025 3.26 1.393 3.259 0.77 3.248 0.153 3.101-0.465-2.631-2.33-2.168-2.632-2.02-2.79-1.708-3.264-1.396-3.412-1.249-3.707-0.941-3.731-0.771-3.873-0.617-4.034-0.469-4.023-0.306-4.203-0.475-4.029-0.158-4.028-0.301-3.887-0.172-3.865-0.309-3.57-2.175-0.464-2.787-0.772-3.259-0.921-3.265-1.091-3.401-0.931-3.27-1.084-2.953-0.775-2.32-0.765-0.009 0.003z" stroke-width="0.254" fill="url(#ax)"/>
|
||||
<linearGradient id="aw" y2="3570.6" gradientUnits="userSpaceOnUse" x2="-3037.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3643.5" x1="-3048.3">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m258.98 168.14-3.116-2.94-2.79-2.945-2.336-3.108-2.167-3.243-1.709-3.265-1.55-3.262-1.245-3.403-1.086-3.418-0.788-3.569-0.763-3.56-0.627-3.718-0.465-3.895-0.633-3.863-0.469-4.034-0.459-4.019-0.464-4.205-2.336-0.614-2.01-0.62-1.708-0.45-1.872-0.475-1.693-0.454-1.697-0.618-1.874-0.469-2.168-0.462 0.475 4.032 0.304 4.495 0.316 4.81 0.152 5.281 0.475 5.271 0.47 5.266 0.77 5.438 1.248 4.962 1.563 4.957 2.012 4.343 2.797 3.879 3.407 3.248 4.045 2.647 5.12 1.692 5.894 0.62 6.989-0.33-0.012-0.002z" stroke-width="0.254" fill="url(#aw)"/>
|
||||
<linearGradient id="av" y2="3489" gradientUnits="userSpaceOnUse" x2="-3064.3" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3649.8" x1="-3080.9">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m277.76 171.54-1.861-1.4-2.015-1.551-1.866-1.7-1.861-2.17-1.709-2.323-1.856-2.481-1.725-2.945-1.55-3.251-1.556-3.575-1.556-3.723-1.393-4.338-1.255-4.493-1.092-4.965-1.092-5.268-0.928-5.738-0.777-6.059-2.334-0.467-2.004-0.617-1.722-0.298-1.537-0.459-1.714-0.311-1.703-0.467-1.862-0.451-2.183-0.475 0.327 3.723 0.464 4.346 0.472 4.656 0.772 4.968 0.78 5.258 1.092 5.126 1.405 5.266 1.854 4.97 2.179 4.81 2.488 4.487 3.102 3.876 3.569 3.259 4.192 2.632 4.81 1.692 5.43 0.775 6.204-0.311 0.011-0.008z" stroke-width="0.254" fill="url(#av)"/>
|
||||
<linearGradient id="at" y2="3565.3" gradientUnits="userSpaceOnUse" x2="-3104.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3648.3" x1="-3110.6">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m295.44 173.85-2.5-1.855-2.631-2.315-2.489-2.795-2.325-3.265-2.331-3.406-2.165-3.56-2.175-3.876-2.021-4.029-1.708-4.042-1.562-4.185-1.55-3.876-1.092-4.028-1.092-3.718-0.617-3.415-0.469-3.262-0.153-2.937-2.009-0.475-1.867-0.462-1.856-0.451-1.872-0.466-1.855-0.467-1.872-0.465-1.862-0.464-1.861-0.311 0.628 3.733 0.617 4.177 0.777 4.65 1.095 4.815 1.249 5.109 1.406 5.118 1.711 5.118 2.165 4.814 2.486 4.641 2.795 4.345 3.262 3.721 3.567 3.246 4.34 2.473 4.656 1.72 5.278 0.765 5.901-0.316v-0.004z" stroke-width="0.254" fill="url(#at)"/>
|
||||
<linearGradient id="as" y2="3522.6" gradientUnits="userSpaceOnUse" x2="-3134.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3632.3" x1="-3142">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m314.81 177.4-3.099-0.923-2.945-1.708-2.637-2.326-2.645-2.939-2.322-3.409-2.173-3.884-2.02-4.032-1.867-4.329-1.714-4.515-1.556-4.329-1.387-4.335-1.25-4.192-1.097-4.034-0.929-3.56-0.77-3.101-0.775-2.634-2.015-0.316-2.02-0.467-2.024-0.459-2.168-0.611-2.173-0.47-2.164-0.617-2.176-0.461-2.32-0.451 0.003 1.543 0.461 2.634 0.775 3.564 0.934 4.351 1.561 5.11 1.856 5.271 2.178 5.593 2.484 5.732 3.116 5.429 3.401 5.271 3.733 4.648 4.341 3.868 4.661 3.106 5.115 2.004 5.596 0.775 6.032-0.783-0.001-0.014z" stroke-width="0.254" fill="url(#as)"/>
|
||||
<linearGradient id="ar" y2="3520.6" gradientUnits="userSpaceOnUse" x2="-3164.6" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3630.3" x1="-3171.9">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m328.94 176.62-3.56-2.167-3.27-2.325-2.942-2.474-2.947-2.795-2.474-2.787-2.491-3.098-2.171-3.254-1.866-3.412-1.867-3.412-1.548-3.417-1.405-3.564-1.25-3.718-0.923-3.576-0.943-3.715-0.765-3.721-0.475-3.564-1.403-0.166-1.233-0.298-1.397-0.316-1.562-0.306-1.397-0.312-1.545-0.303-1.711-0.156-1.695-0.303 0.765 2.942 0.931 3.718 0.936 4.192 1.245 4.644 1.556 4.973 1.561 5.12 2.015 5.11 2.184 4.962 2.639 4.662 2.945 4.321 3.259 3.567 3.573 2.953 4.189 2.168 4.509 1.081 4.952-0.006 5.574-1.239 0.007-0.009z" stroke-width="0.254" fill="url(#ar)"/>
|
||||
<linearGradient id="aq" y2="3476.5" gradientUnits="userSpaceOnUse" x2="-3185.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3637.2" x1="-3202.3">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m346.62 179.42-4.814-2.939-4.346-3.104-3.718-3.099-3.111-2.947-2.784-3.106-2.331-3.101-1.877-3.251-1.698-3.109-1.405-3.253-1.242-3.106-0.923-3.254-0.934-3.256-0.785-3.251-0.938-3.265-0.771-3.406-0.938-3.26-1.856-0.469-2.024-0.312-1.862-0.453-2.009-0.313-2.009-0.301-2.17-0.467-2.022-0.309-2.015-0.456 0.934 5.725 1.397 5.587 1.563 5.426 1.866 5.121 2.323 4.804 2.483 4.656 2.795 4.18 2.953 3.889 3.412 3.407 3.407 3.09 3.886 2.635 3.871 2.159 4.2 1.556 4.332 1.081 4.504 0.469 4.646-0.01 0.01 0.012z" stroke-width="0.254" fill="url(#aq)"/>
|
||||
<linearGradient id="ap" y2="3472.4" gradientUnits="userSpaceOnUse" x2="-3224.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3633.2" x1="-3241.6">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m371.74 182.32-4.341-1.698-4.036-2.012-4.032-2.325-3.73-2.477-3.56-2.792-3.272-2.942-3.105-3.085-2.798-3.42-2.626-3.415-2.326-3.572-2.03-3.718-1.851-3.718-1.551-3.713-1.26-3.887-0.929-3.876-0.611-3.87-2.025-0.464-2.02-0.307-2.025-0.464-1.855-0.316-1.867-0.303-1.846-0.301-1.867-0.472-1.711-0.307 0.946 5.59 1.239 5.58 1.725 5.426 2.01 5.279 2.32 4.951 2.805 4.646 3.106 4.348 3.423 3.868 3.718 3.712 4.179 3.111 4.507 2.629 4.807 2.012 5.125 1.548 5.43 0.931 5.888 0.304 6.054-0.478-0.008-0.003z" stroke-width="0.254" fill="url(#ap)"/>
|
||||
<linearGradient id="ao" y2="3538.8" gradientUnits="userSpaceOnUse" x2="-3257.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3611.7" x1="-3268.4">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m385.54 183.86-5.123-2.474-4.487-2.479-4.034-2.474-3.578-2.634-3.101-2.476-2.785-2.792-2.483-2.629-2.173-2.953-2.02-2.945-1.867-3.093-1.716-3.26-1.864-3.569-1.709-3.724-1.861-4.039-1.859-4.172-2.175-4.503-2.184-0.306-1.848-0.309-1.546-0.309-1.402-0.15-1.39-0.158-1.397-0.158-1.561-0.15-1.698-0.301 0.928 5.261 1.408 5.134 1.861 4.962 2.173 4.799 2.632 4.487 2.958 4.361 3.415 4.021 3.567 3.715 3.878 3.406 4.19 2.956 4.49 2.624 4.503 2.17 4.802 1.854 4.976 1.239 4.965 0.768 5.121 0.303-0.006-0.003z" stroke-width="0.254" fill="url(#ao)"/>
|
||||
<linearGradient id="an" y2="3465.9" gradientUnits="userSpaceOnUse" x2="-3287.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3626.7" x1="-3304.4">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m410.36 185.4-4.654-1.864-4.34-2.01-4.343-2.167-4.028-2.315-3.89-2.483-3.712-2.784-3.584-2.79-3.256-2.942-3.259-3.267-2.953-3.259-2.785-3.56-2.642-3.568-2.317-3.867-2.339-4.026-2.02-4.346-1.864-4.351-1.405-0.143-1.846-0.311-2.179-0.307-2.48-0.464-2.328-0.309-2.32-0.309-1.867-0.316-1.39-0.147 2.009 4.81 2.179 4.968 2.339 4.81 2.639 4.793 2.787 4.82 2.953 4.487 3.417 4.343 3.731 4.021 4.021 3.728 4.509 3.243 4.807 2.801 5.427 2.312 5.894 1.708 6.356 1.084 7.141 0.295 7.602-0.311-0.01-0.007z" stroke-width="0.254" fill="url(#an)"/>
|
||||
<linearGradient id="am" y2="3529.5" gradientUnits="userSpaceOnUse" x2="-3321.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3602.4" x1="-3332.5">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m425.1 187.56-3.573-2.787-3.394-3.111-3.422-3.09-3.41-3.415-3.419-3.401-3.262-3.409-3.257-3.412-3.101-3.56-3.111-3.422-3.106-3.417-3.108-3.249-2.945-3.104-2.95-2.784-2.953-2.787-2.79-2.331-2.795-2.162-0.777-0.469-1.548-0.306-1.867-0.314-2.17-0.15-2.479-0.311-2.473-0.153-2.331-0.295-2.328-0.322 2.333 5.59 2.798 5.427 3.256 5.11 3.56 4.814 4.045 4.653 4.192 4.335 4.501 3.876 4.654 3.718 4.807 3.251 4.812 2.942 4.814 2.484 4.81 2.001 4.805 1.701 4.658 1.086 4.338 0.617 4.188 0.152v0.004z" stroke-width="0.254" fill="url(#am)"/>
|
||||
<linearGradient id="al" y2="3459.2" gradientUnits="userSpaceOnUse" x2="-3353.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3619.9" x1="-3369.8">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m447.75 187.55-3.106-0.928-3.101-1.387-3.105-1.859-3.262-2.167-3.257-2.484-3.259-2.784-3.412-3.114-3.417-3.401-3.423-3.401-3.564-3.723-3.575-3.73-3.567-3.71-3.724-3.724-3.736-3.72-3.876-3.568-3.873-3.564-2.025-0.301-2.314-0.464-2.481-0.459-2.481-0.321-2.32-0.47-2.333-0.155-1.999-0.298h-1.722l4.965 4.174 4.974 4.651 4.965 5.117 4.812 5.121 4.81 5.263 4.817 5.269 4.651 4.957 4.501 4.814 4.495 4.185 4.501 3.71 4.346 2.95 4.337 2.17 4.346 1.089 4.189-0.003 4.177-1.089 4.039-2.649 0.007 0.003z" stroke-width="0.254" fill="url(#al)"/>
|
||||
<linearGradient id="ak" y2="3519.5" gradientUnits="userSpaceOnUse" x2="-3391" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3592.4" x1="-3401.6">
|
||||
<stop stop-color="#672A80" offset="0"/>
|
||||
<stop stop-color="#672A80" offset=".0006"/>
|
||||
<stop stop-color="#8D236F" offset=".072"/>
|
||||
<stop stop-color="#AD1E5C" offset=".1459"/>
|
||||
<stop stop-color="#C81F4D" offset=".2229"/>
|
||||
<stop stop-color="#DD1D40" offset=".3041"/>
|
||||
<stop stop-color="#EC1B37" offset=".3913"/>
|
||||
<stop stop-color="#ED1B35" offset=".4884"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m465.28 189.56-5.595-2.95-5.118-3.248-4.812-3.562-4.499-3.868-4.182-3.884-4.037-4.034-3.575-3.868-3.567-3.881-3.111-3.705-3.104-3.417-2.95-3.262-2.792-2.781-2.803-2.323-2.629-1.711-2.64-1.242-2.637-0.609-0.928 0.003-1.548-0.164-1.859-0.155-2.336-0.298-2.317-0.163-2.334-0.301-1.856-0.147-1.548-0.164 4.343 3.718 4.19 3.876 4.026 4.188 3.884 4.335 3.884 4.334 3.729 4.192 3.873 4.18 4.037 4.026 4.031 3.726 4.354 3.404 4.492 3.098 4.807 2.486 5.282 1.999 5.434 1.561 6.041 0.612 6.37-0.006v0.005z" stroke-width="0.254" fill="url(#ak)"/>
|
||||
<linearGradient id="ai" y2="3911" gradientUnits="userSpaceOnUse" x2="-2863.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3777.4" x1="-2823.4">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m120.12 61.873 0.912 0.316 0.78 0.146 0.622 0.306 0.614 0.321 0.631 0.147 0.762 0.316 0.625 0.153 0.77 0.147 0.456-2.483 0.462-2.632 0.617-2.942 0.627-3.114 0.763-3.101 0.788-3.251 0.765-3.267 0.928-3.104 1.095-3.257 1.073-3.108 1.091-2.79 1.234-2.789 1.239-2.481 1.397-2.325 1.387-1.859 1.562-1.556-4.805-1.239-4.187 0.158-3.412 1.245-2.652 2.172-2.315 2.948-1.54 3.572-1.255 4.034-0.923 4.185-0.453 4.499-0.148 4.34-0.152 4.187 0.158 3.876 0.158 3.265 0.158 2.632 0.158 1.7v0.62l0.01 0.013z" stroke-width="0.254" fill="url(#ai)"/>
|
||||
<linearGradient id="ah" y2="3898.3" gradientUnits="userSpaceOnUse" x2="-2891.6" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3768.7" x1="-2843.8">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m125.71 64.186 0.928 0.306 0.728 0.164 0.633 0.306 0.612 0.152 0.622 0.312 0.936 0.312 1.396 0.142 1.851 0.314 0.788-3.721 0.921-3.573 0.931-3.409 0.92-3.409 1.086-3.262 1.239-3.111 1.245-3.101 1.392-2.945 1.393-2.8 1.545-2.64 1.714-2.626 1.714-2.486 2.004-2.476 1.867-2.179 2.156-2.322 2.173-2.012-1.239-0.932-1.408-0.931-1.55-0.77-1.695-0.617-1.701-0.316-2.032 0.158-1.854 0.622-2.172 1.403-2.021 2.015-2.162 2.789-2.156 3.882-2.184 4.809-2.156 6.044-2.168 7.293-2.162 8.538-2.02 10.077h-0.114z" stroke-width="0.254" fill="url(#ah)"/>
|
||||
<linearGradient id="ag" y2="3896.5" gradientUnits="userSpaceOnUse" x2="-2911.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3762.9" x1="-2871.3">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m133.61 67.139 0.932 0.312 1.392 0.608 1.706 0.625 1.867 0.768 2.014 0.772 2.025 0.619 1.867 0.615 1.688 0.461 0.622-4.026 0.77-3.884 0.778-3.726 1.078-3.56 1.086-3.409 1.397-3.259 1.388-3.109 1.714-3.111 1.703-2.789 1.856-2.795 2.009-2.795 2.325-2.474 2.326-2.331 2.481-2.325 2.628-2.334 2.79-2.017-3.57-3.555-3.412-2.022-3.575-0.616-3.564 0.616-3.412 1.723-3.248 2.631-3.102 3.415-2.953 4.034-2.784 4.501-2.473 4.804-2.315 4.973-2.025 5.118-1.534 4.965-1.234 4.656-0.785 4.192-0.459 3.718 0.003 0.011z" stroke-width="0.254" fill="url(#ag)"/>
|
||||
<linearGradient id="af" y2="3878.4" gradientUnits="userSpaceOnUse" x2="-2945.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3748.8" x1="-2897.7">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m194.02 26.449-2.795 0.765-2.621 1.405-2.494 1.858-2.468 2.326-2.184 2.637-2.156 3.101-2.02 3.264-1.852 3.581-1.703 3.718-1.714 3.871-1.695 4.042-1.534 4.034-1.411 3.876-1.551 3.876-1.233 3.884-1.403 3.564-2.014-0.306-1.852-0.625-2.022-0.456-2.012-0.775-1.864-0.622-1.864-0.606-1.855-0.47-1.864-0.469 0.614-5.732 1.236-5.59 1.553-5.574 2.01-5.284 2.32-4.967 2.629-4.81 3.104-4.346 3.085-3.723 3.414-3.259 3.573-2.79 3.723-2.025 3.876-1.244 3.729-0.464 3.876 0.464 3.723 1.393 3.718 2.48v-0.002z" stroke-width="0.254" fill="url(#af)"/>
|
||||
<linearGradient id="ae" y2="3877.4" gradientUnits="userSpaceOnUse" x2="-2974.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3743.8" x1="-2934.3">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m211.13 31.084-5.568 2.025-4.973 2.8-4.335 3.104-3.887 3.718-3.248 3.879-2.953 4.192-2.326 4.192-1.998 4.189-1.703 4.189-1.237 4.029-1.094 3.729-0.765 3.254-0.464 2.786-0.459 2.018-0.158 1.556-0.147 0.606-1.709-0.301-1.709-0.459-1.556-0.611-1.542-0.479-1.563-0.612-1.551-0.459-1.55-0.467-1.709-0.149 2.015-4.501 1.858-4.81 1.706-5.118 1.852-5.12 1.851-4.963 2.025-4.978 2.004-4.81 2.33-4.343 2.632-3.876 2.932-3.267 3.265-2.635 3.721-1.705 4.189-0.781 4.651 0.153 5.273 1.397 5.896 2.621 0.004 0.007z" stroke-width="0.254" fill="url(#ae)"/>
|
||||
<linearGradient id="ad" y2="3855.8" gradientUnits="userSpaceOnUse" x2="-3006.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3726.2" x1="-2959">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m233.12 34.327-4.33 1.709-4.034 2.17-3.886 2.483-3.56 2.951-3.249 3.27-3.101 3.411-2.938 3.724-2.642 3.876-2.32 3.873-2.176 3.892-1.851 3.874-1.867 3.723-1.548 3.57-1.239 3.254-1.244 3.116-0.92 2.632-15.979-4.172 0.772-6.829 1.382-6.359 2.178-6.21 2.779-5.734 3.264-5.435 3.549-4.96 4.045-4.355 4.33-3.871 4.501-3.111 4.49-2.488 4.646-1.867 4.656-0.928 4.34-0.164 4.33 0.622 4.037 1.698 3.572 2.637h0.013z" stroke-width="0.254" fill="url(#ad)"/>
|
||||
<linearGradient id="ac" y2="3858.3" gradientUnits="userSpaceOnUse" x2="-3037.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3724.6" x1="-2997.4">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m192.08 86.3 3.248-8.844 3.418-8.068 3.707-6.977 3.729-6.204 3.859-5.281 4.034-4.654 4.019-3.729 4.045-2.945 4.019-2.333 3.876-1.551 3.884-0.938 3.718-0.306 3.562 0.303 3.27 0.934 3.09 1.393 2.8 1.858-3.253 1.239-3.254 1.712-2.953 2.175-2.632 2.643-2.637 2.942-2.483 3.259-2.326 3.423-2.153 3.718-2.013 4.036-2.02 4.032-1.854 4.036-1.706 4.177-1.698 4.195-1.708 4.034-1.709 4.031-1.545 3.876-2.173-0.617-2.626-0.762-2.953-0.775-3.096-1.081-3.27-0.928-2.955-0.931-2.945-0.617-2.315-0.462v-0.013z" stroke-width="0.254" fill="url(#ac)"/>
|
||||
<linearGradient id="ab" y2="3846.1" gradientUnits="userSpaceOnUse" x2="-3078" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3712.5" x1="-3037.5">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m269.88 45.609-3.87 1.864-3.726 2.015-3.243 2.173-3.114 2.491-2.787 2.643-2.481 2.784-2.468 2.945-2.331 3.27-2.004 3.262-2.024 3.567-2.004 3.567-1.859 3.879-1.854 3.881-1.864 4.023-1.854 4.195-2.025 4.185-2.32-0.453-2.014-0.307-1.862-0.467-1.703-0.461-1.708-0.464-1.709-0.322-1.858-0.448-2.165-0.311 1.849-4.192 1.854-4.651 2.02-5.12 2.17-5.273 2.165-5.427 2.314-5.429 2.632-5.126 2.789-4.81 3.26-4.348 3.403-3.575 4.034-2.801 4.18-1.854 4.807-0.777 5.281 0.458 5.732 2.015 6.359 3.407v-0.008z" stroke-width="0.254" fill="url(#ab)"/>
|
||||
<linearGradient id="aa" y2="3817.6" gradientUnits="userSpaceOnUse" x2="-3110.4" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3688" x1="-3062.6">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m289.12 51.179-3.101 0.459-2.959 0.63-2.778 1.086-2.643 1.25-2.631 1.703-2.479 2.021-2.479 2.325-2.479 2.637-2.326 3.267-2.468 3.404-2.323 3.892-2.486 4.335-2.637 4.814-2.615 5.273-2.784 5.737-2.79 6.21-2.479-0.467-2.178-0.309-1.867-0.461-1.851-0.47-1.709-0.306-1.856-0.459-2.024-0.464-2.326-0.459 1.712-3.876 1.843-4.501 2.173-4.648 2.473-5.129 2.643-5.117 2.942-4.973 3.243-4.805 3.412-4.656 3.729-4.039 4.034-3.418 4.329-2.789 4.498-1.867 4.963-0.775 5.123 0.307 5.424 1.55 5.745 3.096-0.018-0.008z" stroke-width="0.254" fill="url(#aa)"/>
|
||||
<linearGradient id="z" y2="3827.6" gradientUnits="userSpaceOnUse" x2="-3139.3" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3693.9" x1="-3098.8">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m303.72 55.353-3.265 0.934-3.248 1.55-3.265 2.015-3.406 2.481-3.259 2.642-3.254 3.101-3.259 3.431-3.101 3.404-2.948 3.726-2.626 3.726-2.637 3.731-2.168 3.72-2.014 3.721-1.704 3.414-1.381 3.42-0.934 3.099-2.01-0.313-1.872-0.454-1.7-0.306-1.706-0.312-1.551-0.469-1.714-0.312-1.703-0.453-1.856-0.459 1.698-3.884 1.852-4.185 2.024-4.656 2.466-4.814 2.48-4.815 2.943-4.809 3.101-4.651 3.248-4.34 3.729-3.876 3.865-3.42 4.188-2.645 4.335-1.856 4.819-0.944 4.946-0.005 5.295 1.25 5.585 2.631 0.007-0.018z" stroke-width="0.254" fill="url(#z)"/>
|
||||
<linearGradient id="x" y2="3796.8" gradientUnits="userSpaceOnUse" x2="-3166.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3667.2" x1="-3119">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m321.25 59.84-3.576-0.142-3.554 0.611-3.417 1.402-3.423 2.173-3.248 2.64-3.249 3.259-3.105 3.567-2.943 3.884-2.8 4.19-2.615 4.034-2.484 4.187-2.314 4.185-2.176 3.731-1.854 3.569-1.561 3.26-1.393 2.634-2.009-0.309-2.025-0.309-1.856-0.301-2.009-0.467-2.025-0.466-2.02-0.462-2.015-0.459-2.322-0.469 0.456-1.551 0.933-2.642 1.709-3.56 2.17-4.195 2.629-4.807 3.243-4.971 3.57-5.117 4.028-4.979 4.33-4.646 4.651-4.203 4.967-3.56 5.121-2.479 5.268-1.562 5.585-0.158 5.59 1.397 5.737 3.091h0.006z" stroke-width="0.254" fill="url(#x)"/>
|
||||
<linearGradient id="w" y2="3810.3" gradientUnits="userSpaceOnUse" x2="-3196.4" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3676.6" x1="-3155.9">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m333.97 64.797-4.338 0.929-4.034 1.244-3.723 1.706-3.724 2.025-3.417 2.325-3.101 2.486-3.09 2.784-2.795 3.106-2.629 3.265-2.481 3.417-2.151 3.417-2.173 3.721-1.867 3.718-1.708 3.73-1.703 3.879-1.396 3.868-1.39-0.293-1.249-0.316-1.234-0.467-1.402-0.464-1.245-0.453-1.397-0.467-1.545-0.462-1.864-0.313 1.551-3.101 1.706-3.718 2.167-4.349 2.325-4.656 2.785-4.962 2.942-4.973 3.259-4.799 3.417-4.509 3.707-4.188 3.876-3.415 4.188-2.8 4.338-1.867 4.653-0.772 4.651 0.459 4.962 1.861 5.126 3.407 0.003-0.003z" stroke-width="0.254" fill="url(#w)"/>
|
||||
<linearGradient id="v" y2="3777.7" gradientUnits="userSpaceOnUse" x2="-3218.7" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3648.1" x1="-3170.9">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m350.12 68.494-5.593 1.392-5.11 1.717-4.493 2.018-4.034 2.175-3.564 2.483-3.259 2.643-2.784 2.945-2.632 2.955-2.162 3.104-2.03 3.412-1.698 3.259-1.708 3.412-1.382 3.575-1.408 3.412-1.39 3.573-1.39 3.409-2.024-0.296-2.012-0.469-2.018-0.62-2.009-0.461-2.015-0.622-2.027-0.467-2.007-0.309-2.015-0.312 2.312-6.038 2.787-5.742 2.789-5.43 3.249-4.965 3.406-4.503 3.573-4.034 3.718-3.727 3.873-3.108 4.182-2.642 4.192-2.173 4.177-1.395 4.493-0.934 4.351-0.316 4.648 0.313 4.49 1.076 4.509 1.708 0.015-0.018z" stroke-width="0.254" fill="url(#v)"/>
|
||||
<linearGradient id="u" y2="3791.7" gradientUnits="userSpaceOnUse" x2="-3257.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3658" x1="-3217.3">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m373.05 73.926-4.812 0.316-4.641 0.775-4.504 1.239-4.337 1.402-4.032 1.856-3.881 2.183-3.713 2.326-3.406 2.795-3.104 2.947-2.787 3.26-2.637 3.417-2.325 3.57-2.162 3.881-1.698 4.034-1.551 4.023-1.092 4.343-2.167-0.309-2.167-0.306-2.179-0.301-2.156-0.316-2.036-0.301-2.167-0.316-1.867-0.306-1.855-0.311 2.167-6.038 2.474-5.593 2.642-5.429 3.096-5.121 3.401-4.653 3.58-4.195 4.029-3.723 4.019-3.265 4.495-2.637 4.646-2.018 4.965-1.405 5.12-0.77 5.43 0.15 5.426 0.762 5.901 1.562 5.893 2.468h-0.008z" stroke-width="0.254" fill="url(#u)"/>
|
||||
<linearGradient id="t" y2="3755.9" gradientUnits="userSpaceOnUse" x2="-3277.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3626.3" x1="-3230">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m384.38 75.149-5.732 1.249-5.12 1.403-4.341 1.545-4.028 1.719-3.409 2.021-3.111 2.167-2.787 2.328-2.479 2.64-2.315 2.789-2.015 3.111-2.017 3.254-2.165 3.417-2.024 3.871-2.157 3.881-2.481 4.346-2.64 4.504-2.009-0.312-1.856-0.461-1.55-0.316-1.556-0.301-1.556-0.314-1.551-0.306-1.551-0.155-1.861-0.143 1.54-5.745 2.025-5.432 2.471-4.968 2.786-4.651 3.254-4.187 3.417-3.724 3.863-3.417 4.031-2.953 4.343-2.483 4.49-2.021 4.662-1.556 4.954-1.244 4.973-0.622 5.118-0.158 5.11 0.459 5.274 0.765z" stroke-width="0.254" fill="url(#t)"/>
|
||||
<linearGradient id="s" y2="3773.6" gradientUnits="userSpaceOnUse" x2="-3317.4" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3640" x1="-3276.9">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m409.03 78.39-4.948 1.25-4.817 1.399-4.644 1.551-4.501 1.717-4.332 2.017-4.188 2.018-4.034 2.317-3.873 2.494-3.721 2.798-3.56 2.939-3.262 3.262-3.101 3.578-2.939 3.718-2.793 4.034-2.483 4.19-2.312 4.65-1.4-0.158-1.697-0.145-1.87-0.464-2.009-0.465-2.03-0.306-1.859-0.469-1.7-0.148-1.245-0.152 2.479-5.121 2.477-4.967 2.787-4.968 2.947-4.646 3.249-4.503 3.417-4.188 3.715-3.887 4.172-3.411 4.351-3.12 4.807-2.317 5.273-1.872 5.737-1.239 6.201-0.627 6.666 0.306 7.29 1.086 7.752 1.852v-0.003z" stroke-width="0.254" fill="url(#s)"/>
|
||||
<linearGradient id="r" y2="3765.8" gradientUnits="userSpaceOnUse" x2="-3343.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3632.1" x1="-3302.7">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m423.76 79.927-4.177 2.178-4.337 2.479-4.029 2.643-4.185 2.95-4.034 2.956-4.028 3.248-3.871 3.272-3.887 3.262-3.707 3.248-3.729 3.111-3.554 3.111-3.415 2.953-3.414 2.79-3.257 2.483-3.088 2.173-3.116 1.864-0.77 0.15-1.239-0.148-1.562-0.475-1.856-0.458-2.17-0.459-2.181-0.462-2.159-0.309-2.175-0.158 2.947-5.893 3.409-5.435 3.871-4.962 4.189-4.651 4.646-4.192 4.804-3.729 4.957-3.42 5.266-2.955 5.273-2.487 5.278-2.012 5.263-1.556 5.134-1.097 5.113-0.777 4.962-0.156 4.509 0.153 4.324 0.765h-0.005z" stroke-width="0.254" fill="url(#r)"/>
|
||||
<linearGradient id="q" y2="3756.1" gradientUnits="userSpaceOnUse" x2="-3375.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3622.4" x1="-3334.7">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m444.4 85.793-4.493 0.475-4.346 0.778-4.187 1.397-4.034 1.709-3.874 2.024-3.726 2.331-3.56 2.637-3.723 2.784-3.562 3.109-3.557 3.259-3.575 3.267-3.724 3.265-3.718 3.406-4.034 3.272-4.021 3.259-4.188 3.101-2.012 0.008h-4.971l-2.623-0.15-2.483-0.15-2.479-0.166-2.022-0.15-1.704-0.295 5.593-3.73 5.571-4.19 5.577-4.503 5.576-4.815 5.43-4.809 5.426-4.82 5.432-4.493 5.269-4.351 5.266-3.56 4.97-3.116 4.96-2.326 4.648-1.249 4.493-0.312 4.351 0.934 4.187 2.314 3.882 3.871-0.015-0.015z" stroke-width="0.254" fill="url(#q)"/>
|
||||
<linearGradient id="p" y2="3755.3" gradientUnits="userSpaceOnUse" x2="-3454.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3641.9" x1="-3354">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m459.93 87.645-6.052 2.024-5.587 2.64-5.271 2.948-5.112 3.272-4.648 3.417-4.49 3.572-4.177 3.718-3.881 3.57-3.726 3.417-3.56 3.268-3.412 2.95-3.104 2.483-3.104 2.01-2.945 1.413-2.792 0.762-2.787 0.008-0.937-0.15-1.537-0.166-2.024-0.29-2.318-0.318-2.333-0.146-2.331-0.316-2.02-0.306-1.537-0.15 4.799-3.267 4.812-3.412 4.482-3.887 4.493-3.879 4.498-4.034 4.338-4.031 4.49-3.733 4.498-3.721 4.648-3.262 4.805-2.953 4.965-2.328 5.109-1.867 5.439-1.094 5.73-0.312 6.048 0.614 6.519 1.543 0.012-0.007z" stroke-width="0.254" fill="url(#p)"/>
|
||||
<linearGradient id="o" y2="3735.2" gradientUnits="userSpaceOnUse" x2="-3477.4" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1376.5 2061.7)" y1="3621.8" x1="-3376.5">
|
||||
<stop stop-color="#512A7C" offset="0"/>
|
||||
<stop stop-color="#682672" offset=".0701"/>
|
||||
<stop stop-color="#991E5E" offset=".209"/>
|
||||
<stop stop-color="#C21F4B" offset=".3368"/>
|
||||
<stop stop-color="#E01D3D" offset=".4512"/>
|
||||
<stop stop-color="#ED1B35" offset=".5481"/>
|
||||
<stop stop-color="#ED1B35" offset=".6158"/>
|
||||
<stop stop-color="#F6EE61" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m479.47 93.079-5.426 1.241-4.965 1.408-4.341 1.553-4.031 1.867-3.721 2.007-3.409 2.175-3.254 2.334-2.953 2.48-2.939 2.637-3.106 2.795-2.942 2.938-3.105 2.959-3.401 2.945-3.56 3.108-3.882 3.101-4.335 3.267-2.634-0.16-2.95-0.156-3.106-0.467-3.104-0.3-3.098-0.475-2.945-0.454-2.645-0.459-2.474-0.313 2.942-0.472 3.415-1.556 3.873-2.632 4.182-3.422 4.648-4.021 5.115-4.351 5.273-4.659 5.424-4.656 5.732-4.182 5.886-3.89 6.051-3.259 6.057-2.333 6.033-1.25h5.893l6.057 1.384 5.737 3.262 0.008 0.006z" stroke-width="0.254" fill="url(#o)"/>
|
||||
<g stroke-width="0.254">
|
||||
<linearGradient id="m" y2="3588.2" gradientUnits="userSpaceOnUse" x2="-2809.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3797.2" x1="-2874.7">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m103.82 29.46 0.472 1.551 0.301 1.703 0.316 1.866 0.153 1.867 0.163 2.015 0.158 2.164v2.018l0.153 2.02 0.005 2.01v3.572l0.147 1.717v1.397l0.172 1.078 0.15 1.089 0.295 0.617-1.382-3.111-1.405-3.096-1.405-3.409-1.556-3.414-1.392-3.565-1.39-3.56-1.253-3.575-0.928-3.718-0.78-3.729-0.473-3.718v-3.723l0.304-3.724 0.77-3.564 1.397-3.406 1.861-3.576 2.474-3.256-0.461 1.7-0.454 1.867-0.321 1.851-0.147 1.859-0.143 1.864 0.005 2.02 0.143 2.017 0.146 1.859 0.171 2.025 0.306 1.858 0.47 2.009 0.475 1.859 0.459 1.703 0.617 1.714 0.616 1.701 0.775 1.553h0.016z" fill="url(#m)"/>
|
||||
<linearGradient id="l" y2="3592.6" gradientUnits="userSpaceOnUse" x2="-2795.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3801.6" x1="-2860.7">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m56.531 93.846 2.8 0.143 2.801-0.15 2.784-0.467 2.79-0.925 2.789-1.092 2.632-1.4 2.795-1.551 2.631-1.866 2.785-2.012 2.637-2.184 2.637-2.173 2.631-2.476 2.479-2.328 2.484-2.479 2.479-2.494 2.479-2.468-2.795 1.545-2.774 1.563-2.652 1.384-2.474 1.562-2.642 1.55-2.483 1.709-2.463 1.556-2.643 1.556-2.468 1.698-2.494 1.561-2.637 1.711-2.637 1.551-2.784 1.709-2.784 1.706-2.948 1.869-2.953 1.708v-0.016z" fill="url(#l)"/>
|
||||
<linearGradient id="k" y2="3590.5" gradientUnits="userSpaceOnUse" x2="-2802.2" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3799.5" x1="-2867.4">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m79.592 31.814 3.259 0.304 3.096 0.616 2.637 0.931 2.484 1.09 2.172 1.392 2.018 1.556 1.869 1.548 1.545 1.864 1.397 2.004 1.261 2.015 1.076 2.02 0.933 2.173 0.923 2.162 0.775 2.175 0.78 2.022 0.623 2.01-1.405-1.862-1.393-1.855-1.405-1.862-1.551-1.708-1.395-1.852-1.548-1.703-1.556-1.708-1.551-1.714-1.719-1.551-1.714-1.703-1.698-1.551-1.861-1.387-1.867-1.397-2.006-1.397-2.025-1.395-2.17-1.25 0.016 0.013z" fill="url(#k)"/>
|
||||
<linearGradient id="j" y2="3584.8" gradientUnits="userSpaceOnUse" x2="-2820.6" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3793.7" x1="-2885.8">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m102.7 13.16 2.01 1.703 1.708 1.861 1.556 2.178 1.09 2.32 0.931 2.634 0.78 2.793 0.472 2.784 0.309 3.108 0.158 3.093 0.153 3.265-0.148 3.259-0.152 3.265-0.306 3.406-0.314 3.417-0.456 3.26-0.306 3.409-0.638-2.943-0.606-2.792-0.465-2.789-0.472-2.79-0.478-2.79-0.3-2.637-0.475-2.795-0.327-2.784-0.464-2.789-0.316-2.79-0.465-2.792-0.308-2.943-0.473-2.792-0.622-3.101-0.459-3.106-0.617-3.105v-0.017z" fill="url(#j)"/>
|
||||
<linearGradient id="i" y2="3592.2" gradientUnits="userSpaceOnUse" x2="-2796.6" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3801.2" x1="-2861.8">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m86.094 8.092 0.301 4.182 0.791 3.721 0.929 3.101 1.241 2.787 1.247 2.481 1.546 2.181 1.716 2.004 1.551 2.009 1.722 2.03 1.54 2.168 1.566 2.325 1.239 2.629 1.244 3.098 0.772 3.418 0.62 4.028 0.316 4.644-1.551-1.693-1.872-2.183-2.167-2.312-2.484-2.795-2.637-2.787-2.642-3.098-2.474-3.26-2.331-3.253-2.017-3.41-1.717-3.417-1.244-3.414-0.617-3.254 0.161-3.265 0.762-3.101 1.688-2.953 2.803-2.621-0.002 0.01z" fill="url(#i)"/>
|
||||
<linearGradient id="h" y2="3585.3" gradientUnits="userSpaceOnUse" x2="-2818.9" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3794.3" x1="-2884.1">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m105.97 57.688-0.316-1.55-0.617-1.859-0.923-1.858-0.934-2.176-1.102-2.159-1.092-2.484-0.76-2.634-0.785-2.792-0.312-2.942 0.147-3.268 0.612-3.259 1.252-3.56 1.852-3.726 2.629-3.884 3.718-4.189 4.503-4.346-1.244 2.792-0.923 2.787-1.089 2.795-0.772 2.784-0.612 2.79-0.765 2.79-0.464 2.95-0.472 2.784-0.298 2.8-0.307 2.943-0.311 2.945-0.147 2.953-0.158 3.111-0.143 3.095-0.155 3.102v3.259l-0.012 0.006z" fill="url(#h)"/>
|
||||
<linearGradient id="g" y2="3593.5" gradientUnits="userSpaceOnUse" x2="-2792.5" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3802.5" x1="-2857.8">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m60.544 68.409 2.646 1.864 2.623 1.548 2.642 1.092 2.632 0.775 2.652 0.604 2.632 0.158h2.64l2.48-0.158 2.468-0.309 2.471-0.627 2.328-0.615 2.326-0.782 2.178-0.768 2.167-0.937 2.015-0.774 2.02-0.932-2.325 0.304-2.479 0.321-2.33 0.307-2.483 0.16-2.323 0.156-2.484 0.306h-2.32l-2.479 0.158h-4.809l-2.497-0.146-2.466-0.155-2.483-0.304-2.474-0.303-2.489-0.472-2.479-0.462v-0.009z" fill="url(#g)"/>
|
||||
<linearGradient id="f" y2="3594.7" gradientUnits="userSpaceOnUse" x2="-2788.8" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3803.7" x1="-2854">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m74.993 80.984 3.111-1.247 3.412-1.862 3.56-2.02 3.412-2.167 3.412-2.015 2.789-1.875 2.326-1.241 1.703-0.617-3.412 0.775-3.416 0.625-3.721 0.763-3.876 0.785-3.878 0.934-3.871 0.934-3.718 1.244-3.723 1.239-3.573 1.403-3.446 1.7-3.105 2.025-2.785 2.17-2.494 2.64-1.998 2.784-1.709 3.274-1.093 3.716 1.095-1.397 1.231-1.242 1.249-1.242 1.388-1.244 1.561-1.087 1.551-1.097 1.708-1.081 1.703-0.934 1.867-0.928 1.698-0.775 1.851-0.611 1.878-0.786 1.851-0.467 1.867-0.461 1.695-0.306 1.866-0.316 0.034 0.007z" fill="url(#f)"/>
|
||||
<linearGradient id="e" y2="3588.3" gradientUnits="userSpaceOnUse" x2="-2809.3" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3797.2" x1="-2874.5">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m67.888 108.74 2.017-4.023 2.015-3.27 2.168-2.795 2.172-2.32 2.168-1.864 2.32-1.553 2.336-1.551 2.315-1.402 2.325-1.397 2.325-1.403 2.32-1.855 2.326-2.021 2.173-2.642 2.314-2.948 2.184-3.723 2.151-4.504-2.009 1.25-2.632 1.393-3.111 1.568-3.243 1.701-3.578 1.858-3.721 2.181-3.56 2.168-3.417 2.483-3.256 2.486-2.945 2.798-2.481 2.942-1.851 2.948-1.247 3.105-0.465 3.409 0.475 3.418 1.396 3.567 0.016-0.004z" fill="url(#e)"/>
|
||||
<linearGradient id="d" y2="3582.6" gradientUnits="userSpaceOnUse" x2="-2827.4" gradientTransform="matrix(-.5318 .0004 -.0004 -.5318 -1416.2 2021)" y1="3791.6" x1="-2892.6">
|
||||
<stop stop-color="#D8E7EB" offset="0"/>
|
||||
<stop stop-color="#CAD9DF" offset=".0849"/>
|
||||
<stop stop-color="#A5B8C2" offset=".2184"/>
|
||||
<stop stop-color="#728896" offset=".3836"/>
|
||||
<stop stop-color="#415867" offset=".5537"/>
|
||||
<stop stop-color="#677E8B" offset=".6417"/>
|
||||
<stop stop-color="#92A7B1" offset=".742"/>
|
||||
<stop stop-color="#B7C8D0" offset=".8374"/>
|
||||
<stop stop-color="#CFDFE4" offset=".9257"/>
|
||||
<stop stop-color="#D8E7EB" offset="1"/>
|
||||
</linearGradient>
|
||||
<path d="m106.91 70.526-1.256 1.095-1.387 1.247-1.861 1.084-2.009 1.241-2.173 1.237-2.323 1.402-2.167 1.703-2.181 2.021-1.852 2.178-1.703 2.642-1.399 3.101-0.932 3.42-0.464 4.021 0.164 4.656 0.774 5.12 1.562 5.896 0.611-2.956 0.617-2.792 0.78-2.632 0.765-2.79 0.929-2.637 1.097-2.479 1.086-2.634 1.234-2.642 1.233-2.481 1.397-2.486 1.403-2.629 1.397-2.481 1.54-2.483 1.703-2.634 1.703-2.637 1.709-2.643v-0.028z" fill="url(#d)"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g stroke="#000" stroke-width="2" fill="#fff" transform="translate(.77474 .076835)">
|
||||
<path d="m172.88 122.2h-16.574l-2.303 7.799h-14.906l17.757-47.244h15.924l17.753 47.244h-15.288l-2.363-7.799zm-3.028-10.216-5.215-16.983-5.16 16.983h10.375z"/>
|
||||
<path d="m195.11 82.756h24.267c5.285 0 9.244 1.257 11.875 3.771s3.948 6.091 3.948 10.731c0 4.77-1.434 8.497-4.302 11.183s-7.246 4.028-13.132 4.028h-7.992v17.531h-14.663v-47.244zm14.664 20.141h3.577c2.814 0 4.791-0.488 5.93-1.466s1.708-2.229 1.708-3.754c0-1.482-0.495-2.739-1.482-3.771-0.988-1.031-2.847-1.547-5.575-1.547h-4.157v10.538z"/>
|
||||
<path d="m266.27 122.2h-16.574l-2.303 7.799h-14.906l17.757-47.244h15.924l17.753 47.244h-15.288l-2.363-7.799zm-3.028-10.216-5.215-16.983-5.16 16.983h10.375z"/>
|
||||
<path d="m318.82 110.66 12.794 3.867c-0.859 3.588-2.213 6.585-4.061 8.991s-4.141 4.222-6.88 5.446-6.225 1.837-10.458 1.837c-5.135 0-9.33-0.746-12.584-2.238s-6.064-4.116-8.427-7.874c-2.364-3.757-3.545-8.566-3.545-14.428 0-7.815 2.079-13.821 6.236-18.019s10.039-6.296 17.644-6.296c5.951 0 10.629 1.204 14.035 3.609 3.405 2.406 5.935 6.102 7.589 11.086l-12.891 2.868c-0.451-1.439-0.924-2.492-1.418-3.158-0.817-1.117-1.816-1.977-2.997-2.578-1.182-0.601-2.503-0.902-3.964-0.902-3.309 0-5.844 1.331-7.605 3.992-1.333 1.974-1.998 5.075-1.998 9.302 0 5.236 0.794 8.826 2.385 10.767 1.59 1.942 3.824 2.913 6.703 2.913 2.792 0 4.903-0.784 6.333-2.353 1.428-1.568 2.465-3.846 3.109-6.832z"/>
|
||||
<path d="m338.77 82.756h14.599v16.532h15.952v-16.532h14.663v47.244h-14.663v-19.11h-15.952v19.11h-14.599v-47.244z"/>
|
||||
<path d="m393.65 82.756h39.123v10.087h-24.492v7.509h22.72v9.636h-22.72v9.313h25.201v10.699h-39.832v-47.244z"/>
|
||||
<path d="m492.4 122.2h-16.574l-2.302 7.799h-14.906l17.757-47.244h15.924l17.753 47.244h-15.287l-2.365-7.799zm-3.028-10.216-5.214-16.983-5.161 16.983h10.375z"/>
|
||||
<path d="m514.79 82.756h13.632l17.789 26.138v-26.138h13.761v47.244h-13.761l-17.692-25.94v25.94h-13.729v-47.244z"/>
|
||||
<path d="m566.36 82.756h44.376v11.666h-14.889v35.578h-14.599v-35.578h-14.889v-11.666z"/>
|
||||
</g>
|
||||
<g stroke="#000" stroke-width="2" fill="#fff" transform="translate(.77474 .076835)">
|
||||
<path d="m145.15 35.753h32.273v8.484h-10.828v25.875h-10.617v-25.875h-10.828v-8.484z"/>
|
||||
<path d="m182.27 35.753h10.617v12.023h11.602v-12.023h10.664v34.359h-10.664v-13.898h-11.602v13.898h-10.617v-34.359z"/>
|
||||
<path d="m222.19 35.753h28.453v7.336h-17.812v5.461h16.523v7.008h-16.523v6.773h18.328v7.781h-28.969v-34.359z"/>
|
||||
</g>
|
||||
<g stroke="#000" stroke-width="2" fill="#fff" transform="translate(.77474 .076835)">
|
||||
<path d="m340.47 142.16h17.648c3.844 0 6.723 0.914 8.637 2.742s2.871 4.43 2.871 7.805c0 3.469-1.043 6.18-3.129 8.133s-5.27 2.93-9.551 2.93h-5.812v12.75h-10.664v-34.36zm10.664 14.648h2.602c2.047 0 3.484-0.355 4.312-1.066s1.242-1.621 1.242-2.73c0-1.078-0.359-1.992-1.078-2.742s-2.07-1.125-4.055-1.125h-3.023v7.663z"/>
|
||||
<path d="m375.32 176.52v-34.359h17.695c3.281 0 5.789 0.281 7.523 0.844s3.133 1.605 4.195 3.129 1.594 3.379 1.594 5.566c0 1.906-0.406 3.551-1.22 4.934-0.812 1.383-1.931 2.504-3.353 3.363-0.907 0.547-2.15 1-3.729 1.359 1.265 0.423 2.187 0.845 2.764 1.267 0.391 0.282 0.956 0.884 1.698 1.807s1.237 1.634 1.487 2.135l5.142 9.956h-11.996l-5.676-10.5c-0.719-1.359-1.359-2.242-1.922-2.648-0.766-0.531-1.633-0.797-2.602-0.797h-0.938v13.945h-10.662zm10.664-20.438h4.477c0.484 0 1.422-0.156 2.812-0.469 0.703-0.141 1.277-0.5 1.723-1.078s0.668-1.242 0.668-1.992c0-1.109-0.352-1.961-1.055-2.555s-2.023-0.891-3.961-0.891h-4.664v6.985z"/>
|
||||
<path d="m410.36 159.36c0-5.609 1.562-9.977 4.688-13.102s7.477-4.688 13.055-4.688c5.719 0 10.125 1.535 13.219 4.605s4.641 7.371 4.641 12.902c0 4.016-0.676 7.309-2.027 9.879s-3.305 4.57-5.859 6-5.738 2.145-9.551 2.145c-3.875 0-7.082-0.617-9.621-1.852s-4.598-3.188-6.176-5.859-2.369-6.015-2.369-10.03zm10.618 0.047c0 3.469 0.645 5.961 1.934 7.477s3.043 2.273 5.262 2.273c2.281 0 4.047-0.742 5.297-2.227s1.875-4.148 1.875-7.992c0-3.234-0.652-5.598-1.957-7.09s-3.074-2.238-5.309-2.238c-2.141 0-3.859 0.758-5.156 2.273s-1.946 4.024-1.946 7.524z"/>
|
||||
<path d="m465.98 142.16h10.641v18.667c0 3.919-0.348 6.902-1.043 8.947-0.695 2.046-2.094 3.779-4.195 5.2s-4.793 2.131-8.074 2.131c-3.469 0-6.156-0.469-8.062-1.406s-3.379-2.309-4.418-4.113-1.652-4.035-1.84-6.691l10.148-1.383c0.016 1.516 0.148 2.641 0.398 3.375s0.672 1.328 1.266 1.781c0.406 0.297 0.984 0.445 1.734 0.445 1.188 0 2.059-0.441 2.613-1.323 0.555-0.882 0.832-2.369 0.832-4.461v-21.169z"/>
|
||||
<path d="m483.67 142.16h28.453v7.336h-17.812v5.461h16.523v7.008h-16.523v6.773h18.328v7.781h-28.969v-34.359z"/>
|
||||
<path d="m541.23 162.46 9.305 2.812c-0.625 2.609-1.609 4.789-2.953 6.539s-3.012 3.07-5.004 3.961-4.527 1.336-7.605 1.336c-3.734 0-6.785-0.543-9.152-1.628s-4.41-2.994-6.129-5.727c-1.719-2.732-2.578-6.23-2.578-10.493 0-5.684 1.512-10.052 4.535-13.104s7.301-4.579 12.832-4.579c4.328 0 7.73 0.875 10.207 2.625s4.316 4.438 5.52 8.062l-9.375 2.086c-0.328-1.047-0.672-1.812-1.031-2.297-0.594-0.812-1.32-1.438-2.18-1.875s-1.82-0.656-2.883-0.656c-2.406 0-4.25 0.968-5.531 2.903-0.969 1.436-1.453 3.691-1.453 6.765 0 3.808 0.578 6.418 1.734 7.831s2.781 2.119 4.875 2.119c2.031 0 3.566-0.57 4.605-1.711s1.793-2.797 2.261-4.969z"/>
|
||||
<path d="m553.28 142.16h32.273v8.484h-10.828v25.875h-10.617v-25.875h-10.828v-8.484z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 697.32 518.74" xml:space="preserve" viewBox="0 0 638.90594 148.79584" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<g fill="#010101">
|
||||
<polygon points="604.83 20.641 604.83 36.572 627.9 36.572 627.9 39.274 604.83 39.274 604.83 55.493 630.77 55.493 630.77 58.195 601.84 58.195 601.84 17.938 630.48 17.938 630.48 20.641" transform="translate(-.000078826 -.0012690)"/>
|
||||
<polygon points="538.58 36.63 538.58 17.938 541.57 17.938 541.57 58.195 538.58 58.195 538.58 39.332 512.81 39.332 512.81 58.195 509.82 58.195 509.82 17.938 512.81 17.938 512.81 36.63" transform="translate(-.000078826 -.0012690)"/>
|
||||
<path d="m437.3 58.886c-2.877 0-5.539-0.537-7.994-1.61-2.453-1.073-4.572-2.54-6.355-4.4-1.783-1.859-3.172-4.054-4.17-6.585-0.996-2.53-1.494-5.232-1.494-8.108v-0.114c0-2.837 0.508-5.521 1.525-8.052 1.016-2.531 2.412-4.744 4.195-6.642s3.902-3.393 6.355-4.486c2.455-1.093 5.137-1.639 8.053-1.639 1.801 0 3.432 0.154 4.887 0.46 1.459 0.309 2.809 0.749 4.055 1.323 1.246 0.575 2.416 1.256 3.51 2.041 1.094 0.787 2.156 1.66 3.191 2.617l-2.127 2.185c-0.883-0.844-1.803-1.628-2.762-2.357-0.957-0.729-1.984-1.352-3.076-1.869-1.094-0.519-2.281-0.929-3.566-1.236-1.283-0.308-2.674-0.461-4.17-0.461-2.416 0-4.658 0.461-6.727 1.381-2.07 0.919-3.863 2.195-5.379 3.824-1.514 1.63-2.703 3.539-3.564 5.722-0.865 2.187-1.295 4.543-1.295 7.074v0.115c0 2.531 0.441 4.897 1.322 7.102 0.883 2.206 2.08 4.123 3.594 5.752 1.516 1.63 3.307 2.912 5.377 3.853s4.312 1.409 6.729 1.409c2.914 0 5.443-0.535 7.592-1.609 2.146-1.073 4.236-2.626 6.27-4.658l2.012 1.955c-1.074 1.035-2.176 1.984-3.307 2.847s-2.338 1.602-3.623 2.215c-1.287 0.611-2.674 1.093-4.17 1.437-1.496 0.341-3.127 0.514-4.888 0.514z"/>
|
||||
<path d="m340.63 17.649h2.876l18.75 40.545h-3.277l-5.119-11.271h-23.753l-5.119 11.271h-3.105l18.747-40.545zm11.962 26.571-10.582-23.291-10.638 23.291h21.22z"/>
|
||||
<path d="m238.6 17.937h14.607c2.224 0 4.246 0.277 6.067 0.834s3.395 1.36 4.715 2.415c1.324 1.055 2.35 2.339 3.077 3.854 0.729 1.516 1.094 3.249 1.094 5.204v0.114c0 2.109-0.422 3.969-1.265 5.578-0.844 1.611-1.985 2.953-3.423 4.026s-3.104 1.879-5.003 2.415c-1.898 0.537-3.899 0.806-6.011 0.806h-10.868v15.011h-2.99v-40.257zm14.032 22.544c1.879 0 3.585-0.229 5.119-0.689 1.533-0.47 2.847-1.132 3.939-2.004 1.095-0.862 1.946-1.917 2.561-3.154 0.613-1.227 0.92-2.597 0.92-4.103v-0.114c0-1.62-0.297-3.039-0.893-4.256-0.593-1.209-1.428-2.225-2.501-3.037-1.073-0.808-2.358-1.42-3.854-1.852-1.493-0.422-3.145-0.633-4.945-0.633h-11.387v19.842h11.041z"/>
|
||||
<path d="m160.16 17.649h2.875l18.75 40.545h-3.278l-5.119-11.271h-23.752l-5.119 11.271h-3.106l18.749-40.545zm11.962 26.571-10.582-23.291-10.64 23.291h21.222z"/>
|
||||
<path d="m636.2 95.651c0 9.738-4.248 15.873-12.748 18.406l15.451 21.445h-12.666l-14.1-19.84h-13.086v19.84h-9.963v-59.016h21.953c9.006 0 15.449 1.521 19.334 4.56 3.884 3.04 5.825 7.908 5.825 14.605zm-24.738 10.978c5.629 0 9.457-0.872 11.482-2.619 2.027-1.742 3.039-4.543 3.039-8.4 0-3.854-1.039-6.499-3.121-7.935-2.084-1.437-5.799-2.154-11.146-2.154h-12.664v21.108h12.41z"/>
|
||||
<path d="m569.87 127.35c-5.965 5.825-13.34 8.738-22.121 8.738-8.779 0-16.154-2.912-22.121-8.738-5.967-5.825-8.949-13.087-8.949-21.784 0-8.696 2.982-15.956 8.949-21.783 5.967-5.823 13.342-8.738 22.121-8.738 8.781 0 16.156 2.912 22.121 8.738 5.967 5.825 8.951 13.087 8.951 21.783 0 8.698-2.984 15.959-8.951 21.784zm-7.303-36.937c-4.023-4.166-8.963-6.248-14.818-6.248-5.854 0-10.791 2.082-14.818 6.248-4.021 4.165-6.037 9.217-6.037 15.154 0 5.939 2.014 10.991 6.037 15.157 4.025 4.165 8.965 6.248 14.818 6.248 5.855 0 10.793-2.083 14.818-6.248 4.023-4.166 6.035-9.218 6.035-15.157 0-5.937-2.011-10.989-6.035-15.154z"/>
|
||||
<polygon points="485.73 85.605 467.83 85.605 467.83 76.487 513.59 76.487 513.59 85.605 495.7 85.605 495.7 135.5 485.73 135.5" transform="translate(-.000078826 -.0012690)"/>
|
||||
<path d="m426.07 122.08-5.91 13.424h-10.637l26.006-59.017h10.637l26.006 59.017h-10.639l-5.912-13.424h-29.551zm25.498-9.203-10.722-24.314-10.723 24.314h21.445z"/>
|
||||
<path d="m386.93 135.5h-25.836v-59.017h22.967c3.996 0 7.443 0.479 10.342 1.437 2.896 0.957 5.049 2.251 6.457 3.885 2.701 3.039 4.053 6.474 4.053 10.301 0 4.614-1.463 8.048-4.391 10.3-1.07 0.788-1.801 1.28-2.195 1.477-0.395 0.198-1.098 0.522-2.109 0.973 3.658 0.789 6.572 2.435 8.74 4.938 2.166 2.505 3.248 5.615 3.248 9.33 0 4.108-1.406 7.739-4.221 10.892-3.321 3.654-9.007 5.484-17.055 5.484zm-15.873-9.203h15.621c3.658 0 6.459-0.576 8.4-1.729 1.941-1.154 2.912-3.336 2.912-6.545 0-5.233-4.191-7.851-12.578-7.851h-14.355v16.125zm0-25.33h12.666c7.205 0 10.807-2.446 10.807-7.345 0-2.812-0.873-4.839-2.617-6.078-1.744-1.238-4.447-1.858-8.105-1.858h-12.748v15.281h-0.003z"/>
|
||||
<path d="m311.82 121.99c2.701 3.152 6.359 4.728 10.976 4.728s8.275-1.575 10.977-4.728c2.702-3.152 4.053-7.431 4.053-12.833v-32.675h9.963v33.098c0 8.5-2.335 15.043-7.008 19.631-4.672 4.585-10.665 6.88-17.982 6.88-7.318 0-13.312-2.294-17.983-6.88-4.672-4.588-7.009-11.131-7.009-19.631v-33.098h9.963v32.675c-0.003 5.402 1.349 9.681 4.05 12.833z"/>
|
||||
<path d="m265.68 126.47c3.434 0 6.388-0.576 8.866-1.73 2.476-1.153 5.065-2.997 7.767-5.53l6.416 6.585c-6.247 6.923-13.833 10.384-22.753 10.384-8.922 0-16.323-2.87-22.205-8.611s-8.822-13.003-8.822-21.783 2.996-16.098 8.991-21.951c5.994-5.854 13.565-8.781 22.711-8.781s16.788 3.378 22.922 10.132l-6.332 6.924c-2.812-2.703-5.474-4.588-7.979-5.657-2.503-1.069-5.446-1.604-8.823-1.604-5.966 0-10.976 1.928-15.028 5.784-4.053 3.854-6.079 8.78-6.079 14.773 0 5.994 2.014 11.004 6.038 15.029 4.023 4.024 8.795 6.036 14.31 6.036z"/>
|
||||
<polygon points="213.87 135.5 180.44 92.445 180.44 135.5 170.48 135.5 170.48 76.487 180.44 76.487 214.71 120.56 214.71 76.487 224.68 76.487 224.68 135.5" transform="translate(-.000078826 -.0012690)"/>
|
||||
<rect height="59.017" width="9.962" y="76.486" x="146.45"/>
|
||||
</g>
|
||||
<linearGradient id="a" y2="446.93" gradientUnits="userSpaceOnUse" x2="139.38" gradientTransform="matrix(1 0 0 -1 -72.34 481.13)" y1="342.52" x1="119.54">
|
||||
<stop stop-color="#211C52" offset="0"/>
|
||||
<stop stop-color="#CB2128" offset=".5"/>
|
||||
<stop stop-color="#F89A20" offset="1"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#a)" d="m60.645 20.391c-0.004-0.438-0.01-0.877-0.021-1.319 0.091 0.144 0.346 0.586 0.769 1.319h-0.748zm-15.88 46.21c-4.634 8.616-7.274 17.605-7.949 26.962-0.602 8.33 0.299 15.514 2.728 21.536 0.332 0.819 0.653 1.577 0.975 2.278-1.92-1.357-3.751-2.773-5.498-4.25-0.147-0.116-0.254-0.165-0.322-0.148 2.294 3.668 5.152 6.992 8.578 9.973 0.529 0.463 1.412 0.68 1.63 1.359 0.619 1.948-1.065 19.44 4.346 23.517 3.441 2.589 18.65-0.667 23.346-2.184 24.498-7.912 43.499-30.539 40.673-63.149-3.1-35.763-26.66-72.131-50.158-80.873-6.352-2.364-7.761-2.147-14.357 0.674-22.93 9.805-45.453 45.291-48.478 80.198-2.9061 33.546 17.276 56.526 42.786 63.786 0.689 0.197 1.356 0.378 2.004 0.549-0.657-1.358-1.195-2.9-1.631-4.53-26.719-7.946-41.665-31.636-39.253-59.469 2.306-26.608 20.14-65.826 46.108-76.934 5.429-2.318 5.942-2.649 11.447-0.601 26.655 9.914 45.274 50.485 47.618 77.535 2.507 28.92-13.8 53.254-42.002 60.223-2.836 0.7-5.296 1.163-7.599 1.394-7.308 0.734-9.849 2.027-11.189-5.583-2.952-16.784-0.72-47.158 6.583-58.812 0.059-0.846 0.01 0.703-0.54 2.026-0.254 0.594-0.417 0.957-0.488 1.144-4.374 10.02-6.814 39.086-4.733 44.606-0.602-1.978 0.478-6.143 2.039-6.997l0.895-0.626c4.897-3.527 8.064-9.07 11.604-16.088-0.062-0.098-0.176-0.086-0.341 0.033-1.651 1.382-3.355 2.622-5.106 3.719 3.986-4.187 7.467-9.533 10.45-16.046-0.081-0.118-0.219-0.097-0.415 0.057-1.178 1.063-2.377 2.063-3.601 3.002 5.006-9.063 9.414-19.562 9.876-31.562 0.229-7.766-1.192-15.249-4.265-22.396-1.06-2.443-2.538-5.363-4.444-8.809-2.817-5.081-4.34-7.832-4.583-8.231 0.126 11.012-1.816 19.964-5.825 26.783-1.034 1.812-2.869 4.45-5.521 7.91-2.462 3.228-4.269 5.899-5.388 8.019z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 193 B |
|
After Width: | Height: | Size: 141 B |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 104 B |
|
After Width: | Height: | Size: 605 B |
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 162 B |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
|
@ -0,0 +1,173 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 549.56701 519.84498" version="1.2" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<font id="font3" horiz-origin-x="0" horiz-origin-y="0" horiz-adv-x="2048" vert-origin-x="45" vert-origin-y="90" vert-adv-y="90">
|
||||
<font-face underline-position="-155" font-family="Helvetica" underline-thickness="101" units-per-em="2048"/>
|
||||
<missing-glyph d="M66,0l0,1469l1166,0l0,-1469M1048,184l0,1101l-798,0l0,-1101z" horiz-adv-x="1298"/>
|
||||
<glyph horiz-adv-x="569" unicode=" "/>
|
||||
<glyph horiz-adv-x="682" unicode="(" d="M606,1493C501,1290 433,1140 402,1044C355,898 331,729 331,538C331,345 358,168 412,8C445,-91 511,-233 609,-418l-121,0C391,-266 330,-169 307,-127C284,-85 258,-28 231,44C194,143 168,248 153,360C146,418 142,473 142,526C142,723 173,899 235,1053C274,1151 356,1298 481,1493z"/>
|
||||
<glyph horiz-adv-x="682" unicode=")" d="M71,-418C177,-211 245,-61 276,34C323,177 346,345 346,538C346,731 319,907 265,1067C232,1166 166,1308 68,1493l121,0C292,1329 354,1228 376,1190C397,1151 421,1098 446,1031C478,948 501,865 515,784C528,703 535,624 535,549C535,352 504,176 441,21C402,-78 320,-225 196,-418z"/>
|
||||
<glyph horiz-adv-x="682" unicode="-" d="M85,663l502,0l0,-185l-502,0z"/>
|
||||
<glyph horiz-adv-x="569" unicode="." d="M175,218l209,0l0,-218l-209,0z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="0" d="M956,1203C1020,1085 1052,923 1052,718C1052,523 1023,362 965,235C881,52 744,-39 553,-39C381,-39 253,36 169,185C99,310 64,477 64,687C64,850 85,989 127,1106C206,1323 348,1432 554,1432C739,1432 873,1356 956,1203M858,711C858,874 838,1008 798,1113C758,1218 680,1270 565,1270C459,1270 382,1220 333,1121C284,1021 259,874 259,680C259,534 275,417 306,328C354,193 436,125 552,125C645,125 720,166 775,249C830,332 858,486 858,711z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="1" d="M196,1014l0,138C326,1165 417,1186 468,1216C519,1245 558,1315 583,1426l142,0l0,-1426l-192,0l0,1014z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="2" d="M400,571l192,111C678,732 738,775 773,810C828,865 855,929 855,1000C855,1083 830,1150 780,1199C730,1248 663,1272 580,1272C457,1272 371,1225 324,1132C299,1082 285,1013 282,924l-183,0C101,1049 124,1150 168,1229C246,1368 384,1437 581,1437C745,1437 865,1393 941,1304C1016,1215 1054,1117 1054,1008C1054,893 1014,795 933,714C886,667 803,609 682,542l-137,-76C480,430 428,396 391,363C324,305 282,241 265,170l782,0l0,-170l-983,0C71,123 96,231 141,322C185,413 271,496 400,571z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="3" d="M49,440l188,0C245,347 262,280 289,238C336,163 420,125 542,125C637,125 713,150 770,201C827,252 856,317 856,397C856,496 826,565 766,604C705,643 621,663 514,663C502,663 490,663 478,663C465,662 453,662 440,661l0,159C459,818 474,817 487,816C500,815 513,815 528,815C595,815 651,826 694,847C770,884 808,951 808,1047C808,1118 783,1173 732,1212C681,1251 622,1270 555,1270C435,1270 352,1230 306,1150C281,1106 266,1043 263,962l-178,0C85,1069 106,1159 149,1234C222,1367 351,1434 536,1434C682,1434 795,1402 875,1337C955,1272 995,1177 995,1054C995,966 971,895 924,840C895,806 857,779 810,760C885,739 944,700 987,641C1029,582 1050,509 1050,424C1050,287 1005,176 915,90C825,4 697,-39 532,-39C363,-39 240,8 164,101C87,194 49,307 49,440z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="4" d="M677,507l0,649l-459,-649M680,0l0,350l-628,0l0,176l656,910l152,0l0,-929l211,0l0,-157l-211,0l0,-350z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="5" d="M253,365C265,262 313,191 396,152C439,132 488,122 544,122C651,122 730,156 781,224C832,292 858,367 858,450C858,550 828,627 767,682C706,737 632,764 547,764C485,764 432,752 388,728C343,704 305,671 274,628l-156,9l109,771l744,0l0,-174l-609,0l-61,-398C334,861 366,880 396,893C449,915 511,926 581,926C712,926 824,884 915,799C1006,714 1052,607 1052,477C1052,342 1010,222 927,119C843,16 709,-36 526,-36C409,-36 306,-3 217,63C127,128 77,229 66,365z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="6" d="M1028,1057l-178,0C839,1114 822,1158 799,1190C756,1250 690,1280 602,1280C501,1280 421,1234 362,1141C303,1048 270,914 263,741C304,802 356,847 419,877C476,904 540,917 611,917C731,917 836,879 925,802C1014,725 1059,611 1059,459C1059,329 1017,214 932,114C847,13 727,-37 570,-37C436,-37 320,14 223,116C126,217 77,388 77,629C77,807 99,958 142,1082C225,1319 378,1438 599,1438C759,1438 871,1397 934,1314C997,1231 1028,1145 1028,1057M869,444C869,517 848,587 806,654C764,720 688,753 577,753C500,753 432,727 374,676C315,625 286,547 286,444C286,353 313,277 366,216C419,154 492,123 586,123C681,123 752,155 799,219C846,282 869,357 869,444z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="7" d="M1071,1408l0,-157C1025,1206 964,1129 888,1018C811,907 744,788 685,660C627,535 583,422 553,319C534,253 509,147 478,0l-199,0C324,273 424,545 579,816C670,975 766,1112 867,1227l-792,0l0,181z"/>
|
||||
<glyph horiz-adv-x="1366" unicode="B" d="M708,848C792,848 857,860 904,883C977,920 1014,986 1014,1081C1014,1177 975,1242 897,1275C853,1294 788,1303 701,1303l-355,0l0,-455M775,170C897,170 984,205 1036,276C1069,321 1085,375 1085,438C1085,545 1037,617 942,656C891,677 824,687 741,687l-395,0l0,-517M151,1469l631,0C954,1469 1076,1418 1149,1315C1192,1254 1213,1184 1213,1105C1213,1012 1187,936 1134,877C1107,846 1067,817 1016,791C1091,762 1148,730 1185,694C1251,630 1284,542 1284,429C1284,334 1254,249 1195,172C1106,57 965,0 772,0l-621,0z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="_" d="M0,-256l0,101l1139,0l0,-101z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="a" d="M462,117C525,117 587,132 646,161C746,210 796,289 796,400l0,145C774,531 746,519 711,510C676,501 642,494 609,490l-109,-14C435,467 386,454 353,435C298,404 270,354 270,285C270,233 289,192 327,162C365,132 410,117 462,117M706,649C747,654 775,672 789,701C797,717 801,740 801,770C801,831 779,876 736,904C692,931 629,945 548,945C454,945 387,920 348,869C326,841 312,799 305,744l-168,0C140,876 183,968 266,1020C348,1071 443,1097 552,1097C678,1097 780,1073 859,1025C937,977 976,902 976,801l0,-617C976,165 980,150 988,139C995,128 1011,122 1036,122C1044,122 1053,123 1063,124C1073,125 1084,126 1095,128l0,-133C1067,-13 1046,-18 1031,-20C1016,-22 996,-23 971,-23C909,-23 864,-1 836,43C821,66 811,99 805,142C768,94 716,52 647,17C578,-18 503,-36 420,-36C321,-36 240,-6 177,55C114,115 82,190 82,281C82,380 113,457 175,512C237,567 318,600 419,613z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="b" d="M118,1474l175,0l0,-533C332,992 379,1032 434,1059C489,1086 548,1099 612,1099C745,1099 854,1053 937,962C1020,870 1061,735 1061,556C1061,387 1020,246 938,134C856,22 742,-34 597,-34C516,-34 447,-14 391,25C358,48 322,86 284,137l0,-137l-166,0M877,547C877,660 853,753 805,827C756,901 685,938 591,938C509,938 437,908 376,847C314,786 283,686 283,547C283,446 296,365 321,302C368,184 457,125 586,125C683,125 756,164 805,241C853,318 877,420 877,547z"/>
|
||||
<glyph horiz-adv-x="1024" unicode="c" d="M976,711l-175,0C790,777 766,832 728,876C690,919 629,941 545,941C430,941 348,885 299,773C267,700 251,611 251,504C251,397 274,306 319,233C364,160 436,123 533,123C608,123 667,146 711,192C754,237 784,300 801,379l175,0C956,237 906,133 826,68C746,2 644,-31 519,-31C379,-31 267,20 184,123C101,225 59,353 59,506C59,694 105,840 196,945C287,1050 404,1102 545,1102C666,1102 764,1073 840,1014C915,955 961,854 976,711z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="d" d="M553,119C636,119 705,155 759,227C812,298 839,401 839,535C839,670 811,771 756,836C701,901 632,933 551,933C460,933 387,898 331,829C274,760 246,658 246,523C246,408 270,312 319,235C368,158 446,119 553,119M723,1038C755,1018 791,983 832,933l0,541l173,0l0,-1474l-162,0l0,149C801,83 751,35 694,6C637,-23 571,-38 497,-38C378,-38 274,12 187,113C100,213 56,346 56,513C56,669 96,804 176,919C255,1033 369,1090 517,1090C599,1090 668,1073 723,1038z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="e" d="M962,903C998,849 1022,786 1034,714C1045,665 1050,586 1050,478l-785,0C268,369 294,282 342,217C390,151 464,118 565,118C659,118 734,149 790,211C822,247 845,289 858,336l177,0C1030,297 1015,253 989,205C962,156 933,117 900,86C845,33 778,-3 697,-22C654,-33 605,-38 550,-38C417,-38 304,11 211,108C118,205 72,340 72,515C72,687 119,827 212,934C305,1041 427,1095 578,1095C654,1095 728,1077 799,1042C870,1006 925,960 962,903M865,621C858,699 841,761 814,808C765,895 682,938 567,938C484,938 415,908 359,849C303,789 273,713 270,621z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="g" d="M730,1028C764,1005 799,971 834,926l0,135l166,0l0,-974C1000,-49 980,-156 940,-235C865,-380 724,-453 517,-453C402,-453 305,-427 226,-375C147,-324 103,-243 94,-133l183,0C286,-181 303,-218 329,-244C370,-284 434,-304 521,-304C659,-304 749,-255 792,-158C817,-101 829,2 827,149C791,94 748,54 697,27C646,0 579,-13 496,-13C380,-13 279,28 192,111C105,193 61,329 61,519C61,698 105,838 193,939C280,1040 386,1090 510,1090C594,1090 667,1069 730,1028M543,931C416,931 330,872 283,753C258,690 246,607 246,504C246,383 271,292 320,229C369,166 434,134 517,134C646,134 737,192 790,309C819,375 834,452 834,540C834,673 807,771 752,835C697,899 628,931 543,931z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="h" d="M132,1474l180,0l0,-548C355,980 393,1018 427,1040C485,1078 557,1097 644,1097C799,1097 905,1043 960,934C990,875 1005,792 1005,687l0,-687l-185,0l0,675C820,754 810,811 790,848C757,907 696,936 606,936C531,936 464,910 403,859C342,808 312,711 312,568l0,-568l-180,0z"/>
|
||||
<glyph horiz-adv-x="455" unicode="i" d="M132,1066l183,0l0,-1066l-183,0M132,1469l183,0l0,-204l-183,0z"/>
|
||||
<glyph horiz-adv-x="455" unicode="j" d="M312,1261l-180,0l0,208l180,0M-38,-271C43,-268 91,-261 108,-249C124,-238 132,-201 132,-140l0,1206l180,0l0,-1225C312,-237 299,-295 274,-334C232,-399 152,-432 35,-432C26,-432 17,-432 8,-431C-2,-430 -17,-429 -38,-427z"/>
|
||||
<glyph horiz-adv-x="455" unicode="l" d="M137,1469l180,0l0,-1469l-180,0z"/>
|
||||
<glyph horiz-adv-x="1706" unicode="m" d="M132,1071l178,0l0,-152C353,972 391,1010 426,1034C485,1075 553,1095 628,1095C713,1095 782,1074 834,1032C863,1008 890,973 914,926C954,983 1001,1026 1055,1054C1109,1081 1170,1095 1237,1095C1381,1095 1479,1043 1531,939C1559,883 1573,808 1573,713l0,-713l-187,0l0,744C1386,815 1368,864 1333,891C1297,918 1253,931 1202,931C1131,931 1071,907 1020,860C969,813 943,734 943,623l0,-623l-183,0l0,699C760,772 751,825 734,858C707,908 656,933 581,933C513,933 451,907 396,854C340,801 312,706 312,568l0,-568l-180,0z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="n" d="M132,1071l171,0l0,-152C354,982 407,1027 464,1054C521,1081 584,1095 653,1095C805,1095 908,1042 961,936C990,878 1005,795 1005,687l0,-687l-183,0l0,675C822,740 812,793 793,833C761,900 703,933 619,933C576,933 541,929 514,920C465,905 421,876 384,832C354,797 335,760 326,723C317,685 312,631 312,561l0,-561l-180,0z"/>
|
||||
<glyph horiz-adv-x="1139" unicode="o" d="M869,553C869,653 853,734 821,797C770,896 683,945 559,945C449,945 369,903 319,819C269,735 244,634 244,515C244,401 269,306 319,230C369,154 448,116 557,116C676,116 758,161 803,252C847,342 869,442 869,553M1057,558C1057,385 1015,243 931,130C847,17 717,-39 540,-39C393,-39 276,11 189,111C102,210 59,344 59,512C59,692 105,835 196,942C287,1049 410,1102 564,1102C702,1102 819,1056 914,964C1009,872 1057,737 1057,558z"/>
|
||||
<glyph horiz-adv-x="682" unicode="r" d="M137,1071l171,0l0,-185C322,922 356,966 411,1018C466,1069 529,1095 600,1095C603,1095 609,1095 617,1094C625,1093 639,1092 658,1090l0,-190C647,902 638,903 629,904C620,905 610,905 599,905C508,905 439,876 390,818C341,759 317,692 317,616l0,-616l-180,0z"/>
|
||||
<glyph horiz-adv-x="1024" unicode="s" d="M239,336C244,276 259,230 284,198C329,140 408,111 520,111C587,111 645,126 696,155C747,184 772,228 772,289C772,335 752,370 711,394C685,409 634,426 557,445l-143,36C323,504 255,529 212,557C135,606 96,673 96,759C96,860 133,942 206,1005C279,1068 377,1099 500,1099C661,1099 778,1052 849,957C894,897 915,832 914,763l-170,0C741,804 726,841 701,874C660,921 588,945 486,945C418,945 367,932 332,906C297,880 279,846 279,803C279,756 302,719 348,691C375,674 414,660 466,647l119,-29C714,587 801,556 845,527C915,481 950,409 950,310C950,215 914,132 842,63C769,-6 659,-41 511,-41C352,-41 239,-5 173,68C106,140 71,229 66,336z"/>
|
||||
<glyph horiz-adv-x="569" unicode="t" d="M168,1370l182,0l0,-299l171,0l0,-147l-171,0l0,-699C350,188 363,163 388,150C402,143 425,139 458,139C467,139 476,139 486,140C496,140 508,141 521,142l0,-142C500,-6 479,-10 457,-13C434,-16 410,-17 384,-17C300,-17 243,5 213,48C183,91 168,146 168,215l0,709l-145,0l0,147l145,0z"/>
|
||||
<glyph horiz-adv-x="1024" unicode="v" d="M220,1071l286,-872l299,872l197,0l-404,-1071l-192,0l-395,1071z"/>
|
||||
</font>
|
||||
<path fill="#fcf9ce" d="m97.75 228.83h61.619c2.22 0 4.02 1.8 4.02 4.02v34.436c0 2.22-1.8 4.021-4.02 4.021h-61.619c-2.22 0-4.02-1.801-4.02-4.021v-34.436c0-2.22 1.8-4.02 4.02-4.02z"/>
|
||||
<text font-size="12.06px" y="247.52879" x="100.7651" font-family="Helvetica" fill="#010101">hibernate
|
||||
</text>
|
||||
<text font-size="12.06px" y="261.7319" x="104.3071" font-family="Helvetica" fill="#010101">3.2.6.ga
|
||||
</text>
|
||||
<path d="m97.75 228.83h61.619c2.22 0 4.02 1.8 4.02 4.02v34.436c0 2.22-1.8 4.021-4.02 4.021h-61.619c-2.22 0-4.02-1.801-4.02-4.021v-34.436c0-2.22 1.8-4.02 4.02-4.02z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m412.4 87.23h132.64c2.222 0 4.021 1.8 4.021 4.02v48.641c0 2.22-1.799 4.02-4.021 4.02h-132.64c-2.219 0-4.02-1.8-4.02-4.02v-48.641c0.001-2.219 1.802-4.02 4.02-4.02z"/>
|
||||
<g font-size="12.06px" font-family="Helvetica" fill="#010101">
|
||||
<text y="105.9243" x="415.41891">commons-collections
|
||||
</text>
|
||||
<text y="120.1284" x="463.4707">2.1.1
|
||||
</text>
|
||||
<text y="134.3315" x="442.63959">2.1 (evicted)
|
||||
</text>
|
||||
</g>
|
||||
<path d="m412.4 87.23h132.64c2.222 0 4.021 1.8 4.021 4.02v48.641c0 2.22-1.799 4.02-4.021 4.02h-132.64c-2.219 0-4.02-1.8-4.02-4.02v-48.641c0.001-2.219 1.802-4.02 4.02-4.02z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m287.52 476.87h38.753c2.22 0 4.021 1.8 4.021 4.02v34.438c0 2.22-1.801 4.02-4.021 4.02h-38.753c-2.22 0-4.02-1.8-4.02-4.02v-34.438c0-2.221 1.8-4.02 4.02-4.02z"/>
|
||||
<text font-size="12.06px" y="495.56009" x="292.7612" font-family="Helvetica" fill="#010101">cglib
|
||||
</text>
|
||||
<text font-size="12.06px" y="509.76419" x="290.52979" font-family="Helvetica" fill="#010101">2.1_3
|
||||
</text>
|
||||
<path d="m287.52 476.87h38.753c2.22 0 4.021 1.8 4.021 4.02v34.438c0 2.22-1.801 4.02-4.021 4.02h-38.753c-2.22 0-4.02-1.8-4.02-4.02v-34.438c0-2.221 1.8-4.02 4.02-4.02z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m460.46 455.98h36.539c2.219 0 4.021 1.8 4.021 4.021v34.437c0 2.221-1.802 4.021-4.021 4.021h-36.539c-2.221 0-4.021-1.801-4.021-4.021v-34.437c0-2.221 1.8-4.021 4.021-4.021z"/>
|
||||
<text font-size="12.06px" y="474.67331" x="466.69141" font-family="Helvetica" fill="#010101">asm
|
||||
</text>
|
||||
<text font-size="12.06px" y="488.8765" x="463.4707" font-family="Helvetica" fill="#010101">1.5.3
|
||||
</text>
|
||||
<path d="m460.46 455.98h36.539c2.219 0 4.021 1.8 4.021 4.021v34.437c0 2.221-1.802 4.021-4.021 4.021h-36.539c-2.221 0-4.021-1.801-4.021-4.021v-34.437c0-2.221 1.8-4.021 4.021-4.021z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m288.62 394.19h36.54c2.22 0 4.02 1.801 4.02 4.021v34.438c0 2.221-1.8 4.021-4.02 4.021h-36.54c-2.22 0-4.02-1.8-4.02-4.021v-34.438c0-2.22 1.8-4.021 4.02-4.021z"/>
|
||||
<text font-size="12.06px" y="412.88229" x="293.353" font-family="Helvetica" fill="#010101">antlr
|
||||
</text>
|
||||
<text font-size="12.06px" y="427.0864" x="291.63721" font-family="Helvetica" fill="#010101">2.7.6
|
||||
</text>
|
||||
<path d="m288.62 394.19h36.54c2.22 0 4.02 1.801 4.02 4.021v34.438c0 2.221-1.8 4.021-4.02 4.021h-36.54c-2.22 0-4.02-1.8-4.02-4.021v-34.438c0-2.22 1.8-4.021 4.02-4.021z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m285.1 311.51h43.582c2.221 0 4.021 1.798 4.021 4.021v34.437c0 2.221-1.8 4.021-4.021 4.021h-43.582c-2.22 0-4.02-1.801-4.02-4.021v-34.436c0-2.224 1.8-4.022 4.02-4.022z"/>
|
||||
<text font-size="12.06px" y="330.20749" x="288.11569" font-family="Helvetica" fill="#010101">dom4j
|
||||
</text>
|
||||
<text font-size="12.06px" y="344.4097" x="291.63721" font-family="Helvetica" fill="#010101">1.6.1
|
||||
</text>
|
||||
<path d="m285.1 311.51h43.582c2.221 0 4.021 1.798 4.021 4.021v34.437c0 2.221-1.8 4.021-4.021 4.021h-43.582c-2.22 0-4.02-1.801-4.02-4.021v-34.436c0-2.224 1.8-4.022 4.02-4.022z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m274.97 228.83h63.839c2.22 0 4.021 1.8 4.021 4.02v34.436c0 2.22-1.801 4.021-4.021 4.021h-63.839c-2.22 0-4.02-1.801-4.02-4.021v-34.436c0-2.22 1.8-4.02 4.02-4.02z"/>
|
||||
<text font-size="12.06px" y="247.52879" x="277.98679" font-family="Helvetica" fill="#010101">asm-attrs
|
||||
</text>
|
||||
<text font-size="12.06px" y="261.7319" x="291.63721" font-family="Helvetica" fill="#010101">1.5.3
|
||||
</text>
|
||||
<path d="m274.97 228.83h63.839c2.22 0 4.021 1.8 4.021 4.02v34.436c0 2.22-1.801 4.021-4.021 4.021h-63.839c-2.22 0-4.02-1.801-4.02-4.021v-34.436c0-2.22 1.8-4.02 4.02-4.02z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m285.15 146.16h43.476c2.221 0 4.021 1.8 4.021 4.02v34.437c0 2.22-1.8 4.02-4.021 4.02h-43.476c-2.22 0-4.02-1.8-4.02-4.02v-34.437c0-2.22 1.8-4.02 4.02-4.02z"/>
|
||||
<text font-size="12.06px" y="164.85201" x="299.4722" font-family="Helvetica" fill="#010101">jta
|
||||
</text>
|
||||
<text font-size="12.06px" y="179.05521" x="288.16849" font-family="Helvetica" fill="#010101">1.0.1B
|
||||
</text>
|
||||
<path d="m285.15 146.16h43.476c2.221 0 4.021 1.8 4.021 4.02v34.437c0 2.22-1.8 4.02-4.021 4.02h-43.476c-2.22 0-4.02-1.8-4.02-4.02v-34.437c0-2.22 1.8-4.02 4.02-4.02z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m280.17 63.479h53.452c2.22 0 4.02 1.8 4.02 4.02v34.437c0 2.22-1.8 4.02-4.02 4.02h-53.452c-2.22 0-4.02-1.8-4.02-4.02v-34.436c0-2.22 1.8-4.021 4.02-4.021z"/>
|
||||
<text font-size="12.06px" y="82.173302" x="283.18121" font-family="Helvetica" fill="#010101">ehcache
|
||||
</text>
|
||||
<text font-size="12.06px" y="96.377403" x="291.63721" font-family="Helvetica" fill="#010101">1.2.3
|
||||
</text>
|
||||
<path d="m280.17 63.479h53.452c2.22 0 4.02 1.8 4.02 4.02v34.437c0 2.221-1.8 4.02-4.02 4.02h-53.452c-2.22 0-4.02-1.799-4.02-4.02v-34.436c0-2.22 1.8-4.021 4.02-4.021z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<path fill="#fcf9ce" d="m421.44 0.5h114.58c2.221 0 4.02 1.799 4.02 4.02v34.437c0 2.22-1.799 4.02-4.02 4.02h-114.58c-2.219 0-4.021-1.8-4.021-4.02v-34.436c0-2.222 1.8-4.021 4.02-4.021z"/>
|
||||
<text font-size="12.06px" y="19.194799" x="424.45209" font-family="Helvetica" fill="#010101">commons-logging
|
||||
</text>
|
||||
<text font-size="12.06px" y="33.398899" x="463.4707" font-family="Helvetica" fill="#010101">1.0.4
|
||||
</text>
|
||||
<path d="m421.44 0.5h114.58c2.221 0 4.02 1.799 4.02 4.02v34.437c0 2.22-1.799 4.02-4.02 4.02h-114.58c-2.219 0-4.021-1.8-4.021-4.02v-34.436c0-2.222 1.8-4.021 4.02-4.021z" stroke="#010101" stroke-miterlimit="1.45" fill="none"/>
|
||||
<line y2="250.07" x2="85.645" stroke="#010101" stroke-miterlimit="1.45" y1="250.07" fill="none"/>
|
||||
<polygon points="81.625 254.49 93.685 249.47 81.625 244.44 84.639 249.47" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="265.75241" x="33.0396" font-family="Helvetica" fill="#010101">3.2.6.ga
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="163.39 239.36 173.94 239.36 234.92 129.98 307.39 129.98 372.35 134.45 400.31 134.45" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="396.29 139.47 408.35 134.45 396.29 129.42 399.3 134.45" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="128.48579" x="370.52539" font-family="Helvetica" fill="#010101">2.1.1
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="162.08 269.69 173.94 269.69 234.92 497.5 275.41 497.5" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="271.39 502.52 283.45 497.5 271.39 492.48 274.4 497.5" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="285.97119" x="156.88921" font-family="Helvetica" fill="#010101">2.1_3
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="163.39 264.63 173.94 264.63 234.92 460.68 448.37 460.68" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="444.35 465.71 456.41 460.68 444.35 455.66 447.36 460.68" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="476.96829" x="413.74121" font-family="Helvetica" fill="#010101">1.5.3
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="330.29 497.5 340.84 497.5 420.4 492.54 448.36 492.54" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="444.34 497.57 456.4 492.54 444.34 487.52 447.35 492.54" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="508.82571" x="418.57709" font-family="Helvetica" fill="#010101">1.5.3
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="163.39 259.58 173.94 259.58 234.92 414.82 276.51 414.82" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="272.49 419.85 284.55 414.82 272.49 409.8 275.51 414.82" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="409.86771" x="238.5405" font-family="Helvetica" fill="#010101">2.7.6
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="163.39 254.52 173.94 254.52 234.92 332.15 273 332.15" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="268.98 337.17 281.04 332.15 268.98 327.12 271.99 332.15" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="327.19189" x="238.146" font-family="Helvetica" fill="#010101">1.6.1
|
||||
</text>
|
||||
<line y2="250.07" x2="262.89" stroke="#010101" stroke-miterlimit="1.45" y1="250.07" x1="163.39" fill="none"/>
|
||||
<polygon points="258.87 254.49 270.92 249.47 258.87 244.44 261.88 249.47" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="243.5083" x="228.25729" font-family="Helvetica" fill="#010101">1.5.3
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="163.39 244.42 173.94 244.42 234.92 166.79 273.05 166.79" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="269.03 171.82 281.09 166.79 269.03 161.77 272.04 166.79" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="182.06979" x="238.146" font-family="Helvetica" fill="#010101">1.0.1B
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="163.39 234.3 173.94 234.3 234.92 84.115 268.06 84.115" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="264.04 89.14 276.1 84.115 264.04 79.089 267.06 84.115" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="99.392097" x="238.5269" font-family="Helvetica" fill="#010101">1.2.3
|
||||
</text>
|
||||
<line y2="96.091" x2="400.31" stroke="#010101" stroke-miterlimit="1.45" y1="96.091" x1="337.64" fill="none"/>
|
||||
<polygon points="396.29 100.51 408.35 95.487 396.29 90.461 399.3 95.487" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="89.526901" x="377.13089" font-family="Helvetica" fill="#010101">2.1
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="337.64 72.742 348.19 72.742 381.38 37.063 409.34 37.063" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="405.32 42.088 417.38 37.063 405.32 32.039 408.34 37.063" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="31.104" x="379.5596" font-family="Helvetica" fill="#010101">1.0.4
|
||||
</text>
|
||||
<polyline transform="translate(0 .604)" stroke="#010101" points="162.08 229.25 173.94 229.25 234.92 5.207 409.33 5.207" stroke-miterlimit="1.45" fill="none"/>
|
||||
<polygon points="405.31 10.23 417.37 5.207 405.31 0.182 408.33 5.207" fill="#010101" transform="translate(0 .604)"/>
|
||||
<text font-size="12.06px" y="223.28951" x="157.9966" font-family="Helvetica" fill="#010101">1.0.4
|
||||
</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 172 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 237 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 647.669 503.39903" version="1.2" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path fill-rule="evenodd" fill="#119a48" d="m237.42 102zm-170.04-102zm16.92 0c-8.399 0-16.92 8.52-16.92 17.039v67.921c0 8.52 8.521 17.04 16.92 17.04h136.08c8.521 0 17.04-8.521 17.04-17.04v-67.921c0-8.52-8.52-17.039-17.04-17.039h-136.08z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<path d="m84.298 0.000005c-8.399 0-16.92 8.52-16.92 17.039v67.921c0 8.52 8.521 17.04 16.92 17.04h136.08c8.521 0 17.04-8.521 17.04-17.04v-67.921c0-8.52-8.52-17.039-17.04-17.039h-136.08z"/>
|
||||
<path d="m67.378 0.000005z"/>
|
||||
<path d="m237.42 102z"/>
|
||||
</g>
|
||||
<path fill="#fff" d="m133.61 36.403c0 0.956-0.219 1.811-0.654 2.562-0.437 0.752-1.06 1.334-1.872 1.745-0.812 0.412-1.777 0.617-2.896 0.617h-3.691v5.231h-3.111v-14.86h6.677c1.778 0 3.148 0.409 4.107 1.229s1.44 1.978 1.44 3.476zm-3.133 0.053c0-1.562-0.922-2.342-2.764-2.342h-3.217v4.82h3.302c0.857 0 1.519-0.213 1.982-0.639 0.464-0.424 0.697-1.038 0.697-1.839zm8.152-1.309v6.402c0 2.004 0.675 3.006 2.024 3.006 0.718 0 1.296-0.308 1.735-0.923s0.659-1.404 0.659-2.368v-6.117h2.964v8.859c0 0.971 0.028 1.821 0.084 2.553h-2.826c-0.085-1.013-0.127-1.769-0.127-2.268h-0.053c-0.394 0.865-0.895 1.494-1.503 1.888s-1.33 0.591-2.167 0.591c-1.21 0-2.138-0.371-2.784-1.112-0.647-0.742-0.971-1.83-0.971-3.265v-7.246h2.965zm21.181 5.665c0 1.885-0.378 3.349-1.134 4.393s-1.837 1.566-3.243 1.566c-0.809 0-1.508-0.176-2.099-0.527s-1.044-0.857-1.36-1.519h-0.021c0 0.246-0.016 0.583-0.047 1.013-0.032 0.429-0.065 0.703-0.101 0.822h-2.879c0.056-0.654 0.084-1.522 0.084-2.605v-13.047h2.964v4.366l-0.042 1.856h0.042c0.668-1.463 1.884-2.194 3.649-2.194 1.35 0 2.385 0.512 3.105 1.535 0.722 1.023 1.082 2.47 1.082 4.341zm-5.442 3.933c1.568 0 2.353-1.311 2.353-3.934 0-1.294-0.19-2.254-0.569-2.879-0.38-0.626-0.967-0.939-1.762-0.939-0.802 0-1.411 0.336-1.83 1.008-0.418 0.671-0.627 1.64-0.627 2.905 0 1.21 0.205 2.151 0.616 2.827 0.411 0.675 1.018 1.012 1.819 1.012zm7.948 1.815v-15.652h2.964v15.652h-2.964zm5.982-13.469v-2.183h2.964v2.183h-2.964zm0 13.469v-11.413h2.964v11.413h-2.964zm10.849 0.211c-1.729 0-3.065-0.515-4.008-1.545s-1.413-2.467-1.413-4.309c0-1.885 0.475-3.353 1.424-4.403s2.295-1.577 4.039-1.577c1.343 0 2.454 0.338 3.333 1.013s1.431 1.606 1.655 2.795l-2.984 0.147c-0.084-0.583-0.295-1.049-0.633-1.397s-0.815-0.521-1.435-0.521c-1.525 0-2.288 1.276-2.288 3.828 0 2.63 0.776 3.944 2.33 3.944 0.562 0 1.034-0.177 1.414-0.532 0.379-0.355 0.615-0.884 0.706-1.587l2.975 0.137c-0.105 0.78-0.385 1.477-0.839 2.088-0.453 0.612-1.049 1.085-1.787 1.419s-1.568 0.5-2.489 0.5z"/>
|
||||
<path fill="#fff" d="m101.17 70.439v-8.732c0-0.626-0.009-1.148-0.026-1.566-0.018-0.419-0.037-0.789-0.058-1.113h2.826c0.021 0.127 0.049 0.512 0.084 1.155s0.053 1.07 0.053 1.281h0.043c0.288-0.802 0.545-1.365 0.77-1.692s0.492-0.569 0.802-0.728 0.696-0.237 1.16-0.237c0.38 0 0.686 0.053 0.917 0.158v2.479c-0.478-0.105-0.899-0.158-1.266-0.158-0.738 0-1.312 0.299-1.724 0.896-0.412 0.598-0.617 1.483-0.617 2.657v5.601h-2.964zm17.871-2.889c-0.809 2.067-2.451 3.101-4.926 3.101-1.715 0-3.033-0.508-3.955-1.524-0.921-1.016-1.381-2.497-1.381-4.445 0-1.884 0.467-3.333 1.402-4.345 0.935-1.013 2.261-1.52 3.977-1.52 1.638 0 2.89 0.544 3.754 1.63 0.865 1.086 1.298 2.678 1.298 4.772v0.084h-7.319c0 1.112 0.205 1.95 0.616 2.516 0.412 0.566 0.997 0.85 1.757 0.85 1.047 0 1.708-0.454 1.982-1.361l2.795 0.242zm-4.925-6.866c-0.695 0-1.232 0.242-1.608 0.728s-0.574 1.164-0.596 2.036h4.43c-0.057-0.922-0.278-1.612-0.664-2.073-0.388-0.461-0.908-0.691-1.562-0.691zm18.137 3.997c0 1.905-0.382 3.377-1.145 4.414s-1.841 1.556-3.232 1.556c-0.802 0-1.5-0.174-2.094-0.522s-1.05-0.849-1.366-1.503h-0.062c0.042 0.211 0.062 0.852 0.062 1.92v4.377h-2.963v-13.269c0-1.076-0.028-1.951-0.085-2.627h2.88c0.035 0.127 0.064 0.377 0.089 0.749 0.025 0.373 0.037 0.742 0.037 1.107h0.042c0.668-1.398 1.885-2.099 3.649-2.099 1.329 0 2.359 0.512 3.091 1.534 0.731 1.025 1.097 2.479 1.097 4.363zm-5.464 3.944c1.582 0 2.373-1.313 2.373-3.944 0-2.559-0.783-3.839-2.352-3.839-0.787 0-1.391 0.345-1.809 1.033-0.419 0.69-0.628 1.652-0.628 2.891 0 1.23 0.209 2.181 0.628 2.853 0.419 0.671 1.015 1.006 1.788 1.006zm18.682-3.902c0 1.851-0.513 3.3-1.54 4.351-1.026 1.052-2.446 1.577-4.261 1.577-1.778 0-3.175-0.527-4.187-1.582-1.013-1.055-1.52-2.503-1.52-4.346 0-1.835 0.507-3.278 1.52-4.329 1.012-1.051 2.429-1.577 4.25-1.577 1.863 0 3.285 0.509 4.267 1.524 0.981 1.015 1.471 2.477 1.471 4.382zm-5.832 3.902c1.821 0 2.731-1.301 2.731-3.902 0-1.356-0.222-2.341-0.664-2.953-0.443-0.611-1.087-0.917-1.931-0.917-1.8 0-2.7 1.291-2.7 3.87 0 1.273 0.22 2.241 0.659 2.906 0.44 0.664 1.075 0.996 1.905 0.996zm17.914-1.519c0 1.104-0.451 1.971-1.355 2.6-0.903 0.63-2.153 0.944-3.749 0.944-1.568 0-2.769-0.248-3.602-0.743-0.833-0.496-1.387-1.268-1.661-2.315l2.604-0.391c0.148 0.542 0.403 0.925 0.765 1.15 0.362 0.226 0.993 0.337 1.894 0.337 0.83 0 1.435-0.105 1.814-0.316s0.569-0.541 0.569-0.991c0-0.365-0.153-0.655-0.459-0.87s-0.824-0.396-1.556-0.543c-1.674-0.331-2.802-0.639-3.386-0.923-0.583-0.285-1.028-0.654-1.334-1.107-0.306-0.454-0.459-1.011-0.459-1.672 0-1.09 0.42-1.938 1.261-2.547 0.84-0.608 2.03-0.912 3.57-0.912 1.356 0 2.448 0.264 3.274 0.791s1.341 1.29 1.545 2.288l-2.626 0.274c-0.084-0.464-0.292-0.811-0.622-1.039-0.331-0.229-0.854-0.343-1.571-0.343-0.703 0-1.23 0.09-1.582 0.27-0.352 0.179-0.527 0.479-0.527 0.901 0 0.331 0.135 0.593 0.405 0.786 0.271 0.193 0.727 0.353 1.366 0.479 0.893 0.184 1.686 0.371 2.378 0.564 0.693 0.193 1.248 0.424 1.667 0.69 0.418 0.268 0.752 0.61 1.002 1.028 0.25 0.421 0.375 0.957 0.375 1.61zm2.262-10.135v-2.183h2.963v2.183h-2.963zm0 13.468v-11.412h2.963v11.412h-2.963zm11.512-0.168c-0.73 0.239-1.564 0.358-2.499 0.358-0.872 0-1.544-0.237-2.015-0.712s-0.707-1.192-0.707-2.156v-6.729h-1.444v-2.004h1.593l0.928-2.679h1.856v2.679h2.162v2.004h-2.162v5.928c0 0.556 0.105 0.965 0.316 1.229s0.538 0.396 0.98 0.396c0.232 0 0.562-0.049 0.991-0.147v1.833h0.001zm12.614-5.548c0 1.851-0.514 3.3-1.54 4.351-1.026 1.052-2.447 1.577-4.261 1.577-1.779 0-3.175-0.527-4.188-1.582s-1.519-2.503-1.519-4.346c0-1.835 0.506-3.278 1.519-4.329s2.43-1.577 4.25-1.577c1.863 0 3.286 0.509 4.267 1.524s1.472 2.477 1.472 4.382zm-5.833 3.902c1.821 0 2.731-1.301 2.731-3.902 0-1.356-0.221-2.341-0.664-2.953-0.443-0.611-1.086-0.917-1.93-0.917-1.801 0-2.7 1.291-2.7 3.87 0 1.273 0.22 2.241 0.659 2.906 0.44 0.664 1.075 0.996 1.904 0.996zm8.166 1.814v-8.732c0-0.626-0.009-1.148-0.026-1.566-0.018-0.419-0.036-0.789-0.058-1.113h2.826c0.021 0.127 0.05 0.512 0.085 1.155s0.053 1.07 0.053 1.281h0.042c0.288-0.802 0.545-1.365 0.77-1.692 0.226-0.327 0.492-0.569 0.802-0.728s0.696-0.237 1.16-0.237c0.38 0 0.686 0.053 0.918 0.158v2.479c-0.479-0.105-0.9-0.158-1.266-0.158-0.738 0-1.313 0.299-1.725 0.896s-0.617 1.483-0.617 2.657v5.601h-2.964zm9.88 4.483c-0.71 0-1.332-0.046-1.867-0.137v-2.109c0.373 0.056 0.714 0.084 1.023 0.084 0.422 0 0.771-0.066 1.05-0.2 0.277-0.134 0.527-0.355 0.748-0.665 0.222-0.309 0.47-0.833 0.744-1.571l-4.515-11.296h3.133l1.793 5.348c0.281 0.767 0.637 1.94 1.065 3.522l0.264-1.002 0.686-2.479 1.688-5.39h3.101l-4.514 12.014c-0.605 1.462-1.232 2.475-1.883 3.037s-1.49 0.844-2.516 0.844z"/>
|
||||
<path fill-rule="evenodd" fill="#119a48" d="m230.7 367.44zm-170.16-102.12zm17.04 0c-8.521 0-17.04 8.521-17.04 17.04v67.92c0 8.521 8.52 17.161 17.04 17.161h136.08c8.52 0 17.04-8.641 17.04-17.161v-67.92c0-8.52-8.521-17.04-17.04-17.04h-136.08z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<path d="m77.578 265.32c-8.521 0-17.04 8.521-17.04 17.04v67.92c0 8.521 8.52 17.161 17.04 17.161h136.08c8.52 0 17.04-8.641 17.04-17.161v-67.92c0-8.52-8.521-17.04-17.04-17.04h-136.08z"/>
|
||||
<path d="m60.538 265.32z"/>
|
||||
<path d="m230.7 367.44z"/>
|
||||
</g>
|
||||
<path fill="#fff" d="m93.663 311.88v-14.859h11.686v2.405h-8.574v3.733h7.932v2.404h-7.932v3.912h9.007v2.404h-12.119zm21.842 0v-6.4c0-2.004-0.679-3.007-2.035-3.007-0.718 0-1.296 0.308-1.735 0.923s-0.659 1.404-0.659 2.367v6.117h-2.964v-8.859c0-0.611-0.009-1.112-0.026-1.502-0.018-0.391-0.036-0.741-0.058-1.05h2.826c0.021 0.133 0.05 0.49 0.085 1.07s0.053 0.98 0.053 1.198h0.042c0.4-0.872 0.903-1.505 1.508-1.898 0.605-0.394 1.326-0.591 2.162-0.591 1.21 0 2.138 0.373 2.785 1.118 0.646 0.745 0.97 1.835 0.97 3.27v7.244h-2.954zm11.333-0.169c-0.73 0.239-1.564 0.359-2.499 0.359-0.872 0-1.544-0.237-2.015-0.712s-0.707-1.194-0.707-2.157v-6.729h-1.444v-2.004h1.593l0.928-2.68h1.856v2.68h2.162v2.004h-2.162v5.927c0 0.556 0.105 0.966 0.316 1.229s0.538 0.395 0.98 0.395c0.232 0 0.562-0.049 0.991-0.147v1.835h0.001zm11.37-2.721c-0.809 2.067-2.45 3.101-4.926 3.101-1.716 0-3.034-0.507-3.955-1.523s-1.382-2.498-1.382-4.446c0-1.884 0.468-3.332 1.403-4.345s2.261-1.519 3.976-1.519c1.639 0 2.891 0.543 3.755 1.63 0.865 1.086 1.298 2.678 1.298 4.772v0.085h-7.32c0 1.11 0.206 1.948 0.617 2.515s0.997 0.849 1.756 0.849c1.048 0 1.709-0.452 1.983-1.359l2.795 0.24zm-4.925-6.865c-0.696 0-1.232 0.242-1.608 0.727s-0.574 1.165-0.596 2.037h4.43c-0.057-0.921-0.277-1.612-0.664-2.073-0.388-0.461-0.908-0.691-1.562-0.691zm7.208 9.755v-8.732c0-0.626-0.009-1.147-0.026-1.565-0.018-0.419-0.037-0.79-0.059-1.113h2.827c0.021 0.126 0.049 0.512 0.084 1.155s0.053 1.071 0.053 1.282h0.042c0.289-0.802 0.545-1.367 0.771-1.693 0.225-0.327 0.492-0.57 0.802-0.729 0.309-0.158 0.695-0.236 1.16-0.236 0.379 0 0.686 0.052 0.917 0.157v2.479c-0.478-0.105-0.899-0.159-1.266-0.159-0.738 0-1.312 0.3-1.725 0.897-0.411 0.598-0.616 1.483-0.616 2.658v5.599h-2.964zm19.203-5.759c0 1.906-0.383 3.378-1.146 4.415s-1.84 1.555-3.231 1.555c-0.802 0-1.5-0.173-2.095-0.521-0.594-0.348-1.049-0.85-1.365-1.503h-0.063c0.043 0.211 0.063 0.851 0.063 1.919v4.378h-2.964v-13.268c0-1.076-0.028-1.952-0.084-2.627h2.879c0.035 0.126 0.064 0.377 0.09 0.75 0.024 0.372 0.037 0.74 0.037 1.105h0.042c0.668-1.398 1.884-2.098 3.649-2.098 1.329 0 2.358 0.512 3.09 1.534 0.731 1.024 1.098 2.477 1.098 4.361zm-5.464 3.945c1.582 0 2.373-1.315 2.373-3.945 0-2.559-0.784-3.839-2.352-3.839-0.788 0-1.392 0.345-1.81 1.034-0.418 0.688-0.627 1.652-0.627 2.89 0 1.23 0.209 2.182 0.627 2.854 0.419 0.67 1.015 1.006 1.789 1.006zm7.84 1.814v-8.732c0-0.626-0.01-1.147-0.026-1.565-0.019-0.419-0.037-0.79-0.059-1.113h2.827c0.021 0.126 0.048 0.512 0.084 1.155 0.034 0.644 0.053 1.071 0.053 1.282h0.042c0.288-0.802 0.545-1.367 0.771-1.693 0.224-0.327 0.491-0.57 0.801-0.729s0.696-0.236 1.16-0.236c0.38 0 0.686 0.052 0.918 0.157v2.479c-0.479-0.105-0.9-0.159-1.266-0.159-0.738 0-1.313 0.3-1.725 0.897s-0.617 1.483-0.617 2.658v5.599h-2.963zm8.402-13.467v-2.185h2.963v2.185h-2.963zm0 13.467v-11.411h2.963v11.411h-2.963zm15.602-3.333c0 1.104-0.452 1.972-1.355 2.601-0.903 0.63-2.153 0.943-3.749 0.943-1.568 0-2.769-0.247-3.603-0.743-0.833-0.495-1.387-1.268-1.661-2.315l2.605-0.389c0.147 0.541 0.402 0.923 0.765 1.148 0.362 0.225 0.993 0.337 1.894 0.337 0.829 0 1.434-0.105 1.813-0.316s0.569-0.541 0.569-0.991c0-0.365-0.152-0.655-0.458-0.869-0.307-0.215-0.825-0.396-1.556-0.544-1.674-0.33-2.803-0.638-3.386-0.922-0.584-0.285-1.028-0.654-1.334-1.107-0.307-0.454-0.459-1.011-0.459-1.672 0-1.09 0.42-1.939 1.26-2.547 0.841-0.608 2.03-0.912 3.57-0.912 1.357 0 2.449 0.263 3.275 0.79s1.341 1.291 1.545 2.29l-2.626 0.273c-0.085-0.464-0.292-0.811-0.623-1.039-0.33-0.229-0.854-0.344-1.571-0.344-0.703 0-1.23 0.091-1.582 0.27-0.352 0.18-0.527 0.48-0.527 0.902 0 0.331 0.136 0.592 0.406 0.785s0.726 0.354 1.366 0.48c0.893 0.184 1.686 0.371 2.378 0.564s1.248 0.423 1.666 0.689c0.419 0.268 0.753 0.611 1.002 1.029 0.251 0.419 0.376 0.956 0.376 1.609zm11.988 0.443c-0.809 2.067-2.45 3.101-4.926 3.101-1.716 0-3.034-0.507-3.955-1.523s-1.382-2.498-1.382-4.446c0-1.884 0.468-3.332 1.403-4.345s2.261-1.519 3.976-1.519c1.639 0 2.891 0.543 3.755 1.63 0.865 1.086 1.298 2.678 1.298 4.772v0.085h-7.32c0 1.11 0.206 1.948 0.617 2.515s0.997 0.849 1.756 0.849c1.048 0 1.709-0.452 1.983-1.359l2.795 0.24zm-4.926-6.865c-0.696 0-1.232 0.242-1.608 0.727s-0.574 1.165-0.596 2.037h4.43c-0.057-0.921-0.277-1.612-0.664-2.073s-0.908-0.691-1.562-0.691z"/>
|
||||
<path fill="#fff" d="m94.326 335.76v-8.733c0-0.625-0.009-1.148-0.026-1.565-0.018-0.419-0.037-0.79-0.058-1.113h2.826c0.021 0.127 0.05 0.511 0.085 1.155 0.035 0.643 0.053 1.07 0.053 1.281h0.042c0.288-0.802 0.545-1.365 0.77-1.693 0.226-0.326 0.492-0.569 0.802-0.727 0.31-0.159 0.696-0.238 1.16-0.238 0.38 0 0.686 0.053 0.918 0.158v2.479c-0.479-0.105-0.9-0.158-1.266-0.158-0.738 0-1.313 0.299-1.725 0.896s-0.617 1.484-0.617 2.658v5.601h-2.964zm18-2.89c-0.809 2.066-2.45 3.101-4.925 3.101-1.716 0-3.034-0.509-3.955-1.523-0.922-1.018-1.382-2.499-1.382-4.446 0-1.885 0.468-3.333 1.402-4.346 0.936-1.012 2.261-1.519 3.977-1.519 1.638 0 2.89 0.544 3.755 1.629 0.864 1.088 1.297 2.678 1.297 4.773v0.084h-7.319c0 1.111 0.205 1.949 0.617 2.517 0.411 0.564 0.996 0.848 1.756 0.848 1.048 0 1.708-0.453 1.982-1.36l2.795 0.242zm-4.924-6.866c-0.696 0-1.232 0.242-1.608 0.728-0.377 0.485-0.575 1.164-0.597 2.035h4.43c-0.056-0.921-0.277-1.611-0.664-2.072-0.388-0.461-0.908-0.691-1.561-0.691zm18.007 3.997c0 1.905-0.381 3.377-1.144 4.413-0.764 1.038-1.841 1.557-3.233 1.557-0.801 0-1.499-0.174-2.093-0.522-0.595-0.348-1.05-0.849-1.366-1.503h-0.063c0.042 0.211 0.063 0.851 0.063 1.92v4.377h-2.964v-13.269c0-1.075-0.028-1.951-0.084-2.626h2.879c0.035 0.127 0.065 0.376 0.09 0.74901 0.025 0.373 0.037 0.742 0.037 1.107h0.042c0.668-1.399 1.885-2.099 3.649-2.099 1.329 0 2.358 0.512 3.09 1.534 0.731 1.024 1.097 2.477 1.097 4.362zm-5.463 3.944c1.582 0 2.373-1.314 2.373-3.944 0-2.56-0.784-3.839-2.352-3.839-0.788 0-1.391 0.345-1.81 1.033-0.418 0.689-0.627 1.652-0.627 2.89 0 1.23 0.209 2.183 0.627 2.853 0.419 0.672 1.015 1.007 1.789 1.007zm18.811-3.902c0 1.85-0.514 3.3-1.54 4.351-1.027 1.052-2.446 1.577-4.261 1.577-1.779 0-3.175-0.527-4.188-1.582-1.012-1.055-1.519-2.503-1.519-4.346 0-1.835 0.507-3.278 1.519-4.329 1.013-1.052 2.43-1.577 4.251-1.577 1.862 0 3.285 0.509 4.266 1.523 0.982 1.018 1.472 2.478 1.472 4.383zm-5.832 3.902c1.82 0 2.731-1.301 2.731-3.902 0-1.356-0.222-2.341-0.665-2.953-0.442-0.611-1.086-0.917-1.93-0.917-1.8 0-2.7 1.29-2.7 3.87 0 1.272 0.22 2.241 0.659 2.906 0.44 0.663 1.075 0.996 1.905 0.996zm17.784-1.518c0 1.104-0.452 1.971-1.354 2.6-0.904 0.63-2.153 0.944-3.75 0.944-1.567 0-2.769-0.249-3.602-0.743-0.833-0.497-1.387-1.268-1.661-2.315l2.605-0.391c0.147 0.542 0.401 0.925 0.765 1.149 0.361 0.226 0.993 0.338 1.893 0.338 0.83 0 1.435-0.105 1.814-0.31599 0.379-0.211 0.569-0.541 0.569-0.991 0-0.366-0.153-0.656-0.459-0.87-0.306-0.215-0.824-0.396-1.556-0.543-1.673-0.331-2.802-0.638-3.386-0.924-0.583-0.283-1.028-0.654-1.334-1.106-0.306-0.454-0.459-1.011-0.459-1.672 0-1.09 0.421-1.939 1.261-2.547 0.84-0.60899 2.03-0.913 3.57-0.913 1.356 0 2.448 0.264 3.274 0.791s1.342 1.291 1.545 2.289l-2.626 0.274c-0.084-0.464-0.292-0.81-0.622-1.04-0.33-0.227-0.854-0.342-1.571-0.342-0.703 0-1.23 0.089-1.582 0.27-0.352 0.178-0.527 0.479-0.527 0.901 0 0.33 0.135 0.592 0.406 0.786 0.27 0.192 0.726 0.353 1.365 0.479 0.894 0.183 1.686 0.371 2.379 0.563 0.691 0.194 1.248 0.424 1.666 0.691s0.752 0.609 1.002 1.029c0.25 0.418 0.375 0.954 0.375 1.609zm2.391-10.136v-2.183h2.964v2.183h-2.964zm0 13.469v-11.412h2.964v11.412h-2.964zm11.404-0.169c-0.731 0.239-1.564 0.358-2.499 0.358-0.872 0-1.544-0.236-2.015-0.712-0.472-0.474-0.707-1.193-0.707-2.156v-6.729h-1.444v-2.004h1.592l0.929-2.679h1.856v2.679h2.162v2.004h-2.162v5.928c0 0.556 0.105 0.966 0.316 1.228 0.211 0.266 0.537 0.396 0.98 0.396 0.232 0 0.562-0.049 0.991-0.147v1.834h0.001zm12.614-5.548c0 1.85-0.514 3.3-1.54 4.351-1.027 1.052-2.446 1.577-4.261 1.577-1.779 0-3.175-0.527-4.188-1.582-1.012-1.055-1.519-2.503-1.519-4.346 0-1.835 0.507-3.278 1.519-4.329 1.013-1.052 2.429-1.577 4.251-1.577 1.862 0 3.285 0.509 4.266 1.523 0.982 1.018 1.472 2.478 1.472 4.383zm-5.832 3.902c1.82 0 2.731-1.301 2.731-3.902 0-1.356-0.222-2.341-0.665-2.953-0.442-0.611-1.086-0.917-1.93-0.917-1.801 0-2.7 1.29-2.7 3.87 0 1.272 0.22 2.241 0.659 2.906 0.441 0.663 1.074 0.996 1.905 0.996zm8.166 1.815v-8.733c0-0.625-0.01-1.148-0.026-1.565-0.018-0.419-0.037-0.79-0.059-1.113h2.827c0.021 0.127 0.049 0.511 0.084 1.155 0.035 0.643 0.053 1.07 0.053 1.281h0.042c0.289-0.802 0.545-1.365 0.771-1.693 0.225-0.326 0.491-0.569 0.802-0.727 0.309-0.159 0.695-0.238 1.16-0.238 0.379 0 0.686 0.053 0.917 0.158v2.479c-0.479-0.105-0.9-0.158-1.266-0.158-0.738 0-1.312 0.299-1.725 0.896-0.411 0.598-0.616 1.484-0.616 2.658v5.601h-2.964zm9.879 4.482c-0.71 0-1.333-0.046-1.867-0.138v-2.109c0.373 0.057 0.714 0.085 1.023 0.085 0.422 0 0.771-0.067 1.049-0.2 0.278-0.134 0.527-0.355 0.749-0.665s0.47-0.833 0.744-1.571l-4.515-11.296h3.133l1.793 5.348c0.281 0.767 0.636 1.94 1.065 3.522l0.264-1.002 0.686-2.479 1.688-5.39h3.101l-4.515 12.013c-0.604 1.463-1.231 2.476-1.882 3.038s-1.489 0.844-2.516 0.844z"/>
|
||||
<path fill-rule="evenodd" fill="#119a48" d="m570.78 234.72zm-170.04-102.12zm16.92 0c-8.4 0-16.92 8.52-16.92 17.04v68.04c0 8.521 8.52 17.04 16.92 17.04h136.08c8.52 0 17.04-8.52 17.04-17.04v-68.04c0-8.521-8.521-17.04-17.04-17.04h-136.08z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<path d="m417.66 132.6c-8.4 0-16.92 8.52-16.92 17.04v68.04c0 8.521 8.52 17.04 16.92 17.04h136.08c8.52 0 17.04-8.52 17.04-17.04v-68.04c0-8.521-8.521-17.04-17.04-17.04h-136.08z"/>
|
||||
<path d="m400.74 132.6z"/>
|
||||
<path d="m570.78 234.72z"/>
|
||||
</g>
|
||||
<path fill="#fff" d="m461.8 188.92c1.877 0 3.182-0.942 3.912-2.827l2.711 1.023c-0.584 1.435-1.439 2.501-2.567 3.201-1.129 0.699-2.481 1.049-4.056 1.049-2.391 0-4.238-0.677-5.542-2.03-1.305-1.354-1.957-3.246-1.957-5.679 0-2.44 0.629-4.314 1.888-5.622s3.083-1.962 5.474-1.962c1.744 0 3.164 0.351 4.261 1.05 1.098 0.699 1.867 1.728 2.311 3.085l-2.742 0.749c-0.232-0.745-0.688-1.338-1.365-1.777-0.679-0.439-1.479-0.659-2.4-0.659-1.406 0-2.473 0.436-3.2 1.308s-1.093 2.148-1.093 3.829c0 1.708 0.375 3.013 1.124 3.912 0.747 0.9 1.827 1.35 3.241 1.35zm15.109 0.2c-0.829 1.498-2.081 2.246-3.754 2.246-1.104 0-1.966-0.3-2.584-0.901-0.619-0.602-0.929-1.446-0.929-2.536 0-1.182 0.386-2.082 1.155-2.7 0.771-0.619 1.886-0.936 3.349-0.949l2.457-0.042v-0.58c0-0.746-0.13-1.3-0.39-1.661-0.261-0.362-0.686-0.544-1.276-0.544-0.549 0-0.95 0.125-1.207 0.375-0.257 0.249-0.417 0.662-0.48 1.239l-3.091-0.147c0.19-1.111 0.699-1.953 1.525-2.526s1.952-0.859 3.379-0.859c1.441 0 2.553 0.354 3.333 1.065 0.78 0.71 1.171 1.719 1.171 3.026v4.155c0 0.641 0.072 1.081 0.217 1.324 0.145 0.242 0.385 0.363 0.722 0.363 0.226 0 0.443-0.021 0.654-0.062v1.603c-0.176 0.042-0.334 0.081-0.475 0.116s-0.281 0.063-0.422 0.084-0.29 0.039-0.448 0.053c-0.158 0.015-0.343 0.021-0.554 0.021-0.745 0-1.295-0.183-1.65-0.549-0.354-0.365-0.568-0.903-0.639-1.613h-0.063v-0.001zm-0.305-3.248-1.519 0.021c-0.689 0.028-1.178 0.104-1.466 0.227s-0.508 0.312-0.659 0.564c-0.15 0.253-0.227 0.591-0.227 1.013 0 0.541 0.125 0.944 0.375 1.208 0.249 0.264 0.581 0.396 0.996 0.396 0.464 0 0.888-0.127 1.271-0.38s0.683-0.604 0.9-1.05c0.219-0.446 0.327-0.919 0.327-1.418v-0.581zm10.552 5.494c-1.729 0-3.065-0.515-4.008-1.545s-1.413-2.466-1.413-4.309c0-1.884 0.475-3.352 1.424-4.403s2.296-1.576 4.039-1.576c1.343 0 2.454 0.337 3.333 1.013 0.879 0.675 1.431 1.606 1.656 2.795l-2.985 0.147c-0.084-0.584-0.295-1.05-0.633-1.397-0.337-0.349-0.815-0.522-1.435-0.522-1.525 0-2.288 1.276-2.288 3.829 0 2.629 0.776 3.944 2.331 3.944 0.562 0 1.033-0.178 1.413-0.533 0.38-0.354 0.615-0.884 0.706-1.587l2.975 0.137c-0.105 0.781-0.386 1.477-0.839 2.089-0.454 0.611-1.049 1.084-1.787 1.418s-1.569 0.5-2.489 0.5zm10.173-9.344c0.401-0.872 0.904-1.505 1.509-1.898 0.604-0.395 1.325-0.591 2.162-0.591 1.209 0 2.138 0.372 2.784 1.118 0.646 0.745 0.971 1.835 0.971 3.27v7.234h-2.953v-6.391c0-2.004-0.679-3.006-2.036-3.006-0.717 0-1.295 0.308-1.734 0.923s-0.659 1.404-0.659 2.367v6.106h-2.964v-15.651h2.964v4.271c0 0.767-0.028 1.516-0.085 2.247h0.041zm19.854 6.244c-0.809 2.067-2.451 3.101-4.926 3.101-1.716 0-3.034-0.508-3.955-1.523-0.921-1.017-1.382-2.498-1.382-4.445 0-1.885 0.468-3.333 1.403-4.346s2.26-1.519 3.976-1.519c1.639 0 2.89 0.543 3.755 1.629 0.865 1.087 1.297 2.678 1.297 4.772v0.085h-7.319c0 1.11 0.205 1.949 0.616 2.516 0.412 0.565 0.998 0.849 1.757 0.849 1.048 0 1.709-0.453 1.983-1.36l2.795 0.241zm-4.926-6.867c-0.696 0-1.232 0.243-1.609 0.729-0.376 0.484-0.574 1.163-0.595 2.035h4.43c-0.057-0.921-0.278-1.612-0.665-2.072-0.387-0.461-0.907-0.692-1.561-0.692z"/>
|
||||
<path fill-rule="evenodd" fill="#119a48" d="m574.26 503.4zm-170.16-102zm17.041 0c-8.521 0-17.041 8.52-17.041 16.92v68.04c0 8.52 8.52 17.04 17.041 17.04h136.08c8.399 0 17.04-8.521 17.04-17.04v-68.04c0-8.4-8.641-16.92-17.04-16.92h-136.08z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<path d="m421.14 401.4c-8.521 0-17.041 8.52-17.041 16.92v68.04c0 8.52 8.52 17.04 17.041 17.04h136.08c8.399 0 17.04-8.521 17.04-17.04v-68.04c0-8.4-8.641-16.92-17.04-16.92h-136.08z"/>
|
||||
<path d="m404.1 401.4z"/>
|
||||
<path d="m574.26 503.4z"/>
|
||||
</g>
|
||||
<path fill="#fff" d="m466.25 437.8c0 0.956-0.218 1.811-0.653 2.563-0.437 0.752-1.061 1.333-1.873 1.746-0.812 0.41-1.776 0.616-2.895 0.616h-3.691v5.231h-3.111v-14.861h6.676c1.779 0 3.148 0.409 4.107 1.229 0.96 0.819 1.44 1.979 1.44 3.476zm-3.131 0.052c0-1.561-0.923-2.341-2.764-2.341h-3.217v4.819h3.301c0.858 0 1.52-0.212 1.983-0.639 0.464-0.423 0.697-1.037 0.697-1.839zm5.356 10.105v-8.733c0-0.626-0.009-1.148-0.026-1.565-0.018-0.42-0.037-0.79-0.059-1.113h2.827c0.021 0.127 0.049 0.511 0.084 1.155 0.035 0.643 0.053 1.07 0.053 1.281h0.042c0.289-0.802 0.545-1.365 0.771-1.693 0.225-0.326 0.492-0.569 0.802-0.727 0.309-0.159 0.695-0.238 1.16-0.238 0.379 0 0.686 0.053 0.917 0.158v2.479c-0.478-0.105-0.899-0.158-1.266-0.158-0.738 0-1.312 0.299-1.724 0.896s-0.617 1.483-0.617 2.658v5.601h-2.964zm19.244-5.717c0 1.85-0.513 3.3-1.54 4.35-1.026 1.053-2.446 1.578-4.261 1.578-1.778 0-3.173-0.527-4.186-1.582s-1.519-2.504-1.519-4.346c0-1.835 0.506-3.279 1.519-4.329 1.013-1.052 2.428-1.577 4.249-1.577 1.863 0 3.286 0.509 4.267 1.523 0.982 1.018 1.471 2.478 1.471 4.383zm-5.831 3.903c1.82 0 2.73-1.301 2.73-3.902 0-1.357-0.221-2.342-0.663-2.953-0.443-0.611-1.088-0.918-1.932-0.918-1.8 0-2.7 1.291-2.7 3.871 0 1.272 0.221 2.24 0.66 2.906 0.44 0.662 1.074 0.996 1.905 0.996zm8.113 6.296c-0.703 0-1.301-0.032-1.793-0.096v-2.088l0.537 0.042c0.507 0 0.853-0.11 1.04-0.333 0.185-0.22 0.278-0.68 0.278-1.375v-12.045h2.964v12.762c0 1.006-0.255 1.779-0.764 2.32-0.51 0.542-1.264 0.813-2.262 0.813zm0.063-17.951v-2.184h2.964v2.184h-2.964zm15.571 10.578c-0.809 2.067-2.452 3.102-4.926 3.102-1.717 0-3.034-0.509-3.955-1.523-0.922-1.018-1.382-2.499-1.382-4.446 0-1.885 0.468-3.333 1.403-4.346 0.934-1.013 2.259-1.519 3.976-1.519 1.638 0 2.891 0.544 3.755 1.629 0.865 1.088 1.298 2.678 1.298 4.773v0.084h-7.32c0 1.111 0.205 1.949 0.617 2.516 0.411 0.565 0.997 0.849 1.756 0.849 1.047 0 1.709-0.453 1.983-1.36l2.795 0.241zm-4.926-6.865c-0.696 0-1.232 0.242-1.608 0.728-0.377 0.485-0.574 1.163-0.596 2.035h4.43c-0.058-0.921-0.279-1.611-0.664-2.073-0.389-0.459-0.907-0.69-1.562-0.69zm12.094 9.967c-1.729 0-3.065-0.516-4.008-1.545-0.942-1.031-1.413-2.467-1.413-4.309 0-1.885 0.475-3.354 1.424-4.403 0.949-1.052 2.296-1.577 4.039-1.577 1.344 0 2.454 0.338 3.333 1.013s1.431 1.606 1.656 2.795l-2.985 0.147c-0.084-0.584-0.295-1.049-0.633-1.398-0.337-0.347-0.815-0.521-1.434-0.521-1.526 0-2.289 1.276-2.289 3.829 0 2.63 0.777 3.944 2.331 3.944 0.562 0 1.033-0.178 1.413-0.532 0.38-0.356 0.615-0.885 0.707-1.588l2.974 0.138c-0.105 0.78-0.386 1.477-0.839 2.088s-1.049 1.085-1.787 1.418c-0.738 0.334-1.568 0.501-2.489 0.501zm12.674-0.38c-0.731 0.239-1.564 0.358-2.499 0.358-0.872 0-1.544-0.236-2.015-0.713-0.472-0.473-0.707-1.192-0.707-2.156v-6.729h-1.444v-2.004h1.592l0.929-2.679h1.856v2.679h2.162v2.004h-2.162v5.928c0 0.555 0.105 0.965 0.316 1.228 0.211 0.265 0.537 0.396 0.98 0.396 0.232 0 0.562-0.05 0.991-0.147v1.835h0.001z"/>
|
||||
<path fill="#fff" d="m447.23 471.84h-3.133l-1.813-6.961c-0.085-0.316-0.25-1.097-0.496-2.341l-0.548 2.362-1.836 6.939h-3.132l-2.953-11.411h2.784l1.877 8.722 0.148-0.781 0.264-1.233 1.793-6.707h3.174l1.751 6.707c0.099 0.366 0.243 1.036 0.433 2.015l0.295-1.394 1.646-7.328h2.742l-2.996 11.411zm15.392-5.716c0 1.849-0.514 3.299-1.54 4.35s-2.446 1.577-4.261 1.577c-1.779 0-3.175-0.527-4.188-1.582-1.012-1.055-1.519-2.503-1.519-4.345 0-1.836 0.507-3.279 1.519-4.33 1.013-1.052 2.43-1.576 4.251-1.576 1.863 0 3.286 0.507 4.267 1.523s1.471 2.477 1.471 4.383zm-5.832 3.902c1.82 0 2.731-1.301 2.731-3.902 0-1.357-0.222-2.342-0.665-2.953-0.442-0.612-1.086-0.919-1.93-0.919-1.8 0-2.7 1.291-2.7 3.872 0 1.272 0.221 2.24 0.66 2.904 0.441 0.665 1.074 0.998 1.904 0.998zm8.166 1.814v-8.732c0-0.626-0.009-1.148-0.026-1.567-0.018-0.418-0.036-0.788-0.058-1.111h2.826c0.021 0.126 0.05 0.511 0.085 1.154s0.053 1.069 0.053 1.28h0.042c0.288-0.802 0.545-1.365 0.77-1.692 0.226-0.326 0.492-0.569 0.802-0.728s0.696-0.237 1.16-0.237c0.38 0 0.686 0.054 0.918 0.159v2.478c-0.479-0.105-0.9-0.157-1.266-0.157-0.738 0-1.313 0.298-1.726 0.896-0.411 0.598-0.616 1.483-0.616 2.657v5.602h-2.964zm15.691 0-3.048-5.168-1.276 0.886v4.282h-2.964v-15.651h2.964v8.965l4.071-4.725h3.186l-4.008 4.45 4.313 6.961h-3.238zm14.212-3.333c0 1.104-0.453 1.971-1.356 2.6s-2.152 0.944-3.749 0.944c-1.567 0-2.769-0.248-3.602-0.744-0.834-0.495-1.387-1.267-1.661-2.314l2.605-0.392c0.147 0.543 0.401 0.926 0.764 1.151 0.362 0.225 0.994 0.337 1.894 0.337 0.83 0 1.435-0.105 1.814-0.316s0.569-0.541 0.569-0.991c0-0.365-0.153-0.656-0.459-0.87-0.306-0.215-0.824-0.396-1.556-0.543-1.673-0.33-2.802-0.639-3.385-0.924-0.584-0.284-1.029-0.653-1.335-1.107-0.306-0.453-0.458-1.011-0.458-1.672 0-1.09 0.419-1.938 1.26-2.547 0.84-0.607 2.03-0.912 3.57-0.912 1.357 0 2.448 0.265 3.274 0.792s1.341 1.289 1.546 2.287l-2.627 0.274c-0.084-0.464-0.291-0.81-0.622-1.038s-0.854-0.343-1.571-0.343c-0.703 0-1.23 0.09-1.582 0.269-0.352 0.18-0.527 0.479-0.527 0.901 0 0.33 0.135 0.593 0.405 0.786s0.727 0.353 1.366 0.479c0.894 0.183 1.686 0.371 2.378 0.564s1.248 0.425 1.667 0.691c0.418 0.268 0.752 0.609 1.002 1.028s0.376 0.957 0.376 1.61zm13.19-2.426c0 1.906-0.382 3.377-1.146 4.414-0.763 1.037-1.84 1.556-3.231 1.556-0.802 0-1.5-0.175-2.095-0.522-0.594-0.348-1.049-0.849-1.365-1.502h-0.062c0.042 0.211 0.062 0.851 0.062 1.919v4.377h-2.963v-13.269c0-1.076-0.028-1.95-0.085-2.625h2.88c0.035 0.126 0.064 0.375 0.089 0.747 0.024 0.373 0.037 0.743 0.037 1.108h0.042c0.668-1.398 1.885-2.1 3.649-2.1 1.329 0 2.359 0.512 3.091 1.535 0.731 1.024 1.097 2.478 1.097 4.362zm-5.464 3.945c1.582 0 2.373-1.315 2.373-3.945 0-2.559-0.783-3.839-2.352-3.839-0.787 0-1.391 0.345-1.81 1.034-0.418 0.688-0.627 1.652-0.627 2.89 0 1.23 0.209 2.181 0.627 2.853 0.42 0.67 1.016 1.007 1.789 1.007zm14.361-0.221c-0.829 1.497-2.081 2.246-3.755 2.246-1.104 0-1.965-0.301-2.584-0.902-0.618-0.601-0.928-1.446-0.928-2.536 0-1.181 0.385-2.081 1.154-2.699 0.77-0.619 1.887-0.936 3.35-0.949l2.457-0.043v-0.581c0-0.745-0.13-1.298-0.391-1.66-0.26-0.362-0.686-0.543-1.275-0.543-0.549 0-0.952 0.124-1.209 0.374-0.256 0.25-0.416 0.662-0.479 1.238l-3.091-0.147c0.19-1.11 0.697-1.952 1.523-2.525s1.954-0.858 3.381-0.858c1.441 0 2.553 0.354 3.333 1.063s1.171 1.721 1.171 3.028v4.155c0 0.64 0.071 1.081 0.216 1.323 0.144 0.242 0.385 0.364 0.723 0.364 0.225 0 0.443-0.021 0.654-0.063v1.604c-0.176 0.042-0.334 0.081-0.475 0.116s-0.281 0.063-0.422 0.084-0.291 0.039-0.449 0.053c-0.158 0.015-0.342 0.021-0.553 0.021-0.746 0-1.297-0.183-1.651-0.549-0.355-0.365-0.567-0.903-0.638-1.613h-0.062v-0.001zm-0.306-3.25-1.519 0.021c-0.689 0.028-1.178 0.104-1.466 0.228-0.289 0.123-0.509 0.312-0.66 0.564s-0.227 0.591-0.227 1.013c0 0.541 0.125 0.943 0.374 1.207 0.25 0.264 0.583 0.396 0.997 0.396 0.465 0 0.888-0.126 1.271-0.379 0.384-0.254 0.685-0.604 0.902-1.051 0.218-0.446 0.327-0.918 0.327-1.418v-0.581zm10.551 5.496c-1.73 0-3.066-0.516-4.008-1.546-0.942-1.029-1.414-2.467-1.414-4.309 0-1.885 0.477-3.352 1.426-4.402 0.949-1.052 2.294-1.576 4.038-1.576 1.343 0 2.454 0.337 3.333 1.012 0.879 0.676 1.431 1.605 1.656 2.794l-2.985 0.147c-0.085-0.583-0.296-1.049-0.633-1.396-0.338-0.348-0.815-0.522-1.435-0.522-1.525 0-2.287 1.277-2.287 3.829 0 2.63 0.775 3.945 2.329 3.945 0.562 0 1.034-0.179 1.413-0.533 0.38-0.355 0.615-0.885 0.708-1.588l2.975 0.138c-0.105 0.78-0.386 1.477-0.839 2.089-0.454 0.611-1.051 1.084-1.789 1.418s-1.567 0.5-2.488 0.5zm16.851-3.101c-0.809 2.067-2.451 3.101-4.926 3.101-1.716 0-3.034-0.509-3.955-1.524s-1.382-2.497-1.382-4.445c0-1.884 0.468-3.332 1.403-4.345s2.26-1.519 3.976-1.519c1.639 0 2.89 0.542 3.755 1.629 0.865 1.086 1.297 2.676 1.297 4.771v0.084h-7.319c0 1.111 0.205 1.95 0.616 2.517 0.412 0.565 0.998 0.85 1.757 0.85 1.048 0 1.709-0.454 1.983-1.362l2.795 0.243zm-4.925-6.867c-0.696 0-1.232 0.244-1.609 0.729-0.376 0.485-0.574 1.163-0.595 2.035h4.43c-0.057-0.922-0.278-1.611-0.665-2.072s-0.907-0.692-1.561-0.692z"/>
|
||||
<path fill-rule="evenodd" fill="#010101" d="m158.58 241.56zm-13.679-115.68zm3.479 0v86.64h-3.479l6.84 29.04 6.84-29.04h-3.48v-86.64h-6.721z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<polygon transform="translate(-2.779 0.000005)" points="154.52 241.56 161.36 212.52 157.88 212.52 157.88 125.88 151.16 125.88 151.16 212.52 147.68 212.52"/>
|
||||
<path d="m144.9 125.88z"/>
|
||||
<path d="m158.58 241.56z"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" fill="#010101" d="m496.14 381zm-13.561-115.68zm3.361 0v86.76h-3.36l6.72 28.921 6.841-28.921h-3.36v-86.76h-6.841z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<polygon transform="translate(-2.779 0.000005)" points="492.08 381 498.92 352.08 495.56 352.08 495.56 265.32 488.72 265.32 488.72 352.08 485.36 352.08"/>
|
||||
<path d="m482.58 265.32z"/>
|
||||
<path d="m496.14 381z"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" fill="#010101" d="m378.18 217.08zm-110.64 49.199zm1.68 2.761 78.12-45.121-1.56-2.76 29.16-9.6-22.8 20.521-1.681-2.761-78.12 45.24-3.119-5.519z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<polygon transform="translate(-2.779 0.000005)" points="377.72 211.56 354.92 232.08 353.24 229.32 275.12 274.56 272 269.04 350.12 223.92 348.56 221.16"/>
|
||||
<path d="m267.54 266.28z"/>
|
||||
<path d="m378.18 217.08z"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" fill="#010101" d="m273.78 364.08zm97.92 71.161zm1.559-2.761-78.119-45.12-1.681 2.76-22.92-20.52 29.28 9.479-1.561 2.881 78.121 45.119-3.12 5.401z"/>
|
||||
<g stroke-width="0" stroke-miterlimit="10" fill="none">
|
||||
<polygon transform="translate(-2.779 0.000005)" points="273.32 369.6 302.6 379.08 301.04 381.96 379.16 427.08 376.04 432.48 297.92 387.36 296.24 390.12"/>
|
||||
<path d="m371.7 435.24z"/>
|
||||
<path d="m273.78 364.08z"/>
|
||||
</g>
|
||||
<g fill="#010101">
|
||||
<path d="m12.487 191.76-12.487-6.24l12.487-6.243v1.74l-8.996 4.503 8.996 4.493v1.751zm4.4-13.532v-2.077h2.077v2.077h-2.077zm0 13.532v-11.454h2.077v11.454h-2.077zm8.485 0-4.261-11.454h2.077l3.333 8.912 3.513-8.912h1.94l-4.524 11.454h-2.078zm9.545 4.166 1.856-4.166-4.43-11.454h2.246l3.28 8.627 3.502-8.627h1.961l-6.254 15.62h-2.161zm10.798-13.532v-2.088h2.078v2.088h-2.078zm0 9.366v-2.078h2.078v2.078h-2.078zm6.53-13.532v-2.077h2.078v2.077h-2.078zm0 13.532v-11.454h2.078v11.454h-2.078zm6.114 0v-11.454h2.077v2.151c1.097-1.603 2.44-2.404 4.029-2.404 0.991 0 1.782 0.314 2.373 0.943 0.591 0.63 0.886 1.476 0.886 2.537v8.227h-2.078v-7.552c0-0.851-0.124-1.457-0.374-1.819s-0.663-0.543-1.239-0.543c-1.272 0-2.472 0.833-3.597 2.499v7.415h-2.077zm16.451 0.263c-0.949 0-2.103-0.222-3.46-0.665v-1.908c1.357 0.675 2.539 1.012 3.544 1.012 0.598 0 1.094-0.161 1.487-0.484 0.394-0.324 0.591-0.729 0.591-1.213 0-0.711-0.552-1.298-1.656-1.762l-1.213-0.517c-1.793-0.745-2.689-1.817-2.689-3.217 0-0.999 0.354-1.784 1.061-2.357 0.706-0.573 1.675-0.859 2.905-0.859 0.64 0 1.431 0.088 2.373 0.264l0.433 0.084v1.729c-1.16-0.344-2.081-0.517-2.764-0.517-1.336 0-2.004 0.485-2.004 1.456 0 0.625 0.507 1.152 1.519 1.582l1.002 0.422c1.133 0.478 1.934 0.982 2.405 1.513s0.706 1.194 0.706 1.988c0 1.006-0.396 1.832-1.191 2.479-0.796 0.647-1.812 0.97-3.049 0.97zm12.996-0.263c-0.64 0.176-1.195 0.264-1.666 0.264-1.055 0-1.877-0.303-2.468-0.907s-0.886-1.445-0.886-2.521v-6.729h-1.435v-1.561h1.435v-2.078l2.077-0.2v2.278h2.995v1.561h-2.995v6.35c0 1.498 0.647 2.246 1.94 2.246 0.274 0 0.608-0.045 1.002-0.137v1.434h0.001zm10.693 0.263c-0.971 0-1.589-0.573-1.856-1.72-1.244 1.146-2.443 1.72-3.597 1.72-0.949 0-1.736-0.297-2.362-0.892-0.626-0.594-0.938-1.345-0.938-2.252 0-1.251 0.525-2.213 1.576-2.884 1.052-0.672 2.558-1.008 4.52-1.008h0.496v-1.382c0-1.328-0.683-1.993-2.046-1.993-1.098 0-2.282 0.338-3.555 1.013v-1.719c1.399-0.57 2.711-0.854 3.934-0.854 1.28 0 2.224 0.288 2.832 0.864 0.608 0.577 0.912 1.474 0.912 2.689v5.189c0 1.188 0.366 1.782 1.098 1.782 0.091 0 0.225-0.014 0.4-0.042l0.147 1.149c-0.471 0.228-0.991 0.34-1.561 0.34zm-4.862-1.698c0.865 0 1.765-0.383 2.7-1.149v-2.964l-0.696-0.021c-1.139 0-2.061 0.217-2.764 0.649s-1.055 1-1.055 1.703c0 0.499 0.176 0.921 0.527 1.266s0.782 0.516 1.288 0.516zm9.088 1.435v-16.653h2.078v16.653h-2.078zm6.112 0v-16.653h2.078v16.653h-2.078zm6.2 3.122 5.622-18.731h1.635l-5.622 18.731h-1.635zm11.69-3.122 12.488-6.244-12.488-6.243v1.74l8.997 4.503-8.997 4.493v1.751z"/>
|
||||
<path d="m515.89 331.2-12.487-6.244 12.487-6.244v1.74l-8.996 4.504 8.996 4.493v1.751zm4.399-13.532v-2.077h2.077v2.077h-2.077zm0 13.532v-11.454h2.077v11.454h-2.077zm8.487 0-4.261-11.454h2.078l3.332 8.912 3.513-8.912h1.94l-4.524 11.454h-2.078zm9.545 4.166 1.856-4.166-4.43-11.454h2.246l3.28 8.627 3.502-8.627h1.962l-6.255 15.62h-2.161zm10.798-13.532v-2.088h2.078v2.088h-2.078zm0 9.366v-2.078h2.078v2.078h-2.078zm6.529 0v-11.454h2.078v2.151c0.822-1.604 2.018-2.404 3.586-2.404 0.211 0 0.433 0.018 0.664 0.053v1.94c-0.358-0.12-0.675-0.18-0.949-0.18-1.314 0-2.415 0.78-3.301 2.342v7.552h-2.078zm17.166-0.369c-1.393 0.422-2.584 0.633-3.575 0.633-1.688 0-3.064-0.561-4.13-1.684-1.065-1.12-1.598-2.574-1.598-4.36 0-1.736 0.469-3.16 1.408-4.271 0.938-1.11 2.14-1.666 3.602-1.666 1.386 0 2.455 0.492 3.211 1.477s1.135 2.384 1.135 4.197l-0.011 0.644h-7.225c0.303 2.721 1.635 4.082 3.997 4.082 0.865 0 1.927-0.232 3.186-0.696v1.644zm-4.419-9.788c-1.597 0-2.485 1.065-2.669 3.196h5.053c0-2.131-0.795-3.196-2.384-3.196zm13.225 10.157c-0.64 0.174-1.195 0.264-1.667 0.264-1.055 0-1.877-0.303-2.468-0.907s-0.886-1.445-0.886-2.521v-6.729h-1.435v-1.561h1.435v-2.078l2.078-0.2v2.278h2.995v1.561h-2.995v6.35c0 1.497 0.646 2.246 1.94 2.246 0.274 0 0.608-0.046 1.002-0.137v1.434h0.001zm2.929 0v-11.454h2.077v2.151c0.823-1.604 2.019-2.404 3.586-2.404 0.211 0 0.433 0.018 0.665 0.053v1.94c-0.358-0.12-0.675-0.18-0.949-0.18-1.315 0-2.415 0.78-3.302 2.342v7.552h-2.077zm8.771-13.532v-2.077h2.077v2.077h-2.077zm0 13.532v-11.454h2.077v11.454h-2.077zm14.637-0.369c-1.393 0.422-2.584 0.633-3.575 0.633-1.688 0-3.064-0.561-4.13-1.684-1.065-1.12-1.598-2.574-1.598-4.36 0-1.736 0.469-3.16 1.407-4.271 0.939-1.11 2.141-1.666 3.603-1.666 1.386 0 2.455 0.492 3.211 1.477s1.135 2.384 1.135 4.197l-0.011 0.644h-7.225c0.303 2.721 1.635 4.082 3.997 4.082 0.865 0 1.926-0.232 3.186-0.696v1.644zm-4.419-9.788c-1.597 0-2.486 1.065-2.669 3.196h5.052c0-2.131-0.794-3.196-2.383-3.196zm10.493 10.157-4.261-11.454h2.078l3.333 8.912 3.512-8.912h1.94l-4.524 11.454h-2.078zm17.189-0.369c-1.393 0.422-2.584 0.633-3.575 0.633-1.688 0-3.064-0.561-4.13-1.684-1.065-1.12-1.598-2.574-1.598-4.36 0-1.736 0.469-3.16 1.408-4.271 0.938-1.11 2.14-1.666 3.602-1.666 1.386 0 2.455 0.492 3.211 1.477s1.135 2.384 1.135 4.197l-0.011 0.644h-7.225c0.303 2.721 1.635 4.082 3.997 4.082 0.865 0 1.927-0.232 3.186-0.696v1.644zm-4.419-9.788c-1.597 0-2.485 1.065-2.669 3.196h5.053c0-2.131-0.795-3.196-2.384-3.196zm8.384 10.157 12.487-6.244-12.487-6.244v1.74l8.996 4.504-8.996 4.493v1.751z"/>
|
||||
<path d="m260.77 463.92-12.488-6.243 12.488-6.244v1.74l-8.997 4.504 8.997 4.493v1.75zm4.398-13.531v-2.078h2.078v2.078h-2.078zm0 13.531v-11.453h2.078v11.453h-2.078zm8.487 0-4.262-11.453h2.078l3.333 8.912 3.512-8.912h1.94l-4.524 11.453h-2.077zm9.545 4.166 1.855-4.166-4.43-11.453h2.247l3.28 8.627 3.501-8.627h1.962l-6.254 15.619h-2.161zm10.797-13.531v-2.088h2.078v2.088h-2.078zm0 9.365v-2.077h2.078v2.077h-2.078zm6.531 4.166v-15.619h2.078v2.151c0.851-1.604 2.127-2.405 3.828-2.405 1.378 0 2.463 0.503 3.254 1.509 0.791 1.005 1.187 2.38 1.187 4.124 0 1.898-0.448 3.43-1.345 4.592-0.896 1.165-2.076 1.746-3.539 1.746-1.356 0-2.485-0.52-3.385-1.561v5.463h-2.078zm2.078-6.897c1.068 0.956 2.088 1.435 3.059 1.435 1.996 0 2.995-1.522 2.995-4.566 0-2.686-0.886-4.029-2.658-4.029-1.16 0-2.292 0.629-3.396 1.888v5.272zm18.647 2.731v-2.151c-1.104 1.61-2.443 2.415-4.018 2.415-0.999 0-1.793-0.313-2.384-0.944-0.591-0.628-0.886-1.477-0.886-2.546v-8.227h2.078v7.551c0 0.859 0.124 1.469 0.374 1.83 0.249 0.363 0.666 0.543 1.25 0.543 1.265 0 2.46-0.833 3.585-2.499v-7.425h2.078v11.453h-2.077zm6.167 0.127v-16.78h2.077v7.352c0.851-1.604 2.127-2.405 3.829-2.405 1.378 0 2.462 0.503 3.253 1.509 0.791 1.005 1.187 2.38 1.187 4.124 0 1.898-0.448 3.43-1.345 4.592-0.896 1.165-2.075 1.746-3.538 1.746-1.357 0-2.485-0.52-3.386-1.561l-0.253 1.424h-1.824zm2.077-2.858c1.069 0.956 2.089 1.435 3.059 1.435 1.997 0 2.995-1.522 2.995-4.566 0-2.686-0.886-4.029-2.657-4.029-1.16 0-2.292 0.629-3.396 1.888v5.272zm11.488 2.731v-16.653h2.077v16.653h-2.077zm6.242-13.531v-2.078h2.078v2.078h-2.078zm0 13.531v-11.453h2.078v11.453h-2.078zm9.15 0.264c-0.949 0-2.103-0.221-3.46-0.664v-1.909c1.357 0.675 2.538 1.013 3.544 1.013 0.598 0 1.094-0.162 1.487-0.485s0.591-0.728 0.591-1.213c0-0.71-0.553-1.297-1.656-1.761l-1.213-0.518c-1.793-0.744-2.689-1.817-2.689-3.217 0-0.998 0.354-1.783 1.061-2.357 0.707-0.572 1.675-0.859 2.905-0.859 0.64 0 1.431 0.088 2.373 0.264l0.433 0.085v1.729c-1.16-0.345-2.082-0.517-2.764-0.517-1.336 0-2.004 0.485-2.004 1.455 0 0.627 0.506 1.154 1.519 1.582l1.002 0.422c1.132 0.479 1.934 0.983 2.405 1.513 0.471 0.532 0.706 1.194 0.706 1.989 0 1.007-0.397 1.831-1.191 2.479-0.796 0.645-1.811 0.969-3.049 0.969zm7.979-0.264v-16.653h2.078v7.352c1.097-1.604 2.439-2.405 4.029-2.405 0.991 0 1.782 0.315 2.373 0.943 0.59 0.631 0.886 1.477 0.886 2.537v8.227h-2.078v-7.551c0-0.85-0.125-1.457-0.375-1.82-0.249-0.361-0.663-0.543-1.238-0.543-1.274 0-2.473 0.834-3.597 2.5v7.414h-2.078zm13.591 0 12.487-6.243-12.487-6.244v1.74l8.996 4.504-8.996 4.493v1.75z"/>
|
||||
<path d="m264.13 195.24-12.487-6.243 12.487-6.244v1.74l-8.996 4.504 8.996 4.492v1.751zm4.4-13.531v-2.078h2.077v2.078h-2.077zm0 13.531v-11.454h2.077v11.454h-2.077zm8.615 0-4.261-11.454h2.078l3.332 8.912 3.513-8.912h1.94l-4.524 11.454h-2.078zm9.459 4.166 1.856-4.166-4.43-11.454h2.246l3.28 8.628 3.502-8.628h1.961l-6.254 15.62h-2.161zm10.906-13.531v-2.089h2.077v2.089h-2.077zm0 9.365v-2.077h2.077v2.077h-2.077zm6.422 0v-11.454h2.077v2.152c0.823-1.604 2.019-2.405 3.586-2.405 0.211 0 0.433 0.018 0.665 0.053v1.94c-0.358-0.119-0.675-0.179-0.949-0.179-1.315 0-2.415 0.78-3.302 2.341v7.552h-2.077zm17.164-0.369c-1.392 0.422-2.584 0.633-3.574 0.633-1.688 0-3.064-0.561-4.13-1.682-1.064-1.122-1.598-2.575-1.598-4.361 0-1.736 0.47-3.16 1.408-4.271s2.14-1.667 3.602-1.667c1.386 0 2.456 0.492 3.212 1.477s1.133 2.384 1.133 4.198l-0.011 0.644h-7.224c0.303 2.721 1.635 4.081 3.997 4.081 0.864 0 1.926-0.231 3.185-0.696v1.644zm-4.418-9.787c-1.597 0-2.486 1.065-2.669 3.195h5.052c0-2.13-0.794-3.195-2.383-3.195zm11.157 10.42c-0.949 0-2.104-0.222-3.459-0.664v-1.909c1.355 0.675 2.537 1.013 3.544 1.013 0.597 0 1.092-0.162 1.485-0.485 0.395-0.323 0.591-0.728 0.591-1.213 0-0.71-0.552-1.297-1.654-1.762l-1.214-0.517c-1.793-0.744-2.688-1.817-2.688-3.217 0-0.998 0.353-1.784 1.06-2.357 0.706-0.572 1.674-0.859 2.906-0.859 0.639 0 1.43 0.089 2.371 0.264l0.434 0.085v1.729c-1.16-0.344-2.082-0.517-2.763-0.517-1.337 0-2.004 0.484-2.004 1.455 0 0.626 0.506 1.153 1.519 1.582l1.001 0.422c1.132 0.479 1.934 0.982 2.404 1.514 0.472 0.53 0.708 1.193 0.708 1.988 0 1.006-0.398 1.831-1.193 2.479-0.795 0.647-1.811 0.969-3.048 0.969zm12.461 0c-1.639 0-2.946-0.543-3.924-1.629-0.977-1.087-1.466-2.54-1.466-4.361 0-1.842 0.49-3.3 1.471-4.372s2.312-1.608 3.993-1.608c1.68 0 3.01 0.536 3.991 1.608 0.98 1.072 1.472 2.522 1.472 4.351 0 1.871-0.492 3.34-1.477 4.409s-2.337 1.602-4.06 1.602zm-3.175-5.99c0 2.953 1.069 4.43 3.206 4.43 2.201 0 3.302-1.483 3.302-4.451 0-2.932-1.087-4.397-3.259-4.397-2.166-0.001-3.249 1.471-3.249 4.418zm11.89 5.726v-16.653h2.078v16.653h-2.078zm8.486 0-4.262-11.454h2.078l3.333 8.912 3.512-8.912h1.94l-4.524 11.454h-2.077zm17.276-0.369c-1.393 0.422-2.584 0.633-3.575 0.633-1.688 0-3.063-0.561-4.129-1.682-1.065-1.122-1.599-2.575-1.599-4.361 0-1.736 0.471-3.16 1.409-4.271s2.139-1.667 3.601-1.667c1.386 0 2.457 0.492 3.213 1.477s1.133 2.384 1.133 4.198l-0.011 0.644h-7.225c0.303 2.721 1.635 4.081 3.997 4.081 0.865 0 1.927-0.231 3.186-0.696v1.644zm-4.419-9.787c-1.597 0-2.485 1.065-2.669 3.195h5.053c0-2.13-0.795-3.195-2.384-3.195zm8.384 10.156 12.487-6.243-12.487-6.244v1.74l8.996 4.504-8.996 4.492v1.751z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 151 B |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 762 B |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
|
@ -0,0 +1,69 @@
|
|||
|
||||
Welcome to the official Ivy documentation.
|
||||
|
||||
|
||||
== What is Ivy?
|
||||
|
||||
Ivy is a tool for managing (recording, tracking, resolving and reporting) project dependencies. It is characterized by the following:
|
||||
|
||||
|
||||
. flexibility and configurability - Ivy is essentially process agnostic and is not tied to any methodology or structure. Instead it provides the necessary flexibility and configurability to be adapted to a broad range of dependency management and build processes. +
|
||||
|
||||
|
||||
. tight integration with Apache Ant - while available as a standalone tool, Ivy works particularly well with Apache Ant providing a number of powerful Ant tasks ranging from dependency resolution to dependency reporting and publication. +
|
||||
|
||||
Ivy is open source and released under a very permissive Apache License.
|
||||
|
||||
Ivy has a lot of powerful features, the most popular and useful being its flexibility, integration with ant, and its strong transitive dependencies management engine.
|
||||
|
||||
The transitive dependencies management is a feature which lets you get dependencies of your dependencies, transitively. In order to address this general problem, ivy needs to find metadata about your modules, usually in an link:ivyfile.html[ivy file]. To find the metadata and your dependencies' artifacts (usually jars), Ivy can be configured to use a lot of different link:configuration/resolvers.html[repositories].
|
||||
|
||||
|
||||
== About this doc
|
||||
|
||||
|
||||
[NOTE]
|
||||
====
|
||||
|
||||
Tip: The menu on the left is dynamic, you can click on the arrows to browse the menu without going to each page.
|
||||
|
||||
====
|
||||
|
||||
This documentation has been migrated from the old Ivy web site hosted by Jayasoft, feel free to report any problem on the mailing-lists.
|
||||
|
||||
If you browse this documentation from your installation of Ivy, you can also check the link:http://ant.apache.org/ivy/[online version] for the latest updates.
|
||||
|
||||
You can also browse this documentation offline either by downloading the documentation distribution, or by checking out the doc directory from git. This documentation uses link:http://xooki.sourceforge.net/[xooki] as its documentation engine, so you can very easily edit it and submit patches when you browse it from source.
|
||||
|
||||
A link:book.html[printer-friendly version] of this whole documentation is also provided for your convenience.
|
||||
|
||||
Since Ivy 2.0.0-alpha-2, we keep an online history of the documentation. You can thus browse history versions online (in the history menu in the web site) and even check the trunk version documentation currently in development.
|
||||
|
||||
For earlier versions, we suggest downloading the documentation to browse the documentation corresponding to the version you use. The full history of Ivy versions with corresponding links for download is available in the history menu on the web site.
|
||||
|
||||
|
||||
== Other places to go
|
||||
|
||||
Check out Ivy features.
|
||||
Read our FAQ.
|
||||
Ask for help on our mailing lists.
|
||||
Report a bug or feature request in our issue tracking system.
|
||||
Check external tools and resources.
|
||||
|
||||
|
||||
== Overview
|
||||
|
||||
This documentation is composed of three main parts:
|
||||
|
||||
|
||||
* link:tutorial.html[Tutorials] +
|
||||
The tutorials is the best way to begin to play with Ivy. You will easily and quickly learn the basics of Ivy.
|
||||
|
||||
* link:reference.html[Reference] +
|
||||
The reference documentation gives you all the details of Ivy.
|
||||
The introduction part is particularly useful: it defines some vocabulary, explains main concepts such as dependency resolvers and patterns, and gives an overview of how ivy works internally.
|
||||
It's also in the reference doc that you will find all you always dreamed to know about ivy settings, ivy files, and ivy use (especially with ant).
|
||||
|
||||
* link:dev.html[Developer doc] +
|
||||
The developers's doc is useful for users who would like to extend Ivy or build it from source. It's also the documentation used by the Ivy team, so you will also find information about how we make releases.
|
||||
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
|
||||
There are basically two ways to install Ivy: either manually or automatically.
|
||||
|
||||
== Manually
|
||||
|
||||
Download the version you want here, unpack the downloaded zip file wherever you want, and copy the ivy jar file into your ant lib directory (ANT_HOME/lib).
|
||||
|
||||
If you use ant 1.6.0 or superior, you can then simply go to the src/example/hello-ivy dir and run ant: if the build is successful, you have successfully installed Ivy!
|
||||
|
||||
If you use ant 1.5.1 or superior, you have to modify the build files in the examples:
|
||||
- remove the namespace section at their head: xmlns:ivy="antlib:org.apache.ivy.ant"
|
||||
- add taskdefs for ivy tasks:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<taskdef name="ivy-configure" classname="org.apache.ivy.ant.IvyConfigure"/>
|
||||
<taskdef name="ivy-resolve" classname="org.apache.ivy.ant.IvyResolve"/>
|
||||
<taskdef name="ivy-retrieve" classname="org.apache.ivy.ant.IvyRetrieve"/>
|
||||
<taskdef name="ivy-publish" classname="org.apache.ivy.ant.IvyPublish"/>
|
||||
|
||||
----
|
||||
|
||||
- replace ivy:xxx tasks by ivy-xxx
|
||||
You can now run the build, if it is successful, you have successfully installed Ivy!
|
||||
|
||||
If the build is not successful, check the FAQ to see what might be the problem with the ivyrep resolver.
|
||||
|
||||
|
||||
=== Ivy dependendencies
|
||||
|
||||
|
||||
One of the two binary versions of Ivy doesn't include the optional dependencies. To download them using Ivy, all you need is to run the Ant build file provided in the distribution. This will use Ivy itself to download the dependencies. Then you should see the Ivy optional dependencies in the lib directory, organized per configuration (see the ivy.xml for details about the configurations and their use).
|
||||
|
||||
|
||||
== Automatically
|
||||
|
||||
If you want to use Ivy only in your ant build scripts, and have an internet connection when you build, you can download Ivy from this site and use the downloaded version automatically, using this simple build snippet:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<property name="ivy.install.version" value="2.1.0-rc2" />
|
||||
<condition property="ivy.home" value="${env.IVY_HOME}">
|
||||
<isset property="env.IVY_HOME" />
|
||||
</condition>
|
||||
<property name="ivy.home" value="${user.home}/.ant" />
|
||||
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
|
||||
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
|
||||
|
||||
<target name="download-ivy" unless="offline">
|
||||
|
||||
<mkdir dir="${ivy.jar.dir}"/>
|
||||
<!-- download Ivy from web site so that it can be used even without any special installation -->
|
||||
<get src="https://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
|
||||
dest="${ivy.jar.file}" usetimestamp="true"/>
|
||||
</target>
|
||||
|
||||
<target name="init-ivy" depends="download-ivy">
|
||||
<!-- try to load ivy here from ivy home, in case the user has not already dropped
|
||||
it into ant's lib dir (note that the latter copy will always take precedence).
|
||||
We will not fail as long as local lib dir exists (it may be empty) and
|
||||
ivy is in at least one of ant's lib dir or the local lib dir. -->
|
||||
<path id="ivy.lib.path">
|
||||
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
|
||||
|
||||
</path>
|
||||
<taskdef resource="org/apache/ivy/ant/antlib.xml"
|
||||
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
|
||||
</target>
|
||||
|
||||
----
|
||||
|
||||
Then the only thing to do is to add the init-ivy target in the depends attribute of your targets using Ivy, and add the ivy namespace to your build script. See the self contained link:https://git-wip-us.apache.org/repos/asf?p=ant-ivy.git;a=blob;f=src/example/go-ivy/build.xml[go-ivy] example for details about this.
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
|
||||
Ivy use is entirely based on _module descriptors_ known as "ivy files". Ivy files are xml files, usually called ivy.xml, containing the description of the dependencies of a module, its published artifacts and its configurations.
|
||||
|
||||
Here is the simplest ivy file you can write:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<ivy-module version="2.0">
|
||||
<info organisation="myorg"
|
||||
module="mymodule"
|
||||
/>
|
||||
</ivy-module>
|
||||
|
||||
----
|
||||
|
||||
If you want to see a sample module descriptor using almost all possibilities of ivy files, check this one, link:samples/ivy-sample-xslt.xml[with] or link:samples/ivy-sample.xml[without] xslt.
|
||||
|
||||
Before beginning the reference itself, it is required to have in mind the terminology defined in the link:reference.html[main page] of this reference documentation.
|
||||
|
||||
For those familiar with xml schema, the schema used to validate ivy files can be found link:http://ant.apache.org/ivy/schemas/ivy.xsd[here]. For those using xsd aware IDE, you can declare the xsd in your ivy files to benefit from code completion / validation:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ivy-module version="2.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation=
|
||||
"http://ant.apache.org/ivy/schemas/ivy.xsd">
|
||||
<info organisation="myorg"
|
||||
module="mymodule"
|
||||
/>
|
||||
</ivy-module>
|
||||
|
||||
----
|
||||
|
||||
|
||||
=== Dynamic and [[resolved]]resolved ivy files
|
||||
|
||||
|
||||
A module descriptor (ivy file) is needed both before and after the publication of each revision of the module. Depending on the case, a module descriptor can be either _dynamic_ or _resolved_:
|
||||
|
||||
|
||||
==== Dynamic descriptor for module development
|
||||
|
||||
|
||||
During the module development time, between publications, the descriptor helps in managing all the possibly changing dependencies of the module. For that purpose, development time ivy files can declare dynamic dependencies to allow for a greater flexibility of use. link:ivyfile/dependency.html#revision[Dynamic revision] references like "latest.integration" or "1.0.+" are possible and may resolve to different artifacts at different times. Variables can be used for even more flexibility. Development time ivy files are hence called "dynamic", because they can produce different results over time. The dynamic ivy files are normally considered source files and kept with them (under SCM control).
|
||||
|
||||
|
||||
==== Resolved descriptors for publishing
|
||||
|
||||
|
||||
At each publication, another kind of a module descriptor is needed to document the dependencies of the particular published revision of the module. For that purpose, the descriptor usually needs to be fixed as its dependencies should no longer change. In doing so, the published module revision gets fixed, explicitly resolved dependencies. No variables are allowed either. Such publication-friendly, static ivy files are called "resolved", because they should always produce the same results. The resolved ivy files are comparable to published artifacts and are kept with them in a repository.
|
||||
|
||||
Resolved ivy files are generated from their original dynamic ivy files via the link:use/deliver.html[deliver] task.
|
||||
|
||||
Note that although it is technically possible to publish module revisions with dynamic ivy files, it is not a generally recommended practice.
|
||||
|
||||
|
||||
== Hierarchical Index
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
ivy-module
|
||||
link:ivyfile/info.html[info]
|
||||
link:ivyfile/license.html[license]
|
||||
link:ivyfile/ivyauthor.html[ivyauthor]
|
||||
link:ivyfile/repository.html[repository]
|
||||
link:ivyfile/description.html[description]
|
||||
link:ivyfile/configurations.html[configurations]
|
||||
link:ivyfile/conf.html[conf]
|
||||
link:ivyfile/publications.html[publications]
|
||||
link:ivyfile/artifact.html[artifact]
|
||||
link:ivyfile/artifact-conf.html[conf]
|
||||
link:ivyfile/dependencies.html[dependencies]
|
||||
link:ivyfile/dependency.html[dependency]
|
||||
link:ivyfile/dependency-conf.html[conf]
|
||||
link:ivyfile/mapped.html[mapped]
|
||||
link:ivyfile/dependency-artifact.html[artifact]
|
||||
link:ivyfile/dependency-artifact-conf.html[conf]
|
||||
link:ivyfile/dependency-artifact.html[include]
|
||||
link:ivyfile/dependency-artifact-conf.html[conf]
|
||||
link:ivyfile/artifact-exclude.html[exclude]
|
||||
link:ivyfile/artifact-exclude-conf.html[conf]
|
||||
link:ivyfile/exclude.html[exclude]
|
||||
link:ivyfile/override.html[override]
|
||||
link:ivyfile/conflict.html[conflict]
|
||||
link:ivyfile/conflicts.html[conflicts]
|
||||
link:ivyfile/manager.html[manager]
|
||||
|
||||
----
|
||||
|
||||
|
||||
|
||||
|
||||
== ivy-module
|
||||
|
||||
*Tag:* ivy-module
|
||||
|
||||
The root tag of any ivy file (module descriptor).
|
||||
|
||||
=== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|version|the version of the ivy file specification - should be '2.0' with current version of ivy|Yes
|
||||
|=======
|
||||
|
||||
|
||||
=== Child elements
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|info|contains information about the described module|1
|
||||
|configurations|container for configuration elements|0..1
|
||||
|publications|container for published artifact elements|0..1
|
||||
|dependencies|container for dependency elements|0..1
|
||||
|conflicts|section to configure the conflict managers to use|0..1
|
||||
|=======
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
*Tag:* conf *Parent:* link:../ivyfile/artifact.html[artifact]
|
||||
|
||||
|
||||
|
||||
Indicates a public configuration in which enclosing artifact is published.
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of the module public configuration in which this artifact is published.
|
||||
'*' wildcard can be used to designate all public configurations of this module|Yes
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
*Tag:* conf *Parent:* link:../ivyfile/artifact-exclude.html[artifact]
|
||||
|
||||
|
||||
|
||||
Specify a configuration in which the enclosing artifact exclusion should be included.
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of the master configuration in which the enclosing artifact should be excluded|Yes
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
*Tag:* exclude *Parent:* link:../ivyfile/dependency.html[dependency]
|
||||
|
||||
This feature gives you more control on a dependency for which you do not control its ivy file.
|
||||
It enables to restrict the artifacts required, by excluding artifacts being published by the dependency or any of its transitive dependencies,
|
||||
even if configuration does not a good separation of published artifacts
|
||||
|
||||
The same principle concerning configuration as for include applies to this exclude feature (see the link:../ivyfile/dependency-include.html[include] feature).
|
||||
|
||||
Note that exclusion is always done AFTER inclusion has been done.
|
||||
|
||||
*__since 1.3__* This exclude feature can also be used not only to exclude artifacts but also to exclude whole modules. Indeed when you exclude artifacts, it doesn't avoid ivy to search for the module itself, and to resolve the dependencies of the module. But you can also exclude the whole module, which means that the module will not be downloaded at all, and so its own dependencies will not be resolved. For sure, this is usually done to exclude not a direct dependency but an indirect one. To exclude a whole module, you just have to not specify any artifact name, type and ext in your exclude rule. For instance:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<dependency name="A" rev="1.0">
|
||||
<exclude module="B"/>
|
||||
</dependency>
|
||||
|
||||
----
|
||||
|
||||
*__since 2.0__* A link:../ivyfile/exclude.html[module wide exclude] can also be used to exclude dependencies for the whole module (and not only in the context of one dependency as it is the case here).
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|org|the organisation of the dependency module or artifact to exclude, or a regexp matching this organisation *__since 1.3__*|No, defaults to *
|
||||
|module|the name of the dependency module or the artifact to exclude, or a regexp matching this module name *__since 1.3__*|No, defaults to *
|
||||
|name|the name of an artifact of the dependency module to add to the exclude list, or an expression matching this name (see matcher attribute below)|No, defaults to *
|
||||
|type|the type of the artifact of the dependency module to add to the exclude list, or a regexp matching this name|No, defaults to *
|
||||
|ext|the extension of the artifact of the dependency module to add to the exclude list, or an expression matching this name (see matcher attribute below)|No, defaults to type
|
||||
|matcher|the link:../concept.html#matcher[matcher] to use to match the modules to excludes *__since 1.3__*|No, defaults to exactOrRegexp in pre 1.3 ivy files, and exact in 1.3 and superior
|
||||
|conf|comma separated list of the master configurations in which this artifact should be excluded.
|
||||
'*' wildcard can be used to designate all configurations of this module|No, defaults to '*', unless nested conf are specified
|
||||
|=======
|
||||
|
||||
|
||||
== Child elements
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|link:../ivyfile/artifact-exclude-conf.html[conf]|configuration in which the artifact should be excluded|0..n
|
||||
|=======
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
|
||||
*Tag:* artifact *Parent:* link:../ivyfile/publications.html[publications]
|
||||
|
||||
Declares an artifact published by this module. This is especially useful for other modules dependending on this one. They thus get all published artifacts belonging to the configurations asked. Indeed, each published artifact declares in which public configuration it is published. Thus a module depending on this module only get artifacts marked with the asked configurations, taking into account configurations extension (see link:../ivyfile/conf.html[configuration declaration]).
|
||||
|
||||
The configurations in which an artifact is published can be configured in two ways:
|
||||
|
||||
|
||||
* conf attribute on artifact element +
|
||||
|
||||
* conf subelement +
|
||||
|
||||
The two are equivalent, it is only a matter of preference. However, do not mix both for one artifact.
|
||||
|
||||
*__since 1.4__* The artifact element has default values for all its attributes, so if you want to declare a default artifact you can just declare it like that:
|
||||
[source]
|
||||
----
|
||||
|
||||
<artifact />
|
||||
|
||||
----
|
||||
|
||||
If this is the only artifact declared, then it's equivalent to having no publication section at all.
|
||||
|
||||
*__since 1.4__* It is possible to give a url at which artifacts can be found. This is not mandatory, and even not recommended. This is only a convenient way to deal with an existing repository with a bad layout, but should not be avoided in an enterprise repository.
|
||||
|
||||
*__since 1.4__* This tag supports link:../concept.html#extra[extra attributes].
|
||||
|
||||
*__since 2.4__* This tag supports the 'packaging' attributes; complete documentation can be found in the link:../concept.html#packaging[concept page].
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of the published artifact. This name must not include revision.|No, defaults to the name of the module
|
||||
|type|the type of the published artifact. It's usually its extension, but not necessarily. For instance, ivy files are of type 'ivy' but have 'xml' extension|No, defaults to jar
|
||||
|ext|the extension of the published artifact|No, defaults to type
|
||||
|conf|comma separated list of public configurations in which this artifact is published.
|
||||
'*' wildcard can be used to designate all public configurations of this module|No, defaults to defaultconf attribute value on parent publications element.
|
||||
|url|a url at which this artifact can be found if it isn't located at the standard location in the repository *__since 1.4__*|No, defaults to no url
|
||||
|packaging|a comma separated list of link:../concept.html#packaging[packaging] types *__since 2.4__*|No, defaults to no packaging
|
||||
|=======
|
||||
|
||||
|
||||
== Child elements
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|link:../ivyfile/artifact-conf.html[conf]|indicates a public configuration in which this artifact is published|0..n
|
||||
|=======
|
||||
|
||||
|
||||
== Examples
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<artifact />
|
||||
|
||||
----
|
||||
|
||||
Declares an artifact with the name of the module as name, type and ext jar, and published in all configurations.
|
||||
|
||||
|
||||
'''
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<artifact name="foo-src" type="source" ext="zip" conf="src" />
|
||||
|
||||
----
|
||||
|
||||
Declares an artifact foo-src, of type 'source' with extension 'zip', and published in the src configuration.
|
||||
|
||||
|
||||
'''
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<artifact name="foo" url="http://www.acme.com/repository/barbaz/foo-1.2-bar.jar" />
|
||||
|
||||
----
|
||||
|
||||
Declares an artifact foo, of type and extension 'jar' located at the url http://www.acme.com/repository/barbaz/foo-1.2-bar.jar. This url will only be used if the artifact cannot be found at its standard location.
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
|
||||
*Tag:* conf *Parent:* link:../ivyfile/configurations.html[configurations]
|
||||
|
||||
Declares a configuration of this module. As described in the reference page, a configuration is a way to use or construct a module. Some modules may be used in different ways (think about hibernate which can be used inside or outside an application server), and this way may alter the artifacts you need (in the case of hibernate, jta.jar is needed only if it is used outside an application server). Moreover, a module may need some other modules and artifacts only at build time, and some others at runtime. All those differents ways to use or build a module are called in Ivy module configurations.
|
||||
|
||||
The conf element in the configurations section declares one configuration. This declaration gives the name of the configuration declared, its visibility and the other configurations of the module it extends.
|
||||
|
||||
Visibility is used to indicate whether or not a configuration can be used from other modules depending on this one. Thus a private configuration is only used for internal purpose (maybe at build time), and other modules cannot declare to depend on it.
|
||||
|
||||
A configuration can also extend one or several other ones of the same module. When a configuration extends another one, then all artifacts required in the extended configuration will also be required in the configuration that extends the other one. For instance, if configuration B extends configuration A, and if artifacts art1 and art2 are required in configuration A, then they will be automatically required in configuration B. On the other hand, artifacts required in configuration B are not necessarily required in configuration A.
|
||||
|
||||
This notion is very helpful to define configurations which are similar with some differences.
|
||||
|
||||
*__since 1.4__* The extends attribute can use the following wildcards:
|
||||
[cols="15%,50%"]
|
||||
|=======
|
||||
|*|all other configurations
|
||||
|*(public)|all other public configurations
|
||||
|*(private)|all other private configurations
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
|
||||
*__since 1.4__* A whole configuration can be declared as non transitive, so that all dependencies resolved in this configuration will be resolved with transitivity disabled. Note that the transitivity is disabled for all the configuration dependencies (including those obtained because this conf extends other ones), and only for this configuration (which means that a conf extending this one with transitivityy enabled will get transitive dependencies even for dependencies being part of the non transitive configuration).
|
||||
This is very useful to build a compile configuration, for instance, forcing the dependency declaration on each direct dependency, with no risk to forget some because of transitivity.
|
||||
|
||||
*__since 1.4__* This tag supports link:../concept.html#extra[extra attributes].
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of the declared configuration|Yes
|
||||
|description|a description for the declared configuration|No
|
||||
|visibility|the visibility of the declared configuration.
|
||||
'public' means that this configuration can be used by other modules, while 'private' means that this configuration is used only in the module itself, and is not exposed to other modules|No, defaults to public
|
||||
|extends|a comma separated list of configurations of this module that the
|
||||
current configuration extends|No, defaults to none
|
||||
|transitive|a boolean to indicate if this conf is transitive or not *__since 1.4__*|No, defaults to true
|
||||
|deprecated|indicates that this conf has been deprecated by giving the date of the deprecation.
|
||||
It should be given in this format: yyyyMMddHHmmss|No, by default the conf is not deprecated
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
== Examples
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<conf name="core" visibility="private" />
|
||||
<conf name="compile" extends="core" transitive="false" visibility="private" />
|
||||
<conf name="runtime" extends="compile" description="everything needed to run this module" />
|
||||
|
||||
----
|
||||
|
||||
Declares three configurations, core compile and runtime, with only the runtime one accessible from other modules, and with the compile one being non transitive.
|
||||
Therefore the core configuration will only be composed of dependencies declared in the core configuration itself, the compile configuration will be composed of all dependencies required in either core or compile configuration, but without transivity (neither for core nor compile dependencies), and runtime will be composed of all dependencies, all transitively, including the dependencies declared only in compile.
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
|
||||
*Tag:* configurations *Parent:* link:../ivyfile.html[ivy-module]
|
||||
|
||||
A container for configuration elements. If this container is not present, it is assumed that the module has one public configuration called 'default'.
|
||||
|
||||
*__since 2.2__* You can define the default conf on this container by specifying the defaultconf attribute. This attribute defines the conf mapping to use when no conf mapping is specified for a dependency in this ivy file.
|
||||
|
||||
*__since 1.3__* You can define a default conf mapping on this container by specifying the defaultconfmapping attribute.
|
||||
|
||||
This attribute modifies the way ivy interprets conf mapping with no mapped conf. In this case, Ivy will look in the default conf mapping and use the conf mapping defined in the default conf mapping for the conf for which there is no mapped conf.
|
||||
|
||||
In order to maintain backwards compatibility with Ivy 2.1.0 and earlier, the defaultconfmapping also provides one additional function. If no defaultconf is specified (on either the configurations tag or the dependencies tag), the defaultconfmapping becomes the default configuration for dependencies in this ivy file when no configuration is specified. In other words, in addition to altering the interpretation of individual configurations with no mapping, defaultconfmapping also performs exactly like defaultconf in the absence of a definition for defaultconf.
|
||||
|
||||
If several defaultconfmapping or defaultconf attributes are defined (in the configurations tag, one or several in an included configurations file, and/or in the dependency tag, then it's only the last definition of each property which is taken into account. The others will have no effect at all.
|
||||
|
||||
See link:#defaultconfmapping[examples below] to clarify the behavior of these two attributes together.
|
||||
|
||||
*__since 1.4__* You can activate a confmappingoverride mode for all configurations, in which case the extending configurations will override the mappings of the configurations they extend from.
|
||||
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|defaultconf|the default conf to use in this ivy file *__since 2.2__*|No, defaults to no default conf
|
||||
|defaultconfmapping|the default conf mapping to use in this ivy file *__since 1.3__*|No, defaults to no default conf mapping
|
||||
|confmappingoverride|true to activate configuration mapping override, false otherwise *__since 1.4__*|No, defaults to false
|
||||
|=======
|
||||
|
||||
|
||||
== Child elements
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|link:../ivyfile/conf.html[conf]|declares a configuration of this module|0..n
|
||||
|link:../ivyfile/include.html[include]|include configurations from another file|0..n
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
== Configuration mappings details
|
||||
|
||||
When Ivy parses your Ivy file, it will create (internally) modify the configuration mapping of your dependencies.
|
||||
For instance, say you have:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<configurations defaultconfmapping="conf1->other1;conf2->other2">
|
||||
<conf name="conf1" />
|
||||
<conf name="conf2" extends="conf1" />
|
||||
</configurations>
|
||||
<dependencies>
|
||||
<dependency name="other-module" conf="conf1" />
|
||||
</dependencies>
|
||||
|
||||
----
|
||||
|
||||
When Ivy parses this file, it will construct the following dependency (in-memory only):
|
||||
|
||||
[source]
|
||||
----
|
||||
<dependency name="other-module" conf="conf1->other1" />
|
||||
----
|
||||
|
||||
So, if you now resolve the conf2 configuration, you will only get the other1 dependencies of your other-module.
|
||||
|
||||
But when you set confmappingoverride to true, Ivy will construct the following dependency in memory:
|
||||
|
||||
[source]
|
||||
----
|
||||
<dependency name="other-module" conf="conf1->other1;conf2->other2" />
|
||||
----
|
||||
|
||||
As you can see, the defaultmappings of the extending configurations are also added (although you didn't explicitly defined them)
|
||||
|
||||
When you now resolve the conf2 configuration, you'll get the other2 dependencies of your other-module.
|
||||
|
||||
|
||||
== Examples involving defaultconf and defaultconfmapping
|
||||
|
||||
The table below indicates how Ivy interprets the conf attribute according to how link:../ivyfile/configurations.html[defaultconfmapping] and link:../ivyfile/configurations.html[defaultconf] are set:
|
||||
[options="header",cols="15%,50%,18%,18%"]
|
||||
|=======
|
||||
|defaultconf|defaultconfmapping|conf|ivy interpretation
|
||||
||||
|
||||
[source]
|
||||
----
|
||||
*->*
|
||||
----
|
||||
|
||||
|
||||
|||runtime|
|
||||
[source]
|
||||
----
|
||||
runtime->runtime
|
||||
----
|
||||
|
||||
|
||||
|||test|
|
||||
[source]
|
||||
----
|
||||
test->test
|
||||
----
|
||||
|
||||
|
||||
|
|
||||
[source]
|
||||
----
|
||||
runtime
|
||||
----
|
||||
|
||||
|||
|
||||
[source]
|
||||
----
|
||||
runtime->runtime
|
||||
----
|
||||
|
||||
|
||||
|
|
||||
[source]
|
||||
----
|
||||
runtime
|
||||
----
|
||||
|
||||
|
|
||||
[source]
|
||||
----
|
||||
runtime->*;test->default
|
||||
----
|
||||
|
||||
||runtime->*
|
||||
|
|
||||
[source]
|
||||
----
|
||||
runtime
|
||||
----
|
||||
|
||||
|
|
||||
[source]
|
||||
----
|
||||
runtime->*;test->default
|
||||
----
|
||||
|
||||
|test|test->default
|
||||
||
|
||||
[source]
|
||||
----
|
||||
runtime->*;test->default
|
||||
----
|
||||
|
||||
||
|
||||
[source]
|
||||
----
|
||||
runtime->*;test->default
|
||||
----
|
||||
|
||||
|
||||
||
|
||||
[source]
|
||||
----
|
||||
runtime->*;test->default
|
||||
----
|
||||
|
||||
|runtime|
|
||||
[source]
|
||||
----
|
||||
runtime->*
|
||||
----
|
||||
|
||||
|
||||
||
|
||||
[source]
|
||||
----
|
||||
runtime->*;test->default
|
||||
----
|
||||
|
||||
|test|
|
||||
[source]
|
||||
----
|
||||
test->default
|
||||
----
|
||||
|
||||
|
||||
|=======
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
|
||||
*Tag:* conflict *Parent:* link:../ivyfile/dependencies.html[dependencies]
|
||||
|
||||
|
||||
|
||||
*__(since 2.0)__*
|
||||
|
||||
Specify a a conflict manager for one or several dependencies.
|
||||
The way to specify a conflict manager is by giving indication to which dependencies the conflict manager applies (by giving organisation and module names or name regexp), and then specifying the conflict manager, either by giving its name or by specifying a fixed revision list, in which case a fixed conflicts manager is used.
|
||||
|
||||
The list of built-in conflict managers available is listed on the link:../settings/conflict-managers.html[conflict manager configuration page].
|
||||
|
||||
Conflicts manager are used during the resolve operation, i.e. when ivy analyse the graph of dependencies and download corresponding ivy files and artifacts. The fact to manage conflict at resolve time enables to minimize downloads: when a module is evicted by a conflict manager, it is not downloaded.
|
||||
|
||||
There are two things optimized during conflict resolution: download of artifacts and download of ivy files. The first is always ensured by ivy, i.e. artifacts of a module evicted will never be downloaded. The second is not as simple to handle because to know what are the conflicts ivy needs to know the dependency graph, and to know the dependency graph, it has to download ivy files. But ivy is highly optimized on this too, and it tries to evict modules as soon as possible.
|
||||
That's why the order of dependencies is important for download optimization. Indeed ivy traverses the dependency graph in the order in which dependencies are declared in the ivy files, and each time it encounters a dependency on a module, it first check if there is a conflict on this module, and if this is the case, it asks the conflict manager to resolve the conflict. Then if the module is evicted, it does not download its ivy file, and the whole branch is not traversed, which can saves a lot of time.
|
||||
|
||||
If no specific conflict manager is defined, a default conflict manager is used for all modules.
|
||||
|
||||
The current default conflict manager is the "latest-revision" conflict manager.
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|org|the name, or an expression matching the name of organisation to which this conflict manager should apply (see matcher attribute below)|No, defaults to * (match all)
|
||||
|module|the name, or an expression matching the name of module to which this conflict manager should apply (see matcher attribute below)|No, defaults to * (match all)
|
||||
|manager|the name of the conflict manager to use|Exactly one of two
|
||||
|rev|a comma separated list of revisions this conflict manager should select
|
||||
|matcher|the link:../concept.html#matcher[matcher] to use to match the modules for which the conflict manager should be used|No, defaults to exact
|
||||
|=======
|
||||
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
|
||||
*Tag:* conflicts *Parent:* link:../ivyfile.html[ivy-module]
|
||||
|
||||
|
||||
|
||||
*__(since 2.0)__* the conflicts section is deprecated. Use the link:../ivyfile/conflict.html[conflict] instead.
|
||||
|
||||
Container for conflict manager elements, used to indicate how conflicts should be resolved
|
||||
for this module.
|
||||
|
||||
|
||||
|
||||
The list of built-in conflict managers available is listed on the link:../settings/conflict-managers.html[conflict manager configuration page].
|
||||
|
||||
|
||||
|
||||
Conflicts manager are used during the resolve operation, i.e. when ivy analyse the graph of dependencies
|
||||
and download corresponding ivy files and artifacts. The fact to manage conflict at resolve time
|
||||
enables to minimize downloads: when a module is evicted by a conflict manager, it is not downloaded.
|
||||
|
||||
|
||||
|
||||
There are two things optimized during conflict resolution: download of artifacts and download
|
||||
of ivy files. The first is always ensured by ivy, i.e. artifacts of a module evicted will never
|
||||
be downloaded. The second is not as simple to handle because to know what are the conflicts
|
||||
ivy needs to know the dependency graph, and to know the dependency graph, it has to download
|
||||
ivy files. But ivy is highly optimized on this too, and it tries to evict modules as soon as possible.
|
||||
|
||||
That's why the order of dependencies is important for download optimization. Indeed ivy
|
||||
traverses the dependency graph in the order in which dependencies are declared in the ivy files,
|
||||
and each time it encounters a dependency on a module, it first check if there is a conflict on this module,
|
||||
and if this is the case, it asks the conflict manager to resolve the conflict. Then if the module is evicted,
|
||||
it does not download its ivy file, and the whole branch is not traversed, which can saves
|
||||
a lot of time.
|
||||
|
||||
|
||||
|
||||
If this container is not present, a default conflict manager is used for all modules.
|
||||
The current default conflict manager is the "latest-revision" conflict manager.
|
||||
|
||||
== Child elements
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|link:../ivyfile/manager.html[manager]|declares a conflict manager for this module|1..n
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
*Tag:* dependencies *Parent:* link:../ivyfile.html[ivy-module]
|
||||
|
||||
Container for dependency elements, used to describe the dependencies of this module.
|
||||
If this container is not present, it is assumed that the module has no dependency at all.
|
||||
|
||||
This container provides for two similar behaviors. An overview is given here. (See link:../ivyfile/configurations.html[configurations doc page] for more details about these behaviors).
|
||||
|
||||
*__since 1.1__*
|
||||
[source]
|
||||
----
|
||||
defaultconf
|
||||
----
|
||||
|
||||
Defines the conf attribute to use when no conf is defined for a dependency in this ivy file. It is only used when no conf mapping is defined, and has no influence in other cases.
|
||||
|
||||
*__since 1.3__*
|
||||
[source]
|
||||
----
|
||||
defaultconfmapping
|
||||
----
|
||||
|
||||
Influences the way that a conf mapping with no mapped conf is interpreted.
|
||||
|
||||
In Ivy 2.1.0 and earlier, if both defaultconf and defaultconfmapping are defined, it's the defaultconfmapping that is used. Since Ivy 2.2.0, these attributes can be used together.
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|defaultconf|the default configuration to use when none is specified in a dependency. *__since 1.1__*</em>|No, defaults to *->*
|
||||
|defaultconfmapping|the default configuration mapping to use in this ivy file. *__since 1.3__*</em>|No, defaults to no default conf mapping
|
||||
|=======
|
||||
|
||||
|
||||
== Child elements
|
||||
|
||||
|
||||
Note: as specified by the ivy.xsd, the children elements are ordered; must come first the `link:../ivyfile/dependency.html[dependency]` elements, then the `link:../ivyfile/exclude.html[exclude]` elements, then the `link:../ivyfile/override.html[override]` elements, and then the `link:../ivyfile/conflict.html[conflict]` elements.
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|link:../ivyfile/dependency.html[dependency]|declares a dependency for this module|0..n
|
||||
|link:../ivyfile/exclude.html[exclude]|excludes artifacts, modules or whole organizations from the set of dependencies of this module *__since 2.0__*|0..n
|
||||
|link:../ivyfile/override.html[override]|specify an override mediation rule, overriding the revision and/or branch requested for a transitive dependency *__since 2.0__*|0..n
|
||||
|link:../ivyfile/conflict.html[conflict]|specify a a conflict manager for one or several dependencies *__since 2.0__*|0..n
|
||||
|=======
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
*Tag:* conf *Parent:* link:../ivyfile/dependency-artifact.html[artifact]
|
||||
|
||||
Specify a configuration in which the enclosing artifact specification should be included.
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of the master configuration in which the enclosing artifact should be included|Yes
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
|
||||
*Tag:* artifact *Parent:* link:../ivyfile/dependency.html[dependency]
|
||||
|
||||
This feature gives you more control on a dependency for which you do not control its ivy file.
|
||||
It enables to specify the artifacts required, if the dependency has no ivy file.
|
||||
|
||||
Indeed, when a module has no ivy file, it is assumed that it publishes exactly one artifact having the same name as the module itself. But when this module publishes more artifacts, or simply does not respect the name rule, and if you cannot deliver an ivy file for it (because you do not control the repository, for instance - think about maven ibiblio repository, to give no name), then this feature let you specify the artifacts names you want to get.
|
||||
|
||||
Each artifact specification can be given in the context of particular master configurations. By default, if no configuration is specified, artifacts specification apply to all master configurations. But you can specify that a specification applies only to one or several master configurations, using either inline or nested conf specification. In this case, do not forget that if you do not specify any specification for a particular configuration, then no specification will apply for this configuration and it will be resolved not taking into account any specification.
|
||||
|
||||
For instance, imagine you have A, B & C master configurations. If you specify art1 in A & B and art2 in A, then C will not be specified at all, and will thus assume the default artifact. To prevent this, you have to specify a configuration mapping for the dependency, mapping only A & B to some or all dependency configurations.
|
||||
|
||||
Example:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<dependency org="yourorg" name="yourmodule9" rev="9.1" conf="A,B->default">
|
||||
<artifact name="art1" type="jar" conf="A,B"/>
|
||||
<artifact name="art2" type="jar" conf="A"/>
|
||||
</dependency>
|
||||
|
||||
----
|
||||
|
||||
*__since 1.4__* It's possible to indicate the url at which the artifact can be found. This is not mandatory, and even not recommended with an enterprise repository. Note that Ivy will always look at the location where the artifact should be and only use the url if it cannot be found at the standard location in the repository.
|
||||
|
||||
*__since 1.4__* This tag supports link:../concept.html#extra[extra attributes].
|
||||
|
||||
*__since 2.0__* This feature can also be used for modules having their own module descriptor, but which doesn't declare an artifact you know that is published. Note that in this case artifacts declared to be published by the dependency will be ignored, so do not forget to include all artifacts you want.
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of an artifact of the dependency module|Yes
|
||||
|type|the type of the artifact of the dependency module|Yes
|
||||
|ext|the extension of the artifact of the dependency module|No, defaults to type
|
||||
|conf|comma separated list of the master configurations in which this artifact should be included.
|
||||
'*' wildcard can be used to designate all configurations of this module|No, defaults to '*', unless nested conf are specified
|
||||
|url|an url where this artifact can be found if it isn't present at the standard location in the repository *__since 1.4__*|No, defaults to no url
|
||||
|=======
|
||||
|
||||
|
||||
== Child elements
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|link:../ivyfile/dependency-artifact-conf.html[conf]|configuration in which the artifact should be included|0..n
|
||||
|=======
|
||||
|
||||
|
||||
== Examples
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<dependency org="foo" name="bar" rev="1.0">
|
||||
<artifact name="baz" type="jar"/>
|
||||
</dependency>
|
||||
|
||||
----
|
||||
|
||||
Declares a dependency on module bar which only publish one artifact: baz.jar.
|
||||
|
||||
|
||||
'''
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<dependency org="foo" name="bar" rev="1.0">
|
||||
<artifact name="baz" type="jar" url="http://www.acme.com/repository/bar/baz-1.0-acme.jar"/>
|
||||
</dependency>
|
||||
|
||||
----
|
||||
|
||||
Same as above, except that if the artifact is not found at its standard location, Ivy will use http://www.acme.com/repository/bar/baz-1.0-acme.jar to download it.
|
||||
|
||||
|
||||
'''
|
||||
|
||||
|
||||
[source]
|
||||
----
|
||||
|
||||
<dependency org="foo" name="bar" rev="1.0">
|
||||
<include name="*"/>
|
||||
<artifact name="baz" type="source" ext="jar"/>
|
||||
</dependency>
|
||||
|
||||
----
|
||||
|
||||
Declares a dependency on module bar for which all artifacts declared will be used (thanks to the include tag) plus an artifact baz of type source and ext jar (which is not declared in module bar module descriptor).
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
*Tag:* conf *Parent:* link:../ivyfile/dependency.html[dependency]
|
||||
|
||||
|
||||
|
||||
Describes a configuration mapping for a dependency. See also the inline configuration mapping
|
||||
in dependency element.
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of the master configuration to map.
|
||||
'*' wildcard can be used to designate all configurations of this module|Yes
|
||||
|mapped|a comma separated list of dependency configurations to which this
|
||||
master configuration should be mapped|No, default to the same configuration as master one, unless nested mapped elements are specified
|
||||
|=======
|
||||
|
||||
|
||||
== Child elements
|
||||
|
||||
|
||||
[options="header"]
|
||||
|=======
|
||||
|Element|Description|Cardinality
|
||||
|link:../ivyfile/mapped.html[mapped]|map dependency configurations for this master configuration|0..n
|
||||
|=======
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
*Tag:* conf *Parent:* link:../ivyfile/dependency-include.html[include]
|
||||
|
||||
Specify a configuration in which the enclosing artifact inclusion should be included.
|
||||
|
||||
|
||||
== Attributes
|
||||
|
||||
|
||||
[options="header",cols="15%,50%,35%"]
|
||||
|=======
|
||||
|Attribute|Description|Required
|
||||
|name|the name of the master configuration in which the enclosing artifact should be included|Yes
|
||||
|=======
|
||||
|
||||
|
||||
|
||||