Commit bf3eaaf9 authored by Beno Sons's avatar Beno Sons

first

parents
Pipeline #1028 failed with stages

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

.env
.venv
migrations/*
logs/*
__pycache__
\ No newline at end of file
flask db init
flask db migrate -m "Initial migration"
flask db upgrade
flask run --port 5001 --reload
SECRET_KEY=your-secret-key
DATABASE_URL=postgresql://user:pasword@host/dbname
JWT_SECRET_KEY=your-jwt-secret-key
FLASK_APP=run.py
FLASK_ENV=development
PORT=8000
import os
import logging
from logging.handlers import RotatingFileHandler
from flask import Flask, jsonify, redirect, render_template, request
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_jwt_extended import JWTManager
from flask_swagger_ui import get_swaggerui_blueprint
from .config import Config
from flask_mail import Mail
from itsdangerous import URLSafeTimedSerializer
from flasgger import Swagger
db = SQLAlchemy()
migrate = Migrate()
jwt = JWTManager()
mail = Mail()
serializer = URLSafeTimedSerializer(Config.SECRET_KEY)
def create_app():
app = Flask(__name__, static_folder='../static', template_folder='templates')
app.config.from_object(Config)
db.init_app(app)
migrate.init_app(app, db)
jwt.init_app(app)
mail.init_app(app)
if not os.path.exists('logs'):
os.mkdir('logs')
file_handler = RotatingFileHandler(app.config['LOG_FILE'], maxBytes=10240, backupCount=10)
file_handler.setFormatter(logging.Formatter(
'%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'
))
file_handler.setLevel(logging.INFO)
app.logger.addHandler(file_handler)
app.logger.setLevel(logging.INFO)
app.logger.info(f'{Config.APP_NAME} startup')
from app.routes.auth import auth_bp
from app.routes.user import user_bp
from app.routes.email import email_bp
app.register_blueprint(auth_bp, url_prefix='/auth')
app.register_blueprint(user_bp, url_prefix='/user')
app.register_blueprint(email_bp, url_prefix='/email')
swagger = Swagger(app, config={
"headers": [
('Access-Control-Allow-Origin', '*')
],
"title": Config.APP_NAME,
'specs': [
{
'endpoint': 'apispec_1',
'route': '/apispec_1.json',
'rule_filter': lambda rule: True,
'model_filter': lambda tag: True,
}
],
"host": f"localhost:{app.config['PORT']}",
'static_url_path': '/flasgger_static',
"swagger_ui": True,
'specs_route': '/apidoc/',
'info': {
'title': app.config['SWAGGER_TITLE'],
'description': app.config['SWAGGER_DESCRIPTION'],
'version': app.config['SWAGGER_VERSION']
},
}, template_file='../static/swagger.config.json')
@app.route("/")
def home():
return redirect('/apidoc')
@app.route('/main')
def main():
return render_template('index.html', app_name="Wheeeee!", my_list=[0,1,2,3,4,5])
# Penanganan kesalahan
@app.errorhandler(404)
def not_found_error(error):
app.logger.error(f'Not Found: {request.url}')
return jsonify({"code": 404, "message": "Resource not found", "data": None}), 404
@app.errorhandler(500)
def internal_error(error):
app.logger.error(f'Server Error: {error}, Path: {request.path}')
db.session.rollback()
return jsonify({"code": 500, "message": "Internal server error", "data": None}), 500
return app
import os
from dotenv import load_dotenv
import datetime
load_dotenv()
class Config:
SECRET_KEY = os.getenv('SECRET_KEY', 'mysecretkey')
SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL', 'postgresql://user:password@localhost/dbname')
SQLALCHEMY_TRACK_MODIFICATIONS = False
DEBUG = os.getenv('FLASK_ENV') == 'development'
PORT = int(os.getenv('PORT', 8000))
JWT_SECRET_KEY = os.getenv('JWT_SECRET_KEY', 'myjwtsecretkey')
JWT_ACCESS_TOKEN_EXPIRES = datetime.timedelta(minutes=15)
JWT_REFRESH_TOKEN_EXPIRES = datetime.timedelta(days=7)
MAIL_SERVER = os.getenv('MAIL_SERVER', 'smtp.example.com')
MAIL_PORT = os.getenv('MAIL_PORT', 587)
MAIL_USE_TLS = os.getenv('MAIL_USE_TLS', True)
MAIL_USERNAME = os.getenv('MAIL_USERNAME')
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD')
MAIL_DEFAULT_SENDER = os.getenv('MAIL_DEFAULT_SENDER')
APP_NAME = os.getenv('APP_NAME')
SWAGGER_TITLE = os.getenv('SWAGGER_TITLE', 'API Documentation')
SWAGGER_DESCRIPTION = os.getenv('SWAGGER_DESCRIPTION', 'API documentation')
SWAGGER_VERSION = os.getenv('SWAGGER_VERSION', '1.0.0')
LOG_FILE = os.getenv('LOG_FILE', 'logs/app.log')
from app import db
from werkzeug.security import generate_password_hash, check_password_hash
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(150), unique=True, nullable=False)
password_hash = db.Column(db.String(255), nullable=False)
email = db.Column(db.String(150), unique=True, nullable=True, default='no-reply@example.com')
current_refresh_token = db.Column(db.String(500), nullable=True)
roles = db.relationship('Role', secondary='user_roles', backref=db.backref('users', lazy='dynamic'))
def set_password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
# Role model
class Role(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), unique=True)
privileges = db.relationship('Privilege', secondary='role_privileges', backref=db.backref('roles', lazy='dynamic'))
# Privilege model
class Privilege(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), unique=True)
# Association tables
user_roles = db.Table('user_roles',
db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
db.Column('role_id', db.Integer, db.ForeignKey('role.id'))
)
role_privileges = db.Table('role_privileges',
db.Column('role_id', db.Integer, db.ForeignKey('role.id')),
db.Column('privilege_id', db.Integer, db.ForeignKey('privilege.id'))
)
\ No newline at end of file
from flask import Blueprint, request, jsonify, make_response
from flask_jwt_extended import create_access_token, create_refresh_token, jwt_required, get_jwt_identity, unset_jwt_cookies
from app.models.user import User
from app.utils.response import success_response, error_response
from app import db, jwt
import datetime
from flask_mail import Message
from itsdangerous import URLSafeTimedSerializer
from flasgger import swag_from
auth_bp = Blueprint('auth', __name__)
@auth_bp.route('/register', methods=['POST'])
@swag_from({
'responses': {
200: {
'description': 'A user registration response',
'examples': {
'application/json': {
'code': 200,
'message': 'User registered successfully.',
'data': {
'username': 'string',
'email': 'string'
}
}
}
}
}
})
def register():
data = request.get_json()
username = data.get('username')
password = data.get('password')
email = data.get('email')
if User.query.filter_by(username=username).first():
return error_response(message="User already exists", code=400)
new_user = User(username=username, email=email)
new_user.set_password(password)
db.session.add(new_user)
db.session.commit()
return success_response(message="User created successfully", code=200)
@auth_bp.route('/login', methods=['POST'])
def login():
username = request.json.get('username', None)
password = request.json.get('password', None)
user = User.query.filter_by(username=username).first()
if user is None or not user.check_password(password):
return error_response("Bad username or password", code=401)
# Remove old refresh token if it exists
old_refresh_token = user.current_refresh_token
if old_refresh_token:
# Assuming you are storing tokens in a database or cache, adjust this accordingly
# Do not try to delete a string with SQLAlchemy
# Just update the user's refresh token if needed
user.current_refresh_token = None
db.session.commit()
access_token_expires = datetime.timedelta(minutes=request.json.get('access_token_expires', 15))
refresh_token_expires = datetime.timedelta(days=request.json.get('refresh_token_expires', 7))
access_token = create_access_token(identity=username, expires_delta=access_token_expires)
refresh_token = create_refresh_token(identity=username, expires_delta=refresh_token_expires)
# Update user with the new refresh token
user.current_refresh_token = refresh_token
db.session.commit()
return success_response(data={"access_token": access_token, "refresh_token": refresh_token})
@auth_bp.route('/logout', methods=['GET'])
@jwt_required(refresh=True)
def logout():
current_user = get_jwt_identity() # This should be a string (username)
user = User.query.filter_by(username=current_user).first()
if user:
# Clear the refresh token
user.current_refresh_token = None
db.session.commit()
# Create a response object
response = make_response(success_response(message="Successfully logged out"))
# Unset JWT cookies
unset_jwt_cookies(response)
return response
from flask import Blueprint, request, url_for
from flask_mail import Message
from itsdangerous import URLSafeTimedSerializer
from app import db, mail, serializer
from app.models.user import User
from app.utils.response import success_response, error_response
email_bp = Blueprint('email', __name__)
def send_reset_email(user):
token = serializer.dumps(user.email, salt='password-reset-salt')
reset_url = url_for('email.reset_password', token=token, _external=True)
msg = Message("Password Reset Request",
sender='noreply@demo.com',
recipients=[user.email])
msg.body = f"""To reset your password, visit the following link:
{reset_url}
If you did not make this request then simply ignore this email and no changes will be made.
"""
mail.send(msg)
@email_bp.route('/reset_password_request', methods=['POST'])
def reset_password_request():
data = request.json
email = data.get('email')
user = User.query.filter_by(email=email).first()
if user:
send_reset_email(user)
return success_response(message="If an account with that email exists, you will receive an email with instructions to reset your password.")
@email_bp.route('/reset_password/<token>', methods=['POST'])
def reset_password(token):
try:
email = serializer.loads(token, salt='password-reset-salt', max_age=3600)
except:
return error_response("The reset link is invalid or has expired.", code=400)
data = request.json
password = data.get('password')
user = User.query.filter_by(email=email).first()
if user:
user.set_password(password)
db.session.commit()
return success_response(message="Your password has been updated!")
return error_response("Invalid email address.", code=400)
from flask import Blueprint, jsonify, request
from flask_jwt_extended import jwt_required, get_jwt_identity
from app.models.user import User
from app.utils.response import success_response, error_response
from app import db, jwt
user_bp = Blueprint('user', __name__)
@user_bp.route('/profile', methods=['GET'])
@jwt_required()
def profile():
current_user = get_jwt_identity() # This should be a string (username)
user = User.query.filter_by(username=current_user).first()
if user.current_refresh_token is None:
return error_response("User is not Loggin", code=403)
if user:
return success_response(data={"username": user.username, "email": user.email})
return error_response("User not found", code=404)
@user_bp.route('/all', methods=['GET'])
@jwt_required()
def get_users():
users = User.query.all()
users_data = [{"id": user.id, "username": user.username, "email": user.email, "roles": [role.name for role in user.roles]} for user in users]
return success_response(data=users_data)
@user_bp.route('/<int:user_id>', methods=['GET'])
@jwt_required()
def get_user(user_id):
user = User.query.get_or_404(user_id)
user_data = {"id": user.id, "username": user.username, "email": user.email, "roles": [role.name for role in user.roles]}
return success_response(data=user_data)
@user_bp.route('/create', methods=['POST'])
@jwt_required()
def create_user():
data = request.json
username = data.get('username')
email = data.get('email')
password = data.get('password')
role_names = data.get('roles', [])
if not username or not email or not password:
return error_response("Username, email, and password are required", code=400)
user = User(username=username, email=email)
user.set_password(password)
for role_name in role_names:
role = Role.query.filter_by(name=role_name).first()
if role:
user.roles.append(role)
db.session.add(user)
db.session.commit()
return success_response(message="User created successfully")
@user_bp.route('/roles', methods=['GET'])
@jwt_required()
def get_roles():
roles = Role.query.all()
roles_data = [{"id": role.id, "name": role.name, "privileges": [priv.name for priv in role.privileges]} for role in roles]
return success_response(data=roles_data)
@user_bp.route('/roles', methods=['POST'])
@jwt_required()
def create_role():
data = request.json
role_name = data.get('name')
privilege_names = data.get('privileges', [])
if not role_name:
return error_response("Role name is required", code=400)
role = Role(name=role_name)
for priv_name in privilege_names:
privilege = Privilege.query.filter_by(name=priv_name).first()
if privilege:
role.privileges.append(privilege)
db.session.add(role)
db.session.commit()
return success_response(message="Role created successfully")
@user_bp.route('/<int:user_id>', methods=['PUT'])
@jwt_required()
def update_user(user_id):
user = User.query.get_or_404(user_id)
data = request.json
username = data.get('username')
email = data.get('email')
password = data.get('password')
role_names = data.get('roles', [])
if username:
user.username = username
if email:
user.email = email
if password:
user.set_password(password)
if role_names is not None:
user.roles = []
for role_name in role_names:
role = Role.query.filter_by(name=role_name).first()
if role:
user.roles.append(role)
db.session.commit()
return success_response(message="User updated successfully")
@user_bp.route('/roles/<int:role_id>', methods=['PUT'])
@jwt_required()
def update_role(role_id):
role = Role.query.get_or_404(role_id)
data = request.json
role_name = data.get('name')
privilege_names = data.get('privileges', [])
if role_name:
role.name = role_name
if privilege_names is not None:
role.privileges = []
for priv_name in privilege_names:
privilege = Privilege.query.filter_by(name=priv_name).first()
if privilege:
role.privileges.append(privilege)
db.session.commit()
return success_response(message="Role updated successfully")
\ No newline at end of file
from .seed_users import seed_users
def init_db():
seed_users()
from app import db
from app.models.user import User
def seed_users():
if not User.query.filter_by(username='admin').first():
admin = User(username='admin', password='admin')
admin.email = 'admin@example.com'
db.session.add(admin)
db.session.commit()
<script>
window.onload = function() {
// Build a system
const ui = SwaggerUIBundle(
Object.assign({
url: "/apispec_1.json",
dom_id: '#swagger-ui',
validatorUrl: null,
displayOperationId: true,
deepLinking: true,
jsonEditor: true,
apisSorter: "alpha",
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
}, {}
)
)
let auth_config = '';
ui.initOAuth(auth_config);
window.ui = ui
}
</script>
\ No newline at end of file
This diff is collapsed.
from flask import jsonify
def success_response(data=None, message="Success", code=200):
response = {
"code": code,
"message": message,
"data": data
}
return jsonify(response), code
def error_response(message="Error", code=400):
response = {
"code": code,
"message": message,
"data": None
}
return jsonify(response), code
from app import create_app
import os
from dotenv import load_dotenv
load_dotenv()
app = create_app()
# @app.before_first_request
def setup():
upgrade()
if __name__ == "__main__":
port = app.config['PORT']
debug = app.config['DEBUG']
app.run(port=port, debug=debug)
\ No newline at end of file
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-ae">
<path fill="#00732f" d="M0 0h512v170.667H0z"/>
<path fill="#fff" d="M0 170.667h512v170.667H0z"/>
<path d="M0 341.333h512V512H0z"/>
<path fill="red" d="M0 0h180v512H0z"/>
</svg>
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-ag">
<defs>
<clipPath id="a">
<path fill="#25ff01" d="M108.95 47.6h464.86v464.86H108.95z"/>
</clipPath>
</defs>
<g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-120 -52.427) scale(1.1014)">
<path fill="#fff" d="M0 47.6h693V512H0z"/>
<path d="M1.53 48.16h690.83v196.2H1.53z"/>
<path fill="#0061ff" d="M128.29 232.12h458.52v103.35H128.29z"/>
<path d="M692.53 49.19v463.27H346.86L692.53 49.19zm-691.34 0v463.27h345.67L1.19 49.19z" fill="#e20000"/>
<path d="M508.78 232.22l-69.285-17.58 58.944-44.467-72.388 10.34 37.228-63.08-64.115 37.23L410.54 81.24l-43.432 57.91-17.58-67.217-19.648 69.285-43.433-58.944 12.41 75.49-64.115-39.296 37.228 63.08-70.32-11.375 57.91 43.433-72.387 18.614h321.61z" fill="#ffd600"/>
</g>
</svg>
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-al">
<path fill="#e41e20" d="M0 0h512v512H0z"/>
<path id="a" d="M204.896 99.537c-4.978-.084-13.24 1.587-13.056 5.408-13.867-2.376-15.31 3.35-14.496 8.448 1.32-2.023 2.926-3.12 4.16-3.328 1.85-.307 3.784.29 5.76 1.504 1.976 1.213 4.153 3.17 5.12 4.383-4.894 1.17-8.675.415-12.512-.256-1.89-.33-4.538-1.395-6.112-2.496-1.573-1.1-2.07-2.137-4.544-4.67-2.918-2.99-6.023-2.148-5.056 2.495 2.238 4.312 5.977 6.235 10.688 7.008 2.267.372 5.645 1.18 9.472 1.184 3.828.004 8.126-.553 10.464-.064-1.404.882-2.994 2.402-6.144 3.008-3.203.617-8.072-1.904-11.04-2.59.377 2.496 3.527 4.83 9.728 6.047 10.19 2.22 18.658 3.905 24.256 6.944 5.598 3.04 9.128 6.844 11.648 9.825 5.017 5.932 5.28 10.486 5.6 11.488 1.032 9.478-2.272 14.81-8.416 16.448-3.07.82-8.527-.723-10.528-3.07-2-2.35-3.946-6.385-3.392-12.705.54-2.48 3.375-8.938.96-10.272-11.122-6.147-24.628-12.364-34.4-16.064-2.67-1.012-4.87 2.618-5.728 4.03-16.6-2.02-31.566-13.254-38.304-25.215-4.588-8.146-12.15.017-10.88 7.712 2.053 8.59 8.597 14.8 16.448 19.2 8.06 4.437 18.13 8.803 28.32 8.576 5.49 1.04 5.436 8.14-1.152 9.472-12.882.082-23.16-.24-32.864-9.6-7.36-6.72-11.503 1.287-9.376 5.824 3.606 13.985 23.56 17.902 43.744 13.375 7.817-1.294 3.136 7.082.928 7.168-8.434 6.048-23.534 11.965-36.832-.064-6.085-4.66-10.2-.744-7.936 5.983 5.9 17.54 28.47 13.855 43.968 5.216 3.99-2.224 7.61 2.95 2.752 6.88-19.272 13.465-28.907 13.618-37.6 8.447-10.882-4.292-11.84 7.78-5.376 11.744 7.185 4.41 25.467 1.104 38.88-7.327 5.75-4.275 6.01 2.41 2.368 5.056-15.917 13.755-22.19 17.378-38.784 15.135-8.228-.64-8.104 9.503-1.632 13.472 8.837 5.42 26.095-3.576 39.488-14.688 5.638-3.013 6.564 1.927 3.776 7.775C159.08 236.71 151.4 242.798 144 245.617c-7.4 2.82-14.515 2.37-19.552.64-6.144-2.11-6.914 4.274-3.52 10.08 2.047 3.5 10.527 4.62 19.68 1.376 9.154-3.245 18.98-10.857 25.728-19.776 5.87-5.14 5.14 1.765 2.464 6.624-13.51 21.36-25.868 29.283-42.144 27.937-7.216-1.226-8.855 4.386-4.256 9.568 8.077 6.698 18.176 6.488 27.008-.128 7.853-7.57 22.874-23.873 30.752-32.61 5.552-4.424 7.325-.06 5.696 8.93-1.48 5.148-5.19 10.57-15.296 14.527-6.904 3.94-1.72 9.372 3.456 9.472 2.848.056 8.632-3.273 13.056-8.255 5.82-6.554 6.167-10.954 9.376-21.15 3.032-4.972 8.448-2.652 8.448 2.56-2.597 10.213-4.83 12.045-10.08 16.223-5.022 4.715 3.498 6.287 6.368 4.352 8.305-5.598 11.337-12.84 14.112-19.424 2.003-4.753 7.814-2.448 5.12 5.313-6.437 18.547-17.014 25.85-35.52 29.6-1.875.333-3.02 1.44-2.368 3.616 2.484 2.577 4.973 4.917 7.456 7.487-11.443 3.33-20.74 5.203-32.192 8.544-5.618-3.683-10.157-6.808-15.776-10.495-1.48-3.463-2.172-8.75-10.464-5.024-5.618-2.594-8.21-1.642-11.328.96 4.5.17 6.46 1.374 8.224 3.425 2.304 6.068 7.618 6.655 13.056 4.928 3.538 2.98 5.423 5.267 8.96 8.256-6.604-.227-11.205-.344-17.792-.545-6.288-6.75-11.307-6.382-15.808-1.088-3.43.527-4.884.6-7.232 4.768 3.692-1.515 6.014-1.97 7.616-.32 6.686 3.876 11.053 3.01 14.368 0 6.45.395 12.262.73 18.72 1.152-2.372 2.017-5.628 3.086-8 5.12-9.687-2.77-14.743.96-16.448 8.865-1.298 3.19-1.906 6.475-1.344 9.888.938-3.122 2.445-5.806 5.216-7.488 8.635 2.193 11.88-1.332 12.352-6.496 4.162-3.396 10.438-4.145 14.592-7.584 4.857 1.554 7.205 2.517 12.096 4.064 1.74 5.284 5.674 7.377 12.064 6.016 7.606.238 6.264 3.36 6.88 5.856 2.022-3.586 1.965-7.072-2.72-10.24-1.704-4.63-5.48-6.738-10.432-4.064-4.66-1.323-5.885-3.225-10.528-4.544 11.744-3.743 20.074-4.586 31.808-8.32 2.938 2.77 5.265 4.76 8.224 7.232 1.56.93 3.052 1.165 3.968 0 7.353-10.643 10.637-20.023 17.472-27.04 2.61-2.904 5.91-6.822 9.568-7.776 1.83-.478 4.072-.187 5.504 1.376 1.432 1.562 2.557 4.44 2.08 8.736-.684 6.165-2.174 8.112-3.904 11.808-1.73 3.696-3.843 5.97-6.016 8.8-4.345 5.66-10.078 8.955-13.472 11.168-6.786 4.425-9.657 2.488-14.912 2.207-6.792.764-8.6 4.072-3.04 8.64 5.197 2.705 9.868 3.04 13.664 2.337 3.26-.602 7.074-4.81 9.792-7.072 3.06-3.534 8.132.658 4.672 4.768-6.286 7.47-12.568 12.395-20.32 12.288-8.145 1.098-6.622 5.674-1.216 7.905 9.73 4.016 18.514-3.505 22.976-8.448 3.443-3.766 5.89-3.913 5.28 1.92-3.418 10.562-8.088 14.64-15.712 15.168-6.183-.574-6.25 4.2-1.728 7.424 10.302 7.13 17.763-5.013 21.248-12.353 2.484-6.62 6.294-3.472 6.688 1.984.052 7.292-3.242 13.244-12.064 20.705 6.75 10.754 14.618 21.692 21.376 32.48l20.485-228.153-20.48-36.047c-2.133-1.97-9.346-10.468-11.23-11.648-.69-.734-1.107-1.253-.097-1.632.976-.366 3.262-.776 4.8-1.056-4.344-4.352-8.066-5.747-16.29-8.128 2.005-.854 3.954-.357 9.857-.64-2.343-3.327-7.577-8.422-14.336-10.88 4.463-3.173 5.332-3.386 9.76-7.104-7.667-.544-14.214-2.005-20.8-4-4.165-1.948-9.95-3.6-12.77-3.648zm.737 8.928c4.05 0 6.56 1.39 6.56 3.072 0 1.713-2.51 3.104-6.56 3.104-4.035 0-6.592-1.517-6.592-3.23 0-1.684 2.558-2.945 6.593-2.945z"/>
<use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 512 0)"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-am">
<path d="M0 0h512v170.667H0z" fill="red"/>
<path d="M0 170.667h512v170.666H0z" fill="#00f"/>
<path d="M0 341.333h512V512H0z" fill="orange"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-ao">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="red" d="M0 0h511.993v259.824H0z"/>
<path d="M0 252.2h511.993v259.824H0z"/>
</g>
<path d="M228.67 148.173c165.22 43.304 58.99 255.64-71.216 167.26l-8.817 13.545c76.628 54.658 152.57 10.66 173.9-46.358 22.297-58.788-7.52-141.48-92.51-150.03l-1.356 15.576z" fill-rule="evenodd" fill="#ffec00"/>
<path fill-rule="evenodd" fill="#ffec00" d="M169.955 330.827l21.73 10.125-10.142 21.696-21.73-10.125zm148.985-99.48h23.98v23.942h-23.98zm-11.684-38.892l22.342-8.694 8.707 22.31-22.342 8.693zm-25.894-29.188l17.035-16.85 16.877 17.01-17.035 16.85zm-26.284-39.787l22.434 8.455-8.468 22.4-22.434-8.455zM316.1 270.01l22.265 8.888-8.902 22.23-22.265-8.887zm-69.876 70.05l22.06-9.388 9.402 22.025-22.058 9.39zm-39.504 2.77h23.98v23.94h-23.98zm41.29-115.937l-20.35-15.006-20.245 14.47 8.034-22.92-20.348-14.956 24.447-.17 8.567-22.55 7.782 22.702 24.7-.242-19.586 15.232 6.996 23.44z"/>
<path d="M336.03 346.376c-1.21.418-6.23 12.39-9.675 18.248 1.797.51 2.56.596 3.625 1.025 13.655 4.8 20.384 9.18 26.186 17.504 2.888 2.79 7.032 2.93 10.198.697 0 0 2.795-1.114 6.43-5.02 2.968-4.52 2.194-8.11-1.384-11.16-10.944-7.952-22.9-13.902-35.38-21.295z" fill-rule="evenodd" fill="#fe0"/>
<path d="M365.247 372.842c0 2.388-1.94 4.324-4.33 4.324s-4.333-1.936-4.333-4.324 1.94-4.325 4.332-4.325 4.33 1.936 4.33 4.325zM343.87 359.17c0 2.388-1.94 4.324-4.33 4.324s-4.333-1.936-4.333-4.324 1.94-4.325 4.332-4.325 4.33 1.936 4.33 4.325zm10.898 6.975c0 2.39-1.94 4.325-4.33 4.325s-4.333-1.936-4.333-4.325 1.94-4.324 4.332-4.324 4.33 1.937 4.33 4.325z" fill-rule="evenodd"/>
<path d="M324.47 363.667c-42.57-24.273-87.31-50.52-129.88-74.796-18.75-11.635-19.683-33.384-7.17-49.875 1.302-2.337 2.836-1.758 3.514-.524 1.463 8.03 5.97 16.325 11.37 21.496 44.693 28.383 87.732 55.804 131.71 85.613-3.448 5.767-6.104 12.32-9.55 18.086z" fill-rule="evenodd" fill="#fe0"/>
<path fill-rule="evenodd" fill="#ffec00" d="M297.174 305.457l17.85 15.986-16.01 17.824-17.85-15.986z"/>
<path d="M331.54 348.82L206.58 273.3m109.53 58.093l-42.24-27.28m18.21 42.687l-42.75-24.755" stroke="#000" stroke-width="3.05" fill="none"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-aq">
<defs>
<clipPath id="a">
<path fill-opacity=".67" d="M0 0h512v512H0z"/>
</clipPath>
</defs>
<g clip-path="url(#a)">
<path fill-rule="evenodd" fill="#3a7dce" d="M0 0h512v512H0z"/>
<path d="M95.84 237.9c-3.702-7.57-3.702-7.57-3.702-15.14-1.85 0-2.198.356-3.268.058-1.07-.295-1.475 6.98-4.946 5.56-.578-.71 2.488-5.972-.838-8.16-1.07-.712.26-5.028-.203-6.92 0 0-4.22 2.246-7.403-5.678-1.562-2.07-3.702 1.892-3.702 1.892s.925 2.425-.75 3.017c-2.373-1.776-4.11-.845-7.116-3.284-3.008-2.44.637-5.233-5.09-7.303 3.702-9.462 3.702-7.57 12.956-11.354-5.553-3.786-5.553-3.786-9.254-9.464-5.553-1.893-7.404-3.784-12.957-7.57-7.403-9.47-11.105-28.39-11.105-41.64 4.686-4.435 11.105 15.14 20.36 20.817l12.956 5.677c7.403 3.785 9.254 7.57 14.807 11.354l16.658 5.678c7.403 5.677 11.105 13.247 16.658 15.14 6.016 0 7.175-3.542 9.104-3.763 10.88-.57 16.434-2.004 18.603-5.346 2.197-2.66 7.46 1.538 22.267-4.14l-1.85-7.57s3.932-3.31 9.253-1.892c-.144-3.46-.492-12.685 4.75-16.847-3.183-3.414-1.048-5.86-1.048-5.86s2.95-2.9 3.296-4.437c-1.56-8.34 1.354-8.468 2.008-10.92.653-2.454-2.518-1.614-1.624-4.995.893-3.383 6.255-4.186 6.972-6.972.72-2.785-1.528-4.183-1.4-4.848 1.158-2.66.176-8.93 0-11.355 9.95-2.72 13.19-11 16.66-7.57 1.85-11.355 3.7-15.14 14.806-15.14 1.563-3.49-4.05-6.446-1.85-7.57 3.7-.472 6.535-.236 10.875 5.5 1.37 1.82 1.618-2.66 3.006-3.134 1.387-.473 4.71-.48 5.204-2.72.522-2.307 1.273-5.323 3.124-9.107 1.562-3.076 2.776 1.182 4.164 7.214 7.81.296 25.45 2.07 32.853 4.14 5.553 1.48 9.255-1.478 14.576-2.07 3.934 4.022 7.636 1.006 9.718 9.58 2.94 4.628 7.75.415 8.792 1.775 6.19 17.446 27.474 5.677 29.093 5.973 2.718 0 6.038 7.8 8.178 7.607 3.478-.6 2.494-3.024 5.53-2.048-.81 6.564 5.96 14.134 5.96 19.042 0 0 1.647.827 3.173-.63 1.525-1.455 2.928-5.196 4.287-5.107 3.24.473 4.55.898 8.284 1.565 10.036 3.506 15.148 4.297 19.046 6.094 1.813 3.393 3.57 5.13 7.246 4.496 3.037 2.086.822 4.818 2.615 4.995 3.703-1.892 4.918-3.962 8.62-2.07 3.7 1.893 7.403 5.678 9.254 9.463 0 1.892-1.85 9.462 0 20.816.925 3.785 1.373 6.786 5.35 13.277-1.057 6.667 5.003 17.888 5.003 20.727 0 3.784-2.95 5.737-4.8 9.52 7.402 5.68 0 15.14-3.702 20.818 27.763 5.678 14.807 17.032 37.017 11.354-5.553 13.246-3.587 12.183 1.966 25.43-11.106 7.57-.23 9.874-7.634 19.336-.463.592 4.395 8.22 11.22 8.22-1.85 15.14-7.403 9.463-5.552 32.173-14.576-.296-8.677 16.972-18.51 15.14.58 10.82 5.61 11.768 3.703 22.708-7.403 1.892-7.403 1.892-11.105 7.57l-5.553-1.893c-1.85 9.462-5.552 11.354 0 20.817 0 0-7.172.237-9.254 0-.175 3.253 3.18 4.14 3.702 7.57-.29 1.36-10.528 7.333-18.51 7.57-2.08 4.672 5.553 9.64 5.09 12.005-8.676 1.714-12.493 12.596-12.493 12.596s4.453 1.834 3.702 3.785c-2.37-1.775-3.702-1.893-7.403-1.893-1.85.474-6.36-.115-10.687 7.348-4.748 1.602-6.99 1.023-10.59 5.892-1.595-4.64-3.888.044-6.692 1.843-2.8 1.802-6.575 6.28-7.08 6.09.115-1.302 1.734-6.033 1.734-6.033l-9.254 1.893s-.413.04-1.14.116c-.728.074-.533-5.523-2.288-5.32-1.753.204-6.77 7.04-8.48 7.253-1.71.214-2.25-2.174-3.72-1.966-1.472.21-4.34 7.21-5.383 7.396-1.043.186-5.176-4.255-8.718-3.635-18.22 6.566-21.113-12.95-23.947-1.95-3.817-2.07-3.156-.87-7.035.17-2.475.653-2.7-3.345-4.9-3.284-4.405.127-4.173 4.386-6.574 3.114-1.965-8.872-13.824-7.275-14.98-11.06-.94-3.946 5.137-3.928 7.103-6.602 1.502-3.86-1.57-5.323 4.53-9.046 7.948-5.498 3.378-7.57 4.772-11.703 2.493-5.966 2.507-7.423.425-12.686 0 0-6.19-17.032-7.404-17.032-3.7-1.064-3.7 6.268-9.14 8.28-11.104 3.784-30.71-9.582-34.124-9.582-3.123.06-17.588 3.503-17.042-3.872-2.162 7.17-10.115 1.685-10.605 1.685-7.403 0-4.57 5.855-9.545 5.618-2.256-.768-25.044-2.128-25.044-2.128v3.785l-14.807-7.57-12.956-3.784c-11.104-3.786-5.55-13.248-24.06-7.57v-11.355h-9.254c3.7-22.71 0-11.354-1.85-32.172l-7.405 1.893c-7.402-10.232 10.296-8.28-5.55-15.14 0 0 .288-11.298-3.703-7.57-.81.472 1.85 5.676 1.85 5.676-14.806-1.892-18.508-5.677-18.508-20.817 0 0 12.203 1.774 11.104 0-1.735-2.84-3.99-21.29-3.586-22.532-.173-2.484 11.337-8.752 9.11-14.727 1.417-.53 5.58-.59 5.58-.59" fill="#fff"/>
<path stroke-linejoin="round" d="M595.51 313.51c-.592 1.332-.487 2.662.125 3.612 1.1-1.648.17-2.408-.125-3.612z" stroke="#fff" stroke-linecap="round" stroke-width="2.703" fill="none"/>
<path stroke-linejoin="round" d="M119.51 164.09s-3.104-.38-2.407 2.344c1.014-2.09 2.344-2.217 2.407-2.344zm.7-6.33c-1.71.064-3.8-.253-3.104 2.47 1.014-2.09 3.04-2.343 3.104-2.47zm11.68 36.29s2.66-.19 1.964 2.534c-1.014-2.09-1.9-2.407-1.964-2.534z" stroke="#fff" stroke-width="2.534" fill="none"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-ar">
<path fill="#74acdf" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M0 170.67h512v170.67H0z"/>
<g id="c" transform="translate(-153.6) scale(1.024)">
<path id="a" d="M396.84 251.31l28.454 61.992s.49 1.185 1.28.859c.79-.327.299-1.512.299-1.512l-23.715-63.956m-.68 24.12c-.347 9.428 5.452 14.613 4.694 23.032-.757 8.42 3.867 13.18 4.94 16.454 1.073 3.274-1.16 5.232-.198 5.698.963.466 3.07-2.12 2.383-6.775-.687-4.655-4.22-6.037-3.39-16.32.83-10.283-4.206-12.678-2.98-22.058" fill="#f6b40e" stroke="#85340a" stroke-width="1.112"/>
<use height="100%" width="100%" xlink:href="#a" transform="rotate(22.5 400 250)"/>
<use height="100%" width="100%" xlink:href="#a" transform="rotate(45 400 250)"/>
<use height="100%" width="100%" xlink:href="#a" transform="rotate(67.5 400 250)"/>
<path id="b" d="M404.31 274.41c.453 9.054 5.587 13.063 4.579 21.314 2.213-6.525-3.124-11.583-2.82-21.22m-7.649-23.757l19.487 42.577-16.329-43.887" fill="#85340a"/>
<use height="100%" width="100%" xlink:href="#b" transform="rotate(22.5 400 250)"/>
<use height="100%" width="100%" xlink:href="#b" transform="rotate(45 400 250)"/>
<use height="100%" width="100%" xlink:href="#b" transform="rotate(67.5 400 250)"/>
</g>
<use height="100%" width="100%" xlink:href="#c" transform="rotate(90 256 256)"/>
<use height="100%" width="100%" xlink:href="#c" transform="rotate(180 256 256)"/>
<use height="100%" width="100%" xlink:href="#c" transform="rotate(-90 256 256)"/>
<circle r="28.445" cy="256" cx="256" fill="#f6b40e" stroke="#85340a" stroke-width="1.536"/>
<path id="h" d="M265.697 249.917c-1.942 0-3.802.842-4.896 2.592 2.188 1.97 7.021 2.183 10.304-.224-1.422-1.53-3.466-2.368-5.408-2.368zm-.032.448c1.89-.034 3.658.834 3.904 1.696-2.188 2.407-5.684 2.198-7.872.448.958-1.531 2.498-2.117 3.968-2.144z" fill="#843511"/>
<use height="100%" width="100%" xlink:href="#d" transform="matrix(-1 0 0 1 512.256 0)"/>
<use height="100%" width="100%" xlink:href="#e" transform="matrix(-1 0 0 1 512.256 0)"/>
<use height="100%" width="100%" xlink:href="#f" transform="translate(19.315)"/>
<use height="100%" width="100%" xlink:href="#g" transform="matrix(-1 0 0 1 512.256 0)"/>
<path d="M251.648 259.932c-.935.17-1.6 1-1.6 1.952 0 1.087.899 1.952 1.984 1.952.642 0 1.231-.304 1.6-.832.757.57 1.807.63 2.368.64.086.002.198 0 .256 0 .561-.01 1.61-.07 2.368-.64.369.528.958.832 1.6.832 1.085 0 1.984-.865 1.984-1.952 0-.951-.665-1.781-1.6-1.952.525.185.864.693.864 1.248a1.31 1.31 0 0 1-1.312 1.312 1.323 1.323 0 0 1-1.312-1.248c-.214.426-1.059 1.695-2.72 1.76-1.661-.065-2.506-1.333-2.72-1.76a1.323 1.323 0 0 1-1.312 1.248 1.31 1.31 0 0 1-1.312-1.312c0-.555.339-1.063.864-1.248zM253.788 265.759c-2.19 0-3.054 1.983-5.024 3.296 1.095-.437 1.956-1.3 3.488-2.176 1.532-.875 2.838.192 3.712.192h.032c.874 0 2.18-1.067 3.712-.192 1.533.876 2.426 1.74 3.52 2.176-1.97-1.313-2.867-3.296-5.056-3.296-.437 0-1.302.236-2.176.672h-.032c-.874-.437-1.739-.672-2.176-.672z" fill="#85340a"/>
<path d="M253.05 268.35c-.863.038-2.006.211-3.647.703 3.94-.874 4.809.448 6.56.448h.032c1.75 0 2.62-1.323 6.56-.448-4.377-1.312-5.248-.448-6.56-.448h-.032c-.82 0-1.472-.32-2.912-.256z" fill="#85340a"/>
<path d="M249.6 269.025c-.254.003-.531.005-.832.032 4.596.438 2.387 3.072 7.2 3.072H256c4.813 0 2.636-2.634 7.232-3.072-4.814-.437-3.292 2.4-7.232 2.4h-.032c-3.694 0-2.556-2.48-6.368-2.432zM259.942 276.132a3.94 3.94 0 0 0-3.938-3.939 3.94 3.94 0 0 0-3.939 3.939 4.05 4.05 0 0 1 3.939-3.112 4.047 4.047 0 0 1 3.938 3.112z" fill="#85340a"/>
<path id="e" d="M238.316 249.876c5.032-4.375 11.376-5.032 14.878-1.75.857 1.148 1.406 2.376 1.632 3.656.44 2.492-.338 5.183-2.29 7.942.22 0 .658.218.877.437 1.737-3.322 2.352-6.734 1.782-9.98a14.147 14.147 0 0 0-.686-2.493c-4.814-3.938-11.377-4.376-16.19 2.189z" fill="#85340a"/>
<path id="d" d="M246.19 248.566c2.843 0 3.5.657 4.814 1.75 1.314 1.095 1.97.875 2.188 1.095.217.22 0 .874-.437.655-.437-.22-1.314-.655-2.625-1.75-1.314-1.095-2.625-1.094-3.939-1.094-3.938 0-6.126 3.282-6.563 3.063-.437-.22 2.188-3.72 6.563-3.72z" fill="#85340a"/>
<use height="100%" width="100%" xlink:href="#h" transform="translate(-19.641)"/>
<circle id="f" cy="252.058" cx="246.313" r="1.969" fill="#85340a"/>
<path id="g" d="M240.937 253.379c3.72 2.845 7.44 2.626 9.627 1.312 2.188-1.312 2.188-1.75 1.751-1.75-.436 0-.873.438-2.624 1.312-1.752.877-4.376.877-8.752-.874z" fill="#85340a"/>
</svg>
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-at">
<g fill-rule="evenodd">
<path fill="#fff" d="M512 512H0V0h512z"/>
<path fill="#df0000" d="M512 512H0V341.33h512zm0-341.2H0V.13h512z"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-au">
<g stroke-width="1pt">
<path fill="#006" d="M0 0h512v512H0z"/>
<path fill="#fff" d="M0 0v27.95L307.037 250h38.647v-27.95L38.647 0H0zm345.684 0v27.95L38.647 250H0v-27.95L307.037 0h38.647z"/>
<path fill="#fff" d="M144.035 0v250h57.614V0h-57.615zM0 83.333v83.333h345.684V83.333H0z"/>
<path fill="#c00" d="M0 100v50h345.684v-50H0zM155.558 0v250h34.568V0h-34.568zM0 250l115.228-83.334h25.765L25.765 250H0zM0 0l115.228 83.333H89.463L0 18.633V0zm204.69 83.333L319.92 0h25.764L230.456 83.333H204.69zM345.685 250l-115.228-83.334h25.765l89.464 64.7V250z"/>
<path fill-rule="evenodd" fill="#fff" d="M54.886 368.64l40.665 15.4 13.32-41.403 13.32 41.402 40.666-15.4-24.06 36.223 37.395 22.197-43.326 3.767 5.97 43.082-29.963-31.528-29.96 31.527 5.968-43.083-43.327-3.767 37.397-22.197M403.807 476.413l-18.823 1.638 2.597 18.712-13.02-13.692-13.02 13.692 2.598-18.71-18.823-1.64 16.247-9.645-10.458-15.736 17.675 6.693 5.78-17.99 5.783 17.99 17.675-6.692-10.458 15.737m16.247-270.353l-18.823 1.638 2.597 18.71-13.02-13.69-13.02 13.69 2.598-18.71-18.823-1.638 16.247-9.645-10.458-15.737 17.675 6.69 5.78-17.985 5.783 17.986 17.675-6.69-10.458 15.736m-88.752 123.393l-18.823 1.638 2.597 18.71-13.02-13.69-13.02 13.69 2.598-18.71-18.823-1.638 16.247-9.646-10.458-15.736 17.675 6.692 5.783-17.99 5.78 17.99 17.676-6.692-10.46 15.735m214.57-18.352l-18.83 1.638 2.59 18.71-13.02-13.69-13.02 13.69 2.59-18.71-18.795-1.638 16.275-9.646-10.48-15.736 17.69 6.692 5.74-17.99 5.81 17.99 17.64-6.692-10.43 15.736m-64.33 82.494l-10.29 6.377 2.892-11.752-9.247-7.805 12.074-.89 4.57-11.206 4.57 11.207 12.076.89-9.247 7.804 2.89 11.753"/>
</g>
</svg>
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-ax">
<defs>
<clipPath id="a">
<path fill-opacity=".67" d="M166.02 0h850v850h-850z"/>
</clipPath>
</defs>
<g clip-path="url(#a)" transform="translate(-100) scale(.6024)">
<path fill="#0053a5" d="M0 0h1300v850H0z"/>
<g fill="#ffce00">
<path d="M400 0h250v850H400z"/>
<path d="M0 300h1300v250H0z"/>
</g>
<g fill="#d21034">
<path d="M475 0h100v850H475z"/>
<path d="M0 375h1300v100H0z"/>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-az">
<path fill="#3f9c35" d="M0 0h512v512H0z"/>
<path fill="#ed2939" d="M0 0h512v341.333H0z"/>
<path fill="#00b9e4" d="M0 0h512v170.667H0z"/>
<circle cx="238.827" cy="256" r="76.8" fill="#fff"/>
<circle cx="255.893" cy="256" r="64" fill="#ed2939"/>
<path d="M324.16 213.333l8.164 22.958 22.006-10.46-10.46 22.006L366.826 256l-22.958 8.164 10.46 22.006-22.006-10.46-8.164 22.957-8.164-22.958-22.006 10.46 10.46-22.006L281.494 256l22.958-8.164-10.46-22.006 22.006 10.46 8.164-22.957z" fill="#fff"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-ba">
<defs>
<clipPath id="a">
<path fill-opacity=".67" d="M0 0h512v512H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#a)">
<path fill="#009" d="M0 0h512v512H0z"/>
<path d="M77 .006l436.91 436.91V.006H77z" fill="#fc0"/>
<path fill="#FFF" d="M461.41 470.395l-26.123-19.086-26.849 18.994 10.151-31.164-26.419-19.246 32.731.066 10.177-31.117 10.055 31.156 32.74.094-26.195 19.365 9.732 30.938zm76.714 10.447l-32.74-.094-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.246-10.151 31.164 26.849-18.994 26.123 19.086-9.731-30.938 26.194-19.365zm-146.32-101.26l26.195-19.365-32.74-.094-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.246-10.151 31.164 26.849-18.994 26.123 19.086-9.732-30.938zm-60.333-60.416l26.195-19.367-32.74-.092-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.244-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zM271.804 259.5l26.195-19.368-32.74-.093-10.055-31.156L245.029 240l-32.732-.066 26.418 19.246-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zm-60.417-60.251l26.195-19.367-32.74-.093-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.245-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zm-59.667-59.917l26.195-19.367-32.74-.093-10.055-31.156-10.177 31.117-32.731-.066 26.419 19.245-10.151 31.166 26.849-18.996 26.123 19.088-9.732-30.938zm-60-60l26.195-19.367-32.74-.093-10.054-31.156-10.177 31.117-32.731-.066 26.419 19.245-10.152 31.165 26.849-18.996 26.123 19.088-9.732-30.937zm-60-60L57.915-.035l-32.74-.093-10.054-31.156L4.944-.167l-32.731-.066 26.419 19.245-10.152 31.165 26.849-18.996 26.123 19.088-9.732-30.937z"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bb">
<path fill="#00267f" d="M0-.2h512V512H0z"/>
<path fill="#ffc726" d="M170.667-.2h170.667V512H170.667z"/>
<path id="a" d="M256 173.312c-5.547 15.125-11.2 30.87-23.296 42.923 3.755-1.238 10.325-2.347 14.55-2.24v63.616l-17.963 2.667c-.64-.064-.853-1.066-.853-2.432-1.728-19.754-6.4-36.352-11.776-53.525-.383-2.347-7.188-11.307-1.94-9.728.64.085 7.66 2.944 6.55 1.58-9.558-9.9-23.53-17.025-37.1-19.137-1.194-.3-1.898.298-.83 1.685 18.004 27.712 33.065 60.416 32.937 99.22 6.998 0 23.958-4.137 30.976-4.137v44.885h8.854l2.026-125.355z"/>
<use height="100%" width="100%" xlink:href="#a" transform="matrix(-1 0 0 1 512 0)"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bd">
<path fill="#006a4e" d="M0 0h512v512H0z"/>
<circle cx="230" cy="256" r="170.667" fill="#f42a41"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-be">
<g fill-rule="evenodd" stroke-width="1pt">
<path d="M0 0h170.664v512.01H0z"/>
<path fill="#ffd90c" d="M170.664 0h170.664v512.01H170.664z"/>
<path fill="#f31830" d="M341.328 0h170.665v512.01H341.328z"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bf">
<g fill-rule="evenodd">
<path fill="#de0000" d="M512.063 511.55H.356V.003h511.707z"/>
<path fill="#35a100" d="M511.774 511.997H.068V256.224h511.706z"/>
</g>
<path fill-rule="evenodd" fill="#fff300" d="M389 223.773l-82.867 56.55 31.708 91.595-82.766-56.685-82.766 56.67 31.722-91.58-82.853-56.577 102.363.095 31.55-91.636 31.548 91.637"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bg">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#d62612" d="M0 341.332h512v170.666H0z"/>
<path fill="#fff" d="M0 0h512v170.666H0z"/>
<path fill="#00966e" d="M0 170.666h512v170.666H0z"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bh">
<defs>
<clipPath id="a">
<path fill="gray" d="M119.03-196.66h708.66V512H119.03z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-86 142.09) scale(.7225)" stroke-width="1pt">
<path fill="#e10011" d="M0-196.66h1063V512H0z"/>
<path d="M216.66 511.66L0 512v-708.66l215.64.113 139.14 44.743-138.12 43.614 138.12 44.968-138.12 43.615L354.78 25.36 216.66 68.976l138.12 44.968-138.12 43.615 138.12 44.97-138.12 43.613 138.12 44.97-138.12 43.614 138.12 44.968-138.12 43.615 138.12 44.968-138.12 43.615" fill="#fff"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bi">
<defs>
<clipPath id="a">
<path fill="gray" d="M60.84 337h175v175h-175z"/>
</clipPath>
</defs>
<g clip-path="url(#a)" fill-rule="evenodd" transform="translate(-178 -985.97) scale(2.9257)">
<path d="M0 337l146.56 87.5L0 512zm293.12 0l-146.56 87.5L293.12 512z" fill="#00cf00"/>
<path d="M0 337l146.56 87.5L293.12 337zm0 175l146.56-87.5L293.12 512z" fill="red"/>
<path d="M293.12 337h-27.31L0 495.7v16.305h27.31l265.81-158.7z" fill="#fff"/>
<path d="M197.168 424.496c0 27.948-22.656 50.604-50.604 50.604S95.96 452.444 95.96 424.496s22.656-50.604 50.604-50.604 50.604 22.656 50.604 50.604z" fill="#fff"/>
<path d="M0 337v16.305l265.81 158.7h27.31V495.7L27.31 337z" fill="#fff"/>
<path stroke="#00de00" stroke-width="1pt" fill="red" d="M156.523 405.41l-6.58.11-3.4 5.62-3.39-5.63-6.57-.14 3.18-5.75-3.16-5.768 6.57-.113 3.41-5.626 3.39 5.638 6.57.14-3.19 5.748zm-22.043 38.16l-6.58.11-3.4 5.62-3.39-5.63-6.57-.14 3.18-5.75-3.16-5.768 6.57-.113 3.41-5.626 3.39 5.638 6.57.14-3.19 5.748zm44.627 0l-6.58.11-3.4 5.62-3.39-5.63-6.57-.14 3.18-5.75-3.16-5.768 6.57-.113 3.41-5.626 3.39 5.638 6.57.14-3.19 5.748z"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bj">
<defs>
<clipPath id="a">
<path fill="gray" d="M67.64-154h666v666h-666z"/>
</clipPath>
</defs>
<g clip-path="url(#a)" transform="translate(-52 118.39) scale(.7688)">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#319400" d="M0-154h333v666H0z"/>
<path fill="#ffd600" d="M333-154h666v333H333z"/>
<path fill="#de2110" d="M333 179h666v333H333z"/>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bl">
<g fill-rule="evenodd" stroke-width="1pt">
<path fill="#fff" d="M0 0h512.005v512H0z"/>
<path fill="#00267f" d="M0 0h170.667v512H0z"/>
<path fill="#f31830" d="M341.333 0H512v512H341.333z"/>
</g>
</svg>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bq">
<path d="M0 0h512v512H0z" fill="#21468b"/>
<path d="M0 0h512v341.3H0z" fill="#fff"/>
<path d="M0 0h512v170.7H0z" fill="#ae1c28"/>
</svg>
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bs">
<defs>
<clipPath id="a">
<path fill-opacity=".67" d="M56.618 26.364h480.31v480.31H56.618z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" clip-path="url(#a)" transform="matrix(1.066 0 0 1.067 -60.354 -28.133)">
<path fill="#fff" d="M990.01 506.18H9.39V27.64h980.62z"/>
<path fill="#ffe900" d="M990.01 370.57H9.39V169.25h980.62z"/>
<path fill="#08ced6" d="M990.01 506.18H9.39V346.67h980.62zm0-318.89H9.39V27.78h980.62z"/>
<path d="M8.925 25.872c2.177 0 392.37 236.97 392.37 236.97L7.835 505.382 8.92 25.872z"/>
</g>
</svg>
This diff is collapsed.
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bv">
<defs>
<clipPath id="a">
<path fill-opacity=".67" d="M0 0h512v512H0z"/>
</clipPath>
</defs>
<g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)">
<path fill="#fff" d="M-68 0h699.74v512H-68z"/>
<path fill="#d72828" d="M-92.992-77.837h218.72v276.26h-218.72zM249.42-.572h380.91v199H249.42zM-67.545 320.01h190.33v190.33h-190.33zM252 322.12h378.34v188.21H252z"/>
<path fill="#003897" d="M156.65-25.447h64.425v535.78H156.65z"/>
<path fill="#003897" d="M-67.545 224.84h697.88v63.444h-697.88z"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="512" width="512" viewBox="0 0 512 512" id="flag-icon-css-bw">
<g fill-rule="evenodd">
<path fill="#00cbff" d="M0 0h511.993v511.984H0z"/>
<path fill="#fff" d="M0 191.99h511.993v128.002H0z"/>
<path d="M0 212.675h511.993v86.438H0z"/>
</g>
</svg>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment