First Upload

This commit is contained in:
Louai Haddad 2022-07-25 12:03:35 +02:00
parent 556d1d335f
commit 37155a1f84
382 changed files with 21559 additions and 48100 deletions

Binary file not shown.

View File

@ -0,0 +1,18 @@
# Generated by Django 4.0.5 on 2022-07-18 12:24
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('App', '0017_alter_searchresults_uniqueid'),
]
operations = [
migrations.RenameField(
model_name='standards',
old_name='stamdardNumber',
new_name='standardNumber',
),
]

View File

@ -14,14 +14,14 @@ class Level(models.Model):
class Standards(models.Model):
standardLevel = models.IntegerField(blank=True, null=True)
standardTitle = models.CharField(max_length=200)
stamdardNumber = models.CharField(max_length=10)
standardNumber = models.CharField(max_length=10)
standardPath = models.CharField(max_length=200,blank=True,null=True)
revision = models.BooleanField()
paragraph = models.TextField(blank=True,null=True)
levelID = models.ForeignKey(Level, on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return self.stamdardNumber
return self.standardNumber
class SearchResults(models.Model):
session_key = models.CharField(max_length=17,blank=True, null=True)

View File

@ -1,10 +0,0 @@
$(document).ready(function(){
$("#fiterForm").on("change", "input:checkbox", function(){
$("#fiterForm").submit();
});
// $('#submitSearch').click(() => {
// console.log('clicked')
// $('input[type=checkbox]').prop('checked', false);
// })
});

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -49,7 +49,7 @@ def cosine_sim(a, b):
def readfile():
BASE_DIR = Path(__file__).resolve().parent.parent
processedData = pd.read_json(os.path.join(BASE_DIR, 'App/static/json/prcessedData.json'))
processedData = pd.read_json(os.path.join(BASE_DIR, 'static/json/prcoessedData.json'))
df = pd.DataFrame(processedData)
return df

View File

@ -1,11 +1,10 @@
from django.urls import path
from App import views
from . import views
urlpatterns = [
# path('app', views.App, name='app'),
path('how_to', views.how_to, name='how_to'),
path('', views.home, name='home'),
# path('search', views.search, name='search'),
path('tfidf', views.tfidf, name='tfidf'),
path('faq', views.faq, name='faq'),
path('contact', views.contact, name='contact'),
]

View File

@ -5,8 +5,6 @@ import os
import pandas as pd
from .similarity import phrase_preprocessing, similarityCheck
from .tfidfSimilarity import cosine_similarity
import json
from django.shortcuts import redirect
from django.core.paginator import Paginator
@ -17,7 +15,13 @@ from .filters import StandardsFilter
import uuid
from datetime import date, timedelta
from django.core import serializers
from django_pandas.io import read_frame
from django.template.loader import render_to_string
from weasyprint import HTML
import tempfile
# Create your views here.
@ -26,7 +30,7 @@ def home(request):
levels = list(range(1, 7))
BASE_DIR = Path(__file__).resolve().parent.parent
path = os.path.join(BASE_DIR, 'App/static/IDDRSStandards/')
path = os.path.join(BASE_DIR, 'static/IDDRSStandards/')
df = pd.DataFrame(columns=["Level","FileNumber","FileName","Summary","FilePath"])
all_standards = Standards.objects.all()
i = 0
@ -38,10 +42,10 @@ def home(request):
i+= 1
args = {'all_standards': all_standards,'navbar': 'home','levels':levels}
return render(request, 'home.html', args)
return render(request, 'App/home.html', args)
def how_to(request):
return render(request, 'how_to.html', {'navbar': 'how_to'})
return render(request, 'App/how_to.html', {'navbar': 'how_to'})
def search(request):
BASE_DIR = Path(__file__).resolve().parent.parent
@ -64,8 +68,13 @@ def search(request):
return render(request, 'search.html', args)
def faq(request):
return render(request, 'faq.html', {'navbar': 'faq'})
return render(request, 'App/faq.html', {'navbar': 'faq'})
def contact(request):
return render(request, 'App/contact.html', {'navbar': 'contact'})
# def pdf(request):
# return render(request, 'pdf-outut.html', {'navbar': 'pdf'})
def tfidf(request):
SearchResults.objects.filter(session_expiry_date=date.today()).delete()
@ -77,9 +86,10 @@ def tfidf(request):
myFilter = StandardsFilter()
selectedChoices = request.GET.getlist('title','')
phrase = request.GET.get('phrase','')
excelFile = ''
pdfFile = ''
if request.method == 'GET':
form = searchForm(request.GET)
if form.is_valid() or 'searchedPhrase' in request.GET :
if 'searchedPhrase' in request.GET:
@ -110,18 +120,22 @@ def tfidf(request):
)
searchedData.save()
results = SearchResults.objects.filter(uniqueID=uid)
excelFile = createExcel(results, phrase)
pdfFile = createPDF(results, phrase)
createPDF(results, phrase)
if selectedChoices:
results = SearchResults.objects.filter(uniqueID=uid)
myFilter = StandardsFilter(request.GET, queryset=results)
results = myFilter.qs
excelFile = createExcel(results, phrase)
pdfFile = createPDF(results, phrase)
else:
form = searchForm()
# Create pagination for results
paginator = Paginator(results, per_page=10)
pageNumber = request.GET.get('page', 1)
@ -130,85 +144,36 @@ def tfidf(request):
args = {'form': form, 'phrase': phrase, 'navbar': 'tfidf',
'results':page_obj.object_list, 'levels':categories, 'myFilter':myFilter,
'standards':standards, 'selectedChoices':selectedChoices,
'pages':paginator, 'pNumber':int(pageNumber)}
'pages':paginator, 'pNumber':int(pageNumber), 'excelFile':excelFile,'pdfFile':pdfFile}
return render(request, 'tfidf.html', args)
return render(request, 'App/tfidf.html', args)
# This function export the list of results to excel file
def createExcel(results, phrase):
df = read_frame(results)
df = df.drop(columns=['id','session_key','uniqueID','session_expiry_date','index','level','title','color','heading2','heading3','heading4','sentence'])
df = df[['levelName','module','heading1','pageNumber','paragraph']]
df.columns = ['Level', 'IDDRS', 'Title', 'Page', 'Paragraph']
# def tfidf(request):
BASE_DIR = Path(__file__).resolve().parent.parent
fileName = phrase+'.xlsx'
# searchResults = []
# results = []
# phrase = request.session['phrase']
# categories = Level.objects.all()
# standards = Standards.objects.all()
# myFilter = StandardsFilter()
# selectedChoices = request.GET.getlist('title','')
# creating excel writer object
writer = pd.ExcelWriter(os.path.join(BASE_DIR, 'static/usersResults/'+fileName))
# if request.method == 'POST':
# # SearchResults.objects.filter(session_key=request.session.session_key).delete()
# selectedChoices = ''
# form = searchForm(request.POST)
# if form.is_valid():
# phrase = form.cleaned_data["phrase"]
# searchResults = cosine_similarity(20, phrase)
# request.session['phrase'] = phrase
# # uid = str(uuid.uuid1())
# uid = str(uuid.uuid1())[:8]+phrase
# for result in searchResults:
# searchedData = SearchResults(
# session_key = request.session.session_key,
# uniqueID = uid,
# session_expiry_date = date.today() + timedelta(days=1),
# index = result['Index'],
# level = result['Level'],
# levelName = result['LevelName'],
# title = result['Title'],
# paragraph = result['Paragraph'],
# color = result['Color'],
# module = result['Module'],
# heading1 = result['Heading1'],
# heading2 = result['Heading2'],
# heading3 = result['Heading3'],
# heading4 = result['Heading4'],
# pageNumber = result['PageNum'],
# sentence = result['Sentence']
# )
# searchedData.save()
# # update session
# if 'phrase' in request.session:
# phrase = request.session['phrase']
# else:
# request.session['phrase'] = phrase
# write dataframe to excel
df.to_excel(writer,sheet_name='IDDRS')
# request.session['session_id'] = uid
# request.session.modified = True
# results = SearchResults.objects.filter(uniqueID=request.session['session_id'])
# else:
# form = searchForm()
# # Filter results
# if request.method == 'GET' and selectedChoices:
# results = SearchResults.objects.filter(uniqueID=request.session['session_id'])
# myFilter = StandardsFilter(request.GET, queryset=results)
# results = myFilter.qs
# else:
# results = SearchResults.objects.filter(uniqueID=request.session['session_id'])
# # Create pagination for results
# paginator = Paginator(results, per_page=5)
# pageNumber = request.GET.get('page', 1)
# page_obj = paginator.get_page(pageNumber)
# args = {'form': form, 'phrase': phrase, 'navbar': 'tfidf',
# 'results':page_obj.object_list, 'levels':categories, 'myFilter':myFilter,
# 'standards':standards, 'selectedChoices':selectedChoices,
# 'pages':paginator, 'pNumber':int(pageNumber)}
# return render(request, 'tfidf.html', args)
# save the excel
writer.save()
return(fileName)
def createPDF(results, phrase):
BASE_DIR = Path(__file__).resolve().parent.parent
html_String = render_to_string(os.path.join(BASE_DIR, 'templates/App/pdf-output.html'), {'results':results, 'phrase':phrase})
html = HTML(string = html_String)
fileName = phrase+'.pdf'
html.write_pdf(os.path.join(BASE_DIR, 'static/usersResults/'+fileName))
return fileName

Binary file not shown.

Binary file not shown.

Binary file not shown.

3
api/admin.py Normal file
View File

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

6
api/apps.py Normal file
View File

@ -0,0 +1,6 @@
from django.apps import AppConfig
class ApiConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'api'

3
api/models.py Normal file
View File

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

3
api/tests.py Normal file
View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

11
api/urls.py Normal file
View File

@ -0,0 +1,11 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.apiOverview, name='api-overview'),
path('content-list/<str:level>/<str:standard>', views.contentList, name='content-list'),
path('content-detail/<str:level>/<str:standard>/<str:pk>/', views.contentDetail, name='content-detail'),
path('content-create/', views.contentCreate, name='content-create'),
path('content-update/<str:level>/<str:standard>/<str:pk>/', views.contentUpdate, name='content-update'),
path('content-delete/<str:pk>/', views.contentDelete, name='content-delete'),
]

128
api/views.py Normal file
View File

@ -0,0 +1,128 @@
from django.shortcuts import render
from django.http import JsonResponse
import os
from pathlib import Path
import json
from rest_framework.decorators import api_view
from rest_framework.response import Response
# Create your views here.
@api_view(['GET'])
def apiOverview(request):
api_urls={
'List':'/content-list/<str:level>/<str:tandard>',
'Detail':'/content-detail/<str:level>/<str:standard>/<str:pk>/',
'Create':'/content-create/',
'Update':'/content-update/<str:level>/<str:standard>/<str:pk>/',
'Delete':'/content-delete/<str:pk>/',
}
return Response(api_urls)
@api_view(['GET'])
def contentList(request,level,standard):
module_path = filePath(level, standard)
with open(module_path) as json_file:
data = json.load(json_file)
return Response(data)
@api_view(['GET'])
def contentDetail(request,level,standard, pk):
module_path = filePath(level, standard)
with open(module_path) as json_file:
data = json.load(json_file)
for obj in data:
if obj['ID'] == int(pk):
data = obj
return Response(data)
@api_view(['POST'])
def contentCreate(request):
BASE_DIR = Path(__file__).resolve().parent.parent
module_path = os.path.join(BASE_DIR, 'static/data/2 Concepts, Policy and Strategy of the IDDRS/2.10 The UN Approach to DDR.json')
with open(module_path) as json_file:
data = json.load(json_file)
ids = []
for obj in data:
ids.append(obj['ID'])
new_id = max(ids)+1
new_obj = request.data
new_obj['ID'] = new_id
data.append(new_obj)
with open(module_path, 'w') as f:
json.dump(data, f)
return Response(new_obj)
@api_view(['POST'])
def contentUpdate(request,level,standard, pk):
module_path = filePath(level, standard)
with open(module_path) as json_file:
data = json.load(json_file)
for obj in data:
if obj['ID'] == int(pk):
content_to_update = obj
break
updated_content = request.data
for obj in data:
if obj['ID'] == int(pk):
data[int(pk)] = updated_content
with open(module_path, 'w') as f:
json.dump(data, f)
return Response(content_to_update)
@api_view(['DELETE'])
def contentDelete(request, pk):
BASE_DIR = Path(__file__).resolve().parent.parent
module_path = os.path.join(BASE_DIR, 'static/data/2 Concepts, Policy and Strategy of the IDDRS/2.10 The UN Approach to DDR.json')
with open(module_path) as json_file:
data = json.load(json_file)
for i in range(len(data)):
if data[i]['ID'] == int(pk):
data.pop(i)
break
# data = filter(lambda x: x['ID']!=int(pk), data)
with open(module_path, 'w') as f:
json.dump(data, f)
return Response('ITEM succesesfully deleted!')
# Finde the targeted module to store the new paragraph in
# it returns the file path
def filePath(level_input, standard_input):
BASE_DIR = Path(__file__).resolve().parent.parent
standards_dir = os.path.join(BASE_DIR, 'static/data/')
file_path = ''
levels = []
for rootdir, dirs, files in os.walk(standards_dir):
for subdir in dirs:
levels.append(subdir)
for level in levels:
if level[0] == str(level_input):
filenames = next(os.walk(standards_dir+level), (None, None, []))[2]
for file in filenames:
if file[:4] == str(standard_input):
file_path = standards_dir+level+'/'+file
return file_path

0
data_entry/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

3
data_entry/admin.py Normal file
View File

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

6
data_entry/apps.py Normal file
View File

@ -0,0 +1,6 @@
from django.apps import AppConfig
class DataEntryConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'data_entry'

0
data_entry/forms.py Normal file
View File

View File

3
data_entry/models.py Normal file
View File

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

View File

@ -0,0 +1,38 @@
{% load static %}
<html>
<head>
<link rel="stylesheet" href="{% static 'css/styles.css' %}">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Admin</title>
</head>
<body>
<div class="container mt-5 mb-5">
{% block page_content %}
{% endblock %}
</div>
</body>
</html>
<script src="https://code.jquery.com/jquery-3.6.0.slim.js"
integrity="sha256-HwWONEZrpuoh951cQD1ov2HUK5zA5DwJ1DNUXaM6FsY=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js"
integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p"
crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"
integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF"
crossorigin="anonymous"></script>

View File

@ -2,4 +2,4 @@
{% block page_content %}
{% endblock %}
{% endblock page_content %}

3
data_entry/tests.py Normal file
View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

11
data_entry/urls.py Normal file
View File

@ -0,0 +1,11 @@
from django.urls import path
from . import views
urlpatterns = [
path('entry_home', views.index, name='index'),
path('content', views.contentList, name='content'),
path('content_detail', views.contentDetail, name='content_detail'),
path('new_entry', views.new_entry, name='new_entry'),
path('content_update', views.contentUpdate, name='content_update'),
]

119
data_entry/views.py Normal file
View File

@ -0,0 +1,119 @@
from django.shortcuts import render
from pathlib import Path
import os
import json
from App.models import Standards, Level
# Create your views here.
def index(request):
args = {}
return render(request, 'data_entry/index.html',args)
def contentList(request):
levels = Level.objects.all()
standards = Standards.objects.all()
args = {'levels':levels,'standards':standards}
return render(request, 'data_entry/content.html',args)
def contentDetail(request):
level = request.GET.get('level')
standard = request.GET.get('standard')
pk = request.GET.get('pk')
args = {'level':level,'standard':standard,'pk':pk}
return render(request, 'data_entry/content_detail.html',args)
def contentUpdate(request):
level = request.GET.get('level')
standard = request.GET.get('standard')
pk = request.GET.get('pk')
args = {'level':level,'standard':standard,'pk':pk}
return render(request, 'data_entry/content_update.html',args)
def new_entry(request):
levels = Level.objects.all()
standards = Standards.objects.all()
args = {'levels':levels,'standards':standards}
return render(request, 'data_entry/new_entry.html',args)
# def new_entry(request):
# BASE_DIR = Path(__file__).resolve().parent.parent
# p = os.path.join(BASE_DIR, 'static/data')
# levels = Level.objects.all()
# standards = Standards.objects.all()
# if request.method == "GET" and 'level' in request.GET:
# new_obj = {}
# level = request.GET.get('level')
# standard = request.GET.get('standard')
# module_path = filePath(level, standard)
# with open(module_path) as json_file:
# data = json.load(json_file)
# new_obj['ID'] = get_id(module_path)
# new_obj['Paragraph'] = request.GET.get('paragraph')
# new_obj['Color'] = data[0]['Color']
# new_obj['Level'] = level
# new_obj['LevelName'] = data[0]['LevelName']
# new_obj['Title'] = data[0]['Title']
# new_obj['PageNum'] = request.GET.get('pageNum')
# new_obj['Heading1'] = request.GET.get('heading1')
# new_obj['Heading2'] = request.GET.get('heading2')
# new_obj['Heading3'] = request.GET.get('heading3')
# new_obj['Heading4'] = request.GET.get('heading4')
# new_obj['Module'] = data[0]['Module']
# data.append(new_obj)
# with open(module_path, 'w') as f:
# json.dump(data, f)
# args = {'levels':levels,'standards':standards}
# return render(request, 'data_entry/new_entry.html', args)
def edit_entry(request):
args = {}
return render(request, 'data_entry/edit_entry.html', args)
# Finde the targeted module to store the new paragraph in
# it returns the file path
def filePath(level_input, standard_input):
BASE_DIR = Path(__file__).resolve().parent.parent
standards_dir = os.path.join(BASE_DIR, 'static/data/')
file_path = ''
levels = []
for rootdir, dirs, files in os.walk(standards_dir):
for subdir in dirs:
levels.append(subdir)
for level in levels:
if level[0] == str(level_input):
filenames = next(os.walk(standards_dir+level), (None, None, []))[2]
for file in filenames:
if file[:4] == str(standard_input):
file_path = standards_dir+level+'/'+file
return file_path
# Create the new ID
def get_id(file_path):
with open(file_path) as json_file:
data = json.load(json_file)
ids = []
for obj in data:
ids.append(obj['ID'])
return max(ids)+1

View File

@ -12,10 +12,13 @@ https://docs.djangoproject.com/en/3.1/ref/settings/
from pathlib import Path
import os
from re import TEMPLATE
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates')
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
@ -38,9 +41,10 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'search',
'App',
'data_entry',
'django_filters'
]
@ -59,7 +63,7 @@ ROOT_URLCONF = 'iddrs2.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['iddrs2/App/templates/'],
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
@ -123,8 +127,8 @@ USE_TZ = True
# https://docs.djangoproject.com/en/3.1/howto/static-files/
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'iddrs2/App/static')
os.path.join(BASE_DIR,'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
STATIC_URL = '/static/'

View File

@ -1,85 +0,0 @@
body, p, ul, ol {
font-size: 14px;
font-size: 1.6rem;
line-height: 2rem;
font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: 400;
color: #454545;
letter-spacing: -0.35px;
}
.nav-custom{
border-bottom: 3px solid #009edb!important;
padding-top: 0rem !important;
padding-bottom: 0rem !important;
padding-left: 6rem !important;
padding-right: 6rem !important;
}
.navbar-light .navbar-nav .nav-link{
color: black !important;
font-size: 12.35px !important;
}
.navbar-light .navbar-brand{
color: black !important;
font-size: 12.35px !important;
}
.header{
padding-top: 2rem;
}
.logo{
width: 20rem;
border-right: solid black 1px ;
margin-right: 15px;
padding-right: 15px;
}
.title{
width: 30%;
}
.title a{
font-family: "Roboto Condensed", "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1;
text-transform: none;
text-decoration: none;
font-weight: 700;
color: #4d4d4d !important;
font-size: 27.006116208px;
margin-top: 21.8475998092px;
letter-spacing: 0.027em;
}
.search-box{
margin-left: auto;
margin-right: 0;
}
.navbar2{
padding-top: 0rem !important;
padding-bottom: 0rem !important;
background-color: #4d4d4d !important;
}
.navbar-nav2 > .nav-item{
border-right: solid #fff 1px;
/* margin-right: 10px;
margin-left: 10px; */
justify-content: center;
}
.navbar-nav2 > .nav-item:hover {
background-color: #f2f2f2;
}
.navbar-nav2 > .nav-item> .nav-link:hover{
color: #000 !important;
}
.navbar-nav2 > .nav-item > .nav-link{
color: #fff !important;
padding: 0px 10px 0px 10px !important;
}

View File

@ -1,205 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 298.3 91.1" style="enable-background:new 0 0 298.3 91.1;" xml:space="preserve">
<style type="text/css">
.st0{fill:#009EDB;}
</style>
<path d="M146.2,5.6h7.7V30c0,4.3-1.3,7.6-4,9.8c-6.1,4.5-14.3,4.5-20.4,0c-2.7-2.2-4-5.5-4-9.8V5.6h7.7V30c0,2.5,0.6,4.2,1.8,5.3
c2.8,2.2,6.8,2.2,9.6,0c1.2-1.1,1.7-2.9,1.7-5.3L146.2,5.6z M170.8,20.5c-1.9-0.1-3.8,0.9-4.7,2.6v19.5h-7.4V15.1h6.9l0.2,3.1
c1.9-2.4,4.9-3.8,7.9-3.7c2.3-0.1,4.6,0.7,6.3,2.3c1.6,1.6,2.4,4.3,2.4,8.2v17.5h-7.4V25.1c0-1.8-0.4-3-1.1-3.6
C173.1,20.8,172,20.4,170.8,20.5L170.8,20.5z M187.4,8c0-1,0.4-2,1.1-2.7c1.7-1.4,4.3-1.4,6,0c0.7,0.7,1.2,1.7,1.1,2.7
c0,1-0.4,2-1.1,2.7c-1.7,1.4-4.3,1.4-6,0C187.8,10,187.4,9,187.4,8z M195.3,15.1v27.5h-7.4V15.1L195.3,15.1z M214.4,42.5
c-1.4,0.5-2.9,0.7-4.4,0.7c-2.1,0.1-4.1-0.6-5.8-1.9c-1.4-1.2-2.1-3.3-2.1-6.3V20.5H198v-5.4h4.1V8.3h7.4v6.8h4.7v5.4h-4.7v13.8
c-0.1,0.8,0.1,1.7,0.7,2.3c0.6,0.4,1.4,0.6,2.1,0.6c0.4,0,0.8,0,1.2-0.1c0.4,0,0.7-0.1,0.9-0.1L214.4,42.5z M241,38.2
c-1.1,1.4-2.4,2.6-4,3.4c-2.1,1.1-4.4,1.6-6.7,1.6c-4.3,0-7.7-1.3-10.1-3.9c-2.4-2.6-3.7-5.9-3.6-9.4v-1c-0.2-3.7,1.1-7.4,3.5-10.2
c2.4-2.7,5.8-4.2,9.4-4c4,0,7,1.2,9,3.7c2,2.5,3.1,5.8,3.1,9.8v3.1h-17.5c0.2,1.6,0.9,3.2,2.1,4.3c1.2,1.1,2.9,1.7,4.6,1.6
c2.6,0.1,5.1-1,6.6-3.1L241,38.2z M229.4,20.5c-1.4-0.1-2.7,0.5-3.6,1.6c-0.9,1.2-1.5,2.6-1.7,4.1h10.2v-0.6c0-1.3-0.4-2.6-1.2-3.7
C232.2,20.9,230.8,20.4,229.4,20.5z M262.1,42.7l-0.4-2.9c-0.8,1-1.8,1.9-3,2.5c-1.2,0.6-2.6,0.9-4,0.9c-3.2,0.1-6.2-1.4-7.9-4
c-2-3-3-6.5-2.8-10v-0.5c0-4.2,0.9-7.6,2.8-10.2c1.8-2.6,4.8-4,8-3.9c2.6-0.1,5,1,6.6,3v-14h7.4v39.1L262.1,42.7z M251.3,29.2
c-0.1,1.9,0.3,3.9,1.2,5.6c0.8,1.5,2.4,2.5,4.1,2.3c2,0.1,3.9-1,4.8-2.8V23.4c-0.8-1.8-2.7-3-4.8-2.9c-1.7-0.1-3.3,0.8-4.1,2.4
c-0.9,1.8-1.3,3.8-1.2,5.8V29.2z M155.9,49.9V87h-7.6l-14.9-24.5V87h-7.7V49.9h7.7l14.9,24.5V49.9H155.9z M177.4,87
c-0.4-0.8-0.6-1.6-0.7-2.5c-0.8,0.9-1.7,1.6-2.8,2.1c-1.3,0.6-2.7,0.9-4.2,0.9c-2.4,0.1-4.8-0.8-6.6-2.3c-1.8-1.5-2.7-3.6-2.7-5.9
c-0.1-2.6,1.1-5.2,3.2-6.7c2.1-1.6,5.3-2.4,9.5-2.4h3.3v-1.6c0.1-1.1-0.3-2.2-1-3.1c-0.8-0.8-1.9-1.2-3.1-1.1
c-2.6,0-3.9,1.1-3.9,3.3H161c0-2.4,1.2-4.7,3.2-6.2c2.5-1.8,5.5-2.7,8.5-2.6c2.8-0.1,5.6,0.7,7.9,2.4c2.1,1.6,3.1,4,3.1,7.3v11.6
c0,1.3,0.1,2.5,0.3,3.8c0.2,0.9,0.4,1.7,0.8,2.5V87H177.4z M171.3,81.9c1.1,0,2.2-0.3,3.2-0.8c0.8-0.4,1.4-1.1,1.9-1.8v-4.8h-3
c-1.5-0.1-3.1,0.3-4.3,1.2c-0.9,0.8-1.4,1.9-1.4,3c0,0.9,0.3,1.7,0.9,2.3C169.4,81.6,170.4,81.9,171.3,81.9L171.3,81.9z M202.6,86.8
c-0.7,0.2-1.3,0.4-2,0.5c-0.8,0.1-1.6,0.2-2.4,0.2c-2.1,0.1-4.1-0.6-5.8-1.9c-1.4-1.2-2.1-3.3-2.1-6.3V64.8h-4.1v-5.4h4.1v-6.8h7.4
v6.8h4.7v5.4h-4.7v13.8c-0.1,0.8,0.1,1.7,0.7,2.3c0.6,0.4,1.4,0.6,2.1,0.6c0.4,0,0.8,0,1.2-0.1c0.4,0,0.7-0.1,0.9-0.1L202.6,86.8z
M205.7,52.3c0-1,0.4-2,1.1-2.7c1.7-1.4,4.3-1.4,6,0c1.5,1.5,1.5,3.9,0,5.5c-1.7,1.4-4.3,1.4-6,0C206,54.3,205.6,53.3,205.7,52.3z
M213.5,59.4V87h-7.4V59.4L213.5,59.4z M217.7,73.5v-0.5c-0.1-3.6,1.1-7.2,3.4-10c2.3-2.7,5.5-4,9.6-4c4.2,0,7.4,1.3,9.7,4
c2.3,2.8,3.5,6.4,3.4,10v0.5c0.1,3.6-1.1,7.2-3.4,10c-2.3,2.7-5.5,4-9.6,4c-4.2,0-7.4-1.3-9.7-4C218.8,80.7,217.6,77.1,217.7,73.5
L217.7,73.5z M225.1,72.9v0.5c-0.1,2,0.4,4,1.3,5.7c1.6,2.4,4.9,3.1,7.3,1.5c0.6-0.4,1.1-0.9,1.5-1.5c0.9-1.8,1.3-3.7,1.3-5.7v-0.5
c0.1-2-0.4-3.9-1.3-5.7c-0.9-1.6-2.6-2.6-4.4-2.4c-1.8-0.1-3.5,0.8-4.4,2.4C225.5,69,225,71,225.1,72.9L225.1,72.9z M259.6,64.9
c-1.9-0.1-3.8,0.9-4.7,2.7V87h-7.4V59.4h6.9l0.3,3.2c1.9-2.4,4.8-3.8,7.9-3.7c2.4-0.1,4.7,0.7,6.4,2.3c1.6,1.6,2.4,4.3,2.4,8.2V87
H264V69.4c0-1.8-0.4-3-1.1-3.6C261.9,65.1,260.7,64.8,259.6,64.9L259.6,64.9z M291.2,79.3c0-0.8-0.4-1.6-1.1-2
c-1.4-0.8-3-1.3-4.5-1.5c-2.5-0.5-4.9-1.4-7-2.8c-1.8-1.2-2.9-3.3-2.8-5.5c0-2.3,1.1-4.5,2.9-6c2-1.7,4.6-2.6,8.1-2.6
s6.4,0.8,8.5,2.5c2,1.5,3.1,3.9,3.1,6.4h-7.4c0-1-0.3-1.9-1-2.6c-0.9-0.7-2-1.1-3.2-1c-1-0.1-2,0.2-2.9,0.8c-0.6,0.5-1,1.3-1,2.1
c0,0.8,0.4,1.6,1.1,2c1.2,0.7,2.6,1.1,4,1.3c2.6,0.5,5.1,1.4,7.4,2.7c2,1.2,3,3.2,3,5.9c0,2.4-1.2,4.6-3.1,6
c-2.1,1.6-4.9,2.4-8.5,2.4c-3.8,0-6.8-1-8.8-3c-1.9-1.6-3-3.9-3.1-6.3h7c0,1.2,0.6,2.4,1.6,3.1c1,0.6,2.2,1,3.5,0.9
C289.7,82.3,291.2,81.3,291.2,79.3L291.2,79.3z"/>
<g>
<g>
<g>
<g>
<path class="st0" d="M86.4,83.1c-2.9,1.4-6.1,1.8-9.3,1.1c-2.2-0.5-4.2-1.2-6.2-2.1l-4.4-1.8c-3.8-1.2-7.9-1.3-11.8-0.3h-0.4
c-3.9-1.1-8-1-11.8,0.3c-1.5,0.5-2.9,1.2-4.4,1.8c-2,0.9-4.1,1.7-6.2,2.2c-3.1,0.7-6.4,0.3-9.3-1.1l-0.4-0.2
c-0.1,0-0.1,0-0.1,0.1c1.9,2,4.4,3.4,7,4.1c1.8,0.5,3.7,0.6,5.5,0.4c2.8-0.4,5.5-1.4,7.8-3l4.2-2.8c1.6-1,3.5-1.4,5.3-1
c1,0.1,0.2,0.6,0.1,0.7c-2.5,1.2-4.9,2.7-7.1,4.4c-1.5,1.1-4.2,3.7-4.2,3.7l2,1.7l2.2-2.4c2.7-2.8,5.8-5.2,9.2-7.1
c0.3-0.2,0.6-0.2,0.9,0c3.4,1.9,6.5,4.3,9.2,7.1l2.2,2.4l2-1.7l-4.2-3.7c-2.2-1.7-4.6-3.2-7.1-4.4c-0.2-0.1-0.9-0.6,0.1-0.7
c1.8-0.4,3.7,0,5.3,1l4.2,2.8c2.3,1.6,5,2.6,7.8,3c1.8,0.2,3.7,0.1,5.5-0.4c2.6-0.8,5.1-2.2,7-4.1c0,0-0.1-0.1-0.2-0.1
L86.4,83.1 M96.2,74.4c-1.3,1-2.7,1.7-4.2,2.2c-2.1,0.6-4.4,1-6.6,1c-2.9,0.1-5.7,0.3-8.6,0.7c-0.2,0-0.3,0-0.2-0.1
c2.5-1,4.5-3,5.6-5.4l2.8-5.7c0-0.1,0-0.1,0-0.2c-0.2,0.1-3,2.5-4.3,3.7L76,75.2c-2.1,1.8-4.6,3.1-7.3,3.8h-0.1
c0,0-0.1,0.1-0.1,0.1l5.4,1.3c2.3,0.7,4.7,1.1,7.1,1.3c6.1,0.6,12-2.2,15.4-7.2C96.4,74.4,96.3,74.4,96.2,74.4 M105,61
c-1.4,1.7-3.1,3.2-5,4.4c-1.6,1.1-3.3,2-5.1,2.8c-2.3,0.9-4.4,2.2-6.3,3.7l-0.4,0.3c-0.1,0-0.1,0-0.1-0.1s3-3.1,3.9-9.4
c0.1-2.3,0.5-4.5,1-6.7c0-0.1,0-0.1,0-0.2c-2.1,2.6-3.7,5.5-4.8,8.6l-1.8,5.1c-0.7,2.3-2,4.4-3.7,6.1l-0.2,0.2c0,0,0,0.1,0,0.1
c0.2,0,0.4-0.1,0.6-0.1l5.8-1.2c3.2-0.5,6.2-1.8,8.8-3.7c2.7-1.9,4.8-4.5,6.3-7.4c0.4-0.8,0.7-1.6,1-2.4
C105.2,60.9,105.1,60.9,105,61 M108.8,46c-0.9,2.7-2.5,5.2-4.6,7.2c-2.4,2.3-4.6,4.9-6.6,7.5c0,0.1-0.2,0-0.1-0.1
c0.8-2.7,1-5.6,0.6-8.5c-0.4-2.4-1.4-5-1.7-7.9c0,0-0.1-0.1-0.1-0.1c0,0.1-0.1,0.2-0.1,0.3c-0.6,1.9-1,3.8-1.2,5.8
c-0.1,2.4,0.3,5.5,0.1,7.9c-0.2,2.8-0.4,5.7-1.7,8.2c0,0.1,0,0.1,0,0.2l6-3.7c2.5-1.6,4.6-3.6,6.3-6c2.2-3.1,3.3-6.7,3.3-10.5
c0-0.1,0-0.3,0-0.4C108.9,45.9,108.8,46,108.8,46"/>
<path class="st0" d="M102.4,47.6C102.5,47.6,102.5,47.6,102.4,47.6C102.4,47.7,102.4,47.6,102.4,47.6c0-0.8,0-1.6-0.1-2.4
c-0.2-2.8-1.9-5.1-3.4-7.5c-1-1.5-1.9-3.1-2.7-4.8c0,0-0.1-0.1-0.2-0.1c0,0.2,0,1.1,0.1,1.6c0.5,4,1.5,8,3,11.8
c0.9,2.4,1.2,4.9,1,7.4c0,0.2,0,0.2,0.1,0.3c0.9-1.3,2.7-3.1,3.8-4.5s7.1-8.2,4.2-17.6c-0.1-0.4-0.3-0.8-0.5-1.2
c0,0-0.1,0.1-0.1,0.1c0,6.8-3.3,9.7-4.6,14.3C102.7,46.1,102.5,46.9,102.4,47.6 M102.5,33.6l-0.6-1.6l-0.4-0.9
c-1-1.8-2.4-3.4-4.1-4.6c-1.4-1.2-2.6-2.5-3.6-4c0,0-0.1,0-0.2,0h-0.1c0.1,0.3,1,3.3,1.6,4.7c1,1.9,2.2,3.8,3.6,5.4L99,33
c1.7,2.3,3,4.8,3.9,7.5c0,0.1,0.1,0.1,0.1,0.1l1.7-5.2c0.6-1.8,1.1-3.7,1.5-5.6c0.6-4.5-0.8-10.2-3.4-13.4c0,0-0.1,0.1-0.1,0.2
l0.1,0.4l0.2,0.6c0.5,2.4,0.6,5,0.1,7.4c-0.4,1.9-0.5,3.9-0.5,5.9c0,0.3,0.2,2.8,0.2,2.9s-0.1,0-0.2,0 M94.5,8.5
c0.8,0.8,1.5,1.7,1.9,2.8c0.7,1.7,0.9,4.2,1.4,6.1l0.9,3.3c0,0.1-0.1,0.2-0.2,0.1c-1.5-1.8-3.3-3.3-5.4-4.5
c-1.4-0.8-2.5-1.9-3.5-3.1l-0.5-0.7c0,0-0.1-0.1-0.2,0c0,0.1,0,0.2,0,0.3c0.5,2.2,1.5,4.3,3.1,6c1.3,1.2,2.7,2.3,4,3.4
c1.7,1.4,3.3,3.1,4.8,4.8c0,0,0.1,0.1,0.1,0v-1.6l0.1-4.8V19c0-1.6-0.3-3.3-0.9-4.8c-1-2.5-2.9-4.5-5.2-5.7
c-0.1-0.1-0.3-0.1-0.5-0.2C94.4,8.3,94.4,8.4,94.5,8.5 M84.2,3.8c1.4,1.3,2.6,2.8,3.7,4.4c1,1.6,2.1,3,3.5,4.3
c0.9,0.9,3.6,3,4.3,3.6c-0.1-0.8-1.4-6.5-4.9-9.3c-2-1.6-4.4-2.8-6.9-3.4c0,0.1,0,0.1,0,0.2L84.2,3.8 M28.2,81.7
c2.3-0.2,4.7-0.6,6.9-1.3l5.4-1.3h0.1c0,0,0-0.1-0.1-0.1h-0.1c-2.7-0.7-5.2-2-7.4-3.8l-4.7-4.5L24,67v0.2
c0.4,0.6,1.9,3.9,2.8,5.7c1.1,2.5,3.1,4.4,5.6,5.4c0.1,0.1,0,0.1-0.2,0.1c-2.8-0.4-5.7-0.6-8.6-0.7c-2.2,0-4.5-0.4-6.6-1
c-1.5-0.5-2.9-1.2-4.2-2.2c-0.1,0-0.1,0-0.2,0c2,2.8,4.8,5,8,6.2C23.1,81.5,25.6,81.8,28.2,81.7 M25.9,75.8
c0.2,0,0.3,0.1,0.6,0.1c0,0,0-0.1,0-0.1l-0.2-0.2c-1.7-1.7-2.9-3.8-3.7-6.1l-1.8-5.1c-1.1-3.1-2.7-6-4.8-8.6c0,0.1,0,0.1,0,0.2
c0.6,2.2,0.9,4.4,1.1,6.7C18,68.9,21,71.9,21,72s0,0.2-0.1,0.1l-0.4-0.3c-1.9-1.5-4-2.8-6.3-3.7c-1.8-0.8-3.5-1.7-5.1-2.8
c-1.9-1.2-3.6-2.7-5-4.4c0,0-0.1,0-0.1,0c0.3,0.8,0.6,1.6,1,2.4c1.5,2.9,3.7,5.5,6.4,7.4c2.6,2,5.6,3.3,8.8,3.7
C22.1,74.9,24,75.4,25.9,75.8 M9.8,62.8l6,3.7c0,0,0.1-0.1,0.1-0.2c-1.3-2.6-1.5-5.4-1.7-8.2c-0.2-2.5,0.2-5.5,0.1-7.9
c-0.2-2-0.6-4-1.2-5.9c0-0.1-0.1-0.2-0.1-0.3c0,0-0.1,0.1-0.1,0.1c0,0,0,0,0,0c-0.2,2.9-1.3,5.5-1.7,7.9
c-0.4,2.8-0.2,5.7,0.6,8.5c0.1,0.1-0.1,0.2-0.1,0.1c-2-2.7-4.2-5.2-6.6-7.5c-2.1-2-3.7-4.4-4.6-7.1c0,0-0.1-0.1-0.2-0.1
s0,0.2,0,0.4c0,3.7,1.1,7.4,3.3,10.5C5.2,59.1,7.3,61.2,9.8,62.8 M8.7,54c0.1-0.1,0.1-0.1,0.1-0.3c-0.2-2.5,0.1-5.1,1.1-7.4
c1.4-3.8,2.4-7.7,3-11.8c0-0.5,0.1-1.4,0.1-1.6c-0.1,0-0.1,0-0.1,0.1c-0.8,1.7-1.7,3.3-2.7,4.8C8.6,40,7,42.4,6.8,45.2
c-0.1,0.8-0.1,1.6,0,2.4c0,0,0,0.1-0.1,0.1c0,0,0,0,0-0.1L6,45.2c-1.4-4.6-4.6-7.5-4.6-14.3c0,0-0.1-0.1-0.1-0.1
c-0.2,0.4-0.3,0.8-0.5,1.2c-2.9,9.4,3,16.2,4.2,17.6S7.8,52.7,8.7,54 M4.5,35.3l1.7,5.2c0,0,0.1,0,0.1-0.1
c0.9-2.7,2.3-5.2,3.9-7.5l0.3-0.4c1.4-1.7,2.6-3.5,3.6-5.4c0.6-1.4,1.5-4.4,1.6-4.7h-0.1c-0.1,0-0.1,0-0.2,0
c-1,1.5-2.2,2.8-3.6,4c-1.7,1.2-3.2,2.8-4.2,4.7c-0.1,0.3-0.3,0.6-0.4,0.9l-0.6,1.7c0,0-0.1,0.2-0.1,0s0.2-2.5,0.2-2.9
c0-2-0.2-4-0.6-5.9c-0.5-2.5-0.4-5,0.1-7.4c0-0.2,0.1-0.4,0.2-0.6c0-0.1,0.1-0.3,0.1-0.4c0-0.1,0-0.1-0.1-0.2
c-2.6,3.2-4.1,9-3.5,13.4C3.4,31.6,3.9,33.5,4.5,35.3 M8.1,20.7l0.1,4.8L8.2,27h0.1c1.4-1.8,3-3.4,4.7-4.9l4-3.4
c1.6-1.7,2.6-3.8,3.1-6c0-0.1,0-0.2,0-0.3H20l-0.5,0.7c-0.9,1.2-2.1,2.3-3.4,3.1c-2.4,1.5-4,2.6-5.4,4.5
c-0.1,0.1-0.2,0.1-0.1-0.1l0.9-3.3c0.5-1.9,0.7-4.4,1.4-6.1c0.4-1,1.1-2,1.9-2.8c0-0.1,0-0.1,0-0.2c-0.2,0-0.3,0.1-0.5,0.2
C11.8,9.7,10,11.8,9,14.2c-0.6,1.5-1,3.1-0.9,4.8L8.1,20.7 M13.4,16L13.4,16l4.4-3.6c1.3-1.3,2.5-2.7,3.5-4.3
c1-1.6,2.3-3.1,3.7-4.4l0.3-0.3c0-0.1,0-0.1,0-0.2c-2.5,0.6-4.9,1.7-6.9,3.4C14.7,9.5,13.5,15.2,13.4,16 M53.6,47
c0.3-0.4-0.4-0.7-0.6,0S53.3,47.5,53.6,47 M61.2,29.4c-0.3-0.1-1.4,1.2-1.2,1.4C60.5,30.5,60.9,30,61.2,29.4 M61.4,29.2
c0.2,0.1,0.9-0.3,0.8-0.4s-1-0.5-1-0.3C61.2,28.9,61.3,29.1,61.4,29.2 M74.9,41.6c0.4-0.1,0.3-0.7,0-0.7s-0.7,0.5-0.6,0.5
S74.7,41.7,74.9,41.6 M70,28.3c-0.3,0-0.4,0.3-0.1,0.5c0.3,0.1,0.5,0,0.7-0.1c0.2-0.1,0.4-0.3,0.4-0.6s-0.4-0.7-0.2-0.9
s0.5,0.1,0.7,0s0.3-0.3,0.3-0.5s-0.1-0.8-0.5-0.8s-0.8,0.8-0.8,0.8c-0.1,0.2-0.1,0.5,0,0.7C70.6,27.8,70.5,28.3,70,28.3"/>
<path class="st0" d="M76.6,28.4c0,0.2,0.5,1.5,0.6,1.8s0.2,1.4,0.4,1.3s0.2-0.7,0.1-1c-0.1-0.7-0.3-1.5-0.5-2.1
c-0.1-0.4-0.8-1.9-1-1.8s0.3,1,0.4,1.4S76.5,28.2,76.6,28.4 M73.1,11.4c0.3,0.1,0.3-0.5-0.2-0.9s-1.3-0.2-1.1,0
C72.2,10.8,72.6,11.2,73.1,11.4 M58.1,7.1c-0.7-0.4-0.1-1-0.6-1.4c-0.6-0.2-1.2-0.1-1.6,0.3c-0.5,0.6,0.6,0.4,0.9,0.6
s1.3,0.9,1.4,0.8S58.2,7.1,58.1,7.1 M62.1,5.1c-0.9-0.4-4.2-0.4-4.1,0.5s1.9,0,2.4,0S62.9,5.5,62.1,5.1 M53,43.7
c-0.2-0.1-0.5,0.1-0.6-0.1s-0.3-0.1-0.3,0s-0.1,0.3,0.1,0.5c0.2,0.2,0.6,0.2,0.8,0C53.1,44,53.1,43.8,53,43.7 M51.1,37
c0.3,0,0.3-0.2,0.4-0.2s0,0.2,0.3,0.2s0.6-0.7-0.3-0.7C50.8,36.3,50.9,37,51.1,37 M52.3,37.8c-0.5-0.1-0.4,0.2-0.8,0.2
c-0.6,0.1-0.1-0.4-0.3-0.6c-0.1-0.1-0.4,0.4-0.5,0.7c0,0.2,0,0.6,0.2,0.7l1.9,0.2C53.2,39,52.8,37.9,52.3,37.8 M46.1,44.3
c0.2,0,0.3-0.6,0.2-0.9s-0.7-0.1-0.7,0.1S46,44.3,46.1,44.3 M38.1,44.3c0-0.2,0-1-0.2-1.2s-0.2,0.1-0.3,0.1s-0.1-0.4-0.2-0.4
s0,0.6,0.2,1S38.1,44.8,38.1,44.3 M37.9,42.5c0.2-0.6,0.3-1.2,0.3-1.8c0-0.5-0.3-0.9-0.4-0.9s0,0.3,0.1,0.8c0,0.5-0.2,1-0.3,1.5
C37.6,42.2,37.8,42.7,37.9,42.5"/>
<path class="st0" d="M27.7,64.9c14.9,14.9,38.9,14.9,53.8,0s14.9-38.9,0-53.8s-38.9-14.9-53.8,0S12.8,50.1,27.7,64.9 M18.2,38.8
H24c0.1,3,0.6,5.9,1.5,8.7c-0.3-0.1-0.6-0.2-0.9-0.4c-0.4-0.2-0.7,0.1-0.8,0.1c-0.4,0-0.9-0.3-0.9,0s0.4,0.1,0.4,0.3
s-1,0.2-1.1-0.2s-0.3-0.8-0.4-0.3s-0.5,0.4-0.7,0.5c-0.1,0.1-0.2,0.3-0.2,0.5c0,0.2-0.5,0.1-0.5,0.4s0.3,0.4,0.4,0.7
s0.4,0.5,0.2,0.6s-0.1-0.1-0.3,0s0.9,3.1,1.1,3s-0.3-1-0.3-1.4s0.1-0.5,0.4-0.7s1.1,1.2,1.4,1s-0.1-0.4,0.2-0.5s1.2,1.3,1.5,0.9
c0.2-0.3,0.4,0.2,0.4,0.3c0.3,0.5,0.8,0.5,1.1,1.1s1,1.7,1.5,1.7s0.2-0.5,0.4-0.5s0.4,0.7,0.7,1.1c0.2,0.3,0.5,0.5,0.9,0.6
c0.7,0.9,1.5,1.8,2.3,2.7l-4.1,4.1C21.9,56.7,18.3,48,18.2,38.8 M51.3,30.5l-0.4,0.2c-0.6,0.3-1.1,0.6-1.5,1l-4.1-4.1
c2.4-2.1,5.4-3.4,8.5-3.5v5.8c-0.7,0.1-1.4,0.2-2.1,0.5c0.2-0.4,0.6-0.8,0.6-0.8S51.6,30,51.3,30.5 M48.2,40
C48.2,40,48.2,40.1,48.2,40c0,0.1,0,0.2,0,0.2c0-0.2-0.1-0.3-0.2-0.5c-0.1-0.1-0.2-0.2-0.3-0.2c-0.1,0-0.2,0-0.3,0h-0.2L47,39.6
h-1.4c-0.2,0-0.3,0-0.3-0.1c-0.1-0.4,0.5-0.1,0.9-1.3c0.1-0.1,0.1-0.3,0.2-0.4l0.1-0.2l0.1-0.1c0,0,0.1-0.1,0.1-0.1
c0.2-0.2,0.4-0.2,0.6-0.2h0.2l0.2,0.2L48,38c0.1,0.1,0.2,0.1,0.2,0.2c0.2,0.1,0.3,0.2,0.4,0.3l0.1,0.1c0,0,0,0.1,0,0.1
c0.1,0.1,0.1,0.1,0.2,0.1h0.1c0.1,0,0.1,0,0.2,0h0.1c0.2-0.1,0.2,0,0.3,0c0,0,0,0.1,0,0.1c0,0.1,0,0.1-0.1,0.2
c0,0.1-0.1,0.1-0.1,0.2c-0.1,0.1-0.2,0.2-0.3,0.2c-0.2,0-0.4-0.1-0.5-0.1c-0.1,0-0.2,0-0.2,0.1V40 M37.4,49.6
c-0.3-0.5-0.4-1.2-0.4-1.8c0-0.6-0.2-1.2-0.5-1.7c-0.1-0.4-0.2-0.8-0.2-1.2c0-0.7-0.6-0.5-0.6-0.7s0.5,0,0.5-0.2s-0.6-1-1.1-1.2
s-0.3-0.5-0.3-0.8c0-0.3,0-0.6-0.2-0.8c-0.1-0.4,0-1.1,0.5-1.1c0.2,0,0.5,0.2,0.8,0s0.1-0.8,0.1-1.3h2.8c0,0.4,0.1,0.9,0.1,1.3
c-0.2,0.1-0.3,0.3-0.2,0.4c0.1,0.1,0.2,0.2,0.3,0.1c0.5,2.9,1.8,5.6,3.8,7.8l-4.1,4.1c-0.3-0.3-0.6-0.7-0.9-1.1
c0-0.1,0-0.2,0-0.3c0-0.7-0.5-1.1-0.7-1.7 M33.5,42.6c-0.3-1.2-0.4-2.5-0.5-3.8h2.4c-0.2,0.3-0.7,0.6-0.8,0.9s-0.7,1.3-0.3,1.7
C35.2,42.4,34.1,42.8,33.5,42.6 M34,57.4l-0.5,0.5c-0.2-0.2-0.5-0.5-0.7-0.7C33.2,57,33.6,57.1,34,57.4 M40.2,31.7
c-0.1,0-0.1,0.1-0.2,0.1c-0.3,0.3-1.1,0.2-1,0.5s2.2-0.7,2.2-0.5s-0.9,0.5-1.5,0.8s-0.8,0.8-1.8,0.8c-0.5,0-0.7,0.4-0.9,0.7
c-0.3,0.4-0.5,0.8-0.7,1.2c0,0.6-0.1,1.2-0.4,1.8h-2.9c0.2-5.1,2.2-10,5.7-13.8l4.1,4.1C41.8,28.8,40.9,30.2,40.2,31.7 M44,28.7
l3.6,3.6c-0.1,0-0.2,0-0.4,0c-0.4,0-0.4-0.3-0.7-0.3c-0.6,0.1-0.7,0.3-0.8,0.2c-0.4-0.4-0.9-0.7-1.5-1c-0.7-0.2-1.4-0.2-2,0.1
c-0.1,0-0.1,0.1-0.2,0.1C42.7,30.5,43.4,29.6,44,28.7 M39,36c0,0.4-0.1,0.8-0.1,1.2h-2.1c-0.1-0.3,0-0.6,0.2-0.9
c0.2-0.4,0.7-0.6,1.2-0.5C38.4,35.8,38.7,35.9,39,36 M40.8,40.7L41,41c0.2,0.2,0.4,0.4,0.6,0.3s0.7,0,0.8,0
c0.3,0.1,0.5,0.3,0.7,0.5c0.2,0.3,0.6,0.1,0.9,0.3s0.6,0.4,0.2,0.6s0.4,0.6,0.5,0.6s0.2-0.2,0.2-0.5c0-0.1,0.2-0.5,0.5-0.4
s1.2,1.2,1.5,0.8s0.1-0.9,0.2-1.1c0-0.1,0.1-0.2,0.2-0.2c0.3,0.5,0.5,0.9,0.9,1.3l-4.1,4.1C42.4,45.5,41.2,43.2,40.8,40.7
M44,26.4l-4-4.1c3.8-3.5,8.7-5.5,13.8-5.7v5.8C50.2,22.5,46.8,23.9,44,26.4 M38.8,21.1L34.7,17c5.2-4.9,12-7.7,19.1-7.9v5.8
C48.2,15.1,42.8,17.3,38.8,21.1 M37.6,22.2c-3.8,4.1-6,9.4-6.2,15h-5.8c0.2-7.1,3-13.9,7.9-19.1L37.6,22.2z M31.4,38.8
c0,1.1,0.1,2.1,0.3,3.2c-0.1,0-0.1-0.3-0.4-0.2s-1.4,2-1.9,2.8c-0.4,0.7,0.2,2.2-0.4,2.7c-0.6,0.2-1.2,0.3-1.8,0.3h-0.1
c-1-2.8-1.5-5.7-1.6-8.6L31.4,38.8z M53.7,74.4c-9.1-0.2-17.8-3.8-24.3-10.1l4.1-4.1c5.5,5.2,12.7,8.2,20.2,8.4L53.7,74.4z
M53.7,67c-7.1-0.2-13.9-3-19.1-7.9l0.7-0.7c0.1,0.1,0.3,0.2,0.5,0.3c0.4,0.2,0.9,0.3,1.4,0.2c0.4-0.1,1.2-0.8,1.7-0.8
s1.3,0.2,1.8-0.1s-0.3-1.3-0.6-1.8c-0.1-0.1-0.1-0.2-0.2-0.3c3.9,3.3,8.9,5.2,14,5.3L53.7,67z M53.7,59.5
c-5.1-0.2-10-2.2-13.8-5.7l4.1-4.1c1.9,1.7,4.2,3,6.8,3.6c-0.9,0.4-1.3,1-1.2,1.5S49,55.6,49,56.2s0.8,1,0.9,1.6
c0.1,0.3,0.8,0.8,1.4,1.2c0.8,0.2,1.6,0.3,2.3,0.2L53.7,59.5z M53.5,51.5c-0.3-0.2-0.5,0.2-0.9,0.4c-2.8-0.4-5.3-1.6-7.4-3.4
l4.1-4.1c1.3,1,2.8,1.7,4.4,1.8c0,0.2,0.2,0.4,0.2,0.8s-0.3,0.6-0.2,0.8s1,0,1.1-0.3s-0.3-0.5-0.4-0.8c-0.1-0.2-0.1-0.3-0.2-0.5
h0.3c0.3,0,0.6,0,0.9-0.1c0.1,0,0.2-0.1,0.2-0.2c0-0.1,0.1-0.2,0.1-0.3c0-0.1,0.1-0.1,0.1-0.2v0l0.1,0.1
c0.1,0.2,0.3,0.8,0.5,0.7s0.3-1,0.2-1.2c-0.2-0.3-0.2-0.6,0-0.9c0-0.1,0.1-0.7,0.3-0.6s0,0.6,0,0.8c0,0.3,0.2,0.7,0.5,0.5
c0.2-0.1,0.4-0.4,0.6-0.3s-0.5,0.3-0.6,0.5s0.3,0.3,0.2,0.4s-0.2,0-0.3,0.1s0.2,0.7,0,0.8s-0.9,0.3-1.1,0.4s-0.4-0.1-0.3-0.2
s0-0.5-0.2-0.5s-0.2,0.1-0.2,0.3s0.2,0.5,0.2,0.6s-0.3,0.2-0.5,0.3c-0.2,0.3-0.5,0.6-0.8,0.8c-0.3,0.2-0.9,0.2-0.9,0.4
s0.3,0.2,0.4,0.3c0.2,0.3,0.3,0.7-0.1,0.9s-0.9-0.3-1.1-0.2s-0.3,0.6-0.4,1.2s1.1,0.8,1.7,0.5c0.4-0.2,0.3-0.8,0.7-1
s0.3-0.6,0.7-0.5s0.3-0.3,0.7-0.3s0.4,0.3,0.9,0.4c0.8,0.2,0.8,0.8,0.9,0.5s0.2-0.5-0.4-0.7s-0.9-0.9-0.4-0.7
c0.6,0.3,1.1,0.3,1.2,0.6s0.7,0.2,0.8,0.5c0.1,0.5,0.5,0,0.2-0.3s-0.2-0.4,0-0.6s0.3,0.1,0.6-0.3s-0.1-0.3-0.2-0.5
s0-1.3,0.4-1.1s0.8-0.1,0.6-0.2s0.1-0.7,0.2-0.7s0,0.4,0.1,0.5s1.1-0.3,1.2,0.2s-0.7,0.8-0.9,0.8c-0.4,0-0.7,0.4-1,0.8
s-0.6,0.5-0.4,0.9s0.6,0.3,1,0.1s0.7-0.5,0.9-0.6c0.4-0.2,0.7,1,0.5,1.2s-0.6,0.3-0.8,0.5c-0.6,0.3-1.2,0.6-1.9,0.6
c-0.4,0.1-0.4,0.2-0.5,0.6s-1.9,0.1-2.3,0.1s0.3-0.9-0.3-0.8s-1.2,0.2-1.8,0.3C54.6,51.4,54,51.9,53.5,51.5 M58.8,60.8
c0.5,0.2,1,0.6,1.3,1c0.3,0.5,0.4,0.7,0.2,1.2c-0.5,0.9-0.3,1.5,0.7,1.8c0.6,0.2,0.8,0.8,1.2,1.2c-2.2,0.6-4.5,0.9-6.8,1v-5.8
C56.5,61.1,57.7,61,58.8,60.8 M55.4,59.6v-0.7c1.3-0.2,1,0.6,1.9,0.3c0.3-0.1,0.6,0,0.8,0.2C57.2,59.4,56.3,59.5,55.4,59.6
M55.4,74.5v-5.9c3-0.1,6-0.6,8.9-1.6c0.1,0.1,0.2,0.1,0.3,0.1c0.4,0,0.8-0.2,1.1-0.4c1-0.4,1.9-0.9,2.7-1.5
c2.6-1.3,5.1-3.1,7.2-5.1l4.1,4.1C73.2,70.6,64.5,74.2,55.4,74.5 M71.6,22.2l1.4-1.4c0.4,0.4,0.8,0.7,1.4,0.8
c0.5,0.1,0.7,0.3,0.8,0.8s0.6,0.7,1.1,0.8s0.8,0.7,1.2,0.7s1.7,1.8,2.2,2.4c0.3,0.3,0.7,0.8,1,0.4s0.3-0.3,0.5-0.4
c1.5,3.4,2.4,7.2,2.5,10.9h-5.8c0-1.3-0.2-2.6-0.5-3.9c0.2-0.4,0.3-0.8,0.3-1.3c0-0.4-0.4-0.6-0.7-0.3c-0.2-0.8-0.5-1.5-0.8-2.2
c-0.1-0.4-0.2-0.9-0.3-1.3c0-0.1-0.2-0.2-0.4-0.4c-0.2-0.4-0.3-0.7-0.5-1c0.3-0.2,0.4-0.7,0-0.6c-0.6,0.1-0.2-0.3-0.4-0.5
s-0.2,0-0.3,0.1c-0.8-1.2-1.6-2.3-2.6-3.4c0,0,0,0,0-0.1C71.5,22.3,71.5,22.2,71.6,22.2 M75.1,56.1c-0.2-0.4-0.3-0.9-0.5-1.3
c-0.1-0.4-0.9-0.4-0.9-0.2c0,0.4,0,0.8-0.1,1.2v0.1l-2.1-2.1c3.8-4.1,6-9.4,6.2-15h5.8c-0.2,7.1-3,13.9-7.9,19l-0.3-0.3
C75.4,57.1,75.3,56.6,75.1,56.1 M70.3,60.1c0.3-0.5,0.9-1.4,1.2-1.9s-0.8-1.2-1.4-1.4s-0.6-0.5-0.6-1c0.3-0.2,0.6-0.5,0.9-0.8
l4.1,4.1c-1.4,1.3-2.8,2.4-4.4,3.4c-0.1-0.2,0.6-0.9,0.8-1.2S70.1,60.6,70.3,60.1 M72.8,36.2c-0.5-0.7,0.2-0.8,0.9-1.1
c0.4-0.2,0.9,0.1,0.9-0.1s0.2-0.6,0.4-0.7c0.2-0.1,0.5-0.3,0.6-0.5c0,0.2,0.1,0.4,0.1,0.6c-0.2,0.4-0.3,0.7-0.3,1.1
c0,0.3,0,0.7,0.3,0c0-0.1,0.1-0.1,0.1-0.2C76,36,76,36.6,76,37.2h-4.3c0,0,0,0,0-0.1C72,36.6,73.1,36.7,72.8,36.2 M73.6,28
c0,0,0,0.1-0.1,0.1c-0.1,0.1-0.6-0.7-0.6-0.1s0.2,0.8,0.6,0.9s0.2,0.3,0.5,0.4c0.1,0,0.3,0.1,0.4,0.2c0.5,1.1,0.8,2.2,1.1,3.4
c-0.2,0.1-0.3,0.2-0.4,0.3c-0.2,0.2-0.1,0.6-0.3,0.9c-0.3,0.5-0.4,0.8-1.2,0.6c-0.5-0.2-0.1-0.8,0-1.3s0.3-0.4,0.3-0.7
s-1-1.4-1.5-1c-0.5,0.4-0.4,0.8-0.8,1.2c-0.2,0.2-0.4,0.2-0.7,0s-0.4-0.4-0.3-0.6s-0.7-1.1-1-1.5c-0.4-0.5-1-0.8-1.6-0.8
c-0.5-0.9-1.2-1.8-1.9-2.6l4.1-4.1C71.6,24.8,72.7,26.3,73.6,28 M66.7,30.8l-0.2,0.3c-0.1,0.2-0.6-0.2-0.7-0.1s0.7,1.1-0.1,0.8
s-0.3-0.3-0.3-0.6s-0.7-0.5-0.3-0.7s0-0.5,0.4-0.6s0.3-0.5-0.2-0.6s-0.4,1.1-0.7,0.9c-0.3-0.1-0.6-0.1-0.9-0.1l1.4-1.4
c0.2,0.1,0.3,0.1,0.5,0.1C65.8,29.6,66.3,30.2,66.7,30.8 M65.1,51.1c0.6,0.1,1.3,0.2,1.9,0.4c0.4,0.2,0.7,0.6,1,0.1
c0.6-0.9,1-1.9,1.2-3c0.2-1.5-0.1-2-0.3-2s-0.6,0.4-1,0.4c-0.2,0-0.2,0.4-0.2,0.7s-0.4,0.6-0.5,0.4S66.9,48,67,48.2
s-0.8,0.1-1.2-0.1c-0.6-0.3,0.7-0.3,1.3-0.8c0.5-0.4,1-0.9,1.5-1.4c0.3-0.5,0.3-1.1,0.8-1.5s1.3-0.3,1.4-0.9s0.2-0.5,0.5-0.4
s3.1-0.1,3.1-1c0-0.4-0.6-0.9-1.2-1c-0.4,0-0.5-0.8-0.7-1.2c-0.2-0.4-0.4-0.8-0.7-1.2H76c-0.2,5.1-2.2,10-5.7,13.8l-0.1-0.1
v-0.4c0.1-0.8-0.5-2.1-0.7-1.9s0,0.2-0.6,1.1c-0.2,0.3-0.5,0.8-0.9,0.8s-0.4-0.2-1-0.1c-0.5,0.1-1.1,0.1-1.6,0
c-0.9-0.3-1.8-0.7-2.7-1.3c0.1-0.1,0.4,0.1,0.4-0.2S64.7,51,65.1,51.1 M80.8,63.2l-4.1-4.1c5.2-5.5,8.2-12.7,8.4-20.2H91
C90.8,48,87.2,56.6,80.8,63.2 M91,37.2h-5.9c-0.1-4.3-1.1-8.5-3-12.4l0.1-0.1c0.4-0.4-1.9-3.4-2.3-3.7s-0.8-0.8-1.3-1.3
c-0.8-0.8-1.6-1.7-2.2-2.6l4.3-4.3C87.2,19.4,90.8,28.1,91,37.2 M55.4,1.6c9.1,0.2,17.8,3.8,24.4,10.1l-4,4
c-0.2-0.1-0.4-0.2-0.3-0.4c0.2-0.3-0.3-0.3-0.4-1.1c-0.2-0.8-0.8-1.5-1.5-1.9c-0.5-0.3-0.8-0.7-1.3-0.9s-1.5-0.8-2-0.6
c-0.3,0.1-0.7,0.2-1,0.2C65,8.7,60.3,7.5,55.5,7.4L55.4,1.6z M55.4,9.1c4.3,0.1,8.4,1.2,12.3,3.1c0.1,0.6,0.4,1.3,0.8,1.8
c0.2,0.5,0.5,0.9,0.8,1.4c0.3,0.3,0.1,0.9,0.2,1.4c0,0.2,0.2,0.4,0.3,0.6c0,0.3,0,0.5,0,0.8c0,0.1,0.4,0.1,0.7-0.1
s0.5-0.6,0.9-0.5s0.9,0.9,1.2,1.4l-1.9,1.9c-0.2-0.4-0.4-0.9-0.3-0.9s0.3,0.1,0.4,0.1c0.4,0-0.3-0.3-0.3-0.4
c-0.3-0.3-0.3-0.7-0.7-1s-1-0.1-1.2-0.5c-0.4-0.7-0.9-1.3-1.6-1.8c-0.1,0,0.8,1.1,0.5,1.3S66.1,17,66,17.2s1.2,0.7,1.6,1.1
c0.2,0.2,0.6,0.8,1,1.3c-3.8-2.9-8.4-4.5-13.2-4.7L55.4,9.1z M55.4,16.5c5.1,0.2,10,2.2,13.8,5.7l-4.1,4.1
c-2.7-2.4-6.1-3.8-9.7-4L55.4,16.5z M55.4,24c3.2,0.2,6.2,1.4,8.5,3.5l-0.2,0.2l-0.2-0.1c-0.5-0.2-1.5,0.8-1.3,0.9
s0.6-0.4,0.8-0.3h0.1L61.4,30c-0.5,0.2-1,0.6-1,0.9c0,0,0,0,0,0.1l-0.6,0.6l-0.3-0.3c-0.5-0.4-1-0.7-1.6-0.9
c0.3-0.2,0.4-0.5,0.5-0.9c0-0.6-0.2-0.4-0.5-0.1s-0.6,0.4-0.8,0.7c-0.5-0.2-1.1-0.3-1.6-0.3V24z M54.7,31.4
c0.1,0.2,0,0.4-0.1,0.5c0,0,0,0,0,0c-0.2,0.2-0.8-0.5-0.9,0.1c-0.2,0.6,0.4,0.3,0.4,0.4c0.3,0.4,0.7,0.6,1.2,0.7
c0.4,0,1,0,1,0.4c0,0.2,0.5,0.2,0.6,0.4c0,0.3,0.3,0.8,0.5,0.7c0.2-0.1,0.5,0.1,0.6,0.3c0.1,0.2,0,0.3-0.1,0.5
c-0.3,0.3,0.3,0.2,0.4,0.8s-0.5,0.2-0.6,0.6c-0.2,0.3-0.4,0.5-0.6,0.8c-0.1,0.1,0.1,0.3,0.2,0.2s0.3-0.4,0.6-0.4
s0.6,1.1,0.9,1.2s0.2,0.5,0.3,0.6s-0.5,0-0.4,0.2s0.7,0.3,0.7,0.6c-0.1,0.3-0.3,0.6-0.7,0.6c-0.3,0-0.8-0.7-0.8-0.5
s0.2,0.8,0.5,0.8s1-0.3,0.7,0.1s-0.2,1-0.4,1s-0.3,0-0.1,0.3c0.1,0.3,0,0.6-0.2,0.9c-0.2,0.2-0.7,0-0.7-0.1s0.6-0.1,0.6-0.4
s-0.3-0.4-0.9-0.2c-0.3,0.1-0.4-0.1-0.6-0.1s-0.8,0.7-0.8,0.8C56,43.3,56,43.5,56,43.7c0,0.4-0.1,0.7-0.3,1
c-0.4,0.1-0.7,0.1-1.1,0.1c-1.6,0-3.2-0.7-4.4-1.7c0.2-0.1,0.5-0.2,0.8-0.2c0.3,0.1,0.4-0.1,0.6-0.2s0.7,0.2,1,0s1-1.5,0.9-1.8
s0.7-0.8,0.6-0.9s-0.2,0.1-0.2,0s0.2-0.1,0-0.5s-0.5-0.2-0.7-0.2c-0.3-0.2-0.8-0.3-0.9-0.2s-0.4-0.2-0.5-0.1
c-0.1,0-0.3,0.1-0.3,0.3c-0.1,0.2,0.1,0.4,0.1,0.6c-0.1,0.4-0.7,0.7-0.7,1s-0.3,0.1-0.4,0.2s0,0.3-0.2,0.3s-0.5,0.5-0.7,0.9
c-0.3-0.4-0.6-0.9-0.9-1.3c0.2-0.1,0.4-0.2,0.5-0.1c0.3,0.2,1.5-1.9,1.3-2.5s-0.5-0.2-0.8-0.1s-0.3-0.2-0.2-0.3s1.4-0.1,0.7-0.5
c-0.3-0.2-1.1-0.2-1-0.5s0.5,0,0.6,0c0.5,0.2,0.8-0.8,1.1-0.8c0.5,0,0.3-1-0.2-0.7s-0.7,0.2-0.9,0.5s-0.7,0.7-0.7,0.3
c0-0.2,1.1-0.8,1.3-1.1c0.2-0.2,0.4-0.5,0.5-0.8c0.1-0.3,1.5-0.5,1.8-0.7c0.2-0.2,0.4-0.5,0.4-0.8c0-0.3-0.4-0.2-0.5-0.4
s0.5,0,0.5-0.3s-0.5,0-0.7-0.2c0-0.1,0-0.1,0.1-0.2C53.4,31.5,54,31.4,54.7,31.4l0.2,0 M53.8,1.6v5.8
c-7.5,0.2-14.7,3.2-20.2,8.4l-4.1-4.1C36,5.4,44.7,1.8,53.8,1.6 M28.2,12.9l4.1,4.1c-5.2,5.5-8.2,12.7-8.4,20.2h-5.8
C18.4,28.1,22,19.4,28.2,12.9"/>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,107 +0,0 @@
{% load static %}
<html>
<head>
<link rel="stylesheet" href="{% static 'css/styles.css' %}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/fontawesome.min.css"
integrity="sha384-jLKHWM3JRmfMU0A5x5AkjWkw/EYfGUAGagvnfryNV3F9VqM98XiIH7VBGVoxVSc7" crossorigin="anonymous">
</head>
<body>
<nav class="navbar sticky-top navbar-expand-lg navbar-light bg-light nav-custom">
<a class="navbar-brand" href="https://www.un.org/">Welcome to the United Nations</a>
<div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
<ul class="navbar-nav my-lg-0">
<li class="nav-item active">
<a class="nav-link " href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact us</a>
</li>
</ul>
</div>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</nav>
<header class="header container">
<div class="d-flex align-items-center">
<div class="logo">
<a href=""><img src="{% static 'img/un-logo-en.svg' %}" alt="United Nation" /></a>
</div>
<div class="title">
<a href="">The Integrated Disarmament
Demobilization and
Reintegration Standards</a>
</div>
<div class="search-box">
<form class="d-flex">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</header>
<div class="container mt-3">
<nav class="navbar navbar2 navbar-expand-lg navbar-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav navbar-nav2 mr-auto">
<li class="nav-item">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'search' %}">Search</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">FAQ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">How to</a>
</li>
</ul>
</div>
</nav>
</div>
</body>
</html>
{% block page_content %}
{% endblock %}
<script src="https://code.jquery.com/jquery-3.6.0.slim.js"
integrity="sha256-HwWONEZrpuoh951cQD1ov2HUK5zA5DwJ1DNUXaM6FsY=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"
integrity="sha512-2rNj2KJ+D8s1ceNasTIex6z4HWyOnEYLVC3FigGOmyQCZc2eBXKgOxQmo3oKLHyfcj53uz4QMsRCWNbLd32Q1g=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js"
integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13"
crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous"></script>

View File

@ -1,14 +0,0 @@
<div class="navbar-header d-flex">
<a href=""><img class="navbar-btn pull-left" src="{% static 'img/un-logo-en.svg' %}"
alt="United Nation" /></a>
<a class="navbar-brand pull-left" href="">The Integrated Disarmament <br> Demobilization and <br>
Reintegration Standards</a>
<div class="justify-content-end">
<form class="d-flex pull-left">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>

View File

@ -15,11 +15,13 @@ Including another URLconf
"""
from django.contrib import admin
from django.urls import path, include
from App import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('App.urls')),
path('data_entry/', include('data_entry.urls')),
path('api/', include('api.urls')),
]

Binary file not shown.

View File

@ -1,4 +1,6 @@
Django==3.1.7
django-filter
djangorestframework
uWSGI>=2.0.18,<2.1
jsons==1.6.1
pandas==1.4.2

Some files were not shown because too many files have changed in this diff Show More