mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
minimal example deaddrop
This commit is contained in:
parent
4e2eef35d4
commit
531ad7ee2b
19 changed files with 1118 additions and 10 deletions
|
@ -136,6 +136,8 @@ lwsac_free(struct lwsac **head)
|
|||
{
|
||||
struct lwsac *it = *head;
|
||||
|
||||
lwsl_debug("%s: head %p\n", __func__, *head);
|
||||
|
||||
while (it) {
|
||||
struct lwsac *tmp = it->next;
|
||||
|
||||
|
@ -149,8 +151,8 @@ lwsac_free(struct lwsac **head)
|
|||
void
|
||||
lwsac_info(struct lwsac *head)
|
||||
{
|
||||
lwsl_notice("%s: lac %p: %dKiB in %d blocks\n", __func__, head,
|
||||
(int)(head->total_alloc_size >> 10), head->total_blocks);
|
||||
lwsl_debug("%s: lac %p: %dKiB in %d blocks\n", __func__, head,
|
||||
(int)(head->total_alloc_size >> 10), head->total_blocks);
|
||||
}
|
||||
|
||||
uint64_t
|
||||
|
@ -163,6 +165,8 @@ void
|
|||
lwsac_reference(struct lwsac *head)
|
||||
{
|
||||
head->refcount++;
|
||||
lwsl_debug("%s: head %p: (det %d) refcount -> %d\n",
|
||||
__func__, head, head->detached, head->refcount);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -170,15 +174,29 @@ lwsac_unreference(struct lwsac **head)
|
|||
{
|
||||
if (!(*head))
|
||||
return;
|
||||
|
||||
if (!(*head)->refcount)
|
||||
lwsl_warn("%s: refcount going below zero\n", __func__);
|
||||
|
||||
(*head)->refcount--;
|
||||
if ((*head)->detached && !(*head)->refcount)
|
||||
|
||||
lwsl_debug("%s: head %p: (det %d) refcount -> %d\n",
|
||||
__func__, *head, (*head)->detached, (*head)->refcount);
|
||||
|
||||
if ((*head)->detached && !(*head)->refcount) {
|
||||
lwsl_debug("%s: head %p: FREED\n", __func__, *head);
|
||||
lwsac_free(head);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
lwsac_detach(struct lwsac **head)
|
||||
{
|
||||
(*head)->detached = 1;
|
||||
if (!(*head)->refcount)
|
||||
if (!(*head)->refcount) {
|
||||
lwsl_debug("%s: head %p: FREED\n", __func__, *head);
|
||||
lwsac_free(head);
|
||||
} else
|
||||
lwsl_debug("%s: head %p: refcount %d: Marked as detached\n",
|
||||
__func__, *head, (*head)->refcount);
|
||||
}
|
||||
|
|
|
@ -1552,7 +1552,7 @@ deal_body:
|
|||
(uint8_t **)&ebuf.token);
|
||||
if (!ebuf.len)
|
||||
break;
|
||||
lwsl_notice("%s: consuming %d\n", __func__,
|
||||
lwsl_debug("%s: consuming %d\n", __func__,
|
||||
(int)ebuf.len);
|
||||
m = lws_read_h1(wsi, (uint8_t *)ebuf.token,
|
||||
ebuf.len);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
|Example|Demonstrates|
|
||||
---|---
|
||||
minimal-http-server-basicauth|Shows how to protect a mount using a password file and basic auth
|
||||
minimal-http-server-deaddrop|Shows how to use the deaddrop drag and drop file upload + sharing plugin
|
||||
minimal-http-server-dynamic|Serves both static and dynamically generated http content
|
||||
minimal-http-server-eventlib-foreign|Demonstrates integrating lws with a foreign event library
|
||||
minimal-http-server-eventlib-demos|Using the demo plugins with event libraries
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
include(CheckCSourceCompiles)
|
||||
|
||||
set(SAMP lws-minimal-http-server-deaddrop)
|
||||
set(SRCS minimal-http-server-deaddrop.c)
|
||||
|
||||
# NOTE... if you are building this standalone, you must point LWS_PLUGINS_DIR
|
||||
# to the lws plugins dir so it can pick up the plugin source. Eg,
|
||||
# cmake . -DLWS_PLUGINS_DIR=~/libwebsockets/plugins
|
||||
|
||||
# If we are being built as part of lws, confirm current build config supports
|
||||
# reqconfig, else skip building ourselves.
|
||||
#
|
||||
# If we are being built externally, confirm installed lws was configured to
|
||||
# support reqconfig, else error out with a helpful message about the problem.
|
||||
#
|
||||
MACRO(require_lws_config reqconfig _val result)
|
||||
|
||||
if (DEFINED ${reqconfig})
|
||||
if (${reqconfig})
|
||||
set (rq 1)
|
||||
else()
|
||||
set (rq 0)
|
||||
endif()
|
||||
else()
|
||||
set(rq 0)
|
||||
endif()
|
||||
|
||||
if (${_val} EQUAL ${rq})
|
||||
set(SAME 1)
|
||||
else()
|
||||
set(SAME 0)
|
||||
endif()
|
||||
|
||||
if (LWS_WITH_MINIMAL_EXAMPLES AND NOT ${SAME})
|
||||
if (${_val})
|
||||
message("${SAMP}: skipping as lws being built without ${reqconfig}")
|
||||
else()
|
||||
message("${SAMP}: skipping as lws built with ${reqconfig}")
|
||||
endif()
|
||||
set(${result} 0)
|
||||
else()
|
||||
if (LWS_WITH_MINIMAL_EXAMPLES)
|
||||
set(MET ${SAME})
|
||||
else()
|
||||
CHECK_C_SOURCE_COMPILES("#include <libwebsockets.h>\nint main(void) {\n#if defined(${reqconfig})\n return 0;\n#else\n fail;\n#endif\n return 0;\n}\n" HAS_${reqconfig})
|
||||
if (NOT DEFINED HAS_${reqconfig} OR NOT HAS_${reqconfig})
|
||||
set(HAS_${reqconfig} 0)
|
||||
else()
|
||||
set(HAS_${reqconfig} 1)
|
||||
endif()
|
||||
if ((HAS_${reqconfig} AND ${_val}) OR (NOT HAS_${reqconfig} AND NOT ${_val}))
|
||||
set(MET 1)
|
||||
else()
|
||||
set(MET 0)
|
||||
endif()
|
||||
endif()
|
||||
if (NOT MET)
|
||||
if (${_val})
|
||||
message(FATAL_ERROR "This project requires lws must have been configured with ${reqconfig}")
|
||||
else()
|
||||
message(FATAL_ERROR "Lws configuration of ${reqconfig} is incompatible with this project")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
ENDMACRO()
|
||||
|
||||
set(requirements 1)
|
||||
require_lws_config(LWS_ROLE_H1 1 requirements)
|
||||
require_lws_config(LWS_ROLE_WS 1 requirements)
|
||||
require_lws_config(LWS_WITHOUT_SERVER 0 requirements)
|
||||
|
||||
if (requirements)
|
||||
add_executable(${SAMP} ${SRCS})
|
||||
|
||||
if (LWS_PLUGINS_DIR)
|
||||
include_directories(${LWS_PLUGINS_DIR})
|
||||
endif()
|
||||
|
||||
if (websockets_shared)
|
||||
target_link_libraries(${SAMP} websockets_shared)
|
||||
add_dependencies(${SAMP} websockets_shared)
|
||||
else()
|
||||
target_link_libraries(${SAMP} websockets)
|
||||
endif()
|
||||
endif()
|
|
@ -0,0 +1,49 @@
|
|||
# lws minimal http server deaddrop
|
||||
|
||||
This demonstrates how you can leverage the lws deaddrop plugin to make a
|
||||
secure, modern html5 file upload and sharing application.
|
||||
|
||||
The demo is protected by basic auth credentials defined in the file at
|
||||
./ba-passwords - by default the credentials are user: user1, password: password;
|
||||
and user: user2, password: password again.
|
||||
|
||||
You can upload files and have them appear on a shared, downloadable list that
|
||||
is dynamically updated to all clients open on the page. Only the authenticated
|
||||
uploader is able to delete the files he uploaded.
|
||||
|
||||
Multiple simultaneous ongoing file uploads are supported.
|
||||
|
||||
## build
|
||||
|
||||
To build this standalone, you must tell cmake where the lws source tree
|
||||
./plugins directory can be found, since it relies on including the source
|
||||
of the raw-proxy plugin.
|
||||
|
||||
```
|
||||
$ cmake . -DLWS_PLUGINS_DIR=~/libwebsockets/plugins && make
|
||||
```
|
||||
|
||||
## usage
|
||||
|
||||
```
|
||||
$ ./lws-minimal-http-server-deaddrop
|
||||
[2018/12/01 10:31:09:7108] USER: LWS minimal http server deaddrop | visit https://localhost:7681
|
||||
[2018/12/01 10:31:09:8511] NOTICE: Creating Vhost 'default' port 7681, 1 protocols, IPv6 off
|
||||
[2018/12/01 10:31:09:8522] NOTICE: Using SSL mode
|
||||
[2018/12/01 10:31:10:0755] NOTICE: SSL ECDH curve 'prime256v1'
|
||||
[2018/12/01 10:31:10:2562] NOTICE: lws_tls_client_create_vhost_context: doing cert filepath localhost-100y.cert
|
||||
[2018/12/01 10:31:10:2581] NOTICE: Loaded client cert localhost-100y.cert
|
||||
[2018/12/01 10:31:10:2583] NOTICE: lws_tls_client_create_vhost_context: doing private key filepath
|
||||
[2018/12/01 10:31:10:2593] NOTICE: Loaded client cert private key localhost-100y.key
|
||||
[2018/12/01 10:31:10:2596] NOTICE: created client ssl context for default
|
||||
[2018/12/01 10:31:10:5290] NOTICE: deaddrop: vh default, upload dir ./uploads, max size 10000000
|
||||
[2018/12/01 10:31:10:5376] NOTICE: vhost default: cert expiry: 730203d
|
||||
...
|
||||
```
|
||||
|
||||
Visit https://localhost:7681, and follow the link there to the secret area.
|
||||
|
||||
Give your browser "user1" and "password" as the credentials. For testing to
|
||||
confirm what a different user sees, you can also log in as "user2" and
|
||||
"password".
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
user1:password
|
||||
user2:password
|
|
@ -0,0 +1,34 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
e2Hl/7M0c/lbZ4FvXgARlex2rkgS0Ka06HE=
|
||||
-----END CERTIFICATE-----
|
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
fBrpEY1IATtPq1taBZZogRqI3rOkkPk=
|
||||
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,171 @@
|
|||
/*
|
||||
* lws-minimal-http-server-deaddrop
|
||||
*
|
||||
* Copyright (C) 2018 Andy Green <andy@warmcat.com>
|
||||
*
|
||||
* This file is made available under the Creative Commons CC0 1.0
|
||||
* Universal Public Domain Dedication.
|
||||
*
|
||||
* This demonstrates how you can leverage the lws deaddrop plugin to make a
|
||||
* secure, modern html5 file upload and sharing application.
|
||||
*
|
||||
* Because the guts are in a plugin, you can avoid all this setup by using the
|
||||
* plugin from lwsws and do the config in JSON.
|
||||
*/
|
||||
|
||||
#include <libwebsockets.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
|
||||
#define LWS_PLUGIN_STATIC
|
||||
#include "../plugins/deaddrop/protocol_lws_deaddrop.c"
|
||||
|
||||
static struct lws_protocols protocols[] = {
|
||||
LWS_PLUGIN_PROTOCOL_DEADDROP,
|
||||
{ NULL, NULL, 0, 0 } /* terminator */
|
||||
};
|
||||
|
||||
|
||||
static int interrupted;
|
||||
|
||||
/*
|
||||
* teach the /get mount how to present various filetypes to the client...
|
||||
* lws won't serve files it doesn't know the mimetype for as a security
|
||||
* measure.
|
||||
*/
|
||||
|
||||
static struct lws_protocol_vhost_options em3 = {
|
||||
NULL, NULL, ".zip", "application/zip"
|
||||
}, em2 = {
|
||||
&em3, NULL, ".pdf", "application/pdf"
|
||||
}, extra_mimetypes = {
|
||||
&em2, NULL, ".tar.gz", "application/x-gzip"
|
||||
};
|
||||
|
||||
/* wire up /upload URLs to the plugin (protected by basic auth) */
|
||||
|
||||
static const struct lws_http_mount mount_upload = {
|
||||
/* .mount_next */ NULL,
|
||||
/* .mountpoint */ "/upload", /* mountpoint URL */
|
||||
/* .origin */ "lws-deaddrop",
|
||||
/* .def */ "",
|
||||
/* .protocol */ NULL,
|
||||
/* .cgienv */ NULL,
|
||||
/* .extra_mimetypes */ NULL,
|
||||
/* .interpret */ NULL,
|
||||
/* .cgi_timeout */ 0,
|
||||
/* .cache_max_age */ 0,
|
||||
/* .auth_mask */ 0,
|
||||
/* .cache_reusable */ 0,
|
||||
/* .cache_revalidate */ 0,
|
||||
/* .cache_intermediaries */ 0,
|
||||
/* .origin_protocol */ LWSMPRO_CALLBACK,
|
||||
/* .mountpoint_len */ 7, /* char count */
|
||||
/* .basic_auth_login_file */ "./ba-passwords",
|
||||
};
|
||||
|
||||
/* wire up /get URLs to the upload directory (protected by basic auth) */
|
||||
|
||||
static const struct lws_http_mount mount_get = {
|
||||
/* .mount_next */ &mount_upload, /* linked-list "next" */
|
||||
/* .mountpoint */ "/get", /* mountpoint URL */
|
||||
/* .origin */ "./uploads",
|
||||
/* .def */ "",
|
||||
/* .protocol */ NULL,
|
||||
/* .cgienv */ NULL,
|
||||
/* .extra_mimetypes */ &extra_mimetypes,
|
||||
/* .interpret */ NULL,
|
||||
/* .cgi_timeout */ 0,
|
||||
/* .cache_max_age */ 0,
|
||||
/* .auth_mask */ 0,
|
||||
/* .cache_reusable */ 0,
|
||||
/* .cache_revalidate */ 0,
|
||||
/* .cache_intermediaries */ 0,
|
||||
/* .origin_protocol */ LWSMPRO_FILE, /* dynamic */
|
||||
/* .mountpoint_len */ 4, /* char count */
|
||||
/* .basic_auth_login_file */ "./ba-passwords",
|
||||
};
|
||||
|
||||
/* wire up / to serve from ./mount-origin (protected by basic auth) */
|
||||
|
||||
static const struct lws_http_mount mount = {
|
||||
/* .mount_next */ &mount_get, /* linked-list "next" */
|
||||
/* .mountpoint */ "/", /* mountpoint URL */
|
||||
/* .origin */ "./mount-origin", /* serve from dir */
|
||||
/* .def */ "index.html", /* default filename */
|
||||
/* .protocol */ NULL,
|
||||
/* .cgienv */ NULL,
|
||||
/* .extra_mimetypes */ NULL,
|
||||
/* .interpret */ NULL,
|
||||
/* .cgi_timeout */ 0,
|
||||
/* .cache_max_age */ 0,
|
||||
/* .auth_mask */ 0,
|
||||
/* .cache_reusable */ 0,
|
||||
/* .cache_revalidate */ 0,
|
||||
/* .cache_intermediaries */ 0,
|
||||
/* .origin_protocol */ LWSMPRO_FILE, /* files in a dir */
|
||||
/* .mountpoint_len */ 1, /* char count */
|
||||
/* .basic_auth_login_file */ "./ba-passwords",
|
||||
};
|
||||
|
||||
/* pass config options to the deaddrop plugin using pvos */
|
||||
|
||||
static struct lws_protocol_vhost_options pvo3 = {
|
||||
/* make the wss also require to pass basic auth */
|
||||
NULL, NULL, "basic-auth", "./ba-passwords"
|
||||
}, pvo2 = {
|
||||
&pvo3, NULL, "max-size", "10000000"
|
||||
}, pvo1 = {
|
||||
&pvo2, NULL, "upload-dir", "./uploads" /* would be an absolute path */
|
||||
}, pvo = {
|
||||
NULL, /* "next" pvo linked-list */
|
||||
&pvo1, /* "child" pvo linked-list */
|
||||
"lws-deaddrop", /* protocol name we belong to on this vhost */
|
||||
"" /* ignored */
|
||||
};
|
||||
|
||||
void sigint_handler(int sig)
|
||||
{
|
||||
interrupted = 1;
|
||||
}
|
||||
|
||||
int main(int argc, const char **argv)
|
||||
{
|
||||
struct lws_context_creation_info info;
|
||||
struct lws_context *context;
|
||||
const char *p;
|
||||
int n = 0, logs = LLL_USER | LLL_ERR | LLL_WARN | LLL_NOTICE;
|
||||
|
||||
signal(SIGINT, sigint_handler);
|
||||
|
||||
if ((p = lws_cmdline_option(argc, argv, "-d")))
|
||||
logs = atoi(p);
|
||||
|
||||
lws_set_log_level(logs, NULL);
|
||||
lwsl_user("LWS minimal http server deaddrop | visit https://localhost:7681\n");
|
||||
|
||||
memset(&info, 0, sizeof info); /* otherwise uninitialized garbage */
|
||||
info.port = 7681;
|
||||
info.mounts = &mount;
|
||||
info.pvo = &pvo;
|
||||
info.protocols = protocols;
|
||||
info.error_document_404 = "/404.html";
|
||||
info.options = LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT |
|
||||
LWS_SERVER_OPTION_HTTP_HEADERS_SECURITY_BEST_PRACTICES_ENFORCE;
|
||||
info.ssl_cert_filepath = "localhost-100y.cert";
|
||||
info.ssl_private_key_filepath = "localhost-100y.key";
|
||||
|
||||
context = lws_create_context(&info);
|
||||
if (!context) {
|
||||
lwsl_err("lws init failed\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
while (n >= 0 && !interrupted)
|
||||
n = lws_service(context, 1000);
|
||||
|
||||
lws_context_destroy(context);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<meta charset="UTF-8">
|
||||
<html>
|
||||
<body>
|
||||
<img src="libwebsockets.org-logo.svg"><br>
|
||||
<h1>404</h1>
|
||||
Sorry, that file doesn't exist.
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
.td { padding: 8px }
|
||||
.h1 { }
|
||||
.dd-fileinfo { font-size: 8pt; }
|
||||
table td {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
background-color: rgba(247, 247, 232, 0.6);
|
||||
text-align: center
|
||||
}
|
||||
table {
|
||||
border: 2px solid #ccc;
|
||||
padding: 4px;
|
||||
border-radius: 12px;
|
||||
transition: background-color 0.5s ease;
|
||||
}
|
||||
table.nb { border: 0px; border-radius: 0px; transition: opacity 0.5s; }
|
||||
table.noconn { background-color: #ddd; }
|
||||
|
||||
div { transition: opacity 0.5s; }
|
||||
div.da { padding-left: 20px; padding-right:20px; }
|
||||
div.trot {
|
||||
animation: scale 0.5s linear infinite;
|
||||
}
|
||||
div.uplbox { padding-bottom: 8px; }
|
||||
div.disa { opacity: 0.2; }
|
||||
|
||||
td.ogn { text-align:left; font-size: 8pt; padding-left: 4px; padding-right: 4px;}
|
||||
td.dow { text-align:left; font-size: 9pt; padding-left: 4px; padding-right: 4px;}
|
||||
td.r { text-align: right; }
|
||||
td.err { color: red; font-weight: bold; }
|
||||
td.vm { display: table-cell; vertical-align: middle; padding-top: 12px; padding-bottom: 12px; }
|
||||
|
||||
h3 { font-size: 12pt; margin-bottom: 6px; }
|
||||
span { font-size: 9pt; }
|
||||
a { font-size: 9pt; }
|
||||
|
||||
input.ubtn { font-size: 16pt; margin-top: 4px; text-align: center }
|
||||
|
||||
img.working {
|
||||
display: inline-block;
|
||||
float:left;
|
||||
background: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKICAgICB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzMHB4IiB2aWV3Qm94PSIwIDAgMjQgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUwIDUwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgICA8cmVjdCB4PSIwIiB5PSIxMCIgd2lkdGg9IjQiIGhlaWdodD0iMTAiIGZpbGw9IiMzMzMiIG9wYWNpdHk9IjAuMiI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIwLjI7IDE7IC4yIiBiZWdpbj0iMHMiIGR1cj0iMC42cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyAyMDsgMTAiIGJlZ2luPSIwcyIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjBzIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iOCIgeT0iMTAiIHdpZHRoPSI0IiBoZWlnaHQ9IjEwIiBmaWxsPSIjMzMzIiAgb3BhY2l0eT0iMC4yIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjAuMjsgMTsgLjIiIGJlZ2luPSIwLjE1cyIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHZhbHVlcz0iMTA7IDIwOyAxMCIgYmVnaW49IjAuMTVzIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJ5IiBhdHRyaWJ1dGVUeXBlPSJYTUwiIHZhbHVlcz0iMTA7IDU7IDEwIiBiZWdpbj0iMC4xNXMiIGR1cj0iMC42cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSIxNiIgeT0iMTAiIHdpZHRoPSI0IiBoZWlnaHQ9IjEwIiBmaWxsPSIjMzMzIiAgb3BhY2l0eT0iMC4yIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjAuMjsgMTsgLjIiIGJlZ2luPSIwLjNzIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJoZWlnaHQiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgdmFsdWVzPSIxMDsgMjA7IDEwIiBiZWdpbj0iMC4zcyIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIgYXR0cmlidXRlVHlwZT0iWE1MIiB2YWx1ZXM9IjEwOyA1OyAxMCIgYmVnaW49IjAuM3MiIGR1cj0iMC42cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L3JlY3Q+Cjwvc3ZnPg==");
|
||||
width:0px;
|
||||
height:0px;
|
||||
cursor:pointer;
|
||||
padding:0.6em 1em;
|
||||
background-repeat: no-repeat;
|
||||
vertical-align:middle;
|
||||
color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
img.delbtn {
|
||||
display: inline-block;
|
||||
float:left;
|
||||
background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzNC4yMTcxMzMgMzQuMTQ0MjQ5IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KCTxkZWZzPgoJCTxyYWRpYWxHcmFkaWVudCBpZD0iYSIgY3g9IjEzNTguNSIgY3k9Ijk3Ny43MiIgcj0iNC4xMTYiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS41MDM1IDAgMCAyLjQ5NDQgLTI1NzcuNCAtMTgyMy44KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjZmZmIiBvZmZzZXQ9IjAiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIiBvZmZzZXQ9IjEiLz4KCQk8L3JhZGlhbEdyYWRpZW50PgoJCTxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjEzNjYuMyIgeDI9IjEzNDQuOCIgeTE9Ijk3OC4xOSIgeTI9Ijk1OC43MyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtMjE3NCAtMTA3Ni4xKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjOWM5NzlkIiBvZmZzZXQ9IjAiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2Y0ZmVmMyIgc3RvcC1vcGFjaXR5PSIuNzQwMTYiIG9mZnNldD0iMSIvPgoJCTwvbGluZWFyR3JhZGllbnQ+Cgk8L2RlZnM+Cgk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4MzQuMjkgMTIzLjc1KSI+CgkJPGcgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KCQkJPGNpcmNsZSBjeD0iLTgxNy4yMiIgY3k9Ii0xMDYuNjgiIHI9IjE2LjA5IiBmaWxsPSJ1cmwoI2IpIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS45NjUiLz4KCQkJPHBhdGggZD0ibS04MjUuNjctMTE0LjcxYzE3LjMzIDE3LjMzIDE3IDE2Ljk5OSAxNyAxNi45OTkiIGZpbGw9IiNmNTUiIHN0cm9rZT0iI2EwMCIgc3Ryb2tlLXdpZHRoPSIxLjY2NSIvPgoJCQk8cGF0aCBkPSJtLTgwOC45Ni0xMTQuNjFjLTE3LjMzIDE3LjMzLTE3IDE2Ljk5OS0xNyAxNi45OTkiIGZpbGw9IiNmNTUiIHN0cm9rZT0iI2EwMCIgc3Ryb2tlLXdpZHRoPSIxLjY2NSIvPgoJCTwvZz4KCQk8ZWxsaXBzZSB0cmFuc2Zvcm09InJvdGF0ZSg1NS44ODUpIiBjeD0iLTUzNC45NiIgY3k9IjYxNS4wNyIgcng9IjYuMTg4MyIgcnk9IjEwLjI2NyIgZmlsbD0idXJsKCNhKSIvPgoJPC9nPgo8L3N2Zz4=");
|
||||
width:0px;
|
||||
height:0px;
|
||||
cursor:pointer;
|
||||
padding:0.45em;
|
||||
background-repeat: no-repeat;
|
||||
vertical-align:middle;
|
||||
color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
@keyframes scale {
|
||||
50% {
|
||||
opacity: 0.5;
|
||||
transform:scale(1.1) rotate(2deg);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,300 @@
|
|||
(function() {
|
||||
|
||||
var server_max_size = 0, ws;
|
||||
|
||||
function san(s)
|
||||
{
|
||||
if (!s)
|
||||
return "";
|
||||
|
||||
return s.replace(/&/g, "&").
|
||||
replace(/\</g, "<").
|
||||
replace(/\>/g, ">").
|
||||
replace(/\"/g, """).
|
||||
replace(/%/g, "%");
|
||||
}
|
||||
|
||||
function lws_urlencode(s)
|
||||
{
|
||||
return encodeURI(s).replace(/@/g, "%40");
|
||||
}
|
||||
|
||||
function trim(num)
|
||||
{
|
||||
var s = num.toString();
|
||||
|
||||
if (!s.indexOf("."))
|
||||
return s;
|
||||
|
||||
while (s.length && s[s.length - 1] == "0")
|
||||
s = s.substring(0, s.length - 1);
|
||||
|
||||
if (s[s.length - 1] == ".")
|
||||
s = s.substring(0, s.length - 1);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
function humanize(n)
|
||||
{
|
||||
if (n < 1024)
|
||||
return n + "B";
|
||||
|
||||
if (n < 1024 * 1024)
|
||||
return trim((n / 1024).toFixed(2)) + "KiB";
|
||||
|
||||
if (n < 1024 * 1024 * 1024)
|
||||
return trim((n / (1024 * 1024)).toFixed(2)) + "MiB";
|
||||
|
||||
return trim((n / (1024 * 1024 * 1024)).toFixed(2)) + "GiB";
|
||||
}
|
||||
|
||||
function da_enter(e)
|
||||
{
|
||||
var da = document.getElementById("da");
|
||||
|
||||
e.preventDefault();
|
||||
da.classList.add("trot");
|
||||
}
|
||||
|
||||
function da_leave(e)
|
||||
{
|
||||
var da = document.getElementById("da");
|
||||
|
||||
e.preventDefault();
|
||||
da.classList.remove("trot");
|
||||
}
|
||||
|
||||
function da_over(e)
|
||||
{
|
||||
var da = document.getElementById("da");
|
||||
|
||||
e.preventDefault();
|
||||
da.classList.add("trot");
|
||||
}
|
||||
|
||||
function clear_errors() {
|
||||
var t = document.getElementById("ongoing");
|
||||
|
||||
for (n = 0; n < t.rows.length; n++)
|
||||
if (t.rows[n].cells[0].classList.contains("err"))
|
||||
t.deleteRow(n);
|
||||
}
|
||||
|
||||
function do_upload(file) {
|
||||
var formData = new FormData();
|
||||
var t = document.getElementById("ongoing");
|
||||
|
||||
formData.append('file', file);
|
||||
|
||||
var row = t.insertRow(0), c1 = row.insertCell(0),
|
||||
c2 = row.insertCell(1), c3 = row.insertCell(2);
|
||||
|
||||
c1.classList.add("ogn");
|
||||
c1.classList.add("r");
|
||||
|
||||
if (file.size > server_max_size) {
|
||||
c1.innerHTML = "Too Large";
|
||||
c1.classList.add("err");
|
||||
} else
|
||||
c1.innerHTML = "<img class=\"working\">";
|
||||
|
||||
c2.classList.add("ogn");
|
||||
c2.classList.add("r");
|
||||
c2.innerHTML = humanize(file.size);
|
||||
|
||||
c3.classList.add("ogn");
|
||||
c3.innerHTML = file.name;
|
||||
|
||||
if (file.size > server_max_size)
|
||||
return;
|
||||
|
||||
fetch("upload/" + lws_urlencode(file.name), {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
})
|
||||
.then((e) => { /* this just means we got a response code */
|
||||
var us = e.url.split("/"), ul = us[us.length - 1], n;
|
||||
|
||||
for (n = 0; n < t.rows.length; n++)
|
||||
if (ul === lws_urlencode(
|
||||
t.rows[n].cells[2].textContent)) {
|
||||
if (e.ok === true) {
|
||||
t.deleteRow(n);
|
||||
} else {
|
||||
t.rows[n].cells[0].textContent =
|
||||
"Failed " + san(e.status.toString());
|
||||
t.rows[n].cells[0].
|
||||
classList.add("err");
|
||||
}
|
||||
break;
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
var us = e.url.split("/"), ul = us[us.length - 1], n;
|
||||
|
||||
for (n = 0; n < t.rows.length; n++)
|
||||
if (ul === lws_urlencode(
|
||||
t.rows[n].cells[2].textContent)) {
|
||||
t.rows[n].cells[0] = "FAIL";
|
||||
break;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function da_drop(e) {
|
||||
var da = document.getElementById("da");
|
||||
|
||||
e.preventDefault();
|
||||
da.classList.remove("trot");
|
||||
|
||||
clear_errors();
|
||||
|
||||
([...e.dataTransfer.files]).forEach(do_upload)
|
||||
}
|
||||
|
||||
function upl_button(e) {
|
||||
var fi = document.getElementById("file"),
|
||||
da = document.getElementById("da");
|
||||
|
||||
clear_errors();
|
||||
e.preventDefault();
|
||||
|
||||
([...fi.files]).forEach(do_upload)
|
||||
}
|
||||
|
||||
function body_drop(e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
function inp() {
|
||||
var fi = document.getElementById("file"),
|
||||
upl = document.getElementById("upl");
|
||||
console.log("inp");
|
||||
upl.disabled = !fi.files.length;
|
||||
}
|
||||
|
||||
function delfile(e)
|
||||
{
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
|
||||
ws.send("{\"del\":\"" + decodeURI(e.target.getAttribute("file")) +
|
||||
"\"}");
|
||||
}
|
||||
|
||||
function get_appropriate_ws_url(extra_url)
|
||||
{
|
||||
var pcol;
|
||||
var u = document.URL;
|
||||
|
||||
/*
|
||||
* We open the websocket encrypted if this page came on an
|
||||
* https:// url itself, otherwise unencrypted
|
||||
*/
|
||||
|
||||
if (u.substring(0, 5) === "https") {
|
||||
pcol = "wss://";
|
||||
u = u.substr(8);
|
||||
} else {
|
||||
pcol = "ws://";
|
||||
if (u.substring(0, 4) === "http")
|
||||
u = u.substr(7);
|
||||
}
|
||||
|
||||
u = u.split("/");
|
||||
|
||||
/* + "/xxx" bit is for IE10 workaround */
|
||||
|
||||
return pcol + u[0] + "/" + extra_url;
|
||||
}
|
||||
|
||||
function new_ws(urlpath, protocol)
|
||||
{
|
||||
if (typeof MozWebSocket != "undefined")
|
||||
return new MozWebSocket(urlpath, protocol);
|
||||
|
||||
return new WebSocket(urlpath, protocol);
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var da = document.getElementById("da"),
|
||||
fi = document.getElementById("file"),
|
||||
upl = document.getElementById("upl");
|
||||
|
||||
da.addEventListener("dragenter", da_enter, false);
|
||||
da.addEventListener("dragleave", da_leave, false);
|
||||
da.addEventListener("dragover", da_over, false);
|
||||
da.addEventListener("drop", da_drop, false);
|
||||
|
||||
upl.addEventListener("click", upl_button, false);
|
||||
fi.addEventListener("change", inp, false);
|
||||
|
||||
window.addEventListener("dragover", body_drop, false);
|
||||
window.addEventListener("drop", body_drop, false);
|
||||
|
||||
ws = new_ws(get_appropriate_ws_url(""), "lws-deaddrop");
|
||||
try {
|
||||
ws.onopen = function() {
|
||||
var dd = document.getElementById("ddrop"),
|
||||
da = document.getElementById("da");
|
||||
|
||||
dd.classList.remove("noconn");
|
||||
da.classList.remove("disa");
|
||||
};
|
||||
|
||||
ws.onmessage = function got_packet(msg) {
|
||||
var j = JSON.parse(msg.data), s = "", n,
|
||||
t = document.getElementById("dd-list");
|
||||
|
||||
server_max_size = j.max_size;
|
||||
document.getElementById("size").innerHTML =
|
||||
"Server maximum file size " +
|
||||
humanize(j.max_size);
|
||||
|
||||
s += "<table class=\"nb\">";
|
||||
for (n = 0; n < j.files.length; n++) {
|
||||
var date = new Date(j.files[n].mtime * 1000);
|
||||
s += "<tr><td class=\"dow r\">" +
|
||||
humanize(j.files[n].size) +
|
||||
"</td><td class=\"dow\">" +
|
||||
date.toDateString() + " " +
|
||||
date.toLocaleTimeString() +
|
||||
"</td><td>";
|
||||
if (j.files[n].yours === 1)
|
||||
s += "<img id=\"d" + n +
|
||||
"\" class=\"delbtn\" file=\"" +
|
||||
lws_urlencode(san(j.files[n].name)) + "\">";
|
||||
else
|
||||
s += " ";
|
||||
|
||||
s += "</td><td class=\"ogn\"><a href=\"get/" +
|
||||
lws_urlencode(san(j.files[n].name)) +
|
||||
"\" download>" +
|
||||
san(j.files[n].name) + "</a></td></tr>";
|
||||
}
|
||||
s += "</table>";
|
||||
|
||||
t.innerHTML = s;
|
||||
|
||||
for (n = 0; n < j.files.length; n++) {
|
||||
var d = document.getElementById("d" + n);
|
||||
if (d)
|
||||
d.addEventListener("click",
|
||||
delfile, false);
|
||||
}
|
||||
};
|
||||
|
||||
ws.onclose = function() {
|
||||
var dd = document.getElementById("ddrop"),
|
||||
da = document.getElementById("da");
|
||||
|
||||
dd.classList.add("noconn");
|
||||
da.classList.add("disa");
|
||||
};
|
||||
} catch(exception) {
|
||||
alert("<p>Error " + exception);
|
||||
}
|
||||
|
||||
});
|
||||
}());
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="49.443mm" height="49.443mm" version="1.1" viewBox="0 0 49.442779 49.442779" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<filter id="d" x="-.088487" y="-.064772" width="1.177" height="1.1295" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.15643472"/>
|
||||
</filter>
|
||||
<filter id="e" x="-.088487" y="-.064772" width="1.177" height="1.1295" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.15643472"/>
|
||||
</filter>
|
||||
<linearGradient id="c" x1="208.34" x2="352.29" y1="32.317" y2="159.6" gradientTransform="matrix(.26458 0 0 .26458 -586.44 -188.57)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-opacity=".49606" offset="0"/>
|
||||
<stop stop-color="#fff6d5" stop-opacity="0" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" x1="365.17" x2="216.93" y1="163.64" y2="36.61" gradientTransform="matrix(.26458 0 0 .26458 -586.5 -188.43)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#fff" offset="0"/>
|
||||
<stop stop-color="#fff" stop-opacity=".007874" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="a" x1="-529.78" x2="-494.03" y1="-175.41" y2="-147.94" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#c1dc5f" stop-opacity=".61417" offset="0"/>
|
||||
<stop stop-color="#a9aa52" stop-opacity=".8937" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g transform="translate(536.12 186.96)">
|
||||
<circle cx="-511.4" cy="-162.24" r="24.457" fill="url(#a)"/>
|
||||
<g transform="matrix(.78726 0 0 .78726 -108.47 -33.661)">
|
||||
<g stroke="#000">
|
||||
<path transform="matrix(2.9413 0 0 2.9413 -4498.4 -3189.2)" d="m1354 1027.2v5.7964h4.2429v-4.5102l-1.211-1.211-0.075-0.075z" filter="url(#e)" stroke-width=".26458px"/>
|
||||
<path transform="matrix(2.9413 0 0 2.9413 -4498.4 -3189.2)" d="m1353.2 1025.7v5.7964h4.2429v-4.5101l-1.2111-1.2111-0.075-0.075z" filter="url(#d)" stroke-width=".26458px"/>
|
||||
<path d="m-516.24-168.48v17.049h12.479v-13.266l-3.5622-3.5619-0.22056-0.22058z" fill="#ececec" stroke-width=".77821px"/>
|
||||
</g>
|
||||
<g fill="none" stroke="#4d4d4d" stroke-width=".77821px">
|
||||
<path d="m-513.59-164.94h7.2225"/>
|
||||
<path d="m-513.56-162.83h7.2222"/>
|
||||
<path d="m-513.57-160.59h7.2222"/>
|
||||
<path d="m-513.55-158.48h7.2225"/>
|
||||
<path d="m-513.57-156.27h7.2222"/>
|
||||
<path d="m-513.55-154.16h7.2225"/>
|
||||
</g>
|
||||
<path d="m-518.5-172.78v17.048h12.479v-13.265l-3.5622-3.5622-0.22057-0.22059z" fill="#fff" stroke="#000" stroke-width=".77821px"/>
|
||||
<g fill="none" stroke="#000" stroke-width=".77821px">
|
||||
<path d="m-515.99-169.38h7.2225"/>
|
||||
<path d="m-515.82-167.13h7.2222"/>
|
||||
<path d="m-515.83-164.89h7.2223"/>
|
||||
<path d="m-515.81-162.78h7.2225"/>
|
||||
<path d="m-515.83-160.57h7.2223"/>
|
||||
<path d="m-515.81-158.46h7.2225"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g dominant-baseline="auto" fill="#540" stroke-width=".023836" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal" aria-label="to upload">
|
||||
<path d="m-518.24-173.3q0.0983 0 0.1743-0.0268v0.17877q-0.0983 0.0447-0.25251 0.0447-0.37541 0-0.37541-0.56088v-1.7206h-0.21899v-0.12514l0.21452-0.0626 0.0693-0.57653h0.14749v0.57653h0.38435v0.18771h-0.38435v1.6603q0 0.24581 0.0536 0.33519 0.0536 0.0894 0.1877 0.0894z"/>
|
||||
<path d="m-516.32-174.37q0 0.61228-0.19441 0.93854-0.19218 0.32401-0.55195 0.32401-0.3553 0-0.54525-0.32401-0.1877-0.32626-0.1877-0.93854 0-1.2536 0.74189-1.2536 0.3486 0 0.54301 0.32848 0.19441 0.32849 0.19441 0.92513zm-1.2581 0q0 0.52513 0.12514 0.79329 0.12514 0.26815 0.39106 0.26815 0.52066 0 0.52066-1.0614 0-1.0525-0.52066-1.0525-0.27262 0-0.39553 0.26368-0.12067 0.26369-0.12067 0.78882z"/>
|
||||
<path d="m-514.72-175.57v1.5821q0 0.35978 0.0849 0.52514 0.0872 0.16536 0.26592 0.16536 0.27486 0 0.40223-0.22123 0.12961-0.22346 0.12961-0.71954v-1.3318h0.21005v2.4246h-0.17877l-0.0268-0.33966h-0.0179q-0.0782 0.18547-0.21676 0.28603-0.13854 0.0983-0.30167 0.0983-0.29273 0-0.42904-0.20781-0.13408-0.20782-0.13408-0.67933v-1.5821z"/>
|
||||
<path d="m-512.19-173.11q-0.18323 0-0.33519-0.10055-0.14972-0.10279-0.22793-0.27933h-0.0201l0.0156 0.26592v1.1687h-0.21228v-3.524h0.1743l0.0223 0.33296h0.0201q0.0894-0.18324 0.22793-0.28156 0.14078-0.0983 0.30614-0.0983 0.71061 0 0.71061 1.2536 0 0.60558-0.1743 0.93407-0.1743 0.32848-0.50726 0.32848zm-0.0425-2.315q-0.26592 0-0.39553 0.23463-0.12961 0.23464-0.12961 0.73519v0.0693q0 0.55866 0.13185 0.82234 0.13184 0.26145 0.40223 0.26145 0.25027 0 0.37094-0.25922 0.1229-0.26145 0.1229-0.81116 0-0.52513-0.11396-0.78882-0.11397-0.26368-0.38882-0.26368z"/>
|
||||
<path d="m-510.77-173.15h-0.21228v-3.477h0.21228z"/>
|
||||
<path d="m-508.76-174.37q0 0.61228-0.19441 0.93854-0.19217 0.32401-0.55195 0.32401-0.3553 0-0.54524-0.32401-0.18771-0.32626-0.18771-0.93854 0-1.2536 0.74189-1.2536 0.3486 0 0.54301 0.32848 0.19441 0.32849 0.19441 0.92513zm-1.2581 0q0 0.52513 0.12514 0.79329 0.12513 0.26815 0.39105 0.26815 0.52067 0 0.52067-1.0614 0-1.0525-0.52067-1.0525-0.27262 0-0.39552 0.26368-0.12067 0.26369-0.12067 0.78882z"/>
|
||||
<path d="m-507.28-173.15-0.0268-0.33966h-9e-3q-0.1743 0.38435-0.52737 0.38435-0.23687 0-0.38212-0.1877-0.14302-0.18994-0.14302-0.50726 0-0.34636 0.20782-0.54748 0.20782-0.20335 0.58324-0.22122l0.26145-0.0134v-0.20112q0-0.33966-0.0849-0.49385-0.0849-0.15642-0.28156-0.15642-0.20782 0-0.42458 0.13631l-0.0916-0.16759q0.25252-0.15642 0.52961-0.15642 0.29943 0 0.43128 0.18994 0.13184 0.1877 0.13184 0.63016v1.6514zm-0.5162-0.13631q0.22793 0 0.35307-0.22346 0.12738-0.2257 0.12738-0.63686v-0.25251l-0.25252 0.0134q-0.29273 0.0156-0.43574 0.16313-0.14078 0.14525-0.14078 0.42681 0 0.26368 0.0938 0.38659 0.0939 0.1229 0.25474 0.1229z"/>
|
||||
<path d="m-505.87-173.11q-0.70614 0-0.70614-1.2536 0-0.61675 0.17654-0.93854 0.17653-0.32401 0.52066-0.32401 0.16313 0 0.30838 0.0939 0.14748 0.0938 0.23463 0.25921h0.0179l-9e-3 -0.27038v-1.0883h0.21229v3.477h-0.1743l-0.0179-0.33966h-0.0201q-0.0872 0.18547-0.2257 0.28603-0.13854 0.0983-0.31731 0.0983zm0.0134-0.18547q0.25474 0 0.39105-0.23463 0.13855-0.23687 0.13855-0.69497v-0.13854q0-0.54971-0.13408-0.80446-0.13184-0.25698-0.40446-0.25698-0.26145 0-0.37542 0.27486-0.11396 0.27262-0.11396 0.79105 0 0.5229 0.11843 0.79328 0.11844 0.27039 0.37989 0.27039z"/>
|
||||
</g>
|
||||
<g dominant-baseline="auto" fill="#540" stroke-width=".023836" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal" aria-label="Drop files here">
|
||||
<path d="m-520.62-179.04q0 1.6648-1.0391 1.6648h-0.581v-3.267h0.59441q0.50502 0 0.76424 0.40894 0.26144 0.40669 0.26144 1.1933zm-0.23016 0.0134q0-0.69049-0.20335-1.0525-0.20335-0.362-0.60111-0.362h-0.36648v2.8648h0.3486q0.42458 0 0.62346-0.37094 0.19888-0.37095 0.19888-1.0793z"/>
|
||||
<path d="m-519.37-179.85q0.11397 0 0.21229 0.0313l-0.0514 0.21228q-0.0804-0.0335-0.16536-0.0335-0.1229 0-0.23016 0.12737-0.10503 0.12514-0.16536 0.35083-0.0603 0.2257-0.0603 0.49832v1.2849h-0.21229v-2.4246h0.1743l0.0224 0.42457h0.0156q0.16983-0.4715 0.46033-0.4715z"/>
|
||||
<path d="m-517.43-178.6q0 0.61228-0.19441 0.93853-0.19218 0.32402-0.55195 0.32402-0.3553 0-0.54524-0.32402-0.18771-0.32625-0.18771-0.93853 0-1.2536 0.74189-1.2536 0.3486 0 0.54301 0.32849t0.19441 0.92513zm-1.2581 0q0 0.52513 0.12513 0.79328 0.12514 0.26816 0.39106 0.26816 0.52066 0 0.52066-1.0614 0-1.0525-0.52066-1.0525-0.27262 0-0.39552 0.26368-0.12067 0.26368-0.12067 0.78882z"/>
|
||||
<path d="m-516.11-177.33q-0.18324 0-0.33519-0.10056-0.14972-0.10279-0.22793-0.27932h-0.0201l0.0156 0.26592v1.1687h-0.21229v-3.524h0.1743l0.0224 0.33296h0.0201q0.0894-0.18324 0.22793-0.28156 0.14078-0.0983 0.30614-0.0983 0.71061 0 0.71061 1.2536 0 0.60558-0.1743 0.93406-0.1743 0.32849-0.50726 0.32849zm-0.0425-2.315q-0.26592 0-0.39552 0.23463-0.12961 0.23464-0.12961 0.73519v0.0693q0 0.55865 0.13184 0.82234 0.13184 0.26145 0.40223 0.26145 0.25028 0 0.37095-0.25922 0.1229-0.26145 0.1229-0.81116 0-0.52514-0.11397-0.78882-0.11396-0.26368-0.38882-0.26368z"/>
|
||||
<path d="m-513.42-179.61h-0.37988v2.2368h-0.21006v-2.2368h-0.30837v-0.12067l0.30837-0.0916v-0.18324q0-0.46256 0.1095-0.66591 0.10949-0.20335 0.37988-0.20335 0.15642 0 0.2838 0.0559l-0.0737 0.19665q-0.11843-0.0559-0.21452-0.0559-0.10949 0-0.16536 0.0648-0.0559 0.0648-0.0827 0.21005t-0.0268 0.40223v0.20335h0.37988zm0.60558 2.2368h-0.21229v-2.4246h0.21229zm-0.24357-3.0972q0-0.10056 0.0402-0.15642 0.0425-0.0559 0.10726-0.0559 0.0603 0 0.0961 0.0559t0.0358 0.15642q0 0.0961-0.0358 0.15419-0.0358 0.0559-0.0961 0.0559-0.0648 0-0.10726-0.0559-0.0402-0.0581-0.0402-0.15419z"/>
|
||||
<path d="m-511.95-177.38h-0.21229v-3.477h0.21229z"/>
|
||||
<path d="m-510.61-177.33q-0.38435 0-0.59217-0.32625-0.20558-0.32849-0.20558-0.91396 0-0.62122 0.18323-0.94747 0.18548-0.32849 0.53184-0.32849 0.30167 0 0.47597 0.28827 0.1743 0.28603 0.1743 0.77317v0.19665h-1.1486q4e-3 0.5296 0.14972 0.79328 0.14525 0.26369 0.44022 0.26369 0.22793 0 0.48044-0.14972v0.20558q-0.2324 0.14525-0.48938 0.14525zm-0.0961-2.324q-0.43798 0-0.48044 0.87373h0.93184q0-0.39999-0.12291-0.63686-0.12067-0.23687-0.32849-0.23687z"/>
|
||||
<path d="m-508.55-177.99q0 0.30614-0.16089 0.48044-0.16089 0.17206-0.4648 0.17206-0.16536 0-0.2905-0.0425t-0.19441-0.0939v-0.24804q0.0827 0.0827 0.21899 0.13408 0.13631 0.0492 0.27933 0.0492 0.18771 0 0.29497-0.12291 0.10726-0.1229 0.10726-0.32848 0-0.1609-0.0782-0.27039-0.076-0.11173-0.29274-0.25251-0.24804-0.15642-0.33966-0.25028-0.0894-0.0938-0.14078-0.21005-0.0492-0.1162-0.0492-0.27709 0-0.26145 0.17653-0.43128 0.17654-0.17207 0.44916-0.17207 0.29273 0 0.48938 0.13855l-0.1095 0.18547q-0.18323-0.1229-0.38882-0.1229-0.1877 0-0.29943 0.11173-0.11174 0.10949-0.11174 0.2905 0 0.16089 0.076 0.27038 0.076 0.10727 0.32179 0.26145 0.24133 0.15866 0.33072 0.25475 0.0894 0.0939 0.13184 0.21005 0.0447 0.11397 0.0447 0.26369z"/>
|
||||
<path d="m-506.11-177.38v-1.6715q0-0.32849-0.0872-0.4648-0.0849-0.13854-0.27932-0.13854-0.25698 0-0.38659 0.22793t-0.12961 0.71954v1.3274h-0.21228v-3.477h0.21228v1.1285q0 0.15418-9e-3 0.25698h0.0179q0.0715-0.18101 0.21452-0.27933 0.14525-0.10056 0.30168-0.10056 0.30837 0 0.43798 0.20112 0.12961 0.20111 0.12961 0.59887v1.6715z"/>
|
||||
<path d="m-504.57-177.33q-0.38435 0-0.59217-0.32625-0.20558-0.32849-0.20558-0.91396 0-0.62122 0.18324-0.94747 0.18547-0.32849 0.53183-0.32849 0.30168 0 0.47597 0.28827 0.1743 0.28603 0.1743 0.77317v0.19665h-1.1486q4e-3 0.5296 0.14971 0.79328 0.14525 0.26369 0.44022 0.26369 0.22793 0 0.48044-0.14972v0.20558q-0.2324 0.14525-0.48938 0.14525zm-0.0961-2.324q-0.43799 0-0.48045 0.87373h0.93184q0-0.39999-0.12291-0.63686-0.12067-0.23687-0.32848-0.23687z"/>
|
||||
<path d="m-502.79-179.85q0.11396 0 0.21228 0.0313l-0.0514 0.21228q-0.0805-0.0335-0.16536-0.0335-0.12291 0-0.23017 0.12737-0.10502 0.12514-0.16536 0.35083-0.0603 0.2257-0.0603 0.49832v1.2849h-0.21229v-2.4246h0.1743l0.0223 0.42457h0.0156q0.16983-0.4715 0.46033-0.4715z"/>
|
||||
<path d="m-501.52-177.33q-0.38435 0-0.59217-0.32625-0.20559-0.32849-0.20559-0.91396 0-0.62122 0.18324-0.94747 0.18547-0.32849 0.53184-0.32849 0.30167 0 0.47597 0.28827 0.1743 0.28603 0.1743 0.77317v0.19665h-1.1486q4e-3 0.5296 0.14972 0.79328 0.14525 0.26369 0.44022 0.26369 0.22793 0 0.48044-0.14972v0.20558q-0.2324 0.14525-0.48938 0.14525zm-0.0961-2.324q-0.43798 0-0.48044 0.87373h0.93183q0-0.39999-0.1229-0.63686-0.12067-0.23687-0.32849-0.23687z"/>
|
||||
</g>
|
||||
<g dominant-baseline="auto" fill="#786721" stroke-width=".21029" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal" aria-label="multiple selection OK">
|
||||
<path d="m-521.09-144.73v-1.2141q0-0.44852-0.26286-0.44852-0.18073 0-0.26123 0.15772-0.0789 0.15608-0.0789 0.46167v1.0432h-0.15443v-1.2141q0-0.22672-0.0641-0.3368-0.0641-0.11172-0.19879-0.11172-0.17744 0-0.25794 0.16101t-0.0805 0.52245v0.97918h-0.15608v-1.7826h0.13143l0.0131 0.24808h0.0148q0.10679-0.28258 0.36309-0.28258 0.14786 0 0.23329 0.0789 0.0854 0.0789 0.12322 0.23001 0.0641-0.16429 0.15772-0.23658 0.0937-0.0723 0.24316-0.0723 0.20208 0 0.29572 0.15608 0.0936 0.15443 0.0936 0.49616v1.1648z"/>
|
||||
<path d="m-520.31-146.51v1.1632q0 0.26451 0.0624 0.38609 0.0641 0.12157 0.19551 0.12157 0.20208 0 0.29572-0.16265 0.0953-0.16429 0.0953-0.52902v-0.97918h0.15444v1.7826h-0.13144l-0.0197-0.24972h-0.0132q-0.0575 0.13636-0.15936 0.21029-0.10186 0.0723-0.22179 0.0723-0.21523 0-0.31545-0.15279-0.0986-0.15279-0.0986-0.49945v-1.1632z"/>
|
||||
<path d="m-518.88-144.73h-0.15608v-2.5564h0.15608z"/>
|
||||
<path d="m-518.07-144.84q0.0723 0 0.12815-0.0197v0.13143q-0.0723 0.0329-0.18565 0.0329-0.27601 0-0.27601-0.41237v-1.265h-0.16101v-0.092l0.15772-0.046 0.0509-0.42387h0.10843v0.42387h0.28258v0.13801h-0.28258v1.2207q0 0.18072 0.0394 0.24644 0.0394 0.0657 0.138 0.0657z"/>
|
||||
<path d="m-517.51-144.73h-0.15608v-1.7826h0.15608zm-0.17908-2.2771q0-0.0739 0.0296-0.115 0.0312-0.0411 0.0789-0.0411 0.0444 0 0.0707 0.0411t0.0263 0.115q0 0.0707-0.0263 0.11336-0.0263 0.0411-0.0707 0.0411-0.0476 0-0.0789-0.0411-0.0296-0.0427-0.0296-0.11336z"/>
|
||||
<path d="m-516.46-144.69q-0.13471 0-0.24643-0.0739-0.11008-0.0756-0.16758-0.20537h-0.0148l0.0115 0.19551v0.85925h-0.15608v-2.5909h0.12815l0.0164 0.2448h0.0148q0.0657-0.13472 0.16758-0.20701 0.1035-0.0723 0.22508-0.0723 0.52245 0 0.52245 0.92168 0 0.44523-0.12815 0.68674t-0.37295 0.24151zm-0.0312-1.7021q-0.19551 0-0.2908 0.17251-0.0953 0.17251-0.0953 0.54052v0.0509q0 0.41073 0.0969 0.6046 0.0969 0.19222 0.29573 0.19222 0.18401 0 0.27273-0.19058 0.0904-0.19222 0.0904-0.59638 0-0.38609-0.0838-0.57995-0.0838-0.19387-0.28587-0.19387z"/>
|
||||
<path d="m-515.41-144.73h-0.15608v-2.5564h0.15608z"/>
|
||||
<path d="m-514.43-144.69q-0.28259 0-0.43538-0.23987-0.15115-0.24151-0.15115-0.67195 0-0.45673 0.13472-0.6966 0.13636-0.24151 0.39102-0.24151 0.22179 0 0.34994 0.21194 0.12815 0.21029 0.12815 0.56845v0.14458h-0.84446q3e-3 0.38937 0.11007 0.58323 0.10679 0.19387 0.32366 0.19387 0.16758 0 0.35323-0.11008v0.15115q-0.17087 0.10679-0.3598 0.10679zm-0.0707-1.7086q-0.32201 0-0.35323 0.64238h0.6851q0-0.29408-0.0904-0.46823-0.0887-0.17415-0.24151-0.17415z"/>
|
||||
<path d="m-512.29-145.17q0 0.22508-0.11829 0.35323-0.11829 0.1265-0.34173 0.1265-0.12157 0-0.21358-0.0312-0.092-0.0312-0.14293-0.069v-0.18236q0.0608 0.0608 0.16101 0.0986 0.10021 0.0362 0.20536 0.0362 0.13801 0 0.21687-0.0904 0.0789-0.0904 0.0789-0.24151 0-0.11829-0.0575-0.1988-0.0559-0.0821-0.21523-0.18565-0.18236-0.115-0.24972-0.184-0.0657-0.069-0.10351-0.15444-0.0361-0.0854-0.0361-0.20372 0-0.19222 0.12979-0.31709 0.12979-0.1265 0.33023-0.1265 0.21522 0 0.3598 0.10186l-0.0805 0.13636q-0.13472-0.0904-0.28587-0.0904-0.13801 0-0.22015 0.0822-0.0821 0.0805-0.0821 0.21358 0 0.11829 0.0559 0.19879 0.0559 0.0789 0.23658 0.19222 0.17744 0.11665 0.24315 0.1873 0.0657 0.069 0.0969 0.15443 0.0329 0.0838 0.0329 0.19387z"/>
|
||||
<path d="m-511.42-144.69q-0.28258 0-0.43537-0.23987-0.15115-0.24151-0.15115-0.67195 0-0.45673 0.13472-0.6966 0.13636-0.24151 0.39101-0.24151 0.2218 0 0.34995 0.21194 0.12814 0.21029 0.12814 0.56845v0.14458h-0.84446q3e-3 0.38937 0.11008 0.58323 0.10679 0.19387 0.32365 0.19387 0.16758 0 0.35323-0.11008v0.15115q-0.17086 0.10679-0.3598 0.10679zm-0.0706-1.7086q-0.32202 0-0.35323 0.64238h0.6851q0-0.29408-0.0904-0.46823-0.0887-0.17415-0.24151-0.17415z"/>
|
||||
<path d="m-510.45-144.73h-0.15608v-2.5564h0.15608z"/>
|
||||
<path d="m-509.47-144.69q-0.28258 0-0.43537-0.23987-0.15115-0.24151-0.15115-0.67195 0-0.45673 0.13472-0.6966 0.13636-0.24151 0.39102-0.24151 0.22179 0 0.34994 0.21194 0.12815 0.21029 0.12815 0.56845v0.14458h-0.84447q3e-3 0.38937 0.11008 0.58323 0.10679 0.19387 0.32366 0.19387 0.16757 0 0.35322-0.11008v0.15115q-0.17086 0.10679-0.3598 0.10679zm-0.0706-1.7086q-0.32201 0-0.35323 0.64238h0.6851q0-0.29408-0.0904-0.46823-0.0887-0.17415-0.24151-0.17415z"/>
|
||||
<path d="m-508.2-144.69q-0.2678 0-0.40416-0.23165-0.13472-0.2333-0.13472-0.68346 0-0.45673 0.13636-0.69495 0.13801-0.23987 0.40581-0.23987 0.16593 0 0.27601 0.0608l-0.0608 0.138q-0.11008-0.0509-0.20208-0.0509-0.39266 0-0.39266 0.78368 0 0.7771 0.39266 0.7771 0.11665 0 0.25301-0.0526v0.13143q-0.0542 0.0296-0.13308 0.046-0.0789 0.0164-0.13636 0.0164z"/>
|
||||
<path d="m-507.28-144.84q0.0723 0 0.12815-0.0197v0.13143q-0.0723 0.0329-0.18565 0.0329-0.27601 0-0.27601-0.41237v-1.265h-0.161v-0.092l0.15772-0.046 0.0509-0.42387h0.10843v0.42387h0.28258v0.13801h-0.28258v1.2207q0 0.18072 0.0394 0.24644 0.0394 0.0657 0.138 0.0657z"/>
|
||||
<path d="m-506.72-144.73h-0.15608v-1.7826h0.15608zm-0.17908-2.2771q0-0.0739 0.0296-0.115 0.0312-0.0411 0.0789-0.0411 0.0444 0 0.0707 0.0411t0.0263 0.115q0 0.0707-0.0263 0.11336-0.0263 0.0411-0.0707 0.0411-0.0476 0-0.0789-0.0411-0.0296-0.0427-0.0296-0.11336z"/>
|
||||
<path d="m-505.24-145.62q0 0.45016-0.14293 0.69003-0.14129 0.23822-0.4058 0.23822-0.26123 0-0.40088-0.23822-0.138-0.23987-0.138-0.69003 0-0.92168 0.54545-0.92168 0.25629 0 0.39923 0.24151 0.14293 0.24151 0.14293 0.68017zm-0.92496 0q0 0.38609 0.092 0.58324t0.28751 0.19715q0.3828 0 0.3828-0.78039 0-0.77382-0.3828-0.77382-0.20043 0-0.2908 0.19387-0.0887 0.19386-0.0887 0.57995z"/>
|
||||
<path d="m-504.04-144.73v-1.2289q0-0.44359-0.26287-0.44359-0.20044 0-0.29408 0.16593-0.092 0.16594-0.092 0.52738v0.97918h-0.15607v-1.7826h0.13143l0.0131 0.24808h0.0148q0.0559-0.13472 0.16101-0.20865 0.10514-0.0739 0.22508-0.0739 0.20701 0 0.31051 0.13965 0.1035 0.138 0.1035 0.44523v1.2322z"/>
|
||||
<path d="m-501.45-145.93q0 0.59638-0.17908 0.91675-0.17743 0.32037-0.51423 0.32037-0.34009 0-0.51588-0.32201-0.17579-0.32366-0.17579-0.9184 0-0.62102 0.17415-0.92496t0.52245-0.30394q0.33515 0 0.51095 0.32037 0.17743 0.31872 0.17743 0.91182zm-1.2174 0q0 0.53559 0.13307 0.80996 0.13472 0.27273 0.39102 0.27273 0.25794 0 0.39101-0.27109 0.13472-0.27108 0.13472-0.8116 0-0.53395-0.13143-0.80503-0.13143-0.27273-0.38937-0.27273-0.26451 0-0.39759 0.27601-0.13143 0.27437-0.13143 0.80175z"/>
|
||||
<path d="m-499.91-144.73h-0.18072l-0.56517-1.1977-0.18565 0.2448v0.95289h-0.16101v-2.402h0.16101v1.2716q0.0838-0.15772 0.70974-1.2716h0.1758l-0.60296 1.0564z"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="m-511.33-186.63a24.457 24.457 0 0 0 -24.457 24.457 24.457 24.457 0 0 0 24.457 24.457 24.457 24.457 0 0 0 24.457 -24.457 24.457 24.457 0 0 0 -24.457 -24.457zm0.0667 1.7198a22.804 22.804 0 0 1 22.804 22.804 22.804 22.804 0 0 1 -22.804 22.804 22.804 22.804 0 0 1 -22.804 -22.804 22.804 22.804 0 0 1 22.804 -22.804z" fill="url(#c)"/>
|
||||
<path d="m-511.4-186.5a24.457 24.457 0 0 0 -24.457 24.457 24.457 24.457 0 0 0 24.457 24.457 24.457 24.457 0 0 0 24.457 -24.457 24.457 24.457 0 0 0 -24.457 -24.457zm0.0667 1.7198a22.804 22.804 0 0 1 22.804 22.804 22.804 22.804 0 0 1 -22.804 22.804 22.804 22.804 0 0 1 -22.804 -22.804 22.804 22.804 0 0 1 22.804 -22.804z" fill="url(#b)"/>
|
||||
</g>
|
||||
<circle cx="-511.47" cy="-162.18" r="24.457" fill="none" stroke="#d4aa00" stroke-dasharray="1.58700002, 1.58700002" stroke-linecap="round" stroke-linejoin="round" stroke-width=".529"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1,35 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8 http-equiv="Content-Language" content="en"/>
|
||||
<link rel="stylesheet" type="text/css" href="deaddrop.css"/>
|
||||
<script src="deaddrop.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<img src="libwebsockets.org-logo.svg"><img src="strict-csp.svg">
|
||||
<br>
|
||||
<div class="uplbox">
|
||||
<table id="ddrop" class="noconn">
|
||||
<tr><td class="vm">
|
||||
<div id="da" class="da"><img class="disa" src="drop.svg"></div>
|
||||
</td><td>
|
||||
<h3>...or select files to upload:</h3>
|
||||
<span id="size"></span><br>
|
||||
<form name=multipart action="upload" method="post"
|
||||
enctype="multipart/form-data">
|
||||
<input multiple type="file" name="file" id="file" size="20">
|
||||
<span id="file_info" class="dd-fileinfo"></span>
|
||||
<br>
|
||||
<input id="upl" type="submit" name="Upload" value="Upload"
|
||||
class="ubtn" disabled>
|
||||
</form>
|
||||
<table id="ongoing" class="nb"></table>
|
||||
</td></tr>
|
||||
<tr><td colspan="2">
|
||||
<div id="dd-list" class="dd-list">
|
||||
<!-- deaddrop-list -->
|
||||
</div>
|
||||
</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="127.63mm" height="27.837mm" version="1.1" viewBox="0 0 127.63446 27.837189" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<filter id="a" x="-.011681" y="-.053882" width="1.0234" height="1.1078" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.10687168"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g transform="translate(452.86 42.871)">
|
||||
<rect x="-452.86" y="-42.871" width="127.63" height="27.837" fill="none"/>
|
||||
<g transform="matrix(4.0081 0 0 4.0081 -211.01 -224.26)" fill="#fff" filter="url(#a)" stroke="#fff">
|
||||
<g style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="libwebsockets.org">
|
||||
<path d="m-52.015 48.429q0 0.12497 0.03213 0.17852 0.0357 0.05356 0.0964 0.05356 0.07498 0 0.17495-0.03927l0.02499 0.20709q-0.04642 0.02856-0.13211 0.04642-0.08212 0.01785-0.14996 0.01785-0.13568 0-0.22137-0.08212-0.08212-0.08569-0.08212-0.29635v-2.1601h0.25707z"/>
|
||||
<path d="m-51.417 47.068h0.25707v1.7852h-0.25707zm-0.04642-0.54271q0-0.08569 0.04642-0.13925 0.04999-0.05356 0.12854-0.05356 0.07855 0 0.12854 0.05356 0.05356 0.04999 0.05356 0.13925 0 0.08569-0.05356 0.13568-0.04999 0.04642-0.12854 0.04642-0.07855 0-0.12854-0.04999-0.04642-0.04999-0.04642-0.13211z"/>
|
||||
<path d="m-50.686 46.354h0.25707v0.84976h0.01071q0.14639-0.17852 0.38918-0.17852 0.27492 0 0.4106 0.2178 0.13925 0.2178 0.13925 0.6891 0 0.48201-0.18566 0.71766-0.18209 0.23565-0.51771 0.23565-0.16424 0-0.29992-0.03571-0.13568-0.03927-0.20352-0.08926zm0.25707 2.2387q0.04999 0.02856 0.1214 0.04641 0.07498 0.01428 0.1571 0.01428 0.18566 0 0.29278-0.17495 0.11068-0.17852 0.11068-0.54628 0-0.15353-0.02142-0.27492-0.01785-0.12496-0.0607-0.21423-0.03927-0.08926-0.10711-0.13568-0.06427-0.04999-0.1571-0.04999-0.12854 0-0.21423 0.07855-0.08212 0.07498-0.1214 0.20708z"/>
|
||||
<path d="m-48.092 47.068 0.24993 0.91403 0.04284 0.29635h0.01428l0.0357-0.29992 0.16781-0.91046h0.38561l-0.43916 1.8031h-0.33562l-0.26778-0.99615-0.02856-0.22851h-0.02142l-0.02499 0.23565-0.25707 0.98901h-0.34633l-0.45702-1.8031h0.46059l0.1928 0.89618 0.03213 0.31777h0.01428l0.04642-0.32134 0.2178-0.89261z"/>
|
||||
<path d="m-45.889 48.721q-0.08926 0.07855-0.24279 0.12854-0.15353 0.04999-0.32134 0.04999-0.18566 0-0.32134-0.06427-0.13211-0.06427-0.2178-0.18566-0.08569-0.1214-0.12854-0.29278-0.03927-0.17495-0.03927-0.39632 0-0.48201 0.18923-0.71052 0.1928-0.23208 0.532-0.23208 0.11425 0 0.22137 0.0357 0.10711 0.03213 0.18923 0.11425 0.08569 0.07855 0.13568 0.21423 0.05356 0.13211 0.05356 0.33562 0 0.07855-0.01071 0.16781-0.0071 0.08926-0.02499 0.1928h-0.86762q0.0071 0.22137 0.09283 0.33919 0.08569 0.11782 0.27492 0.11782 0.11425 0 0.20709-0.0357 0.0964-0.0357 0.14639-0.07498zm-0.55699-1.3389q-0.13568 0-0.20352 0.11068-0.06784 0.10711-0.07855 0.30349h0.49272q0.01071-0.20352-0.04284-0.30706-0.05356-0.10711-0.16781-0.10711z"/>
|
||||
<path d="m-45.569 46.354h0.42488v0.82834h0.01071q0.12854-0.1571 0.36776-0.1571 0.2535 0 0.39275 0.21066 0.14282 0.21066 0.14282 0.67838 0 0.507-0.19994 0.74622-0.19994 0.23565-0.54628 0.23565-0.18923 0-0.3499-0.0357-0.1571-0.03571-0.24279-0.07855zm0.42488 2.1137q0.07498 0.03927 0.19638 0.03927 0.13568 0 0.20708-0.12854 0.07141-0.13211 0.07141-0.43916 0-0.27135-0.05713-0.39632-0.05713-0.12854-0.17852-0.12854-0.17852 0-0.23922 0.18566z"/>
|
||||
<path d="m-43.386 48.379q0-0.07498-0.04999-0.12496-0.04642-0.05356-0.1214-0.0964-0.07498-0.04642-0.16067-0.09283-0.08212-0.04641-0.1571-0.11425-0.07498-0.06784-0.12496-0.16424-0.04642-0.0964-0.04642-0.24279 0-0.24993 0.13568-0.38561 0.13568-0.13568 0.39989-0.13568 0.1571 0 0.29635 0.0357 0.13925 0.03213 0.22137 0.08212l-0.09997 0.32848q-0.06784-0.02856-0.16424-0.05356-0.0964-0.02856-0.18923-0.02856-0.17495 0-0.17495 0.14639 0 0.06784 0.04642 0.11425 0.04999 0.04284 0.12496 0.08569 0.07498 0.04284 0.1571 0.08926 0.08569 0.04642 0.16067 0.11782 0.07498 0.06784 0.1214 0.16781 0.04999 0.09997 0.04999 0.24636 0 0.24636-0.14996 0.39632-0.14996 0.14996-0.4463 0.14996-0.14639 0-0.2892-0.0357-0.13925-0.0357-0.22494-0.09283l0.11782-0.34276q0.07498 0.04285 0.17138 0.07498 0.09997 0.03213 0.20709 0.03213 0.08212 0 0.13568-0.0357 0.05356-0.03928 0.05356-0.1214z"/>
|
||||
<path d="m-42.802 47.961q0-0.47487 0.18566-0.70695 0.18566-0.23208 0.51771-0.23208 0.35704 0 0.532 0.23565 0.17495 0.23565 0.17495 0.70338 0 0.47844-0.18566 0.71052-0.18566 0.22851-0.52128 0.22851-0.70338 0-0.70338-0.93902zm0.43916 0q0 0.26778 0.0607 0.41417t0.20352 0.14639q0.13568 0 0.19994-0.12497 0.06784-0.12854 0.06784-0.43559 0-0.27492-0.0607-0.41774-0.0607-0.14282-0.20708-0.14282-0.12497 0-0.19638 0.12854-0.06784 0.12497-0.06784 0.43202z"/>
|
||||
<path d="m-40.094 48.757q-0.08926 0.07141-0.21423 0.10711-0.12496 0.0357-0.24993 0.0357-0.18209 0-0.30706-0.06427-0.1214-0.06784-0.19994-0.18923-0.07855-0.12496-0.11425-0.29635-0.03213-0.17495-0.03213-0.38918 0-0.46773 0.16781-0.70338 0.16781-0.23565 0.49272-0.23565 0.16067 0 0.26064 0.02856 0.10354 0.02856 0.18209 0.07141l-0.09997 0.35347q-0.06427-0.03213-0.12497-0.04642-0.05713-0.01785-0.13925-0.01785-0.14996 0-0.22494 0.13211-0.07498 0.12854-0.07498 0.41774 0 0.24279 0.07498 0.39632 0.07855 0.15353 0.24636 0.15353 0.08926 0 0.14996-0.02142 0.06427-0.02499 0.11782-0.0607z"/>
|
||||
<path d="m-39.374 48.114h-0.09997v0.73908h-0.42488v-2.4993h0.42488v1.4746l0.08569-0.04999 0.29635-0.71052h0.46059l-0.32848 0.70695-0.15353 0.1214 0.16781 0.1214 0.36418 0.83548h-0.47844z"/>
|
||||
<path d="m-37.256 48.721q-0.08926 0.07855-0.24279 0.12854-0.15353 0.04999-0.32134 0.04999-0.18566 0-0.32134-0.06427-0.13211-0.06427-0.2178-0.18566-0.08569-0.1214-0.12854-0.29278-0.03927-0.17495-0.03927-0.39632 0-0.48201 0.18923-0.71052 0.1928-0.23208 0.532-0.23208 0.11425 0 0.22137 0.0357 0.10711 0.03213 0.18923 0.11425 0.08569 0.07855 0.13568 0.21423 0.05356 0.13211 0.05356 0.33562 0 0.07855-0.01071 0.16781-0.0071 0.08926-0.02499 0.1928h-0.86763q0.0071 0.22137 0.09283 0.33919 0.08569 0.11782 0.27492 0.11782 0.11425 0 0.20708-0.0357 0.0964-0.0357 0.14639-0.07498zm-0.55699-1.3389q-0.13568 0-0.20352 0.11068-0.06784 0.10711-0.07855 0.30349h0.49272q0.01071-0.20352-0.04284-0.30706-0.05356-0.10711-0.16781-0.10711z"/>
|
||||
<path d="m-37.075 47.068h0.19637v-0.33562l0.42488-0.13211v0.46773h0.34633v0.37847h-0.34633v0.77836q0 0.15353 0.02856 0.2178 0.03213 0.06427 0.11068 0.06427 0.05356 0 0.0964-0.01071t0.09283-0.03213l0.05356 0.33919q-0.07855 0.03928-0.18209 0.06427-0.10354 0.02856-0.2178 0.02856-0.20352 0-0.30706-0.11782-0.09997-0.11782-0.09997-0.39632v-0.93546h-0.19637z"/>
|
||||
<path d="m-35.297 48.379q0-0.07498-0.04999-0.12496-0.04641-0.05356-0.1214-0.0964-0.07498-0.04642-0.16067-0.09283-0.08212-0.04641-0.1571-0.11425-0.07498-0.06784-0.12496-0.16424-0.04642-0.0964-0.04642-0.24279 0-0.24993 0.13568-0.38561 0.13568-0.13568 0.39989-0.13568 0.1571 0 0.29635 0.0357 0.13925 0.03213 0.22137 0.08212l-0.09997 0.32848q-0.06784-0.02856-0.16424-0.05356-0.0964-0.02856-0.18923-0.02856-0.17495 0-0.17495 0.14639 0 0.06784 0.04642 0.11425 0.04999 0.04284 0.12497 0.08569 0.07498 0.04284 0.1571 0.08926 0.08569 0.04642 0.16067 0.11782 0.07498 0.06784 0.1214 0.16781 0.04999 0.09997 0.04999 0.24636 0 0.24636-0.14996 0.39632-0.14996 0.14996-0.4463 0.14996-0.14639 0-0.2892-0.0357-0.13925-0.0357-0.22494-0.09283l0.11782-0.34276q0.07498 0.04285 0.17138 0.07498 0.09997 0.03213 0.20708 0.03213 0.08212 0 0.13568-0.0357 0.05356-0.03928 0.05356-0.1214z"/>
|
||||
<path d="m-34.662 48.693q0-0.09997 0.04642-0.14996 0.04999-0.04999 0.13211-0.04999 0.08212 0 0.12854 0.04999 0.04999 0.04999 0.04999 0.14996 0 0.10354-0.04999 0.15353-0.04642 0.04999-0.12854 0.04999-0.08212 0-0.13211-0.04999-0.04642-0.04999-0.04642-0.15353z"/>
|
||||
<path d="m-34.035 47.961q0-0.48201 0.16424-0.70695 0.16781-0.22851 0.47487-0.22851 0.32848 0 0.48201 0.23208 0.1571 0.23208 0.1571 0.70338 0 0.48558-0.16781 0.71052-0.16781 0.22494-0.4713 0.22494-0.32848 0-0.48558-0.23208-0.15353-0.23208-0.15353-0.70338zm0.26778 0q0 0.1571 0.01785 0.28564 0.02142 0.12854 0.06427 0.22137 0.04642 0.09283 0.11782 0.14639 0.07141 0.04999 0.17138 0.04999 0.18566 0 0.2785-0.16424 0.09283-0.16781 0.09283-0.53914 0-0.15353-0.02142-0.28206-0.01785-0.13211-0.06427-0.22494-0.04285-0.09283-0.11425-0.14282-0.07141-0.05356-0.17138-0.05356-0.18209 0-0.27849 0.16781-0.09283 0.16781-0.09283 0.53557z"/>
|
||||
<path d="m-32.415 47.068h0.18209l0.04642 0.18923h0.01071q0.04999-0.10354 0.12854-0.16067 0.08212-0.0607 0.19637-0.0607 0.08212 0 0.18566 0.03213l-0.04999 0.26064q-0.09283-0.03213-0.16424-0.03213-0.11426 0-0.18566 0.06784-0.07141 0.06427-0.09283 0.17495v1.3139h-0.25707z"/>
|
||||
<path d="m-30.314 48.936q0 0.34633-0.15353 0.51057-0.15353 0.16424-0.4463 0.16424-0.17852 0-0.29278-0.03213-0.11425-0.02856-0.18566-0.06784l0.07498-0.22137q0.07141 0.03213 0.1571 0.0607 0.08569 0.02856 0.21066 0.02856 0.2178 0 0.29635-0.1214 0.08212-0.1214 0.08212-0.40703v-0.13211h-0.01071q-0.05713 0.08212-0.14639 0.12854-0.08926 0.04641-0.22851 0.04641-0.28921 0-0.42488-0.22137-0.13568-0.22494-0.13568-0.70338 0-0.46059 0.17495-0.69624 0.17852-0.23565 0.52486-0.23565 0.16781 0 0.2892 0.03213t0.21423 0.07498zm-0.25707-1.6103q-0.10711-0.05713-0.27492-0.05713-0.18209 0-0.29278 0.16781-0.11068 0.16424-0.11068 0.52842 0 0.14996 0.01785 0.27849 0.01785 0.12497 0.0607 0.22137 0.04285 0.09283 0.10711 0.14639 0.06784 0.04999 0.16424 0.04999 0.13568 0 0.21423-0.07141t0.11425-0.21423z"/>
|
||||
</g>
|
||||
<g style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="lightweight, portable C library">
|
||||
<path d="m-49.147 50.56q0 0.05637 0.01449 0.08052 0.0161 0.02416 0.04348 0.02416 0.03382 0 0.07891-0.01772l0.01127 0.09341q-0.02094 0.01288-0.05959 0.02094-0.03704 0.0081-0.06764 0.0081-0.0612 0-0.09985-0.03704-0.03704-0.03865-0.03704-0.13367v-0.97434h0.11595z"/>
|
||||
<path d="m-48.878 49.946h0.11596v0.80524h-0.11596zm-0.02094-0.24479q0-0.03865 0.02094-0.06281 0.02255-0.02416 0.05798-0.02416t0.05798 0.02416q0.02416 0.02255 0.02416 0.06281 0 0.03865-0.02416 0.0612-0.02255 0.02094-0.05798 0.02094t-0.05798-0.02255q-0.02094-0.02255-0.02094-0.05959z"/>
|
||||
<path d="m-48.041 50.789q0 0.15622-0.06925 0.2303-0.06925 0.07408-0.20131 0.07408-0.08052 0-0.13206-0.0145-0.05153-0.01288-0.08374-0.0306l0.03382-0.09985q0.03221 0.01449 0.07086 0.02738 0.03865 0.01288 0.09502 0.01288 0.09824 0 0.13367-0.05476 0.03704-0.05476 0.03704-0.18359v-0.05959h-0.0048q-0.02577 0.03704-0.06603 0.05798t-0.10307 0.02094q-0.13045 0-0.19165-0.09985-0.0612-0.10146-0.0612-0.31726 0-0.20775 0.07891-0.31404 0.08052-0.10629 0.23674-0.10629 0.07569 0 0.13045 0.01449 0.05476 0.01449 0.09663 0.03382zm-0.11595-0.72632q-0.04831-0.02577-0.12401-0.02577-0.08213 0-0.13206 0.07569-0.04992 0.07408-0.04992 0.23835 0 0.06764 0.0081 0.12562 0.0081 0.05637 0.02738 0.09985 0.01933 0.04187 0.04831 0.06603 0.0306 0.02255 0.07408 0.02255 0.0612 0 0.09663-0.03221t0.05154-0.09663z"/>
|
||||
<path d="m-47.441 50.752v-0.48958q0-0.11273-0.02738-0.17071-0.02577-0.05959-0.10468-0.05959-0.05637 0-0.10307 0.04026-0.04509 0.04026-0.0612 0.10146v0.57816h-0.11595v-1.1273h0.11595v0.39779h0.0048q0.03221-0.04187 0.07891-0.06764 0.04832-0.02738 0.11918-0.02738 0.05315 0 0.0918 0.0145 0.04026 0.01449 0.06603 0.04992t0.03865 0.09502q0.01288 0.05798 0.01288 0.14494v0.52018z"/>
|
||||
<path d="m-47.226 49.946h0.09824v-0.15944l0.11595-0.03704v0.19648h0.17393v0.10468h-0.17393v0.47992q0 0.07086 0.01611 0.10307 0.01772 0.0306 0.05637 0.0306 0.03221 0 0.05476-0.0064 0.02416-0.0081 0.05154-0.01933l0.02255 0.0918q-0.03543 0.01772-0.07891 0.02738-0.04187 0.01127-0.08858 0.01127-0.08052 0-0.11595-0.05154-0.03382-0.05315-0.03382-0.17071v-0.49603h-0.09824z"/>
|
||||
<path d="m-46.272 49.946 0.14333 0.47026 0.02899 0.15461h0.0032l0.02416-0.15783 0.10951-0.46704h0.10951l-0.21418 0.82295h-0.06603l-0.16266-0.52824-0.02255-0.13528h-0.0032l-0.02255 0.13689-0.15783 0.52662h-0.06603l-0.22064-0.82295h0.12401l0.12401 0.46865 0.01933 0.15622h0.0032l0.02899-0.15944 0.13206-0.46543z"/>
|
||||
<path d="m-45.286 50.697q-0.03865 0.03543-0.09824 0.05476t-0.12562 0.01933q-0.07569 0-0.13206-0.02899-0.05476-0.0306-0.0918-0.08535-0.03543-0.05637-0.05315-0.13367-0.01611-0.0773-0.01611-0.17393 0-0.20614 0.07569-0.31404t0.21419-0.1079q0.04509 0 0.08858 0.01127 0.04509 0.01127 0.08052 0.04509t0.05637 0.09502q0.02255 0.0612 0.02255 0.15944 0 0.02738-0.0032 0.05959-0.0016 0.0306-0.0048 0.06442h-0.40906q0 0.06925 0.01127 0.12562 0.01127 0.05637 0.03543 0.09663 0.02416 0.03865 0.0612 0.0612 0.03865 0.02094 0.09502 0.02094 0.04348 0 0.08535-0.0161 0.04348-0.01611 0.06603-0.03865zm-0.09019-0.43161q0.0032-0.12079-0.03382-0.17715-0.03704-0.05637-0.10146-0.05637-0.07408 0-0.11756 0.05637-0.04348 0.05637-0.05154 0.17715z"/>
|
||||
<path d="m-45.084 49.946h0.11595v0.80524h-0.11595zm-0.02094-0.24479q0-0.03865 0.02094-0.06281 0.02255-0.02416 0.05798-0.02416t0.05798 0.02416q0.02416 0.02255 0.02416 0.06281 0 0.03865-0.02416 0.0612-0.02255 0.02094-0.05798 0.02094t-0.05798-0.02255q-0.02094-0.02255-0.02094-0.05959z"/>
|
||||
<path d="m-44.247 50.789q0 0.15622-0.06925 0.2303-0.06925 0.07408-0.20131 0.07408-0.08052 0-0.13206-0.0145-0.05153-0.01288-0.08374-0.0306l0.03382-0.09985q0.03221 0.01449 0.07086 0.02738 0.03865 0.01288 0.09502 0.01288 0.09824 0 0.13367-0.05476 0.03704-0.05476 0.03704-0.18359v-0.05959h-0.0048q-0.02577 0.03704-0.06603 0.05798t-0.10307 0.02094q-0.13045 0-0.19165-0.09985-0.0612-0.10146-0.0612-0.31726 0-0.20775 0.07891-0.31404 0.08052-0.10629 0.23674-0.10629 0.07569 0 0.13045 0.01449 0.05476 0.01449 0.09663 0.03382zm-0.11595-0.72632q-0.04831-0.02577-0.12401-0.02577-0.08213 0-0.13206 0.07569-0.04993 0.07408-0.04993 0.23835 0 0.06764 0.0081 0.12562 0.0081 0.05637 0.02738 0.09985 0.01933 0.04187 0.04831 0.06603 0.0306 0.02255 0.07408 0.02255 0.0612 0 0.09663-0.03221t0.05154-0.09663z"/>
|
||||
<path d="m-43.647 50.752v-0.48958q0-0.11273-0.02738-0.17071-0.02577-0.05959-0.10468-0.05959-0.05637 0-0.10307 0.04026-0.04509 0.04026-0.0612 0.10146v0.57816h-0.11595v-1.1273h0.11595v0.39779h0.0048q0.03221-0.04187 0.07891-0.06764 0.04831-0.02738 0.11918-0.02738 0.05315 0 0.0918 0.0145 0.04026 0.01449 0.06603 0.04992t0.03865 0.09502q0.01288 0.05798 0.01288 0.14494v0.52018z"/>
|
||||
<path d="m-43.432 49.946h0.09824v-0.15944l0.11595-0.03704v0.19648h0.17393v0.10468h-0.17393v0.47992q0 0.07086 0.01611 0.10307 0.01771 0.0306 0.05637 0.0306 0.03221 0 0.05476-0.0064 0.02416-0.0081 0.05154-0.01933l0.02255 0.0918q-0.03543 0.01772-0.07891 0.02738-0.04187 0.01127-0.08858 0.01127-0.08052 0-0.11595-0.05154-0.03382-0.05315-0.03382-0.17071v-0.49603h-0.09824z"/>
|
||||
<path d="m-42.945 50.682q0-0.04026 0.02255-0.06442 0.02416-0.02416 0.0612-0.02416 0.04187 0 0.06764 0.03382 0.02738 0.03382 0.02738 0.10629 0 0.05315-0.01449 0.09502-0.01288 0.04348-0.03543 0.07569-0.02094 0.03221-0.0467 0.05315-0.02577 0.02094-0.04993 0.0306l-0.04026-0.05476q0.02094-0.01127 0.03865-0.0306 0.01933-0.01772 0.0306-0.04026 0.01288-0.02255 0.01933-0.04831 0.0064-0.02416 0.0064-0.04831-0.03221 0.0097-0.05959-0.01288-0.02738-0.02255-0.02738-0.07086z"/>
|
||||
<path d="m-42.373 49.946h0.08213l0.01771 0.08697h0.0064q0.05959-0.10629 0.18682-0.10629 0.12723 0 0.19004 0.09502 0.06442 0.09502 0.06442 0.31082 0 0.10146-0.02094 0.18359-0.02094 0.08052-0.05959 0.1385-0.03865 0.05637-0.09502 0.08696-0.05476 0.02899-0.1224 0.02899-0.0467 0-0.07408-0.0064-0.02738-0.0048-0.05959-0.02255v0.33176h-0.11595zm0.11595 0.67801q0.02255 0.01933 0.04992 0.0306 0.02899 0.01127 0.07569 0.01127 0.08535 0 0.13528-0.08697 0.04992-0.08696 0.04992-0.24801 0-0.06764-0.0097-0.1224-0.0081-0.05476-0.02738-0.09341-0.01933-0.04026-0.04992-0.0612-0.02899-0.02255-0.07247-0.02255-0.11756 0-0.15138 0.14333z"/>
|
||||
<path d="m-41.707 50.349q0-0.21742 0.07408-0.31887 0.07569-0.10307 0.21419-0.10307 0.14816 0 0.21741 0.10468 0.07086 0.10468 0.07086 0.31726 0 0.21902-0.07569 0.32048t-0.21258 0.10146q-0.14816 0-0.21902-0.10468-0.06925-0.10468-0.06925-0.31726zm0.12079 0q0 0.07086 0.0081 0.12884 0.0097 0.05798 0.02899 0.09985 0.02094 0.04187 0.05315 0.06603 0.03221 0.02255 0.0773 0.02255 0.08375 0 0.12562-0.07408 0.04187-0.07569 0.04187-0.24318 0-0.06925-0.0097-0.12723-0.0081-0.05959-0.02899-0.10146-0.01933-0.04187-0.05154-0.06442-0.03221-0.02416-0.0773-0.02416-0.08213 0-0.12562 0.07569-0.04187 0.07569-0.04187 0.24157z"/>
|
||||
<path d="m-40.977 49.946h0.08213l0.02094 0.08535h0.0048q0.02255-0.0467 0.05798-0.07247 0.03704-0.02738 0.08858-0.02738 0.03704 0 0.08375 0.01449l-0.02255 0.11756q-0.04187-0.01449-0.07408-0.01449-0.05154 0-0.08374 0.0306-0.03221 0.02899-0.04187 0.07891v0.59265h-0.11595z"/>
|
||||
<path d="m-40.579 49.946h0.09824v-0.15944l0.11595-0.03704v0.19648h0.17393v0.10468h-0.17393v0.47992q0 0.07086 0.01611 0.10307 0.01772 0.0306 0.05637 0.0306 0.03221 0 0.05476-0.0064 0.02416-0.0081 0.05154-0.01933l0.02255 0.0918q-0.03543 0.01772-0.07891 0.02738-0.04187 0.01127-0.08858 0.01127-0.08052 0-0.11595-0.05154-0.03382-0.05315-0.03382-0.17071v-0.49603h-0.09824z"/>
|
||||
<path d="m-40.063 49.995q0.0467-0.02899 0.11273-0.04509 0.06764-0.01611 0.14172-0.01611 0.06764 0 0.1079 0.02094 0.04187 0.01933 0.06442 0.05476 0.02416 0.03382 0.0306 0.07891 0.0081 0.04348 0.0081 0.0918 0 0.09663-0.0048 0.18842-0.0032 0.0918-0.0032 0.17393 0 0.0612 0.0032 0.11434 0.0048 0.05154 0.01611 0.09824h-0.08858l-0.02738-0.09502h-0.0064q-0.02416 0.04187-0.07086 0.07247t-0.12562 0.0306q-0.08697 0-0.14333-0.05959-0.05476-0.0612-0.05476-0.16749 0-0.06925 0.02255-0.11596 0.02416-0.0467 0.06603-0.07569 0.04348-0.02899 0.10146-0.04026 0.05959-0.01288 0.13206-0.01288 0.01611 0 0.03221 0 0.01611 0 0.03382 0.0016 0.0048-0.04993 0.0048-0.08858 0-0.0918-0.02738-0.12884-0.02738-0.03704-0.09985-0.03704-0.04509 0-0.09824 0.01449-0.05315 0.01288-0.08858 0.03382zm0.34947 0.38974q-0.0161-0.0016-0.03221-0.0016-0.01611-0.0016-0.03221-0.0016-0.03865 0-0.07569 0.0064t-0.06603 0.02255q-0.02899 0.0161-0.0467 0.04348-0.01611 0.02738-0.01611 0.06925 0 0.06442 0.0306 0.09985 0.03221 0.03543 0.08213 0.03543 0.06764 0 0.10468-0.03221 0.03704-0.03221 0.05153-0.07086z"/>
|
||||
<path d="m-39.41 49.624h0.11595v0.38329h0.0048q0.06603-0.08052 0.17554-0.08052 0.12401 0 0.1852 0.09824 0.06281 0.09824 0.06281 0.31082 0 0.21741-0.08374 0.3237-0.08214 0.10629-0.23352 0.10629-0.07408 0-0.13528-0.0161-0.0612-0.01772-0.0918-0.04026zm0.11595 1.0098q0.02255 0.01288 0.05476 0.02094 0.03382 0.0064 0.07086 0.0064 0.08375 0 0.13206-0.07891 0.04993-0.08052 0.04993-0.2464 0-0.06925-0.0097-0.12401-0.0081-0.05637-0.02738-0.09663-0.01771-0.04026-0.04831-0.0612-0.02899-0.02255-0.07086-0.02255-0.05798 0-0.09663 0.03543-0.03704 0.03382-0.05476 0.09341z"/>
|
||||
<path d="m-38.588 50.56q0 0.05637 0.01449 0.08052 0.0161 0.02416 0.04348 0.02416 0.03382 0 0.07891-0.01772l0.01127 0.09341q-0.02094 0.01288-0.05959 0.02094-0.03704 0.0081-0.06764 0.0081-0.0612 0-0.09985-0.03704-0.03704-0.03865-0.03704-0.13367v-0.97434h0.11595z"/>
|
||||
<path d="m-37.856 50.697q-0.03865 0.03543-0.09824 0.05476t-0.12562 0.01933q-0.07569 0-0.13206-0.02899-0.05476-0.0306-0.0918-0.08535-0.03543-0.05637-0.05314-0.13367-0.01611-0.0773-0.01611-0.17393 0-0.20614 0.07569-0.31404t0.21419-0.1079q0.04509 0 0.08858 0.01127 0.04509 0.01127 0.08052 0.04509t0.05637 0.09502q0.02255 0.0612 0.02255 0.15944 0 0.02738-0.0032 0.05959-0.0016 0.0306-0.0048 0.06442h-0.40906q0 0.06925 0.01127 0.12562 0.01127 0.05637 0.03543 0.09663 0.02416 0.03865 0.0612 0.0612 0.03865 0.02094 0.09502 0.02094 0.04348 0 0.08536-0.0161 0.04348-0.01611 0.06603-0.03865zm-0.09019-0.43161q0.0032-0.12079-0.03382-0.17715-0.03704-0.05637-0.10146-0.05637-0.07408 0-0.11756 0.05637-0.04348 0.05637-0.05154 0.17715z"/>
|
||||
<path d="m-36.734 50.708q-0.04026 0.03382-0.10146 0.04831t-0.12884 0.01449q-0.08535 0-0.15783-0.03221-0.07247-0.03221-0.12562-0.10146-0.05154-0.07086-0.08052-0.18198-0.02899-0.11112-0.02899-0.26734 0-0.16105 0.03221-0.27217 0.03382-0.11112 0.08858-0.18037t0.12562-0.09985q0.07247-0.0306 0.14816-0.0306 0.0773 0 0.12723 0.01127 0.05154 0.01127 0.08858 0.02738l-0.02899 0.10951q-0.03221-0.01772-0.07569-0.02738-0.04348-0.0097-0.09985-0.0097t-0.10629 0.02577q-0.04993 0.02416-0.08858 0.08052-0.03865 0.05476-0.0612 0.14494-0.02255 0.09019-0.02255 0.22064 0 0.23513 0.08052 0.3543 0.08052 0.11756 0.21419 0.11756 0.05476 0 0.09824-0.01449 0.04348-0.0161 0.07408-0.03704z"/>
|
||||
<path d="m-36.176 50.56q0 0.05637 0.01449 0.08052 0.0161 0.02416 0.04348 0.02416 0.03382 0 0.07891-0.01772l0.01127 0.09341q-0.02094 0.01288-0.05959 0.02094-0.03704 0.0081-0.06764 0.0081-0.0612 0-0.09985-0.03704-0.03704-0.03865-0.03704-0.13367v-0.97434h0.11595z"/>
|
||||
<path d="m-35.906 49.946h0.11595v0.80524h-0.11595zm-0.02094-0.24479q0-0.03865 0.02094-0.06281 0.02255-0.02416 0.05798-0.02416t0.05798 0.02416q0.02416 0.02255 0.02416 0.06281 0 0.03865-0.02416 0.0612-0.02255 0.02094-0.05798 0.02094t-0.05798-0.02255q-0.02094-0.02255-0.02094-0.05959z"/>
|
||||
<path d="m-35.576 49.624h0.11596v0.38329h0.0048q0.06603-0.08052 0.17554-0.08052 0.12401 0 0.1852 0.09824 0.06281 0.09824 0.06281 0.31082 0 0.21741-0.08375 0.3237-0.08213 0.10629-0.23352 0.10629-0.07408 0-0.13528-0.0161-0.0612-0.01772-0.0918-0.04026zm0.11596 1.0098q0.02255 0.01288 0.05476 0.02094 0.03382 0.0064 0.07086 0.0064 0.08374 0 0.13206-0.07891 0.04993-0.08052 0.04993-0.2464 0-0.06925-0.0097-0.12401-0.0081-0.05637-0.02738-0.09663-0.01771-0.04026-0.04831-0.0612-0.02899-0.02255-0.07086-0.02255-0.05798 0-0.09663 0.03543-0.03704 0.03382-0.05476 0.09341z"/>
|
||||
<path d="m-34.878 49.946h0.08213l0.02094 0.08535h0.0048q0.02255-0.0467 0.05798-0.07247 0.03704-0.02738 0.08858-0.02738 0.03704 0 0.08375 0.01449l-0.02255 0.11756q-0.04187-0.01449-0.07408-0.01449-0.05154 0-0.08374 0.0306-0.03221 0.02899-0.04187 0.07891v0.59265h-0.11595z"/>
|
||||
<path d="m-34.446 49.995q0.0467-0.02899 0.11273-0.04509 0.06764-0.01611 0.14172-0.01611 0.06764 0 0.1079 0.02094 0.04187 0.01933 0.06442 0.05476 0.02416 0.03382 0.0306 0.07891 0.0081 0.04348 0.0081 0.0918 0 0.09663-0.0048 0.18842-0.0032 0.0918-0.0032 0.17393 0 0.0612 0.0032 0.11434 0.0048 0.05154 0.01611 0.09824h-0.08858l-0.02738-0.09502h-0.0064q-0.02416 0.04187-0.07086 0.07247t-0.12562 0.0306q-0.08696 0-0.14333-0.05959-0.05476-0.0612-0.05476-0.16749 0-0.06925 0.02255-0.11596 0.02416-0.0467 0.06603-0.07569 0.04348-0.02899 0.10146-0.04026 0.05959-0.01288 0.13206-0.01288 0.0161 0 0.03221 0t0.03382 0.0016q0.0048-0.04993 0.0048-0.08858 0-0.0918-0.02738-0.12884-0.02738-0.03704-0.09985-0.03704-0.04509 0-0.09824 0.01449-0.05315 0.01288-0.08858 0.03382zm0.34947 0.38974q-0.01611-0.0016-0.03221-0.0016-0.01611-0.0016-0.03221-0.0016-0.03865 0-0.07569 0.0064t-0.06603 0.02255q-0.02899 0.0161-0.0467 0.04348-0.01611 0.02738-0.01611 0.06925 0 0.06442 0.0306 0.09985 0.03221 0.03543 0.08214 0.03543 0.06764 0 0.10468-0.03221t0.05154-0.07086z"/>
|
||||
<path d="m-33.793 49.946h0.08214l0.02094 0.08535h0.0048q0.02255-0.0467 0.05798-0.07247 0.03704-0.02738 0.08858-0.02738 0.03704 0 0.08375 0.01449l-0.02255 0.11756q-0.04187-0.01449-0.07408-0.01449-0.05154 0-0.08374 0.0306-0.03221 0.02899-0.04187 0.07891v0.59265h-0.11595z"/>
|
||||
<path d="m-33.153 50.467 0.03382 0.15622h0.0081l0.02416-0.15622 0.1224-0.52018h0.11756l-0.19165 0.7231q-0.02255 0.08696-0.04509 0.16266-0.02255 0.07569-0.04992 0.13045-0.02577 0.05637-0.05959 0.08697-0.03221 0.03221-0.0773 0.03221t-0.07891-0.01449l0.01933-0.10951q0.02255 0.0081 0.04509 0.0032 0.02255-0.0048 0.04187-0.02738 0.02094-0.02255 0.03704-0.06764 0.01772-0.04348 0.0306-0.11434l-0.2609-0.80524h0.13206z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g transform="matrix(4.0081 0 0 4.0081 -210.57 -224.31)" stroke-width=".4463" style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="libwebsockets.org">
|
||||
<g stroke-width=".4463">
|
||||
<path d="m-52.015 48.429q0 0.12497 0.03213 0.17852 0.0357 0.05356 0.0964 0.05356 0.07498 0 0.17495-0.03927l0.02499 0.20709q-0.04642 0.02856-0.13211 0.04642-0.08212 0.01785-0.14996 0.01785-0.13568 0-0.22137-0.08212-0.08212-0.08569-0.08212-0.29635v-2.1601h0.25707z"/>
|
||||
<path d="m-51.417 47.068h0.25707v1.7852h-0.25707zm-0.04642-0.54271q0-0.08569 0.04642-0.13925 0.04999-0.05356 0.12854-0.05356 0.07855 0 0.12854 0.05356 0.05356 0.04999 0.05356 0.13925 0 0.08569-0.05356 0.13568-0.04999 0.04642-0.12854 0.04642-0.07855 0-0.12854-0.04999-0.04642-0.04999-0.04642-0.13211z"/>
|
||||
<path d="m-50.686 46.354h0.25707v0.84976h0.01071q0.14639-0.17852 0.38918-0.17852 0.27492 0 0.4106 0.2178 0.13925 0.2178 0.13925 0.6891 0 0.48201-0.18566 0.71766-0.18209 0.23565-0.51771 0.23565-0.16424 0-0.29992-0.03571-0.13568-0.03927-0.20352-0.08926zm0.25707 2.2387q0.04999 0.02856 0.1214 0.04641 0.07498 0.01428 0.1571 0.01428 0.18566 0 0.29278-0.17495 0.11068-0.17852 0.11068-0.54628 0-0.15353-0.02142-0.27492-0.01785-0.12496-0.0607-0.21423-0.03927-0.08926-0.10711-0.13568-0.06427-0.04999-0.1571-0.04999-0.12854 0-0.21423 0.07855-0.08212 0.07498-0.1214 0.20708z"/>
|
||||
</g>
|
||||
<path d="m-48.092 47.068 0.24993 0.91403 0.04284 0.29635h0.01428l0.0357-0.29992 0.16781-0.91046h0.38561l-0.43916 1.8031h-0.33562l-0.26778-0.99615-0.02856-0.22851h-0.02142l-0.02499 0.23565-0.25707 0.98901h-0.34633l-0.45702-1.8031h0.46059l0.1928 0.89618 0.03213 0.31777h0.01428l0.04642-0.32134 0.2178-0.89261z"/>
|
||||
<path d="m-45.889 48.721q-0.08926 0.07855-0.24279 0.12854-0.15353 0.04999-0.32134 0.04999-0.18566 0-0.32134-0.06427-0.13211-0.06427-0.2178-0.18566-0.08569-0.1214-0.12854-0.29278-0.03927-0.17495-0.03927-0.39632 0-0.48201 0.18923-0.71052 0.1928-0.23208 0.532-0.23208 0.11425 0 0.22137 0.0357 0.10711 0.03213 0.18923 0.11425 0.08569 0.07855 0.13568 0.21423 0.05356 0.13211 0.05356 0.33562 0 0.07855-0.01071 0.16781-0.0071 0.08926-0.02499 0.1928h-0.86762q0.0071 0.22137 0.09283 0.33919 0.08569 0.11782 0.27492 0.11782 0.11425 0 0.20709-0.0357 0.0964-0.0357 0.14639-0.07498zm-0.55699-1.3389q-0.13568 0-0.20352 0.11068-0.06784 0.10711-0.07855 0.30349h0.49272q0.01071-0.20352-0.04284-0.30706-0.05356-0.10711-0.16781-0.10711z"/>
|
||||
<path d="m-45.569 46.354h0.42488v0.82834h0.01071q0.12854-0.1571 0.36776-0.1571 0.2535 0 0.39275 0.21066 0.14282 0.21066 0.14282 0.67838 0 0.507-0.19994 0.74622-0.19994 0.23565-0.54628 0.23565-0.18923 0-0.3499-0.0357-0.1571-0.03571-0.24279-0.07855zm0.42488 2.1137q0.07498 0.03927 0.19638 0.03927 0.13568 0 0.20708-0.12854 0.07141-0.13211 0.07141-0.43916 0-0.27135-0.05713-0.39632-0.05713-0.12854-0.17852-0.12854-0.17852 0-0.23922 0.18566z"/>
|
||||
<path d="m-43.386 48.379q0-0.07498-0.04999-0.12496-0.04642-0.05356-0.1214-0.0964-0.07498-0.04642-0.16067-0.09283-0.08212-0.04641-0.1571-0.11425-0.07498-0.06784-0.12496-0.16424-0.04642-0.0964-0.04642-0.24279 0-0.24993 0.13568-0.38561 0.13568-0.13568 0.39989-0.13568 0.1571 0 0.29635 0.0357 0.13925 0.03213 0.22137 0.08212l-0.09997 0.32848q-0.06784-0.02856-0.16424-0.05356-0.0964-0.02856-0.18923-0.02856-0.17495 0-0.17495 0.14639 0 0.06784 0.04642 0.11425 0.04999 0.04284 0.12496 0.08569 0.07498 0.04284 0.1571 0.08926 0.08569 0.04642 0.16067 0.11782 0.07498 0.06784 0.1214 0.16781 0.04999 0.09997 0.04999 0.24636 0 0.24636-0.14996 0.39632-0.14996 0.14996-0.4463 0.14996-0.14639 0-0.2892-0.0357-0.13925-0.0357-0.22494-0.09283l0.11782-0.34276q0.07498 0.04285 0.17138 0.07498 0.09997 0.03213 0.20709 0.03213 0.08212 0 0.13568-0.0357 0.05356-0.03928 0.05356-0.1214z"/>
|
||||
<path d="m-42.802 47.961q0-0.47487 0.18566-0.70695 0.18566-0.23208 0.51771-0.23208 0.35704 0 0.532 0.23565 0.17495 0.23565 0.17495 0.70338 0 0.47844-0.18566 0.71052-0.18566 0.22851-0.52128 0.22851-0.70338 0-0.70338-0.93902zm0.43916 0q0 0.26778 0.0607 0.41417t0.20352 0.14639q0.13568 0 0.19994-0.12497 0.06784-0.12854 0.06784-0.43559 0-0.27492-0.0607-0.41774-0.0607-0.14282-0.20708-0.14282-0.12497 0-0.19638 0.12854-0.06784 0.12497-0.06784 0.43202z"/>
|
||||
<path d="m-40.094 48.757q-0.08926 0.07141-0.21423 0.10711-0.12496 0.0357-0.24993 0.0357-0.18209 0-0.30706-0.06427-0.1214-0.06784-0.19994-0.18923-0.07855-0.12496-0.11425-0.29635-0.03213-0.17495-0.03213-0.38918 0-0.46773 0.16781-0.70338 0.16781-0.23565 0.49272-0.23565 0.16067 0 0.26064 0.02856 0.10354 0.02856 0.18209 0.07141l-0.09997 0.35347q-0.06427-0.03213-0.12497-0.04642-0.05713-0.01785-0.13925-0.01785-0.14996 0-0.22494 0.13211-0.07498 0.12854-0.07498 0.41774 0 0.24279 0.07498 0.39632 0.07855 0.15353 0.24636 0.15353 0.08926 0 0.14996-0.02142 0.06427-0.02499 0.11782-0.0607z"/>
|
||||
<path d="m-39.374 48.114h-0.09997v0.73908h-0.42488v-2.4993h0.42488v1.4746l0.08569-0.04999 0.29635-0.71052h0.46059l-0.32848 0.70695-0.15353 0.1214 0.16781 0.1214 0.36418 0.83548h-0.47844z"/>
|
||||
<path d="m-37.256 48.721q-0.08926 0.07855-0.24279 0.12854-0.15353 0.04999-0.32134 0.04999-0.18566 0-0.32134-0.06427-0.13211-0.06427-0.2178-0.18566-0.08569-0.1214-0.12854-0.29278-0.03927-0.17495-0.03927-0.39632 0-0.48201 0.18923-0.71052 0.1928-0.23208 0.532-0.23208 0.11425 0 0.22137 0.0357 0.10711 0.03213 0.18923 0.11425 0.08569 0.07855 0.13568 0.21423 0.05356 0.13211 0.05356 0.33562 0 0.07855-0.01071 0.16781-0.0071 0.08926-0.02499 0.1928h-0.86763q0.0071 0.22137 0.09283 0.33919 0.08569 0.11782 0.27492 0.11782 0.11425 0 0.20708-0.0357 0.0964-0.0357 0.14639-0.07498zm-0.55699-1.3389q-0.13568 0-0.20352 0.11068-0.06784 0.10711-0.07855 0.30349h0.49272q0.01071-0.20352-0.04284-0.30706-0.05356-0.10711-0.16781-0.10711z"/>
|
||||
<path d="m-37.075 47.068h0.19637v-0.33562l0.42488-0.13211v0.46773h0.34633v0.37847h-0.34633v0.77836q0 0.15353 0.02856 0.2178 0.03213 0.06427 0.11068 0.06427 0.05356 0 0.0964-0.01071t0.09283-0.03213l0.05356 0.33919q-0.07855 0.03928-0.18209 0.06427-0.10354 0.02856-0.2178 0.02856-0.20352 0-0.30706-0.11782-0.09997-0.11782-0.09997-0.39632v-0.93546h-0.19637z"/>
|
||||
<path d="m-35.297 48.379q0-0.07498-0.04999-0.12496-0.04641-0.05356-0.1214-0.0964-0.07498-0.04642-0.16067-0.09283-0.08212-0.04641-0.1571-0.11425-0.07498-0.06784-0.12496-0.16424-0.04642-0.0964-0.04642-0.24279 0-0.24993 0.13568-0.38561 0.13568-0.13568 0.39989-0.13568 0.1571 0 0.29635 0.0357 0.13925 0.03213 0.22137 0.08212l-0.09997 0.32848q-0.06784-0.02856-0.16424-0.05356-0.0964-0.02856-0.18923-0.02856-0.17495 0-0.17495 0.14639 0 0.06784 0.04642 0.11425 0.04999 0.04284 0.12497 0.08569 0.07498 0.04284 0.1571 0.08926 0.08569 0.04642 0.16067 0.11782 0.07498 0.06784 0.1214 0.16781 0.04999 0.09997 0.04999 0.24636 0 0.24636-0.14996 0.39632-0.14996 0.14996-0.4463 0.14996-0.14639 0-0.2892-0.0357-0.13925-0.0357-0.22494-0.09283l0.11782-0.34276q0.07498 0.04285 0.17138 0.07498 0.09997 0.03213 0.20708 0.03213 0.08212 0 0.13568-0.0357 0.05356-0.03928 0.05356-0.1214z"/>
|
||||
<g stroke-width=".4463">
|
||||
<path d="m-34.662 48.693q0-0.09997 0.04642-0.14996 0.04999-0.04999 0.13211-0.04999 0.08212 0 0.12854 0.04999 0.04999 0.04999 0.04999 0.14996 0 0.10354-0.04999 0.15353-0.04642 0.04999-0.12854 0.04999-0.08212 0-0.13211-0.04999-0.04642-0.04999-0.04642-0.15353z"/>
|
||||
<path d="m-34.035 47.961q0-0.48201 0.16424-0.70695 0.16781-0.22851 0.47487-0.22851 0.32848 0 0.48201 0.23208 0.1571 0.23208 0.1571 0.70338 0 0.48558-0.16781 0.71052-0.16781 0.22494-0.4713 0.22494-0.32848 0-0.48558-0.23208-0.15353-0.23208-0.15353-0.70338zm0.26778 0q0 0.1571 0.01785 0.28564 0.02142 0.12854 0.06427 0.22137 0.04642 0.09283 0.11782 0.14639 0.07141 0.04999 0.17138 0.04999 0.18566 0 0.2785-0.16424 0.09283-0.16781 0.09283-0.53914 0-0.15353-0.02142-0.28206-0.01785-0.13211-0.06427-0.22494-0.04285-0.09283-0.11425-0.14282-0.07141-0.05356-0.17138-0.05356-0.18209 0-0.27849 0.16781-0.09283 0.16781-0.09283 0.53557z"/>
|
||||
<path d="m-32.415 47.068h0.18209l0.04642 0.18923h0.01071q0.04999-0.10354 0.12854-0.16067 0.08212-0.0607 0.19637-0.0607 0.08212 0 0.18566 0.03213l-0.04999 0.26064q-0.09283-0.03213-0.16424-0.03213-0.11426 0-0.18566 0.06784-0.07141 0.06427-0.09283 0.17495v1.3139h-0.25707z"/>
|
||||
<path d="m-30.314 48.936q0 0.34633-0.15353 0.51057-0.15353 0.16424-0.4463 0.16424-0.17852 0-0.29278-0.03213-0.11425-0.02856-0.18566-0.06784l0.07498-0.22137q0.07141 0.03213 0.1571 0.0607 0.08569 0.02856 0.21066 0.02856 0.2178 0 0.29635-0.1214 0.08212-0.1214 0.08212-0.40703v-0.13211h-0.01071q-0.05713 0.08212-0.14639 0.12854-0.08926 0.04641-0.22851 0.04641-0.28921 0-0.42488-0.22137-0.13568-0.22494-0.13568-0.70338 0-0.46059 0.17495-0.69624 0.17852-0.23565 0.52486-0.23565 0.16781 0 0.2892 0.03213t0.21423 0.07498zm-0.25707-1.6103q-0.10711-0.05713-0.27492-0.05713-0.18209 0-0.29278 0.16781-0.11068 0.16424-0.11068 0.52842 0 0.14996 0.01785 0.27849 0.01785 0.12497 0.0607 0.22137 0.04285 0.09283 0.10711 0.14639 0.06784 0.04999 0.16424 0.04999 0.13568 0 0.21423-0.07141t0.11425-0.21423z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(4.0081 0 0 4.0081 -210.57 -224.31)" stroke-width=".20131" style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="lightweight, portable C library">
|
||||
<path d="m-49.147 50.56q0 0.05637 0.01449 0.08052 0.0161 0.02416 0.04348 0.02416 0.03382 0 0.07891-0.01772l0.01127 0.09341q-0.02094 0.01288-0.05959 0.02094-0.03704 0.0081-0.06764 0.0081-0.0612 0-0.09985-0.03704-0.03704-0.03865-0.03704-0.13367v-0.97434h0.11595z"/>
|
||||
<path d="m-48.878 49.946h0.11596v0.80524h-0.11596zm-0.02094-0.24479q0-0.03865 0.02094-0.06281 0.02255-0.02416 0.05798-0.02416t0.05798 0.02416q0.02416 0.02255 0.02416 0.06281 0 0.03865-0.02416 0.0612-0.02255 0.02094-0.05798 0.02094t-0.05798-0.02255q-0.02094-0.02255-0.02094-0.05959z"/>
|
||||
<path d="m-48.041 50.789q0 0.15622-0.06925 0.2303-0.06925 0.07408-0.20131 0.07408-0.08052 0-0.13206-0.0145-0.05153-0.01288-0.08374-0.0306l0.03382-0.09985q0.03221 0.01449 0.07086 0.02738 0.03865 0.01288 0.09502 0.01288 0.09824 0 0.13367-0.05476 0.03704-0.05476 0.03704-0.18359v-0.05959h-0.0048q-0.02577 0.03704-0.06603 0.05798t-0.10307 0.02094q-0.13045 0-0.19165-0.09985-0.0612-0.10146-0.0612-0.31726 0-0.20775 0.07891-0.31404 0.08052-0.10629 0.23674-0.10629 0.07569 0 0.13045 0.01449 0.05476 0.01449 0.09663 0.03382zm-0.11595-0.72632q-0.04831-0.02577-0.12401-0.02577-0.08213 0-0.13206 0.07569-0.04992 0.07408-0.04992 0.23835 0 0.06764 0.0081 0.12562 0.0081 0.05637 0.02738 0.09985 0.01933 0.04187 0.04831 0.06603 0.0306 0.02255 0.07408 0.02255 0.0612 0 0.09663-0.03221t0.05154-0.09663z"/>
|
||||
<path d="m-47.441 50.752v-0.48958q0-0.11273-0.02738-0.17071-0.02577-0.05959-0.10468-0.05959-0.05637 0-0.10307 0.04026-0.04509 0.04026-0.0612 0.10146v0.57816h-0.11595v-1.1273h0.11595v0.39779h0.0048q0.03221-0.04187 0.07891-0.06764 0.04832-0.02738 0.11918-0.02738 0.05315 0 0.0918 0.0145 0.04026 0.01449 0.06603 0.04992t0.03865 0.09502q0.01288 0.05798 0.01288 0.14494v0.52018z"/>
|
||||
<path d="m-47.226 49.946h0.09824v-0.15944l0.11595-0.03704v0.19648h0.17393v0.10468h-0.17393v0.47992q0 0.07086 0.01611 0.10307 0.01772 0.0306 0.05637 0.0306 0.03221 0 0.05476-0.0064 0.02416-0.0081 0.05154-0.01933l0.02255 0.0918q-0.03543 0.01772-0.07891 0.02738-0.04187 0.01127-0.08858 0.01127-0.08052 0-0.11595-0.05154-0.03382-0.05315-0.03382-0.17071v-0.49603h-0.09824z"/>
|
||||
<path d="m-46.272 49.946 0.14333 0.47026 0.02899 0.15461h0.0032l0.02416-0.15783 0.10951-0.46704h0.10951l-0.21418 0.82295h-0.06603l-0.16266-0.52824-0.02255-0.13528h-0.0032l-0.02255 0.13689-0.15783 0.52662h-0.06603l-0.22064-0.82295h0.12401l0.12401 0.46865 0.01933 0.15622h0.0032l0.02899-0.15944 0.13206-0.46543z"/>
|
||||
<path d="m-45.286 50.697q-0.03865 0.03543-0.09824 0.05476t-0.12562 0.01933q-0.07569 0-0.13206-0.02899-0.05476-0.0306-0.0918-0.08535-0.03543-0.05637-0.05315-0.13367-0.01611-0.0773-0.01611-0.17393 0-0.20614 0.07569-0.31404t0.21419-0.1079q0.04509 0 0.08858 0.01127 0.04509 0.01127 0.08052 0.04509t0.05637 0.09502q0.02255 0.0612 0.02255 0.15944 0 0.02738-0.0032 0.05959-0.0016 0.0306-0.0048 0.06442h-0.40906q0 0.06925 0.01127 0.12562 0.01127 0.05637 0.03543 0.09663 0.02416 0.03865 0.0612 0.0612 0.03865 0.02094 0.09502 0.02094 0.04348 0 0.08535-0.0161 0.04348-0.01611 0.06603-0.03865zm-0.09019-0.43161q0.0032-0.12079-0.03382-0.17715-0.03704-0.05637-0.10146-0.05637-0.07408 0-0.11756 0.05637-0.04348 0.05637-0.05154 0.17715z"/>
|
||||
<path d="m-45.084 49.946h0.11595v0.80524h-0.11595zm-0.02094-0.24479q0-0.03865 0.02094-0.06281 0.02255-0.02416 0.05798-0.02416t0.05798 0.02416q0.02416 0.02255 0.02416 0.06281 0 0.03865-0.02416 0.0612-0.02255 0.02094-0.05798 0.02094t-0.05798-0.02255q-0.02094-0.02255-0.02094-0.05959z"/>
|
||||
<path d="m-44.247 50.789q0 0.15622-0.06925 0.2303-0.06925 0.07408-0.20131 0.07408-0.08052 0-0.13206-0.0145-0.05153-0.01288-0.08374-0.0306l0.03382-0.09985q0.03221 0.01449 0.07086 0.02738 0.03865 0.01288 0.09502 0.01288 0.09824 0 0.13367-0.05476 0.03704-0.05476 0.03704-0.18359v-0.05959h-0.0048q-0.02577 0.03704-0.06603 0.05798t-0.10307 0.02094q-0.13045 0-0.19165-0.09985-0.0612-0.10146-0.0612-0.31726 0-0.20775 0.07891-0.31404 0.08052-0.10629 0.23674-0.10629 0.07569 0 0.13045 0.01449 0.05476 0.01449 0.09663 0.03382zm-0.11595-0.72632q-0.04831-0.02577-0.12401-0.02577-0.08213 0-0.13206 0.07569-0.04993 0.07408-0.04993 0.23835 0 0.06764 0.0081 0.12562 0.0081 0.05637 0.02738 0.09985 0.01933 0.04187 0.04831 0.06603 0.0306 0.02255 0.07408 0.02255 0.0612 0 0.09663-0.03221t0.05154-0.09663z"/>
|
||||
<path d="m-43.647 50.752v-0.48958q0-0.11273-0.02738-0.17071-0.02577-0.05959-0.10468-0.05959-0.05637 0-0.10307 0.04026-0.04509 0.04026-0.0612 0.10146v0.57816h-0.11595v-1.1273h0.11595v0.39779h0.0048q0.03221-0.04187 0.07891-0.06764 0.04831-0.02738 0.11918-0.02738 0.05315 0 0.0918 0.0145 0.04026 0.01449 0.06603 0.04992t0.03865 0.09502q0.01288 0.05798 0.01288 0.14494v0.52018z"/>
|
||||
<path d="m-43.432 49.946h0.09824v-0.15944l0.11595-0.03704v0.19648h0.17393v0.10468h-0.17393v0.47992q0 0.07086 0.01611 0.10307 0.01771 0.0306 0.05637 0.0306 0.03221 0 0.05476-0.0064 0.02416-0.0081 0.05154-0.01933l0.02255 0.0918q-0.03543 0.01772-0.07891 0.02738-0.04187 0.01127-0.08858 0.01127-0.08052 0-0.11595-0.05154-0.03382-0.05315-0.03382-0.17071v-0.49603h-0.09824z"/>
|
||||
<path d="m-42.945 50.682q0-0.04026 0.02255-0.06442 0.02416-0.02416 0.0612-0.02416 0.04187 0 0.06764 0.03382 0.02738 0.03382 0.02738 0.10629 0 0.05315-0.01449 0.09502-0.01288 0.04348-0.03543 0.07569-0.02094 0.03221-0.0467 0.05315-0.02577 0.02094-0.04993 0.0306l-0.04026-0.05476q0.02094-0.01127 0.03865-0.0306 0.01933-0.01772 0.0306-0.04026 0.01288-0.02255 0.01933-0.04831 0.0064-0.02416 0.0064-0.04831-0.03221 0.0097-0.05959-0.01288-0.02738-0.02255-0.02738-0.07086z"/>
|
||||
<path d="m-42.373 49.946h0.08213l0.01771 0.08697h0.0064q0.05959-0.10629 0.18682-0.10629 0.12723 0 0.19004 0.09502 0.06442 0.09502 0.06442 0.31082 0 0.10146-0.02094 0.18359-0.02094 0.08052-0.05959 0.1385-0.03865 0.05637-0.09502 0.08696-0.05476 0.02899-0.1224 0.02899-0.0467 0-0.07408-0.0064-0.02738-0.0048-0.05959-0.02255v0.33176h-0.11595zm0.11595 0.67801q0.02255 0.01933 0.04992 0.0306 0.02899 0.01127 0.07569 0.01127 0.08535 0 0.13528-0.08697 0.04992-0.08696 0.04992-0.24801 0-0.06764-0.0097-0.1224-0.0081-0.05476-0.02738-0.09341-0.01933-0.04026-0.04992-0.0612-0.02899-0.02255-0.07247-0.02255-0.11756 0-0.15138 0.14333z"/>
|
||||
<path d="m-41.707 50.349q0-0.21742 0.07408-0.31887 0.07569-0.10307 0.21419-0.10307 0.14816 0 0.21741 0.10468 0.07086 0.10468 0.07086 0.31726 0 0.21902-0.07569 0.32048t-0.21258 0.10146q-0.14816 0-0.21902-0.10468-0.06925-0.10468-0.06925-0.31726zm0.12079 0q0 0.07086 0.0081 0.12884 0.0097 0.05798 0.02899 0.09985 0.02094 0.04187 0.05315 0.06603 0.03221 0.02255 0.0773 0.02255 0.08375 0 0.12562-0.07408 0.04187-0.07569 0.04187-0.24318 0-0.06925-0.0097-0.12723-0.0081-0.05959-0.02899-0.10146-0.01933-0.04187-0.05154-0.06442-0.03221-0.02416-0.0773-0.02416-0.08213 0-0.12562 0.07569-0.04187 0.07569-0.04187 0.24157z"/>
|
||||
<path d="m-40.977 49.946h0.08213l0.02094 0.08535h0.0048q0.02255-0.0467 0.05798-0.07247 0.03704-0.02738 0.08858-0.02738 0.03704 0 0.08375 0.01449l-0.02255 0.11756q-0.04187-0.01449-0.07408-0.01449-0.05154 0-0.08374 0.0306-0.03221 0.02899-0.04187 0.07891v0.59265h-0.11595z"/>
|
||||
<path d="m-40.579 49.946h0.09824v-0.15944l0.11595-0.03704v0.19648h0.17393v0.10468h-0.17393v0.47992q0 0.07086 0.01611 0.10307 0.01772 0.0306 0.05637 0.0306 0.03221 0 0.05476-0.0064 0.02416-0.0081 0.05154-0.01933l0.02255 0.0918q-0.03543 0.01772-0.07891 0.02738-0.04187 0.01127-0.08858 0.01127-0.08052 0-0.11595-0.05154-0.03382-0.05315-0.03382-0.17071v-0.49603h-0.09824z"/>
|
||||
<path d="m-40.063 49.995q0.0467-0.02899 0.11273-0.04509 0.06764-0.01611 0.14172-0.01611 0.06764 0 0.1079 0.02094 0.04187 0.01933 0.06442 0.05476 0.02416 0.03382 0.0306 0.07891 0.0081 0.04348 0.0081 0.0918 0 0.09663-0.0048 0.18842-0.0032 0.0918-0.0032 0.17393 0 0.0612 0.0032 0.11434 0.0048 0.05154 0.01611 0.09824h-0.08858l-0.02738-0.09502h-0.0064q-0.02416 0.04187-0.07086 0.07247t-0.12562 0.0306q-0.08697 0-0.14333-0.05959-0.05476-0.0612-0.05476-0.16749 0-0.06925 0.02255-0.11596 0.02416-0.0467 0.06603-0.07569 0.04348-0.02899 0.10146-0.04026 0.05959-0.01288 0.13206-0.01288 0.01611 0 0.03221 0 0.01611 0 0.03382 0.0016 0.0048-0.04993 0.0048-0.08858 0-0.0918-0.02738-0.12884-0.02738-0.03704-0.09985-0.03704-0.04509 0-0.09824 0.01449-0.05315 0.01288-0.08858 0.03382zm0.34947 0.38974q-0.0161-0.0016-0.03221-0.0016-0.01611-0.0016-0.03221-0.0016-0.03865 0-0.07569 0.0064t-0.06603 0.02255q-0.02899 0.0161-0.0467 0.04348-0.01611 0.02738-0.01611 0.06925 0 0.06442 0.0306 0.09985 0.03221 0.03543 0.08213 0.03543 0.06764 0 0.10468-0.03221 0.03704-0.03221 0.05153-0.07086z"/>
|
||||
<path d="m-39.41 49.624h0.11595v0.38329h0.0048q0.06603-0.08052 0.17554-0.08052 0.12401 0 0.1852 0.09824 0.06281 0.09824 0.06281 0.31082 0 0.21741-0.08374 0.3237-0.08214 0.10629-0.23352 0.10629-0.07408 0-0.13528-0.0161-0.0612-0.01772-0.0918-0.04026zm0.11595 1.0098q0.02255 0.01288 0.05476 0.02094 0.03382 0.0064 0.07086 0.0064 0.08375 0 0.13206-0.07891 0.04993-0.08052 0.04993-0.2464 0-0.06925-0.0097-0.12401-0.0081-0.05637-0.02738-0.09663-0.01771-0.04026-0.04831-0.0612-0.02899-0.02255-0.07086-0.02255-0.05798 0-0.09663 0.03543-0.03704 0.03382-0.05476 0.09341z"/>
|
||||
<path d="m-38.588 50.56q0 0.05637 0.01449 0.08052 0.0161 0.02416 0.04348 0.02416 0.03382 0 0.07891-0.01772l0.01127 0.09341q-0.02094 0.01288-0.05959 0.02094-0.03704 0.0081-0.06764 0.0081-0.0612 0-0.09985-0.03704-0.03704-0.03865-0.03704-0.13367v-0.97434h0.11595z"/>
|
||||
<path d="m-37.856 50.697q-0.03865 0.03543-0.09824 0.05476t-0.12562 0.01933q-0.07569 0-0.13206-0.02899-0.05476-0.0306-0.0918-0.08535-0.03543-0.05637-0.05314-0.13367-0.01611-0.0773-0.01611-0.17393 0-0.20614 0.07569-0.31404t0.21419-0.1079q0.04509 0 0.08858 0.01127 0.04509 0.01127 0.08052 0.04509t0.05637 0.09502q0.02255 0.0612 0.02255 0.15944 0 0.02738-0.0032 0.05959-0.0016 0.0306-0.0048 0.06442h-0.40906q0 0.06925 0.01127 0.12562 0.01127 0.05637 0.03543 0.09663 0.02416 0.03865 0.0612 0.0612 0.03865 0.02094 0.09502 0.02094 0.04348 0 0.08536-0.0161 0.04348-0.01611 0.06603-0.03865zm-0.09019-0.43161q0.0032-0.12079-0.03382-0.17715-0.03704-0.05637-0.10146-0.05637-0.07408 0-0.11756 0.05637-0.04348 0.05637-0.05154 0.17715z"/>
|
||||
<path d="m-36.734 50.708q-0.04026 0.03382-0.10146 0.04831t-0.12884 0.01449q-0.08535 0-0.15783-0.03221-0.07247-0.03221-0.12562-0.10146-0.05154-0.07086-0.08052-0.18198-0.02899-0.11112-0.02899-0.26734 0-0.16105 0.03221-0.27217 0.03382-0.11112 0.08858-0.18037t0.12562-0.09985q0.07247-0.0306 0.14816-0.0306 0.0773 0 0.12723 0.01127 0.05154 0.01127 0.08858 0.02738l-0.02899 0.10951q-0.03221-0.01772-0.07569-0.02738-0.04348-0.0097-0.09985-0.0097t-0.10629 0.02577q-0.04993 0.02416-0.08858 0.08052-0.03865 0.05476-0.0612 0.14494-0.02255 0.09019-0.02255 0.22064 0 0.23513 0.08052 0.3543 0.08052 0.11756 0.21419 0.11756 0.05476 0 0.09824-0.01449 0.04348-0.0161 0.07408-0.03704z"/>
|
||||
<path d="m-36.176 50.56q0 0.05637 0.01449 0.08052 0.0161 0.02416 0.04348 0.02416 0.03382 0 0.07891-0.01772l0.01127 0.09341q-0.02094 0.01288-0.05959 0.02094-0.03704 0.0081-0.06764 0.0081-0.0612 0-0.09985-0.03704-0.03704-0.03865-0.03704-0.13367v-0.97434h0.11595z"/>
|
||||
<path d="m-35.906 49.946h0.11595v0.80524h-0.11595zm-0.02094-0.24479q0-0.03865 0.02094-0.06281 0.02255-0.02416 0.05798-0.02416t0.05798 0.02416q0.02416 0.02255 0.02416 0.06281 0 0.03865-0.02416 0.0612-0.02255 0.02094-0.05798 0.02094t-0.05798-0.02255q-0.02094-0.02255-0.02094-0.05959z"/>
|
||||
<path d="m-35.576 49.624h0.11596v0.38329h0.0048q0.06603-0.08052 0.17554-0.08052 0.12401 0 0.1852 0.09824 0.06281 0.09824 0.06281 0.31082 0 0.21741-0.08375 0.3237-0.08213 0.10629-0.23352 0.10629-0.07408 0-0.13528-0.0161-0.0612-0.01772-0.0918-0.04026zm0.11596 1.0098q0.02255 0.01288 0.05476 0.02094 0.03382 0.0064 0.07086 0.0064 0.08374 0 0.13206-0.07891 0.04993-0.08052 0.04993-0.2464 0-0.06925-0.0097-0.12401-0.0081-0.05637-0.02738-0.09663-0.01771-0.04026-0.04831-0.0612-0.02899-0.02255-0.07086-0.02255-0.05798 0-0.09663 0.03543-0.03704 0.03382-0.05476 0.09341z"/>
|
||||
<path d="m-34.878 49.946h0.08213l0.02094 0.08535h0.0048q0.02255-0.0467 0.05798-0.07247 0.03704-0.02738 0.08858-0.02738 0.03704 0 0.08375 0.01449l-0.02255 0.11756q-0.04187-0.01449-0.07408-0.01449-0.05154 0-0.08374 0.0306-0.03221 0.02899-0.04187 0.07891v0.59265h-0.11595z"/>
|
||||
<path d="m-34.446 49.995q0.0467-0.02899 0.11273-0.04509 0.06764-0.01611 0.14172-0.01611 0.06764 0 0.1079 0.02094 0.04187 0.01933 0.06442 0.05476 0.02416 0.03382 0.0306 0.07891 0.0081 0.04348 0.0081 0.0918 0 0.09663-0.0048 0.18842-0.0032 0.0918-0.0032 0.17393 0 0.0612 0.0032 0.11434 0.0048 0.05154 0.01611 0.09824h-0.08858l-0.02738-0.09502h-0.0064q-0.02416 0.04187-0.07086 0.07247t-0.12562 0.0306q-0.08696 0-0.14333-0.05959-0.05476-0.0612-0.05476-0.16749 0-0.06925 0.02255-0.11596 0.02416-0.0467 0.06603-0.07569 0.04348-0.02899 0.10146-0.04026 0.05959-0.01288 0.13206-0.01288 0.0161 0 0.03221 0t0.03382 0.0016q0.0048-0.04993 0.0048-0.08858 0-0.0918-0.02738-0.12884-0.02738-0.03704-0.09985-0.03704-0.04509 0-0.09824 0.01449-0.05315 0.01288-0.08858 0.03382zm0.34947 0.38974q-0.01611-0.0016-0.03221-0.0016-0.01611-0.0016-0.03221-0.0016-0.03865 0-0.07569 0.0064t-0.06603 0.02255q-0.02899 0.0161-0.0467 0.04348-0.01611 0.02738-0.01611 0.06925 0 0.06442 0.0306 0.09985 0.03221 0.03543 0.08214 0.03543 0.06764 0 0.10468-0.03221t0.05154-0.07086z"/>
|
||||
<path d="m-33.793 49.946h0.08214l0.02094 0.08535h0.0048q0.02255-0.0467 0.05798-0.07247 0.03704-0.02738 0.08858-0.02738 0.03704 0 0.08375 0.01449l-0.02255 0.11756q-0.04187-0.01449-0.07408-0.01449-0.05154 0-0.08374 0.0306-0.03221 0.02899-0.04187 0.07891v0.59265h-0.11595z"/>
|
||||
<path d="m-33.153 50.467 0.03382 0.15622h0.0081l0.02416-0.15622 0.1224-0.52018h0.11756l-0.19165 0.7231q-0.02255 0.08696-0.04509 0.16266-0.02255 0.07569-0.04992 0.13045-0.02577 0.05637-0.05959 0.08697-0.03221 0.03221-0.0773 0.03221t-0.07891-0.01449l0.01933-0.10951q0.02255 0.0081 0.04509 0.0032 0.02255-0.0048 0.04187-0.02738 0.02094-0.02255 0.03704-0.06764 0.01772-0.04348 0.0306-0.11434l-0.2609-0.80524h0.13206z"/>
|
||||
</g>
|
||||
<path d="m-435.92-23.597c0.28617-0.34918 0.57227-0.69834 0.85837-1.0475 0.42677 0.47526 0.85355 0.95052 1.2803 1.4258 0.76622 0.0048 1.5325 0.01002 2.2987 0.01443-0.82927-0.91657-1.6586-1.8331-2.4878-2.7497 0.40254-0.45586 0.80503-0.91173 1.2076-1.3676 0.78562 0.91658 1.5713 1.8332 2.3569 2.7497-4e-3 -0.87778-8e-3 -1.7556-0.0161-2.6333-0.40253-0.45101-0.80501-0.90202-1.2075-1.353 0.28858-0.42545 0.99829-0.86377 0.3475-1.2606-1.4591-1.6118-2.9183-3.2236-4.3774-4.8354-3.0679-0.01042-6.1393 0.04092-9.205-0.0084-0.72986-0.06429-1.6392-0.29547-1.8065-1.1337-0.35271-1.09 0.84574-2.3762 1.9465-1.8649 0.76081 0.14726 0.44105 1.6835-0.23166 1.1743 0.69856-1.0262-1.2808-0.90972-0.72049 0.09824 0.38397 0.88195 1.783 1.0275 2.3349 0.22513 0.57404-0.92504-0.20641-1.9788-1.0842-2.3446-0.87836-0.41949-1.9686-0.31147-2.7028 0.34337-1.0973 0.83626-1.6281 2.4707-0.91191 3.7193 0.4168 0.93386 1.3405 1.5318 2.3429 1.6481 1.343 0.16782 2.7026 0.06445 4.0539 0.09323h5.3734c1.0184 1.13 2.0368 2.2599 3.0553 3.3899-0.91656 1.0136-1.8331 2.0271-2.7497 3.0407-0.66422-0.85695-1.6664-1.5082-2.0708-2.5299-0.32706-1.1972 1.4194-2.1305 2.2518-1.2247 0.79933 0.44227-0.0473 1.8554-0.62433 1.0813 0.46733-0.15836 0.67752-0.90508-0.0577-0.86727-0.86169 0.32798-0.49311 1.6295 0.25772 1.8808 0.71628 0.34674 1.6137-0.30285 1.5227-1.0869 0.0733-1.1334-0.75524-2.3676-1.9525-2.4204-1.2813-0.24958-2.727 0.4999-3.0402 1.8142-0.43151 1.1314 0.27896 2.2662 1.0551 3.0447 0.91076 0.98537 1.8001 1.9916 2.7018 2.985z" fill="#f00"/>
|
||||
<path d="m-428.86-22.458c8e-3 -2.1947 0.012-4.3894 0.0201-6.5841-1.356-1.553-2.7839-3.046-4.0921-4.6391-0.4374-0.54095-0.77164-1.181-0.74606-1.8954-0.036-1.3281 0.79082-2.6298 2.0264-3.1348 0.95151-0.42136 2.0903-0.46194 3.022 0.03768 1.2998 0.66198 1.9155 2.4493 1.2087 3.7417-0.54185 0.79964-1.9325 0.78325-2.3809-0.10621-0.43247-0.56653-0.40691-1.7268 0.41575-1.8879 0.66914-0.01363 0.83223 0.96617 0.0962 1.0053-0.16353 0.63656 1.1345 0.49025 1.0924-0.18221 0.16593-0.92802-0.8623-1.6839-1.7291-1.5091-0.97624 0.09675-1.834 1.1261-1.4963 2.1064 0.35552 0.96342 1.2138 1.6073 1.8524 2.3761 1.0266 1.1181 2.05 2.2391 3.0765 3.3574-8e-3 2.445-0.012 4.89-0.0201 7.335-0.78189-0.0068-1.5639-0.01403-2.3458-0.02044z"/>
|
||||
<path d="m-429.09-21.883-6.584 0.02044c-1.5531-1.356-3.0461-2.7839-4.6392-4.092-0.54093-0.43739-1.181-0.77164-1.8954-0.74605-1.3281-0.03447-2.6298 0.79084-3.1348 2.0263-0.42133 0.95153-0.46193 2.0903 0.036 3.0221 0.66201 1.2998 2.4493 1.9155 3.7417 1.2087 0.79964-0.54184 0.78325-1.9325-0.10621-2.381-0.56654-0.43248-1.7268-0.40688-1.8879 0.41576-0.012 0.66918 0.96618 0.83223 1.0053 0.09607 0.63656-0.16373 0.49027 1.1345-0.18236 1.0924-0.92803 0.16585-1.6839-0.86229-1.5092-1.7291 0.0966-0.97624 1.1261-1.834 2.1064-1.4963 0.96341 0.35556 1.6073 1.2139 2.376 1.8524 1.1181 1.0266 2.2391 2.05 3.3574 3.0765l9.8442-0.02044c-1.143-0.9713-1.4343-1.4219-2.5296-2.3458z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 48 KiB |
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="24.78mm" height="24.78mm" version="1.1" viewBox="0 0 24.780247 24.780247" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<linearGradient id="linearGradient955" x1="66.618" x2="82.588" y1="81.176" y2="64.828" gradientTransform="matrix(.82538 0 0 .82538 -392 -92.399)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#0aa70b" offset="0"/>
|
||||
<stop stop-color="#3bff39" offset="1"/>
|
||||
</linearGradient>
|
||||
<filter id="filter945" x="-.0516" y="-.0516" width="1.1032" height="1.1032" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.58510713"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g transform="translate(342.15 43.638)">
|
||||
<circle transform="matrix(.82538 0 0 .82538 -392 -92.399)" cx="75.406" cy="74.089" r="13.607" filter="url(#filter945)" stroke="#000" stroke-linecap="round" stroke-width="1.565"/>
|
||||
<circle cx="-330.23" cy="-31.716" r="11.231" fill="url(#linearGradient955)" stroke="#000" stroke-linecap="round" stroke-width="1.2917"/>
|
||||
<g transform="matrix(.70929 0 0 .70929 -99.465 -12.686)" stroke-width=".51676px" style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="Strict">
|
||||
<path d="m-330.78-33.775q0 0.73996-0.53676 1.154-0.53676 0.41407-1.4569 0.41407-0.99684 0-1.5336-0.25688v-0.62878q0.34506 0.14569 0.75147 0.23004 0.4064 0.08435 0.80514 0.08435 0.65177 0 0.9815-0.24538 0.32972-0.24921 0.32972-0.69012 0-0.29138-0.11885-0.47542-0.11502-0.18787-0.39107-0.34506-0.27221-0.15719-0.83198-0.35656-0.78213-0.27988-1.1195-0.66328-0.33356-0.3834-0.33356-1.0007 0-0.64794 0.48692-1.0313 0.48691-0.3834 1.2882-0.3834 0.83581 0 1.5374 0.30672l-0.2032 0.56743q-0.69395-0.29138-1.3496-0.29138-0.51759 0-0.80897 0.22237t-0.29138 0.61727q0 0.29138 0.10735 0.47925 0.10735 0.18403 0.36039 0.34123 0.25688 0.15336 0.78214 0.34122 0.88182 0.31439 1.2115 0.67478 0.33356 0.3604 0.33356 0.93549z"/>
|
||||
<path d="m-328.37-32.732q0.16869 0 0.32589-0.023 0.15719-0.02684 0.24921-0.05368v0.48692q-0.10352 0.04984-0.30672 0.08051-0.19937 0.03451-0.3604 0.03451-1.2192 0-1.2192-1.2844v-2.4998h-0.60194v-0.30672l0.60194-0.26455 0.26838-0.89716h0.36807v0.97384h1.2192v0.49458h-1.2192v2.4729q0 0.37957 0.18019 0.58277 0.1802 0.2032 0.49459 0.2032z"/>
|
||||
<path d="m-325.04-36.562q0.27989 0 0.50226 0.04601l-0.0882 0.59044q-0.26072-0.05751-0.46008-0.05751-0.50993 0-0.87415 0.41407-0.3604 0.41407-0.3604 1.0313v2.2544h-0.63644v-4.2021h0.52525l0.0729 0.7783h0.0307q0.23388-0.41024 0.5636-0.63261 0.32972-0.22237 0.72462-0.22237z"/>
|
||||
<path d="m-323.11-32.284h-0.63644v-4.2021h0.63644zm-0.69012-5.3408q0-0.21854 0.10735-0.31822 0.10735-0.10352 0.26838-0.10352 0.15336 0 0.26455 0.10352 0.11118 0.10352 0.11118 0.31822 0 0.2147-0.11118 0.32206-0.11119 0.10352-0.26455 0.10352-0.16103 0-0.26838-0.10352-0.10735-0.10735-0.10735-0.32206z"/>
|
||||
<path d="m-320.07-32.207q-0.91249 0-1.4147-0.55976-0.49842-0.5636-0.49842-1.5911 0-1.0543 0.50609-1.6294 0.50992-0.5751 1.4492-0.5751 0.30288 0 0.60577 0.06518 0.30288 0.06518 0.47541 0.15336l-0.19553 0.54059q-0.21087-0.08435-0.46008-0.13802-0.24921-0.05751-0.44091-0.05751-1.2806 0-1.2806 1.6333 0 0.77447 0.31055 1.1885 0.31439 0.41407 0.92783 0.41407 0.52526 0 1.0774-0.22621v0.5636q-0.42174 0.21854-1.062 0.21854z"/>
|
||||
<path d="m-316.65-32.732q0.16869 0 0.32589-0.023 0.15719-0.02684 0.24921-0.05368v0.48692q-0.10352 0.04984-0.30672 0.08051-0.19937 0.03451-0.3604 0.03451-1.2192 0-1.2192-1.2844v-2.4998h-0.60194v-0.30672l0.60194-0.26455 0.26838-0.89716h0.36806v0.97384h1.2192v0.49458h-1.2192v2.4729q0 0.37957 0.1802 0.58277 0.1802 0.2032 0.49459 0.2032z"/>
|
||||
</g>
|
||||
<g fill="#fff">
|
||||
<g transform="matrix(.70929 0 0 .70929 -99.465 -12.686)" stroke-width=".3317px" style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="Content">
|
||||
<path d="m-332.67-30.173q-0.5931 0-0.93764 0.39622-0.34208 0.39376-0.34208 1.0804 0 0.70631 0.32977 1.0927 0.33224 0.38392 0.94503 0.38392 0.37653 0 0.85889-0.13536v0.36669q-0.37407 0.14028-0.92288 0.14028-0.7949 0-1.228-0.48236-0.43067-0.48236-0.43067-1.3708 0-0.55619 0.20672-0.97456 0.20919-0.41837 0.60049-0.64478 0.39376-0.22641 0.92533-0.22641 0.56603 0 0.98933 0.20672l-0.1772 0.35931q-0.40852-0.19196-0.81705-0.19196z"/>
|
||||
<path d="m-328.77-28.248q0 0.65955-0.33224 1.0312-0.33223 0.36915-0.91795 0.36915-0.36177 0-0.64233-0.16981-0.28055-0.16981-0.43313-0.48728-0.15259-0.31747-0.15259-0.74322 0-0.65955 0.32978-1.0262 0.32977-0.36915 0.91549-0.36915 0.56603 0 0.89827 0.37653 0.3347 0.37653 0.3347 1.0189zm-2.0549 0q0 0.51681 0.20672 0.78752 0.20673 0.27071 0.60787 0.27071t0.60787-0.26825q0.20918-0.27071 0.20918-0.78998 0-0.51435-0.20918-0.78014-0.20673-0.26825-0.61279-0.26825-0.40115 0-0.60541 0.26333-0.20426 0.26333-0.20426 0.78506z"/>
|
||||
<path d="m-326.21-26.897v-1.7449q0-0.32978-0.15012-0.4922-0.15012-0.16243-0.47005-0.16243-0.42329 0-0.62017 0.22887-0.19688 0.22887-0.19688 0.75553v1.4151h-0.40853v-2.6973h0.33223l0.0664 0.36915h0.0197q0.12551-0.19934 0.35192-0.30762 0.22642-0.11075 0.50451-0.11075 0.48728 0 0.73338 0.23626 0.2461 0.2338 0.2461 0.75061v1.7596z"/>
|
||||
<path d="m-324.09-27.185q0.10828 0 0.20918-0.01477 0.1009-0.01723 0.15997-0.03445v0.31255q-0.0665 0.03199-0.19688 0.05168-0.12797 0.02215-0.23134 0.02215-0.7826 0-0.7826-0.82444v-1.6046h-0.38637v-0.19688l0.38637-0.16981 0.17227-0.57588h0.23626v0.6251h0.7826v0.31747h-0.7826v1.5873q0 0.24364 0.11567 0.37407 0.11566 0.13043 0.31747 0.13043z"/>
|
||||
<path d="m-322.04-26.848q-0.59802 0-0.94502-0.36423-0.34454-0.36423-0.34454-1.0115 0-0.65217 0.31993-1.0361 0.32239-0.38392 0.86381-0.38392 0.50697 0 0.80229 0.3347 0.29532 0.33224 0.29532 0.87858v0.25841h-1.8581q0.0123 0.47497 0.23872 0.72107 0.22887 0.2461 0.64232 0.2461 0.4356 0 0.86135-0.18212v0.36423q-0.21657 0.09352-0.41099 0.13289-0.19195 0.04184-0.46513 0.04184zm-0.11074-2.4536q-0.32485 0-0.51927 0.21165-0.19196 0.21165-0.22642 0.58572h1.4102q0-0.38638-0.17227-0.59064-0.17227-0.20672-0.4922-0.20672z"/>
|
||||
<path d="m-318.51-26.897v-1.7449q0-0.32978-0.15012-0.4922-0.15013-0.16243-0.47006-0.16243-0.42329 0-0.62017 0.22887-0.19688 0.22887-0.19688 0.75553v1.4151h-0.40853v-2.6973h0.33224l0.0664 0.36915h0.0197q0.12552-0.19934 0.35193-0.30762 0.22641-0.11075 0.5045-0.11075 0.48728 0 0.73338 0.23626 0.2461 0.2338 0.2461 0.75061v1.7596z"/>
|
||||
<path d="m-316.4-27.185q0.10829 0 0.20919-0.01477 0.1009-0.01723 0.15996-0.03445v0.31255q-0.0664 0.03199-0.19688 0.05168-0.12797 0.02215-0.23133 0.02215-0.7826 0-0.7826-0.82444v-1.6046h-0.38638v-0.19688l0.38638-0.16981 0.17227-0.57588h0.23625v0.6251h0.7826v0.31747h-0.7826v1.5873q0 0.24364 0.11567 0.37407 0.11567 0.13043 0.31747 0.13043z"/>
|
||||
</g>
|
||||
<g transform="matrix(.70929 0 0 .70929 -99.465 -12.686)" stroke-width=".32428px" style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="Security">
|
||||
<path d="m-332.03-22.859q0 0.46434-0.33683 0.72417-0.33682 0.25984-0.91423 0.25984-0.62553 0-0.96236-0.1612v-0.39456q0.21653 0.09142 0.47155 0.14435 0.25503 0.05293 0.50524 0.05293 0.409 0 0.61591-0.15398 0.20691-0.15638 0.20691-0.43306 0-0.18285-0.0746-0.29833-0.0722-0.11789-0.2454-0.21653-0.17082-0.09864-0.52208-0.22375-0.4908-0.17563-0.70252-0.41622-0.20931-0.24059-0.20931-0.62794 0-0.4066 0.30555-0.64718t0.80838-0.24059q0.52448 0 0.96476 0.19247l-0.12751 0.35607q-0.43547-0.18285-0.84687-0.18285-0.3248 0-0.50765 0.13954-0.18284 0.13954-0.18284 0.38735 0 0.18285 0.0674 0.30074 0.0674 0.11548 0.22615 0.21412 0.1612 0.09624 0.4908 0.21412 0.55336 0.19728 0.76027 0.42344 0.20931 0.22615 0.20931 0.58704z"/>
|
||||
<path d="m-330.26-21.875q-0.58463 0-0.92386-0.35607-0.33683-0.35607-0.33683-0.98882 0-0.63756 0.31277-1.0129 0.31517-0.37532 0.84446-0.37532 0.49562 0 0.78432 0.3272 0.28871 0.3248 0.28871 0.8589v0.25262h-1.8164q0.012 0.46434 0.23338 0.70492 0.22374 0.24059 0.62793 0.24059 0.42584 0 0.84206-0.17804v0.35607q-0.21171 0.09142-0.40178 0.12992-0.18766 0.0409-0.45471 0.0409zm-0.10827-2.3987q-0.31757 0-0.50764 0.20691-0.18766 0.20691-0.22134 0.5726h1.3786q0-0.37772-0.16841-0.57741-0.16841-0.2021-0.48118-0.2021z"/>
|
||||
<path d="m-327.56-21.875q-0.5726 0-0.88777-0.35126-0.31277-0.35366-0.31277-0.99844 0-0.66162 0.31758-1.0225 0.31998-0.36088 0.90942-0.36088 0.19007 0 0.38013 0.0409 0.19007 0.0409 0.29833 0.09624l-0.1227 0.33923q-0.13232-0.05293-0.2887-0.08661-0.15639-0.03609-0.27668-0.03609-0.80357 0-0.80357 1.0249 0 0.48599 0.19488 0.74582 0.19728 0.25984 0.58223 0.25984 0.3296 0 0.67605-0.14195v0.35366q-0.26465 0.13714-0.66643 0.13714z"/>
|
||||
<path d="m-325.89-24.56v1.7106q0 0.32239 0.14676 0.48118 0.14675 0.15879 0.45952 0.15879 0.41381 0 0.60388-0.22615 0.19247-0.22615 0.19247-0.73861v-1.3858h0.39938v2.6369h-0.32961l-0.0577-0.35367h-0.0217q-0.1227 0.19488-0.34163 0.29833-0.21653 0.10345-0.49561 0.10345-0.48118 0-0.72177-0.22856-0.23818-0.22856-0.23818-0.73139v-1.725z"/>
|
||||
<path d="m-322.04-24.608q0.17563 0 0.31517 0.02887l-0.0553 0.37051q-0.1636-0.03609-0.2887-0.03609-0.31999 0-0.54855 0.25984-0.22615 0.25984-0.22615 0.64718v1.4147h-0.39938v-2.6369h0.32961l0.0457 0.4884h0.0192q0.14676-0.25743 0.35366-0.39697 0.20691-0.13954 0.45472-0.13954z"/>
|
||||
<path d="m-320.83-21.923h-0.39938v-2.6369h0.39938zm-0.43306-3.3514q0-0.13714 0.0674-0.19969 0.0674-0.06496 0.16841-0.06496 0.0962 0 0.16601 0.06496 0.0698 0.06496 0.0698 0.19969 0 0.13473-0.0698 0.2021-0.0698 0.06496-0.16601 0.06496-0.10105 0-0.16841-0.06496-0.0674-0.06736-0.0674-0.2021z"/>
|
||||
<path d="m-319.13-22.205q0.10586 0 0.2045-0.01443 0.0986-0.01684 0.15638-0.03368v0.30555q-0.065 0.03128-0.19247 0.05052-0.1251 0.02165-0.22615 0.02165-0.76507 0-0.76507-0.80597v-1.5686h-0.37773v-0.19247l0.37773-0.16601 0.16841-0.56298h0.23096v0.6111h0.76508v0.31036h-0.76508v1.5518q0 0.23818 0.11308 0.3657t0.31036 0.12751z"/>
|
||||
<path d="m-318.66-24.56h0.42825l0.57742 1.5037q0.19006 0.51486 0.23577 0.74342h0.0192q0.0313-0.1227 0.12992-0.41862 0.10105-0.29833 0.6544-1.8285h0.42825l-1.1332 3.0025q-0.16841 0.44509-0.39456 0.63034-0.22375 0.18766-0.55095 0.18766-0.18285 0-0.36088-0.0409v-0.31998q0.13232 0.02887 0.29592 0.02887 0.41141 0 0.58704-0.46193l0.14676-0.37532z"/>
|
||||
</g>
|
||||
<g transform="matrix(.70929 0 0 .70929 -99.465 -12.686)" stroke-width=".32334px" style="font-feature-settings:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal" aria-label="Policy">
|
||||
<path d="m-329.37-19.254q0 0.53256-0.36464 0.82043-0.36224 0.28547-1.0387 0.28547h-0.41261v1.3794h-0.40782v-3.5072h0.90919q1.3146 0 1.3146 1.0219zm-1.816 0.75566h0.36703q0.54215 0 0.78445-0.17512 0.24229-0.17512 0.24229-0.56135 0-0.34784-0.2279-0.51817t-0.71008-0.17032h-0.45579z"/>
|
||||
<path d="m-326.43-18.086q0 0.64291-0.32386 1.0051-0.32385 0.35984-0.89479 0.35984-0.35264 0-0.62612-0.16552t-0.42221-0.47498q-0.14873-0.30946-0.14873-0.72447 0-0.64291 0.32145-1.0003 0.32146-0.35984 0.8924-0.35984 0.55175 0 0.8756 0.36703 0.32626 0.36704 0.32626 0.99315zm-2.0031 0q0 0.50377 0.20151 0.76765t0.59253 0.26388q0.39103 0 0.59254-0.26148 0.2039-0.26388 0.2039-0.77005 0-0.50137-0.2039-0.76046-0.20151-0.26148-0.59733-0.26148-0.39103 0-0.59014 0.25668-0.19911 0.25668-0.19911 0.76525z"/>
|
||||
<path d="m-325.33-16.769h-0.39822v-3.7327h0.39822z"/>
|
||||
<path d="m-324.09-16.769h-0.39822v-2.6292h0.39822zm-0.43181-3.3417q0-0.13674 0.0672-0.19911 0.0672-0.06477 0.16793-0.06477 0.0959 0 0.16552 0.06477 0.0696 0.06477 0.0696 0.19911t-0.0696 0.20151q-0.0696 0.06477-0.16552 0.06477-0.10076 0-0.16793-0.06477-0.0672-0.06717-0.0672-0.20151z"/>
|
||||
<path d="m-322.19-16.721q-0.57094 0-0.8852-0.35024-0.31186-0.35264-0.31186-0.99555 0-0.6597 0.31666-1.0195 0.31906-0.35984 0.90679-0.35984 0.18951 0 0.37903 0.04078 0.18951 0.04078 0.29746 0.09596l-0.12234 0.33825q-0.13194-0.05278-0.28787-0.08636-0.15593-0.03598-0.27588-0.03598-0.80123 0-0.80123 1.0219 0 0.48458 0.19431 0.74366 0.19671 0.25908 0.58054 0.25908 0.32865 0 0.67409-0.14154v0.35264q-0.26388 0.13674-0.6645 0.13674z"/>
|
||||
<path d="m-321.31-19.398h0.427l0.57574 1.4993q0.18952 0.51337 0.2351 0.74127h0.0192q0.0312-0.12234 0.12954-0.41741 0.10076-0.29747 0.65251-1.8232h0.427l-1.1299 2.9938q-0.16792 0.4438-0.39342 0.62852-0.2231 0.18712-0.54935 0.18712-0.18232 0-0.35984-0.04078v-0.31906q0.13194 0.02879 0.29507 0.02879 0.41021 0 0.58533-0.46059l0.14634-0.37423z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1 @@
|
|||
git doesn't support empty dirs...
|
|
@ -390,7 +390,7 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
break;
|
||||
|
||||
case LWS_CALLBACK_PROTOCOL_DESTROY:
|
||||
lwsac_reference(vhd->lwsac_head);
|
||||
lwsac_free(&vhd->lwsac_head);
|
||||
break;
|
||||
|
||||
/* WS-related */
|
||||
|
@ -405,7 +405,8 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
m = lws_hdr_copy(wsi, pss->user, sizeof(pss->user),
|
||||
WSI_TOKEN_HTTP_AUTHORIZATION);
|
||||
if (m > 0)
|
||||
lwsl_info("basic auth user: %s\n", pss->user);
|
||||
lwsl_info("%s: basic auth user: %s\n",
|
||||
__func__, pss->user);
|
||||
else
|
||||
pss->user[0] = '\0';
|
||||
|
||||
|
@ -440,7 +441,8 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
|
||||
if ((int)strlen(pss->user) != n ||
|
||||
memcmp(pss->user, ((const char *)in) + 8, n)) {
|
||||
lwsl_notice("%s: del: auth mismatch '%s' '%s' (%d)\n",
|
||||
lwsl_notice("%s: del: auth mismatch "
|
||||
" '%s' '%s' (%d)\n",
|
||||
__func__, pss->user,
|
||||
((const char *)in) + 8, n);
|
||||
break;
|
||||
|
@ -497,7 +499,10 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
if (!pss->dire) {
|
||||
p += lws_snprintf((char *)p, lws_ptr_diff(end, p),
|
||||
"]}");
|
||||
lwsac_unreference(&pss->lwsac_head);
|
||||
if (pss->lwsac_head) {
|
||||
lwsac_unreference(&pss->lwsac_head);
|
||||
pss->lwsac_head = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
n = lws_write(wsi, start, lws_ptr_diff(p, start),
|
||||
|
@ -516,7 +521,7 @@ callback_deaddrop(struct lws *wsi, enum lws_callback_reasons reason,
|
|||
/* ie, we finished */
|
||||
|
||||
if (pss->filelist_version != pss->vhd->filelist_version) {
|
||||
lwsl_notice("restart send\n");
|
||||
lwsl_info("%s: restart send\n", __func__);
|
||||
/* what we just sent is already out of date */
|
||||
start_sending_dir(pss);
|
||||
lws_callback_on_writable(wsi);
|
||||
|
|
Loading…
Add table
Reference in a new issue