31
README.md
|
@ -1,5 +1,5 @@
|
|||
# MISP-Dashboard
|
||||
A Dashboard showing live data and statistics from the MISP ZMQ
|
||||
An experimental Dashboard showing live data and statistics from the MISP ZMQ
|
||||
|
||||
## Installation
|
||||
- Launch ```./install_dependencies.sh``` from the MISP-Dashboard directory
|
||||
|
@ -27,3 +27,32 @@ optional arguments:
|
|||
-u ZMQURL, --url ZMQURL
|
||||
The URL to connect to
|
||||
```
|
||||
|
||||
## License
|
||||
Images and logos are handmade for:
|
||||
- rankingMISPOrg/
|
||||
- rankingMISPMonthly/
|
||||
- MISPHonorableIcons/
|
||||
|
||||
Note that:
|
||||
- Part of ```MISPHonorableIcons/1.svg``` comes from [octicons.github.com](https://octicons.github.com/icon/git-pull-request/) (CC0 - No Rights Reserved)
|
||||
- Part of ```MISPHonorableIcons/2.svg``` comes from [Zeptozephyr](https://zeptozephyr.deviantart.com/art/Vectored-Portal-Icons-207347804) (CC0 - No Rights Reserved)
|
||||
|
||||
```
|
||||
Copyright (C) 2017 CIRCL - Computer Incident Response Center Luxembourg (c/o smile, security made in Lëtzebuerg, Groupement d'Intérêt Economique)
|
||||
Copyright (c) 2017 Sami Mokaddem
|
||||
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
```
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
[Dashboard]
|
||||
#hours
|
||||
graph_log_refresh_rate = 1
|
||||
#sec
|
||||
rotation_wait_time = 30
|
||||
max_img_rotation = 10
|
||||
hours_spanned = 48
|
||||
zoomlevel = 15
|
||||
item_to_plot = Attribute.category
|
||||
# [1->12]
|
||||
size_dashboard_left_width = 5
|
||||
size_openStreet_pannel_perc = 55
|
||||
size_world_pannel_perc = 35
|
||||
|
||||
[GEO]
|
||||
#min
|
||||
updateFrequency = 60
|
||||
zoomlevel = 11
|
||||
# ~meter
|
||||
clusteringDistance = 10
|
||||
|
||||
[Log]
|
||||
field_to_plot = Attribute.category
|
||||
fieldname_order=["Event.id", "Attribute.Tag", "Attribute.category", "Attribute.type", ["Attribute.value", "Attribute.comment"]]
|
||||
char_separator=||
|
||||
|
||||
[RedisGlobal]
|
||||
host=localhost
|
||||
port=6251
|
||||
|
||||
[RedisLog]
|
||||
db=0
|
||||
channel=1
|
||||
#zmq_url=tcp://localhost:50000
|
||||
zmq_url=tcp://192.168.56.50:50000
|
||||
|
||||
[RedisMap]
|
||||
db=1
|
||||
channelProc=CoordToProcess
|
||||
channelDisp=PicToDisplay
|
||||
pathMaxMindDB=./data/GeoLite2-City_20171003/GeoLite2-City.mmdb
|
||||
|
||||
[RedisDB]
|
||||
db=2
|
|
@ -19,6 +19,17 @@ zoomlevel = 11
|
|||
# ~meter
|
||||
clusteringDistance = 10
|
||||
|
||||
[CONTRIB]
|
||||
max_number_of_last_contributor = 10
|
||||
min_between_reload = 5
|
||||
#How much harder it gets to rank up (exponential multiplier) [1.5 -> +inf]
|
||||
rankMultiplier = 2
|
||||
categories_in_datatable = ["internal_reference", "targeting_data", "antivirus_detection", "payload_delivery", "artifacts_dropped", "payload_installation", "persistence_mechanism", "network_activity", "payload_type", "attribution", "external_analysis", "financial_fraud", "support_Tool", "social_network", "person", "other" ]
|
||||
default_pnts_per_contribution = 1
|
||||
# array of the form [[category, pntsRcv], ...]
|
||||
pnts_per_contribution = [["payload_delivery", 1], ["artifact_dropped", 1], ["network_activity", 1]]
|
||||
additional_help_text = ["Sightings multiplies earned points by 2", "Editing an attribute earns you the same as creating one"]
|
||||
|
||||
[Log]
|
||||
field_to_plot = Attribute.category
|
||||
fieldname_order=["Event.id", "Attribute.Tag", "Attribute.category", "Attribute.type", ["Attribute.value", "Attribute.comment"]]
|
||||
|
@ -27,12 +38,15 @@ char_separator=||
|
|||
[RedisGlobal]
|
||||
host=localhost
|
||||
port=6251
|
||||
#misp_web_url = http://192.168.56.50
|
||||
misp_web_url = http://localhost
|
||||
#zmq_url=tcp://192.168.56.50:50000
|
||||
zmq_url=tcp://localhost:50000
|
||||
|
||||
[RedisLog]
|
||||
db=0
|
||||
channel=1
|
||||
zmq_url=tcp://localhost:50000
|
||||
#zmq_url=tcp://192.168.56.50:50000
|
||||
channelLastContributor = lastContributor
|
||||
|
||||
[RedisMap]
|
||||
db=1
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
[rankTitle]
|
||||
maxLevel=16
|
||||
1=Ensign
|
||||
2=Junior Lieutenant
|
||||
3=Second Lieutenant
|
||||
4=Lieutenant
|
||||
5=Senior Lieutenant
|
||||
6=Captain
|
||||
7=Senior Captain
|
||||
8=Major
|
||||
9=Lieutenant Colonel
|
||||
10=Colonel
|
||||
11=Senior Colonel
|
||||
12=Major General
|
||||
13=Lieutenant General
|
||||
14=General
|
||||
15=Marshal
|
||||
16=Grand General
|
||||
|
||||
[rankRequirementsPnts]
|
||||
1=2
|
||||
2=4
|
||||
3=8
|
||||
4=16
|
||||
5=32
|
||||
6=64
|
||||
7=128
|
||||
8=256
|
||||
9=512
|
||||
10=1024
|
||||
11=2048
|
||||
12=4096
|
||||
13=8192
|
||||
14=16384
|
||||
15=0
|
||||
16=0
|
||||
|
||||
[rankRequirementsMisc]
|
||||
heavilyCount=10
|
||||
recentDays=31
|
||||
regularlyDays=7
|
||||
|
||||
[rankRequirementsText]
|
||||
1=Contributing via sighting at least once a year
|
||||
2=Contributing via attributes or objects to events at least once a year
|
||||
3=Contributing via proposals or discussions at least once a year
|
||||
|
||||
4=Contributing via sighting to recent events
|
||||
5=Contributing proposals to recent events
|
||||
|
||||
6=Contributing by creating new events at least once a year
|
||||
7=Contributing by creating new events at least once a month
|
||||
8=Regularly creating events
|
||||
9=Regularly creating events with classification
|
||||
|
||||
10=Heavily contributing via sighting to recent events
|
||||
11=Heavily adding attributes or objects to recent events
|
||||
12=Heavily contributing proposals to recent events
|
||||
13=Heavily posting events
|
||||
14=Heavily posting events with classification
|
||||
|
||||
15=Heavily contributing quality content (delivered by instance administrators)
|
||||
16=Honorable contributor (delivered by instance administrators)
|
||||
|
||||
[HonorBadge]
|
||||
1=Has made at least one pull request on the MISP project
|
||||
2=Is a donator for the MISP project
|
||||
|
||||
[additionalInfo]
|
||||
textsArray=["Proposals means either edition, acceptation or rejection", "Recent events means event aged of one month at max", "Regularly means at least one per week" ,"Heavily means at least 10 per week", "Classification means correct tagging", "The contribution rank is set such that it equals to: rank=requirement_fulfilled-requirement_not_fulfilled"]
|
|
@ -0,0 +1,585 @@
|
|||
import util
|
||||
import math, random
|
||||
import os
|
||||
import configparser
|
||||
import json
|
||||
import datetime
|
||||
|
||||
class Contributor_helper:
|
||||
def __init__(self, serv_redis_db, cfg):
|
||||
self.serv_redis_db = serv_redis_db
|
||||
self.cfg = cfg
|
||||
self.cfg_org_rank = configparser.ConfigParser()
|
||||
self.cfg_org_rank.read(os.path.join(os.environ['DASH_CONFIG'], 'ranking.cfg'))
|
||||
|
||||
#honorBadge
|
||||
self.honorBadgeNum = len(self.cfg_org_rank.options('HonorBadge'))
|
||||
self.heavilyCount = self.cfg_org_rank.getint('rankRequirementsMisc', 'heavilyCount')
|
||||
self.recentDays = self.cfg_org_rank.getint('rankRequirementsMisc', 'recentDays')
|
||||
self.regularlyDays = self.cfg_org_rank.getint('rankRequirementsMisc', 'regularlyDays')
|
||||
|
||||
self.org_honor_badge_title = {}
|
||||
for badgeNum in range(1, self.honorBadgeNum+1): #get Num of honorBadge
|
||||
self.org_honor_badge_title[badgeNum] = self.cfg_org_rank.get('HonorBadge', str(badgeNum))
|
||||
|
||||
#GLOBAL RANKING
|
||||
self.org_rank_maxLevel = self.cfg_org_rank.getint('rankTitle', 'maxLevel')
|
||||
self.org_rank = {}
|
||||
for rank in range(1, self.org_rank_maxLevel+1):
|
||||
self.org_rank[rank] = self.cfg_org_rank.get('rankTitle', str(rank))
|
||||
self.org_rank_requirement_pnts = {}
|
||||
for rank in range(1, self.org_rank_maxLevel+1):
|
||||
self.org_rank_requirement_pnts[rank] = self.cfg_org_rank.getint('rankRequirementsPnts', str(rank))
|
||||
self.org_rank_requirement_text = {}
|
||||
for rank in range(1, self.org_rank_maxLevel+1):
|
||||
self.org_rank_requirement_text[rank] = self.cfg_org_rank.get('rankRequirementsText', str(rank))
|
||||
self.org_rank_additional_info = json.loads(self.cfg_org_rank.get('additionalInfo', 'textsArray'))
|
||||
|
||||
#WEB STUFF
|
||||
self.misp_web_url = cfg.get('RedisGlobal', 'misp_web_url')
|
||||
self.MAX_NUMBER_OF_LAST_CONTRIBUTOR = cfg.getint('CONTRIB', 'max_number_of_last_contributor')
|
||||
self.categories_in_datatable = json.loads(cfg.get('CONTRIB', 'categories_in_datatable'))
|
||||
|
||||
#MONTHLY RANKING
|
||||
self.default_pnts_per_contribution = json.loads(cfg.get('CONTRIB', 'default_pnts_per_contribution'))
|
||||
temp = json.loads(cfg.get('CONTRIB', 'pnts_per_contribution'))
|
||||
self.DICO_PNTS_REWARD = {}
|
||||
for categ, pnts in temp:
|
||||
self.DICO_PNTS_REWARD[categ] = pnts
|
||||
# fill other categ with default points
|
||||
for categ in self.categories_in_datatable:
|
||||
if categ in self.DICO_PNTS_REWARD:
|
||||
continue
|
||||
else:
|
||||
self.DICO_PNTS_REWARD[categ] = self.default_pnts_per_contribution
|
||||
|
||||
self.rankMultiplier = cfg.getfloat('CONTRIB' ,'rankMultiplier')
|
||||
self.levelMax = 16
|
||||
|
||||
|
||||
''' HELPER '''
|
||||
def getOrgLogoFromMISP(self, org):
|
||||
return "{}/img/orgs/{}.png".format(self.misp_web_url, org)
|
||||
|
||||
def getZrange(self, keyCateg, date, topNum, endSubkey=""):
|
||||
date_str = util.getDateStrFormat(date)
|
||||
keyname = "{}:{}{}".format(keyCateg, date_str, endSubkey)
|
||||
data = self.serv_redis_db.zrange(keyname, 0, topNum-1, desc=True, withscores=True)
|
||||
data = [ [record[0].decode('utf8'), record[1]] for record in data ]
|
||||
return data
|
||||
|
||||
def addContributionToCateg(self, date, categ, org, count=1):
|
||||
today_str = util.getDateStrFormat(date)
|
||||
keyname = "CONTRIB_CATEG:{}:{}".format(today_str, categ)
|
||||
self.serv_redis_db.zincrby(keyname, org, count)
|
||||
|
||||
''' CONTRIBUTION RANK '''
|
||||
def getOrgContributionTotalPoints(self, org):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
pnts = self.serv_redis_db.get(keyname.format(org=org, orgCateg='points'))
|
||||
if pnts is None:
|
||||
pnts = 0
|
||||
else:
|
||||
pnts = int(pnts.decode('utf8'))
|
||||
return pnts
|
||||
|
||||
# return: [final_rank, requirement_fulfilled, requirement_not_fulfilled]
|
||||
def getOrgContributionRank(self, org):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
final_rank = 0
|
||||
requirement_fulfilled = []
|
||||
requirement_not_fulfilled = []
|
||||
for i in range(1, self.org_rank_maxLevel+1):
|
||||
key = keyname.format(org=org, orgCateg='CONTRIB_REQ_'+str(i))
|
||||
if self.serv_redis_db.get(key) is None: #non existing
|
||||
requirement_not_fulfilled.append(i)
|
||||
else:
|
||||
requirement_fulfilled.append(i)
|
||||
final_rank += 1
|
||||
#num_of_previous_req_not_fulfilled = len([x for x in requirement_not_fulfilled if x<final_rank])
|
||||
#final_rank = final_rank - num_of_previous_req_not_fulfilled
|
||||
final_rank = len(requirement_fulfilled)
|
||||
return {'final_rank': final_rank, 'req_fulfilled': requirement_fulfilled, 'req_not_fulfilled': requirement_not_fulfilled}
|
||||
|
||||
def giveContribRankToOrg(self, org, rankNum):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
self.serv_redis_db.set(keyname.format(org=org, orgCateg='CONTRIB_REQ_'+str(rankNum)), 1)
|
||||
|
||||
def removeContribRankFromOrg(self, org, rankNum):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
self.serv_redis_db.delete(keyname.format(org=org, orgCateg='CONTRIB_REQ_'+str(rankNum)))
|
||||
|
||||
# 1 for fulfilled, 0 for not fulfilled, -1 for not relevant
|
||||
def getCurrentContributionStatus(self, org):
|
||||
temp = self.getOrgContributionRank(org)
|
||||
final_rank = temp['final_rank']
|
||||
requirement_fulfilled = temp['req_fulfilled']
|
||||
requirement_not_fulfilled = temp['req_not_fulfilled']
|
||||
to_ret = {}
|
||||
for i in range(1, self.org_rank_maxLevel+1):
|
||||
if i in requirement_fulfilled:
|
||||
to_ret[i] = 1
|
||||
elif i in requirement_not_fulfilled and i<=final_rank:
|
||||
to_ret[i] = 0
|
||||
else:
|
||||
to_ret[i] = -1
|
||||
return {'rank': final_rank, 'status': to_ret, 'totPoints': self.getOrgContributionTotalPoints(org)}
|
||||
|
||||
def updateOrgContributionRank(self, orgName, pnts_to_add, action, contribType, eventTime, isLabeled):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
# update total points
|
||||
totOrgPnts = self.serv_redis_db.incrby(keyname.format(org=orgName, orgCateg='points'), pnts_to_add)
|
||||
|
||||
# update date variables
|
||||
if contribType == 'Attribute':
|
||||
attributeWeekCount = self.serv_redis_db.incrby(keyname.format(org=orgName, orgCateg='ATTR_WEEK_COUNT'), 1)
|
||||
self.serv_redis_db.expire(keyname.format(org=orgName, orgCateg='ATTR_WEEK_COUNT'), util.ONE_DAY*7)
|
||||
|
||||
if contribType == 'Proposal':
|
||||
proposalWeekCount = self.serv_redis_db.incrby(keyname.format(org=orgName, orgCateg='PROP_WEEK_COUNT'), 1)
|
||||
self.serv_redis_db.expire(keyname.format(org=orgName, orgCateg='PROP_WEEK_COUNT'), util.ONE_DAY*7)
|
||||
addContributionToCateg(datetime.datetime.now(), 'proposal')
|
||||
|
||||
if contribType == 'Sighting':
|
||||
sightingWeekCount = self.serv_redis_db.incrby(keyname.format(org=orgName, orgCateg='SIGHT_WEEK_COUNT'), 1)
|
||||
self.serv_redis_db.expire(keyname.format(org=orgName, orgCateg='SIGHT_WEEK_COUNT'), util.ONE_DAY*7)
|
||||
self.addContributionToCateg(datetime.datetime.now(), 'sighting', orgName)
|
||||
|
||||
if contribType == 'Discussion':
|
||||
self.addContributionToCateg(datetime.datetime.now(), 'discussion', orgName)
|
||||
|
||||
if contribType == 'Event':
|
||||
eventWeekCount = self.serv_redis_db.incrby(keyname.format(org=orgName, orgCateg='EVENT_WEEK_COUNT'), 1)
|
||||
self.serv_redis_db.expire(keyname.format(org=orgName, orgCateg='EVENT_WEEK_COUNT'), util.ONE_DAY*7)
|
||||
|
||||
eventMonthCount = self.serv_redis_db.incrby(keyname.format(org=orgName, orgCateg='EVENT_MONTH_COUNT'), 1)
|
||||
self.serv_redis_db.expire(keyname.format(org=orgName, orgCateg='EVENT_MONTH_COUNT'), util.ONE_DAY*7)
|
||||
|
||||
# getRequirement parameters
|
||||
heavilyCount = self.heavilyCount
|
||||
recentDays = self.recentDays
|
||||
regularlyDays = self.regularlyDays
|
||||
isRecent = (datetime.datetime.now() - eventTime).days > recentDays
|
||||
|
||||
print("contribType: {}, action: {}".format(contribType, action))
|
||||
print("isLabeled: {}, isRecent: {}, totOrgPnts".format(isLabeled, isRecent, totOrgPnts))
|
||||
#update contribution Requirement
|
||||
contrib = [] #[[contrib_level, contrib_ttl], [], ...]
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[1] and contribType == 'Sighting':
|
||||
#[contrib_level, contrib_ttl]
|
||||
contrib.append([1, util.ONE_DAY*365])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[2] and contribType == 'Attribute' or contribType == 'Object':
|
||||
contrib.append([2, util.ONE_DAY*365])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[3] and contribType == 'Proposal' or contribType == 'Discussion':
|
||||
contrib.append([3, util.ONE_DAY*365])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[4] and contribType == 'Sighting' and isRecent:
|
||||
contrib.append([4, util.ONE_DAY*recentDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[5] and contribType == 'Proposal' and isRecent:
|
||||
contrib.append([5, util.ONE_DAY*recentDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[6] and contribType == 'Event':
|
||||
contrib.append([6, util.ONE_DAY*365])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[7] and contribType == 'Event' and eventMonthCount>=1:
|
||||
contrib.append([7, util.ONE_DAY*recentDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[8] and contribType == 'Event' and eventWeekCount>=1:
|
||||
contrib.append([8, util.ONE_DAY*regularlyDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[9] and contribType == 'Event' and isLabeled:
|
||||
contrib.append([9, util.ONE_DAY*regularlyDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[10] and contribType == 'Sighting' and sightingWeekCount>heavilyCount:
|
||||
contrib.append([10, util.ONE_DAY*regularlyDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[11] and (contribType == 'Attribute' or contribType == 'Object') and attributeWeekCount>heavilyCount:
|
||||
contrib.append([11, util.ONE_DAY*regularlyDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[12] and contribType == 'Proposal' and proposalWeekCount>heavilyCount:
|
||||
contrib.append([12, util.ONE_DAY*regularlyDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[13] and contribType == 'Event' and eventWeekCount>heavilyCount:
|
||||
contrib.append([13, util.ONE_DAY*regularlyDays])
|
||||
if totOrgPnts >= self.org_rank_requirement_pnts[14] and contribType == 'Event' and eventWeekCount>heavilyCount and isLabeled:
|
||||
contrib.append([14, util.ONE_DAY*regularlyDays])
|
||||
|
||||
print([r for r, ttl in contrib])
|
||||
for rankReq, ttl in contrib:
|
||||
self.serv_redis_db.set(keyname.format(org=orgName, orgCateg='CONTRIB_REQ_'+str(rankReq)), 1)
|
||||
self.serv_redis_db.expire(keyname.format(org=orgName, orgCateg='CONTRIB_REQ_'+str(rankReq)), ttl)
|
||||
|
||||
''' HONOR BADGES '''
|
||||
def getOrgHonorBadges(self, org):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
honorBadge = []
|
||||
for i in range(1, self.honorBadgeNum+1):
|
||||
key = keyname.format(org=org, orgCateg='BADGE_'+str(i))
|
||||
if self.serv_redis_db.get(key) is not None: #existing
|
||||
honorBadge.append(i)
|
||||
return honorBadge
|
||||
|
||||
def giveBadgeToOrg(self, org, badgeNum):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
self.serv_redis_db.set(keyname.format(org=org, orgCateg='BADGE_'+str(badgeNum)), 1)
|
||||
|
||||
def removeBadgeFromOrg(self, org, badgeNum):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
self.serv_redis_db.delete(keyname.format(org=org, orgCateg='BADGE_'+str(badgeNum)))
|
||||
|
||||
''' MONTHLY CONTRIBUTION '''
|
||||
def getOrgPntFromRedis(self, org, date):
|
||||
keyCateg = 'CONTRIB_DAY'
|
||||
scoreSum = 0
|
||||
for curDate in util.getMonthSpan(date):
|
||||
date_str = util.getDateStrFormat(curDate)
|
||||
keyname = "{}:{}".format(keyCateg, date_str)
|
||||
data = self.serv_redis_db.zscore(keyname, org)
|
||||
if data is None:
|
||||
data = 0
|
||||
scoreSum += data
|
||||
return scoreSum
|
||||
|
||||
def getOrgRankFromRedis(self, org, date):
|
||||
ptns = self.getOrgPntFromRedis(org, date)
|
||||
return self.getTrueRank(ptns)
|
||||
|
||||
|
||||
def getLastContributorsFromRedis(self):
|
||||
date = datetime.datetime.now()
|
||||
keyname = "CONTRIB_LAST"
|
||||
prev_days = 7
|
||||
topNum = self.MAX_NUMBER_OF_LAST_CONTRIBUTOR # default Num
|
||||
addedOrg = []
|
||||
data = []
|
||||
for curDate in util.getXPrevDaysSpan(date, prev_days):
|
||||
last_contrib_org = self.getZrange(keyname, curDate, topNum)
|
||||
for org, sec in last_contrib_org:
|
||||
if org in addedOrg:
|
||||
continue
|
||||
dic = {}
|
||||
dic['rank'] = self.getOrgRankFromRedis(org, date)
|
||||
dic['orgRank'] = self.getOrgContributionRank(org)['final_rank']
|
||||
dic['honorBadge'] = self.getOrgHonorBadges(org)
|
||||
dic['logo_path'] = self.getOrgLogoFromMISP(org)
|
||||
dic['org'] = org
|
||||
dic['pnts'] = self.getOrgPntFromRedis(org, date)
|
||||
dic['epoch'] = sec
|
||||
data.append(dic)
|
||||
addedOrg.append(org)
|
||||
return data
|
||||
|
||||
|
||||
def getContributorFromRedis(self, org):
|
||||
date = datetime.datetime.now()
|
||||
epoch = self.serv_redis_db.zscore("CONTRIB_LAST", org)
|
||||
dic = {}
|
||||
dic['rank'] = self.getOrgRankFromRedis(org, date)
|
||||
dic['orgRank'] = self.getOrgContributionRank(org)['final_rank']
|
||||
dic['honorBadge'] = self.getOrgHonorBadges(org)
|
||||
dic['logo_path'] = self.getOrgLogoFromMISP(org)
|
||||
dic['org'] = org
|
||||
dic['pnts'] = self.getOrgPntFromRedis(org, date)
|
||||
dic['epoch'] = epoch
|
||||
return dic
|
||||
|
||||
def getTopContributorFromRedis(self, date):
|
||||
orgDicoPnts = {}
|
||||
for curDate in util.getMonthSpan(date):
|
||||
keyCateg = "CONTRIB_DAY"
|
||||
topNum = 0 # all
|
||||
contrib_org = self.getZrange(keyCateg, curDate, topNum)
|
||||
for org, pnts in contrib_org:
|
||||
if org not in orgDicoPnts:
|
||||
orgDicoPnts[org] = 0
|
||||
orgDicoPnts[org] += pnts
|
||||
|
||||
data = []
|
||||
for org, pnts in orgDicoPnts.items():
|
||||
dic = {}
|
||||
dic['rank'] = self.getTrueRank(pnts)
|
||||
dic['orgRank'] = self.getOrgContributionRank(org)['final_rank']
|
||||
dic['honorBadge'] = self.getOrgHonorBadges(org)
|
||||
dic['logo_path'] = self.getOrgLogoFromMISP(org)
|
||||
dic['org'] = org
|
||||
dic['pnts'] = pnts
|
||||
data.append(dic)
|
||||
data.sort(key=lambda x: x['pnts'], reverse=True)
|
||||
|
||||
return data
|
||||
|
||||
def getTop5OvertimeFromRedis(self):
|
||||
data = []
|
||||
today = datetime.datetime.now()
|
||||
topSortedOrg = self.getTopContributorFromRedis(today) #Get current top
|
||||
# show current top 5 org points overtime (last 5 days)
|
||||
for dic in topSortedOrg[0:5]:
|
||||
org = dic['org']
|
||||
to_append = self.getOrgOvertime(org)
|
||||
data.append(to_append)
|
||||
return data
|
||||
|
||||
def getOrgOvertime(self, org):
|
||||
overtime = []
|
||||
today = datetime.datetime.today()
|
||||
today = today.replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
for curDate in util.getXPrevDaysSpan(today, 7):
|
||||
timestamp = util.getTimestamp(curDate)
|
||||
keyname = 'CONTRIB_DAY:'+util.getDateStrFormat(curDate)
|
||||
org_score = self.serv_redis_db.zscore(keyname, org)
|
||||
if org_score is None:
|
||||
org_score = 0
|
||||
overtime.append([timestamp, org_score])
|
||||
to_return = {'label': org, 'data': overtime}
|
||||
return to_return
|
||||
|
||||
def getCategPerContribFromRedis(self, date):
|
||||
keyCateg = "CONTRIB_DAY"
|
||||
topNum = 0 # all
|
||||
contrib_org = self.getTopContributorFromRedis(date)
|
||||
for dic in contrib_org:
|
||||
org = dic['org']
|
||||
for categ in self.categories_in_datatable:
|
||||
categ_score = 0
|
||||
for curDate in util.getMonthSpan(date):
|
||||
keyname = 'CONTRIB_CATEG:'+util.getDateStrFormat(curDate)+':'+categ
|
||||
temp = self.serv_redis_db.zscore(keyname, org)
|
||||
if temp is None:
|
||||
temp = 0
|
||||
categ_score += temp
|
||||
dic[categ] = categ_score
|
||||
return contrib_org
|
||||
|
||||
|
||||
def getAllOrgFromRedis(self):
|
||||
data = self.serv_redis_db.smembers('CONTRIB_ALL_ORG')
|
||||
data = [x.decode('utf8') for x in data]
|
||||
return data
|
||||
|
||||
def getCurrentOrgRankFromRedis(self, org):
|
||||
date = datetime.datetime.now()
|
||||
points = self.getOrgPntFromRedis(org, date)
|
||||
remainingPts = self.getRemainingPoints(points)
|
||||
data = {
|
||||
'org': org,
|
||||
'points': points,
|
||||
'rank': self.getRankLevel(points),
|
||||
'orgRank': self.getOrgContributionRank(org)['final_rank'],
|
||||
'honorBadge': self.getOrgHonorBadges(org),
|
||||
'remainingPts': remainingPts['remainingPts'],
|
||||
'stepPts': remainingPts['stepPts'],
|
||||
}
|
||||
return data
|
||||
|
||||
def getRankLevel(self, points):
|
||||
if points == 0:
|
||||
return 0
|
||||
elif points == 1:
|
||||
return 1
|
||||
else:
|
||||
return float("{:.2f}".format(math.log(points, self.rankMultiplier)))
|
||||
|
||||
def getTrueRank(self, ptns):
|
||||
return int(self.getRankLevel(ptns))
|
||||
|
||||
def getRemainingPoints(self, points):
|
||||
prev = 0
|
||||
for i in [math.floor(self.rankMultiplier**x) for x in range(1,self.levelMax+1)]:
|
||||
if prev <= points < i:
|
||||
return { 'remainingPts': i-points, 'stepPts': prev }
|
||||
prev = i
|
||||
return { 'remainingPts': 0, 'stepPts': self.rankMultiplier**self.levelMax }
|
||||
|
||||
|
||||
''' '''
|
||||
''' TEST DATA '''
|
||||
''' '''
|
||||
|
||||
def TEST_getCategPerContribFromRedis(self, date):
|
||||
data2 = []
|
||||
for d in range(15):
|
||||
dic = {}
|
||||
dic['rank'] = random.randint(1,self.levelMax)
|
||||
dic['orgRank'] = random.randint(1,self.levelMax),
|
||||
dic['honorBadge'] = [random.randint(1,2)],
|
||||
dic['logo_path'] = 'logo'
|
||||
dic['org'] = 'Org'+str(d)
|
||||
dic['pnts'] = random.randint(1,2**self.levelMax)
|
||||
for f in self.categories_in_datatable:
|
||||
dic[f] = random.randint(0,1600)
|
||||
data2.append(dic)
|
||||
return data2
|
||||
|
||||
def TEST_getTop5OvertimeFromRedis(self):
|
||||
import time
|
||||
now = time.time()
|
||||
data2 = [
|
||||
{'label': 'CIRCL', 'data': [[now, random.randint(1,50)], [now-util.ONE_DAY, random.randint(1,50)], [now-util.ONE_DAY*2, random.randint(1,50)], [now-util.ONE_DAY*3, random.randint(1,50)], [now-util.ONE_DAY*4, random.randint(1,50)]]},
|
||||
{'label': 'CASES', 'data': [[now, random.randint(1,50)], [now-util.ONE_DAY, random.randint(1,50)], [now-util.ONE_DAY*2, random.randint(1,50)], [now-util.ONE_DAY*3, random.randint(1,50)], [now-util.ONE_DAY*4, random.randint(1,50)]]},
|
||||
{'label': 'Org1', 'data': [[now, random.randint(1,50)], [now-util.ONE_DAY, random.randint(1,50)], [now-util.ONE_DAY*2, random.randint(1,50)], [now-util.ONE_DAY*3, random.randint(1,50)], [now-util.ONE_DAY*4, random.randint(1,50)]]},
|
||||
{'label': 'Org2', 'data': [[now, random.randint(1,50)], [now-util.ONE_DAY, random.randint(1,50)], [now-util.ONE_DAY*2, random.randint(1,50)], [now-util.ONE_DAY*3, random.randint(1,50)], [now-util.ONE_DAY*4, random.randint(1,50)]]},
|
||||
{'label': 'SMILE', 'data': [[now, random.randint(1,50)], [now-util.ONE_DAY, random.randint(1,50)], [now-util.ONE_DAY*2, random.randint(1,50)], [now-util.ONE_DAY*3, random.randint(1,50)], [now-util.ONE_DAY*4, random.randint(1,50)]]},
|
||||
]
|
||||
return data2
|
||||
|
||||
def TEST_getOrgOvertime(self, org):
|
||||
import time
|
||||
now = time.time()
|
||||
data = [
|
||||
{'label': org, 'data': [[now, random.randint(1,30)], [now-util.ONE_DAY, random.randint(1,30)], [now-util.ONE_DAY*2, random.randint(1,30)], [now-util.ONE_DAY*3, random.randint(1,30)], [now-util.ONE_DAY*4, random.randint(1,40)]]}
|
||||
]
|
||||
return data
|
||||
|
||||
def TEST_getTopContributorFromRedis(self, date):
|
||||
data2 = [
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [1,2],
|
||||
'logo_path': self.getOrgLogoFromMISP('MISP'),
|
||||
'org': 'MISP',
|
||||
'pnts': random.randint(1,2**self.levelMax)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [1],
|
||||
'logo_path': 'logo1',
|
||||
'org': 'CIRCL',
|
||||
'pnts': random.randint(1,2**self.levelMax)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [2],
|
||||
'logo_path': 'logo2',
|
||||
'org': 'CASES',
|
||||
'pnts': random.randint(1,2**self.levelMax)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [],
|
||||
'logo_path': 'logo3',
|
||||
'org': 'SMILE',
|
||||
'pnts': random.randint(1,2**self.levelMax)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [],
|
||||
'logo_path': 'logo4',
|
||||
'org': 'ORG4',
|
||||
'pnts': random.randint(1,2**self.levelMax)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [],
|
||||
'logo_path': 'logo5',
|
||||
'org': 'ORG5',
|
||||
'pnts': random.randint(1,2**self.levelMax)
|
||||
},
|
||||
]
|
||||
return data2*2
|
||||
|
||||
def TEST_getLastContributorsFromRedis(self):
|
||||
import time
|
||||
data2 = [
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [1,2],
|
||||
'logo_path': self.getOrgLogoFromMISP('MISP'),
|
||||
'org': 'MISP',
|
||||
'pnts': random.randint(1,2**self.levelMax),
|
||||
'epoch': time.time() - random.randint(0, 10000)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [1],
|
||||
'logo_path': 'logo1',
|
||||
'org': 'CIRCL',
|
||||
'pnts': random.randint(1,2**self.levelMax),
|
||||
'epoch': time.time() - random.randint(0, 10000)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [2],
|
||||
'logo_path': 'logo2',
|
||||
'org': 'CASES',
|
||||
'pnts': random.randint(1,2**self.levelMax),
|
||||
'epoch': time.time() - random.randint(0, 10000)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [],
|
||||
'logo_path': 'logo3',
|
||||
'org': 'SMILE',
|
||||
'pnts': random.randint(1,2**self.levelMax),
|
||||
'epoch': time.time() - random.randint(0, 10000)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [],
|
||||
'logo_path': 'logo4',
|
||||
'org': 'ORG4',
|
||||
'pnts': random.randint(1,2**self.levelMax),
|
||||
'epoch': time.time() - random.randint(0, 10000)
|
||||
},
|
||||
{
|
||||
'rank': random.randint(1,self.levelMax),
|
||||
'orgRank': random.randint(1,self.levelMax),
|
||||
'honorBadge': [],
|
||||
'logo_path': 'logo5',
|
||||
'org': 'ORG5',
|
||||
'pnts': random.randint(1,2**self.levelMax),
|
||||
'epoch': time.time() - random.randint(0, 10000)
|
||||
},
|
||||
]
|
||||
return data2*2
|
||||
|
||||
def TEST_getAllOrgFromRedis(self):
|
||||
data2 = ['CIRCL', 'CASES', 'SMILE' ,'ORG4' ,'ORG5', 'SUPER HYPER LONG ORGINZATION NAME', 'Org3', 'MISP']
|
||||
return data2
|
||||
|
||||
def TEST_getCurrentOrgRankFromRedis(self, org):
|
||||
date = datetime.datetime.now()
|
||||
points = random.randint(1,2**self.levelMax)
|
||||
remainingPts = self.getRemainingPoints(points)
|
||||
data = {
|
||||
'org': org,
|
||||
'points': points,
|
||||
'rank': self.getRankLevel(points),
|
||||
'remainingPts': remainingPts['remainingPts'],
|
||||
'stepPts': remainingPts['stepPts'],
|
||||
}
|
||||
return data
|
||||
|
||||
def TEST_getCurrentContributionStatus(self, org):
|
||||
num = random.randint(1, self.org_rank_maxLevel)
|
||||
requirement_fulfilled = [x for x in range(1,num+1)]
|
||||
requirement_not_fulfilled = [x for x in range(num,self.org_rank_maxLevel+1-num)]
|
||||
|
||||
num2 = random.randint(1, self.org_rank_maxLevel)
|
||||
if num2 < num-1:
|
||||
to_swap = requirement_fulfilled[num2]
|
||||
del requirement_fulfilled[num2]
|
||||
requirement_not_fulfilled = [to_swap] + requirement_not_fulfilled
|
||||
|
||||
final_rank = len(requirement_fulfilled)
|
||||
to_ret = {}
|
||||
for i in range(1, self.org_rank_maxLevel+1):
|
||||
if i in requirement_fulfilled:
|
||||
to_ret[i] = 1
|
||||
elif i in requirement_not_fulfilled and i<=final_rank:
|
||||
to_ret[i] = 0
|
||||
else:
|
||||
to_ret[i] = -1
|
||||
return {'rank': final_rank, 'status': to_ret, 'totPoints': random.randint(2**final_rank, 2**self.org_rank_maxLevel*4)}
|
||||
|
||||
def TEST_getOrgHonorBadges(self, org):
|
||||
keyname = 'CONTRIB_ORG:{org}:{orgCateg}'
|
||||
honorBadge = []
|
||||
for i in range(1, self.honorBadgeNum+1):
|
||||
key = keyname.format(org=org, orgCateg='BADGE_'+str(i))
|
||||
if random.randint(0,1) == 1: #existing
|
||||
honorBadge.append(1)
|
||||
else:
|
||||
honorBadge.append(0)
|
||||
return honorBadge
|
|
@ -0,0 +1,111 @@
|
|||
#!/usr/bin/env python3.5
|
||||
|
||||
import os, sys
|
||||
import redis
|
||||
import configparser
|
||||
|
||||
import contributor_helper
|
||||
|
||||
configfile = os.path.join(os.environ['DASH_CONFIG'], 'config.cfg')
|
||||
cfg = configparser.ConfigParser()
|
||||
cfg.read(configfile)
|
||||
serv_redis_db = redis.StrictRedis(
|
||||
host=cfg.get('RedisGlobal', 'host'),
|
||||
port=cfg.getint('RedisGlobal', 'port'),
|
||||
db=cfg.getint('RedisDB', 'db'))
|
||||
|
||||
chelper = contributor_helper.Contributor_helper(serv_redis_db, cfg)
|
||||
|
||||
def printOrgInfo(org):
|
||||
org_pnts = chelper.getOrgContributionTotalPoints(org)
|
||||
org_c_rank = chelper.getOrgContributionRank(org)
|
||||
org_c_status = chelper.getCurrentContributionStatus(org)
|
||||
org_honor_badge = chelper.getOrgHonorBadges(org)
|
||||
|
||||
print()
|
||||
print("Organisation points: {}".format(org_pnts))
|
||||
print("Organisation contribution rank: {}".format(org_c_status['rank']))
|
||||
print('''
|
||||
Organisation contribution rank:
|
||||
-------------------------------''')
|
||||
for rank in range(1, chelper.org_rank_maxLevel+1):
|
||||
acq = 'x' if org_c_status['status'][rank] == 1 else ' '
|
||||
print("{}.\t[{}]\t{}\t{}".format(rank, acq, chelper.org_rank_requirement_pnts[rank], chelper.org_rank_requirement_text[rank]))
|
||||
|
||||
print()
|
||||
print('''
|
||||
Organisation honor badges:
|
||||
--------------------------''')
|
||||
for badgeNum, text in chelper.org_honor_badge_title.items():
|
||||
acq = 'x' if badgeNum in org_honor_badge else ' '
|
||||
print("{}.\t[{}]\t{}".format(badgeNum, acq, text))
|
||||
print()
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) > 1:
|
||||
org = sys.argv[1]
|
||||
else:
|
||||
org = input('Enter the organisation name: ')
|
||||
|
||||
printOrgInfo(org)
|
||||
|
||||
# ranks
|
||||
while True:
|
||||
org_pnts = chelper.getOrgContributionTotalPoints(org)
|
||||
org_c_rank = chelper.getOrgContributionRank(org)
|
||||
org_c_status = chelper.getCurrentContributionStatus(org)
|
||||
org_honor_badge = chelper.getOrgHonorBadges(org)
|
||||
|
||||
userRep = input("Enter the organisation RANK to give/remove to {} (<ENTER> to finish): ".format(org))
|
||||
if userRep == '':
|
||||
break
|
||||
else:
|
||||
# validate input
|
||||
try: #not int
|
||||
rankNum = int(userRep)
|
||||
except:
|
||||
print('Not an integer')
|
||||
continue
|
||||
if rankNum < 1 and rankNum > chelper.org_rank_maxLevel:
|
||||
print('Not a valid rank')
|
||||
continue
|
||||
|
||||
if org_c_status['status'][rankNum] == 1: #remove rank
|
||||
chelper.removeContribRankFromOrg(org, rankNum)
|
||||
else:
|
||||
chelper.giveContribRankToOrg(org, rankNum)
|
||||
|
||||
printOrgInfo(org)
|
||||
|
||||
# badges
|
||||
while True:
|
||||
org_pnts = chelper.getOrgContributionTotalPoints(org)
|
||||
org_c_rank = chelper.getOrgContributionRank(org)
|
||||
org_c_status = chelper.getCurrentContributionStatus(org)
|
||||
org_honor_badge = chelper.getOrgHonorBadges(org)
|
||||
|
||||
userRep = input("Enter the organisation BADGE to give/remove to {} (<ENTER> to finish): ".format(org))
|
||||
if userRep == '':
|
||||
break
|
||||
else:
|
||||
# validate input
|
||||
try: #not int
|
||||
badgeNum = int(userRep)
|
||||
except:
|
||||
print('Not an integer')
|
||||
continue
|
||||
if badgeNum < 1 and badgeNum > chelper.honorBadgeNum:
|
||||
print('Not a valid rank')
|
||||
continue
|
||||
|
||||
if badgeNum in org_honor_badge: #remove badge
|
||||
chelper.removeBadgeFromOrg(org, badgeNum)
|
||||
else:
|
||||
chelper.giveBadgeToOrg(org, badgeNum)
|
||||
|
||||
printOrgInfo(org)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -17,13 +17,11 @@ fi
|
|||
pip3 install -U pip argparse redis zmq geoip2 flask
|
||||
|
||||
## config
|
||||
if [ ! -f config/config.cfg ]; then
|
||||
cp config/config.cfg.sample config/config.cfg
|
||||
fi
|
||||
cp -i config/config.cfg.default config/config.cfg
|
||||
|
||||
## Web stuff
|
||||
pushd static/
|
||||
mkdir -p css fonts
|
||||
mkdir -p css fonts js
|
||||
popd
|
||||
mkdir -p temp
|
||||
|
||||
|
@ -33,14 +31,16 @@ wget http://www.misp-project.org/assets/images/misp-small.png -O static/pics/MIS
|
|||
JQVERSION="3.2.1"
|
||||
wget http://code.jquery.com/jquery-${JQVERSION}.min.js -O ./static/js/jquery.min.js
|
||||
|
||||
# jquery flot
|
||||
FLOTVERSION="0.8.3"
|
||||
wget http://www.flotcharts.org/downloads/flot-${FLOTVERSION}.zip -O ./temp/flot-${FLOTVERSION}.zip
|
||||
unzip -o temp/flot-${FLOTVERSION}.zip -d temp/
|
||||
mv temp/flot/jquery.flot.js ./static/js
|
||||
mv temp/flot/jquery.flot.pie.min.js ./static/js
|
||||
mv temp/flot/jquery.flot.resize.js ./static/js
|
||||
mv temp/flot/jquery.flot.time.js ./static/js
|
||||
|
||||
|
||||
# jquery UI
|
||||
JQUERYUIVERSION="1.12.1"
|
||||
wget https://jqueryui.com/resources/download/jquery-ui-${JQUERYUIVERSION}.zip -O temp/jquery-ui.zip
|
||||
unzip -o temp/jquery-ui.zip -d temp/
|
||||
|
@ -64,6 +64,8 @@ unzip -o temp/${SBADMIN_VERSION}-2.zip -d temp/
|
|||
mv temp/startbootstrap-sb-admin-2-${SBADMIN_VERSION}/dist/js/* ./static/js/
|
||||
mv temp/startbootstrap-sb-admin-2-${SBADMIN_VERSION}/dist/css/* ./static/css/
|
||||
mv temp/startbootstrap-sb-admin-2-${SBADMIN_VERSION}/bower_components/font-awesome/fonts/* ./static/fonts
|
||||
mv temp/startbootstrap-sb-admin-2-${SBADMIN_VERSION}/bower_components/font-awesome/css/* ./static/css
|
||||
mv temp/startbootstrap-sb-admin-2-${SBADMIN_VERSION}/bower_components/bootstrap/fonts/* ./static/fonts
|
||||
|
||||
# leaflet
|
||||
LEAFLET_VERSION="1.2.0"
|
||||
|
@ -82,9 +84,22 @@ mv temp/jquery-jvectormap-2.0.3.css ./static/css
|
|||
mv temp/jquery-jvectormap-2.0.3.min.js ./static/js
|
||||
wget http://jvectormap.com/js/jquery-jvectormap-world-mill.js -O ./static/js/jquery-jvectormap-world-mill.js
|
||||
|
||||
# maxmind DB
|
||||
mkdir -p data
|
||||
pushd data
|
||||
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz -O GeoLite2-City.tar.gz
|
||||
tar xvfz GeoLite2-City.tar.gz
|
||||
rm -rf GeoLite2-City.tar.gz
|
||||
popd
|
||||
|
||||
# DataTable
|
||||
DATATABLE_VERSION="1.10.16"
|
||||
wget https://cdn.datatables.net/${DATATABLE_VERSION}/js/jquery.dataTables.min.js -O ./static/js/jquery.dataTables.min.js
|
||||
wget https://cdn.datatables.net/${DATATABLE_VERSION}/css/dataTables.bootstrap.css -O ./static/css/dataTables.bootstrap.css
|
||||
wget https://cdn.datatables.net/${DATATABLE_VERSION}/js/dataTables.bootstrap.js -O ./static/js/dataTables.bootstrap.js
|
||||
|
||||
#typeahead
|
||||
git clone https://github.com/bassjobsen/Bootstrap-3-Typeahead.git temp/Bootstrap-3-Typeahead
|
||||
mv temp/Bootstrap-3-Typeahead/bootstrap3-typeahead.min.js ./static/js
|
||||
|
||||
rm -rf ./temp
|
||||
|
|
202
server.py
|
@ -9,6 +9,9 @@ from time import sleep, strftime
|
|||
import datetime
|
||||
import os
|
||||
|
||||
import util
|
||||
import contributor_helper
|
||||
|
||||
configfile = os.path.join(os.environ['DASH_CONFIG'], 'config.cfg')
|
||||
cfg = configparser.ConfigParser()
|
||||
cfg.read(configfile)
|
||||
|
@ -28,12 +31,21 @@ serv_redis_db = redis.StrictRedis(
|
|||
port=cfg.getint('RedisGlobal', 'port'),
|
||||
db=cfg.getint('RedisDB', 'db'))
|
||||
|
||||
contributor_helper = contributor_helper.Contributor_helper(serv_redis_db, cfg)
|
||||
|
||||
subscriber_log = redis_server_log.pubsub(ignore_subscribe_messages=True)
|
||||
subscriber_log.psubscribe(cfg.get('RedisLog', 'channel'))
|
||||
subscriber_map = redis_server_map.pubsub(ignore_subscribe_messages=True)
|
||||
subscriber_map.psubscribe(cfg.get('RedisMap', 'channelDisp'))
|
||||
subscriber_lastContrib = redis_server_log.pubsub(ignore_subscribe_messages=True)
|
||||
subscriber_lastContrib.psubscribe(cfg.get('RedisLog', 'channelLastContributor'))
|
||||
eventNumber = 0
|
||||
|
||||
##########
|
||||
## UTIL ##
|
||||
##########
|
||||
|
||||
''' INDEX '''
|
||||
class LogItem():
|
||||
|
||||
FIELDNAME_ORDER = []
|
||||
|
@ -91,13 +103,19 @@ class EventMessage():
|
|||
to_ret = { 'log': self.feed, 'feedName': self.feedName, 'zmqName': self.zmqName }
|
||||
return 'data: {}\n\n'.format(json.dumps(to_ret))
|
||||
|
||||
def getZrange(keyCateg, date, topNum):
|
||||
date_str = str(date.year)+str(date.month)+str(date.day)
|
||||
keyname = "{}:{}".format(keyCateg, date_str)
|
||||
data = serv_redis_db.zrange(keyname, 0, 5, desc=True, withscores=True)
|
||||
data = [ [record[0].decode('utf8'), record[1]] for record in data ]
|
||||
''' GENERAL '''
|
||||
def getZrange(keyCateg, date, topNum, endSubkey=""):
|
||||
date_str = util.getDateStrFormat(date)
|
||||
keyname = "{}:{}{}".format(keyCateg, date_str, endSubkey)
|
||||
data = serv_redis_db.zrange(keyname, 0, topNum-1, desc=True, withscores=True)
|
||||
data = [ [record[0].decode('utf8'), record[1]] for record in data ]
|
||||
return data
|
||||
|
||||
###########
|
||||
## ROUTE ##
|
||||
###########
|
||||
|
||||
''' MAIN ROUTE '''
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
|
@ -108,7 +126,7 @@ def index():
|
|||
"{:.0f}".format(cfg.getint('Dashboard' ,'size_world_pannel_perc')/100*ratioCorrection),
|
||||
"{:.0f}".format((100-cfg.getint('Dashboard' ,'size_world_pannel_perc'))/100*ratioCorrection)
|
||||
]
|
||||
return render_template('index.html',
|
||||
return render_template('index.html',
|
||||
pannelSize=pannelSize,
|
||||
size_dashboard_width=[cfg.getint('Dashboard' ,'size_dashboard_left_width'), 12-cfg.getint('Dashboard', 'size_dashboard_left_width')],
|
||||
itemToPlot=cfg.get('Dashboard', 'item_to_plot'),
|
||||
|
@ -128,6 +146,68 @@ def geo():
|
|||
default_updateFrequency=cfg.getint('GEO' ,'updateFrequency')
|
||||
)
|
||||
|
||||
@app.route("/contrib")
|
||||
def contrib():
|
||||
categ_list = contributor_helper.categories_in_datatable
|
||||
categ_list_str = [ s[0].upper() + s[1:].replace('_', ' ') for s in contributor_helper.categories_in_datatable]
|
||||
categ_list_points = [contributor_helper.DICO_PNTS_REWARD[categ] for categ in categ_list]
|
||||
|
||||
org_rank = contributor_helper.org_rank
|
||||
org_rank_requirement_pnts = contributor_helper.org_rank_requirement_pnts
|
||||
org_rank_requirement_text = contributor_helper.org_rank_requirement_text
|
||||
org_rank_list = [[rank, title, org_rank_requirement_pnts[rank], org_rank_requirement_text[rank]] for rank, title in org_rank.items()]
|
||||
org_rank_list.sort(key=lambda x: x[0])
|
||||
org_rank_additional_text = contributor_helper.org_rank_additional_info
|
||||
|
||||
org_honor_badge_title = contributor_helper.org_honor_badge_title
|
||||
org_honor_badge_title_list = [ [num, text] for num, text in contributor_helper.org_honor_badge_title.items()]
|
||||
org_honor_badge_title_list.sort(key=lambda x: x[0])
|
||||
|
||||
currOrg = request.args.get('org')
|
||||
if currOrg is None:
|
||||
currOrg = ""
|
||||
return render_template('contrib.html',
|
||||
currOrg=currOrg,
|
||||
rankMultiplier=contributor_helper.rankMultiplier,
|
||||
default_pnts_per_contribution=contributor_helper.default_pnts_per_contribution,
|
||||
additional_help_text=json.loads(cfg.get('CONTRIB', 'additional_help_text')),
|
||||
categ_list=json.dumps(categ_list),
|
||||
categ_list_str=categ_list_str,
|
||||
categ_list_points=categ_list_points,
|
||||
org_rank_json=json.dumps(org_rank),
|
||||
org_rank_list=org_rank_list,
|
||||
org_rank_additional_text=org_rank_additional_text,
|
||||
org_honor_badge_title=json.dumps(org_honor_badge_title),
|
||||
org_honor_badge_title_list=org_honor_badge_title_list,
|
||||
min_between_reload=cfg.getint('CONTRIB', 'min_between_reload')
|
||||
)
|
||||
|
||||
''' INDEX '''
|
||||
|
||||
@app.route("/_logs")
|
||||
def logs():
|
||||
return Response(event_stream_log(), mimetype="text/event-stream")
|
||||
|
||||
@app.route("/_maps")
|
||||
def maps():
|
||||
return Response(event_stream_maps(), mimetype="text/event-stream")
|
||||
|
||||
@app.route("/_get_log_head")
|
||||
def getLogHead():
|
||||
return json.dumps(LogItem('').get_head_row())
|
||||
|
||||
def event_stream_log():
|
||||
for msg in subscriber_log.listen():
|
||||
content = msg['data']
|
||||
yield EventMessage(content).to_json()
|
||||
|
||||
def event_stream_maps():
|
||||
for msg in subscriber_map.listen():
|
||||
content = msg['data'].decode('utf8')
|
||||
yield 'data: {}\n\n'.format(content)
|
||||
|
||||
''' GEO '''
|
||||
|
||||
@app.route("/_getTopCoord")
|
||||
def getTopCoord():
|
||||
try:
|
||||
|
@ -146,7 +226,7 @@ def getHitMap():
|
|||
except:
|
||||
date = datetime.datetime.now()
|
||||
keyCateg = "GEO_COUNTRY"
|
||||
topNum = -1 # default Num
|
||||
topNum = 0 # all
|
||||
data = getZrange(keyCateg, date, topNum)
|
||||
return jsonify(data)
|
||||
|
||||
|
@ -174,7 +254,7 @@ def getCoordsByRadius():
|
|||
delta = dateEnd - dateStart
|
||||
for i in range(delta.days+1):
|
||||
correctDatetime = dateStart + datetime.timedelta(days=i)
|
||||
date_str = str(correctDatetime.year)+str(correctDatetime.month)+str(correctDatetime.day)
|
||||
date_str = util.getDateStrFormat(correctDatetime)
|
||||
keyCateg = 'GEO_RAD'
|
||||
keyname = "{}:{}".format(keyCateg, date_str)
|
||||
res = serv_redis_db.georadius(keyname, centerLon, centerLat, radius, unit='km', withcoord=True)
|
||||
|
@ -202,27 +282,99 @@ def getCoordsByRadius():
|
|||
|
||||
return jsonify(to_return)
|
||||
|
||||
@app.route("/_logs")
|
||||
def logs():
|
||||
return Response(event_stream_log(), mimetype="text/event-stream")
|
||||
''' CONTRIB '''
|
||||
|
||||
@app.route("/_maps")
|
||||
def maps():
|
||||
return Response(event_stream_maps(), mimetype="text/event-stream")
|
||||
@app.route("/_getLastContributors")
|
||||
def getLastContributors():
|
||||
return jsonify(contributor_helper.getLastContributorsFromRedis())
|
||||
|
||||
@app.route("/_get_log_head")
|
||||
def getLogHead():
|
||||
return json.dumps(LogItem('').get_head_row())
|
||||
@app.route("/_eventStreamLastContributor")
|
||||
def getLastContributor():
|
||||
return Response(eventStreamLastContributor(), mimetype="text/event-stream")
|
||||
|
||||
def event_stream_log():
|
||||
for msg in subscriber_log.listen():
|
||||
content = msg['data']
|
||||
yield EventMessage(content).to_json()
|
||||
|
||||
def event_stream_maps():
|
||||
for msg in subscriber_map.listen():
|
||||
def eventStreamLastContributor():
|
||||
for msg in subscriber_lastContrib.listen():
|
||||
content = msg['data'].decode('utf8')
|
||||
yield 'data: {}\n\n'.format(content)
|
||||
contentJson = json.loads(content)
|
||||
lastContribJson = json.loads(contentJson['log'])
|
||||
org = lastContribJson['org']
|
||||
to_return = contributor_helper.getContributorFromRedis(org)
|
||||
epoch = lastContribJson['epoch']
|
||||
to_return['epoch'] = epoch
|
||||
yield 'data: {}\n\n'.format(json.dumps(to_return))
|
||||
|
||||
@app.route("/_getTopContributor")
|
||||
def getTopContributor(suppliedDate=None):
|
||||
if suppliedDate is None:
|
||||
try:
|
||||
date = datetime.datetime.fromtimestamp(float(request.args.get('date')))
|
||||
except:
|
||||
date = datetime.datetime.now()
|
||||
else:
|
||||
date = suppliedDate
|
||||
|
||||
data = contributor_helper.getTopContributorFromRedis(date)
|
||||
return jsonify(data)
|
||||
|
||||
@app.route("/_getFameContributor")
|
||||
def getFameContributor():
|
||||
try:
|
||||
date = datetime.datetime.fromtimestamp(float(request.args.get('date')))
|
||||
except:
|
||||
today = datetime.datetime.now()
|
||||
# get previous month
|
||||
date = (datetime.datetime(today.year, today.month, 1) - datetime.timedelta(days=1))
|
||||
return getTopContributor(suppliedDate=date)
|
||||
|
||||
|
||||
@app.route("/_getTop5Overtime")
|
||||
def getTop5Overtime():
|
||||
return jsonify(contributor_helper.getTop5OvertimeFromRedis())
|
||||
|
||||
@app.route("/_getOrgOvertime")
|
||||
def getOrgOvertime():
|
||||
try:
|
||||
org = request.args.get('org')
|
||||
except:
|
||||
org = ''
|
||||
return jsonify(contributor_helper.getOrgOvertime(org))
|
||||
|
||||
@app.route("/_getCategPerContrib")
|
||||
def getCategPerContrib():
|
||||
try:
|
||||
date = datetime.datetime.fromtimestamp(float(request.args.get('date')))
|
||||
except:
|
||||
date = datetime.datetime.now()
|
||||
|
||||
return jsonify(contributor_helper.getCategPerContribFromRedis(date))
|
||||
|
||||
@app.route("/_getAllOrg")
|
||||
def getAllOrg():
|
||||
return jsonify(contributor_helper.getAllOrgFromRedis())
|
||||
|
||||
@app.route("/_getOrgRank")
|
||||
def getOrgRank():
|
||||
try:
|
||||
org = request.args.get('org')
|
||||
except:
|
||||
org = ''
|
||||
return jsonify(contributor_helper.getCurrentOrgRankFromRedis(org))
|
||||
|
||||
@app.route("/_getContributionOrgStatus")
|
||||
def getContributionOrgStatus():
|
||||
try:
|
||||
org = request.args.get('org')
|
||||
except:
|
||||
org = ''
|
||||
return jsonify(contributor_helper.getCurrentContributionStatus(org))
|
||||
|
||||
@app.route("/_getHonorBadges")
|
||||
def getHonorBadges():
|
||||
try:
|
||||
org = request.args.get('org')
|
||||
except:
|
||||
org = ''
|
||||
return jsonify(contributor_helper.getOrgHonorBadges(org))
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host='localhost', port=8001, threaded=True)
|
||||
|
|
|
@ -0,0 +1,154 @@
|
|||
.ranking {
|
||||
position: relative;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.successCell {
|
||||
background-color: #dff0d8 !important
|
||||
}
|
||||
|
||||
.circleBadge {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
text-align: center;
|
||||
border-radius: 65px;
|
||||
background-color: #e1e1e1;
|
||||
border: 1px solid #caccce;
|
||||
}
|
||||
|
||||
.circlBadgeAcquired {
|
||||
box-shadow: 0px 0px 15px #0000ff
|
||||
}
|
||||
|
||||
.questionBadgeText {
|
||||
left: -15%;
|
||||
position: relative;
|
||||
bottom: 18%;
|
||||
}
|
||||
|
||||
.orgRankClass {
|
||||
top: 6px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.questionBadgeDiv {
|
||||
float: left;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background-color: #286090;
|
||||
font-size: xx-large;
|
||||
border-radius: 50% 50% 50% 50%;
|
||||
color: white;
|
||||
top: 4px;
|
||||
position: relative;
|
||||
left: 1%;
|
||||
}
|
||||
|
||||
.selectedOrgInTable {
|
||||
background-color: #fff6c2 !important;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.centerInBtn {
|
||||
float: left;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
line-height: 40px;
|
||||
margin-right: 10px;
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
.popover-content {
|
||||
padding: 3px
|
||||
}
|
||||
|
||||
.popOverBtn {
|
||||
float: left;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-right: 8px;
|
||||
height: 46px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.table > tbody > tr > td.centerCell {
|
||||
text-align: center;
|
||||
min-width: 45px;
|
||||
}
|
||||
|
||||
.dataTables_filter > label {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.table > tbody > tr > td.centerCellPicOrgLogo {
|
||||
padding: 5px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.table > tbody > tr > td.verticalAlign {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.table > tbody > tr > td.centerCellPicOrgRank {
|
||||
padding: 0px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.progress {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.panel-body {
|
||||
padding: 0px;
|
||||
}
|
||||
.panel {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.col-lg-6 {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.col-lg-8 {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.col-lg-4 {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.col-lg-12 {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.leftSepa {
|
||||
border-left-color: rgb(221, 221, 221);
|
||||
border-left-style: solid;
|
||||
border-left-width: 2px;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.textTopHeader {
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
margin-left: 8px;
|
||||
float: left;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.center {
|
||||
display:block;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
}
|
|
@ -0,0 +1,577 @@
|
|||
/* GLOB VAR */
|
||||
var allOrg = [];
|
||||
var datatableTop;
|
||||
var datatableFame;
|
||||
var refresh_speed = min_between_reload*60;
|
||||
var will_reload = $("#reloadCheckbox").is(':checked');
|
||||
var sec_before_reload = refresh_speed;
|
||||
var dataTop5Overtime;
|
||||
var plotLineChart
|
||||
|
||||
/* CONFIG */
|
||||
var maxRank = 16;
|
||||
var popOverOption = {
|
||||
trigger: "hover",
|
||||
html: true,
|
||||
placement: 'bottom',
|
||||
content: generateRankingSheet()
|
||||
}
|
||||
var optionsLineChart = {
|
||||
series: {
|
||||
shadowSize: 0 ,
|
||||
lines: {
|
||||
fill: true,
|
||||
fillColor: {
|
||||
colors: [ { opacity: 1 }, { opacity: 0.1 } ]
|
||||
}
|
||||
}
|
||||
},
|
||||
colors: ["#2F4F4F", "#778899", "#696969", "#A9A9A9", "#D3D3D3", "#337ab7"],
|
||||
points: { show: true },
|
||||
lines: { show: true, fill: true },
|
||||
grid: {
|
||||
tickColor: "#dddddd",
|
||||
borderWidth: 0
|
||||
},
|
||||
legend: {
|
||||
show: true,
|
||||
position: "nw"
|
||||
},
|
||||
xaxis: {
|
||||
mode: "time",
|
||||
timeformat: "%m/%d",
|
||||
minTickSize: [1, "day"]
|
||||
}
|
||||
};
|
||||
var optionDatatable_light = {
|
||||
responsive: true,
|
||||
searching: false,
|
||||
ordering: false,
|
||||
scrollY: '30vh',
|
||||
scrollCollapse: true,
|
||||
paging: false,
|
||||
"language": {
|
||||
"lengthMenu": "",
|
||||
"info": "",
|
||||
"infoFiltered": "",
|
||||
"infoEmpty": "",
|
||||
},
|
||||
"info": false,
|
||||
"columnDefs": [
|
||||
{ className: "centerCellPicOrgRank", "targets": [ 2 ] },
|
||||
{ className: "centerCellPicOrgLogo", "targets": [ 3 ] },
|
||||
{ className: "centerCellPicOrgLogo", "targets": [ 4 ] }
|
||||
]
|
||||
};
|
||||
var optionDatatable_top = jQuery.extend({}, optionDatatable_light)
|
||||
var optionDatatable_last = jQuery.extend({}, optionDatatable_light)
|
||||
optionDatatable_last.columnDefs = [
|
||||
{ className: "small", "targets": [ 0 ] },
|
||||
{ className: "verticalAlign", "targets": [ 1 ] },
|
||||
{ className: "centerCellPicOrgRank verticalAlign", "targets": [ 2 ] },
|
||||
{ className: "centerCellPicOrgLogo", "targets": [ 3 ] },
|
||||
{ className: "centerCellPicOrgLogo verticalAlign", "targets": [ 4 ] },
|
||||
{ className: "centerCellPicOrgLogo verticalAlign", "targets": [ 5 ] },
|
||||
{ className: "verticalAlign", "targets": [ 6 ] },
|
||||
{ 'orderData':[6], 'targets': [0] },
|
||||
{
|
||||
'targets': [6],
|
||||
'searchable': false
|
||||
},
|
||||
]
|
||||
var optionDatatable_fame = jQuery.extend({}, optionDatatable_light)
|
||||
optionDatatable_fame.scrollY = '45vh';
|
||||
|
||||
var optionDatatable_Categ = {
|
||||
responsive: true,
|
||||
searching: true,
|
||||
"order": [[ 0, "desc" ]],
|
||||
scrollY: '38vh',
|
||||
"scrollX": true,
|
||||
scrollCollapse: true,
|
||||
paging: false,
|
||||
"info": false,
|
||||
"columnDefs": [
|
||||
{ className: "centerCellPicOrgRank", "targets": [ 2 ] },
|
||||
{ className: "centerCellPicOrgLogo", "targets": [ 3 ], 'searchable': false, 'sortable': false },
|
||||
{ className: "centerCellPicOrgLogo", "targets": [ 4 ]}
|
||||
]
|
||||
};
|
||||
|
||||
var typeaheadOption = {
|
||||
source: function (query, process) {
|
||||
if (allOrg.length == 0) { // caching
|
||||
return $.getJSON(url_getAllOrg, function (data) {
|
||||
allOrg = data;
|
||||
return process(data);
|
||||
});
|
||||
} else {
|
||||
return process(allOrg);
|
||||
}
|
||||
},
|
||||
updater: function(org) {
|
||||
updateProgressHeader(org);
|
||||
}
|
||||
}
|
||||
|
||||
/* FUNCTIONS */
|
||||
function getMonthlyRankIcon(rank, size, header) {
|
||||
if (rank > 16) {
|
||||
var rankLogoPath = url_baseRankMonthlyLogo+0+'.svg';
|
||||
} else {
|
||||
var rankLogoPath = url_baseRankMonthlyLogo+rank+'.svg';
|
||||
}
|
||||
var img = document.createElement('img');
|
||||
img.src = rankLogoPath;
|
||||
if(size == undefined) {
|
||||
img.height = 26;
|
||||
img.width = 26;
|
||||
} else {
|
||||
if (header) {
|
||||
img.height = size;
|
||||
img.width = size;
|
||||
img.style.position = 'absolute';
|
||||
img.style.top = '0';
|
||||
img.style.bottom = '0';
|
||||
img.style.margin = 'auto';
|
||||
img.style.left = '0px';
|
||||
} else {
|
||||
img.height = size;
|
||||
img.width = size;
|
||||
}
|
||||
}
|
||||
return img.outerHTML;
|
||||
}
|
||||
|
||||
function getOrgRankIcon(rank, size) {
|
||||
if (rank > 16) {
|
||||
var rankLogoPath = url_baseOrgRankLogo+0+'.svg';
|
||||
} else {
|
||||
var rankLogoPath = url_baseOrgRankLogo+rank+'.svg';
|
||||
}
|
||||
var obj = document.createElement('img');
|
||||
obj.height = size/2;
|
||||
obj.width = size;
|
||||
obj.src = rankLogoPath;
|
||||
obj.type = "image/svg"
|
||||
obj.title = org_rank_obj[rank];
|
||||
obj.classList.add('orgRankClass')
|
||||
return obj.outerHTML;
|
||||
}
|
||||
|
||||
function createImg(source, size) {
|
||||
var obj = document.createElement('img');
|
||||
obj.height = size;
|
||||
obj.width = size;
|
||||
obj.style.margin = 'auto';
|
||||
obj.src = source;
|
||||
obj.type = "image/png"
|
||||
obj.alt = ""
|
||||
return obj.outerHTML;
|
||||
}
|
||||
|
||||
function createHonorImg(array, size) {
|
||||
size = 32;
|
||||
var div = document.createElement('div');
|
||||
div.style.boxShadow = '0px 0px 5px #00000099';
|
||||
div.style.backgroundColor = '#e1e1e1';
|
||||
for (badgeNum of array) {
|
||||
var obj = document.createElement('img');
|
||||
obj.height = size;
|
||||
obj.width = size;
|
||||
obj.style.margin = 'auto';
|
||||
obj.title = org_honor_badge_title[badgeNum];
|
||||
obj.src = url_baseHonorLogo+badgeNum+'.svg';
|
||||
div.appendChild(obj);
|
||||
}
|
||||
div.style.width = 32*array.length+'px';
|
||||
div.style.borderRadius = '15px';
|
||||
return div.outerHTML;
|
||||
}
|
||||
|
||||
function createOrgLink(org) {
|
||||
var a = document.createElement('a');
|
||||
a.innerHTML = org;
|
||||
a.href = "?org="+org;
|
||||
return a.outerHTML;
|
||||
}
|
||||
|
||||
function generateRankingSheet(rank, rankDec, stepPnt, pnt, Rpnt) {
|
||||
var Cpnt = pnt - stepPnt;
|
||||
var Tpnt = Cpnt + Rpnt;
|
||||
var OuterDiv = document.createElement('div');
|
||||
var gdiv = document.createElement('div');
|
||||
gdiv.id = "globalDiv";
|
||||
gdiv.style.float = 'left';
|
||||
//progressBar
|
||||
var div = document.createElement('div');
|
||||
div.classList.add('progress');
|
||||
var pb_length = 187;
|
||||
div.style.width = pb_length+'px'; //HARDCODED...
|
||||
div.style.marginBottom = '0px';
|
||||
var div1 = document.createElement('div')
|
||||
div1.classList.add('progress-bar')
|
||||
div1.style.width = 100*(Cpnt)/Tpnt+'%';
|
||||
div1.innerHTML = "<strong>"+Cpnt+"</strong>";
|
||||
div.appendChild(div1);
|
||||
var div1 = document.createElement('div')
|
||||
div1.classList.add('progress-bar', 'progress-bar-warning')
|
||||
div1.style.width = 100*(Rpnt)/Tpnt+'%'
|
||||
div1.innerHTML = "<strong>"+Rpnt+"</strong>";
|
||||
div.appendChild(div1);
|
||||
gdiv.appendChild(div);
|
||||
// table
|
||||
var table = document.createElement('table');
|
||||
table.classList.add('table', 'table-striped');
|
||||
table.style.marginBottom = '5px';
|
||||
//head
|
||||
var thead = document.createElement('thead');
|
||||
var tr = document.createElement('tr');
|
||||
var th = document.createElement('th');
|
||||
th.innerHTML = "Rank";
|
||||
tr.appendChild(th);
|
||||
var th = document.createElement('th');
|
||||
th.innerHTML = "Requirement (CP)";
|
||||
tr.appendChild(th);
|
||||
thead.appendChild(tr);
|
||||
//body
|
||||
var tbody = document.createElement('tbody');
|
||||
for (var i=1; i<=maxRank; i++) {
|
||||
var tr = document.createElement('tr');
|
||||
var td1 = document.createElement('td');
|
||||
td1.innerHTML = getMonthlyRankIcon(i, 40);
|
||||
td1.style.padding = "2px";
|
||||
var td2 = document.createElement('td');
|
||||
td2.innerHTML = Math.floor(Math.pow(rankMultiplier, i));
|
||||
td2.style.padding = "2px";
|
||||
tr.style.textAlign = "center";
|
||||
if (i == rank) { // current org rank
|
||||
tr.style.backgroundColor = "#337ab7";
|
||||
tr.style.color = "white";
|
||||
} else if (i == rank+1) {
|
||||
tr.style.backgroundColor = "#f0ad4e";
|
||||
tr.style.color = "white";
|
||||
}
|
||||
tr.appendChild(td1);
|
||||
tr.appendChild(td2);
|
||||
tbody.appendChild(tr);
|
||||
}
|
||||
table.appendChild(thead);
|
||||
table.appendChild(tbody);
|
||||
gdiv.appendChild(table);
|
||||
OuterDiv.appendChild(gdiv);
|
||||
// Tot nbr points
|
||||
var tableHeight = 720; //HARDCODED...
|
||||
var div = document.createElement('div');
|
||||
div.classList.add('progress');
|
||||
div.style.width = '20px';
|
||||
div.style.height = tableHeight+'px'; //HARDCODED...
|
||||
div.style.display = 'flex'
|
||||
div.style.float = 'left';
|
||||
div.style.marginTop = '56px';
|
||||
div.style.marginBottom = '0px';
|
||||
div.style.marginLeft = '2px';
|
||||
var div1 = document.createElement('div')
|
||||
div1.classList.add('progress-bar', 'progress-bar-success', 'progress-bar-striped')
|
||||
div1.style.height = ((rank+rankDec)*100/16)+'%';
|
||||
div1.style.width = '100%';
|
||||
div.appendChild(div1);
|
||||
OuterDiv.appendChild(div);
|
||||
|
||||
return OuterDiv.outerHTML;
|
||||
}
|
||||
|
||||
function addToTableFromJson(datatable, url) {
|
||||
$.getJSON( url, function( data ) {
|
||||
for (i in data) {
|
||||
var row = data[i];
|
||||
i = parseInt(i);
|
||||
var to_add = [
|
||||
row.pnts,
|
||||
getMonthlyRankIcon(row.rank),
|
||||
getOrgRankIcon(row.orgRank, 60),
|
||||
createHonorImg(row.honorBadge, 20),
|
||||
createImg(row.logo_path, 32),
|
||||
createOrgLink(row.org)
|
||||
];
|
||||
datatable.row.add(to_add);
|
||||
}
|
||||
datatable.draw();
|
||||
});
|
||||
}
|
||||
|
||||
function addLastFromJson(datatable, url) {
|
||||
$.getJSON( url, function( data ) {
|
||||
for (i in data) {
|
||||
var row = data[i];
|
||||
i = parseInt(i);
|
||||
addLastContributor(datatable, row);
|
||||
}
|
||||
datatable.draw();
|
||||
});
|
||||
}
|
||||
|
||||
function addLastContributor(datatable, data, update) {
|
||||
var date = new Date(data.epoch*1000);
|
||||
var to_add = [
|
||||
date.toTimeString().slice(0,-15) +' '+ date.toLocaleDateString(),
|
||||
data.pnts,
|
||||
getMonthlyRankIcon(data.rank),
|
||||
getOrgRankIcon(data.orgRank, 60),
|
||||
createHonorImg(data.honorBadge, 20),
|
||||
createImg(data.logo_path, 32),
|
||||
createOrgLink(data.org),
|
||||
];
|
||||
if (update == undefined || update == false) {
|
||||
datatable.row.add(to_add);
|
||||
} else if(update == true) {
|
||||
datatable.rows().every( function() {
|
||||
if(this.data()[3] == data.org) {
|
||||
datatable.row( this ).data( to_add );
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function updateProgressBar(org) {
|
||||
if(currOrg != org)
|
||||
return;
|
||||
$.getJSON( url_getOrgRank+'?org='+org, function( data ) {
|
||||
var rank = Math.floor(data.rank);
|
||||
var rankDec = data.rank-rank;
|
||||
var popoverRank = $('#btnCurrRank').data('bs.popover');
|
||||
popoverRank.options.content = generateRankingSheet(rank, rankDec, data.stepPts, data.points, data.remainingPts);
|
||||
$('#orgRankDiv').html(getMonthlyRankIcon(rank, 40, true));
|
||||
$('#orgNextRankDiv').html(getMonthlyRankIcon(rank+1, 40, true));
|
||||
if (data.rank > 16){
|
||||
$('#progressBarDiv').width(1*150); //150 is empty bar width
|
||||
} else {
|
||||
$('#progressBarDiv').width((data.rank - rank)*150); //150 is empty bar width
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateOvertakePnts() {
|
||||
var prevOrgName = "";
|
||||
var prevOrgPnts = 0;
|
||||
datatableTop.rows().every( function() {
|
||||
var row = this.node();
|
||||
var orgRowName = $(this.data()[5])[0].text; // contained in <a>
|
||||
var orgRowPnts = this.data()[0]
|
||||
if(orgRowName == currOrg) {
|
||||
if(prevOrgName == ""){ //already first
|
||||
$('#orgToOverTake').text(orgRowName);
|
||||
$('#pntsToOvertakeNext').text(0);
|
||||
} else {
|
||||
$('#orgToOverTake').text(prevOrgName);
|
||||
$('#pntsToOvertakeNext').text(parseInt(prevOrgPnts)-orgRowPnts);
|
||||
}
|
||||
} else {
|
||||
prevOrgName = orgRowName;
|
||||
prevOrgPnts = orgRowPnts;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateProgressHeader(org) {
|
||||
currOrg = org;
|
||||
// get Org rank
|
||||
$.getJSON( url_getOrgRank+'?org='+org, function( data ) {
|
||||
datatableTop.draw();
|
||||
var rank = Math.floor(data.rank);
|
||||
var rankDec = data.rank-rank;
|
||||
$('#btnCurrRank').show();
|
||||
$('#orgText').text(data.org);
|
||||
var popoverRank = $('#btnCurrRank').data('bs.popover');
|
||||
popoverRank.options.content = generateRankingSheet(rank, rankDec, data.stepPts, data.points, data.remainingPts);
|
||||
$('#orgRankDiv').html(getMonthlyRankIcon(rank, 40, true));
|
||||
$('#orgNextRankDiv').html(getMonthlyRankIcon(rank+1, 40, true));
|
||||
if (data.rank > 16){
|
||||
$('#progressBarDiv').width(1*150); //150 is empty bar width
|
||||
} else {
|
||||
$('#progressBarDiv').width((data.rank - rank)*150); //150 is empty bar width
|
||||
}
|
||||
// update color in other dataTables
|
||||
datatableTop.rows().every( function() {
|
||||
var row = this.node();
|
||||
if(this.data()[5] == data.org) { row.classList.add('selectedOrgInTable'); } else { row.classList.remove('selectedOrgInTable'); }
|
||||
});
|
||||
datatableFame.rows().every( function() {
|
||||
var row = this.node();
|
||||
if(this.data()[5] == data.org) { row.classList.add('selectedOrgInTable'); } else { row.classList.remove('selectedOrgInTable'); }
|
||||
});
|
||||
datatableCateg.rows().every( function() {
|
||||
var row = this.node();
|
||||
if(this.data()[5] == data.org) { row.classList.add('selectedOrgInTable'); } else { row.classList.remove('selectedOrgInTable'); }
|
||||
});
|
||||
datatableLast.rows().every( function() {
|
||||
var row = this.node();
|
||||
if(this.data()[6] == data.org) { row.classList.add('selectedOrgInTable'); } else { row.classList.remove('selectedOrgInTable'); }
|
||||
});
|
||||
});
|
||||
|
||||
// colorize row contribution rank help
|
||||
$.getJSON( url_getContributionOrgStatus+'?org='+org, function( data ) {
|
||||
var status = data['status'];
|
||||
var curContributionOrgRank = data['rank'];
|
||||
var totNumPoints = data['totPoints']
|
||||
$('#orgTotNumOfPoint').text(totNumPoints);
|
||||
if (curContributionOrgRank == 0) {
|
||||
$('#orgContributionRank').attr('data', '');
|
||||
} else {
|
||||
$('#orgContributionRank').attr('data', url_baseOrgRankLogo+curContributionOrgRank+'.svg');
|
||||
}
|
||||
for (var row of $('#bodyTablerankingModal')[0].children) {
|
||||
row = $(row);
|
||||
var firstCell = $(row.children()[0]);
|
||||
var rank = row.data('rank');
|
||||
//remove all classes
|
||||
row.removeClass("warning");
|
||||
row.removeClass("danger");
|
||||
row.removeClass("success");
|
||||
firstCell.removeClass("successCell");
|
||||
//add correct class
|
||||
if(status[rank] == 0){
|
||||
row.addClass("danger");
|
||||
} else if(status[rank] == 1) {
|
||||
row.addClass("warning");
|
||||
}
|
||||
if(rank == curContributionOrgRank) {
|
||||
firstCell.addClass("successCell");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// colorize badge if acquired
|
||||
$.getJSON( url_getHonorBadges+'?org='+org, function( data ) {
|
||||
for(var i=0; i<numberOfBadges; i++) { // remove
|
||||
$('#divBadge_'+(i+1)).removeClass('circlBadgeAcquired');
|
||||
}
|
||||
for(var i=0; i<data.length; i++) { // add
|
||||
$('#divBadge_'+(data[i])).addClass('circlBadgeAcquired');
|
||||
}
|
||||
});
|
||||
|
||||
//update overtake points
|
||||
updateOvertakePnts();
|
||||
|
||||
//Add new data to linechart
|
||||
var flag_already_displayed = false;
|
||||
for(obj of dataTop5Overtime) { //check if already displayed
|
||||
if (obj.label == currOrg) {
|
||||
flag_already_displayed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!flag_already_displayed) {
|
||||
$.getJSON( url_getOrgOvertime+'?org='+org, function( data ) {
|
||||
var toPlot = dataTop5Overtime.slice(0); //cloning data
|
||||
// transform secs into date
|
||||
var new_data = [];
|
||||
for(list of data['data']) {
|
||||
new_data.push([list[0]*1000, list[1]]);
|
||||
}
|
||||
data['data'] = new_data;
|
||||
toPlot.push(data);
|
||||
|
||||
plotLineChart.setData(toPlot);
|
||||
plotLineChart.setupGrid();
|
||||
plotLineChart.draw();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function showOnlyOrg() {
|
||||
datatableCateg.search( $('#orgText').text() ).draw();
|
||||
}
|
||||
|
||||
function timeToString(time) {
|
||||
var min = Math.floor(time / 60);
|
||||
min = (min < 10) ? ("0" + min) : min;
|
||||
var sec = time - 60*min;
|
||||
sec = (sec < 10) ? ("0" + sec) : sec;
|
||||
return min + ":" + sec
|
||||
}
|
||||
|
||||
function updateTimer() {
|
||||
if ($("#reloadCheckbox").is(':checked')) {
|
||||
sec_before_reload--;
|
||||
if (sec_before_reload < 1) {
|
||||
source_lastContrib.close();
|
||||
location.reload();
|
||||
} else {
|
||||
$('#labelRemainingTime').text(timeToString(sec_before_reload));
|
||||
setTimeout(function(){ updateTimer(); }, 1000);
|
||||
}
|
||||
} else {
|
||||
sec_before_reload = refresh_speed;
|
||||
}
|
||||
}
|
||||
|
||||
$(':checkbox').change(function() {
|
||||
if ($("#reloadCheckbox").is(':checked')) { setTimeout(function(){ updateTimer(); }, 1000); }
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#labelRemainingTime').text(timeToString(sec_before_reload));
|
||||
updateTimer();
|
||||
$('#orgName').typeahead(typeaheadOption);
|
||||
$('#btnCurrRank').popover(popOverOption);
|
||||
datatableTop = $('#topContribTable').DataTable(optionDatatable_top);
|
||||
datatableFame = $('#fameTable').DataTable(optionDatatable_fame);
|
||||
datatableCateg = $('#categTable').DataTable(optionDatatable_Categ);
|
||||
datatableLast = $('#lastTable').DataTable(optionDatatable_last);
|
||||
// top contributors
|
||||
addToTableFromJson(datatableTop, url_getTopContributor);
|
||||
// hall of fame
|
||||
addToTableFromJson(datatableFame, url_getFameContributor);
|
||||
// last contributors
|
||||
addLastFromJson(datatableLast, url_getLastContributor);
|
||||
// category per contributors
|
||||
$.getJSON( url_getCategPerContrib, function( data ) {
|
||||
for (i in data) {
|
||||
var row = data[i];
|
||||
i = parseInt(i);
|
||||
var to_add = [
|
||||
row.pnts,
|
||||
getMonthlyRankIcon(row.rank),
|
||||
getOrgRankIcon(row.orgRank, 44),
|
||||
createHonorImg(row.honorBadge, 20),
|
||||
createImg(row.logo_path, 32),
|
||||
createOrgLink(row.org),
|
||||
];
|
||||
for (categ of categ_list) {
|
||||
to_add.push(row[categ]);
|
||||
}
|
||||
|
||||
datatableCateg.row.add(to_add);
|
||||
}
|
||||
datatableCateg.draw();
|
||||
});
|
||||
// top 5 contrib overtime
|
||||
$.getJSON( url_getTop5Overtime, function( data ) {
|
||||
// transform secs into date
|
||||
for(i in data){
|
||||
var new_data = [];
|
||||
for(list of data[i]['data']) {
|
||||
new_data.push([list[0]*1000, list[1]]);
|
||||
}
|
||||
data[i]['data'] = new_data;
|
||||
}
|
||||
dataTop5Overtime = data;
|
||||
plotLineChart = $.plot("#divTop5Overtime", data, optionsLineChart);
|
||||
});
|
||||
if(currOrg != "") // currOrg selected
|
||||
//FIXME: timeout used to wait that all datatables are draw.
|
||||
setTimeout( function() { updateProgressHeader(currOrg); }, 500);
|
||||
|
||||
source_lastContrib = new EventSource(url_eventStreamLastContributor);
|
||||
source_lastContrib.onmessage = function(event) {
|
||||
var json = jQuery.parseJSON( event.data );
|
||||
addLastContributor(datatableLast, json, true);
|
||||
datatableLast.draw();
|
||||
updateProgressBar(json.org);
|
||||
updateOvertakePnts();
|
||||
sec_before_reload = refresh_speed; //reset timer at each contribution
|
||||
};
|
||||
});
|
|
@ -125,7 +125,7 @@ class MapEventManager {
|
|||
// Add and Manage markers on the map + make Animation
|
||||
popupCoord(coord, regionCode) {
|
||||
var coord = [coord.lat, coord.lon];
|
||||
var color = Math.random()*180;
|
||||
var color = 0.5*180;
|
||||
var pnts = openStreetMapObj.latLngToPoint(coord[0], coord[1])
|
||||
if (pnts != false) { //sometimes latLngToPoint return false
|
||||
var addedMarker = openStreetMapObj.addMarker(this._curMarkerNum, coord, [color]);
|
||||
|
@ -178,7 +178,8 @@ $(function(){
|
|||
series: {
|
||||
markers: [{
|
||||
attribute: 'fill',
|
||||
scale: ['#1A0DAB', '#e50000', '#62ff41'],
|
||||
//scale: ['#1A0DAB', '#e50000', '#62ff41'],
|
||||
scale: ['#ffff66'],
|
||||
values: [],
|
||||
min: 0,
|
||||
max: 180
|
||||
|
@ -207,10 +208,10 @@ function connect_source_map() {
|
|||
var marker = L.marker([json.coord.lat, json.coord.lon]).addTo(myOpenStreetMap);
|
||||
var mapEvent = new MapEvent(json, marker);
|
||||
mapEventManager.addMapEvent(mapEvent);
|
||||
|
||||
|
||||
};
|
||||
source_map.onopen = function(){
|
||||
console.log('connection is opened. '+source_map.readyState);
|
||||
console.log('connection is opened. '+source_map.readyState);
|
||||
};
|
||||
source_map.onerror = function(){
|
||||
console.log('error: '+source_map.readyState);
|
||||
|
@ -240,4 +241,3 @@ $(document).ready(function () {
|
|||
mapEventManager.directZoom();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -0,0 +1,178 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="MISP_codeContributor.svg"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
id="svg9131"
|
||||
version="1.1"
|
||||
viewBox="0 0 123.17497 114.51722"
|
||||
height="114.51722mm"
|
||||
width="123.17497mm">
|
||||
<defs
|
||||
id="defs9125">
|
||||
<clipPath
|
||||
id="clipPath312"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath1086"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path1088"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath844"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path846"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath820"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path822"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath536"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path538"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath516"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path518"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath1064"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path1066"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath312-3"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314-8"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath312-3-6"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314-8-6"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath312-7"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314-0"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath312-3-3"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314-8-67"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:pagecheckerboard="true"
|
||||
showgrid="false"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="340.85829"
|
||||
inkscape:cx="-15.709017"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base" />
|
||||
<metadata
|
||||
id="metadata9128">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-41.489305,-34.182609)">
|
||||
<path
|
||||
id="path4519"
|
||||
d="m 141.77694,120.43026 c 0,0 0,-36.407008 0,-47.828812 0,-11.421803 -11.4218,-22.843611 -22.84361,-22.843611 -7.61451,0 -7.61451,0 -7.61451,0 V 34.528771 L 88.475209,57.372379 111.31882,80.215982 V 64.98691 c 0,0 3.80725,0 7.61451,0 3.80728,0 7.61455,3.807269 7.61455,7.614538 0,3.807266 0,47.828812 0,47.828812 -4.52114,2.6175 -7.61455,7.49556 -7.61455,13.08747 0,8.44738 6.7817,15.22908 15.22908,15.22908 8.44737,0 15.22907,-6.7817 15.22907,-15.22908 0,-5.59191 -3.0934,-10.46997 -7.61454,-13.08747 z m -7.61453,20.70201 c -4.1642,0 -7.61453,-3.45034 -7.61453,-7.61454 0,-4.16418 3.45033,-7.61454 7.61453,-7.61454 4.16421,0 7.61453,3.45036 7.61453,7.61454 0,4.1642 -3.45032,7.61454 -7.61453,7.61454 z M 73.24614,42.143304 c -8.447376,0 -15.229073,6.781699 -15.229073,15.229075 0,5.591924 3.093405,10.46998 7.614535,13.087482 v 49.851409 c -4.52113,2.61751 -7.614535,7.49557 -7.614535,13.0875 0,8.44738 6.781697,15.22906 15.229073,15.22906 8.447373,0 15.229069,-6.78168 15.229069,-15.22906 0,-5.59193 -3.093406,-10.46999 -7.614534,-13.0875 V 70.459861 c 4.521128,-2.617502 7.614534,-7.495558 7.614534,-13.087482 0,-8.447376 -6.781696,-15.229075 -15.229069,-15.229075 z m 0,98.988966 c -4.1642,0 -7.614538,-3.45034 -7.614538,-7.61454 0,-4.16418 3.450338,-7.61454 7.614538,-7.61454 4.164197,0 7.614535,3.45036 7.614535,7.61454 0,4.1642 -3.450338,7.61454 -7.614535,7.61454 z m 0,-76.14536 c -4.1642,0 -7.614538,-3.450332 -7.614538,-7.614531 0,-4.1642 3.450338,-7.614542 7.614538,-7.614542 4.164197,0 7.614535,3.450342 7.614535,7.614542 0,4.164199 -3.450338,7.614531 -7.614535,7.614531 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:1;fill:#5f6062;fill-opacity:1;stroke-width:0.1189771" />
|
||||
<g
|
||||
style="fill:#2fa1db;fill-opacity:1"
|
||||
clip-path="url(#clipPath312-3-3)"
|
||||
id="g310-6-5"
|
||||
transform="matrix(0.19487456,0,0,-0.19487456,43.704489,196.77524)">
|
||||
<g
|
||||
style="fill:#2fa1db;fill-opacity:1"
|
||||
transform="translate(385.579,529.5928)"
|
||||
id="g316-3-3">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path318-4-5"
|
||||
style="fill:#2fa1db;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 h -5.184 v -56.985 c 0,-8.879 -5.16,-16.902 -15.523,-16.902 h -101.465 v -2.709 c 0,-7.851 8.922,-15.763 18.084,-15.763 h 77.581 l 29.678,-17.449 -4.31,17.449 H 0 c 9.156,0 13.287,7.906 13.287,15.763 v 63.068 C 13.287,-5.683 9.156,0 0,0" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:#2fa1db;fill-opacity:1"
|
||||
transform="translate(349.7253,569.1839)"
|
||||
id="g320-9-6">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path322-7-2"
|
||||
style="fill:#2fa1db;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 h -117.85 c -10.369,0 -22.301,-9.211 -22.301,-18.09 v -71.424 c 0,-8.177 10.11,-14.082 19.807,-14.987 l -6.311,-23.958 40.441,23.786 H 0 c 10.363,0 19.937,6.286 19.937,15.159 v 57.786 13.638 C 19.937,-9.211 10.363,0 0,0 m -99.871,-60.292 c -5.88,0 -10.645,4.766 -10.645,10.646 0,5.88 4.765,10.646 10.645,10.646 5.874,0 10.646,-4.766 10.646,-10.646 0,-5.88 -4.772,-10.646 -10.646,-10.646 m 39.764,0 c -5.88,0 -10.646,4.766 -10.646,10.646 0,5.88 4.766,10.646 10.646,10.646 5.88,0 10.646,-4.766 10.646,-10.646 0,-5.88 -4.766,-10.646 -10.646,-10.646 m 39.77,0 c -5.881,0 -10.652,4.766 -10.652,10.646 0,5.88 4.771,10.646 10.652,10.646 5.868,0 10.645,-4.766 10.645,-10.646 0,-5.88 -4.777,-10.646 -10.645,-10.646" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.5 KiB |
|
@ -0,0 +1,185 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="123.17497mm"
|
||||
height="114.51722mm"
|
||||
viewBox="0 0 123.17497 114.51722"
|
||||
version="1.1"
|
||||
id="svg9131"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="MISP_donator.svg">
|
||||
<defs
|
||||
id="defs9125">
|
||||
<clipPath
|
||||
id="clipPath312"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath1086"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path1088"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath844"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path846"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath820"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path822"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath536"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path538"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath516"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path518"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath1064"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path1066"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath312-3"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314-8"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath312-3-6"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314-8-6"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
<clipPath
|
||||
id="clipPath312-7"
|
||||
clipPathUnits="userSpaceOnUse">
|
||||
<path
|
||||
id="path314-0"
|
||||
d="M 0,0 H 595.276 V 841.89 H 0 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="155.51184"
|
||||
inkscape:cy="300.45219"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata9128">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-41.489305,-34.182609)">
|
||||
<path
|
||||
style="fill:#5f6062;stroke:#5f6062;stroke-width:0.265;fill-opacity:1;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 83.077572,54.224268 c 0.169068,10.00204 -9.883511,15.00214 -9.464411,25.3611 v 0 0 c -7.663921,-6.98024 -17.974469,-2.48444 -25.527794,-9.04319 -4.99401,-4.33785 -5.389298,-11.20008 -0.703262,-16.32214 4.147608,-4.535757 9.053248,-4.386268 14.2621,-0.28417 0.205052,-6.627016 3.243527,-10.478291 9.38239,-10.741816 6.936581,-0.297392 11.938793,4.415896 12.050977,11.030216 z"
|
||||
id="path9839"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#5f6062;stroke:#5f6062;stroke-width:0.26458332;fill-opacity:1;stroke-opacity:1"
|
||||
d="m 164.41658,127.69985 c -0.003,-0.0103 -0.003,-0.0198 -0.007,-0.0307 -0.0177,-0.10927 -0.0402,-0.21722 -0.0651,-0.32623 -0.007,-0.0318 -0.0167,-0.0635 -0.0222,-0.095 -0.0209,-0.0863 -0.0439,-0.17357 -0.0667,-0.25876 -0.0143,-0.05 -0.0288,-0.0992 -0.0458,-0.1487 -0.0198,-0.0685 -0.0408,-0.13705 -0.064,-0.20611 -0.0201,-0.0598 -0.0421,-0.11932 -0.0632,-0.18018 -0.0167,-0.0442 -0.0291,-0.0894 -0.0484,-0.13361 L 148.44157,85.698828 c -1.10781,-2.88184 -3.87509,-4.78393 -6.95987,-4.78393 h -1.44039 -1.63989 -15.39611 v 0 c -6.03488,0 -12.24623,0 -15.98771,0 -17.380477,0 -28.007997,16.89047 -28.007997,16.89047 H 112.0304 l 5.82956,5.829572 0.0828,28.83403 22.09959,-8.8392 v -13.843 l 6.9514,15.12358 -23.80483,9.24983 c -3.8391,1.49093 -5.74093,5.81131 -4.24974,9.64989 1.14644,2.95037 3.96478,4.75747 6.9514,4.75747 0.89667,0 1.80975,-0.16351 2.69796,-0.50879 l 31.1883,-12.11739 c 1.22449,-0.47625 2.25239,-1.24195 3.03635,-2.18864 0.007,-0.0109 0.0167,-0.0204 0.0236,-0.0302 0.0696,-0.0839 0.13653,-0.16801 0.1995,-0.2532 0.0177,-0.023 0.0325,-0.0458 0.0495,-0.0693 0.0558,-0.0736 0.10715,-0.1487 0.16034,-0.22596 0.0217,-0.0315 0.0426,-0.0656 0.0654,-0.0984 0.0429,-0.0677 0.0868,-0.13573 0.12886,-0.20505 0.0241,-0.041 0.0495,-0.0831 0.0743,-0.12276 0.037,-0.063 0.0728,-0.127 0.10609,-0.1913 0.0267,-0.0463 0.0505,-0.0942 0.0759,-0.14102 0.0315,-0.0619 0.0617,-0.12356 0.0921,-0.18547 0.0243,-0.0508 0.0495,-0.10028 0.0712,-0.15161 0.0299,-0.0611 0.0553,-0.12435 0.0804,-0.18812 0.0164,-0.0336 0.031,-0.0667 0.0471,-0.10054 0.004,-0.0177 0.0114,-0.0349 0.0188,-0.0534 0.0265,-0.0659 0.0505,-0.13282 0.0741,-0.20055 0.0185,-0.0479 0.0352,-0.0958 0.0529,-0.14367 0.0257,-0.0778 0.0497,-0.15611 0.0749,-0.23522 0.0106,-0.0378 0.022,-0.0743 0.0336,-0.11377 0.0304,-0.10292 0.0558,-0.20611 0.0825,-0.31088 0.003,-0.0146 0.007,-0.0275 0.0101,-0.0415 0.22755,-0.96388 0.26301,-1.98015 0.0833,-2.99085 z"
|
||||
id="path9813"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#5f6062;stroke:#5f6062;stroke-width:0.265;fill-opacity:1;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 51.580778,111.56344 c -5.4991,0 -9.959181,4.45982 -9.959181,9.95865 0,5.50043 4.459816,9.95892 9.959181,9.95892 5.500423,0 9.958123,-4.45849 9.958123,-9.95892 -2.65e-4,-5.49857 -4.4577,-9.95865 -9.958123,-9.95865 z"
|
||||
id="path9811"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#5f6062;stroke:#5f6062;stroke-width:0.265;fill-opacity:1;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 119.39957,34.314901 c -11.28924,0 -20.441967,9.15273 -20.441967,20.443027 0,11.29162 9.152727,20.44568 20.441967,20.44568 11.29189,0 20.44462,-9.15406 20.44462,-20.44568 -2.6e-4,-11.290297 -9.15273,-20.443027 -20.44462,-20.443027 z"
|
||||
id="path593"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
style="fill:#2fa1db;fill-opacity:1"
|
||||
clip-path="url(#clipPath312-3)"
|
||||
id="g310-6"
|
||||
transform="matrix(0.27125139,0,0,-0.27125139,7.5574611,254.83572)">
|
||||
<g
|
||||
style="fill:#2fa1db;fill-opacity:1"
|
||||
transform="translate(385.579,529.5928)"
|
||||
id="g316-3">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path318-4"
|
||||
style="fill:#2fa1db;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 h -5.184 v -56.985 c 0,-8.879 -5.16,-16.902 -15.523,-16.902 h -101.465 v -2.709 c 0,-7.851 8.922,-15.763 18.084,-15.763 h 77.581 l 29.678,-17.449 -4.31,17.449 H 0 c 9.156,0 13.287,7.906 13.287,15.763 v 63.068 C 13.287,-5.683 9.156,0 0,0" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:#2fa1db;fill-opacity:1"
|
||||
transform="translate(349.7253,569.1839)"
|
||||
id="g320-9">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path322-7"
|
||||
style="fill:#2fa1db;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="m 0,0 h -117.85 c -10.369,0 -22.301,-9.211 -22.301,-18.09 v -71.424 c 0,-8.177 10.11,-14.082 19.807,-14.987 l -6.311,-23.958 40.441,23.786 H 0 c 10.363,0 19.937,6.286 19.937,15.159 v 57.786 13.638 C 19.937,-9.211 10.363,0 0,0 m -99.871,-60.292 c -5.88,0 -10.645,4.766 -10.645,10.646 0,5.88 4.765,10.646 10.645,10.646 5.874,0 10.646,-4.766 10.646,-10.646 0,-5.88 -4.772,-10.646 -10.646,-10.646 m 39.764,0 c -5.88,0 -10.646,4.766 -10.646,10.646 0,5.88 4.766,10.646 10.646,10.646 5.88,0 10.646,-4.766 10.646,-10.646 0,-5.88 -4.766,-10.646 -10.646,-10.646 m 39.77,0 c -5.881,0 -10.652,4.766 -10.652,10.646 0,5.88 4.771,10.646 10.652,10.646 5.868,0 10.645,-4.766 10.645,-10.646 0,-5.88 -4.777,-10.646 -10.645,-10.646" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 9.0 KiB |
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="0.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1" />
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="1.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#0b0b0b;stroke-width:0.99739587"
|
||||
d="M 0.16665649,63.999999 V 54.026041 H 63.999991 127.83333 v 9.973958 9.973959 H 63.999991 0.16665649 Z"
|
||||
id="path772"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="10.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#111111;stroke-width:0.99739587"
|
||||
d="M 62.343761,112.12435 C 61.53636,111.16436 57.126415,103.8709 52.543883,95.916667 47.961352,87.962435 42.268796,78.208063 39.89376,74.240283 c -2.375037,-3.967778 -4.318248,-7.67061 -4.318248,-8.228515 0,-0.598995 3.165302,-1.020627 7.729817,-1.029646 10.15222,-0.02006 11.26424,-0.747882 7.893918,-5.166603 -1.427729,-1.871849 -3.289023,-5.062308 -4.136209,-7.08991 -0.847186,-2.027601 -2.104299,-3.686548 -2.793585,-3.686548 -0.689286,0 -3.177249,3.117951 -5.528806,6.928782 -2.40369,3.895311 -4.80177,6.726855 -5.477483,6.467559 C 32.164283,62.013723 29.037427,57.110729 19.313016,40.561196 8.6605585,22.432265 4.6000293,14.71792 5.0680943,13.498162 c 0.773004,-2.014416 56.2518007,-2.015579 57.0247917,-0.0012 0.287363,0.748853 -1.073279,4.264674 -3.023648,7.812933 l -3.546124,6.451383 h 8.97672 c 4.937196,0 8.97672,-0.348368 8.97672,-0.774152 0,-1.027095 -3.951733,-7.919019 -5.777975,-10.076938 -0.79515,-0.939562 -1.180964,-2.398254 -0.857366,-3.241537 0.510259,-1.329715 4.358007,-1.533242 28.986581,-1.533242 17.944256,0 28.626206,0.368876 29.017526,1.002053 0.34061,0.551129 -2.18127,5.82486 -5.60419,11.719401 -3.42293,5.894542 -8.15719,14.08356 -10.52059,18.197818 -7.32809,12.756904 -8.746508,15.062415 -10.891772,17.703593 L 95.749993,63.3176 94.035806,60.915961 c -0.942802,-1.320902 -3.027057,-4.533573 -4.631679,-7.139269 -3.32558,-5.400312 -5.510499,-6.033488 -6.426624,-1.8624 -0.347328,1.581377 -2.249163,4.765099 -4.226299,7.074937 -4.495274,5.251716 -3.660811,5.971941 6.94345,5.992893 6.136283,0.01213 7.729817,0.31816 7.729817,1.4845 0,0.808075 -1.967699,4.735321 -4.372664,8.727214 C 86.646841,79.185728 82.085234,86.940104 78.914904,92.425781 65.322476,115.94498 65.439803,115.80552 62.343761,112.12435 Z"
|
||||
id="path518"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="11.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#111111;stroke-width:0.99348962"
|
||||
d="m 21.529938,100.91799 c 0,-1.359502 3.920128,-6.608152 11.896717,-15.928482 15.583832,-18.209096 14.603288,-16.58494 22.273214,-36.892997 4.666854,-12.35667 7.714112,-19.115393 8.618423,-19.115393 0.915572,0 3.820939,6.696535 8.408548,19.380728 l 7.009606,19.380727 13.368427,15.695095 c 7.352637,8.632302 13.517447,16.117275 13.699587,16.633272 0.54172,1.53467 -3.88517,1.10547 -22.451114,-2.176678 -9.690797,-1.713168 -18.513771,-3.11498 -19.60661,-3.115136 -1.878162,-2.69e-4 -20.368986,2.990764 -32.288412,5.222904 -10.085151,1.88863 -10.928386,1.9593 -10.928386,0.91596 z"
|
||||
id="path550"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="12.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#151515;stroke-width:1.00130212"
|
||||
d="m 2.6752408,89.532877 c 0.00257,-0.413037 4.2448526,-5.822961 9.4272882,-12.022054 9.593178,-11.475108 9.562596,-11.418725 16.9695,-31.284262 1.340733,-3.595887 3.031325,-6.508464 3.777806,-6.508464 0.823391,0 3.308647,5.341981 6.362939,13.676942 4.85887,13.259536 5.286855,13.99982 14.023545,24.256514 4.956446,5.818765 9.708694,10.59085 10.56055,10.604634 0.851858,0.01379 5.744362,-5.057323 10.87223,-11.269128 8.776929,-10.632208 9.605623,-12.04565 14.138474,-24.114931 2.648291,-7.051407 5.085319,-13.090985 5.415617,-13.421283 1.229046,-1.229045 2.697451,1.706565 7.10503,14.204259 4.43124,12.564771 4.71278,13.044933 14.01165,23.896769 5.21926,6.090895 9.48955,11.44732 9.48955,11.903167 0,1.16391 -0.83125,1.082518 -16.24772,-1.590898 L 94.837247,85.480673 82.047199,87.862277 C 66.149031,90.822638 63.554215,90.82136 46.388103,87.844722 L 32.530772,85.441832 19.448656,87.862844 C 5.5049689,90.443299 2.66781,90.725779 2.6752408,89.532877 Z"
|
||||
id="path582"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="13.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#151515;stroke-width:1.00520837"
|
||||
d="m 3.6874899,114.47988 c 0,-0.43214 4.2597003,-5.91381 9.4660011,-12.18146 9.247589,-11.132806 9.586187,-11.725396 14.674978,-25.683087 5.389245,-14.781782 6.464572,-16.515432 20.606591,-33.222105 3.116404,-3.681564 5.52169,-8.387237 8.991645,-17.591147 2.605435,-6.910807 5.11179,-12.956337 5.569678,-13.434511 1.098315,-1.14697 2.881831,2.600964 7.512166,15.786287 3.590293,10.223706 4.406924,11.584019 13.234443,22.045436 8.929785,10.58261 10.422367,12.795498 8.630498,12.795498 -0.427649,0 -7.081805,-1.105418 -14.787016,-2.456483 L 63.577002,58.081826 49.464278,60.654771 c -7.761999,1.415121 -14.325969,2.771477 -14.586601,3.014127 -0.48491,0.451452 2.062285,8.049812 7.187481,21.440477 2.291353,5.986647 4.666352,9.60895 11.533807,17.591145 4.756552,5.52865 9.206332,10.37885 9.8884,10.77824 0.806192,0.47205 4.402992,-3.06044 10.279172,-10.0954 10.629865,-12.72606 10.116459,-11.848327 15.778667,-26.975664 2.438715,-6.515349 4.858986,-11.987742 5.37838,-12.160873 0.519393,-0.173131 3.243743,6.000153 6.054116,13.718409 4.92874,13.53609 5.40584,14.377453 13.46836,23.751568 8.85448,10.29492 10.36223,12.38289 9.5374,13.20772 -0.49375,0.49375 -15.89135,-1.85363 -24.378285,-3.71649 -3.108585,-0.68232 -7.340807,-0.3004 -17.495061,1.57877 -16.391344,3.03343 -18.196975,3.03755 -35.247487,0.0804 l -13.619134,-2.36194 -13.018887,2.36624 c -14.1443948,2.5708 -16.5371161,2.80352 -16.5371161,1.60836 z"
|
||||
id="path614"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="14.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#151515;stroke-width:0.99739587"
|
||||
d="m 48.539054,114.20989 -15.459636,-2.74793 -11.470053,2.04586 c -16.4908021,2.94137 -18.9505209,3.22802 -18.9505209,2.20846 0,-0.50103 4.2719033,-6.05373 9.4931179,-12.33934 9.729674,-11.713161 10.277509,-12.735522 16.949671,-31.631157 2.927299,-8.290144 4.225731,-10.372402 12.98463,-20.823066 10.271355,-12.255246 9.314523,-10.436013 19.572445,-37.213297 1.442955,-3.7666884 2.997929,-1.238262 7.909454,12.860965 4.021047,11.542984 4.871755,13.080843 11.81151,21.352133 4.113107,4.902291 8.901181,10.301086 10.640167,11.997322 2.309227,2.252459 4.538199,6.78478 8.266291,16.808401 2.80746,7.548385 5.1148,14.056393 5.12742,14.46224 0.0126,0.405847 4.26987,5.675014 9.46059,11.709259 8.54451,9.93305 10.85628,13.49837 8.71895,13.44679 -0.41142,-0.01 -7.03164,-1.11401 -14.71159,-2.45351 l -13.963539,-2.43546 -13.963542,2.47966 c -7.679948,1.36382 -14.636784,2.60138 -15.459636,2.75013 -0.822851,0.14875 -8.45293,-0.9661 -16.955729,-2.47746 z m 26.471999,-11.79965 c 7.986929,-9.223634 8.958048,-10.832824 13.057149,-21.636315 2.435657,-6.419356 4.296029,-12.35925 4.13416,-13.199764 -0.179178,-0.9304 -3.802321,2.617189 -9.26201,9.068867 -8.464546,10.002497 -9.20668,11.260238 -13.226939,22.416477 -4.179206,11.597325 -4.666295,13.315495 -3.774837,13.315495 0.244087,0 4.326702,-4.48414 9.072477,-9.96476 z m -15.500645,5.4633 c 0,-0.83009 -1.704687,-6.13097 -3.788193,-11.779718 -3.260614,-8.840096 -4.745403,-11.373313 -10.661257,-18.189302 -7.837919,-9.030506 -9.032116,-9.87469 -8.216503,-5.808283 1.655065,8.251655 7.204344,20.823546 11.155109,25.271896 2.293384,2.582228 5.42597,6.341897 6.961301,8.354827 2.959711,3.88038 4.549543,4.63189 4.549543,2.15058 z m 13.35179,-42.186468 c 4.87493,-0.927173 8.828358,-2.134599 8.785395,-2.683167 -0.04296,-0.548567 -4.031541,-1.795135 -8.863509,-2.770149 -8.279446,-1.67066 -9.331073,-1.677863 -18.260655,-0.12508 -10.0641,1.750065 -12.771994,2.925103 -8.871482,3.849609 6.308525,1.495255 15.510587,3.337826 16.850649,3.374081 0.822851,0.02226 5.484672,-0.71812 10.359602,-1.645294 z"
|
||||
id="path646"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="15.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#252525;stroke-width:0.99739587"
|
||||
d="M 41.558585,115.33412 C 30.038662,108.57855 18.03251,101.46537 14.878245,99.52706 L 9.1432192,96.002867 V 64.498697 32.994528 L 14.878245,29.471899 C 25.509451,22.941885 63.345758,1.16406 64.059651,1.16406 c 0.389198,0 2.89134,1.3746563 5.560315,3.0547918 2.668976,1.6801355 13.945176,8.3003502 25.058224,14.7115892 11.11305,6.411238 21.09947,12.437854 22.19206,13.392478 1.90244,1.662229 1.98651,3.023851 1.98651,32.175778 0,29.151927 -0.0841,30.513549 -1.98651,32.175778 -1.09259,0.954625 -11.07901,6.981235 -22.19206,13.392475 -11.113048,6.41124 -22.389248,13.03146 -25.058224,14.71159 -2.668975,1.68013 -5.361944,3.00612 -5.984375,2.94663 -0.622431,-0.0595 -10.557084,-5.63547 -22.077006,-12.39105 z m 45.325062,-6.79018 c 12.727551,-7.31777 24.006163,-14.045794 25.063563,-14.951179 1.81204,-1.551517 1.92257,-3.224121 1.92257,-29.094064 0,-25.869943 -0.11053,-27.542547 -1.92257,-29.094064 -1.0574,-0.905385 -12.352374,-7.642821 -25.099921,-14.972081 L 63.669929,7.1066264 50.619465,14.61701 C 43.44171,18.747722 32.407478,25.162398 26.098949,28.871846 l -11.470053,6.74445 V 64.499013 93.38173 l 10.971355,6.430639 c 15.029577,8.809281 37.843404,22.036591 38.007665,22.036591 0.0741,0 10.548181,-5.98726 23.275731,-13.30502 z M 36.072907,98.441026 c 0,-0.257306 2.468555,-6.779205 5.485678,-14.49311 3.017122,-7.713904 5.485677,-14.893454 5.485677,-15.954554 0,-1.905375 -0.993554,-2.637826 -20.886445,-15.397534 -6.401235,-4.105883 -7.173545,-4.899186 -5.617379,-5.77006 1.226502,-0.686385 4.582672,-0.653371 10.481337,0.103102 4.772413,0.612038 11.68593,1.112795 15.363372,1.112795 7.918032,0 7.159101,1.097908 11.720693,-16.955729 1.732575,-6.857097 3.597326,-13.324667 4.143892,-14.372378 0.95581,-1.832187 1.032686,-1.835368 2.013194,-0.0833 0.560689,1.001897 1.351953,3.2056 1.758364,4.897118 2.203817,9.172478 7.027838,24.02213 8.177124,25.171417 1.289812,1.289811 6.908806,1.078366 28.949366,-1.089374 6.7473,-0.663614 6.0818,1.064979 -2.50638,6.510077 -3.970024,2.517094 -10.247821,6.49706 -13.950653,8.844369 -3.702832,2.347311 -6.732422,4.855296 -6.732422,5.573304 0,0.718006 2.496653,7.647113 5.548116,15.398014 3.051464,7.750901 5.407812,14.797572 5.236329,15.659268 C 90.514568,98.741154 88.291885,97.45003 82.451815,92.778356 69.16187,82.147269 64.771846,78.960937 63.414625,78.960937 c -0.712749,0 -4.126625,2.386488 -7.586391,5.303306 C 40.279837,97.372602 36.072907,100.39157 36.072907,98.441026 Z"
|
||||
id="path678"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="16.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#323232;stroke-width:1.00130212"
|
||||
d="M 54.737621,123.35879 C 50.331892,120.73567 39.517829,114.40555 30.706371,109.29184 21.894912,104.17813 13.440145,99.125961 11.917997,98.064801 L 9.1504571,96.135421 9.4147417,64.422202 9.6790265,32.708983 19.191397,27.085754 C 24.4232,23.992979 34.336091,18.179372 41.220043,14.166627 48.103995,10.153882 55.803403,5.5876064 58.32984,4.019347 c 2.526436,-1.5682595 5.06533,-2.8513808 5.641985,-2.8513808 0.576655,0 3.240723,1.380006 5.920151,3.06668 2.679429,1.686674 14.333993,8.4859108 25.899032,15.1094168 11.565042,6.623506 21.590572,12.764289 22.278972,13.646183 0.9381,1.201795 1.25163,9.157544 1.25163,31.760404 0,22.60286 -0.31353,30.558609 -1.25163,31.760404 -0.6884,0.881895 -10.71393,7.022676 -22.278972,13.646186 -11.565039,6.6235 -23.219603,13.42274 -25.899032,15.10942 -2.679428,1.68667 -5.382944,3.02048 -6.007812,2.96404 -0.624869,-0.0565 -4.740813,-2.24881 -9.146543,-4.87191 z m 32.485648,-14.3904 C 100.00067,101.62197 111.32345,94.867591 112.385,93.95866 c 1.81913,-1.557594 1.9301,-3.236748 1.9301,-29.20801 0,-25.985312 -0.11015,-27.649712 -1.93295,-29.21045 C 111.31903,34.629928 99.977663,27.874888 87.179116,20.529001 L 63.909029,7.1728417 39.297283,21.468218 14.685537,35.763595 v 28.986516 28.986518 l 24.531902,14.285301 c 13.492546,7.85693 24.586418,14.28942 24.65305,14.29445 0.06664,0.005 10.575383,-6.00156 23.35278,-13.34799 z m -38.994111,-0.3599 C 40.243773,103.92071 30.21108,98.058199 25.934283,95.58071 L 18.158289,91.076184 18.424517,63.991707 18.690746,36.907229 40.218741,24.431613 c 11.840397,-6.86159 22.203874,-12.670356 23.029948,-12.908371 1.323306,-0.381279 41.206121,22.078827 45.428811,25.583347 1.43157,1.188094 1.63239,4.523398 1.63239,27.110825 0,23.276536 -0.16869,25.904025 -1.75228,27.293027 -2.3877,2.094308 -43.887087,25.832149 -44.955835,25.714949 -0.469555,-0.0515 -7.387233,-3.9291 -15.372617,-8.6169 z m 20.761976,0.86922 c 2.624175,-1.55912 10.628845,-6.13532 17.788155,-10.169325 7.15931,-4.034005 14.481331,-8.413609 16.271161,-9.732453 l 3.25423,-2.3979 V 64.354231 c 0,-20.472042 -0.18055,-22.98538 -1.75228,-24.391918 C 103.58865,39.099849 94.115013,33.375427 83.49988,27.241375 L 64.199638,16.088551 43.447796,27.907607 22.695954,39.726664 v 24.389729 24.38973 l 20.526693,11.886257 c 11.289681,6.53744 20.632571,11.89388 20.761976,11.90319 0.129407,0.009 2.382336,-1.25872 5.006511,-2.81786 z M 41.220043,91.805931 c 0,-0.815006 1.802344,-6.0058 4.005208,-11.535098 2.202865,-5.529299 4.005209,-10.888403 4.005209,-11.909121 0,-1.257092 -3.555549,-4.185767 -11.020386,-9.0774 -6.061213,-3.971852 -10.751821,-7.656096 -10.423575,-8.18721 0.37003,-0.598723 5.678221,-0.702102 13.969379,-0.27206 l 13.372567,0.693601 0.675508,-2.896366 c 2.672624,-11.45936 5.651885,-22.03073 6.427315,-22.80616 1.178758,-1.178758 2.238852,1.389886 5.566756,13.488436 1.452271,5.279711 3.011711,10.200119 3.465422,10.934238 0.667298,1.079711 3.347344,1.158733 14.025479,0.413546 7.260303,-0.50667 13.399194,-0.598357 13.641982,-0.203747 0.242787,0.394609 -2.84259,2.839894 -6.856396,5.433965 -13.598221,8.788359 -15.03503,9.797622 -15.425723,10.835552 -0.214575,0.570047 1.639068,6.173147 4.119206,12.451334 4.462569,11.296483 5.216047,14.125417 3.758365,14.110777 -0.413037,-0.0041 -5.184113,-3.608835 -10.602392,-8.010416 -5.418279,-4.401581 -10.297172,-8.002875 -10.841985,-8.002875 -0.544814,0 -5.399169,3.604687 -10.787456,8.010416 -5.388288,4.40573 -10.084345,8.010417 -10.435684,8.010417 -0.351339,0 -0.638799,-0.666823 -0.638799,-1.481829 z"
|
||||
id="path710"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="2.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#0b0b0b;stroke-width:1.00520837"
|
||||
d="M 0.16665649,80.078125 V 70.026041 H 64.499991 128.83333 V 80.078125 90.130208 H 64.499991 0.16665649 Z m 0,-30.156251 V 39.86979 H 64.499991 128.83333 V 49.921874 59.973957 H 64.499991 0.16665649 Z"
|
||||
id="path804"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="3.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#0b0b0b;stroke-width:1.00130212"
|
||||
d="M 0.66665649,91.786458 V 81.773437 H 64.749991 128.83333 V 91.786458 101.79948 H 64.749991 0.66665649 Z m 0,-28.036459 V 53.736978 H 64.749991 128.83333 V 63.749999 73.76302 H 64.749991 0.66665649 Z m 0,-28.036459 V 25.700519 H 64.749991 128.83333 V 35.71354 45.726561 H 64.749991 0.66665649 Z"
|
||||
id="path836"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="4.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#0b0b0b;stroke-width:1.00130212"
|
||||
d="M 54.23697,64.249999 V 0.16666412 H 64.249991 74.263013 V 64.249999 128.33333 H 64.249991 54.23697 Z"
|
||||
id="path868"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="5.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#0b0b0b;stroke-width:0.99739587"
|
||||
d="M 39.065095,63.999999 V 0.16666412 h 9.973959 9.973958 V 63.999999 127.83333 h -9.973958 -9.973959 z m 29.921876,0 V 0.16666412 h 9.973958 9.973959 V 63.999999 127.83333 h -9.973959 -9.973958 z"
|
||||
id="path900"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="6.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#0b0b0b;stroke-width:1.00130212"
|
||||
d="M 26.200511,64.249999 V 0.16666412 H 36.213532 46.226554 V 64.249999 128.33333 H 36.213532 26.200511 Z m 28.036459,0 V 0.16666412 H 64.249991 74.263013 V 64.249999 128.33333 H 64.249991 54.23697 Z m 28.036459,0 V 0.16666412 H 92.286451 102.29947 V 64.249999 128.33333 H 92.286451 82.273429 Z"
|
||||
id="path932"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="7.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#101010;stroke-width:1.33333337"
|
||||
d="m 61.76702,111.33333 c -1.560266,-1.65 -4.325016,-5.7 -6.143887,-9 C 48.796385,89.947477 40.356856,75.485119 20.277378,41.76326 15.942423,34.483053 12.577338,27.583053 12.79941,26.429926 c 0.358935,-1.863799 6.173532,-2.096595 52.367248,-2.096595 46.193712,0 52.008312,0.232796 52.367252,2.096595 0.22207,1.153127 -3.14302,8.053127 -7.47797,15.333334 -20.079481,33.721859 -28.51901,48.184217 -35.345758,60.57007 -3.041394,5.51804 -8.196455,12 -9.543524,12 -0.309532,0 -1.83937,-1.35 -3.399638,-3 z"
|
||||
id="path422"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="8.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#111111;stroke-width:0.99739587"
|
||||
d="M 31.444428,87.086367 C 30.424401,85.743271 28.718295,83.141479 27.65308,81.304608 26.587865,79.467737 23.637831,74.374218 21.097447,69.985676 18.557065,65.597135 13.93046,57.634332 10.816103,52.29056 7.701746,46.946788 5.1536358,41.90115 5.1536358,41.078031 c 0,-1.313738 7.2502832,-1.496578 59.3450532,-1.496578 52.094771,0 59.345051,0.18284 59.345051,1.496578 0,0.823119 -2.5481,5.868757 -5.66246,11.212529 -6.06921,10.413841 -13.6877,23.559534 -16.83698,29.05215 -3.083127,5.377238 -5.996059,8.475035 -7.244022,7.703752 -0.630139,-0.389448 -2.994065,-3.939788 -5.253169,-7.889645 -15.69406,-27.43977 -23.169575,-39.596923 -24.34842,-39.596923 -1.028546,0 -4.019211,4.674537 -14.676571,22.940105 -12.577713,21.556849 -14.298687,24.315672 -15.385502,24.663882 -0.625677,0.200464 -1.972161,-0.734417 -2.992188,-2.077514 z"
|
||||
id="path454"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128px"
|
||||
height="128px"
|
||||
viewBox="0 0 128 128"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="9.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2"
|
||||
inkscape:cx="64"
|
||||
inkscape:cy="44"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs335" />
|
||||
<metadata
|
||||
id="metadata338">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
style="fill:#121212;stroke-width:1.00130212"
|
||||
d="M 61.468159,113.12565 C 58.415683,108.10721 53.833627,100.36539 48.541707,91.285156 39.960335,76.560656 34.504975,67.470242 29.012339,58.742838 26.23957,54.337108 21.379055,46.226561 18.211193,40.7194 15.043332,35.212238 10.476039,27.427493 8.0616549,23.419966 c -2.4143845,-4.007526 -4.38979,-7.944659 -4.38979,-8.749182 0,-1.266559 8.0517901,-1.462771 60.0265791,-1.462771 39.049716,0 60.243446,0.350898 60.647156,1.004115 0.34131,0.552263 -1.74012,4.939981 -4.62543,9.750485 -11.09808,18.503188 -13.71638,22.956181 -16.91783,28.772412 -1.81881,3.304297 -4.478204,7.580593 -5.909775,9.50288 -1.431573,1.922286 -3.109017,4.400509 -3.727656,5.507161 -0.618637,1.106652 -3.509622,6.067368 -6.424409,11.023814 -2.914788,4.956445 -7.72715,13.259921 -10.694139,18.452168 -6.758882,11.828082 -10.45671,17.330752 -11.982226,17.830542 -0.653296,0.21404 -1.821485,-0.65264 -2.595976,-1.92594 z M 92.251461,63.306364 C 92.767005,62.472198 89.431456,56.449651 71.011877,24.956938 66.051136,16.475355 64.160399,14.371875 62.762498,15.779349 61.928562,16.618995 52.258677,32.892185 40.568499,53.129033 c -2.670232,4.622434 -4.854967,9.015647 -4.854967,9.762696 0,1.111084 5.091488,1.35827 27.977366,1.35827 16.431664,0 28.21804,-0.389419 28.560563,-0.943635 z"
|
||||
id="path486"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 242 B |
After Width: | Height: | Size: 275 B |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 304 B |
After Width: | Height: | Size: 329 B |
After Width: | Height: | Size: 400 B |
After Width: | Height: | Size: 401 B |
After Width: | Height: | Size: 400 B |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 7.1 KiB |
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="1-Ensign.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-0.1416896,248.21496)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-4">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 203.92291,97.380318 47.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -47.26363,0.14212 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="10-Colonel.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.19595437,247.30259)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-62">
|
||||
<g
|
||||
id="g5478-6">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482-1"
|
||||
d="M 4.3655218,146.68142 C 4.2166368,146.29338 4.1609914,135.07386 4.2418652,121.74916 L 4.3889086,97.522435 127.92291,97.380318 l 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 C 29.58578,147.35818 4.5814298,147.24416 4.3655218,146.68142 Z M 44.539934,122.66153 c 0.106868,-13.1064 -0.03351,-18.46326 -0.498508,-19.02355 -0.529525,-0.63804 -3.631174,-0.75276 -17.051123,-0.63067 l -16.403859,0.14925 -0.148358,19.02343 -0.148357,19.02344 17.050725,-0.14913 17.050726,-0.14912 z m 40.002201,-0.31087 c 0.115945,-14.46905 -0.0081,-18.65404 -0.563412,-19.00653 -0.822351,-0.52201 -31.442049,-0.64091 -32.780516,-0.12729 -0.787535,0.3022 -0.891199,2.48672 -0.891199,18.7804 0,10.14114 0.172726,18.61115 0.383835,18.82226 0.21111,0.21111 7.880561,0.31675 17.043222,0.23476 l 16.659385,-0.14908 z m 40.001935,-0.17894 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z m 40.56577,0.0126 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z m 40.00218,-0.0126 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z m 40.5661,0.48981 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5496-8"
|
||||
d="m 10.438086,122.17999 0.148358,-19.02343 16.403859,-0.14925 c 13.419949,-0.12209 16.521598,-0.007 17.051123,0.63067 0.465,0.56029 0.605376,5.91715 0.498508,19.02355 l -0.148754,18.24365 -17.050726,0.14912 -17.050725,0.14913 z"
|
||||
style="fill:#f80909;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494-7"
|
||||
d="m 50.690843,140.8195 c -0.211109,-0.21111 -0.383835,-8.68112 -0.383835,-18.82226 0,-16.29368 0.103664,-18.4782 0.891199,-18.7804 1.338467,-0.51362 31.958165,-0.39472 32.780516,0.12729 0.555299,0.35249 0.679357,4.53748 0.563412,19.00653 l -0.148685,18.55452 -16.659385,0.14908 c -9.162661,0.082 -16.832112,-0.0237 -17.043222,-0.23476 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492-9"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490-2"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488-0"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480-2"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.3 KiB |
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="11-Senior_Colonel.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-0.18202182,247.60498)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-6">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="M 4.3655218,146.68142 C 4.2166368,146.29338 4.1609914,135.07386 4.2418652,121.74916 L 4.3889086,97.522435 127.92291,97.380318 l 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 C 29.58578,147.35818 4.5814298,147.24416 4.3655218,146.68142 Z M 44.539934,122.66153 c 0.106868,-13.1064 -0.03351,-18.46326 -0.498508,-19.02355 -0.529525,-0.63804 -3.631174,-0.75276 -17.051123,-0.63067 l -16.403859,0.14925 -0.148358,19.02343 -0.148357,19.02344 17.050725,-0.14913 17.050726,-0.14912 z m 40.002201,-0.31087 c 0.115945,-14.46905 -0.0081,-18.65404 -0.563412,-19.00653 -0.822351,-0.52201 -31.442049,-0.64091 -32.780516,-0.12729 -0.787535,0.3022 -0.891199,2.48672 -0.891199,18.7804 0,10.14114 0.172726,18.61115 0.383835,18.82226 0.21111,0.21111 7.880561,0.31675 17.043222,0.23476 l 16.659385,-0.14908 z m 40.001935,-0.17894 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z m 40.56577,0.0126 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z m 40.00218,-0.0126 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z m 40.5661,0.48981 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5496"
|
||||
d="m 10.438086,122.17999 0.148358,-19.02343 16.403859,-0.14925 c 13.419949,-0.12209 16.521598,-0.007 17.051123,0.63067 0.465,0.56029 0.605376,5.91715 0.498508,19.02355 l -0.148754,18.24365 -17.050726,0.14912 -17.050725,0.14913 z"
|
||||
style="fill:#f80909;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494"
|
||||
d="m 50.690843,140.8195 c -0.211109,-0.21111 -0.383835,-8.68112 -0.383835,-18.82226 0,-16.29368 0.103664,-18.4782 0.891199,-18.7804 1.338467,-0.51362 31.958165,-0.39472 32.780516,0.12729 0.555299,0.35249 0.679357,4.53748 0.563412,19.00653 l -0.148685,18.55452 -16.659385,0.14908 c -9.162661,0.082 -16.832112,-0.0237 -17.043222,-0.23476 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.3 KiB |
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="12-Major_General.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.12036891,247.86957)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-9">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="M 4.3655218,146.68142 C 4.2166368,146.29338 4.1609914,135.07386 4.2418652,121.74916 L 4.3889086,97.522435 127.92291,97.380318 l 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 C 29.58578,147.35818 4.5814298,147.24416 4.3655218,146.68142 Z M 44.539934,122.66153 c 0.106868,-13.1064 -0.03351,-18.46326 -0.498508,-19.02355 -0.529525,-0.63804 -3.631174,-0.75276 -17.051123,-0.63067 l -16.403859,0.14925 -0.148358,19.02343 -0.148357,19.02344 17.050725,-0.14913 17.050726,-0.14912 z m 40.002201,-0.31087 c 0.115945,-14.46905 -0.0081,-18.65404 -0.563412,-19.00653 -0.822351,-0.52201 -31.442049,-0.64091 -32.780516,-0.12729 -0.787535,0.3022 -0.891199,2.48672 -0.891199,18.7804 0,10.14114 0.172726,18.61115 0.383835,18.82226 0.21111,0.21111 7.880561,0.31675 17.043222,0.23476 l 16.659385,-0.14908 z m 40.001935,-0.17894 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z m 40.56577,0.0126 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z m 40.00218,-0.0126 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z m 40.5661,0.48981 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5496"
|
||||
d="m 10.438086,122.17999 0.148358,-19.02343 16.403859,-0.14925 c 13.419949,-0.12209 16.521598,-0.007 17.051123,0.63067 0.465,0.56029 0.605376,5.91715 0.498508,19.02355 l -0.148754,18.24365 -17.050726,0.14912 -17.050725,0.14913 z"
|
||||
style="fill:#f80909;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494"
|
||||
d="m 50.690843,140.8195 c -0.211109,-0.21111 -0.383835,-8.68112 -0.383835,-18.82226 0,-16.29368 0.103664,-18.4782 0.891199,-18.7804 1.338467,-0.51362 31.958165,-0.39472 32.780516,0.12729 0.555299,0.35249 0.679357,4.53748 0.563412,19.00653 l -0.148685,18.55452 -16.659385,0.14908 c -9.162661,0.082 -16.832112,-0.0237 -17.043222,-0.23476 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.3 KiB |
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="13-Lieutenant_General.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:cx="-84.285714"
|
||||
inkscape:cy="560"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.42274238,247.41597)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-7">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="M 4.3655218,146.68142 C 4.2166368,146.29338 4.1609914,135.07386 4.2418652,121.74916 L 4.3889086,97.522435 127.92291,97.380318 l 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 C 29.58578,147.35818 4.5814298,147.24416 4.3655218,146.68142 Z M 44.539934,122.66153 c 0.106868,-13.1064 -0.03351,-18.46326 -0.498508,-19.02355 -0.529525,-0.63804 -3.631174,-0.75276 -17.051123,-0.63067 l -16.403859,0.14925 -0.148358,19.02343 -0.148357,19.02344 17.050725,-0.14913 17.050726,-0.14912 z m 40.002201,-0.31087 c 0.115945,-14.46905 -0.0081,-18.65404 -0.563412,-19.00653 -0.822351,-0.52201 -31.442049,-0.64091 -32.780516,-0.12729 -0.787535,0.3022 -0.891199,2.48672 -0.891199,18.7804 0,10.14114 0.172726,18.61115 0.383835,18.82226 0.21111,0.21111 7.880561,0.31675 17.043222,0.23476 l 16.659385,-0.14908 z m 40.001935,-0.17894 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z m 40.56577,0.0126 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z m 40.00218,-0.0126 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z m 40.5661,0.48981 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5496"
|
||||
d="m 10.438086,122.17999 0.148358,-19.02343 16.403859,-0.14925 c 13.419949,-0.12209 16.521598,-0.007 17.051123,0.63067 0.465,0.56029 0.605376,5.91715 0.498508,19.02355 l -0.148754,18.24365 -17.050726,0.14912 -17.050725,0.14913 z"
|
||||
style="fill:#f80909;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494"
|
||||
d="m 50.690843,140.8195 c -0.211109,-0.21111 -0.383835,-8.68112 -0.383835,-18.82226 0,-16.29368 0.103664,-18.4782 0.891199,-18.7804 1.338467,-0.51362 31.958165,-0.39472 32.780516,0.12729 0.555299,0.35249 0.679357,4.53748 0.563412,19.00653 l -0.148685,18.55452 -16.659385,0.14908 c -9.162661,0.082 -16.832112,-0.0237 -17.043222,-0.23476 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.3 KiB |
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="14.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.959798"
|
||||
inkscape:cx="107.05485"
|
||||
inkscape:cy="38.661822"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 56.133227,284.66198 c -0.04005,-0.10437 -0.0551,-2.36937 -0.03344,-5.03332 l 0.03938,-4.84354 4.340188,-0.0395 c 3.550695,-0.0323 4.37134,-0.002 4.511442,0.16686 0.123031,0.14825 0.160174,1.56558 0.1319,5.03332 l -0.03936,4.82696 -4.438642,0.0395 c -3.485237,0.031 -4.454284,-10e-4 -4.511466,-0.15028 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.14906949" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 45.431006,284.74792 c -0.05466,-0.0547 -0.09938,-2.26012 -0.09938,-4.90103 0,-3.88583 0.03899,-4.83402 0.204404,-4.9713 0.144904,-0.12026 1.457528,-0.15812 4.509354,-0.13006 l 4.304948,0.0396 0.03925,5.03109 0.03925,5.03109 H 49.97961 c -2.447073,0 -4.493945,-0.0447 -4.548603,-0.0994 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.14906949" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 24.199043,279.81621 0.03925,-5.03109 h 4.39755 4.39755 l 0.03925,5.03109 0.03925,5.03109 h -4.476049 -4.47605 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.14906949" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 34.81629,284.66198 c -0.04005,-0.10437 -0.0551,-2.36937 -0.03344,-5.03332 l 0.03938,-4.84354 4.173945,-0.0418 c 2.29567,-0.023 4.325781,-0.005 4.511357,0.0406 l 0.337413,0.0824 -0.03927,4.95321 -0.03927,4.95322 -4.438642,0.0395 c -3.485237,0.031 -4.454284,-0.001 -4.511464,-0.15028 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.14906949" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494"
|
||||
d="m 13.532311,284.7501 c -0.05586,-0.0558 -0.101556,-2.29688 -0.101556,-4.98005 0,-4.31104 0.02743,-4.88903 0.235796,-4.96898 0.354136,-0.1359 8.455598,-0.10444 8.673178,0.0337 0.146923,0.0933 0.179747,1.20055 0.14907,5.02882 l -0.03934,4.90921 -4.407795,0.0395 c -2.424288,0.0217 -4.453497,-0.006 -4.509353,-0.0621 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.14906949" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5496"
|
||||
d="m 2.8821028,279.8184 0.039253,-5.03328 4.3401877,-0.0395 c 3.5506945,-0.0323 4.3713395,-0.002 4.5114425,0.16686 0.123032,0.14825 0.160173,1.56558 0.131897,5.03332 l -0.03936,4.82696 -4.5113374,0.0395 -4.5113376,0.0394 z"
|
||||
style="fill:#f80909;stroke-width:0.14906949" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="M 1.2754035,286.30107 C 1.236011,286.1984 1.2212882,283.2299 1.242686,279.70441 l 0.038905,-6.40999 32.685038,-0.0376 32.685037,-0.0376 -0.03882,6.59666 -0.03882,6.59665 -32.613502,0.0376 c -26.0122639,0.03 -32.6279981,-1.8e-4 -32.6851238,-0.14907 z m 10.6294795,-6.35526 c 0.02828,-3.46774 -0.0089,-4.88507 -0.131897,-5.03332 -0.140103,-0.16881 -0.960748,-0.19917 -4.5114425,-0.16686 l -4.3401877,0.0395 -0.039253,5.03328 -0.039253,5.03328 4.5113376,-0.0394 4.5113376,-0.0395 z m 10.583916,-0.0822 c 0.03068,-3.82827 -0.0021,-4.93555 -0.14907,-5.02882 -0.21758,-0.13811 -8.319042,-0.16957 -8.673178,-0.0337 -0.208368,0.0799 -0.235796,0.65794 -0.235796,4.96898 0,2.68317 0.0457,4.9242 0.101556,4.98005 0.05586,0.0559 2.085065,0.0838 4.509353,0.0621 l 4.407795,-0.0395 z m 10.583845,-0.0473 -0.03925,-5.03109 h -4.39755 -4.39755 l -0.03925,5.03109 -0.03925,5.03109 h 4.47605 4.476049 z m 10.733026,0.003 0.03927,-4.95321 -0.337413,-0.0824 c -0.185576,-0.0453 -2.215687,-0.0636 -4.511357,-0.0406 l -4.173945,0.0418 -0.03938,4.84354 c -0.02167,2.66395 -0.0066,4.92895 0.03344,5.03332 0.05718,0.14901 1.026227,0.18129 4.511464,0.15028 l 4.438642,-0.0395 z m 10.58391,-0.003 -0.03925,-5.03109 -4.304948,-0.0396 c -3.051826,-0.0281 -4.36445,0.01 -4.509354,0.13006 -0.165418,0.13728 -0.204404,1.08547 -0.204404,4.9713 0,2.64091 0.04472,4.84638 0.09938,4.90103 0.05466,0.0547 2.10153,0.0994 4.548603,0.0994 h 4.449222 z m 10.733114,0.1296 c 0.02827,-3.46774 -0.0089,-4.88507 -0.1319,-5.03332 -0.140102,-0.16881 -0.960747,-0.19917 -4.511442,-0.16686 l -4.340188,0.0395 -0.03938,4.84354 c -0.02167,2.66395 -0.0066,4.92895 0.03344,5.03332 0.05718,0.14901 1.026229,0.18129 4.511466,0.15028 l 4.438642,-0.0395 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.14906949" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.8 KiB |
|
@ -0,0 +1,124 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="15.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="-16.871229"
|
||||
inkscape:cy="75.427991"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3768-3"
|
||||
d="m 2.588407,292.37351 c -0.055931,-0.0559 -0.1016932,-5.3206 -0.1016932,-11.69928 0,-11.31062 0.00727,-11.60147 0.294014,-11.75493 0.4655304,-0.24914 62.6483012,-0.21691 62.9878152,0.0326 0.240014,0.17643 0.255672,1.02118 0.219056,11.81827 l -0.03943,11.62827 -31.629032,0.0384 c -17.395969,0.0211 -31.6747957,-0.007 -31.730727,-0.0633 z"
|
||||
style="fill:#a4a2a1;stroke-width:0.15200348" />
|
||||
<path
|
||||
style="fill:#f60c0c;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 45.534099,279.52379 c -0.260343,-0.26034 -0.260343,-8.79906 0,-9.0594 0.259894,-0.2599 8.191499,-0.2599 8.451394,0 0.260342,0.26034 0.260342,8.79906 0,9.0594 -0.259895,0.2599 -8.1915,0.2599 -8.451394,0 z"
|
||||
id="path4791"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#f60c0c;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 55.870335,279.52379 c -0.260342,-0.26034 -0.260342,-8.79906 0,-9.0594 0.259895,-0.2599 8.1915,-0.2599 8.451395,0 0.260344,0.26034 0.260344,8.79906 0,9.0594 -0.259895,0.2599 -8.1915,0.2599 -8.451395,0 z"
|
||||
id="path3766-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.15200348"
|
||||
d="m 4.1945487,290.97979 c -0.1497002,-0.095 -0.1833171,-1.17865 -0.1520037,-4.89978 l 0.040205,-4.77777 4.2456108,-0.0405 c 3.2952962,-0.0314 4.2729552,0.003 4.3677722,0.152 0.06719,0.10586 0.12321,2.22252 0.12449,4.70371 0.002,3.90054 -0.03001,4.54358 -0.236535,4.75011 -0.205108,0.2051 -0.80119,0.23853 -4.2180971,0.23653 -2.1885786,-10e-4 -4.065728,-0.0572 -4.1714425,-0.12434 z"
|
||||
id="path4825"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.15200348"
|
||||
d="m 14.530785,290.97979 c -0.1497,-0.095 -0.183317,-1.17865 -0.152003,-4.89978 l 0.04021,-4.77777 4.24561,-0.0405 c 3.295296,-0.0314 4.272955,0.003 4.367773,0.152 0.06719,0.10586 0.12321,2.2592 0.12449,4.78522 0.0022,4.38643 -0.01088,4.59982 -0.291687,4.75011 -0.349405,0.18699 -8.043514,0.21532 -8.334388,0.0307 z"
|
||||
id="path4823"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.15200348"
|
||||
d="m 24.847613,290.8982 c -0.122871,-0.14805 -0.161212,-1.56531 -0.132616,-4.90211 l 0.04023,-4.69385 4.245611,-0.0405 c 3.295295,-0.0314 4.272955,0.003 4.367773,0.152 0.06719,0.10586 0.123209,2.2592 0.124489,4.78522 0.0021,4.38643 -0.01087,4.59982 -0.291687,4.75011 -0.180999,0.0969 -1.809834,0.15735 -4.237484,0.15735 -3.153706,0 -3.978088,-0.0417 -4.116312,-0.20826 z"
|
||||
id="path4821"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 35.18385,290.8982 c -0.122872,-0.14805 -0.161213,-1.56531 -0.132617,-4.90211 l 0.04023,-4.69385 h 4.3321 4.332099 l 0.04039,4.7121 c 0.03681,4.29506 0.01744,4.72893 -0.219057,4.90211 -0.393501,0.28818 -8.152836,0.2713 -8.393144,-0.0183 z"
|
||||
id="path4779"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 45.606362,290.91646 c -0.236485,-0.17319 -0.255874,-0.60706 -0.219057,-4.90211 l 0.04039,-4.71211 h 4.3321 4.3321 l 0.04039,4.71211 c 0.03681,4.29505 0.01744,4.72892 -0.219057,4.90211 -0.191587,0.1403 -1.277953,0.19 -4.153434,0.19 -2.875481,0 -3.961847,-0.0497 -4.153434,-0.19 z"
|
||||
id="path4777"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 55.942598,290.91646 c -0.236485,-0.17319 -0.255871,-0.60706 -0.219057,-4.90211 l 0.04039,-4.71211 h 4.332099 4.3321 l 0.04039,4.71211 c 0.03682,4.29505 0.01744,4.72892 -0.219056,4.90211 -0.191588,0.1403 -1.277954,0.19 -4.153435,0.19 -2.875481,0 -3.961847,-0.0497 -4.153434,-0.19 z"
|
||||
id="path4775"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#f60c0c;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 4.1967529,279.60553 c -0.1460397,-0.0589 -0.1900044,-1.12513 -0.1900044,-4.60784 0,-3.99162 0.028631,-4.54216 0.2404372,-4.62344 0.4246343,-0.16295 7.9664143,-0.10368 8.2817503,0.0651 0.280222,0.14997 0.294014,0.36245 0.294014,4.5297 0,3.19804 -0.04899,4.42134 -0.182404,4.55475 -0.133337,0.13334 -1.268001,0.17918 -4.2180965,0.17041 -2.2196308,-0.007 -4.1211941,-0.0465 -4.2256966,-0.0887 z"
|
||||
id="path4819"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#f60c0c;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 14.53299,279.60553 c -0.14604,-0.0589 -0.190005,-1.12513 -0.190005,-4.60784 0,-3.99162 0.02863,-4.54216 0.240437,-4.62344 0.424635,-0.16295 7.966415,-0.10368 8.281751,0.0651 0.280223,0.14997 0.294014,0.36245 0.294014,4.5297 0,3.19804 -0.04899,4.42134 -0.182404,4.55475 -0.133338,0.13334 -1.268001,0.17918 -4.218097,0.17041 -2.219631,-0.007 -4.121194,-0.0465 -4.225696,-0.0887 z"
|
||||
id="path4817"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#f60c0c;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 24.869226,279.60553 c -0.268344,-0.10828 -0.275631,-8.87311 -0.0076,-9.14114 0.236942,-0.23694 7.900846,-0.25997 8.339782,-0.0251 0.280226,0.14997 0.294016,0.36246 0.294016,4.52971 0,3.19804 -0.04899,4.42134 -0.182407,4.55475 -0.133336,0.13334 -1.267999,0.17918 -4.218093,0.17041 -2.219632,-0.007 -4.121195,-0.0465 -4.225698,-0.0887 z"
|
||||
id="path3762-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#f60c0c;fill-opacity:1;stroke-width:0.15200348"
|
||||
d="m 35.205464,279.60553 c -0.268346,-0.10828 -0.275632,-8.87311 -0.0076,-9.14114 0.259895,-0.2599 8.1915,-0.2599 8.451395,0 0.260342,0.26034 0.260342,8.79906 0,9.0594 -0.133339,0.13334 -1.268002,0.17918 -4.218098,0.17041 -2.21963,-0.007 -4.121193,-0.0465 -4.225695,-0.0887 z"
|
||||
id="path4793"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="16.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.959798"
|
||||
inkscape:cx="149.5279"
|
||||
inkscape:cy="32.999857"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="g3760"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
id="g3760"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.25014905,248.81803)">
|
||||
<path
|
||||
style="fill:#a4a2a1;stroke-width:0.57450134"
|
||||
d="m 7.9803632,163.76207 c -0.2113938,-0.2114 -0.3843524,-20.10938 -0.3843524,-44.21775 0,-42.748803 0.027495,-43.848097 1.1112341,-44.428096 C 10.46673,74.174576 245.48823,74.29641 246.77143,75.239636 c 0.90714,0.666796 0.96632,3.859571 0.82793,44.667474 l -0.14904,43.94935 -119.5428,0.14498 c -65.748543,0.0797 -119.7157629,-0.028 -119.9271568,-0.23937 z"
|
||||
id="path3768"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.57450134"
|
||||
d="m 14.05082,158.49447 c -0.565796,-0.35914 -0.692852,-4.45475 -0.574502,-18.51887 l 0.151957,-18.05773 16.046403,-0.1529 c 12.454663,-0.11867 16.14975,0.01 16.508116,0.5745 0.253943,0.40007 0.465673,8.40007 0.470511,17.77778 0.0076,14.74219 -0.113417,17.17259 -0.893991,17.95316 -0.775209,0.77521 -3.02812,0.90155 -15.942412,0.894 -8.271793,-0.005 -15.366531,-0.21632 -15.766082,-0.46994 z"
|
||||
id="path4545" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.57450134"
|
||||
d="M 53.116911,158.49447 C 52.551116,158.13533 52.42406,154.03972 52.54241,139.9756 l 0.151957,-18.05773 16.046402,-0.1529 c 12.454661,-0.11867 16.14975,0.01 16.508118,0.5745 0.253942,0.40007 0.465674,8.5387 0.470511,18.08585 0.0084,16.57863 -0.04113,17.38517 -1.102439,17.95317 -1.320583,0.70675 -30.400682,0.81383 -31.500048,0.11598 z"
|
||||
id="path4543" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.57450134"
|
||||
d="m 92.109646,158.18608 c -0.464393,-0.55956 -0.609305,-5.91613 -0.501224,-18.52767 l 0.152036,-17.74054 16.046402,-0.1529 c 12.45466,-0.11867 16.14975,0.01 16.50812,0.5745 0.25394,0.40007 0.46567,8.5387 0.47051,18.08585 0.008,16.57863 -0.0411,17.38517 -1.10244,17.95317 -0.68409,0.36611 -6.84032,0.59471 -16.01569,0.59471 -11.919518,0 -15.035291,-0.15764 -15.557714,-0.78712 z"
|
||||
id="path4541" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.57450134"
|
||||
d="m 53.125243,115.50512 c -0.551961,-0.22272 -0.718127,-4.25245 -0.718127,-17.415468 0,-15.086425 0.108209,-17.167222 0.908739,-17.474414 1.604917,-0.615864 30.109284,-0.391845 31.301104,0.245999 1.05911,0.566817 1.111235,1.369912 1.111235,17.120139 0,12.087104 -0.185156,16.710584 -0.689402,17.214824 -0.503952,0.50395 -4.792444,0.6772 -15.942412,0.64405 -8.389156,-0.025 -15.576168,-0.17575 -15.971137,-0.33513 z"
|
||||
id="path4537" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.57450134"
|
||||
d="m 14.059151,115.50512 c -0.551961,-0.22272 -0.718127,-4.25245 -0.718127,-17.415468 0,-15.086425 0.10821,-17.167222 0.908739,-17.474414 1.604917,-0.615864 30.109282,-0.391845 31.301105,0.245999 1.059107,0.566817 1.111234,1.369912 1.111234,17.120139 0,12.087104 -0.185156,16.710584 -0.689401,17.214824 -0.503953,0.50395 -4.792445,0.6772 -15.942413,0.64405 -8.389156,-0.025 -15.576167,-0.17575 -15.971137,-0.33513 z"
|
||||
id="path4539" />
|
||||
<path
|
||||
style="fill:#062e5f;stroke-width:0.57450134"
|
||||
d="m 92.191334,115.50512 c -1.014213,-0.40924 -1.041755,-33.536167 -0.02872,-34.549196 0.895527,-0.895528 29.861466,-0.982541 31.520436,-0.09469 1.05912,0.566817 1.11124,1.369912 1.11124,17.120139 0,12.087107 -0.18516,16.710587 -0.68941,17.214827 -0.50395,0.50395 -4.79244,0.6772 -15.9424,0.64405 -8.389159,-0.025 -15.576171,-0.17575 -15.971141,-0.33513 z"
|
||||
id="path3762" />
|
||||
<path
|
||||
style="fill:#f7b634;stroke-width:0.57450134"
|
||||
d="m 131.25743,115.50512 c -1.01422,-0.40924 -1.04176,-33.536167 -0.0287,-34.549196 0.98228,-0.982279 30.96,-0.982279 31.94228,0 0.98397,0.983976 0.98397,33.256296 0,34.240276 -0.50396,0.50395 -4.79245,0.6772 -15.94242,0.64405 -8.38915,-0.025 -15.57616,-0.17575 -15.97113,-0.33513 z"
|
||||
id="path4515" />
|
||||
<path
|
||||
style="fill:#f7b634;stroke-width:0.57450134"
|
||||
d="m 209.36088,115.1962 c -0.98397,-0.98398 -0.98397,-33.2563 0,-34.240276 0.98228,-0.982279 30.96,-0.982279 31.94228,0 0.98398,0.983976 0.98398,33.256296 0,34.240276 -0.98228,0.98228 -30.96,0.98228 -31.94228,0 z"
|
||||
id="path3766" />
|
||||
<path
|
||||
style="fill:#f60c0c;stroke-width:0.57450134"
|
||||
d="m 131.17574,158.18608 c -0.4644,-0.55956 -0.60931,-5.91613 -0.50123,-18.52767 l 0.15204,-17.74054 h 16.37329 16.37329 l 0.15266,17.80954 c 0.13914,16.23327 0.0659,17.87309 -0.82793,18.52766 -1.48725,1.08917 -30.81387,1.02539 -31.72212,-0.069 z"
|
||||
id="path4503" />
|
||||
<path
|
||||
style="fill:#f60c0c;stroke-width:0.57450134"
|
||||
d="m 170.56791,158.25508 c -0.8938,-0.65457 -0.96708,-2.29439 -0.82793,-18.52766 l 0.15266,-17.80954 h 16.37329 16.37329 l 0.15266,17.80954 c 0.13914,16.23327 0.0659,17.87309 -0.82793,18.52766 -0.72411,0.5303 -4.83006,0.71813 -15.69802,0.71813 -10.86796,0 -14.97391,-0.18783 -15.69802,-0.71813 z"
|
||||
id="path4501" />
|
||||
<path
|
||||
style="fill:#f60c0c;stroke-width:0.57450134"
|
||||
d="m 209.634,158.25508 c -0.8938,-0.65457 -0.96707,-2.29439 -0.82793,-18.52766 l 0.15266,-17.80954 h 16.37329 16.37329 l 0.15266,17.80954 c 0.13915,16.23327 0.0659,17.87309 -0.82793,18.52766 -0.72411,0.5303 -4.83006,0.71813 -15.69802,0.71813 -10.86796,0 -14.97391,-0.18783 -15.69802,-0.71813 z"
|
||||
id="path4499" />
|
||||
<path
|
||||
style="fill:#f7b634;stroke-width:0.57450134"
|
||||
d="m 170.29479,115.1962 c -0.98397,-0.98398 -0.98397,-33.2563 0,-34.240276 0.98228,-0.982279 30.96,-0.982279 31.94228,0 0.98397,0.983976 0.98397,33.256296 0,34.240276 -0.98228,0.98228 -30.96,0.98228 -31.94228,0 z"
|
||||
id="path4513" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.2 KiB |
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="2-Junior Lieutenant.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-0.21728494,247.64799)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-1">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 165.92291,97.380318 85.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -85.26363,0.14212 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,103 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="3-Second_Lieutenant.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.17359836,247.459)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-9">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 124.3889,97.272435 3.53401,0.107883 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 -3.06558,-0.21966 c -0.42164,-16.58271 -0.49956,-33.1651 -0.44537,-49.752735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5602"
|
||||
d="m 165.10984,122.18432 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,103 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="4-Lieutenant.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,-0.01538974,248.02597)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-1">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 124.3889,97.272435 3.53401,0.107883 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 -3.06558,-0.21966 c -0.42164,-16.58271 -0.49956,-33.1651 -0.44537,-49.752735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5602"
|
||||
d="m 165.10984,122.18432 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,113 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="5-Senior_Lieutenant.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.17359766,247.64799)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-3">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 84.388905,97.272435 43.534005,0.107883 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 -43.065582,-0.21966 c -0.421642,-16.58271 -0.499553,-33.1651 -0.445363,-49.752735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5604"
|
||||
d="m 124.54407,122.17172 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5602"
|
||||
d="m 165.10984,122.18432 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
|
@ -0,0 +1,113 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="6-Captain.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.1735978,247.64799)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-9">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 84.388905,97.272435 43.534005,0.107883 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 -43.065582,-0.21966 c -0.421642,-16.58271 -0.499553,-33.1651 -0.445363,-49.752735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5604"
|
||||
d="m 124.54407,122.17172 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5602"
|
||||
d="m 165.10984,122.18432 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="7-Senior_Captain.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.21394269,247.6398)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-2">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cacccccsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 44.834272,146.80642 c -0.148885,-0.38804 -0.359491,-16.70392 -0.433767,-25.05726 -0.07254,-8.15859 -0.0116,-24.476725 -0.0116,-24.476725 l 83.534005,0.107883 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 c -98.314074,0.11335 -82.849674,0.12433 -83.065582,-0.43841 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5606"
|
||||
d="m 84.542135,122.35066 c 0.115945,-14.46905 -0.0081,-18.65404 -0.563412,-19.00653 -0.822351,-0.52201 -31.442049,-0.64091 -32.780516,-0.12729 -0.787535,0.3022 -0.891199,2.48672 -0.891199,18.7804 0,10.14114 0.172726,18.61115 0.383835,18.82226 0.21111,0.21111 7.880561,0.31675 17.043222,0.23476 l 16.659385,-0.14908 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5604"
|
||||
d="m 124.54407,122.17172 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5602"
|
||||
d="m 165.10984,122.18432 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494"
|
||||
d="m 50.690843,140.8195 c -0.211109,-0.21111 -0.383835,-8.68112 -0.383835,-18.82226 0,-16.29368 0.103664,-18.4782 0.891199,-18.7804 1.338467,-0.51362 31.958165,-0.39472 32.780516,0.12729 0.555299,0.35249 0.679357,4.53748 0.563412,19.00653 l -0.148685,18.55452 -16.659385,0.14908 c -9.162661,0.082 -16.832112,-0.0237 -17.043222,-0.23476 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="8-Major.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.4029308,247.45081)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-9">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cacccccsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 44.834272,146.80642 c -0.148885,-0.38804 -0.359491,-16.70392 -0.433767,-25.05726 -0.07254,-8.15859 -0.0116,-24.476725 -0.0116,-24.476725 l 83.534005,0.107883 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 c -98.314074,0.11335 -82.849674,0.12433 -83.065582,-0.43841 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5606"
|
||||
d="m 84.542135,122.35066 c 0.115945,-14.46905 -0.0081,-18.65404 -0.563412,-19.00653 -0.822351,-0.52201 -31.442049,-0.64091 -32.780516,-0.12729 -0.787535,0.3022 -0.891199,2.48672 -0.891199,18.7804 0,10.14114 0.172726,18.61115 0.383835,18.82226 0.21111,0.21111 7.880561,0.31675 17.043222,0.23476 l 16.659385,-0.14908 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5604"
|
||||
d="m 124.54407,122.17172 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5602"
|
||||
d="m 165.10984,122.18432 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494"
|
||||
d="m 50.690843,140.8195 c -0.211109,-0.21111 -0.383835,-8.68112 -0.383835,-18.82226 0,-16.29368 0.103664,-18.4782 0.891199,-18.7804 1.338467,-0.51362 31.958165,-0.39472 32.780516,0.12729 0.555299,0.35249 0.679357,4.53748 0.563412,19.00653 l -0.148685,18.55452 -16.659385,0.14908 c -9.162661,0.082 -16.832112,-0.0237 -17.043222,-0.23476 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="128"
|
||||
viewBox="0 0 67.733332 33.866668"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="9-Lieutenant_Colonel.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="102.89677"
|
||||
inkscape:cy="139.70413"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-263.13332)">
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,0.21394297,247.26183)"
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-7">
|
||||
<g
|
||||
id="g5478">
|
||||
<path
|
||||
sodipodi:nodetypes="cacccccsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5608"
|
||||
d="m 44.834272,146.80642 c -0.148885,-0.38804 -0.359491,-16.70392 -0.433767,-25.05726 -0.07254,-8.15859 -0.0116,-24.476725 -0.0116,-24.476725 l 83.534005,0.107883 123.534,-0.142116 -0.14672,24.932258 -0.14671,24.93225 -123.26363,0.14212 c -98.314074,0.11335 -82.849674,0.12433 -83.065582,-0.43841 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5606"
|
||||
d="m 84.542135,122.35066 c 0.115945,-14.46905 -0.0081,-18.65404 -0.563412,-19.00653 -0.822351,-0.52201 -31.442049,-0.64091 -32.780516,-0.12729 -0.787535,0.3022 -0.891199,2.48672 -0.891199,18.7804 0,10.14114 0.172726,18.61115 0.383835,18.82226 0.21111,0.21111 7.880561,0.31675 17.043222,0.23476 l 16.659385,-0.14908 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5604"
|
||||
d="m 124.54407,122.17172 -0.14835,-19.01516 H 107.77506 91.154398 l -0.148347,19.01516 -0.148346,19.01516 h 16.917355 16.91735 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5602"
|
||||
d="m 165.10984,122.18432 0.14843,-18.72082 -1.27526,-0.31154 c -0.70139,-0.17134 -8.37425,-0.24041 -17.0508,-0.15349 l -15.77554,0.15805 -0.14884,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.1264,19.02357 0.21611,0.56318 3.87865,0.68519 17.0512,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5600"
|
||||
d="m 205.11202,122.17172 -0.14834,-19.01516 -16.27067,-0.14962 c -11.53446,-0.10606 -16.49556,0.037 -17.04323,0.49155 -0.6252,0.51887 -0.77255,4.1026 -0.77255,18.78917 0,9.9814 0.16903,18.31703 0.37561,18.52361 0.20658,0.20659 7.94279,0.37561 17.19157,0.37561 h 16.81596 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5482"
|
||||
d="m 245.67812,122.66153 c 0.10686,-13.1064 -0.0335,-18.46326 -0.49852,-19.02355 -0.52952,-0.63804 -3.63117,-0.75276 -17.05112,-0.63067 l -16.40386,0.14925 -0.14883,18.30632 c -0.0819,10.06847 -0.025,18.62908 0.12639,19.02357 0.21612,0.56318 3.87866,0.68519 17.05121,0.56799 l 16.77597,-0.14926 z"
|
||||
style="fill:#a6a3a3;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5494"
|
||||
d="m 50.690843,140.8195 c -0.211109,-0.21111 -0.383835,-8.68112 -0.383835,-18.82226 0,-16.29368 0.103664,-18.4782 0.891199,-18.7804 1.338467,-0.51362 31.958165,-0.39472 32.780516,0.12729 0.555299,0.35249 0.679357,4.53748 0.563412,19.00653 l -0.148685,18.55452 -16.659385,0.14908 c -9.162661,0.082 -16.832112,-0.0237 -17.043222,-0.23476 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5492"
|
||||
d="m 91.006051,122.17172 0.148347,-19.01516 h 16.620662 16.62066 l 0.14835,19.01516 0.14834,19.01516 H 107.77506 90.857705 Z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5490"
|
||||
d="m 131.13423,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.1264,-19.02357 l 0.14884,-18.30632 15.77554,-0.15805 c 8.67655,-0.0869 16.34941,-0.0178 17.0508,0.15349 l 1.27526,0.31154 -0.14843,18.72082 -0.14844,18.72082 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.0512,-0.56799 z"
|
||||
style="fill:#f80909;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5488"
|
||||
d="m 171.25284,140.81127 c -0.20658,-0.20658 -0.37561,-8.54221 -0.37561,-18.52361 0,-14.68657 0.14735,-18.2703 0.77255,-18.78917 0.54767,-0.45452 5.50877,-0.59761 17.04323,-0.49155 l 16.27067,0.14962 0.14834,19.01516 0.14835,19.01516 h -16.81596 c -9.24878,0 -16.98499,-0.16902 -17.19157,-0.37561 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5480"
|
||||
d="m 211.70218,140.48645 c -0.15138,-0.39449 -0.20826,-8.9551 -0.12639,-19.02357 l 0.14883,-18.30632 16.40386,-0.14925 c 13.41995,-0.12209 16.5216,-0.007 17.05112,0.63067 0.465,0.56029 0.60538,5.91715 0.49852,19.02355 l -0.14876,18.24365 -16.77597,0.14926 c -13.17255,0.1172 -16.83509,-0.005 -17.05121,-0.56799 z"
|
||||
style="fill:#062e5f;fill-opacity:1;stroke-width:0.56341225" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
|
@ -0,0 +1,408 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>MISP live dashboard</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
|
||||
<!-- Custom CSS -->
|
||||
<link href="{{ url_for('static', filename='css/sb-admin-2.css') }}" rel="stylesheet">
|
||||
<!-- LeafLet -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/leaflet.css') }}">
|
||||
<script src="{{ url_for('static', filename='js/leaflet.js') }}"></script>
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="{{ url_for('static', filename='js/jquery.min.js') }}"></script>
|
||||
<!-- jQuery flot -->
|
||||
<script src="{{ url_for('static', filename='js/jquery.flot.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/jquery.flot.pie.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/jquery.flot.resize.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/jquery.flot.time.js') }}"></script>
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="{{ url_for('static', filename='js/bootstrap.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/bootstrap3-typeahead.min.js') }}"></script>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/font-awesome.min.css') }}" rel="text/css">
|
||||
<!-- JVectorMap -->
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/jquery-jvectormap-2.0.3.css') }}" type="text/css" media="screen"/>
|
||||
<script src="{{ url_for('static', filename='js/jquery-jvectormap-2.0.3.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/jquery-jvectormap-world-mill.js') }}"></script>
|
||||
<!-- Jquery UI -->
|
||||
<link href="{{ url_for('static', filename='css/jquery-ui.min.css') }}" rel="stylesheet" type="text/css" />
|
||||
<script src="{{ url_for('static', filename='js/jquery-ui.min.js') }}"></script>
|
||||
<!-- dataTable -->
|
||||
<link href="{{ url_for('static', filename='css/dataTables.bootstrap.css') }}" rel="stylesheet" type="text/css" />
|
||||
<script src="{{ url_for('static', filename='js/jquery.dataTables.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/dataTables.bootstrap.js') }}"></script>
|
||||
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/ranking.css') }}">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Modal -->
|
||||
<div id="myModal" class="modal fade" role="dialog">
|
||||
<div class="modal-dialog modal-lg" style="width: 1500px;">
|
||||
|
||||
<!-- Modal content-->
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<h4>Monthly rank generation:</h4>
|
||||
<p>Monthly ranks are generated by the formula: <pre>Rank = floor(Log(<it>points</it>, {{ rankMultiplier }}))</pre></p>
|
||||
<ul>
|
||||
{% for text in additional_help_text %}
|
||||
<li>{{ text }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<h4>Points awarded by category:</h4>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Point(s) awarded</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for categ in categ_list_str %}
|
||||
<tr>
|
||||
<td>{{ categ }}</td>
|
||||
<td>{{ categ_list_points[loop.index0] }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<div class="row">
|
||||
<div class="col-lg-3">
|
||||
<h4>Organisation total points: </h4>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<h4 id='orgTotNumOfPoint'></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-3">
|
||||
<h4>Contribution ranking:</h4>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<table class="table table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="success">Current rank</td>
|
||||
<td class="warning">Requirement satisfied</td>
|
||||
<td class="danger">Requirement not satisfied</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Contribution rank</th>
|
||||
<th>Title</th>
|
||||
<th>Total points requirement</th>
|
||||
<th>Contribution requirement</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id='bodyTablerankingModal'>
|
||||
{% for item in org_rank_list %}
|
||||
<tr data-rank={{ loop.index }}>
|
||||
<td style='padding: 0px; text-align: right;'><img height='35px' width='70px' style="margin-right: 20px;" src="{{ url_for('static', filename='pics/rankingMISPOrg/1.svg')[:-5]}}{{ item[0] }}.svg" type='image/svg' style="margin: auto;"</img></td>
|
||||
<td>{{ item[1] }}</td>
|
||||
<td>{{ item[2] }}</td>
|
||||
<td>{{ item[3] }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<ul>
|
||||
{% for text in org_rank_additional_text %}
|
||||
<li>{{ text }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<table>
|
||||
<tbody>
|
||||
{% for item in org_honor_badge_title_list %}
|
||||
<tr style="height: 85px">
|
||||
<td>
|
||||
<div id="divBadge_{{ loop.index }}" class="circleBadge">
|
||||
<img height='64px' width='64px' style="margin-top: 5px;" src="{{ url_for('static', filename='pics/MISPHonorableIcons/1.svg')[:-5]}}{{ item[0] }}.svg" type='image/svg' style="margin: auto;"</img>
|
||||
</div>
|
||||
</td>
|
||||
<td style="padding-left: 15px;">{{ item[1] }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0; padding-left: 15px;">
|
||||
<div class="navbar-header">
|
||||
<img src="{{ url_for('static', filename='pics/MISP.png') }}" alt="MISP" style="float: left; height: 40px; margin-top: 5px;"><a class="navbar-brand dropdown-toggle" data-toggle="dropdown" href="#">MISP Contributors
|
||||
<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="{{ url_for('index') }}">MISP Live Dashboard</a></li>
|
||||
<li><a href="{{ url_for('geo') }}">MISP Geolocalisation</a></li>
|
||||
<li><a href="{{ url_for('contrib') }}">MISP Contributors</a></li>
|
||||
</ul>
|
||||
<div id="ledsHolder" style="float: left; height: 50px;">
|
||||
<div class='leftSepa textTopHeader'>
|
||||
<label class="checkbox-inline" style="font-weight: bold; position: relative; top: -30%; left:10%">
|
||||
<input id="reloadCheckbox" type="checkbox" style="top: -2px;" checked>Auto reload
|
||||
</label>
|
||||
<label id='labelRemainingTime' style="font-weight: bold; font-size: medium; position: relative; left: -38%; bottom: -30%; color: #f0ad4e;"></label>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ledsHolder" style="float: right; height: 50px;">
|
||||
<div class='leftSepa textTopHeader'>
|
||||
<strong>Organisation name:</strong>
|
||||
</div>
|
||||
<div class='textTopHeader' style="padding-top: 9px;">
|
||||
<input type="text" id="orgName" data-provide="typeahead" size="20" style="margin-bottom: 5px;">
|
||||
</div>
|
||||
<button type="button" class="questionBadgeDiv" data-toggle="modal" data-target="#myModal"><i class="fa fa-question-circle questionBadgeText"></i></button>
|
||||
<button id="btnCurrRank" class='btn btn-default popOverBtn' data-container='body' data-toggle='popover' style="display: none; margin-left: 20px;" onclick="showOnlyOrg()">
|
||||
<object id='orgContributionRank' height=32 width=64 class="centerInBtn"></object>
|
||||
<strong id="orgText" class="centerInBtn"></strong>
|
||||
<div id="orgRankDiv" class='textTopHeader' style="padding-top: 0px; position: relative; width: 40px; height: 40px;"></div>
|
||||
<div class='' style="float: left; padding: 10px;">
|
||||
<div class="progress" style=''>
|
||||
<div id="progressBarDiv" class="progress-bar progress-bar-striped" role="progressbar" style="width:0%">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="orgNextRankDiv" class='textTopHeader' style="padding-top: 0px; position: relative; width: 40px; height: 40px;"></div>
|
||||
</button>
|
||||
<div class='leftSepa textTopHeader'>
|
||||
<span class="label label-primary">
|
||||
<strong style="">Points to overtake</strong>
|
||||
<strong style="font-size: medium;" id='orgToOverTake'></strong>
|
||||
<strong style="">: </strong>
|
||||
<strong style="font-size: large;" id='pntsToOvertakeNext'></strong>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.navbar-header -->
|
||||
</nav>
|
||||
|
||||
<!-- Page Content -->
|
||||
<div id="page-wrapper" style="margin: 0px; padding: 0px;">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div style="height: 10px;"></div>
|
||||
<div class="col-lg-8">
|
||||
|
||||
<div class="col-lg-6">
|
||||
<div class="panel panel-default" style="height: 100%;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold;">
|
||||
<i class="fa fa-asterisk " style="margin-right: 5px; color: #f0ad4e;"></i><b>Contributor ranking (monthly)</b>
|
||||
</div>
|
||||
<div id="panelRanking" class="panel-body" style="height: 100%;">
|
||||
|
||||
<div class="table-responsive">
|
||||
<table id="topContribTable" class="table table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Points</th>
|
||||
<th>Cur. rank</th>
|
||||
<th>Org. rank</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th>Organisation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.panel-body -->
|
||||
</div><!-- /.panel -->
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
<div class="panel panel-default" style="height: 100%;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold;">
|
||||
<i class="glyphicon glyphicon-fire " style="margin-right: 5px; color: #d9534f;"></i><b>Last contributors</b>
|
||||
</div>
|
||||
<div id="panellast" class="panel-body" style="height: 100%;">
|
||||
|
||||
<div class="table-responsive">
|
||||
<table id="lastTable" class="table table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Points</th>
|
||||
<th>Cur. rank</th>
|
||||
<th>Org. rank</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th>Organisation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.panel-body -->
|
||||
</div><!-- /.panel -->
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-default" style="height: 100%;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold;">
|
||||
<i class="fa fa-th-list " style="margin-right: 5px; color: #f0ad4e;"></i><b>Contributors and categories (total)</b>
|
||||
</div>
|
||||
<div id="panelRanking" class="panel-body" style="height: 100%;">
|
||||
|
||||
<div class="table-responsive">
|
||||
<table id="categTable" class="table table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Points</th>
|
||||
<th>Cur. rank</th>
|
||||
<th>Org. rank</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th>Organisation</th>
|
||||
{% for categ in categ_list_str %}
|
||||
<th>{{ categ }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.panel-body -->
|
||||
</div><!-- /.panel -->
|
||||
</div>
|
||||
|
||||
|
||||
</div><!-- /.col-lg-8 -->
|
||||
|
||||
|
||||
<div class="col-lg-4">
|
||||
|
||||
<div class="panel panel-default" style="height: 100%;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold;">
|
||||
<i class="fa fa-star" style="margin-right: 5px; color: #f0ad4e;"></i><b>Hall Of Fame (previous month)</b>
|
||||
</div>
|
||||
<div id="panelRanking" class="panel-body" style="height: 100%;">
|
||||
|
||||
<div class="table-responsive">
|
||||
<table id="fameTable" class="table table-hover table-striped" style="margin-bottom: 0px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Points</th>
|
||||
<th>Prev. rank</th>
|
||||
<th>Org. rank</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th>Organisation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id=fameTableBody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.panel-body -->
|
||||
</div><!-- /.panel -->
|
||||
|
||||
<div class="panel panel-default" style="height: 100%;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold;">
|
||||
<i class="fa fa-line-chart" style="margin-right: 5px; color: #f0ad4e;"></i><b>Top 5 Contributor overtime</b>
|
||||
</div>
|
||||
<div id="panelRanking" class="panel-body" style="height: 100%;">
|
||||
<div id="divTop5Overtime" style="height: 32vh"></div>
|
||||
</div>
|
||||
<!-- /.panel-body -->
|
||||
|
||||
</div><!-- /.panel -->
|
||||
|
||||
</div><!-- /.col-lg-4 -->
|
||||
|
||||
</div><!-- /.col-lg-12 -->
|
||||
</div><!-- /.row -->
|
||||
|
||||
</div> <!-- /.container-fluid -->
|
||||
|
||||
</div>
|
||||
<!-- /#page-wrapper -->
|
||||
|
||||
</div>
|
||||
<!-- /#wrapper -->
|
||||
<!-- Index -->
|
||||
<script>
|
||||
/* URL */
|
||||
var url_getTopContributor = "{{ url_for('getTopContributor') }}";
|
||||
var url_getFameContributor = "{{ url_for('getFameContributor') }}";
|
||||
var url_getCategPerContrib = "{{ url_for('getCategPerContrib') }}";
|
||||
var url_getTop5Overtime = "{{ url_for('getTop5Overtime') }}";
|
||||
var url_getOrgOvertime = "{{ url_for('getOrgOvertime') }}";
|
||||
var url_getLastContributor = "{{ url_for('getLastContributors') }}";
|
||||
var url_eventStreamLastContributor = "{{ url_for('getLastContributor') }}";
|
||||
var url_getAllOrg = "{{ url_for('getAllOrg') }}";
|
||||
var url_getOrgRank = "{{ url_for('getOrgRank') }}";
|
||||
var url_getContributionOrgStatus = "{{ url_for('getContributionOrgStatus') }}";
|
||||
var url_getHonorBadges = "{{ url_for('getHonorBadges') }}";
|
||||
var url_baseRankMonthlyLogo = "{{ url_for('static', filename='pics/rankingMISPMonthly/1.svg') }}";
|
||||
url_baseRankMonthlyLogo = url_baseRankMonthlyLogo.substring(0, url_baseRankMonthlyLogo.length-5);
|
||||
var url_baseOrgRankLogo = "{{ url_for('static', filename='pics/rankingMISPOrg/1.svg') }}";
|
||||
url_baseOrgRankLogo = url_baseOrgRankLogo.substring(0, url_baseOrgRankLogo.length-5);
|
||||
var url_baseHonorLogo = "{{ url_for('static', filename='pics/MISPHonorableIcons/1.svg') }}";
|
||||
url_baseHonorLogo = url_baseHonorLogo.substring(0, url_baseHonorLogo.length-5);
|
||||
|
||||
/* DATA FROM CONF */
|
||||
var currOrg = "{{ currOrg }}";
|
||||
var min_between_reload = {{ min_between_reload }};
|
||||
var rankMultiplier = {{ rankMultiplier }};
|
||||
var categ_list = JSON.parse('{{ categ_list|safe }}');
|
||||
var org_rank_obj = JSON.parse('{{ org_rank_json|safe }}');
|
||||
var org_honor_badge_title = JSON.parse('{{ org_honor_badge_title|safe }}');
|
||||
var numberOfBadges = {{ org_honor_badge_title_list|length }};
|
||||
|
||||
</script>
|
||||
<script src="{{ url_for('static', filename='js/contrib.js') }}"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -58,7 +58,7 @@
|
|||
}
|
||||
|
||||
.textTopHeader {
|
||||
height: 50px;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
margin-left: 8px;
|
||||
float: left;
|
||||
|
@ -90,6 +90,7 @@ small {
|
|||
<ul class="dropdown-menu">
|
||||
<li><a href="{{ url_for('index') }}">MISP Live Dashboard</a></li>
|
||||
<li><a href="{{ url_for('geo') }}">MISP Geolocalisation</a></li>
|
||||
<li><a href="{{ url_for('contrib') }}">MISP Contributors</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="ledsHolder" style="float: right; height: 50px;">
|
||||
|
@ -184,7 +185,7 @@ small {
|
|||
</div><!-- /.col-lg-6 -->
|
||||
|
||||
<div class="col-lg-6">
|
||||
|
||||
|
||||
<div class="panel panel-default" style="height: 100%;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold;">
|
||||
<b id="worldMapHeader">Hit map </b>
|
||||
|
@ -198,7 +199,7 @@ small {
|
|||
<div class="panel panel-default" style="height: 100%;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold; padding: 5px 10px;">
|
||||
<b id="radiusHeader" style="font-size: 18px;">Geospatial information</b>
|
||||
<strong class='leftSepa textTopHeader' style="float: none; padding: 11px;">Dates:
|
||||
<strong class='leftSepa textTopHeader' style="float: none; padding: 11px;">Dates:
|
||||
<input type="text" id="datepickerRadiusFrom" size="20" style="">
|
||||
<input type="text" id="datepickerRadiusTo" size="20" style="">
|
||||
</strong>
|
||||
|
@ -225,7 +226,7 @@ small {
|
|||
<!-- /#wrapper -->
|
||||
|
||||
<!-- Index -->
|
||||
<script>
|
||||
<script>
|
||||
/* URL */
|
||||
var urlTopCoord = "{{ url_for('getTopCoord') }}";
|
||||
var urlHitMap = "{{ url_for('getHitMap') }}";
|
||||
|
|
|
@ -107,7 +107,7 @@ table {
|
|||
}
|
||||
|
||||
.textTopHeader {
|
||||
height: 50px;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
margin-left: 8px;
|
||||
float: left;
|
||||
|
@ -132,6 +132,7 @@ small {
|
|||
<ul class="dropdown-menu">
|
||||
<li><a href="{{ url_for('index') }}">MISP Live Dashboard</a></li>
|
||||
<li><a href="{{ url_for('geo') }}">MISP Geolocalisation</a></li>
|
||||
<li><a href="{{ url_for('contrib') }}">MISP Contributors</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="ledsHolder" style="float: right; height: 50px;"></div>
|
||||
|
@ -146,7 +147,7 @@ small {
|
|||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="col-lg-{{ size_dashboard_width[0] }}">
|
||||
|
||||
|
||||
<div id="panelOpenMap" class="panel panel-default" style="margin-top: 15px; height: {{ pannelSize[0] }}vh;">
|
||||
<div class="panel-heading bg-info" style="font-weight: bold;">
|
||||
<b><a id="textMap1" href="#panelbody">No map </a></b>
|
||||
|
@ -191,7 +192,7 @@ small {
|
|||
<!-- /.col-lg-6 -->
|
||||
<!-- /.col-lg-6 -->
|
||||
<div class="col-lg-{{ size_dashboard_width[1] }}">
|
||||
|
||||
|
||||
<div class="panel panel-default" style="margin-top: 15px; height: {{ pannelSize[2] }}vh;">
|
||||
<div id="panelbody" class="panel-body" style="height: 100%;">
|
||||
<div id="feedDiv2" style="width:100%; height: 100%; position: relative;"></div>
|
||||
|
@ -231,7 +232,7 @@ small {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
|
||||
</div>
|
||||
<!-- /.col-lg-12 -->
|
||||
</div>
|
||||
|
@ -247,7 +248,7 @@ small {
|
|||
<!-- /#wrapper -->
|
||||
|
||||
<!-- Index -->
|
||||
<script>
|
||||
<script>
|
||||
/* URL */
|
||||
var urlForLogs = "{{ url_for('logs') }}";
|
||||
var urlForHead = "{{ url_for('getLogHead') }}";
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
import datetime, time
|
||||
|
||||
ONE_DAY = 60*60*24
|
||||
|
||||
def getMonthSpan(date):
|
||||
ds = datetime.datetime(date.year, date.month, 1)
|
||||
dyear = 1 if ds.month+1 > 12 else 0
|
||||
dmonth = -12 if ds.month+1 > 12 else 0
|
||||
de = datetime.datetime(ds.year + dyear, ds.month+1 + dmonth, 1)
|
||||
|
||||
delta = de - ds
|
||||
to_return = []
|
||||
for i in range(delta.days):
|
||||
to_return.append(ds + datetime.timedelta(days=i))
|
||||
return to_return
|
||||
|
||||
def getXPrevDaysSpan(date, days):
|
||||
de = date
|
||||
ds = de - datetime.timedelta(days=days)
|
||||
|
||||
delta = de - ds
|
||||
to_return = []
|
||||
for i in range(delta.days+1):
|
||||
to_return.append(de - datetime.timedelta(days=i))
|
||||
return to_return
|
||||
|
||||
def getDateStrFormat(date):
|
||||
return str(date.year)+str(date.month).zfill(2)+str(date.day).zfill(2)
|
||||
|
||||
def getTimestamp(date):
|
||||
return time.mktime(date.timetuple())
|
|
@ -14,16 +14,30 @@ import sys
|
|||
import json
|
||||
import geoip2.database
|
||||
|
||||
import util
|
||||
import contributor_helper
|
||||
|
||||
configfile = os.path.join(os.environ['DASH_CONFIG'], 'config.cfg')
|
||||
cfg = configparser.ConfigParser()
|
||||
cfg.read(configfile)
|
||||
|
||||
ZMQ_URL = cfg.get('RedisLog', 'zmq_url')
|
||||
ONE_DAY = 60*60*24
|
||||
ZMQ_URL = cfg.get('RedisGlobal', 'zmq_url')
|
||||
CHANNEL = cfg.get('RedisLog', 'channel')
|
||||
CHANNEL_LASTCONTRIB = cfg.get('RedisLog', 'channelLastContributor')
|
||||
CHANNELDISP = cfg.get('RedisMap', 'channelDisp')
|
||||
CHANNEL_PROC = cfg.get('RedisMap', 'channelProc')
|
||||
PATH_TO_DB = cfg.get('RedisMap', 'pathMaxMindDB')
|
||||
|
||||
|
||||
DEFAULT_PNTS_REWARD = cfg.get('CONTRIB', 'default_pnts_per_contribution')
|
||||
categories_in_datatable = json.loads(cfg.get('CONTRIB', 'categories_in_datatable'))
|
||||
DICO_PNTS_REWARD = {}
|
||||
temp = json.loads(cfg.get('CONTRIB', 'pnts_per_contribution'))
|
||||
for categ, pnts in temp:
|
||||
DICO_PNTS_REWARD[categ] = pnts
|
||||
MAX_NUMBER_OF_LAST_CONTRIBUTOR = cfg.getint('CONTRIB', 'max_number_of_last_contributor')
|
||||
|
||||
serv_log = redis.StrictRedis(
|
||||
host=cfg.get('RedisGlobal', 'host'),
|
||||
port=cfg.getint('RedisGlobal', 'port'),
|
||||
|
@ -37,26 +51,26 @@ serv_redis_db = redis.StrictRedis(
|
|||
port=cfg.getint('RedisGlobal', 'port'),
|
||||
db=cfg.getint('RedisDB', 'db'))
|
||||
|
||||
contributor_helper = contributor_helper.Contributor_helper(serv_redis_db, cfg)
|
||||
|
||||
reader = geoip2.database.Reader(PATH_TO_DB)
|
||||
|
||||
|
||||
def publish_log(zmq_name, name, content):
|
||||
def publish_log(zmq_name, name, content, channel=CHANNEL):
|
||||
to_send = { 'name': name, 'log': json.dumps(content), 'zmqName': zmq_name }
|
||||
serv_log.publish(CHANNEL, json.dumps(to_send))
|
||||
serv_log.publish(channel, json.dumps(to_send))
|
||||
|
||||
def push_to_redis_zset(keyCateg, toAdd):
|
||||
def push_to_redis_zset(keyCateg, toAdd, endSubkey="", count=1):
|
||||
now = datetime.datetime.now()
|
||||
today_str = str(now.year)+str(now.month)+str(now.day)
|
||||
keyname = "{}:{}".format(keyCateg, today_str)
|
||||
serv_redis_db.zincrby(keyname, toAdd)
|
||||
today_str = util.getDateStrFormat(now)
|
||||
keyname = "{}:{}{}".format(keyCateg, today_str, endSubkey)
|
||||
serv_redis_db.zincrby(keyname, toAdd, count)
|
||||
|
||||
def push_to_redis_geo(keyCateg, lon, lat, content):
|
||||
now = datetime.datetime.now()
|
||||
today_str = str(now.year)+str(now.month)+str(now.day)
|
||||
today_str = util.getDateStrFormat(now)
|
||||
keyname = "{}:{}".format(keyCateg, today_str)
|
||||
serv_redis_db.geoadd(keyname, lon, lat, content)
|
||||
|
||||
|
||||
def ip_to_coord(ip):
|
||||
resp = reader.city(ip)
|
||||
lat = float(resp.location.latitude)
|
||||
|
@ -72,13 +86,16 @@ def getCoordAndPublish(zmq_name, supposed_ip, categ):
|
|||
rep = ip_to_coord(supposed_ip)
|
||||
coord = rep['coord']
|
||||
coord_dic = {'lat': coord['lat'], 'lon': coord['lon']}
|
||||
ordDic = OrderedDict()
|
||||
ordDic = OrderedDict() #keep fields with the same layout in redis
|
||||
ordDic['lat'] = coord_dic['lat']
|
||||
ordDic['lon'] = coord_dic['lon']
|
||||
coord_list = [coord['lat'], coord['lon']]
|
||||
push_to_redis_zset('GEO_COORD', json.dumps(ordDic))
|
||||
push_to_redis_zset('GEO_COUNTRY', rep['full_rep'].country.iso_code)
|
||||
push_to_redis_geo('GEO_RAD', coord['lon'], coord['lat'], json.dumps({ 'categ': categ, 'value': supposed_ip }))
|
||||
ordDic = OrderedDict() #keep fields with the same layout in redis
|
||||
ordDic['categ'] = categ
|
||||
ordDic['value'] = supposed_ip
|
||||
push_to_redis_geo('GEO_RAD', coord['lon'], coord['lat'], json.dumps(ordDic))
|
||||
to_send = {
|
||||
"coord": coord,
|
||||
"categ": categ,
|
||||
|
@ -109,6 +126,40 @@ def getFields(obj, fields):
|
|||
except KeyError as e:
|
||||
return ""
|
||||
|
||||
def noSpaceLower(text):
|
||||
return text.lower().replace(' ', '_')
|
||||
|
||||
#pntMultiplier if one contribution rewards more than others. (e.g. shighting may gives more points than editing)
|
||||
def handleContribution(zmq_name, org, contribType, categ, action, pntMultiplier=1, eventTime=datetime.datetime.now(), isLabeled=False):
|
||||
if action in ['edit', None]:
|
||||
pass
|
||||
#return #not a contribution?
|
||||
|
||||
now = datetime.datetime.now()
|
||||
nowSec = int(time.time())
|
||||
pnts_to_add = DEFAULT_PNTS_REWARD
|
||||
|
||||
# is a valid contribution
|
||||
if categ is not None:
|
||||
try:
|
||||
pnts_to_add = DICO_PNTS_REWARD[noSpaceLower(categ)]
|
||||
except KeyError:
|
||||
pnts_to_add = DEFAULT_PNTS_REWARD
|
||||
pnts_to_add *= pntMultiplier
|
||||
|
||||
push_to_redis_zset('CONTRIB_DAY', org, count=pnts_to_add)
|
||||
#CONTRIB_CATEG retain the contribution per category, not the point earned in this categ
|
||||
push_to_redis_zset('CONTRIB_CATEG', org, count=1, endSubkey=':'+noSpaceLower(categ))
|
||||
publish_log(zmq_name, 'CONTRIBUTION', {'org': org, 'categ': categ, 'action': action, 'epoch': nowSec }, channel=CHANNEL_LASTCONTRIB)
|
||||
|
||||
serv_redis_db.sadd('CONTRIB_ALL_ORG', org)
|
||||
|
||||
serv_redis_db.zadd('CONTRIB_LAST:'+util.getDateStrFormat(now), nowSec, org)
|
||||
serv_redis_db.expire('CONTRIB_LAST:'+util.getDateStrFormat(now), ONE_DAY) #expire after 1 day
|
||||
|
||||
contributor_helper.updateOrgContributionRank(org, pnts_to_add, action, contribType, eventTime=datetime.datetime.now(), isLabeled=isLabeled)
|
||||
|
||||
|
||||
|
||||
##############
|
||||
## HANDLERS ##
|
||||
|
@ -127,10 +178,37 @@ def handler_keepalive(zmq_name, jsonevent):
|
|||
to_push = [ jsonevent['uptime'] ]
|
||||
publish_log(zmq_name, 'Keepalive', to_push)
|
||||
|
||||
def handler_sighting(zmq_name, jsonsight):
|
||||
print('sending' ,'sighting')
|
||||
def handler_conversation(zmq_name, jsonevent):
|
||||
try: #only consider POST, not THREAD
|
||||
jsonpost = jsonevent['Post']
|
||||
except KeyError:
|
||||
return
|
||||
print('sending' ,'Post')
|
||||
org = jsonpost['org_name']
|
||||
categ = None
|
||||
action = 'add'
|
||||
handleContribution(zmq_name, org,
|
||||
'Discussion',
|
||||
None,
|
||||
action,
|
||||
isLabeled=False)
|
||||
|
||||
def handler_object(zmq_name, jsondata):
|
||||
print('obj')
|
||||
return
|
||||
|
||||
def handler_sighting(zmq_name, jsondata):
|
||||
print('sending' ,'sighting')
|
||||
jsonsight = jsondata['Sighting']
|
||||
org = jsonsight['Event']['Orgc']['name']
|
||||
categ = jsonsight['Attribute']['category']
|
||||
try:
|
||||
action = jsondata['action']
|
||||
except KeyError:
|
||||
action = None
|
||||
handleContribution(zmq_name, org, 'Sighting', categ, action, pntMultiplier=2)
|
||||
handler_attribute(zmq_name, jsonsight, hasAlreadyBeenContributed=True)
|
||||
|
||||
def handler_event(zmq_name, jsonobj):
|
||||
#fields: threat_level_id, id, info
|
||||
jsonevent = jsonobj['Event']
|
||||
|
@ -145,7 +223,27 @@ def handler_event(zmq_name, jsonobj):
|
|||
else:
|
||||
handler_attribute(zmq_name, attributes)
|
||||
|
||||
def handler_attribute(zmq_name, jsonobj):
|
||||
try:
|
||||
action = jsonobj['action']
|
||||
except KeyError:
|
||||
action = None
|
||||
try:
|
||||
eventLabeled = len(jsonobj['EventTag']) > 0
|
||||
except KeyError:
|
||||
eventLabeled = False
|
||||
try:
|
||||
org = jsonobj['Orgc']['name']
|
||||
except KeyError:
|
||||
org = None
|
||||
|
||||
if org is not None:
|
||||
handleContribution(zmq_name, org,
|
||||
'Event',
|
||||
None,
|
||||
action,
|
||||
isLabeled=eventLabeled)
|
||||
|
||||
def handler_attribute(zmq_name, jsonobj, hasAlreadyBeenContributed=False):
|
||||
# check if jsonattr is an attribute object
|
||||
if 'Attribute' in jsonobj:
|
||||
jsonattr = jsonobj['Attribute']
|
||||
|
@ -165,14 +263,33 @@ def handler_attribute(zmq_name, jsonobj):
|
|||
if jsonattr['category'] == "Network activity":
|
||||
getCoordAndPublish(zmq_name, jsonattr['value'], jsonattr['category'])
|
||||
|
||||
if not hasAlreadyBeenContributed:
|
||||
try:
|
||||
eventLabeled = len(jsonattr['Tag']) > 0
|
||||
except KeyError:
|
||||
eventLabeled = False
|
||||
try:
|
||||
action = jsonobj['action']
|
||||
except KeyError:
|
||||
action = None
|
||||
handleContribution(zmq_name, jsonobj['Event']['Orgc']['name'],
|
||||
'Attribute',
|
||||
jsonattr['category'],
|
||||
action,
|
||||
isLabeled=eventLabeled)
|
||||
# Push to log
|
||||
publish_log(zmq_name, 'Attribute', to_push)
|
||||
|
||||
|
||||
###############
|
||||
## MAIN LOOP ##
|
||||
###############
|
||||
|
||||
def process_log(zmq_name, event):
|
||||
event = event.decode('utf8')
|
||||
topic, eventdata = event.split(' ', maxsplit=1)
|
||||
jsonevent = json.loads(eventdata)
|
||||
print(event)
|
||||
dico_action[topic](zmq_name, jsonevent)
|
||||
|
||||
|
||||
|
@ -194,10 +311,11 @@ dico_action = {
|
|||
"misp_json_event": handler_event,
|
||||
"misp_json_self": handler_keepalive,
|
||||
"misp_json_attribute": handler_attribute,
|
||||
"misp_json_object": handler_object,
|
||||
"misp_json_sighting": handler_sighting,
|
||||
"misp_json_organisation": handler_log,
|
||||
"misp_json_user": handler_log,
|
||||
"misp_json_conversation": handler_log
|
||||
"misp_json_conversation": handler_conversation
|
||||
}
|
||||
|
||||
|
||||
|
@ -210,4 +328,3 @@ if __name__ == "__main__":
|
|||
|
||||
main(args.zmqname)
|
||||
reader.close()
|
||||
|
||||
|
|