Add updated html

This commit is contained in:
Shane Daley 2021-10-12 22:25:13 +00:00
parent 67e6d62909
commit 972ab7180c
80 changed files with 8068 additions and 83 deletions

View File

@ -7,14 +7,14 @@ include_once 'include/config.php';
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - STATUS</title>
<title>DMR Server - Dashboard | Bridges</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210515)" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
@ -25,11 +25,23 @@ include_once 'include/config.php';
<p id="bridge"></p>
</div>
<div style="width: 1100px; margin-left:0px;">
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021)-->
</p></div>
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>
</html>

View File

@ -1,6 +1,6 @@
<div style="width: 1100px;">
<!-- HBMonitor buttons HTML code -->
<a href="index.php"><button class="button link">&nbsp;Home&nbsp;</button></a>
<a href="index.php"><button class="button link">&nbsp;Dashboard&nbsp;</button></a>
<!--
&nbsp;
<div class="dropdown">
@ -16,19 +16,19 @@
</div>
--->
&nbsp;
<a href="masters.php"><button class="button link">&nbsp;Masters&nbsp;</button></a>
<a href="masters.php"><button class="button link">&nbsp;Users&nbsp;</button></a>
&nbsp;
<a href="peers.php"><button class="button link">&nbsp;Peers&nbsp;</button></a>
<a href="peers.php"><button class="button link">&nbsp;System Peers&nbsp;</button></a>
&nbsp;
<a href="opb.php"><button class="button link">&nbsp;OpenBridge&nbsp;</button></a>
&nbsp;
<a href="moni.php"><button class="button link">&nbsp;Monitor&nbsp;</button></a>
<a href="moni.php"><button class="button link">&nbsp;Call Monitor&nbsp;</button></a>
&nbsp;
<a href="sysinfo.php"><button class="button link">&nbsp;System Info&nbsp;</button></a>
<a target=_blank href="esm/"><button class="button link">&nbsp;System Status&nbsp;</button></a>
&nbsp;
<a title="Lastheard long list" href="log.php"><button class="button link">&nbsp;Lastheard&nbsp;</button></a>
<a title="Lastheard long list" href="log.php"><button class="button link">&nbsp;Lastheard*&nbsp;</button></a>
&nbsp;
<a href="info.php"><button class="button link">&nbsp;Info&nbsp;</button></a>
<a href="info.php"><button class="button link">&nbsp;Talkgroups&nbsp;</button></a>
&nbsp;
<!--
&nbsp;

674
HBMonv2/html/esm/LICENSE Normal file
View File

@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

View File

@ -0,0 +1,32 @@
[eZ Server Monitor](http://www.ezservermonitor.com) (eSM) is a script for monitoring Linux servers. It is available in [Bash](http://www.ezservermonitor.com/esm-sh/features) version and [Web](http://www.ezservermonitor.com/esm-web/features) application.
# eZ Server Monitor `Web
In its [Web](http://www.ezservermonitor.com/esm-web/features) version eSM is a PHP script that displays on a Web page information such as:
![](http://www.ezservermonitor.com/uploads/esm_web/esm-web_dashboard-complete.png)
- **System** : hostname, OS, kernel version, uptime, last boot date, number of current user(s), server datetime
- **Load average** : gauges showing the CPU load with the percentage (1 minute, 5 minutes et 15 minutes)
- **Network usage** : displaying the IP address of each network interface with the data transmitted and received
- **CPU** : model, frequency, cores number, cache L2, bogomips, temperature
- **Disk usage** : table of each mount point with the space available, used and total
- **Memory** : table containing the available used and total of RAM
- **Swap** : table containing the available used and total of Swap
- **Last login** : display last 5 user connections
- **Ping** : ping the hosts defined in the configuration file
- **Services** : displays the status (up or down) services defined in the configuration file
Several themes are available !
![](http://www.ezservermonitor.com/uploads/esm_web/esm-web_themes.png)
Each block can be reloaded manually.
You can download the last version [here](http://www.ezservermonitor.com/esm-web/downloads). The [requirements](http://www.ezservermonitor.com/esm-web/documentation) are simple : a Linux environment, a web server (Apache2, Lighttpd, Nginx, ...) and PHP.
The [documentation](http://www.ezservermonitor.com/esm-web/documentation) explains all the parameters of *esm.config.json*.
Changelog is available [here](http://www.ezservermonitor.com/esm-web/changelog).
**View more information on the [official website](http://www.ezservermonitor.com/esm-web/features).**

View File

@ -0,0 +1,8 @@
<?php
function eSMAutoload($class)
{
include __DIR__.'/libs/Utils/'.$class.'.php';
}
spl_autoload_register('eSMAutoload');

View File

@ -0,0 +1 @@
deny from all

View File

@ -0,0 +1,73 @@
{
"esm": {
"version": "1.2.9",
"website": "http://freestar.network",
"check_updates": true,
"auto_refresh": 0,
"theme": "blue",
"custom_title": "Your Server"
},
"cpu": {
"enable_temperature": true
},
"disk": {
"show_tmpfs": false,
"show_loop": false,
"show_filesystem": true,
"ignore_mounts": []
},
"ping": {
"hosts": [
"opendmr.net",
"freestar.network",
"brandmeister.network",
"google.com",
"yahoo.com"
]
},
"last_login": {
"enable": false,
"max": 5
},
"services": {
"show_port": false,
"list": [
{
"name": "Master Server",
"host": "localhost",
"port": 4321,
"protocol": "tcp"
},
{
"name": "Dashboard Socket",
"host": "localhost",
"port": 9000,
"protocol": "tcp"
},
{
"name": "Web Server",
"host": "localhost",
"port": 80,
"protocol": "tcp"
},
{
"name": "FTP Server",
"host": "localhost",
"port": 21,
"protocol": "tcp"
},
{
"name": "Database Server",
"host": "localhost",
"port": 3306,
"protocol": "tcp"
},
{
"name": "SSH",
"host": "localhost",
"port": 22,
"protocol": "tcp"
}
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

386
HBMonv2/html/esm/index.php Normal file
View File

@ -0,0 +1,386 @@
<?php
require 'autoload.php';
$Config = new Config();
$update = $Config->checkUpdate();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>eZ Server Status - <?php echo Misc::getHostname(); ?></title>
<link rel="stylesheet" href="web/css/utilities.css" type="text/css">
<link rel="stylesheet" href="web/css/frontend.css" type="text/css">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="js/plugins/jquery-2.1.0.min.js" type="text/javascript"></script>
<script src="js/plugins/jquery.knob.js" type="text/javascript"></script>
<script src="js/esm.js" type="text/javascript"></script>
<script>
$(function(){
$('.gauge').knob({
'fontWeight': 'normal',
'format' : function (value) {
return value + '%';
}
});
$('a.reload').click(function(e){
e.preventDefault();
});
esm.getAll();
<?php if ($Config->get('esm:auto_refresh') > 0): ?>
setInterval(function(){ esm.getAll(); }, <?php echo $Config->get('esm:auto_refresh') * 1000; ?>);
<?php endif; ?>
});
</script>
</head>
<body class="theme-<?php echo $Config->get('esm:theme'); ?>">
<nav role="main">
<div id="appname">
<a href="index.php"><span class="icon-gauge"></span>eSM</a>
<a href="<?php echo $Config->get('esm:website'); ?>"><span class="subtitle">Server Status - v<?php echo $Config->get('esm:version'); ?></span></a>
</div>
<div id="hostname">
<?php
if ($Config->get('esm:custom_title') != '')
echo $Config->get('esm:custom_title');
else
echo Misc::getHostname().' - '.Misc::getLanIP();
?>
</div>
<?php if (!is_null($update)): ?>
<div id="update">
<a href="<?php echo $update['fullpath']; ?>">New version available (<?php echo $update['availableVersion']; ?>) ! Click here to download</a>
</div>
<?php endif; ?>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('all');"><span class="icon-cycle"></span></a></li>
</ul>
</nav>
<div id="main-container">
<div class="box column-left" id="esm-system">
<div class="box-header">
<h1>System</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('system');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table class="firstBold">
<tbody>
<tr>
<td>Hostname</td>
<td id="system-hostname"></td>
</tr>
<tr>
<td>OS</td>
<td id="system-os"></td>
</tr>
<tr>
<td>Kernel version</td>
<td id="system-kernel"></td>
</tr>
<tr>
<td>Uptime</td>
<td id="system-uptime"></td>
</tr>
<tr>
<td>Last boot</td>
<td id="system-last_boot"></td>
</tr>
<tr>
<td>Current user(s)</td>
<td id="system-current_users"></td>
</tr>
<tr>
<td>Server date & time</td>
<td id="system-server_date"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="box column-right" id="esm-load_average">
<div class="box-header">
<h1>Load Average</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('load_average');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content t-center">
<div class="f-left w33p">
<h3>1 min</h3>
<input type="text" class="gauge" id="load-average_1" value="0" data-height="100" data-width="150" data-min="0" data-max="100" data-readOnly="true" data-fgColor="#BED7EB" data-angleOffset="-90" data-angleArc="180">
</div>
<div class="f-left w33p">
<h3>5 min</h3>
<input type="text" class="gauge" id="load-average_5" value="0" data-height="100" data-width="150" data-min="0" data-max="100" data-readOnly="true" data-fgColor="#BED7EB" data-angleOffset="-90" data-angleArc="180">
</div>
<div class="f-left w33p">
<h3>15 min</h3>
<input type="text" class="gauge" id="load-average_15" value="0" data-height="100" data-width="150" data-min="0" data-max="100" data-readOnly="true" data-fgColor="#BED7EB" data-angleOffset="-90" data-angleArc="180">
</div>
<div class="cls"></div>
</div>
</div>
<div class="box column-right" id="esm-cpu">
<div class="box-header">
<h1>CPU</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('cpu');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table class="firstBold">
<tbody>
<tr>
<td>Model</td>
<td id="cpu-model"></td>
</tr>
<tr>
<td>Cores</td>
<td id="cpu-num_cores"></td>
</tr>
<tr>
<td>Speed</td>
<td id="cpu-frequency"></td>
</tr>
<tr>
<td>Cache</td>
<td id="cpu-cache"></td>
</tr>
<tr>
<td>Bogomips</td>
<td id="cpu-bogomips"></td>
</tr>
<?php if ($Config->get('cpu:enable_temperature')): ?>
<tr>
<td>Temperature</td>
<td id="cpu-temp"></td>
</tr>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
<div class="box column-left" id="esm-network">
<div class="box-header">
<h1>Network usage</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('network');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table>
<thead>
<tr>
<th class="w15p">Interface</th>
<th class="w20p">IP</th>
<th>Receive</th>
<th>Transmit</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<div class="cls"></div>
<div class="box" id="esm-disk">
<div class="box-header">
<h1>Disk usage</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('disk');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table>
<thead>
<tr>
<?php if ($Config->get('disk:show_filesystem')): ?>
<th class="w10p filesystem">Filesystem</th>
<?php endif; ?>
<th class="w20p">Mount</th>
<th>Use</th>
<th class="w15p">Free</th>
<th class="w15p">Used</th>
<th class="w15p">Total</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="box column-left" id="esm-memory">
<div class="box-header">
<h1>Memory</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('memory');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table class="firstBold">
<tbody>
<tr>
<td class="w20p">Used %</td>
<td><div class="progressbar-wrap"><div class="progressbar" style="width: 0%;">0%</div></div></td>
</tr>
<tr>
<td class="w20p">Used</td>
<td id="memory-used"></td>
</tr>
<tr>
<td class="w20p">Free</td>
<td id="memory-free"></td>
</tr>
<tr>
<td class="w20p">Total</td>
<td id="memory-total"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="box column-right" id="esm-swap">
<div class="box-header">
<h1>Swap</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('swap');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table class="firstBold">
<tbody>
<tr>
<td class="w20p">Used %</td>
<td><div class="progressbar-wrap"><div class="progressbar" style="width: 0%;">0%</div></div></td>
</tr>
<tr>
<td class="w20p">Used</td>
<td id="swap-used"></td>
</tr>
<tr>
<td class="w20p">Free</td>
<td id="swap-free"></td>
</tr>
<tr>
<td class="w20p">Total</td>
<td id="swap-total"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="cls"></div>
<div class="t-center">
<div class="box column-left column-33" id="esm-last_login">
<div class="box-header">
<h1>Last login</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('last_login');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<?php if ($Config->get('last_login:enable') == true): ?>
<table>
<tbody></tbody>
</table>
<?php else: ?>
<p>Disabled</p>
<?php endif; ?>
</div>
</div>
<div class="box column-right column-33" id="esm-services">
<div class="box-header">
<h1>Services status</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('services');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table>
<tbody></tbody>
</table>
</div>
</div>
<div class="box t-center" style="margin: 0 33%;" id="esm-ping">
<div class="box-header">
<h1>Ping</h1>
<ul>
<li><a href="#" class="reload" onclick="esm.reloadBlock('ping');"><span class="icon-cycle"></span></a></li>
</ul>
</div>
<div class="box-content">
<table>
<tbody></tbody>
</table>
</div>
</div>
</div>
<div class="cls"></div>
</div>
</body>
</html>

371
HBMonv2/html/esm/js/esm.js Normal file
View File

@ -0,0 +1,371 @@
var esm = {};
esm.getSystem = function() {
var module = 'system';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
esm.insertDatas($box, module, data);
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getLoad_average = function() {
var module = 'load_average';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content');
esm.reconfigureGauge($('input#load-average_1', $box), data[0]);
esm.reconfigureGauge($('input#load-average_5', $box), data[1]);
esm.reconfigureGauge($('input#load-average_15', $box), data[2]);
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getCpu = function() {
var module = 'cpu';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
esm.insertDatas($box, module, data);
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getMemory = function() {
var module = 'memory';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
esm.insertDatas($box, module, data);
esm.reloadBlock_spin(module);
// Percent bar
var $progress = $('.progressbar', $box);
$progress
.css('width', data.percent_used+'%')
.html(data.percent_used+'%')
.removeClass('green orange red');
if (data.percent_used <= 50)
$progress.addClass('green');
else if (data.percent_used <= 75)
$progress.addClass('orange');
else
$progress.addClass('red');
}, 'json');
}
esm.getSwap = function() {
var module = 'swap';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
esm.insertDatas($box, module, data);
// Percent bar
var $progress = $('.progressbar', $box);
$progress
.css('width', data.percent_used+'%')
.html(data.percent_used+'%')
.removeClass('green orange red');
if (data.percent_used <= 50)
$progress.addClass('green');
else if (data.percent_used <= 75)
$progress.addClass('orange');
else
$progress.addClass('red');
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getDisk = function() {
var module = 'disk';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
$box.empty();
for (var line in data)
{
var bar_class = '';
if (data[line].percent_used <= 50)
bar_class = 'green';
else if (data[line].percent_used <= 75)
bar_class = 'orange';
else
bar_class = 'red';
var html = '';
html += '<tr>';
if (typeof data[line].filesystem != 'undefined')
html += '<td class="filesystem">'+data[line].filesystem+'</td>';
html += '<td>'+data[line].mount+'</td>';
html += '<td><div class="progressbar-wrap"><div class="progressbar '+bar_class+'" style="width: '+data[line].percent_used+'%;">'+data[line].percent_used+'%</div></div></td>';
html += '<td class="t-center">'+data[line].free+'</td>';
html += '<td class="t-center">'+data[line].used+'</td>';
html += '<td class="t-center">'+data[line].total+'</td>';
html += '</tr>';
$box.append(html);
}
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getLast_login = function() {
var module = 'last_login';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
$box.empty();
for (var line in data)
{
var html = '';
html += '<tr>';
html += '<td>'+data[line].user+'</td>';
html += '<td class="w50p">'+data[line].date+'</td>';
html += '</tr>';
$box.append(html);
}
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getNetwork = function() {
var module = 'network';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
$box.empty();
for (var line in data)
{
var html = '';
html += '<tr>';
html += '<td>'+data[line].interface+'</td>';
html += '<td>'+data[line].ip+'</td>';
html += '<td class="t-center">'+data[line].receive+'</td>';
html += '<td class="t-center">'+data[line].transmit+'</td>';
html += '</tr>';
$box.append(html);
}
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getPing = function() {
var module = 'ping';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
$box.empty();
for (var line in data)
{
var html = '';
html += '<tr>';
html += '<td>'+data[line].host+'</td>';
html += '<td>'+data[line].ping+' ms</td>';
html += '</tr>';
$box.append(html);
}
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getServices = function() {
var module = 'services';
esm.reloadBlock_spin(module);
$.get('libs/'+module+'.php', function(data) {
var $box = $('.box#esm-'+module+' .box-content tbody');
$box.empty();
for (var line in data)
{
var label_color = data[line].status == 1 ? 'success' : 'error';
var label_status = data[line].status == 1 ? 'online' : 'offline';
var html = '';
html += '<tr>';
html += '<td class="w15p"><span class="label '+label_color+'">'+label_status+'</span></td>';
html += '<td>'+data[line].name+'</td>';
html += '<td class="w15p">'+data[line].port+'</td>';
html += '</tr>';
$box.append(html);
}
esm.reloadBlock_spin(module);
}, 'json');
}
esm.getAll = function() {
esm.getSystem();
esm.getCpu();
esm.getLoad_average();
esm.getMemory();
esm.getSwap();
esm.getDisk();
esm.getLast_login();
esm.getNetwork();
esm.getPing();
esm.getServices();
}
esm.reloadBlock = function(block) {
esm.mapping[block]();
}
esm.reloadBlock_spin = function(block) {
var $module = $('.box#esm-'+block);
$('.reload', $module).toggleClass('spin disabled');
$('.box-content', $module).toggleClass('faded');
}
esm.insertDatas = function($box, block, datas) {
for (var item in datas)
{
$('#'+block+'-'+item, $box).html(datas[item]);
}
}
esm.reconfigureGauge = function($gauge, newValue) {
// Change colors according to the percentages
var colors = { green : '#7BCE6C', orange : '#E3BB80', red : '#CF6B6B' };
var color = '';
if (newValue <= 50)
color = colors.green;
else if (newValue <= 75)
color = colors.orange;
else
color = colors.red;
$gauge.trigger('configure', {
'fgColor': color,
'inputColor': color,
'fontWeight': 'normal',
'format' : function (value) {
return value + '%';
}
});
// Change gauge value
$gauge.val(newValue).trigger('change');
}
esm.mapping = {
all: esm.getAll,
system: esm.getSystem,
load_average: esm.getLoad_average,
cpu: esm.getCpu,
memory: esm.getMemory,
swap: esm.getSwap,
disk: esm.getDisk,
last_login: esm.getLast_login,
network: esm.getNetwork,
ping: esm.getPing,
services: esm.getServices
};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,802 @@
/*!jQuery Knob*/
/**
* Downward compatible, touchable dial
*
* Version: 1.2.11
* Requires: jQuery v1.7+
*
* Copyright (c) 2012 Anthony Terrien
* Under MIT License (http://www.opensource.org/licenses/mit-license.php)
*
* Thanks to vor, eskimoblood, spiffistan, FabrizioC
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
/**
* Kontrol library
*/
"use strict";
/**
* Definition of globals and core
*/
var k = {}, // kontrol
max = Math.max,
min = Math.min;
k.c = {};
k.c.d = $(document);
k.c.t = function (e) {
return e.originalEvent.touches.length - 1;
};
/**
* Kontrol Object
*
* Definition of an abstract UI control
*
* Each concrete component must call this one.
* <code>
* k.o.call(this);
* </code>
*/
k.o = function () {
var s = this;
this.o = null; // array of options
this.$ = null; // jQuery wrapped element
this.i = null; // mixed HTMLInputElement or array of HTMLInputElement
this.g = null; // deprecated 2D graphics context for 'pre-rendering'
this.v = null; // value ; mixed array or integer
this.cv = null; // change value ; not commited value
this.x = 0; // canvas x position
this.y = 0; // canvas y position
this.w = 0; // canvas width
this.h = 0; // canvas height
this.$c = null; // jQuery canvas element
this.c = null; // rendered canvas context
this.t = 0; // touches index
this.isInit = false;
this.fgColor = null; // main color
this.pColor = null; // previous color
this.dH = null; // draw hook
this.cH = null; // change hook
this.eH = null; // cancel hook
this.rH = null; // release hook
this.scale = 1; // scale factor
this.relative = false;
this.relativeWidth = false;
this.relativeHeight = false;
this.$div = null; // component div
this.run = function () {
var cf = function (e, conf) {
var k;
for (k in conf) {
s.o[k] = conf[k];
}
s._carve().init();
s._configure()
._draw();
};
if (this.$.data('kontroled')) return;
this.$.data('kontroled', true);
this.extend();
this.o = $.extend({
// Config
min: this.$.data('min') !== undefined ? this.$.data('min') : 0,
max: this.$.data('max') !== undefined ? this.$.data('max') : 100,
stopper: true,
readOnly: this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'),
// UI
cursor: this.$.data('cursor') === true && 30
|| this.$.data('cursor') || 0,
thickness: this.$.data('thickness')
&& Math.max(Math.min(this.$.data('thickness'), 1), 0.01)
|| 0.35,
lineCap: this.$.data('linecap') || 'butt',
width: this.$.data('width') || 200,
height: this.$.data('height') || 200,
displayInput: this.$.data('displayinput') == null || this.$.data('displayinput'),
displayPrevious: this.$.data('displayprevious'),
fgColor: this.$.data('fgcolor') || '#87CEEB',
inputColor: this.$.data('inputcolor'),
font: this.$.data('font') || 'Arial',
fontWeight: this.$.data('font-weight') || 'bold',
inline: false,
step: this.$.data('step') || 1,
rotation: this.$.data('rotation'),
// Hooks
draw: null, // function () {}
change: null, // function (value) {}
cancel: null, // function () {}
release: null, // function (value) {}
// Output formatting, allows to add unit: %, ms ...
format: function(v) {
return v;
},
parse: function (v) {
return parseFloat(v);
}
}, this.o
);
// finalize options
this.o.flip = this.o.rotation === 'anticlockwise' || this.o.rotation === 'acw';
if (!this.o.inputColor) {
this.o.inputColor = this.o.fgColor;
}
// routing value
if (this.$.is('fieldset')) {
// fieldset = array of integer
this.v = {};
this.i = this.$.find('input');
this.i.each(function(k) {
var $this = $(this);
s.i[k] = $this;
s.v[k] = s.o.parse($this.val());
$this.bind(
'change blur',
function () {
var val = {};
val[k] = $this.val();
s.val(s._validate(val));
}
);
});
this.$.find('legend').remove();
} else {
// input = integer
this.i = this.$;
this.v = this.o.parse(this.$.val());
this.v === '' && (this.v = this.o.min);
this.$.bind(
'change blur',
function () {
s.val(s._validate(s.o.parse(s.$.val())));
}
);
}
!this.o.displayInput && this.$.hide();
// adds needed DOM elements (canvas, div)
this.$c = $(document.createElement('canvas')).attr({
width: this.o.width,
height: this.o.height
});
// wraps all elements in a div
// add to DOM before Canvas init is triggered
this.$div = $('<div style="'
+ (this.o.inline ? 'display:inline;' : '')
+ 'width:' + this.o.width + 'px;height:' + this.o.height + 'px;'
+ '"></div>');
this.$.wrap(this.$div).before(this.$c);
this.$div = this.$.parent();
if (typeof G_vmlCanvasManager !== 'undefined') {
G_vmlCanvasManager.initElement(this.$c[0]);
}
this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null;
if (!this.c) {
throw {
name: "CanvasNotSupportedException",
message: "Canvas not supported. Please use excanvas on IE8.0.",
toString: function(){return this.name + ": " + this.message}
}
}
// hdpi support
this.scale = (window.devicePixelRatio || 1) / (
this.c.webkitBackingStorePixelRatio ||
this.c.mozBackingStorePixelRatio ||
this.c.msBackingStorePixelRatio ||
this.c.oBackingStorePixelRatio ||
this.c.backingStorePixelRatio || 1
);
// detects relative width / height
this.relativeWidth = this.o.width % 1 !== 0
&& this.o.width.indexOf('%');
this.relativeHeight = this.o.height % 1 !== 0
&& this.o.height.indexOf('%');
this.relative = this.relativeWidth || this.relativeHeight;
// computes size and carves the component
this._carve();
// prepares props for transaction
if (this.v instanceof Object) {
this.cv = {};
this.copy(this.v, this.cv);
} else {
this.cv = this.v;
}
// binds configure event
this.$
.bind("configure", cf)
.parent()
.bind("configure", cf);
// finalize init
this._listen()
._configure()
._xy()
.init();
this.isInit = true;
this.$.val(this.o.format(this.v));
this._draw();
return this;
};
this._carve = function() {
if (this.relative) {
var w = this.relativeWidth ?
this.$div.parent().width() *
parseInt(this.o.width) / 100
: this.$div.parent().width(),
h = this.relativeHeight ?
this.$div.parent().height() *
parseInt(this.o.height) / 100
: this.$div.parent().height();
// apply relative
this.w = this.h = Math.min(w, h);
} else {
this.w = this.o.width;
this.h = this.o.height;
}
// finalize div
this.$div.css({
'width': this.w + 'px',
'height': this.h + 'px'
});
// finalize canvas with computed width
this.$c.attr({
width: this.w,
height: this.h
});
// scaling
if (this.scale !== 1) {
this.$c[0].width = this.$c[0].width * this.scale;
this.$c[0].height = this.$c[0].height * this.scale;
this.$c.width(this.w);
this.$c.height(this.h);
}
return this;
}
this._draw = function () {
// canvas pre-rendering
var d = true;
s.g = s.c;
s.clear();
s.dH && (d = s.dH());
d !== false && s.draw();
};
this._touch = function (e) {
var touchMove = function (e) {
var v = s.xy2val(
e.originalEvent.touches[s.t].pageX,
e.originalEvent.touches[s.t].pageY
);
if (v == s.cv) return;
if (s.cH && s.cH(v) === false) return;
s.change(s._validate(v));
s._draw();
};
// get touches index
this.t = k.c.t(e);
// First touch
touchMove(e);
// Touch events listeners
k.c.d
.bind("touchmove.k", touchMove)
.bind(
"touchend.k",
function () {
k.c.d.unbind('touchmove.k touchend.k');
s.val(s.cv);
}
);
return this;
};
this._mouse = function (e) {
var mouseMove = function (e) {
var v = s.xy2val(e.pageX, e.pageY);
if (v == s.cv) return;
if (s.cH && (s.cH(v) === false)) return;
s.change(s._validate(v));
s._draw();
};
// First click
mouseMove(e);
// Mouse events listeners
k.c.d
.bind("mousemove.k", mouseMove)
.bind(
// Escape key cancel current change
"keyup.k",
function (e) {
if (e.keyCode === 27) {
k.c.d.unbind("mouseup.k mousemove.k keyup.k");
if (s.eH && s.eH() === false)
return;
s.cancel();
}
}
)
.bind(
"mouseup.k",
function (e) {
k.c.d.unbind('mousemove.k mouseup.k keyup.k');
s.val(s.cv);
}
);
return this;
};
this._xy = function () {
var o = this.$c.offset();
this.x = o.left;
this.y = o.top;
return this;
};
this._listen = function () {
if (!this.o.readOnly) {
this.$c
.bind(
"mousedown",
function (e) {
e.preventDefault();
s._xy()._mouse(e);
}
)
.bind(
"touchstart",
function (e) {
e.preventDefault();
s._xy()._touch(e);
}
);
this.listen();
} else {
this.$.attr('readonly', 'readonly');
}
if (this.relative) {
$(window).resize(function() {
s._carve().init();
s._draw();
});
}
return this;
};
this._configure = function () {
// Hooks
if (this.o.draw) this.dH = this.o.draw;
if (this.o.change) this.cH = this.o.change;
if (this.o.cancel) this.eH = this.o.cancel;
if (this.o.release) this.rH = this.o.release;
if (this.o.displayPrevious) {
this.pColor = this.h2rgba(this.o.fgColor, "0.4");
this.fgColor = this.h2rgba(this.o.fgColor, "0.6");
} else {
this.fgColor = this.o.fgColor;
}
return this;
};
this._clear = function () {
this.$c[0].width = this.$c[0].width;
};
this._validate = function (v) {
var val = (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step;
return Math.round(val * 100) / 100;
};
// Abstract methods
this.listen = function () {}; // on start, one time
this.extend = function () {}; // each time configure triggered
this.init = function () {}; // each time configure triggered
this.change = function (v) {}; // on change
this.val = function (v) {}; // on release
this.xy2val = function (x, y) {}; //
this.draw = function () {}; // on change / on release
this.clear = function () { this._clear(); };
// Utils
this.h2rgba = function (h, a) {
var rgb;
h = h.substring(1,7)
rgb = [
parseInt(h.substring(0,2), 16),
parseInt(h.substring(2,4), 16),
parseInt(h.substring(4,6), 16)
];
return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")";
};
this.copy = function (f, t) {
for (var i in f) {
t[i] = f[i];
}
};
};
/**
* k.Dial
*/
k.Dial = function () {
k.o.call(this);
this.startAngle = null;
this.xy = null;
this.radius = null;
this.lineWidth = null;
this.cursorExt = null;
this.w2 = null;
this.PI2 = 2*Math.PI;
this.extend = function () {
this.o = $.extend({
bgColor: this.$.data('bgcolor') || '#EEEEEE',
angleOffset: this.$.data('angleoffset') || 0,
angleArc: this.$.data('anglearc') || 360,
inline: true
}, this.o);
};
this.val = function (v, triggerRelease) {
if (null != v) {
// reverse format
v = this.o.parse(v);
if (triggerRelease !== false
&& v != this.v
&& this.rH
&& this.rH(v) === false) { return; }
this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v;
this.v = this.cv;
this.$.val(this.o.format(this.v));
this._draw();
} else {
return this.v;
}
};
this.xy2val = function (x, y) {
var a, ret;
a = Math.atan2(
x - (this.x + this.w2),
- (y - this.y - this.w2)
) - this.angleOffset;
if (this.o.flip) {
a = this.angleArc - a - this.PI2;
}
if (this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) {
// if isset angleArc option, set to min if .5 under min
a = 0;
} else if (a < 0) {
a += this.PI2;
}
ret = (a * (this.o.max - this.o.min) / this.angleArc) + this.o.min;
this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min));
return ret;
};
this.listen = function () {
// bind MouseWheel
var s = this, mwTimerStop,
mwTimerRelease,
mw = function (e) {
e.preventDefault();
var ori = e.originalEvent,
deltaX = ori.detail || ori.wheelDeltaX,
deltaY = ori.detail || ori.wheelDeltaY,
v = s._validate(s.o.parse(s.$.val()))
+ (
deltaX > 0 || deltaY > 0
? s.o.step
: deltaX < 0 || deltaY < 0 ? -s.o.step : 0
);
v = max(min(v, s.o.max), s.o.min);
s.val(v, false);
if (s.rH) {
// Handle mousewheel stop
clearTimeout(mwTimerStop);
mwTimerStop = setTimeout(function () {
s.rH(v);
mwTimerStop = null;
}, 100);
// Handle mousewheel releases
if (!mwTimerRelease) {
mwTimerRelease = setTimeout(function () {
if (mwTimerStop)
s.rH(v);
mwTimerRelease = null;
}, 200);
}
}
},
kval,
to,
m = 1,
kv = {
37: -s.o.step,
38: s.o.step,
39: s.o.step,
40: -s.o.step
};
this.$
.bind(
"keydown",
function (e) {
var kc = e.keyCode;
// numpad support
if (kc >= 96 && kc <= 105) {
kc = e.keyCode = kc - 48;
}
kval = parseInt(String.fromCharCode(kc));
if (isNaN(kval)) {
(kc !== 13) // enter
&& kc !== 8 // bs
&& kc !== 9 // tab
&& kc !== 189 // -
&& (kc !== 190
|| s.$.val().match(/\./)) // . allowed once
&& e.preventDefault();
// arrows
if ($.inArray(kc,[37,38,39,40]) > -1) {
e.preventDefault();
var v = s.o.parse(s.$.val()) + kv[kc] * m;
s.o.stopper && (v = max(min(v, s.o.max), s.o.min));
s.change(s._validate(v));
s._draw();
// long time keydown speed-up
to = window.setTimeout(function () {
m *= 2;
}, 30);
}
}
}
)
.bind(
"keyup",
function (e) {
if (isNaN(kval)) {
if (to) {
window.clearTimeout(to);
to = null;
m = 1;
s.val(s.$.val());
}
} else {
// kval postcond
(s.$.val() > s.o.max && s.$.val(s.o.max))
|| (s.$.val() < s.o.min && s.$.val(s.o.min));
}
}
);
this.$c.bind("mousewheel DOMMouseScroll", mw);
this.$.bind("mousewheel DOMMouseScroll", mw)
};
this.init = function () {
if (this.v < this.o.min
|| this.v > this.o.max) { this.v = this.o.min; }
this.$.val(this.v);
this.w2 = this.w / 2;
this.cursorExt = this.o.cursor / 100;
this.xy = this.w2 * this.scale;
this.lineWidth = this.xy * this.o.thickness;
this.lineCap = this.o.lineCap;
this.radius = this.xy - this.lineWidth / 2;
this.o.angleOffset
&& (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset);
this.o.angleArc
&& (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc);
// deg to rad
this.angleOffset = this.o.angleOffset * Math.PI / 180;
this.angleArc = this.o.angleArc * Math.PI / 180;
// compute start and end angles
this.startAngle = 1.5 * Math.PI + this.angleOffset;
this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;
var s = max(
String(Math.abs(this.o.max)).length,
String(Math.abs(this.o.min)).length,
2
) + 2;
this.o.displayInput
&& this.i.css({
'width' : ((this.w / 2 + 4) >> 0) + 'px',
'height' : ((this.w / 3) >> 0) + 'px',
'position' : 'absolute',
'vertical-align' : 'middle',
'margin-top' : ((this.w / 3) >> 0) + 'px',
'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px',
'border' : 0,
'background' : 'none',
'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font,
'text-align' : 'center',
'color' : this.o.inputColor || this.o.fgColor,
'padding' : '0px',
'-webkit-appearance': 'none'
}) || this.i.css({
'width': '0px',
'visibility': 'hidden'
});
};
this.change = function (v) {
this.cv = v;
this.$.val(this.o.format(v));
};
this.angle = function (v) {
return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min);
};
this.arc = function (v) {
var sa, ea;
v = this.angle(v);
if (this.o.flip) {
sa = this.endAngle + 0.00001;
ea = sa - v - 0.00001;
} else {
sa = this.startAngle - 0.00001;
ea = sa + v + 0.00001;
}
this.o.cursor
&& (sa = ea - this.cursorExt)
&& (ea = ea + this.cursorExt);
return {
s: sa,
e: ea,
d: this.o.flip && !this.o.cursor
};
};
this.draw = function () {
var c = this.g, // context
a = this.arc(this.cv), // Arc
pa, // Previous arc
r = 1;
c.lineWidth = this.lineWidth;
c.lineCap = this.lineCap;
if (this.o.bgColor !== "none") {
c.beginPath();
c.strokeStyle = this.o.bgColor;
c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true);
c.stroke();
}
if (this.o.displayPrevious) {
pa = this.arc(this.v);
c.beginPath();
c.strokeStyle = this.pColor;
c.arc(this.xy, this.xy, this.radius, pa.s, pa.e, pa.d);
c.stroke();
r = this.cv == this.v;
}
c.beginPath();
c.strokeStyle = r ? this.o.fgColor : this.fgColor ;
c.arc(this.xy, this.xy, this.radius, a.s, a.e, a.d);
c.stroke();
};
this.cancel = function () {
this.val(this.v);
};
};
$.fn.dial = $.fn.knob = function (o) {
return this.each(
function () {
var d = new k.Dial();
d.o = o;
d.$ = $(this);
d.run();
}
).parent();
};
}));

View File

@ -0,0 +1,138 @@
<?php
class Config
{
public $file = null;
public $config = null;
public function __construct()
{
$this->_checkPHPVersion(5.3);
$this->file = __DIR__.'/../../conf/esm.config.json';
if (!file_exists($this->file))
throw new \Exception('Config file '.basename($this->file).' not found');
$this->_readFile();
}
private function _readFile()
{
$content = file_get_contents($this->file);
$this->config = json_decode(utf8_encode($content), true);
if ($this->config == null && json_last_error() != JSON_ERROR_NONE)
{
throw new \LogicException(sprintf("Failed to parse config file '%s'. Error: '%s'", basename($this->file) , json_last_error_msg()));
}
}
/**
* Returns a specific config variable
* Ex : get('ping:hosts')
*/
public function get($var)
{
$tab = $this->config;
$explode = explode(':', $var);
foreach ($explode as $vartmp)
{
if (isset($tab[$vartmp]))
{
$tab = $tab[$vartmp];
}
}
// return $tab == $this->config ? null : $tab;
return $tab;
}
/**
* Returns all config variables
*/
public function getAll()
{
return $this->config;
}
/**
* Checks the PHP version compared to the required version
*/
private function _checkPHPVersion($min)
{
if (!version_compare(phpversion(), $min, '>='))
throw new \Exception('Your PHP version is too old ! PHP '.$min.' is required.');
return true;
}
/**
* Checks if there is an eSM`Web update available
*/
public function checkUpdate()
{
if ($this->get('esm:check_updates') === false)
return null;
$response = null;
$this_version = $this->get('esm:version');
$update_url = $this->get('esm:website').'/esm-web/update/'.$this_version;
if (!function_exists('curl_version'))
{
$tmp = @file_get_contents($update_url);
$response = json_decode($tmp, true);
}
else
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'eZ Server Monitor `Web',
CURLOPT_URL => $update_url,
));
$response = json_decode(curl_exec($curl), true);
curl_close($curl);
}
if (!is_null($response) && !empty($response))
{
if (is_null($response['error']))
{
return $response['datas'];
}
}
}
}
// PHP 5.5.0
if (!function_exists('json_last_error_msg'))
{
function json_last_error_msg()
{
static $errors = array(
JSON_ERROR_NONE => null,
JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
JSON_ERROR_STATE_MISMATCH => 'Underflow or the modes mismatch',
JSON_ERROR_CTRL_CHAR => 'Unexpected control character found',
JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON',
JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded'
);
$error = json_last_error();
return array_key_exists($error, $errors) ? $errors[$error] : "Unknown error ({$error})";
}
}

View File

@ -0,0 +1,217 @@
<?php
class Misc
{
/**
* Returns human size
*
* @param float $filesize File size
* @param int $precision Number of decimals
* @return string Human size
*/
public static function getSize($filesize, $precision = 2)
{
$units = array('', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y');
foreach ($units as $idUnit => $unit)
{
if ($filesize > 1024)
$filesize /= 1024;
else
break;
}
return round($filesize, $precision).' '.$units[$idUnit].'B';
}
/**
* Returns hostname
*
* @return string Hostname
*/
public static function getHostname()
{
return php_uname('n');
}
/**
* Returns CPU cores number
*
* @return int Number of cores
*/
public static function getCpuCoresNumber()
{
if (!($num_cores = shell_exec('/bin/grep -c ^processor /proc/cpuinfo')))
{
if (!($num_cores = trim(shell_exec('/usr/bin/nproc'))))
{
$num_cores = 1;
}
}
if ((int)$num_cores <= 0)
$num_cores = 1;
return (int)$num_cores;
}
/**
* Returns server IP
*
* @return string Server local IP
*/
public static function getLanIp()
{
return $_SERVER['SERVER_ADDR'];
}
/**
* Seconds to human readable text
* Eg: for 36545627 seconds => 1 year, 57 days, 23 hours and 33 minutes
*
* @return string Text
*/
public static function getHumanTime($seconds)
{
$units = array(
'year' => 365*86400,
'day' => 86400,
'hour' => 3600,
'minute' => 60,
// 'second' => 1,
);
$parts = array();
foreach ($units as $name => $divisor)
{
$div = floor($seconds / $divisor);
if ($div == 0)
continue;
else
if ($div == 1)
$parts[] = $div.' '.$name;
else
$parts[] = $div.' '.$name.'s';
$seconds %= $divisor;
}
$last = array_pop($parts);
if (empty($parts))
return $last;
else
return join(', ', $parts).' and '.$last;
}
/**
* Returns a command that exists in the system among $cmds
*
* @param array $cmds List of commands
* @param string $args List of arguments (optional)
* @param bool $returnWithArgs If true, returns command with the arguments
* @return string Command
*/
public static function whichCommand($cmds, $args = '', $returnWithArgs = true)
{
$return = '';
foreach ($cmds as $cmd)
{
if (trim(shell_exec($cmd.' 2>/dev/null '.$args)) != '')
{
$return = $cmd;
if ($returnWithArgs)
$return .= $args;
break;
}
}
return $return;
}
/**
* Allows to pluralize a word based on a number
* Ex : echo 'mot'.Misc::pluralize(5); ==> prints mots
* Ex : echo 'cheva'.Misc::pluralize(5, 'ux', 'l'); ==> prints chevaux
* Ex : echo 'cheva'.Misc::pluralize(1, 'ux', 'l'); ==> prints cheval
*
* @param int $nb Number
* @param string $plural String for plural word
* @param string $singular String for singular word
* @return string String pluralized
*/
public static function pluralize($nb, $plural = 's', $singular = '')
{
return $nb > 1 ? $plural : $singular;
}
/**
* Checks if a port is open (TCP or UPD)
*
* @param string $host Host to check
* @param int $port Port number
* @param string $protocol tcp or udp
* @param integer $timeout Timeout
* @return bool True if the port is open else false
*/
public static function scanPort($host, $port, $protocol = 'tcp', $timeout = 3)
{
if ($protocol == 'tcp')
{
$handle = @fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$handle)
{
return false;
}
else
{
fclose($handle);
return true;
}
}
elseif ($protocol == 'udp')
{
$handle = @fsockopen('udp://'.$host, $port, $errno, $errstr, $timeout);
socket_set_timeout($handle, $timeout);
$write = fwrite($handle, 'x00');
if ($write === false)
{
return false;
}
else
{
$startTime = time();
$header = fread($handle, 1);
$endTime = time();
$timeDiff = $endTime - $startTime;
fclose($handle);
if ($timeDiff >= $timeout)
return true;
else
return false;
}
}
return false;
}
}

View File

@ -0,0 +1,91 @@
<?php
require '../autoload.php';
$Config = new Config();
// Number of cores
$num_cores = Misc::getCpuCoresNumber();
// CPU info
$model = 'N.A';
$frequency = 'N.A';
$cache = 'N.A';
$bogomips = 'N.A';
$temp = 'N.A';
if ($cpuinfo = shell_exec('cat /proc/cpuinfo'))
{
$processors = preg_split('/\s?\n\s?\n/', trim($cpuinfo));
foreach ($processors as $processor)
{
$details = preg_split('/\n/', $processor, -1, PREG_SPLIT_NO_EMPTY);
foreach ($details as $detail)
{
list($key, $value) = preg_split('/\s*:\s*/', trim($detail));
switch (strtolower($key))
{
case 'model name':
case 'cpu model':
case 'cpu':
case 'processor':
$model = $value;
break;
case 'cpu mhz':
case 'clock':
$frequency = $value.' MHz';
break;
case 'cache size':
case 'l2 cache':
$cache = $value;
break;
case 'bogomips':
$bogomips = $value;
break;
}
}
}
}
if ($frequency == 'N.A')
{
if ($f = shell_exec('cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq'))
{
$f = (int)$f / 1000;
$frequency = $f.' MHz';
}
}
// CPU Temp
if ($Config->get('cpu:enable_temperature'))
{
if (file_exists('/usr/bin/sensors') && exec('/usr/bin/sensors | grep -E "^(CPU Temp|Core 0)" | cut -d \'+\' -f2 | cut -d \'.\' -f1', $t))
{
if (isset($t[0]))
$temp = $t[0].' °C';
}
else
{
if (exec('cat /sys/class/thermal/thermal_zone0/temp', $t))
{
$temp = round($t[0] / 1000).' °C';
}
}
}
$datas = array(
'model' => $model,
'num_cores' => $num_cores,
'frequency' => $frequency,
'cache' => $cache,
'bogomips' => $bogomips,
'temp' => $temp,
);
echo json_encode($datas);

View File

@ -0,0 +1,66 @@
<?php
require '../autoload.php';
$Config = new Config();
$datas = array();
# if there are more than 7 awk's colums it means the mount point name contains spaces
# so consider the first colums as a unique colum and the last 6 as real colums
if (!(exec('/bin/df -T -P | tail -n +2 | awk \'{ if (NF > 7) { for (i=1; i<NF-6; i++) { printf("%s ", $i); } for (i=NF-6; i<NF; i++) { printf("%s,", $i); } print $NF; } else { print $1","$2","$3","$4","$5","$6","$7; } }\'', $df)))
{
$datas[] = array(
'total' => 'N.A',
'used' => 'N.A',
'free' => 'N.A',
'percent_used' => 0,
'mount' => 'N.A',
'filesystem' => 'N.A',
);
}
else
{
$mounted_points = array();
$key = 0;
foreach ($df as $mounted)
{
list($filesystem, $type, $total, $used, $free, $percent, $mount) = explode(',', $mounted);
if ($percent > 100)
$percent = 100;
if (strpos($type, 'tmpfs') !== false && $Config->get('disk:show_tmpfs') === false)
continue;
if (strpos($filesystem, '/dev/loop') !== false && $Config->get('disk:show_loop') === false)
continue;
foreach ($Config->get('disk:ignore_mounts') as $to_ignore)
{
if ($mount === $to_ignore)
continue 2;
}
if (!in_array($mount, $mounted_points))
{
$mounted_points[] = trim($mount);
$datas[$key] = array(
'total' => Misc::getSize($total * 1024),
'used' => Misc::getSize($used * 1024),
'free' => Misc::getSize($free * 1024),
'percent_used' => trim($percent, '%'),
'mount' => $mount,
);
if ($Config->get('disk:show_filesystem'))
$datas[$key]['filesystem'] = $filesystem;
}
$key++;
}
}
echo json_encode($datas);

View File

@ -0,0 +1,33 @@
<?php
require '../autoload.php';
$Config = new Config();
$datas = array();
if ($Config->get('last_login:enable'))
{
if (!(exec('/usr/bin/lastlog --time 365 | awk \'{ printf $1";"; for (i=4; i<NF; i++) printf $i" "; print $NF; }\'', $users)))
{
$datas[] = array(
'user' => 'N.A',
'date' => 'N.A',
);
}
else
{
$max = $Config->get('last_login:max');
for ($i = 1; $i < count($users) && $i <= $max; $i++)
{
list($user, $date) = explode(';', $users[$i]);
$datas[] = array(
'user' => $user,
'date' => $date,
);
}
}
}
echo json_encode($datas);

View File

@ -0,0 +1,30 @@
<?php
require '../autoload.php';
if (!($load_tmp = shell_exec('cat /proc/loadavg | awk \'{print $1","$2","$3}\'')))
{
$load = array(0, 0, 0);
}
else
{
// Number of cores
$cores = Misc::getCpuCoresNumber();
$load_exp = explode(',', $load_tmp);
$load = array_map(
function ($value, $cores) {
$v = (int)((float)$value * 100 / $cores);
if ($v > 100)
$v = 100;
return $v;
},
$load_exp,
array_fill(0, 3, $cores)
);
}
$datas = $load;
echo json_encode($datas);

View File

@ -0,0 +1,38 @@
<?php
require '../autoload.php';
$free = 0;
if (shell_exec('cat /proc/meminfo'))
{
$free = shell_exec('grep MemFree /proc/meminfo | awk \'{print $2}\'');
$buffers = shell_exec('grep Buffers /proc/meminfo | awk \'{print $2}\'');
$cached = shell_exec('grep Cached /proc/meminfo | awk \'{print $2}\'');
$free = (int)$free + (int)$buffers + (int)$cached;
}
// Total
if (!($total = shell_exec('grep MemTotal /proc/meminfo | awk \'{print $2}\'')))
{
$total = 0;
}
$total = (int)$total;
// Used
$used = $total - $free;
// Percent used
$percent_used = 0;
if ($total > 0)
$percent_used = 100 - (round($free / $total * 100));
$datas = array(
'used' => Misc::getSize($used * 1024),
'free' => Misc::getSize($free * 1024),
'total' => Misc::getSize($total * 1024),
'percent_used' => $percent_used,
);
echo json_encode($datas);

View File

@ -0,0 +1,115 @@
<?php
require '../autoload.php';
$datas = array();
$network = array();
// Possible commands for ifconfig and ip
$commands = array(
'ifconfig' => array('ifconfig', '/sbin/ifconfig', '/usr/bin/ifconfig', '/usr/sbin/ifconfig'),
'ip' => array('ip', '/bin/ip', '/sbin/ip', '/usr/bin/ip', '/usr/sbin/ip'),
);
// Returns command line for retreive interfaces
function getInterfacesCommand($commands)
{
$ifconfig = Misc::whichCommand($commands['ifconfig'], ' | awk -F \'[/ |: ]\' \'{print $1}\' | sed -e \'/^$/d\'');
if (!empty($ifconfig))
{
return $ifconfig;
}
else
{
$ip_cmd = Misc::whichCommand($commands['ip'], ' -V', false);
if (!empty($ip_cmd))
{
return $ip_cmd.' -oneline link show | awk \'{print $2}\' | sed "s/://"';
}
else
{
return null;
}
}
}
// Returns command line for retreive IP address from interface name
function getIpCommand($commands, $interface)
{
$ifconfig = Misc::whichCommand($commands['ifconfig'], ' '.$interface.' | awk \'/inet / {print $2}\' | cut -d \':\' -f2');
if (!empty($ifconfig))
{
return $ifconfig;
}
else
{
$ip_cmd = Misc::whichCommand($commands['ip'], ' -V', false);
if (!empty($ip_cmd))
{
return 'for family in inet inet6; do '.
$ip_cmd.' -oneline -family $family addr show '.$interface.' | grep -v fe80 | awk \'{print $4}\' | sed "s/\/.*//"; ' .
'done';
}
else
{
return null;
}
}
}
$getInterfaces_cmd = getInterfacesCommand($commands);
if (is_null($getInterfaces_cmd) || !(exec($getInterfaces_cmd, $getInterfaces)))
{
$datas[] = array('interface' => 'N.A', 'ip' => 'N.A');
}
else
{
foreach ($getInterfaces as $name)
{
$ip = null;
$getIp_cmd = getIpCommand($commands, $name);
if (is_null($getIp_cmd) || !(exec($getIp_cmd, $ip)))
{
$network[] = array(
'name' => $name,
'ip' => 'N.A',
);
}
else
{
if (!isset($ip[0]))
$ip[0] = '';
$network[] = array(
'name' => $name,
'ip' => $ip[0],
);
}
}
foreach ($network as $interface)
{
// Get transmit and receive datas by interface
exec('cat /sys/class/net/'.$interface['name'].'/statistics/tx_bytes', $getBandwidth_tx);
exec('cat /sys/class/net/'.$interface['name'].'/statistics/rx_bytes', $getBandwidth_rx);
$datas[] = array(
'interface' => $interface['name'],
'ip' => $interface['ip'],
'transmit' => Misc::getSize($getBandwidth_tx[0]),
'receive' => Misc::getSize($getBandwidth_rx[0]),
);
unset($getBandwidth_tx, $getBandwidth_rx);
}
}
echo json_encode($datas);

View File

@ -0,0 +1,30 @@
<?php
require '../autoload.php';
$Config = new Config();
$datas = array();
if (count($Config->get('ping:hosts')) > 0)
$hosts = $Config->get('ping:hosts');
else
$hosts = array('google.com', 'wikipedia.org');
foreach ($hosts as $host)
{
exec('/bin/ping -qc 1 '.$host.' | awk -F/ \'/^(rtt|round-trip)/ { print $5 }\'', $result);
if (!isset($result[0]))
{
$result[0] = 0;
}
$datas[] = array(
'host' => $host,
'ping' => $result[0],
);
unset($result);
}
echo json_encode($datas);

View File

@ -0,0 +1,35 @@
<?php
require '../autoload.php';
$Config = new Config();
$datas = array();
$available_protocols = array('tcp', 'udp');
$show_port = $Config->get('services:show_port');
if (count($Config->get('services:list')) > 0)
{
foreach ($Config->get('services:list') as $service)
{
$host = $service['host'];
$port = $service['port'];
$name = $service['name'];
$protocol = isset($service['protocol']) && in_array($service['protocol'], $available_protocols) ? $service['protocol'] : 'tcp';
if (Misc::scanPort($host, $port, $protocol))
$status = 1;
else
$status = 0;
$datas[] = array(
'port' => $show_port === true ? $port : '',
'name' => $name,
'status' => $status,
);
}
}
echo json_encode($datas);

View File

@ -0,0 +1,34 @@
<?php
require '../autoload.php';
// Free
if (!($free = shell_exec('grep SwapFree /proc/meminfo | awk \'{print $2}\'')))
{
$free = 0;
}
$free = (int)$free;
// Total
if (!($total = shell_exec('grep SwapTotal /proc/meminfo | awk \'{print $2}\'')))
{
$total = 0;
}
$total = (int)$total;
// Used
$used = $total - $free;
// Percent used
$percent_used = 0;
if ($total > 0)
$percent_used = 100 - (round($free / $total * 100));
$datas = array(
'used' => Misc::getSize($used * 1024),
'free' => Misc::getSize($free * 1024),
'total' => Misc::getSize($total * 1024),
'percent_used' => $percent_used,
);
echo json_encode($datas);

View File

@ -0,0 +1,75 @@
<?php
require '../autoload.php';
date_default_timezone_set(@date_default_timezone_get());
// Hostname
$hostname = php_uname('n');
// OS
if (!file_exists('/usr/bin/lsb_release') || !($os = shell_exec('/usr/bin/lsb_release -ds | cut -d= -f2 | tr -d \'"\'')))
{
if (!file_exists('/etc/system-release') || !($os = shell_exec('cat /etc/system-release | cut -d= -f2 | tr -d \'"\'')))
{
if (!file_exists('/etc/os-release') || !($os = shell_exec('cat /etc/os-release | grep PRETTY_NAME | tail -n 1 | cut -d= -f2 | tr -d \'"\'')))
{
if (!($os = shell_exec('find /etc/*-release -type f -exec cat {} \; | grep PRETTY_NAME | tail -n 1 | cut -d= -f2 | tr -d \'"\'')))
{
$os = 'N.A';
}
}
}
}
$os = trim($os, '"');
$os = str_replace("\n", '', $os);
// Kernel
if (!($kernel = shell_exec('/bin/uname -r')))
{
$kernel = 'N.A';
}
// Uptime
if (!($totalSeconds = shell_exec('/usr/bin/cut -d. -f1 /proc/uptime')))
{
$uptime = 'N.A';
}
else
{
$uptime = Misc::getHumanTime((int)$totalSeconds);
}
// Last boot
if (!($upt_tmp = shell_exec('cat /proc/uptime')))
{
$last_boot = 'N.A';
}
else
{
$upt = explode(' ', $upt_tmp);
$last_boot = date('Y-m-d H:i:s', time() - intval($upt[0]));
}
// Current users
if (!($current_users = shell_exec('who -u | awk \'{ print $1 }\' | wc -l')))
{
$current_users = 'N.A';
}
// Server datetime
if (!($server_date = shell_exec('/bin/date')))
{
$server_date = date('Y-m-d H:i:s');
}
$datas = array(
'hostname' => $hostname,
'os' => $os,
'kernel' => $kernel,
'uptime' => $uptime,
'last_boot' => $last_boot,
'current_users' => $current_users,
'server_date' => $server_date,
);
echo json_encode($datas);

View File

@ -0,0 +1,48 @@
@import "_mixins";
/* Navbar */
$navbar-height: 60px;
/* Layout */
$layout-bg-color: #fff;
/* Default colors */
$main-color: #99AEC4;
$text-color: #4D5157;
/* Themes ! */
$themes: (
blue: (
main-color: #99AEC4
),
aqua: (
main-color: #75C8C7
),
green: (
main-color: #9DC499
),
light-green: (
main-color: #ADD8C7
),
orange: (
main-color: #E8B184
),
red: (
main-color: #B36973
),
light-red: (
main-color: #E89D9D
),
purple: (
main-color: #AA8ECC
),
slate: (
main-color: #7C8998
),
light: (
main-color: #C4C4C4
),
dark: (
main-color: #747474
)
);

View File

@ -0,0 +1,27 @@
@import "_config.frontend";
/* Labels */
$label: (
types: (
default: #bfbfbf,
success: #46a546,
warning: #f89406,
important: #c43c35,
error: #c43c35,
notice: #62cffc
),
border-radius: 3px,
font-size: 10px
);
/* Classic box */
$classic-box: (
color: darken($main-color, 7%),
background: #fff,
border-color: lighten($main-color, 16%),
header: (
height: 35px,
color: #fff,
font-size: 14px
)
);

View File

@ -0,0 +1,43 @@
@mixin debug($color: red) {
border: 1px solid $color;
}
@mixin clearfix {
zoom:1;
&:before, &:after {
content: "\0020";
display: block;
height: 0;
overflow: hidden;
}
&:after {
clear: both;
}
}
@function map-get-deep($map, $keys...) {
@if length($keys) == 1 {
$keys: nth($keys, 1);
}
$warn: "#{nth($keys, 1)}";
$length: length($keys);
$get: map-get($map, nth($keys, 1));
@if $length > 1 {
@for $i from 2 through $length {
@if $get != null and type-of($get) == 'map' {
$warn: $warn + "->#{nth($keys, $i)}";
$get: map-get($get, nth($keys, $i));
@if $get == null {
@return map-get-deep-warning($warn, $get);
}
}
@else {
@return map-get-deep-warning($warn, $get);
}
}
}
@return $get;
}

View File

@ -0,0 +1,351 @@
@charset "UTF-8";
@import "compass";
@import "_config.frontend";
html {
height: 100%;
}
body {
font-size: 14px;
font-family: OpenSans-Light, Verdana, sans-serif, Arial;
margin: 0 auto;
color: $text-color;
background-color: $layout-bg-color;
}
a {
color: $main-color;
&:hover {
color: lighten($main-color, 5%);
text-decoration: none;
}
}
::-moz-selection {
background-color: darken($main-color, 10%);
color: lighten($main-color, 30%);
}
::selection {
background-color: darken($main-color, 10%);
color: lighten($main-color, 30%);
}
/* --------------------- */
/* == NAVBAR */
/* --------------------- */
nav[role="main"] {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: $main-color;
height: $navbar-height;
width: 100%;
padding-left: 5px;
color: #fff;
font-size: 16px;
text-align: center;
z-index: 2;
#appname {
float: left;
width: 150px;
text-align: left;
a {
color: #fff;
text-decoration: none;
&:first-child {
font-size: 24px;
span[class^="icon-"] {
font-size: 30px;
margin-right: 10px;
}
}
&:last-child {
display: block;
font-size: 11px;
font-style: italic;
}
}
}
#hostname {
float: left;
margin-left: 110px;
line-height: $navbar-height;
a {
color: #fff;
text-decoration: none;
}
}
#update {
float: left;
margin-left: 100px;
line-height: $navbar-height;
font-size: 13px;
a {
color: #fff;
}
}
> ul {
text-align: right;
list-style-type: none;
> li {
display: inline-block;
> a {
display: inline-block;
padding: (($navbar-height / 2) - 17px) 15px;
color: #fff;
text-decoration: none;
&:hover {
background: lighten($main-color, 20%);
}
> span[class^="icon-"] {
font-size: 30px;
}
}
}
}
}
/* ------------------- */
/* == MAIN */
/* ------------------- */
#main-container {
overflow: auto;
margin-top: $navbar-height;
background-color: $layout-bg-color;
padding: 20px 25px;
}
/* --------------------- */
/* == Tables */
/* --------------------- */
table:not(.no-style) {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
font-size: 13px;
tr {
border-bottom: 1px solid #ebebeb;
border-top: 1px solid #fff;
}
thead tr {
border-top: none;
}
tbody tr:last-child {
border-bottom: none;
}
tbody tr:nth-child(odd) {
background: #f2f2f2;
}
tbody tr td, thead tr th {
padding: 6px 8px;
position: relative;
text-align: left;
}
tbody tr td:last-child, thead tr th:last-child {
border-right: none;
}
tbody tr td:first-child, thead tr th:first-child {
border-left: none;
}
thead {
color: #898989;
font-size: 13px;
font-weight: bold;
tr th {
text-align: center;
}
}
tbody tr:hover {
background: lighten($main-color, 25%);
}
}
table.firstBold tbody tr td:first-child {
font-weight: bold;
color: #7e848c;
}
/* --------------------------- */
/* == Progress bar */
/* --------------------------- */
.progressbar-wrap {
width: 100%;
background-color: rgba($main-color, 0.2);
.progressbar {
text-indent: 5px;
&.green { background-color: #7BCE6C; }
&.orange { background-color: #E3BB80; }
&.red { background-color: #CF6B6B; }
}
}
/* --------------------------- */
/* == Reload style */
/* --------------------------- */
.reload.spin {
@include animation(spin 2000ms infinite linear);
}
@-ms-keyframes spin {
from { -ms-transform: rotate(0deg); }
to { -ms-transform: rotate(360deg); }
}
@-moz-keyframes spin {
from { -moz-transform: rotate(0deg); }
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
from {
transform:rotate(0deg);
}
to {
transform:rotate(360deg);
}
}
/* --------------------------- */
/* == Load Average */
/* --------------------------- */
.box#esm-load_average {
h3 {
font-weight: normal;
}
}
/* ------------------------- */
/* == ! THEMES ! */
/* ------------------------- */
@each $name, $datas in $themes {
body.theme-#{""+$name+""} {
a {
color: map-get($datas, main-color);
&:hover {
color: lighten(map-get($datas, main-color), 5%);
text-decoration: none;
}
}
::-moz-selection {
background-color: darken(map-get($datas, main-color), 10%);
color: lighten(map-get($datas, main-color), 30%);
}
::selection {
background-color: darken(map-get($datas, main-color), 10%);
color: lighten(map-get($datas, main-color), 30%);
}
nav[role="main"] {
background-color: map-get($datas, main-color);
> ul > li > a {
&:hover {
background: lighten(map-get($datas, main-color), 15%);
}
}
}
table:not(.no-style) {
tbody tr:hover {
background: lighten(map-get($datas, main-color), 25%);
}
}
.progressbar-wrap {
background-color: rgba(map-get($datas, main-color), 0.2);
}
}
}
/* ------------------------- */
/* == Responsive */
/* ------------------------- */
@media only screen and (max-width: 1024px) {
.column-left, .column-right {
float: none;
width: 100%;
}
.box {
width: 100%;
margin-right: 0 !important;
margin-left: 0 !important;
}
}
@media only screen and (max-width: 550px) {
nav[role="main"] {
#appname {
width: 135px;
}
#hostname {
margin-left: 0;
font-size: 12px;
}
#update {
margin-left: 0;
font-size: 9px;
position: absolute;
top: 47px;
line-height: inherit;
}
ul > li {
> a {
padding: 12px 0;
}
}
}
.box#esm-load_average {
div {
width: 100%;
float: none;
}
}
.box#esm-disk {
.filesystem {
display: none;
}
}
}

View File

@ -0,0 +1,111 @@
@charset "UTF-8";
@import "compass";
@import "_config.libs";
/* -------------------- */
/* == Fonts */
/* -------------------- */
@include font-face('OpenSans-Light', font-files('OpenSans-Light.ttf', 'OpenSans-Light.svg', 'OpenSans-Light.woff'), 'OpenSans-Light.eot');
@include font-face('Entypo', font-files('entypo.ttf', 'entypo.eot', 'entypo.svg', 'entypo.woff'));
@import "../libs/_icons.entypo";
/* ------------------- */
/* == Misc */
/* ------------------- */
* { padding: 0; margin: 0; }
*:focus { outline: none; }
*, *:before, *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.cls:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
img { border: 0; }
.debug { border: 1px solid red; }
.text_left, .t-left { text-align: left !important; }
.text_right, .t-right { text-align: right !important; }
.text_center, .t-center { text-align: center !important; }
.pfixed { position: fixed !important; }
.f-left { float: left; }
.f-right { float: right; }
.column-left {
float: left;
width: 49%;
}
.column-right {
float: right;
width: 49%;
}
.column-33 {
width: 32%;
}
.column-66 {
width: 66%;
}
/*pre {
background-color: #fafafa;
border: 1px solid #ccc;
padding: 5px;
color: #666;
}*/
.w10p { width: 10%; }
.w15p { width: 15%; }
.w20p { width: 20%; }
.w33p { width: 33%; }
.w35p { width: 35%; }
.w50p { width: 50%; }
.w100p { width: 100%; }
/* ------------------------ */
/* == Scrollbar */
/* ------------------------ */
::-webkit-scrollbar-track {
box-shadow: inset 1px 0px 3px rgba(0,0,0,0.2);
background-color: #F5F5F5;
}
::-webkit-scrollbar-track:hover {
background-color: #EFEFEF;
}
::-webkit-scrollbar {
width: 8px;
background-color: #F5F5F5;
}
::-webkit-scrollbar-thumb {
background-color: #959595;
}
::-webkit-scrollbar-thumb:hover {
background-color: #6B6B6B;
}
::-webkit-scrollbar-thumb:active {
background-color: #555;
}
/* --------------------- */
/* == Labels */
/* --------------------- */
@import "../libs/_labels";
/* -------------------------- */
/* == Classic box */
/* -------------------------- */
@import "../libs/_classic-box";

View File

@ -0,0 +1,13 @@
environment = :production
output_style = (environment == :production) ? :compressed : :expanded
http_path = "/"
css_dir = "."
sass_dir = "_src"
images_dir = "../images"
fonts_dir = "./fonts"
javascripts_dir = "../js"
relative_assets = true
line_comments = false
asset_cache_buster :none

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,262 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
<glyph unicode="&#xe600;" d="M574.925 397.875c-81.050-81.101-174.95-158.618-212.070-121.446-53.146 53.094-85.862 99.379-203.008 5.274s-27.187-156.877 24.32-208.384c59.392-59.341 280.781-3.123 499.661 215.706 218.778 218.829 275.098 440.269 215.654 499.661-51.456 51.507-114.176 141.414-208.333 24.32s-47.872-149.862 5.274-203.008c37.018-37.171-40.448-131.021-121.498-212.122z" />
<glyph unicode="&#xe601;" d="M710.502 972.8h-397.005c-57.498 0-104.499-47.002-104.499-104.499v-815.002c0-57.446 47.002-104.499 104.499-104.499h397.005c57.498 0 104.499 47.053 104.499 104.499v815.002c0 57.498-47.002 104.499-104.499 104.499zM512-9.421c-40.346 0-73.114 23.398-73.114 52.275s32.768 52.275 73.114 52.275c40.397 0 73.114-23.398 73.114-52.275s-32.717-52.275-73.114-52.275zM731.392 147.354h-438.835v689.613h438.835v-689.613z" />
<glyph unicode="&#xe602;" d="M788.582 235.366l-134.451 385.843c-37.018 106.189-151.91 164.864-260.762 135.885l-101.171 196.301c-9.165 17.766-30.618 24.576-47.974 15.206-17.357-9.421-24.013-31.437-14.848-49.203l98.765-191.642c-78.694-52.224-119.603-151.194-93.696-244.378l109.568-394.035c30.822-110.746 157.696-167.168 285.235-128.154 125.901 44.186 197.171 165.734 159.334 274.176zM455.629 515.942c-37.325-12.237-77.363 8.806-89.344 47.155-11.981 38.298 8.602 79.309 45.978 91.546 37.376 12.288 77.414-8.806 89.395-47.104s-8.602-79.309-46.029-91.597z" />
<glyph unicode="&#xe603;" d="M435.2 921.6h-46.029c-11.315 0-20.531-9.216-20.531-20.48v-194.56h-181.043c-8.448 0-18.944-1.946-28.979-5.018-10.138-3.123-19.814-7.424-26.726-12.134l-121.6-83.456c-6.861-4.71-10.291-10.906-10.291-17.152s3.43-12.442 10.291-17.152l121.6-83.456c6.912-4.71 16.589-9.011 26.726-12.134 10.035-3.072 20.531-5.018 28.979-5.018h181.043v-450.56c0-11.315 9.216-20.48 20.48-20.48h46.080c11.315 0 20.48 9.216 20.48 20.48v880.64c0 11.264-9.165 20.48-20.48 20.48zM1013.709 708.301l-121.6 83.456c-6.861 4.71-16.538 9.011-26.675 12.134-10.086 3.123-20.582 5.069-29.030 5.069h-350.003l41.011-235.52h308.992c8.448 0 18.944 1.946 29.030 5.018s19.814 7.424 26.675 12.083l121.6 83.456c6.912 4.762 10.291 10.957 10.291 17.203s-3.379 12.442-10.291 17.101z" />
<glyph unicode="&#xe604;" d="M81.613 702.157c24.986-13.466 371.149-199.373 384.051-206.285 12.851-6.912 29.542-10.24 46.336-10.24 16.845 0 33.536 3.328 46.387 10.291 12.902 6.912 359.014 192.819 384 206.285 25.037 13.414 48.691 55.552 2.765 55.552h-866.253c-45.926 0-22.323-42.138 2.714-55.603zM952.986 599.757c-28.416-14.848-377.19-197.171-394.598-206.285s-29.542-10.291-46.387-10.291c-16.794 0-28.928 1.178-46.336 10.291s-366.234 191.488-394.598 206.285c-20.019 10.445-19.866-1.792-19.866-11.213 0-9.421 0-375.552 0-375.552 0-21.504 28.621-49.152 50.79-49.152h820.070c22.221 0 50.739 27.648 50.739 49.101 0 0 0 366.131 0 375.552 0 9.472 0.205 21.709-19.814 11.264z" />
<glyph unicode="&#xe605;" d="M957.133 837.888c-17.562-6.195-886.835-312.474-903.936-318.515-14.541-5.12-17.818-17.664-0.512-24.525 20.531-8.243 194.355-77.875 194.355-77.875h-0.051l115.251-46.182c0 0 554.854 407.501 562.381 412.979 7.526 5.53 16.282-4.864 10.803-10.803-5.478-5.99-402.995-435.917-402.995-435.917-0.051 0-0.051 0-0.051 0l-23.142-25.805 30.669-16.486c0 0 238.080-128.154 255.027-137.318 14.848-7.987 34.202-1.331 38.502 17.152 5.069 21.811 145.664 627.814 148.787 641.229 4.096 17.562-7.475 28.262-25.088 22.067zM361.216 94.106c0-12.646 7.117-16.128 16.947-7.219 12.8 11.674 145.869 131.072 145.869 131.072l-162.816 84.275v-208.128z" />
<glyph unicode="&#xe606;" d="M847.923 796.774c-73.83 73.882-129.28 62.822-129.28 62.822l-554.291-554.291-51.712-243.866 243.866 51.712 554.24 554.24c0 0 11.11 55.45-62.822 129.382zM341.965 142.49l-83.098-17.92c-8.038 15.002-17.715 30.003-35.379 47.718-17.664 17.664-32.717 27.29-47.718 35.328l17.971 83.149 24.013 24.013c0 0 45.261-0.922 96.307-51.968 51.098-51.098 52.019-96.358 52.019-96.358l-24.115-23.962z" />
<glyph unicode="&#xe608;" d="M254.003-51.2c-68.403 0-132.454 28.979-178.739 75.315-89.6 89.6-114.637 246.067 11.008 371.712 73.677 73.574 368.589 368.486 515.789 515.686 52.275 52.275 118.733 72.448 182.426 55.347 62.515-16.691 113.818-67.942 130.56-130.509 17.050-63.693-3.174-130.202-55.398-182.426l-493.158-493.21c-28.16-28.16-59.955-44.851-91.955-48.179-31.642-3.328-61.85 6.861-83.046 28.006-38.4 38.349-43.827 110.541 19.968 174.285l346.368 346.47c14.234 14.182 37.325 14.182 51.558 0 14.234-14.234 14.234-37.325 0-51.558l-346.419-346.419c-29.952-29.952-32.717-58.573-19.968-71.322 5.581-5.53 14.080-8.090 23.859-7.066 15.002 1.587 32.102 11.315 48.077 27.29l493.158 493.158c33.843 33.843 46.797 73.626 36.506 112.077-10.138 37.837-41.165 68.864-79.002 79.002-38.451 10.291-78.234-2.714-112.077-36.506-147.149-147.2-442.061-442.112-515.686-515.686-96.051-96.051-73.062-206.592-11.059-268.646 62.054-62.003 172.595-85.043 268.698 11.059l515.738 515.686c14.182 14.234 37.325 14.234 51.507 0 14.234-14.234 14.234-37.325 0-51.507l-515.738-515.738c-60.774-60.826-128.768-86.323-192.973-86.323z" />
<glyph unicode="&#xe609;" d="M990.157 484.198c-20.122 21.35-116.941 116.326-161.229 159.693-13.619 13.261-33.075 21.709-53.402 21.709-20.275 0-263.475 0-263.475 0s-243.2 0-263.526 0-39.834-8.499-53.402-21.76c-44.288-43.366-141.21-138.342-161.28-159.693-25.037-26.624-38.758-47.872-32.205-74.189l28.723-157.389c6.502-26.317 35.328-47.872 64.051-47.872h835.174c28.723 0 57.549 21.555 64.051 47.872l28.774 157.389c6.502 26.317-7.219 47.616-32.256 74.24zM719.258 450.099c-5.222 0-9.882-2.662-12.237-6.81l-41.83-104.243h-306.33l-41.83 104.243c-2.304 4.147-7.066 6.81-12.237 6.81h-181.504l104.499 118.221h568.525l104.448-118.221h-181.504z" />
<glyph unicode="&#xe60a;" d="M972.8 112.64c0 0-102.4 498.33-551.68 498.33v197.99l-369.92-330.496 369.92-342.579v223.13c243.866 0 424.55-21.606 551.68-246.374z" />
<glyph unicode="&#xe60b;" d="M369.92 671.744v137.216l-369.92-330.496 369.92-342.579v142.285l-216.32 200.294 216.32 193.28zM625.92 611.021v197.939l-369.92-330.496 369.92-342.579v223.13c168.602 0 270.95-21.606 398.080-246.374 0 0-18.79 498.381-398.080 498.381z" />
<glyph unicode="&#xe60c;" d="M602.88 359.014v-223.078l369.92 342.528-369.92 330.496v-197.939c-449.28 0-551.68-498.381-551.68-498.381 127.13 224.768 307.814 246.374 551.68 246.374z" />
<glyph unicode="&#xe60d;" d="M758.784 233.062c-126.208 45.978-166.554 84.787-166.554 167.885 0 49.869 38.554 33.587 55.45 124.928 7.014 37.888 41.062 0.614 47.616 87.091 0 34.458-18.586 43.059-18.586 43.059s9.472 51.046 13.158 90.266c4.506 48.947-28.262 175.309-203.469 175.309-175.155 0-208.026-126.362-203.418-175.309 3.686-39.219 13.158-90.266 13.158-90.266s-18.637-8.55-18.637-43.059c6.502-86.477 40.55-49.203 47.565-87.091 16.947-91.341 55.501-75.059 55.501-124.928 0-83.098-40.346-121.907-166.554-167.885-126.669-46.080-208.896-93.133-208.896-125.235 0-32.051 0-107.776 0-107.776h962.56c0 0 0 75.725 0 107.776s-82.278 79.104-208.896 125.235z" />
<glyph unicode="&#xe60e;" d="M1024 10.24c0 0-1.997 193.894-13.875 213.965-17.664 29.952-58.675 50.483-134.861 82.33-75.93 31.744-100.25 58.573-100.25 115.866 0 34.458 23.194 23.194 33.382 86.221 4.198 26.163 24.678 0.461 28.621 60.109 0 23.808-11.162 29.747-11.162 29.747s5.632 35.226 7.885 62.31c2.765 33.792-17.050 120.986-122.47 120.986s-125.133-87.245-122.419-120.986c2.202-27.085 7.834-62.31 7.834-62.31s-11.162-5.939-11.162-29.747c3.942-59.699 24.422-33.997 28.672-60.109 10.138-63.027 33.331-51.763 33.331-86.221 0-38.963-11.264-63.846-42.342-85.709 165.888-83.046 188.16-99.994 188.16-174.234v-152.218h230.656zM523.469 277.76c-101.325 42.291-133.632 78.029-133.632 154.47 0 45.875 30.925 30.925 44.493 114.995 5.581 34.867 32.973 0.563 38.144 80.128 0 31.744-14.899 39.629-14.899 39.629s7.578 46.95 10.547 83.098c3.686 44.954-22.733 161.28-163.277 161.28-140.544 0-166.912-116.275-163.226-161.28 2.97-36.147 10.496-83.098 10.496-83.098s-14.848-7.885-14.848-39.629c5.274-79.616 32.563-45.312 38.195-80.128 13.568-84.070 44.493-69.069 44.493-114.995 0-76.442-32.41-112.179-133.632-154.47-30.874-12.902-86.323-32.922-86.323-80.947v-186.573h711.373c0 0 0 110.336 0 139.827 0 43.878-86.374 85.197-187.904 127.693z" />
<glyph unicode="&#xe60f;" d="M633.702 233.062c-127.539 45.978-168.294 84.787-168.294 167.885 0 49.869 38.963 33.587 56.064 124.928 7.117 37.888 41.523 0.614 48.026 87.091 0 34.458-18.739 43.059-18.739 43.059s9.574 51.046 13.261 90.266c4.608 48.947-28.57 175.309-205.619 175.309s-210.227-126.362-205.619-175.309c3.738-39.27 13.312-90.266 13.312-90.266s-18.79-8.55-18.79-43.059c6.605-86.477 41.011-49.203 48.026-87.091 17.152-91.341 56.115-75.059 56.115-124.928 0-83.098-40.806-121.907-168.346-167.885-15.36-5.478-51.968-14.080-83.098-27.546v-205.517h819.2c0 0 0 75.725 0 107.776s-57.498 79.155-185.498 125.286zM870.4 512v153.6h-102.4v-153.6h-153.6v-102.4h153.6v-153.6h102.4v153.6h153.6v102.4h-153.6z" />
<glyph unicode="&#xe610;" d="M921.6 870.4h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h819.2c56.371 0 102.4 46.080 102.4 102.4v614.4c0 56.32-46.029 102.4-102.4 102.4zM921.6 153.6h-819.2v614.4h819.2v-614.4zM460.8 353.28h-256v-92.16h256v92.16zM460.8 506.88h-256v-92.16h256v92.16zM460.8 660.48h-256v-92.16h256v92.16zM814.080 332.8c0 0-87.040 22.733-87.040 67.482 0 42.598 56.371 60.518 56.371 147.558 0 70.656-21.504 112.64-92.211 112.64s-92.16-41.933-92.16-112.64c0-87.040 56.32-104.96 56.32-147.558 0-44.749-86.989-67.482-86.989-67.482-5.171 0-5.171-71.68-5.171-71.68h256c0 0 0 71.68-5.12 71.68z" />
<glyph unicode="&#xe611;" d="M768 163.84h-665.6v460.8h132.864c0 0 35.277 45.875 111.104 102.4h-295.168c-28.262 0-51.2-22.938-51.2-51.2v-563.2c0-28.314 22.938-51.2 51.2-51.2h768c28.314 0 51.2 22.886 51.2 51.2v191.795l-102.4-84.224v-56.371zM684.134 519.68v-181.76l339.866 266.291-339.866 255.949v-160.256c-412.774-0.051-412.774-408.064-412.774-408.064 116.838 191.898 188.723 227.84 412.774 227.84z" />
<glyph unicode="&#xe612;" d="M512 870.4c-141.414 0-256-114.637-256-256 0-244.429 256-563.2 256-563.2s256 318.771 256 563.2c0 141.363-114.586 256-256 256zM512 473.088c-76.339 0-138.24 61.901-138.24 138.24s61.901 138.24 138.24 138.24 138.24-61.901 138.24-138.24-61.901-138.24-138.24-138.24z" />
<glyph unicode="&#xe613;" d="M1007.77 715.571l-239.309 149.862c-10.598 6.656-23.859 6.656-34.458 0l-222.003-139.059-222.003 139.008c-10.598 6.656-23.859 6.656-34.458 0l-239.309-149.811c-10.035-6.298-16.23-17.715-16.23-29.952v-599.398c0-12.595 6.451-24.269 16.998-30.464s23.398-6.042 33.741 0.461l222.003 139.059 222.003-139.059c10.598-6.656 23.859-6.656 34.509 0l222.003 139.059 222.003-139.059c5.274-3.328 11.264-5.018 17.254-5.018 5.683 0 11.366 1.536 16.486 4.557 10.496 6.195 16.998 17.869 16.998 30.464v599.398c0 12.237-6.195 23.654-16.23 29.952zM239.258 255.846l-172.288-107.878v517.837l172.288 107.878v-517.837zM478.515 147.968l-172.288 107.878v517.837l172.288-107.878v-517.837zM717.773 255.846l-172.237-107.878v517.837l172.237 107.878v-517.837zM956.979 147.968l-172.237 107.878v517.837l172.237-107.878v-517.837z" />
<glyph unicode="&#xe614;" d="M505.446 952.269c-271.462-3.635-488.55-226.611-484.915-498.022 3.635-271.462 226.611-488.55 498.074-484.966 271.411 3.686 488.55 226.611 484.915 498.074-3.738 271.462-226.714 488.55-498.074 484.915zM517.171 72.806c-214.272-2.918-390.298 168.499-393.216 382.822-2.816 214.272 168.55 390.298 382.874 393.165 214.272 2.867 390.298-168.499 393.165-382.822s-168.499-390.246-382.822-393.165zM279.194 230.195c0 0 233.933 32.102 333.722 131.891 99.789 99.789 131.891 333.722 131.891 333.722s-233.882-32.154-333.67-131.891c-99.789-99.84-131.942-333.722-131.942-333.722zM461.568 513.434c41.933 41.984 122.112 71.731 190.925 90.214-18.483-68.659-48.384-149.453-90.061-191.078-27.853-27.853-73.011-27.853-100.864 0-27.904 27.853-27.904 73.011 0 100.864z" />
<glyph unicode="&#xe615;" d="M1009.613 958.464c-34.816 34.867-68.096 1.894-180.992-52.326-302.080-145.254-828.621-440.269-828.621-440.269l452.352-64.666 64.666-452.403c0 0 295.066 526.541 440.269 828.621 54.323 112.947 87.194 146.125 52.326 181.043zM901.12 842.035l-328.602-610.15-33.331 277.299 361.933 332.851z" />
<glyph unicode="&#xe616;" d="M512 901.12c-243.149 0-440.32-197.171-440.32-440.32 0-243.2 197.171-440.32 440.32-440.32 243.2 0 440.32 197.12 440.32 440.32 0 243.149-197.12 440.32-440.32 440.32zM547.84 104.192v197.888h-71.68v-197.888c-169.318 16.794-303.923 151.45-320.768 320.768h197.888v71.68h-197.888c16.845 169.318 151.45 303.974 320.768 320.768v-197.888h71.68v197.888c169.37-16.794 303.974-151.45 320.768-320.768h-197.888v-71.68h197.888c-16.794-169.318-151.398-303.974-320.768-320.768z" />
<glyph unicode="&#xe617;" d="M768 307.2c-35.226 0-67.482-11.93-93.389-31.846l-267.213 160.307c1.28 8.192 2.202 16.589 2.202 25.139 0 8.602-0.922 16.947-2.202 25.139l267.213 160.307c25.907-19.917 58.163-31.846 93.389-31.846 84.787 0 153.6 68.762 153.6 153.6s-68.813 153.6-153.6 153.6-153.6-68.762-153.6-153.6c0-8.55 0.922-16.947 2.253-25.139l-267.213-160.358c-25.907 19.968-58.214 31.898-93.44 31.898-84.838 0-153.6-68.762-153.6-153.6 0-84.787 68.762-153.6 153.6-153.6 35.226 0 67.533 11.93 93.44 31.846l267.213-160.307c-1.331-8.192-2.253-16.538-2.253-25.139 0-84.787 68.813-153.6 153.6-153.6s153.6 68.813 153.6 153.6-68.813 153.6-153.6 153.6z" />
<glyph unicode="&#xe618;" d="M348.16 460.8c0-90.47 73.37-163.84 163.84-163.84s163.84 73.421 163.84 163.84c0 90.47-73.37 163.84-163.84 163.84s-163.84-73.37-163.84-163.84zM231.885 522.24c28.109 128.819 142.848 225.28 280.115 225.28 79.206 0 150.835-32.102 202.701-83.968 24.013-24.013 62.925-24.013 86.938 0 23.962 24.013 23.962 62.925 0 86.886-74.138 74.086-176.538 119.962-289.638 119.962-183.398 0-338.637-120.525-390.81-286.72h-121.19v-122.88h163.84c51.149 0 63.693 41.626 68.045 61.44zM860.16 460.8c-51.098 0-63.693-41.626-68.045-61.44-28.109-128.819-142.797-225.28-280.115-225.28-79.155 0-150.835 32.051-202.701 83.968-24.013 24.013-62.925 24.013-86.886 0s-24.013-62.925 0-86.886c74.086-74.086 176.486-119.962 289.587-119.962 183.398 0 338.637 120.525 390.81 286.72h121.19v122.88h-163.84z" />
<glyph unicode="&#xe619;" d="M880.077 760.269c-85.606 78.592-224.41 78.592-310.016 0l-58.061-53.35-58.112 53.35c-85.606 78.592-224.358 78.592-309.965 0-96.307-88.371-96.307-231.629 0-320.051l368.077-337.818 368.077 337.818c96.307 88.422 96.307 231.68 0 320.051z" />
<glyph unicode="&#xe61a;" d="M880.077 760.32c-85.606 78.541-224.41 78.541-310.016 0l-58.061-53.35-58.112 53.35c-85.606 78.541-224.358 78.541-309.965 0-96.307-88.422-96.307-231.629 0-320.051l368.077-337.869 368.077 337.869c96.307 88.371 96.307 231.629 0 320.051zM825.6 492.8l-313.6-292.557-313.549 292.557c-31.642 28.979-43.878 67.174-43.878 107.52 0 40.243 7.066 73.318 38.707 102.349 27.904 25.651 65.434 39.731 105.574 39.731 40.192 0 77.722-24.371 105.626-50.022l107.52-93.491 107.52 93.491c27.904 25.651 65.382 50.022 105.574 50.022s77.722-14.080 105.677-39.731c31.59-29.030 38.605-62.106 38.707-102.349 0-40.294-12.288-78.541-43.878-107.52z" />
<glyph unicode="&#xe61b;" d="M512 911.36l122.266-344.166h328.294l-267.878-202.138 95.744-354.816-278.426 212.685-278.426-212.685 95.744 354.816-267.878 202.138h328.294z" />
<glyph unicode="&#xe61c;" d="M962.56 567.194h-328.346l-122.266 344.166-122.214-344.166h-328.294l267.827-202.138-95.744-354.816 278.426 212.685 278.426-212.685-95.744 354.816 267.93 202.138zM511.949 323.379l-154.214-128.051 63.59 182.374-145.971 117.76 180.275-5.12 56.269 206.848 56.32-206.848 180.275 5.12-145.971-117.76 63.642-182.374-154.214 128.051z" />
<glyph unicode="&#xe61d;" d="M698.778 595.814c-6.758 18.176 181.248 186.112 71.578 322.15-25.702 31.795-112.691-152.371-236.288-235.725-68.147-45.978-226.867-143.872-226.867-197.99v-350.259c0-65.075 251.597-133.99 442.829-133.99 70.093 0 171.571 439.040 171.571 508.826 0 69.99-216.064 68.762-222.822 86.989zM256 590.95c-33.638 0-153.6-20.48-153.6-159.846v-248.218c0-139.366 119.962-154.675 153.6-154.675s-51.2 29.286-51.2 115.661v326.298c0 90.522 84.838 120.781 51.2 120.781z" />
<glyph unicode="&#xe61e;" d="M325.274 325.734c6.707-18.176-181.248-186.061-71.578-322.099 25.702-31.846 112.691 152.32 236.288 235.725 68.147 45.978 226.816 143.923 226.816 197.99v350.208c0 65.126-251.546 134.042-442.778 134.042-70.093 0-171.622-439.040-171.622-508.826 0-69.99 216.115-68.762 222.874-87.040zM768 330.65c33.69 0 153.6 20.429 153.6 159.846v248.166c0 139.366-119.91 154.726-153.6 154.726-33.638 0 51.2-29.338 51.2-115.661v-326.298c0-90.522-84.838-120.781-51.2-120.781z" />
<glyph unicode="&#xe61f;" d="M296.96 348.16v317.44h-194.56c-56.32 0-102.4-46.080-102.4-102.4v-307.2c0-56.32 46.080-102.4 102.4-102.4h51.2v-153.6l153.6 153.6h256c56.32 0 102.4 46.080 102.4 102.4v93.184c-3.277-0.717-6.758-1.075-10.24-1.075h-358.4zM921.6 921.6h-460.8c-56.32 0-102.4-46.080-102.4-102.4v-409.6h358.4l153.6-153.6v153.6h51.2c56.32 0 102.4 46.080 102.4 102.4v307.2c0 56.32-46.080 102.4-102.4 102.4z" />
<glyph unicode="&#xe620;" d="M819.2 819.2h-614.4c-56.32 0-102.4-46.080-102.4-102.4v-358.4c0-56.32 46.080-102.4 102.4-102.4h204.8l204.8-153.6v153.6h204.8c56.32 0 102.4 46.080 102.4 102.4v358.4c0 56.32-46.080 102.4-102.4 102.4z" />
<glyph unicode="&#xe621;" d="M251.699 778.086c-82.432 0-149.299-68.762-149.299-153.6s66.867-153.6 149.299-153.6c149.248 0 49.766-296.96-149.299-296.96v-71.629c355.226 0 494.438 675.789 149.299 675.789zM681.728 778.086c-82.432 0-149.299-68.762-149.299-153.6s66.867-153.6 149.299-153.6c149.248 0 49.766-296.96-149.299-296.96v-71.629c355.277 0 494.49 675.789 149.299 675.789z" />
<glyph unicode="&#xe622;" d="M961.024 445.44l-410.829 411.187c-20.992 21.811-55.347 21.811-76.339 0l-410.88-411.187c-21.043-21.76-13.21-39.629 17.408-39.629h85.658v-315.802c0-22.784 0.973-41.421 42.189-41.421h199.424v316.826h208.64v-316.826h209.357c31.437 0 32.307 18.586 32.307 41.421v315.802h85.606c30.566 0 38.451 17.818 17.459 39.629z" />
<glyph unicode="&#xe623;" d="M819.2 870.4h-410.624c-56.32 0-101.376-45.056-101.376-101.376v-410.624c0-56.32 46.080-102.4 102.4-102.4h409.6c56.32 0 102.4 46.080 102.4 102.4v409.6c0 56.32-46.080 102.4-102.4 102.4zM819.2 358.4h-409.6v409.6h409.6v-409.6zM204.8 460.8h-102.4v-307.2c0-56.32 46.080-102.4 102.4-102.4h307.2v102.4h-307.2v307.2z" />
<glyph unicode="&#xe624;" d="M898.304 180.838l-193.485 193.485c29.184 47.974 45.978 104.192 45.978 164.454 0 174.899-151.603 326.502-326.554 326.502-174.899 0-316.723-141.824-316.723-316.723 0-174.95 151.552-326.554 326.502-326.554 58.163 0 112.64 15.77 159.488 43.162l194.509-194.56c19.098-19.046 49.92-19.046 68.915 0l48.282 48.23c18.995 19.046 12.083 43.008-6.912 62.003zM205.005 548.557c0 121.088 98.15 219.29 219.238 219.29 121.139 0 229.069-107.93 229.069-229.069s-98.15-219.29-219.29-219.29-229.018 107.93-229.018 229.069z" />
<glyph unicode="&#xe625;" d="M876.288 825.139c-85.811 85.76-193.485 117.146-227.789 82.842l-138.035-138.086c-20.941-20.941-39.219-91.034-30.822-161.946l-417.843-417.894c-24.781-24.73-4.71-84.992 44.851-134.554 49.562-49.613 109.875-69.632 134.605-44.902l417.843 417.843c70.963-8.397 141.056 9.882 161.946 30.822l138.086 138.086c34.304 34.304 2.918 141.978-82.842 227.789zM416.819 407.552c-19.098 19.046-12.851 56.166 13.773 82.842s63.744 32.87 82.842 13.824c18.995-19.046 12.851-56.166-13.824-82.842-26.675-26.675-63.744-32.87-82.79-13.824zM762.419 711.219c-66.458 66.458-83.149 154.112-77.261 160.051 5.939 5.939 90.163-14.234 156.672-80.691 66.458-66.458 86.374-150.886 80.64-156.621s-93.645 10.803-160.051 77.261z" />
<glyph unicode="&#xe626;" d="M76.8 614.298h870.4c29.184 0 24.422 31.13 9.882 36.198-14.541 5.069-176.282 66.202-204.442 66.202h-46.080v153.6h-389.12v-153.6h-46.080c-28.16 0-189.901-61.133-204.442-66.202s-19.354-36.198 9.882-36.198zM957.44 557.978h-890.88c-28.16 0-56.32-33.28-56.32-61.44v-179.2c0-28.16 28.16-61.44 56.32-61.44h101.478l-45.158-256h778.24l-45.158 256h101.478c28.16 0 56.32 33.28 56.32 61.44v179.2c0 28.16-28.16 61.44-56.32 61.44zM225.28 102.298l71.68 332.8h430.080l71.629-332.8h-573.389z" />
<glyph unicode="&#xe627;" d="M750.080 536.934c-116.736 251.238-177.408 346.675-368.179 342.682-67.942-1.382-51.61 49.203-103.424 30.003-51.763-19.149-7.322-47.258-60.314-90.726-148.582-121.958-134.912-234.803-65.997-503.808 29.082-113.254-69.99-118.835-30.822-228.659 28.621-80.026 239.565-113.613 462.131-30.976 222.566 82.534 363.008 246.426 334.387 326.554-39.168 109.773-118.579 49.152-167.782 154.931zM559.309 123.085c-198.707-73.728-362.086-30.362-368.998-11.11-11.878 33.229 64.154 144.179 291.379 228.506 227.226 84.326 354.048 53.043 367.309 15.923 7.834-21.914-90.88-159.539-289.69-233.318zM495.462 301.978c-103.936-38.554-176.128-82.637-222.874-122.368 32.922-29.901 94.515-37.171 155.955-14.387 78.182 29.030 126.208 95.642 107.213 148.736-0.205 0.666-0.563 1.229-0.819 1.843-12.8-4.147-25.958-8.755-39.475-13.824z" />
<glyph unicode="&#xe628;" d="M402.381 220.467l-41.472-41.165c-35.942-35.584-94.362-35.635-130.253 0-17.254 17.152-26.726 39.834-26.726 64.051s9.523 46.95 26.726 64.102l152.576 151.398c31.59 31.386 91.085 77.517 134.451 34.509 19.917-19.763 52.070-19.61 71.782 0.256 19.763 19.866 19.661 52.019-0.256 71.782-73.677 73.114-182.63 59.597-277.504-34.509l-152.576-151.398c-36.557-36.352-56.73-84.685-56.73-136.141 0-51.405 20.173-99.738 56.781-136.090 37.683-37.427 87.142-56.064 136.602-56.064s99.021 18.637 136.704 56.064l41.472 41.216c19.917 19.763 20.019 51.917 0.256 71.731-19.763 19.866-51.917 19.968-71.834 0.256zM864.819 808.499c-79.155 78.541-189.798 82.79-263.117 10.086l-51.661-51.251c-19.917-19.763-20.070-51.866-0.307-71.782 19.814-19.917 51.917-20.019 71.782-0.256l51.661 51.251c37.939 37.683 87.654 22.067 120.115-10.086 17.254-17.101 26.726-39.885 26.726-64.051 0-24.218-9.523-46.95-26.726-64.051l-162.816-161.485c-74.394-73.83-109.363-39.219-124.262-24.422-19.917 19.763-52.019 19.61-71.731-0.256-19.763-19.917-19.661-52.070 0.256-71.782 34.15-33.894 73.216-50.688 114.074-50.688 50.074 0 102.963 25.19 153.242 75.11l162.765 161.485c36.608 36.301 56.781 84.634 56.781 136.038s-20.173 99.789-56.781 136.141z" />
<glyph unicode="&#xe629;" d="M946.483 733.184c-584.090-233.83-347.494 395.52-800.512 64.205l-94.771-33.997 187.699-737.792h103.373l-91.904 361.37c404.173 338.842 240.538-369.203 718.643 325.478 11.11 16.128-3.738 28.262-22.528 20.736z" />
<glyph unicode="&#xe62a;" d="M859.392 460.8c0 53.658 33.024 96 82.688 125.082-9.011 29.901-20.787 58.624-35.379 85.606-55.808-14.592-100.915 7.27-138.803 45.158-37.99 37.939-49.613 83.098-35.021 138.803-26.982 14.592-55.603 26.522-85.606 35.43-29.082-49.715-81.664-82.739-135.27-82.739-53.606 0-106.138 33.024-135.27 82.739-30.003-8.909-58.624-20.838-85.606-35.379 14.541-55.757 2.97-100.915-34.97-138.854-37.939-37.888-83.098-59.75-138.803-45.21-14.592-26.931-26.47-55.654-35.43-85.555 49.715-29.082 82.739-71.424 82.739-125.082 0-53.606-33.024-106.189-82.739-135.322 8.96-29.952 20.838-58.624 35.43-85.606 55.757 14.592 100.864 2.97 138.803-34.97 37.939-37.939 49.51-83.046 34.97-138.803 26.982-14.592 55.654-26.522 85.606-35.43 29.133 49.766 81.664 82.739 135.27 82.739 53.606 0 106.24-33.024 135.322-82.739 30.003 8.96 58.624 20.838 85.606 35.43-14.592 55.757-3.021 100.864 35.021 138.803 37.888 37.888 82.995 59.75 138.803 45.21 14.592 26.982 26.419 55.654 35.379 85.606-49.715 29.133-82.739 71.475-82.739 125.082zM512 273.766c-103.27 0-186.982 83.763-186.982 187.034s83.712 187.034 186.982 187.034c103.322 0 187.034-83.763 187.034-187.034s-83.712-187.034-187.034-187.034z" />
<glyph unicode="&#xe62b;" d="M160.461 620.032c47.821 37.12 87.45 11.571 140.339-49.664 5.99-6.861 13.978 1.178 18.483 5.12 4.506 3.994 74.342 66.765 77.722 69.683 3.43 3.021 7.526 8.653 2.099 14.95s-25.293 32-38.042 48.64c-92.57 121.088 253.235 203.213 200.090 204.493-26.982 0.717-135.475 1.946-151.654 0.256-65.69-6.963-148.173-68.352-189.696-96.922-54.272-37.325-74.598-58.982-77.926-62.003-15.36-13.466-2.458-44.39-30.31-68.813-29.44-25.805-47.77-6.298-64.819-21.248-8.499-7.475-32.102-25.139-38.912-31.13-6.758-5.939-7.987-16.026-1.075-24.115 0 0 64.666-71.475 70.144-77.773 5.427-6.298 20.019-11.622 29.082-3.635 9.062 7.936 32.307 28.365 36.25 31.846 3.994 3.43-2.56 44.186 18.227 60.314zM452.762 593.613c-6.144 7.117-13.722 7.27-20.326 1.434l-73.472-64.051c-5.734-5.12-6.502-14.541-1.331-20.48l424.653-483.226c9.882-11.469 27.085-12.646 38.502-2.714l49.715 41.574c11.315 9.933 12.493 27.341 2.611 38.758l-420.352 488.704zM1018.982 799.283c-3.789 25.293-16.896 19.968-23.706 9.216-6.707-10.701-36.915-56.371-49.306-77.005-12.288-20.582-42.496-60.979-99.021-21.094-58.778 41.574-38.298 70.605-28.109 90.112 10.291 19.61 41.882 74.496 46.49 81.408 4.506 6.912-0.819 26.982-18.995 18.586-18.278-8.448-129.178-52.531-144.589-115.712-15.718-64.358 13.21-121.805-43.52-178.893l-68.71-71.68 69.018-80.282 84.685 80.435c20.224 20.275 63.283 39.987 102.298 31.13 83.61-18.944 129.178 12.493 156.723 64.358 24.678 46.438 20.582 144.128 16.742 169.421zM140.288 99.789c-10.65-10.752-10.65-28.16 0-38.861l48.691-47.616c10.65-10.701 27.546-6.195 38.195 4.506l251.238 247.040-77.005 87.706-261.12-252.774z" />
<glyph unicode="&#xe62c;" d="M572.467 237.875c0 74.291 56.32 115.354 148.173 176.179 112.384 74.496 252.16 167.168 252.16 387.021 0 19.814-16.179 35.84-36.198 35.84h-175.667c-24.832 45.875-98.714 94.925-248.934 94.925-150.17 0-224.102-49.050-248.883-94.925h-175.667c-20.019 0-36.25-16.026-36.25-35.84 0-219.853 139.827-312.525 252.211-386.97 91.904-60.826 148.224-101.888 148.224-176.179v-67.123c-96.512-10.752-167.424-46.438-167.424-88.883 0-50.893 101.99-92.16 227.789-92.16 125.85 0 227.84 41.267 227.84 92.16 0 42.445-70.912 78.131-167.424 88.883v67.072zM714.598 496.64c29.082 61.44 52.070 144.742 55.757 268.595h128.461c-12.237-138.189-95.334-208.026-184.218-268.595zM512 869.069c139.878 0.051 194.56-57.139 194.509-78.336 0-21.35-54.528-78.49-194.509-78.592-139.878 0.154-194.458 57.242-194.458 78.592-0.051 21.197 54.579 78.438 194.458 78.336zM125.235 765.235h128.41c3.738-123.853 26.726-207.155 55.757-268.595-88.883 60.57-171.93 130.406-184.166 268.595z" />
<glyph unicode="&#xe62d;" d="M987.699 952.013c-5.53 16.128-22.989 24.627-38.963 19.046s-24.371-23.245-18.79-39.424c47.104-136.704-46.387-238.797-117.606-293.427l-28.826 41.677c-9.626 13.926-31.334 25.549-48.128 25.805l-161.536-0.768c-16.794 0.256-41.779-7.526-55.603-17.254l-475.955-337.306c-23.040-16.333-28.723-48.486-12.544-71.834l216.371-312.678c16.128-23.347 42.086-20.531 65.126-4.25l475.955 337.357c13.824 9.728 29.542 30.925 35.123 47.002l50.586 161.075c5.478 16.077 2.15 40.653-7.475 54.579l-17.613 25.395c95.693 73.984 195.021 204.902 139.878 365.005zM766.259 472.986c-36.915-26.163-87.757-17.050-113.613 20.275-25.805 37.325-16.845 88.781 20.070 114.944 29.286 20.787 67.328 19.251 94.72-0.922-13.824-8.397-23.245-13.21-25.037-14.080-15.258-7.27-21.811-25.702-14.592-41.165 5.222-11.213 16.179-17.818 27.699-17.818 4.352 0 8.806 0.973 13.005 2.97 9.779 4.659 20.378 10.342 31.386 16.947 4.915-30.362-7.066-62.31-33.638-81.152z" />
<glyph unicode="&#xe62e;" d="M512 563.2c-84.787 0-153.6-68.813-153.6-153.6 0-84.838 68.813-153.6 153.6-153.6 84.838 0 153.6 68.762 153.6 153.6 0 84.787-68.762 153.6-153.6 153.6zM921.6 716.8h-122.829c-16.896 0-35.123 13.107-40.448 29.133l-31.744 95.283c-5.427 16.077-23.603 29.184-40.499 29.184h-348.16c-16.896 0-35.123-13.107-40.397-29.133l-31.846-95.334c-5.325-16.026-23.501-29.133-40.397-29.133h-122.88c-56.32 0-102.4-46.080-102.4-102.4v-460.8c0-56.32 46.080-102.4 102.4-102.4h819.2c56.371 0 102.4 46.080 102.4 102.4v460.8c0 56.32-46.029 102.4-102.4 102.4zM512 153.6c-141.414 0-256 114.586-256 256 0 141.363 114.586 256 256 256 141.363 0 256-114.637 256-256 0-141.414-114.637-256-256-256zM885.76 542.822c-19.763 0-35.789 16.026-35.789 35.84s16.026 35.84 35.789 35.84c19.814 0 35.84-16.026 35.84-35.84s-16.026-35.84-35.84-35.84z" />
<glyph unicode="&#xe62f;" d="M881.818 612.915c-81.050 188.672-211.558 332.339-277.555 305.459-112.077-45.568 66.816-264.397-483.635-488.141-47.565-19.302-59.597-96.666-39.68-142.899 19.866-46.234 84.89-92.262 132.454-72.96 8.192 3.328 38.451 13.056 38.451 13.056 33.946-45.568 69.478-18.534 82.125-47.514 15.155-34.816 48.077-110.438 59.238-136.141 11.264-25.702 36.659-49.562 55.091-42.547 18.33 7.014 80.947 30.874 104.909 39.936s29.696 30.464 22.374 47.309c-7.885 18.125-40.243 23.45-49.459 44.646-9.267 21.197-39.424 89.037-48.077 110.438-11.776 29.082 13.261 52.736 49.664 56.525 250.573 26.112 297.421-128.666 382.72-93.952 65.843 26.931 52.429 218.112-28.621 406.784zM853.606 306.893c-14.643-5.939-113.254 71.782-176.282 218.47-62.976 146.637-55.040 280.678-40.448 286.618 14.643 5.99 110.848-87.859 173.875-234.496 62.925-146.586 57.498-264.653 42.854-270.592z" />
<glyph unicode="&#xe631;" d="M888.422 739.072c-158.925 105.677-337.357 142.182-548.966 81.562-165.171-47.36-316.57-235.213-328.294-396.083-13.875-190.208 134.298-353.075 395.162-352.819 281.293 0.307 386.56 135.373 388.915 176.384 2.304 41.062-109.773 116.941-37.632 194.97 90.368 97.741 170.803 14.438 219.546 26.214 48.742 11.674 73.421 161.843-88.73 269.773zM562.074 261.99c-42.547 0-77.056 34.406-77.056 76.8 0 42.445 34.509 76.8 77.056 76.8s77.005-34.355 77.005-76.8c-0.051-42.394-34.458-76.8-77.005-76.8z" />
<glyph unicode="&#xe633;" d="M604.109 911.411h-82.125v-669.286c-45.414 17.51-104.192 17.766-162.15-3.328-103.834-37.786-165.734-129.741-138.24-205.312 27.546-75.622 134.042-106.24 237.875-68.454 88.218 32.102 145.92 103.27 144.486 170.24l0.154 547.328c143.206-22.528 152.986-203.622 135.834-254.413-6.554-19.251 4.966-33.638 26.624 0 154.368 240.282-162.458 346.214-162.458 483.226z" />
<glyph unicode="&#xe634;" d="M312.832 833.075v-607.59c-33.075 6.912-71.578 4.301-109.773-9.83-85.862-31.898-116.173-109.568-93.389-173.363 22.733-63.846 89.958-89.651 175.821-57.754 72.909 27.085 120.678 87.091 119.45 143.718 0 0 0 322.202 0 501.914l363.571 83.302v-385.536c-33.075 6.912-71.578 4.301-109.773-9.83-85.914-31.898-116.224-109.568-93.44-173.363 22.784-63.846 89.958-89.651 175.872-57.754 72.96 27.085 120.627 87.091 119.501 143.718v720.077l-547.84-117.709z" />
<glyph unicode="&#xe635;" d="M956.928 340.685l-88.422 78.848c-25.6 22.835-25.6 60.109 0 82.944l88.422 78.797c25.6 22.835 18.739 44.083-15.206 47.309l-117.197 11.11c-33.946 3.226-52.224 32.41-40.55 64.87l62.208 173.158c11.674 32.461-2.611 44.288-31.693 26.266l-138.291-85.504c-29.082-18.022-66.662-8.192-83.507 21.862l-50.125 89.395c-16.794 30.054-44.646 30.208-61.798 0.358l-46.541-80.998c-17.152-29.85-56.576-42.598-87.603-28.314l-81.92 37.632c-31.078 14.234-54.938-2.253-53.094-36.762l4.454-82.688c1.843-34.458-23.603-69.99-56.525-78.848l-79.104-21.248c-32.922-8.909-38.963-34.816-13.363-57.651l88.422-78.797c25.6-22.784 25.6-60.109 0-82.893l-88.422-78.746c-25.6-22.886-18.842-44.902 15.002-48.998l107.264-13.005c33.843-4.198 52.736-34.406 41.933-67.123l-55.040-166.81c-10.803-32.819 4.608-45.619 34.202-28.416l126.106 72.909c29.645 17.203 69.427 7.68 88.474-20.89l52.378-78.694c18.995-28.723 47.616-27.085 63.437 3.482l46.029 88.678c15.923 30.618 53.914 43.11 84.429 27.802l88.781-44.39c30.618-15.309 54.118 0.41 52.275 34.918l-4.454 82.688c-1.843 34.509 23.603 69.99 56.525 78.899l79.053 21.197c33.024 8.96 39.066 34.867 13.466 57.651zM563.2 246.016h-102.4v107.52h102.4v-107.52zM563.2 409.805h-102.4v266.24h102.4v-266.24z" />
<glyph unicode="&#xe636;" d="M169.062 346.214c23.757-96.307 53.965-138.291 154.726-182.374 100.813-44.032 148.685-92.16 188.211-92.16s84.326 42.086 185.139 86.221c100.813 43.981 73.933 57.498 97.69 153.702l-282.829-137.523-342.938 172.134zM998.963 597.197l-426.24 238.694c-33.382 18.688-88.013 18.688-121.395 0l-426.291-238.694c-33.382-18.688-33.382-49.306 0-67.994l426.24-238.694c33.382-18.688 88.013-18.688 121.395 0l275.558 154.317-298.803 69.99c-11.469-2.867-24.115-4.454-37.427-4.454-53.811 0-97.434 25.958-97.434 57.958s43.622 58.010 97.434 58.010c41.779 0 77.363-15.718 91.187-37.683l316.467-103.834 79.309 44.39c33.382 18.688 33.382 49.306 0 67.994zM868.71 144.794c-3.226-19.61 65.69-52.019 72.243 5.581 29.645 259.635-21.299 334.387-21.299 334.387l-71.424-39.987c0 0.051 60.57-57.6 20.48-299.981z" />
<glyph unicode="&#xe637;" d="M852.378 709.478l-460.698 237.517c-63.13 33.229-187.546-30.976-223.283-87.501-15.923-25.293-14.797-43.52-14.797-53.862l5.683-536.32c0.358-11.418 14.746-26.726 26.982-34.304 25.549-15.667 412.672-257.28 423.578-264.141 5.888-3.686 12.902-5.376 19.763-5.376 5.837 0 11.725 1.28 17.050 3.942 11.674 5.734 18.944 16.794 18.944 28.928v563.251c0 11.725-6.861 22.528-18.022 28.416l-418.714 233.779c4.71 9.216 23.347 28.672 57.6 46.592 36.096 18.944 63.078 11.776 69.274 9.37 0 0 401.92-215.091 414.208-221.491 12.237-6.4 12.493-7.373 12.493-18.278 0-10.957 0-534.528 0-534.528 0-26.675 27.034-37.581 46.95-37.581 19.814 0 41.011 19.456 41.011 37.581v575.59c0 11.725-6.912 22.579-18.022 28.416z" />
<glyph unicode="&#xe638;" d="M819.2 921.6h-614.4c-56.32 0-102.4-46.080-102.4-102.4v-716.8c0-56.32 46.080-102.4 102.4-102.4h614.4c56.371 0 102.4 46.080 102.4 102.4v716.8c0 56.32-46.029 102.4-102.4 102.4zM819.2 102.4h-614.4v716.8h614.4v-716.8zM563.2 358.4h-256v-51.2h256v51.2zM716.8 563.2h-204.8v-51.2h204.8v51.2zM512 614.4h204.8v102.4h-204.8v-102.4zM460.8 716.8h-153.6v-204.8h153.6v204.8zM409.6 460.8h-102.4v-51.2h102.4v51.2zM460.8 409.6h256v51.2h-256v-51.2zM716.8 256h-409.6v-51.2h409.6v51.2zM614.4 307.2h102.4v51.2h-102.4v-51.2z" />
<glyph unicode="&#xe639;" d="M927.846 785.050c-15.155 13.107-97.587 75.52-112.998 88.781s-39.475 17.050-56.474 17.050h-492.749c-16.947 0-41.062-3.738-56.422-17.050-15.411-13.312-97.843-75.725-112.998-88.781s-27.802-32.819-23.757-60.979c4.045-28.16 99.174-664.218 99.174-664.218 5.325-16.026 23.552-29.133 40.55-29.133h599.706c16.998 0 35.226 13.158 40.55 29.133 0 0 95.078 636.058 99.174 664.218 3.994 28.16-8.602 47.872-23.757 60.979zM512 339.558c-166.298 0-201.882 235.366-209.254 283.853h94.054c14.182-70.758 46.387-191.693 115.2-191.693s101.069 120.934 115.251 191.693h94.003c-7.373-48.486-42.957-283.853-209.254-283.853zM151.706 716.8l112.947 117.76h494.694l112.947-117.76h-720.589z" />
<glyph unicode="&#xe63a;" d="M273.92-45.056h102.4l229.786 409.651h264.294c0 0 153.6 0 153.6 71.629 0 71.68-153.6 71.68-153.6 71.68h-264.294l-229.786 409.6h-102.4l127.386-409.6h-183.654l-115.251 102.451h-102.4l81.971-174.080-81.971-174.131h102.4l115.251 102.451h183.654l-127.386-409.651z" />
<glyph unicode="&#xe63b;" d="M505.702 931.789c-260.096-3.482-468.173-217.139-464.691-477.286 3.482-260.198 217.19-468.173 477.286-464.742 260.147 3.482 468.224 217.19 464.691 477.286-3.482 260.198-217.19 468.224-477.286 464.742zM506.573 870.4c70.144 0.973 136.397-15.872 194.56-46.131l-63.386-105.677c-37.99 18.483-80.64 28.928-125.747 28.928-45.056 0-87.706-10.445-125.696-28.979l-63.334 105.626c54.989 28.672 117.35 45.312 183.603 46.234zM254.259 335.104l-105.574-63.283c-28.672 54.938-45.312 117.299-46.182 183.501-0.973 70.195 15.872 136.448 46.131 194.56l105.626-63.437c-18.534-37.939-28.979-80.538-28.979-125.645 0-45.056 10.445-87.706 28.979-125.696zM517.478 51.251c-70.144-0.973-136.448 15.872-194.56 46.131l63.386 105.677c37.99-18.534 80.64-28.979 125.696-28.979 45.107 0 87.757 10.394 125.696 28.928l63.334-105.574c-54.989-28.621-117.299-45.261-183.552-46.182zM512 235.571c-124.416 0-225.229 100.864-225.229 225.229 0 124.416 100.864 225.28 225.229 225.28 124.467 0 225.28-100.864 225.28-225.28 0-124.416-100.813-225.229-225.28-225.229zM769.741 335.104c18.534 37.99 28.979 80.64 28.979 125.696 0 45.107-10.445 87.706-28.979 125.696l105.574 63.386c28.672-54.989 45.363-117.299 46.234-183.552 0.922-70.195-15.923-136.448-46.182-194.56l-105.626 63.334z" />
<glyph unicode="&#xe63c;" d="M512 747.52c-335.923 0-512-247.45-512-286.72s176.077-286.72 512-286.72 512 247.45 512 286.72-176.077 286.72-512 286.72zM512 240.23c-125.645 0-227.533 98.765-227.533 220.57s101.888 220.57 227.533 220.57c125.696 0 227.584-98.765 227.584-220.57s-101.888-220.57-227.584-220.57zM512 460.8c-20.787 22.835 33.997 110.234 0 110.234-62.822 0-113.766-49.357-113.766-110.234s50.944-110.285 113.766-110.285c62.874 0 113.818 49.408 113.818 110.285 0 27.955-96.051-19.456-113.818 0z" />
<glyph unicode="&#xe63d;" d="M512 931.84c-260.147 0-471.040-210.944-471.040-471.040 0-260.147 210.893-471.040 471.040-471.040s471.040 210.893 471.040 471.040c0 260.147-210.893 471.040-471.040 471.040zM512 92.16c-203.622 0-368.64 165.069-368.64 368.64s165.018 368.64 368.64 368.64 368.64-165.069 368.64-368.64-165.018-368.64-368.64-368.64zM547.84 727.040h-71.68v-281.088l174.336-174.336 50.688 50.688-153.344 153.344z" />
<glyph unicode="&#xe63e;" d="M819.2 601.958h-30.72c-11.315 0-20.48-9.216-20.48-20.48v-141.158c0-68.454-53.914-184.32-256-184.32s-256 115.866-256 184.32v141.158c0 11.264-9.267 20.48-20.48 20.48h-30.72c-11.264 0-20.48-9.216-20.48-20.48v-141.158c0-114.534 84.173-237.056 276.48-253.952v-135.168h-133.171c-11.213 0-20.429-9.216-20.429-20.48v-61.44c0-11.264 9.216-20.48 20.429-20.48h368.64c11.315 0 20.48 9.216 20.48 20.48v61.44c0 11.315-9.216 20.48-20.48 20.48h-133.069v135.168c192.358 16.896 276.48 139.469 276.48 253.952v141.158c0 11.264-9.216 20.48-20.48 20.48zM512 358.4c120.166 0 153.6 49.357 153.6 81.92v161.638h-307.2v-161.638c0-32.563 33.434-81.92 153.6-81.92zM665.6 890.88c0 32.614-33.434 81.92-153.6 81.92s-153.6-49.306-153.6-81.92v-217.242h307.2v217.242z" />
<glyph unicode="&#xe63f;" d="M870.4 819.2h-46.080v-102.4h-163.84v102.4h-296.96v-102.4h-163.84v102.4h-46.080c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h716.8c56.32 0 102.4 46.080 102.4 102.4v614.4c0 56.32-46.080 102.4-102.4 102.4zM870.4 102.4h-716.8v409.6h716.8v-409.6zM317.44 921.6h-71.68v-174.080h71.68v174.080zM778.24 921.6h-71.68v-174.080h71.68v174.080z" />
<glyph unicode="&#xe640;" d="M348.314 0.051c-9.882 6.502 161.485 366.592 155.546 382.413-5.888 15.821-187.597 73.574-196.506 101.376-8.858 27.802 358.81 445.747 368.435 437.658 9.626-8.038-160.205-370.586-155.546-382.362s190.925-71.987 196.506-101.325c5.581-29.44-358.554-444.211-368.435-437.76z" />
<glyph unicode="&#xe641;" d="M778.906 581.683c-14.080 0-27.955-1.229-41.421-3.482-33.587 109.824-137.626 189.85-260.915 189.85-150.426 0-272.333-119.194-272.333-266.24 0-13.107 1.024-26.010 2.918-38.656-7.219 0.819-14.49 1.382-21.965 1.382-102.246 0-185.19-81.101-185.19-181.043 0-99.994 82.944-181.043 185.19-181.043h593.715c135.424 0 245.094 107.315 245.094 239.616s-109.722 239.616-245.094 239.616zM582.246 360.96c-25.344-36.045-133.888-147.917-138.496-152.627-5.325-6.554-20.019-17.562-33.946-8.499-3.994 2.611-8.806 7.834-8.806 18.125 0 9.882 4.506 19.968 5.069 21.094l52.89 117.043c-9.933 3.942-26.982 10.854-40.243 16.64l-3.533 1.536c-13.414 5.632-30.106 12.749-30.106 31.13 0 8.755 4.198 18.995 12.749 31.181 25.344 36.045 133.888 147.866 138.496 152.627 5.325 6.554 19.968 17.562 33.946 8.55 3.994-2.611 8.806-7.834 8.806-18.125 0-9.882-4.506-19.968-5.069-21.094l-52.89-117.043c9.933-3.994 26.982-10.906 40.243-16.64l3.482-1.485c13.414-5.683 30.106-12.8 30.106-31.181 0.051-8.858-4.147-19.046-12.698-31.232z" />
<glyph unicode="&#xe642;" d="M522.394 944.077c-1.331 10.957-19.456 10.957-20.787 0-45.21-363.93-276.326-438.938-276.326-691.866 0-156.211 131.226-282.88 286.72-282.88 155.494 0 286.72 126.72 286.72 282.88 0 252.928-231.117 327.936-276.326 691.866zM478.771 541.798c-3.072-11.213-6.298-22.784-9.626-34.662-20.531-72.909-43.827-155.597-43.827-251.187 0-51.814-30.618-70.195-59.238-70.195-32.666 0-59.187 26.675-59.187 59.699 0 112.998 54.426 186.778 102.451 251.904 15.053 20.378 29.235 39.629 40.806 58.88 5.274 8.755 19.507 8.397 25.958-0.307 2.918-4.198 3.942-9.318 2.662-14.131z" />
<glyph unicode="&#xe644;" d="M465.92 409.498h92.16v-102.4h465.92c0 0-7.578 228.25-10.24 299.725-2.509 67.891-26.778 109.875-102.4 109.875h-164.25c-25.446 47.974-52.838 99.584-61.235 115.456-16.947 31.949-22.733 38.144-60.416 38.144h-226.918c-37.683 0-43.469-6.195-60.416-38.144-8.397-15.872-35.789-67.482-61.235-115.456h-164.25c-75.622 0-99.584-41.984-102.4-109.875s-10.24-299.725-10.24-299.725h465.92v102.4zM391.68 772.25c11.725 22.118 15.77 26.419 41.779 26.419h157.030c26.112 0 30.106-4.301 41.779-26.419 4.403-8.294 16.282-30.72 29.491-55.501h-299.52c13.158 24.73 25.037 47.155 29.44 55.501zM558.080 153.498h-92.16v102.4h-440.32c0 0 6.4-92.058 10.24-170.086 1.587-32.41 11.11-85.914 92.109-85.914h768.102c80.998 0 90.317 53.555 92.109 85.914 4.454 80.23 10.24 170.086 10.24 170.086h-440.32v-102.4z" />
<glyph unicode="&#xe645;" d="M135.373 647.322c89.446 76.8 160.154 137.574 351.846 29.184 92.109-52.070 166.4-71.629 228.25-71.629 108.288 0 178.432 60.262 239.104 112.333 21.658 18.586 24.474 51.61 6.246 73.677s-50.483 24.934-72.141 6.349c-89.446-76.851-160.102-137.574-351.898-29.184-253.338 143.104-372.019 41.165-467.354-40.755-21.606-18.586-24.422-51.558-6.246-73.626s50.534-24.986 72.192-6.349zM888.627 535.757c-89.446-76.8-160.102-137.574-351.898-29.184-253.286 143.104-371.968 41.165-467.302-40.704-21.658-18.586-24.474-51.61-6.246-73.677s50.483-24.934 72.141-6.349c89.446 76.851 160.154 137.574 351.846 29.235 92.109-52.070 166.4-71.68 228.25-71.68 108.288 0 178.432 60.262 239.104 112.384 21.658 18.586 24.474 51.558 6.246 73.626-18.176 22.118-50.483 24.934-72.141 6.349zM888.627 274.278c-89.446-76.8-160.102-137.574-351.898-29.184-253.286 143.104-372.019 41.216-467.302-40.704-21.658-18.586-24.474-51.61-6.246-73.677s50.483-24.934 72.141-6.349c89.498 76.851 160.154 137.523 351.898 29.235 92.109-52.070 166.4-71.68 228.25-71.68 108.288 0 178.432 60.262 239.104 112.384 21.658 18.534 24.474 51.558 6.246 73.626s-50.534 24.986-72.192 6.349z" />
<glyph unicode="&#xe646;" d="M798.72 738.406c0 109.568 0 120.269 0 120.269 0 40.448-128.358 114.125-286.72 114.125s-286.72-73.677-286.72-114.125c0 0 0-10.701 0-120.269 0-109.568 198.502-200.038 198.502-277.606 0-77.619-198.502-168.038-198.502-277.658 0-109.568 0-120.269 0-120.269 0-40.397 128.358-114.074 286.72-114.074s286.72 73.677 286.72 114.125c0 0 0 10.701 0 120.269 0 109.619-198.451 200.038-198.451 277.658 0 77.517 198.451 168.038 198.451 277.555zM304.128 853.555c35.635 22.477 102.451 55.45 210.637 55.45 108.237 0 205.107-55.45 205.107-55.45 7.27-4.403 35.738-19.661 16.23-31.181-42.957-25.446-126.925-52.224-224.154-52.224s-178.33 29.542-221.286 54.989c-19.507 11.571 13.466 28.416 13.466 28.416zM537.651 460.8c0-61.082 50.995-100.403 105.062-152.883 39.475-38.349 93.44-90.829 93.44-124.774v-67.994c-49.613 24.73-198.195 48.947-198.195 128.205 0 40.141-51.917 40.141-51.917 0 0-79.258-148.582-103.475-198.195-128.205v67.994c0 33.894 54.016 86.426 93.491 124.774 54.016 52.48 105.011 91.802 105.011 152.883 0 61.082-50.995 100.403-105.011 152.883-39.475 38.349-93.491 90.88-93.491 124.723l-2.406 51.2c52.531-28.262 135.834-55.245 226.56-55.245s174.438 26.982 226.97 55.245l-2.816-51.2c0-33.843-54.016-86.374-93.44-124.723-54.067-52.48-105.062-91.802-105.062-152.883z" />
<glyph unicode="&#xe647;" d="M416.154 266.138c-35.328-61.235-11.571-111.616 37.427-139.878s104.55-23.757 139.878 37.478c35.328 61.184 258.406 607.539 239.002 618.752-19.354 11.213-380.979-455.117-416.307-516.352zM512 655.258c22.426 0 44.288-1.946 65.587-5.53 22.426 28.058 47.565 58.982 71.987 88.422-43.622 12.646-89.651 19.507-137.574 19.507-287.078 0-512-242.074-512-551.117 0-19.046 0.87-38.042 2.509-56.576 2.509-28.16 27.648-48.896 55.552-46.438 28.16 2.56 48.947 27.392 46.438 55.552-1.382 15.514-2.099 31.488-2.099 47.462 0 251.597 179.968 448.717 409.6 448.717zM881.613 591.309c-14.285-38.4-29.389-77.517-42.701-111.36 52.070-75.264 82.688-169.626 82.688-273.408 0-16.23-0.717-32.563-2.15-48.384-2.56-28.16 18.176-53.043 46.336-55.654 1.587-0.154 3.123-0.205 4.71-0.205 26.163 0 48.486 20.019 50.893 46.541 1.741 18.944 2.611 38.349 2.611 57.702 0 151.091-53.862 286.157-142.387 384.768z" />
<glyph unicode="&#xe649;" d="M269.978 618.803c10.291 0 20.224-1.536 29.542-4.454 35.328 39.578 74.496 75.622 116.89 107.571-1.741 7.424-2.816 15.206-2.816 23.245 0 11.162 1.843 21.811 5.222 31.744-47.462 34.099-99.174 62.669-154.061 84.787-51.558-31.846-96.461-73.37-132.25-122.010 26.573-47.053 58.214-90.931 94.106-130.918 13.158 6.4 27.853 10.035 43.366 10.035zM169.779 518.605c0 14.029 2.918 27.443 8.141 39.578-32.102 35.328-61.286 73.421-86.835 114.074-32-63.59-50.125-135.424-50.125-211.456 0-88.115 24.269-170.496 66.355-240.998 15.002 84.736 43.571 164.864 82.944 238.285-12.8 16.794-20.48 37.734-20.48 60.518zM513.792 845.414c26.522 0 50.483-10.342 68.403-27.085 52.275 22.477 107.366 39.731 164.659 50.739-69.171 39.834-149.299 62.771-234.854 62.771-58.317 0-114.125-10.701-165.632-30.106 40.909-20.224 79.923-43.725 116.531-70.349 14.95 8.858 32.307 14.029 50.893 14.029zM663.706 373.35c6.246 13.005 15.104 24.474 26.061 33.587-29.594 91.034-76.442 174.285-136.806 245.965-12.032-5.12-25.242-7.936-39.168-7.936-21.709 0-41.779 7.014-58.214 18.739-36.352-27.597-69.939-58.573-100.506-92.365 9.523-15.309 15.104-33.331 15.104-52.736 0-10.496-1.587-20.531-4.557-30.054 87.91-58.726 189.082-99.021 298.086-115.2zM793.702 238.029c1.331-18.944 2.099-38.093 2.099-57.395 0-34.048-2.202-67.482-6.298-100.403 79.923 58.368 140.698 141.158 171.418 237.517-36.352-8.806-73.626-15.104-111.667-18.739-8.96-27.392-29.338-49.613-55.552-60.979zM640.205 306.022c-116.275 19.251-224.102 63.59-317.901 127.181-15.258-9.37-33.075-14.848-52.275-14.848-7.066 0-13.875 0.768-20.531 2.15-44.902-85.197-73.626-180.224-81.92-280.883 44.851-48.077 99.584-86.784 161.075-112.794 76.288 117.299 182.989 214.426 311.552 279.194zM828.211 809.882c-75.469-7.27-147.558-26.214-214.682-54.682 0.41-3.277 0.563-6.656 0.563-10.035 0-15.821-3.738-30.72-10.291-43.981 67.072-78.746 119.142-170.496 152.064-270.899 40.704-0.768 75.571-25.702 90.573-61.184 45.363 4.608 89.498 13.312 132.045 25.805 2.918 21.504 4.557 43.469 4.557 65.894 0 138.445-59.75 262.963-154.829 349.082zM690.637 252.467c-120.064-56.218-220.365-142.797-293.069-248.627 36.608-9.165 74.957-14.080 114.432-14.080 71.117 0 138.394 15.821 198.81 43.981 9.677 47.462 14.848 96.563 14.848 146.893 0 18.125-0.87 36.147-2.202 54.016-12.083 3.84-23.194 9.933-32.819 17.818z" />
<glyph unicode="&#xe64a;" d="M905.728 730.829c-25.702 152.474-164.864 254.31-310.733 227.379-145.92-26.88-269.005-144.179-243.302-296.653 5.581-32.819 20.89-84.224 39.066-121.088l-264.96-395.418c-9.779-14.592-15.309-40.909-12.39-58.419l17.050-100.915c2.97-17.51 19.098-29.286 35.84-26.214l77.619 14.285c16.794 3.123 38.042 17.869 47.309 32.819l105.728 170.547 70.912 13.107 122.317 198.554c40.243-7.117 97.894-4.71 131.994 1.587 145.971 26.931 209.306 187.955 183.552 340.429zM776.499 652.698c-40.141-59.853-81.050-17.664-138.394 24.32-57.293 41.933-109.312 67.738-69.171 127.59 40.141 59.904 119.091 74.496 176.435 32.512 57.344-41.933 71.27-124.57 31.13-184.422z" />
<glyph unicode="&#xe64b;" d="M788.89 460.8c0 141.619 65.382 221.184 116.582 221.184 18.637 0 67.277 0 67.277 0-34.15 54.221-62.413 86.016-187.187 86.016h-512.41c-191.181 0-273.152-176.179-273.152-307.2s81.971-307.2 273.152-307.2h512.41c124.826 0 153.037 31.795 187.238 86.067 0 0-16.077 0-67.277 0s-116.634 79.565-116.634 221.133zM649.626 368.947c-8.346-12.902-34.56-0.819-34.56-0.819l-151.398 68.403c0 0-13.517-34.253-23.962-58.368s-18.483-51.456-61.901-20.89c-43.469 30.566-183.296 166.4-183.296 166.4s-17.715 14.49-8.858 28.16c8.346 12.902 34.56 0.819 34.56 0.819l151.398-68.403c0 0 13.517 34.202 23.962 58.368 10.445 24.064 18.483 51.456 61.901 20.89 43.469-30.566 183.347-166.451 183.347-166.451s17.613-14.438 8.806-28.109zM966.4 566.938h-38.298c-28.672 0-56.627-38.656-56.627-101.376s28.006-101.325 56.627-101.325h38.298c28.621 0 57.6 38.605 57.6 101.325s-28.979 101.376-57.6 101.376z" />
<glyph unicode="&#xe64c;" d="M580.147 901.12v0c-251.29 0-409.498-86.579-398.899-156.16 3.072-19.866 11.52-73.984 22.221-142.080-123.136-47.821-163.942-125.286-158.464-188.518 6.451-74.803 73.779-154.88 221.594-168.755 84.378-7.834 185.907 38.4 251.75 117.504-6.298 10.65-9.882 22.938-9.882 36.198 0 39.578 32.051 71.68 71.629 71.68s71.68-32.102 71.68-71.68c0-39.014-31.232-70.707-70.042-71.578-78.336-101.018-197.581-161.946-310.528-154.829 2.611-16.64 3.635-22.938 4.915-31.386 4.659-29.594 120.166-120.832 303.974-120.986h0.051c183.808 0.154 299.366 91.392 303.974 120.986 4.557 29.44 84.070 532.787 94.822 603.443 10.65 69.53-147.61 156.16-398.797 156.16zM116.429 420.608c-2.816 32.87 23.296 76.646 98.458 109.517 10.803-68.659 22.579-143.206 32.922-208.64-82.125 16.128-127.898 58.931-131.379 99.123zM580.096 638.771c-183.808 0.102-314.214 68.352-314.214 93.798-0.102 25.344 130.406 93.696 314.214 93.594 183.808 0.102 314.368-68.25 314.266-93.594 0-25.446-130.406-93.696-314.266-93.798z" />
<glyph unicode="&#xe64d;" d="M622.797 58.419c-1.434-15.872 11.11-29.901 27.955-31.283l204.032-16.742c16.794-1.382 31.795 10.394 33.229 26.266l15.974 168.243-265.267 21.862-15.923-168.346zM120.013 204.851l15.923-168.243c1.485-15.872 16.486-27.648 33.28-26.266l204.032 16.742c16.794 1.382 29.389 15.462 27.904 31.283l-15.974 168.294-265.165-21.811zM93.747 482.15l16.435-173.568 265.267 21.811-16.486 173.414c-0.358 4.147-0.563 8.499-0.563 12.749 0 79.667 68.915 144.435 153.6 144.435s153.6-64.819 153.6-144.435c0-4.25-0.205-8.55-0.614-12.749l-16.384-173.414 265.216-21.811 16.435 173.568c1.024 11.469 1.587 22.989 1.587 34.406 0 217.702-188.365 394.803-419.84 394.803s-419.84-177.101-419.84-394.803c0-11.418 0.563-22.938 1.587-34.406z" />
<glyph unicode="&#xe64e;" d="M956.621 389.222l-161.178 383.59c-12.698 25.6-46.49 46.541-75.11 46.541h-416.614c-28.621 0-62.413-20.941-75.162-46.541l-161.126-383.59c-12.8-25.6-19.405-69.632-14.694-97.894l34.816-188.723c4.71-28.211 31.898-51.302 60.467-51.302h728.064c28.621 0 55.808 23.091 60.518 51.302l34.816 188.723c4.557 28.211-1.997 72.294-14.797 97.894zM886.784 254.771l-13.21-76.902c-3.994-29.542-30.618-53.709-59.085-53.709h-604.979c-28.518 0-55.091 24.166-59.085 53.709l-13.261 76.902c-3.942 29.542 16.128 53.709 44.698 53.709h660.275c28.57-0.051 48.64-24.166 44.646-53.709z" />
<glyph unicode="&#xe64f;" d="M512 880.64c-219.085 0-355.226-72.192-347.853-130.765l73.83-607.59c2.918-23.654 113.715-101.171 274.022-101.325 160.358 0.154 271.104 77.722 274.074 101.325l73.779 607.59c7.373 58.573-128.717 130.765-347.853 130.765zM512 660.941c-160.307 0.154-274.074 57.242-274.074 78.592-0.051 21.197 113.766 78.438 274.074 78.336 160.307 0.051 274.125-57.139 274.074-78.336 0-21.35-113.715-78.438-274.074-78.592z" />
<glyph unicode="&#xe650;" d="M627.866 329.318c0 0 361.421 260.762 321.331 559.258-0.922 6.554-3.072 10.854-5.734 13.773-2.816 2.714-7.014 4.966-13.466 5.888-291.686 40.909-546.509-328.909-546.509-328.909-221.082 26.522-205.005-17.613-305.869-259.84-19.302-46.182 11.981-62.106 46.285-49.101 34.304 12.902 110.029 41.523 110.029 41.523l132.557-135.629c0 0-27.955-77.466-40.602-112.538-12.646-35.174 2.867-67.174 48.026-47.462 236.749 103.27 279.859 86.835 253.952 313.037zM679.475 632.218c-30.618 31.334-30.618 82.125 0 113.459 30.618 31.283 80.23 31.283 110.848 0 30.669-31.283 30.669-82.125 0-113.459-30.566-31.386-80.23-31.386-110.848 0z" />
<glyph unicode="&#xe651;" d="M141.466 278.426c-77.517-76.186-12.032-154.419-115.046-270.387-46.49-52.326 191.386-36.352 309.248 79.514 49.971 49.101 35.891 120.73-17.715 173.466-53.606 52.685-126.515 66.509-176.486 17.408zM1000.499 939.11c-39.782 39.066-480.205-313.856-611.328-442.726-65.075-63.949-86.784-98.253-106.752-123.904-8.653-11.162 2.816-14.592 7.936-17.254 25.754-13.107 43.776-25.293 67.123-48.23 23.347-22.886 35.789-40.602 49.101-65.946 2.662-5.069 6.195-16.333 17.51-7.782 26.112 19.61 60.979 40.96 126.003 104.909 131.123 128.87 490.086 561.818 450.406 600.934z" />
<glyph unicode="&#xe652;" d="M921.6 768h-51.2v-768h51.2c56.32 0 102.4 46.080 102.4 102.4v563.2c0 56.32-46.080 102.4-102.4 102.4zM0 665.6v-563.2c0-56.32 46.080-102.4 102.4-102.4h51.2v768h-51.2c-56.32 0-102.4-46.080-102.4-102.4zM686.080 875.162c-34.867 16.23-90.522 46.438-174.080 46.438s-139.213-30.208-174.080-46.438v-107.162h-112.64v-768h573.44v768h-112.64v107.162zM624.64 768h-225.28v68.352c27.29 11.776 66.458 23.808 112.64 23.808s85.299-11.981 112.64-23.757v-68.403z" />
<glyph unicode="&#xe653;" d="M512 354.355c122.368 0 224.819 41.574 231.014 95.898-18.176 51.046-38.042 106.701-57.549 161.434-13.517-39.014-88.32-66.56-173.466-66.56s-159.898 27.494-173.517 66.509c-19.507-54.733-39.27-110.336-57.498-161.434 6.195-54.272 108.595-95.846 231.014-95.846zM512 697.651c57.498 0 110.95 17.818 126.618 45.466-21.555 60.57-40.090 112.486-51.814 145.254-7.731 21.862-43.008 33.229-74.803 33.229s-67.072-11.366-74.803-33.178c-11.725-32.768-30.208-84.736-51.814-145.254 15.667-27.699 69.12-45.517 126.618-45.517zM961.536 303.821l-192.256 77.466 22.17-61.798c-1.126-65.434-128.256-117.658-279.45-117.658s-278.323 52.224-279.398 117.658l22.118 61.798-192.256-77.466c-53.914-21.76-56.166-61.952-5.069-89.344l361.574-193.894c51.149-27.392 134.861-27.392 186.010 0l361.574 193.894c51.2 27.392 48.896 67.584-5.018 89.344z" />
<glyph unicode="&#xe654;" d="M512 952.371c-271.053 0-491.52-220.57-491.52-491.571 0-271.053 220.467-491.571 491.52-491.571s491.52 220.518 491.52 491.571c0 271.002-220.467 491.571-491.52 491.571zM931.226 460.8c0-95.898-32.563-184.371-86.835-255.027-15.36 12.032-31.642 44.442-16.282 78.029 15.462 33.792 19.507 112.026 15.974 142.438-3.379 30.413-19.2 103.731-62.208 104.448-42.854 0.666-72.294 14.797-97.792 65.69-52.89 105.83 99.277 126.208 46.387 184.832-14.797 16.435-91.29-67.789-102.502 44.442-0.768 8.038 6.912 20.070 17.152 32.512 166.093-55.808 286.106-212.787 286.106-397.363zM454.4 875.827c-9.984-19.456-36.454-27.443-52.582-42.138-34.97-31.642-50.022-27.29-68.915-57.702-18.944-30.413-80.179-74.189-80.179-96.205 0-21.965 30.925-47.974 46.387-42.906 15.462 5.12 56.218 4.813 80.179-3.584 24.013-8.499 200.448-16.947 144.179-166.093-17.818-47.411-95.846-39.424-116.634-117.965-3.123-11.52-13.875-60.723-14.643-76.8-1.229-24.883 17.613-118.682-6.4-118.682-24.115 0-88.934 83.917-88.934 99.123s-16.845 68.557-16.845 114.176-77.67 44.902-77.67 105.574c0 54.784 42.138 82.022 32.666 108.186-9.318 26.112-83.302 27.034-114.125 30.208 53.862 139.878 180.685 243.712 333.517 264.806zM380.16 62.976c25.19 13.261 27.75 30.464 50.586 31.386 26.112 1.126 47.36 10.189 76.749 16.64 26.163 5.683 72.858 32.205 114.074 35.584 34.662 2.867 103.168-1.792 121.6-35.277-66.355-44.032-145.818-69.734-231.168-69.734-46.080 0-90.368 7.578-131.84 21.402z" />
<glyph unicode="&#xe655;" d="M952.32 768h-880.64c-39.424 0-71.68-32.256-71.68-71.68v-471.091c0-39.373 32.256-71.629 71.68-71.629h880.64c39.475 0 71.68 32.256 71.68 71.629v471.091c0 39.424-32.256 71.68-71.68 71.68zM563.2 665.6h102.4v-102.4h-102.4v102.4zM716.8 512v-102.4h-102.4v102.4h102.4zM409.6 665.6h102.4v-102.4h-102.4v102.4zM563.2 512v-102.4h-102.4v102.4h102.4zM256 665.6h102.4v-102.4h-102.4v102.4zM409.6 512v-102.4h-102.4v102.4h102.4zM102.4 665.6h102.4v-102.4h-102.4v102.4zM256 512v-102.4h-102.4v102.4h102.4zM204.8 256h-102.4v102.4h102.4v-102.4zM768 256h-512v102.4h512v-102.4zM921.6 256h-102.4v102.4h102.4v-102.4zM768 409.6v102.4h102.4v-102.4h-102.4zM921.6 563.2h-204.8v102.4h204.8v-102.4z" />
<glyph unicode="&#xe656;" d="M921.6 870.4h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.371 46.080-102.4 102.4-102.4h819.2c56.32 0 102.4 46.029 102.4 102.4v614.4c0 56.32-46.080 102.4-102.4 102.4zM235.52 774.656c21.248 0 38.4-16.691 38.4-37.325 0-20.685-17.152-37.376-38.4-37.376s-38.4 16.691-38.4 37.325c0 20.685 17.203 37.376 38.4 37.376zM94.72 737.28c0 20.634 17.152 37.325 38.4 37.325s38.4-16.64 38.4-37.325c0-20.685-17.152-37.376-38.4-37.376s-38.4 16.742-38.4 37.376zM922.624 153.6h-821.248v471.040h821.248v-471.040zM922.624 706.56h-615.424v61.44h615.424v-61.44z" />
<glyph unicode="&#xe657;" d="M921.6 921.6h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-101.376 102.4-101.376h203.776v100.352h-204.8v472.064h821.248v-472.064h-204.8v-100.403h203.776c56.371 0 102.4 45.107 102.4 101.376v614.451c0 56.32-46.029 102.4-102.4 102.4zM133.171 751.104c-21.248 0-38.4 16.742-38.4 37.376s17.152 37.376 38.4 37.376c21.197 0 38.4-16.742 38.4-37.376s-17.203-37.376-38.4-37.376zM235.571 751.104c-21.248 0-38.4 16.742-38.4 37.376s17.152 37.376 38.4 37.376c21.197 0 38.4-16.742 38.4-37.376s-17.203-37.376-38.4-37.376zM922.675 756.736h-616.499v63.488h616.448v-63.488zM509.338 554.291l-248.422-246.886h153.6v-307.405h189.645v307.405h153.6l-248.422 246.886z" />
<glyph unicode="&#xe658;" d="M921.6 716.8h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-307.2c0-56.32 46.080-102.4 102.4-102.4h819.2c56.371 0 102.4 46.080 102.4 102.4v307.2c0 56.32-46.029 102.4-102.4 102.4zM921.6 307.2h-819.2v307.2h819.2v-307.2zM870.4 562.176h-204.8v-202.701h204.8v202.701zM614.4 562.176h-204.8v-202.701h204.8v202.701zM358.4 562.176h-204.8v-202.701h204.8v202.701z" />
<glyph unicode="&#xe659;" d="M921.6 716.8h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-307.2c0-56.32 46.080-102.4 102.4-102.4h819.2c56.371 0 102.4 46.080 102.4 102.4v307.2c0 56.32-46.029 102.4-102.4 102.4zM921.6 307.2h-819.2v307.2h819.2v-307.2zM614.4 562.176h-204.8v-202.701h204.8v202.701zM358.4 562.176h-204.8v-202.701h204.8v202.701z" />
<glyph unicode="&#xe65a;" d="M921.6 716.8h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-307.2c0-56.32 46.080-102.4 102.4-102.4h819.2c56.371 0 102.4 46.080 102.4 102.4v307.2c0 56.32-46.029 102.4-102.4 102.4zM921.6 307.2h-819.2v307.2h819.2v-307.2zM358.4 562.176h-204.8v-202.701h204.8v202.701z" />
<glyph unicode="&#xe65b;" d="M921.6 716.8h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-307.2c0-56.32 46.080-102.4 102.4-102.4h819.2c56.32 0 102.4 46.080 102.4 102.4v307.2c0 56.32-46.080 102.4-102.4 102.4zM921.6 307.2h-819.2v307.2h819.2v-307.2z" />
<glyph unicode="&#xe65d;" d="M972.8 501.76c-9.318 0-40.909 0-50.176 0-28.262 0-51.2-18.33-51.2-40.96s22.938-40.96 51.2-40.96c9.318 0 40.909 0 50.176 0 28.314 0 51.2 18.33 51.2 40.96s-22.886 40.96-51.2 40.96zM512 742.4c-156.16 0-281.6-125.44-281.6-281.6 0-156.211 125.44-281.6 281.6-281.6 156.211 0 281.6 125.389 281.6 281.6 0 156.16-125.389 281.6-281.6 281.6zM512 256c-113.152 0-204.8 91.648-204.8 204.8 0 113.101 91.648 204.8 204.8 204.8s204.8-91.699 204.8-204.8c0-113.152-91.648-204.8-204.8-204.8zM152.525 460.8c0 22.63-21.862 40.96-50.125 40.96-9.472 0-41.779 0-51.2 0-28.262 0-51.2-18.33-51.2-40.96s22.938-40.96 51.2-40.96c9.421 0 41.728 0 51.2 0 28.262 0 50.125 18.33 50.125 40.96zM512 819.2c22.579 0 40.96 22.938 40.96 51.2 0 9.37 0 41.83 0 51.2 0 28.262-18.33 51.2-40.96 51.2s-40.96-22.938-40.96-51.2c0-9.37 0-41.83 0-51.2 0-28.262 18.381-51.2 40.96-51.2zM512 102.4c-22.579 0-40.96-22.938-40.96-51.2 0-9.37 0-41.83 0-51.2 0-28.314 18.33-51.2 40.96-51.2s40.96 22.886 40.96 51.2c0 9.37 0 41.83 0 51.2 0 28.262-18.381 51.2-40.96 51.2zM889.088 779.981c20.019 20.019 23.245 49.203 7.27 65.178s-45.158 12.749-65.126-7.27c-5.478-5.53-30.31-30.31-35.84-35.84-20.019-20.019-23.245-49.152-7.27-65.126s45.21-12.8 65.178 7.219c5.478 5.53 30.31 30.31 35.789 35.84zM170.701 177.459c-5.53-5.53-30.31-30.362-35.84-35.84-19.968-20.019-23.194-49.152-7.219-65.126 15.974-15.974 45.158-12.749 65.126 7.219 5.53 5.478 30.362 30.31 35.84 35.84 20.019 20.019 23.245 49.152 7.219 65.126s-45.158 12.698-65.126-7.219zM192.819 837.939c-20.019 19.968-49.152 23.245-65.178 7.219s-12.749-45.158 7.219-65.178c5.53-5.53 30.31-30.31 35.84-35.84 20.019-19.968 49.152-23.245 65.126-7.219s12.8 45.158-7.219 65.126c-5.478 5.53-30.259 30.362-35.789 35.891zM795.341 119.501c5.53-5.53 30.362-30.362 35.84-35.84 20.019-19.968 49.203-23.194 65.178-7.219 15.974 15.974 12.698 45.158-7.27 65.126-5.53 5.478-30.362 30.31-35.84 35.84-20.019 19.968-49.203 23.194-65.178 7.219s-12.646-45.107 7.27-65.126z" />
<glyph unicode="&#xe65f;" d="M389.734 754.79c-18.79 17.664-44.186 17.664-63.027 0l-326.707-293.99 326.707-293.939c18.842-17.715 44.237-17.715 63.027 0s18.79 46.387 0 64.102l-253.645 229.837 253.696 229.786c18.739 17.715 18.739 46.438-0.051 64.205zM697.293 754.79c-18.842 17.664-44.186 17.664-63.027 0-18.79-17.766-17.818-46.438 1.075-64.154l252.57-229.837-252.621-229.837c-18.842-17.715-19.866-46.387-1.075-64.102 18.842-17.715 44.186-17.715 63.027 0l326.758 293.939-326.707 293.99z" />
<glyph unicode="&#xe660;" d="M921.6 911.36h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-563.2c0-56.32 45.158-111.462 100.403-122.522l223.846-44.749c0 0-192.666-68.25-68.25-68.25h512c124.416 0-68.25 68.25-68.25 68.25l223.846 44.749c55.194 11.059 100.403 66.202 100.403 122.522v563.2c0 56.32-46.080 102.4-102.4 102.4zM921.6 250.88h-819.2v568.32h819.2v-568.32z" />
<glyph unicode="&#xe661;" d="M814.182 686.080c-106.445 0-223.078-59.29-302.182-149.248-79.104 89.958-195.789 149.248-302.234 149.248-101.427 0-209.766-59.187-209.766-225.28s108.339-225.229 209.766-225.28v0c106.496 0 223.13 59.29 302.234 149.248 79.104-89.958 195.738-149.248 302.182-149.248 101.478 0 209.818 59.187 209.818 225.28s-108.339 225.28-209.818 225.28zM209.766 325.632c-77.414 0-116.685 45.466-116.685 135.168s39.27 135.219 116.685 135.219c85.606 0 185.037-55.603 246.067-135.219-61.030-79.616-160.41-135.168-246.067-135.168zM814.182 325.632c-85.606 0-185.037 55.552-246.067 135.168 60.979 79.616 160.461 135.219 246.067 135.219 77.466 0 116.685-45.517 116.685-135.219s-39.219-135.168-116.685-135.168z" />
<glyph unicode="&#xe662;" d="M367.872-8.704c40.397-26.112 87.194-43.776 144.128-42.394 56.934-1.382 103.68 16.282 144.077 42.394v105.984h-288.205v-105.984zM650.035 158.771c0 223.027 237.107 294.4 219.341 516.557-11.162 140.186-106.138 297.472-357.376 297.472s-346.214-157.286-357.376-297.472c-17.766-222.208 219.29-293.53 219.29-516.557h276.122zM263.066 667.238c10.65 133.069 101.171 200.55 248.934 200.55s238.285-67.482 248.883-200.55c5.786-72.858-36.096-121.446-92.672-201.011-41.626-58.675-90.88-127.949-113.92-218.163h-84.634c-23.040 90.214-72.243 159.437-113.971 218.163-56.525 79.616-98.406 128.154-92.621 201.011z" />
<glyph unicode="&#xe663;" d="M921.6 819.2h-819.2c-56.32 0-102.4-46.080-102.4-102.4v-512c0-56.32 46.080-102.4 102.4-102.4h819.2c56.32 0 102.4 46.080 102.4 102.4v512c0 56.32-46.080 102.4-102.4 102.4zM921.6 204.8h-819.2v307.2h819.2v-307.2zM921.6 665.6h-819.2v51.2h819.2v-51.2zM204.8 404.48v-30.72h30.72v30.72h-30.72zM389.12 343.040v-30.72h61.44v30.72h30.72v30.72h30.72v30.72h-61.44v-30.72h-30.72v-30.72h-30.72zM512 312.32v30.72h-30.72v-30.72h30.72zM358.4 312.32v30.72h-61.44v-30.72h61.44zM389.12 373.76h30.72v30.72h-61.44v-61.44h30.72v30.72zM266.24 343.040h30.72v30.72h30.72v30.72h-61.44v-30.72h-30.72v-30.72h-30.72v-30.72h61.44v30.72z" />
<glyph unicode="&#xe664;" d="M856.422 315.392c-43.213-69.837-180.992-120.883-344.422-120.883-163.328 0-301.21 51.046-344.371 120.883-9.165 14.797-14.029 6.861-14.029-0.461 0-7.373 0-102.502 0-102.502 0-99.277 160.461-202.189 358.4-202.189s358.4 102.912 358.4 202.189c0 0 0 95.13 0 102.502 0 7.322-4.915 15.258-13.978 0.461zM856.934 577.28c-42.445-61.747-180.838-107.008-344.934-107.008s-302.49 45.261-344.934 107.008c-8.806 12.749-13.466 5.837-13.466 0.051 0-5.786 0-120.627 0-120.627 0-90.266 160.461-163.379 358.4-163.379s358.4 73.114 358.4 163.379c0 0 0 114.842 0 120.627 0 5.786-4.71 12.698-13.466-0.051zM512 911.36c-197.939 0-358.4-60.314-358.4-134.758v-64.461c0-78.95 160.461-142.95 358.4-142.95s358.4 64 358.4 142.95v64.41c0 74.496-160.461 134.81-358.4 134.81z" />
<glyph unicode="&#xe666;" d="M798.72 870.4l-61.44-153.6h-450.56l-61.44 153.6c-39.424 0-71.68-32.256-71.68-71.68v-778.24c0-39.424 32.256-71.68 71.68-71.68h573.44c39.475 0 71.68 32.256 71.68 71.68v778.24c0 39.424-32.256 71.68-71.68 71.68zM696.32 768l46.080 102.4h-111.616l-36.864 102.4h-163.84l-36.864-102.4h-111.616l46.080-102.4h368.64z" />
<glyph unicode="&#xe667;" d="M204.8 102.4c0-56.525 45.875-102.4 102.4-102.4 56.576 0 102.4 45.875 102.4 102.4s-45.824 102.4-102.4 102.4c-56.525 0-102.4-45.875-102.4-102.4zM716.8 102.4c0-56.525 45.875-102.4 102.4-102.4 56.576 0 102.4 45.875 102.4 102.4s-45.824 102.4-102.4 102.4c-56.525 0-102.4-45.875-102.4-102.4zM386.406 344.474l566.733 161.894c10.803 3.123 19.661 14.848 19.661 26.112v281.6h-721.92v87.040c0 11.264-9.165 20.48-20.48 20.48h-158.72c-11.264 0-20.48-9.216-20.48-20.48v-81.92h99.482l100.762-463.718 9.728-48.282v-76.8c0-11.264 9.216-20.48 20.429-20.48h670.771c11.213 0 20.429 9.216 20.429 20.48v76.8h-575.898c-58.829 0-60.058 23.040-10.496 37.274z" />
<glyph unicode="&#xe668;" d="M942.080 870.4h-860.16c-16.947 0-30.72-13.773-30.72-30.72v-122.88h921.6v122.88c0 16.947-13.773 30.72-30.72 30.72zM102.4 122.88c0-39.424 32.256-71.68 71.68-71.68h675.84c39.475 0 71.68 32.256 71.68 71.68v542.72h-819.2v-542.72zM358.4 563.2h307.2v-102.4h-307.2v102.4z" />
<glyph unicode="&#xe669;" d="M251.187 381.85l181.862-181.862 333.67 333.67-181.914 181.862-333.619-333.67zM978.176 631.603l-77.414 77.363c-14.797-7.987-31.59-12.595-49.613-12.595-57.19 0-103.578 46.387-103.578 103.629 0 17.971 4.506 34.867 12.595 49.613l-77.414 77.363c-20.224 20.173-53.094 20.173-73.318 0l-563.61-563.661c-20.173-20.173-20.173-53.146 0-73.318l77.414-77.414c14.746 8.038 31.642 12.595 49.562 12.595 57.242 0 103.629-46.336 103.629-103.578 0-17.971-4.557-34.867-12.646-49.613l77.363-77.414c20.173-20.173 53.146-20.173 73.318 0l563.712 563.712c20.122 20.173 20.122 53.146 0 73.318zM433.050 116.787l-265.011 265.062 416.87 416.819 265.011-265.011-416.87-416.87z" />
<glyph unicode="&#xe66a;" d="M102.502 829.491v-121.242c362.803 0 656.896-294.144 656.896-656.947h121.293c0 429.773-348.416 778.189-778.189 778.189zM102.502 586.957v-121.293c228.864 0 414.413-185.498 414.413-414.362h121.19c0 295.782-239.77 535.654-535.603 535.654zM218.726 283.75c-64.154 0-116.224-52.070-116.224-116.275s52.070-116.224 116.224-116.224c64.205 0 116.275 52.019 116.275 116.224s-52.070 116.275-116.275 116.275z" />
<glyph unicode="&#xe66b;" d="M512 256c-56.013 0-101.325-45.875-101.325-102.4s45.312-102.4 101.325-102.4c55.962 0 101.325 45.875 101.325 102.4s-45.363 102.4-101.325 102.4zM296.96 370.79l71.68-72.397c79.155 79.974 207.514 79.974 286.72 0l71.68 72.397c-118.784 120.013-311.347 120.013-430.080 0zM153.6 515.635l71.629-72.397c158.362 159.949 415.078 159.949 573.44 0l71.731 72.397c-197.939 199.936-518.861 199.936-716.8 0zM10.24 660.429l71.68-72.397c237.568 239.923 622.643 239.923 860.16 0l71.68 72.397c-277.094 279.962-726.426 279.962-1003.52 0z" />
<glyph unicode="&#xe66c;" d="M645.171 467.61v453.99c0 28.262-22.938 51.2-51.2 51.2h-174.131c-28.314 0-40.96-22.938-40.96-51.2v-453.99c-85.453-47.053-143.36-137.933-143.36-242.33 0-152.678 123.802-276.48 276.48-276.48s276.48 123.802 276.48 276.48c0 104.397-57.907 195.277-143.309 242.33zM512 51.2c-96.154 0-174.080 77.926-174.080 174.080 0 79.565 53.453 146.432 126.362 167.27v375.45h102.4v-377.498c69.325-22.938 119.45-88.218 119.45-165.222-0.051-96.154-77.978-174.080-174.131-174.080z" />
<glyph unicode="&#xe66d;" d="M202.496 968.038c-0.768 6.349-11.264 6.349-11.981 0-26.163-210.688-159.795-254.106-159.795-400.538 0-90.47 75.878-163.789 165.786-163.789s165.786 73.318 165.786 163.789c0 146.432-133.632 189.85-159.795 400.538zM833.485 968.038c-0.819 6.349-11.213 6.349-11.981 0-26.163-210.688-159.795-254.106-159.795-400.538 0-90.47 75.878-163.789 165.786-163.789s165.786 73.318 165.786 163.789c0 146.432-133.632 189.85-159.795 400.538zM506.010 513.126c-26.163-210.688-159.795-254.054-159.795-400.486 0-90.522 75.878-163.84 165.786-163.84s165.786 73.37 165.786 163.84c0 146.381-133.632 189.798-159.795 400.486-0.768 6.4-11.213 6.4-11.981 0z" />
<glyph unicode="&#xe66e;" d="M921.6 768h-460.8v-256h512v204.8c0 28.262-22.886 51.2-51.2 51.2zM51.2 204.8c0-28.314 12.698-51.2 40.96-51.2h266.24v256h-307.2v-204.8zM460.8 153.6h460.8c28.314 0 51.2 22.886 51.2 51.2v204.8h-512v-256zM51.2 716.8v-204.8h307.2v256h-266.24c-28.262 0-40.96-22.938-40.96-51.2z" />
<glyph unicode="&#xe66f;" d="M35.328 392.602l69.786-17.306 52.531 82.534-99.84 24.73c-24.986 6.246-50.227-8.909-56.422-33.792-6.195-24.781 9.011-49.971 33.946-56.166zM946.227 379.29l-228.506-205.722-268.698 207.923c-5.12 3.994-11.008 6.81-17.306 8.397l-35.789 8.806-52.531-82.483 56.269-13.875 291.738-225.69c8.448-6.605 18.483-9.779 28.57-9.779 11.213 0 22.426 3.994 31.232 11.981l257.382 231.68c19.098 17.203 20.531 46.49 3.328 65.485-17.152 18.995-46.592 20.48-65.69 3.277zM444.621 605.133l250.214-160.205c21.094-13.466 49.152-7.885 63.437 12.646l257.434 370.79c14.592 21.094 9.318 49.92-11.827 64.512s-50.125 9.267-64.768-11.776l-231.834-333.926-251.75 161.178c-10.394 6.656-23.040 8.909-35.174 6.246s-22.63-9.984-29.235-20.429l-383.846-602.573c-13.824-21.606-7.373-50.176 14.336-63.898 7.731-4.915 16.384-7.219 24.934-7.219 15.411 0 30.464 7.578 39.322 21.504l358.758 563.149z" />
<glyph unicode="&#xe670;" d="M459.059 860.262c-197.325-23.45-353.69-179.866-377.139-377.139h377.139v377.139zM566.938 859.494v-432.896c0-28.365-22.989-51.354-51.405-51.354h-432.896c27.699-211.712 208.538-375.194 427.725-375.194 238.387 0 431.718 193.229 431.718 431.718 0 219.187-163.482 400.026-375.142 427.725z" />
<glyph unicode="&#xe671;" d="M870.4 921.6h-112.64c-28.262 0-40.96-22.938-40.96-51.2v-870.4h204.8v870.4c0 28.262-22.886 51.2-51.2 51.2zM563.2 614.4h-112.64c-28.262 0-40.96-22.938-40.96-51.2v-563.2h204.8v563.2c0 28.262-22.886 51.2-51.2 51.2zM256 307.2h-112.64c-28.262 0-40.96-22.886-40.96-51.2v-256h204.8v256c0 28.314-22.938 51.2-51.2 51.2z" />
<glyph unicode="&#xe672;" d="M997.786 850.586l-237.005-386.099c-8.806-14.285-26.010-16.64-38.298-5.171l-114.586 107.315c-12.288 11.469-29.901 9.421-39.219-4.608l-160.922-242.688c-9.267-13.978-27.034-16.179-39.475-4.915l-74.906 68.403c-12.442 11.315-31.181 9.83-41.677-3.226l-235.981-294.298c-10.547-13.158-5.376-23.859 11.366-23.859h986.675v784.64c0.051 16.845-7.168 18.893-15.974 4.506z" />
<glyph unicode="&#xe673;" d="M809.011 563.098h-92.211v71.68c0 148.326-68.301 235.52-204.8 235.52-136.448 0-204.8-87.194-204.8-235.52v-71.68h-102.4c-28.262 0-51.2-33.126-51.2-61.44v-399.36c0-28.16 21.965-58.317 48.742-66.918l61.235-19.814c26.778-8.653 71.731-15.718 99.942-15.718h296.96c28.16 0 73.165 7.066 99.942 15.718l61.235 19.814c26.829 8.602 48.742 38.758 48.742 66.918v399.36c0 28.314-33.126 61.44-61.389 61.44zM409.6 655.258c0 73.984 40.858 112.64 102.4 112.64 61.594 0 102.4-38.656 102.4-112.64v-92.16h-204.8v92.16z" />
<glyph unicode="&#xe674;" d="M808.96 563.2h-92.16v122.88c0 148.326-68.352 235.52-204.8 235.52-136.499 0-204.8-87.194-204.8-235.52v-20.48h102.4v40.96c0 73.984 40.806 112.64 102.4 112.64 61.542 0 102.4-38.656 102.4-112.64v-143.36h-409.6c-28.314 0-51.2-33.126-51.2-61.44v-399.36c0-28.16 21.965-58.266 48.742-66.918l61.235-19.814c26.829-8.602 71.782-15.667 99.942-15.667h296.96c28.211 0 73.165 7.066 99.942 15.718l61.235 19.814c26.778 8.602 48.742 38.707 48.742 66.867v399.36c0 28.314-33.126 61.44-61.44 61.44z" />
<glyph unicode="&#xe675;" d="M564.275 102.4h-411.699v716.8h411.648v-153.6h101.376v153.6c0 56.32-46.029 102.4-102.4 102.4h-409.6c-56.32 0-102.4-46.080-102.4-102.4v-716.8c0-56.32 46.080-102.4 102.4-102.4h409.6c56.371 0 102.4 46.080 102.4 102.4v102.4h-101.325v-102.4zM972.8 435.2l-203.725 199.68v-122.88h-460.8v-153.6h460.8v-122.88l203.725 199.68z" />
<glyph unicode="&#xe676;" d="M870.4 921.6h-460.8c-56.32 0-101.376-46.080-101.376-102.4v-153.6h101.376v153.6h460.8v-716.8h-460.8v102.4h-101.376v-102.4c0-56.32 45.056-102.4 101.376-102.4h460.8c56.32 0 102.4 46.080 102.4 102.4v716.8c0 56.32-46.080 102.4-102.4 102.4zM512 235.52l204.8 199.68-204.8 199.68v-122.88h-460.8v-153.6h460.8v-122.88z" />
<glyph unicode="&#xe677;" d="M424.704 102.4c-22.272 0-43.366 10.394-56.883 28.314l-182.989 241.562c-23.808 31.437-17.613 76.186 13.824 99.994 31.488 23.859 76.186 17.613 99.994-13.824l120.371-158.925 302.694 485.939c20.838 33.434 64.87 43.674 98.355 22.835 33.434-20.787 43.674-64.87 22.784-98.304l-357.53-573.952c-12.442-20.019-33.894-32.563-57.395-33.587-1.075-0.051-2.15-0.051-3.226-0.051z" />
<glyph unicode="&#xe678;" d="M734.669 299.418l-141.21 161.382 141.21 161.382c24.013 24.013 24.013 62.925 0 86.886-24.013 23.962-62.925 23.962-86.886 0l-135.782-155.187-135.731 155.136c-24.013 24.013-62.925 24.013-86.886 0-23.962-24.013-23.962-62.925 0-86.886l141.158-161.331-141.21-161.382c-23.962-24.013-23.962-62.822 0-86.784 24.013-24.013 62.925-24.013 86.886 0l135.782 155.085 135.731-155.085c24.013-24.013 62.925-24.013 86.886 0s24.013 62.771 0.051 86.784z" />
<glyph unicode="&#xe679;" d="M819.2 870.4h-614.4c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h614.4c56.32 0 102.4 46.080 102.4 102.4v614.4c0 56.32-46.080 102.4-102.4 102.4zM768 409.6h-512v102.4h512v-102.4z" />
<glyph unicode="&#xe67a;" d="M819.2 870.4h-614.4c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h614.4c56.32 0 102.4 46.080 102.4 102.4v614.4c0 56.32-46.080 102.4-102.4 102.4zM768 409.6h-204.8v-204.8h-102.4v204.8h-204.8v102.4h204.8v204.8h102.4v-204.8h204.8v-102.4z" />
<glyph unicode="&#xe67b;" d="M819.2 870.4h-614.4c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h614.4c56.32 0 102.4 46.080 102.4 102.4v614.4c0 56.32-46.080 102.4-102.4 102.4zM668.723 215.603l-156.723 156.672-156.723-156.723-88.474 88.525 156.672 156.723-156.672 156.672 88.474 88.525 156.723-156.672 156.672 156.672 88.525-88.474-156.672-156.723 156.723-156.723-88.525-88.474z" />
<glyph unicode="&#xe67c;" d="M512 890.88c-237.568 0-430.080-192.614-430.080-430.080 0-237.568 192.563-430.080 430.080-430.080 237.517 0 430.080 192.563 430.080 430.080 0 237.517-192.563 430.080-430.080 430.080zM770.56 513.126v-104.704h-517.12v104.704h517.12z" />
<glyph unicode="&#xe67d;" d="M512 890.88c-237.568 0-430.080-192.614-430.080-430.080 0-237.568 192.563-430.080 430.080-430.080 237.517 0 430.080 192.563 430.080 430.080 0 237.517-192.563 430.080-430.080 430.080zM564.326 408.474v-206.182h-104.653v206.182h-206.234v104.653h206.182v206.234h104.704v-206.182h206.182v-104.704h-206.182z" />
<glyph unicode="&#xe67e;" d="M512 890.88c-237.568 0-430.080-192.614-430.080-430.080 0-237.568 192.563-430.080 430.080-430.080 237.517 0 430.080 192.563 430.080 430.080 0 237.517-192.563 430.080-430.080 430.080zM600.525 460.8l156.723-156.723-88.525-88.525-156.723 156.723-156.723-156.723-88.474 88.525 156.672 156.723-156.672 156.672 88.474 88.525 156.723-156.672 156.723 156.672 88.525-88.474-156.723-156.723z" />
<glyph unicode="&#xe67f;" d="M778.189 512h-532.429c-28.314 0-30.72-22.938-30.72-51.2s2.406-51.2 30.72-51.2h532.429c28.314 0 30.771 22.938 30.771 51.2s-2.458 51.2-30.771 51.2z" />
<glyph unicode="&#xe680;" d="M778.189 512h-215.040v215.040c0 28.262-22.886 30.72-51.2 30.72-28.262 0-51.2-2.406-51.2-30.72v-215.040h-214.989c-28.314 0-30.72-22.938-30.72-51.2s2.406-51.2 30.72-51.2h214.989v-215.040c0-28.262 22.938-30.72 51.2-30.72 28.314 0 51.2 2.458 51.2 30.72v215.040h215.040c28.314 0 30.771 22.938 30.771 51.2s-2.458 51.2-30.771 51.2z" />
<glyph unicode="&#xe681;" d="M921.6 819.2h-489.165c-22.528 0-54.835-12.134-71.782-26.982l-347.955-304.435c-16.947-14.848-16.947-39.117 0-53.965l347.955-304.486c16.947-14.797 49.254-26.931 71.782-26.931h489.165c56.371 0 102.4 46.080 102.4 102.4v512c0 56.32-46.029 102.4-102.4 102.4zM777.779 256l-130.918 130.918-130.816-130.918-73.933 73.882 130.867 130.918-130.867 130.867 73.933 73.933 130.867-130.867 130.867 130.867 73.882-73.933-130.816-130.867 130.867-130.867-73.933-73.933z" />
<glyph unicode="&#xe682;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52c271.514 0 491.52 220.058 491.52 491.52s-220.006 491.52-491.52 491.52zM776.499 725.197l-0.102 0.102c0-0.051 0.102-0.102 0.102-0.102zM138.035 460.8c0 206.541 167.424 373.965 373.965 373.965 89.805 0 172.237-31.642 236.749-84.378l-526.285-526.234c-52.787 64.461-84.429 146.842-84.429 236.646zM247.501 196.403l0.102-0.102c-0.051 0.051-0.051 0.051-0.102 0.102zM512 86.784c-89.805 0-172.186 31.693-236.646 84.429l526.131 526.234c52.787-64.461 84.48-146.842 84.48-236.646 0.051-206.541-167.475-374.016-373.965-374.016z" />
<glyph unicode="&#xe683;" d="M636.518 972.8c68.608 0 102.912-46.797 102.912-100.25 0-66.765-59.597-128.563-137.114-128.563-65.024 0-102.912 38.4-101.12 101.837 0 53.504 45.056 126.976 135.322 126.976zM425.421-51.2c-54.17 0-93.85 33.382-55.962 180.378l62.157 260.659c10.803 41.728 12.595 58.47 0 58.47-16.282 0-86.528-28.826-128.102-57.242l-27.034 45.107c131.738 111.923 283.238 177.51 348.211 177.51 54.118 0 63.078-65.126 36.096-165.325l-71.219-274.022c-12.595-48.435-7.219-65.126 5.376-65.126 16.282 0 69.478 20.122 121.805 61.85l30.72-41.728c-128.051-130.355-267.93-180.531-322.048-180.531z" />
<glyph unicode="&#xe684;" d="M505.702 931.789c-260.096-3.482-468.173-217.19-464.691-477.338 3.482-259.994 217.19-468.122 477.286-464.64 260.096 3.482 468.173 217.19 464.691 477.338-3.43 260.045-217.19 468.122-477.286 464.64zM557.926 774.81c47.872 0 62.003-27.75 62.003-59.546 0-39.68-31.795-76.39-86.016-76.39-45.363 0-66.918 22.835-65.638 60.518 0 31.795 26.624 75.418 89.651 75.418zM435.149 166.4c-32.717 0-56.678 19.866-33.792 107.213l37.53 154.829c6.502 24.832 7.578 34.765 0 34.765-9.779 0-52.275-17.152-77.414-34.048l-16.333 26.778c79.616 66.458 171.162 105.472 210.381 105.472 32.717 0 38.144-38.707 21.811-98.253l-43.008-162.816c-7.578-28.774-4.301-38.707 3.277-38.707 9.779 0 41.984 11.878 73.626 36.762l18.483-24.832c-77.363-77.363-161.792-107.162-194.56-107.162z" />
<glyph unicode="&#xe685;" d="M721.408 858.419c-58.419 42.138-131.686 63.181-219.955 63.181-67.174 0-123.802-14.848-169.83-44.442-73.062-46.387-111.872-125.133-116.582-236.237h169.267c0 32.358 9.421 63.539 28.314 93.542s50.944 45.005 96.154 45.005c45.926 0 77.619-12.186 94.925-36.506 17.357-24.422 26.010-51.405 26.010-80.998 0-25.754-12.902-49.306-28.467-70.758-8.55-12.493-19.866-23.962-33.843-34.509 0 0-91.802-58.88-132.147-106.189-23.398-27.443-25.498-68.506-27.546-127.437-0.154-4.198 1.434-12.851 16.128-12.851s118.63 0 131.686 0 15.77 9.677 15.974 13.926c0.922 21.453 3.328 32.41 7.27 44.8 7.424 23.398 27.494 43.827 50.125 61.389l46.592 32.154c42.035 32.768 75.622 59.648 90.419 80.742 25.293 34.714 43.059 77.414 43.059 128.051 0 82.688-29.235 145.050-87.552 187.136zM498.739 208.691c-58.368 1.741-106.496-38.605-108.339-101.888-1.843-63.232 43.93-105.011 102.298-106.752 60.928-1.792 107.776 37.274 109.619 100.506 1.792 63.283-42.65 106.342-103.578 108.134z" />
<glyph unicode="&#xe686;" d="M505.754 931.789c-260.147-3.482-468.224-217.19-464.742-477.338 3.482-259.994 217.19-468.122 477.338-464.64 260.045 3.482 468.173 217.19 464.64 477.338-3.43 260.045-217.139 468.122-477.235 464.64zM504.371 174.080h-2.611c-40.038 1.178-68.301 30.72-67.174 70.195 1.126 38.758 30.054 66.97 68.813 66.97l2.355-0.051c41.165-1.229 69.12-30.464 67.891-71.066-1.126-38.861-29.645-66.048-69.274-66.048zM672.87 508.518c-9.472-13.363-30.157-30.003-56.269-50.33l-28.774-19.866c-15.77-12.288-25.293-23.808-28.826-35.123-2.867-9.011-4.198-11.315-4.454-29.491l-0.051-4.659h-109.722l0.307 9.318c1.331 38.195 2.304 60.621 18.125 79.206 24.832 29.133 79.616 64.41 81.92 65.894 7.834 5.939 14.438 12.646 19.405 19.814 11.52 15.872 16.589 28.416 16.589 40.653 0 17.050-5.069 32.819-15.053 46.848-9.626 13.568-27.904 20.429-54.323 20.429-26.214 0-44.134-8.346-54.886-25.395-11.11-17.562-16.64-35.942-16.64-54.784v-4.71h-113.152l0.205 4.915c2.918 69.325 27.648 119.194 73.523 148.326 28.774 18.586 64.614 27.955 106.394 27.955 54.733 0 101.018-13.312 137.37-39.526 36.864-26.573 55.552-66.406 55.552-118.323 0-29.082-9.165-56.371-27.238-81.152z" />
<glyph unicode="&#xe687;" d="M999.014 52.122l-456.090 800.307c-6.298 11.059-18.125 17.869-30.925 17.869s-24.576-6.81-30.925-17.869l-456.038-800.307c-6.195-10.854-6.093-24.115 0.256-34.867s18.022-17.357 30.618-17.357h912.128c12.493 0 24.218 6.605 30.618 17.357 6.349 10.752 6.451 24.013 0.358 34.867zM568.32 102.298h-112.64v102.4h112.64v-102.4zM568.32 281.498h-112.64v307.2h112.64v-307.2z" />
<glyph unicode="&#xe688;" d="M282.419 244.531c-115.814 124.57-113.766 319.744 6.502 440.883 49.254 49.562 110.797 79.155 174.797 88.883l-3.533 106.342c-89.805-10.906-176.742-50.995-245.606-120.32-161.229-162.406-163.123-424.448-6.298-590.438l-89.139-89.754 282.112-15.411-0.768 298.701-118.067-118.886zM622.694 856.832l0.768-298.701 118.118 118.938c115.814-124.57 113.818-319.744-6.502-440.883-49.254-49.613-110.797-79.155-174.848-88.883l3.533-106.291c89.856 10.906 176.794 50.995 245.658 120.371 161.178 162.355 163.174 424.448 6.246 590.387l89.139 89.754-282.112 15.309z" />
<glyph unicode="&#xe689;" d="M449.178 880.64c227.635 0 412.723-182.374 418.253-409.344h125.85l-188.365-209.971-188.365 209.971h146.227c-5.478 169.011-143.718 304.384-313.6 304.384-173.363 0-313.856-140.954-313.856-314.88s140.493-314.88 313.856-314.88c69.53 0 133.734 22.733 185.754 61.082l71.936-77.005c-71.014-55.757-160.461-89.037-257.69-89.037-231.117 0-418.458 187.955-418.458 419.84 0 231.885 187.341 419.84 418.458 419.84z" />
<glyph unicode="&#xe68a;" d="M574.771 880.64c-227.584 0-412.672-182.374-418.253-409.344h-125.798l188.365-209.92 188.314 209.92h-146.227c5.53 169.011 143.77 304.384 313.6 304.384 173.414 0 313.907-140.954 313.907-314.88s-140.493-314.88-313.907-314.88c-69.478 0-133.683 22.733-185.702 61.082l-71.987-77.005c71.014-55.757 160.461-89.037 257.69-89.037 231.168 0 418.56 187.955 418.56 419.84-0.051 231.885-187.443 419.84-418.56 419.84z" />
<glyph unicode="&#xe68b;" d="M772.762 630.067h36.198v-103.066l215.040 184.32-215.040 184.32v-122.214h-36.198c-189.082 0-295.731-140.134-389.837-263.782-84.634-111.206-157.696-207.258-275.763-207.258h-107.162v-143.411h107.162c189.133 0 295.731 140.186 389.888 263.834 84.582 111.258 157.645 207.258 275.712 207.258zM277.043 539.75c8.038 10.445 16.179 21.094 24.422 31.898 20.019 26.317 41.165 54.067 64.051 81.715-67.635 63.181-149.248 109.824-258.355 109.824h-107.162v-143.36h107.162c67.942 0 120.986-31.898 169.882-80.077zM808.96 292.198h-36.198c-72.038 0-127.283 35.789-178.688 88.986-5.171-6.707-10.291-13.517-15.514-20.378-22.579-29.594-46.899-61.491-73.677-92.979 69.478-67.789 153.651-118.989 267.878-118.989h36.198v-122.88l215.040 184.32-215.040 184.422v-102.502z" />
<glyph unicode="&#xe68c;" d="M819.302 655.36h-552.96v112.64l-215.040-184.32 215.040-184.32v112.64h512v-215.040h-665.6v-143.36h706.56c56.525 0 102.4 45.875 102.4 102.4v296.96c0 56.576-45.926 102.4-102.4 102.4z" />
<glyph unicode="&#xe68d;" d="M204.902 307.2h414.771v-153.6l245.76 225.28-245.76 225.229v-153.6h-373.76v317.491h-143.411v-358.4c0-56.525 45.824-102.4 102.4-102.4z" />
<glyph unicode="&#xe68e;" d="M254.976 296.96v267.264h103.424l-179.2 203.776-179.2-203.776h103.424v-308.224c0-56.525 45.824-102.4 102.4-102.4h459.776l-131.174 143.36h-279.45zM920.525 357.376v308.224c0 56.525-45.875 102.4-102.4 102.4h-459.725l131.123-143.36h279.501v-267.264h-103.424l179.2-203.776 179.2 203.776h-103.475z" />
<glyph unicode="&#xe68f;" d="M870.4 655.36h-194.56v-143.36h153.6v-215.040h-634.88v215.040h215.040v-112.64l204.8 184.32-204.8 184.32v-112.64h-256c-56.525 0-102.4-45.824-102.4-102.4v-296.96c0-56.525 45.875-102.4 102.4-102.4h716.8c56.576 0 102.4 45.875 102.4 102.4v296.96c0 56.576-45.824 102.4-102.4 102.4z" />
<glyph unicode="&#xe690;" d="M574.822 880.64c-227.635 0-412.723-182.374-418.253-409.344h-125.85l188.365-209.971 188.314 209.971h-146.227c5.53 169.011 143.77 304.384 313.651 304.384 173.363 0 313.856-140.954 313.856-314.88s-140.493-314.88-313.856-314.88c-69.53 0-133.734 22.733-185.754 61.082l-71.987-77.005c71.066-55.757 160.512-89.037 257.741-89.037 231.117 0 418.509 187.955 418.509 419.84-0.051 231.885-187.443 419.84-418.509 419.84zM537.6 686.080v-240.128l153.856-153.856 50.688 50.688-132.864 132.864v210.432h-71.68z" />
<glyph unicode="&#xe691;" d="M246.579 460.8h522.24v-245.76h143.36v286.72c0 56.576-45.875 102.4-102.4 102.4h-563.2v102.4l-204.8-174.080 204.8-163.84v92.16z" />
<glyph unicode="&#xe692;" d="M716.8 706.56h-512v102.4l-204.8-174.080 204.8-163.84v92.16h512v143.36zM1024 276.48l-204.8 174.080v-102.4h-512v-143.36h512v-92.16l204.8 163.84z" />
<glyph unicode="&#xe693;" d="M256 307.2h-51.2c-28.262 0-51.2-22.886-51.2-51.2s22.938-51.2 51.2-51.2h51.2c28.262 0 51.2 22.886 51.2 51.2s-22.938 51.2-51.2 51.2zM256 512h-51.2c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2h51.2c28.262 0 51.2 22.938 51.2 51.2s-22.938 51.2-51.2 51.2zM256 716.8h-51.2c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2h51.2c28.262 0 51.2 22.938 51.2 51.2s-22.938 51.2-51.2 51.2zM460.8 614.4h358.4c28.314 0 51.2 22.938 51.2 51.2s-22.886 51.2-51.2 51.2h-358.4c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2zM819.2 512h-358.4c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2h358.4c28.314 0 51.2 22.938 51.2 51.2s-22.886 51.2-51.2 51.2zM819.2 307.2h-358.4c-28.262 0-51.2-22.886-51.2-51.2s22.938-51.2 51.2-51.2h358.4c28.314 0 51.2 22.886 51.2 51.2s-22.886 51.2-51.2 51.2z" />
<glyph unicode="&#xe694;" d="M358.4 512h-307.2c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2h307.2c28.262 0 51.2 22.938 51.2 51.2s-22.938 51.2-51.2 51.2zM358.4 307.2h-307.2c-28.262 0-51.2-22.886-51.2-51.2s22.938-51.2 51.2-51.2h307.2c28.262 0 51.2 22.886 51.2 51.2s-22.938 51.2-51.2 51.2zM993.28 512h-174.080v174.080c0 28.262-22.886 30.72-51.2 30.72s-51.2-2.458-51.2-30.72v-174.080h-168.96c-28.314 0-30.72-22.938-30.72-51.2s2.458-51.2 30.771-51.2h168.909v-174.080c0-28.262 22.886-30.72 51.2-30.72s51.2 2.458 51.2 30.72v174.080h174.080c28.262 0 30.72 22.938 30.72 51.2s-2.458 51.2-30.72 51.2zM358.4 716.8h-307.2c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2h307.2c28.262 0 51.2 22.938 51.2 51.2s-22.938 51.2-51.2 51.2z" />
<glyph unicode="&#xe695;" d="M378.88 768h-92.16c-56.32 0-81.92-25.6-81.92-81.92v-92.16c0-56.32 25.6-81.92 81.92-81.92h92.16c56.32 0 81.92 25.6 81.92 81.92v92.16c0 56.32-25.6 81.92-81.92 81.92zM737.28 768h-92.16c-56.32 0-81.92-25.6-81.92-81.92v-92.16c0-56.32 25.6-81.92 81.92-81.92h92.16c56.32 0 81.92 25.6 81.92 81.92v92.16c0 56.32-25.6 81.92-81.92 81.92zM378.88 409.6h-92.16c-56.32 0-81.92-25.6-81.92-81.92v-92.16c0-56.32 25.6-81.92 81.92-81.92h92.16c56.32 0 81.92 25.6 81.92 81.92v92.16c0 56.32-25.6 81.92-81.92 81.92zM737.28 409.6h-92.16c-56.32 0-81.92-25.6-81.92-81.92v-92.16c0-56.32 25.6-81.92 81.92-81.92h92.16c56.32 0 81.92 25.6 81.92 81.92v92.16c0 56.32-25.6 81.92-81.92 81.92z" />
<glyph unicode="&#xe696;" d="M819.2 512h-614.4c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2h614.4c28.314 0 51.2 22.938 51.2 51.2s-22.886 51.2-51.2 51.2zM204.8 614.4h614.4c28.314 0 51.2 22.938 51.2 51.2s-22.886 51.2-51.2 51.2h-614.4c-28.262 0-51.2-22.938-51.2-51.2s22.938-51.2 51.2-51.2zM819.2 307.2h-614.4c-28.262 0-51.2-22.886-51.2-51.2s22.938-51.2 51.2-51.2h614.4c28.314 0 51.2 22.886 51.2 51.2s-22.886 51.2-51.2 51.2z" />
<glyph unicode="&#xe697;" d="M369.818 416.256h286.72v92.16h-286.72v-92.16zM768 921.6h-512c-56.32 0-102.4-46.080-102.4-102.4v-716.8c0-56.32 46.080-102.4 102.4-102.4h512c56.32 0 102.4 46.080 102.4 102.4v716.8c0 56.32-46.080 102.4-102.4 102.4zM768 102.4h-512v716.8h512v-716.8zM655.36 708.147h-286.72v-89.6h286.72v89.6zM655.36 306.176h-286.72v-89.6h286.72v89.6z" />
<glyph unicode="&#xe698;" d="M768 921.6h-512c-56.32 0-102.4-46.080-102.4-102.4v-716.8c0-56.32 46.080-102.4 102.4-102.4h512c56.32 0 102.4 46.080 102.4 102.4v716.8c0 56.32-46.080 102.4-102.4 102.4zM297.574 708.147h428.8v-89.6h-428.8v89.6zM726.374 216.576h-428.8v89.6h428.8v-89.6zM727.603 416.256h-428.8v92.16h428.8v-92.16z" />
<glyph unicode="&#xe699;" d="M768 921.6h-512c-56.32 0-102.4-46.080-102.4-102.4v-716.8c0-56.32 46.080-102.4 102.4-102.4h512c56.32 0 102.4 46.080 102.4 102.4v716.8c0 56.32-46.080 102.4-102.4 102.4zM768 102.4h-512v716.8h512v-716.8z" />
<glyph unicode="&#xe69a;" d="M993.178 593.203l-381.184 102.093-66.714 248.934c-5.581 20.787-27.853 32.922-49.766 27.034l-464.64-124.467c-21.914-5.837-35.123-27.494-29.594-48.282l165.325-617.062c5.581-20.787 27.853-32.922 49.715-27.034l184.986 49.562-25.242-94.106c-5.581-20.838 7.629-42.445 29.542-48.333l415.232-111.258c21.914-5.837 44.186 6.246 49.766 27.034l152.115 567.603c5.581 20.787-7.629 42.445-29.542 48.282zM83.661 786.842l400.845 107.315 148.429-553.882-400.896-107.315-148.378 553.882zM802.765 27.392l-348.928 95.437 27.443 102.554 199.731 53.504c21.914 5.888 35.174 27.494 29.594 48.333l-77.21 288.102 304.435-83.507-135.066-504.422z" />
<glyph unicode="&#xe69b;" d="M0 716.8v-512c0-56.32 46.080-102.4 102.4-102.4h819.2c56.32 0 102.4 46.080 102.4 102.4v512c0 56.32-46.080 102.4-102.4 102.4h-819.2c-56.32 0-102.4-46.080-102.4-102.4zM921.6 716.8v-512h-819.2v512h819.2z" />
<glyph unicode="&#xe69c;" d="M876.8 605.542l-104.755 288.563c-7.731 21.299-30.464 32.563-50.637 25.19l-696.166-254.106c-20.224-7.322-30.413-30.566-22.682-51.866l110.438-304.23v163.072c0 73.574 58.778 133.376 131.123 133.376h183.962l219.392 154.010 126.976-154.010h102.349zM984.986 513.178h-740.864c-21.504 0-39.014-18.381-39.014-41.062v-482.355c0-22.63 17.459-41.062 39.014-41.062h740.864c21.555 0 39.014 18.381 39.014 41.062v482.406c0 22.63-17.459 41.011-39.014 41.011zM928.461 51.354h-614.144v88.013l94.464 219.904 141.773-175.974 132.966 136.294 170.957 61.696 73.984-164.966v-164.966z" />
<glyph unicode="&#xe69d;" d="M1013.76 716.8v61.44c0 22.63-18.381 40.96-40.96 40.96h-921.6c-22.63 0-40.96-18.33-40.96-40.96v-61.44h102.4v-102.4h-102.4v-102.4h102.4v-102.4h-102.4v-102.4h102.4v-102.4h-102.4v-61.44c0-22.63 18.33-40.96 40.96-40.96h921.6c22.579 0 40.96 18.33 40.96 40.96v61.44h-102.4v102.4h102.4v102.4h-102.4v102.4h102.4v102.4h-102.4v102.4h102.4zM399.36 307.2v307.2l256-153.6-256-153.6z" />
<glyph unicode="&#xe69e;" d="M768 921.6h-512c-56.32 0-102.4-46.080-102.4-102.4v-716.8c0-56.32 46.080-102.4 102.4-102.4h512c56.371 0 102.4 46.080 102.4 102.4v716.8c0 56.32-46.029 102.4-102.4 102.4zM655.155 434.125c-12.134-18.944-18.586-10.854-14.95 0 9.626 28.57 9.267 115.046-71.27 127.693v-266.906c0-49.766-28.672-80.998-89.6-100.557-59.187-18.944-125.44 0.768-140.954 43.315-15.462 42.496 19.354 94.208 77.773 115.507 32.614 11.827 65.69 11.725 91.187 1.843v376.525h61.594c0-64.666 173.107-162.253 86.221-297.421z" />
<glyph unicode="&#xe69f;" d="M976.384 614.4h-928.768c-47.104 0-49.51-22.938-46.899-50.995l42.24-461.21c2.56-28.058 9.216-50.995 56.269-50.995h825.6c48.026 0 53.709 22.938 56.269 50.995l42.24 461.21c2.509 28.058 0.205 50.995-46.95 50.995zM942.285 727.040c-5.632 22.528-33.536 40.96-61.901 40.96h-348.877c-28.416 0-68.045 16.23-88.166 36.147l-30.515 30.106c-20.070 19.917-59.75 36.147-88.115 36.147h-166.707c-28.365 0-54.17-22.886-57.293-50.893l-14.95-133.427h866.867l-10.342 40.96z" />
<glyph unicode="&#xe6a0;" d="M868.762 716.8c0 51.2-50.944 51.2-50.944 51.2h-611.635c0 0-50.944 0-50.944-51.2v-51.2h713.523v51.2zM715.827 870.4h-407.706c0 0-50.944 0-50.944-51.2h509.645c0 51.2-50.995 51.2-50.995 51.2zM970.65 665.6c-30.157 30.31-30.157 30.31-30.157 30.31v-81.51h-857.037v81.51c0 0 0 0-30.157-30.31s-51.763-38.451-39.578-102.451c12.032-63.744 70.554-413.44 79.206-460.749 9.574-51.917 62.31-51.2 62.31-51.2h713.523c0 0 52.736-0.717 62.31 51.2 8.704 47.309 67.174 397.005 79.258 460.749 12.134 64-9.472 72.141-39.68 102.451zM715.827 389.12c0 0 0-51.2-50.995-51.2h-305.715c-50.944 0-50.944 51.2-50.944 51.2v102.4h71.373v-81.92h264.858v81.92h71.475v-102.4z" />
<glyph unicode="&#xe6a1;" d="M173.517 567.706l56.422-497.101c3.021-23.603 116.992-101.222 282.061-101.325 165.069 0.102 279.091 77.722 282.112 101.325l56.422 497.101c-86.221-48.23-215.091-71.066-338.534-71.066s-252.314 22.835-338.483 71.066zM674.15 874.906l-43.981 48.794c-16.947 24.115-35.379 28.621-71.27 28.621h-93.798c-35.84 0-54.272-4.506-71.27-28.621l-43.93-48.794c-131.584-22.989-227.021-83.968-227.021-128.922v-8.755c0-79.155 174.182-143.36 389.12-143.36s389.12 64.205 389.12 143.36v8.755c0 44.954-95.386 105.933-226.97 128.922zM617.933 760.883l-64.102 68.557h-83.661l-64.102-68.557h-87.040c0 0 95.334 113.664 108.083 129.075 9.728 11.776 19.712 16.282 32.614 16.282h104.602c12.902 0 22.835-4.506 32.614-16.282 12.698-15.411 108.083-129.075 108.083-129.075h-87.091z" />
<glyph unicode="&#xe6a2;" d="M512 870.298l-266.24-249.856h168.96v-262.144h194.56v262.144h169.011l-266.291 249.856zM990.208 279.347l-163.021 109.67h-100.506l174.080-133.53h-181.504c-5.222 0-9.882-2.662-12.288-6.81l-41.779-114.432h-306.381l-41.83 114.432c-2.304 4.147-7.066 6.81-12.288 6.81h-181.453l174.131 133.53h-100.557l-162.97-109.67c-24.269-14.49-38.758-47.923-32.256-74.189l28.723-157.389c6.502-26.317 35.379-47.872 64.051-47.872h835.226c28.774 0 57.6 21.555 64.102 47.872l28.723 157.389c6.605 26.317-7.936 59.699-32.205 74.189z" />
<glyph unicode="&#xe6a3;" d="M990.208 279.347l-163.021 109.67h-100.506l174.080-133.53h-181.504c-5.222 0-9.882-2.662-12.288-6.81l-41.779-114.432h-306.381l-41.83 114.432c-2.304 4.147-7.066 6.81-12.288 6.81h-181.453l174.131 133.53h-100.557l-162.97-109.67c-24.269-14.49-38.758-47.923-32.256-74.189l28.723-157.389c6.502-26.317 35.379-47.872 64.051-47.872h835.226c28.774 0 57.6 21.555 64.102 47.872l28.723 157.389c6.605 26.317-7.936 59.699-32.205 74.189zM778.291 608.154h-169.011v262.144h-194.56v-262.144h-168.96l266.24-249.856 266.291 249.856z" />
<glyph unicode="&#xe6a4;" d="M776.806 870.4h-572.006c-56.32 0-102.4-46.080-102.4-102.4v-614.4c0-56.32 46.080-102.4 102.4-102.4h614.4c56.32 0 102.4 46.080 102.4 102.4v556.698l-144.794 160.102zM716.8 563.2c0-28.16-23.040-51.2-51.2-51.2h-307.2c-28.16 0-51.2 23.040-51.2 51.2v256h409.6v-256zM665.6 768h-102.4v-204.8h102.4v204.8z" />
<glyph unicode="&#xe6a5;" d="M956.621 389.222l-161.178 383.59c-12.698 25.6-46.49 46.541-75.11 46.541h-104.909l19.456-208.128h138.24l-261.12-216.576-261.12 216.576h138.24l19.456 208.077h-104.858c-28.57 0-62.362-20.941-75.11-46.541l-161.178-383.59c-12.8-25.6-19.354-69.632-14.694-97.894l34.816-188.723c4.71-28.211 31.898-51.302 60.467-51.302h728.013c28.621 0 55.808 23.091 60.518 51.302l34.816 188.723c4.608 28.262-1.946 72.346-14.746 97.946zM886.784 254.771l-13.21-76.902c-3.994-29.542-30.618-53.709-59.085-53.709h-604.979c-28.518 0-55.142 24.166-59.085 53.709l-13.261 76.902c-3.942 29.542 16.179 53.709 44.698 53.709h660.275c28.57-0.051 48.64-24.166 44.646-53.709z" />
<glyph unicode="&#xe6a6;" d="M778.906 581.683c-14.080 0-27.955-1.229-41.421-3.482-33.587 109.824-137.626 189.85-260.915 189.85-150.426 0-272.333-119.194-272.333-266.24 0-13.107 1.024-26.010 2.918-38.656-7.219 0.819-14.49 1.382-21.965 1.382-102.246 0-185.19-81.101-185.19-181.043 0-99.994 82.944-181.043 185.19-181.043h593.715c135.424 0 245.094 107.315 245.094 239.616 0 132.352-109.722 239.616-245.094 239.616z" />
<glyph unicode="&#xe6a7;" d="M778.906 581.683c-14.080 0-27.955-1.229-41.421-3.482-33.587 109.824-137.626 189.85-260.915 189.85-150.426 0-272.333-119.194-272.333-266.24 0-13.107 1.024-26.010 2.918-38.656-7.219 0.819-14.49 1.382-21.965 1.382-102.246 0-185.19-81.101-185.19-181.043 0-99.994 82.944-181.043 185.19-181.043h255.13v194.56h-107.52l179.2 235.52 179.2-235.52h-107.52v-194.56h195.174c135.424 0 245.094 107.315 245.094 239.616 0.051 132.352-109.67 239.616-245.043 239.616z" />
<glyph unicode="&#xe6a8;" d="M645.12 921.6h-276.48c-28.314 0-40.96-22.938-40.96-51.2v-870.4l184.32 184.32 184.32-184.32v870.4c0 28.262-22.938 51.2-51.2 51.2z" />
<glyph unicode="&#xe6a9;" d="M742.4 972.8h-215.040c-28.262 0-40.96-22.938-40.96-51.2h102.4c28.314 0 51.2-22.938 51.2-51.2v-634.88l153.6-184.32v870.4c0 28.262-22.886 51.2-51.2 51.2zM486.4 819.2h-215.040c-28.262 0-40.96-22.938-40.96-51.2v-819.2l153.6 184.32 153.6-184.32v819.2c0 28.262-22.886 51.2-51.2 51.2z" />
<glyph unicode="&#xe6aa;" d="M399.36 344.525l-204.8 81.971v-69.325l204.8-81.971v69.325zM399.36 557.261l-204.8 81.92v-69.325l204.8-81.92v69.325zM950.323 912.794c-14.029 9.523-31.949 11.469-47.718 5.171l-390.605-156.262-390.605 156.262c-15.77 6.298-33.638 4.352-47.718-5.171-14.029-9.523-22.477-25.395-22.477-42.394v-655.36c0-20.941 12.749-39.731 32.154-47.565l408.73-163.482c0 0 8.397-2.714 9.933-3.021 3.328-0.614 6.656-0.973 9.984-0.973 3.277 0 6.656 0.358 9.933 1.024 1.536 0.307 9.933 3.072 9.933 3.072l408.678 163.43c19.507 7.782 32.256 26.573 32.256 47.514v655.36c0 16.998-8.448 32.87-22.477 42.394zM460.8 104.755l-327.68 131.072v573.85l327.68-131.123v-573.798zM890.88 235.776l-327.68-131.072v573.85l327.68 131.123v-573.901zM829.44 426.496l-204.851-81.971v-69.325l204.851 81.971v69.325zM829.44 639.181l-204.851-81.92v-69.325l204.851 81.92v69.325z" />
<glyph unicode="&#xe6ab;" d="M854.938 487.066l-438.323 271.565c-31.949 20.941-58.061 5.478-58.061-34.304v-527.155c0-39.782 26.163-55.194 58.061-34.253l438.374 271.565c0 0 15.565 10.957 15.565 26.317-0.051 15.309-15.616 26.266-15.616 26.266z" />
<glyph unicode="&#xe6ac;" d="M691.2 819.2c-50.893 0-92.16-15.667-92.16-66.56v-583.68c0-50.893 41.267-66.56 92.16-66.56s92.16 15.667 92.16 66.56v583.68c0 50.893-41.267 66.56-92.16 66.56zM332.8 819.2c-50.893 0-92.16-15.667-92.16-66.56v-583.68c0-50.893 41.267-66.56 92.16-66.56s92.16 15.667 92.16 66.56v583.68c0 50.893-41.267 66.56-92.16 66.56z" />
<glyph unicode="&#xe6ad;" d="M512 819.2c-197.939 0-358.4-160.461-358.4-358.4s160.461-358.4 358.4-358.4c197.888 0 358.4 160.461 358.4 358.4 0 197.939-160.512 358.4-358.4 358.4z" />
<glyph unicode="&#xe6ae;" d="M742.4 768h-460.8c-50.893 0-76.8-15.667-76.8-66.56v-481.28c0-50.893 25.907-66.56 76.8-66.56h460.8c50.893 0 76.8 15.667 76.8 66.56v481.28c0 50.893-25.907 66.56-76.8 66.56z" />
<glyph unicode="&#xe6af;" d="M938.035 485.325l-382.054 253.44c-29.338 19.558-53.402 5.171-53.402-31.949v-491.981c0-37.171 24.064-51.558 53.402-31.949l382.054 253.389c0 0 14.285 10.24 14.285 24.525s-14.285 24.525-14.285 24.525zM473.395 485.325l-368.845 253.491c-29.286 19.507-53.299 5.12-53.299-32v-491.981c0-37.171 24.013-51.558 53.35-31.949l368.845 253.389c0 0 14.285 10.24 14.285 24.525s-14.336 24.525-14.336 24.525z" />
<glyph unicode="&#xe6b0;" d="M71.629 460.8c0-14.285 14.285-24.525 14.285-24.525l382.106-253.389c29.286-19.61 53.35-5.222 53.35 31.949v491.981c0 37.171-24.064 51.507-53.35 32l-382.106-253.44c0.051-0.051-14.285-10.291-14.285-24.576zM536.32 460.8c0-14.285 14.285-24.525 14.285-24.525l368.794-253.389c29.338-19.61 53.35-5.222 53.35 31.949v491.981c0 37.171-24.013 51.507-53.35 32l-368.794-253.44c0-0.051-14.285-10.291-14.285-24.576z" />
<glyph unicode="&#xe6b1;" d="M383.232 460.8c0-13.21 13.414-22.63 13.414-22.63l372.48-233.933c27.597-18.074 50.074-4.762 50.074 29.44v454.246c0 34.253-22.477 47.565-50.074 29.491l-372.48-233.984c0-0.051-13.414-9.421-13.414-22.63zM204.8 698.522v-475.443c0-45.466 31.334-59.392 76.8-59.392s76.8 13.926 76.8 59.341v475.494c0 45.517-31.334 59.443-76.8 59.443s-76.8-13.978-76.8-59.443z" />
<glyph unicode="&#xe6b2;" d="M627.354 483.43l-372.48 233.984c-27.546 18.022-50.074 4.762-50.074-29.542v-454.195c0-34.304 22.528-47.514 50.074-29.491l372.48 233.933c0 0 13.466 9.472 13.466 22.63s-13.466 22.682-13.466 22.682zM742.4 757.965c-45.466 0-76.8-13.978-76.8-59.443v-475.443c0-45.517 31.334-59.494 76.8-59.494s76.8 13.978 76.8 59.494v475.443c0 45.466-31.334 59.443-76.8 59.443z" />
<glyph unicode="&#xe6b3;" d="M594.586 864.666l123.085-99.635-155.136-150.016 102.4-102.4 150.118 155.238 101.99-125.798v322.611h-322.458zM357.786 410.214l-150.067-155.136-100.864 124.467v-322.56h322.56l-124.467 100.813 155.187 150.067-102.349 102.349z" />
<glyph unicode="&#xe6b4;" d="M209.92 250.88l-158.72-148.48 102.4-102.4 148.48 158.72 102.4-107.52v302.080h-302.080l107.52-102.4zM972.8 819.2l-102.4 102.4-148.48-158.72-102.4 107.52v-302.080h302.080l-107.52 102.4 158.72 148.48z" />
<glyph unicode="&#xe6b5;" d="M971.11 284.774c0-45.107-36.915-81.92-81.971-81.92h-798.72c-45.056 0-50.33 18.893-11.674 42.086l822.067 463.565c38.656 23.194 70.298 5.274 70.298-39.782v-383.949z" />
<glyph unicode="&#xe6b6;" d="M225.178 703.437c-57.446-57.293-308.634-415.437-91.597-632.371 216.883-216.986 574.976 34.15 632.474 91.648 57.446 57.293-17.101 225.024-166.502 374.374-149.35 149.402-316.877 223.949-374.374 166.349zM699.443 212.48c-16.947-16.845-148.224 23.398-274.586 149.811-126.31 126.515-166.656 257.741-149.709 274.688 16.794 16.947 148.224-23.398 274.432-149.862 126.464-126.31 166.81-257.69 149.862-274.637zM707.174 615.987c13.107 0 26.214 5.018 36.198 15.002l97.536 97.587c20.019 20.019 20.019 52.378 0 72.397s-52.429 20.019-72.397 0l-97.536-97.587c-20.019-19.968-20.019-52.378 0-72.397 9.933-9.984 23.091-15.002 36.198-15.002zM522.803 742.656c7.936-4.454 16.486-6.554 24.986-6.554 17.92 0 35.277 9.472 44.698 26.214l55.347 98.816c13.824 24.678 5.018 55.91-19.661 69.683s-55.859 5.018-69.683-19.661l-55.347-98.816c-13.773-24.627-5.018-55.859 19.661-69.683zM970.701 588.288c-13.875 24.678-45.056 33.434-69.683 19.661l-98.816-55.347c-24.627-13.824-33.434-45.005-19.661-69.683 9.421-16.742 26.778-26.214 44.698-26.214 8.499 0 17.101 2.15 24.986 6.554l98.816 55.347c24.678 13.824 33.485 45.056 19.661 69.683z" />
<glyph unicode="&#xe6b7;" d="M948.275 897.075c-19.968 20.019-52.378 20.019-72.397 0l-800.154-800.154c-20.019-20.019-20.019-52.429 0-72.397 9.984-9.984 23.091-15.002 36.198-15.002s26.214 5.018 36.198 15.002l800.154 800.154c20.019 20.019 20.019 52.48 0 72.397zM727.091 502.118c71.117-96.461 93.082-180.224 79.821-193.485-13.312-13.21-96.973 8.755-193.434 79.923l-282.931-282.982c214.323-94.106 492.902 103.219 542.976 153.293 47.36 47.258 4.966 169.523-95.027 294.656l-51.405-51.405zM443.75 566.323c-56.269 84.838-73.216 154.726-61.133 166.861 11.93 12.032 81.92-4.966 166.758-61.235l52.378 52.378c-115.917 85.709-225.024 119.45-269.107 75.213-47.565-47.411-227.789-300.902-165.478-509.798l276.582 276.582z" />
<glyph unicode="&#xe6b8;" d="M716.8 225.28c-50.534 0-94.003-30.618-112.845-74.24h-168.755c-72.294 0-79.053 61.030-79.36 79.36v198.042c22.067-10.189 48.282-16.282 79.36-16.282h168.755c18.842-43.674 62.31-74.24 112.845-74.24 67.84 0 122.88 55.040 122.88 122.88s-55.040 122.88-122.88 122.88c-50.534 0-94.003-30.618-112.845-74.24h-168.755c-72.294 0-79.053 61.030-79.36 79.36v117.555c43.674 18.842 74.189 62.31 74.189 112.845 0 67.84-54.989 122.88-122.829 122.88s-122.88-55.040-122.88-122.88c0-50.534 30.618-93.952 74.24-112.845v-475.955c0-71.014 47.053-176.64 176.64-176.64h168.755c18.842-43.674 62.31-74.24 112.845-74.24 67.84 0 122.88 54.989 122.88 122.88 0 67.84-55.040 122.88-122.88 122.88zM716.8 531.712c39.168 0 70.912-31.744 70.912-70.912s-31.744-70.912-70.912-70.912-70.912 31.744-70.912 70.912 31.744 70.912 70.912 70.912zM236.288 819.2c0 39.168 31.744 70.912 70.912 70.912s70.912-31.744 70.912-70.912-31.744-70.912-70.912-70.912-70.912 31.744-70.912 70.912zM716.8 31.488c-39.168 0-70.912 31.744-70.912 70.912s31.744 70.912 70.912 70.912 70.912-31.744 70.912-70.912-31.744-70.912-70.912-70.912z" />
<glyph unicode="&#xe6b9;" d="M839.68 768c0 67.84-54.989 122.88-122.88 122.88s-122.88-55.040-122.88-122.88c0-49.818 29.696-92.621 72.294-111.923-11.622-99.738-75.878-119.859-168.704-148.838-45.056-14.080-97.434-30.464-141.67-62.31v210.227c43.674 18.893 74.24 62.31 74.24 112.845 0 67.84-55.040 122.88-122.88 122.88-67.891 0-122.88-55.040-122.88-122.88 0-50.534 30.566-93.952 74.24-112.845v-388.762c-43.674-18.79-74.24-62.208-74.24-112.794 0-67.84 54.989-122.88 122.88-122.88 67.84 0 122.88 55.040 122.88 122.88 0 49.818-29.696 92.621-72.346 111.923 11.674 99.738 75.981 119.91 168.755 148.838 94.362 29.491 221.491 69.274 237.261 240.077 44.544 18.534 75.93 62.362 75.93 113.562zM236.288 768c0 39.168 31.744 70.912 70.912 70.912s70.912-31.744 70.912-70.912-31.744-70.912-70.912-70.912-70.912 31.744-70.912 70.912zM307.2 82.688c-39.168 0-70.912 31.744-70.912 70.912s31.744 70.912 70.912 70.912 70.912-31.744 70.912-70.912-31.744-70.912-70.912-70.912zM716.8 697.088c-39.117 0-70.912 31.744-70.912 70.912s31.795 70.912 70.912 70.912 70.912-31.744 70.912-70.912-31.795-70.912-70.912-70.912z" />
<glyph unicode="&#xe6ba;" d="M918.989 215.245v117.555c0 71.014-47.002 176.64-176.589 176.64h-102.4c-72.294 0-79.002 35.43-79.36 53.76v143.155c43.674 18.893 74.24 62.31 74.24 112.845 0 67.84-54.989 122.88-122.88 122.88-67.891 0-122.88-55.040-122.88-122.88 0-50.534 30.566-93.952 74.24-112.845v-143.155c0-13.261-3.84-53.76-79.36-53.76h-102.4c-129.587 0-176.64-105.626-176.64-176.64v-117.555c-43.674-18.842-74.24-62.31-74.24-112.845 0-67.84 54.989-122.88 122.88-122.88 67.84 0 122.88 55.040 122.88 122.88 0 50.534-30.566 94.003-74.24 112.845v117.555c0 13.261 3.84 79.36 79.36 79.36h102.4c31.078 0 57.293 4.71 79.36 12.698v-209.613c-43.674-18.842-74.24-62.31-74.24-112.845 0-67.84 54.989-122.88 122.88-122.88 67.891 0 122.88 55.040 122.88 122.88 0 50.534-30.618 94.003-74.291 112.845v209.613c22.067-7.987 48.282-12.698 79.36-12.698h102.4c72.294 0 79.002-61.030 79.411-79.36v-117.555c-43.674-18.842-74.24-62.31-74.24-112.845 0-67.84 54.989-122.88 122.88-122.88s122.88 55.040 122.88 122.88c0 50.534-30.566 94.003-74.291 112.845zM224.512 102.4c0-39.168-31.744-70.912-70.912-70.912s-70.912 31.744-70.912 70.912 31.744 70.912 70.912 70.912 70.912-31.744 70.912-70.912zM441.088 819.2c0 39.168 31.795 70.912 70.912 70.912s70.861-31.744 70.861-70.912-31.744-70.912-70.861-70.912c-39.117 0-70.912 31.744-70.912 70.912zM582.912 102.4c0-39.168-31.795-70.912-70.861-70.912-39.168 0-70.912 31.744-70.912 70.912s31.744 70.912 70.861 70.912c39.117 0 70.912-31.744 70.912-70.912zM870.4 31.488c-39.117 0-70.912 31.744-70.912 70.912s31.795 70.912 70.912 70.912 70.912-31.744 70.912-70.912-31.795-70.912-70.912-70.912z" />
<glyph unicode="&#xe6bb;" d="M560.64 266.445v388.762c43.674 18.842 74.24 62.259 74.24 112.794 0 67.891-55.040 122.88-122.88 122.88s-122.88-54.989-122.88-122.88c0-50.534 30.618-93.952 74.24-112.794v-388.762c-43.674-18.842-74.24-62.259-74.24-112.845 0-67.84 55.040-122.88 122.88-122.88s122.88 55.040 122.88 122.88c0 50.586-30.566 94.003-74.24 112.845zM441.088 768c0 39.168 31.744 70.912 70.912 70.912s70.912-31.744 70.912-70.912-31.744-70.912-70.912-70.912-70.912 31.744-70.912 70.912zM512 82.688c-39.168 0-70.912 31.744-70.912 70.912s31.744 70.912 70.912 70.912 70.912-31.744 70.912-70.912-31.744-70.912-70.912-70.912z" />
<glyph unicode="&#xe6bc;" d="M430.080 768c0 67.891-55.040 122.88-122.88 122.88-67.84 0-122.88-54.989-122.88-122.88 0-50.534 30.566-93.952 74.24-112.794v-388.762c-43.674-18.842-74.24-62.259-74.24-112.845 0-67.84 55.040-122.88 122.88-122.88 67.891 0 122.88 55.040 122.88 122.88 0 50.586-30.618 94.003-74.24 112.845v388.762c43.674 18.842 74.24 62.259 74.24 112.794zM378.112 153.6c0-39.168-31.744-70.912-70.912-70.912-39.117 0-70.861 31.744-70.861 70.912s31.744 70.912 70.861 70.912c39.168 0 70.912-31.744 70.912-70.912zM307.2 697.088c-39.117 0-70.861 31.744-70.861 70.912s31.744 70.912 70.861 70.912c39.168 0 70.912-31.744 70.912-70.912s-31.744-70.912-70.912-70.912zM765.491 266.445v388.762c43.622 18.842 74.189 62.259 74.189 112.794 0 67.891-54.989 122.88-122.88 122.88-67.789 0-122.88-54.989-122.88-122.88 0-50.534 30.618-93.952 74.291-112.794v-388.762c-43.725-18.842-74.291-62.259-74.291-112.845 0-67.84 55.091-122.88 122.88-122.88 67.891 0 122.88 55.040 122.88 122.88 0 50.586-30.566 94.003-74.189 112.845zM645.888 768c0 39.168 31.795 70.912 70.912 70.912 39.219 0 70.912-31.744 70.912-70.912s-31.693-70.912-70.912-70.912c-39.117 0-70.912 31.744-70.912 70.912zM716.8 82.688c-39.117 0-70.912 31.744-70.912 70.912s31.795 70.912 70.912 70.912c39.219 0 70.912-31.744 70.912-70.912s-31.693-70.912-70.912-70.912z" />
<glyph unicode="&#xe6bd;" d="M511.232 849.92v-195.994l359.27 0.051v-386.662h-359.27v-195.635l-388.25 389.12z" />
<glyph unicode="&#xe6be;" d="M901.12 460.032l-195.994 0.051 0.051 359.219h-386.662v-359.27l-195.635 0.051 389.12-388.301z" />
<glyph unicode="&#xe6bf;" d="M901.12 461.568l-195.994-0.051 0.051-359.219h-386.662v359.27l-195.635-0.051 389.171 388.301z" />
<glyph unicode="&#xe6c0;" d="M512.768 849.92v-195.994l-359.27 0.051v-386.662h359.27v-195.635l388.25 389.12z" />
<glyph unicode="&#xe6c1;" d="M511.232 122.88v195.994l359.27-0.051v284.262h-359.27v195.635l-388.25-337.971z" />
<glyph unicode="&#xe6c2;" d="M849.92 460.032l-195.994 0.051 0.051 359.219h-284.262v-359.27l-195.635 0.051 337.92-388.301z" />
<glyph unicode="&#xe6c3;" d="M849.92 461.568l-195.994-0.051 0.051-359.219h-284.262v359.27l-195.635-0.051 337.971 388.301z" />
<glyph unicode="&#xe6c4;" d="M512.768 798.72v-195.994l-359.27 0.051v-284.262h359.27v-195.635l388.25 337.971z" />
<glyph unicode="&#xe6c5;" d="M983.040 460.8c0 260.147-210.893 471.040-471.040 471.040s-471.040-210.893-471.040-471.040c0-260.198 210.893-471.091 471.040-471.091s471.040 210.944 471.040 471.091zM143.36 460.8c0 203.571 165.069 368.64 368.64 368.64s368.64-165.069 368.64-368.64c0-203.622-165.069-368.691-368.64-368.691s-368.64 165.069-368.64 368.691zM709.12 368.64v184.32h-209.408v115.2l-195.072-207.36 195.072-207.36v115.2h209.408z" />
<glyph unicode="&#xe6c6;" d="M512 931.84c-260.147 0-471.040-210.893-471.040-471.040s210.893-471.040 471.040-471.040 471.040 210.893 471.040 471.040-210.893 471.040-471.040 471.040zM512 92.16c-203.622 0-368.64 165.069-368.64 368.64s165.018 368.64 368.64 368.64 368.64-165.069 368.64-368.64-165.018-368.64-368.64-368.64zM604.16 657.92h-184.32v-209.408h-115.2l207.36-195.072 207.36 195.072h-115.2v209.408z" />
<glyph unicode="&#xe6c7;" d="M512.051-10.24c260.147 0 470.989 210.893 470.989 471.040s-210.842 471.040-470.989 471.040c-260.198 0-471.091-210.893-471.091-471.040s210.893-471.040 471.091-471.040zM512.051 829.44c203.622 0 368.589-165.069 368.589-368.64s-165.018-368.64-368.589-368.64c-203.674 0-368.691 165.018-368.691 368.64s165.018 368.64 368.691 368.64zM419.84 263.68h184.371v209.408h115.2l-207.36 195.072-207.411-195.072h115.2v-209.408z" />
<glyph unicode="&#xe6c8;" d="M40.96 460.8c0-260.147 210.944-471.040 471.040-471.040 260.147 0 471.040 210.893 471.040 471.040 0 260.147-210.893 471.040-471.040 471.040-260.147 0-471.040-210.893-471.040-471.040zM880.64 460.8c0-203.571-165.069-368.64-368.64-368.64s-368.64 165.018-368.64 368.64c0 203.622 165.018 368.64 368.64 368.64s368.64-165.018 368.64-368.64zM314.88 552.96v-184.32h209.408v-115.2l195.072 207.36-195.072 207.36v-115.2h-209.408z" />
<glyph unicode="&#xe6c9;" d="M716.749 696.32l0.051-471.040-409.6 235.52z" />
<glyph unicode="&#xe6ca;" d="M747.52 665.549l-471.040 0.051 235.52-409.6z" />
<glyph unicode="&#xe6cb;" d="M276.48 256h471.040l-235.571 409.6z" />
<glyph unicode="&#xe6cc;" d="M307.251 696.32l-0.051-471.040 409.6 235.52z" />
<glyph unicode="&#xe6cd;" d="M585.574 741.581c-21.402-20.89-230.502-240.435-230.502-240.435-11.418-11.162-17.101-25.754-17.101-40.346s5.683-29.184 17.101-40.346c0 0 209.101-219.546 230.502-240.384 21.402-20.89 59.904-22.323 82.739 0 22.784 22.272 24.576 53.35-0.051 80.64l-191.846 200.090 191.846 200.090c24.627 27.341 22.835 58.419 0.051 80.691-22.886 22.272-61.389 20.89-82.739 0z" />
<glyph unicode="&#xe6ce;" d="M792.73 534.374c-20.838-21.402-240.384-230.554-240.384-230.554-11.162-11.418-25.754-17.101-40.346-17.101-14.643 0-29.235 5.683-40.346 17.101 0 0-219.546 209.152-240.435 230.554-20.838 21.402-22.272 59.853 0 82.739 22.323 22.835 53.402 24.627 80.691 0l200.090-191.898 200.038 191.846c27.341 24.627 58.47 22.835 80.691 0 22.323-22.835 20.941-61.338 0-82.688z" />
<glyph unicode="&#xe6cf;" d="M792.73 387.226c-20.838 21.402-240.384 230.502-240.384 230.502-11.162 11.418-25.754 17.152-40.346 17.152-14.643 0-29.235-5.734-40.346-17.152 0 0-219.546-209.101-240.435-230.502-20.838-21.402-22.272-59.904 0-82.739 22.323-22.784 53.402-24.627 80.691 0l200.090 191.846 200.038-191.846c27.341-24.627 58.47-22.784 80.691 0 22.323 22.886 20.941 61.389 0 82.739z" />
<glyph unicode="&#xe6d0;" d="M438.426 741.581c21.402-20.89 230.502-240.435 230.502-240.435 11.469-11.162 17.152-25.754 17.152-40.346s-5.683-29.184-17.152-40.346c0 0-209.101-219.546-230.502-240.384-21.402-20.89-59.853-22.323-82.739 0-22.835 22.272-24.627 53.35 0 80.64l191.898 200.090-191.846 200.090c-24.627 27.341-22.835 58.419 0 80.691s61.338 20.89 82.688 0z" />
<glyph unicode="&#xe6d1;" d="M634.829 285.798c13.722-13.875 13.722-36.301 0-50.125-13.722-13.875-35.891-13.875-49.613 0l-196.096 200.038c-13.722 13.875-13.722 36.301 0 50.125l196.096 200.090c13.722 13.875 35.891 13.875 49.613 0s13.722-36.25 0-50.125l-160.768-175.002 160.768-175.002z" />
<glyph unicode="&#xe6d2;" d="M687.002 583.629c13.875 13.722 36.301 13.722 50.125 0 13.875-13.722 13.875-35.891 0-49.613l-200.038-196.096c-13.875-13.722-36.301-13.722-50.125 0l-200.090 196.096c-13.824 13.722-13.824 35.891 0 49.613 13.875 13.722 36.25 13.722 50.125 0l175.002-160.768 175.002 160.768z" />
<glyph unicode="&#xe6d3;" d="M336.947 337.971c-13.875-13.722-36.25-13.722-50.125 0-13.824 13.722-13.875 35.891 0 49.664l200.090 195.994c13.875 13.722 36.301 13.722 50.125 0l200.090-196.045c13.875-13.773 13.875-35.942 0-49.664s-36.25-13.722-50.125 0l-175.053 160.819-175.002-160.768z" />
<glyph unicode="&#xe6d4;" d="M389.171 285.798c-13.722-13.875-13.722-36.301 0-50.125 13.67-13.875 35.891-13.875 49.613 0l196.096 200.038c13.722 13.875 13.722 36.301 0 50.125l-196.096 200.090c-13.722 13.875-35.891 13.875-49.613 0s-13.722-36.25-0.051-50.074l160.819-175.053-160.768-175.002z" />
<glyph unicode="&#xe6d5;" d="M737.229 80.998c13.722-13.875 13.722-36.25 0-50.125s-35.891-13.875-49.613 0l-400.896 404.838c-13.722 13.875-13.722 36.301 0 50.125l400.896 404.89c13.722 13.875 35.891 13.875 49.613 0s13.722-36.25 0-50.125l-365.568-379.802 365.568-379.802z" />
<glyph unicode="&#xe6d6;" d="M132.198 686.029c-13.875 13.722-36.301 13.722-50.125 0-13.824-13.67-13.824-35.891 0-49.613l404.89-400.896c13.875-13.722 36.25-13.722 50.125 0l404.89 400.896c13.824 13.722 13.875 35.891 0 49.613s-36.352 13.722-50.125 0.051l-379.853-365.619-379.802 365.568z" />
<glyph unicode="&#xe6d7;" d="M891.802 235.571c13.875-13.722 36.301-13.722 50.125 0 13.875 13.722 13.875 35.891 0 49.613l-404.89 400.896c-13.824 13.722-36.25 13.722-50.074 0l-404.89-400.896c-13.824-13.722-13.875-35.891 0-49.613s36.25-13.722 50.125 0l379.802 365.619 379.802-365.619z" />
<glyph unicode="&#xe6d8;" d="M286.704 80.998c-13.722-13.875-13.722-36.25 0-50.125s35.891-13.875 49.613 0l400.896 404.838c13.722 13.875 13.722 36.301 0 50.125l-400.896 404.89c-13.722 13.875-35.891 13.875-49.613 0s-13.722-36.25 0-50.125l365.568-379.802-365.568-379.802z" />
<glyph unicode="&#xe6d9;" d="M255.13 204.8l0.051 165.274 758.579-0.051v181.914h-758.63l0.051 164.864-244.941-256z" />
<glyph unicode="&#xe6da;" d="M768 203.878l-165.274 0.051 0.051 758.63h-181.914v-758.682l-164.864 0.051 256-244.89z" />
<glyph unicode="&#xe6db;" d="M768 717.67h-165.274l0.051-758.63h-181.914v758.63h-164.864l256 244.89z" />
<glyph unicode="&#xe6dc;" d="M768.922 204.8l-0.051 165.274-758.63-0.051v181.914h758.682l-0.051 164.864 244.89-256z" />
<glyph unicode="&#xe6dd;" d="M512 972.8l-235.52-373.76h470.989l-235.469 373.76zM512.051-51.2l235.469 373.76-471.040 0.051 235.571-373.811z" />
<glyph unicode="&#xe6de;" d="M153.6 573.44c-62.208 0-112.64-50.432-112.64-112.64s50.432-112.64 112.64-112.64 112.64 50.432 112.64 112.64c0 62.208-50.432 112.64-112.64 112.64zM512 573.44c-62.208 0-112.64-50.432-112.64-112.64s50.432-112.64 112.64-112.64 112.589 50.432 112.589 112.64c0 62.208-50.381 112.64-112.589 112.64zM870.4 573.44c-62.208 0-112.64-50.432-112.64-112.64s50.432-112.64 112.64-112.64 112.64 50.432 112.64 112.64c0 62.208-50.432 112.64-112.64 112.64z" />
<glyph unicode="&#xe6df;" d="M332.8 573.44c-62.208 0-112.64-50.432-112.64-112.64s50.432-112.64 112.64-112.64 112.64 50.432 112.64 112.64-50.432 112.64-112.64 112.64zM691.2 573.44c-62.208 0-112.64-50.432-112.64-112.64s50.432-112.64 112.64-112.64 112.64 50.432 112.64 112.64-50.432 112.64-112.64 112.64z" />
<glyph unicode="&#xe6e0;" d="M512 573.44c-62.208 0-112.64-50.432-112.64-112.64s50.432-112.64 112.64-112.64 112.64 50.432 112.64 112.64-50.432 112.64-112.64 112.64z" />
<glyph unicode="&#xe6ed;" d="M512 921.6c-375.654 0-460.8-85.197-460.8-460.8 0-375.603 85.146-460.8 460.8-460.8s460.8 85.197 460.8 460.8c0 375.603-85.146 460.8-460.8 460.8z" />
<glyph unicode="&#xe6ee;" d="M674.816 393.728c-36.762 0-66.56-41.267-66.56-92.109 0-50.893 29.798-92.16 66.56-92.16s66.56 41.267 66.56 92.16c-0.051 50.893-29.85 92.109-66.56 92.109zM906.547 633.549c7.578 18.688 7.936 124.928-32.461 226.611 0 0-92.774-10.138-233.062-106.445-29.44 8.141-79.258 12.186-129.024 12.186-49.818 0-99.584-4.096-129.075-12.186-140.237 96.307-232.96 106.445-232.96 106.445-40.397-101.683-40.090-207.923-32.461-226.611-47.514-51.61-76.544-113.562-76.544-198.195 0-367.923 305.254-373.811 382.31-373.811 17.459 0 52.173-0.051 88.781-0.102 36.608 0.051 71.322 0.102 88.678 0.102 77.107 0 382.31 5.888 382.31 373.811 0 84.634-28.979 146.586-76.493 198.195zM513.434 106.752h-2.816c-193.126 0-343.552 23.040-343.552 210.739 0 44.954 15.923 86.682 53.555 121.293 62.925 57.702 169.267 27.136 289.997 27.136 0.461 0 0.973 0 1.434 0.051 0.512 0 0.973-0.051 1.382-0.051 120.73 0 227.123 30.566 289.997-27.136 37.632-34.611 53.504-76.339 53.504-121.293 0-187.699-150.323-210.739-343.501-210.739zM349.235 393.728c-36.762 0-66.56-41.267-66.56-92.109 0-50.893 29.798-92.16 66.56-92.16s66.56 41.267 66.56 92.16c0 50.893-29.798 92.109-66.56 92.109z" />
<glyph unicode="&#xe6ef;" d="M512.717 463.411c-0.256 0-0.512 0-0.717 0-0.307 0-0.512 0-0.768 0-60.979 0-114.739 15.462-146.534-13.773-19.046-17.51-27.034-38.554-27.034-61.235 0-94.874 75.981-106.496 173.568-106.496h1.434c97.587 0 173.568 11.674 173.568 106.496 0 22.682-7.987 43.725-27.085 61.235-31.642 29.235-85.453 13.773-146.432 13.773zM429.773 333.824c-18.586 0-33.638 20.838-33.638 46.541s15.053 46.541 33.638 46.541 33.638-20.838 33.638-46.541-15.104-46.541-33.638-46.541zM594.176 333.824c-18.483 0-33.587 20.838-33.587 46.541s15.053 46.541 33.587 46.541c18.586 0 33.69-20.838 33.69-46.541s-15.053-46.541-33.69-46.541zM512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52c271.36 0 491.469 220.058 491.469 491.52s-220.058 491.52-491.469 491.52zM556.8 259.072c-8.806 0-26.317 0-44.8-0.051-18.534 0.051-36.045 0.051-44.8 0.051-38.963 0-193.178 3.021-193.178 188.877 0 42.752 14.643 74.035 38.656 100.096-3.84 9.472-4.045 63.181 16.384 114.483 0 0 46.899-5.12 117.76-53.76 14.848 4.096 39.987 6.144 65.178 6.144 25.088 0 50.278-2.048 65.178-6.144 70.912 48.64 117.709 53.76 117.709 53.76 20.378-51.354 20.275-105.062 16.384-114.483 24.013-26.061 38.707-57.344 38.707-100.096 0-185.907-154.163-188.877-193.178-188.877z" />
<glyph unicode="&#xe6f0;" d="M252.058 256c-110.95 0-200.858 91.597-200.858 204.8s89.907 204.8 200.858 204.8c110.95 0 200.909-91.648 200.909-204.8s-89.958-204.8-200.909-204.8zM771.891 256c-111.002 0-201.011 91.597-201.011 204.8s90.010 204.8 201.011 204.8c110.899 0 200.909-91.648 200.909-204.8s-90.010-204.8-200.909-204.8z" />
<glyph unicode="&#xe6f1;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.006 491.52-491.52 491.52zM380.672 357.325c-56.064 0-101.478 46.285-101.478 103.475 0 57.19 45.414 103.475 101.478 103.475 56.064 0 101.53-46.285 101.53-103.475-0.051-57.19-45.466-103.475-101.53-103.475zM643.277 357.325c-56.115 0-101.53 46.285-101.53 103.475 0 57.19 45.414 103.475 101.53 103.475 56.013 0 101.478-46.285 101.478-103.475 0.051-57.19-45.466-103.475-101.478-103.475z" />
<glyph unicode="&#xe6f2;" d="M968.192 673.741c-51.507-295.526-339.2-545.792-425.728-602.931-86.579-57.139-165.478 22.886-194.15 83.456-32.768 68.966-131.021 443.238-156.774 474.163-25.702 31.078-102.912-30.925-102.912-30.925l-37.427 49.971c0 0 156.774 190.72 276.070 214.528 126.464 25.242 126.259-197.837 156.672-321.69 29.44-119.859 49.203-188.467 74.854-188.467 25.754 0 74.854 66.867 128.666 169.318 53.914 102.554-2.304 193.075-107.622 128.717 42.086 257.434 439.859 319.334 388.352 23.859z" />
<glyph unicode="&#xe6f3;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM737.28 555.469c-26.010-149.35-171.418-275.763-215.091-304.64-43.725-28.826-83.61 11.622-98.099 42.138-16.538 34.867-66.202 223.949-79.206 239.565-13.005 15.718-51.968-15.616-51.968-15.616l-18.893 25.293c0 0 79.206 96.358 139.469 108.339 63.898 12.8 63.795-99.891 79.155-162.509 14.899-60.57 24.883-95.181 37.837-95.181 13.005 0 37.837 33.741 65.024 85.504 27.238 51.866-1.126 97.587-54.374 65.075 21.197 129.997 222.208 161.331 196.147 12.032z" />
<glyph unicode="&#xe6f4;" d="M983.040 752.998c-34.714-15.411-71.936-25.754-111.053-30.464 39.936 23.91 70.605 61.798 84.992 106.906-37.325-22.118-78.694-38.246-122.675-46.899-35.277 37.581-85.504 61.030-141.107 61.030-106.752 0-193.28-86.528-193.28-193.229 0-15.155 1.69-29.901 5.018-44.032-160.614 8.038-303.053 84.992-398.336 201.933-16.691-28.518-26.266-61.747-26.266-97.178 0-67.072 34.15-126.208 86.016-160.87-31.693 1.024-61.491 9.677-87.552 24.166 0-0.819 0-1.587 0-2.406 0-93.645 66.662-171.725 155.034-189.542-16.179-4.403-33.28-6.758-50.944-6.758-12.442 0-24.525 1.178-36.352 3.43 24.576-76.8 96-132.659 180.531-134.195-66.15-51.866-149.453-82.739-240.026-82.739-15.616 0-30.976 0.922-46.080 2.714 85.504-54.835 187.085-86.835 296.294-86.835 355.482 0 549.888 294.502 549.888 549.939 0 8.346-0.154 16.691-0.563 24.986 37.786 27.238 70.502 61.286 96.461 100.045z" />
<glyph unicode="&#xe6f5;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM711.885 549.632c0.205-4.147 0.307-8.346 0.307-12.544 0-127.898-97.382-275.405-275.456-275.405-54.63 0-105.574 15.974-148.378 43.52 7.578-0.922 15.309-1.331 23.091-1.331 45.363 0 87.091 15.462 120.269 41.472-42.342 0.768-78.131 28.774-90.47 67.174 5.888-1.126 11.981-1.741 18.176-1.741 8.858 0 17.408 1.178 25.498 3.379-44.237 8.909-77.67 48.026-77.67 94.925 0 0.41 0 0.819 0.051 1.178 13.056-7.219 28.006-11.571 43.827-12.083-25.907 17.357-43.008 46.95-43.008 80.589 0 17.766 4.762 34.406 13.107 48.691 47.718-58.624 119.091-97.178 199.526-101.171-1.638 7.066-2.509 14.438-2.509 22.067 0 53.453 43.366 96.819 96.819 96.819 27.853 0 52.992-11.725 70.656-30.566 22.067 4.301 42.803 12.339 61.491 23.45-7.27-22.579-22.579-41.574-42.598-53.555 19.61 2.355 38.246 7.526 55.603 15.258-12.954-19.405-29.44-36.454-48.333-50.125z" />
<glyph unicode="&#xe6f6;" d="M768 761.395h-146.227c-17.306 0-36.608-22.733-36.608-53.197v-105.574h182.835v-150.528h-182.835v-452.096h-172.646v452.045h-156.518v150.579h156.518v88.576c0 127.027 88.166 230.4 209.203 230.4h146.278v-160.205z" />
<glyph unicode="&#xe6f7;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM628.378 612.659h-73.882c-8.704 0-18.432-11.52-18.432-26.829v-53.35h92.365v-76.083h-92.365v-228.403h-87.245v228.403h-79.053v76.032h79.053v44.749c0 64.205 44.544 116.378 105.677 116.378h73.882v-80.896z" />
<glyph unicode="&#xe6f8;" d="M842.24 901.12h-660.48c-60.518 0-110.080-49.562-110.080-110.080v-660.48c0-60.57 49.562-110.029 110.029-110.029h334.029v315.75h-105.472v137.523h105.472v68.915c0 106.24 78.438 189.44 178.586 189.44h97.178v-155.341h-86.989c-22.733 0-29.389-13.056-29.389-31.078v-71.885h116.378v-137.574h-116.378v-315.802h167.066c60.57 0 110.029 49.51 110.029 110.029v660.531c0.102 60.518-49.408 110.080-109.978 110.080z" />
<glyph unicode="&#xe6f9;" d="M101.888 686.643c0-76.442 25.549-131.686 75.878-164.096 41.216-26.573 89.088-30.566 113.971-30.566 6.042 0 10.854 0.256 14.234 0.461 0 0-7.885-51.354 30.208-102.195l-1.741 0.051c-65.997 0-281.293-13.824-281.293-190.822 0-180.070 197.734-189.184 237.363-189.184 3.123 0 4.915 0.051 4.915 0.051 0.461 0 3.277-0.102 8.090-0.102 25.446 0 91.238 3.174 152.371 32.922 79.258 38.451 119.501 105.421 119.501 198.912 0 90.368-61.235 144.128-105.984 183.45-27.29 23.962-50.893 44.646-50.893 64.768 0 20.48 17.203 35.891 39.014 55.398 35.226 31.539 68.506 76.442 68.506 161.331 0 74.65-9.677 124.723-69.325 156.467 6.246 3.174 28.211 5.478 39.117 7.014 32.307 4.403 79.565 9.421 79.565 35.789v5.069h-235.418c-2.355-0.051-238.080-8.806-238.080-224.717zM481.946 225.178c4.506-71.987-57.088-125.133-149.555-131.84-93.901-6.912-171.264 35.379-175.77 107.366-2.15 34.56 13.005 68.403 42.752 95.386 30.208 27.29 71.578 44.134 116.685 47.514 5.325 0.307 10.598 0.563 15.872 0.563 86.886 0 145.766-51.098 150.016-118.989zM420.454 735.949c23.091-81.254-11.776-166.195-67.328-181.862-6.4-1.792-13.005-2.714-19.661-2.714-50.944 0-101.376 51.507-120.064 122.47-10.445 39.885-9.626 74.701 2.355 108.237 11.776 32.922 32.922 55.245 59.546 62.72 6.4 1.843 13.056 2.714 19.712 2.714 61.44 0 100.966-25.498 125.44-111.565zM817.203 559.002v153.6h-97.28v-153.6h-153.6v-97.28h153.6v-153.6h97.28v153.6h153.6v97.28h-153.6z" />
<glyph unicode="&#xe6fa;" d="M465.766 599.808c-12.339 43.52-32.307 56.371-63.386 56.371-3.328 0-6.707-0.461-9.933-1.331-13.517-3.84-24.166-15.104-30.106-31.744-6.093-16.896-6.502-34.56-1.178-54.63 9.421-35.84 34.918-61.901 60.672-61.901 3.328 0 6.707 0.461 9.933 1.331 28.006 7.936 45.619 50.842 33.997 91.904zM512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52c271.514 0 491.52 220.058 491.52 491.52s-220.006 491.52-491.52 491.52zM483.686 249.754c-30.925-15.002-64.154-16.589-77.005-16.589-2.458 0-3.84 0.051-4.045 0.051 0 0-0.973 0-2.509 0-20.070 0-119.962 4.608-119.962 95.59 0 89.395 108.749 96.358 142.080 96.358h0.922c-19.2 25.702-15.206 51.61-15.206 51.61-1.69-0.102-4.198-0.205-7.219-0.205-12.595 0-36.813 1.997-57.6 15.462-25.446 16.333-38.349 44.237-38.349 82.893 0 109.107 119.091 113.51 120.32 113.562h118.938v-2.611c0-13.312-23.859-15.872-40.192-18.125-5.53-0.768-16.589-1.894-19.763-3.482 30.157-16.077 35.021-41.421 35.021-79.104 0-42.854-16.794-65.536-34.611-81.51-11.008-9.83-19.712-17.664-19.712-28.006 0-10.138 11.878-20.582 25.702-32.717 22.579-19.866 53.555-47.053 53.555-92.723 0-47.206-20.326-80.998-60.365-100.454zM743.782 461.261h-77.619v-77.619h-49.152v77.619h-77.619v49.152h77.619v77.568h49.152v-77.619h77.619v-49.101zM421.018 401.869c-2.662 0-5.325-0.102-7.987-0.307-22.733-1.638-43.725-10.189-58.931-24.013-15.053-13.619-22.682-30.771-21.606-48.179 2.253-36.352 41.37-57.702 88.781-54.272 46.746 3.379 77.875 30.259 75.571 66.662-2.202 34.253-31.949 60.109-75.827 60.109z" />
<glyph unicode="&#xe6fb;" d="M441.139 295.526c-26.88-140.954-59.699-276.122-156.979-346.726-30.003 213.094 44.083 373.094 78.49 542.976-58.675 98.816 7.066 297.574 130.867 248.576 152.32-60.262-131.891-367.258 58.88-405.606 199.219-40.038 280.525 345.6 157.030 470.989-178.483 181.146-519.578 4.198-477.594-255.027 10.189-63.386 75.674-82.637 26.163-170.086-114.227 25.293-148.326 115.405-143.923 235.52 7.066 196.557 176.64 334.182 346.726 353.229 215.142 24.115 417.024-78.95 444.826-281.293 31.386-228.352-97.024-475.699-327.117-457.882-62.31 4.762-88.474 35.635-137.37 65.331z" />
<glyph unicode="&#xe6fc;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM545.587 344.269c-31.488 2.458-44.698 18.074-69.376 33.075-13.619-71.27-30.157-139.571-79.36-175.206-15.155 107.674 22.323 188.518 39.68 274.33-29.645 49.869 3.584 150.323 66.099 125.594 76.954-30.464-66.662-185.549 29.747-204.954 100.659-20.224 141.722 174.643 79.309 237.978-90.163 91.494-262.451 2.099-241.254-128.922 5.171-32.051 38.195-41.728 13.21-85.965-57.702 12.8-74.957 58.317-72.704 118.989 3.584 99.379 89.242 168.909 175.155 178.586 108.698 12.134 210.688-39.885 224.819-142.131 15.821-115.456-49.101-240.384-165.325-231.373z" />
<glyph unicode="&#xe6fd;" d="M798.72 41.165c-39.731-18.944-75.776-32.307-107.981-39.936-32.256-7.578-67.174-11.469-104.602-11.469-42.547 0-80.128 5.478-112.896 16.333-32.666 10.906-60.518 26.419-83.661 46.438-23.091 20.224-39.117 41.574-48.026 64.256-8.96 22.682-13.414 55.552-13.414 98.611v330.445h-102.861v133.325c36.557 12.032 67.942 29.184 93.952 51.661 26.112 22.426 47.002 49.408 62.822 80.896 15.77 31.488 26.573 71.475 32.563 120.115h132.352v-238.131h220.928v-147.866h-220.928v-241.613c0-54.579 2.867-89.651 8.653-105.216 5.632-15.462 16.282-27.853 31.795-37.12 20.685-12.493 44.186-18.739 70.707-18.739 47.155 0 94.003 15.514 140.595 46.49v-148.48z" />
<glyph unicode="&#xe6fe;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52c271.462 0 491.469 220.058 491.469 491.52s-219.955 491.52-491.469 491.52zM643.891 248.73c-20.122-9.574-38.298-16.282-54.477-20.173-16.282-3.84-33.997-5.786-52.89-5.786-21.504 0-40.499 2.765-57.037 8.243-16.486 5.478-30.618 13.363-42.291 23.501-11.674 10.138-19.763 20.992-24.269 32.461s-6.758 28.058-6.758 49.818v166.963h-51.968v67.328c18.432 6.093 34.304 14.797 47.462 26.163 13.158 11.315 23.757 24.934 31.693 40.858 7.987 15.872 13.517 36.147 16.486 60.672h66.867v-120.371h111.565v-74.701h-111.565v-122.061c0-27.597 1.434-45.312 4.352-53.146s8.243-14.080 16.077-18.739c10.445-6.298 22.374-9.523 35.738-9.523 23.808 0 47.514 7.834 71.014 23.552v-75.059z" />
<glyph unicode="&#xe6ff;" d="M259.891 816.64c0-54.426-40.192-98.509-106.291-98.509-62.208 0-102.4 44.083-102.4 98.509 0 55.706 41.523 98.509 105.011 98.509s102.4-42.803 103.68-98.509zM56.422 6.451v633.856h197.018v-633.856h-197.018zM371.354 438.118c0 79.053-2.611 145.152-5.222 202.189h171.11l9.114-88.166h3.891c25.907 41.523 89.446 102.4 195.738 102.4 129.587 0 226.816-86.835 226.816-273.51v-374.63h-197.018v351.283c0 81.664-28.57 137.421-99.84 137.421-54.426 0-86.784-37.581-101.069-73.882-5.222-12.954-6.502-31.078-6.502-49.254v-365.568h-197.018v431.718z" />
<glyph unicode="&#xe700;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM391.68 257.075h-99.533v320.256h99.533v-320.256zM341.299 616.653c-31.437 0-51.763 22.323-51.763 49.818 0 28.16 20.941 49.766 53.043 49.766s51.763-21.606 52.378-49.766c0.051-27.546-20.275-49.818-53.658-49.818zM755.149 257.075h-99.482v177.51c0 41.267-14.438 69.376-50.432 69.376-27.494 0-43.827-18.995-51.098-37.325-2.611-6.502-3.277-15.718-3.277-24.832v-184.678h-99.584v218.112c0 39.936-1.28 73.37-2.611 102.144h86.426l4.608-44.493h1.946c13.107 20.941 45.21 51.712 98.918 51.712 65.485 0 114.586-43.827 114.586-138.138v-189.389z" />
<glyph unicode="&#xe701;" d="M489.728 592.845c-69.53 123.648-143.872 224.41-149.35 231.782-112.179-52.992-195.942-156.314-222.003-280.883 10.547-0.205 178.176-2.202 371.354 49.101zM539.853 457.728c5.325 1.69 10.547 3.226 15.923 4.762-10.086 22.886-21.146 45.773-32.666 68.352-207.155-61.952-405.965-57.498-413.030-57.293-0.154-4.25-0.307-8.448-0.307-12.749 0-103.475 39.117-197.683 103.219-268.954-0.102 0.102-0.307 0.358-0.307 0.358s110.131 195.277 327.168 265.523zM264.755 143.718l0.102 0.154c-3.021 2.355-6.195 4.454-9.114 6.912 5.325-4.301 9.011-7.066 9.011-7.066zM415.642 851.354c-0.358-0.102-0.717-0.154-1.024-0.256 0.563 0.154 0.973 0.205 1.024 0.256v0zM777.677 762.675c-70.861 62.413-163.789 100.352-265.626 100.352-32.717 0-64.41-3.994-94.822-11.366 6.093-8.090 81.613-108.442 150.426-234.65 151.654 56.883 208.998 144.026 210.022 145.664zM512.051-10.24c-260.198 0-471.091 210.893-471.091 471.040s210.893 471.040 471.091 471.040c260.147 0 470.989-210.893 470.989-471.040s-210.842-471.040-470.989-471.040zM580.454 395.008c-236.083-82.278-314.061-247.757-315.597-251.136 68.198-53.299 153.907-85.299 247.194-85.299 55.706 0 108.749 11.315 156.979 31.795-5.939 35.277-29.338 158.515-85.914 305.562-0.87-0.358-1.792-0.614-2.662-0.922zM598.528 557.107c9.421-19.2 18.381-38.656 26.726-58.368 3.021-6.963 5.837-13.875 8.704-20.787 138.957 17.459 275.712-12.186 280.166-13.158-0.922 95.437-35.021 182.989-91.443 251.494-0.819-1.178-65.331-94.362-224.154-159.181zM658.483 414.464c52.838-145.152 74.24-263.27 78.285-287.334 90.368 60.979 154.522 157.696 172.39 269.875-7.936 2.611-120.627 38.298-250.675 17.459z" />
<glyph unicode="&#xe702;" d="M525.261 461.67c1.741 0.563 3.482 1.075 5.325 1.638-4.25 9.523-8.96 19.302-14.285 29.85-96.256-28.467-188.416-28.774-204.851-28.57-0.102-1.229-0.154-2.56-0.154-3.789 0-48.384 17.408-94.925 49.050-131.43 10.598 17.050 66.458 100.454 164.915 132.301zM642.816 612.915c-36.403 31.334-82.739 48.538-130.816 48.538-14.49 0-29.082-1.587-43.469-4.762 10.445-14.131 42.598-58.726 72.755-113.818 65.638 25.19 95.334 61.594 101.53 70.042zM390.349 301.414c35.277-27.085 77.312-41.318 121.651-41.318 26.522 0 52.224 5.12 76.544 15.104-3.379 19.507-15.104 78.848-42.086 149.555-108.646-38.4-149.606-110.643-156.109-123.341zM496.896 529.152c-31.13 54.886-63.539 100.096-72.397 112.23-54.63-26.573-94.822-77.158-108.186-136.192h0.819c20.787 0 94.618 1.741 179.763 23.962zM589.517 435.302c23.808-66.099 34.816-121.139 37.888-138.701 43.622 30.72 73.421 77.875 82.381 130.15-8.909 2.662-41.011 11.366-81.51 11.366-13.158 0-26.266-0.973-38.758-2.816zM512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52c271.514 0 491.52 220.058 491.52 491.52s-220.006 491.52-491.52 491.52zM512 220.262c-132.608 0-240.538 107.878-240.538 240.538s107.878 240.538 240.538 240.538c132.71 0 240.64-107.878 240.64-240.538s-107.93-240.538-240.64-240.538zM559.206 508.109c4.454-9.114 8.55-18.227 12.39-27.136 1.178-2.918 2.509-5.786 3.686-8.704 14.182 1.69 29.286 2.56 45.107 2.56 43.725 0 80.077-6.4 92.211-8.806-1.075 43.52-16.486 85.811-43.622 119.757-8.192-10.598-41.882-49.306-109.773-77.67z" />
<glyph unicode="&#xe703;" d="M565.862 560.128l69.837-33.741 105.421 33.741v61.184c0 126.054-102.758 228.608-229.12 228.608-126.31 0-229.069-102.554-229.069-228.608v-321.024c0-29.594-24.166-53.709-53.811-53.709s-53.811 24.115-53.811 53.709v134.4h-175.309v-134.4c0-126.054 102.758-228.608 229.12-228.608s229.12 102.554 229.12 228.608v321.024c0 29.594 24.166 53.709 53.811 53.709 29.696 0 53.862-24.115 53.862-53.709v-61.184zM848.742 434.688v-134.4c0-29.594-24.166-53.709-53.811-53.709-29.696 0-53.862 24.115-53.862 53.709v137.114l-105.421-33.741-69.837 33.741v-137.114c0-126.054 102.758-228.608 229.12-228.608 126.31 0 229.069 102.554 229.069 228.608v134.4h-175.258z" />
<glyph unicode="&#xe704;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM512 574.208c-15.002 0-27.187-12.186-27.187-27.136v-162.202c0-63.642-51.917-115.507-115.763-115.507-63.795 0-115.763 51.866-115.763 115.507v67.891h88.525v-67.891c0-14.95 12.186-27.085 27.187-27.085s27.187 12.134 27.187 27.085v162.202c0.051 63.693 52.019 115.456 115.814 115.456s115.763-51.814 115.763-115.507v-30.925l-53.248-17.050-35.277 17.050v30.976c-0.051 14.95-12.237 27.136-27.238 27.136zM770.714 384.87c0-63.642-51.968-115.507-115.763-115.507-63.846 0-115.763 51.866-115.763 115.507v69.274l35.277-17.050 53.248 17.050v-69.325c0-14.95 12.186-27.085 27.187-27.085s27.136 12.134 27.136 27.085v67.891h88.576v-67.84z" />
<glyph unicode="&#xe709;" d="M512 911.36c-248.832 0-450.56-201.728-450.56-450.56 0-113.766 42.138-217.651 111.718-296.909 70.451 70.451 167.014 110.029 277.862 106.445 141.363-4.557 252.928-71.526 316.928-180.378 117.555 81.306 194.611 217.037 194.611 370.842 0 248.832-201.779 450.56-450.56 450.56zM732.314 300.186c-7.936-13.158-24.934-17.203-37.99-9.267-104.346 63.744-235.622 78.131-390.246 42.854-14.848-3.43-29.747 5.888-33.075 20.838-3.43 14.848 5.837 29.696 20.787 33.075 169.165 38.656 314.317 21.965 431.36-49.459 13.005-7.987 17.152-24.986 9.165-38.042zM786.586 427.981c-9.984-16.282-31.283-21.35-47.565-11.315-119.296 73.318-301.363 94.566-442.573 51.712-18.33-5.53-37.683 4.813-43.213 23.040-5.53 18.33 4.813 37.683 23.040 43.213 161.331 48.998 361.882 25.293 498.995-58.982 16.282-10.086 21.453-31.283 11.315-47.667zM791.296 560.384c-143.104 85.094-379.29 92.826-515.942 51.405-21.914-6.707-45.107 5.734-51.866 27.648-6.605 21.965 5.786 45.21 27.75 51.814 156.928 47.667 417.69 38.451 582.451-59.392 19.763-11.725 26.266-37.222 14.541-56.934-11.725-19.712-37.12-26.163-56.934-14.541zM448.102 135.629c-63.386 2.048-116.173-22.682-154.675-68.915 64.717-35.942 139.213-56.474 218.573-56.474 38.246 0 75.418 4.762 110.848 13.773-33.997 69.734-93.235 109.005-174.746 111.616z" />
<glyph unicode="&#xe70a;" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52 0-124.109 45.978-237.466 121.856-323.891 76.902 76.902 182.221 120.064 303.104 116.173 154.214-5.018 275.968-78.029 345.754-196.813 128.256 88.678 212.326 236.749 212.326 404.531 0 271.462-220.058 491.52-491.52 491.52zM752.282 285.594c-8.653-14.336-27.187-18.739-41.472-10.086-113.869 69.53-257.024 85.248-425.677 46.746-16.179-3.738-32.461 6.4-36.096 22.733-3.738 16.128 6.349 32.41 22.63 36.096 184.576 42.189 342.886 23.962 470.579-53.965 14.234-8.704 18.79-27.29 10.035-41.523zM811.622 425.011c-10.906-17.818-34.202-23.347-51.917-12.39-130.253 80.026-328.806 103.219-482.867 56.474-20.019-6.042-41.114 5.274-47.104 25.139-6.042 20.019 5.222 41.114 25.139 47.104 175.974 53.504 394.752 27.597 544.358-64.307 17.766-11.059 23.347-34.202 12.39-52.019zM816.691 569.446c-156.16 92.826-413.747 101.274-562.842 56.064-23.962-7.322-49.254 6.195-56.525 30.157-7.219 23.962 6.298 49.357 30.157 56.525 171.213 51.968 455.68 41.933 635.443-64.819 21.555-12.8 28.672-40.602 15.923-62.157-12.851-21.453-40.602-28.518-62.157-15.77zM442.317 106.086c-69.171 2.202-126.72-24.73-168.755-75.162 70.605-39.27 151.91-61.645 238.438-61.645 41.728 0 82.227 5.222 120.934 15.002-37.069 76.134-101.734 118.938-190.618 121.805z" />
<glyph unicode="&#xe70c;" d="M778.24 460.8c0-147.046-119.245-266.24-266.24-266.24-147.046 0-266.24 119.194-266.24 266.24 0 17.51 1.741 34.611 5.018 51.2h-179.098v-353.894c0-75.981 61.542-137.626 137.626-137.626h605.389c75.981 0 137.626 61.594 137.626 137.626v353.894h-179.046c3.226-16.589 4.966-33.69 4.966-51.2zM814.694 901.12h-605.389c-76.032 0-137.626-61.645-137.626-137.626v-149.094h222.925c48.179 68.096 127.59 112.64 217.395 112.64s169.216-44.544 217.395-112.64h222.925v149.094c0 75.981-61.645 137.626-137.626 137.626zM882.022 731.136c0-13.568-11.059-24.576-24.576-24.576h-73.677c-13.517 0-24.576 11.059-24.576 24.576v73.728c0 13.568 11.11 24.576 24.576 24.576h73.677c13.568 0 24.576-11.059 24.576-24.576v-73.728zM675.84 460.8c0 90.522-73.37 163.84-163.84 163.84s-163.84-73.318-163.84-163.84 73.37-163.84 163.84-163.84 163.84 73.318 163.84 163.84z" />
<glyph unicode="&#xe70d;" d="M312.781 926.618l-292.301-182.067 200.243-167.885 291.277 189.184-199.219 160.768zM688.742 153.907c-5.222 0-10.394 1.792-14.592 5.325l-162.15 134.451-162.15-134.502c-4.198-3.482-9.421-5.325-14.592-5.325-4.352 0-8.704 1.178-12.493 3.686l-120.115 78.592v-46.387l309.35-194.765 309.35 194.816v46.387l-120.115-78.592c-3.789-2.509-8.141-3.686-12.493-3.686zM1003.52 744.55l-292.301 182.067-199.219-160.768 291.226-189.133 200.294 167.834zM512 394.701l180.582-149.914 288.87 188.826-178.176 143.053-291.277-181.965zM331.418 244.787l180.582 149.914-291.226 182.016-178.176-143.104 288.819-188.826z" />
<glyph unicode="&#xe70e;" d="M887.757 752.23c0 58.88-88.678 65.434-88.678 65.434l-208.333 13.107c0 0-4.454 56.73-46.592 76.39-42.086 19.61-88.371 13.67-121.6 13.312s-41.165-42.803-41.165-82.842 0.768-86.118 0.768-115.2c0-52.019-22.886-74.189-80.179-74.189h-118.118c-33.024 2.15-58.778-3.277-58.778-30.003 0-26.675 38.912-254.566 92.262-307.149 30.976-30.515 220.365-51.917 260.25-51.917s26.624 117.811 37.683 117.811 23.296-66.56 86.118-82.125c62.822-15.667 146.688-12.749 151.142-57.446 5.786-58.982 11.059-135.322-27.75-140.749l-87.808-3.482c-60.211 4.352-44.083 70.093-17.51 70.093s39.885 1.075 39.885 1.075l3.328 71.987c0 0-137.882 16.282-143.77-76.749-5.325-84.992 9.267-125.082 19.968-133.786 10.752-8.806 29.286-25.805 198.144-25.805 237.926 0 150.733 693.402 150.733 752.23zM790.528 444.365c-9.318-9.933-43.11 16.435-75.366 16.435-32.307 0-67.174-17.101-75.366-5.888-8.141 11.264 7.526 101.99 68.352 101.99s91.75-102.554 82.381-112.538zM297.114 759.501c0 11.622 3.021 152.781 3.021 152.781l-179.507-176.077c0 0 124.006 0 148.326 0 24.422 0 28.16 11.622 28.16 23.296z" />
<glyph unicode="&#xe70f;" d="M286.669 535.45c0 83.814 22.221 137.114 96.717 149.094 26.010 5.12 80.179 3.277 114.637 3.277v-128c0-1.126 0.154-3.226 0.461-4.301 1.382-5.12 6.042-8.96 11.622-8.96 3.174 0 6.093 1.638 9.165 4.608l319.232 319.181-451.994 0.051c-188.109 0-284.109-108.339-284.109-310.579v-424.346l184.269 184.422v215.552zM737.382 601.651v-215.501c0-83.814-22.272-137.165-96.768-149.094-26.010-5.12-80.128-3.277-114.586-3.277v128c0 1.126-0.205 3.226-0.461 4.301-1.434 5.171-6.144 8.96-11.725 9.011-3.174 0-6.042-1.638-9.165-4.659l-319.232-319.13 452.096-0.102c188.058 0 284.058 108.288 284.058 310.579v424.346l-184.218-184.474z" />
<glyph unicode="&#xe710;" d="M955.955 356.454c6.81 31.949 10.394 65.126 10.394 99.226 0 255.283-201.165 462.285-449.331 462.285-26.163 0-51.866-2.355-76.8-6.758-40.243 26.010-87.706 41.114-138.701 41.114-143.872 0-260.557-120.064-260.557-268.134 0-49.459 13.107-95.795 35.84-135.578-5.939-30.003-9.114-61.082-9.114-92.928 0-255.283 201.216-462.285 449.331-462.285 28.109 0 55.654 2.662 82.278 7.731 36.659-20.275 78.592-31.795 123.136-31.795 143.974 0 260.608 120.013 260.608 268.083 0 42.752-9.779 83.2-27.085 119.040zM747.469 234.701c-20.787-30.259-51.507-54.272-91.29-71.27-39.424-16.845-86.579-25.395-140.39-25.395-64.563 0-118.63 11.674-160.87 34.765-30.208 16.742-55.091 39.475-73.984 67.482-19.098 28.365-28.774 56.474-28.774 83.558 0 16.947 6.298 31.642 18.739 43.674 12.339 11.878 28.109 17.971 46.899 17.971 15.411 0 28.774-4.762 39.578-14.131 10.342-9.062 19.2-22.426 26.317-39.578 7.987-18.79 16.64-34.611 25.805-47.104 8.806-11.981 21.504-22.118 37.683-30.003 16.282-7.885 38.246-11.93 65.28-11.93 37.12 0 67.584 8.141 90.47 24.269 22.426 15.77 33.28 34.611 33.28 57.702 0 18.227-5.683 32.614-17.357 43.827-12.237 11.725-28.416 20.89-47.974 27.187-20.429 6.554-48.179 13.619-82.432 20.992-46.643 10.291-86.272 22.477-117.76 36.25-32.154 14.029-58.163 33.587-77.158 58.061-19.302 24.781-29.082 56.013-29.082 92.672 0 34.918 10.24 66.406 30.515 93.542 20.122 26.931 49.408 47.923 87.194 62.31 37.325 14.182 81.715 21.402 131.891 21.402 40.141 0 75.418-4.813 104.858-14.182 29.594-9.523 54.579-22.323 74.189-38.093 19.763-15.923 34.458-32.922 43.725-50.483 9.318-17.869 14.029-35.584 14.029-52.736 0-16.538-6.195-31.539-18.432-44.646-12.288-13.158-27.853-19.814-46.131-19.814-16.589 0-29.645 4.198-38.707 12.39-8.397 7.629-17.152 19.61-26.778 36.71-11.213 21.965-24.781 39.219-40.294 51.354-15.155 11.827-40.346 17.869-75.059 17.869-32.205 0-58.419-6.656-77.875-19.814-18.79-12.698-27.853-27.187-27.853-44.339 0-10.547 2.918-19.354 8.96-26.88 6.4-8.038 15.36-15.104 26.778-20.941 11.776-6.093 23.962-10.957 36.147-14.438 12.493-3.533 33.434-8.806 62.208-15.667 36.352-8.038 69.734-17.050 99.277-26.726 29.952-9.83 55.808-22.016 76.902-36.096 21.504-14.438 38.554-32.973 50.637-55.040 12.083-22.221 18.227-49.613 18.227-81.408 0.051-38.195-10.496-72.858-31.386-103.27z" />
<glyph unicode="&#xe711;" d="M622.797 468.326c-11.776 7.885-26.317 14.694-43.008 20.275-16.589 5.427-35.277 10.496-55.654 14.95-16.077 3.84-27.802 6.81-34.816 8.806-6.81 1.946-13.619 4.659-20.224 8.090-6.4 3.277-11.469 7.219-15.002 11.725-3.379 4.25-5.018 9.114-5.018 15.053 0 9.626 5.12 17.766 15.616 24.832 10.906 7.373 25.6 11.059 43.622 11.059 19.405 0 33.536-3.328 42.035-9.933 8.704-6.861 16.333-16.486 22.528-28.774 5.478-9.626 10.291-16.282 15.104-20.582 5.018-4.608 12.288-6.963 21.606-6.963 10.291 0 18.995 3.738 25.907 11.11 6.81 7.373 10.291 15.77 10.291 24.986 0 9.626-2.714 19.558-7.885 29.542-5.12 9.83-13.414 19.405-24.422 28.314-11.008 8.806-24.986 15.974-41.574 21.299-16.486 5.325-36.25 7.936-58.726 7.936-28.109 0-52.941-3.994-73.83-11.93-21.248-8.090-37.683-19.814-48.947-34.918-11.315-15.206-17.050-32.87-17.050-52.429 0-20.48 5.478-37.99 16.282-51.866 10.65-13.773 25.19-24.678 43.213-32.614 17.664-7.68 39.834-14.541 65.946-20.275 19.2-4.096 34.765-8.038 46.182-11.725 10.957-3.482 20.070-8.653 26.829-15.258 6.502-6.298 9.677-14.285 9.677-24.525 0-12.902-6.093-23.45-18.637-32.307-12.8-9.011-29.85-13.568-50.688-13.568-15.104 0-27.443 2.253-36.557 6.707-9.062 4.403-16.179 10.035-21.094 16.742-5.12 7.014-9.984 15.872-14.438 26.419-3.994 9.626-8.96 17.101-14.746 22.17-6.093 5.274-13.517 7.936-22.17 7.936-10.547 0-19.354-3.379-26.266-10.035-6.963-6.758-10.496-14.95-10.496-24.474 0-15.155 5.427-30.925 16.077-46.746 10.598-15.77 24.525-28.467 41.472-37.837 23.654-12.902 53.965-19.456 90.061-19.456 30.106 0 56.525 4.813 78.643 14.182 22.323 9.574 39.475 22.989 51.098 39.885 11.725 17.050 17.613 36.506 17.613 57.805 0 17.869-3.379 33.126-10.189 45.619-6.758 12.339-16.282 22.733-28.365 30.771zM512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52c271.514 0 491.52 220.058 491.52 491.52s-220.006 491.52-491.52 491.52zM629.811 185.549c-24.883 0-48.384 6.451-68.966 17.818-14.95-2.867-30.31-4.352-46.080-4.352-138.957 0-251.648 115.968-251.648 258.918 0 17.869 1.741 35.226 5.12 52.070-12.749 22.272-20.070 48.179-20.070 75.878 0 82.893 65.331 150.17 145.92 150.17 28.57 0 55.142-8.448 77.67-23.040 13.926 2.509 28.314 3.789 43.008 3.789 138.957 0 251.648-115.968 251.648-258.918 0-19.046-1.997-37.632-5.786-55.552 9.677-20.122 15.104-42.701 15.104-66.714-0.051-82.842-65.331-150.067-145.92-150.067z" />
<glyph unicode="&#xe714;" d="M862.976 725.248c13.926-26.317 20.838-58.829 20.838-97.894 0-88.678-37.376-160.256-112.026-214.579-74.752-54.374-179.149-81.51-313.242-81.51h-31.386c-23.603 0-47.206-18.534-52.48-41.216l-37.683-160.717c-5.274-22.733-28.877-41.318-52.48-41.318h-68.71l-6.144-26.266c-5.325-22.682 9.626-41.267 33.178-41.267h110.029c23.603 0 47.258 18.534 52.429 41.267l37.734 160.768c5.325 22.579 28.877 41.165 52.48 41.165h31.386c134.093 0 238.49 27.136 313.19 81.562 74.803 54.272 112.23 125.798 112.23 214.579 0 39.066-6.912 71.578-20.838 97.843-13.875 26.112-34.099 47.411-60.467 63.642-2.816 1.69-5.12 2.355-8.038 3.942zM268.442 196.915l37.734 160.768c5.325 22.579 28.826 41.165 52.48 41.165h31.386c134.093 0 238.49 27.136 313.19 81.562 74.701 54.323 112.077 125.85 112.077 214.579 0 39.066-6.912 71.578-20.89 97.843-13.875 26.112-34.099 47.411-60.416 63.642-26.982 16.486-58.675 27.955-95.386 34.662-36.71 6.605-79.77 9.984-129.229 9.984h-229.12c-23.654 0-47.258-18.432-52.582-41.165l-154.931-662.989c-5.325-22.733 9.626-41.318 33.178-41.318h110.029c23.654 0 47.309 18.534 52.48 41.267zM358.349 581.581l33.075 140.749c5.325 22.682 28.928 41.216 52.429 41.216h36.045c41.933 0 73.779-7.066 95.078-21.094 21.35-13.926 32.051-35.379 32.051-64.512 0-43.981-16.64-77.978-49.664-101.837-33.075-23.808-79.053-35.84-138.445-35.84h-27.238c-23.654 0-38.554 18.637-33.331 41.318z" />
<glyph unicode="&#xe715;" d="M297.37 879.514c-158.208-81.357-256.41-241.715-256.41-419.686 0-32.461 4.096-65.382 11.315-98.202l406.989 370.586c-43.418 39.475-157.491 143.258-161.894 147.302zM706.202 889.549c-61.491 27.955-126.822 42.291-194.253 42.291-47.821 0-94.976-7.936-140.8-22.579l335.002-304.691v284.979zM777.83 848.026v-543.642h178.432c17.562 50.278 26.726 102.554 26.726 155.443 0.051 155.238-77.978 300.646-205.158 388.198zM74.854 285.286c34.509-86.733 95.13-161.331 172.442-214.221v371.2l-104.653-95.283c-35.738-32.512-65.587-59.699-67.789-61.696zM318.976 29.491c47.872-21.606 97.946-34.97 149.504-39.731h86.477c154.573 14.438 293.222 105.933 368.589 242.944h-604.57v-203.213z" />
<glyph unicode="&#xe719;" d="M610.509 931.84c-195.123 0-355.635-150.682-371.302-341.709-115.866-45.21-198.246-158.003-198.246-289.638 0-171.366 139.52-310.733 310.938-310.733 131.942 0 244.992 82.586 290.048 198.758 190.771 16.026 341.094 176.282 341.094 371.046 0 205.261-167.066 372.275-372.531 372.275zM351.898 93.338c-114.278 0-207.258 92.877-207.258 207.155 0 75.878 41.062 142.336 102.144 178.432 31.232-140.954 142.694-252.16 283.904-283.136-36.045-61.235-102.707-102.451-178.79-102.451zM355.226 507.597c111.514-1.741 201.882-91.904 203.878-203.315-102.298 20.531-183.142 101.12-203.878 203.315zM662.784 304.384c-2.099 168.499-139.008 305.050-307.661 306.79 24.064 118.886 129.382 208.691 255.334 208.691 143.667 0 260.506-116.787 260.506-260.301 0.051-125.696-89.446-230.861-208.179-255.181zM147.456 710.912c58.624 0 106.24 47.616 106.24 106.138 0 58.522-47.616 106.138-106.24 106.138-58.573 0-106.189-47.616-106.189-106.138 0-58.522 47.616-106.138 106.189-106.138zM147.456 875.622c32.307 0 58.624-26.266 58.624-58.573 0-32.256-26.266-58.573-58.624-58.573-32.256 0-58.573 26.266-58.573 58.573 0 32.307 26.317 58.573 58.573 58.573z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,133 @@
@import "compass";
.box {
background: map-get($classic-box, background);
box-shadow: 3px 3px 0 rgba(map-get($classic-box, border-color), .6);
margin-bottom: 15px;
border: 1px solid map-get($classic-box, border-color);
padding: 2px;
.box-header {
background-color: map-get($classic-box, color);
height: map-get-deep($classic-box, header, height);
h1 {
color: map-get-deep($classic-box, header, color);
float: left;
font-size: map-get-deep($classic-box, header, font-size);
font-weight: bold;
line-height: map-get-deep($classic-box, header, height) - 2px;
padding-left: 10px;
text-transform: uppercase;
/*text-shadow: rgba(0, 0, 0, 1) 0 1px 0;*/
&:first-letter {
font-size: map-get-deep($classic-box, header, font-size) + 6px;
}
}
ul {
float: right;
list-style-type: none;
li {
display: inline;
margin-left: -3px;
a {
color: lighten(map-get-deep($classic-box, header, color), 10%);
font-size: map-get-deep($classic-box, header, font-size) + 6px;
line-height: map-get-deep($classic-box, header, height);
padding: 4px 10px;
text-decoration: none;
&:hover:not(.disabled) {
background: lighten(map-get($classic-box, color), 20%);
color: map-get($classic-box, color) !important;
}
&.disabled {
/*opacity: .4;*/
&:hover {
cursor: default;
}
}
}
&:first-child {
margin-left: 0;
}
&:last-child a {
border-right: none;
}
&.active a {
background: #fafafa;
cursor: default;
}
}
}
}
.box-content {
padding: 6px;
table a {
text-decoration: none;
color: map-get($classic-box, color);
&:hover {
color: lighten(map-get($classic-box, color), 20%);
}
}
&.faded {
opacity: .4;
}
}
.box-footer {
background: #e8e8e8;
padding: 7px;
span[class^="icon-"] {
font-size: 14px;
margin-right: 5px;
}
}
}
/* --------------------- */
/* == THEMES */
/* --------------------- */
@each $name, $datas in $themes {
body.theme-#{""+$name+""} {
.box {
box-shadow: 3px 3px 0 rgba(lighten(map-get($datas, main-color), 16%), .6);
border-color: lighten(map-get($datas, main-color), 16%);
.box-header {
background-color: darken(map-get($datas, main-color), 7%);
ul li a {
&:hover:not(.disabled) {
background: lighten(darken(map-get($datas, main-color), 7%), 20%);
color: darken(map-get($datas, main-color), 7%) !important;
}
}
}
.box-content {
table a {
color: darken(map-get($datas, main-color), 7%);
&:hover {
color: lighten(darken(map-get($datas, main-color), 7%), 20%);
}
}
}
}
}
}

View File

@ -0,0 +1,770 @@
[class*="icon-"] {
font-family: 'Entypo';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-phone:before {
content: "\e600";
}
.icon-mobile:before {
content: "\e601";
}
.icon-mouse:before {
content: "\e602";
}
.icon-directions:before {
content: "\e603";
}
.icon-mail:before {
content: "\e604";
}
.icon-paperplane:before {
content: "\e605";
}
.icon-pencil:before {
content: "\e606";
}
.icon-paperclip:before {
content: "\e608";
}
.icon-drawer:before {
content: "\e609";
}
.icon-reply:before {
content: "\e60a";
}
.icon-reply-all:before {
content: "\e60b";
}
.icon-forward:before {
content: "\e60c";
}
.icon-user:before {
content: "\e60d";
}
.icon-users:before {
content: "\e60e";
}
.icon-user-add:before {
content: "\e60f";
}
.icon-vcard:before {
content: "\e610";
}
.icon-export:before {
content: "\e611";
}
.icon-location:before {
content: "\e612";
}
.icon-map:before {
content: "\e613";
}
.icon-compass:before {
content: "\e614";
}
.icon-location2:before {
content: "\e615";
}
.icon-target:before {
content: "\e616";
}
.icon-share:before {
content: "\e617";
}
.icon-sharable:before {
content: "\e618";
}
.icon-heart:before {
content: "\e619";
}
.icon-heart2:before {
content: "\e61a";
}
.icon-star:before {
content: "\e61b";
}
.icon-star2:before {
content: "\e61c";
}
.icon-thumbs-up:before {
content: "\e61d";
}
.icon-thumbs-down:before {
content: "\e61e";
}
.icon-chat:before {
content: "\e61f";
}
.icon-comment:before {
content: "\e620";
}
.icon-quote:before {
content: "\e621";
}
.icon-house:before {
content: "\e622";
}
.icon-popup:before {
content: "\e623";
}
.icon-search:before {
content: "\e624";
}
.icon-flashlight:before {
content: "\e625";
}
.icon-printer:before {
content: "\e626";
}
.icon-bell:before {
content: "\e627";
}
.icon-link:before {
content: "\e628";
}
.icon-flag:before {
content: "\e629";
}
.icon-cog:before {
content: "\e62a";
}
.icon-tools:before {
content: "\e62b";
}
.icon-trophy:before {
content: "\e62c";
}
.icon-tag:before {
content: "\e62d";
}
.icon-camera:before {
content: "\e62e";
}
.icon-megaphone:before {
content: "\e62f";
}
.icon-palette:before {
content: "\e631";
}
.icon-music:before {
content: "\e633";
}
.icon-music2:before {
content: "\e634";
}
.icon-new:before {
content: "\e635";
}
.icon-graduation:before {
content: "\e636";
}
.icon-book:before {
content: "\e637";
}
.icon-newspaper:before {
content: "\e638";
}
.icon-bag:before {
content: "\e639";
}
.icon-airplane:before {
content: "\e63a";
}
.icon-lifebuoy:before {
content: "\e63b";
}
.icon-eye:before {
content: "\e63c";
}
.icon-clock:before {
content: "\e63d";
}
.icon-microphone:before {
content: "\e63e";
}
.icon-calendar:before {
content: "\e63f";
}
.icon-bolt:before {
content: "\e640";
}
.icon-thunder:before {
content: "\e641";
}
.icon-droplet:before {
content: "\e642";
}
.icon-briefcase:before {
content: "\e644";
}
.icon-air:before {
content: "\e645";
}
.icon-hourglass:before {
content: "\e646";
}
.icon-gauge:before {
content: "\e647";
}
.icon-network:before {
content: "\e649";
}
.icon-key:before {
content: "\e64a";
}
.icon-battery:before {
content: "\e64b";
}
.icon-bucket:before {
content: "\e64c";
}
.icon-magnet:before {
content: "\e64d";
}
.icon-drive:before {
content: "\e64e";
}
.icon-cup:before {
content: "\e64f";
}
.icon-rocket:before {
content: "\e650";
}
.icon-brush:before {
content: "\e651";
}
.icon-suitcase:before {
content: "\e652";
}
.icon-cone:before {
content: "\e653";
}
.icon-earth:before {
content: "\e654";
}
.icon-keyboard:before {
content: "\e655";
}
.icon-browser:before {
content: "\e656";
}
.icon-publish:before {
content: "\e657";
}
.icon-progress-3:before {
content: "\e658";
}
.icon-progress-2:before {
content: "\e659";
}
.icon-brogress-1:before {
content: "\e65a";
}
.icon-progress-0:before {
content: "\e65b";
}
.icon-sun:before {
content: "\e65d";
}
.icon-code:before {
content: "\e65f";
}
.icon-screen:before {
content: "\e660";
}
.icon-infinity:before {
content: "\e661";
}
.icon-light-bulb:before {
content: "\e662";
}
.icon-credit-card:before {
content: "\e663";
}
.icon-database:before {
content: "\e664";
}
.icon-clipboard:before {
content: "\e666";
}
.icon-cart:before {
content: "\e667";
}
.icon-box:before {
content: "\e668";
}
.icon-ticket:before {
content: "\e669";
}
.icon-rss:before {
content: "\e66a";
}
.icon-signal:before {
content: "\e66b";
}
.icon-thermometer:before {
content: "\e66c";
}
.icon-droplets:before {
content: "\e66d";
}
.icon-uniE66E:before {
content: "\e66e";
}
.icon-statistics:before {
content: "\e66f";
}
.icon-pie:before {
content: "\e670";
}
.icon-bars:before {
content: "\e671";
}
.icon-graph:before {
content: "\e672";
}
.icon-lock:before {
content: "\e673";
}
.icon-lock-open:before {
content: "\e674";
}
.icon-logout:before {
content: "\e675";
}
.icon-login:before {
content: "\e676";
}
.icon-checkmark:before {
content: "\e677";
}
.icon-cross:before {
content: "\e678";
}
.icon-minus:before {
content: "\e679";
}
.icon-plus:before {
content: "\e67a";
}
.icon-cross2:before {
content: "\e67b";
}
.icon-minus2:before {
content: "\e67c";
}
.icon-plus2:before {
content: "\e67d";
}
.icon-cross3:before {
content: "\e67e";
}
.icon-minus3:before {
content: "\e67f";
}
.icon-plus3:before {
content: "\e680";
}
.icon-erase:before {
content: "\e681";
}
.icon-blocked:before {
content: "\e682";
}
.icon-info:before {
content: "\e683";
}
.icon-info2:before {
content: "\e684";
}
.icon-question:before {
content: "\e685";
}
.icon-help:before {
content: "\e686";
}
.icon-warning:before {
content: "\e687";
}
.icon-cycle:before {
content: "\e688";
}
.icon-cw:before {
content: "\e689";
}
.icon-ccw:before {
content: "\e68a";
}
.icon-shuffle:before {
content: "\e68b";
}
.icon-arrow:before {
content: "\e68c";
}
.icon-arrow2:before {
content: "\e68d";
}
.icon-retweet:before {
content: "\e68e";
}
.icon-loop:before {
content: "\e68f";
}
.icon-history:before {
content: "\e690";
}
.icon-back:before {
content: "\e691";
}
.icon-switch:before {
content: "\e692";
}
.icon-list:before {
content: "\e693";
}
.icon-add-to-list:before {
content: "\e694";
}
.icon-layout:before {
content: "\e695";
}
.icon-list2:before {
content: "\e696";
}
.icon-text:before {
content: "\e697";
}
.icon-text2:before {
content: "\e698";
}
.icon-document:before {
content: "\e699";
}
.icon-docs:before {
content: "\e69a";
}
.icon-landscape:before {
content: "\e69b";
}
.icon-pictures:before {
content: "\e69c";
}
.icon-video:before {
content: "\e69d";
}
.icon-music3:before {
content: "\e69e";
}
.icon-folder:before {
content: "\e69f";
}
.icon-archive:before {
content: "\e6a0";
}
.icon-trash:before {
content: "\e6a1";
}
.icon-upload:before {
content: "\e6a2";
}
.icon-download:before {
content: "\e6a3";
}
.icon-disk:before {
content: "\e6a4";
}
.icon-install:before {
content: "\e6a5";
}
.icon-cloud:before {
content: "\e6a6";
}
.icon-upload2:before {
content: "\e6a7";
}
.icon-bookmark:before {
content: "\e6a8";
}
.icon-bookmarks:before {
content: "\e6a9";
}
.icon-book2:before {
content: "\e6aa";
}
.icon-play:before {
content: "\e6ab";
}
.icon-pause:before {
content: "\e6ac";
}
.icon-record:before {
content: "\e6ad";
}
.icon-stop:before {
content: "\e6ae";
}
.icon-next:before {
content: "\e6af";
}
.icon-previous:before {
content: "\e6b0";
}
.icon-first:before {
content: "\e6b1";
}
.icon-last:before {
content: "\e6b2";
}
.icon-resize-enlarge:before {
content: "\e6b3";
}
.icon-resize-shrink:before {
content: "\e6b4";
}
.icon-volume:before {
content: "\e6b5";
}
.icon-sound:before {
content: "\e6b6";
}
.icon-mute:before {
content: "\e6b7";
}
.icon-flow-cascade:before {
content: "\e6b8";
}
.icon-flow-branch:before {
content: "\e6b9";
}
.icon-flow-tree:before {
content: "\e6ba";
}
.icon-flow-line:before {
content: "\e6bb";
}
.icon-flow-parallel:before {
content: "\e6bc";
}
.icon-arrow-left:before {
content: "\e6bd";
}
.icon-arrow-down:before {
content: "\e6be";
}
.icon-arrow-up--upload:before {
content: "\e6bf";
}
.icon-arrow-right:before {
content: "\e6c0";
}
.icon-arrow-left2:before {
content: "\e6c1";
}
.icon-arrow-down2:before {
content: "\e6c2";
}
.icon-arrow-up:before {
content: "\e6c3";
}
.icon-arrow-right2:before {
content: "\e6c4";
}
.icon-arrow-left3:before {
content: "\e6c5";
}
.icon-arrow-down3:before {
content: "\e6c6";
}
.icon-arrow-up2:before {
content: "\e6c7";
}
.icon-arrow-right3:before {
content: "\e6c8";
}
.icon-arrow-left4:before {
content: "\e6c9";
}
.icon-arrow-down4:before {
content: "\e6ca";
}
.icon-arrow-up3:before {
content: "\e6cb";
}
.icon-arrow-right4:before {
content: "\e6cc";
}
.icon-arrow-left5:before {
content: "\e6cd";
}
.icon-arrow-down5:before {
content: "\e6ce";
}
.icon-arrow-up4:before {
content: "\e6cf";
}
.icon-arrow-right5:before {
content: "\e6d0";
}
.icon-arrow-left6:before {
content: "\e6d1";
}
.icon-arrow-down6:before {
content: "\e6d2";
}
.icon-arrow-up5:before {
content: "\e6d3";
}
.icon-arrow-right6:before {
content: "\e6d4";
}
.icon-arrow-left7:before {
content: "\e6d5";
}
.icon-arrow-down7:before {
content: "\e6d6";
}
.icon-arrow-up6:before {
content: "\e6d7";
}
.icon-uniE6D8:before {
content: "\e6d8";
}
.icon-arrow-left8:before {
content: "\e6d9";
}
.icon-arrow-down8:before {
content: "\e6da";
}
.icon-arrow-up7:before {
content: "\e6db";
}
.icon-arrow-right7:before {
content: "\e6dc";
}
.icon-menu:before {
content: "\e6dd";
}
.icon-ellipsis:before {
content: "\e6de";
}
.icon-dots:before {
content: "\e6df";
}
.icon-dot:before {
content: "\e6e0";
}
.icon-daniel-bruce2:before {
content: "\e6ed";
}
.icon-github:before {
content: "\e6ee";
}
.icon-github2:before {
content: "\e6ef";
}
.icon-flickr:before {
content: "\e6f0";
}
.icon-flickr2:before {
content: "\e6f1";
}
.icon-vimeo:before {
content: "\e6f2";
}
.icon-vimeo2:before {
content: "\e6f3";
}
.icon-twitter:before {
content: "\e6f4";
}
.icon-twitter2:before {
content: "\e6f5";
}
.icon-facebook:before {
content: "\e6f6";
}
.icon-facebook2:before {
content: "\e6f7";
}
.icon-facebook3:before {
content: "\e6f8";
}
.icon-googleplus:before {
content: "\e6f9";
}
.icon-googleplus2:before {
content: "\e6fa";
}
.icon-pinterest:before {
content: "\e6fb";
}
.icon-pinterest2:before {
content: "\e6fc";
}
.icon-tumblr:before {
content: "\e6fd";
}
.icon-tumblr2:before {
content: "\e6fe";
}
.icon-linkedin:before {
content: "\e6ff";
}
.icon-linkedin2:before {
content: "\e700";
}
.icon-dribbble:before {
content: "\e701";
}
.icon-dribbble2:before {
content: "\e702";
}
.icon-stumbleupon:before {
content: "\e703";
}
.icon-stumbleupon2:before {
content: "\e704";
}
.icon-spotify:before {
content: "\e709";
}
.icon-spotify2:before {
content: "\e70a";
}
.icon-instagram:before {
content: "\e70c";
}
.icon-dropbox:before {
content: "\e70d";
}
.icon-evernote:before {
content: "\e70e";
}
.icon-flattr:before {
content: "\e70f";
}
.icon-skype:before {
content: "\e710";
}
.icon-skype2:before {
content: "\e711";
}
.icon-paypal:before {
content: "\e714";
}
.icon-picasa:before {
content: "\e715";
}
.icon-circles:before {
content: "\e719";
}

View File

@ -0,0 +1,18 @@
@import "compass";
span.label {
padding: 1px 3px 2px;
font-size: map-get($label, font-size);
font-weight: bold;
color: #fff;
text-transform: uppercase;
white-space: nowrap;
background-color: map-get-deep($label, types, default);
@include border-radius(map-get($label, border-radius));
@each $name, $color in map-get($label, types) {
&.#{""+$name+""} {
background-color: $color;
}
}
}

File diff suppressed because one or more lines are too long

BIN
HBMonv2/html/img/logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

View File

@ -5,10 +5,10 @@ error_reporting(E_ALL & ~E_NOTICE);
// Name of the monitored Dashboard
define("REPORT_NAME","Dashboard of local DMR network");
define("REPORT_NAME","OpenSource DMR Master Server");
// Height of Server Activity window: 45px; 1 row, 60px 2 rows, 80px 3 rows
define("HEIGHT_ACTIVITY","45px");
define("HEIGHT_ACTIVITY","25px");
//
// Theme colors define
@ -20,10 +20,10 @@ define("HEIGHT_ACTIVITY","45px");
//define("THEME_COLOR","background-color:#2A659A;color:white;");
// Blue 2
//define("THEME_COLOR","background-color:#43A6DF;color:white;");
define("THEME_COLOR","background-color:#43A6DF;color:white;");
// Blue Gradient 1
define("THEME_COLOR","background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);color:white;");
//define("THEME_COLOR","background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);color:white;");
// Blue Gradient 2
//define("THEME_COLOR","background-image: linear-gradient(to bottom, #3333cc 0%, #265a88 100%);color:white;");

View File

@ -7,14 +7,14 @@ include_once 'include/config.php';
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - STATUS</title>
<title>DMR Server - Dashboard | Server</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712)" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
@ -26,19 +26,28 @@ include_once 'include/config.php';
<p id="main"></p>
</div>
<!-- LOG monitor -->
<!--
<div style="width: 1150px; margin-left:0px;">
<fieldset style="width: 1100px; margin-left:0px;margin-right:0px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<legend><b><font color="#000">&nbsp;.: Call log window :.&nbsp;</font></b></legend>
<pre id="log" style="height: 20em; text-align: left; overflow-y: scroll; font-size:13px; background-color: #000000; color:#b1eee9;"></pre>
<div style="width: 1100px; margin-left:0px;">
<fieldset style="width: 1045px; margin-left:0px;margin-right:0px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<legend><b><font color="#000">&nbsp;.: Call Log :.&nbsp;</font></b></legend>
<pre id="log" style="height: 20em; text-align: left; overflow-y: scroll; font-size:12px; background-color: #000000; color:#729fcf;"></pre>
</fieldset></div>
-->
<div style="width: 1100px;">
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a title="HBMonv2 SP2ONG v20210607" target="_blank" href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>

View File

@ -7,14 +7,14 @@ include_once 'include/config.php';
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - Info</title>
<title>DMR Server - Dashboard | Talkgroups</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-21.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
<meta name="description" content="Copyright (c) 2016-21.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
@ -33,27 +33,40 @@ include_once 'include/config.php';
<th style='width: 790px;'>Description</th>
</tr>
<tr>
<td>&nbsp;<b>TG 5</b>&nbsp;</td>
<td>&nbsp;<b>TG 23426</b>&nbsp;</td>
<td>&nbsp;<b></b>&nbsp;</td>
<td>&nbsp;<b>D | S</b>&nbsp;</td>
<td>Talk group XLX132-D D-Star/DMR/C4FM.</td>
<td>FreeSTAR International.</td>
</tr>
<tr>
<td>&nbsp;<b>TG 9999</b>&nbsp;</td>
<td>&nbsp;<b></b>&nbsp;</td>
<td>&nbsp;<b>D | S</b>&nbsp;</td>
<td>Echo (Parrot).</td>
<td>Parrot (TG9990).</td>
</tr>
</table>
<br>
<span style="text-align: center;">Hotspot: D - duplex | S - simplex</span>
</fieldset></div><br>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<div style="width: 1100px;">
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>
</html>

View File

@ -8,16 +8,16 @@ include_once 'include/config.php';
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="30">
<title>DMR Server monitor - STATUS</title>
<title>DMR Server - Dashboard | Lastheard</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210515)" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1150px;">
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p></p>
</div>
@ -52,7 +52,7 @@ $user_name=array();
// define location and name of logfile
// best practise is write logfile in the directory where this php script is saved because some php installations have problems to read files outside the webserver directories
$handle = fopen("/opt/HBMonv2/log/lastheard.log","r");
$handle = fopen("/var/log/hbmon/lastheard.log","r");
// import to array
while (($data = fgetcsv ($handle)) !==false)
@ -107,12 +107,22 @@ echo "\n</table></fieldset></div>";
fclose ($handle);
?>
<div style="width: 1100px;">
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a title="HBMonv2 SP2ONG" target="_blank" href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br></span>
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor v2 SP2ONG 2019-2021 (v20210515)-->
<font size="-2">&copy; developed by DL1BZ as logging-extension of HBmonitor (2018,2019)</font><br>
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>

View File

@ -7,14 +7,14 @@ include_once 'include/config.php';
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - Masters</title>
<title>DMR Server - Dashboard | Users</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
@ -25,11 +25,24 @@ include_once 'include/config.php';
<noscript>You must enable JavaScript</noscript>
<p id="masters"></p>
</div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<div style="width: 1100px;">
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>
</html>

View File

@ -7,14 +7,14 @@ include_once 'include/config.php';
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server - Monitor</title>
<title>DMR Server - Dashboard | Call Monitor</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
@ -27,16 +27,29 @@ include_once 'include/config.php';
</div>
<p></p>
<!-- LOG monitor -->
<div style="width: 1150px; margin-left:0px;">
<fieldset style="background-color:#e0e0e0e0;width: 1100px; margin-left:0px;margin-right:0px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<legend><b><font color="#000">&nbsp;.: Call log window :.&nbsp;</font></b></legend>
<pre id="log" style="height: 40em; text-align: left; overflow-y: scroll; font-size:13px; background-color: #000000; color:#b1eee9;"></pre>
<div style="width: 1100px; margin-left:0px;">
<fieldset style="width: 1045px; margin-left:0px;margin-right:0px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<legend><b><font color="#000">&nbsp;.: Call Log :.&nbsp;</font></b></legend>
<pre id="log" style="height: 40em; text-align: left; overflow-y: scroll; font-size:12px; background-color: #000000; color:#729fcf;"></pre>
</fieldset></div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<div style="width: 1100px;">
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>
</html>

View File

@ -7,14 +7,14 @@ include_once 'include/config.php';
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - OpenBridge</title>
<title>DMR Server - Dashboard | OpenBridge Systems</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
@ -25,11 +25,24 @@ include_once 'include/config.php';
<noscript>You must enable JavaScript</noscript>
<p id="opb"></p>
</div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<div style="width: 1100px;">
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>
</html>

View File

@ -7,14 +7,14 @@ include_once 'include/config.php';
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - Peers</title>
<title>DMR Server - Dashboard | System Peers</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712). M0VUB 2020-2021 (v20210906-1.2.9)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
<center><div style="width:1100px; text-align: center; margin-top:5px;">
<img src="img/logo.jpg?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
@ -25,11 +25,24 @@ include_once 'include/config.php';
<noscript>You must enable JavaScript</noscript>
<p id="peers"></p>
</div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<div style="width: 1100px;">
<!-- Insert Revolver Globe here
-->
<!-- FOOTER BEGIN -->
<p style="text-align: center;"><span style="text-align: center;"><br>Server Version 1.2.9 <a title="The legend of HBlink & lead developer of the ultimate DMR Master Server" target="_blank" href="https://github.com/n0mjs710">Cortney T. Buffington</a> N0MJS. &copy; All Rights Reserved 2020-2021<br>The Regents of the <a title="K0USY Group - Creators of HBLink" target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group.</a> &copy; All Rights Reserved 2016-2019<br>Dashboard Monitor by &copy; <a title="HBMonv2 SP2ONG - The ultimate dashboard king" target="_blank" href=https://github.com/sp2ong/HBMonv2>Waldek</a> SP2ONG 2019-2021<br>
Frontend by &copy; <a title="AKA ShaYmez - George Michael Look-a-Like" target="_blank" href="https://github.com/ShaYmez">Shane Daley</a> M0VUB <br><a title="HackNix" target="_blank" href="https://github.com/HackNix/FreeDMR">HackNix.</a> &copy; 2020-2021<br>
<br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
<!-- This version of HBMonv2 Dash has been edited to By Shane Daley M0VUB. This dashboard has been designed for the latest FDMR Server https://github.com/shaymez/freedmr , which has been edited for use with this dashboard.
<!-- You can also get the latest FDMR server from the original developer here http://github.com/HackNix/FreeDMR
-->
</p>
<!-- FOOTER END -->
</div>
</center>
</body>
</html>

View File

@ -0,0 +1,35 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - STATUS</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210515)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p style="text-align:center;"></p>
</div>
<div style="width: 1100px;">
<noscript>You must enable JavaScript</noscript>
<p id="bridge"></p>
</div>
<div style="width: 1100px; margin-left:0px;">
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021)-->
</p></div>
</center>
</body>
</html>

View File

@ -0,0 +1,60 @@
<div style="width: 1100px;">
<!-- HBMonitor buttons HTML code -->
<a href="index.php"><button class="button link">&nbsp;Home&nbsp;</button></a>
<!--
&nbsp;
<div class="dropdown">
<button class="dropbtn">&nbsp;Admin Area&nbsp;</button>
<div class="dropdown-content">
<a href="masters.php">&nbsp;Masters&nbsp;</a>
<a href="peers.php">&nbsp;Peers&nbsp;</a>
<a href="opb.php">&nbsp;OpenBridge&nbsp;</a>
<a href="bridges.php">&nbsp;Bridges&nbsp;</a>
<a href="moni.php">&nbsp;Monitor&nbsp;</a>
<a href="sinfo.php">&nbsp;System Info&nbsp;</a>
</div>
</div>
--->
&nbsp;
<a href="masters.php"><button class="button link">&nbsp;Masters&nbsp;</button></a>
&nbsp;
<a href="peers.php"><button class="button link">&nbsp;Peers&nbsp;</button></a>
&nbsp;
<a href="opb.php"><button class="button link">&nbsp;OpenBridge&nbsp;</button></a>
&nbsp;
<a href="moni.php"><button class="button link">&nbsp;Monitor&nbsp;</button></a>
&nbsp;
<a href="sysinfo.php"><button class="button link">&nbsp;System Info&nbsp;</button></a>
&nbsp;
<a title="Lastheard long list" href="log.php"><button class="button link">&nbsp;Lastheard&nbsp;</button></a>
&nbsp;
<a href="info.php"><button class="button link">&nbsp;Info&nbsp;</button></a>
&nbsp;
<!--
&nbsp;
<a href="bridges.php"><button class="button link">&nbsp;Bridges&nbsp;</button></a>
-->
<!-- Own buttons HTML code -->
<!-- Example of buttons dropdown HTML code -->
<!--
<p></p>
<div class="dropdown">
<button class="dropbtn">Admin Area</button>
<div class="dropdown-content">
<a href="masters.php">Master&Peer</a>
<a href="opb.php">OpenBridge</a>
<a href="moni.php">Monitor</a>
</div>
</div>
&nbsp;
<div class="dropdown">
<button class="dropbtn">Reflectors</button>
<div class="dropdown-content">
<a target='_blank' href="#">YSF Reflector</a>
<a target='_blank' href="#">XLX950</a>
</div>
</div>
-->
</div>
<p></p>

View File

@ -0,0 +1,4 @@
<html>
<body>
</body>
</html>

View File

@ -0,0 +1,184 @@
<?php
include_once '../include/config.php';
// Output CSS and not plain text
header("Content-type: text/css");
?>
.link <?php echo "{".THEME_COLOR."}\n"; ?>
.button <?php echo "{".THEME_COLOR."}\n"; ?>
.dropbtn <?php echo "{".THEME_COLOR."}\n"; ?>
#lact {
height:<?php echo HEIGHT_ACTIVITY; ?>;
width: 100%;
border-collapse: collapse;
border:none;
}
#rcorner {
display: flex;
align-items: center;
justify-content: center;
vertical-align: middle;
text-align:center;
justify-content: center;
align-items: center;
border-radius: 10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border: 1px solid LightGrey;
background: #e9e9e9;
font: 12pt arial, sans-serif;
font-weight:bold;
margin-top:2px;
margin-right:0px;
margin-left:0px;
margin-bottom:0px;
color:#002d62;
white-space:normal;
height: 100%;
line-height:21px;
}
#rcornerh {
display: flex;
display: -webkit-flex;
justify-content: center;
align-items: center;
border-radius:8px;
-moz-border-radius:8px;
-webkit-border-radius:8px;
font: 9pt arial, sans-serif;
font-weight:bold;
color:white;
height:25px;
line-height:25px;
<?php echo THEME_COLOR."\n"; ?>
}
table, td, th {
border: .5px solid #d0d0d0;
padding: 2px;
border-collapse: collapse;
border-spacing: 0;
text-align:center;}
tr.theme_color <?php echo "{".THEME_COLOR."}\n"; ?>
th.theme_color <?php echo "{".THEME_COLOR."}\n"; ?>
html {
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
table.log {background-color: #f0f0f0; border-collapse: collapse; border: 1px solid #C1DAD7; width: 100%;}
th.log {height: 30px; text-align: center;}
tr:nth-child(even).log {background-color: #fafafa;text-align: center;}
td.log {font-family: Monospace; height: 20px;}
a:link {
color: #0066ff;
text-decoration: none;
}
/* visited link */
a:visited {
color: #0066ff;
text-decoration: none;
}
/* mouse over link */
a:hover {
color: hotpink;
text-decoration: underline;
}
/* selected link */
a:active {
color: #0066ff;
text-decoration: none;
}
.tooltip {
position: relative;
opacity: 1;
display: inline-block;
border-bottom: 1px dotted black;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 280px;
background-color: #6E6E6E;
box-shadow: 4px 4px 6px #3b3b3b;
color: #FFFFFF;
text-align: left;
border-radius: 6px;
padding: 8px 0;
left: 100%;
opacity: 1;
/* Position the tooltip */
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltiptext {
right: 100%;
opacity: 1;
visibility: visible;
}
.button {
border: none;
padding: 8px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
font-weight: 500;
margin: 4px 2px;
border-radius: 8px;
box-shadow: 0px 8px 10px rgba(0,0,0,0.1);
}
.link:hover {background-color:rgb(140,140,140);background: rgb(140,140,140); color:white;}
.dropdown:hover .dropbtn {background-color:rgb(140,140,140);background: rgb(140,140,140); color:white;}
.dropbtn {
border: none;
padding: 8px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
font-weight: 500;
margin: 4px 2px;
border-radius: 8px;
box-shadow: 0px 8px 10px rgba(0,0,0,0.1);
}
/* The container <div> - needed to position the dropdown content */
.dropdown {
position: relative;
display: inline-block;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
min-width: 140px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1000;
}
/* Links inside the dropdown */
.dropdown-content a {
color: black;
padding: 6px 16px;
text-decoration: none;
display: block;
}
/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #ddd;}
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {display: block;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0beta1 (d565813, 2019-09-28)"
sodipodi:docname="HBlink.svg"
id="svg877"
height="411.17413"
width="1042.9242"
viewBox="49.656 217.125 1042.9242 411.17414"
version="1.1">
<sodipodi:namedview
inkscape:current-layer="svg877"
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="583"
inkscape:cy="48.366866"
inkscape:cx="574.39926"
inkscape:zoom="1"
fit-margin-left="5"
fit-margin-bottom="5"
fit-margin-right="5"
fit-margin-top="5"
units="px"
inkscape:pagecheckerboard="true"
showgrid="false"
id="namedview879"
inkscape:window-height="1348"
inkscape:window-width="1943"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
inkscape:document-rotation="0"
bordercolor="#666666"
pagecolor="#ffffff" />
<defs
id="defs837">
<font-face
overline-thickness="0"
overline-position="0"
strikethrough-thickness="0"
strikethrough-position="0"
v-hanging="0"
v-mathematical="0"
v-alphabetic="0"
v-ideographic="0"
hanging="0"
mathematical="0"
alphabetic="0"
ideographic="0"
accent-height="0"
stemh="0"
stemv="0"
id="font-face833"
font-weight="400"
descent="-255.00488"
ascent="945.0073"
cap-height="669"
x-height="669"
slope="0"
underline-thickness="20"
underline-position="-133"
units-per-em="1000"
panose-1="2 0 6 0 0 0 0 0 0 0"
font-size="96"
font-family="Ethnocentric">
<font-face-src>
<font-face-name
name="EthnocentricRg-Regular" />
</font-face-src>
</font-face>
<font-face
overline-thickness="0"
overline-position="0"
strikethrough-thickness="0"
strikethrough-position="0"
v-hanging="0"
v-mathematical="0"
v-alphabetic="0"
v-ideographic="0"
hanging="0"
mathematical="0"
alphabetic="0"
ideographic="0"
accent-height="0"
stemh="0"
stemv="0"
id="font-face835"
font-weight="400"
descent="-255.00488"
ascent="945.0073"
cap-height="669"
x-height="669"
slope="0"
underline-thickness="20"
underline-position="-133"
units-per-em="1000"
panose-1="2 0 6 0 0 0 0 0 0 0"
font-size="48"
font-family="Ethnocentric">
<font-face-src>
<font-face-name
name="EthnocentricRg-Regular" />
</font-face-src>
</font-face>
</defs>
<metadata
id="metadata839"> Produced by OmniGraffle 7.12.1
<dc:date>2018-03-14 13:37:44 +0000</dc:date>
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="matrix(3.5262508,0,0,3.5262508,-159.40153,-655.56235)"
stroke-opacity="1"
stroke="none"
stroke-dasharray="none"
fill-opacity="1"
fill="none"
id="Canvas_2">
<title
id="title841">Canvas 2</title>
<g
id="Canvas_2: Layer 1">
<title
id="title843">Layer 1</title>
<g
id="Group_40">
<g
id="Graphic_39">
<title
id="title845">path6007</title>
<path
inkscape:connector-curvature="0"
id="path847"
stroke-width="3"
stroke-linejoin="round"
stroke-linecap="round"
stroke="#009051"
d="m 72.52062,328.5 h 225.5218 c 6.17355,0 11.1782,5.00465 11.1782,11.1782 v 0 c 0,6.17355 -5.00465,11.1782 -11.1782,11.1782 H 72.52062 c -6.17355,0 -11.1782,-5.00465 -11.1782,-11.1782 v 0 c 0,-6.17355 5.00465,-11.1782 11.1782,-11.1782 z" />
</g>
<g
id="Graphic_38">
<g
style="fill:#009051"
id="text852"
transform="translate(54.656,222.125)"
aria-label="HB">
<path
inkscape:connector-curvature="0"
id="path881"
style="font-weight:400;font-size:96px;font-family:Ethnocentric;fill:#009051"
d="M 84,91 H 64.224 V 66.232 H 26.016 V 91 H 6.048 V 26.776 H 26.016 V 49.528 H 64.224 V 26.776 H 84 Z" />
<path
inkscape:connector-curvature="0"
id="path883"
style="font-weight:400;font-size:96px;font-family:Ethnocentric;fill:#009051"
d="m 168.7155,57.976 q 4.224,1.248 7.104,4.896 2.976,3.648 2.976,9.408 0,4.032 -1.248,7.488 -1.248,3.36 -4.224,5.856 -2.976,2.496 -8.064,3.936 -4.992,1.44 -12.576,1.44 H 96.2355 V 51.928 h 56.832 q 2.208,0 3.84,-0.864 1.728,-0.96 1.728,-3.456 0,-2.4 -1.728,-3.264 -1.728,-0.864 -3.84,-0.864 h -56.832 l 13.44,-16.704 h 42.528 q 5.76,0 10.368,1.152 4.704,1.056 7.968,3.36 3.36,2.208 5.088,5.568 1.824,3.264 1.824,7.68 0,2.88 -0.768,5.088 -0.768,2.208 -2.016,3.936 -1.152,1.632 -2.784,2.784 -1.536,1.056 -3.168,1.632 z m -52.512,7.68 v 8.832 h 36.576 q 3.264,0 4.704,-1.152 1.44,-1.152 1.44,-3.36 0,-2.112 -1.44,-3.168 -1.44,-1.152 -4.704,-1.152 z" />
</g>
</g>
<g
id="Graphic_37">
<g
style="fill:#ff9300"
id="text857"
transform="translate(209.109,275)"
aria-label="link">
<path
inkscape:connector-curvature="0"
id="path886"
style="font-weight:400;font-size:48px;font-family:Ethnocentric;fill:#ff9300"
d="M 3.024,45 Z M 37.824,36.744 31.392,45 H 3.024 V 12.888 h 9.936 v 23.856 z" />
<path
inkscape:connector-curvature="0"
id="path888"
style="font-weight:400;font-size:48px;font-family:Ethnocentric;fill:#ff9300"
d="m 41.32425,45 z m 9.936,0 h -9.936 V 12.888 h 9.936 z" />
<path
inkscape:connector-curvature="0"
id="path890"
style="font-weight:400;font-size:48px;font-family:Ethnocentric;fill:#ff9300"
d="m 57.34875,45 z m 32.688,0.528 q -0.96,0 -1.92,-0.336 -0.912,-0.288 -2.064,-1.392 l -19.68,-17.664 V 45 h -9.024 V 18.36 q 0,-1.584 0.432,-2.736 0.48,-1.152 1.2,-1.872 0.768,-0.72 1.728,-1.056 1.008,-0.336 2.064,-0.336 0.912,0 1.824,0.336 0.96,0.288 2.16,1.392 l 19.68,17.664 V 12.888 h 9.072 V 39.48 q 0,1.584 -0.48,2.736 -0.432,1.152 -1.2,1.92 -0.72,0.72 -1.728,1.056 -1.008,0.336 -2.064,0.336 z" />
<path
inkscape:connector-curvature="0"
id="path892"
style="font-weight:400;font-size:48px;font-family:Ethnocentric;fill:#ff9300"
d="m 101.36775,45 z m 40.512,0 h -15.024 l -9.696,-8.448 q -2.496,-2.16 -3.84,-3.36 -1.296,-1.2 -2.112,-2.016 0.048,1.104 0.096,2.304 0.048,1.152 0.048,2.304 V 45 h -9.984 V 12.888 h 9.984 v 7.44 q 0,1.488 -0.048,2.928 -0.048,1.44 -0.144,2.688 0.96,-0.864 2.304,-2.112 1.392,-1.296 3.6,-3.12 l 9.264,-7.824 h 14.4 l -12.288,9.216 q -1.584,1.2 -2.832,2.112 -1.2,0.912 -2.16,1.584 -0.96,0.672 -1.776,1.2 -0.768,0.528 -1.536,1.008 1.392,0.96 3.36,2.4 1.968,1.44 5.088,3.984 z" />
</g>
</g>
<g
id="Graphic_36">
<path
inkscape:connector-curvature="0"
d="m 302.0625,336.9375 h 14.5771 v 6.1875 h -14.5771 z"
style="fill:#ffffff"
id="rect860" />
</g>
<g
id="Graphic_35">
<title
id="title863">path6381</title>
<path
inkscape:connector-curvature="0"
id="path865"
stroke-width="3"
stroke-linejoin="round"
stroke-linecap="round"
stroke="#ff9300"
d="M 116.9282,340.3125 H 342.45 c 6.17355,0 11.1782,5.00465 11.1782,11.1782 v 0 c 0,6.17355 -5.00465,11.1782 -11.1782,11.1782 H 116.9282 c -6.17355,0 -11.1782,-5.00465 -11.1782,-11.1782 v 0 c 0,-6.17355 5.00465,-11.1782 11.1782,-11.1782 z" />
</g>
<g
id="Graphic_34">
<path
inkscape:connector-curvature="0"
d="m 99,347.625 h 14.5771 v 6.1875 H 99 Z"
style="fill:#ffffff"
id="rect868" />
</g>
<g
id="Line_33">
<path
inkscape:connector-curvature="0"
d="M 93.9375,350.85641 H 120.375"
style="stroke:#009051;stroke-width:3;stroke-linecap:round;stroke-linejoin:round"
id="line871" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,4 @@
<html>
<body>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,4 @@
<html>
<body>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

View File

@ -0,0 +1,41 @@
<?php
// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);
// Name of the monitored Dashboard
define("REPORT_NAME","Dashboard of local DMR network");
// Height of Server Activity window: 45px; 1 row, 60px 2 rows, 80px 3 rows
define("HEIGHT_ACTIVITY","45px");
//
// Theme colors define
//
// Green
//define("THEME_COLOR","background-color:#4a8f3c;color:white;");
// Blue 1
//define("THEME_COLOR","background-color:#2A659A;color:white;");
// Blue 2
//define("THEME_COLOR","background-color:#43A6DF;color:white;");
// Blue Gradient 1
define("THEME_COLOR","background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);color:white;");
// Blue Gradient 2
//define("THEME_COLOR","background-image: linear-gradient(to bottom, #3333cc 0%, #265a88 100%);color:white;");
// Red Gradient
//define("THEME_COLOR","background-image:linear-gradient(0deg, rgba(251,0,0,1) 0%, rgba(255,131,131,1) 50%, rgba(255,255,255,1) 100%);color:black;");
// Grey Gradient
//define("THEME_COLOR","background-image: linear-gradient(to bottom, #3b3b3b 10%, #808080 100%);color:white;");
// Green Gradient
//define("THEME_COLOR","background-image:linear-gradient(to bottom right,#d0e98d, #4e6b00);color:black;");
//
?>

View File

@ -0,0 +1,4 @@
<html>
<body>
</body>
</html>

View File

@ -0,0 +1,45 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - STATUS</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210712)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p></p>
</div>
<?php include_once 'buttons.html'; ?>
<div style="width: 1100px;">
<noscript>You must enable JavaScript</noscript>
<p id="main"></p>
</div>
<!-- LOG monitor -->
<!--
<div style="width: 1150px; margin-left:0px;">
<fieldset style="width: 1100px; margin-left:0px;margin-right:0px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<legend><b><font color="#000">&nbsp;.: Call log window :.&nbsp;</font></b></legend>
<pre id="log" style="height: 20em; text-align: left; overflow-y: scroll; font-size:13px; background-color: #000000; color:#b1eee9;"></pre>
</fieldset></div>
-->
<div style="width: 1100px;">
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a title="HBMonv2 SP2ONG v20210607" target="_blank" href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v20210712)-->
</p>
</div>
</center>
</body>
</html>

59
HBMonv2/html_old/info.php Normal file
View File

@ -0,0 +1,59 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - Info</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-21.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p></p>
</div>
<?php include_once 'buttons.html'; ?>
<!-- TG table -->
<div style="width: 1100px; margin-left:0px;">
<fieldset style="box-shadow:0 0 10px #999;background-color:#e0e0e0e0; width:1050px;margin-left:15px;margin-right:15px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<legend><b><font color="#000">&nbsp;.: Talk Groups :.&nbsp;</font></b></legend>
<table style="margin-top:5px; table-layout:fixed; font: 10pt arial, sans-serif;background-color: #f9f9f9f9;">
<tr class="theme_color" style=" height: 32px;font: 10pt arial, sans-serif;border:0;">
<th style='width: 150px;'>TG#</th>
<th style='width: 80px;'>TS 1</th>
<th style='width: 80px;'>TS 2</th>
<th style='width: 790px;'>Description</th>
</tr>
<tr>
<td>&nbsp;<b>TG 5</b>&nbsp;</td>
<td>&nbsp;<b></b>&nbsp;</td>
<td>&nbsp;<b>D | S</b>&nbsp;</td>
<td>Talk group XLX132-D D-Star/DMR/C4FM.</td>
</tr>
<tr>
<td>&nbsp;<b>TG 9999</b>&nbsp;</td>
<td>&nbsp;<b></b>&nbsp;</td>
<td>&nbsp;<b>D | S</b>&nbsp;</td>
<td>Echo (Parrot).</td>
</tr>
</table>
<br>
<span style="text-align: center;">Hotspot: D - duplex | S - simplex</span>
</fieldset></div><br>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
</p>
</center>
</body>
</html>

119
HBMonv2/html_old/log.php Normal file
View File

@ -0,0 +1,119 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="30">
<title>DMR Server monitor - STATUS</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v20210515)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1150px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p></p>
</div>
<?php include_once 'buttons.html'; ?>
<div style="width: 1100px;">
<p align="middle">
<div style="overflow-x:auto;">
<center><fieldset style="background-color:#e0e0e0e0;margin-left:15px;margin-right:15px;margin-top:15px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<table style="border-collapse: collapse; border: 1px solid #C1DAD7; width: 100%;background-color:#f0f0f0;">
<thead><tr><th colspan=9 style="height: 30px;font-size:18px;font-weight:bold;">LastHeard</th></tr></thead>
<tr class="theme_color" style="height:35px; text-align: center;font-weight:bold;"><TH>&nbsp;&nbsp;Date<TH>&nbsp;Time<TH>&nbsp;Callsign (DMR-Id)<TH>&nbsp;&nbsp;Name<TH>&nbsp;TG#<TH>&nbsp;&nbsp;TG Name<TH>TX (s)&nbsp;<TH>Source
</tr>
<?php
// logging extension "last heard list" for hbmonitor
// developed by Heiko Amft,DL1BZ dl1bz@bzsax.de
// define array for CSV import of logfile
$log_time=array();
$transmit_timer=array();
$calltype=array();
$event=array();
$system=array();
$src_id=array();
$src_name=array();
$ts=array();
$tg=array();
$tgname=array();
$user_id=array();
$user_call=array();
$user_name=array();
// define location and name of logfile
// best practise is write logfile in the directory where this php script is saved because some php installations have problems to read files outside the webserver directories
$handle = fopen("/opt/HBMonv2/log/lastheard.log","r");
// import to array
while (($data = fgetcsv ($handle)) !==false)
{
$log_time[] = $data[0];
$transmit_timer[] = $data[1];
$calltype[] = $data[2];
$event[] = $data[3];
$system[] = $data[4];
$src_id[] = $data[5];
$src_name[] = $data[6];
$ts[] = $data[7];
$tg[] = $data[8];
$tgname[] = $data[9];
$user_id[] = $data[10];
$user_call[] = $data[11];
$user_name[] = $data[12];
}
// define some macros for table output
$s = "<TD class=\"log\">";
$s_r = "<TD align=\"right\">";
$s_m = "<TD align=\"center\">";
// output to html table from the newest entry to the oldest
for ($i=count($log_time)-1; $i >= 0; $i--)
{
// prepare date string for output in european format
$split_date = substr($log_time[$i],0,10);
$date_eu = explode("-", $split_date);
$ts[$i] = substr($ts[$i],-1);
$tg[$i] = substr($tg[$i],2);
// define special character convert for number zero - we write calls with number zero with this character in logs in Germany
$src_name[$i] = str_replace("0","&Oslash;",$src_name[$i]);
if (substr($user_call[$i],2,1)=="0") { $user_call[$i] = str_replace("0","&Oslash;",$user_call[$i]); }
$log_time[$i]=substr($log_time[$i],0,19);
// thats a special thing for an Id comes without DMR-Id from PEGASUS project - it means we need to convert to "NoCall" thats for calls from source ECHOLINK
if ($user_id[$i]=="1234567") {$user_call[$i] = "*NoCallsign*"; $user_id[$i]="-";}
// output table
echo "<TR class=\"log\" style=\"height:25px; text-align: center;\">".$s.'&nbsp;'.$date_eu[2].".".$date_eu[1].".".$date_eu[0].$s.'&nbsp;'.substr($log_time[$i],11,5).$s.'<font color=#0066ff><b>&nbsp;'.$user_call[$i]."</b></font><font size=\"-1\"> (".$user_id[$i].")</font>".$s.'<font color=#002d62><b>'.TRIM($user_name[$i]).'</b></font>'.$s.'<font color=#b5651d><b>'.$tg[$i].'</b></font>'.$s.'<font color=green><b>&nbsp;'.$tgname[$i].'</b></font>'.$s."<center>".round($transmit_timer[$i])."</center>".$s.$system[$i]."</TR>\n";
}
echo "\n</table></fieldset></div>";
// close logfile after parsing
fclose ($handle);
?>
<div style="width: 1100px;">
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a target="_blank" href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a title="HBMonv2 SP2ONG" target="_blank" href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor v2 SP2ONG 2019-2021 (v20210515)-->
<font size="-2">&copy; developed by DL1BZ as logging-extension of HBmonitor (2018,2019)</font><br>
</p>
</div>
</center>
</body>
</html>

View File

@ -0,0 +1,35 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - Masters</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p style="text-align:center;"></p>
<?php include_once 'buttons.html'; ?>
</div>
<div style="width: 1100px;">
<noscript>You must enable JavaScript</noscript>
<p id="masters"></p>
</div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
</p>
</center>
</body>
</html>

42
HBMonv2/html_old/moni.php Normal file
View File

@ -0,0 +1,42 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server - Monitor</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p></p>
</div>
<?php include_once 'buttons.html'; ?>
<div style="width: 1100px;">
<noscript>You must enable JavaScript</noscript>
<p id="moni"></p>
</div>
<p></p>
<!-- LOG monitor -->
<div style="width: 1150px; margin-left:0px;">
<fieldset style="background-color:#e0e0e0e0;width: 1100px; margin-left:0px;margin-right:0px;font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
<legend><b><font color="#000">&nbsp;.: Call log window :.&nbsp;</font></b></legend>
<pre id="log" style="height: 40em; text-align: left; overflow-y: scroll; font-size:13px; background-color: #000000; color:#b1eee9;"></pre>
</fieldset></div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
</p>
</center>
</body>
</html>

35
HBMonv2/html_old/opb.php Normal file
View File

@ -0,0 +1,35 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - OpenBridge</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p></p>
</div>
<?php include_once 'buttons.html'; ?>
<div style="width: 1100px;">
<noscript>You must enable JavaScript</noscript>
<p id="opb"></p>
</div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
</p>
</center>
</body>
</html>

View File

@ -0,0 +1,35 @@
<?php
$progname = basename($_SERVER['SCRIPT_FILENAME'],".php");
include_once 'include/config.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" lang="en">
<head>
<meta charset="UTF-8">
<title>DMR Server monitor - Peers</title>
<script type="text/javascript" src="scripts/hbmon.js"></script>
<link rel="stylesheet" type="text/css" href="css/styles.php" />
<meta name="description" content="Copyright (c) 2016-2021.The Regents of the K0USY Group. All rights reserved. Version SP2ONG 2019-2021 (v2021)" />
</head>
<body style="background-color: #d0d0d0;font: 10pt arial, sans-serif;">
<center><div style="width:1250px; text-align: center; margin-top:5px;">
<img src="img/logo.png?random=323527528432525.24234" alt="" />
</div>
<div style="width: 1100px;">
<p style="text-align:center;"><span style="color:#000;font-size: 18px; font-weight:bold;"><?php echo REPORT_NAME;?></span></p>
<p></p>
</div>
<?php include_once 'buttons.html'; ?>
<div style="width: 1100px;">
<noscript>You must enable JavaScript</noscript>
<p id="peers"></p>
</div>
<p style="text-align: center;"><span style="text-align: center;">
Copyright (c) 2016-2021<br>The Regents of the <a href=http://k0usy.mystrikingly.com/>K0USY Group</a>. All rights reserved.<br><a href=https://github.com/sp2ong/HBMonv2>Version SP2ONG 2019-2021</a><br><br></span>
<!-- THIS COPYRIGHT NOTICE MUST BE DISPLAYED AS A CONDITION OF THE LICENCE GRANT FOR THIS SOFTWARE. ALL DERIVATEIVES WORKS MUST CARRY THIS NOTICE -->
<!-- This is version of HBMonitor SP2ONG 2019-2021 (v2021) -->
</p>
</center>
</body>
</html>

View File

@ -0,0 +1,79 @@
var sock = null;
var ellog = null;
window.onload = function() {
var wsuri;
ellog = document.getElementById('log');
bridge_table = document.getElementById('bridge');
main_table = document.getElementById('main');
masters_table = document.getElementById('masters');
opb_table = document.getElementById('opb');
peers_table = document.getElementById('peers');
wsuri = (((window.location.protocol === "https:") ? "wss://" : "ws://") + window.location.hostname + ":9000");
if ("WebSocket" in window) {
sock = new WebSocket(wsuri);
} else if ("MozWebSocket" in window) {
sock = new MozWebSocket(wsuri);
} else {
if (ellog != null) {
log("Browser does not support WebSocket!");}
}
if (sock) {
sock.onopen = function() {
if (ellog != null) {
log("Connected to " + wsuri);}
}
sock.onclose = function(e) {
if (ellog != null) {
log("Connection closed (wasClean = " + e.wasClean + ", code = " + e.code + ", reason = '" + e.reason + "')");}
sock = null;
bridge_table.innerHTML = "";
main_table.innerHTML = "";
masters_table.innerHTML = "";
opb_table.innerHTML = "";
peers_table.innerHTML = "";
}
sock.onmessage = function(e) {
var opcode = e.data.slice(0,1);
var message = e.data.slice(1);
if (opcode == "b") {
Bmsg(message);
} else if (opcode == "c") {
Cmsg(message);
} else if (opcode == "i") {
Imsg(message);
} else if (opcode == "o") {
Omsg(message);
} else if (opcode == "p") {
Pmsg(message);
} else if (opcode == "l") {
if (ellog != null) {
log(message);}
} else if (opcode == "q") {
log(message);
bridge_table.innerHTML = "";
main_table.innerHTML = "";
masters_table.innerHTML = "";
opb_table.innerHTML = "";
peers_table.innerHTML = "";
} else {
log("Unknown Message Received: " + message);
}
}
}
};
function Bmsg(_msg) {bridge_table.innerHTML = _msg;};
function Cmsg(_msg) {masters_table.innerHTML = _msg;};
function Imsg(_msg) {main_table.innerHTML = _msg;};
function Omsg(_msg) {opb_table.innerHTML = _msg;};
function Pmsg(_msg) {peers_table.innerHTML = _msg;};
function log(_msg) {
ellog.innerHTML += _msg + '\n';
ellog.scrollTop = ellog.scrollHeight;};

View File

@ -0,0 +1,4 @@
<html>
<body>
</body>
</html>