class is now in use instead of global variables
new license "premades" are now "presets" new logo, preview and badges in readme
This commit is contained in:
+250
-229
@@ -1,286 +1,307 @@
|
||||
#by github.com/Kuucheen
|
||||
import re, os, time, threading, random, ctypes
|
||||
|
||||
try:
|
||||
import httpx, yaml
|
||||
from pystyle import Colors, Colorate, Center
|
||||
except ImportError:
|
||||
os.system('python -m pip install httpx httpx[http2] pyyaml pystyle')
|
||||
import httpx, yaml
|
||||
from pystyle import Colors, Colorate, Center
|
||||
|
||||
proxies = set([])
|
||||
goodsites = set([])
|
||||
sitelist = []
|
||||
timeout = ""
|
||||
proxycount = 0
|
||||
threadcount = 0
|
||||
clearingcnt = ""
|
||||
clearingproxy = ""
|
||||
randomUseragent = ""
|
||||
white = Colors.light_gray
|
||||
color = Colors.StaticMIX((Colors.purple, Colors.blue))
|
||||
print("Looks like you forgot to install the requirements!")
|
||||
print("use \"python -m pip install -r requirements.txt\" to install")
|
||||
|
||||
|
||||
def main():
|
||||
global threadcount, clearingcnt, clearingproxy, randomUseragent, timeout, sitelist, start
|
||||
class KCScraper:
|
||||
def __init__(self):
|
||||
self.proxies = set()
|
||||
self.goodsites = set()
|
||||
self.sitelist = []
|
||||
self.timeout = ""
|
||||
self.proxycount = 0
|
||||
self.clearingcnt = ""
|
||||
self.clearingproxy = ""
|
||||
self.randomUseragent = ""
|
||||
|
||||
printLogo()
|
||||
print()
|
||||
config, clearingcnt, clearingproxy, randomUseragent, threads, timeout = getSettings()
|
||||
self.start = 0
|
||||
|
||||
terminal()
|
||||
|
||||
start = time.time()
|
||||
self.white = Colors.light_gray
|
||||
self.color = Colors.StaticMIX((Colors.purple, Colors.blue))
|
||||
|
||||
#dispatcher
|
||||
with open(config) as sites:
|
||||
self.prefix_warning = f"{self.white}[{self.color}!{self.white}] {self.color}"
|
||||
self.prefix_plus = f"{self.white}[{Colors.green}+{self.white}] {self.color}"
|
||||
self.prefix_error = f"{self.white}[{Colors.red}!{self.white}] {self.color}"
|
||||
self.prefix_info = f"{self.white}[{self.color}^{self.white}] {self.color}"
|
||||
|
||||
sitelist = sites.readlines()
|
||||
threading.Thread(target=terminalthread).start()
|
||||
def main(self):
|
||||
self.printLogo()
|
||||
print()
|
||||
self.terminal()
|
||||
|
||||
while len(sitelist) > 0:
|
||||
if threadcount < threads:
|
||||
threading.Thread(target=scrape, args=[sitelist[0]]).start()
|
||||
threadcount += 1
|
||||
sitelist.pop(0)
|
||||
config, self.clearingcnt, self.clearingproxy, self.randomUseragent, threads, self.timeout = self.getSettings()
|
||||
|
||||
while threadcount > 0:
|
||||
terminal(f"| Waiting for threads to finish | active threads {threadcount} | Proxies {proxycount} | Time {time.time()-start:.2f}s")
|
||||
self.start = time.time()
|
||||
|
||||
terminal()
|
||||
|
||||
# dispatcher
|
||||
with open(config) as sites:
|
||||
self.sitelist = sites.readlines()
|
||||
threading.Thread(target=self.terminalthread).start()
|
||||
|
||||
lenproxies = len(proxies)
|
||||
print(f"\n{white}[{color}^{white}] Removed {color}{proxycount-lenproxies} {white}Duplicates\n")
|
||||
print(f"{white}[{color}^{white}] Remaining Proxies: {color}{lenproxies}{white}\n")
|
||||
print(f"{white}[{color}^{white}] Writing {color}Proxies\n")
|
||||
while len(self.sitelist) > 0:
|
||||
if self.activethreads() < threads:
|
||||
threading.Thread(target=self.scrape, args=[self.sitelist[0]]).start()
|
||||
self.sitelist.pop(0)
|
||||
|
||||
with open("proxies.txt", "w") as output:
|
||||
while self.activethreads() > 0:
|
||||
self.terminal(f"| Waiting for threads to finish | active threads {self.activethreads()} | Proxies {self.proxycount} | Time {time.time() - self.start:.2f}s")
|
||||
|
||||
for i in proxies:
|
||||
output.write(i.replace("\n", "") + "\n")
|
||||
|
||||
if clearingcnt == True or clearingproxy == True:
|
||||
self.terminal()
|
||||
|
||||
print(f"{white}[{color}^{white}] Removing {color}bad Websites\n")
|
||||
|
||||
with open(config, "w") as inp:
|
||||
print()
|
||||
|
||||
for site in goodsites:
|
||||
inp.write(site + "\n")
|
||||
lenproxies = len(self.proxies)
|
||||
print(f"{self.prefix_info} Removed {self.color}{self.proxycount - lenproxies} {self.white}Duplicates\n")
|
||||
print(f"{self.prefix_info} Remaining Proxies: {self.color}{lenproxies}{self.white}\n")
|
||||
print(f"{self.prefix_info} Writing {self.color}Proxies\n")
|
||||
|
||||
terminal()
|
||||
with open("proxies.txt", "w") as output:
|
||||
for i in self.proxies:
|
||||
output.write(i.replace("\n", "") + "\n")
|
||||
|
||||
print(f"{white}[{color}^{white}] Finished in {color}{time.time()-start:.2f}s{white}!\n")
|
||||
print("You can now close the tab")
|
||||
if self.clearingcnt == True or self.clearingproxy == True:
|
||||
print(f"{self.prefix_info} Removing {self.color}bad Websites\n")
|
||||
with open(config, "w") as inp:
|
||||
for site in self.goodsites:
|
||||
inp.write(site + "\n")
|
||||
|
||||
input("")
|
||||
self.terminal()
|
||||
|
||||
print(f"{self.prefix_info} Finished in {self.color}{time.time() - self.start:.2f}s{self.white}!\n")
|
||||
print("You can now close the tab")
|
||||
input("")
|
||||
|
||||
def scrape(site: str):
|
||||
global proxies, threadcount, proxycount
|
||||
uas=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; MDDCJS)", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"]
|
||||
site = site.replace("\n", "")
|
||||
try:
|
||||
with httpx.Client(http2=True,headers = {'accept-language': 'en','user-agent': random.choice(uas) if randomUseragent == True else uas[0]},follow_redirects=True) as client:
|
||||
r = client.get(site, timeout=timeout).text
|
||||
except:
|
||||
print(f"{white}[{Colors.red}!{white}] Failed connecting to {color}{site}")
|
||||
if clearingcnt != True:
|
||||
goodsites.add(site)
|
||||
else:
|
||||
goodsites.add(site)
|
||||
r = r.replace("&colon", ":")
|
||||
locProxies = re.findall(r"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b", r)
|
||||
length = len(locProxies)
|
||||
print(f"{white}[{Colors.green}+{white}] Scraped {color}{length}{white} from {color}{site}")
|
||||
proxycount += length
|
||||
proxies = proxies | set(locProxies)
|
||||
if clearingproxy == True and length == 0:
|
||||
goodsites.remove(site)
|
||||
finally:
|
||||
threadcount -= 1
|
||||
def scrape(self, site: str):
|
||||
uas = [
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0",
|
||||
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)",
|
||||
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; MDDCJS)",
|
||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393",
|
||||
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
|
||||
]
|
||||
site = site.replace("\n", "")
|
||||
try:
|
||||
with httpx.Client(
|
||||
http2=True,
|
||||
headers={
|
||||
"accept-language": "en",
|
||||
"user-agent": random.choice(uas) if self.randomUseragent == True else uas[0],
|
||||
},
|
||||
follow_redirects=True,
|
||||
) as client:
|
||||
r = client.get(site, timeout=self.timeout).text
|
||||
except:
|
||||
print(f"{self.prefix_warning} Failed connecting to {self.color}{site}")
|
||||
if self.clearingcnt != True:
|
||||
self.goodsites.add(site)
|
||||
else:
|
||||
self.goodsites.add(site)
|
||||
r = r.replace("&colon", ":")
|
||||
locProxies = re.findall(r"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b", r)
|
||||
length = len(locProxies)
|
||||
print(f"{self.prefix_plus} Scraped {self.color}{length}{self.white} from {self.color}{site}")
|
||||
self.proxycount += length
|
||||
self.proxies = self.proxies | set(locProxies)
|
||||
if self.clearingproxy and length == 0:
|
||||
self.goodsites.remove(site)
|
||||
|
||||
def getSettings() -> list:
|
||||
with open("settings.yaml") as setting:
|
||||
settings = yaml.safe_load(setting.read())
|
||||
def getSettings(self) -> tuple:
|
||||
with open("settings.yaml") as setting:
|
||||
settings = yaml.safe_load(setting.read())
|
||||
|
||||
premades = settings["premades"]
|
||||
clearingcnt = settings["removeWebsites"]
|
||||
clearingproxy = settings["removeProxyless"]
|
||||
randomUseragent = settings["randomUseragent"]
|
||||
threads = settings["threads"]
|
||||
timeout = settings["timeout"]
|
||||
presets = settings["presets"]
|
||||
self.clearingcnt = settings["removeWebsites"]
|
||||
self.clearingproxy = settings["removeProxyless"]
|
||||
self.randomUseragent = settings["randomUseragent"]
|
||||
threads = settings["threads"]
|
||||
self.timeout = settings["timeout"]
|
||||
|
||||
yes = ["yes", "y", "ye"]
|
||||
no = ["no", "n", "nah"]
|
||||
yes = ["yes", "y", "ye"]
|
||||
no = ["no", "n", "nah"]
|
||||
|
||||
if premades == "?":
|
||||
premades = input(f"{white}[{color}^{white}] {color}Use premades [y/n] {white}>> {color}")
|
||||
if premades in yes:
|
||||
os.system("cls")
|
||||
printLogo()
|
||||
print(Colorate.Diagonal(Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))), Center.XCenter("\n[1] HTTP/S\t[2] SOCKS4\t[3] SOCKS5")))
|
||||
if presets == "?":
|
||||
presets = input(f"{self.prefix_info} Use presets [y/n] {self.white}>> {self.color}")
|
||||
if presets in yes:
|
||||
os.system("cls")
|
||||
self.printLogo()
|
||||
print(Colorate.Diagonal(
|
||||
Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))),
|
||||
Center.XCenter("\n[1] HTTP/S\t[2] SOCKS4\t[3] SOCKS5")))
|
||||
|
||||
premades = input(f"\n{white}[{color}^{white}] {white}>> {color}")
|
||||
presets = input(f"\n{self.prefix_info} {self.white}>> {self.color}")
|
||||
|
||||
elif premades not in no:
|
||||
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
elif presets not in no:
|
||||
print(f"{self.prefix_warning} No option was chosen returning to home..")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
elif premades != "1" and premades != "2" and premades != "3" and premades != "n":
|
||||
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at premades")
|
||||
input()
|
||||
exit()
|
||||
|
||||
config = {"1": "premades/http.txt", "2": "premades/socks4.txt", "3": "premades/socks5.txt", "n": "sites.txt", "no": "sites.txt"}
|
||||
|
||||
try:
|
||||
config = config[premades]
|
||||
except KeyError:
|
||||
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
|
||||
|
||||
printLogo()
|
||||
|
||||
if clearingcnt == "?":
|
||||
|
||||
clearingcnt = input(f"\n{white}[{color}^{white}] {color}Remove not connectable site [y/n] {white}>> {color}")
|
||||
|
||||
if clearingcnt not in yes and clearingcnt not in no:
|
||||
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
elif clearingcnt not in yes and clearingcnt not in no:
|
||||
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at removewebsites")
|
||||
input()
|
||||
exit()
|
||||
|
||||
if clearingcnt in yes:
|
||||
clearingcnt = True
|
||||
|
||||
printLogo()
|
||||
|
||||
if clearingproxy == "?":
|
||||
|
||||
clearingproxy = input(f"\n{white}[{color}^{white}] {color}Remove sites with no proxies [y/n] {white}>> {color}")
|
||||
|
||||
if clearingproxy not in yes and clearingproxy not in no:
|
||||
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
|
||||
elif clearingproxy not in yes and clearingproxy not in no:
|
||||
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at removeproxyless")
|
||||
elif presets not in {"1", "2", "3", "n"}:
|
||||
print(f"{self.prefix_error} Error in settings.json at presets")
|
||||
input()
|
||||
exit()
|
||||
|
||||
if clearingproxy in yes:
|
||||
clearingproxy = True
|
||||
|
||||
printLogo()
|
||||
|
||||
if randomUseragent == "?":
|
||||
config = {"1": "presets/http.txt", "2": "presets/socks4.txt", "3": "presets/socks5.txt", "n": "sites.txt",
|
||||
"no": "sites.txt"}
|
||||
|
||||
randomUseragent = input(f"\n{white}[{color}^{white}] {color}Random Useragent? [y/n] {white}>> {color}")
|
||||
|
||||
if randomUseragent not in yes and randomUseragent not in no:
|
||||
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
|
||||
try:
|
||||
config = config[presets]
|
||||
except KeyError:
|
||||
print(f"{self.prefix_warning} No option was chosen returning to home..")
|
||||
time.sleep(3)
|
||||
main()
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
elif randomUseragent not in yes and randomUseragent not in no:
|
||||
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at removeproxyless")
|
||||
|
||||
self.printLogo()
|
||||
|
||||
if self.clearingcnt == "?":
|
||||
self.clearingcnt = input(
|
||||
f"{self.prefix_info} Remove not connectable site [y/n] {self.white}>> {self.color}"
|
||||
)
|
||||
|
||||
if self.clearingcnt not in yes and self.clearingcnt not in no:
|
||||
print(f"{self.prefix_warning} No option was chosen returning to home..")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
elif self.clearingcnt not in yes and self.clearingcnt not in no:
|
||||
print(f"{self.prefix_error} Error in settings.json at removewebsites")
|
||||
input()
|
||||
exit()
|
||||
|
||||
if randomUseragent in yes:
|
||||
randomUseragent = True
|
||||
if self.clearingcnt in yes:
|
||||
self.clearingcnt = True
|
||||
|
||||
|
||||
printLogo()
|
||||
self.printLogo()
|
||||
|
||||
if timeout == "?":
|
||||
timeout = input(f"\n{white}[{color}^{white}] {color}Timeout [seconds] {white}>> {color}")
|
||||
if self.clearingproxy == "?":
|
||||
self.clearingproxy = input(
|
||||
f"{self.prefix_info} Remove sites with no proxies [y/n] {self.white}>> {self.color}"
|
||||
)
|
||||
|
||||
elif timeout.isdigit() == False:
|
||||
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at threads")
|
||||
input()
|
||||
exit()
|
||||
if self.clearingproxy not in yes and self.clearingproxy not in no:
|
||||
print(f"{self.prefix_warning} No option was chosen returning to home..")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
try:
|
||||
timeout = int(timeout)
|
||||
except ValueError:
|
||||
print(f"{white}[{color}!{white}] {color}Timeout needs a number")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
|
||||
if timeout < 1:
|
||||
print(f"{white}[{color}!{white}] {color}Timeout must be higher than 0")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
|
||||
printLogo()
|
||||
elif self.clearingproxy not in yes and self.clearingproxy not in no:
|
||||
print(f"{self.prefix_error} Error in settings.json at removeproxyless")
|
||||
input()
|
||||
exit()
|
||||
|
||||
if threads == "?":
|
||||
threads = input(f"\n{white}[{color}^{white}] {color}Threads {white}>> {color}")
|
||||
if self.clearingproxy in yes:
|
||||
self.clearingproxy = True
|
||||
|
||||
elif threads.isdigit() == False:
|
||||
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at threads")
|
||||
input()
|
||||
exit()
|
||||
self.printLogo()
|
||||
|
||||
try:
|
||||
threads = int(threads)
|
||||
except ValueError:
|
||||
print(f"{white}[{color}!{white}] {color}Thread needs a number")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
|
||||
if threads < 1:
|
||||
print(f"{white}[{color}!{white}] {color}Thread needs a number greater than 0")
|
||||
time.sleep(3)
|
||||
main()
|
||||
exit()
|
||||
if self.randomUseragent == "?":
|
||||
self.randomUseragent = input(
|
||||
f"{self.prefix_info} Random Useragent? [y/n] {self.white}>> {self.color}"
|
||||
)
|
||||
|
||||
printLogo()
|
||||
if self.randomUseragent not in yes and self.randomUseragent not in no:
|
||||
print(f"{self.prefix_warning} No option was chosen returning to home..")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
return config, clearingcnt, clearingproxy, randomUseragent, threads, timeout
|
||||
elif self.randomUseragent not in yes and self.randomUseragent not in no:
|
||||
print(f"{self.prefix_error} Error in settings.json at removeproxyless")
|
||||
input()
|
||||
exit()
|
||||
|
||||
def terminal(string:str = ""):
|
||||
ctypes.windll.kernel32.SetConsoleTitleW("KC Scraper | github.com/Kuucheen " + string)
|
||||
if self.randomUseragent in yes:
|
||||
self.randomUseragent = True
|
||||
|
||||
def terminalthread():
|
||||
while len(sitelist) > 0:
|
||||
terminal(f"| Remaining sites {len(sitelist)} | active threads {threadcount} | Proxies {proxycount} | Time {time.time()-start:.2f}s")
|
||||
self.printLogo()
|
||||
|
||||
def printLogo():
|
||||
logo = """
|
||||
_ _ _______ ______
|
||||
(_) | (_______) / _____)
|
||||
_____| |_ ( (____ ____ ____ _____ ____ _____ ____
|
||||
| _ _) | \____ \ / ___)/ ___|____ | _ \| ___ |/ ___)
|
||||
| | \ \| |_____ _____) | (___| | / ___ | |_| | ____| |
|
||||
|_| \_)\______) (______/ \____)_| \_____| __/|_____)_|
|
||||
|_|
|
||||
by github.com/Kuucheen
|
||||
if self.timeout == "?":
|
||||
self.timeout = input(
|
||||
f"{self.prefix_info} Timeout [seconds] {self.white}>> {self.color}"
|
||||
)
|
||||
|
||||
"""
|
||||
os.system("cls")
|
||||
print(Colorate.Diagonal(Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))), Center.XCenter(logo)))
|
||||
elif not self.timeout.isdigit():
|
||||
print(f"{self.prefix_error} Error in settings.json at threads")
|
||||
input()
|
||||
exit()
|
||||
|
||||
try:
|
||||
self.timeout = int(self.timeout)
|
||||
except ValueError:
|
||||
print(f"{self.prefix_warning} Timeout needs a number")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
if self.timeout < 1:
|
||||
print(f"{self.prefix_warning} Timeout must be higher than 0")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
self.printLogo()
|
||||
|
||||
if threads == "?":
|
||||
threads = input(f"{self.prefix_info} Threads {self.white}>> {self.color}")
|
||||
|
||||
elif not threads.isdigit():
|
||||
print(f"{self.prefix_error} Error in settings.json at threads")
|
||||
input()
|
||||
exit()
|
||||
|
||||
try:
|
||||
threads = int(threads)
|
||||
except ValueError:
|
||||
print(f"{self.prefix_warning} Thread needs a number")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
if threads < 1:
|
||||
print(f"{self.prefix_warning} Thread needs a number greater than 0")
|
||||
time.sleep(3)
|
||||
self.main()
|
||||
exit()
|
||||
|
||||
self.printLogo()
|
||||
|
||||
return config, self.clearingcnt, self.clearingproxy, self.randomUseragent, threads, self.timeout
|
||||
|
||||
def terminal(self, string: str = ""):
|
||||
ctypes.windll.kernel32.SetConsoleTitleW("KC Scraper | github.com/Kuucheen " + string)
|
||||
|
||||
def terminalthread(self):
|
||||
while len(self.sitelist) > 0:
|
||||
self.terminal(
|
||||
f"| Remaining sites {len(self.sitelist)} | active threads {self.activethreads()} | Proxies {self.proxycount} | Time {time.time() - self.start:.2f}s"
|
||||
)
|
||||
|
||||
def activethreads(self):
|
||||
return threading.active_count()-1
|
||||
|
||||
def printLogo(self):
|
||||
logo = """
|
||||
_ _ _______ ______
|
||||
(_) | (_______) / _____)
|
||||
_____| |_ ( (____ ____ ____ _____ ____ _____ ____
|
||||
| _ _) | \____ \ / ___)/ ___|____ | _ \| ___ |/ ___)
|
||||
| | \ \| |_____ _____) | (___| | / ___ | |_| | ____| |
|
||||
|_| \_)\______) (______/ \____)_| \_____| __/|_____)_|
|
||||
|_|
|
||||
by github.com/Kuucheen
|
||||
|
||||
"""
|
||||
os.system("cls")
|
||||
print(Colorate.Diagonal(Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))),
|
||||
Center.XCenter(logo)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
KCScraper().main()
|
||||
|
||||
@@ -1,23 +1,21 @@
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
Copyright (c) 2023 Charmbracelet, Inc
|
||||
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,23 +1,27 @@
|
||||
<!-- yes i let me inspire by billy -->
|
||||
-----
|
||||
<div align="center">
|
||||
<img src="assets/logo.svg">
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://user-images.githubusercontent.com/70746714/203648723-062ef2cb-8ae3-4a69-8e48-f034b91b9682.gif"
|
||||
</p>
|
||||
---
|
||||
|
||||
----
|
||||
|
||||
# <p align="center">👾 KC-Scraper 👾</p>
|
||||
<br>
|
||||
|
||||
<div align="center">
|
||||
<strong>A powerful and open source proxy scraper <br> able to scrape from almost any website </strong>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<p align="center">
|
||||
<strong>KC Scraper is a powerful and open source proxy scraper <br> able to scrape from almost any website </strong>
|
||||
</p>
|
||||
<br>
|
||||
<div align="center">
|
||||
<img src="https://img.shields.io/github/downloads/Kuucheen/KC-Scraper/total.svg">
|
||||
<img src="https://img.shields.io/github/license/Kuucheen/KC-Scraper.svg">
|
||||
<img src="https://img.shields.io/github/issues/Kuucheen/KC-Scraper.svg">
|
||||
</div>
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="https://user-images.githubusercontent.com/70746714/182049128-e56320de-01cc-4566-acce-c897acb36665.png" width="800" height=420">
|
||||
<img src="assets/preview.gif" width="800" height=420">
|
||||
</p>
|
||||
<br>
|
||||
<br>
|
||||
@@ -35,6 +39,8 @@
|
||||
|
||||
• Settings for automatisation
|
||||
|
||||
• Presets get ~200 elite proxies
|
||||
|
||||
• Automatically removes duplicates
|
||||
|
||||
<br>
|
||||
@@ -44,7 +50,7 @@
|
||||
### <p align="center">❓ How to use ❓</p>
|
||||
<br>
|
||||
|
||||
1. Place your proxy sites in the "sites.txt" file or create configs in the "premades" folder.
|
||||
1. Place your proxy sites in the "sites.txt" file or create configs in the "presets" folder.
|
||||
|
||||
2. Ensure that the website you choose is capable of displaying proxies. For instance, you can use
|
||||
the following example site: https://openproxy.space/list/http.
|
||||
@@ -57,7 +63,8 @@
|
||||
### <p align="center">🔩 Requirements 🔩</p>
|
||||
<br>
|
||||
|
||||
<p align="center"> <strong>Installing automatically if not installed </strong></p>
|
||||
<strong>Use `python -m pip install -r requirements.txt` to install
|
||||
|
||||
|
||||
`httpx[http2]`
|
||||
`pystyle`
|
||||
|
||||
+434
@@ -0,0 +1,434 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 562">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1, .cls-2 {
|
||||
stroke: #794595;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
|
||||
fill: none;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
stroke-width: 5px;
|
||||
}
|
||||
|
||||
.cls-2, .cls-3, .cls-6 {
|
||||
stroke-dasharray: 0 0 0 0 0 2 12 16 12 16;
|
||||
}
|
||||
|
||||
.cls-3, .cls-4 {
|
||||
stroke: #4e2773;
|
||||
}
|
||||
|
||||
.cls-5, .cls-6 {
|
||||
stroke: #bd78b1;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<path class="cls-6" d="m1721.13,360.86c2.18-2.61,3.87-5.35,5.28-8.17"/>
|
||||
<path class="cls-4" d="m1723.45,335.38c1.09-3.15,2.11-6.31,3.34-9.42"/>
|
||||
<path class="cls-4" d="m1710.63,357.37c.39-.36.77-.72,1.15-1.1,4.75-4.75,7.53-10.04,9.69-15.49"/>
|
||||
<path class="cls-3" d="m1720.99,315.84c1.14-2.54,2.47-5.02,4.13-7.41"/>
|
||||
<path class="cls-3" d="m1686.76,359.82c6.32-2.31,12.49-5.16,17.96-10.62,9.09-9.09,10.96-20.16,15.11-30.6"/>
|
||||
<path class="cls-4" d="m1673.96,354.74c8.27-2.82,16.58-5.51,23.68-12.61,13.81-13.81,10.94-32.15,24.75-45.96.95-.95,1.92-1.82,2.91-2.62"/>
|
||||
<path class="cls-1" d="m1674.45,344.99c5.68-2.2,11.19-5,16.13-9.94,13.81-13.81,10.94-32.15,24.75-45.96,3.28-3.28,6.82-5.62,10.49-7.47"/>
|
||||
<path class="cls-4" d="m1718.82,274.52c2.45-1.22,4.95-2.23,7.48-3.15"/>
|
||||
<path class="cls-4" d="m1668.5,337.48c5.28-2.13,10.39-4.88,15-9.49,13.81-13.81,10.94-32.15,24.75-45.96,3.3-3.3,6.87-5.65,10.57-7.5"/>
|
||||
<path class="cls-4" d="m1646.19,346.25c2.66-1.49,5.41-2.67,8.19-3.72"/>
|
||||
<path class="cls-4" d="m1645.75,346.49c.07-.04.14-.08.22-.12"/>
|
||||
<path class="cls-4" d="m1633.86,357.01c1.08-1.47,2.3-2.89,3.68-4.28s2.92-2.69,4.44-3.8"/>
|
||||
<path class="cls-5" d="m1763.06,217.66c.85-1.97,1.81-3.9,2.93-5.8"/>
|
||||
<path class="cls-5" d="m1754.44,240.04c1.81-3.53,3.15-7.2,4.41-10.88"/>
|
||||
<path class="cls-5" d="m1704.29,272.17c6.21-4.97,13.13-7.3,20.05-9.65"/>
|
||||
<path class="cls-5" d="m1673.28,323.73c1.07-.85,2.12-1.79,3.15-2.81,13.81-13.81,10.94-32.15,24.75-45.96,1.01-1.01,2.05-1.94,3.11-2.78"/>
|
||||
<path class="cls-5" d="m1622.22,357.79c1.96-4.26,4.49-8.36,8.25-12.12,6.06-6.06,13-8.91,20.04-11.37"/>
|
||||
<path class="cls-5" d="m1742.56,240.39c10.03-12.22,9.55-27.29,19.11-39.64"/>
|
||||
<path class="cls-5" d="m1691.63,270.62c.76-.93,1.59-1.84,2.48-2.73,9.22-9.22,20.47-11.01,31.04-15.29"/>
|
||||
<path class="cls-5" d="m1670,313.19c12.22-12.83,10.79-29.37,21.63-42.58"/>
|
||||
<path class="cls-5" d="m1610.46,363.23c2.94-8.58,5.56-17.26,12.94-24.63,5.29-5.29,11.24-8.13,17.34-10.4"/>
|
||||
<path class="cls-5" d="m1680.37,269.79c1.72-3.13,3.84-6.15,6.67-8.97,13.81-13.81,32.15-10.94,45.96-24.75,10.49-10.49,11.36-23.61,17.23-35.36"/>
|
||||
<path class="cls-5" d="m1673.03,288.5c2.27-6.28,4.05-12.7,7.34-18.71"/>
|
||||
<path class="cls-5" d="m1602.39,359.01c3.42-9.5,5.74-19.29,13.94-27.49,6.77-6.77,14.63-9.53,22.51-12.21"/>
|
||||
<path class="cls-6" d="m1676.02,258.37c1.15-1.59,2.45-3.14,3.94-4.63,13.81-13.81,32.15-10.94,45.96-24.75,7.19-7.19,9.86-15.62,12.72-23.99"/>
|
||||
<path class="cls-6" d="m1668.41,274.33c.44-1.26.88-2.52,1.35-3.76"/>
|
||||
<path class="cls-6" d="m1628.46,313.38c.55-.19,1.1-.39,1.65-.58"/>
|
||||
<path class="cls-6" d="m1590.5,362.63c7.32-12.44,7.42-26.84,18.76-38.18.88-.88,1.77-1.68,2.68-2.43"/>
|
||||
<path class="cls-5" d="m1668.53,251.9c1.25-1.8,2.68-3.55,4.36-5.23,13.81-13.81,32.15-10.94,45.96-24.75.05-.05.1-.1.15-.15"/>
|
||||
<path class="cls-5" d="m1647.55,293.22c.2-.19.4-.39.6-.58.58-.58,1.13-1.17,1.65-1.76"/>
|
||||
<path class="cls-5" d="m1581.25,358.89c8.22-11.26,8.64-24.65,16.41-36.04"/>
|
||||
<path class="cls-5" d="m1678.38,231.15c11.23-5.07,23.49-6.38,33.4-16.3,1.85-1.85,3.41-3.79,4.74-5.79"/>
|
||||
<path class="cls-5" d="m1650.55,270.61c.45-1.12.88-2.25,1.29-3.39"/>
|
||||
<path class="cls-5" d="m1649.2,273.71c.48-1.02.92-2.06,1.34-3.1"/>
|
||||
<path class="cls-5" d="m1631.59,292.51c3.31-1.76,6.5-3.97,9.48-6.95,2.3-2.3,4.13-4.72,5.66-7.23"/>
|
||||
<path class="cls-5" d="m1569.76,356.86c.2-.19.4-.39.6-.59,9.08-9.08,10.95-20.12,15.09-30.55"/>
|
||||
<path class="cls-6" d="m1676.45,222c9.74-3.58,19.84-5.8,28.26-14.22,1.36-1.36,2.55-2.76,3.62-4.19"/>
|
||||
<path class="cls-6" d="m1650.2,245.32c.84-1.88,1.78-3.73,2.88-5.54"/>
|
||||
<path class="cls-6" d="m1649.99,245.78c.03-.08.07-.15.1-.23"/>
|
||||
<path class="cls-6" d="m1638.68,272.8c4.97-7.39,6.9-15.62,9.91-23.55"/>
|
||||
<path class="cls-6" d="m1605.47,292.81c9.82-3.64,20.04-5.82,28.54-14.32,1.82-1.82,3.36-3.73,4.68-5.69"/>
|
||||
<path class="cls-6" d="m1595.72,297.31c.14-.09.29-.17.43-.25"/>
|
||||
<path class="cls-6" d="m1554.25,355.91c3.15-1.72,6.19-3.86,9.04-6.71,7.54-7.54,10.11-16.43,13.13-25.2"/>
|
||||
<path class="cls-3" d="m1667.45,215.66c8.91-3.49,18.25-5.41,26.41-11.65"/>
|
||||
<path class="cls-3" d="m1619.72,277.07c2.5-1.53,4.92-3.36,7.21-5.65,10.1-10.1,11.28-22.62,16.58-34.02"/>
|
||||
<path class="cls-3" d="m1589.24,289.89c9.8-5.6,20.77-6.9,30.47-12.82"/>
|
||||
<path class="cls-3" d="m1581.44,295.7c1.56-1.51,3.18-2.81,4.83-3.95"/>
|
||||
<path class="cls-3" d="m1539.85,352.16c5.77-2.21,11.37-5.03,16.38-10.03,7.32-7.32,9.95-15.91,12.87-24.43"/>
|
||||
<path class="cls-2" d="m1672.65,204.25c1.25-.46,2.49-.94,3.73-1.45"/>
|
||||
<path class="cls-2" d="m1595.17,277.31c8.6-2.95,17.3-5.56,24.69-12.96,10.1-10.1,11.28-22.63,16.59-34.04"/>
|
||||
<path class="cls-2" d="m1569.54,294.32c1.25-1.8,2.68-3.55,4.36-5.23,6.41-6.41,13.81-9.23,21.27-11.79"/>
|
||||
<path class="cls-2" d="m1529.5,346.29c6.91-2.43,13.7-5.28,19.65-11.23,8.27-8.27,10.56-18.17,14.03-27.75"/>
|
||||
<path class="cls-3" d="m1601.49,265.14c3.96-1.91,7.78-4.34,11.3-7.86,13.19-13.19,11.16-30.53,23-44.09"/>
|
||||
<path class="cls-3" d="m1577.39,274.52c7.52-3.76,15.6-5.47,23.19-8.95"/>
|
||||
<path class="cls-3" d="m1557.34,297.01c2.13-5.27,4.88-10.38,9.48-14.98,3.3-3.3,6.87-5.65,10.57-7.5"/>
|
||||
<path class="cls-3" d="m1523.1,338.98c6.68-2.38,13.22-5.24,18.98-10.99,8.94-8.94,10.89-19.77,14.9-30.05"/>
|
||||
<path class="cls-5" d="m1603.38,252.36c.79-.67,1.57-1.38,2.34-2.15,11.97-11.97,11.41-27.36,20.05-40.25"/>
|
||||
<path class="cls-5" d="m1562.86,272.17c8.19-6.55,17.62-8.52,26.64-12"/>
|
||||
<path class="cls-5" d="m1517.12,331.52c6.3-2.3,12.45-5.16,17.89-10.6,13.81-13.81,10.94-32.15,24.75-45.96,1.01-1.01,2.05-1.94,3.11-2.78"/>
|
||||
<path class="cls-2" d="m1594.65,246.61c1.37-1.03,2.7-2.18,3.99-3.47,10.7-10.7,11.39-24.13,17.58-36.06"/>
|
||||
<path class="cls-2" d="m1550.21,270.62c.76-.93,1.59-1.84,2.48-2.73,3.02-3.02,6.25-5.24,9.6-7.01"/>
|
||||
<path class="cls-2" d="m1515.05,322.45c4.53-2.01,8.9-4.61,12.89-8.6,12.91-12.91,11.24-29.8,22.27-43.23"/>
|
||||
<path class="cls-2" d="m1472.21,354.27c2.17-5.52,4.96-10.88,9.76-15.68.7-.7,1.4-1.35,2.12-1.96"/>
|
||||
<path class="cls-1" d="m1592.57,235.04c10.31-11.12,10.66-24.96,17.66-36.98"/>
|
||||
<path class="cls-1" d="m1538.94,269.79c1.72-3.13,3.84-6.15,6.67-8.97,5.49-5.49,11.7-8.35,18.06-10.66"/>
|
||||
<path class="cls-1" d="m1514.35,311.99c2.25-1.44,4.44-3.14,6.52-5.22,10.98-10.98,11.42-24.83,18.08-36.99"/>
|
||||
<path class="cls-1" d="m1460.18,361.12c3.89-10.14,5.92-20.79,14.72-29.6,4-4,8.38-6.6,12.91-8.61"/>
|
||||
<path class="cls-1" d="m1392.85,422.2c.85-2.43,1.75-4.85,2.81-7.22"/>
|
||||
<path class="cls-5" d="m1579.07,233.5c1.87-1.28,3.69-2.76,5.43-4.5,9.02-9.02,10.92-19.98,15.01-30.34"/>
|
||||
<path class="cls-5" d="m1528.74,269.52c2.18-5.56,4.97-10.94,9.8-15.78,7.05-7.05,15.29-9.75,23.5-12.55"/>
|
||||
<path class="cls-5" d="m1513.89,299.6c8.89-8.96,10.82-19.81,14.85-30.09"/>
|
||||
<path class="cls-5" d="m1451.38,358.2c5.2-11.33,6.44-23.73,16.45-33.74,6.7-6.7,14.47-9.48,22.28-12.13"/>
|
||||
<path class="cls-5" d="m1384.24,419.62c2.44-7.13,4.68-14.31,9.63-20.76"/>
|
||||
<path class="cls-5" d="m1519.07,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.71-5.71,8.57-12.2,10.93-18.82"/>
|
||||
<path class="cls-5" d="m1505.76,293.56c.32-.3.64-.61.96-.93,6.88-6.88,9.62-14.89,12.35-22.91"/>
|
||||
<path class="cls-5" d="m1436.1,363.26c13.71-13.8,10.88-32.1,24.66-45.88,7.05-7.05,15.28-9.75,23.48-12.54"/>
|
||||
<path class="cls-5" d="m1372.61,423.88c6.07-11.86,6.82-25.17,17.44-35.79,2.66-2.66,5.5-4.71,8.43-6.37"/>
|
||||
<path class="cls-5" d="m1519.78,245.21c1.31-1.93,2.82-3.81,4.62-5.61,13.81-13.81,32.15-10.94,45.96-24.75,4.98-4.98,7.79-10.54,9.99-16.27"/>
|
||||
<path class="cls-5" d="m1509.12,270.61c3.11-7.68,4.9-15.72,9.19-23.07"/>
|
||||
<path class="cls-5" d="m1507.78,273.71c.48-1.02.92-2.06,1.34-3.1"/>
|
||||
<path class="cls-5" d="m1415.59,365.07c4.7-2.04,9.23-4.68,13.35-8.8,13.81-13.81,10.94-32.15,24.75-45.96,10.43-10.43,23.45-11.35,35.14-17.12"/>
|
||||
<path class="cls-5" d="m1364.85,418.1c6.71-12.18,7.12-26.07,18.13-37.08,5.08-5.08,10.78-7.91,16.64-10.13"/>
|
||||
<path class="cls-3" d="m1532,223.17c10.64-4.36,22-6.1,31.29-15.39,3.71-3.71,6.22-7.75,8.17-11.94"/>
|
||||
<path class="cls-3" d="m1531.54,223.36c.08-.03.15-.06.23-.1"/>
|
||||
<path class="cls-3" d="m1516.65,233.23c.22-.23.45-.47.68-.7,4.31-4.31,9.06-6.99,13.98-9.07"/>
|
||||
<path class="cls-3" d="m1443.01,307.41c1.06-1.43,2.25-2.82,3.61-4.18,13.63-13.63,31.68-11.01,45.43-24.22"/>
|
||||
<path class="cls-3" d="m1413.92,355.29c2.76-1.61,5.43-3.57,7.95-6.09,7.67-7.67,10.2-16.75,13.3-25.67"/>
|
||||
<path class="cls-3" d="m1356.54,413.14c7.94-12.66,7.72-27.54,19.37-39.19,5.03-5.03,10.66-7.84,16.45-10.06"/>
|
||||
<path class="cls-4" d="m1545.43,208.33c3.77-1.87,7.41-4.24,10.78-7.6"/>
|
||||
<path class="cls-4" d="m1478.3,277.07c2.5-1.53,4.92-3.36,7.21-5.65,1.97-1.97,3.6-4.03,4.99-6.16"/>
|
||||
<path class="cls-4" d="m1441.69,294.19c11.15-9.55,24.81-9.92,36.61-17.11"/>
|
||||
<path class="cls-4" d="m1345.7,411.13c11.99-13.58,9.89-31,23.14-44.25s32.15-10.94,45.96-24.75c6.3-6.3,9.13-13.55,11.66-20.88"/>
|
||||
<path class="cls-1" d="m1486.14,253.39c2.15-4.39,3.63-8.97,5.19-13.53"/>
|
||||
<path class="cls-1" d="m1453.75,277.31c8.6-2.95,17.3-5.56,24.69-12.96,3.35-3.35,5.72-6.98,7.59-10.73"/>
|
||||
<path class="cls-1" d="m1443.87,281.19c3.23-1.54,6.55-2.74,9.88-3.88"/>
|
||||
<path class="cls-1" d="m1347.58,387.98c3.56-9.71,5.79-19.78,14.18-28.17,13.81-13.81,32.15-10.94,45.96-24.75,4.55-4.55,7.29-9.59,9.41-14.8"/>
|
||||
<path class="cls-5" d="m1448.41,269.64c8.03-2.73,16.06-5.47,22.95-12.36,8.14-8.14,10.48-17.85,13.86-27.28"/>
|
||||
<path class="cls-5" d="m1353.22,354.3c.47-.53.96-1.05,1.48-1.56,13.81-13.81,32.15-10.94,45.96-24.75.94-.94,1.8-1.9,2.59-2.87"/>
|
||||
<path class="cls-6" d="m1451.09,258.94c4.64-2.03,9.12-4.65,13.2-8.74,9.86-9.86,11.22-22.05,16.22-33.23"/>
|
||||
<path class="cls-6" d="m1402.26,307.85c.2-.46.4-.92.59-1.38"/>
|
||||
<path class="cls-6" d="m1401.96,308.54c.03-.08.07-.15.1-.23"/>
|
||||
<path class="cls-6" d="m1344.19,349.62c1.02-1.35,2.16-2.67,3.44-3.95,13.81-13.81,32.15-10.94,45.96-24.75,2.25-2.25,4.06-4.62,5.57-7.08"/>
|
||||
<path class="cls-4" d="m1440.67,253.24c5.83-2.22,11.5-5.04,16.55-10.1,8.28-8.28,10.57-18.2,14.05-27.79"/>
|
||||
<path class="cls-4" d="m1399.8,288.22c1.03-2.98,2.13-5.94,3.5-8.82"/>
|
||||
<path class="cls-4" d="m1345.23,334.62c13.09-9.41,28.99-8.48,41.29-20.78,5.43-5.43,8.28-11.55,10.58-17.83"/>
|
||||
<path class="cls-4" d="m1328.58,360.39c.08-.24.16-.47.24-.71"/>
|
||||
<path class="cls-4" d="m1434.51,245.81c5.51-2.17,10.85-4.95,15.65-9.75,10.56-10.56,11.37-23.78,17.34-35.59"/>
|
||||
<path class="cls-4" d="m1400.1,265.65c.99-1.39,2.08-2.74,3.33-4.06"/>
|
||||
<path class="cls-4" d="m1349.17,321.76c10.35-4.07,21.28-5.98,30.28-14.99,10.08-10.08,11.27-22.59,16.56-33.97"/>
|
||||
<path class="cls-4" d="m1319.29,359.72c1.18-3.21,2.21-6.46,3.37-9.68"/>
|
||||
<path class="cls-1" d="m1423.93,240.05c6.74-2.39,13.35-5.25,19.16-11.05,8.95-8.95,10.9-19.81,14.92-30.11"/>
|
||||
<path class="cls-1" d="m1417.31,242.33c.08-.03.16-.05.24-.08"/>
|
||||
<path class="cls-1" d="m1412.85,243.96c1.4-.55,2.81-1.06,4.22-1.55"/>
|
||||
<path class="cls-1" d="m1387.32,269.52c1.67-4.27,3.71-8.45,6.76-12.34"/>
|
||||
<path class="cls-1" d="m1354.82,310.18c6.18-2.28,12.2-5.13,17.55-10.47,8.97-8.97,10.91-19.87,14.95-30.19"/>
|
||||
<path class="cls-1" d="m1310.16,357.74c3.96-8.84,5.64-18.31,11.02-26.76"/>
|
||||
<path class="cls-6" d="m1377.65,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.57-5.57,8.43-11.89,10.76-18.35"/>
|
||||
<path class="cls-6" d="m1351.95,301.43c4.69-2.04,9.22-4.67,13.35-8.8,6.88-6.88,9.62-14.89,12.35-22.91"/>
|
||||
<path class="cls-6" d="m1294.68,363.26c13.71-13.8,10.88-32.1,24.66-45.88,1.38-1.38,2.81-2.6,4.27-3.68"/>
|
||||
<path class="cls-6" d="m1367.7,270.61c4.27-10.56,6.06-21.8,15.28-31.01,13.81-13.81,32.15-10.94,45.96-24.75,4.71-4.71,7.47-9.94,9.63-15.34"/>
|
||||
<path class="cls-6" d="m1349.84,291.91c2.92-1.66,5.74-3.69,8.39-6.34,4.59-4.59,7.34-9.69,9.47-14.95"/>
|
||||
<path class="cls-6" d="m1287.81,355.98c13.48-13.77,10.75-31.96,24.46-45.67,2.88-2.88,5.96-5.04,9.16-6.77"/>
|
||||
<path class="cls-5" d="m1355.84,272.8c8.67-12.89,8.09-28.29,20.07-40.27,13.81-13.81,32.15-10.94,45.96-24.75,3.11-3.11,5.38-6.45,7.17-9.92"/>
|
||||
<path class="cls-5" d="m1350.26,279.36c.3-.28.6-.57.9-.87,1.82-1.82,3.36-3.73,4.68-5.69"/>
|
||||
<path class="cls-5" d="m1279.52,350.1c.31-.29.62-.59.93-.9,13.81-13.81,10.94-32.15,24.75-45.96,5.31-5.31,11.29-8.15,17.43-10.43"/>
|
||||
<path class="cls-5" d="m1251.87,363.54c.63-.23,1.25-.46,1.88-.68"/>
|
||||
<path class="cls-5" d="m1401.97,209.28c2.1-.94,4.17-2,6.18-3.27"/>
|
||||
<path class="cls-5" d="m1353.51,256.6c4.31-10.6,6.08-21.89,15.33-31.14,7.88-7.88,17.23-10.33,26.38-13.54"/>
|
||||
<path class="cls-5" d="m1276.76,338.26c10.04-13.23,8.82-29.54,21.37-42.09,7.59-7.59,16.56-10.15,25.4-13.2"/>
|
||||
<path class="cls-5" d="m1230.88,363.82c11.47-8.95,25.31-9.16,37.04-17.16"/>
|
||||
<path class="cls-4" d="m1351.67,234.92c2.22-5.82,5.04-11.48,10.09-16.53,8.76-8.76,19.35-10.81,29.45-14.66"/>
|
||||
<path class="cls-4" d="m1347.26,247.41c.74-1.95,1.41-3.92,2.08-5.89"/>
|
||||
<path class="cls-4" d="m1312.33,277.31c2.72-.93,5.44-1.83,8.14-2.86"/>
|
||||
<path class="cls-4" d="m1215.54,365.69c1.35-2.03,2.92-4,4.81-5.88,13.81-13.81,32.15-10.94,45.96-24.75s10.94-32.15,24.75-45.96c6.41-6.41,13.81-9.23,21.27-11.79"/>
|
||||
<path class="cls-5" d="m1376.32,199.4c1.18-.4,2.37-.8,3.55-1.21"/>
|
||||
<path class="cls-5" d="m1349.51,217.79c1.43-2.24,3.12-4.41,5.19-6.47,2.42-2.42,4.99-4.33,7.64-5.91"/>
|
||||
<path class="cls-5" d="m1294.55,274.52c10.16-5.08,21.34-6.41,30.97-13.45"/>
|
||||
<path class="cls-5" d="m1271.53,305.24c2.76-8.11,5.48-16.24,12.45-23.21,3.3-3.3,6.87-5.65,10.57-7.5"/>
|
||||
<path class="cls-5" d="m1209.15,357.62c1.19-1.68,2.55-3.31,4.12-4.89,13.81-13.81,32.15-10.94,45.96-24.75,1.19-1.19,2.25-2.41,3.21-3.66"/>
|
||||
<path class="cls-1" d="m1348.96,202.97c2.47-2.24,5.07-4,7.75-5.46"/>
|
||||
<path class="cls-1" d="m1280.02,272.17c12.57-10.05,28.07-9.31,40.51-19.81"/>
|
||||
<path class="cls-1" d="m1265.73,294.47c2.42-6.86,5.27-13.61,11.18-19.52,1.01-1.01,2.05-1.94,3.11-2.78"/>
|
||||
<path class="cls-1" d="m1197.05,359.85c2.09-4.99,4.79-9.81,9.16-14.18,11.44-11.44,26-11.43,38.5-18.95"/>
|
||||
<path class="cls-5" d="m1267.36,270.62c.76-.93,1.59-1.84,2.48-2.73,13.81-13.81,32.15-10.94,45.96-24.75.83-.83,1.61-1.69,2.33-2.55"/>
|
||||
<path class="cls-5" d="m1255.41,296.72c3.32-8.88,5.39-18.1,11.95-26.1"/>
|
||||
<path class="cls-5" d="m1192.64,347.25c1.68-3.02,3.76-5.93,6.5-8.66,11.34-11.34,25.75-11.43,38.19-18.76"/>
|
||||
<path class="cls-5" d="m1273.24,253.36c11.79-5.93,24.96-6.76,35.5-17.29,3.61-3.61,6.08-7.54,8.01-11.61"/>
|
||||
<path class="cls-5" d="m1256.1,269.79c.92-1.68,1.96-3.33,3.17-4.94"/>
|
||||
<path class="cls-5" d="m1245.24,296.77c4.52-8.75,6.1-18.3,10.86-26.99"/>
|
||||
<path class="cls-5" d="m1183.75,343.78c1.97-4.3,4.51-8.45,8.31-12.25,10.81-10.81,24.4-11.4,36.42-17.77"/>
|
||||
<path class="cls-5" d="m1264.84,246.98c12.12-6.57,25.89-7.06,36.82-17.99,2.36-2.36,4.23-4.85,5.78-7.42"/>
|
||||
<path class="cls-5" d="m1234.92,295.03c5.48-7.62,7.45-16.2,10.57-24.46"/>
|
||||
<path class="cls-5" d="m1179.5,331.41c1.49-2.41,3.28-4.74,5.49-6.95,13.81-13.81,32.15-10.94,45.96-24.75.39-.39.77-.79,1.13-1.19"/>
|
||||
<path class="cls-4" d="m1262.53,237.64c10.86-4.6,22.54-6.19,32.06-15.71,3.96-3.96,6.54-8.28,8.55-12.77"/>
|
||||
<path class="cls-4" d="m1236.23,269.72c.52-1.54,1.05-3.08,1.6-4.61"/>
|
||||
<path class="cls-4" d="m1183.42,312.84c12.93-8.8,28.42-8.16,40.47-20.2,6.88-6.88,9.62-14.89,12.35-22.91"/>
|
||||
<path class="cls-6" d="m1259.92,228.83c9.53-3.44,19.37-5.75,27.6-13.98,2.7-2.7,4.76-5.58,6.44-8.56"/>
|
||||
<path class="cls-6" d="m1239.67,241.64c.59-.69,1.22-1.37,1.89-2.04.23-.23.46-.46.7-.68"/>
|
||||
<path class="cls-6" d="m1233.72,250.85c.29-.6.59-1.19.9-1.78"/>
|
||||
<path class="cls-6" d="m1226.28,270.61c.89-2.21,1.68-4.45,2.45-6.69"/>
|
||||
<path class="cls-6" d="m1178.27,304.53c12.52-7.54,27.09-7.52,38.54-18.97,4.59-4.59,7.34-9.69,9.47-14.95"/>
|
||||
<path class="cls-1" d="m1225.24,246.93c2.1-5.07,4.81-9.97,9.25-14.4,13.81-13.81,32.15-10.94,45.96-24.75.98-.98,1.88-1.98,2.7-3.01"/>
|
||||
<path class="cls-1" d="m1214.41,272.8c.92-1.37,1.74-2.77,2.48-4.19"/>
|
||||
<path class="cls-1" d="m1190.65,289.52c6.72-2.38,13.3-5.24,19.09-11.03,1.82-1.82,3.36-3.73,4.68-5.69"/>
|
||||
<path class="cls-1" d="m1122.24,359.39c4.92-1.86,9.73-4.14,14.17-7.8"/>
|
||||
<path class="cls-5" d="m1215.63,246.71c2.56-7.46,5.38-14.85,11.79-21.26,13.5-13.5,31.35-11.06,45.05-23.87"/>
|
||||
<path class="cls-5" d="m1096.21,359.55c11.85-6.05,25.14-6.81,35.75-17.42.09-.09.19-.19.28-.28"/>
|
||||
<path class="cls-4" d="m1206.45,245.77c3.4-9.46,5.73-19.22,13.9-27.38,12.77-12.77,29.44-11.28,42.79-21.92"/>
|
||||
<path class="cls-4" d="m1137.6,311.09c.11-.32.22-.63.32-.95"/>
|
||||
<path class="cls-4" d="m1083.8,355.69c13.05-9.25,28.85-8.4,41.08-20.63,4.01-4.01,6.62-8.41,8.63-12.96"/>
|
||||
<path class="cls-3" d="m1231.36,200.64c3.29-1.2,6.62-2.25,9.92-3.45"/>
|
||||
<path class="cls-3" d="m1214.49,210.15c2.26-2.07,4.63-3.73,7.07-5.12"/>
|
||||
<path class="cls-3" d="m1195.64,247.47c5.92-11.33,6.82-24.04,16.05-34.47"/>
|
||||
<path class="cls-3" d="m1132.62,298.17c.98-2.54,2.09-5.05,3.45-7.49"/>
|
||||
<path class="cls-3" d="m1083.85,344.55c11.39-5.28,23.89-6.48,33.97-16.56,6.77-6.77,9.53-14.63,12.22-22.52"/>
|
||||
<path class="cls-4" d="m1192.68,230.58c1.1-3.15,2.12-6.31,3.3-9.44"/>
|
||||
<path class="cls-4" d="m1078.75,336.6c10.84-4.58,22.5-6.18,32-15.69,13.81-13.81,10.94-32.15,24.75-45.96.49-.49.99-.96,1.49-1.41"/>
|
||||
<path class="cls-2" d="m1125.94,270.62c.76-.93,1.59-1.84,2.48-2.73,1.84-1.84,3.76-3.38,5.74-4.71"/>
|
||||
<path class="cls-2" d="m1082.61,325.57c7.39-2.54,14.71-5.37,21.06-11.72,12.91-12.91,11.24-29.8,22.27-43.23"/>
|
||||
<path class="cls-2" d="m1052.36,345.32c1.08-1.71,2.31-3.39,3.73-5"/>
|
||||
<path class="cls-5" d="m1163.49,239.4c1.3-.99,2.58-2.1,3.82-3.34s2.39-2.57,3.4-3.9"/>
|
||||
<path class="cls-5" d="m1114.68,269.79c1.72-3.13,3.84-6.15,6.67-8.97,4.21-4.21,8.84-6.87,13.64-8.93"/>
|
||||
<path class="cls-5" d="m1079.98,316.9c5.85-2.23,11.54-5.05,16.62-10.13,10.98-10.98,11.42-24.83,18.08-36.99"/>
|
||||
<path class="cls-5" d="m1054.29,328.32c2.75-2.12,5.63-3.74,8.58-5.09"/>
|
||||
<path class="cls-5" d="m1038.26,354.53c2.74-8.05,5.47-16.09,12.38-23,1-1,2.02-1.91,3.06-2.74"/>
|
||||
<path class="cls-2" d="m1146.68,237.88c4.77-2.05,9.37-4.7,13.56-8.89,7.19-7.19,9.86-15.62,12.72-23.99"/>
|
||||
<path class="cls-2" d="m1104.48,269.52c2.18-5.56,4.97-10.94,9.8-15.78,9.01-9.01,19.96-10.92,30.32-15"/>
|
||||
<path class="cls-2" d="m1087.24,301.81c.77-.66,1.54-1.36,2.29-2.11,8.97-8.97,10.91-19.87,14.95-30.19"/>
|
||||
<path class="cls-2" d="m1026.9,358.65c5.37-11.45,6.52-24.05,16.66-34.2,4.27-4.27,8.97-6.94,13.84-9.01"/>
|
||||
<path class="cls-5" d="m1094.81,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.84-5.84,8.7-12.5,11.1-19.29"/>
|
||||
<path class="cls-5" d="m1084.44,290.49c5.46-6.38,7.92-13.57,10.37-20.77"/>
|
||||
<path class="cls-5" d="m1015.11,359.49c10.06-13.24,8.83-29.55,21.38-42.11,8.81-8.81,19.46-10.83,29.6-14.72"/>
|
||||
<path class="cls-6" d="m1084.86,270.61c4.27-10.56,6.06-21.8,15.28-31.01,13.81-13.81,32.15-10.94,45.96-24.75,5.31-5.31,8.16-11.3,10.43-17.44"/>
|
||||
<path class="cls-6" d="m1081.18,278.12c1.47-2.44,2.65-4.96,3.68-7.51"/>
|
||||
<path class="cls-6" d="m992.24,364.67c4.37-1.98,8.58-4.54,12.44-8.4,13.81-13.81,10.94-32.15,24.75-45.96,7.53-7.53,16.41-10.1,25.17-13.12"/>
|
||||
<path class="cls-3" d="m1081.14,254.2c2.6-7.6,5.4-15.14,11.93-21.67,10.98-10.98,24.84-11.42,37-18.08"/>
|
||||
<path class="cls-3" d="m1018.9,307.21c.93-1.23,1.95-2.43,3.09-3.6"/>
|
||||
<path class="cls-3" d="m984.53,357.88c4.6-2.02,9.03-4.64,13.08-8.68,8.15-8.15,10.49-17.88,13.88-27.32"/>
|
||||
<path class="cls-2" d="m1087.23,224.28c12.08-11.04,27.31-10.5,39.95-19.52"/>
|
||||
<path class="cls-2" d="m965.43,355.23c8.74-3.01,17.59-5.59,25.1-13.1,5.15-5.15,7.98-10.94,10.22-16.88"/>
|
||||
<path class="cls-5" d="m1079.99,217.36c7.45-6.89,16.11-9.32,24.62-12.28"/>
|
||||
<path class="cls-5" d="m1053.61,264.9c.19-.18.38-.37.57-.56,2.82-2.82,4.95-5.84,6.66-8.96"/>
|
||||
<path class="cls-5" d="m951.13,350.89c10.94-4.69,22.73-6.23,32.33-15.83,3.34-3.34,5.71-6.95,7.57-10.7"/>
|
||||
<path class="cls-3" d="m1082.35,203.85c1.12-.56,2.26-1.08,3.41-1.57"/>
|
||||
<path class="cls-3" d="m1047.74,256.62c5.99-6.29,8.7-13.47,11.19-20.72"/>
|
||||
<path class="cls-3" d="m944.48,343.64c10.82-4.55,22.43-6.17,31.91-15.65,2.28-2.28,4.1-4.68,5.62-7.16"/>
|
||||
<path class="cls-6" d="m1025.22,259.62c5.22-2.12,10.26-4.86,14.82-9.42,6.62-6.62,9.41-14.29,12.04-21.99"/>
|
||||
<path class="cls-6" d="m935.72,337.31c11.29-5.14,23.63-6.42,33.6-16.39,3.31-3.31,5.66-6.87,7.51-10.58"/>
|
||||
<path class="cls-6" d="m1017.34,252.87c5.5-2.17,10.83-4.95,15.62-9.74,8.42-8.42,10.64-18.52,14.22-28.26"/>
|
||||
<path class="cls-6" d="m937.17,326.94c8.73-3.01,17.58-5.59,25.08-13.09,4.68-4.68,7.45-9.89,9.6-15.26"/>
|
||||
<path class="cls-1" d="m1007.67,246.78c6.41-2.33,12.68-5.18,18.22-10.72,7.73-7.73,10.24-16.89,13.37-25.88"/>
|
||||
<path class="cls-1" d="m968.29,281.65c.6-1.73,1.21-3.46,1.88-5.17"/>
|
||||
<path class="cls-1" d="m966.75,286.14c.03-.08.05-.16.08-.24"/>
|
||||
<path class="cls-1" d="m966.51,286.85c.03-.08.05-.16.08-.24"/>
|
||||
<path class="cls-1" d="m966.26,287.56c.03-.08.06-.16.08-.24"/>
|
||||
<path class="cls-1" d="m932.2,319.15c8.04-2.74,16.08-5.47,22.98-12.37,5.76-5.76,8.62-12.3,10.99-18.98"/>
|
||||
<path class="cls-1" d="m1001.08,239.54c6.25-2.29,12.34-5.14,17.74-10.55,6.24-6.24,9.08-13.42,11.59-20.68"/>
|
||||
<path class="cls-1" d="m963.06,269.52c2.18-5.56,4.97-10.94,9.8-15.78,1.07-1.07,2.17-2.04,3.29-2.93"/>
|
||||
<path class="cls-1" d="m925.61,311.92c7.88-2.68,15.74-5.44,22.5-12.21,8.97-8.97,10.91-19.87,14.95-30.19"/>
|
||||
<path class="cls-1" d="m892.75,339.22c1.39-3.4,3.04-6.73,5.29-9.9"/>
|
||||
<path class="cls-4" d="m953.39,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.44-5.44,8.29-11.58,10.59-17.88"/>
|
||||
<path class="cls-4" d="m919.03,304.68c7.71-2.63,15.38-5.42,22.01-12.04,6.88-6.88,9.62-14.89,12.35-22.91"/>
|
||||
<path class="cls-4" d="m877.42,353.57c6.26-11.96,6.91-25.45,17.65-36.19,3.47-3.47,7.23-5.89,11.13-7.78"/>
|
||||
<path class="cls-5" d="m943.44,270.61c4.27-10.56,6.06-21.8,15.28-31.01,13.81-13.81,32.15-10.94,45.96-24.75,4.37-4.37,7.07-9.19,9.15-14.18"/>
|
||||
<path class="cls-5" d="m925.14,292.15c3.08-1.7,6.04-3.81,8.83-6.59,4.59-4.59,7.34-9.69,9.47-14.95"/>
|
||||
<path class="cls-5" d="m869.15,348.66c7.42-12.47,7.46-26.95,18.85-38.34,5.3-5.3,11.26-8.14,17.38-10.41"/>
|
||||
<path class="cls-5" d="m861.92,357.54c.45-.41.89-.83,1.33-1.27,1.64-1.64,3.04-3.34,4.27-5.1"/>
|
||||
<path class="cls-5" d="m845.02,367c2.8-1.02,5.58-2.13,8.27-3.53"/>
|
||||
<path class="cls-1" d="m931.57,272.8c8.67-12.89,8.09-28.29,20.07-40.27,13.81-13.81,32.15-10.94,45.96-24.75,1.74-1.74,3.21-3.55,4.49-5.41"/>
|
||||
<path class="cls-1" d="m919.63,284.18c2.52-1.53,4.96-3.38,7.27-5.69,1.82-1.82,3.36-3.73,4.68-5.69"/>
|
||||
<path class="cls-1" d="m839.4,359.39c5.91-2.24,11.66-5.06,16.78-10.19,13.81-13.81,10.94-32.15,24.75-45.96,5.65-5.65,12.06-8.51,18.6-10.86"/>
|
||||
<path class="cls-1" d="m821.84,365.93c3.88-1.84,7.9-3.18,11.91-4.54"/>
|
||||
<path class="cls-1" d="m927.95,259.58c5.34-11.43,6.5-23.99,16.63-34.12,13.81-13.81,32.15-10.94,45.96-24.75.23-.23.46-.47.68-.7"/>
|
||||
<path class="cls-1" d="m814.49,359c11.56-5.55,24.35-6.59,34.63-16.87,13.81-13.81,10.94-32.15,24.75-45.96,7.26-7.26,15.77-9.91,24.21-12.79"/>
|
||||
<path class="cls-4" d="m966.72,203.81c1.71-.65,3.4-1.34,5.07-2.13"/>
|
||||
<path class="cls-4" d="m921.3,251.58c.61-1.38,1.17-2.77,1.7-4.17"/>
|
||||
<path class="cls-4" d="m888.06,277.31c2.88-.99,5.76-1.94,8.6-3.04"/>
|
||||
<path class="cls-4" d="m856.77,305.44c2.21-5.75,5.02-11.34,10.02-16.34,6.41-6.41,13.81-9.23,21.27-11.79"/>
|
||||
<path class="cls-4" d="m793.5,362.67c.79-.97,1.65-1.93,2.58-2.86,13.81-13.81,32.15-10.94,45.96-24.75,7.46-7.46,10.05-16.24,13.04-24.92"/>
|
||||
<path class="cls-6" d="m870.29,274.52c7.29-3.65,15.11-5.37,22.51-8.65"/>
|
||||
<path class="cls-6" d="m854.37,288.75c1.46-2.33,3.2-4.58,5.35-6.72,3.3-3.3,6.87-5.65,10.57-7.5"/>
|
||||
<path class="cls-6" d="m842.96,316.43c1.08-2.28,1.99-4.6,2.83-6.94"/>
|
||||
<path class="cls-6" d="m785.33,357.01c1.08-1.47,2.3-2.89,3.68-4.28,13.81-13.81,32.15-10.94,45.96-24.75,1.06-1.06,2.03-2.15,2.91-3.26"/>
|
||||
<path class="cls-3" d="m855.76,272.17c10.01-8.01,21.88-9.17,32.59-14.61"/>
|
||||
<path class="cls-3" d="m848.5,279.88c1.2-1.69,2.56-3.34,4.15-4.93,1.01-1.01,2.05-1.94,3.11-2.78"/>
|
||||
<path class="cls-3" d="m774.22,356.66c1.88-3.85,4.28-7.56,7.72-10.99,9.31-9.31,20.68-11.04,31.34-15.41"/>
|
||||
<path class="cls-4" d="m843.1,270.62c.76-.93,1.59-1.84,2.48-2.73,9.89-9.89,22.12-11.23,33.34-16.27"/>
|
||||
<path class="cls-4" d="m838.05,278.49c1.36-2.71,2.98-5.36,5.05-7.88"/>
|
||||
<path class="cls-4" d="m766.57,350.82c1.97-4.29,4.5-8.43,8.3-12.23,9.48-9.48,21.1-11.1,31.92-15.65"/>
|
||||
<path class="cls-4" d="m898.94,207.13c.2-.55.41-1.09.63-1.63"/>
|
||||
<path class="cls-4" d="m831.84,269.79c1.72-3.13,3.84-6.15,6.67-8.97,10.15-10.15,22.77-11.29,34.22-16.67"/>
|
||||
<path class="cls-4" d="m827.95,278.58c1.1-2.99,2.32-5.94,3.88-8.8"/>
|
||||
<path class="cls-4" d="m763.25,337.02c1.29-1.89,2.78-3.73,4.54-5.49,8.8-8.8,19.44-10.83,29.58-14.71"/>
|
||||
<path class="cls-5" d="m888.32,210.2c2.98-8.33,5.17-16.88,11.28-24.35"/>
|
||||
<path class="cls-5" d="m821.64,269.52c2.18-5.56,4.97-10.94,9.8-15.78,8.34-8.34,18.33-10.6,27.98-14.12"/>
|
||||
<path class="cls-5" d="m819.72,274.81c.61-1.77,1.23-3.54,1.92-5.29"/>
|
||||
<path class="cls-5" d="m751.81,338.07c2.05-4.79,4.71-9.41,8.92-13.62,9.27-9.27,20.59-11.03,31.21-15.36"/>
|
||||
<path class="cls-4" d="m880.92,204.05c3.54-9.68,5.79-19.72,14.16-28.09.59-.59,1.2-1.16,1.81-1.69"/>
|
||||
<path class="cls-4" d="m811.97,269.72c2.74-8.06,5.47-16.13,12.4-23.05,8.55-8.55,18.84-10.71,28.71-14.39"/>
|
||||
<path class="cls-4" d="m810.37,274.33c.55-1.53,1.08-3.07,1.6-4.6"/>
|
||||
<path class="cls-4" d="m747.53,325.39c1.62-2.78,3.59-5.47,6.12-8,8.6-8.6,18.97-10.73,28.9-14.46"/>
|
||||
<path class="cls-1" d="m871.3,203.18c5.41-11.47,6.53-24.12,16.71-34.29.54-.54,1.09-1.06,1.65-1.55"/>
|
||||
<path class="cls-1" d="m802.02,270.61c4.27-10.56,6.06-21.8,15.28-31.01,2.7-2.7,5.56-4.76,8.54-6.43"/>
|
||||
<path class="cls-1" d="m801.49,271.88c.18-.42.36-.85.53-1.27"/>
|
||||
<path class="cls-1" d="m738.4,322.28c1.95-4.2,4.46-8.25,8.18-11.97,8.34-8.34,18.34-10.6,28-14.12"/>
|
||||
<path class="cls-3" d="m858.41,205.35c10.69-12.74,9.67-28.68,20.53-41.38"/>
|
||||
<path class="cls-3" d="m792.86,268.16c6-11.82,6.79-25.06,17.36-35.63,3.37-3.37,7.01-5.75,10.79-7.62"/>
|
||||
<path class="cls-3" d="m741.51,301.38c8.07-6.98,17.46-9.1,26.52-12.45"/>
|
||||
<path class="cls-5" d="m856.93,189.5c4.46-9.22,6.01-19.23,11.64-28.13"/>
|
||||
<path class="cls-5" d="m785.53,261.59c6.02-11.54,6.85-24.49,16.55-35.02"/>
|
||||
<path class="cls-5" d="m735.94,293.08c1.83-1.43,3.72-2.63,5.65-3.68"/>
|
||||
<path class="cls-2" d="m846.93,187.64c7.98-12.12,8-26.4,18.01-37.96"/>
|
||||
<path class="cls-2" d="m779.03,253.39c5.71-11.66,6.66-24.62,17.05-35,2.11-2.11,4.32-3.83,6.61-5.28"/>
|
||||
<path class="cls-1" d="m840.5,179.55c7.54-12.21,7.64-26.45,18.16-37.85"/>
|
||||
<path class="cls-1" d="m770.16,249.65c7.42-12.47,7.46-26.95,18.85-38.34,3.55-3.55,7.4-6,11.39-7.91"/>
|
||||
<path class="cls-5" d="m825.02,182.1c.98-.8,1.94-1.66,2.89-2.6,9.14-9.14,10.97-20.26,15.17-30.74"/>
|
||||
<path class="cls-5" d="m758.11,249.26c12.77-13.69,10.34-31.52,23.83-45.01,2.93-2.93,6.05-5.1,9.3-6.85"/>
|
||||
<path class="cls-5" d="m703.64,285.69c.73-1.47,1.54-2.93,2.46-4.35"/>
|
||||
<path class="cls-4" d="m817.66,175.26c1.08-.86,2.14-1.8,3.17-2.83,10.18-10.18,11.3-22.83,16.71-34.3"/>
|
||||
<path class="cls-4" d="m752.29,240.78c11.37-13.49,9.55-30.57,22.58-43.6,10.57-10.57,23.81-11.37,35.63-17.36"/>
|
||||
<path class="cls-4" d="m701.68,270.62c.76-.93,1.59-1.84,2.48-2.73,1.33-1.33,2.7-2.5,4.1-3.55"/>
|
||||
<path class="cls-4" d="m693.79,285.16c1.88-5.05,4.16-9.99,7.89-14.54"/>
|
||||
<path class="cls-1" d="m747.04,231.36c9.39-13.08,8.47-28.97,20.76-41.26,13.81-13.81,32.15-10.94,45.96-24.75,6.73-6.73,9.5-14.54,12.17-22.37"/>
|
||||
<path class="cls-1" d="m690.42,269.79c1.72-3.13,3.84-6.15,6.67-8.97,2.61-2.61,5.39-4.63,8.26-6.27"/>
|
||||
<path class="cls-1" d="m684.96,283.07c1.53-4.5,3.11-9,5.46-13.28"/>
|
||||
<path class="cls-5" d="m749.68,202.17c2.39-6.73,5.25-13.33,11.05-19.13,13.81-13.81,32.15-10.94,45.96-24.75,2.5-2.5,4.45-5.15,6.06-7.89"/>
|
||||
<path class="cls-5" d="m740.26,223.88c4.49-6.44,6.57-13.53,9-20.53"/>
|
||||
<path class="cls-5" d="m680.22,269.52c2.18-5.56,4.97-10.94,9.8-15.78,1.39-1.39,2.82-2.61,4.29-3.69"/>
|
||||
<path class="cls-5" d="m674.09,286.31c2.38-5.5,3.95-11.23,6.13-16.79"/>
|
||||
<path class="cls-1" d="m756.22,173.62c13.45-11.18,30.43-9.44,43.39-22.41,1.54-1.54,2.87-3.13,4.03-4.76"/>
|
||||
<path class="cls-1" d="m742.95,194.13c1.81-4.98,3.94-9.87,7.4-14.39"/>
|
||||
<path class="cls-1" d="m670.55,269.72c2.69-7.91,5.37-15.82,12-22.65"/>
|
||||
<path class="cls-1" d="m662.03,288.14c4.2-5.77,6.36-12.09,8.51-18.42"/>
|
||||
<path class="cls-5" d="m785.52,149.68c2.43-1.5,4.79-3.3,7.02-5.54.55-.55,1.07-1.1,1.57-1.66"/>
|
||||
<path class="cls-5" d="m767.1,157.36c6.1-2.11,12.26-3.97,17.99-7.42"/>
|
||||
<path class="cls-5" d="m660.6,270.61c2.86-7.07,4.61-14.45,8.22-21.32"/>
|
||||
<path class="cls-5" d="m647.92,288.42c1.09-.87,2.16-1.82,3.21-2.86,4.59-4.59,7.34-9.69,9.47-14.95"/>
|
||||
<path class="cls-4" d="m648.73,272.8c5.17-7.69,7.05-16.27,10.27-24.48"/>
|
||||
<path class="cls-4" d="m626.84,288.84c6.06-2.26,11.96-5.1,17.21-10.35,1.82-1.82,3.36-3.73,4.68-5.69"/>
|
||||
<path class="cls-4" d="m584.28,330.39c.67-1.88,1.31-3.78,1.95-5.67"/>
|
||||
<path class="cls-4" d="m572.78,349.76c.19-.18.38-.37.57-.55.71-.71,1.38-1.44,2.01-2.17"/>
|
||||
<path class="cls-4" d="m538.32,366.26c.6-.29,1.2-.58,1.81-.85"/>
|
||||
<path class="cls-3" d="m629.77,277.07c2.5-1.53,4.92-3.36,7.21-5.65,7.26-7.26,9.91-15.78,12.8-24.23"/>
|
||||
<path class="cls-3" d="m621.58,281.07c2.79-1.11,5.54-2.38,8.19-4"/>
|
||||
<path class="cls-3" d="m546.14,353.53c7.08-2.46,14.05-5.31,20.13-11.4,10.75-10.75,11.39-24.26,17.67-36.23"/>
|
||||
<path class="cls-3" d="m532.1,358.78c3.12-1.46,6.33-2.61,9.55-3.72"/>
|
||||
<path class="cls-3" d="m516.94,370.74c1-1.32,2.12-2.61,3.37-3.86,2.15-2.15,4.4-3.89,6.74-5.36"/>
|
||||
<path class="cls-6" d="m617.74,272.62c4.27-1.96,8.39-4.49,12.17-8.27,5.57-5.57,8.43-11.89,10.76-18.34"/>
|
||||
<path class="cls-6" d="m583.93,289.12s.02-.02.02-.02c.22-.22.44-.44.67-.65"/>
|
||||
<path class="cls-6" d="m511.13,362.09c.66-.77,1.36-1.54,2.11-2.29,13.81-13.81,32.15-10.94,45.96-24.75,12.95-12.95,11.23-29.88,22.35-43.33"/>
|
||||
<path class="cls-5" d="m619.8,260c1.03-.83,2.05-1.74,3.04-2.73,2.68-2.68,4.73-5.53,6.4-8.49"/>
|
||||
<path class="cls-5" d="m497.05,366.83c2.08-4.96,4.78-9.75,9.12-14.1,13.81-13.81,32.15-10.94,45.96-24.75,13.72-13.72,10.98-31.93,24.5-45.71"/>
|
||||
<path class="cls-3" d="m617.52,248.33c.56-.64,1.08-1.28,1.58-1.94"/>
|
||||
<path class="cls-3" d="m488.75,362.87c2.26-6.06,5.1-11.96,10.35-17.21,13.81-13.81,32.15-10.94,45.96-24.75,9.52-9.52,11.11-21.19,15.71-32.05"/>
|
||||
<path class="cls-5" d="m545.99,302.25c2.42-5.1,3.98-10.44,5.86-15.68"/>
|
||||
<path class="cls-5" d="m537.02,314.78c.32-.3.64-.61.96-.93,2.94-2.94,5.13-6.09,6.88-9.36"/>
|
||||
<path class="cls-5" d="m479.81,361.1c2.68-7.88,5.44-15.74,12.21-22.5,10.55-10.55,23.75-11.37,35.56-17.33"/>
|
||||
<path class="cls-3" d="m540.6,291.3c1.39-3.5,2.52-7.06,3.76-10.6"/>
|
||||
<path class="cls-3" d="m473.79,350.98c2.41-6.84,5.27-13.56,11.16-19.46,4.81-4.81,10.16-7.59,15.68-9.76"/>
|
||||
<path class="cls-4" d="m462.43,355.9c4.41-10.69,6.11-22.11,15.46-31.45,2.73-2.73,5.65-4.82,8.67-6.5"/>
|
||||
<path class="cls-5" d="m588.15,221.24c1-1.06,1.92-2.14,2.75-3.24"/>
|
||||
<path class="cls-5" d="m455.83,347.65c4.07-10.34,5.98-21.27,14.98-30.27,3-3,6.23-5.22,9.57-6.99"/>
|
||||
<path class="cls-6" d="m586.61,206.73c1.65-2.87,2.93-5.84,4.07-8.85"/>
|
||||
<path class="cls-6" d="m580.41,214.86s0,0,0,0c1.28-1.28,2.42-2.6,3.44-3.95"/>
|
||||
<path class="cls-6" d="m450.16,336.8c3.23-9.18,5.67-18.58,13.58-26.49,5.36-5.36,11.41-8.21,17.61-10.5"/>
|
||||
<path class="cls-4" d="m546.73,221.41c9.22-3.26,18.67-5.68,26.61-13.63,7.49-7.49,10.08-16.33,13.08-25.04"/>
|
||||
<path class="cls-4" d="m442.17,332.26c3.75-9.97,5.86-20.39,14.5-29.02,4.7-4.7,9.93-7.47,15.33-9.62"/>
|
||||
<path class="cls-4" d="m400.55,364.63c4.49-1.85,9.11-3.22,13.65-4.89"/>
|
||||
<path class="cls-5" d="m540.54,214.03c8.94-3.11,18.04-5.63,25.73-13.32,6.12-6.12,8.97-13.14,11.44-20.25"/>
|
||||
<path class="cls-5" d="m434.99,325.48c3.82-10.06,5.89-20.59,14.61-29.32s19.31-10.8,29.39-14.64"/>
|
||||
<path class="cls-5" d="m394.81,357.02c3.97-1.55,8.03-2.79,12.02-4.25"/>
|
||||
<path class="cls-1" d="m536.09,206.06c8.08-2.75,16.17-5.48,23.11-12.42,7.82-7.82,10.29-17.1,13.47-26.18"/>
|
||||
<path class="cls-1" d="m463.8,277.31c3.66-1.26,7.34-2.45,10.92-3.98"/>
|
||||
<path class="cls-1" d="m428.95,315.58c3.23-9.18,5.67-18.57,13.58-26.48,6.41-6.41,13.81-9.23,21.27-11.79"/>
|
||||
<path class="cls-1" d="m370.2,361.53c.51-.58,1.05-1.15,1.61-1.72,9.01-9.01,19.95-10.92,30.3-14.99"/>
|
||||
<path class="cls-5" d="m537.21,196.03c5.25-2.13,10.34-4.88,14.92-9.46,7.88-7.88,10.33-17.23,13.54-26.38"/>
|
||||
<path class="cls-5" d="m446.02,274.52c8.41-4.21,17.53-5.85,25.88-10.28"/>
|
||||
<path class="cls-5" d="m423.17,304.76c2.71-7.96,5.46-15.9,12.29-22.74,3.3-3.3,6.87-5.65,10.57-7.5"/>
|
||||
<path class="cls-5" d="m359.78,358.86c1.38-2.12,3.01-4.17,4.97-6.13,9.54-9.54,21.24-11.12,32.12-15.74"/>
|
||||
<path class="cls-1" d="m527.25,190.07c6.27-2.3,12.39-5.15,17.81-10.57,6.02-6.02,8.87-12.91,11.32-19.91"/>
|
||||
<path class="cls-1" d="m431.49,272.17c11.31-9.05,25.01-9.35,36.7-16.98"/>
|
||||
<path class="cls-1" d="m425.28,278.48c.93-1.2,1.96-2.38,3.11-3.52,1.01-1.01,2.05-1.94,3.11-2.78"/>
|
||||
<path class="cls-1" d="m349.01,358.7c2.02-4.58,4.63-9,8.66-13.03,12.28-12.28,28.15-11.37,41.22-20.73"/>
|
||||
<path class="cls-5" d="m523.1,181.87c5.24-2.13,10.31-4.87,14.88-9.44,7.96-7.96,10.38-17.42,13.64-26.65"/>
|
||||
<path class="cls-5" d="m421.98,267.23c13.73-13.07,31.71-10.51,45.29-24.1,1.4-1.4,2.62-2.84,3.71-4.32"/>
|
||||
<path class="cls-5" d="m348.02,341.46c.79-.97,1.65-1.93,2.59-2.86,12.57-12.57,28.89-11.32,42.13-21.4"/>
|
||||
<path class="cls-5" d="m507.07,178.02c8.33-2.84,16.7-5.52,23.85-12.67,5.04-5.04,7.85-10.68,10.07-16.48"/>
|
||||
<path class="cls-5" d="m479.11,197.63c1.56-2.61,3.45-5.14,5.84-7.53.96-.96,1.94-1.83,2.93-2.64"/>
|
||||
<path class="cls-5" d="m424.49,253.47c11.84-6.03,25.12-6.81,35.72-17.41,6.78-6.78,9.54-14.67,12.23-22.57"/>
|
||||
<path class="cls-5" d="m417.53,257.89c.07-.05.13-.1.2-.15"/>
|
||||
<path class="cls-5" d="m414.71,260.35c.86-.83,1.74-1.6,2.63-2.31"/>
|
||||
<path class="cls-5" d="m340.93,334.41c.8-.98,1.66-1.94,2.6-2.89,11.92-11.92,27.23-11.41,40.07-19.94"/>
|
||||
<path class="cls-5" d="m423.83,243.6c10.05-3.82,20.58-5.89,29.3-14.61,13.81-13.81,10.94-32.15,24.75-45.96,13.81-13.81,32.15-10.94,45.96-24.75,3.36-3.36,5.73-6.99,7.6-10.75"/>
|
||||
<path class="cls-5" d="m337.27,323.67c13.71-12.92,31.62-10.43,45.16-23.97.15-.15.3-.3.45-.46"/>
|
||||
<path class="cls-6" d="m415.39,237.07c10.46-4.18,21.56-6.03,30.68-15.14,13.81-13.81,10.94-32.15,24.75-45.96s32.15-10.94,45.96-24.75c.6-.6,1.17-1.21,1.71-1.82"/>
|
||||
<path class="cls-6" d="m328.28,318.54c.36-.39.73-.78,1.11-1.16,12.94-12.94,29.87-11.24,43.31-22.34"/>
|
||||
<path class="cls-4" d="m429.91,221.58c3.17-1.73,6.22-3.87,9.08-6.73,13.81-13.81,10.94-32.15,24.75-45.96,12.07-12.07,27.6-11.4,40.54-20.25"/>
|
||||
<path class="cls-4" d="m322.38,310.25c13.65-13.58,31.71-10.96,45.44-24.24"/>
|
||||
<path class="cls-4" d="m290.36,361.92c.21-.13.43-.26.64-.4"/>
|
||||
<path class="cls-2" d="m466.04,154.93c3.06-1.64,6.22-2.89,9.41-4.04"/>
|
||||
<path class="cls-2" d="m429.06,210.36c.97-.79,1.92-1.65,2.86-2.58,13.81-13.81,10.94-32.15,24.75-45.96,1.2-1.2,2.43-2.27,3.7-3.24"/>
|
||||
<path class="cls-2" d="m318.29,300.51c13.38-10.75,30.11-9.21,42.92-22.02,1.5-1.5,2.8-3.05,3.95-4.65"/>
|
||||
<path class="cls-2" d="m282.43,355.36c.57-.33,1.14-.68,1.71-1.04"/>
|
||||
<path class="cls-2" d="m264.38,362.65c5.25-1.84,10.57-3.44,15.63-5.99"/>
|
||||
<path class="cls-4" d="m435.9,181.57c.64-1.81,1.25-3.62,1.87-5.44"/>
|
||||
<path class="cls-4" d="m428.62,196.31c2.04-2.79,3.6-5.7,4.91-8.69"/>
|
||||
<path class="cls-4" d="m421.13,203.97c1.27-.97,2.51-2.05,3.72-3.26,1.05-1.05,2-2.12,2.86-3.21"/>
|
||||
<path class="cls-4" d="m319.17,288.45c11.65-5.7,24.59-6.66,34.97-17.03.42-.42.83-.85,1.22-1.27"/>
|
||||
<path class="cls-4" d="m242.19,362.87c13.08-9.37,28.96-8.46,41.24-20.74,6.25-6.25,9.09-13.44,11.6-20.71"/>
|
||||
<path class="cls-5" d="m309.85,282.55c12.21-6.78,26.17-7.16,37.22-18.21,3.29-3.29,5.64-6.84,7.49-10.53"/>
|
||||
<path class="cls-5" d="m235.5,355.53c13-9.09,28.69-8.31,40.86-20.48,9.89-9.89,11.23-22.12,16.27-33.34"/>
|
||||
<path class="cls-5" d="m360.99,215.69c1.1-1.5,2.34-2.96,3.75-4.37.9-.9,1.83-1.74,2.77-2.5"/>
|
||||
<path class="cls-5" d="m352.56,233.73c.54-1.58,1.08-3.15,1.65-4.72"/>
|
||||
<path class="cls-5" d="m303.2,275.25c12.11-6.56,25.87-7.05,36.79-17.97,2.56-2.56,4.55-5.28,6.18-8.1"/>
|
||||
<path class="cls-5" d="m243.26,341.41c9.03-3.16,18.25-5.64,26.02-13.42,11.94-11.94,11.41-27.26,19.97-40.12"/>
|
||||
<path class="cls-1" d="m343.02,233.66c3.85-10.09,5.9-20.67,14.65-29.42,5.2-5.2,11.03-8.03,17.03-10.28"/>
|
||||
<path class="cls-1" d="m295.76,268.38c12.2-6.76,26.13-7.14,37.17-18.18,4.38-4.38,7.08-9.22,9.17-14.22"/>
|
||||
<path class="cls-1" d="m236.03,334.39c9.09-3.18,18.37-5.65,26.19-13.48,11.63-11.63,11.43-26.48,19.33-39.13"/>
|
||||
<path class="cls-2" d="m410.41,145.21c.14-.39.28-.78.43-1.17"/>
|
||||
<path class="cls-2" d="m386.21,179.82c.11-.06.22-.11.33-.17"/>
|
||||
<path class="cls-2" d="m237.47,324.36c6.22-2.29,12.29-5.14,17.67-10.52,13.81-13.81,10.94-32.15,24.75-45.96,13.81-13.81,32.15-10.94,45.96-24.75,13.81-13.81,10.94-32.15,24.75-45.96,10.57-10.57,23.79-11.37,35.61-17.35"/>
|
||||
<path class="cls-5" d="m391.1,163.64c5.43-6.15,7.97-13.09,10.36-20.07"/>
|
||||
<path class="cls-5" d="m385.51,168.81c.36-.27.72-.56,1.08-.85"/>
|
||||
<path class="cls-5" d="m242.7,311.23c1.85-1.27,3.64-2.73,5.37-4.46,13.81-13.81,10.94-32.15,24.75-45.96,13.81-13.81,32.15-10.94,45.96-24.75,13.81-13.81,10.94-32.15,24.75-45.96,12.52-12.52,28.77-11.33,41.98-21.29"/>
|
||||
<path class="cls-5" d="m384.12,156.47c3.49-3.98,5.77-8.28,7.6-12.71"/>
|
||||
<path class="cls-5" d="m240.48,300.22c.17-.17.35-.34.52-.51,13.81-13.81,10.94-32.15,24.75-45.96s32.15-10.94,45.96-24.75,10.94-32.15,24.75-45.96,32.15-10.94,45.96-24.75c.6-.6,1.16-1.2,1.69-1.81"/>
|
||||
<path class="cls-4" d="m381.93,142.4c.3-.55.6-1.1.87-1.66"/>
|
||||
<path class="cls-4" d="m332.28,173.36c13.4-10.89,30.21-9.28,43.08-22.15,2.78-2.78,4.88-5.74,6.58-8.81"/>
|
||||
<path class="cls-4" d="m321.62,187.06c.9-1.84,1.91-3.66,3.1-5.42"/>
|
||||
<path class="cls-4" d="m315.71,202.72c1.2-3.38,2.28-6.79,3.55-10.14"/>
|
||||
<path class="cls-4" d="m299.97,225.89c1.6-1.15,3.16-2.46,4.67-3.97,2.41-2.41,4.31-4.95,5.87-7.58"/>
|
||||
<path class="cls-4" d="m236.01,290.37c11.46-13.5,9.6-30.64,22.67-43.7,8.25-8.25,18.13-10.55,27.69-14.01"/>
|
||||
<path class="cls-6" d="m343.39,157.17c8.67-2.98,17.44-5.58,24.9-13.03.57-.57,1.1-1.14,1.62-1.72"/>
|
||||
<path class="cls-6" d="m330.09,162.9c.8-.47,1.6-.91,2.41-1.32"/>
|
||||
<path class="cls-6" d="m245.82,247.04c1.55-2.58,3.43-5.08,5.79-7.44,11.84-11.84,27.02-11.42,39.81-19.77"/>
|
||||
<path class="cls-6" d="m236.86,269.26c1.77-4.6,3.15-9.3,4.95-13.89"/>
|
||||
<path class="cls-4" d="m239.14,239.34c1.48-2.36,3.23-4.64,5.4-6.81,12.29-12.29,28.17-11.37,41.25-20.75"/>
|
||||
<path class="cls-6" d="m235.4,227.7c.65-.76,1.33-1.51,2.07-2.24,13.81-13.81,32.15-10.94,45.96-24.75.65-.65,1.27-1.32,1.85-1.99"/>
|
||||
<path class="cls-5" d="m286.6,176.72c.68-1.8,1.3-3.61,1.92-5.42"/>
|
||||
<path class="cls-5" d="m243.13,209.86c11.19-5,23.37-6.36,33.23-16.22,3.35-3.35,5.72-6.96,7.58-10.72"/>
|
||||
<path class="cls-3" d="m234.01,203.75c11.73-5.83,24.81-6.72,35.28-17.19,7.39-7.39,10.01-16.09,12.96-24.69"/>
|
||||
<path class="cls-1" d="m242.65,190.7c6.88-2.42,13.64-5.27,19.57-11.2,9.04-9.04,10.93-20.02,15.03-30.4"/>
|
||||
<path class="cls-3" d="m246.15,179.1c3.14-1.72,6.16-3.85,8.99-6.68,7.08-7.08,9.77-15.35,12.58-23.59"/>
|
||||
<path class="cls-4" d="m239.74,171.67c2.9-1.65,5.7-3.68,8.34-6.31,4.1-4.1,6.74-8.61,8.77-13.28"/>
|
||||
<path class="cls-5" d="m240.12,159.14c.3-.28.59-.56.88-.86,3.57-3.57,6.03-7.45,7.94-11.47"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 39 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 193 KiB |
@@ -1,21 +1,21 @@
|
||||
https://www.proxyscan.io/download?type=https
|
||||
https://openproxy.space/list/http
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/http.txt
|
||||
https://www.proxyscan.io/download?type=http
|
||||
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt
|
||||
https://api.proxyscrape.com/v2/?request=getproxies&protocol=http&timeout=10000&country=all&ssl=all&anonymity=all
|
||||
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/https.txt
|
||||
https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt
|
||||
https://raw.githubusercontent.com/proxy4parsing/proxy-list/main/http.txt
|
||||
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/http.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/http.txt
|
||||
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/http.txt
|
||||
https://www.proxy-list.download/api/v1/get?type=https
|
||||
https://www.proxy-list.download/api/v1/get?type=http
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/http.txt
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/https.txt
|
||||
https://api.openproxylist.xyz/http.txt
|
||||
http://pubproxy.com/api/proxy
|
||||
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/http.txt
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt
|
||||
https://www.proxyscan.io/download?type=https
|
||||
https://openproxy.space/list/http
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/http.txt
|
||||
https://www.proxyscan.io/download?type=http
|
||||
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt
|
||||
https://api.proxyscrape.com/v2/?request=getproxies&protocol=http&timeout=10000&country=all&ssl=all&anonymity=all
|
||||
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/https.txt
|
||||
https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt
|
||||
https://raw.githubusercontent.com/proxy4parsing/proxy-list/main/http.txt
|
||||
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/http.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/http.txt
|
||||
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/http.txt
|
||||
https://www.proxy-list.download/api/v1/get?type=https
|
||||
https://www.proxy-list.download/api/v1/get?type=http
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/http.txt
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/https.txt
|
||||
https://api.openproxylist.xyz/http.txt
|
||||
http://pubproxy.com/api/proxy
|
||||
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/http.txt
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt
|
||||
@@ -1,15 +1,15 @@
|
||||
https://api.openproxylist.xyz/socks4.txt
|
||||
https://www.proxy-list.download/api/v1/get?type=socks4
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks4.txt
|
||||
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks4.txt
|
||||
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks4.txt
|
||||
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt
|
||||
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/socks4.txt
|
||||
https://www.proxyscan.io/download?type=socks4
|
||||
https://www.socks-proxy.net/
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks4.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks4.txt
|
||||
https://openproxy.space/list/socks4
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks4.txt
|
||||
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS4_RAW.txt
|
||||
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks4&timeout=10000&country=all
|
||||
https://api.openproxylist.xyz/socks4.txt
|
||||
https://www.proxy-list.download/api/v1/get?type=socks4
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks4.txt
|
||||
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks4.txt
|
||||
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks4.txt
|
||||
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt
|
||||
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/socks4.txt
|
||||
https://www.proxyscan.io/download?type=socks4
|
||||
https://www.socks-proxy.net/
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks4.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks4.txt
|
||||
https://openproxy.space/list/socks4
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks4.txt
|
||||
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS4_RAW.txt
|
||||
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks4&timeout=10000&country=all
|
||||
@@ -1,15 +1,15 @@
|
||||
https://raw.githubusercontent.com/thespeedx/proxy-list/master/socks5.txt
|
||||
https://api.openproxylist.xyz/socks5.txt
|
||||
https://www.proxyscan.io/download?type=socks5
|
||||
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt
|
||||
https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt
|
||||
https://www.proxy-list.download/api/v1/get?type=socks5
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks5.txt
|
||||
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks5.txt
|
||||
https://raw.githubusercontent.com/hyperbeats/proxy-list/main/socks5.txt
|
||||
https://openproxy.space/list/socks5
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks5.txt
|
||||
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks5&timeout=10000&country=all
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks5.txt
|
||||
https://raw.githubusercontent.com/shiftytr/proxy-list/master/socks5.txt
|
||||
https://raw.githubusercontent.com/thespeedx/proxy-list/master/socks5.txt
|
||||
https://api.openproxylist.xyz/socks5.txt
|
||||
https://www.proxyscan.io/download?type=socks5
|
||||
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt
|
||||
https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt
|
||||
https://www.proxy-list.download/api/v1/get?type=socks5
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks5.txt
|
||||
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks5.txt
|
||||
https://raw.githubusercontent.com/hyperbeats/proxy-list/main/socks5.txt
|
||||
https://openproxy.space/list/socks5
|
||||
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks5.txt
|
||||
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks5&timeout=10000&country=all
|
||||
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt
|
||||
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks5.txt
|
||||
https://raw.githubusercontent.com/shiftytr/proxy-list/master/socks5.txt
|
||||
@@ -0,0 +1 @@
|
||||
your proxies will land here
|
||||
@@ -0,0 +1,3 @@
|
||||
httpx==0.24.1
|
||||
pystyle==2.9
|
||||
PyYAML==6.0.1
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
premades: "?", # Sets the premade file | '?' for asking | 'n' for sites.txt | '1' for http/s | '2' for socks4 | '3' for socks5
|
||||
presets: "?", # Sets the presets file | '?' for asking | 'n' for sites.txt | '1' for http/s | '2' for socks4 | '3' for socks5
|
||||
|
||||
removeWebsites: "?", # Removes not connectable websites | '?' for asking | 'y' or 'n'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user