This is an automated email from the ASF dual-hosted git repository.

moonming pushed a commit to branch feat/plugin-logos-and-homepage
in repository https://gitbox.apache.org/repos/asf/apisix-website.git

commit 7e378c9ed2d6aff5a99e42bb9cdc76e39c726268
Author: Ming Wen <[email protected]>
AuthorDate: Wed Jun 24 20:28:48 2026 +0800

    feat(website): show real logos on the Plugin Hub
    
    Most plugins fell back to a single grey placeholder because adding an
    icon meant regenerating the iconfont sprite (js/plugin-icon.js), so
    newer plugins were all flagged `useDefaultIcon`.
    
    Decouple icons from that sprite: a plugin can now declare a `logo` path
    that renders as an <img>, with a graceful onError fallback. As a result
    no plugin shows the empty placeholder any more:
    
    - 23 plugins now use their real brand logo (OpenTelemetry, Kafka, gRPC,
      GraphQL, Dubbo, OpenWhisk, OpenFunction, Elasticsearch, ClickHouse,
      Grafana Loki, Splunk, RocketMQ, AWS Lambda, Azure Functions, OPA,
      Brotli, SafeLine, OpenAPI, MQTT, Alibaba Cloud, AWS).
    - The 8 built-in AI plugins share a new on-brand AI glyph.
    - Other built-in plugins use the APISIX logo instead of the placeholder.
    
    The 39 existing sprite icons are untouched. Also reorder the plugin
    categories so Traffic leads and General is last.
---
 website/src/pages/plugins.tsx                      |   49 +-
 website/static/data/plugins.json                   |  244 +--
 website/static/img/integrations/alibabacloud.svg   |    1 +
 website/static/img/integrations/aws.svg            |    7 +
 website/static/img/integrations/awslambda.svg      |   14 +
 website/static/img/integrations/azurefunctions.svg |    1 +
 website/static/img/integrations/brotli.svg         |    9 +
 website/static/img/integrations/dubbo.svg          |    7 +
 website/static/img/integrations/graphql.svg        |    1 +
 website/static/img/integrations/grpc.svg           |    1 +
 website/static/img/integrations/kafka.svg          |    1 +
 website/static/img/integrations/mqtt.svg           |    1 +
 website/static/img/integrations/opa.svg            |    1 +
 website/static/img/integrations/openapi.svg        |    1 +
 website/static/img/integrations/openfunction.svg   |    4 +
 website/static/img/integrations/openwhisk.svg      | 1832 ++++++++++++++++++++
 website/static/img/integrations/rocketmq.svg       |    1 +
 website/static/img/integrations/safeline.svg       |   45 +
 website/static/img/integrations/skywalking.svg     |   18 +
 website/static/img/integrations/splunk.svg         |    1 +
 website/static/img/plugin/ai.svg                   |   10 +
 website/static/img/plugin/apisix.svg               |   15 +
 22 files changed, 2134 insertions(+), 130 deletions(-)

diff --git a/website/src/pages/plugins.tsx b/website/src/pages/plugins.tsx
index 594d1a51f66..7c9941cb202 100644
--- a/website/src/pages/plugins.tsx
+++ b/website/src/pages/plugins.tsx
@@ -191,9 +191,48 @@ const SBeta = styled.div`
   }
 `;
 
+interface PluginEntry {
+  name: string;
+  description?: string;
+  logo?: string;
+  useDefaultIcon?: boolean;
+  beta?: boolean;
+}
+
+interface PluginGroup {
+  groupName: string;
+  plugins: PluginEntry[];
+}
+
+const renderPluginIcon = (plugin: PluginEntry): JSX.Element => {
+  if (plugin.logo) {
+    return (
+      <img
+        className="plugin-logo shadow"
+        src={plugin.logo}
+        alt={plugin.name}
+        loading="lazy"
+        onError={(e) => {
+          e.currentTarget.onerror = null;
+          e.currentTarget.src = '/img/plugin/default-icon.png';
+          e.currentTarget.classList.add('default');
+        }}
+      />
+    );
+  }
+  if (plugin.useDefaultIcon) {
+    return <img className="plugin-logo shadow" src="/img/plugin/apisix.svg" 
alt={plugin.name} loading="lazy" />;
+  }
+  return (
+    <svg className="plugin-logo shadow" aria-hidden="true">
+      <use xlinkHref={`#icon${plugin.name}`} />
+    </svg>
+  );
+};
+
 const Plugins: FC = () => {
   const { siteConfig } = useDocusaurusContext();
-  const { plugins = [] } = siteConfig.customFields as { plugins: any[] };
+  const { plugins = [] } = siteConfig.customFields as { plugins: PluginGroup[] 
};
   const sidebar = plugins.map((section) => (
     <SidebarItem key={section.groupName}><a className="sidebar-link" 
href={`#${section.groupName}`}>{section.groupName}</a></SidebarItem>
   ));
@@ -205,13 +244,7 @@ const Plugins: FC = () => {
         <div key={plugin.name}>
           <PluginCard href={plugin.beta ? 
`/docs/apisix/next/plugins/${pluginUrl}` : `/docs/apisix/plugins/${pluginUrl}`} 
target="_blank">
             <PluginIcon>
-              {plugin.useDefaultIcon
-                ? <img className="plugin-logo shadow default" 
src="/img/plugin/default-icon.png" alt={plugin.name} />
-                : (
-                  <svg className="plugin-logo shadow" aria-hidden="true">
-                    <use xlinkHref={`#icon${plugin.name}`} />
-                  </svg>
-                )}
+              {renderPluginIcon(plugin)}
             </PluginIcon>
             <PluginName>
               {plugin.name}
diff --git a/website/static/data/plugins.json b/website/static/data/plugins.json
index 9bbf985b7d8..f07a72d080f 100644
--- a/website/static/data/plugins.json
+++ b/website/static/data/plugins.json
@@ -1,64 +1,61 @@
 [
   {
-    "groupName": "General",
+    "groupName": "Traffic",
     "plugins": [
       {
-        "name": "batch-requests",
-        "description": "The batch-requests plugin accepts multiple requests, 
sends them from APISIX via HTTP pipelining, and returns an aggregated response 
to the client"
+        "name": "limit-req",
+        "description": "The plugin limits request rate using the leaky bucket 
method"
       },
       {
-        "name": "redirect",
-        "description": "The redirect Plugin can be used to configure 
redirects",
-        "useDefaultIcon": true
+        "name": "limit-conn",
+        "description": "The plugin limits request concurrency"
       },
       {
-        "name": "echo",
-        "description": "The echo Plugin is to help users understand how they 
can develop an APISIX Plugin",
-        "useDefaultIcon": true
+        "name": "limit-count",
+        "description": "The plugin Limits request rate by a fixed number of 
requests in a given time window"
       },
       {
-        "name": "gzip",
-        "description": "The gzip Plugin dynamically sets the behavior of gzip 
in Nginx",
-        "useDefaultIcon": true
+        "name": "proxy-cache",
+        "description": "The proxy-cache Plugin can be used to cache the 
response from the Upstream"
       },
       {
-        "name": "brotli",
-        "description": "The brotli Plugin dynamically configures Brotli 
compression in NGINX",
-        "useDefaultIcon": true
+        "name": "request-validation",
+        "description": "The request-validation Plugin can be used to validate 
the requests before forwarding them to an Upstream service"
       },
       {
-        "name": "real-ip",
-        "description": "The real-ip Plugin is used to dynamically change the 
client's IP address and port as seen by APISIX",
-        "useDefaultIcon": true
+        "name": "proxy-mirror",
+        "description": "The proxy-mirror Plugin can be used to mirror client 
requests"
       },
       {
-        "name": "server-info",
-        "description": "The server-info Plugin periodically reports basic 
server information to etcd",
-        "useDefaultIcon": true
+        "name": "api-breaker",
+        "description": "The api-breaker Plugin implements circuit breaker 
functionality to protect Upstream services"
       },
       {
-        "name": "inspect",
-        "description": "The inspect Plugin exposes runtime inspection 
information for APISIX",
-        "useDefaultIcon": true
+        "name": "traffic-split",
+        "description": "The traffic split plugin allows users to incrementally 
direct percentages of traffic between various upstreams"
       },
       {
-        "name": "lago",
-        "description": "The lago Plugin reports usage and billing events to 
Lago",
+        "name": "request-id",
+        "description": "The request-id Plugin adds a unique ID to each request 
proxied through APISIX"
+      },
+      {
+        "name": "attach-consumer-label",
+        "description": "The attach-consumer-label Plugin injects labels from 
the authenticated consumer into the request context",
         "useDefaultIcon": true
       },
       {
-        "name": "ext-plugin-pre-req",
-        "description": "The ext-plugin-pre-req Plugin is for running specific 
external Plugins in the Plugin Runner before executing the built-in Lua 
Plugins",
+        "name": "proxy-control",
+        "description": "The proxy-control Plugin dynamically controls the 
behavior of the NGINX proxy",
         "useDefaultIcon": true
       },
       {
-        "name": "ext-plugin-post-req",
-        "description": "ext-plugin-post-req differs from the 
ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua 
Plugins and before proxying to the Upstream",
+        "name": "client-control",
+        "description": "The client-control Plugin can be used to dynamically 
control the behavior of NGINX to handle a client request, by setting the max 
size of the request body",
         "useDefaultIcon": true
       },
       {
-        "name": "ext-plugin-post-resp",
-        "description": "The ext-plugin-post-resp Plugin is for running 
specific external Plugins in the Plugin Runner before executing the built-in 
Lua Plugins",
+        "name": "traffic-label",
+        "description": "The traffic-label Plugin evaluates labels on requests 
for traffic governance and routing",
         "useDefaultIcon": true
       }
     ]
@@ -81,7 +78,7 @@
       {
         "name": "grpc-web",
         "description": "The grpc-web Plugin is a proxy Plugin that can process 
gRPC Web requests from JavaScript clients to a gRPC service",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/grpc.svg"
       },
       {
         "name": "body-transformer",
@@ -91,7 +88,7 @@
       {
         "name": "degraphql",
         "description": "The degraphql Plugin translates GraphQL queries into 
upstream REST requests",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/graphql.svg"
       },
       {
         "name": "exit-transformer",
@@ -177,7 +174,7 @@
       {
         "name": "opa",
         "description": "An authorization plugin can be used to integrate with 
Open Policy Agent",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/opa.svg"
       },
       {
         "name": "forward-auth",
@@ -222,12 +219,12 @@
       {
         "name": "chaitin-waf",
         "description": "The chaitin-waf Plugin integrates Chaitin SafeLine WAF 
inspection with APISIX",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/safeline.svg"
       },
       {
         "name": "oas-validator",
         "description": "The oas-validator Plugin validates requests against an 
OpenAPI specification",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/openapi.svg"
       },
       {
         "name": "ocsp-stapling",
@@ -241,119 +238,58 @@
       }
     ]
   },
-  {
-    "groupName": "Traffic",
-    "plugins": [
-      {
-        "name": "limit-req",
-        "description": "The plugin limits request rate using the leaky bucket 
method"
-      },
-      {
-        "name": "limit-conn",
-        "description": "The plugin limits request concurrency"
-      },
-      {
-        "name": "limit-count",
-        "description": "The plugin Limits request rate by a fixed number of 
requests in a given time window"
-      },
-      {
-        "name": "proxy-cache",
-        "description": "The proxy-cache Plugin can be used to cache the 
response from the Upstream"
-      },
-      {
-        "name": "request-validation",
-        "description": "The request-validation Plugin can be used to validate 
the requests before forwarding them to an Upstream service"
-      },
-      {
-        "name": "proxy-mirror",
-        "description": "The proxy-mirror Plugin can be used to mirror client 
requests"
-      },
-      {
-        "name": "api-breaker",
-        "description": "The api-breaker Plugin implements circuit breaker 
functionality to protect Upstream services"
-      },
-      {
-        "name": "traffic-split",
-        "description": "The traffic split plugin allows users to incrementally 
direct percentages of traffic between various upstreams"
-      },
-      {
-        "name": "request-id",
-        "description": "The request-id Plugin adds a unique ID to each request 
proxied through APISIX"
-      },
-      {
-        "name": "attach-consumer-label",
-        "description": "The attach-consumer-label Plugin injects labels from 
the authenticated consumer into the request context",
-        "useDefaultIcon": true
-      },
-      {
-        "name": "proxy-control",
-        "description": "The proxy-control Plugin dynamically controls the 
behavior of the NGINX proxy",
-        "useDefaultIcon": true
-      },
-      {
-        "name": "client-control",
-        "description": "The client-control Plugin can be used to dynamically 
control the behavior of NGINX to handle a client request, by setting the max 
size of the request body",
-        "useDefaultIcon": true
-      },
-      {
-        "name": "traffic-label",
-        "description": "The traffic-label Plugin evaluates labels on requests 
for traffic governance and routing",
-        "useDefaultIcon": true
-      }
-    ]
-  },
   {
     "groupName": "AI",
     "plugins": [
       {
         "name": "ai-proxy",
         "description": "The ai-proxy Plugin simplifies proxying requests to 
LLM providers compatible with the OpenAI API format",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-proxy-multi",
         "description": "The ai-proxy-multi Plugin extends ai-proxy with load 
balancing, retries, fallbacks, and health checks for LLM providers",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-request-rewrite",
         "description": "The ai-request-rewrite Plugin rewrites client requests 
with LLM-generated content before proxying upstream",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-rate-limiting",
         "description": "The ai-rate-limiting Plugin limits LLM usage by 
tracking and throttling token consumption",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-prompt-decorator",
         "description": "The ai-prompt-decorator Plugin prepends and appends 
predefined prompts to user input",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-prompt-template",
         "description": "The ai-prompt-template Plugin applies predefined 
prompt templates and accepts values for declared variables",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-prompt-guard",
         "description": "The ai-prompt-guard Plugin validates prompts against 
allow and deny patterns before forwarding them to LLM services",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       },
       {
         "name": "ai-aws-content-moderation",
         "description": "The ai-aws-content-moderation Plugin uses AWS 
Comprehend to detect and block toxic request content",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/aws.svg"
       },
       {
         "name": "ai-aliyun-content-moderation",
         "description": "The ai-aliyun-content-moderation Plugin uses Alibaba 
Cloud content moderation to inspect and block unsafe requests",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/alibabacloud.svg"
       },
       {
         "name": "ai-rag",
         "description": "The ai-rag Plugin adds retrieval-augmented generation 
by fetching relevant context from external data sources",
-        "useDefaultIcon": true
+        "logo": "/img/plugin/ai.svg"
       }
     ]
   },
@@ -371,7 +307,7 @@
       {
         "name": "opentelemetry",
         "description": "The opentelemetry Plugin can be used to report tracing 
data according to the OpenTelemetry specification",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/opentelemetry.svg"
       },
       {
         "name": "prometheus",
@@ -393,7 +329,7 @@
       {
         "name": "skywalking-logger",
         "description": "The skywalking-logger Plugin can be used to push 
access log data to SkyWalking OAP server of HTTP",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/skywalking.svg"
       },
       {
         "name": "tcp-logger",
@@ -406,7 +342,7 @@
       {
         "name": "rocketmq-logger",
         "description": "The rocketmq-logger Plugin provides the ability to 
push logs as JSON objects to your RocketMQ clusters",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/rocketmq.svg"
       },
       {
         "name": "udp-logger",
@@ -415,7 +351,7 @@
       {
         "name": "clickhouse-logger",
         "description": "The clickhouse-logger Plugin is used to push logs to 
ClickHouse database",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/clickhouse.svg"
       },
       {
         "name": "syslog",
@@ -441,7 +377,7 @@
       {
         "name": "splunk-hec-logging",
         "description": "The splunk-hec-logging Plugin is used to forward logs 
to Splunk HTTP Event Collector (HEC) for analysis and storage",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/splunk.svg"
       },
       {
         "name": "file-logger",
@@ -456,12 +392,12 @@
       {
         "name": "loki-logger",
         "description": "The loki-logger Plugin pushes access logs to Grafana 
Loki",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/grafana.svg"
       },
       {
         "name": "elasticsearch-logger",
         "description": "The elasticsearch-logger Plugin is used to forward 
logs to Elasticsearch for analysis and storage",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/elasticsearch.svg"
       },
       {
         "name": "tencent-cloud-cls",
@@ -481,17 +417,17 @@
       {
         "name": "azure-functions",
         "description": "The azure-functions Plugin is used to integrate APISIX 
with Azure Serverless Function as a dynamic upstream to proxy all requests for 
a particular URI to the Microsoft Azure Cloud",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/azurefunctions.svg"
       },
       {
         "name": "openwhisk",
         "description": "The openwhisk Plugin is used to integrate APISIX with 
the Apache OpenWhisk serverless platform",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/openwhisk.svg"
       },
       {
         "name": "aws-lambda",
         "description": "The aws-lambda Plugin is used for integrating APISIX 
with AWS Lambda as a dynamic upstream to proxy all requests for a particular 
URI to the AWS Cloud",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/awslambda.svg"
       },
       {
         "name": "workflow",
@@ -501,7 +437,7 @@
       {
         "name": "openfunction",
         "description": "The openfunction Plugin is used to integrate APISIX 
with CNCF OpenFunction serverless platform",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/openfunction.svg"
       }
     ]
   },
@@ -511,21 +447,85 @@
       {
         "name": "dubbo-proxy",
         "description": "The dubbo-proxy Plugin allows you to proxy HTTP 
requests to Apache Dubbo",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/dubbo.svg"
       },
       {
         "name": "http-dubbo",
         "description": "The http-dubbo Plugin proxies HTTP requests to Apache 
Dubbo services",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/dubbo.svg"
       },
       {
         "name": "mqtt-proxy",
         "description": "The mqtt-proxy Plugin is used for dynamic load 
balancing with client_id of MQTT. It only works in stream mode",
-        "useDefaultIcon": true
+        "logo": "/img/integrations/mqtt.svg"
       },
       {
         "name": "kafka-proxy",
         "description": "The kafka-proxy plugin can be used to configure 
advanced parameters for the kafka upstream of Apache APISIX, such as SASL 
authentication",
+        "logo": "/img/integrations/kafka.svg"
+      }
+    ]
+  },
+  {
+    "groupName": "General",
+    "plugins": [
+      {
+        "name": "batch-requests",
+        "description": "The batch-requests plugin accepts multiple requests, 
sends them from APISIX via HTTP pipelining, and returns an aggregated response 
to the client"
+      },
+      {
+        "name": "redirect",
+        "description": "The redirect Plugin can be used to configure 
redirects",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "echo",
+        "description": "The echo Plugin is to help users understand how they 
can develop an APISIX Plugin",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "gzip",
+        "description": "The gzip Plugin dynamically sets the behavior of gzip 
in Nginx",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "brotli",
+        "description": "The brotli Plugin dynamically configures Brotli 
compression in NGINX",
+        "logo": "/img/integrations/brotli.svg"
+      },
+      {
+        "name": "real-ip",
+        "description": "The real-ip Plugin is used to dynamically change the 
client's IP address and port as seen by APISIX",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "server-info",
+        "description": "The server-info Plugin periodically reports basic 
server information to etcd",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "inspect",
+        "description": "The inspect Plugin exposes runtime inspection 
information for APISIX",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "lago",
+        "description": "The lago Plugin reports usage and billing events to 
Lago",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "ext-plugin-pre-req",
+        "description": "The ext-plugin-pre-req Plugin is for running specific 
external Plugins in the Plugin Runner before executing the built-in Lua 
Plugins",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "ext-plugin-post-req",
+        "description": "ext-plugin-post-req differs from the 
ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua 
Plugins and before proxying to the Upstream",
+        "useDefaultIcon": true
+      },
+      {
+        "name": "ext-plugin-post-resp",
+        "description": "The ext-plugin-post-resp Plugin is for running 
specific external Plugins in the Plugin Runner before executing the built-in 
Lua Plugins",
         "useDefaultIcon": true
       }
     ]
diff --git a/website/static/img/integrations/alibabacloud.svg 
b/website/static/img/integrations/alibabacloud.svg
new file mode 100644
index 00000000000..e0a1e9d1f9a
--- /dev/null
+++ b/website/static/img/integrations/alibabacloud.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>Alibaba Cloud</title><path d="M3.996 
4.517h5.291L8.01 6.324 4.153 7.506a1.668 1.668 0 0 0-1.165 1.601v5.786a1.668 
1.668 0 0 0 1.165 1.6l3.857 1.183 1.277 1.807H3.996A3.996 3.996 0 0 1 0 
15.487V8.513a3.996 3.996 0 0 1 3.996-3.996m16.008 0h-5.291l1.277 1.807 3.857 
1.182c.715.227 1.17.889 1.165 1.601v5.786a1.668 1.668 0 0 1-1.165 1.6l-3.857 
1.183-1.277 1.807h5.291A3.996 3.996 0 0 0 24 15.487V8.513a3.996 3.996 0 0  [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/aws.svg 
b/website/static/img/integrations/aws.svg
new file mode 100644
index 00000000000..de4948d7459
--- /dev/null
+++ b/website/static/img/integrations/aws.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256px" height="153px" viewBox="0 0 256 153" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
preserveAspectRatio="xMidYMid">
+               <g>
+                               <path d="M72.392053,55.4384106 
C72.392053,58.5748344 72.7311258,61.1178808 73.3245033,62.9827815 
C74.002649,64.8476821 74.8503311,66.8821192 76.0370861,69.0860927 
C76.4609272,69.7642384 76.6304636,70.4423841 76.6304636,71.0357616 
C76.6304636,71.8834437 76.1218543,72.7311258 75.0198675,73.5788079 
L69.6794702,77.1390728 C68.9165563,77.6476821 68.1536424,77.9019868 
67.4754967,77.9019868 C66.6278146,77.9019868 65.7801325,77.4781457 
64.9324503,76.7152318 C63.7456954,75.4437086 62.7284768, [...]
+                               <path d="M230.993377,120.964238 
C203.104636,141.562914 162.58543,152.498013 127.745695,152.498013 
C78.9192053,152.498013 34.9245033,134.442384 1.69536424,104.434437 
C-0.932450331,102.060927 1.4410596,98.8397351 4.57748344,100.704636 
C40.5192053,121.557616 84.8529801,134.188079 130.712583,134.188079 
C161.65298,134.188079 195.645033,127.745695 226.924503,114.521854 
C231.586755,112.402649 235.570861,117.57351 230.993377,120.964238 Z 
M242.606623,107.740397 C239.046358,103.162914 219.0410 [...]
+               </g>
+</svg>
diff --git a/website/static/img/integrations/awslambda.svg 
b/website/static/img/integrations/awslambda.svg
new file mode 100644
index 00000000000..c7407489abd
--- /dev/null
+++ b/website/static/img/integrations/awslambda.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
preserveAspectRatio="xMidYMid">
+    <title>AWS Lambda</title>
+    <defs>
+        <linearGradient x1="0%" y1="100%" x2="100%" y2="0%" 
id="linearGradient-1">
+            <stop stop-color="#C8511B" offset="0%"></stop>
+            <stop stop-color="#FF9900" offset="100%"></stop>
+        </linearGradient>
+    </defs>
+    <g>
+        <rect fill="url(#linearGradient-1)" x="0" y="0" width="256" 
height="256"></rect>
+        <path d="M89.6241126,211.2 L49.8903277,211.2 L93.8354832,119.3472 
L113.74728,160.3392 L89.6241126,211.2 Z M96.7029357,110.5696 
C96.1640858,109.4656 95.0414813,108.7648 93.8162384,108.7648 
L93.8066163,108.7648 C92.5717514,108.768 91.4491466,109.4752 
90.9199187,110.5856 L41.9134208,213.0208 C41.4387197,214.0128 
41.5060758,215.1776 42.0962451,216.1088 C42.6799994,217.0368 43.7063805,217.6 
44.8065331,217.6 L91.654423,217.6 C92.8957027,217.6 94.0215149,216.8864 
94.5539501,215.7696 L12 [...]
+    </g>
+</svg>
\ No newline at end of file
diff --git a/website/static/img/integrations/azurefunctions.svg 
b/website/static/img/integrations/azurefunctions.svg
new file mode 100644
index 00000000000..6c0d5a7a1cb
--- /dev/null
+++ b/website/static/img/integrations/azurefunctions.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" 
xmlns="http://www.w3.org/2000/svg";><defs><linearGradient id="azure-original-a" 
x1="60.919" y1="9.602" x2="18.667" y2="134.423" 
gradientUnits="userSpaceOnUse"><stop stop-color="#114A8B"/><stop offset="1" 
stop-color="#0669BC"/></linearGradient><linearGradient id="azure-original-b" 
x1="74.117" y1="67.772" x2="64.344" y2="71.076" 
gradientUnits="userSpaceOnUse"><stop stop-opacity=".3"/><stop offset=".071" 
stop-opacity=".2"/><stop offset=".321" stop-opacity=".1"/><st [...]
diff --git a/website/static/img/integrations/brotli.svg 
b/website/static/img/integrations/brotli.svg
new file mode 100644
index 00000000000..ed5241f8ba5
--- /dev/null
+++ b/website/static/img/integrations/brotli.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
preserveAspectRatio="xMidYMid">
+               <g>
+                               <path d="M94.8793826,251.607827 
C26.6126647,233.315815 -13.899839,163.1461 4.39217292,94.8793826 
C22.6841848,26.6126647 92.8538996,-13.899839 161.120617,4.39217292 
C229.387335,22.6841848 269.899839,92.8538996 251.607827,161.120617 
C233.315815,229.387335 163.1461,269.899839 94.8793826,251.607827 Z" 
fill="#EEAA33"></path>
+                               <path d="M101.606901,226.500386 
C88.0068357,222.85626 88.7983974,175.801986 103.374903,121.401725 
C117.951409,67.001464 140.793034,25.8554871 154.393099,29.4996137 
C167.993164,33.1437402 167.201603,80.1980135 152.625097,134.598275 
C138.048591,188.998536 115.206966,230.144513 101.606901,226.500386 Z" 
fill="#FFFFFF"></path>
+                               <path d="M176.366192,193.74588 
C169.566159,191.923817 169.96194,168.39668 177.250193,141.196549 
C184.538446,113.996419 195.959258,93.4234304 202.759291,95.2454937 
C209.559324,97.0675569 209.163543,120.594694 201.87529,147.794824 
C194.587037,174.994955 183.166225,195.567943 176.366192,193.74588 Z" 
fill="#FFFFFF"></path>
+                               <path d="M53.2407091,160.754506 
C46.4406764,158.932443 46.8364572,135.405306 54.1247102,108.205176 
C61.4129633,81.0050452 72.8337754,60.4320567 79.633808,62.25412 
C86.4338407,64.0761832 86.0380599,87.6033199 78.7498068,114.803451 
C71.4615538,142.003581 60.0407417,162.57657 53.2407091,160.754506 Z" 
fill="#FFFFFF"></path>
+               </g>
+</svg>
diff --git a/website/static/img/integrations/dubbo.svg 
b/website/static/img/integrations/dubbo.svg
new file mode 100644
index 00000000000..4b107e0ffee
--- /dev/null
+++ b/website/static/img/integrations/dubbo.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 321.39 78.54" 
version="1.1">
+    <title id="title19">DUBBO LOGO</title>
+    <path class="cls-1"
+          
d="M68.46,50.38c0,14.06,11.39,22.11,25.45,22.11s25.45-8.05,25.45-22.11V7.25H68.46Zm21.24-28h8.6V31H89.7Zm0,22.25h8.6v8.6H89.7ZM33.24,7.25H4.06v64H33.24c10.95,0,19.3-7.18,23.29-17.15a45.12,45.12,0,0,0,2.38-14.87A45.12,45.12,0,0,0,56.53,24.4C52.84,14.62,44.19,7.25,33.24,7.25Zm.43,14.63H30.34a3.44,3.44,0,0,0-3.44,3.44V53.23a3.44,3.44,0,0,0,3.44,3.44h3.33v4.63h-8.3a6.87,6.87,0,0,1-6.87-6.87V24.12a6.87,6.87,0,0,1,6.87-6.87h8.3ZM285.51,6.06c-17.05,0-30.88,10.28-30.88,33.21s13.83,33.2
 [...]
+          style="fill:#2C3E50;fill-opacity:1"/>
+</svg>
diff --git a/website/static/img/integrations/graphql.svg 
b/website/static/img/integrations/graphql.svg
new file mode 100644
index 00000000000..3265b71859a
--- /dev/null
+++ b/website/static/img/integrations/graphql.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 128 128"><g 
fill="#E434AA"><path d="M18.39 96.852l-4.6-2.657L65.04 5.434l4.597 2.656zm0 
0"/><path d="M12.734 87.105H115.23v5.31H12.734zm0 0"/><path d="M66.031 
119.688L14.766 90.09l2.656-4.602 51.266 29.602zm0 0M110.566 42.543L59.301 
12.941l2.656-4.597 51.266 29.597zm0 0"/><path d="M17.434 42.523l-2.657-4.601 
51.27-29.598 2.656 4.598zm0 0"/><path d="M109.621 96.852L58.375 
8.09l4.598-2.656 51.25 88.761zm0 0M16.8 34.398h5.313v59.204h-5.31 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/grpc.svg 
b/website/static/img/integrations/grpc.svg
new file mode 100644
index 00000000000..02448e678a8
--- /dev/null
+++ b/website/static/img/integrations/grpc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"; role="img" viewBox="-3.78 101.47 
365.56 156.81"><defs><clipPath id="clip-path"><path d="M10.448 
115.797h34.468v34.468H10.448z" class="cls-1" transform="rotate(-45.213 27.682 
133.032)"/></clipPath><clipPath id="clip-path-2"><path d="M84.176 
122.635h20.218v20.218H84.176z" class="cls-1" transform="rotate(-45.213 94.285 
132.743)"/></clipPath><style>.cls-1{fill:none}.cls-2{fill:#244b5a}.cls-4{fill:#75caca}.cls-5{fill:#74cbca}.cls-6{fill:#73cbca}.cls-7{f
 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/kafka.svg 
b/website/static/img/integrations/kafka.svg
new file mode 100644
index 00000000000..29836cf0fcc
--- /dev/null
+++ b/website/static/img/integrations/kafka.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 128 128"><path d="M86.758 
70.89c-4.992 0-9.465 2.208-12.528 5.68l-7.851-5.547a21.275 21.275 0 
001.312-7.32c0-2.531-.46-4.95-1.27-7.203l7.837-5.488c3.062 3.457 7.523 5.652 
12.5 5.652 9.207 0 16.703-7.48 16.703-16.672 
0-9.195-7.496-16.672-16.703-16.672-9.211 0-16.707 7.477-16.707 16.672 0 
1.645.25 3.23.699 4.735l-7.84 5.488a21.578 21.578 0 
00-13.36-7.746v-9.43c7.567-1.586 13.27-8.293 13.27-16.312C62.82 7.53 55.324.055 
46.117.055c-9.21 0- [...]
diff --git a/website/static/img/integrations/mqtt.svg 
b/website/static/img/integrations/mqtt.svg
new file mode 100644
index 00000000000..7180c4d5c88
--- /dev/null
+++ b/website/static/img/integrations/mqtt.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>MQTT</title><path d="M10.657 
23.994h-9.45A1.212 1.212 0 0 1 0 22.788v-9.18h.071c5.784 0 10.504 4.65 10.586 
10.386Zm7.606 0h-4.045C14.135 16.246 7.795 9.977 0 9.942V6.038h.071c9.983 0 
18.121 8.044 18.192 17.956Zm4.53 0h-.97C21.754 12.071 11.995 2.407 0 
2.372v-1.16C0 .55.544.006 1.207.006h7.64C15.733 2.49 21.257 7.789 24 
14.508v8.291c0 .663-.544 1.195-1.207 1.195ZM16.713.006h6.092A1.19 1.19 0 0 1 24 
1.2v5.914c-.9 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/opa.svg 
b/website/static/img/integrations/opa.svg
new file mode 100644
index 00000000000..73f873b41e3
--- /dev/null
+++ b/website/static/img/integrations/opa.svg
@@ -0,0 +1 @@
+<svg width="56" height="56" viewBox="0 0 56 56" fill="none" 
xmlns="http://www.w3.org/2000/svg";><path d="M52.5 
16.917c0-4.667-8.75-15.167-9.333-15.75 2.098 9.444 1.837 8.034 2.188 
11.05.093.795.132 1.62-.186 2.355-1.457 3.365-6.67 5.26-6.67 5.26l8.166 7S52.5 
21 52.5 16.918zm-49 0c0-4.667 8.75-15.167 9.333-15.75-2.098 9.444-1.838 
8.034-2.188 11.05-.093.795-.132 1.62.186 2.355 1.457 3.365 6.67 5.26 6.67 
5.26l-8.166 7S3.5 21 3.5 16.918z" fill="#BFBFBF"/><path d="M28 12.25c9.144 0 
15.784 6.42 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/openapi.svg 
b/website/static/img/integrations/openapi.svg
new file mode 100644
index 00000000000..8920671852f
--- /dev/null
+++ b/website/static/img/integrations/openapi.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>OpenAPI Initiative</title><path 
d="M21.039 0a2.959 2.959 0 00-2.65 4.274l-6.447 6.447a2.96 2.96 0 101.335 
1.336l6.447-6.447A2.959 2.959 0 1021.04 0zM10.628 2.745c-.072 
0-.143.003-.214.004-.072.002-.143.002-.215.005-.447.018-.893.064-1.335.138l-.03.005-.185.033-.105.02a7.718
 7.718 0 00-.289.062l-.032.008a10.69 10.69 0 
00-2.55.95l-.155.089c-.063.034-.125.07-.187.105-.046.027-.093.051-.14.079H5.19l-.01.005-.036.02
 [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/openfunction.svg 
b/website/static/img/integrations/openfunction.svg
new file mode 100644
index 00000000000..af744252131
--- /dev/null
+++ b/website/static/img/integrations/openfunction.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1//EN'  
'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
+<svg enable-background="new 0 0 512 512" version="1.1" viewBox="0 0 512 512" 
xml:space="preserve" xmlns="http://www.w3.org/2000/svg";>  <image width="512" 
height="512" 
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAIGNIUk0AAHomAACAhAAA+gAAAIDo
 AAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfmBQILIhNBef3b 
AAAAXnRFWHRSYXcgcHJvZmlsZSB0eXBlIGlwdGMACmlwdGMKICAgICAgMjgKMzg0MjQ5NGQwNDA0 
MDAwMDAwMDAwMDBmMWMwMjZlMDAwMzUyNDY0NzFjMDIwMDAwMDIwMDA0MDAKYJo9ng [...]
+</svg>
diff --git a/website/static/img/integrations/openwhisk.svg 
b/website/static/img/integrations/openwhisk.svg
new file mode 100644
index 00000000000..08abfd945cc
--- /dev/null
+++ b/website/static/img/integrations/openwhisk.svg
@@ -0,0 +1,1832 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb";
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="2.4221382in"
+   height="1.5887017in"
+   viewBox="0 0 465.05054 305.03073"
+   version="1.1"
+   id="svg4829"
+   sodipodi:docname="apache-openwhisk-logo-only.svg"
+   inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+   
inkscape:export-filename="/Users/Matt/openwhisk/release/openwhisk-website/images/logo/apache-openwhisk-logo-only.png"
+   inkscape:export-xdpi="154.69"
+   inkscape:export-ydpi="154.69">
+  <metadata
+     id="metadata4833">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title>logo/apache-openwhisk</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1571"
+     inkscape:window-height="896"
+     id="namedview4831"
+     showgrid="false"
+     showguides="true"
+     inkscape:zoom="4.4782375"
+     inkscape:cx="116.26263"
+     inkscape:cy="85.189766"
+     inkscape:window-x="51"
+     inkscape:window-y="53"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg4829"
+     inkscape:pagecheckerboard="true"
+     borderlayer="false"
+     viewbox-width="116.3"
+     viewbox-height="21"
+     scale-x="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     units="in">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4835"
+       originx="77.361511"
+       originy="-10.216809" />
+  </sodipodi:namedview>
+  <!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch 
-->
+  <title
+     id="title4812">logo/apache-openwhisk</title>
+  <desc
+     id="desc4814">Created with Sketch.</desc>
+  <defs
+     id="defs4816">
+    <linearGradient
+       id="linearGradient2544"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2542" />
+    </linearGradient>
+    <color-profile
+       name="Adobe-RGB--1998-"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       id="color-profile3144" />
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter4902">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood4892" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite4894" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="2"
+         result="blur"
+         id="feGaussianBlur4896" />
+      <feOffset
+         dx="6"
+         dy="6"
+         result="offset"
+         id="feOffset4898" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="fbSourceGraphic"
+         id="feComposite4900" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix4988" />
+      <feFlood
+         id="feFlood4990"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite4992"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur4994"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset4996"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite4998"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5000" />
+      <feFlood
+         id="feFlood5002"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5004"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5006"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5008"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5010"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5012" />
+      <feFlood
+         id="feFlood5014"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5016"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5018"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5020"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5022"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5024" />
+      <feFlood
+         id="feFlood5026"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5028"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5030"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5032"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5034"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5036" />
+      <feFlood
+         id="feFlood5038"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5040"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5042"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5044"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5046"
+         in="fbSourceGraphic"
+         operator="over"
+         result="composite2" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter569">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood559" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite561" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur563" />
+      <feOffset
+         dx="0.2"
+         dy="0.2"
+         result="offset"
+         id="feOffset565" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite567" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter895">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood885" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite887" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur889" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset891" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite893" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter946">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood936" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite938" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur940" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset942" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite944" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1214">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood1204" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1206" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1208" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1210" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1212" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1437">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood1427" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1429" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1431" />
+      <feOffset
+         dx="0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1433" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1435" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2252">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2254"
+         width="15.335663"
+         height="17.757502"
+         x="15.284907"
+         y="-0.22932915"
+         ry="0.37528363" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2270">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2272"
+         width="11.395495"
+         height="9.0284157"
+         x="9.1991491"
+         y="-0.064093582"
+         ry="0.35968757" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2408">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood2398" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2400" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2402" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset2404" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2406" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2418">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2420"
+         width="11.568389"
+         height="8.9488811"
+         x="10.364887"
+         y="-0.055517841"
+         ry="0.37048745" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2530">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood2520" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2522" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2524" />
+      <feOffset
+         dx="-0.1"
+         dy="0"
+         result="offset"
+         id="feOffset2526" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2528" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2538">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2540"
+         width="14.630958"
+         height="17.226913"
+         x="-0.16488507"
+         y="2.4576325"
+         ry="0.37048745" />
+    </clipPath>
+    <color-profile
+       id="color-profile4516"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       name="Adobe-RGB--1998-" />
+    <filter
+       id="filter4902-83"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood4892-9"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite4894-0"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur4896-5"
+         result="blur"
+         stdDeviation="2"
+         in="composite1" />
+      <feOffset
+         id="feOffset4898-2"
+         result="offset"
+         dy="6"
+         dx="6" />
+      <feComposite
+         id="feComposite4900-27"
+         result="fbSourceGraphic"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix4988-3"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood4990-79" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite4992-0"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur4994-2" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset4996-3" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite4998-9"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5000-9"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5002-7" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5004-0"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5006-3" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5008-9" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5010-8"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5012-6"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5014-5" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5016-7"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5018-62" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5020-7" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5022-0"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5024-3"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5026-9" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5028-9"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5030-9" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5032-1" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5034-7"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5036-2"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5038-3" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5040-6"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5042-5" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5044-5" />
+      <feComposite
+         result="composite2"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5046-8"
+         in2="offset" />
+    </filter>
+    <filter
+       id="filter4342"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood4332"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.933333" />
+      <feComposite
+         id="feComposite4334"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur4336"
+         result="blur"
+         stdDeviation="0.2"
+         in="composite1" />
+      <feOffset
+         id="feOffset4338"
+         result="offset"
+         dy="1.38778e-16"
+         dx="1.38778e-16" />
+      <feComposite
+         id="feComposite4340"
+         result="fbSourceGraphic"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix4344"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.933333"
+         id="feFlood4346" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite4348"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="0.2"
+         in="composite1"
+         id="feGaussianBlur4350" />
+      <feOffset
+         result="offset"
+         dy="1.38778e-16"
+         dx="1.38778e-16"
+         id="feOffset4352" />
+      <feComposite
+         result="composite2"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite4354"
+         in2="offset" />
+    </filter>
+    <color-profile
+       name="Adobe-RGB--1998-"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       id="color-profile4566" />
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter4902-8">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood4892-3" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite4894-9" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="2"
+         result="blur"
+         id="feGaussianBlur4896-0" />
+      <feOffset
+         dx="6"
+         dy="6"
+         result="offset"
+         id="feOffset4898-5" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="fbSourceGraphic"
+         id="feComposite4900-2" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix4988-2" />
+      <feFlood
+         id="feFlood4990-7"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite4992-3"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur4994-7"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset4996-9"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite4998-0"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5000-2" />
+      <feFlood
+         id="feFlood5002-3"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5004-9"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5006-9"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5008-7"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5010-0"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5012-3" />
+      <feFlood
+         id="feFlood5014-9"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5016-8"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5018-6"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5020-5"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5022-7"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5024-6" />
+      <feFlood
+         id="feFlood5026-2"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5028-7"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5030-0"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5032-3"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5034-9"
+         in="fbSourceGraphic"
+         operator="over"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix5036-9" />
+      <feFlood
+         id="feFlood5038-9"
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         in="fbSourceGraphic" />
+      <feComposite
+         in2="fbSourceGraphic"
+         id="feComposite5040-1"
+         in="flood"
+         operator="in"
+         result="composite1" />
+      <feGaussianBlur
+         id="feGaussianBlur5042-7"
+         in="composite1"
+         stdDeviation="1"
+         result="blur" />
+      <feOffset
+         id="feOffset5044-2"
+         dx="6"
+         dy="6"
+         result="offset" />
+      <feComposite
+         in2="offset"
+         id="feComposite5046-3"
+         in="fbSourceGraphic"
+         operator="over"
+         result="composite2" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter569-4">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood559-7" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite561-1" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur563-3" />
+      <feOffset
+         dx="0.2"
+         dy="0.2"
+         result="offset"
+         id="feOffset565-8" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite567-4" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter895-8">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood885-0" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite887-4" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur889-6" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset891-0" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite893-3" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter946-2">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood936-6" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite938-9" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur940-4" />
+      <feOffset
+         dx="-0.2"
+         dy="-2.77556e-17"
+         result="offset"
+         id="feOffset942-1" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite944-3" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1214-7">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood1204-8" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1206-8" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1208-3" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1210-8" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1212-1" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter1437-5">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood1427-3" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite1429-5" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur1431-4" />
+      <feOffset
+         dx="0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset1433-3" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite1435-6" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2252-5">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2254-9"
+         width="15.335663"
+         height="17.757502"
+         x="15.284907"
+         y="-0.22932915"
+         ry="0.37528363" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2270-5">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2272-4"
+         width="11.395495"
+         height="9.0284157"
+         x="9.1991491"
+         y="-0.064093582"
+         ry="0.35968757" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2408-9">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(0,0,0)"
+         result="flood"
+         id="feFlood2398-1" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2400-7" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2402-5" />
+      <feOffset
+         dx="-0.1"
+         dy="0.1"
+         result="offset"
+         id="feOffset2404-5" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2406-4" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath2418-1">
+      <rect
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke"
+         id="rect2420-8"
+         width="11.568389"
+         height="8.9488811"
+         x="10.364887"
+         y="-0.055517841"
+         ry="0.37048745" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:label="Drop Shadow"
+       id="filter2530-8">
+      <feFlood
+         flood-opacity="0.498039"
+         flood-color="rgb(255,255,255)"
+         result="flood"
+         id="feFlood2520-3" />
+      <feComposite
+         in="flood"
+         in2="SourceGraphic"
+         operator="in"
+         result="composite1"
+         id="feComposite2522-5" />
+      <feGaussianBlur
+         in="composite1"
+         stdDeviation="1.38778e-16"
+         result="blur"
+         id="feGaussianBlur2524-2" />
+      <feOffset
+         dx="-0.1"
+         dy="0"
+         result="offset"
+         id="feOffset2526-2" />
+      <feComposite
+         in="SourceGraphic"
+         in2="offset"
+         operator="over"
+         result="composite2"
+         id="feComposite2528-6" />
+    </filter>
+    <color-profile
+       id="color-profile4940"
+       xlink:href="/System/Library/ColorSync/Profiles/AdobeRGB1998.icc"
+       name="Adobe-RGB--1998-" />
+    <filter
+       id="filter4902-9"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood4892-1"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite4894-5"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur4896-55"
+         result="blur"
+         stdDeviation="2"
+         in="composite1" />
+      <feOffset
+         id="feOffset4898-8"
+         result="offset"
+         dy="6"
+         dx="6" />
+      <feComposite
+         id="feComposite4900-29"
+         result="fbSourceGraphic"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix4988-8"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood4990-2" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite4992-07"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur4994-4" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset4996-8" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite4998-5"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5000-8"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5002-30" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5004-6"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5006-2" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5008-2" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5010-5"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5012-2"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5014-2" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5016-71"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5018-5" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5020-2" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5022-1"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5024-1"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5026-0" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5028-1"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5030-8" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5032-7" />
+      <feComposite
+         result="fbSourceGraphic"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5034-6"
+         in2="offset" />
+      <feColorMatrix
+         id="feColorMatrix5036-0"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         in="fbSourceGraphic"
+         result="fbSourceGraphicAlpha" />
+      <feFlood
+         in="fbSourceGraphic"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039"
+         id="feFlood5038-0" />
+      <feComposite
+         result="composite1"
+         operator="in"
+         in="flood"
+         id="feComposite5040-9"
+         in2="fbSourceGraphic" />
+      <feGaussianBlur
+         result="blur"
+         stdDeviation="1"
+         in="composite1"
+         id="feGaussianBlur5042-56" />
+      <feOffset
+         result="offset"
+         dy="6"
+         dx="6"
+         id="feOffset5044-28" />
+      <feComposite
+         result="composite2"
+         operator="over"
+         in="fbSourceGraphic"
+         id="feComposite5046-5"
+         in2="offset" />
+    </filter>
+    <filter
+       id="filter569-9"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood559-4"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite561-3"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur563-9"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset565-0"
+         result="offset"
+         dy="0.2"
+         dx="0.2" />
+      <feComposite
+         id="feComposite567-5"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter895-6"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood885-3"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite887-6"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur889-3"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset891-08"
+         result="offset"
+         dy="-2.77556e-17"
+         dx="-0.2" />
+      <feComposite
+         id="feComposite893-4"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter946-0"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood936-4"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite938-6"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur940-46"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset942-4"
+         result="offset"
+         dy="-2.77556e-17"
+         dx="-0.2" />
+      <feComposite
+         id="feComposite944-38"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter1214-4"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood1204-0"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite1206-0"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur1208-9"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset1210-3"
+         result="offset"
+         dy="0.1"
+         dx="-0.1" />
+      <feComposite
+         id="feComposite1212-7"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <filter
+       id="filter1437-57"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood1427-2"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite1429-9"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur1431-7"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset1433-5"
+         result="offset"
+         dy="0.1"
+         dx="0.1" />
+      <feComposite
+         id="feComposite1435-65"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <clipPath
+       id="clipPath2252-3"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.37528363"
+         y="-0.22932915"
+         x="15.284907"
+         height="17.757502"
+         width="15.335663"
+         id="rect2254-0"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.93708497;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+    <clipPath
+       id="clipPath2270-4"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.35968757"
+         y="-0.064093582"
+         x="9.1991491"
+         height="9.0284157"
+         width="11.395495"
+         id="rect2272-8"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+    <filter
+       id="filter2408-5"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood2398-5"
+         result="flood"
+         flood-color="rgb(0,0,0)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite2400-5"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur2402-4"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset2404-2"
+         result="offset"
+         dy="0.1"
+         dx="-0.1" />
+      <feComposite
+         id="feComposite2406-1"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <clipPath
+       id="clipPath2418-9"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.37048745"
+         y="-0.055517841"
+         x="10.364887"
+         height="8.9488811"
+         width="11.568389"
+         id="rect2420-2"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+    <filter
+       id="filter2530-4"
+       inkscape:label="Drop Shadow"
+       style="color-interpolation-filters:sRGB">
+      <feFlood
+         id="feFlood2520-5"
+         result="flood"
+         flood-color="rgb(255,255,255)"
+         flood-opacity="0.498039" />
+      <feComposite
+         id="feComposite2522-8"
+         result="composite1"
+         operator="in"
+         in2="SourceGraphic"
+         in="flood" />
+      <feGaussianBlur
+         id="feGaussianBlur2524-6"
+         result="blur"
+         stdDeviation="1.38778e-16"
+         in="composite1" />
+      <feOffset
+         id="feOffset2526-25"
+         result="offset"
+         dy="0"
+         dx="-0.1" />
+      <feComposite
+         id="feComposite2528-1"
+         result="composite2"
+         operator="over"
+         in2="offset"
+         in="SourceGraphic" />
+    </filter>
+    <clipPath
+       id="clipPath2538-3"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         ry="0.37048745"
+         y="2.4576325"
+         x="-0.16488507"
+         height="17.226913"
+         width="14.630958"
+         id="rect2540-9"
+         
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill
 markers stroke" />
+    </clipPath>
+  </defs>
+  <rect
+     inkscape:export-ydpi="72"
+     inkscape:export-xdpi="72"
+     inkscape:label="Website Header background - #27558f"
+     y="-4.6110868"
+     x="-3.0287452"
+     height="312.74371"
+     width="472.01105"
+     id="rect316"
+     
style="display:none;fill:#27558f;fill-opacity:0.94117647;stroke:none;stroke-width:1;stroke-opacity:1"
+     sodipodi:insensitive="true" />
+  <text
+     inkscape:label="TM"
+     id="text133"
+     y="18.152016"
+     x="437.64542"
+     
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.0028801px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif,
 
Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:none;fill:#325c80;fill-opacity:1;stroke:none;stroke-width:1.59402001"
+     xml:space="preserve"><tspan
+       
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.0028801px;font-family:sans-serif;-inkscape-font-specification:'sans-serif,
 
Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#325c80;fill-opacity:1;stroke-width:1.59402001"
+       y="18.152016"
+       x="437.64542"
+       id="tspan131"
+       sodipodi:role="line">TM</tspan></text>
+  <g
+     style="display:none;stroke-width:0.24340019"
+     inkscape:label="Logo Dark Background Shadow"
+     id="g2552-6"
+     transform="matrix(15.428316,0,0,15.493285,-1.5873152,-18.212558)"
+     sodipodi:insensitive="true">
+    <path
+       transform="translate(0.1028831,1.175636)"
+       
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24340019;stroke-opacity:1"
+       clip-path="none"
+       d="M 14.672649,19.788911 4.8204578,2.219221 -0.12607805,11.075757 
4.7386969,19.788911 Z"
+       id="polygon2422-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc"
+       inkscape:label="Dark blue Shadow" />
+  </g>
+  <g
+     style="display:inline;stroke-width:0.27429447"
+     transform="matrix(6.3071665,0,0,5.3545025,-49.879637,-62.863546)"
+     id="g2788"
+     inkscape:label="Logo"
+     sodipodi:insensitive="true">
+    <polygon
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)"
+       style="display:inline;fill:#008571;stroke-width:0.24340019"
+       points="15.537455,0.002953125 25.270444,17.22644 30.142665,8.6119277 
25.27587,-0.00012304688 "
+       id="polygon99-8"
+       inkscape:label="Dark aquamarine" />
+    <polygon
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)"
+       style="display:inline;fill:#6eedd8;stroke-width:0.24340019"
+       points="10.758253,8.6133428 20.405514,8.608776 15.537636,0.0031376953 "
+       id="polygon101-4"
+       inkscape:label="Light aquamarine"
+       clip-path="none"
+       mask="none" />
+    <polygon
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)"
+       style="display:inline;fill:#325c80;stroke-width:0.24340019"
+       points="0,11.075757 4.8203765,19.687808 14.465952,19.684116 
4.8258021,2.4612451 "
+       id="polygon103-1"
+       inkscape:label="Dark blue" />
+    <polygon
+       inkscape:label="Medium blue"
+       id="polygon233-7"
+       points="14.466073,19.684547 19.291272,11.074342 9.6456963,11.077418 "
+       style="display:inline;fill:#5aaafa;stroke-width:0.24340019"
+       transform="matrix(2.4461563,0,0,2.8935059,7.9084066,11.740671)" />
+  </g>
+</svg>
diff --git a/website/static/img/integrations/rocketmq.svg 
b/website/static/img/integrations/rocketmq.svg
new file mode 100644
index 00000000000..d25ef2384e2
--- /dev/null
+++ b/website/static/img/integrations/rocketmq.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>Apache RocketMQ</title><path 
d="M11.438 23.467c-.517-.638-1.106-1.89-1.217-2.587l-.082-.511h1.835c1.435 0 
1.835.036 1.835.165 0 .352-.412 1.553-.709 2.066-.333.577-1.021 1.41-1.155 
1.4-.043-.004-.272-.244-.507-.533zm-4.532-4.193c-1.251-3.005-1.231-6.784.056-10.63.786-2.35
 2.652-5.689 4.413-7.9L11.967 0l.422.493c.763.893 2.612 3.731 3.28 5.036 1.32 
2.578 2.055 4.993 2.264 7.438.197 2.302-.176 4.837-.962 6.533l-. [...]
\ No newline at end of file
diff --git a/website/static/img/integrations/safeline.svg 
b/website/static/img/integrations/safeline.svg
new file mode 100644
index 00000000000..c7c293593e6
--- /dev/null
+++ b/website/static/img/integrations/safeline.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="396px" height="407px" viewBox="0 0 396 407" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <title>编组 12</title>
+    <defs>
+        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" 
id="linearGradient-1">
+            <stop stop-color="#4B4B4B" offset="0%"></stop>
+            <stop stop-color="#000000" offset="100%"></stop>
+        </linearGradient>
+        <filter x="-3.0%" y="-2.8%" width="106.1%" height="105.6%" 
filterUnits="objectBoundingBox" id="filter-2">
+            <feGaussianBlur stdDeviation="3" 
in="SourceGraphic"></feGaussianBlur>
+        </filter>
+        <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" 
id="linearGradient-3">
+            <stop stop-color="#24BC43" stop-opacity="0.8" offset="0%"></stop>
+            <stop stop-color="#3ACBAB" stop-opacity="0.7" offset="100%"></stop>
+        </linearGradient>
+        <path d="M110.049657,49.667649 C110.049657,49.667649 
81.1358702,46.2263115 76.8,26.7636364 C72.4880848,46.2263115 
43.5503431,49.667649 43.5503431,49.667649 C14.2053649,53.3001718 0,36.4567369 
0,36.4567369 C13.941859,65.8036979 38.4,64.7712967 38.4,64.7712967 
L115.2,64.7712967 C115.2,64.7712967 139.634186,65.8036979 153.6,36.4567369 
C153.6,36.4567369 139.394635,53.3192904 110.049657,49.667649 Z" 
id="path-4"></path>
+        <filter x="-16.9%" y="-57.9%" width="133.9%" height="236.8%" 
filterUnits="objectBoundingBox" id="filter-5">
+            <feOffset dx="0" dy="4" in="SourceAlpha" 
result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="8" in="shadowOffsetOuter1" 
result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.490319293   0 0 0 0 
0.292243323  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+    </defs>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" 
fill-rule="evenodd">
+        <g id="编组-12" transform="translate(49.000000, 38.000000)">
+            <path d="M292.40836,59.04 C290.927217,51.9634286 
285.002646,46.6971429 277.761503,46.368 C222.13636,44.8868571 
176.385503,16.5805714 157.953503,3.08571429 C152.358074,-1.02857143 
144.95236,-1.02857143 139.356931,3.08571429 C120.431217,16.5805714 
75.1740742,44.8868571 19.5489314,46.368 C12.4723599,46.6971429 
6.21864565,51.9634286 4.90207422,59.04 C-3.98478292,103.474286 
-19.2899258,254.057143 148.902074,324 C316.60036,253.892571 
300.966074,103.474286 292.40836,59.04 Z" id="路径" [...]
+            <path d="M292.40836,59.04 C290.927217,51.9634286 
285.002646,46.6971429 277.761503,46.368 C222.13636,44.8868571 
176.385503,16.5805714 157.953503,3.08571429 C152.358074,-1.02857143 
144.95236,-1.02857143 139.356931,3.08571429 C120.431217,16.5805714 
75.1740742,44.8868571 19.5489314,46.368 C12.4723599,46.6971429 
6.21864565,51.9634286 4.90207422,59.04 C-3.98478292,103.474286 
-19.2899258,254.057143 148.902074,324 C316.60036,253.892571 
300.966074,103.474286 292.40836,59.04 Z" id="路径" [...]
+            <path d="M149,261.4 C205.553958,261.4 251.4,215.553958 251.4,159 
C251.4,131.275004 240.381593,106.123494 222.484813,87.6855068 
C209.900749,96.0964568 185.81512,106.024178 175.564259,100.853688 
C166.334879,96.1984273 157.476591,88.4505652 148.989396,77.610101 
C142.047769,88.5334102 134.670586,95.5517221 126.857848,98.6650367 
C120.689419,101.123107 98.2592604,102.915695 75.4419467,87.761039 
C57.5883513,106.192154 46.6,131.312844 46.6,159 C46.6,215.553958 
92.4460416,261.4 149,26 [...]
+            <g id="编组-5备份-6" transform="translate(91.771423, 102.101722)" 
fill="#FFFFFF">
+                <polygon id="路径-130备份-29" transform="translate(57.217971, 
95.920999) rotate(-180.000000) translate(-57.217971, -95.920999) " 
points="56.6651511 64.9496372 -7.57241738e-17 97.1108413 50.6084036 126.892361 
68.8016729 117.264704 34.3433228 97.1108413 56.6651511 84.5503086 96.9001091 
107.376711 96.9001091 114.88399 114.435942 125.435553 114.435942 
97.1108413"></polygon>
+                <polygon id="路径-130备份-30" transform="translate(57.217971, 
30.971362) rotate(-360.000000) translate(-57.217971, -30.971362) " 
points="56.6651511 2.84217094e-14 -7.57241738e-17 32.1612041 50.6084036 
61.9427239 68.8016729 52.3150668 34.3433228 32.1612041 56.6651511 19.6006714 
96.9001091 42.4270741 96.9001091 49.9343528 114.435942 60.4859155 114.435942 
32.1612041"></polygon>
+                <polygon id="路径-130备份-29" opacity="0.40499442" 
transform="translate(57.217971, 95.920999) rotate(-180.000000) 
translate(-57.217971, -95.920999) " points="56.6651511 64.9496372 
-7.57241738e-17 97.1108413 50.6084036 126.892361 68.8016729 117.264704 
34.3433228 97.1108413 56.6651511 84.5503086 96.9001091 107.376711 96.9001091 
114.88399 114.435942 125.435553 114.435942 97.1108413"></polygon>
+                <polygon id="路径-130备份-30" opacity="0.40499442" 
transform="translate(57.217971, 30.971362) rotate(-360.000000) 
translate(-57.217971, -30.971362) " points="56.6651511 4.8316906e-13 
-7.57241738e-17 32.1612041 50.6084036 61.9427239 68.8016729 52.3150668 
34.3433228 32.1612041 56.6651511 19.6006714 96.9001091 42.4270741 96.9001091 
49.9343528 114.435942 60.4859155 114.435942 32.1612041"></polygon>
+            </g>
+            <g id="长亭logo备份-18" transform="translate(72.200000, 45.222222)" 
fill-rule="nonzero">
+                <g id="编组-7">
+                    <path d="M96.7632666,18.0061837 C96.7632666,18.0061837 
79.3862969,15.2966085 76.7907961,0 C74.1952953,15.2966085 56.8183256,18.0061837 
56.8183256,18.0061837 C39.1836466,20.8694936 30.6424242,7.60987058 
30.6424242,7.60987058 C39.0363842,30.6893013 53.7258141,29.862977 
53.7258141,29.862977 L99.8741859,29.862977 C99.8741859,29.862977 
114.563616,30.6700845 122.957576,7.60987058 C122.957576,7.60987058 
114.416353,20.8694936 96.7816744,18.0061837 L96.7632666,18.0061837 Z" id [...]
+                    <g id="路径">
+                        <use fill="black" fill-opacity="1" 
filter="url(#filter-5)" xlink:href="#path-4"></use>
+                        <use fill="#27B876" xlink:href="#path-4"></use>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/website/static/img/integrations/skywalking.svg 
b/website/static/img/integrations/skywalking.svg
new file mode 100644
index 00000000000..005956317e1
--- /dev/null
+++ b/website/static/img/integrations/skywalking.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="3584px" height="848px" viewBox="0 0 3584 848" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <!-- Generator: Sketch 51.3 (57544) - http://www.bohemiancoding.com/sketch 
-->
+    <title>Group</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" 
fill-rule="evenodd">
+        <g id="Group" transform="translate(0.000000, -16.000000)">
+            <g id="Group-2" transform="translate(0.000000, 157.599119)" 
fill="#1890FF">
+                <path d="M1440.61949,224.405286 L1440.61949,226.338106 
L1381.99064,522.703744 C1374.25936,561.360132 1363.95099,576.822687 
1324.65033,576.822687 L1307.25496,576.822687 C1272.46421,576.822687 
1254.42456,560.071586 1246.04901,526.569383 L1195.15143,329.421806 
C1194.50716,326.844714 1194.50716,326.200441 1193.21861,326.200441 
C1191.93007,326.200441 1191.93007,326.844714 1191.28579,329.421806 
L1140.38822,526.569383 C1132.01267,560.071586 1113.97302,576.822687 
1079.18227,576.8 [...]
+                <path d="M309.821035,361.139868 C309.821035,426.211454 
269.231828,495.792952 140.377203,495.792952 C92.0567181,495.792952 
57.2659692,491.28304 26.340859,484.196035 C19.8981278,482.907489 
14.0996696,478.397577 14.0996696,471.310573 L14.0996696,424.922907 
C14.0996696,417.835903 19.8981278,412.681718 26.340859,412.681718 
L27.6294053,412.681718 C53.4003304,415.903084 117.827643,419.124449 
141.665749,419.124449 C199.006057,419.124449 216.401432,398.507709 
216.401432,361.139868 [...]
+            </g>
+            <g id="moon-o" transform="translate(3304.973950, 323.548473) 
rotate(-183.000000) translate(-3304.973950, -323.548473) translate(3026.449721, 
14.297372)" fill="#D8D8D8" fill-rule="nonzero">
+                <path d="M556.201759,503.069627 C538.560505,506.036844 
520.385618,507.520453 502.242121,507.520453 C320.273523,507.520453 
172.645729,359.064881 172.645729,176.075948 C172.645729,113.448719 
190.789226,52.2735334 223.654695,0 C93.1973036,38.9526209 0,159.314326 
0,302.340521 C0,476.459368 140.753354,618.001955 313.901326,618.001955 
C408.573966,618.001955 497.345261,574.598507 556.201759,503.069627 Z" 
id="Shape"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/website/static/img/integrations/splunk.svg 
b/website/static/img/integrations/splunk.svg
new file mode 100644
index 00000000000..fde4ffb96a5
--- /dev/null
+++ b/website/static/img/integrations/splunk.svg
@@ -0,0 +1 @@
+<svg role="img" viewBox="0 0 24 24" 
xmlns="http://www.w3.org/2000/svg";><title>Splunk</title><path d="M23.348 
11.911l-2.241-1.091v-.65L24 11.621v.593l-2.893 1.438v-.636zm-5.397 
1.841h-.961v-5.31h.961v3.116h.102l1.28-1.481.723.31-1.23 1.316 1.453 
1.809-.888.311-1.44-1.996zm-2.577-.002v-2.068a2.685 2.685 0 0 
0-.026-.42.791.791 0 0 0-.09-.26c-.113-.202-.308-.304-.59-.304a.888.888 0 0 
0-.461.113.673.673 0 0 0-.286.33 1.012 1.012 0 0 
0-.07.263c-.012.13-.019.262-.017.395v1.95h-.961v-3.614h.961l [...]
\ No newline at end of file
diff --git a/website/static/img/plugin/ai.svg b/website/static/img/plugin/ai.svg
new file mode 100644
index 00000000000..9ee514a61ee
--- /dev/null
+++ b/website/static/img/plugin/ai.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 128 128">
+  <defs>
+    <linearGradient id="apisixAiRed" x1="8" y1="8" x2="118" y2="118" 
gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#F8553F"/>
+      <stop offset="1" stop-color="#C4292E"/>
+    </linearGradient>
+  </defs>
+  <path d="M58 8 Q70 46 108 58 Q70 70 58 108 Q46 70 8 58 Q46 46 58 8 Z" 
fill="url(#apisixAiRed)"/>
+  <path d="M102 14 Q106 26 118 30 Q106 34 102 46 Q98 34 86 30 Q98 26 102 14 Z" 
fill="url(#apisixAiRed)"/>
+</svg>
diff --git a/website/static/img/plugin/apisix.svg 
b/website/static/img/plugin/apisix.svg
new file mode 100644
index 00000000000..8e99cc539b4
--- /dev/null
+++ b/website/static/img/plugin/apisix.svg
@@ -0,0 +1,15 @@
+<svg width="185" height="156" viewBox="0 0 185 156" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<path d="M0 155.5L94 0L185 155.5H140L94 83L42.5 155.5H0Z" fill="#F8423F"/>
+<path d="M94 82.5L42.5 155H0L76.5 57L94 82.5Z" fill="url(#paint0_linear)"/>
+<path d="M140 155.5H185L94 0L140 155.5Z" fill="url(#paint1_linear)"/>
+<defs>
+<linearGradient id="paint0_linear" x1="222.5" y1="50" x2="85" y2="223.5" 
gradientUnits="userSpaceOnUse">
+<stop offset="0.536111" stop-color="#FC0A04"/>
+<stop offset="1" stop-color="#CF0500" stop-opacity="0.77"/>
+</linearGradient>
+<linearGradient id="paint1_linear" x1="139.5" y1="1.50861e-06" x2="226" 
y2="136" gradientUnits="userSpaceOnUse">
+<stop offset="0.473466" stop-color="#E2423E"/>
+<stop offset="1" stop-color="#E2423E" stop-opacity="0.77"/>
+</linearGradient>
+</defs>
+</svg>

Reply via email to