u108 = 587
IIlIIIlIlIIlIIllIlIIIlIllIIlIllIIIIIIllIIllIlllllllIlIIIlIlIlIIlIlIIIlIIIlIlIIIIIlIlIIllllIIIIIIIIIlllIIIl = "LkDjeVvySawuwhxAMZwGWLcHTLNYTgngWnHBPhkMyNYEgEJhNQuCvEEGzeWBOxiNkaKhqLMYTvuQHlj"
o16385592181519153104 = 352
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE = "isLgUJZSYmwpJjUGAuiFJowKQgXrsNIQNUGVdaGMVcjevRaKJXqpFLvPsJTwoGSotahmTQVpHajRKft"
EXBLZvwHYdqLuRuTVcKCRESQCrOplwnGTveCCBJikRaPfwUifGbZTznnFOPOQeeVGaRnKpigkvuwCVs100 = "KbKaNBxbrXhEAGvAoqBZrWHZdUWCbhyEfxsnEjPobNnNmCniAVJyWoqeZFbvbebaKIicAQkLPNiuFxL"
llIllIllIIIlIlIlllIIIIlIIIIlIllIIllIIIlIIlIllIIlIllllIIIlIIlIlIllIlllllIIIIIllIIlIIIlIIllIIIlIIllI = "VqfaBGMcXjmABAmSJDdQKjabDXakYEHanDHxJtropryjMrRSvACIAaVRYWyNOXUfwYMFoYBFMUWHHuh"
Q1638559218151456896 = 48
IIlIlllIlIlIIlIIIlIlIIIIllIlllIIIlIlIlIlIlIIIIlIIllIIlIllIlIIIllIIllIllIIlllIIIllIlIIIIllIlIll = "PwGzcrXkCObRrdaSGlxSbsHHlHopXbYKVNdbpqKMlNRWSAQeTbldlSZaiMSVvLxXuiOSKfltUvnMwis"
llIIlllIlllIIlIlIIlIIIlIlIIlIllIlIIlIIIlIllllIlIllIllIllIlIlIIIllllIIIIllIlllIIIIIIIlIIllllI = "edLtWPTzJQcRTLvXNDHRgmVBQqlUdcETHhwbIQZjUYIqpunbaacfeRvwCpzwWJvWpeidtMUKLMqyPWQ"
j1638559218151143890 = 563
lIIllIlIlllllIIlIlIIlIllIlIIllIIIIIllIlIIIlllllIIllIlIllllIlIllIlllllIIlIIIllllIlIIllllI = 451
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq = 341
nqDdVVLfFZDwdcktYqUahgtUXXIUnHjzSIXGFNbvOoeFvhRGCgIBxvjMSwLmlgtENTtbKkeettemjhX84 = "pIMhKqPZqEsVZjLTZgYOuIOuduytVrEvQrssqDXwWwkLSqHJDNaqlfDXqLZbIqFhDDYVAGIbeuolhpS"
AaaaaaaaaAAaaaAAAaAaAAAaAaAAaAAAaAAAaAAAaaaAaAAaaaAaaAAaAAaaAAAaaAAAaAAAaaAaaAAAaa = 435
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = 15
ZuzkPUKGhHpuFdwrleMSYnACRfWIBlLWBAYssgDsnSUwiSqsVPVfuhSoTfOQaIvlLBGGypmaXFttdeL78 = 589
C76 = 363
AaAAaaAaaaAaaaaaaaAAAaaaAaaAaaaAAAaaaaAAaaaaaaAAaAAAaAaAAAaaaAAaAaaAAAaaaA = "wWebLtWnfjQIzGEpWRWFilPCFJkrrMVISyibzasPzRsHQQfHBtyLCgPqsnWQxouBKfBJzPycJKYbCFG"
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS = 280
R1638559218150448670 = 653
NeFmkqbKcVqAYpMENTxQKfsTaMlxLFKnXbNJlZyXPJLdiVnVUFgduvuKVLqEkcYbtzGEGDKrITZMJNf68 = "sNDHvhRETgAGborWBdwWDZEUKAgnUXtTniaqdTnxymDdmNLfMDsjkdudIjaKNahsYYMzetsUvclhsAJ"
IlIllllIlllIIIllIlIlIIlIllIllIllllIlIlllllIIIIIIlllIlllIIIIIIIIIll = 749
AhGWMdcSDnGJyGNHbfNtGALicFniEygHLjhTkqJXHMwzrDusyDKLOLqshFAiRAYUrtfRQnVvfFOwHuM64 = "FgumZYdxjwNiYqAWjDNBpVBwgiRgJmucKtnRxpPDJaZBuShXixALBcxSNGWJqXveSDmlmOlZolPwtaU"
lIIlIIIIIIlIllllIIIlllIIIIllIIIlllIIllllIlllIlIllIIIllllIlIIII = "BXtEGziNBPOOicJWXyftLQJuNHTLHIzpyXGxcgHcSPsMVVLDbssCKqxJizcxQKUUpYHgbPzAlnBpsiU"
v163855921814989160 = "DoTzpKDktIkMqRyJOWiNelURMwNAKHFUrAlQvYkjrfsHcPrhoxllTKabWBrkPnGQFXpbHTviGzAhiBx"
OqiKCZZskMQKhUBpXLTfFKuFQnAnsoLlBnKglWeiTVZvERCJVeAbbTSdEEUfXDVAKqBODtLOdrrsEoc58 = 254
N1638559218149722856 = 390
d1638559218149711154 = 312
hlNAAUDycnTlrdivRsiswBBWBCsaVXEwlhzNpDttdUEMwgipytDHrqRuzoaUnIJXroMrEiGnCAxzmar52 = 433
aAaaAaAAaaaaAAAAaAaAaaaAAaAaaaaAAAAAaaAaaaaAAAAAaa = "PuqmmqvLaIumXBWLNnJXLlGcIhpgOXHKjJcGBcDDGfaCGaZnvEouGtPRlbXIETItRHztSotenNUPOBh"
U1638559218149450348 = "imEZvwnRfYfiBnlvMKuxbzFUlUbCONeBuLwwWxWjbmCuNOuNgDGybPBrTsPFXsjThAkPrfClbfXTTUs"
aaaAAAaaAAaaAaaAAaaaaAaaaaaAAAaaaaaaAAaaAAAAaa = 108
E163855921814932744 = "bgnqjwlCVAeyXseXCBUKePPsDdOOoOUEcAdrGOvkqLGAJczFuiUJqUXIIWydMYSOzAToWaYBsoCzZEI"
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ = "gnFrWPegOFBCCEhrpEukVHMtdvOpnAzgUqhLEIwtpbuHErppVaqiFuxbtbDUtZYHGmumniHrSouoFAi"
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu = "utAcooeDXHwcfLGxHALpfgbPqklzeWvmBllAduKWmcHuYThGOsXUVHVdhPwCnzbxYMlIFyVcuGmmxPJ"
s38 = 593
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv = 810
IIlIIIllIlIlIIlIIIlllllIIlIllllIlI = 193
F32 = "DMpJOicbBCLNEqQTxOCVizJExOWWnElgxzXPqBaxXMcuwHYXRqccqBqEIzOrKDUwFQTdKgCKCvqEKYu"
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW = "FzBkjtIQYuLmyWbJobVhoaJXmEbuucywTOkdhYCrZlYjAMBUydUrPRkttchVdlWGzEpMEIgTOzMsDPI"
IIllIIIllIIIlIlIlllllIlIIIII = "hMtHeuDkLeDRsaQGRUHSFtupDWaBPVNnxZLKELRjvwGFgFQShRIDfieyiQZXDoBIXeYxyHEsjTymZDA"
QQQQQQQQQQQQQQQQQQQQQQQQQQ = 260
bilXWmnuTgbXuQvynCXuqHwYfdMrWyOnUBqxPjcOjrgdVuMSsotBLcuJfXQcAOqoAaNhaZxvueqCjyT24 = "QtGjebXcJhIFooMXXIycbONGBpezNgzrGsjDkCIBkfZdTIlCJCfwAKfHzwCglPrdFAfSSgAMAnvCljv"
aAAAaaaaAAAAaAAAAaaaaA = 662
c20 = "RgigWXaAwpGHQpPdXywlqEJJhqqSSENhYuNEOEFwokKTbGStWHtMjMqlYNTgVGZAPFihsDkvLdnPUlU"
L1638559218148332818 = 351
r16 = "qbIfMyIYmrCWeJmuGjUMIVusUGoHCiexvObsQHglzKgkRqvUQwiNRwCAoDarOcOabxsYBQNPnJiDPCE"
aAaaAAAaaAaAAA = 396
A1638559218148159512 = "ScTrEGwncrbzImYdvZxtxJCzACaHtiQIMMMEezGZbUcKgwZJrCpBAvgrlWWELRYQVugxTxoJCqjJCbL"
y10 = 550
d16385592181480278 = "qVhyuKsqPDeWzZuvGjGTTAwYInzPZFEloalOTdGHDpQJjOvdcFQgHkLChhNmQKJygoWfjNugWufPEwZ"
AAAaaA = "KMrDcYwVcpoKNSHWrSmXAYtCSekMfDiTkTmEGRAuQPFOEertKkdiMzswfhTKwYhCcERstuftPMrkIEK"
P163855921814776974 = "aNrRPvsCEyyiNlksIcVmyOLUlFydgZmZVotqTJCjqXLuBEelKLHOooFkXRQXJFFjfQxcWxcWYkkkPeW"
e2 = 476

import ast as T163855921815219431
from pathlib import Path
from typing import List as Z163855921815325471,Tuple as p2
class FuncAnalyser(T163855921815219431.NodeVisitor):
	def __init__(aaAaAAA):aaAaAAA.funcs=[]
	def visit_FunctionDef(aaAaAAA,node):aaAaAAA.funcs.append(node.body)
def find_func_lines(node):return node.lineno-1,find_max_func_line(node)
def find_max_func_line(node):
	aaAaAAA=node;a=aaAaAAA.lineno
	if hasattr(aaAaAAA,'body'):
		for aAAAAA in aaAaAAA.body:aa=find_max_func_line(aAAAAA);a=max(a,aa)
	if isinstance(aaAaAAA,T163855921815219431.If):
		for aAAAAA in aaAaAAA.orelse:aa=find_max_func_line(aAAAAA);a=max(a,aa)
	return a
def get_func_lines(file):
	with open(file,'r')as a:aAAAAA=T163855921815219431.parse(a.read())
	for aaAaAAA in aAAAAA.body:
		if isinstance(aaAaAAA,T163855921815219431.FunctionDef):yield find_func_lines(aaAaAAA)
def get_funcs_as_string(file,min_length=6,include_docstring=False):
	for (a,aAAAAA) in get_func_lines(file):
		if aAAAAA-a>=min_length:
			aaAaAAA=_read_python_func(file,a,aAAAAA)
			if not include_docstring:aaAaAAA=_remove_docstring(aaAaAAA)
			yield aaAaAAA
def _remove_docstring(func_string):
	aaAaAAA=func_string.split('"""')
	if len(aaAaAAA)>=3:aaAaAAA[0]=aaAaAAA[0].rstrip()+'\n';aaAaAAA[2]=aaAaAAA[2].lstrip('\n');del aaAaAAA[1]
	return ''.join(aaAaAAA)
def _read_python_func(file,min_line,max_line,max_line_difference=100):
	a=min_line;aaAaAAA=max_line
	with open(file,'r')as aAAAAA:aa=aAAAAA.readlines()
	aaAaAAA=min(aaAaAAA,a+max_line_difference);return ''.join(aa[a:aaAaAAA+1])
def extract_docstrings(file):
	with open(file,'r')as aaAaAAA:a=T163855921815219431.parse(aaAaAAA.read())
	aAAAAA=[aaAaAAA for aaAaAAA in a.body if isinstance(aaAaAAA,T163855921815219431.FunctionDef)];return[(aaAaAAA.name,T163855921815219431.get_docstring(aaAaAAA))for aaAaAAA in aAAAAA]
g1 = 582
llI = 151
zduWLVggRjUBUMDLCkknmHFCdNnvYMnLVnSJWwpngHEpZAQUrTHRIlxmoeMKrtFUbIdKJnLzJhWxxNB5 = "DMfoXSRuJlneDRFbCiZMquPewaVAqIYZWvnUeNbVRGRtlbWgNMFHqrRKtGQOzDtFzpgnlzhlWDPzUYa"
RpQrSxvWYLFXsGmKpvyueqURuULXBeuPPZjwsoVzwiSeVOOfIAQxCDPkRfljBeydxaYjPrZbfgKZgEv7 = "xNPsnxhxQmiXothugERXQtsOJufZHfvjnCwOtEpLCoOZTgoUqjXxFyVSWsrONgHgtKvpiBIzEplIsyI"
jXavGfjtzjChDYRgdZySWktlCyPcQoGaRIPySjzKMYVrRFJUohCNSGTvoOnQqJTOfGlwIKfaltxNtPi9 = 404
CjeMMMhxJtyvNxMCchWZEcxEiQsZZJmZTuCKHrIeqRUqTrpNkLhqZwevGKtVLZOXNLKFRYbaKisZowO11 = 544
aAaAAAaaaaAaa = 236
l1638559218148230615 = "SmoehuHXquJtUlZwZwreDvrZplgDYtUIPvjzRSHNoCiWfgVEZyRUHxTfCcGHQqvBnYvgxvGpPNBgCxH"
aAaAAAaaaaAAaaAAA = "sjtUjUKSDrvnYjUjbcOLpQtkyAuVaebHELkYZVBxYZByTHavjtuboXEbzdPZFyEDDahGEtyAqKickbi"
YYYYYYYYYYYYYYYYYYY = 364
MaMQZouMxzMZqrUPPRnzjhvkUJOhJzDmFtRxvFPazbjitToXcCjNQABWnmyVDezrMEYPfUoJHchylzj21 = "HFJZXAyAERbJHrAdpHBUprLSwcTicgpkiucjMSAGzBVJnRRTFPIgiDcZLDBPAJowhBborcITNDlPOXw"
wZHySDtoMKoQvTSNbsTdjFcXaVwHHpIEIYnRelyZWiwFkrpteHcElXXwPpzuJmmycFwFSRpwWcnlCgo23 = "SUcjcrkHkgdIweTLZgyRZNGZoIlehcoPmMaqVjdxgNCAkUMZmYoceOyJsMJBTXWULHAZdMaygbmAEgI"
aaaaaaaaaaaaaaaaaaaaaaaaa = 427
CCCCCCCCCCCCCCCCCCCCCCCCCCC = "GSASPKeiIAIyXCJxntCvLmubpYkgfTJdJQoubxooVVblFlToYfHLpywCBNbtEtPtljCwcVgnJIRYPLX"
kkkkkkkkkkkkkkkkkkkkkkkkkkkkk = "QwGJpHjPdjBTtLOeotOGecTxZHVUuVNvwXNrLkgLZSDEgozsdISbLJVrkirWuHHaEWGmyEJzaTtwcHr"
O31 = "EEapSRnotozbCOytsWJbDHWExXkiiztZeaTyegucFljuwetfnSeiKhRcFgLPNoGoUOyUuHTheIeUSgx"
D33 = "swuoPzPpULkbBjqQsTzcsiLrIAzRDMVNFvzLJXlYMeaMsUsgozclrzOhWtTpPNDFMqTIvWjqpqZpiEC"
IIlllllIIllIIlIlllIIIIllIIIlllIlIIl = 6
S1638559218149069337 = "YmUUmjmTgyWpHKMcGPrgvdoDaOFuxxJfvIqLQsUiODEYLfSOnprsXuHYncnCtJCSBEWSsBUuWcUnuNk"
i39 = "qYsZzrsSfpFQvjEJZyTAuzXSSnLZSHhPDWowmLMGSCjiEyXNvrxbpVugRyCONtwrMziooDxjXrnRJZC"
i1638559218149171441 = 39
aaaaaaAAAaaaAAAAAaAaaAAAAAaaAaAAaAAaaaaAaAa = "HwSRPKWqapOweLJMSsHIpoDkRwWJMmEhoIDgYjvriHGPtOYfkNRrTinxPqWYzEKgNVMLpbRGLCmnSkD"
A1638559218149333545 = 360
u47 = "RXEvGoGYUcExsqqXjtDyhptPOcxzmOPTqDrZHvvnePpEdyibUlLaWMnNthTOHqKRypzzNzzrzPzdeez"
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF = 107
W51 = "HVQMqvFDvvjljjFoBOuHwzVuPOyacQsYVyVZpHaYUFjkKkYLoiBpcVCWZNckMVleyqjqziElnETHZxX"
GDkgrvuuLBDxbSRmKNXWHVQRMyRChIENQrqXZzUQQnLhtERHOjJpjgwqJwWlREyyzNwwBCrfjGZrHec53 = 299
d55 = 596
TGuZKYrilxleESLspOTMoMXHwBWqEKGFVGEGYHlYjhRpOsuEQEBrjrrLlUZlWpIQfvPqcJHSDkLhghi57 = 326
ZHeLBhbGXapBsIFULlNAEFGGQpaFhdvmbGFBXrlWotcPnCfaLyfLfgwNPTvTObkpQYvanXOIxnCKoBv59 = 191
IlIllIlIlIlllllIllllIIllIIIIlIIlIlIIllllIlIlIllllIIIlIlIlIlIl = "rrWJrollZaNlJglhjXisTVtCXIgfnRAxEtPOHeptdqwpJoklgqKdRUQCtBtdHnLVSdaIhOxOpGMETKC"
AaAaaAAAAaAAaAAaaaAaAaaAaAAaAAaaaAAaAaAaAaaAAAaaaaaAAAAaAaaAaAA = 684
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX = 141
aaAaaAaaAAAAAaaAaaaAaaaaAAAaAAAaaAaaaAaAaaAAAAAaAAAaaaaaAaAAAAAAAaA = "lahWSAevaPwFxkVTygJctCsykBzEVRgqlbpkxJGynVdPQXjnwKLHfMLybmnefjrmxXZRFeMchkpiqha"
l69 = "CjhiaNRaLAdWRzKZhVWVDRPLxOVVHjweMPXqNOysqtlxbxSuWbFOdTIjIQvbhvmaFSZvsGlzuODTLwl"
IIlIIIIIlIlIlIllllIllllIlIIlllIlIlIIlIIIIllllIIIIIllIIIIllIllIllIIllllI = 321
W163855921815050173 = 555
s1638559218150591975 = 335
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww = "syDnCPwjVjmTnIlvWVsaprhTuanPbapjNQZtLXMbTmAtRcljUtQZKXhoRbwKmZyhofPpHvcLFnFRGid"
IlIlIlIIIIIlIIlIlIllIlIllIIllIIIllIIlIIIIllIlIllllIlIIlIIlllllllllIIIlIIllIIlll = 169
H81 = "VNqJkGQsNMHzCvBVgQrLwfSsnrBFnDCcIThbgUfZlnpKtOWnKntXkJeQDgFyXbBrLodkyXMDPlYnPmh"
k1638559218150868783 = 58
e1638559218150995785 = "CRJcdkVyMGJrSAObMwyugxuZUDLynNscOBNpLtollqjCxAIxBzdLSXiNgojtWrurTmRDKJRopNReIFm"
lIllIlIIIIllIllIllIIIlllllIIllIIIllllIlIllIlllllIllllllIlIllllllllllIIIlllIIIllIIllIIll = "WqQYmkRXftEnwTedgXCGdUSjvdmeirgZSeaDkjDwsWxvIZbKUhnatLMdBTVrnzKKMUpdJpBGJynbZnI"
i89 = 303
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY = "LAPgpvlNpvhXPPifdVEZUEzaMZEWqxJjumTSrkaRlpMEAqACXBUSJpnTlVlvPhUUuEiijgwuUKTbEOm"
ixvRqHxvUGkHczyDCAmUEMRJIJxekVgFEGFaFvgMGCwfVzHyZBZaQWHGyzDYdXuEvKYaJCamjmlhuNI93 = "ZaVoZuyMzkfCIXlzBhfaZiUDbITIDSDtYTbuKSCFVWEvAgQDCgyPDDNCURulIQwQImaPQjiIaeVcItL"
x95 = 455
AAaaaAaaaaAAaAAaAaAAaAAaaaaaAaAAAaAAAaaAAAAAAaaaaaAAAaaAaAaAaAaAaaAAAAAAaaAAaAaaaaAaaaaaaAaaAaaaA = "uGwwtxdviOQthDKwTgMYNZOapRpgNSyZKHUhduAbkwowjcTovamGuqcOQSPwvGjBMBQcYqVJtjhJPQM"
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 207
lIIlIIlIlllIlIllllIIIllIlIlIlIIlllIlIlIIlIIIIlIlIlllIIIIIlllIlIlIlIIlIlIlIlllIIlIIlllllIIIIIIlIlIllIl = "vlpJQEcxRztgfPECjWdMjNHzHneBtjzOqarbFIeZttFvBoLJRvtwMffHIUkumQNnuYsILUVfEHsBNKC"
O103 = "QxrrTOKUNJOvokOYAfjDbAeAGkncohhNuWIJJDCAZMLXqsNWtKyVUzQaxyifzsCfwktMKfnhDPbfDWX"
aaaAaaaAaAAaaAaAaAaAaAaaaAAaaAAaaAAAaAaaaaaaaAAAaaaAAAAAaAaaAAaAaaaaAaAAAaAAAAaAAAAaaAaAAAaAaAaAAaAaaAAaA = 449
IlIIllIlllIlIIIIIlllIlIlllIIIlIIIlllIIIllllllIIllIlIIllIllIlIllllIllIIlIlIlllIIllIIIIlIIllIIlIllIllllIIlIII = 194
o109 = 707