mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-05-06 05:27:55 +00:00
feat(web): authenticated home redesign + Telegram OAuth + SMTP
- AppLayout: logged-in desktop home redesigned — score cards, 4 section cards (Finance/Governance/Social/Education), governance extras, fixed bottom tab bar (Home/Citizen/Referral) matching mobile layout - AppLayout: Trading dropdown in header (Presale/Staking/MultiSig), Logout button; removed 8-button grid - Removed PalletsGrid and TokenomicsSection components - Login: Telegram OAuth via oauth.telegram.org popup + postMessage + custom Edge Function (hash verification, find-or-create user, magic link token exchange) - Login: X (Twitter) OAuth 2.0 wired to Supabase - supabase/functions/telegram-auth: new Edge Function — verifies Telegram Login Widget hash, issues Supabase magic link token - vite.config.ts: process-shim alias to fix TDZ with node polyfills - i18n: updated locales (en/tr/kmr) for new UI sections - SDK docs search index regenerated
This commit is contained in:
+1
-1
@@ -42,7 +42,7 @@ VITE_ENABLE_DEMO_MODE=true
|
||||
# 1. Project URL: Copy from "Project URL" section
|
||||
# 2. Anon key: Copy from "Project API keys" → "anon" → "public"
|
||||
|
||||
VITE_SUPABASE_URL=https://vbhftvdayqfmcgmzdxfv.supabase.co
|
||||
VITE_SUPABASE_URL=https://supabase.pezkuwichain.io
|
||||
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key_here
|
||||
|
||||
# ========================================
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
"General Docs": {
|
||||
"AUDIT": "AUDIT.md",
|
||||
"BACKPORT": "BACKPORT.md",
|
||||
"RELEASE": "RELEASE.md",
|
||||
"Workflow Rebranding": "workflow_rebranding.md"
|
||||
"RELEASE": "RELEASE.md"
|
||||
},
|
||||
"Contributor": {
|
||||
"CODE OF CONDUCT": "contributor/CODE_OF_CONDUCT.md",
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Slow Crate Publisher - 6 dakikada bir 1 crate publish eder
|
||||
Rate limit'e takilmamak icin yavas yavas publish yapar.
|
||||
|
||||
Kullanim:
|
||||
nohup python3 publish_crates_slow.py > publish_log.txt 2>&1 &
|
||||
"""
|
||||
|
||||
import subprocess
|
||||
import os
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
PLACEHOLDER_DIR = '/home/mamostehp/kurdistan-sdk/crate_placeholders'
|
||||
LOG_FILE = '/home/mamostehp/kurdistan-sdk/publish_log.txt'
|
||||
INTERVAL_SECONDS = 360 # 6 dakika
|
||||
|
||||
def log(msg):
|
||||
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
line = f"[{timestamp}] {msg}"
|
||||
print(line, flush=True)
|
||||
with open(LOG_FILE, 'a') as f:
|
||||
f.write(line + '\n')
|
||||
|
||||
def is_published(name):
|
||||
"""crates.io'da mevcut mu kontrol et"""
|
||||
result = subprocess.run(
|
||||
['cargo', 'search', name, '--limit', '1'],
|
||||
capture_output=True, text=True, timeout=30
|
||||
)
|
||||
return f'{name} = ' in result.stdout
|
||||
|
||||
def publish_crate(name):
|
||||
"""Tek bir crate publish et"""
|
||||
crate_dir = os.path.join(PLACEHOLDER_DIR, name)
|
||||
manifest = os.path.join(crate_dir, 'Cargo.toml')
|
||||
|
||||
if not os.path.exists(manifest):
|
||||
return False, "Cargo.toml not found"
|
||||
|
||||
result = subprocess.run(
|
||||
['cargo', 'publish', '--manifest-path', manifest],
|
||||
capture_output=True, text=True, cwd=crate_dir, timeout=180
|
||||
)
|
||||
|
||||
if result.returncode == 0:
|
||||
return True, "Success"
|
||||
elif 'already uploaded' in result.stderr or 'already exists' in result.stderr:
|
||||
return True, "Already exists"
|
||||
elif '429' in result.stderr or 'Too Many Requests' in result.stderr:
|
||||
return False, "Rate limited"
|
||||
else:
|
||||
return False, result.stderr[:200]
|
||||
|
||||
def get_unpublished_crates():
|
||||
"""Henuz publish edilmemis crate'leri bul"""
|
||||
crates = sorted([d for d in os.listdir(PLACEHOLDER_DIR)
|
||||
if os.path.isdir(os.path.join(PLACEHOLDER_DIR, d))])
|
||||
|
||||
unpublished = []
|
||||
for crate in crates:
|
||||
if not is_published(crate):
|
||||
unpublished.append(crate)
|
||||
return unpublished
|
||||
|
||||
def main():
|
||||
log("=" * 60)
|
||||
log("Slow Crate Publisher baslatildi")
|
||||
log(f"Interval: {INTERVAL_SECONDS} saniye (6 dakika)")
|
||||
log("=" * 60)
|
||||
|
||||
unpublished = get_unpublished_crates()
|
||||
total = len(unpublished)
|
||||
log(f"Toplam {total} crate publish edilecek")
|
||||
|
||||
success_count = 0
|
||||
fail_count = 0
|
||||
|
||||
for i, crate in enumerate(unpublished, 1):
|
||||
log(f"[{i}/{total}] Publishing: {crate}")
|
||||
|
||||
success, msg = publish_crate(crate)
|
||||
|
||||
if success:
|
||||
log(f" ✓ {msg}")
|
||||
success_count += 1
|
||||
else:
|
||||
log(f" ✗ {msg}")
|
||||
fail_count += 1
|
||||
|
||||
# Rate limit durumunda ekstra bekle
|
||||
if "Rate limited" in msg:
|
||||
log(" Rate limited! 10 dakika bekleniyor...")
|
||||
time.sleep(600)
|
||||
|
||||
# Sonraki crate icin bekle
|
||||
if i < total:
|
||||
log(f" Sonraki crate icin {INTERVAL_SECONDS}s bekleniyor...")
|
||||
time.sleep(INTERVAL_SECONDS)
|
||||
|
||||
log("=" * 60)
|
||||
log(f"Tamamlandi! Basarili: {success_count}, Basarisiz: {fail_count}")
|
||||
log("=" * 60)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,214 +0,0 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Rebranding haritası
|
||||
REBRAND_MAP = [
|
||||
("asset-test-utils", "asset-test-pezutils"),
|
||||
("chain-spec-guide-runtime", "pez-chain-spec-guide-runtime"),
|
||||
("equivocation-detector", "pez-equivocation-detector"),
|
||||
("erasure-coding-fuzzer", "pez-erasure-coding-fuzzer"),
|
||||
("ethereum-standards", "pez-ethereum-standards"),
|
||||
("finality-relay", "pez-finality-relay"),
|
||||
("fork-tree", "pez-fork-tree"),
|
||||
("generate-bags", "pez-generate-bags"),
|
||||
("kitchensink-runtime", "pez-kitchensink-runtime"),
|
||||
("messages-relay", "pez-messages-relay"),
|
||||
("minimal-template-node", "pez-minimal-template-node"),
|
||||
("minimal-template-runtime", "pez-minimal-template-runtime"),
|
||||
("node-bench", "pez-node-bench"),
|
||||
("node-primitives", "pez-node-primitives"),
|
||||
("node-rpc", "pez-node-rpc"),
|
||||
("node-runtime-generate-bags", "pez-node-runtime-generate-bags"),
|
||||
("node-template-release", "pez-node-template-release"),
|
||||
("node-testing", "pez-node-testing"),
|
||||
("penpal-emulated-chain", "pez-penpal-emulated-chain"),
|
||||
("penpal-runtime", "pez-penpal-runtime"),
|
||||
("remote-ext-tests-bags-list", "pez-remote-ext-tests-bags-list"),
|
||||
("revive-dev-node", "pez-revive-dev-node"),
|
||||
("revive-dev-runtime", "pez-revive-dev-runtime"),
|
||||
("slot-range-helper", "pez-slot-range-helper"),
|
||||
("solochain-template-node", "pez-solochain-template-node"),
|
||||
("solochain-template-runtime", "pez-solochain-template-runtime"),
|
||||
("subkey", "pez-subkey"),
|
||||
("template-zombienet-tests", "pez-template-zombienet-tests"),
|
||||
("test-runtime-constants", "peztest-runtime-constants"),
|
||||
("tracing-gum", "pez-tracing-gum"),
|
||||
("tracing-gum-proc-macro", "pez-tracing-gum-proc-macro"),
|
||||
("bp-header-chain", "bp-header-pez-chain"),
|
||||
("bp-runtime", "pezbp-runtime"),
|
||||
("bridge-hub-pezkuwichain-emulated-chain", "pezbridge-hub-pezkuwichain-emulated-chain"),
|
||||
("bridge-hub-pezkuwichain-integration-tests", "pezbridge-hub-pezkuwichain-integration-tests"),
|
||||
("bridge-hub-pezkuwichain-runtime", "pezbridge-hub-pezkuwichain-runtime"),
|
||||
("bridge-hub-test-utils", "pezbridge-hub-test-utils"),
|
||||
("bridge-hub-zagros-emulated-chain", "pezbridge-hub-zagros-emulated-chain"),
|
||||
("bridge-hub-zagros-integration-tests", "pezbridge-hub-zagros-integration-tests"),
|
||||
("bridge-hub-zagros-runtime", "pezbridge-hub-zagros-runtime"),
|
||||
("bridge-runtime-common", "pezbridge-runtime-common"),
|
||||
("mmr-gadget", "pezmmr-gadget"),
|
||||
("mmr-rpc", "pezmmr-rpc"),
|
||||
("snowbridge-beacon-primitives", "pezsnowbridge-beacon-primitives"),
|
||||
("snowbridge-core", "pezsnowbridge-core"),
|
||||
("snowbridge-ethereum", "pezsnowbridge-ethereum"),
|
||||
("snowbridge-inbound-queue-primitives", "pezsnowbridge-inbound-queue-primitives"),
|
||||
("snowbridge-merkle-tree", "pezsnowbridge-merkle-tree"),
|
||||
("snowbridge-outbound-queue-primitives", "pezsnowbridge-outbound-queue-primitives"),
|
||||
("snowbridge-outbound-queue-runtime-api", "pezsnowbridge-outbound-queue-runtime-api"),
|
||||
("snowbridge-outbound-queue-v2-runtime-api", "pezsnowbridge-outbound-queue-v2-runtime-api"),
|
||||
("snowbridge-pezpallet-ethereum-client", "snowbridge-pezpallet-ethereum-client"),
|
||||
("snowbridge-pezpallet-ethereum-client-fixtures", "snowbridge-pezpallet-ethereum-client-fixtures"),
|
||||
("snowbridge-pezpallet-inbound-queue", "snowbridge-pezpallet-inbound-queue"),
|
||||
("snowbridge-pezpallet-inbound-queue-fixtures", "snowbridge-pezpallet-inbound-queue-fixtures"),
|
||||
("snowbridge-pezpallet-inbound-queue-v2", "snowbridge-pezpallet-inbound-queue-v2"),
|
||||
("snowbridge-pezpallet-inbound-queue-v2-fixtures", "snowbridge-pezpallet-inbound-queue-v2-fixtures"),
|
||||
("snowbridge-pezpallet-outbound-queue", "snowbridge-pezpallet-outbound-queue"),
|
||||
("snowbridge-pezpallet-outbound-queue-v2", "snowbridge-pezpallet-outbound-queue-v2"),
|
||||
("snowbridge-pezpallet-system", "snowbridge-pezpallet-system"),
|
||||
("snowbridge-pezpallet-system-frontend", "snowbridge-pezpallet-system-frontend"),
|
||||
("snowbridge-pezpallet-system-v2", "snowbridge-pezpallet-system-v2"),
|
||||
("snowbridge-runtime-common", "pezsnowbridge-runtime-common"),
|
||||
("snowbridge-runtime-test-common", "pezsnowbridge-runtime-test-common"),
|
||||
("snowbridge-system-runtime-api", "pezsnowbridge-system-runtime-api"),
|
||||
("snowbridge-system-v2-runtime-api", "pezsnowbridge-system-v2-runtime-api"),
|
||||
("snowbridge-test-utils", "pezsnowbridge-test-utils"),
|
||||
("snowbridge-verification-primitives", "pezsnowbridge-verification-primitives"),
|
||||
("xcm-docs", "xcm-pez-docs"),
|
||||
("xcm-emulator", "xcm-pez-emulator"),
|
||||
("xcm-executor-integration-tests", "xcm-pez-executor-integration-tests"),
|
||||
("xcm-procedural", "xcm-pez-procedural"),
|
||||
("xcm-runtime-apis", "xcm-runtime-pezapis"),
|
||||
("xcm-simulator", "xcm-pez-simulator"),
|
||||
("xcm-simulator-example", "xcm-pez-simulator-example"),
|
||||
("xcm-simulator-fuzzer", "xcm-pez-simulator-fuzzer"),
|
||||
]
|
||||
|
||||
# Hedef dosya uzantıları
|
||||
TARGET_EXTENSIONS = ('.rs', '.toml', '.md', '.txt', '.yml', '.yaml', '.json', '.py')
|
||||
|
||||
# HARİÇ TUTULACAK KLASÖRLER (KESİN LİSTE)
|
||||
EXCLUDE_DIRS = {'crate_placeholders', '.git', 'target', 'node_modules', '__pycache__'}
|
||||
|
||||
def is_path_excluded(path):
|
||||
"""Verilen yolun yasaklı bir klasörün içinde olup olmadığını kontrol eder."""
|
||||
parts = path.split(os.sep)
|
||||
# Eğer path'in herhangi bir parçası EXCLUDE_DIRS içindeyse True döner
|
||||
return any(excluded in parts for excluded in EXCLUDE_DIRS)
|
||||
|
||||
def replace_in_file(filepath):
|
||||
# Kendi kendimizi değiştirmeyelim
|
||||
if os.path.basename(filepath) == os.path.basename(__file__):
|
||||
return
|
||||
|
||||
try:
|
||||
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
||||
content = f.read()
|
||||
|
||||
original_content = content
|
||||
|
||||
for old_name, new_name in REBRAND_MAP:
|
||||
# 1. Normal (tireli)
|
||||
content = content.replace(old_name, new_name)
|
||||
# 2. Snake case (alt çizgili)
|
||||
old_snake = old_name.replace('-', '_')
|
||||
new_snake = new_name.replace('-', '_')
|
||||
content = content.replace(old_snake, new_snake)
|
||||
|
||||
if content != original_content:
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
print(f" [GÜNCELLENDİ] Dosya içeriği: {filepath}")
|
||||
|
||||
except Exception as e:
|
||||
print(f" [HATA] Dosya okunamadı: {filepath} -> {e}")
|
||||
|
||||
def rename_directories_and_files(root_dir):
|
||||
# topdown=True kullanarak yukarıdan aşağıya iniyoruz, böylece dirs listesini modifiye edebiliriz
|
||||
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
|
||||
|
||||
# GÜVENLİK: Yasaklı klasörleri yerinde (in-place) listeden silerek os.walk'un oraya girmesini engelle
|
||||
# Bu en güvenli yöntemdir.
|
||||
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
|
||||
|
||||
# Eğer şu anki dizin zaten yasaklı bir yolun altındaysa (üstteki koruma kaçırdıysa) atla
|
||||
if is_path_excluded(dirpath):
|
||||
continue
|
||||
|
||||
# 1. Dosya isimlerini değiştir
|
||||
for filename in filenames:
|
||||
if filename == os.path.basename(__file__):
|
||||
continue
|
||||
|
||||
for old_name, new_name in REBRAND_MAP:
|
||||
if old_name in filename:
|
||||
old_file_path = os.path.join(dirpath, filename)
|
||||
new_filename = filename.replace(old_name, new_name)
|
||||
new_file_path = os.path.join(dirpath, new_filename)
|
||||
if os.path.exists(old_file_path):
|
||||
try:
|
||||
os.rename(old_file_path, new_file_path)
|
||||
print(f" [RENAME] Dosya: {filename} -> {new_filename}")
|
||||
except OSError as e:
|
||||
print(f" [HATA] Dosya adlandırılamadı {filename}: {e}")
|
||||
|
||||
# 2. Klasör isimlerini değiştir
|
||||
# Not: dirnames listesi üzerinde iterasyon yapıyoruz ama rename işlemi riskli olabilir
|
||||
# O yüzden sadece şu anki seviyedeki klasörleri kontrol ediyoruz
|
||||
# Ancak os.walk çalışırken klasör adı değişirse alt dizin taraması sapıtabilir.
|
||||
# Bu yüzden klasör yeniden adlandırmayı en sona, ayrı bir "bottom-up" geçişe bırakmak daha iyidir
|
||||
# ama basitlik adına burada dikkatli yapıyoruz.
|
||||
|
||||
# İkinci Geçiş: Sadece Klasör İsimleri (Bottom-Up)
|
||||
# Klasör isimlerini değiştirirken path bozulmasın diye en alttan başlıyoruz
|
||||
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=False):
|
||||
if is_path_excluded(dirpath):
|
||||
continue
|
||||
|
||||
for dirname in dirnames:
|
||||
if dirname in EXCLUDE_DIRS:
|
||||
continue
|
||||
|
||||
for old_name, new_name in REBRAND_MAP:
|
||||
if old_name == dirname:
|
||||
old_dir_path = os.path.join(dirpath, dirname)
|
||||
new_dir_path = os.path.join(dirpath, new_name)
|
||||
if os.path.exists(old_dir_path):
|
||||
try:
|
||||
os.rename(old_dir_path, new_dir_path)
|
||||
print(f" [RENAME] Klasör: {dirname} -> {new_name}")
|
||||
except OSError as e:
|
||||
print(f" [HATA] Klasör adlandırılamadı {dirname}: {e}")
|
||||
|
||||
def process_content_updates(root_dir):
|
||||
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
|
||||
# Yasaklı klasörlere girme
|
||||
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
|
||||
|
||||
if is_path_excluded(dirpath):
|
||||
continue
|
||||
|
||||
for filename in filenames:
|
||||
if filename.endswith(TARGET_EXTENSIONS) or filename == 'Cargo.lock':
|
||||
filepath = os.path.join(dirpath, filename)
|
||||
replace_in_file(filepath)
|
||||
|
||||
def main():
|
||||
root_dir = os.getcwd()
|
||||
print("==================================================")
|
||||
print(f"⚠️ DİKKAT: Çalışma dizini: {root_dir}")
|
||||
print(f"⚠️ HARİÇ TUTULANLAR: {EXCLUDE_DIRS}")
|
||||
print("==================================================")
|
||||
|
||||
# Otomatik onay veya soru
|
||||
# confirm = input("Emin misin? (evet/hayir): ")
|
||||
# if confirm.lower() != "evet": return
|
||||
print("İşlem başlatılıyor...")
|
||||
|
||||
print("\n--- Adım 1: Dosya İçeriklerinin Güncellenmesi ---")
|
||||
process_content_updates(root_dir)
|
||||
|
||||
print("\n--- Adım 2: Klasör ve Dosya İsimlerinin Değiştirilmesi ---")
|
||||
rename_directories_and_files(root_dir)
|
||||
|
||||
print("\n✅ Rebranding işlemi tamamlandı.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,320 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
crates.io İsim Rezervasyon Script'i (Gelişmiş Versiyon)
|
||||
|
||||
Özellikler:
|
||||
- Kaldığı yerden devam etme (--start-from)
|
||||
- Ayarlanabilir bekleme süresi (--interval)
|
||||
- Workspace izolasyonu (üst dizindeki Cargo.toml ile çakışmaz)
|
||||
- "Already exists" durumunu akıllıca yönetir (bekleme yapmaz)
|
||||
"""
|
||||
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import time
|
||||
from pathlib import Path
|
||||
import argparse
|
||||
|
||||
WORKSPACE_ROOT = Path(__file__).parent.resolve()
|
||||
PLACEHOLDER_DIR = WORKSPACE_ROOT / "crate_placeholders"
|
||||
|
||||
# Yeni isim listesi
|
||||
NEW_CRATE_NAMES = [
|
||||
"asset-hub-pezkuwichain-emulated-chain",
|
||||
"asset-hub-pezkuwichain-integration-tests",
|
||||
"asset-hub-pezkuwichain-runtime",
|
||||
"asset-hub-zagros-emulated-chain",
|
||||
"asset-hub-zagros-integration-tests",
|
||||
"asset-hub-zagros-runtime",
|
||||
"asset-test-pezutils",
|
||||
"pez-binary-merkle-tree",
|
||||
"pez-chain-spec-guide-runtime",
|
||||
"collectives-zagros-emulated-chain",
|
||||
"collectives-zagros-integration-tests",
|
||||
"collectives-zagros-runtime",
|
||||
"coretime-pezkuwichain-emulated-chain",
|
||||
"coretime-pezkuwichain-integration-tests",
|
||||
"coretime-pezkuwichain-runtime",
|
||||
"coretime-zagros-emulated-chain",
|
||||
"coretime-zagros-integration-tests",
|
||||
"coretime-zagros-runtime",
|
||||
"emulated-integration-tests-common",
|
||||
"pez-equivocation-detector",
|
||||
"pez-erasure-coding-fuzzer",
|
||||
"pez-ethereum-standards",
|
||||
"pez-finality-relay",
|
||||
"pez-fork-tree",
|
||||
"pezframe-election-solution-type-fuzzer",
|
||||
"pezframe-omni-bencher",
|
||||
"pezframe-remote-externalities",
|
||||
"pezframe-storage-access-test-runtime",
|
||||
"pez-generate-bags",
|
||||
"glutton-zagros-runtime",
|
||||
"governance-zagros-integration-tests",
|
||||
"pez-kitchensink-runtime",
|
||||
"pez-messages-relay",
|
||||
"pez-minimal-template-node",
|
||||
"pez-minimal-template-runtime",
|
||||
"pez-node-bench",
|
||||
"pez-node-primitives",
|
||||
"pez-node-rpc",
|
||||
"pez-node-runtime-pez-generate-bags",
|
||||
"pez-node-template-release",
|
||||
"pez-node-testing",
|
||||
"pez-penpal-emulated-chain",
|
||||
"pez-penpal-runtime",
|
||||
"people-pezkuwichain-emulated-chain",
|
||||
"people-pezkuwichain-integration-tests",
|
||||
"people-pezkuwichain-runtime",
|
||||
"people-zagros-emulated-chain",
|
||||
"people-zagros-integration-tests",
|
||||
"people-zagros-runtime",
|
||||
"pezkuwi",
|
||||
"pezkuwichain-emulated-chain",
|
||||
"pezkuwichain-runtime",
|
||||
"pezkuwichain-runtime-constants",
|
||||
"pezkuwichain-system-emulated-network",
|
||||
"pezkuwichain-teyrchain-runtime",
|
||||
"pezkuwichain-zagros-system-emulated-network",
|
||||
"relay-bizinikiwi-client",
|
||||
"relay-pezutils",
|
||||
"pez-remote-ext-tests-bags-list",
|
||||
"pez-revive-dev-node",
|
||||
"pez-revive-dev-runtime",
|
||||
"pez-slot-range-helper",
|
||||
"pez-solochain-template-node",
|
||||
"pez-solochain-template-runtime",
|
||||
"pez-pez_subkey",
|
||||
"pez-template-zombienet-tests",
|
||||
"peztest-runtime-constants",
|
||||
"test-teyrchain-adder",
|
||||
"test-teyrchain-adder-collator",
|
||||
"test-teyrchain-halt",
|
||||
"test-teyrchain-undying",
|
||||
"test-teyrchain-undying-collator",
|
||||
"testnet-teyrchains-constants",
|
||||
"teyrchain-template",
|
||||
"teyrchain-template-node",
|
||||
"teyrchain-template-runtime",
|
||||
"teyrchains-common",
|
||||
"teyrchains-relay",
|
||||
"teyrchains-runtimes-test-utils",
|
||||
"pez-tracing-gum",
|
||||
"pez-pez-tracing-gum-proc-macro",
|
||||
"yet-another-teyrchain-runtime",
|
||||
"zagros-emulated-chain",
|
||||
"zagros-runtime",
|
||||
"zagros-runtime-constants",
|
||||
"zagros-system-emulated-network",
|
||||
"pez-zombienet-backchannel",
|
||||
"pezassets-common",
|
||||
"bp-asset-hub-pezkuwichain",
|
||||
"bp-asset-hub-zagros",
|
||||
"bp-pezbeefy",
|
||||
"bp-bridge-hub-pezcumulus",
|
||||
"bp-bridge-hub-pezkuwichain",
|
||||
"bp-bridge-hub-zagros",
|
||||
"bp-header-pez-chain",
|
||||
"bp-pez-messages",
|
||||
"bp-pezkuwi-bulletin",
|
||||
"bp-pezkuwi-core",
|
||||
"bp-pezkuwichain",
|
||||
"bp-pez-relayers",
|
||||
"pezbp-runtime",
|
||||
"bp-test-pezutils",
|
||||
"bp-teyrchains",
|
||||
"bp-xcm-pezbridge-hub",
|
||||
"bp-xcm-pezbridge-hub-router",
|
||||
"bp-zagros",
|
||||
"pezbridge-hub-common",
|
||||
"pezbridge-hub-pezkuwichain-emulated-chain",
|
||||
"pezbridge-hub-pezkuwichain-integration-tests",
|
||||
"pezbridge-hub-pezkuwichain-runtime",
|
||||
"pezbridge-hub-test-utils",
|
||||
"pezbridge-hub-zagros-emulated-chain",
|
||||
"pezbridge-hub-zagros-integration-tests",
|
||||
"pezbridge-hub-zagros-runtime",
|
||||
"pezbridge-runtime-common",
|
||||
"pezmmr-gadget",
|
||||
"pezmmr-rpc",
|
||||
"pezsnowbridge-beacon-primitives",
|
||||
"pezsnowbridge-core",
|
||||
"pezsnowbridge-ethereum",
|
||||
"pezsnowbridge-inbound-queue-primitives",
|
||||
"pezsnowbridge-merkle-tree",
|
||||
"pezsnowbridge-outbound-queue-primitives",
|
||||
"pezsnowbridge-outbound-queue-runtime-api",
|
||||
"pezsnowbridge-outbound-queue-v2-runtime-api",
|
||||
"pezsnowbridge-pezpallet-ethereum-client",
|
||||
"pezsnowbridge-pezpallet-ethereum-client-fixtures",
|
||||
"pezsnowbridge-pezpallet-inbound-queue",
|
||||
"pezsnowbridge-pezpallet-inbound-queue-fixtures",
|
||||
"pezsnowbridge-pezpallet-inbound-queue-v2",
|
||||
"pezsnowbridge-pezpallet-inbound-queue-v2-fixtures",
|
||||
"pezsnowbridge-pezpallet-outbound-queue",
|
||||
"pezsnowbridge-pezpallet-outbound-queue-v2",
|
||||
"pezsnowbridge-pezpallet-system",
|
||||
"pezsnowbridge-pezpallet-system-frontend",
|
||||
"pezsnowbridge-pezpallet-system-v2",
|
||||
"pezsnowpezbridge-runtime-common",
|
||||
"pezsnowbridge-runtime-test-common",
|
||||
"pezsnowbridge-system-runtime-api",
|
||||
"pezsnowbridge-system-v2-runtime-api",
|
||||
"pezsnowbridge-test-utils",
|
||||
"pezsnowbridge-verification-primitives",
|
||||
"xcm-pez-docs",
|
||||
"xcm-pez-emulator",
|
||||
"xcm-pez-executor-integration-tests",
|
||||
"xcm-pez-procedural",
|
||||
"xcm-runtime-pezapis",
|
||||
"xcm-pez-simulator",
|
||||
"xcm-pez-simulator-example",
|
||||
"xcm-pez-simulator-fuzzer",
|
||||
]
|
||||
|
||||
def check_crate_available(name: str) -> bool:
|
||||
"""crates.io'da isim müsait mi kontrol et"""
|
||||
result = subprocess.run(
|
||||
["cargo", "search", name, "--limit", "1"],
|
||||
capture_output=True, text=True
|
||||
)
|
||||
return f'{name} = "' not in result.stdout
|
||||
|
||||
def create_placeholder(name: str) -> Path:
|
||||
"""Placeholder crate oluştur"""
|
||||
crate_dir = PLACEHOLDER_DIR / name
|
||||
crate_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# [workspace] ekleyerek parent workspace ile ilişkisini kesiyoruz
|
||||
cargo_toml = f'''[package]
|
||||
name = "{name}"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "PezkuwiChain SDK component - placeholder for name reservation"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/pezkuwichain/pezkuwi-sdk"
|
||||
homepage = "https://pezkuwichain.io"
|
||||
documentation = "https://docs.pezkuwichain.io/sdk/"
|
||||
authors = ["Kurdistan Tech Institute <info@pezkuwichain.io>"]
|
||||
keywords = ["pezkuwichain", "blockchain", "sdk"]
|
||||
categories = ["cryptography::cryptocurrencies"]
|
||||
|
||||
[workspace]
|
||||
|
||||
[dependencies]
|
||||
'''
|
||||
(crate_dir / "Cargo.toml").write_text(cargo_toml)
|
||||
|
||||
src_dir = crate_dir / "src"
|
||||
src_dir.mkdir(exist_ok=True)
|
||||
lib_rs = f'''//! {name}
|
||||
//! This crate is part of the PezkuwiChain SDK.
|
||||
//! Full implementation coming soon.
|
||||
#![doc = include_str!("../README.md")]
|
||||
'''
|
||||
(src_dir / "lib.rs").write_text(lib_rs)
|
||||
|
||||
readme = f'''# {name}
|
||||
Part of [PezkuwiChain SDK](https://github.com/pezkuwichain/pezkuwi-sdk).
|
||||
## About
|
||||
This crate is a component of the PezkuwiChain blockchain SDK.
|
||||
'''
|
||||
(crate_dir / "README.md").write_text(readme)
|
||||
return crate_dir
|
||||
|
||||
def publish_placeholder(crate_dir: Path, dry_run: bool = True):
|
||||
"""Placeholder'ı crates.io'ya publish et.
|
||||
Dönüş: (başarılı_mı, bekleme_gerekli_mi)
|
||||
"""
|
||||
args = ["cargo", "publish"]
|
||||
if dry_run:
|
||||
args.append("--dry-run")
|
||||
args.extend(["--manifest-path", str(crate_dir / "Cargo.toml")])
|
||||
|
||||
result = subprocess.run(args, capture_output=True, text=True, cwd=crate_dir)
|
||||
|
||||
if result.returncode == 0:
|
||||
return True, True # Başarılı, bekleme yap
|
||||
|
||||
# "already exists" hatasını kontrol et
|
||||
if "already exists" in result.stderr:
|
||||
return True, False # Zaten var, bekleme yapma
|
||||
|
||||
print(f"\n[HATA] {crate_dir.name} publish edilemedi:\n{result.stderr}")
|
||||
return False, False
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="crates.io isim rezervasyonu")
|
||||
parser.add_argument("--list", action="store_true", help="İsimleri listele")
|
||||
parser.add_argument("--check", action="store_true", help="crates.io'da müsaitlik kontrol et")
|
||||
parser.add_argument("--create", action="store_true", help="Placeholder crate'leri oluştur")
|
||||
parser.add_argument("--publish", action="store_true", help="crates.io'ya publish et")
|
||||
parser.add_argument("--dry-run", action="store_true", help="Publish dry-run")
|
||||
parser.add_argument("--start-from", type=str, help="İşleme bu crate isminden başla (öncekileri atlar)")
|
||||
parser.add_argument("--interval", type=int, default=360, help="Publish arası bekleme süresi (saniye). Varsayılan: 360")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.list:
|
||||
for name in sorted(NEW_CRATE_NAMES):
|
||||
print(f" {name}")
|
||||
return
|
||||
|
||||
# Create/Publish işlemleri
|
||||
if args.create or args.publish:
|
||||
# Placeholder klasörünü oluştur
|
||||
PLACEHOLDER_DIR.mkdir(exist_ok=True)
|
||||
|
||||
start_processing = False
|
||||
if not args.start_from:
|
||||
start_processing = True
|
||||
|
||||
print(f"Toplam Crate Sayısı: {len(NEW_CRATE_NAMES)}")
|
||||
print(f"Bekleme Süresi: {args.interval} saniye")
|
||||
if args.start_from:
|
||||
print(f"Başlangıç: {args.start_from} (Öncekiler atlanacak)")
|
||||
|
||||
success = 0
|
||||
failed = 0
|
||||
skipped = 0
|
||||
|
||||
for i, name in enumerate(NEW_CRATE_NAMES, 1):
|
||||
# Resume mantığı
|
||||
if not start_processing:
|
||||
if name == args.start_from:
|
||||
start_processing = True
|
||||
else:
|
||||
skipped += 1
|
||||
continue
|
||||
|
||||
print(f"[{i}/{len(NEW_CRATE_NAMES)}] {name}...", end=" ", flush=True)
|
||||
|
||||
# 1. Create
|
||||
crate_dir = create_placeholder(name)
|
||||
|
||||
# 2. Publish (Eğer istenmişse)
|
||||
if args.publish:
|
||||
success_status, needs_wait = publish_placeholder(crate_dir, args.dry_run)
|
||||
|
||||
if success_status:
|
||||
if needs_wait:
|
||||
print("✓ PUBLISHED")
|
||||
success += 1
|
||||
if not args.dry_run:
|
||||
print(f" -> Bekleniyor {args.interval}sn...")
|
||||
time.sleep(args.interval)
|
||||
else:
|
||||
print("✓ ZATEN VAR (Atlandı)")
|
||||
success += 1
|
||||
else:
|
||||
print("✗ FAILED")
|
||||
failed += 1
|
||||
else:
|
||||
print("✓ CREATED")
|
||||
|
||||
print(f"\nSonuç: {success} başarılı, {failed} başarısız, {skipped} atlandı.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,192 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Eski (rebrand edilmemiş) kelimeleri tarayan script.
|
||||
Her crate için çalıştırılır ve kalan eski kelimeleri tespit eder.
|
||||
|
||||
Kullanım:
|
||||
python3 scan_old_words.py <crate_path>
|
||||
python3 scan_old_words.py /home/mamostehp/kurdistan-sdk/bizinikiwi/primitives/core
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
# Rebrand kuralları: (eski_pattern, yeni_kelime, açıklama)
|
||||
# Sıralama önemli - daha spesifik olanlar önce
|
||||
REBRAND_RULES = [
|
||||
# Terminoloji
|
||||
(r'\bparachain\b', 'teyrchain', 'parachain → teyrchain'),
|
||||
(r'\bParachain\b', 'Teyrchain', 'Parachain → Teyrchain'),
|
||||
(r'\bPARACHAIN\b', 'TEYRCHAIN', 'PARACHAIN → TEYRCHAIN'),
|
||||
(r'\brococo\b', 'pezkuwichain', 'rococo → pezkuwichain'),
|
||||
(r'\bRococo\b', 'Pezkuwichain', 'Rococo → Pezkuwichain'),
|
||||
(r'\bROCOCO\b', 'PEZKUWICHAIN', 'ROCOCO → PEZKUWICHAIN'),
|
||||
(r'\bwestend\b', 'zagros', 'westend → zagros'),
|
||||
(r'\bWestend\b', 'Zagros', 'Westend → Zagros'),
|
||||
(r'\bWESTEND\b', 'ZAGROS', 'WESTEND → ZAGROS'),
|
||||
(r'\bkusama\b', 'zagros', 'kusama → zagros'),
|
||||
(r'\bKusama\b', 'Zagros', 'Kusama → Zagros'),
|
||||
(r'\bKUSAMA\b', 'ZAGROS', 'KUSAMA → ZAGROS'),
|
||||
|
||||
# Crate prefix'leri (Cargo.toml name ve use statement'larda)
|
||||
# Dikkat: Bunlar sadece crate isimlerinde geçerli, rastgele "sp_" değil
|
||||
(r'\bsp-core\b', 'pezsp-core', 'sp-core → pezsp-core'),
|
||||
(r'\bsp-runtime\b', 'pezsp-runtime', 'sp-runtime → pezsp-runtime'),
|
||||
(r'\bsp-io\b', 'pezsp-io', 'sp-io → pezsp-io'),
|
||||
(r'\bsp-std\b', 'pezsp-std', 'sp-std → pezsp-std'),
|
||||
(r'\bsp-api\b', 'pezsp-api', 'sp-api → pezsp-api'),
|
||||
(r'\bsc-client\b', 'pezsc-client', 'sc-client → pezsc-client'),
|
||||
(r'\bsc-service\b', 'pezsc-service', 'sc-service → pezsc-service'),
|
||||
(r'\bframe-support\b', 'pezframe-support', 'frame-support → pezframe-support'),
|
||||
(r'\bframe-system\b', 'pezframe-system', 'frame-system → pezframe-system'),
|
||||
(r'\bpallet-balances\b', 'pezpallet-balances', 'pallet-balances → pezpallet-balances'),
|
||||
(r'\bcumulus-client\b', 'pezcumulus-client', 'cumulus-client → pezcumulus-client'),
|
||||
(r'\bcumulus-primitives\b', 'pezcumulus-primitives', 'cumulus-primitives → pezcumulus-primitives'),
|
||||
|
||||
# Snowbridge (pezsnowbridge-pezpallet önce, sonra genel snowbridge)
|
||||
(r'\bsnowbridge-pezpallet-', 'pezsnowbridge-pezpallet-', 'snowbridge-pezpallet- → pezsnowbridge-pezpallet-'),
|
||||
(r'\bsnowbridge-pallet-', 'pezsnowbridge-pezpallet-', 'snowbridge-pallet- → pezsnowbridge-pezpallet-'),
|
||||
(r'\bsnowbridge-', 'pezsnowbridge-', 'snowbridge- → pezsnowbridge-'),
|
||||
(r'\bsnowbridge_pallet_', 'pezsnowbridge_pezpallet_', 'snowbridge_pallet_ → pezsnowbridge_pezpallet_'),
|
||||
(r'\bsnowbridge_pezpallet_', 'pezsnowbridge_pezpallet_', 'snowbridge_pezpallet_ → pezsnowbridge_pezpallet_'),
|
||||
|
||||
# Bridge
|
||||
(r'\bbridge-hub-rococo\b', 'pezbridge-hub-pezkuwichain', 'bridge-hub-rococo → pezbridge-hub-pezkuwichain'),
|
||||
(r'\bbridge-hub-westend\b', 'pezbridge-hub-zagros', 'bridge-hub-westend → pezbridge-hub-zagros'),
|
||||
(r'\bbridge-runtime-common\b', 'pezbridge-runtime-common', 'bridge-runtime-common → pezbridge-runtime-common'),
|
||||
|
||||
# MMR
|
||||
(r'\bmmr-gadget\b', 'pezmmr-gadget', 'mmr-gadget → pezmmr-gadget'),
|
||||
(r'\bmmr-rpc\b', 'pezmmr-rpc', 'mmr-rpc → pezmmr-rpc'),
|
||||
|
||||
# Substrate (dikkatli - sadece proje referanslarında)
|
||||
(r'\bsubstrate-wasm-builder\b', 'bizinikiwi-wasm-builder', 'substrate-wasm-builder → bizinikiwi-wasm-builder'),
|
||||
(r'\bsubstrate-build-script-utils\b', 'bizinikiwi-build-script-utils', 'substrate-build-script-utils → bizinikiwi-build-script-utils'),
|
||||
|
||||
# Polkadot referansları
|
||||
(r'\bpolkadot-sdk\b', 'pezkuwi-sdk', 'polkadot-sdk → pezkuwi-sdk'),
|
||||
(r'\bpolkadot-runtime\b', 'pezkuwichain-runtime', 'polkadot-runtime → pezkuwichain-runtime'),
|
||||
(r'\bpolkadot-primitives\b', 'pezkuwi-primitives', 'polkadot-primitives → pezkuwi-primitives'),
|
||||
|
||||
# Rust module isimleri (underscore versiyonları)
|
||||
(r'\bsp_core\b', 'pezsp_core', 'sp_core → pezsp_core'),
|
||||
(r'\bsp_runtime\b', 'pezsp_runtime', 'sp_runtime → pezsp_runtime'),
|
||||
(r'\bsp_io\b', 'pezsp_io', 'sp_io → pezsp_io'),
|
||||
(r'\bsc_client\b', 'pezsc_client', 'sc_client → pezsc_client'),
|
||||
(r'\bframe_support\b', 'pezframe_support', 'frame_support → pezframe_support'),
|
||||
(r'\bframe_system\b', 'pezframe_system', 'frame_system → pezframe_system'),
|
||||
(r'\bpallet_balances\b', 'pezpallet_balances', 'pallet_balances → pezpallet_balances'),
|
||||
(r'\bcumulus_client\b', 'pezcumulus_client', 'cumulus_client → pezcumulus_client'),
|
||||
(r'\bcumulus_primitives\b', 'pezcumulus_primitives', 'cumulus_primitives → pezcumulus_primitives'),
|
||||
]
|
||||
|
||||
# Taranacak dosya uzantıları
|
||||
SCAN_EXTENSIONS = {'.rs', '.toml', '.md', '.json', '.yaml', '.yml'}
|
||||
|
||||
# Atlanacak dizinler
|
||||
SKIP_DIRS = {'target', '.git', 'node_modules', 'crate_placeholders'}
|
||||
|
||||
|
||||
def scan_file(file_path: Path) -> list:
|
||||
"""Tek bir dosyayı tarar ve bulunan eski kelimeleri döndürür."""
|
||||
findings = []
|
||||
|
||||
try:
|
||||
content = file_path.read_text(encoding='utf-8', errors='ignore')
|
||||
except Exception as e:
|
||||
return [(str(file_path), 0, f"OKUMA HATASI: {e}", "", "")]
|
||||
|
||||
lines = content.split('\n')
|
||||
|
||||
for line_num, line in enumerate(lines, 1):
|
||||
for pattern, replacement, description in REBRAND_RULES:
|
||||
matches = re.finditer(pattern, line)
|
||||
for match in matches:
|
||||
findings.append({
|
||||
'file': str(file_path),
|
||||
'line': line_num,
|
||||
'column': match.start() + 1,
|
||||
'found': match.group(),
|
||||
'replacement': replacement,
|
||||
'description': description,
|
||||
'context': line.strip()[:100]
|
||||
})
|
||||
|
||||
return findings
|
||||
|
||||
|
||||
def scan_crate(crate_path: str) -> list:
|
||||
"""Bir crate dizinini tarar."""
|
||||
crate_dir = Path(crate_path)
|
||||
|
||||
if not crate_dir.exists():
|
||||
print(f"HATA: Dizin bulunamadı: {crate_path}")
|
||||
return []
|
||||
|
||||
all_findings = []
|
||||
|
||||
for root, dirs, files in os.walk(crate_dir):
|
||||
# Skip directories
|
||||
dirs[:] = [d for d in dirs if d not in SKIP_DIRS]
|
||||
|
||||
for file in files:
|
||||
file_path = Path(root) / file
|
||||
|
||||
if file_path.suffix not in SCAN_EXTENSIONS:
|
||||
continue
|
||||
|
||||
findings = scan_file(file_path)
|
||||
all_findings.extend(findings)
|
||||
|
||||
return all_findings
|
||||
|
||||
|
||||
def print_report(findings: list, crate_path: str):
|
||||
"""Bulunan eski kelimelerin raporunu yazdırır."""
|
||||
print(f"\n{'='*60}")
|
||||
print(f"TARAMA RAPORU: {crate_path}")
|
||||
print(f"{'='*60}\n")
|
||||
|
||||
if not findings:
|
||||
print("✅ ESKİ KELİME BULUNAMADI - Crate temiz!")
|
||||
return
|
||||
|
||||
print(f"❌ {len(findings)} adet eski kelime bulundu:\n")
|
||||
|
||||
# Dosyaya göre grupla
|
||||
by_file = {}
|
||||
for f in findings:
|
||||
if f['file'] not in by_file:
|
||||
by_file[f['file']] = []
|
||||
by_file[f['file']].append(f)
|
||||
|
||||
for file_path, file_findings in sorted(by_file.items()):
|
||||
rel_path = file_path.replace(crate_path, '.')
|
||||
print(f"\n📄 {rel_path}")
|
||||
print(f" {'-'*50}")
|
||||
|
||||
for finding in file_findings:
|
||||
print(f" Satır {finding['line']}: {finding['found']} → {finding['replacement']}")
|
||||
print(f" Bağlam: {finding['context']}")
|
||||
print()
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print("Kullanım: python3 scan_old_words.py <crate_path>")
|
||||
print("Örnek: python3 scan_old_words.py ./bizinikiwi/primitives/core")
|
||||
sys.exit(1)
|
||||
|
||||
crate_path = sys.argv[1]
|
||||
|
||||
findings = scan_crate(crate_path)
|
||||
print_report(findings, crate_path)
|
||||
|
||||
# Çıkış kodu: bulgu varsa 1, yoksa 0
|
||||
sys.exit(1 if findings else 0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<!-- Nevroz Fire Gradient - Kurdish Colors -->
|
||||
<linearGradient id="fireGradient" x1="0%" y1="100%" x2="0%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#2E7D32;stop-opacity:1" /> <!-- Green base -->
|
||||
<stop offset="25%" style="stop-color:#FF6F00;stop-opacity:1" /> <!-- Orange -->
|
||||
<stop offset="55%" style="stop-color:#FFD600;stop-opacity:1" /> <!-- Yellow/Gold -->
|
||||
<stop offset="100%" style="stop-color:#C62828;stop-opacity:1" /> <!-- Red tip -->
|
||||
</linearGradient>
|
||||
|
||||
<!-- Inner flame gradient -->
|
||||
<linearGradient id="innerFlame" x1="0%" y1="100%" x2="0%" y2="0%">
|
||||
<stop offset="0%" style="stop-color:#FFD600;stop-opacity:1" />
|
||||
<stop offset="50%" style="stop-color:#FF8F00;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#FF5722;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
|
||||
<!-- Glow filter -->
|
||||
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
|
||||
<feGaussianBlur stdDeviation="6" result="coloredBlur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="coloredBlur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Main Nevroz Fire - Outer flame -->
|
||||
<path d="M256 50
|
||||
C285 115 350 155 375 225
|
||||
C400 295 375 365 350 405
|
||||
C325 445 285 475 256 485
|
||||
C227 475 187 445 162 405
|
||||
C137 365 112 295 137 225
|
||||
C162 155 227 115 256 50Z"
|
||||
fill="url(#fireGradient)"
|
||||
filter="url(#glow)"/>
|
||||
|
||||
<!-- Inner flame (yellow/orange core) -->
|
||||
<path d="M256 130
|
||||
C275 175 320 210 335 270
|
||||
C350 330 335 380 310 415
|
||||
C285 450 270 470 256 475
|
||||
C242 470 227 450 202 415
|
||||
C177 380 162 330 177 270
|
||||
C192 210 237 175 256 130Z"
|
||||
fill="url(#innerFlame)"
|
||||
opacity="0.95"/>
|
||||
|
||||
<!-- Brightest core -->
|
||||
<ellipse cx="256" cy="340" rx="55" ry="90" fill="#FFF8E1" opacity="0.85"/>
|
||||
|
||||
<!-- Core highlight -->
|
||||
<ellipse cx="256" cy="360" rx="35" ry="60" fill="#FFFFFF" opacity="0.6"/>
|
||||
|
||||
<!-- Green sparks (Kurdistan green accent) -->
|
||||
<circle cx="195" cy="170" r="10" fill="#43A047" opacity="0.85"/>
|
||||
<circle cx="317" cy="190" r="8" fill="#43A047" opacity="0.8"/>
|
||||
<circle cx="225" cy="140" r="6" fill="#66BB6A" opacity="0.7"/>
|
||||
<circle cx="287" cy="155" r="7" fill="#4CAF50" opacity="0.75"/>
|
||||
<circle cx="170" cy="220" r="5" fill="#81C784" opacity="0.6"/>
|
||||
<circle cx="342" cy="240" r="5" fill="#81C784" opacity="0.6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.2 MiB |
@@ -1 +0,0 @@
|
||||
rn_("0UkAAD1RPlE/UUBRQVFCUUNRRFFFUUZRR1FIUUlRSlEBAgA7MAAAAQAAIQEBAChGIQHzAwFrOzAAAAEAAEMBAQA7I0MBAQMAOzAAAAEAAC0BAQANIi0BAQQAOzAAAAEAACEBAQCfSyEBAQYAOzAAAAEAAJAAAQCSUZAAAQQAOzAAAAEAACEBAQB9SiEBAQMAOzAAAAEAACEBAQAxSCEBAQUAOzAAAAEAACEBAQAbUCEB8wOFJSAEOzAAAAEAACEBAQDrICEB8wCEJAEQ8mcZAAABAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUABAPXe9t733vje+d763vve/N793v7e/94A3wUARwEABD7sZSDpBQBJAQAG5OxlKuthSQEAYuxj7GTsZexm7GfsaOyzAgSgUAAB6FdhZXN28zvmAQC1AwEA8wACaXMBa+wBALFDAQBvz3DPcc9yz3PPdM91z3bPd894z3nPes8FAcABAAtW6Ach6WVpAQQBoAAAAexPczswAAABAQAYAAIAxNsXAPHoAACxQgEAZFtlW2ZbZ1toW2lbaltrW2xbbVtuW29bvwaHoEAAAexhoKAAAejUhUQF")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQQAOzAAAAEBAJcNAgB0LcsGL8TLBgEGADswAAABAQBcBwIA5oLLBr7nkAABBAA7MAAAAQEAlw0CAKgmywZjvcsGAQMAOzABAAMAAMsGAQDLBgEABeXLBgEAw6/LBgEFADswAAABAQCXDQIAsGHLBg3fywZ3AwCGoIAAAeskJSEEOzAAAAEAAJcNAgB6GssGecTLBg==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQBHAAAGuFZl/lQrAqDAAABSxWl0AQcAOzAAAAEAAOcAAQCmTucAAQMAOzAAAAEAAOcAAQCSM+cAAQIAOzAAAAEAAOcAAQBAOucA8wCEAgEkOzAAAAEAAAMBAgDmChsAZQznAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQIAOzAAAAEBAJcNAgB0LcsGL8TLBisCsFHsaQABYXUBAQGgYAAB7DtjOzABAAIAAAAAAQALAPLiAQAB3wsA+wJlcg==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQoAOzAAAAEBABUAAQDM6RUAAQMAOzAAAAEBABcAAQCwDxcAUwCEoEAAAVw/sJHp8AABAFEBOzABAAMAAGwAAQANAAIAi1sAAOBwawADAEmBCwA66QAAzuwAAA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("YUcAAOZS51LoUulS6lLrUuxSAQMAOzAAAAEAABEAAQCUQBEA0UMAAIZAh0CIQIlAikCLQIxAjUCOQI9AkECRQJJAk0ABAgGwYFFiAAFyOzAAAAEAACsAAQCqOSsAKwKgsAAAVPhhZfsEbHJ2eg==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("YUAAAKlSqlKrUqxSrVKuUq9S8wIBczswAAABAABSAAYAckAAAINHKwAMSgAABlMGAP9VDgAUVg4A8wABafNKRwAAAQCxDQ==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUABAPXe9t733vje+d763vve/N793v7e/94A3wUARwEABD7sZSDpBQBAAQAEV+hv+ukFAEkBAAbk7GUq62FJAQBi7GPsZOxl7GbsZ+xo7FcDAsagwAAB7GCgEAAButpARgAJOzAAAAEBACYABQA75gAAGekGAPDpAQBZ6gYADusVAPMAAmlzAWvsAQA=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQLAAQCwsFqxWrJas1q0WrVatlq3WrhauVq6WrtaahnpGukb6RzpHeke6R/pDWvsMmlz5QBGAQAN7Oxz/uj/6ADpAekC6QPpBOkF6QbpB+kI6QnpCukL6QzpAQIAOzAAAAEBAFMAAQDdW1MAGwKgMAAB6SpheWFKAQDy6PPo9Oj16Pbo9+j46AEFADswAAABAQBfAAEAy6pfAAUBwAEADjPr6NLs0+zU7NXs1uzX7Njs2eza7Nvs3Ozd7N7s3+zg7GVpAQUAOzAAAAEBAFMAAQB3qlMAYUkBAE/oUOhR6FLoU+hU6FXoYUwBAOnp6unr6ezp7enu6e/pYUoBABLpE+kU6RXpFukX6RjpBQHBAQANzOwFDellb/sCb3IBAwA7MAAAAQEAawABABqCawABAwA7MAAAAQEAUwABAMaBUwD7AnJ2AQMAOzAAAAEBAGMAAwB9W18A0OwBAOrsAQABAM6gUAAB6vc3KMc191Ig5ZQq98dGPGKbU05SQzGHsv4NxF+QL15cJvDNfFtbvIJGt91DQfgHSVRGtoodB4hnFm76NoRfUIvfrYsjcdjsQLChYAAB7OpAPRYfOzABAAMAAHcAAQAYAAIAlXFTACt0IwADAHetCwCo5gsAD+kAAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQYAOzAAAAEBAL0AAgA7614AbexeAAEAADswAQABAAAXAAEAAQABABN0FwD36fjpwUUBAM66z7rQutG60rrTutS61brWute62LrZuivr+wJhZSsDoLAAAepgoEAAAen5bHJ5m4SggAAB6PugkAAB6lcBQAU=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQHAAAAhDkoPSv9UFOBB4UFlbwEAAqDAAABUNaDAAABWI3R5OzAAAAEAADkAAgAvSisAglENAAEGAqBAAABS/qFAAABWwHR18s9HAAABAAUBwAAADfxUFN5B30FmcgEDADswAAABAAArAAEAuykrAKcOAIihEAAAVqKwYEfNAAGg0AAAVDSCyAc7MAAAAQAAlwEEALoKKwBILCEBIUArANFHHQA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("hQBAAAAGuFZlqVKqUqtSrFKtUq5Sr1KwUv5U8wEBczswAAABAABSAAYAckAAAINHKwAMSgAABlMGAP9VDgAUVg4A")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQcAOzAAAAEBAHMEAQD7ynMEAQIAOzAAAAEAAHMEAQBl3nMEAQIAOzAAAAEAAHMEAQDx2XME+wMxMjYBAgGgAAAB6yhzOzAAAAEBALMAAQCY3bMAKwKgMAAA4/Bpa/sCcng=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQAAOzAAAAEBAFMAAQBgflMAsUMBAFe9WL1ZvVq9W71cvV29Xr1fvWC9Yb1ivfMBAWQBffoAAPsCY3QBAgA7MAAAAQAAywYBANHrywbzAAFtOzAAAAEAAMsGAQDdT8sGYUMBABLpE+kU6RXpFukX6Rjpe4SgMAABus0hIAI=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQYAOzAAAAEAAL0AAgAPVV4AQVZeAAUBwAAAJQ5KD0r/VFCDE4QThROGE8tTzFNhZSsDoLAAAFQ0oEAAAFPNbHJ5m4SggAAAUs+gkAAAVCsBQAU=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQMAOzAAAAEAABsAAQD+PxsAAQgAOzAAAAEAAJAAAQAPU5AA8wIBdTswAAABAABlAwMAYCohAW48IQEKRCEB+wJzdA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("MUgAAPlU+lT7VMFWAQQAOzAAAAEAACEBAQCfSyEBAQYAOzAAAAEAAJAAAQCSUZAAAQQAOzAAAAEAACEBAQB9SiEBAQMAOzAAAAEAACEBAQAxSCEBAQUAOzAAAAEAACEBAQAbUCEB8wKFJSAEOzAAAAEAACEBAQDrICEB+wJhaA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQHAAADQT0dQR1FHUkdTR1RHVUdWR1dHWEdZR1pHW0dcRwb1UmRuAQMAOzAAAAEAACEBAQCBTSEBMUIAAPlU+lT7VMFWMwEDoJAAAFIqZWlzOzAAAAEAAJEAAgAPU5AAD1YAAGuEoRAAAFY1oIAAAEoFFCEA")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("YUoAAOZS51LoUulS6lLrUuxS4VMAAKZWp1aoVqlWqlarVqxWrVauVq9WsFaxVrJWs1a0VhsCoMAAAFagYXgTgQKgUAAAUuFlbwECADswAAABAAAhAQEAfSchAQEBAaAQAABVB2U7MAAAAQAAHQABAKISHQAFAEQAABN7SnxKZO8pAQsAOzAAAAEAAJAAAQBuVZAAI4QCoKAAAFQrcHT7Am5y8UMAADQTNRM2EzcTOBM5EzoTOxM8Ez0TPhM/E0ATQRNCE0MT8wCGEVEBOzAAAAEAAJUEBABrDSEBIxdDArEeIQF1Rw0A")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQLAAAAQ+jn7OWrtUu5S71LwUvFS8lLzUg0/VjJpc+UARgAADcBWc9JS01LUUtVS1lLXUthS2VLaUttS3FLdUt5S31LgUgUBwAAA0i06LjovOjA6MToyOjM6NDo1OjY6Nzo4Ojk6OjoD/lJheWFKAADGUsdSyFLJUspSy1LMUvFFAABdR15HX0dgR2FHYkdjR2RHZUdmR2dHaEdpR2pHa0dsRwUBwAAADgdV6KZWp1aoVqlWqlarVqxWrVauVq9WsFaxVrJWs1a0VmVp0UUAAE9HUEdRR1JHU0dUR1VHVkdXR1hHWUdaR1tHXEdhSQAAI1IkUiVSJlInUihSKVJhTAAAvVO+U79TwFPBU8JTw1NhSgAA5lLnUuhS6VLqUutS7FIFAcEAAA2gVgXhUmVv+wJvcgEDADswAAABAAARAAEAlEARANFDAACGQIdAiECJQIpAi0CMQI1AjkCPQJBAkUCSQJNA+wJydgEDADswAAABAAATAAMAHToPAKRWAQC+VgEAAQDOoFAAAFTLIZyQWJmCSPTrhva0HOkXdac+G75gQGUrMQUuToKiUdUMQzkpKf/PyjGQYKWG8J3jSTB/ZuVUd2wioohTeq41TfioWGWZ7N0KoWAAAFa+QD0WHzswAAABAAAYAAUAFxMNAIcTBQDPRwEAYlEBAONSAAA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQMAOzAAAAEAAB4AAgATSB0A/lIAACFSAACkVqVWv1YhTQAAEFYRVrdWMUsAAMhUyVTKVKNW84MDY2VzAQgAOzAAAAEAAJAAAQAPU5AAFQBCAAAGD1ZjGVAaUAUBxAAAaABVAVUCVQNVBFUFVQZVZbZTt1O4U7lTulO7U7xTb3MBCQA7MAAAAQAAkAABAG5VkACVAUUAAECxUrJSs1K0UrtWQLVStlK3UrhSvFYyMw5QD1AQUBFQElATUBRQFVAWULpW+wJhdQEFADswAAABAADnAAEApk7nACMAArAwQeAAAWt1OzAAAAEAAF0AAQBdKV0A0UoAAIJRg1GEUYVRhlGHUYhRiVGKUYtRjFGNUY5Rj1HVAEMAAAMLSmRqLWstbC1tLW4tby1wLXEtci1zLXQtdS12LXctYUMAANhB2UHaQdtB3EHdQbVWtQFAAAAEDVMEDlNsdAYmByYIJgkmCiYLJgwmDSYPSBBIEUgSSBsCoGAAAFPKb3LRRAAAPEU9RT5FP0VARUFFQkVDRURFRUVGRUdFSEVJRfsCaW8xQQAAPzoOSg9K/1QBCwA7MAAAAQAAFQABAJJSFQABAAA7MAAAAQAAKwABAC9KKwDzAwFzOzAAAAEAAB0AAQDRRx0AYUcAAItSjFKNUo5Sj1KQUpFSAQMAOzAAAAEAAB0AAQBkUR0AAQEAOzAAAAEAAB0AAQARSh0A84ICZWnVAEEAANMAUAFQAlADUARQBVAGUAdQCFAJUApQC1AMUA1QZvw5/Tn+Of85ADoBOgI6AzoEOgU6BjoHOgg6CTrzgoQQMQAbAqBgAABUNGFvdQBBAAAVpE6lTmMCJgMmBCYFJvY59zkNSA5IEwACsDA6GgABYWPyFBMAAAEAIUQAAIRAhUCRUdFBAAAtOi46LzowOjE6MjozOjQ6NTo2Ojc6ODo5Ojo6YUcAAKlSqlKrUqxSrVKuUq9SYUgAAAZTB1MIUwlTClMLUwxTkwMEoDAAAFPGoHAAAFUHYWhwdjswAAABAAAYAAQA4R8PAHFAAAAKSgAAi1IGAAUBwAAAEhg6GToKqFJhb7cBAIWgcAAAUuIMgAryEhMAAAEAAQDRJ8UsFVs8dJye4DmbC2vLN33VZqXzlKD2d8fUe+vZbhfV/isxO6oEDgb7PgTQYmWWIHO+8qa4EJFq/fKaD2wCsTsgV4Y65bl7P4z1wJHwdCuOr9ilsBBFLAABJhcVFgYqUagZuL4TwG+UXzswAAABAACOAwgADiYdAOkpBQBgKiEBbjwhAbRAAQAKRCEBSkUBAMRSAAA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("IUIAADw6PTo+OhUARQAABg9WYxlQGlBBQAAAtVK2UrdSuFK8VkFAAACxUrJSs1K0UrtW8wIEMjNicjswAAABAAAZAAQA3SANAA5QCAA9VgEAulYAAAUARwAABBJWZfRSBQBJAAAGuFZl/lRhSQAANlY3VjhWOVY6VjtWPFazBQSgUAAAUithZXN2809RAAB1AgEA+wJhZg==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("IUAAAHgteS1zQAEDADswAAABAABdAAEAACpdAHFAAABPDDZWN1Y4VjlWOlY7VjxW8wADZGhyOzAAAAEAALYACQDlDgAALSYrAPApDwBKPA8ATUAdAO9HHQBSUQ8A9lIHAKBTFQAbArBgLq4AAWVp")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUEBANqC24Lcgt2C3oLfguCC4YLiguOC5ILlgvMCAWU7MAAAAQEAJAACAEzeIwDl7AAAYUcBAOno6ujr6Ozo7eju6O/oAQMAOzAAAAEBABcAAQCLuhcAowCEsJHp9wABoFAAAbrNAUAJOzAAAAEAABcAAQDZ4hcA+wJlbw==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQFMAQAA5+wA6OwyM+bsGwKg4AAB7OlpbwUBwAEADOXsAynrbnQHBoSIoCAAAenzoKAAAezhoTAAAeztsCHp9AABoJAAAezNsHHsaQABOlAG")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQAAOzAAAAEAAC8AAQAbey8A8wIBczswAQABAAALAAEAAAABAExxCwAQ6QEFADswAAABAQAXAAEAxNsXAPsCY24=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("YUcBACzrLesu6y/rMOsx6zLrAQcAOzAAAAEBABgAAgCjuhcAEekAAGFAAQBi7GPsZOxl7GbsZ+xo7PMBAWQ7MAEAAwAABwEBABUAAQDx4wcBAQDM6RUAKwKgQAAB5jlnevMAAmlwOzABAAMAAC8AAQAMAAEArGIvAAIAuoELAL3nAAAFAcEBALJeql+qYKphqmKqY6pkqmWqZqpnqmiqaaplT+hQ6FHoUuhT6FToVehlcruEoKAAAen6AAgL")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQUAOzAAAAEAACEBAQBuPCEBAQIAOzAAAAEAAEMCAQAjF0MCAQIAOzAAAAEAAEMCAQDfFEMCYUwAAP9SAFMBUwJTA1MEUwVT8wCECBADOzAAAAEAAN0CAwDGBqEBDSItAQBQDQA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("0UMAAGA8YTxiPGM8ZDxlPGY8ZzxoPGk8ajxrPGw8bTzzAgFjOzAAAAEAADEAAwB+LQ0APEUNAMxUFQDxQAAAVQxWDFcMWAxZDFoMWwxcDF0MXgxfDGAMYQxiDGMMZAxjAAOgkAAAUs1hZHQ7MAAAAQAAQwICAFsmIQExSCEB")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("YUQBACzrLesu6y/rMOsx6zLrBQHDAQBoLOst6y7rL+sw6zHrMutl4unj6eTp5enm6efp6OlvcwUBTAEAAOfsAOjsMjPm7NMAhKDgAAHs6QBBUDswAQADAAALAAEADAABAKJYCwACAPXeCwBP7AAA")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUMBAHBbcVtyW3NbdFt1W3Zbd1t4W3lbelt7W7FFAQBI1knWStZL1kzWTdZO1k/WUNZR1lLWU9bzAAFjOzABAAMAABcAAQAYAAEA9OIXAAMAmFoLAOuuCwDz6QAAKwOgQAAB6RCg0AAB7DpscnPzAAJhYzswAAABAAALAAEAiHELAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQMAOzAAAAEAAG8FAQC/vm8FAQABoDAAAek6aTswAAABAACnAAEAnkGnAAEAADswAAABAQCXDQIAqCbLBmO9ywYBAAGgMAAB6TlvAXkaAABnAwCGoAAAAbq8oBAAAek5IAgXOzABAAMAAIMAAQAZAAMA/wsLALQYRwAM4y8AAgD3rhcA9OkBAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQBCAQC2POY95j7mP+ZA5kHmQuZD5kTmReZG5kfmZf3oAQcAOzAAAAEBAFsAAQD76VsAAQkAOzAAAAEBAF4AAQA7614A84MCZG0BAQA7MAAAAQAAMwIBABH3MwLhTQEAK+ws7C3sLuwv7DDsMewy7DPsNOw17DbsN+w47DnsAQIAOzAAAAEBALsBAQDc27sBIwACoLAAAepYZWw7MAAAAQEA+wMBAI+2+wMBAAA7MAAAAQAAcwQBAJ3ycwQBDQA7MAAAAQEAXgABAG3sXgDzAQF3OzAAAAEBAHMEAQCwOXME+wJsc/MAhQkAFjswAAABAACABAIAZFkAAFBqfwT7AmVp")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQEAOzAAAAEAAHMEAQB3l3MECQEuZbA49F9uAQEBoDAAAbrLZDswAAABAQBtAAQAWg9TALAPFwBf7AAAbOwAAAEEADswAAABAQAjAAEA3GgjADsDoAAAAejUYWZnBQLAAQCwsFqxWrJas1q0WrVatlq3WrhauVq6WrtaahnpGukb6RzpHeke6R/pDWvsMmlz5QBGAQAN7Oxz/uj/6ADpAekC6QPpBOkF6QbpB+kI6QnpCukL6QzpAQIAOzAAAAEBAFMAAQDdW1MAGwKgMAAB6SpheWFKAQDy6PPo9Oj16Pbo9+j46AEFADswAAABAQBfAAEAy6pfAAUBwAEADjPr6NLs0+zU7NXs1uzX7Njs2eza7Nvs3Ozd7N7s3+zg7GVpAQUAOzAAAAEBAFMAAQB3qlMAYUkBAE/oUOhR6FLoU+hU6FXoYUwBAOnp6unr6ezp7enu6e/pYUoBABLpE+kU6RXpFukX6RjpBQHBAQANzOwFDellb/sCb3IBAwA7MAAAAQEAawABABqCawABAwA7MAAAAQEAUwABAMaBUwD7AnJ2AQMAOzAAAAEBAGMAAwB9W18A0OwBAOrsAQABAc6gUAAB6vc3KMc191Ig5ZQq98dGPGKbU05SQzGHsv4NxF+QL15cJvDNfFtbvIJGt91DQfgHSVRGtoodB4hnFm76NoRfUIvfrYsjcdjsQLChYAAB7OpAPRYfOzABAAMAAHcAAQAYAAIAlXFTACt0IwADAHetCwCo5gsAD+kAAAECADswAAABAQCzAAEAN66zAAEGADswAAABAQAXAAEAxNsXAPOBAmFpnQeHAKBwAAHrJKAgAAHpOgMVGBlFcAQ=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQHBAAAGzlI+pFalVr5Wv1ZnaQELADswAAABAAAVAAEA4lQVAAUBwwAAA8dUB0BWaXDzBQF3AQdKAAABAwGgEAAASgZvOzAAAAEAABcAAwB0QAAATlEAAJJSFQCFAEQAAAszVndMR/9SAFMBUwJTA1MEUwVTNFYBCwA7MAAAAQAAFQABAMxUFQABAAA7MAAAAQAAHQABAK9HHQDzAwFz9nVAAABEEgEAAQABAAEE9woDyKBwAABRTbCgU8QAAcBEkAo7MAAAAQAALQACAL8UHwAuRQ0A+wJhZQ==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQBFAQAH/ehlWOoFAsMBADsl6ybrJ+vt7PW+ur+6wLrBusK6w7rEusW6xrrHusi6ybo87D3szOzj7Aj86GxvchUARQEABuTsZdzoKuv7Am5y8wACZXL0JesBAAEAAQDGAQ==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AYMDoLAAAFajoNAAAFa3oSAAAFa/Y2VzNQFAAAAEDVMEDlNsdA9IEEgRSBJIE4ECoGAAAFPKb3JHAQXFoFAAAFGRsCBIDQABsBBFLAABwAgAGDswAAABAAAjAAIADiYdAOkpBQAVAEIAAAOQUWRrQGxA8wMBc/KAEwAAAQABhAKhEAAAVqKg0AAAViNic2FGAADmUudS6FLpUupS61LsUu8BhbBgOfgAATSEAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQIAOzAAAAEBAFMAAQBbq1MAYUsBADTrNes26zfrOOs56zrrAQUAOzAAAAEBAFMAAQCGglMA4wKEoHAAAexPBUABOzABAAMAAPcBAQBhAAIAOlpPAThwpwADAAx+UwDi6QYALOsGAPMAAXQ7MAAAAQEADgABAFDsDgA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQYAOzAAAAEAAB4AAwAMSgAA/1UOABRWDgABBAA7MAAAAQAAHQABABNIHQAFAEIAAOAkViVWJlYnVihWKVYqVitWLFYtVi5WL1YwVjFWMlZzKlIBAwA7MAAAAQAAHgACADs6AABMRR0A5wEAxaBgAABUNQBCAQryJRMAAKg/")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQIAOzAAAAEAAL0AAQBpGb0ABQHAAAAFxVIEtlZjZJMAhKBgAABS5KEAAABWthMBADswAAABAAB1AwQASAwFADg1TwPwPw0AlEARAA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("cUUAABpAG0AcQB1AHkAfQCBAoVYFAUwAAAC7VgC8VjIzulYTAAKg4AAAVr1pbwEjVgAABQBCAAAQF1AYUHM/VhsCoGAAAFKoYWkBAwA7MAAAAQAAIQEBAIg4IQErAqAgAABU/Wh10UUAAOI/4z/kP+U/5j/nP+g/6T/qP+s/7D/tP+4/7z8BAgA7MAAAAQAAIQEBALEeIQEBAQA7MAAAAQAAIQEBAI8dIQErAqAwAAA6HGR1AQIAOzAAAAEAAEMCAgBtHCEBKEYhAdFFAADUP9U/1j/XP9g/2T/aP9s/3D/dP94/3z/gP+E/AQEAOzAAAAEAAEMCAQCQPUMCAQIAOzAAAAEAACcCAQDiQScC8wICYXI7MAAAAQAAQwIBACkaQwL3DgCIoMAAAFa5BTQHOzAAAAEAAJIFBwBrBAAAigkhATsjQwGSM+cAgU0hATZUkABuVZAAAQEAOzAAAAEAAL0AAQBpGb0ABQLAAAAQ+jn7OWrtUu5S71LwUvFS8lLzUg0/VjJpc+UARgAADcBWc9JS01LUUtVS1lLXUthS2VLaUttS3FLdUt5S31LgUgUBwAAA0i06LjovOjA6MToyOjM6NDo1OjY6Nzo4Ojk6OjoD/lJheWFKAADGUsdSyFLJUspSy1LMUvFFAABdR15HX0dgR2FHYkdjR2RHZUdmR2dHaEdpR2pHa0dsRwUBwAAADgdV6KZWp1aoVqlWqlarVqxWrVauVq9WsFaxVrJWs1a0VmVp0UUAAE9HUEdRR1JHU0dUR1VHVkdXR1hHWUdaR1tHXEdhSQAAI1IkUiVSJlInUihSKVJhTAAAvVO+U79TwFPBU8JTw1NhSgAA5lLnUuhS6VLqUutS7FIFAcEAAA2gVgXhUmVv+wJvcgEDADswAAABAAARAAEAlEARANFDAACGQIdAiECJQIpAi0CMQI1AjkCPQJBAkUCSQJNA+wJydgEDADswAAABAAATAAMAHToPAKRWAQC+VgEAAQHOoFAAAFTLIZyQWJmCSPTrhva0HOkXdac+G75gQGUrMQUuToKiUdUMQzkpKf/PyjGQYKWG8J3jSTB/ZuVUd2wioohTeq41TfioWGWZ7N0KoWAAAFa+QD0WHzswAAABAAAYAAUAFxMNAIcTBQDPRwEAYlEBAONSAAD5AgARbXQBCAA7MAAAAQAAHwABAFtKHwAbhKDwAABWtqAAAAATgqEgAABWwUAgIQUBwQAABORSAMdTbHIFAcAAAAXFUgS2VmNktboAjAABoKAAAFa1ArAgU8gAAQSgkAAAVqEXIyWwcFY9AAEnO1EPOzAAAAEAAAQECQBIDAUATQ0dAGoPDQAAKl0AODVPA/A/DQCUQBEAjk8DAMVSAAA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQLCAAA7+VT6VPtUwVZVCEoJShBWEVagVrdWCNBSbG9yBQHAAADSYDxhPGI8YzxkPGU8ZjxnPGg8aTxqPGs8bDxtPAUPVmFoUwADoEAAAEoNY2VuOzAAAAEAAEcACgCsCg0AghMAAAAmAAB+LQ0APzoAADxFDQAOSgEAGVABAMxUFQD/VAAA")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQMAOzAAAAEBAFMAAQAAaVMA8wIBYzswAAABAQC9AAMAyA9TAAqeUwD46hUAAQAAOzAAAAEAAF8AAQBZSV8AYwADoJAAAej5YWR0OzABAAMAAMsGAQDLBgEABeXLBgEAw6/LBg==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQBHAAAEElZl9FIFAEkAAAa4VmX+VGFJAAA2VjdWOFY5VjpWO1Y8VrMCBKBQAABSK2Flc3bzT1EAAHUCAQATAAKwAFAXAAFpcwE/VgAABQHAAAALKlIH9VJlaUUARAAAACNWc45Pj0+QT5FPxVKvBIewIDoYAAGgQAAAVjWgoAAAUqiwME1/AAGFRAU=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQIAOzAAAAEBAFMAAQBbq1MAsUUAABL9E/0U/RX9Fv0X/Rj9Gf0a/Rv9HP0d/QUBwAEACFjqajTrNes26zfrOOs56zrrZXIBBAA7MAAAAQEAWwABAPvpWwDhSAEA0uzT7NTs1ezW7Nfs2OzZ7Nrs2+zc7N3s3uzf7ODsBQFGAQAD8ukHM+tocMq6AQUAOzAAAAEBAFMAAQCGglMABQHBAQAFT+wEYexjaPMAiBXJATswAQADAAD3AQEAYQACADpaTwE4cKcAAwAMflMA4ukGACzrBgA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("0UEAAE9HUEdRR1JHU0dUR1VHVkdXR1hHWUdaR1tHXEcrA6EQAABWNaCAAABKBWNpbtFEAADUP9U/1j/XP9g/2T/aP9s/3D/dP94/3z/gP+E/O4SgEAAAUuKASnsAFxQBRAI=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUUBADzmPeY+5j/mQOZB5kLmQ+ZE5kXmRuZH5gEDADswAAABAQCzAAEA2FmzAAEEADswAAABAQD7AwEAj7b7A/sCY2X7Am54EwCEoEAAAekhoNAAAew/oFAAAezOUAAUOzABAAIAAAAAAQA2ADlaCQCyiSMAa60LANToAAD96AAAV+oAAGDqAAAk6wAAOuwAAOHsAAA=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("tQBCAQADvOdkPYE+gT+BQIFBgUKBQ4FEgUWBRoFHgUiB8wIBczswAAABAAALAAEABnQLALFBAQDoFukW6hbrFuwW7RbuFu8W8BbxFvIW8xYFAcABAAQh6QXO7Gd3AQIAOzAAAAEBAFMAAQAQW1MA+wJkZwEAADswAAABAQBTAAEAd6pTAPsDZG534UABAFDsUexS7FPsVOxV7FbsV+xY7FnsWuxb7FzsXexe7AEEADswAAABAQBzBAEAHp9zBPMAAmVzOzABAAMAAMsGAQDMBgEAj6nLBgIAkqPLBlboAAABAAGgAAAB6yhzOzAAAAEBALMAAQCY3bMAsUEBAOKJ44nkieWJ5onnieiJ6YnqieuJ7IntiQEDADswAAABAQDLBgEAe8/LBjFCAQAl6ybrJ+vt7DMAA6CQAAHoVmVpczswAAABAQCRAAIAO+mQADvsAAABAgA7MAAAAQEAcwQBAGgbcwQBBQA7MAAAAQEAXgABAFjoXgDzAgFjOzAAAAEBAHMEAQD0FnME+wIxMvvFAgKIQMcEAIehEAAB7GGgMAAB57yggAABurugAAAB7D8cIQo7MAAAAQEAXwACAN1bUwA9gQsA")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("0UIAAHVHdkd3R3hHeUd6R3tHfEd9R35Hf0eAR4FHgkdhSwAACFUJVQpVC1UMVQ1VDlXRRQAApkCnQKhAqUCqQKtArECtQK5Ar0CwQLFAskCzQOMAhKBwAABWIwVAATswAAABAABvAAUAMA83ANwSGwDiPw0AtlMGAABVBgDhSwAAJFYlViZWJ1YoVilWKlYrVixWLVYuVi9WMFYxVjJWOwOggAAAUsVkbW4=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQQAOzAAAAEBAFMAAQAMflMAAQgAOzAAAAEBAJAAAQA76ZAA8wQBdTswAQADAADhAgEA6QMBAB794QIBAAAA6QMFAsABAAs65gj66RNf7GzsZGZpsUMAAGuXbJdtl26Xb5dwl3GXcpdzl3SXdZd2lwEHADswAAABAQAkAAIAsokjAOHsAADHBwCHoAAAAek5oOAAAen5EEFOOzAAAAEAALMAAQCxV7MA")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQYAOzAAAAEBAJAAAQCa65AA8wABYTswAAABAQCXDQIAdC3LBi/EywYTAQKgMAAB6Q9jdDswAAABAAAXAAEAp74XAA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("YUQAALZTt1O4U7lTulO7U7xTMVEAAKRWpVa+Vr9W+wJweWFHAAAAVQFVAlUDVQRVBVUGVUFHAAABSgJKA0oESuVSYUAAADZWN1Y4VjlWOlY7VjxW8wIBZDswAAABAABBAAIALSYrAKBTFQDzAAJpcDswAAABAAAKAAMAmhAHAIRAAQCRUQAAawOwQEdKAAFscnUBBwA7MAAAAQAAWwABAM9TWwABBAA7MAAAAQAAvQACAA9VXgBBVl4ABQHBAAABx1Rg2EHZQdpB20HcQd1BtVZmZyFMAAAQVhFWt1ZlAkAAAA3lUhP0OfU5Df9UYXB21w7YDtkO2g7bDtwO/VT7AnJ4AQkAOzAAAAEAAL0AAgAPVV4AQVZeAAUBwAAA1D1RPlE/UUBRQVFCUUNRRFFFUUZRR1FIUUlRSlE6yFTJVMpUo1Zhdf8XirBwVjMADbBQQG0AARzZEg==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQBIAADgJFYlViZWJ1YoVilWKlYrVixWLVYuVi9WMFYxVjJWcypSAQcAOzAAAAEAABcAAgBSUQ8A9lIHAPsCZXQ=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQAAOzABAAIAAAAAAQDLBq5YAQAEUssGGwKgIAAB6mBlaeUARAEADezsc/7o/+gA6QHpAukD6QTpBekG6QfpCOkJ6QrpC+kM6fsCZ2w=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUQBAGutbK1trW6tb61wrXGtcq1zrXStda12rQEDADswAAABAQBTAAEAd6pTADsDoVAAAeziY2dwBQHAAQC1b89wz3HPcs9zz3TPdc92z3fPeM95z3rPtV6eX55gnmGeYp5jnmSeZZ5mnmeeaJ5pnmFw4U8BAFDsUexS7FPsVOxV7FbsV+xY7FnsWuxb7FzsXexe7LFGAQCo5qnmquar5qzmreau5q/msOax5rLms+bzAgFyOzAAAAEBAAcBAQDQWAcB7wGFoLAAAeskEUkA")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("YUcAAABVAVUCVQNVBFUFVQZVQUcAAAFKAkoDSgRK5VJhQAAANlY3VjhWOVY6VjtWPFbzAQFkOzAAAAEAAEEAAgAtJisAoFMVACsCoEAAAFFNZ3rzAAJpcDswAAABAAAKAAMAmhAHAIRAAQCRUQAABQHBAAASSkdLR2UjUiRSJVImUidSKFIpUmVyu4SgoAAAU84ACAs=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQLAAQCzLeYu5i/mMOYx5jLmM+Y05jXmNuY35jjmBfDoBg/pbnByYUABANXo1ujX6Njo2eja6Nvo8wIBczswAAABAQAuAQYAYoEAAK+rBwHMugAAMukGACvsDgBA7A4AsUEBANqC24Lcgt2C3oLfguCC4YLiguOC5ILlgvMAA2VpdDswAAABAQAxAAQAXqoLAEzeIwAo6wAA5ewAAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQMAOzAAAAEBAKcAAQC0fqcAAQgAOzAAAAEBAJAAAQA76ZAA8wIBdTswAQADAADhAgEAgREBAB794QIDAAAA6QNUacsG3pbLBvsCc3Q=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("wUABAFe9WL1ZvVq9W71cvV29Xr1fvWC9Yb1ivbznAQEAOzAAAAEBAFMAAQB3qlMAKwOhEAAB7GGggAABurtjaW4BBAA7MAAAAQEAUwABALh9UwC7hKAQAAHpDgFEAg==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AYMDoLAAAFajoNAAAFa3oSAAAFa/Y2VzNQFAAAAEDVMEDlNsdA9IEEgRSBJIE4ECoGAAAFPKb3JHAQXFoFAAAFGRsCBIDQABsBBFLAABwAgAGDswAAABAAAjAAIADiYdAOkpBQAVAEIAAAOQUWRrQGxA8wMBc/KAEwAAAQABAAA7MAAAAQAAIQEBAB8LIQErArBQLq4AAW5wAYQCoRAAAFaioNAAAFYjYnMlAEAAAGTmUudS6FLpUupS61LsUmV4LXktc0ABAwA7MAAAAQAAXQABAAAqXQBxQAAATww2VjdWOFY5VjpWO1Y8VvMAA2RocjswAAABAAC2AAkA5Q4AAC0mKwDwKQ8ASjwPAE1AHQDvRx0AUlEPAPZSBwCgUxUA7wOGsGA5+AABNIUA")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("YUcBANXo1ujX6Njo2eja6NvoYUgBADLpM+k06TXpNuk36TjpkwIEoDAAAenyoHAAAeszYWhwdjswAQADAABfAAEACAABAEe+XwADAGGBAADKugAAt+gGAA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("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")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQEAOzAAAAEBABQAAwBP6AYA8ugGABLpBgDzAAFvOzAAAAEAAHMEAQCd8nMEAQMAOzAAAAEBAFwHAgDmgssGvueQAAENADswAAABAQBeAAEAbexeAOFQAQDS7NPs1OzV7Nbs1+zY7Nns2uzb7Nzs3eze7N/s4OzzAQJydzswAAABAQBzBAEAsDlzBJ8BhbCB6fcAAaBAAAHq9wCoAw==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQBFAAAH0VJlLFQFAsMAADv5VPpU+1TBVlUISglKEFYRVqBWt1YI0FJsb3IVAEUAAAa4VmWwUv5U+wJucvMAAmVy9PlUAAABAAEAxgE=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("YUoBABLpE+kU6RXpFukX6Rjp4VMBANLs0+zU7NXs1uzX7Njs2eza7Nvs3Ozd7N7s3+zg7BsCoMAAAezMYXgTgQKgUAAB6Q1lbwECADswAAABAADLBgEA0evLBgEBAaAQAAHrM2U7MAAAAQAAswABANxuswCxQwEAV71YvVm9Wr1bvVy9Xb1evV+9YL1hvWK98wQBZAF9+gAAAQsAOzAAAAEBAJAAAQCa65AAI4QCoKAAAepXcHT7Am5yAQMAOzAAAAEAAF8AAQA+cl8A8wCGEVEBOzABAAMAAC8bAQBTAAMA3U/LBtOJlw0nt8sGAQBbq1MA")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQFMAQAA5+wA6OwyM+bsGwKg4AAB7OlpbwUBwAEADOXsAynrbnQHBoqIoCAAAenzoKAAAezhoTAAAeztsCHp9AABoJAAAezNsHHsaQABOlAG")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQMAOzAAAAEAAOcAAQD1H+cAAQABoDAAAFMOaTswAAABAAAbAAEAAgsbAAEAADswAAABAABDAgIATjEhAX1KIQEFAEAAAAMNU297BGcDAIagAAAASgagEAAAUw0gCBc7MAAAAQAAGwAFAAkCAQAoBAsABiYHAA9IAwDIUwEA")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQAAOzAAAAEAAB0AAQBiEx0ABQHAAAASSkdLR2UjUiRSJVImUidSKFIpUmVyUwCEoCAAAA8soDAAAFMNCEkA8nsEAABnTg==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("YU4AAC1ULlQvVDBUMVQyVDNUAQcAOzAAAAEAAFsAAQDPU1sAAQkAOzAAAAEAAF4AAQAPVV4A84MCZG0BDQA7MAAAAQAAXgABAEFWXgDzAgF3OzAAAAEAAL0AAQB6NL0A8wICYXc7MAAAAQAAvQABAOARvQABAwA7MAAAAQAAIQEBAIFNIQExQgAA+VT6VPtUwVbzAgJlaTswAAABAACRAAIAD1OQAA9WAAAxTgAApFalVr5Wv1YBAgGgIAAATqNmOzAAAAEAABMAAwAdOg8ApFYBAL5WAQDXBgCHoGAAAFLOoDAAAFLPQU0IOzAAAAEAAL4AAgALAgAAakW9AA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQUBoAAAAFT8czswAAABAAAdAAEA3E8dAAUBwAAACjVW6xRWFVYWVhdWGFYZVhpWG1YcVh1WHlYfViBWIVYiVmFvKwKgkAAAUs5wdGsDoEAAAFYTZnN3")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQUAOzAAAAEBACUAAgBcfyQAzewAAAUBTAEAAOfsAOjsMjPm7BMAAqDgAAHs6WlvAU/sAQAFAEIBALD13vbe99743vne+t773vze/d7+3v/eAN9za+wbAqBgAAHo1GFpAQMAOzAAAAEBAMsGAQAEUssGKwKgIAAB6ylodQEFADswAAABAQBTAAEADH5TAAECADswAAABAADLBgEAJ7fLBgEBADswAAABAADLBgEAW7DLBisCoDAAAVt8ZHUBAgA7MAEAAwAAywYBAMsGAQCPqcsGAQCSo8sGAQUAOzAAAAEBAFMAAQC4fVMAAQEAOzAAAAEBAJcNAQAgcJcNAQIAOzAAAAEBAO8MAQDuie8M8wICYXI7MAAAAQAAlw0BAPeblw33DgCIoMAAAezlBTQHOzABAAMAAGQOAQBdDQMAIxoAAM44ywZZ0pcHBABANG8Fe8/LBmLqkACa65AAAQEAOzAAAAEAAHMEAQB3l3MEBQLAAQCwsFqxWrJas1q0WrVatlq3WrhauVq6WrtaahnpGukb6RzpHeke6R/pDWvsMmlz5QBGAQAN7Oxz/uj/6ADpAekC6QPpBOkF6QbpB+kI6QnpCukL6QzpAQIAOzAAAAEBAFMAAQDdW1MAGwKgMAAB6SpheWFKAQDy6PPo9Oj16Pbo9+j46AEFADswAAABAQBfAAEAy6pfAAUBwAEADjPr6NLs0+zU7NXs1uzX7Njs2eza7Nvs3Ozd7N7s3+zg7GVpAQUAOzAAAAEBAFMAAQB3qlMAYUkBAE/oUOhR6FLoU+hU6FXoYUwBAOnp6unr6ezp7enu6e/pYUoBABLpE+kU6RXpFukX6RjpBQHBAQANzOwFDellb/sCb3IBAwA7MAAAAQEAawABABqCawABAwA7MAAAAQEAUwABAMaBUwD7AnJ2AQMAOzAAAAEBAGMAAwB9W18A0OwBAOrsAQABAc6gUAAB6vc3KMc191Ig5ZQq98dGPGKbU05SQzGHsv4NxF+QL15cJvDNfFtbvIJGt91DQfgHSVRGtoodB4hnFm76NoRfUIvfrYsjcdjsQLChYAAB7OpAPRYfOzABAAMAAHcAAQAYAAIAlXFTACt0IwADAHetCwCo5gsAD+kAAPkCABJtdAEIADswAAABAQC/AAEAl7y/ABuEoPAAAezioAAAAHQSoSAAAeztQCAhBQHBAQAEEOkA8+lscgUBwAEABfHoBOLsY2S1ugCMAAGgoAAB7OECsCHp9AABBKCQAAHszRgkJrBx7GkAASg7UQ87MAEAAwAAVQMBALgUBAAkSRkAKU+zAIxbUwDe+jMCBQAkPt8TYH5TABqCawDE2xcA8egAAA==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQHBAQAG+ug+0OzR7Ors6+xnaQELADswAAABAQAVAAEADusVAAUBwwEAA/PqB2zsaXDzBQF3Ab26AQABAwGgEAABurxvOzAAAAEBABcAAwBkgQAAOuYAAL7oFQCFAEQBAAtf7HdqqivpLOkt6S7pL+kw6THpYOwBCwA7MAAAAQEAFQABAPjqFQABAAA7MAAAAQEAswABALesswDzAwFz9mWBAQCAZwEAAQABAAEE9woDyKBwAAHmObCh6fAAAcBEkAo7MAEAAwAAvwABAFMAAQB7e78AAQC2nVMA+wJhZQ==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("hQBDAQALX+x3aqor6SzpLeku6S/pMOkx6WDsAQMAOzAAAAEBAMsGAQB7z8sGMUIBACXrJusn6+3s8wMCZWk7MAAAAQEAkQACADvpkAA77AAA+wJjcg==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQsAOzAAAAEBAJAAAQCa65AASwOgoAAB6legAAAB6mFwc3QBAwA7MAAAAQEA3xMBACQ+3xMbAqAQAABxlGx0+wJhZQ==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("8UYAAKZWp1aoVqlWqlarVqxWrVauVq9WsFaxVrJWs1a0VsBWYUAAAAhVCVUKVQtVDFUNVQ5VAQABoJAAAFKwZTswAAABAAAiAAIAwBIbAL1SBgD7AmRyKwKgsAAAU81hZWFFAAAIVQlVClULVQxVDVUOVdFFAAB2QHdAeEB5QHpAe0B8QH1AfkB/QIBAgUCCQINAkwGEoCAAACYBoBAAAFFNJEACOzAAAAEAACMADAAlDwQALCYAAN5BAQBdRw8ACEoBAOFSAADKUwAAyFQCABBWAQCgVgAAo1YAALdWAAABCgA7MAAAAQAAFQABAKBTFQAxQwAAei17LXwtfS1TAQOgQAAAOj9pbW87MAAAAQAAFgAFAGkPAAD4EhEAbUABAA5TAACiVgAA8wCEgCEBOzAAAAEAAEQABgDmDh0AJhMNAKZADQBNRwEApE4BAL1TBgA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQHDAAADx1QHQFZpcPMAAXc7MAAAAQAAEwAEAC0PAQA0Ew8AB0oAAA1KAADRQAAAglGDUYRRhVGGUYdRiFGJUYpRi1GMUY1RjlGPUfMDAXM7MAAAAQAAKwABACFAKwDzAAFuOzAAAAEAAB0AAQAGDx0AOwOwEDn4AAFldHU=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUMAAOub7Jvtm+6b75vwm/Gb8pvzm/Sb9Zv2m0FAAQDh6OLo4+jk6OjsQUABAN3o3ujf6ODo5+zzBwIyMzswAAABAQAxAAIAxN4wAObsAADzAAF0OzABAAMAACMAAQAMAAEAWHEjAAIAPOYLAOTsAACxQwAAEv0T/RT9Ff0W/Rf9GP0Z/Rr9G/0c/R398wADYWVpAfHiAAA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQMAOzAAAAEAAB0AAQDWOR0AAQQAOzAAAAEAAKkAAQBTSakA+wJjZRsCsFBRUAABbngTAISgQAAAUvWg0AAAVhOgUAAAVqJQABQ6MAAAAQAAAAAADwAQAAAALw/YQdlB2kHbQdxB3UHNR85HqFLRUitUNFT4VA5WtVY=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("MUoBANDs0ezq7OvssUAAAOub7Jvtm+6b75vwm/Gb8pvzm/Sb9Zv2mysCoJAAAekQZXQBAAA7MAAAAQEAswABALTmswAjAAKgYAAB6P1ucwKVWAAA4uwBAHcAAIWgYAAB6ySgAAAAWjYQAUMBWOoBAA==")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("AQEAOzAAAAEAABQAAwAjUgYAxlIGAOZSBgDzAAFvOzAAAAEAAL0AAQCfKL0AAQMAOzAAAAEAALIBAgC2QCEBklGQAAENADswAAABAABeAAEAQVZeAOFQAACmVqdWqFapVqpWq1asVq1WrlavVrBWsVayVrNWtFbzAQJydzswAAABAAC9AAEAejS9AJ8BhbCAU8sAAaBAAABUywCoAw==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQYAOzAAAAEBAB4AAwDMugAAK+wOAEDsDgABBAA7MAAAAQEAswABAA+vswAFAEIBAOBQ7FHsUuxT7FTsVexW7FfsWOxZ7FrsW+xc7F3sXuxzVugBAwA7MAAAAQEAtAACADFcAABqnrMA5wEAxaBgAAHqYQBCAQoC6XEAAPnoAQA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("IUIAADw6PTo+OgUAQwAAE3tKfEpk7ykVAEUAAAYPVmMZUBpQQUAAALVStlK3UrhSvFZBQAAAsVKyUrNStFK7VvMAxYYEgAA7MAAAAQAAGQAEAN0gDQAOUAgAPVYBALpWAAA=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("YUABADTrNes26zfrOOs56zrrAQABoJAAAejcZTswAQADAACnAAEABgABAJBvpwABAOnoBgD7AmRyKwKgsAAB6flhZQ==")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("BQBHAQAEPuxlIOkBAAGgQAAB6FdvOzAAAAEBABAAAwD66QAA0uwOAOzsAAAFAEkBAAbk7GUq62FJAQBi7GPsZOxl7GbsZ+xo7FcDAMagwAAB7GCgEAAButpARgAJOzABAAIAAAAAAQBKABpaBgDcaCMAO+YAABnpBgDw6QEAWeoGAA7rFQA=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("0UIAAHVHdkd3R3hHeUd6R3tHfEd9R35Hf0eAR4FHgkdhSwAACFUJVQpVC1UMVQ1VDlXRRQAApkCnQKhAqUCqQKtArECtQK5Ar0CwQLFAskCzQOMChKBwAABWIwVAATswAAABAABvAAUAMA83ANwSGwDiPw0AtlMGAABVBgDzAAF0OzAAAAEAAA4AAQAkVg4A")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("BQHAAAASJxooGgE0VGNulQFHAABAsVKyUrNStFK7VkC1UrZSt1K4UrxWMjMOUA9QEFARUBJQE1AUUBVQFlC6VvMAAXQ7MAAAAQAAKwEFAOQOAAAMEwUAiDghAVBRAQC4VgAAYwADsDAqXgABYWVpAf8lAAA=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUEBANqC24Lcgt2C3oLfguCC4YLiguOC5ILlgvMCAWU7MAAAAQEAJAACAEzeIwDl7AAAYUcBAOno6ujr6Ozo7eju6O/oAQMAOzAAAAEBABcAAQCLuhcAowCEsJHp9wABoFAAAbrNAUAJOzAAAAEAABcAAQDZ4hcAYUcBANXo1ujX6Njo2eja6NvoYUgBADLpM+k06TXpNuk36TjpkwAEoDAAAenyoHAAAeszYWhwdjswAQADAABrAAEACgACAEe+XwD55AsABAB8WwAAYYEAAMq6AQC36AYA+wNhZW8=")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQYAOzAAAAEBAL8AAQCXvL8A8UQBANLs0+zU7NXs1uzX7Njs2eza7Nvs3Ozd7N7s3+zg7Ozs5QBBAQAN7Oxz/uj/6ADpAekC6QPpBOkF6QbpB+kI6QnpCukL6QzpWwOwQepXAeNkbXT7AmFp")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("sUYBAOgW6RbqFusW7BbtFu4W7xbwFvEW8hbzFiFAAQCuD68PY4EBAwA7MAAAAQAAMwIBAN76MwIBAAA7MAEAAgAAAAABAAYAP0kBAGLsBgDzAANkaHI7MAEAAwAAaAEBAEUCAwCvWAAA8eMHAX76XwAGAHxoXwCJgLMAN66zAEjmXwAi6QcAzOkVAPsCZWk=")
|
||||
@@ -1 +0,0 @@
|
||||
rn_("0UIAAHVHdkd3R3hHeUd6R3tHfEd9R35Hf0eAR4FHgkcFAcAAAAgsVGoIVQlVClULVQxVDVUOVWVyAQQAOzAAAAEAAFsAAQDPU1sA4UgAAKZWp1aoVqlWqlarVqxWrVauVq9WsFaxVrJWs1a0VgUBRgAAA8ZTBwdVaHAKStFFAACmQKdAqECpQKpAq0CsQK1ArkCvQLBAsUCyQLNABQHBAAAFI1YENVZjaPcLAIiwUCpeAAEVyQE7MAAAAQAAbwAFADAPNwDcEhsA4j8NALZTBgAAVQYA")
|
||||
@@ -0,0 +1 @@
|
||||
rn_("AQAAOzAAAAEBAFMAAQBgflMAAQAAOzAAAAEAAC8AAQBLey8AsUMBAFe9WL1ZvVq9W71cvV29Xr1fvWC9Yb1ivfMAAWQBffoAAPsCZXn7AmN0")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user