Commit 3bdd2b77 by zwb

招聘会演示平台搭建与简历导入

parent ae422217
package org.dromara.common.core.config;
import jakarta.validation.Validator;
import org.hibernate.validator.HibernateValidator;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
import java.util.Properties;
/**
* 校验框架配置类
*
* @author Lion Li
*/
@AutoConfiguration
public class ValidatorConfig {
/**
* 配置校验框架 快速返回模式
*/
@Bean
public Validator validator(MessageSource messageSource) {
try (LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean()) {
// 国际化
factoryBean.setValidationMessageSource(messageSource);
// 设置使用 HibernateValidator 校验器
factoryBean.setProviderClass(HibernateValidator.class);
Properties properties = new Properties();
// 设置 快速异常返回
properties.setProperty("hibernate.validator.fail_fast", "true");
factoryBean.setValidationProperties(properties);
// 加载配置
factoryBean.afterPropertiesSet();
return factoryBean.getValidator();
}
}
}
/**
*
*/
package org.dromara.common.core.domain;
import org.dromara.common.core.utils.DateTimeWrapper;
import java.io.Serializable;
/**
*
* 1月中的周实体对象
*
* @author jiangxiaoge
* @since jdk1.8
*/
public class WeekInMonth implements Serializable {
/**
*
*/
private static final long serialVersionUID = 8784533867126195348L;
/** 中文数字 */
private char[] cnArray = new char[] { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' };
/** 当前第几周的计数 */
private int weekIndex;
/** 当前周的开始日期 */
private DateTimeWrapper startDate;
/** 当前周的结束日期 */
private DateTimeWrapper endDate;
/**
* @return the weekIndex
*/
public int getWeekIndex() {
return weekIndex;
}
/**
* @param weekIndex
* the weekIndex to set
*/
public void setWeekIndex(int weekIndex) {
this.weekIndex = weekIndex;
}
/**
* @return the startDay
*/
public DateTimeWrapper getStartDate() {
return startDate;
}
/**
* 设置本周的开始日期,同时设置本周的结束日期
*
* @param startDay
* the startDay to set
*/
public void setStartDate(DateTimeWrapper startDay) {
this.startDate = startDay;
this.endDate = this.startDate.lastDayInWeek().moveEndOfDay();
}
/**
* @return the endDay
*/
public DateTimeWrapper getEndDate() {
return endDate;
}
/**
* 设置本周的结束日期,同时设置本周的开始日期
*
* @param endDay
* the endDay to set
*/
public void setEndDate(DateTimeWrapper endDay) {
this.endDate = endDay;
this.startDate = this.endDate.firstDayInWeek().moveStartOfDay();
}
/**
* 获得周内日期的文字描述
*
* @return
* @author jiangxiaoge
*/
public String getWeekAsString() {
StringBuilder sb = new StringBuilder();
sb.append("第").append(this.cnArray[this.weekIndex]).append("周:");
sb.append(this.startDate.getDateString("MM-dd"));
sb.append("至");
sb.append(this.endDate.getDateString("MM-dd"));
return sb.toString();
}
/**
* 获得开始日期的字符串
*
* @return
* @author jiangxiaoge
*/
public String getStartDateAsString() {
if (this.startDate != null) {
return this.startDate.getDateString("yyyy-MM-dd");
}
return "";
}
/**
* 获得结束日期的字符串
*
* @return
* @author jiangxiaoge
*/
public String getEndDateAsString() {
if (this.endDate != null) {
return this.endDate.getDateString("yyyy-MM-dd");
}
return "";
}
/**
* 获得开始日期的月日(MM/dd)
*
* @return
* @author jiangxiaoge
*/
public String getStartTime() {
if (this.startDate != null) {
return this.startDate.getDateString("MM/dd");
}
return "";
}
/**
* 获得结束日期的月日(MM/dd)
*
* @return
* @author jiangxiaoge
*/
public String getEndTime() {
if (this.endDate != null) {
return this.endDate.getDateString("MM/dd");
}
return "";
}
@Override
public String toString() {
return "WeekInMonth [getWeekAsString()=" + getWeekAsString() + "]";
}
}
package org.dromara.common.core.exception;
/**
* @author jiangxiaoge
*/
public class WarnException extends RuntimeException {
public WarnException() {
}
public WarnException(String message) {
super(message);
}
public WarnException(Throwable cause) {
super(cause);
}
public WarnException(String message, Throwable cause) {
super(message, cause);
}
protected WarnException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
}
package org.dromara.common.core.utils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.Validator;
import java.util.Set;
/**
* Validator 校验框架工具
*
* @author Lion Li
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ValidatorUtils {
private static final Validator VALID = SpringUtils.getBean(Validator.class);
/**
* 对给定对象进行参数校验,并根据指定的校验组进行校验
*
* @param object 要进行校验的对象
* @param groups 校验组
* @throws ConstraintViolationException 如果校验不通过,则抛出参数校验异常
*/
public static <T> void validate(T object, Class<?>... groups) {
Set<ConstraintViolation<T>> validate = VALID.validate(object, groups);
if (!validate.isEmpty()) {
throw new ConstraintViolationException("参数校验异常", validate);
}
}
}
package org.dromara.common.core.utils;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.regex.Pattern;
/**
*
* web工具类
*
* @author Herbert
* @since 17
*/
@Slf4j
@UtilityClass
public class WebUtils extends org.springframework.web.util.WebUtils{
/**功能:判断IPv4地址的正则表达式:*/
private static final Pattern IPV4_REGEX =
Pattern.compile(
"^((25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3})");
/**功能:判断标准IPv6地址的正则表达式*/
private static final Pattern IPV6_STD_REGEX =
Pattern.compile(
"^((?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4})");
/**功能:判断一般情况压缩的IPv6正则表达式*/
private static final Pattern IPV6_COMPRESS_REGEX =
Pattern.compile(
"^(((?:[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4})*)?)::((?:([0-9A-Fa-f]{1,4}:)*[0-9A-Fa-f]{1,4})?))");
/**由于IPv6压缩规则是必须要大于等于2个全0块才能压缩
不合法压缩 : fe80:0000:8030:49ec:1fc6:57fa:ab52:fe69
-> fe80::8030:49ec:1fc6:57fa:ab52:fe69
该不合法压缩地址直接压缩了处于第二个块的单独的一个全0块,
上述不合法地址不能通过一般情况的压缩正则表达式IPV6_COMPRESS_REGEX判断出其不合法
所以定义了如下专用于判断边界特殊压缩的正则表达式
(边界特殊压缩:开头或末尾为两个全0块,该压缩由于处于边界,且只压缩了2个全0块,不会导致':'数量变少)
功能:抽取特殊的边界压缩情况*/
private static final Pattern IPV6_COMPRESS_REGEX_BORDER =
Pattern.compile(
"^((::(?:[0-9A-Fa-f]{1,4})(?::[0-9A-Fa-f]{1,4}){5})|((?:[0-9A-Fa-f]{1,4})(?::[0-9A-Fa-f]{1,4}){5}::))");
/**功能:网址判断正则表达式*/
private static final Pattern DOMAIN_PATTERN = Pattern.compile("^((([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+))");
/**
* 下载文件时,设置响应头的编码
*
* @param response
* HttpServletResponse对象
* @param filename
* 下载的文件名称
* @throws UnsupportedEncodingException
*/
public static void setDownloadResponse(HttpServletResponse response, String filename)
throws UnsupportedEncodingException {
String createFileName = java.net.URLEncoder.encode(filename, StandardCharsets.UTF_8.name());
String headStr = "attachment; filename=\"" + createFileName + "\"";
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setHeader("Content-Disposition", headStr);
}
/**
* 将指定的字符串写回客户端
*
* @param response
* http响应对象
* @param responseText
* 待写回的字符串
* @author Herbert
*/
public static void writeResponse(ServletResponse response, String responseText) {
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
out.write(responseText);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
out.flush();
out.close();
}
}
}
/**
* 检查给定的{@code cookiePath} 是否和指定的{@code requestPath}相等
*
* @param cookiePath
* @param requestPath
* @return
* @see <a href="https://tools.ietf.org/html/rfc6265#section-5.1.4">RFC 6265, Section 5.1.4 "Paths and Path-Match"</a>
*/
public static boolean pathMatches(String cookiePath, String requestPath) {
if (!requestPath.startsWith(cookiePath)) {
return false;
}
return requestPath.length() == cookiePath.length()
|| cookiePath.charAt(cookiePath.length() - 1) == '/'
|| requestPath.charAt(cookiePath.length()) == '/';
}
/**
* 若指定的url是以http://或https://开头,且符合以下条件之一,则返回true:<br/>
* 1.普通域名格式,如aaa.bbb、aaa.bbb.ccc、aaa.bbb.ccc.ddd等<br/>
* 2.ipv4格式<br/>
* 3.ipv6格式<br/>
* 其他情况返回false
* @param url
* @return
* @author Herbert
*/
public static boolean validHttpUrl(String url){
if(!startWithHttp(url)){
return false;
}
if(isDomainUrl(url)){
return true;
}
if(isIpv4(url)){
return true;
}
if(isIpv6(url)){
return true;
}
return false;
}
/**
*
* 指定url是否是http或https开头的网址
* @param url
* @return
* @author Herbert
*/
public static boolean startWithHttp(String url) {
return StringUtils.startsWithIgnoreCase(url, "https://") || StringUtils.startsWithIgnoreCase(url, "http://");
}
/**
*
* 判断指定url是否是ipv4格式地址
* @param url
* @return
* @author Herbert
*/
public static boolean isIpv4(String url) {
String strTmp = dealWithStart(url);
return IPV4_REGEX.matcher(strTmp).lookingAt();
}
/**
*
*判断指定url是否是ipv6格式地址
* @param url
* @return
* @author Herbert
*/
public static boolean isIpv6(String url) {
String strTmp = dealWithStart(url);
//地址中冒号(:)的计数器
int iCount = 0;
for (int i = 0; i < strTmp.length(); i++) {
if (strTmp.charAt(i) == ':') {
iCount++;
}
}
if (iCount > 7) {
return false;
}
if (IPV6_STD_REGEX.matcher(strTmp).lookingAt()) {
return true;
}
if (iCount == 7) {
return IPV6_COMPRESS_REGEX_BORDER.matcher(strTmp).lookingAt();
} else {
return IPV6_COMPRESS_REGEX.matcher(strTmp).lookingAt();
}
}
/**
* 判断指定的url是否是域名格式的地址
*
* @param url
* @return
* @author Herbert
*/
public static boolean isDomainUrl(String url){
String strTmp = dealWithStart(url);
return DOMAIN_PATTERN.matcher(strTmp).lookingAt();
}
/**
* 若指定url是以http://或https://开头,则将这部分内容截取掉
*
* @param url 指定的url
* @return
* @author Herbert
*/
private static String dealWithStart(String url) {
String strTmp = url.toLowerCase();
if (StringUtils.startsWith(strTmp, "https://")) {
strTmp = strTmp.substring(strTmp.indexOf("https://") + "https://".length());
} else if (StringUtils.startsWith(strTmp, "http://")) {
strTmp = strTmp.substring(strTmp.indexOf("http://") + "http://".length());
}
return strTmp;
}
/**
* 获取 HttpServletRequest
*
* @return {HttpServletRequest}
*/
public HttpServletRequest getRequest() {
if (RequestContextHolder.getRequestAttributes() == null) {
return null;
}
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
}
package com.bkty.gateway.utils;
import cn.hutool.core.util.ObjectUtil;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.json.utils.JsonUtils;
import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.core.io.buffer.DataBufferUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.util.UriComponentsBuilder;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.net.URI;
import java.nio.CharBuffer;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashSet;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR;
/**
* WebFlux 工具类
*
* @author Lion Li
*/
public class WebFluxUtils {
/**
* 获取原请求路径
*/
public static String getOriginalRequestUrl(ServerWebExchange exchange) {
ServerHttpRequest request = exchange.getRequest();
LinkedHashSet<URI> uris = exchange.getAttributeOrDefault(GATEWAY_ORIGINAL_REQUEST_URL_ATTR, new LinkedHashSet<>());
URI requestUri = uris.stream().findFirst().orElse(request.getURI());
return UriComponentsBuilder.fromPath(requestUri.getRawPath()).build().toUriString();
}
/**
* 是否是Json请求
*
* @param exchange HTTP请求
*/
public static boolean isJsonRequest(ServerWebExchange exchange) {
String header = exchange.getRequest().getHeaders().getFirst(HttpHeaders.CONTENT_TYPE);
return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE);
}
/**
* 读取request内的body
*
* 注意一个request只能读取一次 读取之后需要重新包装
*/
public static String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) {
// 获取请求体
Flux<DataBuffer> body = serverHttpRequest.getBody();
AtomicReference<String> bodyRef = new AtomicReference<>();
body.subscribe(buffer -> {
try (DataBuffer.ByteBufferIterator iterator = buffer.readableByteBuffers()) {
CharBuffer charBuffer = StandardCharsets.UTF_8.decode(iterator.next());
DataBufferUtils.release(buffer);
bodyRef.set(charBuffer.toString());
}
});
return bodyRef.get();
}
/**
* 从缓存中读取request内的body
*
* 注意要求经过 {@link ServerWebExchangeUtils#cacheRequestBody(ServerWebExchange, Function)} 此方法创建缓存
* 框架内已经使用 {@link com.bkty.gateway.filter.GlobalCacheRequestFilter} 全局创建了body缓存
*
* @return body
*/
public static String resolveBodyFromCacheRequest(ServerWebExchange exchange) {
Object obj = exchange.getAttributes().get(ServerWebExchangeUtils.CACHED_REQUEST_BODY_ATTR);
if (ObjectUtil.isNull(obj)) {
return null;
}
DataBuffer buffer = (DataBuffer) obj;
try (DataBuffer.ByteBufferIterator iterator = buffer.readableByteBuffers()) {
CharBuffer charBuffer = StandardCharsets.UTF_8.decode(iterator.next());
return charBuffer.toString();
}
}
/**
* 设置webflux模型响应
*
* @param response ServerHttpResponse
* @param value 响应内容
* @return Mono<Void>
*/
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value) {
return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL);
}
/**
* 设置webflux模型响应
*
* @param response ServerHttpResponse
* @param code 响应状态码
* @param value 响应内容
* @return Mono<Void>
*/
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value, int code) {
return webFluxResponseWriter(response, HttpStatus.OK, value, code);
}
/**
* 设置webflux模型响应
*
* @param response ServerHttpResponse
* @param status http状态码
* @param code 响应状态码
* @param value 响应内容
* @return Mono<Void>
*/
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code) {
return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code);
}
/**
* 设置webflux模型响应
*
* @param response ServerHttpResponse
* @param contentType content-type
* @param status http状态码
* @param code 响应状态码
* @param value 响应内容
* @return Mono<Void>
*/
public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) {
response.setStatusCode(status);
response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType);
R<?> result = R.fail(code, value.toString());
DataBuffer dataBuffer = response.bufferFactory().wrap(JsonUtils.toJsonString(result).getBytes());
return response.writeWith(Mono.just(dataBuffer));
}
}
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* monaco-languages version: 0.9.0(e162b4ba29044167bc7181c42b3270fa8a467424)
* Released under the MIT license
* https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md
*-----------------------------------------------------------------------------*/
define("vs/basic-languages/src/vb",["require","exports"],function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.conf={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}]},n.language={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=><!~?;\.,:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:"@whitespace"},[/next(?!\w)/,{token:"keyword.tag-for"}],[/loop(?!\w)/,{token:"keyword.tag-do"}],[/end\s+(?!for|do)([a-zA-Z_]\w*)/,{token:"keyword.tag-$1"}],[/[a-zA-Z_]\w*/,{cases:{"@tagwords":{token:"keyword.tag-$0"},"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\w+/,"keyword"],[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/,"number.float"],[/&H[0-9a-f]+(@integersuffix)/,"number.hex"],[/&0[0-7]+(@integersuffix)/,"number.octal"],[/\d+(@integersuffix)/,"number"],[/#.*#/,"number"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/(\'|REM(?!\w)).*$/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"C?/,"string","@pop"]]}}});
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><style>.icon-canvas-transparent{opacity:0;fill:#f6f6f6}.icon-vs-out{fill:#f6f6f6}.icon-vs-bg{fill:#424242}.icon-vs-fg{fill:#f0eff1}</style><path class="icon-canvas-transparent" d="M16 16H0V0h16v16z" id="canvas"/><path class="icon-vs-out" d="M16 15H0V1h16v14z" id="outline"/><path class="icon-vs-fg" d="M9.229 7.354c.035.146.052.31.052.494 0 .234-.02.441-.06.621-.039.18-.095.328-.168.445a.687.687 0 0 1-.914.281.76.76 0 0 1-.237-.207.988.988 0 0 1-.154-.306 1.262 1.262 0 0 1-.057-.381v-.506c0-.17.02-.326.061-.465s.096-.258.168-.359a.756.756 0 0 1 .257-.232c.1-.055.21-.082.331-.082a.646.646 0 0 1 .571.32c.067.105.116.23.15.377zm-5.126.869a.557.557 0 0 0-.196.132c-.047.053-.08.112-.097.18s-.028.147-.028.233a.513.513 0 0 0 .157.39.528.528 0 0 0 .186.113.682.682 0 0 0 .242.041.76.76 0 0 0 .593-.271.897.897 0 0 0 .165-.295c.038-.113.059-.234.059-.365v-.346l-.761.11a1.29 1.29 0 0 0-.32.078zM14 3v10H2V3h12zM5.962 7.469c0-.238-.027-.451-.083-.637a1.286 1.286 0 0 0-.249-.471 1.08 1.08 0 0 0-.424-.295 1.644 1.644 0 0 0-.608-.101c-.119 0-.241.012-.368.033a3.213 3.213 0 0 0-.673.195 1.313 1.313 0 0 0-.212.114v.768c.158-.132.341-.235.544-.313.204-.078.413-.117.627-.117.213 0 .377.063.494.186.116.125.174.324.174.6l-1.03.154c-.205.026-.38.077-.526.151a1.083 1.083 0 0 0-.563.66A1.562 1.562 0 0 0 3 8.857c0 .17.025.323.074.463a.945.945 0 0 0 .568.596c.139.057.297.084.478.084.229 0 .431-.053.604-.16a1.3 1.3 0 0 0 .439-.463h.014v.529h.785V7.469zM10 7.861a3.54 3.54 0 0 0-.074-.734 2.047 2.047 0 0 0-.228-.611 1.203 1.203 0 0 0-.394-.416 1.03 1.03 0 0 0-.574-.153c-.123 0-.234.018-.336.051a1 1 0 0 0-.278.147 1.153 1.153 0 0 0-.225.222 2.022 2.022 0 0 0-.181.289h-.013V5H7v4.887h.697v-.485h.013c.044.082.095.158.151.229.057.07.119.133.191.186a.835.835 0 0 0 .238.121.943.943 0 0 0 .293.042c.23 0 .434-.053.609-.16a1.34 1.34 0 0 0 .443-.443c.12-.188.211-.412.272-.672A3.62 3.62 0 0 0 10 7.861zm3-1.658a.7.7 0 0 0-.106-.066 1.183 1.183 0 0 0-.142-.063 1.233 1.233 0 0 0-.363-.065c-.209 0-.399.051-.569.15a1.355 1.355 0 0 0-.433.424c-.118.182-.21.402-.273.66a3.63 3.63 0 0 0-.008 1.615c.06.23.143.43.252.602.109.168.241.303.396.396a.972.972 0 0 0 .524.144c.158 0 .296-.021.413-.068.117-.045.219-.108.309-.184v-.77a1.094 1.094 0 0 1-.288.225.819.819 0 0 1-.158.068.48.48 0 0 1-.153.027.62.62 0 0 1-.274-.074c-.241-.136-.423-.479-.423-1.146 0-.715.206-1.12.469-1.301.077-.032.153-.064.238-.064.113 0 .22.027.317.082.096.057.188.131.272.223v-.815z" id="iconFg"/><path class="icon-vs-bg" d="M1 2v12h14V2H1zm13 11H2V3h12v10zM5.63 6.361a1.08 1.08 0 0 0-.424-.295 1.644 1.644 0 0 0-.608-.101c-.119 0-.241.012-.368.033a3.213 3.213 0 0 0-.673.195 1.313 1.313 0 0 0-.212.114v.768c.158-.132.341-.235.544-.313.204-.078.413-.117.627-.117.213 0 .377.063.494.186.116.125.174.324.174.6l-1.03.154c-.205.026-.38.077-.526.151a1.083 1.083 0 0 0-.563.66A1.562 1.562 0 0 0 3 8.857c0 .17.025.323.074.463a.945.945 0 0 0 .568.596c.139.057.297.084.478.084.229 0 .431-.053.604-.16a1.3 1.3 0 0 0 .439-.463h.014v.529h.785V7.469c0-.238-.027-.451-.083-.637a1.286 1.286 0 0 0-.249-.471zm-.446 2.02c0 .131-.02.252-.059.365a.897.897 0 0 1-.165.295.758.758 0 0 1-.593.272.682.682 0 0 1-.242-.041.507.507 0 0 1-.302-.286.583.583 0 0 1-.041-.218c0-.086.01-.164.027-.232s.051-.127.098-.18a.546.546 0 0 1 .196-.133c.083-.033.189-.061.32-.078l.761-.109v.345zm4.514-1.865a1.203 1.203 0 0 0-.394-.416 1.03 1.03 0 0 0-.574-.153c-.123 0-.234.018-.336.051a1 1 0 0 0-.278.147 1.153 1.153 0 0 0-.225.222 2.022 2.022 0 0 0-.181.289h-.013V5H7v4.887h.697v-.485h.013c.044.082.095.158.151.229.057.07.119.133.191.186a.835.835 0 0 0 .238.121.943.943 0 0 0 .293.042c.23 0 .434-.053.609-.16a1.34 1.34 0 0 0 .443-.443c.12-.188.211-.412.272-.672A3.62 3.62 0 0 0 10 7.861a3.54 3.54 0 0 0-.074-.734 2.047 2.047 0 0 0-.228-.611zm-.476 1.953c-.039.18-.095.328-.168.445a.755.755 0 0 1-.264.266.687.687 0 0 1-.651.015.76.76 0 0 1-.237-.207.988.988 0 0 1-.154-.306 1.262 1.262 0 0 1-.057-.381v-.506c0-.17.02-.326.061-.465s.096-.258.168-.359a.756.756 0 0 1 .257-.232c.1-.055.21-.082.331-.082a.646.646 0 0 1 .571.32c.066.105.116.23.15.377.035.146.052.31.052.494 0 .234-.019.441-.059.621zm3.672-2.332a.7.7 0 0 1 .106.066v.814a1.178 1.178 0 0 0-.273-.223.645.645 0 0 0-.317-.081c-.085 0-.161.032-.238.064-.263.181-.469.586-.469 1.301 0 .668.182 1.011.423 1.146.084.04.171.074.274.074.049 0 .101-.01.153-.027a.856.856 0 0 0 .158-.068 1.16 1.16 0 0 0 .288-.225v.77c-.09.076-.192.139-.309.184a1.098 1.098 0 0 1-.412.068.974.974 0 0 1-.523-.143 1.257 1.257 0 0 1-.396-.396 2.098 2.098 0 0 1-.252-.602 3.118 3.118 0 0 1-.088-.754c0-.316.032-.604.096-.861.063-.258.155-.479.273-.66.119-.182.265-.322.433-.424a1.102 1.102 0 0 1 1.073-.023z" id="iconBg"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><style>.icon-canvas-transparent{opacity:0;fill:#2d2d30}.icon-vs-out{fill:#2d2d30}.icon-vs-bg{fill:#c5c5c5}.icon-vs-fg{fill:#2b282e}</style><path class="icon-canvas-transparent" d="M16 16H0V0h16v16z" id="canvas"/><path class="icon-vs-out" d="M16 15H0V1h16v14z" id="outline"/><path class="icon-vs-fg" d="M9.229 7.354c.035.146.052.31.052.494 0 .234-.02.441-.06.621-.039.18-.095.328-.168.445a.687.687 0 0 1-.914.281.76.76 0 0 1-.237-.207.988.988 0 0 1-.154-.306 1.262 1.262 0 0 1-.057-.381v-.506c0-.17.02-.326.061-.465s.096-.258.168-.359a.756.756 0 0 1 .257-.232c.1-.055.21-.082.331-.082a.646.646 0 0 1 .571.32c.067.105.116.23.15.377zm-5.126.869a.557.557 0 0 0-.196.132c-.047.053-.08.112-.097.18s-.028.147-.028.233a.513.513 0 0 0 .157.39.528.528 0 0 0 .186.113.682.682 0 0 0 .242.041.76.76 0 0 0 .593-.271.897.897 0 0 0 .165-.295c.038-.113.059-.234.059-.365v-.346l-.761.11a1.29 1.29 0 0 0-.32.078zM14 3v10H2V3h12zM5.962 7.469c0-.238-.027-.451-.083-.637a1.286 1.286 0 0 0-.249-.471 1.08 1.08 0 0 0-.424-.295 1.644 1.644 0 0 0-.608-.101c-.119 0-.241.012-.368.033a3.213 3.213 0 0 0-.673.195 1.313 1.313 0 0 0-.212.114v.768c.158-.132.341-.235.544-.313.204-.078.413-.117.627-.117.213 0 .377.063.494.186.116.125.174.324.174.6l-1.03.154c-.205.026-.38.077-.526.151a1.083 1.083 0 0 0-.563.66A1.562 1.562 0 0 0 3 8.857c0 .17.025.323.074.463a.945.945 0 0 0 .568.596c.139.057.297.084.478.084.229 0 .431-.053.604-.16a1.3 1.3 0 0 0 .439-.463h.014v.529h.785V7.469zM10 7.861a3.54 3.54 0 0 0-.074-.734 2.047 2.047 0 0 0-.228-.611 1.203 1.203 0 0 0-.394-.416 1.03 1.03 0 0 0-.574-.153c-.123 0-.234.018-.336.051a1 1 0 0 0-.278.147 1.153 1.153 0 0 0-.225.222 2.022 2.022 0 0 0-.181.289h-.013V5H7v4.887h.697v-.485h.013c.044.082.095.158.151.229.057.07.119.133.191.186a.835.835 0 0 0 .238.121.943.943 0 0 0 .293.042c.23 0 .434-.053.609-.16a1.34 1.34 0 0 0 .443-.443c.12-.188.211-.412.272-.672A3.62 3.62 0 0 0 10 7.861zm3-1.658a.7.7 0 0 0-.106-.066 1.183 1.183 0 0 0-.142-.063 1.233 1.233 0 0 0-.363-.065c-.209 0-.399.051-.569.15a1.355 1.355 0 0 0-.433.424c-.118.182-.21.402-.273.66a3.63 3.63 0 0 0-.008 1.615c.06.23.143.43.252.602.109.168.241.303.396.396a.972.972 0 0 0 .524.144c.158 0 .296-.021.413-.068.117-.045.219-.108.309-.184v-.77a1.094 1.094 0 0 1-.288.225.819.819 0 0 1-.158.068.48.48 0 0 1-.153.027.62.62 0 0 1-.274-.074c-.241-.136-.423-.479-.423-1.146 0-.715.206-1.12.469-1.301.077-.032.153-.064.238-.064.113 0 .22.027.317.082.096.057.188.131.272.223v-.815z" id="iconFg"/><path class="icon-vs-bg" d="M1 2v12h14V2H1zm13 11H2V3h12v10zM5.63 6.361a1.08 1.08 0 0 0-.424-.295 1.644 1.644 0 0 0-.608-.101c-.119 0-.241.012-.368.033a3.213 3.213 0 0 0-.673.195 1.313 1.313 0 0 0-.212.114v.768c.158-.132.341-.235.544-.313.204-.078.413-.117.627-.117.213 0 .377.063.494.186.116.125.174.324.174.6l-1.03.154c-.205.026-.38.077-.526.151a1.083 1.083 0 0 0-.563.66A1.562 1.562 0 0 0 3 8.857c0 .17.025.323.074.463a.945.945 0 0 0 .568.596c.139.057.297.084.478.084.229 0 .431-.053.604-.16a1.3 1.3 0 0 0 .439-.463h.014v.529h.785V7.469c0-.238-.027-.451-.083-.637a1.286 1.286 0 0 0-.249-.471zm-.446 2.02c0 .131-.02.252-.059.365a.897.897 0 0 1-.165.295.758.758 0 0 1-.593.272.682.682 0 0 1-.242-.041.507.507 0 0 1-.302-.286.583.583 0 0 1-.041-.218c0-.086.01-.164.027-.232s.051-.127.098-.18a.546.546 0 0 1 .196-.133c.083-.033.189-.061.32-.078l.761-.109v.345zm4.514-1.865a1.203 1.203 0 0 0-.394-.416 1.03 1.03 0 0 0-.574-.153c-.123 0-.234.018-.336.051a1 1 0 0 0-.278.147 1.153 1.153 0 0 0-.225.222 2.022 2.022 0 0 0-.181.289h-.013V5H7v4.887h.697v-.485h.013c.044.082.095.158.151.229.057.07.119.133.191.186a.835.835 0 0 0 .238.121.943.943 0 0 0 .293.042c.23 0 .434-.053.609-.16a1.34 1.34 0 0 0 .443-.443c.12-.188.211-.412.272-.672A3.62 3.62 0 0 0 10 7.861a3.54 3.54 0 0 0-.074-.734 2.047 2.047 0 0 0-.228-.611zm-.476 1.953c-.039.18-.095.328-.168.445a.755.755 0 0 1-.264.266.687.687 0 0 1-.651.015.76.76 0 0 1-.237-.207.988.988 0 0 1-.154-.306 1.262 1.262 0 0 1-.057-.381v-.506c0-.17.02-.326.061-.465s.096-.258.168-.359a.756.756 0 0 1 .257-.232c.1-.055.21-.082.331-.082a.646.646 0 0 1 .571.32c.066.105.116.23.15.377.035.146.052.31.052.494 0 .234-.019.441-.059.621zm3.672-2.332a.7.7 0 0 1 .106.066v.814a1.178 1.178 0 0 0-.273-.223.645.645 0 0 0-.317-.081c-.085 0-.161.032-.238.064-.263.181-.469.586-.469 1.301 0 .668.182 1.011.423 1.146.084.04.171.074.274.074.049 0 .101-.01.153-.027a.856.856 0 0 0 .158-.068 1.16 1.16 0 0 0 .288-.225v.77c-.09.076-.192.139-.309.184a1.098 1.098 0 0 1-.412.068.974.974 0 0 1-.523-.143 1.257 1.257 0 0 1-.396-.396 2.098 2.098 0 0 1-.252-.602 3.118 3.118 0 0 1-.088-.754c0-.316.032-.604.096-.861.063-.258.155-.479.273-.66.119-.182.265-.322.433-.424a1.102 1.102 0 0 1 1.073-.023z" id="iconBg"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="40"><path d="M288.483 33c-.772 0-1.497-.123-2.153-.365-.678-.253-1.27-.617-1.76-1.084-.5-.475-.892-1.049-1.163-1.704-.27-.644-.407-1.371-.407-2.158 0-.517.061-1.018.178-1.49.116-.47.29-.925.516-1.348.225-.422.508-.815.844-1.167.334-.352.717-.656 1.139-.905.416-.246.881-.44 1.38-.576.493-.134 1.026-.202 1.587-.202.705 0 1.382.109 2.013.324.642.217 1.218.538 1.708.955.501.425.903.948 1.193 1.556.294.623.442 1.316.442 2.064 0 .619-.09 1.185-.268 1.679-.178.492-.42.92-.721 1.275-.331.377-.699.658-1.104.847l-.048.022v1.53l-.587.266c-.128.059-.288.117-.474.179-.193.062-.404.114-.645.159-.229.04-.477.076-.753.103-.27.027-.578.04-.917.04z" fill="#2D2D2D"/><path d="M291.716 24.041c-.396-.336-.856-.593-1.384-.771-.527-.18-1.09-.271-1.689-.271-.473 0-.912.055-1.324.167-.414.112-.791.27-1.135.473-.342.202-.65.446-.922.733-.273.286-.502.602-.686.949-.186.347-.33.722-.428 1.119-.1.399-.148.814-.148 1.247 0 .652.109 1.247.332 1.776.219.531.53.984.928 1.361.396.378.871.667 1.416.87.548.202 1.152.304 1.808.304.302 0 .577-.011.823-.035.246-.023.468-.056.664-.091.195-.036.366-.078.514-.125l.375-.14v-.854l-.463.184c-.16.056-.336.104-.521.143-.188.037-.387.069-.604.089-.213.024-.448.034-.7.034-.562 0-1.064-.088-1.509-.264-.442-.176-.816-.421-1.125-.731-.309-.314-.545-.687-.708-1.124-.161-.435-.243-.913-.243-1.432 0-.545.09-1.053.273-1.522.182-.471.435-.879.758-1.225.324-.345.708-.617 1.155-.815.446-.196.934-.294 1.457-.294.419 0 .798.044 1.122.136.329.091.62.215.871.369.254.158.465.339.643.547.179.209.324.432.438.667.113.237.193.48.246.731.051.254.076.5.076.741 0 .344-.033.653-.102.926-.068.274-.158.503-.269.694-.11.189-.239.335-.386.434s-.295.148-.453.148l-.215-.045c-.066-.029-.119-.08-.166-.156-.046-.075-.082-.177-.107-.306-.025-.126-.039-.292-.039-.492l.018-.325.041-.53.055-.644.058-.647.048-.546.027-.344h-.919l-.054.6h-.021c-.025-.103-.07-.195-.136-.281-.063-.083-.141-.155-.233-.216-.091-.061-.193-.106-.307-.141-.115-.033-.238-.048-.369-.048-.337 0-.646.07-.924.216-.281.144-.518.344-.721.599-.201.254-.355.556-.465.905-.115.35-.17.726-.17 1.134 0 .344.045.645.135.901.088.26.211.473.359.646.153.171.329.3.534.382.2.086.415.129.641.129.176 0 .342-.027.499-.081.154-.052.302-.13.432-.232.134-.104.248-.23.348-.38.102-.149.182-.323.236-.52h.027c0 .376.101.674.307.893.207.22.502.33.889.33.292 0 .58-.064.863-.198.283-.132.536-.328.762-.586.223-.262.404-.583.543-.966.138-.384.208-.83.208-1.34 0-.605-.117-1.15-.345-1.634-.231-.482-.546-.891-.939-1.225m-2.368 3.774c-.056.277-.136.517-.246.719-.109.203-.246.363-.407.481-.163.115-.354.176-.572.176-.12 0-.236-.025-.344-.078-.108-.052-.206-.13-.289-.232-.081-.103-.148-.234-.198-.39-.046-.156-.07-.337-.07-.547 0-.237.027-.481.08-.729.056-.247.137-.473.25-.677.109-.2.25-.363.416-.492.165-.127.361-.191.582-.191.123 0 .234.021.34.063.107.042.198.107.279.196.08.087.145.197.189.33.043.134.07.294.07.48 0 .317-.031.615-.08.891" fill="#C5C5C5"/><path d="M288.483 13c-.772 0-1.497-.123-2.153-.365-.678-.253-1.27-.617-1.76-1.084-.5-.475-.892-1.049-1.163-1.704-.269-.644-.407-1.371-.407-2.159 0-.517.061-1.018.178-1.49.116-.47.29-.925.516-1.348.225-.422.508-.815.844-1.167.334-.352.717-.656 1.139-.905.416-.246.881-.44 1.38-.576.492-.134 1.025-.202 1.586-.202.705 0 1.382.109 2.013.324.642.217 1.218.538 1.708.955.501.425.903.948 1.193 1.556.295.624.443 1.317.443 2.065 0 .619-.09 1.185-.268 1.679-.178.492-.42.92-.721 1.275-.331.377-.699.658-1.104.847l-.048.022v1.53l-.587.266c-.128.059-.288.117-.474.179-.193.062-.404.114-.645.159-.229.04-.477.076-.753.103-.27.027-.578.04-.917.04z" fill="#F3F3F3"/><path d="M291.716 4.041c-.396-.336-.856-.593-1.384-.771-.527-.179-1.09-.27-1.689-.27-.473 0-.912.055-1.324.167-.414.112-.791.27-1.135.473-.342.202-.65.446-.922.733-.273.286-.502.602-.686.949-.186.347-.33.722-.428 1.119-.099.4-.148.815-.148 1.247 0 .652.109 1.247.332 1.776.219.531.53.984.928 1.361.396.378.871.667 1.416.87.548.202 1.152.304 1.808.304.302 0 .577-.011.823-.035.246-.023.468-.056.664-.091.195-.036.366-.078.514-.125l.375-.14v-.854l-.463.184c-.16.056-.336.104-.521.143-.188.037-.387.069-.604.089-.213.024-.448.034-.7.034-.562 0-1.064-.088-1.509-.264-.442-.176-.816-.421-1.125-.731-.309-.314-.545-.687-.708-1.124-.161-.435-.243-.913-.243-1.432 0-.545.09-1.053.273-1.522.182-.471.435-.879.758-1.225.324-.345.708-.617 1.155-.815.446-.196.934-.294 1.457-.294.419 0 .798.044 1.122.136.329.091.62.215.871.369.254.158.465.339.643.547.179.209.324.432.438.667.113.237.193.48.246.731.051.254.076.5.076.741 0 .344-.033.653-.102.926-.068.274-.158.503-.269.694-.11.189-.239.335-.386.434s-.295.148-.453.148l-.215-.045c-.066-.029-.119-.08-.166-.156-.046-.075-.082-.177-.107-.306-.025-.126-.039-.292-.039-.492l.018-.325.041-.53.055-.644.058-.647.048-.546.027-.344h-.919l-.054.6h-.021c-.025-.103-.07-.195-.136-.281-.063-.083-.141-.155-.233-.216-.091-.061-.193-.106-.307-.141-.115-.033-.238-.048-.369-.048-.337 0-.646.07-.924.216-.281.144-.518.344-.721.599-.201.254-.355.556-.465.905-.115.35-.17.726-.17 1.134 0 .344.045.645.135.901.088.26.211.473.359.646.153.171.329.3.534.382.2.086.415.129.641.129.176 0 .342-.027.499-.081.154-.052.302-.13.432-.232.134-.104.248-.23.348-.38.102-.149.182-.323.236-.52h.027c0 .376.101.674.307.893.207.22.502.33.889.33.292 0 .58-.064.863-.198.283-.132.536-.328.762-.586.223-.262.404-.583.543-.966.138-.385.208-.831.208-1.341 0-.605-.117-1.15-.345-1.634-.231-.482-.546-.891-.939-1.225m-2.368 3.774c-.056.277-.136.517-.246.719-.109.203-.246.363-.407.481-.163.115-.354.176-.572.176-.12 0-.236-.025-.344-.078-.108-.052-.206-.13-.289-.232-.081-.103-.148-.234-.198-.39-.046-.156-.07-.337-.07-.547 0-.237.027-.481.08-.729.056-.247.137-.473.25-.677.109-.2.25-.363.416-.492.165-.127.361-.191.582-.191.123 0 .234.021.34.063.107.042.198.107.279.196.08.087.145.197.189.33.043.134.07.294.07.48 0 .317-.031.615-.08.891" fill="#424242"/><path d="M264 37v-14h8.625l3.375 3.556v10.444h-12z" fill="#2D2D2D"/><path d="M272 24h-7v12h10v-9l-3-3zm2 11h-8v-10h5v3h3v7z" fill="#C5C5C5"/><polygon points="266,25 271,25 271,28 274,28 274,35 266,35" fill="#2D2D2D"/><path d="M264 17v-14h8.625l3.375 3.556v10.444h-12z" fill="#F3F3F3"/><path d="M272 4h-7v12h10v-9l-3-3zm2 11h-8v-10h5v3h3v7z" fill="#424242"/><polygon points="266,5 271,5 271,8 274,8 274,15 266,15" fill="#F0EFF1"/><polygon points="247,34 247,30 245,30 245,26 255,26 255,34" fill="#2D2D2D"/><path d="M254 29h-8v-2h8v2zm0 1h-6v1h6v-1zm0 2h-6v1h6v-1z" fill="#C5C5C5"/><polygon points="247,14 247,10 245,10 245,6 255,6 255,14" fill="#F3F3F3"/><path d="M254 9h-8v-2h8v2zm0 1h-6v1h6v-1zm0 2h-6v1h6v-1z" fill="#424242"/><path d="M230.5 22c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5 7.5-3.357 7.5-7.5-3.357-7.5-7.5-7.5zm0 11c-1.933 0-3.5-1.566-3.5-3.5s1.567-3.5 3.5-3.5 3.5 1.566 3.5 3.5-1.567 3.5-3.5 3.5z" fill="#2D2D2D"/><path d="M224.025 29c.108-1.418.669-2.708 1.542-3.726l1.431 1.431c-.516.646-.851 1.43-.947 2.295h-2.026zm2.973 3.295c-.516-.646-.851-1.43-.947-2.295h-2.025c.108 1.418.669 2.707 1.542 3.726l1.43-1.431zm4.002-9.27v2.025c.865.097 1.649.432 2.295.947l1.431-1.431c-1.018-.872-2.308-1.432-3.726-1.541zm-3.295 2.973c.646-.516 1.43-.851 2.295-.947v-2.025c-1.418.108-2.708.669-3.726 1.542l1.431 1.43zm6.297.707c.516.646.851 1.43.947 2.295h2.025c-.108-1.418-.669-2.708-1.542-3.726l-1.43 1.431zm-4.002 7.244c-.865-.097-1.649-.432-2.295-.947l-1.431 1.431c1.018.873 2.307 1.434 3.726 1.542v-2.026zm4.949-3.949c-.097.865-.432 1.648-.947 2.295l1.431 1.431c.873-1.019 1.434-2.308 1.542-3.726h-2.026zm-1.654 3.002c-.646.516-1.43.851-2.295.947v2.025c1.419-.108 2.708-.669 3.726-1.542l-1.431-1.43z" fill="#C5C5C5"/><path d="M230.5 2c-4.143 0-7.5 3.358-7.5 7.5 0 4.143 3.357 7.5 7.5 7.5s7.5-3.357 7.5-7.5c0-4.142-3.357-7.5-7.5-7.5zm0 11c-1.933 0-3.5-1.566-3.5-3.5 0-1.933 1.567-3.5 3.5-3.5s3.5 1.567 3.5 3.5c0 1.934-1.567 3.5-3.5 3.5z" fill="#F3F3F3"/><path d="M224.025 9c.108-1.418.669-2.708 1.542-3.726l1.431 1.431c-.516.646-.851 1.43-.947 2.294h-2.026zm2.973 3.295c-.516-.646-.851-1.43-.947-2.295h-2.025c.108 1.418.669 2.707 1.542 3.726l1.43-1.431zm4.002-9.27v2.025c.865.097 1.649.432 2.295.948l1.431-1.431c-1.018-.873-2.308-1.433-3.726-1.542zm-3.295 2.974c.646-.516 1.43-.851 2.295-.948v-2.026c-1.418.108-2.708.669-3.726 1.542l1.431 1.432zm6.297.707c.516.646.851 1.43.947 2.294h2.025c-.108-1.418-.669-2.708-1.542-3.726l-1.43 1.432zm-4.002 7.243c-.865-.097-1.649-.432-2.295-.947l-1.431 1.431c1.018.873 2.307 1.434 3.726 1.542v-2.026zm4.949-3.949c-.097.865-.432 1.648-.947 2.295l1.431 1.431c.873-1.019 1.434-2.308 1.542-3.726h-2.026zm-1.654 3.002c-.646.516-1.43.851-2.295.947v2.025c1.419-.108 2.708-.669 3.726-1.542l-1.431-1.43z" fill="#424242"/><rect x="202" y="23" width="16" height="14" fill="#2D2D2D"/><path d="M203 24v12h14v-12h-14zm13 11h-12v-10h12v10zm-6-7v-1h-1v5h3v-4h-2zm1 3h-1v-2h1v2zm3-2v2h1v1h-2v-4h2v1h-1zm-6-1v4h-3v-2h1v1h1v-1h-1v-1h-1v-1h3z" fill="#C5C5C5"/><path d="M210 29h1v2h-1v-2zm-3 2v-1h-1v1h1zm9-6v10h-12v-10h12zm-8 3h-3v1h1v1h-1v2h3v-4zm4 0h-2v-1h-1v5h3v-4zm3 0h-2v4h2v-1h-1v-2h1v-1z" fill="#2D2D2D"/><rect x="202" y="3" width="16" height="14" fill="#F3F3F3"/><path d="M203 4v12h14v-12h-14zm13 11h-12v-10h12v10zm-6-7v-1h-1v5h3v-4h-2zm1 3h-1v-2h1v2zm3-2v2h1v1h-2v-4h2v1h-1zm-6-1v4h-3v-2h1v1h1v-1h-1v-1h-1v-1h3z" fill="#424242"/><path d="M210 9h1v2h-1v-2zm-3 2v-1h-1v1h1zm9-6v10h-12v-10h12zm-8 3h-3v1h1v1h-1v2h3v-4zm4 0h-2v-1h-1v5h3v-4zm3 0h-2v4h2v-1h-1v-2h1v-1z" fill="#F0EFF1"/><path d="M196.652 32.5c.811-.537 1.348-1.457 1.348-2.5 0-1.654-1.346-3-3-3-.771 0-1.468.301-2 .779v-5.779h-11v12h3.764l-1.452.727 1.481 1.48c.322.322.803.5 1.354.5.436 0 .897-.111 1.301-.313l3.144-1.572c.134.053.271.098.414.127l-.005.051c0 1.654 1.346 3 3 3s3-1.346 3-3c-.001-1.043-.538-1.963-1.349-2.5z" fill="#2D2D2D"/><path d="M195 33c-.293 0-.569.066-.82.18l-.25-.25c.042-.137.07-.279.07-.43s-.028-.293-.07-.43l.25-.25c.251.113.527.18.82.18 1.104 0 2-.896 2-2 0-1.105-.896-2-2-2s-2 .895-2 2c0 .293.066.568.18.82l-.25.25c-.137-.043-.279-.07-.43-.07-.337 0-.645.115-.895.303l-2.607-1.305-.999-.5c-.552-.275-1.223-.275-1.499.002l-.5.5 5 2.5-5 2.5.5.5c.276.275.947.275 1.5 0l1-.5 2.605-1.303c.25.188.558.303.895.303.15 0 .293-.029.43-.07l.25.25c-.114.25-.18.527-.18.82 0 1.104.896 2 2 2s2-.896 2-2c0-1.105-.896-2-2-2zm0-4c.553 0 1 .447 1 1 0 .551-.447 1-1 1s-1-.449-1-1c0-.553.447-1 1-1zm-2.5 4c-.276 0-.5-.225-.5-.5 0-.277.224-.5.5-.5s.5.223.5.5c0 .275-.224.5-.5.5zm2.5 3c-.553 0-1-.449-1-1 0-.553.447-1 1-1s1 .447 1 1c0 .551-.447 1-1 1zm-3-13v7.051c-.142.029-.279.07-.413.123l-.587-.174v-6h-7v7h-1v-8h9zm-8 10h-1v-1h1v1zm2-1h-1v1h1v-1zm2 0h-1v1h1v-1z" fill="#C5C5C5"/><path d="M185.793 28.793l-1.793 1.207v-6h7v5.381l-2.554-.777c-.816-.409-1.99-.475-2.653.189zm-.793 2.207h.764l-.764-.383v.383zm11 4c0 .551-.447 1-1 1s-1-.449-1-1c0-.553.447-1 1-1s1 .447 1 1zm-3.5-3c-.276 0-.5.223-.5.5 0 .275.224.5.5.5s.5-.225.5-.5c0-.277-.224-.5-.5-.5zm2.5-3c-.553 0-1 .447-1 1 0 .551.447 1 1 1s1-.449 1-1c0-.553-.447-1-1-1z" fill="#2D2D2D"/><path d="M196.652 12.5c.811-.538 1.348-1.458 1.348-2.5 0-1.654-1.346-3-3-3-.771 0-1.468.301-2 .779v-5.779h-11v12h3.764l-1.452.727 1.481 1.48c.322.322.803.5 1.354.5.436 0 .897-.111 1.301-.313l3.144-1.572c.134.053.271.098.414.127l-.005.051c0 1.654 1.346 3 3 3s3-1.346 3-3c-.001-1.043-.538-1.963-1.349-2.5z" fill="#F3F3F3"/><path d="M195 13c-.293 0-.569.066-.82.18l-.25-.25c.042-.137.07-.279.07-.43s-.028-.293-.07-.43l.25-.25c.251.113.527.18.82.18 1.104 0 2-.896 2-2 0-1.105-.896-2-2-2s-2 .895-2 2c0 .293.066.568.18.82l-.25.25c-.137-.043-.279-.07-.43-.07-.337 0-.645.115-.895.303l-2.607-1.304-.999-.5c-.552-.275-1.223-.275-1.499.002l-.5.499 5 2.5-5 2.5.5.5c.276.275.947.275 1.5 0l1-.5 2.605-1.303c.25.188.558.303.895.303.15 0 .293-.029.43-.07l.25.25c-.113.25-.18.527-.18.82 0 1.104.896 2 2 2s2-.896 2-2c0-1.106-.896-2-2-2zm0-4c.553 0 1 .447 1 1 0 .551-.447 1-1 1s-1-.449-1-1c0-.553.447-1 1-1zm-2.5 4c-.276 0-.5-.225-.5-.5 0-.277.224-.5.5-.5s.5.223.5.5c0 .275-.224.5-.5.5zm2.5 3c-.553 0-1-.449-1-1 0-.553.447-1 1-1s1 .447 1 1c0 .55-.447 1-1 1zm-3-13v7.051c-.142.029-.279.07-.413.123l-.587-.174v-6h-7v7h-1v-8h9zm-8 10h-1v-1h1v1zm2-1h-1v1h1v-1zm2 0h-1v1h1v-1z" fill="#424242"/><path d="M185.793 8.793l-1.793 1.207v-6h7v5.381l-2.554-.777c-.816-.409-1.99-.475-2.653.189zm-.793 2.207h.764l-.764-.383v.383zm11 4c0 .551-.447 1-1 1s-1-.449-1-1c0-.553.447-1 1-1s1 .447 1 1zm-3.5-3c-.276 0-.5.223-.5.5 0 .275.224.5.5.5s.5-.225.5-.5c0-.278-.224-.5-.5-.5zm2.5-3c-.553 0-1 .447-1 1 0 .551.447 1 1 1s1-.449 1-1c0-.553-.447-1-1-1z" fill="#F0EFF1"/><path d="M178 27v-3h-7v-1h-9v14h13v-3h3v-3h-1v-3h-6v-1h7zm-8 7v-3h1v3h-1z" fill="#2D2D2D"/><path d="M177 26h-5v-1h5v1zm-1 3h-2v1h2v-1zm-4 0h-9v1h9v-1zm2 6h-11v1h11v-1zm-5-3h-6v1h6v-1zm8 0h-5v1h5v-1zm-7-8v3h-7v-3h7zm-1 1h-5v1h5v-1z" fill="#C5C5C5"/><rect x="164" y="25" width="5" height="1" fill="#2D2D2D"/><path d="M178 7v-3h-7v-1h-9v14h13v-3h3v-3h-1v-3h-6v-1h7zm-8 7v-3h1v3h-1z" fill="#F3F3F3"/><path d="M177 6h-5v-1h5v1zm-1 3h-2v1h2v-1zm-4 0h-9v1h9v-1zm2 6h-11v1h11v-1zm-5-3h-6v1h6v-1zm8 0h-5v1h5v-1zm-7-8v3h-7v-3h7zm-1 1h-5v1h5v-1z" fill="#424242"/><rect x="164" y="5" width="5" height="1" fill="#F0EFF1"/><polygon points="154.414,24 149.586,24 148,25.586 148,28 144,28 144,35 152,35 152,31 154.414,31 156,29.414 156,25.586" fill="#2D2D2D"/><g fill="#75BEFF"><path d="M154 25h-4l-1 1v2h5v1h-2v1h2l1-1v-3l-1-1zm0 2h-4v-1h4v1zM145 34h6v-5h-6v5zm1-3h4v1h-4v-1z"/></g><g fill="#2D2D2D"><rect x="146" y="31" width="4" height="1"/><rect x="150" y="26" width="4" height="1"/><rect x="152" y="28" width="2" height="1"/></g><polygon points="154.414,4 149.586,4 148,5.586 148,8 144,8 144,15 152,15 152,11 154.414,11 156,9.414 156,5.586" fill="#F3F3F3"/><g fill="#00539C"><path d="M154 5h-4l-1 1v2h5v1h-2v1h2l1-1v-3l-1-1zm0 2h-4v-1h4v1zM145 14h6v-5h-6v5zm1-3h4v1h-4v-1z"/></g><g fill="#F0EFF1"><rect x="146" y="11" width="4" height="1"/><rect x="150" y="6" width="4" height="1"/><rect x="152" y="8" width="2" height="1"/></g><path d="M138 24h-15v4h-1v8h8v-6h8v-6zm-11 9h-2v-2h2v2z" fill="#2D2D2D"/><path d="M137 29h-7v-1h-6v-3h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v4zm-12 1v-1h-2v6h2v-1h-1v-4h1zm2 4v1h2v-6h-2v1h1v4h-1z" fill="#C5C5C5"/><path d="M125 27v-2h1v2h-1zm3 0v-2h-1v2h1zm2 0v-2h-1v2h1zm2 0v-2h-1v2h1zm2 0v-2h-1v2h1zm2 0v-2h-1v2h1z" fill="#2D2D2D"/><path d="M138 4h-15v4h-1v8h8v-6h8v-6zm-11 9h-2v-2h2v2z" fill="#F3F3F3"/><path d="M137 9h-7v-1h-6v-3h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v2h1v-2h1v4zm-12 1v-1h-2v6h2v-1h-1v-4h1zm2 4v1h2v-6h-2v1h1v4h-1z" fill="#424242"/><path d="M125 7v-2h1v2h-1zm3 0v-2h-1v2h1zm2 0v-2h-1v2h1zm2 0v-2h-1v2h1zm2 0v-2h-1v2h1zm2 0v-2h-1v2h1z" fill="#F0EFF1"/><path d="M110.449 23c-1.637 0-3.075.797-3.987 2.012l.001.002c-.628.836-1.014 1.863-1.014 2.986 0 .469.067.933.2 1.385l-2.907 2.908c-.687.686-1.253 2.161 0 3.414.609.609 1.244.736 1.67.736.958 0 1.621-.613 1.744-.736l2.907-2.908c.453.133.917.201 1.386.201 1.123 0 2.149-.387 2.985-1.014l.002.001c1.216-.912 2.013-2.352 2.013-3.987 0-2.762-2.238-5-5-5z" fill="#2D2D2D"/><path d="M114.09 26.359l-2.641 2.641-2-2 2.641-2.641c-.502-.227-1.055-.359-1.641-.359-2.209 0-4 1.791-4 4 0 .586.133 1.139.359 1.64l-3.359 3.36s-1 1 0 2h2l3.359-3.36c.502.227 1.055.36 1.641.36 2.209 0 4-1.791 4-4 0-.586-.133-1.139-.359-1.641z" fill="#C5C5C5"/><path d="M110.449 3c-1.637 0-3.075.797-3.987 2.012l.001.002c-.628.836-1.014 1.863-1.014 2.986 0 .469.067.933.2 1.385l-2.907 2.908c-.687.686-1.253 2.161 0 3.414.609.609 1.244.736 1.67.736.958 0 1.621-.613 1.744-.736l2.907-2.908c.453.133.917.201 1.386.201 1.123 0 2.149-.387 2.985-1.014l.002.001c1.216-.912 2.013-2.352 2.013-3.987 0-2.762-2.238-5-5-5z" fill="#F3F3F3"/><path d="M114.09 6.359l-2.641 2.641-2-2 2.641-2.641c-.502-.226-1.055-.359-1.641-.359-2.209 0-4 1.791-4 4 0 .586.133 1.139.359 1.64l-3.359 3.36s-1 1 0 2h2l3.359-3.36c.502.227 1.055.36 1.641.36 2.209 0 4-1.791 4-4 0-.586-.133-1.139-.359-1.641z" fill="#424242"/><path d="M89 33h1v-1c0-.537.741-1.613 1-2-.259-.389-1-1.467-1-2v-1h-1v-3h1c1.969.021 3 1.277 3 3v1l1 1v2l-1 1v1c0 1.709-1.031 2.979-3 3h-1v-3zm-2 0h-1v-1c0-.537-.741-1.613-1-2 .259-.389 1-1.467 1-2v-1h1v-3h-1c-1.969.021-3 1.277-3 3v1l-1 1v2l1 1v1c0 1.709 1.317 2.979 3.286 3h.714v-3z" fill="#2D2D2D"/><path d="M91 33v-1c0-.834.496-1.738 1-2-.504-.27-1-1.168-1-2v-1c0-.84-.584-1-1-1v-1c2.083 0 2 1.166 2 2v1c0 .969.703.98 1 1v2c-.322.02-1 .053-1 1v1c0 .834.083 2-2 2v-1c.833 0 1-1 1-1zm-6 0v-1c0-.834-.496-1.738-1-2 .504-.27 1-1.168 1-2v-1c0-.84.584-1 1-1v-1c-2.083 0-2 1.166-2 2v1c0 .969-.703.98-1 1v2c.322.02 1 .053 1 1v1c0 .834-.083 2 2 2v-1c-.833 0-1-1-1-1z" fill="#C5C5C5"/><path d="M89 13h1v-1c0-.537.741-1.613 1-2-.259-.389-1-1.467-1-2v-1h-1v-3h1c1.969.021 3 1.277 3 3v1l1 1v2l-1 1v1c0 1.709-1.031 2.979-3 3h-1v-3zm-2 0h-1v-1c0-.537-.741-1.613-1-2 .259-.389 1-1.467 1-2v-1h1v-3h-1c-1.969.021-3 1.277-3 3v1l-1 1v2l1 1v1c0 1.709 1.317 2.979 3.286 3h.714v-3z" fill="#F3F3F3"/><path d="M91 13v-1c0-.834.496-1.738 1-2-.504-.27-1-1.168-1-2v-1c0-.84-.584-1-1-1v-1c2.083 0 2 1.166 2 2v1c0 .969.703.98 1 1v2c-.322.02-1 .053-1 1v1c0 .834.083 2-2 2v-1c.833 0 1-1 1-1zm-6 0v-1c0-.834-.496-1.738-1-2 .504-.27 1-1.168 1-2v-1c0-.84.584-1 1-1v-1c-2.083 0-2 1.166-2 2v1c0 .969-.703.98-1 1v2c.322.02 1 .053 1 1v1c0 .834-.083 2 2 2v-1c-.833 0-1-1-1-1z" fill="#424242"/><path d="M73.5 34c-1.914 0-3.601-1.242-4.227-3h-1.683c-.524.91-1.503 1.5-2.591 1.5-1.654 0-3-1.346-3-3s1.346-3 3-3c1.088 0 2.066.588 2.591 1.5h1.683c.626-1.76 2.313-3 4.227-3 2.481 0 4.5 2.018 4.5 4.5 0 2.48-2.019 4.5-4.5 4.5z" fill="#2D2D2D"/><path d="M73.5 26c-1.759 0-3.204 1.308-3.449 3h-3.122c-.223-.861-.998-1.5-1.929-1.5-1.104 0-2 .895-2 2 0 1.104.896 2 2 2 .931 0 1.706-.639 1.929-1.5h3.122c.245 1.691 1.69 3 3.449 3 1.93 0 3.5-1.57 3.5-3.5 0-1.931-1.57-3.5-3.5-3.5zm0 5c-.827 0-1.5-.674-1.5-1.5 0-.828.673-1.5 1.5-1.5s1.5.672 1.5 1.5c0 .826-.673 1.5-1.5 1.5z" fill="#75BEFF"/><circle cx="73.5" cy="29.5" r="1.5" fill="#2D2D2D"/><path d="M73.5 14c-1.914 0-3.601-1.242-4.227-3h-1.683c-.524.91-1.503 1.5-2.591 1.5-1.654 0-3-1.346-3-3s1.346-3 3-3c1.088 0 2.066.588 2.591 1.5h1.683c.626-1.76 2.313-3 4.227-3 2.481 0 4.5 2.018 4.5 4.5 0 2.48-2.019 4.5-4.5 4.5z" fill="#F3F3F3"/><path d="M73.5 6c-1.759 0-3.204 1.308-3.449 3h-3.122c-.223-.861-.998-1.5-1.929-1.5-1.104 0-2 .895-2 2 0 1.104.896 2 2 2 .931 0 1.706-.639 1.929-1.5h3.122c.245 1.691 1.69 3 3.449 3 1.93 0 3.5-1.57 3.5-3.5 0-1.931-1.57-3.5-3.5-3.5zm0 5c-.827 0-1.5-.674-1.5-1.5 0-.828.673-1.5 1.5-1.5s1.5.672 1.5 1.5c0 .826-.673 1.5-1.5 1.5z" fill="#00539C"/><circle cx="73.5" cy="9.5" r="1.5" fill="#F0EFF1"/><path d="M58 28.586l-3-3-1.414 1.414h-2.172l1-1-4-4h-.828l-5.586 5.586v.828l4 4 2.414-2.414h.586v5h1.586l3 3h.828l3.586-3.586v-.828l-2.086-2.086 2.086-2.086v-.828z" fill="#2D2D2D"/><polygon points="53.998,33.002 51,33 51,29 53,29 52,30 54,32 57,29 55,27 54,28 49,28 51,26 48,23 43,28 46,31 48,29 50,29 50,34 53,34 52,35 54,37 57,34 55,32" fill="#C27D1A"/><path d="M58 8.586l-3-3-1.414 1.414h-2.172l1-1-4-4h-.828l-5.586 5.586v.828l4 4 2.414-2.414h.586v5h1.586l3 3h.828l3.586-3.586v-.828l-2.086-2.086 2.086-2.086v-.828z" fill="#F3F3F3"/><polygon points="53.998,13.002 51,13 51,9 53,9 52,10 54,12 57,9 55,7 54,8 49,8 51,6 48,3 43,8 46,11 48,9 50,9 50,14 53,14 52,15 54,17 57,14 55,12" fill="#C27D1A"/><path d="M29.263 24l4.737 2.369v5.236l-6.791 3.395h-.42l-4.789-2.395v-5.236l6.739-3.369h.524z" fill="#2D2D2D"/><path d="M23 28v4l4 2 6-3v-4l-4-2-6 3zm4 1l-2-1 4-2 2 1-4 2z" fill="#75BEFF"/><path d="M29 26l2 1-4 2-2-1 4-2z" fill="#2D2D2D"/><path d="M29.263 4l4.737 2.369v5.236l-6.791 3.395h-.42l-4.789-2.395v-5.236l6.739-3.369h.524z" fill="#F3F3F3"/><path d="M23 8v4l4 2 6-3v-4l-4-2-6 3zm4 1l-2-1 4-2 2 1-4 2z" fill="#00539C"/><path d="M29 6l2 1-4 2-2-1 4-2z" fill="#F0EFF1"/><polygon points="2,27.308 2,32.692 7.209,36 7.791,36 13,32.692 13,27.308 7.791,24 7.209,24" fill="#2D2D2D"/><path d="M7.5 25l-4.5 2.857v4.285l4.5 2.858 4.5-2.857v-4.285l-4.5-2.858zm-.5 8.498l-3-1.905v-2.815l3 1.905v2.815zm-2.358-5.498l2.858-1.815 2.858 1.815-2.858 1.815-2.858-1.815zm6.358 3.593l-3 1.905v-2.815l3-1.905v2.815z" fill="#B180D7"/><polygon points="10.358,28 7.5,29.815 4.642,28 7.5,26.185" fill="#2D2D2D"/><polygon points="4,28.777 7,30.683 7,33.498 4,31.593" fill="#2D2D2D"/><polygon points="8,33.498 8,30.683 11,28.777 11,31.593" fill="#2D2D2D"/><polygon points="2,7.308 2,12.692 7.209,16 7.791,16 13,12.692 13,7.308 7.791,4 7.209,4" fill="#F3F3F3"/><path d="M7.5 5l-4.5 2.857v4.285l4.5 2.858 4.5-2.857v-4.286l-4.5-2.857zm-.5 8.498l-3-1.905v-2.816l3 1.905v2.816zm-2.358-5.498l2.858-1.815 2.858 1.815-2.858 1.815-2.858-1.815zm6.358 3.593l-3 1.905v-2.815l3-1.905v2.815z" fill="#652D90"/><polygon points="10.358,8 7.5,9.815 4.642,8 7.5,6.185" fill="#F0EFF1"/><polygon points="4,8.777 7,10.683 7,13.498 4,11.593" fill="#F0EFF1"/><polygon points="8,13.498 8,10.683 11,8.777 11,11.593" fill="#F0EFF1"/></svg>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment